All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: ROL
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL(v, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: HASH
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH(h, c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/mercurial/mercurial/bdiff.c:47,1
    - Dst: HASH
      Src: /src/mercurial/mercurial/bdiff.c:55,1
    - Dst: HASH
      Src: /src/mercurial/mercurial/bdiff.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - a
    - len
    - lr
    argTypes:
    - char*
    - ssize_t
    - struct bdiff_line**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 82
    functionName: bdiff_splitlines
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached:
    - HASH
    - calloc
    linkageType: ''
    returnType: int
    signature: int bdiff_splitlines(const char *a, ssize_t len, struct bdiff_line
      **lr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/mercurial/bdiff.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct bdiff_line*
    - struct bdiff_line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: cmp
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int cmp(struct bdiff_line *a, struct bdiff_line *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/mercurial/mercurial/bdiff.c:103,1
    - Dst: cmp
      Src: /src/mercurial/mercurial/bdiff.c:126,1
    - Dst: cmp
      Src: /src/mercurial/mercurial/bdiff.c:146,1
    - Dst: free
      Src: /src/mercurial/mercurial/bdiff.c:160,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - a
    - an
    - b
    - bn
    argTypes:
    - struct bdiff_line*
    - int
    - struct bdiff_line*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 162
    functionName: equatelines
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - cmp
    linkageType: ''
    returnType: int
    signature: "int equatelines(struct bdiff_line *a, int an, struct bdiff_line *b,\n
      \                      int bn)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 48
    argCount: 9
    argNames:
    - a
    - b
    - pos
    - a1
    - a2
    - b1
    - b2
    - omi
    - omj
    argTypes:
    - struct bdiff_line*
    - struct bdiff_line*
    - struct pos*
    - int
    - int
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 238
    functionName: longest_match
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int longest_match(struct bdiff_line *a, struct bdiff_line *b,\n                         struct
      pos *pos, int a1, int a2, int b1, int b2,\n                         int *omi,
      int *omj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: longest_match
      Src: /src/mercurial/mercurial/bdiff.c:248,1
    - Dst: recurse
      Src: /src/mercurial/mercurial/bdiff.c:254,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/bdiff.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 8
    argNames:
    - a
    - b
    - pos
    - a1
    - a2
    - b1
    - b2
    - l
    argTypes:
    - struct bdiff_line*
    - struct bdiff_line*
    - struct pos*
    - int
    - int
    - int
    - int
    - struct bdiff_hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: recurse
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 1
    functionsReached:
    - longest_match
    - malloc
    - recurse
    linkageType: ''
    returnType: struct bdiff_hunk
    signature: "struct bdiff_hunk *recurse(struct bdiff_line *a, struct bdiff_line
      *b,\n                                  struct pos *pos, int a1, int a2, int
      b1,\n                                  int b2, struct bdiff_hunk *l)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: equatelines
      Src: /src/mercurial/mercurial/bdiff.c:286,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/bdiff.c:287,1
    - Dst: recurse
      Src: /src/mercurial/mercurial/bdiff.c:292,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/bdiff.c:299,1
    - Dst: free
      Src: /src/mercurial/mercurial/bdiff.c:309,1
    - Dst: cmp
      Src: /src/mercurial/mercurial/bdiff.c:322,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 5
    argNames:
    - a
    - an
    - b
    - bn
    - base
    argTypes:
    - struct bdiff_line*
    - int
    - struct bdiff_line*
    - int
    - struct bdiff_hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 335
    functionName: bdiff_diff
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached:
    - malloc
    - cmp
    - recurse
    - equatelines
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int bdiff_diff(struct bdiff_line *a, int an, struct bdiff_line *b,
      int bn,\n               struct bdiff_hunk *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/mercurial/bdiff.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct bdiff_hunk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: bdiff_freehunks
    functionSourceFile: /src/mercurial/mercurial/bdiff.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void bdiff_freehunks(struct bdiff_hunk *l)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/mercurial/mpatch.c:48,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/mpatch.c:50,1
    - Dst: free
      Src: /src/mercurial/mercurial/mpatch.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: lalloc
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    linkageType: ''
    returnType: struct mpatch_flist
    signature: struct mpatch_flist *lalloc(ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/mercurial/mpatch.c:64,1
    - Dst: free
      Src: /src/mercurial/mercurial/mpatch.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct mpatch_flist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: mpatch_lfree
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mpatch_lfree(struct mpatch_flist *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct mpatch_flist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: lsize
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t lsize(struct mpatch_flist *a)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: safeadd
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool safeadd(int src, int *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: safesub
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool safesub(int src, int *dest)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:114,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:122,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:123,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:129,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:132,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:135,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:142,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 4
    argNames:
    - dest
    - src
    - cut
    - offset
    argTypes:
    - struct mpatch_flist*
    - struct mpatch_flist*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 171
    functionName: gather
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - safesub
    - safeadd
    linkageType: ''
    returnType: int
    signature: "int gather(struct mpatch_flist *dest, struct mpatch_flist *src, int
      cut,\n                  int offset)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:181,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:189,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:192,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:199,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:202,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:205,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:211,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 3
    argNames:
    - src
    - cut
    - offset
    argTypes:
    - struct mpatch_flist*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 233
    functionName: discard
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - safesub
    - safeadd
    linkageType: ''
    returnType: int
    signature: int discard(struct mpatch_flist *src, int cut, int offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lalloc
      Src: /src/mercurial/mercurial/mpatch.c:245,1
    - Dst: lsize
      Src: /src/mercurial/mercurial/mpatch.c:245,1
    - Dst: lsize
      Src: /src/mercurial/mercurial/mpatch.c:245,1
    - Dst: gather
      Src: /src/mercurial/mercurial/mpatch.c:252,1
    - Dst: discard
      Src: /src/mercurial/mercurial/mpatch.c:255,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:261,1
    - Dst: safesub
      Src: /src/mercurial/mercurial/mpatch.c:262,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/mercurial/mpatch.c:267,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/mpatch.c:278,1
    - Dst: lsize
      Src: /src/mercurial/mercurial/mpatch.c:278,1
    - Dst: lsize
      Src: /src/mercurial/mercurial/mpatch.c:279,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/mercurial/mpatch.c:282,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/mercurial/mpatch.c:283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct mpatch_flist*
    - struct mpatch_flist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 285
    functionName: combine
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - lsize
    - memcpy
    - mpatch_lfree
    - safesub
    - lalloc
    - discard
    - gather
    linkageType: ''
    returnType: struct mpatch_flist
    signature: "struct mpatch_flist *combine(struct mpatch_flist *a,\n                                    struct
      mpatch_flist *b)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lalloc
      Src: /src/mercurial/mercurial/mpatch.c:295,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/mpatch.c:305,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/mpatch.c:306,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/mpatch.c:307,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:311,1
    - Dst: safeadd
      Src: /src/mercurial/mercurial/mpatch.c:315,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/mercurial/mpatch.c:322,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - bin
    - len
    - res
    argTypes:
    - char*
    - ssize_t
    - struct mpatch_flist**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 329
    functionName: mpatch_decode
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - lalloc
    - getbe32
    - mpatch_lfree
    - safeadd
    linkageType: ''
    returnType: int
    signature: int mpatch_decode(const char *bin, ssize_t len, struct mpatch_flist
      **res)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - len
    - l
    argTypes:
    - ssize_t
    - struct mpatch_flist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: mpatch_calcsize
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t mpatch_calcsize(ssize_t len, struct mpatch_flist *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/mercurial/mercurial/mpatch.c:363,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/mpatch.c:365,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/mpatch.c:373,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - buf
    - orig
    - len
    - l
    argTypes:
    - char*
    - char*
    - ssize_t
    - struct mpatch_flist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 375
    functionName: mpatch_apply
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int mpatch_apply(char *buf, const char *orig, ssize_t len,\n                 struct
      mpatch_flist *l)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_next_item
      Src: /src/mercurial/mercurial/mpatch.c:386,1
    - Dst: combine
      Src: /src/mercurial/mercurial/mpatch.c:391,1
    - Dst: mpatch_fold
      Src: /src/mercurial/mercurial/mpatch.c:391,1
    - Dst: mpatch_fold
      Src: /src/mercurial/mercurial/mpatch.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - bins
    - (*get_next_item)(void *, ssize_t)
    - start
    - end
    argTypes:
    - void*
    - struct mpatch_flist*
    - ssize_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 393
    functionName: mpatch_fold
    functionSourceFile: /src/mercurial/mercurial/mpatch.c
    functionUses: 1
    functionsReached:
    - get_next_item
    - combine
    - mpatch_fold
    linkageType: ''
    returnType: struct mpatch_flist
    signature: "struct mpatch_flist *\nmpatch_fold(void *bins, struct mpatch_flist
      *(*get_next_item)(void *, ssize_t),\n            ssize_t start, ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: _PyObject_CAST
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: _Py_NewRef
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_NewRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Py_NewRef
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_NewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: _Py_XNewRef
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_XNewRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: Py_XNewRef
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XNewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - refcnt
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: _Py_SET_REFCNT
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - refcnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Py_SET_REFCNT
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_REFCNT(ob, refcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: _Py_SET_TYPE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Py_SET_TYPE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - size
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: _Py_SET_SIZE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: Py_SET_SIZE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_SIZE(ob, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:94,1
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:96,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    - condition: (code != NULL)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: PyFrame_GetCode
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyFrame_GetCode(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetCode
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:105,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: _PyFrame_GetCodeBorrow
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyFrame_GetCode
    - Py_DECREF
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyFrame_GetCodeBorrow(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:117,1
    - Dst: Py_XINCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: PyFrame_GetBack
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyFrame_GetBack(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetBack
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:127,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: _PyFrame_GetBackBorrow
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyFrame_GetBack
    - Py_XDECREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyFrame_GetBackBorrow(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: PyThreadState_GetInterpreter
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyThreadState_GetInterpreter(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:150,1
    - Dst: Py_XINCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: PyThreadState_GetFrame
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyThreadState_GetFrame(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetFrame
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:160,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: _PyThreadState_GetFrameBorrow
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyThreadState_GetFrame
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyThreadState_GetFrameBorrow(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:174,1
    - Dst: Py_FatalError
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:176,1
    - Dst: Py_FatalError
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 183
    functionName: PyInterpreterState_Get
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyThreadState_GET
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Get(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: PyThreadState_GetID
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t PyThreadState_GetID(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: PyObject_CallNoArgs
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallNoArgs(PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: PyObject_CallOneArg
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallOneArg(PyObject *func, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:226,1
    - Dst: assert
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:232,1
    - Dst: strrchr
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:233,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:238,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:239,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: PyModule_AddType
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - strrchr
    - Py_DECREF
    - Py_INCREF
    - PyModule_AddObject
    - assert
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int PyModule_AddType(PyObject *module, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:255,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsTracked(PyObject* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:265,1
    - Dst: _PyGCHead_FINALIZED
      Src: /src/mercurial/mercurial/pythoncapi_compat.h:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: PyObject_GC_IsFinalized
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - _PyGCHead_FINALIZED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsFinalized(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: _Py_IS_TYPE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: Py_IS_TYPE
    functionSourceFile: /src/mercurial/mercurial/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 18
    functionName: getbe64
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getbe64(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: getbe32
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t getbe32(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: getbeint16
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t getbeint16(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: getbeuint16
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t getbeuint16(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: putbe64
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void putbe64(uint64_t x, char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: putbe32
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void putbe32(uint32_t x, char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/mercurial/mercurial/bitmanipulation.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: getbefloat64
    functionSourceFile: /src/mercurial/mercurial/bitmanipulation.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: double
    signature: double getbefloat64(const char *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncat
      Src: /src/mercurial/mercurial/exewrapper.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - n
    - s
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: strcat_s
    functionSourceFile: /src/mercurial/mercurial/exewrapper.c
    functionUses: 0
    functionsReached:
    - strncat
    linkageType: ''
    returnType: int
    signature: int strcat_s(char *d, size_t n, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/mercurial/mercurial/exewrapper.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - d
    - n
    - s
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: strcpy_s
    functionSourceFile: /src/mercurial/mercurial/exewrapper.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: int
    signature: int strcpy_s(char *d, size_t n, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: _countof
    functionSourceFile: /src/mercurial/mercurial/exewrapper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _countof(array)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _wputenv
      Src: /src/mercurial/mercurial/exewrapper.c:51,1
    - Dst: GetModuleFileName
      Src: /src/mercurial/mercurial/exewrapper.c:54,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:54,1
    - Dst: _tcsrchr
      Src: /src/mercurial/mercurial/exewrapper.c:59,1
    - Dst: _tcscpy_s
      Src: /src/mercurial/mercurial/exewrapper.c:65,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:65,1
    - Dst: _tcscat_s
      Src: /src/mercurial/mercurial/exewrapper.c:68,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:68,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:68,1
    - Dst: _tcscat_s
      Src: /src/mercurial/mercurial/exewrapper.c:73,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:73,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:73,1
    - Dst: FindFirstFile
      Src: /src/mercurial/mercurial/exewrapper.c:75,1
    - Dst: FindClose
      Src: /src/mercurial/mercurial/exewrapper.c:79,1
    - Dst: _tcscpy_s
      Src: /src/mercurial/mercurial/exewrapper.c:80,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:80,1
    - Dst: _tcscat_s
      Src: /src/mercurial/mercurial/exewrapper.c:81,1
    - Dst: _countof
      Src: /src/mercurial/mercurial/exewrapper.c:81,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:82,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:82,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:82,1
    - Dst: LoadLibrary
      Src: /src/mercurial/mercurial/exewrapper.c:83,1
    - Dst: GetProcAddress
      Src: /src/mercurial/mercurial/exewrapper.c:90,1
    - Dst: Py_SetPythonHome
      Src: /src/mercurial/mercurial/exewrapper.c:95,1
    - Dst: LoadLibrary
      Src: /src/mercurial/mercurial/exewrapper.c:99,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:99,1
    - Dst: _T
      Src: /src/mercurial/mercurial/exewrapper.c:99,1
    - Dst: GetProcAddress
      Src: /src/mercurial/mercurial/exewrapper.c:106,1
    - Dst: _tcscmp
      Src: /src/mercurial/mercurial/exewrapper.c:119,1
    - Dst: Py_Main
      Src: /src/mercurial/mercurial/exewrapper.c:125,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/exewrapper.c:133,1
    - Dst: Py_Main
      Src: /src/mercurial/mercurial/exewrapper.c:148,1
    - Dst: free
      Src: /src/mercurial/mercurial/exewrapper.c:150,1
    - Dst: fprintf
      Src: /src/mercurial/mercurial/exewrapper.c:154,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - TCHAR*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 156
    functionName: _tmain
    functionSourceFile: /src/mercurial/mercurial/exewrapper.c
    functionUses: 0
    functionsReached:
    - _T
    - _tcsrchr
    - _tcscpy_s
    - FindFirstFile
    - FindClose
    - LoadLibrary
    - GetProcAddress
    - Py_SetPythonHome
    - Py_Main
    - malloc
    - _wputenv
    - _tcscmp
    - _countof
    - fprintf
    - free
    - _tcscat_s
    - GetModuleFileName
    linkageType: ''
    returnType: int
    signature: int _tmain(int argc, TCHAR *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: index_length
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t index_length(const indexObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/mercurial/cext/revlog.c:184,1
    - Dst: PyModule_GetDict
      Src: /src/mercurial/mercurial/cext/revlog.c:189,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:193,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/mercurial/cext/revlog.c:195,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:197,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:203,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:206,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 208
    functionName: raise_revlog_error
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_INCREF
    - PyModule_GetDict
    - Py_XDECREF
    - PyErr_SetString
    - PyDict_GetItemString
    linkageType: ''
    returnType: void
    signature: void raise_revlog_error(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/mercurial/mercurial/cext/revlog.c:222,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:224,1
    - Dst: inline_scan
      Src: /src/mercurial/mercurial/cext/revlog.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 234
    functionName: index_deref
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - inline_scan
    linkageType: ''
    returnType: char
    signature: char *index_deref(indexObject *self, Py_ssize_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:248,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:251,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:252,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:254,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:255,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:257,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:258,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - self
    - rev
    - ps
    - maxrev
    argTypes:
    - indexObject*
    - Py_ssize_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: index_get_parents_raw
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - getbe32
    - index_deref
    linkageType: ''
    returnType: int
    signature: "int index_get_parents_raw(indexObject *self, Py_ssize_t rev,\n                                        int
      *ps, int maxrev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_get_parents_raw
      Src: /src/mercurial/mercurial/cext/revlog.c:276,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - self
    - rev
    - ps
    - maxrev
    argTypes:
    - indexObject*
    - Py_ssize_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 287
    functionName: index_get_parents
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_parents_raw
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int index_get_parents(indexObject *self, Py_ssize_t rev, int *ps,\n
      \                                   int maxrev)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HgRevlogIndex_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:300,1
    - Dst: PyErr_BadInternalCall
      Src: /src/mercurial/mercurial/cext/revlog.c:301,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:304,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:306,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - op
    - rev
    - ps
    argTypes:
    - PyObject*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: HgRevlogIndex_GetParents
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - index_get_parents
    - PyErr_Format
    - index_length
    - HgRevlogIndex_Check
    linkageType: ''
    returnType: int
    signature: int HgRevlogIndex_GetParents(PyObject *op, int rev, int *ps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:321,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:324,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:326,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:329,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 334
    functionName: index_py_parents
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - index_get_parents
    - index_length
    - PyErr_SetString
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_parents(indexObject *self, PyObject *rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:341,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:344,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:346,1
    - Dst: index_get_parents_raw
      Src: /src/mercurial/mercurial/cext/revlog.c:349,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: index_py_parents_raw
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - pylong_to_long
    - index_length
    - PyErr_SetString
    - index_get_parents_raw
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_parents_raw(indexObject *self, PyObject *rev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: index_unsupported_child_sibling
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_unsupported_child_sibling(indexObject *self,\n                                                 PyObject
      *rev)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:369,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:372,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:374,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:378,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:379,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:383,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:385,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:387,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:390,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:393,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 394
    functionName: index_py_raw_size
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_INCREF
    - index_length
    - PyErr_SetString
    - getbe32
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_raw_size(indexObject *self, PyObject *py_rev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:402,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:405,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:407,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:411,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:413,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:417,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:419,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 424
    functionName: index_py_linkrev
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_length
    - PyErr_SetString
    - getbe32
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_linkrev(indexObject *self, PyObject *py_rev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:433,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:436,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:438,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:444,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 458
    functionName: index_py_data_chunk_compression_mode
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - index_length
    - PyErr_SetString
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_data_chunk_compression_mode(indexObject *self,\n
      \                                                     PyObject *py_rev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:467,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:470,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:472,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:478,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:482,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:485,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/mercurial/cext/revlog.c:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 489
    functionName: index_py_sidedata_chunk_offset
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_length
    - getbe64
    - PyErr_SetString
    - PyLong_FromLongLong
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_sidedata_chunk_offset(indexObject *self,\n                                                PyObject
      *py_rev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:498,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:501,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:503,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:509,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:514,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:517,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:520,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 521
    functionName: index_py_sidedata_chunk_length
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_length
    - PyErr_SetString
    - getbe32
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_sidedata_chunk_length(indexObject *self,\n                                                PyObject
      *py_rev)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:530,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:533,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:535,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:541,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 556
    functionName: index_py_sidedata_chunk_compression_mode
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - index_length
    - PyErr_SetString
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_sidedata_chunk_compression_mode(indexObject *self,\n
      \                                                         PyObject *py_rev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:565,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:568,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:570,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/mercurial/cext/revlog.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 574
    functionName: index_py_changed_files_offset
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - pylong_to_long
    - index_length
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_changed_files_offset(indexObject *self,\n                                               PyObject
      *py_rev)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:583,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:586,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:588,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/mercurial/cext/revlog.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 592
    functionName: index_py_changed_files_length
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    - pylong_to_long
    - index_length
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *index_py_changed_files_length(indexObject *self,\n                                               PyObject
      *py_rev)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:600,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:603,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:605,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:609,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:612,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:616,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 617
    functionName: index_py_lazy_rank
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_length
    - PyErr_SetString
    - getbe32
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_lazy_rank(indexObject *self, PyObject *py_rev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:627,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:630,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:644,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:648,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:662,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:666,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:667,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 675
    functionName: index_get_start
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - getbe32
    - index_deref
    linkageType: ''
    returnType: int64_t
    signature: int64_t index_get_start(indexObject *self, Py_ssize_t rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:682,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:685,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:687,1
    - Dst: index_get_start
      Src: /src/mercurial/mercurial/cext/revlog.c:692,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/mercurial/cext/revlog.c:697,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 698
    functionName: index_py_data_chunk_start
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_start
    - index_length
    - PyLong_FromLongLong
    - PyErr_SetString
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_data_chunk_start(indexObject *self, PyObject *rev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:708,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:711,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:713,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:715,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:717,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 726
    functionName: index_get_length
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - getbe32
    - PyErr_Format
    - index_deref
    linkageType: ''
    returnType: int
    signature: int index_get_length(indexObject *self, Py_ssize_t rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:733,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:736,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:738,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:743,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 749
    functionName: index_py_data_chunk_length
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_get_length
    - index_length
    - PyErr_SetString
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_data_chunk_length(indexObject *self, PyObject *rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:764,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:768,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:770,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:772,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:774,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 778
    functionName: index_get_flags
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - getbe32
    - index_deref
    linkageType: ''
    returnType: int
    signature: int index_get_flags(indexObject *self, Py_ssize_t rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:785,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:788,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:790,1
    - Dst: index_get_flags
      Src: /src/mercurial/mercurial/cext/revlog.c:795,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 801
    functionName: index_py_flags
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_get_flags
    - index_length
    - PyErr_SetString
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_flags(indexObject *self, PyObject *rev)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:823,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:826,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:831,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:835,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:840,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:850,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:854,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:855,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:856,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:857,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:858,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:859,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:867,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:877,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:881,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:882,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:883,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:884,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:885,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:886,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:890,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:892,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:897,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:898,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:900,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:901,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:909,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:910,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:913,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:915,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:919,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:921,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:925,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 68
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 929
    functionName: index_get
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_INCREF
    - getbe64
    - PyErr_SetString
    - index_length
    - raise_revlog_error
    - getbe32
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_get(indexObject *self, Py_ssize_t pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:938,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:942,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:948,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 950
    functionName: index_pack_header
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - putbe32
    - PyBytes_FromStringAndSize
    - PyErr_Format
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_pack_header(indexObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:958,1
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:960,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:964,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:969,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:974,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 978
    functionName: index_entry_binary
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Format
    - index_length
    - pylong_to_long
    - index_deref
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_entry_binary(indexObject *self, PyObject *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:985,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:995,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:1004,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1009
    functionName: index_node
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - index_deref
    - index_length
    linkageType: ''
    returnType: char
    signature: char *index_node(indexObject *self, Py_ssize_t pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:1015,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1019,1
    - Dst: index_node
      Src: /src/mercurial/mercurial/cext/revlog.c:1022,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:1024,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1025,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:1030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1031
    functionName: index_py_node
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - index_node
    - PyErr_SetString
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_node(indexObject *self, PyObject *rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1047,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1057,1
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:1057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1045
    functionDepth: 2
    functionLinenumber: 1045
    functionLinenumberEnd: 1058
    functionName: index_fast_rank
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - getbe32
    - index_deref
    - index_length
    linkageType: ''
    returnType: int
    signature: int index_fast_rank(indexObject *self, Py_ssize_t pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_node
      Src: /src/mercurial/mercurial/cext/revlog.c:1066,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1072
    functionName: index_node_existing
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - index_node
    linkageType: ''
    returnType: char
    signature: char *index_node_existing(indexObject *self, Py_ssize_t pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:1079,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - nodelen
    - obj
    - node
    argTypes:
    - Py_ssize_t
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1086
    functionName: node_check
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyBytes_AsStringAndSize
    linkageType: ''
    returnType: int
    signature: int node_check(Py_ssize_t nodelen, PyObject *obj, char **node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1091,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1096
    functionName: index_start_bundle_repo
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_length
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_start_bundle_repo(indexObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/mercurial/cext/revlog.c:1110,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1114,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1119,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1124,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:1130,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:1136,1
    - Dst: PyMem_Realloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1146,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:1149,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/revlog.c:1156,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1159,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1160,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1162,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1163,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1164,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1165,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1166,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1167,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/revlog.c:1168,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1171,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1172,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1174,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1175,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1176,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1177,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1178,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1179,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/revlog.c:1180,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1182,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1184,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1190,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1191,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1193,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1194,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1195,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1196,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/revlog.c:1197,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1199,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1201,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1206,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:1208,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:1213,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/revlog.c:1215,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 81
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1098
    functionDepth: 2
    functionLinenumber: 1098
    functionLinenumberEnd: 1217
    functionName: index_add_entry
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_CLEAR
    - nt_insert
    - putbe32
    - PyErr_NoMemory
    - putbe64
    - PyMem_Realloc
    - PyErr_Format
    - PyErr_SetString
    - raise_revlog_error
    - PyObject_CallMethod
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_add_entry(indexObject *self, PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:1242,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1246,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1251,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1252,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1256,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1266,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1269,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1270,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1272,1
    - Dst: getbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1278,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1281,1
    - Dst: putbe64
      Src: /src/mercurial/mercurial/cext/revlog.c:1282,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:1284,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:1290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1222
    functionDepth: 2
    functionLinenumber: 1222
    functionLinenumberEnd: 1295
    functionName: index_replace_sidedata_info
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - putbe32
    - putbe64
    - index_length
    - getbe64
    - PyErr_SetString
    - raise_revlog_error
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_replace_sidedata_info(indexObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1299,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1319,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1320,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1321,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1322,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1323,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1325,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1326,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1327,1
    - Dst: istat
      Src: /src/mercurial/mercurial/cext/revlog.c:1328,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1336,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1337,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1340
    functionName: index_stats
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - istat
    - PyDict_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_stats(indexObject *self)
  - 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: 1317
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1317
    functionName: istat
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: istat(__n, __d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:1348,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1349,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:1356,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1357,1
    - Dst: PyList_SET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:1358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: list_copy
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_GET_ITEM
    - PyList_New
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: PyObject *list_copy(PyObject *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:1370,1
    - Dst: PyObject_Call
      Src: /src/mercurial/mercurial/cext/revlog.c:1375,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1376,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/revlog.c:1383,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - filter
    - arg
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1364
    functionDepth: 1
    functionLinenumber: 1364
    functionLinenumberEnd: 1389
    functionName: check_filter
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyObject_IsTrue
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int check_filter(PyObject *filter, Py_ssize_t arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - phases
    - parent_1
    - parent_2
    - i
    argTypes:
    - char*
    - int
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1398
    functionName: set_phase_from_parents
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_phase_from_parents(char *phases, int parent_1,\n                                          int
      parent_2, Py_ssize_t i)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/revlog.c:1408,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - list
    - elem
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1411
    functionName: pylist_append_owned
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int pylist_append_owned(PyObject *list, PyObject *elem)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1425,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1444,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1453,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1458,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:1460,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1464,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:1466,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:1470,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1472,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:1472,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:1473,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:1483,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1485,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:1485,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:1486,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1489,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:1505,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1506,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1516,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1537,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:1547,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1548,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1555,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1556,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1559,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1560,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1561,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 101
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1413
    functionDepth: 4
    functionLinenumber: 1413
    functionLinenumberEnd: 1563
    functionName: reachableroots2
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - malloc
    - PyLong_AsLong
    - PyErr_Occurred
    - free
    - pylist_append_owned
    - PyErr_NoMemory
    - PyList_GET_ITEM
    - index_get_parents
    - index_length
    - PyErr_SetString
    - PyList_New
    - PyList_GET_SIZE
    - calloc
    - PyLong_FromSsize_t
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *reachableroots2(indexObject *self, PyObject *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1568,1
    - Dst: PySet_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:1573,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1574,1
    - Dst: PyObject_GetIter
      Src: /src/mercurial/mercurial/cext/revlog.c:1578,1
    - Dst: PyIter_Next
      Src: /src/mercurial/mercurial/cext/revlog.c:1581,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1582,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:1583,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1592,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1594,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1597,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - self
    - roots
    - phases
    - phase
    argTypes:
    - indexObject*
    - PyObject*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1600
    functionName: add_roots_get_min
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - index_length
    - PyErr_SetString
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: "int add_roots_get_min(indexObject *self, PyObject *roots, char *phases,\n
      \                            char phase)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1610,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1615,1
    - Dst: PyDict_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:1617,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1618,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1622,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:1624,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1629,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:1633,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1634,1
    - Dst: add_roots_get_min
      Src: /src/mercurial/mercurial/cext/revlog.c:1637,1
    - Dst: PySet_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1646,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1663,1
    - Dst: set_phase_from_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1665,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1684,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1688,1
    - Dst: PySet_Add
      Src: /src/mercurial/mercurial/cext/revlog.c:1691,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1692,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1695,1
    - Dst: _PyDict_NewPresized
      Src: /src/mercurial/mercurial/cext/revlog.c:1698,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1702,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:1705,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1707,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1710,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1714,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:1715,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1719,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1720,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1722,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 96
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1602
    functionDepth: 4
    functionLinenumber: 1602
    functionLinenumberEnd: 1724
    functionName: compute_phases_map_sets
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItem
    - index_length
    - calloc
    - free
    - Py_XDECREF
    - PyArg_ParseTuple
    - PySet_Add
    - Py_DECREF
    - _PyDict_NewPresized
    - PyDict_Check
    - index_get_parents
    - add_roots_get_min
    - Py_BuildValue
    - PyDict_GetItem
    - set_phase_from_parents
    - PyErr_NoMemory
    - PyErr_SetString
    - PySet_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compute_phases_map_sets(indexObject *self, PyObject *args)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1735,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:1739,1
    - Dst: PyLong_AsSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1743,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:1744,1
    - Dst: list_copy
      Src: /src/mercurial/mercurial/cext/revlog.c:1751,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1754,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1756,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/mercurial/cext/revlog.c:1760,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1762,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1769,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:1773,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:1773,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1774,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1780,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:1782,1
    - Dst: check_filter
      Src: /src/mercurial/mercurial/cext/revlog.c:1795,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:1797,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1808,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:1819,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1819,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1825,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1826,1
    - Dst: list_copy
      Src: /src/mercurial/mercurial/cext/revlog.c:1829,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1834,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:1835,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1836,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 92
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1726
    functionDepth: 4
    functionLinenumber: 1726
    functionLinenumberEnd: 1838
    functionName: index_headrevs
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - list_copy
    - index_length
    - PyList_New
    - calloc
    - PyErr_Occurred
    - PyObject_GetAttrString
    - Py_INCREF
    - PyLong_AsSsize_t
    - free
    - Py_XDECREF
    - PyArg_ParseTuple
    - Py_DECREF
    - pylist_append_owned
    - index_get_parents
    - check_filter
    - PyErr_NoMemory
    - PyErr_SetString
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_headrevs(indexObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rgs
    - i
    argTypes:
    - rgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1858
    functionName: rgs_offset
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rgs_offset(rgs *rgs, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - rgs
    - max
    argTypes:
    - rgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1861
    functionDepth: 0
    functionLinenumber: 1861
    functionLinenumberEnd: 1872
    functionName: rgs_alloc
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int rgs_alloc(rgs *rgs, int max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rgs_offset
      Src: /src/mercurial/mercurial/cext/revlog.c:1876,1
    - Dst: abort
      Src: /src/mercurial/mercurial/cext/revlog.c:1881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - rgs
    - i
    argTypes:
    - rgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1884
    functionName: rgs_get
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - abort
    - rgs_offset
    linkageType: ''
    returnType: bool
    signature: bool rgs_get(rgs *rgs, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1892,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:1893,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/revlog.c:1896,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:1897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - rgs
    - new_len
    argTypes:
    - rgs*
    - int
    assertStmts:
    - condition: (new_len >= old_len)
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/mercurial/mercurial/cext/revlog.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1901
    functionName: rgs_realloc
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - assert
    - calloc
    - free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int rgs_realloc(rgs *rgs, int new_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rgs_realloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - rgs
    - offset
    argTypes:
    - rgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1904
    functionDepth: 2
    functionLinenumber: 1904
    functionLinenumberEnd: 1911
    functionName: rgs_realloc_amortized
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - rgs_realloc
    linkageType: ''
    returnType: int
    signature: int rgs_realloc_amortized(rgs *rgs, int offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rgs_offset
      Src: /src/mercurial/mercurial/cext/revlog.c:1916,1
    - Dst: rgs_realloc_amortized
      Src: /src/mercurial/mercurial/cext/revlog.c:1922,1
    - Dst: abort
      Src: /src/mercurial/mercurial/cext/revlog.c:1926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - rgs
    - i
    - v
    argTypes:
    - rgs*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1932
    functionName: rgs_set
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - rgs_realloc_amortized
    - abort
    - rgs_offset
    linkageType: ''
    returnType: int
    signature: int rgs_set(rgs *rgs, int i, bool v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:1937,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - v
    argTypes:
    - PyObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1938
    functionName: pylist_append_size_t
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - pylist_append_owned
    linkageType: ''
    returnType: int
    signature: int pylist_append_size_t(PyObject *list, size_t v)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:1950,1
    - Dst: rgs_alloc
      Src: /src/mercurial/mercurial/cext/revlog.c:1953,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1956,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:1959,1
    - Dst: rgs_get
      Src: /src/mercurial/mercurial/cext/revlog.c:1966,1
    - Dst: rgs_set
      Src: /src/mercurial/mercurial/cext/revlog.c:1967,1
    - Dst: pylist_append_size_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1971,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1976,1
    - Dst: rgs_set
      Src: /src/mercurial/mercurial/cext/revlog.c:1980,1
    - Dst: rgs_get
      Src: /src/mercurial/mercurial/cext/revlog.c:1989,1
    - Dst: rgs_set
      Src: /src/mercurial/mercurial/cext/revlog.c:1990,1
    - Dst: pylist_append_size_t
      Src: /src/mercurial/mercurial/cext/revlog.c:1993,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:1998,1
    - Dst: rgs_set
      Src: /src/mercurial/mercurial/cext/revlog.c:2002,1
    - Dst: pylist_append_size_t
      Src: /src/mercurial/mercurial/cext/revlog.c:2011,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/revlog.c:2016,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2020,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2021,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2022,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2025,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2026,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2027,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 83
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1940
    functionDepth: 4
    functionLinenumber: 1940
    functionLinenumberEnd: 2029
    functionName: index_headrevsdiff
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - rgs_alloc
    - rgs_set
    - pylist_append_size_t
    - Py_XDECREF
    - index_get_parents
    - PyTuple_Pack
    - PyList_New
    - free
    - rgs_get
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_headrevsdiff(indexObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: index_deref
      Src: /src/mercurial/mercurial/cext/revlog.c:2041,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:2046,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:2048,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:2052,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:2057,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:2064,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2071
    functionName: index_baserev
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - raise_revlog_error
    - getbe32
    - PyErr_Format
    - index_deref
    linkageType: ''
    returnType: int
    signature: int index_baserev(indexObject *self, int rev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:2078,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2081,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2083,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2088,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2073
    functionDepth: 3
    functionLinenumber: 2073
    functionLinenumberEnd: 2094
    functionName: index_py_raw_delta_base
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_length
    - PyErr_SetString
    - index_baserev
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_raw_delta_base(indexObject *self, PyObject *py_rev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:2101,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2104,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2106,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2109,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2112,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2116,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - self
    - py_rev
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2096
    functionDepth: 3
    functionLinenumber: 2096
    functionLinenumberEnd: 2125
    functionName: index_py_delta_base
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_INCREF
    - index_length
    - PyErr_SetString
    - index_baserev
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_py_delta_base(indexObject *self, PyObject *py_rev)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2139,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:2144,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2144,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:2150,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:2151,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2151,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2154,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2155,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2161,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2162,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - self
    - rev
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2143
        line_start: 2143
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2150
        line_start: 2150
        source_file: /src/mercurial/mercurial/cext/revlog.c
    constantsTouched: []
    func_position:
      end: 2174
      start: 2133
    functionDepth: 4
    functionLinenumber: 2133
    functionLinenumberEnd: 2174
    functionName: index_issnapshotrev
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_length
    - assert
    - PyErr_Occurred
    - index_get_parents
    - index_baserev
    linkageType: ''
    returnType: int
    signature: int index_issnapshotrev(indexObject *self, Py_ssize_t rev)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2180,1
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:2182,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:2186,1
    - Dst: index_get_flags
      Src: /src/mercurial/mercurial/cext/revlog.c:2192,1
    - Dst: index_issnapshotrev
      Src: /src/mercurial/mercurial/cext/revlog.c:2198,1
    - Dst: PyBool_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2176
    functionDepth: 5
    functionLinenumber: 2176
    functionLinenumberEnd: 2204
    functionName: index_issnapshot
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_issnapshotrev
    - PyErr_Format
    - index_get_flags
    - index_length
    - PyBool_FromLong
    - pylong_to_long
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_issnapshot(indexObject *self, PyObject *value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2215,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2216,1
    - Dst: index_get_flags
      Src: /src/mercurial/mercurial/cext/revlog.c:2233,1
    - Dst: index_issnapshotrev
      Src: /src/mercurial/mercurial/cext/revlog.c:2240,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2248,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:2253,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2253,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:2256,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:2257,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2258,1
    - Dst: PySet_New
      Src: /src/mercurial/mercurial/cext/revlog.c:2263,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:2267,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2268,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/mercurial/cext/revlog.c:2273,1
    - Dst: PySet_Add
      Src: /src/mercurial/mercurial/cext/revlog.c:2274,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/revlog.c:2277,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/revlog.c:2278,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2282,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2283,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/mercurial/mercurial/cext/revlog.c
    constantsTouched: []
    func_position:
      end: 2285
      start: 2206
    functionDepth: 5
    functionLinenumber: 2206
    functionLinenumberEnd: 2285
    functionName: index_findsnapshots
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - PyDict_GetItem
    - index_issnapshotrev
    - Py_DECREF
    - Py_CLEAR
    - Py_XDECREF
    - PyDict_SetItem
    - index_get_flags
    - index_length
    - index_baserev
    - PyLong_FromSsize_t
    - PySet_New
    - PyArg_ParseTuple
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_findsnapshots(indexObject *self, PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2294,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2296,1
    - Dst: PyLong_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:2300,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2301,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2302,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2308,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2314,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:2318,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2323,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:2328,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2328,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2336,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:2337,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2338,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2354,1
    - Dst: index_baserev
      Src: /src/mercurial/mercurial/cext/revlog.c:2359,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/revlog.c:2364,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2364,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:2372,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2372,1
    - Dst: PyList_Reverse
      Src: /src/mercurial/mercurial/cext/revlog.c:2379,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:2383,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2384,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2388,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2327
        line_start: 2327
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2363
        line_start: 2363
        source_file: /src/mercurial/mercurial/cext/revlog.c
    constantsTouched: []
    func_position:
      end: 2390
      start: 2287
    functionDepth: 3
    functionLinenumber: 2287
    functionLinenumberEnd: 2390
    functionName: index_deltachain
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - index_get_length
    - PyLong_FromLong
    - PyLong_AsLong
    - PyErr_Occurred
    - assert
    - PyList_Reverse
    - pylist_append_owned
    - Py_BuildValue
    - Py_DECREF
    - index_length
    - PyErr_SetString
    - PyList_New
    - index_baserev
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_deltachain(indexObject *self, PyObject *args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: index_get_start
      Src: /src/mercurial/mercurial/cext/revlog.c:2399,1
    - Dst: index_get_start
      Src: /src/mercurial/mercurial/cext/revlog.c:2403,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2407,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:2412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - start_rev
    - end_rev
    argTypes:
    - indexObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2392
    functionDepth: 3
    functionLinenumber: 2392
    functionLinenumberEnd: 2423
    functionName: index_segment_span
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_length
    - index_get_start
    - PyErr_Format
    linkageType: ''
    returnType: int64_t
    signature: int64_t index_segment_span(indexObject *self, Py_ssize_t start_rev,
      Py_ssize_t end_rev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - self
    - revs
    - startidx
    - endidx
    argTypes:
    - indexObject*
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2426
    functionDepth: 3
    functionLinenumber: 2426
    functionLinenumberEnd: 2441
    functionName: trim_endidx
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_length
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t trim_endidx(indexObject *self, const Py_ssize_t *revs,\n
      \                             Py_ssize_t startidx, Py_ssize_t endidx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2448
    functionDepth: 0
    functionLinenumber: 2448
    functionLinenumberEnd: 2458
    functionName: gap_compare
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gap_compare(const void *left, const void *right)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2459
    functionDepth: 0
    functionLinenumber: 2459
    functionLinenumberEnd: 2469
    functionName: Py_ssize_t_compare
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_ssize_t_compare(const void *left, const void *right)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2479,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2502,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:2509,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/revlog.c:2511,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2516,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:2518,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2523,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:2523,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:2524,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:2528,1
    - Dst: index_segment_span
      Src: /src/mercurial/mercurial/cext/revlog.c:2536,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/revlog.c:2542,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2547,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/revlog.c:2562,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2567,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:2569,1
    - Dst: index_get_start
      Src: /src/mercurial/mercurial/cext/revlog.c:2577,1
    - Dst: index_get_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2584,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/revlog.c:2602,1
    - Dst: qsort
      Src: /src/mercurial/mercurial/cext/revlog.c:2605,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2609,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:2611,1
    - Dst: qsort
      Src: /src/mercurial/mercurial/cext/revlog.c:2628,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:2632,1
    - Dst: trim_endidx
      Src: /src/mercurial/mercurial/cext/revlog.c:2640,1
    - Dst: PyList_GetSlice
      Src: /src/mercurial/mercurial/cext/revlog.c:2646,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:2647,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2657,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2659,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2660,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2661,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 150
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2471
    functionDepth: 4
    functionLinenumber: 2471
    functionLinenumberEnd: 2663
    functionName: index_slicechunktodensity
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_get_length
    - PyLong_AsLong
    - index_length
    - PyList_New
    - calloc
    - malloc
    - PyErr_Occurred
    - PyTuple_Pack
    - PyList_GET_ITEM
    - PyErr_Format
    - index_segment_span
    - qsort
    - PyList_GetSlice
    - free
    - Py_XDECREF
    - PyArg_ParseTuple
    - index_get_start
    - pylist_append_owned
    - PyErr_NoMemory
    - PyList_GET_SIZE
    - trim_endidx
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_slicechunktodensity(indexObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - node
    - level
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2665
    functionDepth: 0
    functionLinenumber: 2665
    functionLinenumberEnd: 2671
    functionName: nt_level
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nt_level(const char *node, Py_ssize_t level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/revlog.c:2688,1
    - Dst: getnybble
      Src: /src/mercurial/mercurial/cext/revlog.c:2699,1
    - Dst: index_node
      Src: /src/mercurial/mercurial/cext/revlog.c:2708,1
    - Dst: getnybble
      Src: /src/mercurial/mercurial/cext/revlog.c:2712,1
    - Dst: nt_level
      Src: /src/mercurial/mercurial/cext/revlog.c:2712,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 4
    argNames:
    - self
    - node
    - nodelen
    - hex
    argTypes:
    - nodetree*
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2680
    functionDepth: 3
    functionLinenumber: 2680
    functionLinenumberEnd: 2722
    functionName: nt_find
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_level
    - memcmp
    - index_node
    - getnybble
    linkageType: ''
    returnType: int
    signature: "int nt_find(nodetree *self, const char *node, Py_ssize_t nodelen,\n
      \                  int hex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2731,1
    - Dst: realloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2736,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2738,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/revlog.c:2743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - nodetree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2724
    functionDepth: 1
    functionLinenumber: 2724
    functionLinenumberEnd: 2747
    functionName: nt_new
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - realloc
    - memset
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int nt_new(nodetree *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nt_level
      Src: /src/mercurial/mercurial/cext/revlog.c:2755,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:2768,1
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/revlog.c:2773,1
    - Dst: nt_new
      Src: /src/mercurial/mercurial/cext/revlog.c:2777,1
    - Dst: nt_level
      Src: /src/mercurial/mercurial/cext/revlog.c:2784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - node
    - rev
    argTypes:
    - nodetree*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2749
    functionDepth: 4
    functionLinenumber: 2749
    functionLinenumberEnd: 2795
    functionName: nt_insert
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 1
    functionsReached:
    - nt_level
    - index_node_existing
    - nt_new
    - memcmp
    linkageType: ''
    returnType: int
    signature: int nt_insert(nodetree *self, const char *node, int rev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2802,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:2804,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2806,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:2809,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:2810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - nodetreeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2797
    functionDepth: 5
    functionLinenumber: 2797
    functionLinenumberEnd: 2813
    functionName: ntobj_insert
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_insert
    - index_node_existing
    - index_length
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ntobj_insert(nodetreeObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:2819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - node
    argTypes:
    - nodetree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2815
    functionDepth: 5
    functionLinenumber: 2815
    functionLinenumberEnd: 2820
    functionName: nt_delete_node
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_insert
    linkageType: ''
    returnType: int
    signature: int nt_delete_node(nodetree *self, const char *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2835,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2838,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:2840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - self
    - index
    - capacity
    argTypes:
    - nodetree*
    - indexObject*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2822
    functionDepth: 1
    functionLinenumber: 2822
    functionLinenumberEnd: 2845
    functionName: nt_init
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - calloc
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int nt_init(nodetree *self, indexObject *index, unsigned capacity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2851,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2854,1
    - Dst: nt_init
      Src: /src/mercurial/mercurial/cext/revlog.c:2855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - nodetreeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2847
    functionDepth: 2
    functionLinenumber: 2847
    functionLinenumberEnd: 2856
    functionName: ntobj_init
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_init
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int ntobj_init(nodetreeObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nt_find
      Src: /src/mercurial/mercurial/cext/revlog.c:2860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - node
    - nodelen
    argTypes:
    - nodetree*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2858
    functionDepth: 4
    functionLinenumber: 2858
    functionLinenumberEnd: 2861
    functionName: nt_partialmatch
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_find
    linkageType: ''
    returnType: int
    signature: int nt_partialmatch(nodetree *self, const char *node, Py_ssize_t nodelen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nt_level
      Src: /src/mercurial/mercurial/cext/revlog.c:2879,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:2884,1
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/revlog.c:2887,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:2905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - node
    argTypes:
    - nodetree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2872
    functionDepth: 4
    functionLinenumber: 2872
    functionLinenumberEnd: 2907
    functionName: nt_shortest
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_level
    - index_node_existing
    - PyErr_SetString
    - memcmp
    linkageType: ''
    returnType: int
    signature: int nt_shortest(nodetree *self, const char *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:2915,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:2917,1
    - Dst: nt_shortest
      Src: /src/mercurial/mercurial/cext/revlog.c:2920,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:2924,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:2927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - nodetreeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2909
    functionDepth: 5
    functionLinenumber: 2909
    functionLinenumberEnd: 2928
    functionName: ntobj_shortest
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - nt_shortest
    - node_check
    - raise_revlog_error
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ntobj_shortest(nodetreeObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:2932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - nodetree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2930
    functionDepth: 0
    functionLinenumber: 2930
    functionLinenumberEnd: 2934
    functionName: nt_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void nt_dealloc(nodetree *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:2938,1
    - Dst: nt_dealloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2939,1
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/revlog.c:2940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - nodetreeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2936
    functionDepth: 1
    functionLinenumber: 2936
    functionLinenumberEnd: 2941
    functionName: ntobj_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_dealloc
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ntobj_dealloc(nodetreeObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nt_init
      Src: /src/mercurial/mercurial/cext/revlog.c:2994,1
    - Dst: nt_dealloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2995,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:2998,1
    - Dst: nt_dealloc
      Src: /src/mercurial/mercurial/cext/revlog.c:2999,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:3003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2991
    functionDepth: 5
    functionLinenumber: 2991
    functionLinenumberEnd: 3008
    functionName: index_init_nt
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_dealloc
    - nt_init
    - nt_insert
    - index_length
    linkageType: ''
    returnType: int
    signature: int index_init_nt(indexObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: index_init_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3021,1
    - Dst: nt_find
      Src: /src/mercurial/mercurial/cext/revlog.c:3025,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:3040,1
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/revlog.c:3043,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:3044,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:3051,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:3054,1
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/revlog.c:3058,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - self
    - node
    argTypes:
    - indexObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3017
    functionDepth: 6
    functionLinenumber: 3017
    functionLinenumberEnd: 3068
    functionName: index_find_node
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - index_init_nt
    - nt_insert
    - index_node_existing
    - nt_find
    - memcmp
    linkageType: ''
    returnType: int
    signature: int index_find_node(indexObject *self, const char *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:3075,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3076,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3082,1
    - Dst: index_find_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3084,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3086,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:3088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3070
    functionDepth: 7
    functionLinenumber: 3070
    functionLinenumberEnd: 3090
    functionName: index_getitem
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - index_find_node
    - PyErr_SetString
    - node_check
    - raise_revlog_error
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_getitem(indexObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:3100,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:3103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3095
    functionDepth: 5
    functionLinenumber: 3095
    functionLinenumberEnd: 3109
    functionName: index_populate_nt
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_insert
    - index_node_existing
    linkageType: ''
    returnType: int
    signature: int index_populate_nt(indexObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:3118,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3122,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3127,1
    - Dst: hexdigit
      Src: /src/mercurial/mercurial/cext/revlog.c:3132,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:3133,1
    - Dst: PyErr_Clear
      Src: /src/mercurial/mercurial/cext/revlog.c:3135,1
    - Dst: index_init_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3139,1
    - Dst: index_populate_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3141,1
    - Dst: nt_partialmatch
      Src: /src/mercurial/mercurial/cext/revlog.c:3143,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:3147,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:3152,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:3155,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/revlog.c:3159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3111
    functionDepth: 6
    functionLinenumber: 3111
    functionLinenumberEnd: 3160
    functionName: index_partialmatch
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - index_populate_nt
    - index_init_nt
    - hexdigit
    - index_node_existing
    - nt_partialmatch
    - PyErr_SetString
    - raise_revlog_error
    - PyErr_Clear
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_partialmatch(indexObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:3168,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3170,1
    - Dst: index_init_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3174,1
    - Dst: index_populate_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3176,1
    - Dst: nt_shortest
      Src: /src/mercurial/mercurial/cext/revlog.c:3178,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:3182,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3162
    functionDepth: 6
    functionLinenumber: 3162
    functionLinenumberEnd: 3186
    functionName: index_shortest
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_init_nt
    - nt_shortest
    - node_check
    - raise_revlog_error
    - PyArg_ParseTuple
    - index_populate_nt
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_shortest(indexObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/revlog.c:3194,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3196,1
    - Dst: index_find_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3198,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3204
      start: 3188
    functionDepth: 7
    functionLinenumber: 3188
    functionLinenumberEnd: 3204
    functionName: index_m_get
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_find_node
    - PyArg_ParseTuple
    - node_check
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_m_get(indexObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:3210,1
    - Dst: pylong_to_long
      Src: /src/mercurial/mercurial/cext/revlog.c:3212,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:3215,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3218,1
    - Dst: index_find_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3206
    functionDepth: 7
    functionLinenumber: 3206
    functionLinenumberEnd: 3229
    functionName: index_contains
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - index_find_node
    - index_length
    - node_check
    - pylong_to_long
    linkageType: ''
    returnType: int
    signature: int index_contains(indexObject *self, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_contains
      Src: /src/mercurial/mercurial/cext/revlog.c:3233,1
    - Dst: PyBool_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 3231
    functionDepth: 8
    functionLinenumber: 3231
    functionLinenumberEnd: 3237
    functionName: index_m_has_node
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - index_contains
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_m_has_node(indexObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3244,1
    - Dst: index_find_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3246,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3248,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:3250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - val
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3239
    functionDepth: 7
    functionLinenumber: 3239
    functionLinenumberEnd: 3252
    functionName: index_m_rev
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - index_find_node
    - raise_revlog_error
    - node_check
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_m_rev(indexObject *self, PyObject *val)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3266,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3273,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3280,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3282,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3283,1
    - Dst: pylist_append_owned
      Src: /src/mercurial/mercurial/cext/revlog.c:3301,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3302,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:3312,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:3335,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:3338,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3339,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 3
    argNames:
    - self
    - revs
    - revcount
    argTypes:
    - indexObject*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3261
    functionDepth: 4
    functionLinenumber: 3261
    functionLinenumberEnd: 3341
    functionName: find_gca_candidates
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - pylist_append_owned
    - PyErr_NoMemory
    - index_get_parents
    - PyList_New
    - free
    - calloc
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *find_gca_candidates(indexObject *self, const int *revs,\n
      \                                    int revcount)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:3349,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:3359,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3366,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:3366,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3371,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3373,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3375,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3377,1
    - Dst: calloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3381,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3383,1
    - Dst: PyList_Sort
      Src: /src/mercurial/mercurial/cext/revlog.c:3387,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3391,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:3391,1
    - Dst: index_get_parents
      Src: /src/mercurial/mercurial/cext/revlog.c:3411,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3462,1
    - Dst: PyDict_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3466,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:3476,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3477,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3478,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:3479,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3480,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3481,1
    - Dst: PyDict_Keys
      Src: /src/mercurial/mercurial/cext/revlog.c:3486,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:3489,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:3490,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/revlog.c:3491,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3492,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 111
    argCount: 2
    argNames:
    - self
    - revs
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3347
    functionDepth: 4
    functionLinenumber: 3347
    functionLinenumberEnd: 3495
    functionName: find_deepest
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - PyList_Sort
    - PyDict_New
    - PyList_GET_ITEM
    - index_get_parents
    - PyDict_Keys
    - PyErr_Format
    - PyDict_SetItem
    - PyList_New
    - PyList_GET_SIZE
    - calloc
    - free
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *find_deepest(indexObject *self, PyObject *revs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Length
      Src: /src/mercurial/mercurial/cext/revlog.c:3509,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3510,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/revlog.c:3512,1
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:3513,1
    - Dst: PySequence_GetItem
      Src: /src/mercurial/mercurial/cext/revlog.c:3517,1
    - Dst: PyLong_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:3521,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3522,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3524,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3527,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3528,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3530,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3534,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/revlog.c:3550,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3560,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/revlog.c:3565,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3568,1
    - Dst: PyList_SET_ITEM
      Src: /src/mercurial/mercurial/cext/revlog.c:3571,1
    - Dst: find_gca_candidates
      Src: /src/mercurial/mercurial/cext/revlog.c:3575,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/revlog.c:3580,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/revlog.c:3584,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3585,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3501
    functionDepth: 5
    functionLinenumber: 3501
    functionLinenumberEnd: 3587
    functionName: index_commonancestorsheads
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - PySequence_Length
    - PyLong_AsLong
    - Py_DECREF
    - PySequence_GetItem
    - PyErr_NoMemory
    - find_gca_candidates
    - PyList_SET_ITEM
    - PyErr_Format
    - PyMem_Free
    - index_length
    - PyErr_SetString
    - PyMem_Malloc
    - PyList_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_commonancestorsheads(indexObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: index_commonancestorsheads
      Src: /src/mercurial/mercurial/cext/revlog.c:3596,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/mercurial/cext/revlog.c:3600,1
    - Dst: find_deepest
      Src: /src/mercurial/mercurial/cext/revlog.c:3604,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3593
    functionDepth: 6
    functionLinenumber: 3593
    functionLinenumberEnd: 3607
    functionName: index_ancestors
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - find_deepest
    - Py_DECREF
    - index_commonancestorsheads
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_ancestors(indexObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: index_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3622,1
    - Dst: nt_delete_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - indexObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3612
    functionDepth: 6
    functionLinenumber: 3612
    functionLinenumberEnd: 3627
    functionName: index_invalidate_added
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_delete_node
    - index_node
    linkageType: ''
    returnType: void
    signature: void index_invalidate_added(indexObject *self, Py_ssize_t start)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: index_length
      Src: /src/mercurial/mercurial/cext/revlog.c:3636,1
    - Dst: PySlice_GetIndicesEx
      Src: /src/mercurial/mercurial/cext/revlog.c:3639,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3656,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3662,1
    - Dst: index_node_existing
      Src: /src/mercurial/mercurial/cext/revlog.c:3672,1
    - Dst: nt_delete_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3676,1
    - Dst: index_invalidate_added
      Src: /src/mercurial/mercurial/cext/revlog.c:3679,1
    - Dst: index_invalidate_added
      Src: /src/mercurial/mercurial/cext/revlog.c:3691,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/revlog.c:3698,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - indexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3633
    functionDepth: 7
    functionLinenumber: 3633
    functionLinenumberEnd: 3700
    functionName: index_slice_del
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PySlice_GetIndicesEx
    - Py_CLEAR
    - index_node_existing
    - index_length
    - PyErr_SetString
    - index_invalidate_added
    - nt_delete_node
    linkageType: ''
    returnType: int
    signature: int index_slice_del(indexObject *self, PyObject *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Check
      Src: /src/mercurial/mercurial/cext/revlog.c:3715,1
    - Dst: index_slice_del
      Src: /src/mercurial/mercurial/cext/revlog.c:3716,1
    - Dst: node_check
      Src: /src/mercurial/mercurial/cext/revlog.c:3718,1
    - Dst: nt_delete_node
      Src: /src/mercurial/mercurial/cext/revlog.c:3722,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/revlog.c:3724,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:3726,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3727,1
    - Dst: index_init_nt
      Src: /src/mercurial/mercurial/cext/revlog.c:3731,1
    - Dst: nt_insert
      Src: /src/mercurial/mercurial/cext/revlog.c:3733,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - indexObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3709
    functionDepth: 8
    functionLinenumber: 3709
    functionLinenumberEnd: 3734
    functionName: index_assign_subscript
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - index_init_nt
    - nt_insert
    - PySlice_Check
    - PyErr_SetString
    - node_check
    - index_slice_del
    - nt_delete_node
    linkageType: ''
    returnType: int
    signature: "int index_assign_subscript(indexObject *self, PyObject *item,\n                                  PyObject
      *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:3753,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:3757,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/revlog.c:3758,1
    - Dst: raise_revlog_error
      Src: /src/mercurial/mercurial/cext/revlog.c:3761,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/revlog.c:3772,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - offsets
    argTypes:
    - indexObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3740
    functionDepth: 2
    functionLinenumber: 3740
    functionLinenumberEnd: 3778
    functionName: inline_scan
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 1
    functionsReached:
    - raise_revlog_error
    - getbe32
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t inline_scan(indexObject *self, const char **offsets)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/revlog.c:3799,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3802,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/mercurial/cext/revlog.c:3812,1
    - Dst: PyObject_CheckBuffer
      Src: /src/mercurial/mercurial/cext/revlog.c:3816,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3817,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3822,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:3834,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/mercurial/mercurial/cext/revlog.c:3840,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/mercurial/cext/revlog.c:3842,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/revlog.c:3846,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/revlog.c:3848,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/revlog.c:3850,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3855,1
    - Dst: inline_scan
      Src: /src/mercurial/mercurial/cext/revlog.c:3858,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/revlog.c:3864,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - indexObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3780
    functionDepth: 3
    functionLinenumber: 3780
    functionLinenumberEnd: 3873
    functionName: index_init
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - inline_scan
    - Py_BuildValue
    - Py_INCREF
    - PyObject_CheckBuffer
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - PyObject_GetBuffer
    - PyObject_GC_UnTrack
    - memset
    linkageType: ''
    returnType: int
    signature: int index_init(indexObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3875
    functionDepth: 1
    functionLinenumber: 3875
    functionLinenumberEnd: 3879
    functionName: index_nodemap
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_nodemap(indexObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/revlog.c:3884,1
    - Dst: nt_dealloc
      Src: /src/mercurial/mercurial/cext/revlog.c:3888,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/revlog.c:3891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3881
    functionDepth: 1
    functionLinenumber: 3881
    functionLinenumberEnd: 3892
    functionName: _index_clearcaches
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - nt_dealloc
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _index_clearcaches(indexObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _index_clearcaches
      Src: /src/mercurial/mercurial/cext/revlog.c:3896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3894
    functionDepth: 2
    functionLinenumber: 3894
    functionLinenumberEnd: 3900
    functionName: index_clearcaches
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 1
    functionsReached:
    - _index_clearcaches
    linkageType: ''
    returnType: PyObject
    signature: PyObject *index_clearcaches(indexObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _index_clearcaches
      Src: /src/mercurial/mercurial/cext/revlog.c:3904,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3905,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/revlog.c:3907,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/revlog.c:3908,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3910,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/revlog.c:3911,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:3912,1
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/revlog.c:3913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - indexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3914
      start: 3902
    functionDepth: 2
    functionLinenumber: 3902
    functionLinenumberEnd: 3914
    functionName: index_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - _index_clearcaches
    - PyMem_Free
    - PyBuffer_Release
    - PyObject_Del
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: void
    signature: void index_dealloc(indexObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/revlog.c:4094,1
    - Dst: index_init
      Src: /src/mercurial/mercurial/cext/revlog.c:4098,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:4103,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:4108,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/revlog.c:4111,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:4114,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/revlog.c:4115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4088
    functionDepth: 4
    functionLinenumber: 4088
    functionLinenumberEnd: 4117
    functionName: parse_index2
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_INCREF
    - index_init
    - Py_XDECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *parse_index2(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/revlog.c:4129,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:4131,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/revlog.c:4132,1
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/revlog.c:4135,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/revlog.c:4137,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/revlog.c:4138,1
    - Dst: PyCapsule_New
      Src: /src/mercurial/mercurial/cext/revlog.c:4140,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/revlog.c:4142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4125
    functionDepth: 1
    functionLinenumber: 4125
    functionLinenumberEnd: 4143
    functionName: revlog_module_init
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyCapsule_New
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void revlog_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/base85.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: b85prep
    functionSourceFile: /src/mercurial/mercurial/cext/base85.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void b85prep(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/base85.c:41,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/base85.c:54,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/base85.c:58,1
    - Dst: _PyBytes_Resize
      Src: /src/mercurial/mercurial/cext/base85.c:78,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 82
    functionName: b85encode
    functionSourceFile: /src/mercurial/mercurial/cext/base85.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - PyBytes_AsString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *b85encode(PyObject *self, PyObject *args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/base85.c:93,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/base85.c:102,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/base85.c:106,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/base85.c:118,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/base85.c:129,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/base85.c:138,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/base85.c:163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 165
    functionName: b85decode
    functionSourceFile: /src/mercurial/mercurial/cext/base85.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - PyErr_Format
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *b85decode(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b85prep
      Src: /src/mercurial/mercurial/cext/base85.c:187,1
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/cext/base85.c:189,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/mercurial/cext/base85.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: PyInit_base85
    functionSourceFile: /src/mercurial/mercurial/cext/base85.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    - b85prep
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_base85(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/bdiff.c:32,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/mercurial/cext/bdiff.c:36,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/bdiff.c:36,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/mercurial/cext/bdiff.c:36,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/mercurial/cext/bdiff.c:37,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/bdiff.c:37,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/mercurial/cext/bdiff.c:37,1
    - Dst: bdiff_diff
      Src: /src/mercurial/mercurial/cext/bdiff.c:43,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/bdiff.c:48,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/bdiff.c:54,1
    - Dst: PyList_SetItem
      Src: /src/mercurial/mercurial/cext/bdiff.c:55,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/bdiff.c:60,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/bdiff.c:61,1
    - Dst: bdiff_freehunks
      Src: /src/mercurial/mercurial/cext/bdiff.c:62,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 64
    functionName: blocks
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - bdiff_diff
    - bdiff_freehunks
    - PyErr_NoMemory
    - PyList_SetItem
    - PyBytes_Size
    - PyBytes_AsString
    - bdiff_splitlines
    - PyList_New
    - free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *blocks(PyObject *self, PyObject *args)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/bdiff.c:80,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/mercurial/mercurial/cext/bdiff.c:84,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/bdiff.c:85,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/mercurial/mercurial/cext/bdiff.c:89,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/bdiff.c:90,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/bdiff.c:98,1
    - Dst: PyEval_SaveThread
      Src: /src/mercurial/mercurial/cext/bdiff.c:102,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/mercurial/cext/bdiff.c:125,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/mercurial/cext/bdiff.c:127,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:130,1
    - Dst: bdiff_diff
      Src: /src/mercurial/mercurial/cext/bdiff.c:134,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:136,1
    - Dst: PyEval_RestoreThread
      Src: /src/mercurial/mercurial/cext/bdiff.c:149,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/bdiff.c:152,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/bdiff.c:159,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/bdiff.c:165,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/bdiff.c:167,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/bdiff.c:170,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/bdiff.c:171,1
    - Dst: PyEval_RestoreThread
      Src: /src/mercurial/mercurial/cext/bdiff.c:180,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/bdiff.c:182,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/bdiff.c:183,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/bdiff.c:184,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/bdiff.c:185,1
    - Dst: bdiff_freehunks
      Src: /src/mercurial/mercurial/cext/bdiff.c:186,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 3
    argNames:
    - self
    - args
    - prune_suffix
    argTypes:
    - PyObject*
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 188
    functionName: _inner_bdiff
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyEval_RestoreThread
    - memcpy
    - bdiff_diff
    - putbe32
    - PyErr_NoMemory
    - bdiff_freehunks
    - PyBuffer_IsContiguous
    - PyBytes_AsString
    - PyEval_SaveThread
    - PyBuffer_Release
    - bdiff_splitlines
    - PyErr_SetString
    - free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_inner_bdiff(PyObject *self, PyObject *args, bool prune_suffix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/bdiff.c:203,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/bdiff.c:206,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/mercurial/cext/bdiff.c:207,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/mercurial/cext/bdiff.c:209,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/bdiff.c:228,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/bdiff.c:231,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:232,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 233
    functionName: fixws
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - PyBytes_Size
    - PyBytes_AsString
    - PyMem_Free
    - PyMem_Malloc
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *fixws(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/bdiff.c:238,1
    - Dst: PyList_SET_ITEM
      Src: /src/mercurial/mercurial/cext/bdiff.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - list
    - destidx
    - source
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: sliceintolist
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyList_SET_ITEM
    linkageType: ''
    returnType: bool
    signature: "bool sliceintolist(PyObject *list, Py_ssize_t destidx,\n                          const
      char *source, Py_ssize_t len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/bdiff.c:252,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/bdiff.c:256,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/bdiff.c:265,1
    - Dst: sliceintolist
      Src: /src/mercurial/mercurial/cext/bdiff.c:271,1
    - Dst: sliceintolist
      Src: /src/mercurial/mercurial/cext/bdiff.c:278,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/bdiff.c:283,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 285
    functionName: splitnewlines
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - sliceintolist
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *splitnewlines(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/bdiff.c:291,1
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/bdiff.c:296,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/bdiff.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - a1
    - a2
    - b1
    - b2
    - priv
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 299
    functionName: hunk_consumer
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int hunk_consumer(int64_t a1, int64_t a2, int64_t b1, int64_t b2,\n
      \                        void *priv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/bdiff.c:318,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/bdiff.c:325,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:327,1
    - Dst: xdl_diff
      Src: /src/mercurial/mercurial/cext/bdiff.c:332,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/bdiff.c:333,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/bdiff.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 338
    functionName: xdiffblocks
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - xdl_diff
    - PyErr_NoMemory
    - PyList_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xdiffblocks(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner_bdiff
      Src: /src/mercurial/mercurial/cext/bdiff.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: bdiff
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 1
    functionsReached:
    - _inner_bdiff
    linkageType: ''
    returnType: PyObject
    signature: PyObject *bdiff(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _inner_bdiff
      Src: /src/mercurial/mercurial/cext/bdiff.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: storage_diff
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - _inner_bdiff
    linkageType: ''
    returnType: PyObject
    signature: PyObject *storage_diff(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/cext/bdiff.c:380,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/mercurial/cext/bdiff.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: PyInit_bdiff
    functionSourceFile: /src/mercurial/mercurial/cext/bdiff.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_bdiff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - 'off'
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: hexdigit
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.h
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int hexdigit(const char *p, Py_ssize_t off)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/charencode.c:107,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/charencode.c:113,1
    - Dst: hexdigit
      Src: /src/mercurial/mercurial/cext/charencode.c:116,1
    - Dst: hexdigit
      Src: /src/mercurial/mercurial/cext/charencode.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 122
    functionName: unhexlify
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - hexdigit
    - PyBytes_AsString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *unhexlify(const char *str, Py_ssize_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/charencode.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 148
    functionName: isasciistr
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *isasciistr(PyObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/charencode.c:158,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/charencode.c:159,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/charencode.c:161,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/charencode.c:166,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/mercurial/cext/charencode.c:172,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/mercurial/mercurial/cext/charencode.c:175,1
    - Dst: PyErr_SetObject
      Src: /src/mercurial/mercurial/cext/charencode.c:178,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/charencode.c:179,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/charencode.c:187,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/charencode.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - str_obj
    - table
    - fallback_fn
    argTypes:
    - PyObject*
    - char[]
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: _asciitransform
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - PyErr_SetObject
    - PyBytes_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - PyBytes_AS_STRING
    - Py_XDECREF
    - PyUnicodeDecodeError_Create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asciitransform(PyObject *str_obj, const char table[128], PyObject *fallback_fn)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/charencode.c:196,1
    - Dst: _asciitransform
      Src: /src/mercurial/mercurial/cext/charencode.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: asciilower
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _asciitransform
    linkageType: ''
    returnType: PyObject
    signature: PyObject *asciilower(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/charencode.c:205,1
    - Dst: _asciitransform
      Src: /src/mercurial/mercurial/cext/charencode.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: asciiupper
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _asciitransform
    linkageType: ''
    returnType: PyObject
    signature: PyObject *asciiupper(PyObject *self, PyObject *args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/charencode.c:221,1
    - Dst: PyLong_AS_LONG
      Src: /src/mercurial/mercurial/cext/charencode.c:227,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.c:239,1
    - Dst: _PyDict_NewPresized
      Src: /src/mercurial/mercurial/cext/charencode.c:245,1
    - Dst: PyDict_Size
      Src: /src/mercurial/mercurial/cext/charencode.c:245,1
    - Dst: PyDict_Next
      Src: /src/mercurial/mercurial/cext/charencode.c:250,1
    - Dst: dirstate_tuple_check
      Src: /src/mercurial/mercurial/cext/charencode.c:251,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.c:252,1
    - Dst: _asciitransform
      Src: /src/mercurial/mercurial/cext/charencode.c:261,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/mercurial/cext/charencode.c:264,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/charencode.c:271,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/charencode.c:272,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/charencode.c:275,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/charencode.c:280,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 282
    functionName: make_file_foldmap
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyDict_Next
    - Py_DECREF
    - PyDict_Size
    - _PyDict_NewPresized
    - Py_XDECREF
    - _asciitransform
    - PyObject_CallFunctionObjArgs
    - PyDict_SetItem
    - PyErr_SetString
    - dirstate_tuple_check
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *make_file_foldmap(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.c:294,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.c:300,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/charencode.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - len
    - paranoid
    argTypes:
    - char*
    - Py_ssize_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 318
    functionName: jsonescapelen
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t jsonescapelen(const char *buf, Py_ssize_t len, bool paranoid)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 340
    functionName: jsonescapechar2
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char jsonescapechar2(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/charencode.c:355,1
    - Dst: jsonescapechar2
      Src: /src/mercurial/mercurial/cext/charencode.c:362,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/charencode.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - escbuf
    - esclen
    - origbuf
    - origlen
    - paranoid
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - bool
    assertStmts:
    - condition: (j + l <= esclen)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/mercurial/mercurial/cext/charencode.c
    constantsTouched: []
    func_position:
      end: 372
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 372
    functionName: encodejsonescape
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - jsonescapechar2
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void encodejsonescape(char *escbuf, Py_ssize_t esclen,\n                             const
      char *origbuf, Py_ssize_t origlen,\n                             bool paranoid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/charencode.c:380,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/charencode.c:385,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/charencode.c:386,1
    - Dst: jsonescapelen
      Src: /src/mercurial/mercurial/cext/charencode.c:387,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/charencode.c:392,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/charencode.c:396,1
    - Dst: encodejsonescape
      Src: /src/mercurial/mercurial/cext/charencode.c:400,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/charencode.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 404
    functionName: jsonescapeu8fast
    functionSourceFile: /src/mercurial/mercurial/cext/charencode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - encodejsonescape
    - Py_INCREF
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - jsonescapelen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *jsonescapeu8fast(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: HgRevlogIndex_Check
    functionSourceFile: /src/mercurial/mercurial/cext/revlog.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HgRevlogIndex_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitset
    - c
    argTypes:
    - uint32_t[]
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: inset
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int inset(const uint32_t bitset[], char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/pathencode.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dest
    - destlen
    - destsize
    - c
    argTypes:
    - char*
    - Py_ssize_t*
    - size_t
    - char
    assertStmts:
    - condition: (*destlen < destsize)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: charcopy
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void charcopy(char *dest, Py_ssize_t *destlen, size_t destsize,\n
      \                           char c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/pathencode.c:79,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/pathencode.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - dest
    - destlen
    - destsize
    - src
    - len
    argTypes:
    - char*
    - Py_ssize_t*
    - size_t
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (*destlen + len < destsize)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: memcopy
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void memcopy(char *dest, Py_ssize_t *destlen, size_t destsize,\n                           const
      void *src, Py_ssize_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:90,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dest
    - destlen
    - destsize
    - c
    argTypes:
    - char*
    - Py_ssize_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: hexencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - charcopy
    linkageType: ''
    returnType: void
    signature: "void hexencode(char *dest, Py_ssize_t *destlen, size_t destsize,\n
      \                            uint8_t c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:98,1
    - Dst: hexencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dest
    - destlen
    - destsize
    - c
    argTypes:
    - char*
    - Py_ssize_t*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: escape3
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - hexencode
    - charcopy
    linkageType: ''
    returnType: void
    signature: "void escape3(char *dest, Py_ssize_t *destlen, size_t destsize,\n                           char
      c)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:115,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:119,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:129,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:136,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:137,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:145,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - dest
    - destsize
    - src
    - len
    argTypes:
    - char*
    - size_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 151
    functionName: _encodedir
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - memcopy
    - charcopy
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _encodedir(char *dest, size_t destsize, const char *src,\n
      \                            Py_ssize_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/pathencode.c:159,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:163,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:164,1
    - Dst: _encodedir
      Src: /src/mercurial/mercurial/cext/pathencode.c:168,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:171,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:175,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/pathencode.c:178,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/pathencode.c:178,1
    - Dst: Py_SET_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:179,1
    - Dst: Py_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:179,1
    - Dst: _encodedir
      Src: /src/mercurial/mercurial/cext/pathencode.c:180,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/pathencode.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(newobj))
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: encodedir
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_SET_SIZE
    - _encodedir
    - Py_INCREF
    - PyBytes_Check
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyBytes_AS_STRING
    - assert
    - Py_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *encodedir(PyObject *self, PyObject *args)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:203,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:207,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:211,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:215,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:219,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:223,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:227,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:231,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:241,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:260,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:270,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:302,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:312,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:313,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:316,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:324,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:340,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:356,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:374,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:378,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:390,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:391,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:396,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:397,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:401,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:406,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:413,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:422,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:425,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:435,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:436,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:440,1
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:445,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:446,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:462,1
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:466,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:468,1
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:471,1
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:472,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:474,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:475,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:478,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 288
    argCount: 8
    argNames:
    - twobytes
    - onebyte
    - dest
    - destlen
    - destsize
    - src
    - len
    - encodedir
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - char*
    - Py_ssize_t
    - size_t
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 488
    functionName: _encode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - escape3
    - inset
    - memcopy
    - charcopy
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _encode(const uint32_t twobytes[8], const uint32_t onebyte[8],\n
      \                         char *dest, Py_ssize_t destlen, size_t destsize,\n
      \                         const char *src, Py_ssize_t len, int encodedir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _encode
      Src: /src/mercurial/mercurial/cext/pathencode.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destsize
    - src
    - len
    argTypes:
    - char*
    - size_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 505
    functionName: basicencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - _encode
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t basicencode(char *dest, size_t destsize, const char *src,\n
      \                             Py_ssize_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:520,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:521,1
    - Dst: inset
      Src: /src/mercurial/mercurial/cext/pathencode.c:522,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:523,1
    - Dst: escape3
      Src: /src/mercurial/mercurial/cext/pathencode.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - dest
    - destsize
    - src
    - len
    argTypes:
    - char*
    - size_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 530
    functionName: _lowerencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - escape3
    - charcopy
    - inset
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _lowerencode(char *dest, size_t destsize, const char *src,\n
      \                              Py_ssize_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/pathencode.c:538,1
    - Dst: _lowerencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:542,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:543,1
    - Dst: _lowerencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:545,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/pathencode.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 532
    functionDepth: 5
    functionLinenumber: 532
    functionLinenumberEnd: 549
    functionName: lowerencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - _lowerencode
    - PyArg_ParseTuple
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lowerencode(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _encode
      Src: /src/mercurial/mercurial/cext/pathencode.c:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destsize
    - src
    - len
    argTypes:
    - char*
    - size_t
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 552
    functionDepth: 5
    functionLinenumber: 552
    functionLinenumberEnd: 562
    functionName: auxencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - _encode
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t auxencode(char *dest, size_t destsize, const char *src,\n
      \                           Py_ssize_t len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:586,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:599,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/pathencode.c:604,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:605,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:622,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:625,1
    - Dst: charcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:646,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:665,1
    - Dst: hexencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:672,1
    - Dst: memcopy
      Src: /src/mercurial/mercurial/cext/pathencode.c:676,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/pathencode.c:680,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/pathencode.c:680,1
    - Dst: Py_SET_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:681,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - src
    - len
    - sha
    argTypes:
    - char*
    - Py_ssize_t
    - char[]
    assertStmts:
    - condition: (PyBytes_Check(ret))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    constantsTouched: []
    func_position:
      end: 684
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 684
    functionName: hashmangle
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - hexencode
    - Py_SET_SIZE
    - charcopy
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyErr_SetString
    - memcopy
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *hashmangle(const char *src, Py_ssize_t len, const char sha[20])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/mercurial/cext/pathencode.c:696,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:698,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/mercurial/cext/pathencode.c:702,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:703,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:706,1
    - Dst: PyObject_CallFunction
      Src: /src/mercurial/mercurial/cext/pathencode.c:713,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/mercurial/cext/pathencode.c:719,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:720,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/pathencode.c:725,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:725,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:726,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:728,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/pathencode.c:732,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/pathencode.c:732,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - hash
    - str
    - len
    argTypes:
    - char[]
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 735
    functionName: sha1hash
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - memcpy
    - Py_DECREF
    - PyObject_GetAttrString
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyObject_CallFunction
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyObject_CallMethod
    linkageType: ''
    returnType: int
    signature: int sha1hash(char hash[20], const char *str, Py_ssize_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:749,1
    - Dst: _encodedir
      Src: /src/mercurial/mercurial/cext/pathencode.c:753,1
    - Dst: sha1hash
      Src: /src/mercurial/mercurial/cext/pathencode.c:754,1
    - Dst: _lowerencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:757,1
    - Dst: auxencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:758,1
    - Dst: hashmangle
      Src: /src/mercurial/mercurial/cext/pathencode.c:759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 739
    functionDepth: 6
    functionLinenumber: 739
    functionLinenumberEnd: 760
    functionName: hashencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - hashmangle
    - _lowerencode
    - _encodedir
    - auxencode
    - PyErr_SetString
    - sha1hash
    linkageType: ''
    returnType: PyObject
    signature: PyObject *hashencode(const char *src, Py_ssize_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/pathencode.c:768,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:772,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/pathencode.c:773,1
    - Dst: basicencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:780,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/pathencode.c:785,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/pathencode.c:789,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/pathencode.c:792,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/pathencode.c:792,1
    - Dst: Py_SET_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:793,1
    - Dst: Py_SIZE
      Src: /src/mercurial/mercurial/cext/pathencode.c:793,1
    - Dst: basicencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:794,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/pathencode.c:794,1
    - Dst: hashencode
      Src: /src/mercurial/mercurial/cext/pathencode.c:798,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(newobj))
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    constantsTouched: []
    func_position:
      end: 802
      start: 762
    functionDepth: 7
    functionLinenumber: 762
    functionLinenumberEnd: 802
    functionName: pathencode
    functionSourceFile: /src/mercurial/mercurial/cext/pathencode.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - hashencode
    - Py_SET_SIZE
    - basicencode
    - Py_INCREF
    - PyBytes_Check
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyBytes_AS_STRING
    - assert
    - Py_SIZE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pathencode(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PYLONG_VALUE
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYLONG_VALUE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PYLONG_VALUE
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYLONG_VALUE(o)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - path
    - pos
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: _finddir
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _finddir(const char *path, Py_ssize_t pos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/dirs.c:60,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/dirs.c:61,1
    - Dst: _finddir
      Src: /src/mercurial/mercurial/cext/dirs.c:74,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:78,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:85,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/dirs.c:91,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/dirs.c:95,1
    - Dst: PYLONG_VALUE
      Src: /src/mercurial/mercurial/cext/dirs.c:97,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/dirs.c:98,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/dirs.c:103,1
    - Dst: PYLONG_VALUE
      Src: /src/mercurial/mercurial/cext/dirs.c:108,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/dirs.c:109,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:110,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/dirs.c:113,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:118,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - dirs
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 121
    functionName: _addpath
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - _finddir
    - PyDict_GetItem
    - Py_CLEAR
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyDict_SetItem
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PYLONG_VALUE
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _addpath(PyObject *dirs, PyObject *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/dirs.c:125,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/dirs.c:126,1
    - Dst: _finddir
      Src: /src/mercurial/mercurial/cext/dirs.c:130,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/dirs.c:133,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/dirs.c:138,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:140,1
    - Dst: PYLONG_VALUE
      Src: /src/mercurial/mercurial/cext/dirs.c:145,1
    - Dst: PyDict_DelItem
      Src: /src/mercurial/mercurial/cext/dirs.c:146,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/dirs.c:150,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - dirs
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 158
    functionName: _delpath
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _finddir
    - PyDict_GetItem
    - Py_CLEAR
    - PyDict_DelItem
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PYLONG_VALUE
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _delpath(PyObject *dirs, PyObject *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/mercurial/mercurial/cext/dirs.c:165,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/dirs.c:166,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:167,1
    - Dst: dirstate_tuple_check
      Src: /src/mercurial/mercurial/cext/dirs.c:171,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:172,1
    - Dst: _addpath
      Src: /src/mercurial/mercurial/cext/dirs.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - dirs
    - source
    - only_tracked
    argTypes:
    - PyObject*
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: dirs_fromdict
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - _addpath
    - PyDict_Next
    - PyBytes_Check
    - PyErr_SetString
    - dirstate_tuple_check
    linkageType: ''
    returnType: int
    signature: int dirs_fromdict(PyObject *dirs, PyObject *source, bool only_tracked)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/mercurial/mercurial/cext/dirs.c:193,1
    - Dst: PyIter_Next
      Src: /src/mercurial/mercurial/cext/dirs.c:197,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/dirs.c:198,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:199,1
    - Dst: _addpath
      Src: /src/mercurial/mercurial/cext/dirs.c:203,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/mercurial/cext/dirs.c:205,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/dirs.c:208,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:209,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - dirs
    - source
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: dirs_fromiter
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - _addpath
    - Py_CLEAR
    - PyErr_Occurred
    - Py_DECREF
    - PyBytes_Check
    - PyIter_Next
    - PyErr_SetString
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int dirs_fromiter(PyObject *dirs, PyObject *source)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/mercurial/cext/dirs.c:227,1
    - Dst: PyDict_New
      Src: /src/mercurial/mercurial/cext/dirs.c:231,1
    - Dst: PyDict_Check
      Src: /src/mercurial/mercurial/cext/dirs.c:238,1
    - Dst: dirs_fromdict
      Src: /src/mercurial/mercurial/cext/dirs.c:239,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/dirs.c:241,1
    - Dst: dirs_fromiter
      Src: /src/mercurial/mercurial/cext/dirs.c:245,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - dirsObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 253
    functionName: dirs_init
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PyDict_Check
    - dirs_fromiter
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - dirs_fromdict
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int dirs_init(dirsObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/dirs.c:259,1
    - Dst: _addpath
      Src: /src/mercurial/mercurial/cext/dirs.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - dirsObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 266
    functionName: dirs_addpath
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - _addpath
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirs_addpath(dirsObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/dirs.c:272,1
    - Dst: _delpath
      Src: /src/mercurial/mercurial/cext/dirs.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - dirsObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: dirs_delpath
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - _delpath
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirs_delpath(dirsObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/dirs.c:283,1
    - Dst: PyDict_Contains
      Src: /src/mercurial/mercurial/cext/dirs.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - dirsObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: dirs_contains
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyDict_Contains
    linkageType: ''
    returnType: int
    signature: int dirs_contains(dirsObject *self, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/dirs.c:288,1
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/dirs.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirsObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: dirs_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dirs_dealloc(dirsObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/mercurial/mercurial/cext/dirs.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirsObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: dirs_iter
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirs_iter(dirsObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/dirs.c:321,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/dirs.c:323,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/dirs.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 326
    functionName: dirs_module_init
    functionSourceFile: /src/mercurial/mercurial/cext/dirs.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void dirs_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: dirstate_tuple_check
    functionSourceFile: /src/mercurial/mercurial/cext/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dirstate_tuple_check(op)
  - 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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MIN
    functionSourceFile: /src/mercurial/mercurial/cext/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/util.h:60,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/util.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pylong
    - out
    argTypes:
    - PyObject*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: pylong_to_long
    functionSourceFile: /src/mercurial/mercurial/cext/util.h
    functionUses: 20
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: bool
    signature: bool pylong_to_long(PyObject *pylong, long *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/mpatch.c:40,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/mpatch.c:43,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/mpatch.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: setpyerr
    functionSourceFile: /src/mercurial/mercurial/cext/mpatch.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void setpyerr(int r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GetItem
      Src: /src/mercurial/mercurial/cext/mpatch.c:57,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/mercurial/cext/mpatch.c:61,1
    - Dst: mpatch_decode
      Src: /src/mercurial/mercurial/cext/mpatch.c:64,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/mpatch.c:65,1
    - Dst: setpyerr
      Src: /src/mercurial/mercurial/cext/mpatch.c:66,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/mpatch.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - bins
    - pos
    argTypes:
    - void*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 73
    functionName: cpygetitem
    functionSourceFile: /src/mercurial/mercurial/cext/mpatch.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - mpatch_decode
    - PyList_GetItem
    - PyBuffer_Release
    - setpyerr
    - PyObject_GetBuffer
    linkageType: ''
    returnType: struct mpatch_flist
    signature: struct mpatch_flist *cpygetitem(void *bins, ssize_t pos)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/mpatch.c:84,1
    - Dst: PyList_Size
      Src: /src/mercurial/mercurial/cext/mpatch.c:88,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/mpatch.c:91,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/mercurial/cext/mpatch.c:95,1
    - Dst: mpatch_fold
      Src: /src/mercurial/mercurial/cext/mpatch.c:99,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/mpatch.c:101,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/mpatch.c:102,1
    - Dst: mpatch_calcsize
      Src: /src/mercurial/mercurial/cext/mpatch.c:108,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/mpatch.c:114,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/mpatch.c:119,1
    - Dst: mpatch_apply
      Src: /src/mercurial/mercurial/cext/mpatch.c:123,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/mpatch.c:128,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/mercurial/cext/mpatch.c:132,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/mpatch.c:133,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/mpatch.c:134,1
    - Dst: setpyerr
      Src: /src/mercurial/mercurial/cext/mpatch.c:135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 138
    functionName: patches
    functionSourceFile: /src/mercurial/mercurial/cext/mpatch.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_DECREF
    - mpatch_lfree
    - Py_INCREF
    - setpyerr
    - PyErr_NoMemory
    - PyBytes_AsString
    - mpatch_fold
    - PyList_Size
    - PyBuffer_Release
    - mpatch_calcsize
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    - mpatch_apply
    linkageType: ''
    returnType: PyObject
    signature: PyObject *patches(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/mpatch.c:147,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/mpatch.c:152,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/mpatch.c:153,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/mpatch.c:154,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/mpatch.c:165,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/mpatch.c:166,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/mpatch.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 174
    functionName: patchedsize
    functionSourceFile: /src/mercurial/mercurial/cext/mpatch.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - PyErr_SetString
    - getbe32
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *patchedsize(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/cext/mpatch.c:192,1
    - Dst: PyErr_NewException
      Src: /src/mercurial/mercurial/cext/mpatch.c:197,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/mpatch.c:198,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/mpatch.c:199,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/mercurial/cext/mpatch.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: PyInit_mpatch
    functionSourceFile: /src/mercurial/mercurial/cext/mpatch.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_mpatch(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/mercurial/mercurial/cext/manifest.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: pathlen
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t pathlen(line *l)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pathlen
      Src: /src/mercurial/mercurial/cext/manifest.c:56,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/manifest.c:60,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/manifest.c:77,1
    - Dst: unhexlify
      Src: /src/mercurial/mercurial/cext/manifest.c:80,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/manifest.c:86,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:86,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:87,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - nodelen
    - l
    - flag
    argTypes:
    - Py_ssize_t
    - line*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 92
    functionName: nodeof
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - unhexlify
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - PyBytes_AsString
    - pathlen
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *nodeof(Py_ssize_t nodelen, line *l, char *flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeof
      Src: /src/mercurial/mercurial/cext/manifest.c:98,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:104,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:106,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:109,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:110,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - nodelen
    - l
    argTypes:
    - Py_ssize_t
    - line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: hashflags
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - nodeof
    - Py_DECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: PyObject *hashflags(Py_ssize_t nodelen, line *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/mercurial/mercurial/cext/manifest.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: realloc_if_full
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: bool
    signature: bool realloc_if_full(lazymanifest *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/mercurial/mercurial/cext/manifest.c:140,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/manifest.c:154,1
    - Dst: realloc_if_full
      Src: /src/mercurial/mercurial/cext/manifest.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - data
    - len
    argTypes:
    - lazymanifest*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 173
    functionName: find_lines
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - memchr
    - strcmp
    - realloc_if_full
    linkageType: ''
    returnType: int
    signature: int find_lines(lazymanifest *self, char *data, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: lazymanifest_init_early
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lazymanifest_init_early(lazymanifest *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lazymanifest_init_early
      Src: /src/mercurial/mercurial/cext/manifest.c:190,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/manifest.c:191,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:196,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:202,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/manifest.c:206,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/manifest.c:208,1
    - Dst: find_lines
      Src: /src/mercurial/mercurial/cext/manifest.c:214,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:220,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:223,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:227,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:231,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:236,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:241,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 245
    functionName: lazymanifest_init
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - malloc
    - lazymanifest_init_early
    - Py_INCREF
    - PyErr_NoMemory
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - find_lines
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int lazymanifest_init(lazymanifest *self, PyObject *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:220,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:223,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:227,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:231,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:236,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 243
    functionName: switch
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/mercurial/cext/manifest.c:253,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/manifest.c:256,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:259,1
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/manifest.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: lazymanifest_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - free
    - PyObject_Del
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void lazymanifest_dealloc(lazymanifest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:275,1
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/manifest.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: lmiter_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void lmiter_dealloc(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - lmIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: lmiter_nextline
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: line
    signature: line *lmiter_nextline(lmIter *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lmiter_nextline
      Src: /src/mercurial/mercurial/cext/manifest.c:298,1
    - Dst: pathlen
      Src: /src/mercurial/mercurial/cext/manifest.c:302,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:303,1
    - Dst: nodeof
      Src: /src/mercurial/mercurial/cext/manifest.c:304,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:308,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:312,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:314,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:315,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 318
    functionName: lmiter_iterentriesnext
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyTuple_Pack
    - lmiter_nextline
    - pathlen
    - nodeof
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lmiter_iterentriesnext(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lmiter_nextline
      Src: /src/mercurial/mercurial/cext/manifest.c:355,1
    - Dst: pathlen
      Src: /src/mercurial/mercurial/cext/manifest.c:359,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 361
    functionName: lmiter_iterkeysnext
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - lmiter_nextline
    - pathlen
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lmiter_iterkeysnext(PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lazymanifest_copy
      Src: /src/mercurial/mercurial/cext/manifest.c:400,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:402,1
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/manifest.c:405,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:410,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 414
    functionName: lazymanifest_getentriesiter
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - lazymanifest_copy
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lazymanifest_getentriesiter(lazymanifest *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lazymanifest_copy
      Src: /src/mercurial/mercurial/cext/manifest.c:419,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:421,1
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/manifest.c:424,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:429,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: lazymanifest_getkeysiter
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - lazymanifest_copy
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lazymanifest_getkeysiter(lazymanifest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 440
    functionName: lazymanifest_size
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t lazymanifest_size(lazymanifest *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/manifest.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: linecmp
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int linecmp(const void *left, const void *right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:452,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:453,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:457,1
    - Dst: bsearch
      Src: /src/mercurial/mercurial/cext/manifest.c:458,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:461,1
    - Dst: hashflags
      Src: /src/mercurial/mercurial/cext/manifest.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 5
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: lazymanifest_getitem
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - bsearch
    - hashflags
    - PyBytes_AsString
    - PyBytes_Check
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lazymanifest_getitem(lazymanifest *self, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:471,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:472,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:476,1
    - Dst: bsearch
      Src: /src/mercurial/mercurial/cext/manifest.c:477,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 488
    functionName: lazymanifest_delitem
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyErr_Format
    - bsearch
    - PyBytes_AsString
    linkageType: ''
    returnType: int
    signature: int lazymanifest_delitem(lazymanifest *self, PyObject *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: linecmp
      Src: /src/mercurial/mercurial/cext/manifest.c:497,1
    - Dst: self::self
      Src: /src/mercurial/mercurial/cext/manifest.c:497,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/manifest.c:506,1
    - Dst: realloc_if_full
      Src: /src/mercurial/mercurial/cext/manifest.c:512,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:513,1
    - Dst: memmove
      Src: /src/mercurial/mercurial/cext/manifest.c:516,1
    - Dst: self::self
      Src: /src/mercurial/mercurial/cext/manifest.c:521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - new
    argTypes:
    - lazymanifest*
    - line*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 524
    functionName: internalsetitem
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - self::self
    - PyErr_NoMemory
    - realloc_if_full
    - memmove
    - free
    - linecmp
    linkageType: ''
    returnType: int
    signature: int internalsetitem(lazymanifest *self, line *new)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:541,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:542,1
    - Dst: lazymanifest_delitem
      Src: /src/mercurial/mercurial/cext/manifest.c:547,1
    - Dst: PyTuple_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:549,1
    - Dst: PyTuple_Size
      Src: /src/mercurial/mercurial/cext/manifest.c:549,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:550,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:554,1
    - Dst: PyTuple_GetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:558,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:559,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:560,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/mercurial/cext/manifest.c:564,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:566,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:570,1
    - Dst: PyTuple_GetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:572,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:573,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/mercurial/cext/manifest.c:573,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:574,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:578,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/manifest.c:588,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/manifest.c:594,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:596,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/manifest.c:599,1
    - Dst: sprintf
      Src: /src/mercurial/mercurial/cext/manifest.c:604,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/manifest.c:606,1
    - Dst: internalsetitem
      Src: /src/mercurial/mercurial/cext/manifest.c:616,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 69
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - lazymanifest*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 620
    functionName: lazymanifest_setitem
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - PyErr_NoMemory
    - PyBytes_Size
    - PyBytes_AsString
    - PyBytes_Check
    - PyTuple_Check
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyTuple_Size
    - lazymanifest_delitem
    - internalsetitem
    - PyTuple_GetItem
    - sprintf
    linkageType: ''
    returnType: int
    signature: "int lazymanifest_setitem(\n\tlazymanifest *self, PyObject *key, PyObject
      *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:634,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:639,1
    - Dst: bsearch
      Src: /src/mercurial/mercurial/cext/manifest.c:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: lazymanifest_contains
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - bsearch
    - PyBytes_AsString
    linkageType: ''
    returnType: int
    signature: int lazymanifest_contains(lazymanifest *self, PyObject *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/manifest.c:680,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/manifest.c:683,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/manifest.c:695,1
    - Dst: free
      Src: /src/mercurial/mercurial/cext/manifest.c:702,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:704,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 709
    functionName: compact
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - PyBytes_AsString
    - free
    linkageType: ''
    returnType: int
    signature: int compact(lazymanifest *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compact
      Src: /src/mercurial/mercurial/cext/manifest.c:713,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:714,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/manifest.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 719
    functionName: lazymanifest_text
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - compact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lazymanifest_text(lazymanifest *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compact
      Src: /src/mercurial/mercurial/cext/manifest.c:724,1
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/manifest.c:727,1
    - Dst: lazymanifest_init_early
      Src: /src/mercurial/mercurial/cext/manifest.c:731,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/manifest.c:736,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/manifest.c:740,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/manifest.c:743,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:746,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:747,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - lazymanifest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 749
    functionName: lazymanifest_copy
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 2
    functionsReached:
    - malloc
    - memcpy
    - lazymanifest_init_early
    - Py_INCREF
    - PyErr_NoMemory
    - compact
    - Py_XDECREF
    - PyObject_New
    linkageType: ''
    returnType: lazymanifest
    signature: lazymanifest *lazymanifest_copy(lazymanifest *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/mercurial/mercurial/cext/manifest.c:756,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/manifest.c:757,1
    - Dst: compact
      Src: /src/mercurial/mercurial/cext/manifest.c:763,1
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/manifest.c:766,1
    - Dst: lazymanifest_init_early
      Src: /src/mercurial/mercurial/cext/manifest.c:770,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/manifest.c:773,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/manifest.c:780,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/manifest.c:783,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/mercurial/cext/manifest.c:788,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:789,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/manifest.c:795,1
    - Dst: assert
      Src: /src/mercurial/mercurial/cext/manifest.c:796,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:799,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:804,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:806,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 2
    argNames:
    - self
    - matchfn
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts:
    - condition: (!(self->lines[i].from_malloc))
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/mercurial/mercurial/cext/manifest.c
    constantsTouched: []
    func_position:
      end: 808
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 808
    functionName: lazymanifest_filtercopy
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - malloc
    - Py_BuildValue
    - PyObject_CallObject
    - lazymanifest_init_early
    - PyCallable_Check
    - Py_INCREF
    - Py_DECREF
    - assert
    - PyErr_NoMemory
    - compact
    - PyErr_SetString
    - PyObject_IsTrue
    - Py_XDECREF
    - PyObject_New
    linkageType: ''
    returnType: lazymanifest
    signature: "lazymanifest *lazymanifest_filtercopy(\n\tlazymanifest *self, PyObject
      *matchfn)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/manifest.c:818,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/manifest.c:821,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/mercurial/cext/manifest.c:822,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:826,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:827,1
    - Dst: PyDict_New
      Src: /src/mercurial/mercurial/cext/manifest.c:831,1
    - Dst: linecmp
      Src: /src/mercurial/mercurial/cext/manifest.c:859,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/mercurial/cext/manifest.c:862,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/mercurial/cext/manifest.c:863,1
    - Dst: hashflags
      Src: /src/mercurial/mercurial/cext/manifest.c:867,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:871,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:872,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:876,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:877,1
    - Dst: hashflags
      Src: /src/mercurial/mercurial/cext/manifest.c:880,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:884,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:885,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:889,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:890,1
    - Dst: memcmp
      Src: /src/mercurial/mercurial/cext/manifest.c:895,1
    - Dst: hashflags
      Src: /src/mercurial/mercurial/cext/manifest.c:897,1
    - Dst: hashflags
      Src: /src/mercurial/mercurial/cext/manifest.c:902,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:904,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/mercurial/cext/manifest.c:907,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:908,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:909,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:913,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:914,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/manifest.c:916,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:921,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:923,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/manifest.c:926,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:927,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/manifest.c:928,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 109
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - lazymanifest*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 810
    functionDepth: 5
    functionLinenumber: 810
    functionLinenumberEnd: 930
    functionName: lazymanifest_diff
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - hashflags
    - PyErr_NoMemory
    - Py_XDECREF
    - PyTuple_Pack
    - PyBytes_FromString
    - PyDict_SetItem
    - PyObject_IsTrue
    - memcmp
    - linecmp
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *lazymanifest_diff(lazymanifest *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/manifest.c:993,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/manifest.c:995,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/manifest.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 999
    functionName: manifest_module_init
    functionSourceFile: /src/mercurial/mercurial/cext/manifest.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void manifest_module_init(PyObject * mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:30,1
    - Dst: _PyDict_NewPresized
      Src: /src/mercurial/mercurial/cext/parsers.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: dict_new_presized
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - _PyDict_NewPresized
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dict_new_presized(PyObject *self, PyObject *args)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/mercurial/cext/parsers.c:71,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/mercurial/mercurial/cext/parsers.c:78,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/parsers.c:96,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/parsers.c:102,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:108,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:113,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 3
    argNames:
    - subtype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 144
    functionName: dirstate_item_new
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - PyArg_ParseTuple
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *dirstate_item_new(PyTypeObject *subtype, PyObject *args,\n
      \                                  PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/cext/parsers.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: dirstate_item_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void dirstate_item_dealloc(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: dirstate_item_c_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_tracked(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: dirstate_item_c_any_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_any_tracked(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: dirstate_item_c_added
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_added(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: dirstate_item_c_removed
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_removed(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: dirstate_item_c_modified
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_modified(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: dirstate_item_c_from_p2
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_from_p2(dirstateItemObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_removed
      Src: /src/mercurial/mercurial/cext/parsers.c:196,1
    - Dst: dirstate_item_c_modified
      Src: /src/mercurial/mercurial/cext/parsers.c:198,1
    - Dst: dirstate_item_c_added
      Src: /src/mercurial/mercurial/cext/parsers.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 205
    functionName: dirstate_item_c_v1_state
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_removed
    - dirstate_item_c_modified
    - dirstate_item_c_added
    linkageType: ''
    returnType: char
    signature: char dirstate_item_c_v1_state(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 210
    functionName: dirstate_item_c_has_fallback_exec
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_has_fallback_exec(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: dirstate_item_c_has_fallback_symlink
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool dirstate_item_c_has_fallback_symlink(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: dirstate_item_c_v1_mode
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dirstate_item_c_v1_mode(dirstateItemObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_removed
      Src: /src/mercurial/mercurial/cext/parsers.c:236,1
    - Dst: dirstate_item_c_added
      Src: /src/mercurial/mercurial/cext/parsers.c:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 247
    functionName: dirstate_item_c_v1_size
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_removed
    - dirstate_item_c_added
    linkageType: ''
    returnType: int
    signature: int dirstate_item_c_v1_size(dirstateItemObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_removed
      Src: /src/mercurial/mercurial/cext/parsers.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 262
    functionName: dirstate_item_c_v1_mtime
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_removed
    linkageType: ''
    returnType: int
    signature: int dirstate_item_c_v1_mtime(dirstateItemObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_v1_mode
      Src: /src/mercurial/mercurial/cext/parsers.c:267,1
    - Dst: S_ISLNK
      Src: /src/mercurial/mercurial/cext/parsers.c:280,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/parsers.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 290
    functionName: dirstate_item_v2_data
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - Py_BuildValue
    - dirstate_item_c_v1_mode
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_v2_data(dirstateItemObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - dirstateItemObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 320
    functionName: dirstate_item_mtime_likely_equal_to
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *dirstate_item_mtime_likely_equal_to(dirstateItemObject *self,\n
      \                                                    PyObject *other)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/parsers.c:328,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/parsers.c:375,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - state
    - mode
    - size
    - mtime
    argTypes:
    - char
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 383
    functionName: dirstate_item_from_v1_data
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: dirstateItemObject
    signature: 'dirstateItemObject *

      dirstate_item_from_v1_data(char state, int mode, int size, int mtime)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/cext/parsers.c:389,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - subtype
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 416
    functionName: dirstate_item_from_v2_meth
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *dirstate_item_from_v2_meth(PyTypeObject *subtype,\n                                            PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: dirstate_item_set_possibly_dirty
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_set_possibly_dirty(dirstateItemObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:435,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - dirstateItemObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 457
    functionName: dirstate_item_set_clean
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *dirstate_item_set_clean(dirstateItemObject *self,\n                                         PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: dirstate_item_set_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_set_tracked(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 476
    functionName: dirstate_item_set_untracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_set_untracked(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: dirstate_item_drop_merge_data
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_drop_merge_data(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/parsers.c:513,1
    - Dst: dirstate_item_c_v1_mode
      Src: /src/mercurial/mercurial/cext/parsers.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: dirstate_item_get_mode
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - dirstate_item_c_v1_mode
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_mode(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/parsers.c:518,1
    - Dst: dirstate_item_c_v1_size
      Src: /src/mercurial/mercurial/cext/parsers.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: dirstate_item_get_size
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - dirstate_item_c_v1_size
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_size(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/mercurial/mercurial/cext/parsers.c:523,1
    - Dst: dirstate_item_c_v1_mtime
      Src: /src/mercurial/mercurial/cext/parsers.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: dirstate_item_get_mtime
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - dirstate_item_c_v1_mtime
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_mtime(dirstateItemObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_v1_state
      Src: /src/mercurial/mercurial/cext/parsers.c:528,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: dirstate_item_get_state
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - dirstate_item_c_v1_state
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_state(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_has_fallback_exec
      Src: /src/mercurial/mercurial/cext/parsers.c:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 539
    functionName: dirstate_item_get_has_fallback_exec
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_has_fallback_exec
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_has_fallback_exec(dirstateItemObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_has_fallback_exec
      Src: /src/mercurial/mercurial/cext/parsers.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: dirstate_item_get_fallback_exec
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_has_fallback_exec
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_fallback_exec(dirstateItemObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/parsers.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - dirstateItemObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 568
    functionName: dirstate_item_set_fallback_exec
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: "int dirstate_item_set_fallback_exec(dirstateItemObject *self,\n                                           PyObject
      *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_has_fallback_symlink
      Src: /src/mercurial/mercurial/cext/parsers.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: dirstate_item_get_has_fallback_symlink
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_has_fallback_symlink
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dirstate_item_get_has_fallback_symlink(dirstateItemObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_has_fallback_symlink
      Src: /src/mercurial/mercurial/cext/parsers.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: dirstate_item_get_fallback_symlink
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_has_fallback_symlink
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_fallback_symlink(dirstateItemObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/parsers.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - dirstateItemObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 607
    functionName: dirstate_item_set_fallback_symlink
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: "int dirstate_item_set_fallback_symlink(dirstateItemObject *self,\n
      \                                             PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_tracked
      Src: /src/mercurial/mercurial/cext/parsers.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 616
    functionName: dirstate_item_get_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_tracked
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_tracked(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: dirstate_item_get_p1_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_p1_tracked(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_added
      Src: /src/mercurial/mercurial/cext/parsers.c:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 633
    functionName: dirstate_item_get_added
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_added
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_added(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 643
    functionName: dirstate_item_get_p2_info
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_p2_info(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_modified
      Src: /src/mercurial/mercurial/cext/parsers.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 652
    functionName: dirstate_item_get_modified
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_modified
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_modified(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_from_p2
      Src: /src/mercurial/mercurial/cext/parsers.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: dirstate_item_get_from_p2
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_from_p2
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_from_p2(dirstateItemObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 674
    functionName: dirstate_item_get_maybe_clean
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_maybe_clean(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_any_tracked
      Src: /src/mercurial/mercurial/cext/parsers.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 683
    functionName: dirstate_item_get_any_tracked
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_any_tracked
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_any_tracked(dirstateItemObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dirstate_item_c_removed
      Src: /src/mercurial/mercurial/cext/parsers.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - dirstateItemObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 692
    functionName: dirstate_item_get_removed
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_removed
    linkageType: ''
    returnType: PyObject
    signature: PyObject *dirstate_item_get_removed(dirstateItemObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:773,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:782,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/parsers.c:787,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:796,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:803,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:804,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:805,1
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:806,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:810,1
    - Dst: dirstate_item_from_v1_data
      Src: /src/mercurial/mercurial/cext/parsers.c:815,1
    - Dst: memchr
      Src: /src/mercurial/mercurial/cext/parsers.c:819,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:821,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:822,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/parsers.c:825,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/parsers.c:826,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:829,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:831,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/mercurial/cext/parsers.c:833,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:837,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:838,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/parsers.c:844,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:846,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:847,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:848,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:849,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 851
    functionName: parse_dirstate
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - memchr
    - dirstate_item_from_v1_data
    - PyDict_SetItem
    - PyErr_SetString
    - getbe32
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *parse_dirstate(PyObject *self, PyObject *args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:864,1
    - Dst: PyTuple_Size
      Src: /src/mercurial/mercurial/cext/parsers.c:869,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:870,1
    - Dst: PyDict_Next
      Src: /src/mercurial/mercurial/cext/parsers.c:875,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/parsers.c:877,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:878,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/parsers.c:881,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/parsers.c:882,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/mercurial/cext/parsers.c:884,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:885,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/parsers.c:889,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:893,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/parsers.c:898,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:900,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:901,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:902,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/parsers.c:905,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:907,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:908,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:909,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/parsers.c:912,1
    - Dst: PyDict_Next
      Src: /src/mercurial/mercurial/cext/parsers.c:915,1
    - Dst: dirstate_tuple_check
      Src: /src/mercurial/mercurial/cext/parsers.c:923,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:924,1
    - Dst: dirstate_item_c_v1_state
      Src: /src/mercurial/mercurial/cext/parsers.c:930,1
    - Dst: dirstate_item_c_v1_mode
      Src: /src/mercurial/mercurial/cext/parsers.c:931,1
    - Dst: dirstate_item_c_v1_size
      Src: /src/mercurial/mercurial/cext/parsers.c:932,1
    - Dst: dirstate_item_c_v1_mtime
      Src: /src/mercurial/mercurial/cext/parsers.c:933,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:935,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:936,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:937,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/parsers.c:940,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/parsers.c:941,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/parsers.c:941,1
    - Dst: PyDict_GetItem
      Src: /src/mercurial/mercurial/cext/parsers.c:943,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/mercurial/cext/parsers.c:946,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/parsers.c:947,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/parsers.c:947,1
    - Dst: putbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:951,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/mercurial/cext/parsers.c:954,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/parsers.c:956,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:963,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:964,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:965,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 90
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 967
    functionName: pack_dirstate
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - dirstate_item_c_v1_size
    - dirstate_item_c_v1_mtime
    - PyBytes_FromStringAndSize
    - putbe32
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyDict_Next
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - dirstate_tuple_check
    - dirstate_item_c_v1_state
    - PyDict_GetItem
    - memcpy
    - dirstate_item_c_v1_mode
    - PyBytes_Check
    - PyTuple_Size
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pack_dirstate(PyObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/mercurial/mercurial/cext/parsers.c:977,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:982,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:984,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - source
    - num
    - hashwidth
    argTypes:
    - char*
    - unsigned char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 991
    functionName: readshas
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyTuple_SET_ITEM
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *readshas(const char *source, unsigned char num,\n                          Py_ssize_t
      hashwidth)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getbe32
      Src: /src/mercurial/mercurial/cext/parsers.c:1013,1
    - Dst: getbefloat64
      Src: /src/mercurial/mercurial/cext/parsers.c:1015,1
    - Dst: getbeint16
      Src: /src/mercurial/mercurial/cext/parsers.c:1017,1
    - Dst: getbeuint16
      Src: /src/mercurial/mercurial/cext/parsers.c:1019,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:1038,1
    - Dst: readshas
      Src: /src/mercurial/mercurial/cext/parsers.c:1047,1
    - Dst: readshas
      Src: /src/mercurial/mercurial/cext/parsers.c:1057,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1064,1
    - Dst: PyTuple_New
      Src: /src/mercurial/mercurial/cext/parsers.c:1071,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:1082,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/cext/parsers.c:1084,1
    - Dst: PyTuple_New
      Src: /src/mercurial/mercurial/cext/parsers.c:1086,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1088,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1089,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1090,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:1093,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:1094,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/mercurial/cext/parsers.c:1095,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/parsers.c:1097,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:1102,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1104,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1105,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1106,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1107,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 103
    argCount: 3
    argNames:
    - databegin
    - dataend
    - msize
    argTypes:
    - char*
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1109
    functionName: fm1readmarker
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - PyTuple_SET_ITEM
    - Py_INCREF
    - Py_XDECREF
    - readshas
    - getbefloat64
    - PyErr_SetString
    - getbe32
    - PyTuple_New
    - getbeint16
    - getbeuint16
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *fm1readmarker(const char *databegin, const char *dataend,\n
      \                              uint32_t *msize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/parsers.c:1117,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:1121,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/parsers.c:1126,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/parsers.c:1133,1
    - Dst: fm1readmarker
      Src: /src/mercurial/mercurial/cext/parsers.c:1140,1
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/parsers.c:1144,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1145,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1156
    functionName: fm1readmarkers
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Append
    - fm1readmarker
    - PyErr_SetString
    - PyList_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *fm1readmarkers(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/mercurial/cext/parsers.c:1194,1
    - Dst: PyModule_AddStringConstant
      Src: /src/mercurial/mercurial/cext/parsers.c:1204,1
    - Dst: dirs_module_init
      Src: /src/mercurial/mercurial/cext/parsers.c:1206,1
    - Dst: manifest_module_init
      Src: /src/mercurial/mercurial/cext/parsers.c:1207,1
    - Dst: revlog_module_init
      Src: /src/mercurial/mercurial/cext/parsers.c:1208,1
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/parsers.c:1210,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1213,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/cext/parsers.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1192
    functionDepth: 2
    functionLinenumber: 1192
    functionLinenumberEnd: 1215
    functionName: module_init
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 1
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - Py_INCREF
    - PyModule_AddObject
    - manifest_module_init
    - revlog_module_init
    - PyType_Ready
    - dirs_module_init
    linkageType: ''
    returnType: void
    signature: void module_init(PyObject *mod)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/mercurial/cext/parsers.c:1219,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/mercurial/cext/parsers.c:1224,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1225,1
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/parsers.c:1229,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1230,1
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/mercurial/cext/parsers.c:1235,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/mercurial/cext/parsers.c:1239,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1240,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/parsers.c:1244,1
    - Dst: Py_GetVersion
      Src: /src/mercurial/mercurial/cext/parsers.c:1251,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/mercurial/mercurial/cext/parsers.c:1252,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/parsers.c:1253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1257
    functionName: check_python_version
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyLong_AsLong
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_AsUTF8
    - Py_GetVersion
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_python_version(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_python_version
      Src: /src/mercurial/mercurial/cext/parsers.c:1266,1
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/cext/parsers.c:1268,1
    - Dst: module_init
      Src: /src/mercurial/mercurial/cext/parsers.c:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1271
    functionName: PyInit_parsers
    functionSourceFile: /src/mercurial/mercurial/cext/parsers.c
    functionUses: 0
    functionsReached:
    - module_init
    - PyModule_Create
    - check_python_version
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_parsers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: listdir_slot
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: listdir_slot(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/mercurial/cext/osutil.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: listdir_stat_st_size
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *listdir_stat_st_size(PyObject *self, void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/mercurial/mercurial/cext/osutil.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - a
    - k
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: listdir_stat_new
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: PyObject *listdir_stat_new(PyTypeObject *t, PyObject *a, PyObject *k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/mercurial/mercurial/cext/osutil.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: listdir_stat_dealloc
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void listdir_stat_dealloc(PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/mercurial/mercurial/cext/osutil.c:126,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/mercurial/cext/osutil.c:127,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/osutil.c:131,1
    - Dst: listdir_stat_st_mtime
      Src: /src/mercurial/mercurial/cext/osutil.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 137
    functionName: listdir_stat_getitem
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyLong_AsLong
    - PyErr_Occurred
    - listdir_stat_st_mtime
    linkageType: ''
    returnType: PyObject
    signature: PyObject *listdir_stat_getitem(PyObject *self, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: to_python_time
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_python_time(const FILETIME *tm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:208,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/mercurial/cext/osutil.c:210,1
    - Dst: to_python_time
      Src: /src/mercurial/mercurial/cext/osutil.c:221,1
    - Dst: to_python_time
      Src: /src/mercurial/mercurial/cext/osutil.c:222,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - wantstat
    argTypes:
    - WIN32_FIND_DATAA*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 228
    functionName: make_item
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - to_python_time
    - PyObject_CallObject
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject *make_item(const WIN32_FIND_DATAA *fd, int wantstat)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/mercurial/mercurial/cext/osutil.c:239,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/mercurial/cext/osutil.c:241,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/osutil.c:244,1
    - Dst: FindFirstFileA
      Src: /src/mercurial/mercurial/cext/osutil.c:254,1
    - Dst: PyErr_SetFromWindowsErrWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:256,1
    - Dst: GetLastError
      Src: /src/mercurial/mercurial/cext/osutil.c:256,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:260,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:268,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:269,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:272,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:273,1
    - Dst: make_item
      Src: /src/mercurial/mercurial/cext/osutil.c:278,1
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/osutil.c:282,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:283,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:287,1
    - Dst: FindNextFileA
      Src: /src/mercurial/mercurial/cext/osutil.c:288,1
    - Dst: GetLastError
      Src: /src/mercurial/mercurial/cext/osutil.c:290,1
    - Dst: PyErr_SetFromWindowsErrWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:291,1
    - Dst: GetLastError
      Src: /src/mercurial/mercurial/cext/osutil.c:291,1
    - Dst: Py_XINCREF
      Src: /src/mercurial/mercurial/cext/osutil.c:296,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:298,1
    - Dst: FindClose
      Src: /src/mercurial/mercurial/cext/osutil.c:300,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/osutil.c:302,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 4
    argNames:
    - path
    - plen
    - wantstat
    - skip
    argTypes:
    - char*
    - Py_ssize_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 305
    functionName: _listdir
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - memcpy
    - PyErr_SetFromWindowsErrWithFilename
    - PyErr_NoMemory
    - FindFirstFileA
    - Py_XINCREF
    - make_item
    - PyList_Append
    - PyMem_Free
    - PyMem_Malloc
    - PyList_New
    - strcmp
    - Py_XDECREF
    - FindNextFileA
    - FindClose
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_listdir(char *path, Py_ssize_t plen, int wantstat, char
      *skip)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - ent
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 323
    functionName: entkind
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int entkind(struct dirent *ent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/mercurial/mercurial/cext/osutil.c:329,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/cext/osutil.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: makestat
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: PyObject *makestat(const struct stat *st)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:350,1
    - Dst: strncpy
      Src: /src/mercurial/mercurial/cext/osutil.c:353,1
    - Dst: open
      Src: /src/mercurial/mercurial/cext/osutil.c:357,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:359,1
    - Dst: fdopendir
      Src: /src/mercurial/mercurial/cext/osutil.c:362,1
    - Dst: opendir
      Src: /src/mercurial/mercurial/cext/osutil.c:364,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:367,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:371,1
    - Dst: readdir
      Src: /src/mercurial/mercurial/cext/osutil.c:375,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:376,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:376,1
    - Dst: entkind
      Src: /src/mercurial/mercurial/cext/osutil.c:379,1
    - Dst: fstatat
      Src: /src/mercurial/mercurial/cext/osutil.c:382,1
    - Dst: strncpy
      Src: /src/mercurial/mercurial/cext/osutil.c:385,1
    - Dst: lstat
      Src: /src/mercurial/mercurial/cext/osutil.c:388,1
    - Dst: strncpy
      Src: /src/mercurial/mercurial/cext/osutil.c:394,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:397,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:405,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:406,1
    - Dst: makestat
      Src: /src/mercurial/mercurial/cext/osutil.c:411,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:414,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:417,1
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/osutil.c:422,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:423,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/osutil.c:427,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:430,1
    - Dst: closedir
      Src: /src/mercurial/mercurial/cext/osutil.c:432,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 4
    argNames:
    - path
    - pathlen
    - keepstat
    - skip
    argTypes:
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 441
    functionName: _listdir_stat
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - opendir
    - Py_BuildValue
    - Py_DECREF
    - strncpy
    - Py_INCREF
    - PyErr_SetFromErrnoWithFilename
    - readdir
    - makestat
    - entkind
    - fdopendir
    - PyList_Append
    - closedir
    - open
    - fstatat
    - PyList_New
    - lstat
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_listdir_stat(char *path, int pathlen, int keepstat,\n\t\t\t
      \      char *skip)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - entry
    argTypes:
    - attrbuf_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 472
    functionName: attrkind
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attrkind(attrbuf_entry *entry)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:508,1
    - Dst: open
      Src: /src/mercurial/mercurial/cext/osutil.c:512,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:514,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:518,1
    - Dst: getdirentriesattr
      Src: /src/mercurial/mercurial/cext/osutil.c:524,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:534,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:567,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:567,1
    - Dst: attrkind
      Src: /src/mercurial/mercurial/cext/osutil.c:570,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/osutil.c:572,1
    - Dst: strcmp
      Src: /src/mercurial/mercurial/cext/osutil.c:580,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:581,1
    - Dst: makestat
      Src: /src/mercurial/mercurial/cext/osutil.c:592,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:595,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:598,1
    - Dst: PyList_Append
      Src: /src/mercurial/mercurial/cext/osutil.c:603,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:604,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/osutil.c:611,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:614,1
    - Dst: close
      Src: /src/mercurial/mercurial/cext/osutil.c:616,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 5
    argNames:
    - path
    - pathlen
    - keepstat
    - skip
    - fallback
    argTypes:
    - char*
    - int
    - int
    - char*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 619
    functionName: _listdir_batch
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - attrkind
    - Py_INCREF
    - PyErr_SetFromErrnoWithFilename
    - makestat
    - PyList_Append
    - close
    - open
    - PyErr_Format
    - PyList_New
    - strcmp
    - getdirentriesattr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_listdir_batch(char *path, int pathlen, int keepstat,\n\t\t\t\tchar
      *skip, bool *fallback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _listdir_batch
      Src: /src/mercurial/mercurial/cext/osutil.c:629,1
    - Dst: _listdir_stat
      Src: /src/mercurial/mercurial/cext/osutil.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - path
    - pathlen
    - keepstat
    - skip
    argTypes:
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 623
    functionDepth: 3
    functionLinenumber: 623
    functionLinenumberEnd: 634
    functionName: _listdir
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - _listdir_batch
    - _listdir_stat
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/osutil.c:641,1
    - Dst: PySequence_Length
      Src: /src/mercurial/mercurial/cext/osutil.c:644,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/osutil.c:646,1
    - Dst: PyList_New
      Src: /src/mercurial/mercurial/cext/osutil.c:650,1
    - Dst: PyErr_CheckSignals
      Src: /src/mercurial/mercurial/cext/osutil.c:662,1
    - Dst: PySequence_GetItem
      Src: /src/mercurial/mercurial/cext/osutil.c:665,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/osutil.c:668,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:670,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/cext/osutil.c:671,1
    - Dst: lstat
      Src: /src/mercurial/mercurial/cext/osutil.c:674,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:675,1
    - Dst: makestat
      Src: /src/mercurial/mercurial/cext/osutil.c:678,1
    - Dst: PyList_SET_ITEM
      Src: /src/mercurial/mercurial/cext/osutil.c:681,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/cext/osutil.c:683,1
    - Dst: PyList_SET_ITEM
      Src: /src/mercurial/mercurial/cext/osutil.c:684,1
    - Dst: Py_DECREF
      Src: /src/mercurial/mercurial/cext/osutil.c:691,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 693
    functionName: statfiles
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    - Py_DECREF
    - Py_INCREF
    - PyErr_CheckSignals
    - PySequence_GetItem
    - makestat
    - PyBytes_AsString
    - PyList_SET_ITEM
    - PyErr_SetString
    - PyList_New
    - lstat
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *statfiles(PyObject *self, PyObject *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _NSGetArgc
      Src: /src/mercurial/mercurial/cext/osutil.c:714,1
    - Dst: _NSGetArgv
      Src: /src/mercurial/mercurial/cext/osutil.c:715,1
    - Dst: strlen
      Src: /src/mercurial/mercurial/cext/osutil.c:723,1
    - Dst: fopen
      Src: /src/mercurial/mercurial/cext/osutil.c:738,1
    - Dst: fgets
      Src: /src/mercurial/mercurial/cext/osutil.c:742,1
    - Dst: fclose
      Src: /src/mercurial/mercurial/cext/osutil.c:743,1
    - Dst: fclose
      Src: /src/mercurial/mercurial/cext/osutil.c:746,1
    - Dst: strlen
      Src: /src/mercurial/mercurial/cext/osutil.c:747,1
    - Dst: strrchr
      Src: /src/mercurial/mercurial/cext/osutil.c:753,1
    - Dst: sscanf
      Src: /src/mercurial/mercurial/cext/osutil.c:759,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - argstart
    - argsize
    argTypes:
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 813
    functionName: getarg0size
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - fgets
    - _NSGetArgv
    - _NSGetArgc
    - strrchr
    - strlen
    - fclose
    - sscanf
    - fopen
    linkageType: ''
    returnType: void
    signature: void getarg0size(char **argstart, size_t *argsize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/osutil.c:822,1
    - Dst: setproctitle
      Src: /src/mercurial/mercurial/cext/osutil.c:826,1
    - Dst: getarg0size
      Src: /src/mercurial/mercurial/cext/osutil.c:833,1
    - Dst: snprintf
      Src: /src/mercurial/mercurial/cext/osutil.c:837,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/osutil.c:839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 845
    functionName: setprocname
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - setproctitle
    - getarg0size
    - snprintf
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: PyObject *setprocname(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbuf
    argTypes:
    - struct statfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: describefstype
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *describefstype(const struct statfs *pbuf)
  - BBCount: 73
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 146
    argCount: 1
    argNames:
    - pbuf
    argTypes:
    - struct statfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 1152
    functionName: describefstype
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *describefstype(const struct statfs *pbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/osutil.c:1162,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/osutil.c:1165,1
    - Dst: statfs
      Src: /src/mercurial/mercurial/cext/osutil.c:1166,1
    - Dst: PyErr_SetFromErrno
      Src: /src/mercurial/mercurial/cext/osutil.c:1168,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:1169,1
    - Dst: describefstype
      Src: /src/mercurial/mercurial/cext/osutil.c:1169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1170
    functionName: getfstype
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - describefstype
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    - statfs
    - memset
    linkageType: ''
    returnType: PyObject
    signature: PyObject *getfstype(PyObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/osutil.c:1180,1
    - Dst: memset
      Src: /src/mercurial/mercurial/cext/osutil.c:1183,1
    - Dst: statfs
      Src: /src/mercurial/mercurial/cext/osutil.c:1184,1
    - Dst: PyErr_SetFromErrno
      Src: /src/mercurial/mercurial/cext/osutil.c:1186,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/mercurial/cext/osutil.c:1187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1188
    functionName: getfsmountpoint
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    - statfs
    - memset
    linkageType: ''
    returnType: PyObject
    signature: PyObject *getfsmountpoint(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/cext/osutil.c:1196,1
    - Dst: sigemptyset
      Src: /src/mercurial/mercurial/cext/osutil.c:1198,1
    - Dst: PyErr_SetFromErrno
      Src: /src/mercurial/mercurial/cext/osutil.c:1200,1
    - Dst: sigaddset
      Src: /src/mercurial/mercurial/cext/osutil.c:1201,1
    - Dst: PyErr_SetFromErrno
      Src: /src/mercurial/mercurial/cext/osutil.c:1203,1
    - Dst: sigprocmask
      Src: /src/mercurial/mercurial/cext/osutil.c:1204,1
    - Dst: PyErr_SetFromErrno
      Src: /src/mercurial/mercurial/cext/osutil.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1208
    functionName: unblocksignal
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaddset
    - PyErr_SetFromErrno
    - sigprocmask
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *unblocksignal(PyObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/mercurial/cext/osutil.c:1222,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/mercurial/cext/osutil.c:1226,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/mercurial/cext/osutil.c:1229,1
    - Dst: _listdir
      Src: /src/mercurial/mercurial/cext/osutil.c:1234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1235
    functionName: listdir
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 1
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - _listdir
    - PyBytes_AsString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *listdir(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/mercurial/cext/osutil.c:1254,1
    - Dst: PyErr_Format
      Src: /src/mercurial/mercurial/cext/osutil.c:1298,1
    - Dst: CreateFile
      Src: /src/mercurial/mercurial/cext/osutil.c:1304,1
    - Dst: PyErr_SetFromWindowsErrWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:1313,1
    - Dst: GetLastError
      Src: /src/mercurial/mercurial/cext/osutil.c:1313,1
    - Dst: _open_osfhandle
      Src: /src/mercurial/mercurial/cext/osutil.c:1317,1
    - Dst: CloseHandle
      Src: /src/mercurial/mercurial/cext/osutil.c:1320,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/mercurial/mercurial/cext/osutil.c:1321,1
    - Dst: PyFile_FromFd
      Src: /src/mercurial/mercurial/cext/osutil.c:1324,1
    - Dst: PyMem_Free
      Src: /src/mercurial/mercurial/cext/osutil.c:1328,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1330
    functionName: posixfile
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyFile_FromFd
    - PyErr_SetFromWindowsErrWithFilename
    - PyErr_SetFromErrnoWithFilename
    - CreateFile
    - PyErr_Format
    - PyMem_Free
    - PyArg_ParseTupleAndKeywords
    - _open_osfhandle
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: PyObject *posixfile(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CGSessionCopyCurrentDictionary
      Src: /src/mercurial/mercurial/cext/osutil.c:1338,1
    - Dst: CFRelease
      Src: /src/mercurial/mercurial/cext/osutil.c:1341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1336
    functionDepth: 0
    functionLinenumber: 1336
    functionLinenumberEnd: 1346
    functionName: isgui
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - CFRelease
    - CGSessionCopyCurrentDictionary
    linkageType: ''
    returnType: PyObject
    signature: PyObject *isgui(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/mercurial/cext/osutil.c:1362,1
    - Dst: madvise
      Src: /src/mercurial/mercurial/cext/osutil.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - mmap_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 0
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: _mmap_populate
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - free
    - madvise
    linkageType: ''
    returnType: void
    signature: void _mmap_populate(mmap_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/mercurial/cext/osutil.c:1370,1
    - Dst: malloc
      Src: /src/mercurial/mercurial/cext/osutil.c:1373,1
    - Dst: pthread_create
      Src: /src/mercurial/mercurial/cext/osutil.c:1378,1
    - Dst: pthread_detach
      Src: /src/mercurial/mercurial/cext/osutil.c:1381,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/cext/osutil.c:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - mmap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1388
    functionName: background_mmap_populate
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - malloc
    - pthread_create
    - PyBuffer_Release
    - PyObject_GetBuffer
    - pthread_detach
    linkageType: ''
    returnType: PyObject
    signature: PyObject *background_mmap_populate(PyObject *self, PyObject *mmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/cext/osutil.c:1446,1
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/cext/osutil.c:1449,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/mercurial/cext/osutil.c:1450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1452
    functionName: PyInit_osutil
    functionSourceFile: /src/mercurial/mercurial/cext/osutil.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyType_Ready
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_osutil(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - py2
    - ','
    - py3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PY23
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY23(py2, py3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - py2
    - ','
    - py3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PY23
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY23(py2, py3)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCInit
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:31,1
    - Dst: SHA1DCSetSafeHash
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:36,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:37,1
    - Dst: PY23
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:37,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:41,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:42,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:44,1
    - Dst: SHA1DCUpdate
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:48,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysha1ctx*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    functionName: pysha1ctx_init
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - SHA1DCSetSafeHash
    - PY23
    - SHA1DCInit
    - SHA1DCUpdate
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int pysha1ctx_init(pysha1ctx *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysha1ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: pysha1ctx_dealloc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void pysha1ctx_dealloc(pysha1ctx *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:62,1
    - Dst: PY23
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:62,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:65,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:66,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:68,1
    - Dst: SHA1DCUpdate
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:71,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysha1ctx*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: pysha1ctx_update
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - PY23
    - SHA1DCUpdate
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pysha1ctx_update(pysha1ctx *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCFinal
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:82,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - hash_out
    argTypes:
    - SHA1_CTX
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: finalize
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - SHA1DCFinal
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int finalize(SHA1_CTX ctx, unsigned char *hash_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finalize
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:93,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysha1ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: pysha1ctx_digest
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - finalize
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pysha1ctx_digest(pysha1ctx *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finalize
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:105,1
    - Dst: PY23
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysha1ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 113
    functionName: pysha1ctx_hexdigest
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - PY23
    - finalize
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pysha1ctx_hexdigest(pysha1ctx *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysha1ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: pysha1ctx_copy
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pysha1ctx_copy(pysha1ctx *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:188,1
    - Dst: Py_INCREF
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:191,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: module_init
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 2
    functionsReached:
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:202,1
    - Dst: module_init
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: PyInit_sha1dc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - module_init
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_sha1dc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_InitModule3
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:209,1
    - Dst: module_init
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: initsha1dc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    functionUses: 0
    functionsReached:
    - module_init
    - Py_InitModule3
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC initsha1dc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _DVMASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: CHECK_DVMASK
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: rotate_right
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: rotate_left
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: sha1_bswap32
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: sha1_mix
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: sha1_load
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: sha1_load
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: sha1_store
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: sha1_f1
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: sha1_f2
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: sha1_f3
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: sha1_f4
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: SHA1COMPRESS_FULL_ROUND2_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: SHA1COMPRESS_FULL_ROUND3_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: SHA1COMPRESS_FULL_ROUND4_STEP
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: SHA1_STORE_STATE
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_STORE_STATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:201,1
    - Dst: sha1_mix
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:203,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:207,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:208,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:209,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:210,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:211,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:212,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:213,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:214,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:215,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:216,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:217,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:218,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:219,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:220,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:221,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:222,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:223,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:224,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:225,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:226,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:228,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:229,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:230,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:231,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:232,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:233,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:234,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:235,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:236,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:237,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:238,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:239,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:240,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:241,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:242,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:243,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:244,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:245,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:246,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:247,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:249,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:250,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:251,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:252,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:253,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:254,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:255,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:256,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:257,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:258,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:259,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:260,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:261,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:262,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:263,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:264,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:265,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:266,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:267,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:268,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:270,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:271,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:272,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:273,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:274,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:275,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:276,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:277,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:278,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:279,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:280,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:281,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:282,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:283,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:284,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:285,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:286,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:287,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:288,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 94
    argCount: 2
    argNames:
    - ihv
    - m
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 292
    functionName: sha1_compression
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached:
    - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - memcpy
    - sha1_mix
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    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/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:300,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:301,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:302,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:303,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:304,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:305,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:306,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:307,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:308,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:309,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:310,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:311,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:312,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:313,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:314,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:315,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:316,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:317,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:318,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:319,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:321,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:322,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:323,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:324,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:325,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:326,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:327,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:328,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:329,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:330,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:331,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:332,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:333,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:334,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:335,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:336,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:337,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:338,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:339,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:340,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:342,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:343,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:344,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:345,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:346,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:347,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:348,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:349,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:350,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:351,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:352,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:353,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:354,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:355,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:356,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:357,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:358,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:359,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:360,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:361,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:363,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:364,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:365,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:366,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:367,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:368,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:369,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:370,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:371,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:372,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:373,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:374,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:375,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:376,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:377,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:378,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:379,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:380,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:381,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 2
    argNames:
    - ihv
    - W
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 385
    functionName: sha1_compression_W
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached:
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND4_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/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:395,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:397,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:400,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:402,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:405,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:407,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:410,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:412,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:415,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:417,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:420,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:422,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:425,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:427,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:430,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:432,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:435,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:437,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:440,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:442,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:445,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:447,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:450,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:452,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:455,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:457,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:460,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:462,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:465,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:467,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:470,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:472,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:475,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:477,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:480,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:482,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:485,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:487,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:490,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:492,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:497,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:499,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:502,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:504,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:507,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:509,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:512,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:514,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:517,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:519,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:522,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:524,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:527,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:529,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:532,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:534,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:537,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:539,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:542,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:544,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:547,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:549,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:552,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:554,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:557,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:559,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:562,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:564,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:567,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:569,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:572,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:574,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:577,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:579,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:582,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:584,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:587,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:589,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:592,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:594,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:599,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:601,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:604,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:606,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:609,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:611,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:614,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:616,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:619,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:621,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:624,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:626,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:629,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:631,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:634,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:636,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:639,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:641,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:644,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:646,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:649,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:651,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:654,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:656,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:659,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:661,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:664,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:666,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:669,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:671,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:674,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:676,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:679,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:681,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:684,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:686,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:689,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:691,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:694,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:696,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:702,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:704,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:707,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:709,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:712,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:714,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:717,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:719,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:722,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:724,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:727,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:729,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:732,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:734,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:737,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:739,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:742,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:744,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:747,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:749,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:752,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:754,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:757,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:759,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:762,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:764,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:767,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:769,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:772,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:774,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:777,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:779,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:782,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:784,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:787,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:789,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:792,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:794,1
    - Dst: SHA1_STORE_STATE
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:797,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:799,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: 804
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 804
    functionName: sha1_compression_states
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    - SHA1COMPRESS_FULL_ROUND3_STEP
    - SHA1_STORE_STATE
    - SHA1COMPRESS_FULL_ROUND4_STEP
    - SHA1COMPRESS_FULL_ROUND2_STEP
    - SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    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: 977
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 977
    functionName: SHA1_RECOMPRESS
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_RECOMPRESS(t)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: sha1recompress_fast_0
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1313,1
    - Dst: sha1recompress_fast_1
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1318,1
    - Dst: sha1recompress_fast_2
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1323,1
    - Dst: sha1recompress_fast_3
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1328,1
    - Dst: sha1recompress_fast_4
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1333,1
    - Dst: sha1recompress_fast_5
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1338,1
    - Dst: sha1recompress_fast_6
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1343,1
    - Dst: sha1recompress_fast_7
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1348,1
    - Dst: sha1recompress_fast_8
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1353,1
    - Dst: sha1recompress_fast_9
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1358,1
    - Dst: sha1recompress_fast_10
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1363,1
    - Dst: sha1recompress_fast_11
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1368,1
    - Dst: sha1recompress_fast_12
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1373,1
    - Dst: sha1recompress_fast_13
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1378,1
    - Dst: sha1recompress_fast_14
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1383,1
    - Dst: sha1recompress_fast_15
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1388,1
    - Dst: sha1recompress_fast_16
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1393,1
    - Dst: sha1recompress_fast_17
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1398,1
    - Dst: sha1recompress_fast_18
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1403,1
    - Dst: sha1recompress_fast_19
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1408,1
    - Dst: sha1recompress_fast_20
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1413,1
    - Dst: sha1recompress_fast_21
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1418,1
    - Dst: sha1recompress_fast_22
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1423,1
    - Dst: sha1recompress_fast_23
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1428,1
    - Dst: sha1recompress_fast_24
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1433,1
    - Dst: sha1recompress_fast_25
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1438,1
    - Dst: sha1recompress_fast_26
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1443,1
    - Dst: sha1recompress_fast_27
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1448,1
    - Dst: sha1recompress_fast_28
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1453,1
    - Dst: sha1recompress_fast_29
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1458,1
    - Dst: sha1recompress_fast_30
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1463,1
    - Dst: sha1recompress_fast_31
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1468,1
    - Dst: sha1recompress_fast_32
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1473,1
    - Dst: sha1recompress_fast_33
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1478,1
    - Dst: sha1recompress_fast_34
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1483,1
    - Dst: sha1recompress_fast_35
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1488,1
    - Dst: sha1recompress_fast_36
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1493,1
    - Dst: sha1recompress_fast_37
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1498,1
    - Dst: sha1recompress_fast_38
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1503,1
    - Dst: sha1recompress_fast_39
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1508,1
    - Dst: sha1recompress_fast_40
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1513,1
    - Dst: sha1recompress_fast_41
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1518,1
    - Dst: sha1recompress_fast_42
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1523,1
    - Dst: sha1recompress_fast_43
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1528,1
    - Dst: sha1recompress_fast_44
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1533,1
    - Dst: sha1recompress_fast_45
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1538,1
    - Dst: sha1recompress_fast_46
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1543,1
    - Dst: sha1recompress_fast_47
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1548,1
    - Dst: sha1recompress_fast_48
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1553,1
    - Dst: sha1recompress_fast_49
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1558,1
    - Dst: sha1recompress_fast_50
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1563,1
    - Dst: sha1recompress_fast_51
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1568,1
    - Dst: sha1recompress_fast_52
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1573,1
    - Dst: sha1recompress_fast_53
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1578,1
    - Dst: sha1recompress_fast_54
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1583,1
    - Dst: sha1recompress_fast_55
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1588,1
    - Dst: sha1recompress_fast_56
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1593,1
    - Dst: sha1recompress_fast_57
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1598,1
    - Dst: sha1recompress_fast_58
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1603,1
    - Dst: sha1recompress_fast_59
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1608,1
    - Dst: sha1recompress_fast_60
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1613,1
    - Dst: sha1recompress_fast_61
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1618,1
    - Dst: sha1recompress_fast_62
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1623,1
    - Dst: sha1recompress_fast_63
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1628,1
    - Dst: sha1recompress_fast_64
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1633,1
    - Dst: sha1recompress_fast_65
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1638,1
    - Dst: sha1recompress_fast_66
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1643,1
    - Dst: sha1recompress_fast_67
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1648,1
    - Dst: sha1recompress_fast_68
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1653,1
    - Dst: sha1recompress_fast_69
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1658,1
    - Dst: sha1recompress_fast_70
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1663,1
    - Dst: sha1recompress_fast_71
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1668,1
    - Dst: sha1recompress_fast_72
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1673,1
    - Dst: sha1recompress_fast_73
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1678,1
    - Dst: sha1recompress_fast_74
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1683,1
    - Dst: sha1recompress_fast_75
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1688,1
    - Dst: sha1recompress_fast_76
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1693,1
    - Dst: sha1recompress_fast_77
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1698,1
    - Dst: sha1recompress_fast_78
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1703,1
    - Dst: sha1recompress_fast_79
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1708,1
    - Dst: abort
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1712,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: 1715
      start: 1307
    functionDepth: 0
    functionLinenumber: 1307
    functionLinenumberEnd: 1715
    functionName: sha1_recompression_step
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached:
    - sha1recompress_fast_3
    - sha1recompress_fast_74
    - sha1recompress_fast_46
    - sha1recompress_fast_7
    - sha1recompress_fast_31
    - sha1recompress_fast_8
    - sha1recompress_fast_17
    - sha1recompress_fast_34
    - sha1recompress_fast_25
    - sha1recompress_fast_38
    - sha1recompress_fast_73
    - sha1recompress_fast_14
    - sha1recompress_fast_69
    - sha1recompress_fast_9
    - sha1recompress_fast_79
    - sha1recompress_fast_5
    - sha1recompress_fast_64
    - sha1recompress_fast_45
    - sha1recompress_fast_47
    - sha1recompress_fast_77
    - sha1recompress_fast_70
    - sha1recompress_fast_4
    - sha1recompress_fast_72
    - sha1recompress_fast_19
    - sha1recompress_fast_33
    - sha1recompress_fast_26
    - sha1recompress_fast_55
    - sha1recompress_fast_62
    - sha1recompress_fast_75
    - sha1recompress_fast_49
    - sha1recompress_fast_36
    - sha1recompress_fast_6
    - sha1recompress_fast_54
    - sha1recompress_fast_60
    - sha1recompress_fast_18
    - sha1recompress_fast_13
    - sha1recompress_fast_68
    - sha1recompress_fast_30
    - sha1recompress_fast_65
    - sha1recompress_fast_22
    - sha1recompress_fast_57
    - sha1recompress_fast_51
    - sha1recompress_fast_59
    - sha1recompress_fast_42
    - sha1recompress_fast_21
    - sha1recompress_fast_32
    - sha1recompress_fast_63
    - sha1recompress_fast_1
    - sha1recompress_fast_11
    - sha1recompress_fast_12
    - sha1recompress_fast_50
    - sha1recompress_fast_71
    - sha1recompress_fast_16
    - sha1recompress_fast_44
    - sha1recompress_fast_15
    - sha1recompress_fast_20
    - sha1recompress_fast_58
    - sha1recompress_fast_67
    - sha1recompress_fast_39
    - sha1recompress_fast_66
    - sha1recompress_fast_41
    - sha1recompress_fast_0
    - sha1recompress_fast_48
    - sha1recompress_fast_10
    - sha1recompress_fast_37
    - sha1recompress_fast_35
    - sha1recompress_fast_43
    - sha1recompress_fast_53
    - sha1recompress_fast_76
    - sha1recompress_fast_29
    - sha1recompress_fast_61
    - sha1recompress_fast_24
    - sha1recompress_fast_28
    - sha1recompress_fast_56
    - sha1recompress_fast_78
    - abort
    - sha1recompress_fast_40
    - sha1recompress_fast_2
    - sha1recompress_fast_23
    - sha1recompress_fast_52
    - sha1recompress_fast_27
    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/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1731,1
    - Dst: ubc_check
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1737,1
    - Dst: sha1_recompression_step
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1749,1
    - Dst: sha1_compression_W
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1759,1
    - Dst: sha1_compression_W
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1760,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - SHA1_CTX*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1769
    functionName: sha1_process
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 0
    functionsReached:
    - ubc_check
    - sha1_compression_states
    - sha1_compression_W
    - sha1_recompression_step
    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: 1785
      start: 1771
    functionDepth: 0
    functionLinenumber: 1771
    functionLinenumberEnd: 1785
    functionName: SHA1DCInit
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 1793
      start: 1787
    functionDepth: 0
    functionLinenumber: 1787
    functionLinenumberEnd: 1793
    functionName: SHA1DCSetSafeHash
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 1802
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1802
    functionName: SHA1DCSetUseUBC
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 1810
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1810
    functionName: SHA1DCSetUseDetectColl
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 1818
      start: 1812
    functionDepth: 0
    functionLinenumber: 1812
    functionLinenumberEnd: 1818
    functionName: SHA1DCSetDetectReducedRoundCollision
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 1823
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1823
    functionName: SHA1DCSetCallback
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1838,1
    - Dst: sha1_process
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1839,1
    - Dst: sha1_process
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1849,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1851,1
    - Dst: sha1_process
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1852,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - SHA1_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1825
    functionDepth: 1
    functionLinenumber: 1825
    functionLinenumberEnd: 1862
    functionName: SHA1DCUpdate
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 2
    functionsReached:
    - memcpy
    - sha1_process
    linkageType: ''
    returnType: void
    signature: void SHA1DCUpdate(SHA1_CTX* ctx, const char* buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCUpdate
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1877,1
    - Dst: sha1_process
      Src: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - output
    - ctx
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1872
    functionDepth: 2
    functionLinenumber: 1872
    functionLinenumberEnd: 1911
    functionName: SHA1DCFinal
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
    functionUses: 1
    functionsReached:
    - SHA1DCUpdate
    - sha1_process
    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: 370
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 370
    functionName: ubc_check
    functionSourceFile: /src/mercurial/mercurial/thirdparty/sha1dc/lib/ubc_check.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ubc_check(const uint32_t W[80], uint32_t dvmask[1])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: xdl_bogosqrt
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t xdl_bogosqrt(int64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mmf
    - size
    argTypes:
    - mmfile_t*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: xdl_mmfile_first
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *xdl_mmfile_first(mmfile_t *mmf, int64_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mmf
    argTypes:
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: xdl_mmfile_size
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t 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*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: xdl_cha_init
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xdl_cha_init(chastore_t *cha, int64_t isize, int64_t icount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cha
    argTypes:
    - chastore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: xdl_cha_free
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xutils.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cha
    argTypes:
    - chastore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 101
    functionName: xdl_cha_alloc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xutils.c:107,1
    - Dst: memchr
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c:110,1
    - Dst: xdl_mmfile_size
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - mf
    - sample
    argTypes:
    - mmfile_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: xdl_guess_lines
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - memchr
    - xdl_mmfile_first
    - xdl_mmfile_size
    linkageType: ''
    returnType: int64_t
    signature: int64_t xdl_guess_lines(mmfile_t *mf, int64_t sample)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - l1
    - s1
    - l2
    - s2
    argTypes:
    - char*
    - int64_t
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: xdl_recmatch
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int xdl_recmatch(const char *l1, int64_t s1, const char *l2, int64_t
      s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - top
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: xdl_hash_record
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xdl_hash_record(char const **data, char const *top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: xdl_hashbits
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int xdl_hashbits(int64_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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xmacros.h
    functionUses: 0
    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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: XDL_PTRFREE
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_PTRFREE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: XDL_LE32_PUT
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: XDL_LE32_GET
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xmacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XDL_LE32_GET(p, v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdl_hashbits
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:73,1
    - Dst: xdl_cha_init
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:76,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:80,1
    - Dst: xdl_cha_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:82,1
    - Dst: memset
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:85,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:88,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:90,1
    - Dst: xdl_cha_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - cf
    - size
    - flags
    argTypes:
    - xdlclassifier_t*
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: xdl_init_classifier
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_hashbits
    - xdl_free
    - xdl_cha_init
    - xdl_cha_free
    - xdl_malloc
    - memset
    linkageType: ''
    returnType: int
    signature: int xdl_init_classifier(xdlclassifier_t *cf, int64_t size, int64_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:103,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:104,1
    - Dst: xdl_cha_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cf
    argTypes:
    - xdlclassifier_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: xdl_free_classifier
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cha_free
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_classifier(xdlclassifier_t *cf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XDL_HASHLONG
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:117,1
    - Dst: xdl_recmatch
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:120,1
    - Dst: xdl_cha_alloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:125,1
    - Dst: xdl_realloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:132,1
    - Dst: XDL_HASHLONG
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - pass
    - cf
    - rhash
    - hbits
    - rec
    argTypes:
    - unsigned int
    - xdlclassifier_t*
    - xrecord_t**
    - unsigned int
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 156
    functionName: xdl_classify_record
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cha_alloc
    - XDL_HASHLONG
    - xdl_recmatch
    - xdl_realloc
    linkageType: ''
    returnType: int
    signature: "int xdl_classify_record(unsigned int pass, xdlclassifier_t *cf, xrecord_t
      **rhash,\n\t\t\t       unsigned int hbits, xrecord_t *rec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:181,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:182,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:184,1
    - Dst: memcpy
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 6
    argNames:
    - mf1
    - mf2
    - reserved
    - xe
    - out_mf1
    - out_mf2
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - int64_t
    - xdfenv_t*
    - mmfile_t*
    - mmfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 237
    functionName: xdl_trim_files
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void xdl_trim_files(mmfile_t *mf1, mmfile_t *mf2, int64_t reserved,\n\t\txdfenv_t
      *xe, mmfile_t *out_mf1, mmfile_t *out_mf2)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: xdl_cha_init
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:259,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:261,1
    - Dst: xdl_hashbits
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:265,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:267,1
    - Dst: memset
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:269,1
    - Dst: xdl_mmfile_first
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:273,1
    - Dst: xdl_hash_record
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:276,1
    - Dst: xdl_realloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:279,1
    - Dst: xdl_cha_alloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:283,1
    - Dst: xdl_classify_record
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:290,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:295,1
    - Dst: memset
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:297,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:299,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:301,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:318,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:319,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:320,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:321,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:322,1
    - Dst: xdl_cha_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:323,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 5
    argNames:
    - pass
    - mf
    - narec
    - cf
    - xdf
    argTypes:
    - unsigned int
    - mmfile_t*
    - int64_t
    - xdlclassifier_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 325
    functionName: xdl_prepare_ctx
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_hashbits
    - xdl_classify_record
    - xdl_free
    - xdl_cha_init
    - xdl_cha_free
    - xdl_hash_record
    - xdl_cha_alloc
    - xdl_mmfile_first
    - xdl_realloc
    - xdl_malloc
    - memset
    linkageType: ''
    returnType: int
    signature: "int xdl_prepare_ctx(unsigned int pass, mmfile_t *mf, int64_t narec,\n\t\t\t
      \  xdlclassifier_t *cf, xdfile_t *xdf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:330,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:331,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:332,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:333,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:334,1
    - Dst: xdl_cha_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - xdf
    argTypes:
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: xdl_free_ctx
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_cha_free
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_ctx(xdfile_t *xdf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:347,1
    - Dst: xdl_guess_lines
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:351,1
    - Dst: xdl_guess_lines
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:352,1
    - Dst: xdl_init_classifier
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:354,1
    - Dst: xdl_trim_files
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:357,1
    - Dst: xdl_prepare_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:359,1
    - Dst: xdl_free_classifier
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:361,1
    - Dst: xdl_prepare_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:364,1
    - Dst: xdl_free_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:366,1
    - Dst: xdl_free_classifier
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:367,1
    - Dst: xdl_optimize_ctxs
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:371,1
    - Dst: xdl_free_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:372,1
    - Dst: xdl_free_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:373,1
    - Dst: xdl_free_classifier
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:374,1
    - Dst: xdl_free_classifier
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - mf1
    - mf2
    - xpp
    - xe
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 381
    functionName: xdl_prepare_env
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_optimize_ctxs
    - xdl_free_classifier
    - xdl_free_ctx
    - xdl_trim_files
    - xdl_init_classifier
    - xdl_prepare_ctx
    - xdl_guess_lines
    - memset
    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:
    - Dst: xdl_free_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:386,1
    - Dst: xdl_free_ctx
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xe
    argTypes:
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: xdl_free_env
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_free_ctx
    linkageType: ''
    returnType: void
    signature: void xdl_free_env(xdfenv_t *xe)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - dis
    - i
    - s
    - e
    argTypes:
    - char*
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 446
    functionName: xdl_clean_mmatch
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int xdl_clean_mmatch(char const *dis, int64_t i, int64_t s, int64_t
      e)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:460,1
    - Dst: memset
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:464,1
    - Dst: xdl_bogosqrt
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:468,1
    - Dst: xdl_bogosqrt
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:476,1
    - Dst: xdl_clean_mmatch
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:487,1
    - Dst: xdl_clean_mmatch
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:499,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:508,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - cf
    - xdf1
    - xdf2
    argTypes:
    - xdlclassifier_t*
    - xdfile_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 511
    functionName: xdl_cleanup_records
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 0
    functionsReached:
    - xdl_bogosqrt
    - xdl_malloc
    - xdl_free
    - xdl_clean_mmatch
    - memset
    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/mercurial/mercurial/thirdparty/xdiff/xprepare.c:523,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - xdf1
    - xdf2
    argTypes:
    - xdfile_t*
    - xdfile_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 540
    functionName: xdl_trim_ends
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xprepare.c:545,1
    - Dst: xdl_cleanup_records
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c:546,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: 552
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 552
    functionName: xdl_optimize_ctxs
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    functionUses: 1
    functionsReached:
    - xdl_trim_ends
    - xdl_cleanup_records
    linkageType: ''
    returnType: int
    signature: int xdl_optimize_ctxs(xdlclassifier_t *cf, xdfile_t *xdf1, xdfile_t
      *xdf2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: xdl_malloc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_malloc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: xdl_free
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    functionUses: 6
    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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: xdl_realloc
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xdl_realloc(ptr,x)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: XDL_MIN
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:228,1
    - Dst: XDL_MAX
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:240,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 133
    argCount: 11
    argNames:
    - ha1
    - off1
    - lim1
    - ha2
    - off2
    - lim2
    - kvdf
    - kvdb
    - need_min
    - spl
    - xenv
    argTypes:
    - uint64_t*
    - int64_t
    - int64_t
    - uint64_t*
    - int64_t
    - int64_t
    - int64_t*
    - int64_t*
    - int
    - xdpsplit_t*
    - xdalgoenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 264
    functionName: xdl_split
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - XDL_MAX
    - XDL_MIN
    linkageType: ''
    returnType: int64_t
    signature: "int64_t xdl_split(uint64_t const *ha1, int64_t off1, int64_t lim1,\n\t\t
      \     uint64_t const *ha2, int64_t off2, int64_t lim2,\n\t\t      int64_t *kvdf,
      int64_t *kvdb, int need_min, xdpsplit_t *spl,\n\t\t      xdalgoenv_t *xenv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xdl_split
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:306,1
    - Dst: xdl_recs_cmp
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:315,1
    - Dst: xdl_recs_cmp
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:317,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 10
    argNames:
    - dd1
    - off1
    - lim1
    - dd2
    - off2
    - lim2
    - kvdf
    - kvdb
    - need_min
    - xenv
    argTypes:
    - diffdata_t*
    - int64_t
    - int64_t
    - diffdata_t*
    - int64_t
    - int64_t
    - int64_t*
    - int64_t*
    - int
    - xdalgoenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 325
    functionName: xdl_recs_cmp
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 1
    functionsReached:
    - xdl_split
    - xdl_recs_cmp
    linkageType: ''
    returnType: int
    signature: "int xdl_recs_cmp(diffdata_t *dd1, int64_t off1, int64_t lim1,\n\t\t
      diffdata_t *dd2, int64_t off2, int64_t lim2,\n\t\t int64_t *kvdf, int64_t *kvdb,
      int need_min, xdalgoenv_t *xenv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xdl_prepare_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:335,1
    - Dst: xdl_malloc
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:345,1
    - Dst: xdl_free_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:347,1
    - Dst: xdl_bogosqrt
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:355,1
    - Dst: xdl_recs_cmp
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:370,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:373,1
    - Dst: xdl_free_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:374,1
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - mf1
    - mf2
    - xpp
    - xe
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdfenv_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 381
    functionName: xdl_do_diff
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_free_env
    - xdl_prepare_env
    - xdl_bogosqrt
    - xdl_recs_cmp
    - xdl_malloc
    - xdl_free
    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/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - xscr
    - i1
    - i2
    - chg1
    - chg2
    argTypes:
    - xdchange_t*
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 398
    functionName: xdl_add_change
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_malloc
    linkageType: ''
    returnType: xdchange_t
    signature: xdchange_t *xdl_add_change(xdchange_t *xscr, int64_t i1, int64_t i2,
      int64_t chg1, int64_t chg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_recmatch
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - rec1
    - rec2
    argTypes:
    - xrecord_t*
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: recs_match
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_recmatch
    linkageType: ''
    returnType: int
    signature: int recs_match(xrecord_t *rec1, xrecord_t *rec2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XDL_ISSPACE
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - rec
    argTypes:
    - xrecord_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 443
    functionName: get_indent
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:509,1
    - Dst: get_indent
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:515,1
    - Dst: get_indent
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - xdf
    - split
    - m
    argTypes:
    - xdfile_t*
    - int64_t
    - struct split_measurement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 537
    functionName: measure_split
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - get_indent
    linkageType: ''
    returnType: void
    signature: "void measure_split(const xdfile_t *xdf, int64_t 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: 677
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 677
    functionName: score_add_split
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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: 686
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: score_cmp
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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: 725
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 725
    functionName: group_init
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    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: 741
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 741
    functionName: group_next
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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: 757
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 757
    functionName: group_previous
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 778
    functionName: group_slide_down
    functionSourceFile: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - xdf
    - g
    argTypes:
    - xdfile_t*
    - struct xdlgroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 799
    functionName: group_slide_up
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - recs_match
    linkageType: ''
    returnType: int
    signature: int group_slide_up(xdfile_t *xdf, struct xdlgroup *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:803,1
    - Dst: exit
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 805
    functionName: xdl_bug
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void xdl_bug(const char *msg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: group_init
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:825,1
    - Dst: group_init
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:826,1
    - Dst: group_slide_up
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:849,1
    - Dst: group_previous
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:850,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:851,1
    - Dst: group_slide_down
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:864,1
    - Dst: group_next
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:866,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:867,1
    - Dst: group_slide_up
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:891,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:892,1
    - Dst: group_previous
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:893,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:894,1
    - Dst: measure_split
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:929,1
    - Dst: score_add_split
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:930,1
    - Dst: measure_split
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:931,1
    - Dst: score_add_split
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:932,1
    - Dst: score_cmp
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:937,1
    - Dst: group_slide_up
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:952,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:953,1
    - Dst: group_previous
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:954,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:955,1
    - Dst: group_next
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:961,1
    - Dst: group_next
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:963,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:964,1
    - Dst: group_next
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:967,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:968,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - xdf
    - xdfo
    - flags
    argTypes:
    - xdfile_t*
    - xdfile_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 971
    functionName: xdl_change_compact
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - group_previous
    - group_next
    - measure_split
    - group_slide_up
    - score_cmp
    - group_slide_down
    - score_add_split
    - xdl_bug
    - group_init
    linkageType: ''
    returnType: int
    signature: int xdl_change_compact(xdfile_t *xdf, xdfile_t *xdfo, int64_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xdl_add_change
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:987,1
    - Dst: xdl_free_script
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:988,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - xe
    - xscr
    argTypes:
    - xdfenv_t*
    - xdchange_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 997
    functionName: xdl_build_script
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdl_add_change
    - xdl_free_script
    linkageType: ''
    returnType: int
    signature: int xdl_build_script(xdfenv_t *xe, xdchange_t **xscr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xdl_free
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - xscr
    argTypes:
    - xdchange_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: xdl_free_script
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 1
    functionsReached:
    - xdl_free
    linkageType: ''
    returnType: void
    signature: void xdl_free_script(xdchange_t *xscr)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 1
    argNames:
    - xscr
    argTypes:
    - xdchange_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1056
    functionName: xdl_get_hunk
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xdchange_t
    signature: xdchange_t *xdl_get_hunk(xdchange_t **xscr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xdl_get_hunk
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1071,1
    - Dst: xdl_bug
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1075,1
    - Dst: xdemitconf_t*::hunk_func
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1079,1
    - Dst: xdemitconf_t*::hunk_func
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1085,1
    - Dst: xdl_get_hunk
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1090,1
    - Dst: xdemitconf_t*::hunk_func
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1093,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - xe
    - xscr
    - ecb
    - xecfg
    argTypes:
    - xdfenv_t*
    - xdchange_t*
    - xdemitcb_t*
    - xdemitconf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1102
    functionName: xdl_call_hunk_func
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 0
    functionsReached:
    - xdemitconf_t*::hunk_func
    - xdl_bug
    - xdl_get_hunk
    linkageType: ''
    returnType: int
    signature: "int xdl_call_hunk_func(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t
      *ecb,\n\t\t\t      xdemitconf_t const *xecfg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xdl_do_diff
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1109,1
    - Dst: xdl_change_compact
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1113,1
    - Dst: xdl_change_compact
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1114,1
    - Dst: xdl_build_script
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1115,1
    - Dst: xdl_free_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1117,1
    - Dst: xdl_call_hunk_func
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1121,1
    - Dst: xdl_free_script
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1122,1
    - Dst: xdl_free_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1123,1
    - Dst: xdl_free_script
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1126,1
    - Dst: xdl_free_env
      Src: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c:1127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - mf1
    - mf2
    - xpp
    - xecfg
    - ecb
    argTypes:
    - mmfile_t*
    - mmfile_t*
    - xpparam_t*
    - xdemitconf_t*
    - xdemitcb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1104
    functionDepth: 6
    functionLinenumber: 1104
    functionLinenumberEnd: 1130
    functionName: xdl_diff
    functionSourceFile: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    functionUses: 1
    functionsReached:
    - xdl_free_env
    - xdl_change_compact
    - xdl_build_script
    - xdl_free_script
    - xdl_do_diff
    - xdl_call_hunk_func
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: INT_SIZE
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Length
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: bserobj_tuple_length
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t bserobj_tuple_length(PyObject* o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_GetItem
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: bserobj_tuple_item
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bserobj_tuple_item(PyObject* o, Py_ssize_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:122,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:123,1
    - Dst: PyObject_Del
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: bserobj_dealloc
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void bserobj_dealloc(PyObject* o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:134,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:135,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:136,1
    - Dst: PySequence_Size
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:140,1
    - Dst: PySequence_GetItem
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:149,1
    - Dst: PyUnicode_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:155,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:156,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:160,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:162,1
    - Dst: strncmp
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:170,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:174,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:177,1
    - Dst: PyUnicode_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:179,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:181,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:183,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:187,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:190,1
    - Dst: strcmp
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:195,1
    - Dst: PySequence_GetItem
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:196,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:201,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:204,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - o
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 206
    functionName: bserobj_getattrro
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PyIndex_Check
    - PyErr_Occurred
    - strcmp
    - PySequence_Size
    - PyTuple_GET_SIZE
    - PyUnicode_AsUTF8
    - PySequence_GetItem
    - Py_XDECREF
    - PyBytes_AsString
    - PyUnicode_AsEncodedString
    - PyErr_Format
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bserobj_getattrro(PyObject* o, PyObject* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: next_power_2
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t next_power_2(uint32_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: next_power_2
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:294,1
    - Dst: realloc
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:296,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - bser
    - data
    - len
    argTypes:
    - bser_t*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 308
    functionName: bser_append
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - realloc
    - memcpy
    - next_power_2
    linkageType: ''
    returnType: int
    signature: int bser_append(bser_t* bser, const char* data, uint32_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:313,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:329,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - bser
    - version
    - capabilities
    argTypes:
    - bser_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 335
    functionName: bser_init
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - malloc
    - bser_append
    linkageType: ''
    returnType: int
    signature: int bser_init(bser_t* bser, uint32_t version, uint32_t capabilities)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bser
    argTypes:
    - bser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: bser_dtor
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void bser_dtor(bser_t* bser)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INT_SIZE
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:348,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:373,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:377,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:381,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - bser
    - val
    argTypes:
    - bser_t*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 382
    functionName: bser_long
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bser_append
    - INT_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bser_long(bser_t* bser, int64_t val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:390,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:391,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:395,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:401,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:406,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:412,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:417,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - bser
    - sval
    argTypes:
    - bser_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 425
    functionName: bser_bytestring
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bser_append
    - Py_DECREF
    - bser_long
    - PyUnicode_AsEncodedString
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int bser_bytestring(bser_t* bser, PyObject* sval)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:428,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:430,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:432,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:436,1
    - Dst: PyInt_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:441,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:442,1
    - Dst: PyInt_AS_LONG
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:442,1
    - Dst: PyLong_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:446,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:447,1
    - Dst: PyLong_AsLongLong
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:447,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:450,1
    - Dst: PyUnicode_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:450,1
    - Dst: bser_bytestring
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:451,1
    - Dst: PyFloat_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:454,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:455,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:458,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:462,1
    - Dst: PyList_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:465,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:466,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:468,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:472,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:477,1
    - Dst: bser_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:479,1
    - Dst: PyTuple_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:487,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:488,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:490,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:494,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:499,1
    - Dst: bser_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:501,1
    - Dst: PyMapping_Check
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:509,1
    - Dst: PyMapping_Length
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:510,1
    - Dst: bser_append
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:514,1
    - Dst: bser_long
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:518,1
    - Dst: PyDict_Next
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:522,1
    - Dst: bser_bytestring
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:523,1
    - Dst: bser_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:526,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:534,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 2
    argNames:
    - bser
    - val
    argTypes:
    - bser_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 536
    functionName: bser_recursive
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 1
    functionsReached:
    - PyMapping_Length
    - bser_append
    - PyTuple_GET_SIZE
    - PyFloat_Check
    - bser_bytestring
    - PyList_GET_ITEM
    - PyLong_AsLongLong
    - PyTuple_Check
    - bser_recursive
    - PyBool_Check
    - PyLong_Check
    - PyMapping_Check
    - PyDict_Next
    - bser_long
    - PyFloat_AS_DOUBLE
    - PyList_Check
    - PyInt_AS_LONG
    - PyInt_Check
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int bser_recursive(bser_t* bser, PyObject* val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:545,1
    - Dst: bser_init
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:556,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:557,1
    - Dst: bser_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:560,1
    - Dst: bser_dtor
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:561,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:563,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:572,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:576,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:577,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:580,1
    - Dst: bser_dtor
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 584
    functionName: bser_dumps
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - bser_init
    - PyErr_NoMemory
    - PyArg_ParseTupleAndKeywords
    - bser_recursive
    - bser_dtor
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bser_dumps(PyObject* self, PyObject* args, PyObject* kw)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:608,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:613,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:619,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:623,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:627,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:631,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 3
    argNames:
    - ptr
    - end
    - val
    argTypes:
    - char**
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 637
    functionName: bunser_int
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bunser_int(const char** ptr, const char* end, int64_t* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:648,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - end
    - start
    - len
    argTypes:
    - char**
    - char*
    - char**
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 660
    functionName: bunser_bytestring
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bunser_int
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int bunser_bytestring(\n    const char** ptr,\n    const char* end,\n
      \   const char** start,\n    int64_t* len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:671,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:677,1
    - Dst: PyList_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:682,1
    - Dst: PyTuple_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - end
    - ctx
    argTypes:
    - char**
    - char*
    - unser_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 685
    functionName: bunser_array
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bunser_int
    - PyList_New
    - PyErr_Format
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bunser_array(const char** ptr, const char* end, const unser_ctx_t* ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:716,1
    - Dst: PyDict_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:722,1
    - Dst: PyObject_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:724,1
    - Dst: PyTuple_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:725,1
    - Dst: PyTuple_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ptr
    - end
    - ctx
    argTypes:
    - char**
    - char*
    - unser_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 728
    functionName: bunser_object
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bunser_int
    - PyDict_New
    - PyTuple_New
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bunser_object(const char** ptr, const char* end, const unser_ctx_t* ctx)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:806,1
    - Dst: bunser_array
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:816,1
    - Dst: PySequence_Length
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:821,1
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:824,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:825,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:830,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:831,1
    - Dst: PyList_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:835,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:837,1
    - Dst: PyDict_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:846,1
    - Dst: PyObject_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:848,1
    - Dst: Py_INCREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:851,1
    - Dst: PyTuple_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:852,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:858,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:859,1
    - Dst: Py_INCREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:870,1
    - Dst: bser_loads_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:872,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:880,1
    - Dst: PyDict_SetItem
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:881,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:882,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:884,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 3
    argNames:
    - ptr
    - end
    - ctx
    argTypes:
    - char**
    - char*
    - unser_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 887
    functionName: bunser_template
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    - bunser_array
    - Py_DECREF
    - bser_loads_recursive
    - Py_INCREF
    - bunser_int
    - PyDict_New
    - PyList_GET_ITEM
    - PyErr_Format
    - PyDict_SetItem
    - PyList_New
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bunser_template(const char** ptr, const char* end, const unser_ctx_t* ctx)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:910,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:915,1
    - Dst: PyLong_FromLongLong
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:918,1
    - Dst: PyInt_FromSsize_t
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:920,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:920,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:926,1
    - Dst: PyFloat_FromDouble
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:928,1
    - Dst: Py_INCREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:933,1
    - Dst: Py_INCREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:938,1
    - Dst: Py_INCREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:943,1
    - Dst: bunser_bytestring
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:950,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:955,1
    - Dst: PyUnicode_Decode
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:960,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:963,1
    - Dst: bunser_bytestring
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:971,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:976,1
    - Dst: PyUnicode_Decode
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:980,1
    - Dst: bunser_array
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:984,1
    - Dst: bunser_object
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:987,1
    - Dst: bunser_template
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:990,1
    - Dst: PyErr_Format
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:993,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 3
    argNames:
    - ptr
    - end
    - ctx
    argTypes:
    - char**
    - char*
    - unser_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 898
    functionDepth: 4
    functionLinenumber: 898
    functionLinenumberEnd: 997
    functionName: bser_loads_recursive
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - memcpy
    - bunser_array
    - Py_INCREF
    - bunser_int
    - bunser_object
    - bunser_bytestring
    - PyErr_Format
    - PyLong_FromLongLong
    - bunser_template
    - PyInt_FromSsize_t
    - PyFloat_FromDouble
    - PyUnicode_Decode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * bser_loads_recursive(\n    const char** ptr,\n    const
      char* end,\n    const unser_ctx_t* ctx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1013,1
    - Dst: memcmp
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1015,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1018,1
    - Dst: memcpy
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1027,1
    - Dst: bunser_int
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 6
    argNames:
    - data
    - end
    - bser_version_out
    - bser_capabilities_out
    - expected_len_out
    - position_out
    argTypes:
    - char*
    - char*
    - uint32_t*
    - uint32_t*
    - int64_t*
    - off_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1044
    functionName: _pdu_info_helper
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bunser_int
    - memcmp
    - memcpy
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int _pdu_info_helper(\n    const char* data,\n    const char* end,\n
      \   uint32_t* bser_version_out,\n    uint32_t* bser_capabilities_out,\n    int64_t*
      expected_len_out,\n    off_t* position_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1061,1
    - Dst: _pdu_info_helper
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - self
    - args
    - bser_version_out
    - bser_capabilities_out
    - total_len_out
    argTypes:
    - PyObject*
    - PyObject*
    - uint32_t*
    - uint32_t*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1078
    functionName: pdu_info_helper
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 1
    functionsReached:
    - _pdu_info_helper
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: "int pdu_info_helper(\n    PyObject* self,\n    PyObject* args,\n    uint32_t*
      bser_version_out,\n    uint32_t* bser_capabilities_out,\n    int64_t* total_len_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdu_info_helper
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1088,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1085
    functionDepth: 4
    functionLinenumber: 1085
    functionLinenumberEnd: 1092
    functionName: bser_pdu_info
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - pdu_info_helper
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bser_pdu_info(PyObject* self, PyObject* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdu_info_helper
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1097,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1101
    functionName: bser_pdu_len
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - pdu_info_helper
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bser_pdu_len(PyObject* self, PyObject* args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1118,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1132,1
    - Dst: _pdu_info_helper
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1145,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1158,1
    - Dst: bser_loads_recursive
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1103
    functionDepth: 5
    functionLinenumber: 1103
    functionLinenumberEnd: 1163
    functionName: bser_loads
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - bser_loads_recursive
    - _pdu_info_helper
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bser_loads(PyObject* self, PyObject* args, PyObject* kw)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1179,1
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1191,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1195,1
    - Dst: Py_BuildValue
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1200,1
    - Dst: PyDict_New
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1205,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1210,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1213,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1216,1
    - Dst: PyObject_Call
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1218,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1219,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1220,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1221,1
    - Dst: Py_DECREF
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1165
    functionDepth: 1
    functionLinenumber: 1165
    functionLinenumberEnd: 1224
    functionName: bser_load
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_BuildValue
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_Call
    - PyDict_New
    - PyArg_ParseTupleAndKeywords
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyObject
    signature: PyObject * bser_load(PyObject* self, PyObject* args, PyObject* kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1254,1
    - Dst: PyType_Ready
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1258
    functionName: PyInit_bser
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_bser(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_InitModule
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1262,1
    - Dst: PyType_Ready
      Src: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1264
    functionName: initbser
    functionSourceFile: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - Py_InitModule
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC initbser(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_setParameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:14,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:15,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:16,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - params
    - param
    - value
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_cParameter
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: set_parameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - ZSTD_isError
    - ZSTD_CCtxParams_setParameter
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int set_parameter(ZSTD_CCtx_params *params, ZSTD_cParameter param,
      int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - params
    - ','
    - param
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: TRY_SET_PARAMETER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_SET_PARAMETER(params, param, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - source
    - ','
    - dest
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: TRY_COPY_PARAMETER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_COPY_PARAMETER(source, dest, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:44,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:46,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:47,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:48,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:49,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:50,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:51,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:52,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:53,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:54,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:55,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:56,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:57,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:58,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:59,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:60,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:61,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:62,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:63,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:64,1
    - Dst: TRY_COPY_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - params
    - obj
    argTypes:
    - ZSTD_CCtx_params*
    - ZstdCompressionParametersObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: set_parameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - TRY_COPY_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int set_parameters(ZSTD_CCtx_params *params,\n                   ZstdCompressionParametersObject
      *obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:72,1
    - Dst: ZSTD_createCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:75,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:77,1
    - Dst: set_parameters
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZstdCompressionParametersObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: reset_params
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtxParams_reset
    - PyErr_NoMemory
    - ZSTD_createCCtxParams
    - set_parameters
    linkageType: ''
    returnType: int
    signature: int reset_params(ZstdCompressionParametersObject *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - params
    - ','
    - param
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: TRY_GET_PARAMETER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_GET_PARAMETER(params, param, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:99,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:102,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:105,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:108,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:111,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:114,1
    - Dst: TRY_GET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - params
    - cparams
    argTypes:
    - ZstdCompressionParametersObject*
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: to_cparams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - TRY_GET_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int to_cparams(ZstdCompressionParametersObject *params,\n               ZSTD_compressionParameters
      *cparams)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:170,1
    - Dst: reset_params
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:180,1
    - Dst: cpu_count
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:185,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:191,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:193,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:194,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:195,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:196,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:197,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:198,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:199,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:200,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:206,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:207,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:208,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:209,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:210,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:216,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:217,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:218,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:220,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:221,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:222,1
    - Dst: TRY_SET_PARAMETER
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionParametersObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 231
    functionName: ZstdCompressionParameters_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - reset_params
    - cpu_count
    - TRY_SET_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int ZstdCompressionParameters_init(ZstdCompressionParametersObject
      *self,\n                                          PyObject *args, PyObject *kwargs)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:247,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:252,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:259,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:261,1
    - Dst: PyDict_DelItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:266,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:269,1
    - Dst: PyLong_AsSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:271,1
    - Dst: PyDict_DelItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:276,1
    - Dst: ZSTD_getCParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:279,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:283,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:285,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:289,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:290,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:293,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:295,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:299,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:300,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:303,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:305,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:309,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:310,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:313,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:315,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:319,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:320,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:323,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:325,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:329,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:330,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:333,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:335,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:339,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:340,1
    - Dst: PyDict_GetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:343,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:345,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:349,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:350,1
    - Dst: PyObject_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:353,1
    - Dst: PyTuple_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:361,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:363,1
    - Dst: ZstdCompressionParameters_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:367,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:368,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:371,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:377,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 125
    argCount: 3
    argNames:
    - undef
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 381
    functionName: CompressionParameters_from_level
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - Py_CLEAR
    - Py_DECREF
    - PyTuple_New
    - PyDict_New
    - ZstdCompressionParameters_init
    - PyLong_AsSsize_t
    - PyLong_AsUnsignedLongLong
    - PyLong_FromUnsignedLong
    - PyDict_SetItemString
    - ZSTD_getCParams
    - PyDict_GetItemString
    - PyArg_ParseTuple
    - PyObject_New
    linkageType: ''
    returnType: ZstdCompressionParametersObject
    signature: "ZstdCompressionParametersObject *\nCompressionParameters_from_level(PyObject
      *undef, PyObject *args,\n                                 PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:385,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionParametersObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: ZstdCompressionParameters_estimated_compression_context_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - ZSTD_estimateCCtxSize_usingCCtxParams
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionParameters_estimated_compression_context_size(\n
      \   ZstdCompressionParametersObject *self)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:392,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionParametersObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: ZstdCompressionParameters_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - ZSTD_freeCCtxParams
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionParameters_dealloc(ZstdCompressionParametersObject
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: PARAM_GETTER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARAM_GETTER(name, param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 447
    functionName: GET_SET_ENTRY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SET_ENTRY(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:493,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:494,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:498,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 501
    functionName: compressionparams_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressionparams_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:14,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:17,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: ZstdCompressionObj_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionObj_dealloc(ZstdCompressionObj *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:33,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:38,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:48,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:53,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:54,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:55,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:61,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:63,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:65,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:69,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:69,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:73,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:85,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:89,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 92
    functionName: ZstdCompressionObj_compress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_CLEAR
    - memcpy
    - ZSTD_getErrorName
    - PyBytes_GET_SIZE
    - PyBytes_FromString
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTupleAndKeywords
    - ZSTD_compressStream2
    - safe_pybytes_resize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionObj_compress(ZstdCompressionObj *self,\n
      \                                            PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:53,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:54,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:105,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:112,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:117,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:132,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:136,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:143,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:148,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:149,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:155,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:157,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:159,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:163,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:163,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:167,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:186,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionObj*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self->output.pos == 0)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    constantsTouched: []
    func_position:
      end: 188
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 188
    functionName: ZstdCompressionObj_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_XDECREF
    - ZSTD_getErrorName
    - PyBytes_GET_SIZE
    - PyBytes_FromString
    - PyErr_Format
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTupleAndKeywords
    - assert
    - ZSTD_compressStream2
    - safe_pybytes_resize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionObj_flush(ZstdCompressionObj *self,\n                                          PyObject
      *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:148,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:216,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: compressobj_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressobj_module_init(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:14,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:15,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: ZstdDecompressionWriter_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ZstdDecompressionWriter_dealloc(ZstdDecompressionWriter *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:22,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:27,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: ZstdDecompressionWriter_enter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_enter(ZstdDecompressionWriter *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdDecompressionWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: ZstdDecompressionWriter_exit
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdDecompressionWriter_exit(ZstdDecompressionWriter *self,\n
      \                                             PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:50,1
    - Dst: ZSTD_sizeof_DCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: ZstdDecompressionWriter_memory_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - ZSTD_sizeof_DCtx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdDecompressionWriter_memory_size(ZstdDecompressionWriter *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:66,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:72,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:76,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:78,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:90,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:94,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:95,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:96,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:101,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:106,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:112,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:115,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:118,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressionWriter*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 124
    functionName: ZstdDecompressionWriter_write
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - Py_XDECREF
    - PyObject_CallMethod
    - ZSTD_getErrorName
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromSsize_t
    - ZSTD_decompressStream
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdDecompressionWriter_write(ZstdDecompressionWriter *self,\n
      \                                              PyObject *args,\n                                               PyObject
      *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:94,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:95,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    - PyMem_Free
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:134,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:143,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 148
    functionName: ZstdDecompressionWriter_close
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_close(ZstdDecompressionWriter *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:151,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:152,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: ZstdDecompressionWriter_fileno
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_fileno(ZstdDecompressionWriter *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:163,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:167,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: ZstdDecompressionWriter_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttrString
    - PyObject_CallMethod
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_flush(ZstdDecompressionWriter *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: ZstdDecompressionWriter_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_iter(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: ZstdDecompressionWriter_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_iternext(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: ZstdDecompressionWriter_false
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_false(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: ZstdDecompressionWriter_true
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressionWriter_true(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: ZstdDecompressionWriter_unsupported
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdDecompressionWriter_unsupported(PyObject *self,\n                                                     PyObject
      *args,\n                                                     PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:265,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:266,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:270,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 273
    functionName: decompressionwriter_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void decompressionwriter_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:44,1
    - Dst: ZSTD_estimateDCtxSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: estimate_decompression_context_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateDCtxSize
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: PyObject *estimate_decompression_context_size(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:55,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:60,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:63,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:66,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:69,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 75
    functionName: frame_content_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ZSTD_getFrameContentSize
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *frame_content_size(PyObject *self, PyObject *args,\n                                    PyObject
      *kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:85,1
    - Dst: ZSTD_frameHeaderSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:90,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:91,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:92,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:93,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:96,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: frame_header_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached:
    - ZSTD_frameHeaderSize
    - ZSTD_isError
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *frame_header_size(PyObject *self, PyObject *args,\n                                   PyObject
      *kwargs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_versionNumber
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:154,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:158,1
    - Dst: PySet_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:167,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:169,1
    - Dst: PyUnicode_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:173,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:175,1
    - Dst: PySet_Add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:179,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:183,1
    - Dst: PyUnicode_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:186,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:188,1
    - Dst: PySet_Add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:192,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:196,1
    - Dst: PyUnicode_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:200,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:202,1
    - Dst: PySet_Add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:206,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:210,1
    - Dst: PyObject_SetAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:213,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:217,1
    - Dst: bufferutil_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:219,1
    - Dst: compressionparams_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:220,1
    - Dst: compressiondict_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:221,1
    - Dst: compressobj_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:222,1
    - Dst: compressor_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:223,1
    - Dst: compressionchunker_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:224,1
    - Dst: compressionreader_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:225,1
    - Dst: compressionwriter_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:226,1
    - Dst: compressoriterator_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:227,1
    - Dst: constants_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:228,1
    - Dst: decompressor_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:229,1
    - Dst: decompressobj_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:230,1
    - Dst: decompressionreader_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:231,1
    - Dst: decompressionwriter_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:232,1
    - Dst: decompressoriterator_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:233,1
    - Dst: frameparams_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 235
    functionName: zstd_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached:
    - bufferutil_module_init
    - compressiondict_module_init
    - decompressoriterator_module_init
    - compressionreader_module_init
    - decompressionwriter_module_init
    - decompressionreader_module_init
    - constants_module_init
    - compressionwriter_module_init
    - PyErr_Format
    - decompressor_module_init
    - PySet_Add
    - PyUnicode_FromString
    - Py_DECREF
    - decompressobj_module_init
    - ZSTD_versionNumber
    - compressionparams_module_init
    - frameparams_module_init
    - compressobj_module_init
    - compressionchunker_module_init
    - compressoriterator_module_init
    - PyErr_SetString
    - PySet_New
    - compressor_module_init
    - PyObject_SetAttrString
    linkageType: ''
    returnType: void
    signature: void zstd_module_init(PyObject *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:247,1
    - Dst: zstd_module_init
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:249,1
    - Dst: PyErr_Occurred
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:250,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: PyMODINIT_FUNC::PyInit_zstd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached:
    - zstd_module_init
    - PyModule_Create
    - PyErr_Occurred
    - Py_DECREF
    linkageType: ''
    returnType: PYTHON_ZSTD_VISIBILITY
    signature: PYTHON_ZSTD_VISIBILITY PyMODINIT_FUNC PyInit_zstd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:265,1
    - Dst: sysctlbyname
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:271,1
    - Dst: sysconf
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:275,1
    - Dst: sysctl
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:282,1
    - Dst: mpctl
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 290
    functionName: cpu_count
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 1
    functionsReached:
    - sysctlbyname
    - GetSystemInfo
    - mpctl
    - sysconf
    - sysctl
    linkageType: ''
    returnType: int
    signature: int cpu_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: roundpow2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t roundpow2(size_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_Resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:317,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:320,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:325,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:325,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:325,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:326,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - size
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 332
    functionName: safe_pybytes_resize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 2
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int safe_pybytes_resize(PyObject **obj, Py_ssize_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:339,1
    - Dst: PyObject_GetAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:344,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:346,1
    - Dst: PyErr_SetNone
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:350,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:351,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: set_io_unsupported_operation
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
    functionUses: 3
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetNone
    linkageType: ''
    returnType: void
    signature: void set_io_unsupported_operation(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:20,1
    - Dst: ZSTD_DCtx_setMaxWindowSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:23,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:25,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:26,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:27,1
    - Dst: ZSTD_DCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:32,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:34,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:35,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:36,1
    - Dst: ensure_ddict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:41,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:46,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:47,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:48,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:50,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - decompressor
    - loadDict
    argTypes:
    - ZstdDecompressor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 56
    functionName: ensure_dctx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_DCtx_setMaxWindowSize
    - ZSTD_DCtx_reset
    - ZSTD_DCtx_refDDict
    - ZSTD_DCtx_setParameter
    - ZSTD_getErrorName
    - PyErr_Format
    - ensure_ddict
    linkageType: ''
    returnType: int
    signature: int ensure_dctx(ZstdDecompressor *decompressor, int loadDict)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:69,1
    - Dst: PyObject_IsInstance
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:78,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:80,1
    - Dst: ZSTD_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:86,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:88,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:97,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:100,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:107,1
    - Dst: ZSTD_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: Decompressor_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - Py_INCREF
    - ZSTD_freeDCtx
    - PyErr_NoMemory
    - ZSTD_createDCtx
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    - ensure_dctx
    linkageType: ''
    returnType: int
    signature: "int Decompressor_init(ZstdDecompressor *self, PyObject *args,\n                             PyObject
      *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:118,1
    - Dst: ZSTD_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:121,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: Decompressor_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeDCtx
    - PyObject_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void Decompressor_dealloc(ZstdDecompressor *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:130,1
    - Dst: ZSTD_sizeof_DCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:130,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: Decompressor_memory_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyErr_SetString
    - ZSTD_sizeof_DCtx
    linkageType: ''
    returnType: PyObject
    signature: PyObject *Decompressor_memory_size(ZstdDecompressor *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:146,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:147,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:161,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:166,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:167,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:172,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:173,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:181,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:186,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:188,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:197,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:202,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:218,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:222,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:223,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:229,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:236,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:242,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:247,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:248,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:249,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:250,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:251,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:255,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:258,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 261
    functionName: Decompressor_copy_stream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_HasAttrString
    - PyArg_ParseTupleAndKeywords
    - ZSTD_DStreamInSize
    - PyTuple_Pack
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - Py_XDECREF
    - Py_DECREF
    - PyMem_Free
    - ZSTD_decompressStream
    - ZSTD_DStreamOutSize
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    - ensure_dctx
    - PyLong_FromSsize_t
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *Decompressor_copy_stream(ZstdDecompressor *self,\n                                          PyObject
      *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:222,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 226
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:285,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:291,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:292,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:298,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:302,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:305,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:311,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:317,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:322,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:328,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:330,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:335,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:343,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:352,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:356,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:357,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:358,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:362,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:364,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:368,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:372,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:376,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:377,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:381,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:383,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:388,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:393,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 83
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (SIZE_MAX >= PY_SSIZE_T_MAX)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    constantsTouched: []
    func_position:
      end: 395
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 395
    functionName: Decompressor_decompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - Py_CLEAR
    - PyBytes_AsString
    - ZSTD_getFrameContentSize
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - ensure_dctx
    - ZSTD_decompressStream
    - safe_pybytes_resize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *Decompressor_decompress(ZstdDecompressor *self, PyObject
      *args,\n                                  PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:356,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:357,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:362,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: else
    signature: else if (zresult)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:403,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:406,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:412,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:416,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:422,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:423,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:428,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 434
    functionName: Decompressor_decompressobj
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_DStreamOutSize
    - Py_DECREF
    - Py_INCREF
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - ensure_dctx
    linkageType: ''
    returnType: ZstdDecompressionObj
    signature: "ZstdDecompressionObj *Decompressor_decompressobj(ZstdDecompressor
      *self,\n                                                        PyObject *args,\n
      \                                                       PyObject *kwargs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:443,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:444,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:448,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:454,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:459,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:465,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:467,1
    - Dst: PyObject_CheckBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:469,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:471,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:476,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:483,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:489,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:493,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:495,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:502,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 507
    functionName: Decompressor_read_to_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_DStreamOutSize
    - ZSTD_DStreamInSize
    - PyMem_Malloc
    - Py_INCREF
    - PyObject_CheckBuffer
    - Py_CLEAR
    - PyErr_NoMemory
    - PyObject_HasAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - ensure_dctx
    - PyObject_GetBuffer
    linkageType: ''
    returnType: ZstdDecompressorIterator
    signature: "ZstdDecompressorIterator *\nDecompressor_read_to_iter(ZstdDecompressor
      *self, PyObject *args,\n                          PyObject *kwargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:516,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:521,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:527,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:531,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:540,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:542,1
    - Dst: PyObject_CheckBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:545,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:546,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:547,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:552,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:555,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:560,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:562,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 566
    functionName: Decompressor_stream_reader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_DStreamInSize
    - Py_CLEAR
    - Py_INCREF
    - PyObject_CheckBuffer
    - PyObject_HasAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - ensure_dctx
    - PyObject_GetBuffer
    linkageType: ''
    returnType: ZstdDecompressionReader
    signature: "ZstdDecompressionReader *\nDecompressor_stream_reader(ZstdDecompressor
      *self, PyObject *args,\n                           PyObject *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:575,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:580,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:586,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:587,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:592,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:596,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:607,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:610,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:614,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 618
    functionName: Decompressor_stream_writer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_DStreamOutSize
    - Py_INCREF
    - PyObject_HasAttrString
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - ensure_dctx
    linkageType: ''
    returnType: ZstdDecompressionWriter
    signature: "ZstdDecompressionWriter *\nDecompressor_stream_writer(ZstdDecompressor
      *self, PyObject *args,\n                           PyObject *kwargs)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:645,1
    - Dst: PyList_Size
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:651,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:653,1
    - Dst: PyList_GetItem
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:659,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:660,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:661,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:667,1
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:668,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:669,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:670,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:674,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:680,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:685,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:692,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:694,1
    - Dst: ensure_dctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:699,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:704,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:718,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:720,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:721,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:725,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:733,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:739,1
    - Dst: PyList_GetItem
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:751,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:752,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:753,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:758,1
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:760,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:761,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:762,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:767,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:774,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:779,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:782,1
    - Dst: PyMem_Realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:800,1
    - Dst: ZSTD_DCtx_refPrefix_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:807,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:810,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:821,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:823,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:824,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:828,1
    - Dst: PyMem_Realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:839,1
    - Dst: ZSTD_DCtx_refPrefix_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:846,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:849,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:860,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:862,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:863,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:867,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:877,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:883,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:886,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 168
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ZSTD_CONTENTSIZE_ERROR != frameHeader.frameContentSize)
      pos:
        line_end: 684
        line_start: 684
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (ZSTD_CONTENTSIZE_ERROR != frameHeader.frameContentSize)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (SIZE_MAX >= PY_SSIZE_T_MAX)
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    constantsTouched: []
    func_position:
      end: 890
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 890
    functionName: Decompressor_decompress_content_dict_chain
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - PyMem_Malloc
    - ZSTD_DCtx_refPrefix_advanced
    - PyList_GetItem
    - PyList_Size
    - PyBytes_Check
    - ZSTD_getErrorName
    - ZSTD_getFrameHeader
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyMem_Realloc
    - PyArg_ParseTupleAndKeywords
    - assert
    - ensure_dctx
    - PyMem_Free
    - ZSTD_decompressStream
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nDecompressor_decompress_content_dict_chain(ZstdDecompressor
      *self,\n                                           PyObject *args, PyObject
      *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:720,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 727
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: else
    signature: else if (zresult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 814
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:823,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: else
    signature: else if (zresult)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 853
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:862,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 871
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: else
    signature: else if (zresult)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:956,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:957,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:958,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:988,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1016,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1026,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1028,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1031,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1034,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1042,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1061,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1073,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1084,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1097,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1110,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1112,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1115,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1118,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1130,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1150,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1151,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1172,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 141
    argCount: 1
    argNames:
    - state
    argTypes:
    - DecompressorWorkerState*
    assertStmts:
    - condition: (framePointers[state->startOffset].destSize > 0)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (0 == state->destCount)
      pos:
        line_end: 956
        line_start: 956
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (decompressedSize > 0)
      pos:
        line_end: 1060
        line_start: 1060
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (state->endOffset - state->startOffset >= 0)
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - condition: (NULL == state->destBuffers)
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    constantsTouched: []
    func_position:
      end: 1181
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 1181
    functionName: decompress_worker
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - malloc
    - ZSTD_isError
    - roundpow2
    - realloc
    - ZSTD_getFrameContentSize
    - assert
    - calloc
    - ZSTD_decompressStream
    - memset
    linkageType: ''
    returnType: void
    signature: void decompress_worker(DecompressorWorkerState *state)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1204,1
    - Dst: ensure_ddict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1214,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1221,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1223,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1227,1
    - Dst: POOL_create
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1230,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1232,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1240,1
    - Dst: ZSTD_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1248,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1250,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1255,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1258,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1260,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1296,1
    - Dst: decompress_worker
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1300,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1314,1
    - Dst: decompress_worker
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1318,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1323,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1334,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1336,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1341,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1346,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1355,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1362,1
    - Dst: PyTuple_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1382,1
    - Dst: BufferWithSegments_FromMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1397,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1414,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1418,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1422,1
    - Dst: ZSTD_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1430,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1441,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1442,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1446,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1449,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1452,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 157
    argCount: 3
    argNames:
    - decompressor
    - frames
    - threadCount
    argTypes:
    - ZstdDecompressor*
    - FrameSources*
    - Py_ssize_t
    assertStmts:
    - condition: (threadCount >= 1)
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    constantsTouched: []
    func_position:
      end: 1455
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1455
    functionName: decompress_from_framesources
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_CLEAR
    - ZSTD_getErrorName
    - PyErr_Format
    - assert
    - free
    - POOL_create
    - memset
    - ZSTD_freeDCtx
    - ZSTD_createDCtx
    - POOL_add
    - PyMem_Free
    - PyTuple_New
    - POOL_free
    - ZSTD_DCtx_refDDict
    - PyErr_NoMemory
    - decompress_worker
    - BufferWithSegments_FromMemory
    - PyErr_SetString
    - PyMem_Malloc
    - PyTuple_SET_ITEM
    - ensure_ddict
    linkageType: ''
    returnType: ZstdBufferWithSegmentsCollection
    signature: "ZstdBufferWithSegmentsCollection *\ndecompress_from_framesources(ZstdDecompressor
      *decompressor,\n                             FrameSources *frames, Py_ssize_t
      threadCount)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1476,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1478,1
    - Dst: cpu_count
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1489,1
    - Dst: PyObject_TypeCheck
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1496,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1503,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1510,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1512,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1523,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1537,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1543,1
    - Dst: PyObject_TypeCheck
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1555,1
    - Dst: BufferWithSegmentsCollection_length
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1561,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1564,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1571,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1573,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1590,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1597,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1605,1
    - Dst: PyList_Check
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1625,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1626,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1631,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1638,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1640,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1644,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1646,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1650,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1658,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1658,1
    - Dst: PyErr_Clear
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1660,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1661,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1667,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1682,1
    - Dst: decompress_from_framesources
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1693,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1697,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1699,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1703,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1706,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 152
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1459
    functionDepth: 3
    functionLinenumber: 1459
    functionLinenumberEnd: 1710
    functionName: Decompressor_multi_decompress_to_buffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyMem_Malloc
    - BufferWithSegmentsCollection_length
    - decompress_from_framesources
    - cpu_count
    - PyErr_NoMemory
    - PyObject_TypeCheck
    - PyList_Check
    - PyList_GET_ITEM
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - PyMem_Free
    - PyArg_ParseTupleAndKeywords
    - PyList_GET_SIZE
    - PyObject_GetBuffer
    - memset
    linkageType: ''
    returnType: ZstdBufferWithSegmentsCollection
    signature: "ZstdBufferWithSegmentsCollection *\nDecompressor_multi_decompress_to_buffer(ZstdDecompressor
      *self, PyObject *args,\n                                        PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1757,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1758,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1762,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c:1763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1765
    functionName: decompressor_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void decompressor_module_init(PyObject *mod)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:22,1
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:27,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:29,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:30,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:31,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:36,1
    - Dst: PyObject_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:42,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:53,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 55
    functionName: get_frame_parameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getErrorName
    - ZSTD_getFrameHeader
    - PyErr_Format
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - PyObject_New
    linkageType: ''
    returnType: FrameParametersObject
    signature: "FrameParametersObject *get_frame_parameters(PyObject *self, PyObject
      *args,\n                                            PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: FrameParameters_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void FrameParameters_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:90,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:91,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:95,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: frameparams_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void frameparams_module_init(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:14,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:15,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:18,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:19,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: compressionreader_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - PyBuffer_Release
    - memset
    linkageType: ''
    returnType: void
    signature: void compressionreader_dealloc(ZstdCompressionReader *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:28,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:33,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: compressionreader_enter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: ZstdCompressionReader
    signature: 'ZstdCompressionReader *

      compressionreader_enter(ZstdCompressionReader *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:50,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:57,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:63,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:65,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:66,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdCompressionReader*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 72
    functionName: compressionreader_exit
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    - PyArg_ParseTuple
    - PyObject_CallMethod
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *compressionreader_exit(ZstdCompressionReader *self,\n                                        PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: compressionreader_readable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_readable(ZstdCompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: compressionreader_writable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_writable(ZstdCompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: compressionreader_seekable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_seekable(ZstdCompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: compressionreader_readline
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_readline(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: compressionreader_readlines
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_readlines(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: compressionreader_write
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_write(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: compressionreader_writelines
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_writelines(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: compressionreader_isatty
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_isatty(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: compressionreader_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_flush(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:122,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: compressionreader_close
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_close(ZstdCompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: compressionreader_tell
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_tell(ZstdCompressionReader *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:146,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:149,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:155,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:158,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:165,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:173,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionReader*
    assertStmts:
    - condition: (self->readResult == NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (self->buffer.buf)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    constantsTouched: []
    func_position:
      end: 184
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 184
    functionName: read_compressor_input
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    - assert
    - PyObject_GetBuffer
    - PyObject_CallMethod
    - memset
    linkageType: ''
    returnType: int
    signature: int read_compressor_input(ZstdCompressionReader *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:194,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:202,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:203,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:210,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:211,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - output
    argTypes:
    - ZstdCompressionReader*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 223
    functionName: compress_input
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - Py_CLEAR
    - ZSTD_getErrorName
    - PyErr_Format
    - ZSTD_compressStream2
    - memset
    linkageType: ''
    returnType: int
    signature: int compress_input(ZstdCompressionReader *self, ZSTD_outBuffer *output)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:238,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:242,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:247,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:253,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:257,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:260,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:265,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:273,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:276,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:285,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:289,1
    - Dst: read_compressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:292,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:302,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:312,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:317,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:318,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:319,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:320,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:324,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:330,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:331,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:335,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionReader*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 301
        line_start: 301
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (self->output.pos)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    constantsTouched: []
    func_position:
      end: 338
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 338
    functionName: compressionreader_read
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - safe_pybytes_resize
    - Py_XDECREF
    - ZSTD_getErrorName
    - read_compressor_input
    - ZSTD_compressStream2
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyObject_CallMethod
    - memset
    - compress_input
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *compressionreader_read(ZstdCompressionReader *self,\n                                        PyObject
      *args, PyObject *kwargs)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:354,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:358,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:363,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:369,1
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:373,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:376,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:381,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:395,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:398,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:404,1
    - Dst: read_compressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:412,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:415,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:421,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:424,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:427,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:433,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:444,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:449,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:450,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:451,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:452,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:462,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:463,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionReader*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    constantsTouched: []
    func_position:
      end: 469
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 469
    functionName: compressionreader_read1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - ZSTD_CStreamOutSize
    - ZSTD_getErrorName
    - read_compressor_input
    - ZSTD_compressStream2
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - Py_XDECREF
    - safe_pybytes_resize
    - compress_input
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *compressionreader_read1(ZstdCompressionReader *self,\n                                         PyObject
      *args, PyObject *kwargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:481,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:487,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:489,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:493,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:494,1
    - Dst: PyList_Append
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:498,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:499,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:500,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:504,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:507,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:509,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:513,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:515,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 519
    functionName: compressionreader_readall
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyBytes_Size
    - PyList_Append
    - PyList_New
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_readall(PyObject *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:531,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:536,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:539,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:547,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:555,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:559,1
    - Dst: read_compressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:563,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:571,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:574,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:582,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:586,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:593,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:598,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:599,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:600,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:604,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:610,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:613,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdCompressionReader*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (output.pos)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    constantsTouched: []
    func_position:
      end: 616
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 616
    functionName: compressionreader_readinto
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ZSTD_isError
    - ZSTD_getErrorName
    - read_compressor_input
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - assert
    - PyArg_ParseTuple
    - ZSTD_compressStream2
    - PyLong_FromSize_t
    - compress_input
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *compressionreader_readinto(ZstdCompressionReader *self,\n
      \                                           PyObject *args)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:628,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:633,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:636,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:644,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:652,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:656,1
    - Dst: read_compressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:661,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:669,1
    - Dst: compress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:672,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:680,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:684,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:691,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:703,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:708,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:709,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:710,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:714,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:720,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:723,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdCompressionReader*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (output.pos)
      pos:
        line_end: 713
        line_start: 713
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 668
        line_start: 668
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    - condition: (0)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    constantsTouched: []
    func_position:
      end: 726
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 726
    functionName: compressionreader_readinto1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ZSTD_isError
    - PyLong_FromSize_t
    - ZSTD_getErrorName
    - read_compressor_input
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - assert
    - ZSTD_compressStream2
    - PyArg_ParseTuple
    - compress_input
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *compressionreader_readinto1(ZstdCompressionReader *self,\n
      \                                            PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 728
    functionDepth: 2
    functionLinenumber: 728
    functionLinenumberEnd: 731
    functionName: compressionreader_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_iter(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: compressionreader_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *compressionreader_iternext(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:804,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:805,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:809,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c:810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 812
    functionName: compressionreader_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressionreader_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:14,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:15,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: DecompressionObj_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void DecompressionObj_dealloc(ZstdDecompressionObj *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:34,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:38,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:45,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:53,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:55,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:63,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:67,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:68,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:74,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:76,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:77,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:81,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:81,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:85,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:96,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:97,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:117,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:123,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:126,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:127,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressionObj*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!self->unused_data)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    constantsTouched: []
    func_position:
      end: 130
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 130
    functionName: DecompressionObj_decompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyMem_Malloc
    - memcpy
    - Py_CLEAR
    - PyErr_NoMemory
    - Py_XDECREF
    - ZSTD_getErrorName
    - PyBytes_FromString
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyBuffer_Release
    - ZSTD_decompressStream
    - safe_pybytes_resize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *DecompressionObj_decompress(ZstdDecompressionObj *self,\n
      \                                            PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:67,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:138,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressionObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: DecompressionObj_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *DecompressionObj_flush(ZstdDecompressionObj *self,\n                                        PyObject
      *args, PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:150,1
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: DecompressionObj_unused_data
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *DecompressionObj_unused_data(PyObject *self, void *unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: DecompressionObj_unconsumed_tail
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *DecompressionObj_unconsumed_tail(PyObject *self, void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: DecompressionObj_eof
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *DecompressionObj_eof(PyObject *self, void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:204,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: decompressobj_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void decompressobj_module_init(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _PyObject_CAST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: _PyObject_CAST_CONST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_CAST_CONST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: _Py_NewRef
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_NewRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Py_NewRef
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_NewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: _Py_XNewRef
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_XNewRef(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Py_XNewRef
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XNewRef(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - refcnt
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: _Py_SET_REFCNT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - refcnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: Py_SET_REFCNT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_REFCNT(ob, refcnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: _Py_SET_TYPE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: Py_SET_TYPE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_TYPE(ob, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - size
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: _Py_SET_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: Py_SET_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_SIZE(ob, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:106,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    - condition: (code != NULL)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: PyFrame_GetCode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 1
    functionsReached:
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyFrame_GetCode(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetCode
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:115,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: _PyFrame_GetCodeBorrow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyFrame_GetCode
    - Py_DECREF
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      _PyFrame_GetCodeBorrow(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:127,1
    - Dst: Py_XINCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (frame != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: PyFrame_GetBack
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 1
    functionsReached:
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyFrame_GetBack(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetBack
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:137,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: _PyFrame_GetBackBorrow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyFrame_GetBack
    - Py_XDECREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyFrame_GetBackBorrow(PyFrameObject *frame)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: PyThreadState_GetInterpreter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyThreadState_GetInterpreter(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:160,1
    - Dst: Py_XINCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: PyThreadState_GetFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 1
    functionsReached:
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyThreadState_GetFrame(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetFrame
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:170,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: _PyThreadState_GetFrameBorrow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyThreadState_GetFrame
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyThreadState_GetFrameBorrow(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:184,1
    - Dst: Py_FatalError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:186,1
    - Dst: Py_FatalError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 193
    functionName: PyInterpreterState_Get
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyThreadState_GET
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Get(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: PyThreadState_GetID
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t PyThreadState_GetID(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: PyObject_CallNoArgs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallNoArgs(PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: PyObject_CallOneArg
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallOneArg(PyObject *func, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:235,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:236,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: PyModule_AddObjectRef
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_XINCREF
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int PyModule_AddObjectRef(PyObject *module, const char *name, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:252,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:258,1
    - Dst: strrchr
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:259,1
    - Dst: PyModule_AddObjectRef
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: PyModule_AddType
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - assert
    - PyType_Ready
    - strrchr
    - PyModule_AddObjectRef
    linkageType: ''
    returnType: int
    signature: int PyModule_AddType(PyObject *module, PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:275,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: PyObject_GC_IsTracked
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsTracked(PyObject* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:285,1
    - Dst: _PyGCHead_FINALIZED
      Src: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: PyObject_GC_IsFinalized
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - _PyGCHead_FINALIZED
    linkageType: ''
    returnType: int
    signature: int PyObject_GC_IsFinalized(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: _Py_IS_TYPE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: Py_IS_TYPE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_TYPE(ob, type)
  - 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: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: min
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:16,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:17,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:20,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:21,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:25,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressorIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 30
    functionName: ZstdDecompressorIterator_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyBuffer_Release
    - PyObject_Del
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: void
    signature: void ZstdDecompressorIterator_dealloc(ZstdDecompressorIterator *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ZstdDecompressorIterator_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdDecompressorIterator_iter(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:46,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:52,1
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:56,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:64,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:65,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:66,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:67,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:83,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:84,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressorIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 99
    functionName: read_decompressor_iterator
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - Py_DECREF
    - Py_XDECREF
    - PyBytes_AsString
    - ZSTD_getErrorName
    - PyErr_Format
    - ZSTD_decompressStream
    - safe_pybytes_resize
    linkageType: ''
    returnType: DecompressorIteratorResult
    signature: DecompressorIteratorResult read_decompressor_iterator(ZstdDecompressorIterator
      *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:110,1
    - Dst: read_decompressor_iterator
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:116,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:129,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:134,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:137,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:140,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:142,1
    - Dst: min
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:147,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:153,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:155,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:158,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:169,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:177,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:178,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:187,1
    - Dst: read_decompressor_iterator
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:190,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:200,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressorIterator*
    assertStmts:
    - condition: (self->buffer.buf)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    - condition: "(self->buffer.strides == NULL &&\n                   self->buffer.suboffsets
        == NULL)"
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    - condition: (self->buffer.itemsize == 1)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    - condition: (self->skipBytes < self->inSize)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    constantsTouched: []
    func_position:
      end: 202
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 202
    functionName: ZstdDecompressorIterator_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_XDECREF
    - read_decompressor_iterator
    - min
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - assert
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdDecompressorIterator_iternext(ZstdDecompressorIterator *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:224,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: decompressoriterator_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void decompressoriterator_module_init(PyObject *mod)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:16,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:17,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:18,1
    - Dst: ZSTD_CCtx_setParametersUsingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:20,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:22,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:23,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:24,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:31,1
    - Dst: ZSTD_CCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:34,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:39,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:40,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - compressor
    argTypes:
    - ZstdCompressor*
    assertStmts:
    - condition: (compressor)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (compressor->params)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (compressor->cctx)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    constantsTouched: []
    func_position:
      end: 47
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 47
    functionName: setup_cctx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_loadDictionary_advanced
    - ZSTD_getErrorName
    - PyErr_Format
    - ZSTD_CCtx_setParametersUsingCCtxParams
    - assert
    - ZSTD_CCtx_refCDict
    linkageType: ''
    returnType: int
    signature: int setup_cctx(ZstdCompressor *compressor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:54,1
    - Dst: ZSTD_getFrameProgression
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:59,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:61,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:63,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:67,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:69,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:71,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:75,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:77,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:79,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 86
    functionName: frame_progression
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - ZSTD_getFrameProgression
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *frame_progression(ZSTD_CCtx *cctx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:107,1
    - Dst: ZSTD_maxCLevel
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:114,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:115,1
    - Dst: ZSTD_maxCLevel
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:116,1
    - Dst: cpu_count
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:121,1
    - Dst: PyObject_IsInstance
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:128,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:130,1
    - Dst: PyObject_IsInstance
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:140,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:142,1
    - Dst: ZSTD_createCCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:161,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:163,1
    - Dst: ZSTD_createCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:171,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:173,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:178,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:184,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:191,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:197,1
    - Dst: set_parameters
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:203,1
    - Dst: set_parameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:209,1
    - Dst: set_parameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:213,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:214,1
    - Dst: set_parameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:219,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:220,1
    - Dst: set_parameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:224,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:225,1
    - Dst: set_parameter
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:230,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:238,1
    - Dst: setup_cctx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:241,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 246
    functionName: ZstdCompressor_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - ZSTD_createCCtx
    - Py_INCREF
    - ZSTD_maxCLevel
    - cpu_count
    - PyErr_NoMemory
    - ZSTD_createCCtxParams
    - PyErr_Format
    - set_parameters
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - set_parameter
    - setup_cctx
    linkageType: ''
    returnType: int
    signature: "int ZstdCompressor_init(ZstdCompressor *self, PyObject *args,\n                               PyObject
      *kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:250,1
    - Dst: ZSTD_freeCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:255,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:259,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: ZstdCompressor_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCCtx
    - PyObject_Del
    - Py_XDECREF
    - ZSTD_freeCCtxParams
    linkageType: ''
    returnType: void
    signature: void ZstdCompressor_dealloc(ZstdCompressor *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:265,1
    - Dst: ZSTD_sizeof_CCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:265,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: ZstdCompressor_memory_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - ZSTD_sizeof_CCtx
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressor_memory_size(ZstdCompressor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frame_progression
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: ZstdCompressor_frame_progression
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - frame_progression
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressor_frame_progression(ZstdCompressor *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:286,1
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:287,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:301,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:307,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:308,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:313,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:314,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:319,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:321,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:322,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:323,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:324,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:329,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:331,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:344,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:349,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:364,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:370,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:371,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:376,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:382,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:388,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:392,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:396,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:400,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:401,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:407,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:414,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:423,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:424,1
    - Dst: PyTuple_Pack
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:425,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:426,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:427,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:431,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:434,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 98
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (input.pos == input.size)
      pos:
        line_end: 391
        line_start: 391
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    constantsTouched: []
    func_position:
      end: 437
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 437
    functionName: ZstdCompressor_copy_stream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - Py_CLEAR
    - PyObject_HasAttrString
    - PyArg_ParseTupleAndKeywords
    - ZSTD_CCtx_setPledgedSrcSize
    - PyTuple_Pack
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - assert
    - Py_XDECREF
    - ZSTD_compressStream2
    - Py_DECREF
    - ZSTD_CStreamInSize
    - PyMem_Free
    - PyErr_NoMemory
    - ZSTD_CStreamOutSize
    - PyErr_SetString
    - PyMem_Malloc
    - PyLong_FromSsize_t
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressor_copy_stream(ZstdCompressor *self,\n                                            PyObject
      *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:370,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:400,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:446,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:451,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:457,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:466,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:468,1
    - Dst: PyObject_CheckBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:471,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:472,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:476,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:481,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:487,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:489,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:491,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:492,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:493,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:494,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:499,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:504,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (result->buffer.len >= 0)
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    constantsTouched: []
    func_position:
      end: 507
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 507
    functionName: ZstdCompressor_stream_reader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_CCtx_reset
    - ZSTD_isError
    - Py_CLEAR
    - ZSTD_CCtx_setPledgedSrcSize
    - Py_INCREF
    - PyObject_CheckBuffer
    - PyObject_HasAttrString
    - PyObject_IsTrue
    - ZSTD_getErrorName
    - ZSTD_CStreamInSize
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyObject_GetBuffer
    linkageType: ''
    returnType: ZstdCompressionReader
    signature: "ZstdCompressionReader *ZstdCompressor_stream_reader(ZstdCompressor
      *self,\n                                                           PyObject
      *args,\n                                                           PyObject
      *kwargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:520,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:525,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:527,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:528,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:533,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:534,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:535,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:536,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:537,1
    - Dst: PyBytes_AsString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:545,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:554,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:558,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:559,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:560,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:564,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:565,1
    - Dst: Py_SET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:569,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 574
    functionName: ZstdCompressor_compress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - Py_CLEAR
    - Py_SET_SIZE
    - ZSTD_CCtx_setPledgedSrcSize
    - PyBytes_AsString
    - ZSTD_getErrorName
    - PyErr_Format
    - ZSTD_compressBound
    - PyErr_SetString
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - ZSTD_compressStream2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressor_compress(ZstdCompressor *self, PyObject *args,\n
      \                                        PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:558,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:559,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 562
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    - Py_CLEAR
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:564,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_SetString
    linkageType: ''
    returnType: else
    signature: else if (zresult)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:582,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:586,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:591,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:593,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:594,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:595,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:596,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:600,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:606,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:608,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:609,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 617
    functionName: ZstdCompressor_compressobj
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - PyObject_CallObject
    - PyMem_Malloc
    - ZSTD_CCtx_setPledgedSrcSize
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - ZSTD_CStreamOutSize
    - ZSTD_getErrorName
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: ZstdCompressionObj
    signature: "ZstdCompressionObj *ZstdCompressor_compressobj(ZstdCompressor *self,\n
      \                                                     PyObject *args,\n                                                      PyObject
      *kwargs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:626,1
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:627,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:631,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:636,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:641,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:643,1
    - Dst: PyObject_CheckBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:645,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:646,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:653,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:659,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:661,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:662,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:663,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:664,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:669,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:674,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:676,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:684,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 688
    functionName: ZstdCompressor_read_to_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - ZSTD_CCtx_reset
    - ZSTD_isError
    - PyMem_Malloc
    - ZSTD_CCtx_setPledgedSrcSize
    - Py_INCREF
    - PyObject_CheckBuffer
    - Py_CLEAR
    - PyErr_NoMemory
    - PyObject_HasAttrString
    - ZSTD_CStreamOutSize
    - ZSTD_getErrorName
    - ZSTD_CStreamInSize
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_GetBuffer
    linkageType: ''
    returnType: ZstdCompressorIterator
    signature: "ZstdCompressorIterator *ZstdCompressor_read_to_iter(ZstdCompressor
      *self,\n                                                           PyObject
      *args,\n                                                           PyObject
      *kwargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:700,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:704,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:710,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:711,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:716,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:718,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:719,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:720,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:721,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:725,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:735,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:737,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:738,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:745,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:748,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:753,1
    - Dst: PyObject_IsTrue
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 757
    functionName: ZstdCompressor_stream_writer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - PyObject_CallObject
    - PyMem_Malloc
    - ZSTD_CCtx_setPledgedSrcSize
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - PyObject_HasAttrString
    - ZSTD_CStreamOutSize
    - ZSTD_getErrorName
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    linkageType: ''
    returnType: ZstdCompressionWriter
    signature: "ZstdCompressionWriter *ZstdCompressor_stream_writer(ZstdCompressor
      *self,\n                                                           PyObject
      *args,\n                                                           PyObject
      *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:764,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:768,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:773,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:775,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:776,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:777,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:778,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:782,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:788,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:790,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:791,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 803
    functionName: ZstdCompressor_chunker
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - PyObject_CallObject
    - PyMem_Malloc
    - ZSTD_CCtx_setPledgedSrcSize
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - ZSTD_CStreamOutSize
    - ZSTD_getErrorName
    - PyErr_Format
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: ZstdCompressionChunker
    signature: 'ZstdCompressionChunker *

      ZstdCompressor_chunker(ZstdCompressor *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:868,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:869,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:893,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:905,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:913,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:914,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:917,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:920,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:923,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:941,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:953,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:964,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:978,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:991,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:997,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:998,1
    - Dst: roundpow2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1001,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1004,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1015,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1035,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1036,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1043,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1045,1
    - Dst: realloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1067,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 118
    argCount: 1
    argNames:
    - state
    argTypes:
    - CompressorWorkerState*
    assertStmts:
    - condition: (0 == state->destCount)
      pos:
        line_end: 868
        line_start: 868
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (state->totalSourceSize <= SIZE_MAX)
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (!state->destBuffers)
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (state->totalSourceSize <= SIZE_MAX)
      pos:
        line_end: 912
        line_start: 912
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    constantsTouched: []
    func_position:
      end: 1076
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 1076
    functionName: compress_worker
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 1
    functionsReached:
    - malloc
    - ZSTD_isError
    - roundpow2
    - ZSTD_CCtx_setPledgedSrcSize
    - realloc
    - ZSTD_compressBound
    - assert
    - calloc
    - ZSTD_compressStream2
    - memset
    linkageType: ''
    returnType: void
    signature: void compress_worker(CompressorWorkerState *state)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1100,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1101,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1102,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1111,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1113,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1117,1
    - Dst: POOL_create
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1120,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1122,1
    - Dst: ZSTD_createCCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1132,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1134,1
    - Dst: ZSTD_CCtx_setParametersUsingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1138,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1140,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1141,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1142,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1148,1
    - Dst: ZSTD_CCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1152,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1158,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1159,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1161,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1184,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1190,1
    - Dst: compress_worker
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1194,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1204,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1210,1
    - Dst: compress_worker
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1214,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1219,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1228,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1233,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1235,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1240,1
    - Dst: PyTuple_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1265,1
    - Dst: BufferWithSegments_FromMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1278,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1296,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1300,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1304,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1307,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1317,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1324,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1325,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1329,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1332,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 155
    argCount: 3
    argNames:
    - compressor
    - sources
    - threadCount
    argTypes:
    - ZstdCompressor*
    - DataSources*
    - Py_ssize_t
    assertStmts:
    - condition: (threadCount >= 1)
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (sources->totalSourceSize > 0)
      pos:
        line_end: 1100
        line_start: 1100
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (currentThread < threadCount)
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (sources->sourcesSize > 0)
      pos:
        line_end: 1099
        line_start: 1099
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - condition: (currentThread < threadCount)
      pos:
        line_end: 1183
        line_start: 1183
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    constantsTouched: []
    func_position:
      end: 1336
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1336
    functionName: compress_from_datasources
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - PyObject_CallObject
    - Py_CLEAR
    - ZSTD_createCCtx
    - ZSTD_CCtx_setParametersUsingCCtxParams
    - ZSTD_freeCCtx
    - ZSTD_getErrorName
    - PyErr_Format
    - assert
    - free
    - POOL_create
    - memset
    - ZSTD_CCtx_loadDictionary_advanced
    - POOL_add
    - PyMem_Free
    - ZSTD_CCtx_refCDict
    - PyTuple_New
    - POOL_free
    - PyErr_NoMemory
    - BufferWithSegments_FromMemory
    - compress_worker
    - PyErr_SetString
    - PyMem_Malloc
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: ZstdBufferWithSegmentsCollection
    signature: "ZstdBufferWithSegmentsCollection *\ncompress_from_datasources(ZstdCompressor
      *compressor, DataSources *sources,\n                          Py_ssize_t threadCount)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1353,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1355,1
    - Dst: cpu_count
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1362,1
    - Dst: PyObject_TypeCheck
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1369,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1373,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1375,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1381,1
    - Dst: PyObject_TypeCheck
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1395,1
    - Dst: BufferWithSegmentsCollection_length
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1402,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1404,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1406,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1415,1
    - Dst: PyList_Check
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1434,1
    - Dst: PyList_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1435,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1437,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1439,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1443,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1445,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1449,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1452,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1452,1
    - Dst: PyErr_Clear
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1454,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1455,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1468,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1474,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1479,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1484,1
    - Dst: compress_from_datasources
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1489,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1492,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1496,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1499,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 112
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1503
    functionName: ZstdCompressor_multi_compress_to_buffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyMem_Malloc
    - BufferWithSegmentsCollection_length
    - cpu_count
    - PyErr_NoMemory
    - PyObject_TypeCheck
    - PyList_Check
    - PyList_GET_ITEM
    - compress_from_datasources
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - PyList_GET_SIZE
    - PyObject_GetBuffer
    - memset
    linkageType: ''
    returnType: ZstdBufferWithSegmentsCollection
    signature: "ZstdBufferWithSegmentsCollection *\nZstdCompressor_multi_compress_to_buffer(ZstdCompressor
      *self, PyObject *args,\n                                        PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1550,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1551,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1555,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c:1556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1557
    functionName: compressor_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressor_module_init(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:14,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:15,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:18,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:21,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: decompressionreader_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_CLEAR
    - Py_XDECREF
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void decompressionreader_dealloc(ZstdDecompressionReader *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:29,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:34,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: decompressionreader_enter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: ZstdDecompressionReader
    signature: 'ZstdDecompressionReader *

      decompressionreader_enter(ZstdDecompressionReader *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:50,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:57,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:62,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:64,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:65,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: decompressionreader_exit
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    - PyArg_ParseTuple
    - PyObject_CallMethod
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_exit(ZstdDecompressionReader *self,\n
      \                                         PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: decompressionreader_readable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_readable(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: decompressionreader_writable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_writable(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: decompressionreader_seekable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_seekable(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:93,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: decompressionreader_close
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_close(ZstdDecompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: decompressionreader_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_flush(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: decompressionreader_isatty
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_isatty(PyObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:127,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:129,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:134,1
    - Dst: PyObject_GetBuffer
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:137,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:144,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:152,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:155,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionReader*
    assertStmts:
    - condition: (self->readResult == NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (self->buffer.buf)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (self->input.src == NULL)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    constantsTouched: []
    func_position:
      end: 168
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: read_decompressor_input
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    - assert
    - PyObject_GetBuffer
    - PyObject_CallMethod
    - memset
    linkageType: ''
    returnType: int
    signature: int read_decompressor_input(ZstdDecompressionReader *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:185,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:190,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:191,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:198,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:199,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - self
    - output
    argTypes:
    - ZstdDecompressionReader*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 216
    functionName: decompress_input
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - Py_CLEAR
    - ZSTD_getErrorName
    - PyErr_Format
    - ZSTD_decompressStream
    - memset
    linkageType: ''
    returnType: int
    signature: int decompress_input(ZstdDecompressionReader *self, ZSTD_outBuffer
      *output)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:230,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:234,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:239,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:245,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:249,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:252,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:257,1
    - Dst: decompress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:265,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:268,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:277,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:278,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:285,1
    - Dst: read_decompressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:288,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:291,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:299,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:309,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:310,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (0)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    constantsTouched: []
    func_position:
      end: 315
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 315
    functionName: decompressionreader_read
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - decompress_input
    - read_decompressor_input
    - Py_XDECREF
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyObject_CallMethod
    - safe_pybytes_resize
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_read(ZstdDecompressionReader *self,\n
      \                                         PyObject *args, PyObject *kwargs)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:328,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:332,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:337,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:343,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:347,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:350,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:355,1
    - Dst: read_decompressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:370,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:372,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:378,1
    - Dst: decompress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:381,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:384,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:390,1
    - Dst: safe_pybytes_resize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:399,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:400,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (0)
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    constantsTouched: []
    func_position:
      end: 405
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 405
    functionName: decompressionreader_read1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_DStreamOutSize
    - decompress_input
    - safe_pybytes_resize
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - Py_XDECREF
    - read_decompressor_input
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_read1(ZstdDecompressionReader *self,\n
      \                                          PyObject *args, PyObject *kwargs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:415,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:420,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:423,1
    - Dst: decompress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:433,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:442,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:446,1
    - Dst: read_decompressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:449,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:459,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:468,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:471,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (0)
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    constantsTouched: []
    func_position:
      end: 474
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 474
    functionName: decompressionreader_readinto
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - decompress_input
    - read_decompressor_input
    - PyBuffer_Release
    - PyErr_SetString
    - assert
    - PyArg_ParseTuple
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_readinto(ZstdDecompressionReader *self,\n
      \                                             PyObject *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:483,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:488,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:491,1
    - Dst: read_decompressor_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:502,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:510,1
    - Dst: decompress_input
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:513,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:521,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:530,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:533,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    - condition: (0)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    constantsTouched: []
    func_position:
      end: 536
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 536
    functionName: decompressionreader_readinto1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - decompress_input
    - read_decompressor_input
    - PyLong_FromSize_t
    - PyBuffer_Release
    - PyErr_SetString
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_readinto1(ZstdDecompressionReader *self,\n
      \                                              PyObject *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:548,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:554,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:556,1
    - Dst: PyBytes_Size
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:560,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:561,1
    - Dst: PyList_Append
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:565,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:566,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:567,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:571,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:574,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:576,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:580,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:582,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 586
    functionName: decompressionreader_readall
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyBytes_Size
    - PyList_Append
    - PyList_New
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_readall(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: decompressionreader_readline
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_readline(PyObject *self, PyObject *args,\n
      \                                             PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: decompressionreader_readlines
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_readlines(PyObject *self, PyObject *args,\n
      \                                              PyObject *kwargs)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:605,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:608,1
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:612,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:618,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:624,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:633,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:643,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:654,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:662,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:664,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:674,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdDecompressionReader*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 675
    functionName: decompressionreader_seek
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - ZSTD_DStreamOutSize
    - Py_CLEAR
    - PyBytes_GET_SIZE
    - PyErr_SetString
    - PyObject_CallMethod
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_seek(ZstdDecompressionReader *self,\n
      \                                         PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdDecompressionReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 680
    functionName: decompressionreader_tell
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_tell(ZstdDecompressionReader *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 685
    functionName: decompressionreader_write
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_write(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 691
    functionName: decompressionreader_writelines
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *decompressionreader_writelines(PyObject *self,\n                                                PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: decompressionreader_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_iter(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: decompressionreader_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *decompressionreader_iternext(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:772,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:773,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:777,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 780
    functionName: decompressionreader_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void decompressionreader_module_init(PyObject *mod)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:45,1
    - Dst: cpu_count
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:53,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:63,1
    - Dst: PyList_Size
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:77,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:79,1
    - Dst: PyBytes_Check
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:81,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:82,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:85,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:88,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:90,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:94,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:96,1
    - Dst: PyList_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:102,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:103,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:105,1
    - Dst: PyBytes_AS_STRING
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:105,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:109,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:111,1
    - Dst: ZDICT_optimizeTrainFromBuffer_fastCover
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:115,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:121,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:122,1
    - Dst: ZDICT_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:123,1
    - Dst: PyObject_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:127,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:129,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:142,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 146
    functionName: train_dictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - cpu_count
    - PyErr_NoMemory
    - ZDICT_getErrorName
    - PyList_GET_ITEM
    - PyList_Size
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTupleAndKeywords
    - ZDICT_optimizeTrainFromBuffer_fastCover
    - memset
    - PyObject_New
    linkageType: ''
    returnType: ZstdCompressionDict
    signature: "ZstdCompressionDict *train_dictionary(PyObject *self, PyObject *args,\n
      \                                     PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:121,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:122,1
    - Dst: ZDICT_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - ZDICT_getErrorName
    - PyErr_Format
    - PyMem_Free
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZDICT_isError(zresult))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:153,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dict
    argTypes:
    - ZstdCompressionDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: ensure_ddict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 2
    functionsReached:
    - ZSTD_createDDict_advanced
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int ensure_ddict(ZstdCompressionDict *dict)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:177,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:184,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:193,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:195,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:199,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionDict*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 207
    functionName: ZstdCompressionDict_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - PyErr_NoMemory
    - PyErr_Format
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: "int ZstdCompressionDict_init(ZstdCompressionDict *self, PyObject *args,\n
      \                                   PyObject *kwargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:211,1
    - Dst: ZSTD_freeDDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:216,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:221,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: ZstdCompressionDict_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyObject_Del
    - ZSTD_freeDDict
    - ZSTD_freeCDict
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionDict_dealloc(ZstdCompressionDict *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:238,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:245,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:251,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:257,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:259,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:260,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:261,1
    - Dst: ZSTD_getCParams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:267,1
    - Dst: to_cparams
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:270,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:275,1
    - Dst: ZSTD_createCDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:276,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionDict*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!self->cdict)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    constantsTouched: []
    func_position:
      end: 286
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 286
    functionName: ZstdCompressionDict_precompute_compress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_freeCDict
    - to_cparams
    - ZSTD_createCDict_advanced
    - ZSTD_getErrorName
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - assert
    - ZSTD_getCParams
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nZstdCompressionDict_precompute_compress(ZstdCompressionDict
      *self,\n                                        PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZDICT_getDictID
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:289,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: ZstdCompressionDict_dict_id
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ZDICT_getDictID
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionDict_dict_id(ZstdCompressionDict *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: ZstdCompressionDict_as_bytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionDict_as_bytes(ZstdCompressionDict *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: ZstdCompressionDict_length
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ZstdCompressionDict_length(ZstdCompressionDict *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:340,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:341,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:345,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: compressiondict_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressiondict_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:15,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionChunkerIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: ZstdCompressionChunkerIterator_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionChunkerIterator_dealloc(ZstdCompressionChunkerIterator
      *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: ZstdCompressionChunkerIterator_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionChunkerIterator_iter(PyObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:34,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:46,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:55,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:58,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:59,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:60,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:66,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:85,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:104,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:110,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:115,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:116,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:124,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionChunkerIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 136
    functionName: ZstdCompressionChunkerIterator_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - ZSTD_compressStream2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdCompressionChunkerIterator_iternext(ZstdCompressionChunkerIterator *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:115,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:157,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:160,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:163,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionChunker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: ZstdCompressionChunker_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyObject_Del
    - Py_XDECREF
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionChunker_dealloc(ZstdCompressionChunker *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:176,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:182,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:187,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:192,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:195,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionChunker*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 209
    functionName: ZstdCompressionChunker_compress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_INCREF
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: ZstdCompressionChunkerIterator
    signature: "ZstdCompressionChunkerIterator *\nZstdCompressionChunker_compress(ZstdCompressionChunker
      *self, PyObject *args,\n                                PyObject *kwargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:216,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:222,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:227,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionChunker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 239
    functionName: ZstdCompressionChunker_finish
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: ZstdCompressionChunkerIterator
    signature: 'ZstdCompressionChunkerIterator *

      ZstdCompressionChunker_finish(ZstdCompressionChunker *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:247,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:253,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:258,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionChunker*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 270
    functionName: ZstdCompressionChunker_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: ZstdCompressionChunkerIterator
    signature: "ZstdCompressionChunkerIterator *\nZstdCompressionChunker_flush(ZstdCompressionChunker
      *self, PyObject *args,\n                             PyObject *kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:300,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:301,1
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:306,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 310
    functionName: compressionchunker_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressionchunker_module_init(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:14,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:15,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:17,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: ZstdCompressionWriter_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void ZstdCompressionWriter_dealloc(ZstdCompressionWriter *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:25,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:30,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: ZstdCompressionWriter_enter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_enter(ZstdCompressionWriter *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:47,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdCompressionWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: ZstdCompressionWriter_exit
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionWriter_exit(ZstdCompressionWriter *self,\n
      \                                           PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:65,1
    - Dst: ZSTD_sizeof_CCtx
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: ZstdCompressionWriter_memory_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - ZSTD_sizeof_CCtx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ZstdCompressionWriter_memory_size(ZstdCompressionWriter *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:79,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:85,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:96,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:101,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:102,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:108,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:113,1
    - Dst: PyLong_FromSize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:121,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:124,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionWriter*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 130
    functionName: ZstdCompressionWriter_write
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallMethod
    - ZSTD_getErrorName
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromSsize_t
    - ZSTD_compressStream2
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionWriter_write(ZstdCompressionWriter *self,\n
      \                                            PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:101,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:143,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:156,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:161,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:172,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:177,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:178,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:184,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:189,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:201,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:202,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:206,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:209,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdCompressionWriter*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 210
    functionName: ZstdCompressionWriter_flush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - ZSTD_getErrorName
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromSsize_t
    - ZSTD_compressStream2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionWriter_flush(ZstdCompressionWriter *self,\n
      \                                            PyObject *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:177,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: if
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - ZSTD_getErrorName
    - PyErr_Format
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (ZSTD_isError(zresult))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:220,1
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:229,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 234
    functionName: ZstdCompressionWriter_close
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_close(ZstdCompressionWriter *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_HasAttrString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:237,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:238,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: ZstdCompressionWriter_fileno
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethod
    - PyObject_HasAttrString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_fileno(ZstdCompressionWriter *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressionWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: ZstdCompressionWriter_tell
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_tell(ZstdCompressionWriter *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: ZstdCompressionWriter_writelines
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionWriter_writelines(PyObject *self,\n                                                  PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 260
    functionName: ZstdCompressionWriter_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_iter(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: ZstdCompressionWriter_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_iternext(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: ZstdCompressionWriter_false
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_false(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: ZstdCompressionWriter_true
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressionWriter_true(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_io_unsupported_operation
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: ZstdCompressionWriter_unsupported
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 0
    functionsReached:
    - set_io_unsupported_operation
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *ZstdCompressionWriter_unsupported(PyObject *self,\n                                                   PyObject
      *args,\n                                                   PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:345,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:346,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:350,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 353
    functionName: compressionwriter_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressionwriter_module_init(PyObject *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:25,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:26,1
    - Dst: PyErr_NewException
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:28,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:29,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:31,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:32,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:34,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:36,1
    - Dst: PyTuple_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:40,1
    - Dst: PyTuple_SetItem
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:41,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:41,1
    - Dst: PyTuple_SetItem
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:42,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:42,1
    - Dst: PyTuple_SetItem
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:43,1
    - Dst: PyLong_FromLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:43,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:44,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:46,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:48,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:51,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:54,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:55,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:56,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:57,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:59,1
    - Dst: ZSTD_maxCLevel
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:59,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:60,1
    - Dst: ZSTD_CStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:61,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:62,1
    - Dst: ZSTD_CStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:63,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:64,1
    - Dst: ZSTD_DStreamInSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:65,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:66,1
    - Dst: ZSTD_DStreamOutSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:67,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:69,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:70,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:71,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:72,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:73,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:74,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:75,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:76,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:77,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:78,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:79,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:80,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:81,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:83,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:84,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:85,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:86,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:87,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:88,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:89,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:92,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:93,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:94,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:95,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:96,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:97,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:98,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:99,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:100,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:102,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:103,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:104,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:106,1
    - Dst: PyModule_AddIntConstant
      Src: /src/mercurial/contrib/python-zstandard/c-ext/constants.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 109
    functionName: constants_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/constants.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyModule_AddIntConstant
    - PyUnicode_FromString
    - PyBytes_FromStringAndSize
    - ZSTD_DStreamInSize
    - ZSTD_DStreamOutSize
    - PyErr_NewException
    - ZSTD_maxCLevel
    - PyModule_AddObject
    - ZSTD_CStreamOutSize
    - ZSTD_CStreamInSize
    - PyErr_Format
    - PyTuple_SetItem
    - PyTuple_New
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: void
    signature: void constants_module_init(PyObject *mod)
  - 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: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: min
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:16,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:17,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:18,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:21,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:22,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:26,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressorIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 31
    functionName: ZstdCompressorIterator_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyBuffer_Release
    - PyObject_Del
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: void
    signature: void ZstdCompressorIterator_dealloc(ZstdCompressorIterator *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: ZstdCompressorIterator_iter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressorIterator_iter(PyObject *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:47,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:56,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:65,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:69,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:70,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:71,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:78,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:85,1
    - Dst: PyObject_CallMethod
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:93,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:98,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:101,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:106,1
    - Dst: min
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:110,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:115,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:129,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:131,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:132,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:133,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:137,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:143,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:153,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:166,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:170,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:171,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:172,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:176,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:183,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 86
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdCompressorIterator*
    assertStmts:
    - condition: "(self->buffer.strides == NULL &&\n                   self->buffer.suboffsets
        == NULL)"
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    - condition: (self->output.pos == 0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    - condition: (self->buffer.buf)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    - condition: (self->buffer.itemsize == 1)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    - condition: (self->output.pos)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    - condition: (self->input.pos <= self->input.size)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    constantsTouched: []
    func_position:
      end: 186
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 186
    functionName: ZstdCompressorIterator_iternext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ZSTD_isError
    - Py_DECREF
    - Py_XDECREF
    - PyObject_CallMethod
    - ZSTD_getErrorName
    - min
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - assert
    - ZSTD_compressStream2
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ZstdCompressorIterator_iternext(ZstdCompressorIterator *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:208,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: compressoriterator_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void compressoriterator_module_init(PyObject *mod)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:16,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:19,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:22,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:28,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:31,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 37
    functionName: BufferWithSegments_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - free
    - PyObject_Del
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void BufferWithSegments_dealloc(ZstdBufferWithSegments *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:47,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:49,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:55,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:70,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:80,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:82,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:86,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:87,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:96,1
    - Dst: PyBuffer_Release
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - ZstdBufferWithSegments*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 99
    functionName: BufferWithSegments_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - PyErr_NoMemory
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - memset
    linkageType: ''
    returnType: int
    signature: "int BufferWithSegments_init(ZstdBufferWithSegments *self, PyObject
      *args,\n                                   PyObject *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:115,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:120,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:128,1
    - Dst: PyObject_New
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:134,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - data
    - dataSize
    - segments
    - segmentsSize
    argTypes:
    - void*
    - unsigned long long
    - BufferSegment*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 148
    functionName: BufferWithSegments_FromMemory
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 2
    functionsReached:
    - memset
    - PyErr_SetString
    - PyObject_New
    linkageType: ''
    returnType: ZstdBufferWithSegments
    signature: "ZstdBufferWithSegments *\nBufferWithSegments_FromMemory(void *data,
      unsigned long long dataSize,\n                              BufferSegment *segments,\n
      \                             Py_ssize_t segmentsSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: BufferWithSegments_length
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t BufferWithSegments_length(ZstdBufferWithSegments *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:159,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:164,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:170,1
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:175,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - ZstdBufferWithSegments*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 189
    functionName: BufferWithSegments_item
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyErr_Format
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: ZstdBufferSegment
    signature: "ZstdBufferSegment *BufferWithSegments_item(ZstdBufferWithSegments
      *self,\n                                                  Py_ssize_t i)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:195,1
    - Dst: PyBuffer_FillInfo
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - ZstdBufferWithSegments*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: BufferWithSegments_getbuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int BufferWithSegments_getbuffer(ZstdBufferWithSegments *self,\n                                        Py_buffer
      *view, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:206,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: BufferWithSegments_tobytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *BufferWithSegments_tobytes(ZstdBufferWithSegments *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:216,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 228
    functionName: BufferWithSegments_segments
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_INCREF
    linkageType: ''
    returnType: ZstdBufferSegments
    signature: 'ZstdBufferSegments *

      BufferWithSegments_segments(ZstdBufferWithSegments *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:272,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferSegments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: BufferSegments_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void BufferSegments_dealloc(ZstdBufferSegments *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - ZstdBufferSegments*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: BufferSegments_getbuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: int
    signature: "int BufferSegments_getbuffer(ZstdBufferSegments *self, Py_buffer *view,\n
      \                                   int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:308,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: BufferSegment_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void BufferSegment_dealloc(ZstdBufferSegment *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: BufferSegment_length
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t BufferSegment_length(ZstdBufferSegment *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - ZstdBufferSegment*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 320
    functionName: BufferSegment_getbuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    linkageType: ''
    returnType: int
    signature: "int BufferSegment_getbuffer(ZstdBufferSegment *self, Py_buffer *view,\n
      \                                  int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: BufferSegment_tobytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: PyObject *BufferSegment_tobytes(ZstdBufferSegment *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:367,1
    - Dst: Py_CLEAR
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:373,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:376,1
    - Dst: PyObject_Del
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegmentsCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 381
    functionName: BufferWithSegmentsCollection_dealloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void BufferWithSegmentsCollection_dealloc(ZstdBufferWithSegmentsCollection
      *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:390,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:396,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:401,1
    - Dst: PyObject_TypeCheck
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:402,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:403,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:410,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:416,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:418,1
    - Dst: PyMem_Malloc
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:422,1
    - Dst: PyMem_Free
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:424,1
    - Dst: PyErr_NoMemory
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:434,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:437,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ZstdBufferWithSegmentsCollection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 449
    functionName: BufferWithSegmentsCollection_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NoMemory
    - PyObject_TypeCheck
    - PyMem_Free
    - PyTuple_Size
    - PyErr_SetString
    - PyMem_Malloc
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int BufferWithSegmentsCollection_init(ZstdBufferWithSegmentsCollection
      *self,\n                                  PyObject *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegmentsCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 464
    functionName: BufferWithSegmentsCollection_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BufferWithSegmentsCollection_size(ZstdBufferWithSegmentsCollection *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ZstdBufferWithSegmentsCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: BufferWithSegmentsCollection_length
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t BufferWithSegmentsCollection_length(ZstdBufferWithSegmentsCollection
      *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:477,1
    - Dst: BufferWithSegmentsCollection_length
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:481,1
    - Dst: PyErr_Format
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:482,1
    - Dst: BufferWithSegmentsCollection_length
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:483,1
    - Dst: BufferWithSegments_item
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:495,1
    - Dst: PyErr_SetString
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:500,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - ZstdBufferWithSegmentsCollection*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 503
    functionName: BufferWithSegmentsCollection_item
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 0
    functionsReached:
    - BufferWithSegments_item
    - PyErr_Format
    - BufferWithSegmentsCollection_length
    - PyErr_SetString
    linkageType: ''
    returnType: ZstdBufferSegment
    signature: "ZstdBufferSegment *\nBufferWithSegmentsCollection_item(ZstdBufferWithSegmentsCollection
      *self,\n                                  Py_ssize_t i)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:532,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:536,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:540,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:541,1
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:545,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:549,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:553,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:554,1
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:558,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:562,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:566,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:567,1
    - Dst: PyType_FromSpec
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:570,1
    - Dst: PyType_Ready
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:571,1
    - Dst: Py_INCREF
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:575,1
    - Dst: PyModule_AddObject
      Src: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 578
    functionName: bufferutil_module_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: void
    signature: void bufferutil_module_init(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: ZSTD_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: ZSTD_EXPAND_AND_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_EXPAND_AND_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - format
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1221
    functionName: ZSTD_FRAMEHEADERSIZE_PREFIX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FRAMEHEADERSIZE_PREFIX(format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - format
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1222
    functionName: ZSTD_FRAMEHEADERSIZE_MIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FRAMEHEADERSIZE_MIN(format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - originalSize
    - ','
    - blockSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1535
    functionName: ZSTD_DECOMPRESSION_MARGIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DECOMPRESSION_MARGIN(originalSize, blockSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: ZSTD_memcpy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memcpy(d,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: ZSTD_memmove
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memmove(d,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - v
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: ZSTD_memset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memset(p,v,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: ZSTD_memcpy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memcpy(d,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ZSTD_memmove
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memmove(d,s,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - v
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: ZSTD_memset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_memset(p,v,l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: ZSTD_malloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_malloc(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: ZSTD_calloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_calloc(n,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: ZSTD_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_free(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dividend
    - ','
    - divisor
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: ZSTD_div64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_div64(dividend, divisor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: ZSTD_DEBUG_PRINT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEBUG_PRINT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: DEBUG_STATIC_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - condition
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: assert
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert(condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: RAWLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAWLOG(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: STRINGIFY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    functionName: TOSTRING
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOSTRING(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: DEBUGLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGLOG(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: RAWLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAWLOG(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: DEBUGLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUGLOG(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 402
    functionName: __has_attribute
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_attribute(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: __has_builtin
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    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: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: __has_feature
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_feature(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: ZSTD_HIDE_ASM_FUNCTION
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HIDE_ASM_FUNCTION(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: ZSTD_HIDE_ASM_FUNCTION
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HIDE_ASM_FUNCTION(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - target
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 640
    functionName: TARGET_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET_ATTRIBUTE(target)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 654
    functionName: PREFETCH_L1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 655
    functionName: PREFETCH_L2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 659
    functionName: PREFETCH_L1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 660
    functionName: PREFETCH_L2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 665
    functionName: PREFETCH_L1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: PREFETCH_L2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: PREFETCH_L1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L1(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: PREFETCH_L2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_L2(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 683
    functionName: PREFETCH_AREA
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFETCH_AREA(p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 704
    functionName: LIKELY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 705
    functionName: UNLIKELY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 707
    functionName: LIKELY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 708
    functionName: UNLIKELY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 760
    functionName: ZSTD_HAS_C_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: ZSTD_HAS_C_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: ZSTD_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 771
    functionName: ZSTD_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 809
    functionName: ZSTD_ALIGNOF
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ALIGNOF(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 814
    functionName: ZSTD_ALIGNOF
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ALIGNOF(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 818
    functionName: ZSTD_ALIGNOF
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ALIGNOF(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 855
    functionName: ZSTD_wrappedPtrDiff
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_wrappedPtrDiff(unsigned char const* lhs, unsigned char
      const* rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - add
    argTypes:
    - unsigned char*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 867
    functionName: ZSTD_wrappedPtrAdd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZSTD_wrappedPtrAdd(unsigned char const* ptr, ptrdiff_t add)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - sub
    argTypes:
    - unsigned char*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 880
    functionName: ZSTD_wrappedPtrSub
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZSTD_wrappedPtrSub(unsigned char const* ptr, ptrdiff_t sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - add
    argTypes:
    - unsigned char*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: ZSTD_maybeNullPtrAdd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: 'MEM_STATIC

      unsigned'
    signature: 'MEM_STATIC

      unsigned * ZSTD_maybeNullPtrAdd(unsigned char* ptr, ptrdiff_t add)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1087
    functionName: MEM_32bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned MEM_32bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1088
    functionName: MEM_64bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned MEM_64bits(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1108
    functionName: MEM_isLittleEndian
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned MEM_isLittleEndian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1114
    functionName: MEM_read16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read16(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1115
    functionName: MEM_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1116
    functionName: MEM_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1117
    functionName: MEM_readST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readST(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1119
    functionName: MEM_write16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write16(void* memPtr, U16 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    functionName: MEM_write32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write32(void* memPtr, U32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1121
    functionName: MEM_write64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write64(void* memPtr, U64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1130
    functionName: MEM_read16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read16(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1131
    functionName: MEM_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1132
    functionName: MEM_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1133
    functionName: MEM_readST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readST(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1135
    functionName: MEM_write16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write16(void* memPtr, U16 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1136
    functionName: MEM_write32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write32(void* memPtr, U32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1137
    functionName: MEM_write64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write64(void* memPtr, U64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1147
    functionName: MEM_read16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read16(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1152
    functionName: MEM_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1157
    functionName: MEM_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: MEM_readST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readST(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1167
    functionName: MEM_write16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write16(void* memPtr, U16 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1172
    functionName: MEM_write32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write32(void* memPtr, U32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - memPtr
    - value
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1177
    functionName: MEM_write64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_write64(void* memPtr, U64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1187
    functionName: MEM_swap32_fallback
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_swap32_fallback(U32 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _byteswap_ulong
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1192,1
    - Dst: __has_builtin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1194,1
    - Dst: __builtin_bswap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1195,1
    - Dst: MEM_swap32_fallback
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1199
    functionName: MEM_swap32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap32_fallback
    - __has_builtin
    - __builtin_bswap32
    - _byteswap_ulong
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_swap32(U32 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1211
    functionName: MEM_swap64_fallback
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_swap64_fallback(U64 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _byteswap_uint64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1216,1
    - Dst: __has_builtin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1218,1
    - Dst: __builtin_bswap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1219,1
    - Dst: MEM_swap64_fallback
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1223
    functionName: MEM_swap64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _byteswap_uint64
    - __builtin_bswap64
    - MEM_swap64_fallback
    - __has_builtin
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_swap64(U64 in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1227,1
    - Dst: MEM_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1228,1
    - Dst: MEM_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1231
    functionName: MEM_swapST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap32
    - MEM_swap64
    - MEM_32bits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_swapST(size_t in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1237,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1243
    functionName: MEM_readLE16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read16
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readLE16(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1247,1
    - Dst: MEM_write16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - U16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1254
    functionName: MEM_writeLE16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_write16
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeLE16(void* memPtr, U16 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1259
    functionName: MEM_readLE24
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE16
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readLE24(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1261
    functionDepth: 2
    functionLinenumber: 1261
    functionLinenumberEnd: 1265
    functionName: MEM_writeLE24
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE16
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeLE24(void* memPtr, U32 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1269,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1270,1
    - Dst: MEM_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1272,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1273
    functionName: MEM_readLE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap32
    - MEM_isLittleEndian
    - MEM_read32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readLE32(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1277,1
    - Dst: MEM_write32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1278,1
    - Dst: MEM_write32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1280,1
    - Dst: MEM_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val32
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1281
    functionName: MEM_writeLE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_write32
    - MEM_swap32
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeLE32(void* memPtr, U32 val32)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1285,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1286,1
    - Dst: MEM_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1288,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1289
    functionName: MEM_readLE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read64
    - MEM_swap64
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readLE64(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1293,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1294,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1296,1
    - Dst: MEM_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val64
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    functionName: MEM_writeLE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap64
    - MEM_isLittleEndian
    - MEM_write64
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeLE64(void* memPtr, U64 val64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1301,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1302,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1299
    functionDepth: 3
    functionLinenumber: 1299
    functionLinenumberEnd: 1305
    functionName: MEM_readLEST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE64
    - MEM_32bits
    - MEM_readLE32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readLEST(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1309,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1310,1
    - Dst: MEM_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1313
    functionName: MEM_writeLEST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE64
    - MEM_writeLE32
    - MEM_32bits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeLEST(void* memPtr, size_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1319,1
    - Dst: MEM_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1320,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1320,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1323
    functionName: MEM_readBE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap32
    - MEM_isLittleEndian
    - MEM_read32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readBE32(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1327,1
    - Dst: MEM_write32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1328,1
    - Dst: MEM_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1328,1
    - Dst: MEM_write32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val32
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1331
    functionName: MEM_writeBE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_write32
    - MEM_swap32
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeBE32(void* memPtr, U32 val32)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1335,1
    - Dst: MEM_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1336,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1336,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1333
    functionDepth: 2
    functionLinenumber: 1333
    functionLinenumberEnd: 1339
    functionName: MEM_readBE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap64
    - MEM_read64
    - MEM_isLittleEndian
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readBE64(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1343,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1344,1
    - Dst: MEM_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1344,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val64
    argTypes:
    - void*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1341
    functionDepth: 2
    functionLinenumber: 1341
    functionLinenumberEnd: 1347
    functionName: MEM_writeBE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_swap64
    - MEM_isLittleEndian
    - MEM_write64
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeBE64(void* memPtr, U64 val64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1351,1
    - Dst: MEM_readBE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1352,1
    - Dst: MEM_readBE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1349
    functionDepth: 3
    functionLinenumber: 1349
    functionLinenumberEnd: 1355
    functionName: MEM_readBEST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readBE32
    - MEM_readBE64
    - MEM_32bits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_readBEST(const void* memPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1359,1
    - Dst: MEM_writeBE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1360,1
    - Dst: MEM_writeBE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - memPtr
    - val
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1357
    functionDepth: 3
    functionLinenumber: 1357
    functionLinenumberEnd: 1363
    functionName: MEM_writeBEST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeBE32
    - MEM_32bits
    - MEM_writeBE64
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_writeBEST(void* memPtr, size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1366
    functionName: MEM_check
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUG_STATIC_ASSERT
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC MEM_check(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1539
    functionName: PREFIX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 1546
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1546
    functionName: ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1546
    functionDepth: 0
    functionLinenumber: 1546
    functionLinenumberEnd: 1547
    functionName: ZSTD_ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ERROR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1548
    functionName: ERR_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: ERR_STATIC unsigned
    signature: ERR_STATIC unsigned ERR_isError(size_t code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1550
    functionDepth: 2
    functionLinenumber: 1550
    functionLinenumberEnd: 1550
    functionName: ERR_getErrorCode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: ERR_STATIC
    signature: ERR_STATIC ERR_getErrorCode(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1553
    functionDepth: 0
    functionLinenumber: 1553
    functionLinenumberEnd: 1559
    functionName: CHECK_V_F
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_V_F(e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1560
    functionName: CHECK_F
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_F(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorString
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1570,1
    - Dst: ERR_getErrorCode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1568
    functionDepth: 3
    functionLinenumber: 1568
    functionLinenumberEnd: 1571
    functionName: ERR_getErrorName
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_getErrorString
    - ERR_getErrorCode
    linkageType: ''
    returnType: ERR_STATIC
    signature: ERR_STATIC * ERR_getErrorName(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1585
    functionName: _force_has_format_string
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE_KEYWORD
    signature: INLINE_KEYWORD _force_has_format_string(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1599
    functionName: _FORCE_HAS_FORMAT_STRING
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FORCE_HAS_FORMAT_STRING(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1601
    functionName: ERR_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - err
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1620
    functionName: RETURN_ERROR_IF
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ERROR_IF(cond, err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1635
    functionName: RETURN_ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ERROR(err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - err
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1641
    functionDepth: 0
    functionLinenumber: 1641
    functionLinenumberEnd: 1653
    functionName: FORWARD_IF_ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORWARD_IF_ERROR(err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1709
    functionDepth: 0
    functionLinenumber: 1709
    functionLinenumberEnd: 1710
    functionName: FSE_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1711
    functionName: FSE_EXPAND_AND_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_EXPAND_AND_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 1948
        line_start: 1948
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 1957
      start: 1947
    functionDepth: 1
    functionLinenumber: 1947
    functionLinenumberEnd: 1957
    functionName: ZSTD_countTrailingZeros32_fallback
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countTrailingZeros32_fallback(U32 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1961,1
    - Dst: _tzcnt_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1964,1
    - Dst: _BitScanForward
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1968,1
    - Dst: __assume
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1972,1
    - Dst: __builtin_ctz
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1976,1
    - Dst: ZSTD_countTrailingZeros32_fallback
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 1960
        line_start: 1960
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 1980
      start: 1959
    functionDepth: 2
    functionLinenumber: 1959
    functionLinenumberEnd: 1980
    functionName: ZSTD_countTrailingZeros32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _tzcnt_u32
    - __assume
    - ZSTD_countTrailingZeros32_fallback
    - __builtin_ctz
    - assert
    - _BitScanForward
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countTrailingZeros32(U32 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:1983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 1982
        line_start: 1982
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 1996
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 1996
    functionName: ZSTD_countLeadingZeros32_fallback
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countLeadingZeros32_fallback(U32 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2000,1
    - Dst: _lzcnt_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2003,1
    - Dst: _BitScanReverse
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2007,1
    - Dst: __assume
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2011,1
    - Dst: __builtin_clz
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2015,1
    - Dst: ZSTD_countLeadingZeros32_fallback
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 1999
        line_start: 1999
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2019
      start: 1998
    functionDepth: 2
    functionLinenumber: 1998
    functionLinenumberEnd: 2019
    functionName: ZSTD_countLeadingZeros32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - __assume
    - ZSTD_countLeadingZeros32_fallback
    - _lzcnt_u32
    - __builtin_clz
    - _BitScanReverse
    - assert
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countLeadingZeros32(U32 val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2023,1
    - Dst: _tzcnt_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2026,1
    - Dst: _BitScanForward64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2030,1
    - Dst: __assume
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2034,1
    - Dst: __builtin_ctzll
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2038,1
    - Dst: ZSTD_countTrailingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2044,1
    - Dst: ZSTD_countTrailingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - val
    argTypes:
    - U64
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 2022
        line_start: 2022
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2050
      start: 2021
    functionDepth: 3
    functionLinenumber: 2021
    functionLinenumberEnd: 2050
    functionName: ZSTD_countTrailingZeros64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    - _tzcnt_u64
    - __assume
    - ZSTD_countTrailingZeros32
    - __builtin_ctzll
    - assert
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countTrailingZeros64(U64 val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2054,1
    - Dst: _lzcnt_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2057,1
    - Dst: _BitScanReverse64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2061,1
    - Dst: __assume
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2065,1
    - Dst: __builtin_clzll
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2069,1
    - Dst: ZSTD_countLeadingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2075,1
    - Dst: ZSTD_countLeadingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - val
    argTypes:
    - U64
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 2053
        line_start: 2053
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2081
      start: 2052
    functionDepth: 3
    functionLinenumber: 2052
    functionLinenumberEnd: 2081
    functionName: ZSTD_countLeadingZeros64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - __assume
    - ZSTD_countLeadingZeros32
    - __builtin_clzll
    - _BitScanReverse64
    - assert
    - _lzcnt_u64
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_countLeadingZeros64(U64 val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2085,1
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2086,1
    - Dst: ZSTD_countTrailingZeros64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2087,1
    - Dst: ZSTD_countTrailingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2089,1
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2092,1
    - Dst: ZSTD_countLeadingZeros64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2093,1
    - Dst: ZSTD_countLeadingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - val
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2083
    functionDepth: 4
    functionLinenumber: 2083
    functionLinenumberEnd: 2098
    functionName: ZSTD_NbCommonBytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_isLittleEndian
    - ZSTD_countLeadingZeros32
    - ZSTD_countTrailingZeros64
    - MEM_64bits
    - ZSTD_countTrailingZeros32
    - ZSTD_countLeadingZeros64
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_NbCommonBytes(size_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2102,1
    - Dst: ZSTD_countLeadingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - U32
    assertStmts:
    - condition: (val != 0)
      pos:
        line_end: 2101
        line_start: 2101
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2104
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2104
    functionName: ZSTD_highbit32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_countLeadingZeros32
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_highbit32(U32 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - count
    argTypes:
    - U64
    - U32
    assertStmts:
    - condition: (count < 64)
      pos:
        line_end: 2111
        line_start: 2111
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2115
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2115
    functionName: ZSTD_rotateRight_U64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rotateRight_U64(U64 const value, U32 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - count
    argTypes:
    - U32
    - U32
    assertStmts:
    - condition: (count < 32)
      pos:
        line_end: 2118
        line_start: 2118
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2122
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2122
    functionName: ZSTD_rotateRight_U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rotateRight_U32(U32 const value, U32 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - value
    - count
    argTypes:
    - U16
    - U32
    assertStmts:
    - condition: (count < 16)
      pos:
        line_end: 2125
        line_start: 2125
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2129
      start: 2124
    functionDepth: 1
    functionLinenumber: 2124
    functionLinenumberEnd: 2129
    functionName: ZSTD_rotateRight_U16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rotateRight_U16(U16 const value, U32 count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bitC
    - startPtr
    - dstCapacity
    argTypes:
    - BIT_CStream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2253
    functionDepth: 1
    functionLinenumber: 2253
    functionLinenumberEnd: 2263
    functionName: BIT_initCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC BIT_initCStream(BIT_CStream_t* bitC,\n                                  void*
      startPtr, size_t dstCapacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bzhi_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2268,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - bitContainer
    - nbBits
    argTypes:
    - size_t
    - U32
    assertStmts:
    - condition: (nbBits < BIT_MASK_SIZE)
      pos:
        line_end: 2269
        line_start: 2269
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2273
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2273
    functionName: BIT_getLowerBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - _bzhi_u64
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_getLowerBits(size_t bitContainer, U32 const
      nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2281,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2282,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2283,1
    - Dst: BIT_getLowerBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - bitC
    - value
    - nbBits
    argTypes:
    - BIT_CStream_t*
    - size_t
    - unsigned
    assertStmts:
    - condition: (nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8)
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbBits < BIT_MASK_SIZE)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2286
      start: 2278
    functionDepth: 2
    functionLinenumber: 2278
    functionLinenumberEnd: 2286
    functionName: BIT_addBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - BIT_getLowerBits
    - DEBUG_STATIC_ASSERT
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC BIT_addBits(BIT_CStream_t* bitC,\n                            size_t
      value, unsigned nbBits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2294,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bitC
    - value
    - nbBits
    argTypes:
    - BIT_CStream_t*
    - size_t
    - unsigned
    assertStmts:
    - condition: ((value>>nbBits) == 0)
      pos:
        line_end: 2293
        line_start: 2293
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8)
      pos:
        line_end: 2294
        line_start: 2294
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2298
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2298
    functionName: BIT_addBitsFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC BIT_addBitsFast(BIT_CStream_t* bitC,\n                                size_t
      value, unsigned nbBits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2306,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2307,1
    - Dst: MEM_writeLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts:
    - condition: (bitC->bitPos < sizeof(bitC->bitContainer) * 8)
      pos:
        line_end: 2305
        line_start: 2305
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitC->ptr <= bitC->endPtr)
      pos:
        line_end: 2306
        line_start: 2306
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2312
      start: 2303
    functionDepth: 4
    functionLinenumber: 2303
    functionLinenumberEnd: 2312
    functionName: BIT_flushBitsFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_writeLEST
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_flushBitsFast(BIT_CStream_t* bitC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2322,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2323,1
    - Dst: MEM_writeLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts:
    - condition: (bitC->bitPos < sizeof(bitC->bitContainer) * 8)
      pos:
        line_end: 2321
        line_start: 2321
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitC->ptr <= bitC->endPtr)
      pos:
        line_end: 2322
        line_start: 2322
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2329
      start: 2319
    functionDepth: 4
    functionLinenumber: 2319
    functionLinenumberEnd: 2329
    functionName: BIT_flushBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_writeLEST
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_flushBits(BIT_CStream_t* bitC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2336,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - BIT_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2334
    functionDepth: 5
    functionLinenumber: 2334
    functionLinenumberEnd: 2340
    functionName: BIT_closeCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_flushBits
    - BIT_addBitsFast
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_closeCStream(BIT_CStream_t* bitC)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2354,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2354,1
    - Dst: MEM_readLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2361,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2363,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2364,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2391,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - bitD
    - srcBuffer
    - srcSize
    argTypes:
    - BIT_DStream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2398
      start: 2352
    functionDepth: 4
    functionLinenumber: 2352
    functionLinenumberEnd: 2398
    functionName: BIT_initDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - MEM_readLEST
    - ERROR
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer,
      size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitContainer
    - start
    argTypes:
    - BitContainerType
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2400
    functionDepth: 0
    functionLinenumber: 2400
    functionLinenumberEnd: 2403
    functionName: BIT_getUpperBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_getUpperBits(BitContainerType bitContainer,
      U32 const start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - bitContainer
    - start
    - nbBits
    argTypes:
    - BitContainerType
    - U32
    - U32
    assertStmts:
    - condition: (nbBits < BIT_MASK_SIZE)
      pos:
        line_end: 2408
        line_start: 2408
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2420
      start: 2405
    functionDepth: 1
    functionLinenumber: 2405
    functionLinenumberEnd: 2420
    functionName: BIT_getMiddleBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_getMiddleBits(BitContainerType bitContainer,
      U32 const start, U32 const nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_getMiddleBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2428
    functionDepth: 2
    functionLinenumber: 2428
    functionLinenumberEnd: 2440
    functionName: BIT_lookBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_getMiddleBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_lookBits(const BIT_DStream_t*  bitD, U32
      nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts:
    - condition: (nbBits >= 1)
      pos:
        line_end: 2446
        line_start: 2446
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2449
      start: 2444
    functionDepth: 1
    functionLinenumber: 2444
    functionLinenumberEnd: 2449
    functionName: BIT_lookBitsFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2454
    functionName: BIT_skipBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2462,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2460
    functionDepth: 3
    functionLinenumber: 2460
    functionLinenumberEnd: 2465
    functionName: BIT_readBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_skipBits
    - BIT_lookBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2471,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2472,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bitD
    - nbBits
    argTypes:
    - BIT_DStream_t*
    - unsigned
    assertStmts:
    - condition: (nbBits >= 1)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2475
      start: 2469
    functionDepth: 2
    functionLinenumber: 2469
    functionLinenumberEnd: 2475
    functionName: BIT_readBitsFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - BIT_lookBitsFast
    - BIT_skipBits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2484,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2486,1
    - Dst: MEM_readLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bitD
    argTypes:
    - BIT_DStream_t*
    assertStmts:
    - condition: (bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8)
      pos:
        line_end: 2483
        line_start: 2483
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitD->ptr >= bitD->start)
      pos:
        line_end: 2485
        line_start: 2485
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2490
      start: 2482
    functionDepth: 4
    functionLinenumber: 2482
    functionLinenumberEnd: 2490
    functionName: BIT_DStream_status::BIT_reloadDStream_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_readLEST
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_DStream_status BIT_reloadDStream_internal(BIT_DStream_t*
      bitD)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2500,1
    - Dst: BIT_DStream_status::BIT_reloadDStream_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bitD
    argTypes:
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2498
    functionDepth: 5
    functionLinenumber: 2498
    functionLinenumberEnd: 2503
    functionName: BIT_DStream_status::BIT_reloadDStreamFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - BIT_DStream_status::BIT_reloadDStream_internal
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC BIT_DStream_status BIT_reloadDStreamFast(BIT_DStream_t*
      bitD)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2513,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2520,1
    - Dst: BIT_DStream_status::BIT_reloadDStream_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2523,1
    - Dst: MEM_readLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - bitD
    argTypes:
    - BIT_DStream_t*
    assertStmts:
    - condition: (bitD->ptr >= bitD->start)
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2542
      start: 2510
    functionDepth: 5
    functionLinenumber: 2510
    functionLinenumberEnd: 2542
    functionName: BIT_DStream_status::BIT_reloadDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - MEM_readLEST
    - assert
    - BIT_DStream_status::BIT_reloadDStream_internal
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE BIT_DStream_status BIT_reloadDStream(BIT_DStream_t*
      bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - DStream
    argTypes:
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2550
      start: 2547
    functionDepth: 0
    functionLinenumber: 2547
    functionLinenumberEnd: 2550
    functionName: BIT_endOfDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2565
    functionDepth: 0
    functionLinenumber: 2565
    functionLinenumberEnd: 2565
    functionName: FSE_BLOCKBOUND
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_BLOCKBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2566
    functionDepth: 0
    functionLinenumber: 2566
    functionLinenumberEnd: 2567
    functionName: FSE_COMPRESSBOUND
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_COMPRESSBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2570
    functionName: FSE_CTABLE_SIZE_U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2570
    functionDepth: 0
    functionLinenumber: 2570
    functionLinenumberEnd: 2571
    functionName: FSE_DTABLE_SIZE_U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_DTABLE_SIZE_U32(maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2573
    functionDepth: 0
    functionLinenumber: 2573
    functionLinenumberEnd: 2574
    functionName: FSE_CTABLE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CTABLE_SIZE(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2574
    functionDepth: 0
    functionLinenumber: 2574
    functionLinenumberEnd: 2575
    functionName: FSE_DTABLE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_DTABLE_SIZE(maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxSymbolValue
    - ','
    - tableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2593
    functionDepth: 0
    functionLinenumber: 2593
    functionLinenumberEnd: 2594
    functionName: FSE_BUILD_CTABLE_WORKSPACE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2596
    functionDepth: 0
    functionLinenumber: 2596
    functionLinenumberEnd: 2597
    functionName: FSE_BUILD_DTABLE_WKSP_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2597
    functionDepth: 0
    functionLinenumber: 2597
    functionLinenumberEnd: 2598
    functionName: FSE_BUILD_DTABLE_WKSP_SIZE_U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2602
    functionName: FSE_DECOMPRESS_WKSP_SIZE_U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - maxTableLog
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2603
    functionName: FSE_DECOMPRESS_WKSP_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_DECOMPRESS_WKSP_SIZE(maxTableLog, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - statePtr
    - ct
    argTypes:
    - FSE_CState_t*
    - FSE_CTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2757
    functionDepth: 1
    functionLinenumber: 2757
    functionLinenumberEnd: 2766
    functionName: FSE_initCState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read16
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable*
      ct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_initCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - statePtr
    - ct
    - symbol
    argTypes:
    - FSE_CState_t*
    - FSE_CTable*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2772
    functionDepth: 2
    functionLinenumber: 2772
    functionLinenumberEnd: 2781
    functionName: FSE_initCState2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_initCState
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable*
      ct, U32 symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitC
    - statePtr
    - symbol
    argTypes:
    - BIT_CStream_t*
    - FSE_CState_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2783
    functionDepth: 3
    functionLinenumber: 2783
    functionLinenumberEnd: 2790
    functionName: FSE_encodeSymbol
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_addBits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* statePtr,
      unsigned symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2794,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bitC
    - statePtr
    argTypes:
    - BIT_CStream_t*
    - FSE_CState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2792
    functionDepth: 5
    functionLinenumber: 2792
    functionLinenumberEnd: 2796
    functionName: FSE_flushCState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_flushBits
    - BIT_addBits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t*
      statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symbolTTPtr
    - symbolValue
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2804
    functionDepth: 0
    functionLinenumber: 2804
    functionLinenumberEnd: 2808
    functionName: FSE_getMaxNbBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_getMaxNbBits(const void* symbolTTPtr, U32 symbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2819,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2820,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2825,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - symbolTTPtr
    - tableLog
    - symbolValue
    - accuracyLog
    argTypes:
    - void*
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (tableLog < 16)
      pos:
        line_end: 2818
        line_start: 2818
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (normalizedDeltaFromThreshold <= bitMultiplier)
      pos:
        line_end: 2825
        line_start: 2825
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (accuracyLog < 31-tableLog)
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (symbolTT[symbolValue].deltaNbBits + tableSize <= threshold)
      pos:
        line_end: 2824
        line_start: 2824
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 2829
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2829
    functionName: FSE_bitCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_bitCost(const void* symbolTTPtr, U32 tableLog, U32 symbolValue,
      U32 accuracyLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2850,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - DStatePtr
    - bitD
    - dt
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    - FSE_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2853
    functionName: FSE_initDState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBits
    - BIT_reloadDStream
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD,
      const FSE_DTable* dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - DStatePtr
    argTypes:
    - FSE_DState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2855
    functionDepth: 0
    functionLinenumber: 2855
    functionLinenumberEnd: 2859
    functionName: FSE_peekSymbol
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_peekSymbol(const FSE_DState_t* DStatePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2861
    functionDepth: 4
    functionLinenumber: 2861
    functionLinenumberEnd: 2867
    functionName: FSE_updateState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t*
      bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2869
    functionDepth: 4
    functionLinenumber: 2869
    functionLinenumberEnd: 2878
    functionName: FSE_decodeSymbol
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBits
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t*
      bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:2887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - DStatePtr
    - bitD
    argTypes:
    - FSE_DState_t*
    - BIT_DStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2882
    functionDepth: 3
    functionLinenumber: 2882
    functionLinenumberEnd: 2891
    functionName: FSE_decodeSymbolFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBitsFast
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t*
      bitD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - DStatePtr
    argTypes:
    - FSE_DState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2893
    functionDepth: 0
    functionLinenumber: 2893
    functionLinenumberEnd: 2896
    functionName: FSE_endOfDState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tableSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2952
    functionDepth: 0
    functionLinenumber: 2952
    functionLinenumberEnd: 2953
    functionName: FSE_TABLESTEP
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_TABLESTEP(tableSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3019
    functionDepth: 0
    functionLinenumber: 3019
    functionLinenumberEnd: 3020
    functionName: HUF_BLOCKBOUND
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_BLOCKBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 3020
    functionDepth: 0
    functionLinenumber: 3020
    functionLinenumberEnd: 3021
    functionName: HUF_COMPRESSBOUND
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_COMPRESSBOUND(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3025
    functionDepth: 0
    functionLinenumber: 3025
    functionLinenumberEnd: 3026
    functionName: HUF_CTABLE_SIZE_ST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CTABLE_SIZE_ST(maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3026
    functionDepth: 0
    functionLinenumber: 3026
    functionLinenumberEnd: 3027
    functionName: HUF_CTABLE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CTABLE_SIZE(maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - maxSymbolValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3027
    functionDepth: 0
    functionLinenumber: 3027
    functionLinenumberEnd: 3029
    functionName: HUF_CREATE_STATIC_CTABLE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3032
    functionDepth: 0
    functionLinenumber: 3032
    functionLinenumberEnd: 3033
    functionName: HUF_DTABLE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DTABLE_SIZE(maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DTable
    - ','
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3033
    functionDepth: 0
    functionLinenumber: 3033
    functionLinenumberEnd: 3035
    functionName: HUF_CREATE_STATIC_DTABLEX1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DTable
    - ','
    - maxTableLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3035
    functionDepth: 0
    functionLinenumber: 3035
    functionLinenumberEnd: 3037
    functionName: HUF_CREATE_STATIC_DTABLEX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 3254
    functionDepth: 0
    functionLinenumber: 3254
    functionLinenumberEnd: 3254
    functionName: FSE_versionNumber
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned FSE_versionNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3258
    functionDepth: 2
    functionLinenumber: 3258
    functionLinenumberEnd: 3258
    functionName: FSE_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned FSE_isError(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3259
    functionDepth: 4
    functionLinenumber: 3259
    functionLinenumberEnd: 3259
    functionName: FSE_getErrorName
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_getErrorName
    linkageType: ''
    returnType: char
    signature: char * FSE_getErrorName(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3261
    functionDepth: 2
    functionLinenumber: 3261
    functionLinenumberEnd: 3261
    functionName: HUF_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned HUF_isError(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3262
    functionDepth: 4
    functionLinenumber: 3262
    functionLinenumberEnd: 3262
    functionName: HUF_getErrorName
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_getErrorName
    linkageType: ''
    returnType: char
    signature: char * HUF_getErrorName(size_t code)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3287,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3288,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3290,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3291,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3294,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3297,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3298,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3300,1
    - Dst: ZSTD_countTrailingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3315,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3318,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3325,1
    - Dst: ZSTD_countTrailingZeros32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3326,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3333,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3347,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3348,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3356,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3378,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3384,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3391,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3396,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3404,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3406,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3408,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3409,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 102
    argCount: 5
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts:
    - condition: (threshold > 1)
      pos:
        line_end: 3383
        line_start: 3383
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (hbSize >= 8)
      pos:
        line_end: 3293
        line_start: 3293
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((bitCount >> 3) <= 3)
      pos:
        line_end: 3347
        line_start: 3347
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((bitStream & 3) < 3)
      pos:
        line_end: 3332
        line_start: 3332
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (count == -1)
      pos:
        line_end: 3377
        line_start: 3377
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 3414
      start: 3268
    functionDepth: 4
    functionLinenumber: 3268
    functionLinenumberEnd: 3414
    functionName: FSE_readNCount_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_highbit32
    - MEM_readLE32
    - FSE_isError
    - ERROR
    - FSE_readNCount
    - ZSTD_countTrailingZeros32
    - LIKELY
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE FSE_readNCount_body(short* normalizedCounter,
      unsigned* maxSVPtr, unsigned* tableLogPtr,\n                           const
      void* headerBuffer, size_t hbSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_readNCount_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3417
    functionDepth: 5
    functionLinenumber: 3417
    functionLinenumberEnd: 3422
    functionName: FSE_readNCount_body_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_readNCount_body
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_readNCount_body_default(\n        short* normalizedCounter,
      unsigned* maxSVPtr, unsigned* tableLogPtr,\n        const void* headerBuffer,
      size_t hbSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_readNCount_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3425
    functionDepth: 5
    functionLinenumber: 3425
    functionLinenumberEnd: 3430
    functionName: FSE_readNCount_body_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_readNCount_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE FSE_readNCount_body_bmi2(\n        short* normalizedCounter,
      unsigned* maxSVPtr, unsigned* tableLogPtr,\n        const void* headerBuffer,
      size_t hbSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSE_readNCount_body_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3439,1
    - Dst: FSE_readNCount_body_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    - bmi2
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3433
    functionDepth: 6
    functionLinenumber: 3433
    functionLinenumberEnd: 3444
    functionName: FSE_readNCount_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_readNCount_body_default
    - FSE_readNCount_body_bmi2
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_readNCount_bmi2(\n        short* normalizedCounter, unsigned*
      maxSVPtr, unsigned* tableLogPtr,\n        const void* headerBuffer, size_t hbSize,
      int bmi2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_readNCount_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - normalizedCounter
    - maxSVPtr
    - tableLogPtr
    - headerBuffer
    - hbSize
    argTypes:
    - short*
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3446
    functionDepth: 7
    functionLinenumber: 3446
    functionLinenumberEnd: 3451
    functionName: FSE_readNCount
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - FSE_readNCount_bmi2
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_readNCount(\n        short* normalizedCounter, unsigned*
      maxSVPtr, unsigned* tableLogPtr,\n        const void* headerBuffer, size_t hbSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readStats_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3467
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3467
    functionName: HUF_readStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_readStats_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats,\n
      \                    U32* nbSymbolsPtr, U32* tableLogPtr,\n                     const
      void* src, size_t srcSize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3481,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3488,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3489,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3497,1
    - Dst: FSE_decompress_wksp_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3499,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3500,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3504,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3507,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3511,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3514,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3515,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3520,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3521,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3522,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3528,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 10
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    - workSpace
    - wkspSize
    - bmi2
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3469
    functionDepth: 4
    functionLinenumber: 3469
    functionLinenumberEnd: 3533
    functionName: HUF_readStats_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_decompress_wksp_bmi2
    - ZSTD_highbit32
    - FSE_isError
    - ERROR
    - ZSTD_memset
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_readStats_body(BYTE* huffWeight, size_t
      hwSize, U32* rankStats,\n                   U32* nbSymbolsPtr, U32* tableLogPtr,\n
      \                  const void* src, size_t srcSize,\n                   void*
      workSpace, size_t wkspSize,\n                   int bmi2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readStats_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    - workSpace
    - wkspSize
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3542
      start: 3536
    functionDepth: 5
    functionLinenumber: 3536
    functionLinenumberEnd: 3542
    functionName: HUF_readStats_body_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_readStats_body
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_readStats_body_default(BYTE* huffWeight, size_t hwSize,
      U32* rankStats,\n                     U32* nbSymbolsPtr, U32* tableLogPtr,\n
      \                    const void* src, size_t srcSize,\n                     void*
      workSpace, size_t wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readStats_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    - workSpace
    - wkspSize
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3545
    functionDepth: 5
    functionLinenumber: 3545
    functionLinenumberEnd: 3551
    functionName: HUF_readStats_body_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_readStats_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE HUF_readStats_body_bmi2(BYTE* huffWeight, size_t
      hwSize, U32* rankStats,\n                     U32* nbSymbolsPtr, U32* tableLogPtr,\n
      \                    const void* src, size_t srcSize,\n                     void*
      workSpace, size_t wkspSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readStats_body_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3562,1
    - Dst: HUF_readStats_body_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - huffWeight
    - hwSize
    - rankStats
    - nbSymbolsPtr
    - tableLogPtr
    - src
    - srcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - BYTE*
    - size_t
    - U32*
    - U32*
    - U32*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3554
    functionDepth: 6
    functionLinenumber: 3554
    functionLinenumberEnd: 3567
    functionName: HUF_readStats_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - HUF_readStats_body_bmi2
    - HUF_readStats_body_default
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, U32* rankStats,\n
      \                    U32* nbSymbolsPtr, U32* tableLogPtr,\n                     const
      void* src, size_t srcSize,\n                     void* workSpace, size_t wkspSize,\n
      \                    int flags)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3593,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3594,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3595,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3596,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3597,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3598,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3599,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3600,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3601,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3602,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3603,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3604,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3605,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3606,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3607,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3608,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3609,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3610,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3611,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3612,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3613,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3614,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3615,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3616,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3617,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3618,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3619,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3620,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3622,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3623,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3624,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3625,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3626,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3627,1
    - Dst: PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 1
    argNames:
    - code
    argTypes:
    - ERR_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3632
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3632
    functionName: ERR_getErrorString
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - PREFIX
    linkageType: ''
    returnType: char
    signature: char * ERR_getErrorString(ERR_enum code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3667
    functionDepth: 0
    functionLinenumber: 3667
    functionLinenumberEnd: 3668
    functionName: FSE_STATIC_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_STATIC_ASSERT(c)
  - 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: 3689
      start: 3688
    functionDepth: 0
    functionLinenumber: 3688
    functionLinenumberEnd: 3689
    functionName: FSE_CAT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CAT(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: 3690
      start: 3689
    functionDepth: 0
    functionLinenumber: 3689
    functionLinenumberEnd: 3690
    functionName: FSE_FUNCTION_NAME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_FUNCTION_NAME(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: 3691
      start: 3690
    functionDepth: 0
    functionLinenumber: 3690
    functionLinenumberEnd: 3691
    functionName: FSE_TYPE_NAME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_TYPE_NAME(X,Y)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FSE_BUILD_DTABLE_WKSP_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3704,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3704,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3705,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3706,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3722,1
    - Dst: FSE_TABLESTEP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3728,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3742,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3744,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3758,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3767,1
    - Dst: FSE_TABLESTEP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3771,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3780,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3788,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 6
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    - workSpace
    - wkspSize
    argTypes:
    - FSE_DTable*
    - short*
    - unsigned
    - unsigned
    - void*
    - size_t
    assertStmts:
    - condition: (tableSize % unroll == 0)
      pos:
        line_end: 3757
        line_start: 3757
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (position == 0)
      pos:
        line_end: 3766
        line_start: 3766
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 3793
      start: 3692
    functionDepth: 4
    functionLinenumber: 3692
    functionLinenumberEnd: 3793
    functionName: FSE_buildDTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_highbit32
    - ERROR
    - MEM_write64
    - FSE_TABLESTEP
    - FSE_BUILD_DTABLE_WKSP_SIZE
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildDTable_internal(FSE_DTable* dt, const short* normalizedCounter,
      unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_buildDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    - workSpace
    - wkspSize
    argTypes:
    - FSE_DTable*
    - short*
    - unsigned
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3798
      start: 3795
    functionDepth: 5
    functionLinenumber: 3795
    functionLinenumberEnd: 3798
    functionName: FSE_buildDTable_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_buildDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildDTable_wksp(FSE_DTable* dt, const short* normalizedCounter,
      unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3822,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3822,1
    - Dst: FSE_initDState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3824,1
    - Dst: FSE_initDState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3825,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3830,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3831,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3834,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3836,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3839,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3841,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3844,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3846,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3852,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3853,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3854,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3855,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3859,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3860,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3861,1
    - Dst: FSE_GETSYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3862,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3866,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 6
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - dt
    - fast
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - FSE_DTable*
    - unsigned
    assertStmts:
    - condition: (op >= ostart)
      pos:
        line_end: 3865
        line_start: 3865
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 3868
      start: 3807
    functionDepth: 5
    functionLinenumber: 3807
    functionLinenumberEnd: 3868
    functionName: FSE_decompress_usingDTable_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - CHECK_F
    - BIT_reloadDStream
    - BIT_initDStream
    - FSE_GETSYMBOL
    - ERROR
    - FSE_initDState
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE FSE_decompress_usingDTable_generic(\n          void*
      dst, size_t maxDstSize,\n    const void* cSrc, size_t cSrcSize,\n    const FSE_DTable*
      dt, const unsigned fast)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - statePtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3827
    functionDepth: 0
    functionLinenumber: 3827
    functionLinenumberEnd: 3828
    functionName: FSE_GETSYMBOL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_GETSYMBOL(statePtr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FSE_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3889,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3890,1
    - Dst: FSE_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3893,1
    - Dst: FSE_readNCount_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3897,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3898,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3899,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3900,1
    - Dst: FSE_DECOMPRESS_WKSP_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3905,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3905,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3906,1
    - Dst: FSE_DTABLE_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3906,1
    - Dst: FSE_DTABLE_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3907,1
    - Dst: FSE_DTABLE_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3908,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3910,1
    - Dst: FSE_buildDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3910,1
    - Dst: FSE_decompress_usingDTable_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3918,1
    - Dst: FSE_decompress_usingDTable_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - dst
    - dstCapacity
    - cSrc
    - cSrcSize
    - maxLog
    - workSpace
    - wkspSize
    - bmi2
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (NCountLength <= cSrcSize)
      pos:
        line_end: 3899
        line_start: 3899
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog) <= wkspSize)
      pos:
        line_end: 3905
        line_start: 3905
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 3921
      start: 3875
    functionDepth: 7
    functionLinenumber: 3875
    functionLinenumberEnd: 3921
    functionName: FSE_decompress_wksp_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - CHECK_F
    - FSE_readNCount_bmi2
    - FSE_isError
    - ERROR
    - FSE_decompress_usingDTable_generic
    - FSE_STATIC_ASSERT
    - FSE_DECOMPRESS_WKSP_SIZE
    - FSE_buildDTable_internal
    - assert
    - FSE_DTABLE_SIZE
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE FSE_decompress_wksp_body(\n        void* dst,
      size_t dstCapacity,\n        const void* cSrc, size_t cSrcSize,\n        unsigned
      maxLog, void* workSpace, size_t wkspSize,\n        int bmi2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_decompress_wksp_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - dstCapacity
    - cSrc
    - cSrcSize
    - maxLog
    - workSpace
    - wkspSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3927
      start: 3924
    functionDepth: 8
    functionLinenumber: 3924
    functionLinenumberEnd: 3927
    functionName: FSE_decompress_wksp_body_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_decompress_wksp_body
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_decompress_wksp_body_default(void* dst, size_t dstCapacity,
      const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t
      wkspSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_decompress_wksp_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dst
    - dstCapacity
    - cSrc
    - cSrcSize
    - maxLog
    - workSpace
    - wkspSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3933
      start: 3930
    functionDepth: 8
    functionLinenumber: 3930
    functionLinenumberEnd: 3933
    functionName: FSE_decompress_wksp_body_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_decompress_wksp_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: BMI2_TARGET_ATTRIBUTE FSE_decompress_wksp_body_bmi2(void* dst, size_t
      dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace,
      size_t wkspSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSE_decompress_wksp_body_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3940,1
    - Dst: FSE_decompress_wksp_body_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:3944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - dst
    - dstCapacity
    - cSrc
    - cSrcSize
    - maxLog
    - workSpace
    - wkspSize
    - bmi2
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3936
    functionDepth: 9
    functionLinenumber: 3936
    functionLinenumberEnd: 3945
    functionName: FSE_decompress_wksp_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - FSE_decompress_wksp_body_bmi2
    - FSE_decompress_wksp_body_default
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const
      void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize,
      int bmi2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 4012
    functionDepth: 0
    functionLinenumber: 4012
    functionLinenumberEnd: 4013
    functionName: ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 4017
    functionDepth: 0
    functionLinenumber: 4017
    functionLinenumberEnd: 4018
    functionName: ZSTD_pthread_mutex_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4019
      start: 4018
    functionDepth: 0
    functionLinenumber: 4018
    functionLinenumberEnd: 4019
    functionName: ZSTD_pthread_mutex_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4020
      start: 4019
    functionDepth: 0
    functionLinenumber: 4019
    functionLinenumberEnd: 4020
    functionName: ZSTD_pthread_mutex_lock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_lock(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 4020
    functionDepth: 0
    functionLinenumber: 4020
    functionLinenumberEnd: 4021
    functionName: ZSTD_pthread_mutex_unlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_unlock(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: 4025
      start: 4024
    functionDepth: 0
    functionLinenumber: 4024
    functionLinenumberEnd: 4025
    functionName: ZSTD_pthread_cond_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4026
      start: 4025
    functionDepth: 0
    functionLinenumber: 4025
    functionLinenumberEnd: 4026
    functionName: ZSTD_pthread_cond_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4027
      start: 4026
    functionDepth: 0
    functionLinenumber: 4026
    functionLinenumberEnd: 4027
    functionName: ZSTD_pthread_cond_wait
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_wait(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: 4028
      start: 4027
    functionDepth: 0
    functionLinenumber: 4027
    functionLinenumberEnd: 4028
    functionName: ZSTD_pthread_cond_signal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_signal(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4028
    functionDepth: 0
    functionLinenumber: 4028
    functionLinenumberEnd: 4029
    functionName: ZSTD_pthread_cond_broadcast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_broadcast(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: 4051
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4051
    functionName: ZSTD_pthread_mutex_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4052
      start: 4051
    functionDepth: 0
    functionLinenumber: 4051
    functionLinenumberEnd: 4052
    functionName: ZSTD_pthread_mutex_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4053
      start: 4052
    functionDepth: 0
    functionLinenumber: 4052
    functionLinenumberEnd: 4053
    functionName: ZSTD_pthread_mutex_lock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_lock(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4053
    functionDepth: 0
    functionLinenumber: 4053
    functionLinenumberEnd: 4054
    functionName: ZSTD_pthread_mutex_unlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_unlock(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: 4057
      start: 4056
    functionDepth: 0
    functionLinenumber: 4056
    functionLinenumberEnd: 4057
    functionName: ZSTD_pthread_cond_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4058
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4058
    functionName: ZSTD_pthread_cond_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4059
      start: 4058
    functionDepth: 0
    functionLinenumber: 4058
    functionLinenumberEnd: 4059
    functionName: ZSTD_pthread_cond_wait
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_wait(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: 4060
      start: 4059
    functionDepth: 0
    functionLinenumber: 4059
    functionLinenumberEnd: 4060
    functionName: ZSTD_pthread_cond_signal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_signal(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4061
      start: 4060
    functionDepth: 0
    functionLinenumber: 4060
    functionLinenumberEnd: 4061
    functionName: ZSTD_pthread_cond_broadcast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_broadcast(a)
  - 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: 4064
      start: 4063
    functionDepth: 0
    functionLinenumber: 4063
    functionLinenumberEnd: 4064
    functionName: ZSTD_pthread_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_create(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4064
    functionDepth: 0
    functionLinenumber: 4064
    functionLinenumberEnd: 4065
    functionName: ZSTD_pthread_join
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_join(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4077
    functionDepth: 0
    functionLinenumber: 4077
    functionLinenumberEnd: 4078
    functionName: ZSTD_pthread_mutex_lock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_lock(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4078
    functionDepth: 0
    functionLinenumber: 4078
    functionLinenumberEnd: 4079
    functionName: ZSTD_pthread_mutex_unlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_unlock(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: 4084
      start: 4083
    functionDepth: 0
    functionLinenumber: 4083
    functionLinenumberEnd: 4084
    functionName: ZSTD_pthread_cond_wait
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_wait(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: 4085
      start: 4084
    functionDepth: 0
    functionLinenumber: 4084
    functionLinenumberEnd: 4085
    functionName: ZSTD_pthread_cond_signal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_signal(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4086
      start: 4085
    functionDepth: 0
    functionLinenumber: 4085
    functionLinenumberEnd: 4086
    functionName: ZSTD_pthread_cond_broadcast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_broadcast(a)
  - 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: 4089
      start: 4088
    functionDepth: 0
    functionLinenumber: 4088
    functionLinenumberEnd: 4089
    functionName: ZSTD_pthread_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_create(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4090
      start: 4089
    functionDepth: 0
    functionLinenumber: 4089
    functionLinenumberEnd: 4090
    functionName: ZSTD_pthread_join
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_join(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: 4098
      start: 4097
    functionDepth: 0
    functionLinenumber: 4097
    functionLinenumberEnd: 4098
    functionName: ZSTD_pthread_mutex_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4099
      start: 4098
    functionDepth: 0
    functionLinenumber: 4098
    functionLinenumberEnd: 4099
    functionName: ZSTD_pthread_mutex_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4100
      start: 4099
    functionDepth: 0
    functionLinenumber: 4099
    functionLinenumberEnd: 4100
    functionName: ZSTD_pthread_mutex_lock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_lock(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4101
      start: 4100
    functionDepth: 0
    functionLinenumber: 4100
    functionLinenumberEnd: 4101
    functionName: ZSTD_pthread_mutex_unlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_mutex_unlock(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: 4104
      start: 4103
    functionDepth: 0
    functionLinenumber: 4103
    functionLinenumberEnd: 4104
    functionName: ZSTD_pthread_cond_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4105
      start: 4104
    functionDepth: 0
    functionLinenumber: 4104
    functionLinenumberEnd: 4105
    functionName: ZSTD_pthread_cond_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_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: 4106
      start: 4105
    functionDepth: 0
    functionLinenumber: 4105
    functionLinenumberEnd: 4106
    functionName: ZSTD_pthread_cond_wait
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_wait(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: 4107
      start: 4106
    functionDepth: 0
    functionLinenumber: 4106
    functionLinenumberEnd: 4107
    functionName: ZSTD_pthread_cond_signal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_signal(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4107
    functionDepth: 0
    functionLinenumber: 4107
    functionLinenumberEnd: 4108
    functionName: ZSTD_pthread_cond_broadcast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_pthread_cond_broadcast(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4159,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4161,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4162,1
    - Dst: start_routine
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4145
    functionDepth: 1
    functionLinenumber: 4145
    functionLinenumberEnd: 4168
    functionName: worker
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_pthread_cond_signal
    - ZSTD_pthread_mutex_lock
    - start_routine
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: unsigned
    signature: unsigned worker(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4184,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4188,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4190,1
    - Dst: _beginthreadex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4195,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4197,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4198,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4203,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4205,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4207,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4208,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - thread
    - unused
    - (*start_routine) (void*)
    - arg
    argTypes:
    - ZSTD_pthread_t*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4212
      start: 4170
    functionDepth: 1
    functionLinenumber: 4170
    functionLinenumberEnd: 4212
    functionName: ZSTD_pthread_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_cond_destroy
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_destroy
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_wait
    - _beginthreadex
    - ZSTD_pthread_cond_init
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: "int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused,\n
      \           void* (*start_routine) (void*), void* arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4220,1
    - Dst: CloseHandle
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4221,1
    - Dst: GetLastError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - thread
    argTypes:
    - ZSTD_pthread_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4231
      start: 4214
    functionDepth: 0
    functionLinenumber: 4214
    functionLinenumberEnd: 4231
    functionName: ZSTD_pthread_join
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WaitForSingleObject
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int ZSTD_pthread_join(ZSTD_pthread_t thread)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4242,1
    - Dst: ZSTD_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4243,1
    - Dst: pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mutex
    - attr
    argTypes:
    - ZSTD_pthread_mutex_t*
    - pthread_mutexattr_t*
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 4241
        line_start: 4241
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 4247
      start: 4240
    functionDepth: 1
    functionLinenumber: 4240
    functionLinenumberEnd: 4247
    functionName: ZSTD_pthread_mutex_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - pthread_mutex_init
    - ZSTD_malloc
    linkageType: ''
    returnType: int
    signature: int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t
      const* attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4251,1
    - Dst: pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4255,1
    - Dst: ZSTD_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - ZSTD_pthread_mutex_t*
    assertStmts:
    - condition: (mutex != NULL)
      pos:
        line_end: 4250
        line_start: 4250
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 4259
      start: 4249
    functionDepth: 1
    functionLinenumber: 4249
    functionLinenumberEnd: 4259
    functionName: ZSTD_pthread_mutex_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - ZSTD_free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: int
    signature: int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4263,1
    - Dst: ZSTD_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4264,1
    - Dst: pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cond
    - attr
    argTypes:
    - ZSTD_pthread_cond_t*
    - pthread_condattr_t*
    assertStmts:
    - condition: (cond != NULL)
      pos:
        line_end: 4262
        line_start: 4262
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 4268
      start: 4261
    functionDepth: 1
    functionLinenumber: 4261
    functionLinenumberEnd: 4268
    functionName: ZSTD_pthread_cond_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - pthread_cond_init
    - ZSTD_malloc
    linkageType: ''
    returnType: int
    signature: int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t
      const* attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4272,1
    - Dst: pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4276,1
    - Dst: ZSTD_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:4277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cond
    argTypes:
    - ZSTD_pthread_cond_t*
    assertStmts:
    - condition: (cond != NULL)
      pos:
        line_end: 4271
        line_start: 4271
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 4280
      start: 4270
    functionDepth: 1
    functionLinenumber: 4270
    functionLinenumberEnd: 4280
    functionName: ZSTD_pthread_cond_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - ZSTD_free
    - pthread_cond_destroy
    linkageType: ''
    returnType: int
    signature: int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4376
      start: 4375
    functionDepth: 0
    functionLinenumber: 4375
    functionLinenumberEnd: 4376
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4377
    functionDepth: 0
    functionLinenumber: 4377
    functionLinenumberEnd: 4378
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4379
    functionDepth: 0
    functionLinenumber: 4379
    functionLinenumberEnd: 4380
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4381
    functionDepth: 0
    functionLinenumber: 4381
    functionLinenumberEnd: 4382
    functionName: ZSTD_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4433
    functionDepth: 0
    functionLinenumber: 4433
    functionLinenumberEnd: 4434
    functionName: ZSTD_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4434
    functionDepth: 0
    functionLinenumber: 4434
    functionLinenumberEnd: 4435
    functionName: ZSTD_EXPAND_AND_QUOTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_EXPAND_AND_QUOTE(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - format
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5537
      start: 5536
    functionDepth: 0
    functionLinenumber: 5536
    functionLinenumberEnd: 5537
    functionName: ZSTD_FRAMEHEADERSIZE_PREFIX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FRAMEHEADERSIZE_PREFIX(format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - format
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5538
      start: 5537
    functionDepth: 0
    functionLinenumber: 5537
    functionLinenumberEnd: 5538
    functionName: ZSTD_FRAMEHEADERSIZE_MIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FRAMEHEADERSIZE_MIN(format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - originalSize
    - ','
    - blockSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5851
      start: 5850
    functionDepth: 0
    functionLinenumber: 5850
    functionLinenumberEnd: 5851
    functionName: ZSTD_DECOMPRESSION_MARGIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_DECOMPRESSION_MARGIN(originalSize, blockSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMem::customAlloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7416,1
    - Dst: ZSTD_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - size
    - customMem
    argTypes:
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7418
      start: 7413
    functionDepth: 1
    functionLinenumber: 7413
    functionLinenumberEnd: 7418
    functionName: ZSTD_customMalloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMem::customAlloc
    - ZSTD_malloc
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_customMalloc(size_t size, ZSTD_customMem customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMem::customAlloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7425,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7426,1
    - Dst: ZSTD_calloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - size
    - customMem
    argTypes:
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7420
    functionDepth: 1
    functionLinenumber: 7420
    functionLinenumberEnd: 7430
    functionName: ZSTD_customCalloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_customMem::customAlloc
    - ZSTD_calloc
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_customCalloc(size_t size, ZSTD_customMem customMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMem::customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7436,1
    - Dst: ZSTD_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - customMem
    argTypes:
    - void*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7440
      start: 7432
    functionDepth: 1
    functionLinenumber: 7432
    functionLinenumberEnd: 7440
    functionName: ZSTD_customFree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMem::customFree
    - ZSTD_free
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_customFree(void* ptr, ZSTD_customMem customMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7593,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7601,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7604,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7612,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7613,1
    - Dst: POOL_job::function
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7615,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7618,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7620,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7621,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 7623
        line_start: 7623
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7625
      start: 7588
    functionDepth: 1
    functionLinenumber: 7588
    functionLinenumberEnd: 7625
    functionName: POOL_thread
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - assert
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_wait
    - POOL_job::function
    - ZSTD_pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void * POOL_thread(void* opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: POOL_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numThreads
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7630
      start: 7628
    functionDepth: 1
    functionLinenumber: 7628
    functionLinenumberEnd: 7630
    functionName: ZSTD_createThreadPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - POOL_create
    linkageType: ''
    returnType: POOL_ctx
    signature: POOL_ctx * ZSTD_createThreadPool(size_t numThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: POOL_create_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numThreads
    - queueSize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7634
      start: 7632
    functionDepth: 1
    functionLinenumber: 7632
    functionLinenumberEnd: 7634
    functionName: POOL_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - POOL_create_advanced
    linkageType: ''
    returnType: POOL_ctx
    signature: POOL_ctx * POOL_create(size_t numThreads, size_t queueSize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7643,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7650,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7657,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7658,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7659,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7660,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7664,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7668,1
    - Dst: ZSTD_pthread_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7672,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7674,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - numThreads
    - queueSize
    - customMem
    argTypes:
    - size_t
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7681
      start: 7636
    functionDepth: 2
    functionLinenumber: 7636
    functionLinenumberEnd: 7681
    functionName: POOL_create_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_pthread_create
    - ZSTD_customCalloc
    - ZSTD_pthread_cond_init
    - POOL_free
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: POOL_ctx
    signature: "POOL_ctx * POOL_create_advanced(size_t numThreads, size_t queueSize,\n
      \                              ZSTD_customMem customMem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7688,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7690,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7692,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7693,1
    - Dst: ZSTD_pthread_join
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7699
      start: 7686
    functionDepth: 1
    functionLinenumber: 7686
    functionLinenumberEnd: 7699
    functionName: POOL_join
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_join
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: void POOL_join(POOL_ctx* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: POOL_join
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7703,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7704,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7705,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7706,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7707,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7708,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7710
      start: 7701
    functionDepth: 2
    functionLinenumber: 7701
    functionLinenumberEnd: 7710
    functionName: POOL_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZSTD_pthread_cond_destroy
    - POOL_join
    - ZSTD_pthread_mutex_destroy
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void POOL_free(POOL_ctx *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7716,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7718,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7721
      start: 7715
    functionDepth: 1
    functionLinenumber: 7715
    functionLinenumberEnd: 7721
    functionName: POOL_joinJobs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_cond_wait
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void POOL_joinJobs(POOL_ctx* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pool
    argTypes:
    - ZSTD_threadPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7725
      start: 7723
    functionDepth: 3
    functionLinenumber: 7723
    functionLinenumberEnd: 7725
    functionName: ZSTD_freeThreadPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - POOL_free
    linkageType: ''
    returnType: void
    signature: void ZSTD_freeThreadPool (ZSTD_threadPool* pool)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7732
      start: 7727
    functionDepth: 0
    functionLinenumber: 7727
    functionLinenumberEnd: 7732
    functionName: POOL_sizeof
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t POOL_sizeof(const POOL_ctx* ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7744,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7747,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7748,1
    - Dst: ZSTD_pthread_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ctx
    - numThreads
    argTypes:
    - POOL_ctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7762
      start: 7736
    functionDepth: 2
    functionLinenumber: 7736
    functionLinenumberEnd: 7762
    functionName: POOL_resize_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customCalloc
    - ZSTD_pthread_create
    - ZSTD_memcpy
    - ZSTD_customFree
    linkageType: ''
    returnType: int
    signature: int POOL_resize_internal(POOL_ctx* ctx, size_t numThreads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7769,1
    - Dst: POOL_resize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7770,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7771,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - numThreads
    argTypes:
    - POOL_ctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7774
      start: 7765
    functionDepth: 3
    functionLinenumber: 7765
    functionLinenumberEnd: 7774
    functionName: POOL_resize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - POOL_resize_internal
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_broadcast
    linkageType: ''
    returnType: int
    signature: int POOL_resize(POOL_ctx* ctx, size_t numThreads)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7789
      start: 7782
    functionDepth: 0
    functionLinenumber: 7782
    functionLinenumberEnd: 7789
    functionName: isQueueFull
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isQueueFull(POOL_ctx const* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7798,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - function
    - opaque
    argTypes:
    - POOL_ctx*
    - POOL_function
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 7797
        line_start: 7797
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7805
      start: 7792
    functionDepth: 1
    functionLinenumber: 7792
    functionLinenumberEnd: 7805
    functionName: POOL_add_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_pthread_cond_signal
    linkageType: ''
    returnType: void
    signature: void POOL_add_internal(POOL_ctx* ctx, POOL_function function, void
      *opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7809,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7810,1
    - Dst: isQueueFull
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7812,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7813,1
    - Dst: POOL_add_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7815,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - function
    - opaque
    argTypes:
    - POOL_ctx*
    - POOL_function
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 7808
        line_start: 7808
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7817
      start: 7807
    functionDepth: 2
    functionLinenumber: 7807
    functionLinenumberEnd: 7817
    functionName: POOL_add
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_wait
    - POOL_add_internal
    - isQueueFull
    - assert
    linkageType: ''
    returnType: void
    signature: void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7822,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7823,1
    - Dst: isQueueFull
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7824,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7825,1
    - Dst: POOL_add_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7828,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - function
    - opaque
    argTypes:
    - POOL_ctx*
    - POOL_function
    - void*
    assertStmts:
    - condition: (ctx != NULL)
      pos:
        line_end: 7821
        line_start: 7821
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7831
      start: 7820
    functionDepth: 2
    functionLinenumber: 7820
    functionLinenumberEnd: 7831
    functionName: POOL_tryAdd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    - POOL_add_internal
    - isQueueFull
    - assert
    linkageType: ''
    returnType: int
    signature: int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: POOL_create_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numThreads
    - queueSize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7849
      start: 7847
    functionDepth: 3
    functionLinenumber: 7847
    functionLinenumberEnd: 7849
    functionName: POOL_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - POOL_create_advanced
    linkageType: ''
    returnType: POOL_ctx
    signature: POOL_ctx * POOL_create(size_t numThreads, size_t queueSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - numThreads
    - queueSize
    - customMem
    argTypes:
    - size_t
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7858
      start: 7851
    functionDepth: 0
    functionLinenumber: 7851
    functionLinenumberEnd: 7858
    functionName: POOL_create_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: POOL_ctx
    signature: 'POOL_ctx *

      POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD_customMem customMem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts:
    - condition: (!ctx || ctx == &g_poolCtx)
      pos:
        line_end: 7860
        line_start: 7860
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7863
      start: 7860
    functionDepth: 1
    functionLinenumber: 7860
    functionLinenumberEnd: 7863
    functionName: POOL_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void POOL_free(POOL_ctx* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts:
    - condition: (!ctx || ctx == &g_poolCtx)
      pos:
        line_end: 7865
        line_start: 7865
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7868
      start: 7865
    functionDepth: 1
    functionLinenumber: 7865
    functionLinenumberEnd: 7868
    functionName: POOL_joinJobs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void POOL_joinJobs(POOL_ctx* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - numThreads
    argTypes:
    - POOL_ctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7873
      start: 7870
    functionDepth: 0
    functionLinenumber: 7870
    functionLinenumberEnd: 7873
    functionName: POOL_resize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int POOL_resize(POOL_ctx* ctx, size_t numThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - function
    - opaque
    argTypes:
    - POOL_ctx*
    - POOL_function
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7878
      start: 7875
    functionDepth: 0
    functionLinenumber: 7875
    functionLinenumberEnd: 7878
    functionName: POOL_add
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - function
    linkageType: ''
    returnType: void
    signature: void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: function
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - function
    - opaque
    argTypes:
    - POOL_ctx*
    - POOL_function
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7884
      start: 7880
    functionDepth: 0
    functionLinenumber: 7880
    functionLinenumberEnd: 7884
    functionName: POOL_tryAdd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - function
    linkageType: ''
    returnType: int
    signature: int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - POOL_ctx*
    assertStmts:
    - condition: (ctx == &g_poolCtx)
      pos:
        line_end: 7887
        line_start: 7887
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 7890
      start: 7886
    functionDepth: 1
    functionLinenumber: 7886
    functionLinenumberEnd: 7890
    functionName: POOL_sizeof
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t POOL_sizeof(const POOL_ctx* ctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7975,1
    - Dst: __cpuid
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7979,1
    - Dst: __cpuidex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:7984,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8079
      start: 7967
    functionDepth: 0
    functionLinenumber: 7967
    functionLinenumberEnd: 8079
    functionName: ZSTD_cpuid_t::ZSTD_cpuid
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - __cpuidex
    - __cpuid
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cpuid_t ZSTD_cpuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - r
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8085
      start: 8081
    functionDepth: 0
    functionLinenumber: 8081
    functionLinenumberEnd: 8085
    functionName: X
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: X(name, r, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8088
      start: 8087
    functionDepth: 0
    functionLinenumber: 8087
    functionLinenumberEnd: 8088
    functionName: C
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8119
      start: 8118
    functionDepth: 0
    functionLinenumber: 8118
    functionLinenumberEnd: 8119
    functionName: D
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8152
      start: 8151
    functionDepth: 0
    functionLinenumber: 8151
    functionLinenumberEnd: 8152
    functionName: B
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8178
      start: 8177
    functionDepth: 0
    functionLinenumber: 8177
    functionLinenumberEnd: 8178
    functionName: C
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(name, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - Id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8605
      start: 8604
    functionDepth: 0
    functionLinenumber: 8604
    functionLinenumberEnd: 8605
    functionName: XXH_IPREF
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_IPREF(Id)
  - 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: 8644
      start: 8643
    functionDepth: 0
    functionLinenumber: 8643
    functionLinenumberEnd: 8644
    functionName: XXH_CAT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_CAT(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: 8645
      start: 8644
    functionDepth: 0
    functionLinenumber: 8644
    functionLinenumberEnd: 8645
    functionName: XXH_NAME2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_NAME2(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8961
      start: 8960
    functionDepth: 0
    functionLinenumber: 8960
    functionLinenumberEnd: 8961
    functionName: XXH_HAS_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8963
      start: 8962
    functionDepth: 0
    functionLinenumber: 8962
    functionLinenumberEnd: 8963
    functionName: XXH_HAS_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8979
      start: 8978
    functionDepth: 0
    functionLinenumber: 8978
    functionLinenumberEnd: 8979
    functionName: XXH_HAS_C_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8981
      start: 8980
    functionDepth: 0
    functionLinenumber: 8980
    functionLinenumberEnd: 8981
    functionName: XXH_HAS_C_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_C_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8987
      start: 8986
    functionDepth: 0
    functionLinenumber: 8986
    functionLinenumberEnd: 8987
    functionName: XXH_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8989
      start: 8988
    functionDepth: 0
    functionLinenumber: 8988
    functionLinenumberEnd: 8989
    functionName: XXH_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_CPP_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9837
      start: 9836
    functionDepth: 0
    functionLinenumber: 9836
    functionLinenumberEnd: 9837
    functionName: XXH_ALIGN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9840
      start: 9839
    functionDepth: 0
    functionLinenumber: 9839
    functionLinenumberEnd: 9840
    functionName: XXH_ALIGN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9842
      start: 9841
    functionDepth: 0
    functionLinenumber: 9841
    functionLinenumberEnd: 9842
    functionName: XXH_ALIGN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9844
      start: 9843
    functionDepth: 0
    functionLinenumber: 9843
    functionLinenumberEnd: 9844
    functionName: XXH_ALIGN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - align
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9853
      start: 9852
    functionDepth: 0
    functionLinenumber: 9852
    functionLinenumberEnd: 9853
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN_MEMBER(align, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - align
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9855
      start: 9854
    functionDepth: 0
    functionLinenumber: 9854
    functionLinenumberEnd: 9855
    functionName: XXH_ALIGN_MEMBER
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ALIGN_MEMBER(align, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - XXH3_state_ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9946
      start: 9940
    functionDepth: 0
    functionLinenumber: 9940
    functionLinenumberEnd: 9946
    functionName: XXH3_INITSTATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3_INITSTATE(XXH3_state_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10480
      start: 10480
    functionDepth: 0
    functionLinenumber: 10480
    functionLinenumberEnd: 10480
    functionName: XXH_malloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_CONSTF
    signature: XXH_CONSTF * XXH_malloc(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10481
      start: 10481
    functionDepth: 0
    functionLinenumber: 10481
    functionLinenumberEnd: 10481
    functionName: XXH_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XXH_free(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10495
      start: 10495
    functionDepth: 0
    functionLinenumber: 10495
    functionLinenumberEnd: 10495
    functionName: XXH_malloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: XXH_MALLOCF
    signature: XXH_MALLOCF * XXH_malloc(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10501
      start: 10501
    functionDepth: 0
    functionLinenumber: 10501
    functionLinenumberEnd: 10501
    functionName: XXH_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void XXH_free(void* p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10514
      start: 10511
    functionDepth: 1
    functionLinenumber: 10511
    functionLinenumberEnd: 10514
    functionName: XXH_memcpy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void * XXH_memcpy(void* dest, const void* src, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10578
      start: 10577
    functionDepth: 0
    functionLinenumber: 10577
    functionLinenumberEnd: 10578
    functionName: XXH_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10581
      start: 10580
    functionDepth: 0
    functionLinenumber: 10580
    functionLinenumberEnd: 10581
    functionName: XXH_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10583
      start: 10582
    functionDepth: 0
    functionLinenumber: 10582
    functionLinenumberEnd: 10583
    functionName: XXH_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10590
      start: 10589
    functionDepth: 0
    functionLinenumber: 10589
    functionLinenumberEnd: 10590
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10592
      start: 10591
    functionDepth: 0
    functionLinenumber: 10591
    functionLinenumberEnd: 10592
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10594
      start: 10593
    functionDepth: 0
    functionLinenumber: 10593
    functionLinenumberEnd: 10594
    functionName: XXH_STATIC_ASSERT_WITH_MESSAGE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT_WITH_MESSAGE(c,m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10596
      start: 10595
    functionDepth: 0
    functionLinenumber: 10595
    functionLinenumberEnd: 10596
    functionName: XXH_STATIC_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10616
      start: 10615
    functionDepth: 0
    functionLinenumber: 10615
    functionLinenumberEnd: 10616
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10618
      start: 10617
    functionDepth: 0
    functionLinenumber: 10617
    functionLinenumberEnd: 10618
    functionName: XXH_COMPILER_GUARD
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10624
      start: 10623
    functionDepth: 0
    functionLinenumber: 10623
    functionLinenumberEnd: 10624
    functionName: XXH_COMPILER_GUARD_CLANG_NEON
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD_CLANG_NEON(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10626
      start: 10625
    functionDepth: 0
    functionLinenumber: 10625
    functionLinenumberEnd: 10626
    functionName: XXH_COMPILER_GUARD_CLANG_NEON
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_COMPILER_GUARD_CLANG_NEON(var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10715
      start: 10715
    functionDepth: 0
    functionLinenumber: 10715
    functionLinenumberEnd: 10715
    functionName: XXH_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10733
      start: 10729
    functionDepth: 0
    functionLinenumber: 10729
    functionLinenumberEnd: 10733
    functionName: XXH_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10746
      start: 10741
    functionDepth: 2
    functionLinenumber: 10741
    functionLinenumberEnd: 10746
    functionName: XXH_read32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_read32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10796
      start: 10788
    functionDepth: 0
    functionLinenumber: 10788
    functionLinenumberEnd: 10796
    functionName: XXH_isLittleEndian
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XXH_isLittleEndian(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10811
      start: 10810
    functionDepth: 0
    functionLinenumber: 10810
    functionLinenumberEnd: 10811
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_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: 10813
      start: 10812
    functionDepth: 0
    functionLinenumber: 10812
    functionLinenumberEnd: 10813
    functionName: XXH_HAS_BUILTIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_BUILTIN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10846
      start: 10845
    functionDepth: 0
    functionLinenumber: 10845
    functionLinenumberEnd: 10846
    functionName: XXH_UNREACHABLE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10849
      start: 10848
    functionDepth: 0
    functionLinenumber: 10848
    functionLinenumberEnd: 10849
    functionName: XXH_UNREACHABLE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10856
      start: 10855
    functionDepth: 0
    functionLinenumber: 10855
    functionLinenumberEnd: 10856
    functionName: XXH_ASSUME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSUME(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10858
      start: 10857
    functionDepth: 0
    functionLinenumber: 10857
    functionLinenumberEnd: 10858
    functionName: XXH_ASSUME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_ASSUME(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10880
      start: 10879
    functionDepth: 0
    functionLinenumber: 10879
    functionLinenumberEnd: 10880
    functionName: XXH_rotl32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl32(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10881
      start: 10880
    functionDepth: 0
    functionLinenumber: 10880
    functionLinenumberEnd: 10881
    functionName: XXH_rotl64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl64(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10883
      start: 10882
    functionDepth: 0
    functionLinenumber: 10882
    functionLinenumberEnd: 10883
    functionName: XXH_rotl32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl32(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10884
      start: 10883
    functionDepth: 0
    functionLinenumber: 10883
    functionLinenumberEnd: 10884
    functionName: XXH_rotl64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_rotl64(x,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10905
      start: 10899
    functionDepth: 0
    functionLinenumber: 10899
    functionLinenumberEnd: 10905
    functionName: XXH_swap32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_swap32 (xxh_u32 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10936
      start: 10929
    functionDepth: 0
    functionLinenumber: 10929
    functionLinenumberEnd: 10936
    functionName: XXH_readLE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10945
      start: 10938
    functionDepth: 0
    functionLinenumber: 10938
    functionLinenumberEnd: 10945
    functionName: XXH_readBE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readBE32(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10950,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10950,1
    - Dst: XXH_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10951
      start: 10948
    functionDepth: 1
    functionLinenumber: 10948
    functionLinenumberEnd: 10951
    functionName: XXH_readLE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap32
    - XXH_read32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10955,1
    - Dst: XXH_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10955,1
    - Dst: XXH_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10956
      start: 10953
    functionDepth: 1
    functionLinenumber: 10953
    functionLinenumberEnd: 10956
    functionName: XXH_readBE32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap32
    - XXH_read32
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH_readBE32(const void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10963,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:10965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10967
      start: 10959
    functionDepth: 1
    functionLinenumber: 10959
    functionLinenumberEnd: 10967
    functionName: XXH_readLE32_align
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap32
    - XXH_readLE32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE32_align(const void* ptr, XXH_alignment
      align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10974
      start: 10974
    functionDepth: 0
    functionLinenumber: 10974
    functionLinenumberEnd: 10974
    functionName: XXH_versionNumber
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_PUBLIC_API unsigned
    signature: XXH_PUBLIC_API unsigned XXH_versionNumber (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11017,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11056,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u32
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11059
      start: 11014
    functionDepth: 1
    functionLinenumber: 11014
    functionLinenumberEnd: 11059
    functionName: XXH32_round
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH_rotl32
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - xxh_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11079
      start: 11071
    functionDepth: 0
    functionLinenumber: 11071
    functionLinenumberEnd: 11079
    functionName: XXH32_avalanche
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u32
    signature: xxh_u32 XXH32_avalanche(xxh_u32 hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11082
      start: 11081
    functionDepth: 0
    functionLinenumber: 11081
    functionLinenumberEnd: 11082
    functionName: XXH_get32bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get32bits(p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11112,1
    - Dst: XXH32_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11125,1
    - Dst: XXH32_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11133,1
    - Dst: XXH32_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11141,1
    - Dst: XXH32_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11150,1
    - Dst: XXH32_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11164,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 70
    argCount: 4
    argNames:
    - hash
    - ptr
    - len
    - align
    argTypes:
    - xxh_u32
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11169
      start: 11098
    functionDepth: 1
    functionLinenumber: 11098
    functionLinenumberEnd: 11169
    functionName: XXH32_finalize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH32_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_PUREF
    signature: XXH_PUREF XXH32_finalize(xxh_u32 hash, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11192,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11203,1
    - Dst: XXH_get32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11203,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11204,1
    - Dst: XXH_get32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11204,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11205,1
    - Dst: XXH_get32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11205,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11206,1
    - Dst: XXH_get32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11206,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11209,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11209,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11210,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11210,1
    - Dst: XXH32_finalize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u32
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11218
      start: 11187
    functionDepth: 2
    functionLinenumber: 11187
    functionLinenumberEnd: 11218
    functionName: XXH32_endian_align
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH32_finalize
    - XXH_rotl32
    - XXH32_round
    - XXH_get32bits
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH32_endian_align(const xxh_u8* input, size_t len,
      xxh_u32 seed, XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH32_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11226,1
    - Dst: XXH32_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11227,1
    - Dst: XXH32_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11228,1
    - Dst: XXH32_endian_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11232,1
    - Dst: XXH32_endian_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - void*
    - size_t
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11237
      start: 11221
    functionDepth: 3
    functionLinenumber: 11221
    functionLinenumberEnd: 11237
    functionName: XXH32_hash_t
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH32_update
    - XXH32_endian_align
    - XXH32_reset
    - XXH32_digest
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_hash_t
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11247
      start: 11244
    functionDepth: 1
    functionLinenumber: 11244
    functionLinenumberEnd: 11247
    functionName: XXH32_state_t* XXH32_createState(void)
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_malloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11253
      start: 11249
    functionDepth: 1
    functionLinenumber: 11249
    functionLinenumberEnd: 11253
    functionName: XXH_errorcode::XXH32_freeState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstState
    - srcState
    argTypes:
    - XXH32_state_t*
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11259
      start: 11256
    functionDepth: 2
    functionLinenumber: 11256
    functionLinenumberEnd: 11259
    functionName: XXH32_copyState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t*
      srcState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11264,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - statePtr
    - seed
    argTypes:
    - XXH32_state_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11271
      start: 11262
    functionDepth: 1
    functionLinenumber: 11262
    functionLinenumberEnd: 11271
    functionName: XXH_errorcode::XXH32_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t
      seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11279,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11290,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11296,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11298,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11298,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11299,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11299,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11300,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11300,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11301,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11301,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11311,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11311,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11312,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11312,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11313,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11313,1
    - Dst: XXH32_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11314,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11314,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 3
    argNames:
    - state
    - input
    - len
    argTypes:
    - XXH32_state_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11326
      start: 11275
    functionDepth: 2
    functionLinenumber: 11275
    functionLinenumberEnd: 11326
    functionName: XXH_errorcode::XXH32_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    - XXH_readLE32
    - XXH_ASSERT
    - XXH32_round
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH32_update(XXH32_state_t* state, const void* input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11335,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11336,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11337,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11338,1
    - Dst: XXH32_finalize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - XXH32_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11346
      start: 11330
    functionDepth: 2
    functionLinenumber: 11330
    functionLinenumberEnd: 11346
    functionName: XXH32_hash_t::XXH32_digest
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH32_finalize
    - XXH_rotl32
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11354,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11355,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - hash
    argTypes:
    - XXH32_canonical_t*
    - XXH32_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11357
      start: 11352
    functionDepth: 2
    functionLinenumber: 11352
    functionLinenumberEnd: 11357
    functionName: XXH32_canonicalFromHash
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap32
    - XXH_memcpy
    - XXH_STATIC_ASSERT
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - XXH32_canonical_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11362
      start: 11359
    functionDepth: 1
    functionLinenumber: 11359
    functionLinenumberEnd: 11362
    functionName: XXH32_hash_t::XXH32_hashFromCanonical
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readBE32
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t*
      src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11394
      start: 11391
    functionDepth: 0
    functionLinenumber: 11391
    functionLinenumberEnd: 11394
    functionName: XXH_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11412
      start: 11408
    functionDepth: 0
    functionLinenumber: 11408
    functionLinenumberEnd: 11412
    functionName: XXH_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11425
      start: 11420
    functionDepth: 2
    functionLinenumber: 11420
    functionLinenumberEnd: 11425
    functionName: XXH_read64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_read64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11444
      start: 11434
    functionDepth: 0
    functionLinenumber: 11434
    functionLinenumberEnd: 11444
    functionName: XXH_swap64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_swap64(xxh_u64 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11462
      start: 11451
    functionDepth: 0
    functionLinenumber: 11451
    functionLinenumberEnd: 11462
    functionName: XXH_readLE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - memPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11475
      start: 11464
    functionDepth: 0
    functionLinenumber: 11464
    functionLinenumberEnd: 11475
    functionName: XXH_readBE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readBE64(const void* memPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11480,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11480,1
    - Dst: XXH_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11481
      start: 11478
    functionDepth: 1
    functionLinenumber: 11478
    functionLinenumberEnd: 11481
    functionName: XXH_readLE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_read64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64(const void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11485,1
    - Dst: XXH_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11485,1
    - Dst: XXH_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11486
      start: 11483
    functionDepth: 1
    functionLinenumber: 11483
    functionLinenumberEnd: 11486
    functionName: XXH_readBE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_read64
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH_readBE64(const void* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11493,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11496
      start: 11489
    functionDepth: 1
    functionLinenumber: 11489
    functionLinenumberEnd: 11496
    functionName: XXH_readLE64_align
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_readLE64_align(const void* ptr, XXH_alignment
      align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11527,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - acc
    - input
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11547
      start: 11524
    functionDepth: 1
    functionLinenumber: 11524
    functionLinenumberEnd: 11547
    functionName: XXH64_round
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH_rotl64
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - acc
    - val
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11555
      start: 11549
    functionDepth: 2
    functionLinenumber: 11549
    functionLinenumberEnd: 11555
    functionName: XXH64_mergeRound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_round
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11566
      start: 11558
    functionDepth: 0
    functionLinenumber: 11558
    functionLinenumberEnd: 11566
    functionName: XXH64_avalanche
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH64_avalanche(xxh_u64 hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11570
      start: 11569
    functionDepth: 0
    functionLinenumber: 11569
    functionLinenumberEnd: 11570
    functionName: XXH_get64bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_get64bits(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11589,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11592,1
    - Dst: XXH_get64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11592,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11595,1
    - Dst: XXH_get32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11599,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11601,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11606,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - hash
    - ptr
    - len
    - align
    argTypes:
    - xxh_u64
    - xxh_u8*
    - size_t
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11610
      start: 11586
    functionDepth: 2
    functionLinenumber: 11586
    functionLinenumberEnd: 11610
    functionName: XXH64_finalize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_get64bits
    - XXH_rotl64
    - XXH64_round
    - XXH64_avalanche
    - XXH_get32bits
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_PUREF
    signature: XXH_PUREF XXH64_finalize(xxh_u64 hash, const xxh_u8* ptr, size_t len,
      XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11634,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11645,1
    - Dst: XXH_get64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11645,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11646,1
    - Dst: XXH_get64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11646,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11647,1
    - Dst: XXH_get64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11647,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11648,1
    - Dst: XXH_get64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11648,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11651,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11651,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11651,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11651,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11652,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11653,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11654,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11655,1
    - Dst: XXH64_finalize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - input
    - len
    - seed
    - align
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u64
    - XXH_alignment
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11664
      start: 11630
    functionDepth: 3
    functionLinenumber: 11630
    functionLinenumberEnd: 11664
    functionName: XXH64_endian_align
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_get64bits
    - XXH_rotl64
    - XXH64_finalize
    - XXH64_round
    - XXH64_mergeRound
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH64_endian_align(const xxh_u8* input, size_t len,
      xxh_u64 seed, XXH_alignment align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11673,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11674,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11675,1
    - Dst: XXH64_endian_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11679,1
    - Dst: XXH64_endian_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11685
      start: 11668
    functionDepth: 4
    functionLinenumber: 11668
    functionLinenumberEnd: 11685
    functionName: XXH64_hash_t
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_update
    - XXH64_reset
    - XXH64_endian_align
    - XXH64_digest
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64 (XXH_NOESCAPE const void* input,
      size_t len, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11693
      start: 11690
    functionDepth: 1
    functionLinenumber: 11690
    functionLinenumberEnd: 11693
    functionName: XXH64_state_t* XXH64_createState(void)
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_malloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11699
      start: 11695
    functionDepth: 1
    functionLinenumber: 11695
    functionLinenumberEnd: 11699
    functionName: XXH_errorcode::XXH64_freeState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH64_state_t* dstState
    - srcState
    argTypes:
    - XXH_NOESCAPE
    - XXH64_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11705
      start: 11702
    functionDepth: 2
    functionLinenumber: 11702
    functionLinenumberEnd: 11705
    functionName: XXH64_copyState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState,
      const XXH64_state_t* srcState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11710,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - XXH64_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11717
      start: 11708
    functionDepth: 1
    functionLinenumber: 11708
    functionLinenumberEnd: 11717
    functionName: XXH_errorcode::XXH64_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t*
      statePtr, XXH64_hash_t seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11724,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11734,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11740,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11741,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11741,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11742,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11742,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11743,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11743,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11744,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11744,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11753,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11753,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11754,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11754,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11755,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11755,1
    - Dst: XXH64_round
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11756,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11756,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - XXH64_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11768
      start: 11720
    functionDepth: 2
    functionLinenumber: 11720
    functionLinenumberEnd: 11768
    functionName: XXH_errorcode::XXH64_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    - XXH64_round
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH64_update (XXH_NOESCAPE XXH64_state_t* state, XXH_NOESCAPE const void* input,
      size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11777,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11777,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11777,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11777,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11778,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11779,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11780,1
    - Dst: XXH64_mergeRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11781,1
    - Dst: XXH64_finalize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - XXH64_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11789
      start: 11772
    functionDepth: 3
    functionLinenumber: 11772
    functionLinenumberEnd: 11789
    functionName: XXH64_hash_t::XXH64_digest
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_mergeRound
    - XXH64_finalize
    - XXH_rotl64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64_digest(XXH_NOESCAPE const XXH64_state_t*
      state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11797,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11798,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - XXH64_canonical_t* dst
    - hash
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11800
      start: 11795
    functionDepth: 2
    functionLinenumber: 11795
    functionLinenumberEnd: 11800
    functionName: XXH64_canonicalFromHash
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_STATIC_ASSERT
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t*
      dst, XXH64_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:11805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - XXH64_canonical_t* src
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11806
      start: 11803
    functionDepth: 1
    functionLinenumber: 11803
    functionLinenumberEnd: 11806
    functionName: XXH64_hash_t::XXH64_hashFromCanonical
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const
      XXH64_canonical_t* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11844
      start: 11843
    functionDepth: 0
    functionLinenumber: 11843
    functionLinenumberEnd: 11844
    functionName: XXH_likely
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11845
      start: 11844
    functionDepth: 0
    functionLinenumber: 11844
    functionLinenumberEnd: 11845
    functionName: XXH_unlikely
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11847
      start: 11846
    functionDepth: 0
    functionLinenumber: 11846
    functionLinenumberEnd: 11847
    functionName: XXH_likely
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11848
      start: 11847
    functionDepth: 0
    functionLinenumber: 11847
    functionLinenumberEnd: 11848
    functionName: XXH_unlikely
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11859
      start: 11858
    functionDepth: 0
    functionLinenumber: 11858
    functionLinenumberEnd: 11859
    functionName: XXH_HAS_INCLUDE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_HAS_INCLUDE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12156
      start: 12153
    functionDepth: 0
    functionLinenumber: 12153
    functionLinenumberEnd: 12156
    functionName: XXH_vld1q_u64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vld1q_u64(void const* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u64_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12160,1
    - Dst: vld1q_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12158
    functionDepth: 0
    functionLinenumber: 12158
    functionLinenumberEnd: 12161
    functionName: XXH_vld1q_u64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vld1q_u8
    - vreinterpretq_u64_u8
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vld1q_u64(void const* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12179
      start: 12173
    functionDepth: 0
    functionLinenumber: 12173
    functionLinenumberEnd: 12179
    functionName: XXH_vmlal_low_u32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_high_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12185
      start: 12180
    functionDepth: 0
    functionLinenumber: 12180
    functionLinenumberEnd: 12185
    functionName: XXH_vmlal_high_u32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vmlal_high_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12191,1
    - Dst: vget_low_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12191,1
    - Dst: vget_low_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12192
      start: 12188
    functionDepth: 0
    functionLinenumber: 12188
    functionLinenumberEnd: 12192
    functionName: XXH_vmlal_low_u32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vget_low_u32
    - vmlal_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vmlal_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12198,1
    - Dst: vget_high_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12198,1
    - Dst: vget_high_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - lhs
    - rhs
    argTypes:
    - uint64x2_t
    - uint32x4_t
    - uint32x4_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12199
      start: 12195
    functionDepth: 0
    functionLinenumber: 12195
    functionLinenumberEnd: 12199
    functionName: XXH_vmlal_high_u32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vget_high_u32
    - vmlal_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs,
      uint32x4_t rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_perm
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - xxh_u64x2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12319
      start: 12314
    functionDepth: 0
    functionLinenumber: 12314
    functionLinenumberEnd: 12319
    functionName: XXH_vec_revb
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vec_perm
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_revb(xxh_u64x2 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12329,1
    - Dst: XXH_vec_revb
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12334
      start: 12326
    functionDepth: 2
    functionLinenumber: 12326
    functionLinenumberEnd: 12334
    functionName: XXH_vec_loadu
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    - XXH_vec_revb
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_loadu(const void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xxh_u32x4
    - xxh_u32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12359
      start: 12354
    functionDepth: 0
    functionLinenumber: 12354
    functionLinenumberEnd: 12359
    functionName: XXH_vec_mulo
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_mulo(xxh_u32x4 a, xxh_u32x4 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - xxh_u32x4
    - xxh_u32x4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12365
      start: 12360
    functionDepth: 0
    functionLinenumber: 12360
    functionLinenumberEnd: 12365
    functionName: XXH_vec_mule
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_vec_mule(xxh_u32x4 a, xxh_u32x4 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - acc
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12381
      start: 12370
    functionDepth: 0
    functionLinenumber: 12370
    functionLinenumberEnd: 12381
    functionName: ACCRND
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCRND(acc, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12387
      start: 12386
    functionDepth: 0
    functionLinenumber: 12386
    functionLinenumberEnd: 12387
    functionName: XXH_PREFETCH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12390
      start: 12389
    functionDepth: 0
    functionLinenumber: 12389
    functionLinenumberEnd: 12390
    functionName: XXH_PREFETCH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12393
      start: 12392
    functionDepth: 0
    functionLinenumber: 12392
    functionLinenumberEnd: 12393
    functionName: XXH_PREFETCH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12397
      start: 12396
    functionDepth: 0
    functionLinenumber: 12396
    functionLinenumberEnd: 12397
    functionName: XXH_PREFETCH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_PREFETCH(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12455
      start: 12451
    functionDepth: 0
    functionLinenumber: 12451
    functionLinenumberEnd: 12455
    functionName: XXH_mult32to64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64(xxh_u64 x, xxh_u64 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: 12458
      start: 12457
    functionDepth: 0
    functionLinenumber: 12457
    functionLinenumberEnd: 12458
    functionName: XXH_mult32to64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_mult32to64(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: 12467
      start: 12466
    functionDepth: 0
    functionLinenumber: 12466
    functionLinenumberEnd: 12467
    functionName: XXH_mult32to64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_mult32to64(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12519,1
    - Dst: __umulh
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12537,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12585,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12586,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12587,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12600
      start: 12478
    functionDepth: 1
    functionLinenumber: 12478
    functionLinenumberEnd: 12600
    functionName: XXH_mult64to128
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_mult32to64
    - _umul128
    - __umulh
    linkageType: ''
    returnType: XXH128_hash_t
    signature: XXH128_hash_t XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_mult64to128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12617
      start: 12612
    functionDepth: 2
    functionLinenumber: 12612
    functionLinenumberEnd: 12617
    functionName: XXH3_mul128_fold64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_mult64to128
    linkageType: ''
    returnType: xxh_u64
    signature: xxh_u64 XXH3_mul128_fold64(xxh_u64 lhs, xxh_u64 rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - v64
    - shift
    argTypes:
    - xxh_u64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12624
      start: 12620
    functionDepth: 1
    functionLinenumber: 12620
    functionLinenumberEnd: 12624
    functionName: XXH_xorshift64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_xorshift64(xxh_u64 v64, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12632,1
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h64
    argTypes:
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12636
      start: 12630
    functionDepth: 2
    functionLinenumber: 12630
    functionLinenumberEnd: 12636
    functionName: XXH3_avalanche
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_xorshift64
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_avalanche(xxh_u64 h64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12646,1
    - Dst: XXH_rotl64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12646,1
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - h64
    - len
    argTypes:
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12651
      start: 12643
    functionDepth: 2
    functionLinenumber: 12643
    functionLinenumberEnd: 12651
    functionName: XXH3_rrmxmx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_xorshift64
    - XXH_rotl64
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_rrmxmx(xxh_u64 h64, xxh_u64 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12690,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12691,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12692,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12703,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12703,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12707
      start: 12687
    functionDepth: 1
    functionLinenumber: 12687
    functionLinenumberEnd: 12707
    functionName: XXH3_len_1to3_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH64_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_1to3_64b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12712,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12713,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12714,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12715,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12716,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12717,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12718,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12718,1
    - Dst: XXH3_rrmxmx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12723
      start: 12709
    functionDepth: 3
    functionLinenumber: 12709
    functionLinenumberEnd: 12723
    functionName: XXH3_len_4to8_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_swap32
    - XXH3_rrmxmx
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_4to8_64b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12728,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12729,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12730,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12731,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12731,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12732,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12732,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12733,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12734,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12736,1
    - Dst: XXH3_mul128_fold64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12737,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12740
      start: 12725
    functionDepth: 3
    functionLinenumber: 12725
    functionLinenumberEnd: 12740
    functionName: XXH3_len_9to16_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mul128_fold64
    - XXH_swap64
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_9to16_64b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12745,1
    - Dst: XXH_likely
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12746,1
    - Dst: XXH3_len_9to16_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12746,1
    - Dst: XXH_likely
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12747,1
    - Dst: XXH3_len_4to8_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12747,1
    - Dst: XXH3_len_1to3_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12748,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12749,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12749,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12751
      start: 12742
    functionDepth: 4
    functionLinenumber: 12742
    functionLinenumberEnd: 12751
    functionName: XXH3_len_0to16_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_len_9to16_64b
    - XXH_likely
    - XXH3_len_4to8_64b
    - XXH64_avalanche
    - XXH3_len_1to3_64b
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_0to16_64b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12800,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12802,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12803,1
    - Dst: XXH3_mul128_fold64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12804,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12805,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - seed64
    argTypes:
    - xxh_u8*
    - xxh_u8*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12809
      start: 12779
    functionDepth: 3
    functionLinenumber: 12779
    functionLinenumberEnd: 12809
    functionName: XXH3_mix16B
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH3_mul128_fold64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_mix16B(const xxh_u8* XXH_RESTRICT input,\n                                     const
      xxh_u8* XXH_RESTRICT secret, xxh_u64 seed64)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12817,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12818,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12825,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12826,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12832,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12833,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12835,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12836,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12838,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12839,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12841,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12842,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12846
      start: 12812
    functionDepth: 4
    functionLinenumber: 12812
    functionLinenumberEnd: 12846
    functionName: XXH3_len_17to128_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH3_mix16B
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_len_17to128_64b(const xxh_u8* XXH_RESTRICT input,
      size_t len,\n                     const xxh_u8* XXH_RESTRICT secret, size_t
      secretSize,\n                     XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12858,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12859,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12868,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12870,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12873,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12874,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12875,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12905,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12906,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12910
      start: 12853
    functionDepth: 4
    functionLinenumber: 12853
    functionLinenumberEnd: 12910
    functionName: XXH3_len_129to240_64b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH3_mix16B
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_len_129to240_64b(const xxh_u8* XXH_RESTRICT input,
      size_t len,\n                      const xxh_u8* XXH_RESTRICT secret, size_t
      secretSize,\n                      XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12963
      start: 12946
    functionDepth: 0
    functionLinenumber: 12946
    functionLinenumberEnd: 12963
    functionName: XXH3_ACCUMULATE_TEMPLATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH3_ACCUMULATE_TEMPLATE(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12967,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:12968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - v64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12969
      start: 12965
    functionDepth: 2
    functionLinenumber: 12965
    functionLinenumberEnd: 12969
    functionName: XXH_writeLE64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_writeLE64(void* dst, xxh_u64 v64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13022,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13023,1
    - Dst: _mm512_loadu_si512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13027,1
    - Dst: _mm512_loadu_si512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13029,1
    - Dst: _mm512_xor_si512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13031,1
    - Dst: _mm512_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13033,1
    - Dst: _mm512_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13035,1
    - Dst: _mm512_shuffle_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13037,1
    - Dst: _MM_SHUFFLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13037,1
    - Dst: _mm512_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13038,1
    - Dst: _mm512_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13042
      start: 13016
    functionDepth: 1
    functionLinenumber: 13016
    functionLinenumberEnd: 13042
    functionName: XXH3_accumulate_512_avx512
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm512_shuffle_epi32
    - _MM_SHUFFLE
    - _mm512_loadu_si512
    - _mm512_add_epi64
    - XXH_STATIC_ASSERT
    - _mm512_xor_si512
    - _mm512_mul_epu32
    - _mm512_srli_epi64
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_avx512(void* XXH_RESTRICT acc,\n
      \                    const void* XXH_RESTRICT input,\n                     const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13069,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13070,1
    - Dst: _mm512_set1_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13072,1
    - Dst: _mm512_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13076,1
    - Dst: _mm512_loadu_si512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13078,1
    - Dst: _mm512_ternarylogic_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13079,1
    - Dst: _mm512_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13082,1
    - Dst: _mm512_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13083,1
    - Dst: _mm512_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13084,1
    - Dst: _mm512_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13085,1
    - Dst: _mm512_slli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13087
      start: 13066
    functionDepth: 1
    functionLinenumber: 13066
    functionLinenumberEnd: 13087
    functionName: XXH3_scrambleAcc_avx512
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm512_ternarylogic_epi32
    - _mm512_slli_epi64
    - _mm512_loadu_si512
    - _mm512_add_epi64
    - XXH_STATIC_ASSERT
    - _mm512_mul_epu32
    - _mm512_srli_epi64
    - _mm512_set1_epi32
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_avx512(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13092,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13093,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13094,1
    - Dst: _mm512_set1_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13097,1
    - Dst: _mm512_mask_sub_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13098,1
    - Dst: _mm512_set1_epi8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13098,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13103,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13104,1
    - Dst: _mm512_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13106,1
    - Dst: _mm512_load_si512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13108
      start: 13089
    functionDepth: 1
    functionLinenumber: 13089
    functionLinenumberEnd: 13108
    functionName: XXH3_initCustomSecret_avx512
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm512_mask_sub_epi64
    - _mm512_add_epi64
    - _mm512_set1_epi8
    - XXH_STATIC_ASSERT
    - _mm512_load_si512
    - XXH_ASSERT
    - _mm512_set1_epi64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_avx512(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13124,1
    - Dst: _mm256_loadu_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13136,1
    - Dst: _mm256_loadu_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13138,1
    - Dst: _mm256_xor_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13140,1
    - Dst: _mm256_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13142,1
    - Dst: _mm256_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13144,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13146,1
    - Dst: _MM_SHUFFLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13146,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13147,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13151
      start: 13119
    functionDepth: 1
    functionLinenumber: 13119
    functionLinenumberEnd: 13151
    functionName: XXH3_accumulate_512_avx2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _MM_SHUFFLE
    - _mm256_shuffle_epi32
    - _mm256_mul_epu32
    - _mm256_add_epi64
    - _mm256_srli_epi64
    - _mm256_xor_si256
    - _mm256_loadu_si256
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13157,1
    - Dst: _mm256_set1_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13162,1
    - Dst: _mm256_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13168,1
    - Dst: _mm256_xor_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13169,1
    - Dst: _mm256_loadu_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13171,1
    - Dst: _mm256_xor_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13172,1
    - Dst: _mm256_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13175,1
    - Dst: _mm256_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13176,1
    - Dst: _mm256_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13177,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13178,1
    - Dst: _mm256_slli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13181
      start: 13154
    functionDepth: 1
    functionLinenumber: 13154
    functionLinenumberEnd: 13181
    functionName: XXH3_scrambleAcc_avx2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm256_slli_epi64
    - _mm256_mul_epu32
    - _mm256_add_epi64
    - _mm256_set1_epi32
    - _mm256_srli_epi64
    - _mm256_xor_si256
    - _mm256_loadu_si256
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_avx2(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13185,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13186,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13187,1
    - Dst: XXH_PREFETCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13189,1
    - Dst: _mm256_set_epi64x
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13190,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13201,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13203,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13204,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13207,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13207,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13208,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13208,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13209,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13209,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13210,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13210,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13211,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13211,1
    - Dst: _mm256_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13212,1
    - Dst: _mm256_load_si256
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13214
      start: 13183
    functionDepth: 1
    functionLinenumber: 13183
    functionLinenumberEnd: 13214
    functionName: XXH3_initCustomSecret_avx2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_STATIC_ASSERT
    - XXH_COMPILER_GUARD
    - _mm256_add_epi64
    - _mm256_load_si256
    - _mm256_set_epi64x
    - XXH_ASSERT
    - XXH_PREFETCH
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_avx2(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13231,1
    - Dst: _mm_loadu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13243,1
    - Dst: _mm_loadu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13245,1
    - Dst: _mm_xor_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13247,1
    - Dst: _mm_shuffle_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13249,1
    - Dst: _MM_SHUFFLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13249,1
    - Dst: _mm_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13251,1
    - Dst: _mm_shuffle_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13253,1
    - Dst: _MM_SHUFFLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13253,1
    - Dst: _mm_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13254,1
    - Dst: _mm_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13258
      start: 13225
    functionDepth: 1
    functionLinenumber: 13225
    functionLinenumberEnd: 13258
    functionName: XXH3_accumulate_512_sse2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm_mul_epu32
    - _MM_SHUFFLE
    - _mm_add_epi64
    - _mm_xor_si128
    - _mm_shuffle_epi32
    - XXH_ASSERT
    - _mm_loadu_si128
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13264,1
    - Dst: _mm_set1_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13269,1
    - Dst: _mm_srli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13275,1
    - Dst: _mm_xor_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13276,1
    - Dst: _mm_loadu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13278,1
    - Dst: _mm_xor_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13279,1
    - Dst: _mm_shuffle_epi32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13282,1
    - Dst: _MM_SHUFFLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13282,1
    - Dst: _mm_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13283,1
    - Dst: _mm_mul_epu32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13284,1
    - Dst: _mm_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13285,1
    - Dst: _mm_slli_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13288
      start: 13261
    functionDepth: 1
    functionLinenumber: 13261
    functionLinenumberEnd: 13288
    functionName: XXH3_scrambleAcc_sse2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi32
    - _mm_mul_epu32
    - _MM_SHUFFLE
    - _mm_add_epi64
    - _mm_slli_epi64
    - _mm_xor_si128
    - _mm_srli_epi64
    - _mm_shuffle_epi32
    - XXH_ASSERT
    - _mm_loadu_si128
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_sse2(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13292,1
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13298,1
    - Dst: _mm_load_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13299,1
    - Dst: _mm_set_epi64x
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13301,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13313,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13315,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13316,1
    - Dst: _mm_add_epi64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13319,1
    - Dst: _mm_load_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13321
      start: 13290
    functionDepth: 1
    functionLinenumber: 13290
    functionLinenumberEnd: 13321
    functionName: XXH3_initCustomSecret_sse2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm_set_epi64x
    - _mm_add_epi64
    - XXH_STATIC_ASSERT
    - XXH_COMPILER_GUARD
    - XXH_ALIGN
    - _mm_load_si128
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_sse2(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13365,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13366,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13392,1
    - Dst: XXH3_scalarRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13396,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13402,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13403,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13405,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13406,1
    - Dst: vextq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13408,1
    - Dst: vextq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13409,1
    - Dst: veorq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13411,1
    - Dst: veorq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13412,1
    - Dst: vuzpq_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13427,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13428,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13429,1
    - Dst: XXH_vmlal_low_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13442,1
    - Dst: XXH_vmlal_high_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13443,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13456,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13457,1
    - Dst: vaddq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13459,1
    - Dst: vaddq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13460,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13465,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13467,1
    - Dst: vextq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13469,1
    - Dst: veorq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13471,1
    - Dst: vmovn_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13474,1
    - Dst: vshrn_n_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13476,1
    - Dst: vmlal_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13478,1
    - Dst: XXH_COMPILER_GUARD_CLANG_NEON
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13480,1
    - Dst: vaddq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13485
      start: 13360
    functionDepth: 1
    functionLinenumber: 13360
    functionLinenumberEnd: 13485
    functionName: XXH3_accumulate_512_neon
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_scalarRound
    - veorq_u64
    - vshrn_n_u64
    - XXH_vmlal_low_u32
    - XXH_STATIC_ASSERT
    - vaddq_u64
    - XXH_vld1q_u64
    - vmovn_u64
    - vmlal_u32
    - XXH_COMPILER_GUARD_CLANG_NEON
    - vreinterpretq_u32_u64
    - vextq_u64
    - XXH_COMPILER_GUARD
    - XXH_vmlal_high_u32
    - XXH_ASSERT
    - vuzpq_u32
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_neon( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13491,1
    - Dst: vdup_n_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13500,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13502,1
    - Dst: vdupq_n_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13502,1
    - Dst: XXH3_scalarScrambleRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13507,1
    - Dst: vshrq_n_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13512,1
    - Dst: veorq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13513,1
    - Dst: XXH_vld1q_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13516,1
    - Dst: veorq_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13517,1
    - Dst: vmulq_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13534,1
    - Dst: vreinterpretq_u32_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13534,1
    - Dst: vmovn_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13536,1
    - Dst: vmlal_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13538,1
    - Dst: vreinterpretq_u64_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13542
      start: 13488
    functionDepth: 1
    functionLinenumber: 13488
    functionLinenumberEnd: 13542
    functionName: XXH3_scrambleAcc_neon
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vdupq_n_u64
    - XXH_vld1q_u64
    - vshrq_n_u64
    - vmulq_u32
    - vdup_n_u32
    - vmovn_u64
    - vreinterpretq_u32_u64
    - vmlal_u32
    - veorq_u64
    - vreinterpretq_u64_u32
    - XXH3_scalarScrambleRound
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_neon(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_vec_loadu
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13560,1
    - Dst: XXH_vec_loadu
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13562,1
    - Dst: vec_rl
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13565,1
    - Dst: XXH_vec_mulo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13567,1
    - Dst: vec_permi
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13574,1
    - Dst: vec_xxpermdi
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13580
      start: 13547
    functionDepth: 3
    functionLinenumber: 13547
    functionLinenumberEnd: 13580
    functionName: XXH3_accumulate_512_vsx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_vec_mulo
    - vec_permi
    - XXH_vec_loadu
    - vec_rl
    - vec_xxpermdi
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_vsx(  void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13586,1
    - Dst: XXH_vec_loadu
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13601,1
    - Dst: XXH_vec_mule
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13606,1
    - Dst: XXH_vec_mulo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13611
      start: 13583
    functionDepth: 3
    functionLinenumber: 13583
    functionLinenumberEnd: 13611
    functionName: XXH3_scrambleAcc_vsx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_vec_loadu
    - XXH_vec_mulo
    - XXH_ASSERT
    - XXH_vec_mule
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_vsx(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sveor_n_u64_z
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13625,1
    - Dst: svptrue_b64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13625,1
    - Dst: svindex_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13625,1
    - Dst: svcntd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13626,1
    - Dst: svptrue_pat_b64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13628,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13629,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13630,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13631,1
    - Dst: svptrue_pat_b64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13633,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13634,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13635,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13636,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13637,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13638,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13639,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13640,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13641,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13642,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13643,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13644,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13645,1
    - Dst: svptrue_pat_b64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13647,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13648,1
    - Dst: svld1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13649,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13650,1
    - Dst: ACCRND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13651,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13652,1
    - Dst: svst1_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13655
      start: 13617
    functionDepth: 1
    functionLinenumber: 13617
    functionLinenumberEnd: 13655
    functionName: XXH3_accumulate_512_sve
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - svst1_u64
    - svindex_u64
    - svld1_u64
    - svptrue_pat_b64
    - svcntd
    - sveor_n_u64_z
    - svptrue_b64
    - ACCRND
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_sve( void* XXH_RESTRICT acc,\n
      \                  const void* XXH_RESTRICT input,\n                   const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lhs
    - rhs
    - acc
    argTypes:
    - xxh_u64
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13748
      start: 13741
    functionDepth: 0
    functionLinenumber: 13741
    functionLinenumberEnd: 13748
    functionName: XXH_mult32to64_add64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64
      acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - lhs
    - rhs
    - acc
    argTypes:
    - xxh_u64
    - xxh_u64
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13754
      start: 13750
    functionDepth: 1
    functionLinenumber: 13750
    functionLinenumberEnd: 13754
    functionName: XXH_mult32to64_add64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_mult32to64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_mult32to64_add64(xxh_u64 lhs, xxh_u64 rhs, xxh_u64
      acc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13773,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13774,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13776,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13777,1
    - Dst: XXH_mult32to64_add64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    - lane
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13781
      start: 13764
    functionDepth: 1
    functionLinenumber: 13764
    functionLinenumberEnd: 13781
    functionName: XXH3_scalarRound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - XXH_mult32to64_add64
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_scalarRound(void* XXH_RESTRICT acc,\n                 void
      const* XXH_RESTRICT input,\n                 void const* XXH_RESTRICT secret,\n
      \                size_t lane)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_scalarRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 4
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13803
      start: 13787
    functionDepth: 2
    functionLinenumber: 13787
    functionLinenumberEnd: 13803
    functionName: XXH3_accumulate_512_scalar
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_scalarRound
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc,\n
      \                    const void* XXH_RESTRICT input,\n                     const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13820,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13821,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13823,1
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - lane
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13830
      start: 13813
    functionDepth: 2
    functionLinenumber: 13813
    functionLinenumberEnd: 13830
    functionName: XXH3_scalarScrambleRound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - XXH_xorshift64
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_scalarScrambleRound(void* XXH_RESTRICT acc,\n
      \                        void const* XXH_RESTRICT secret,\n                         size_t
      lane)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_scalarScrambleRound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13843
      start: 13836
    functionDepth: 3
    functionLinenumber: 13836
    functionLinenumberEnd: 13843
    functionName: XXH3_scrambleAcc_scalar
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_scalarScrambleRound
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_scrambleAcc_scalar(void* XXH_RESTRICT acc, const
      void* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13854,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13889,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13900,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13901,1
    - Dst: XXH_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13902,1
    - Dst: XXH_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:13903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - XXH_RESTRICT customSecret
    - seed64
    argTypes:
    - void*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13905
      start: 13845
    functionDepth: 3
    functionLinenumber: 13845
    functionLinenumberEnd: 13905
    functionName: XXH3_initCustomSecret_scalar
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH_writeLE64
    - XXH_STATIC_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_scalar(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mul128_fold64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14004,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14005,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    argTypes:
    - xxh_u64*
    - xxh_u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14007
      start: 14001
    functionDepth: 3
    functionLinenumber: 14001
    functionLinenumberEnd: 14007
    functionName: XXH3_mix2Accs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mul128_fold64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_mix2Accs(const xxh_u64* XXH_RESTRICT acc, const
      xxh_u8* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mix2Accs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14016,1
    - Dst: XXH_COMPILER_GUARD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14029,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 3
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT
    - start
    argTypes:
    - xxh_u64*
    - xxh_u8*
    - xxh_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14034
      start: 14009
    functionDepth: 4
    functionLinenumber: 14009
    functionLinenumberEnd: 14034
    functionName: XXH3_mergeAccs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_COMPILER_GUARD
    - XXH3_avalanche
    - XXH3_mix2Accs
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_mergeAccs(const xxh_u64* XXH_RESTRICT acc, const
      xxh_u8* XXH_RESTRICT secret, xxh_u64 start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14045,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14047,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14050,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14053,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc
    - f_scramble
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14055
      start: 14039
    functionDepth: 5
    functionLinenumber: 14039
    functionLinenumberEnd: 14055
    functionName: XXH64_hash_t::XXH3_hashLong_64b_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH_STATIC_ASSERT
    - XXH_ALIGN
    - XXH_ASSERT
    - XXH3_hashLong_internal_loop
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_hashLong_64b_internal(const void*
      XXH_RESTRICT input, size_t len,\n                           const void* XXH_RESTRICT
      secret, size_t secretSize,\n                           XXH3_f_accumulate f_acc,\n
      \                          XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14070
      start: 14064
    functionDepth: 6
    functionLinenumber: 14064
    functionLinenumberEnd: 14070
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH3_WITH_SECRET_INLINE
    signature: "XXH3_WITH_SECRET_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSecret(const
      void* XXH_RESTRICT input, size_t len,\n                             XXH64_hash_t
      seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_hashLong_64b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14084
      start: 14078
    functionDepth: 0
    functionLinenumber: 14078
    functionLinenumberEnd: 14084
    functionName: XXH3_hashLong_64b_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_hashLong_64b_default(const void* XXH_RESTRICT input,
      size_t len,\n                          XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT
      secret, size_t secretLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14106,1
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14110,1
    - Dst: f_initSec
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14111,1
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - input
    - len
    - seed
    - f_acc
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14115
      start: 14097
    functionDepth: 6
    functionLinenumber: 14097
    functionLinenumberEnd: 14115
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - f_initSec
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSeed_internal(const
      void* input, size_t len,\n                                    XXH64_hash_t seed,\n
      \                                   XXH3_f_accumulate f_acc,\n                                    XXH3_f_scrambleAcc
      f_scramble,\n                                    XXH3_f_initCustomSecret f_initSec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - xxh_u8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14127
      start: 14120
    functionDepth: 7
    functionLinenumber: 14120
    functionLinenumberEnd: 14127
    functionName: XXH64_hash_t::XXH3_hashLong_64b_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH64_hash_t\nXXH3_hashLong_64b_withSeed(const void*
      XXH_RESTRICT input, size_t len,\n                           XXH64_hash_t seed,
      const xxh_u8* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14138,1
    - Dst: XXH3_len_0to16_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14147,1
    - Dst: XXH3_len_17to128_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14149,1
    - Dst: XXH3_len_129to240_64b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14151,1
    - Dst: f_hashLong
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    - f_hashLong
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    - XXH3_hashLong64_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14153
      start: 14133
    functionDepth: 5
    functionLinenumber: 14133
    functionLinenumberEnd: 14153
    functionName: XXH64_hash_t::XXH3_64bits_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - f_hashLong
    - XXH3_len_129to240_64b
    - XXH3_len_0to16_64b
    - XXH3_len_17to128_64b
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_64bits_internal(const void* XXH_RESTRICT
      input, size_t len,\n                     XXH64_hash_t seed64, const void* XXH_RESTRICT
      secret, size_t secretLen,\n                     XXH3_hashLong64_f f_hashLong)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - length
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14162
      start: 14159
    functionDepth: 6
    functionLinenumber: 14159
    functionLinenumberEnd: 14162
    functionName: XXH64_hash_t::XXH3_64bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input,
      size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - length
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14169
      start: 14165
    functionDepth: 6
    functionLinenumber: 14165
    functionLinenumberEnd: 14169
    functionName: XXH64_hash_t::XXH3_64bits_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSecret(XXH_NOESCAPE const void* input, size_t length, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - length
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14176
      start: 14172
    functionDepth: 6
    functionLinenumber: 14172
    functionLinenumberEnd: 14176
    functionName: XXH64_hash_t::XXH3_64bits_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSeed(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t
      seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH64_hash_t::XXH3_64bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14182,1
    - Dst: XXH64_hash_t::XXH3_hashLong_64b_withSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - input
    - length
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14184
      start: 14178
    functionDepth: 7
    functionLinenumber: 14178
    functionLinenumberEnd: 14184
    functionName: XXH64_hash_t::XXH3_64bits_withSecretandSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_hash_t::XXH3_64bits_internal
    - XXH64_hash_t::XXH3_hashLong_64b_withSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH64_hash_t

      XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length,
      XXH_NOESCAPE const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14214,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14215,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14216,1
    - Dst: XXH_malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14218,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14238
      start: 14212
    functionDepth: 1
    functionLinenumber: 14212
    functionLinenumberEnd: 14238
    functionName: XXH_alignedMalloc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_malloc
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_MALLOCF
    signature: XXH_MALLOCF * XXH_alignedMalloc(size_t s, size_t align)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14253
      start: 14243
    functionDepth: 1
    functionLinenumber: 14243
    functionLinenumberEnd: 14253
    functionName: XXH_alignedFree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_free
    linkageType: ''
    returnType: void
    signature: void XXH_alignedFree(void* p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_alignedMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14265,1
    - Dst: XXH3_INITSTATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14269
      start: 14263
    functionDepth: 2
    functionLinenumber: 14263
    functionLinenumberEnd: 14269
    functionName: XXH3_state_t* XXH3_createState(void)
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_INITSTATE
    - XXH_alignedMalloc
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_state_t* XXH3_createState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_alignedFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - statePtr
    argTypes:
    - XXH3_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14285
      start: 14281
    functionDepth: 2
    functionLinenumber: 14281
    functionLinenumberEnd: 14285
    functionName: XXH_errorcode::XXH3_freeState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_alignedFree
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH3_state_t* dst_state
    - XXH3_state_t* src_state
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14292
      start: 14288
    functionDepth: 2
    functionLinenumber: 14288
    functionLinenumberEnd: 14292
    functionName: XXH3_copyState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state,
      XXH_NOESCAPE const XXH3_state_t* src_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14301,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14302,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14304,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 4
    argNames:
    - statePtr
    - seed
    - secret
    - secretSize
    argTypes:
    - XXH3_state_t*
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14319
      start: 14294
    functionDepth: 1
    functionLinenumber: 14294
    functionLinenumberEnd: 14319
    functionName: XXH3_reset_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ASSERT
    - memset
    linkageType: ''
    returnType: void
    signature: "void XXH3_reset_internal(XXH3_state_t* statePtr,\n                    XXH64_hash_t
      seed,\n                    const void* secret, size_t secretSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - XXH3_state_t* statePtr
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14328
      start: 14322
    functionDepth: 2
    functionLinenumber: 14322
    functionLinenumberEnd: 14328
    functionName: XXH_errorcode::XXH3_64bits_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14339
      start: 14331
    functionDepth: 2
    functionLinenumber: 14331
    functionLinenumberEnd: 14339
    functionName: XXH_errorcode::XXH3_64bits_reset_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14346,1
    - Dst: XXH3_initCustomSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14348,1
    - Dst: XXH3_reset_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - XXH3_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14351
      start: 14342
    functionDepth: 3
    functionLinenumber: 14342
    functionLinenumberEnd: 14351
    functionName: XXH_errorcode::XXH3_64bits_reset_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_initCustomSecret
    - XXH3_reset_internal
    - XXH_errorcode::XXH3_64bits_reset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t
      seed)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    - seed64
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14363
      start: 14354
    functionDepth: 2
    functionLinenumber: 14354
    functionLinenumberEnd: 14363
    functionName: XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_reset_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed64)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: f_acc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14398,1
    - Dst: f_scramble
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14399,1
    - Dst: f_acc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 9
    argNames:
    - XXH_RESTRICT
    - XXH_RESTRICT nbStripesSoFarPtr
    - nbStripesPerBlock
    - XXH_RESTRICT
    - nbStripes
    - XXH_RESTRICT
    - secretLimit
    - f_acc
    - f_scramble
    argTypes:
    - xxh_u64*
    - size_t*
    - size_t
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14416
      start: 14382
    functionDepth: 0
    functionLinenumber: 14382
    functionLinenumberEnd: 14416
    functionName: XXH3_consumeStripes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - f_scramble
    - f_acc
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE *\nXXH3_consumeStripes(xxh_u64* XXH_RESTRICT acc,\n
      \                   size_t* XXH_RESTRICT nbStripesSoFarPtr, size_t nbStripesPerBlock,\n
      \                   const xxh_u8* XXH_RESTRICT input, size_t nbStripes,\n                    const
      xxh_u8* XXH_RESTRICT secret, size_t secretLimit,\n                    XXH3_f_accumulate
      f_acc,\n                    XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14511
      start: 14506
    functionDepth: 0
    functionLinenumber: 14506
    functionLinenumberEnd: 14511
    functionName: XXH_errorcode::XXH3_64bits_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_64bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void*
      input, size_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14526,1
    - Dst: XXH3_consumeStripes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14531,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14540,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14541,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14542,1
    - Dst: XXH3_accumulate_512
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - acc
    - state
    - secret
    argTypes:
    - XXH64_hash_t*
    - XXH3_state_t*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14549
      start: 14514
    functionDepth: 2
    functionLinenumber: 14514
    functionLinenumberEnd: 14549
    functionName: XXH3_digest_long
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_accumulate_512
    - XXH_memcpy
    - XXH_ASSERT
    - XXH3_consumeStripes
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_digest_long (XXH64_hash_t* acc,\n                  const
      XXH3_state_t* state,\n                  const unsigned char* secret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14556,1
    - Dst: XXH3_digest_long
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14557,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14558,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSeed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14564,1
    - Dst: XXH64_hash_t::XXH3_64bits_withSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - XXH3_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14567
      start: 14552
    functionDepth: 7
    functionLinenumber: 14552
    functionLinenumberEnd: 14567
    functionName: XXH64_hash_t::XXH3_64bits_digest
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH_ALIGN
    - XXH64_hash_t::XXH3_64bits_withSeed
    - XXH3_digest_long
    - XXH64_hash_t::XXH3_64bits_withSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const
      XXH3_state_t* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14592,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14593,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14594,1
    - Dst: XXH_rotl32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14605,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14605,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14606,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14606,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14607,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14607,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14611,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14615
      start: 14588
    functionDepth: 1
    functionLinenumber: 14588
    functionLinenumberEnd: 14615
    functionName: XXH3_len_1to3_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_rotl32
    - XXH_swap32
    - XXH64_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_1to3_128b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14620,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14621,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14622,1
    - Dst: XXH_swap32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14623,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14624,1
    - Dst: XXH_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14625,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14627,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14627,1
    - Dst: XXH_mult64to128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14631,1
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14636,1
    - Dst: XXH_xorshift64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14638,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14642
      start: 14617
    functionDepth: 3
    functionLinenumber: 14617
    functionLinenumberEnd: 14642
    functionName: XXH3_len_4to8_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readLE32
    - XXH_swap32
    - XXH_mult64to128
    - XXH3_avalanche
    - XXH_xorshift64
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_4to8_128b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14647,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14648,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14649,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14650,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14650,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14651,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14651,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14652,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14653,1
    - Dst: XXH_mult64to128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14654,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14675,1
    - Dst: XXH_mult32to64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14701,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14704,1
    - Dst: XXH_mult64to128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14707,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14710,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14714
      start: 14644
    functionDepth: 3
    functionLinenumber: 14644
    functionLinenumberEnd: 14714
    functionName: XXH3_len_9to16_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_mult64to128
    - XXH_mult32to64
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_9to16_128b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14722,1
    - Dst: XXH3_len_9to16_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14723,1
    - Dst: XXH3_len_4to8_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14724,1
    - Dst: XXH3_len_1to3_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14725,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14727,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14727,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14728,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14728,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14729,1
    - Dst: XXH64_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14733
      start: 14719
    functionDepth: 4
    functionLinenumber: 14719
    functionLinenumberEnd: 14733
    functionName: XXH3_len_0to16_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_len_9to16_128b
    - XXH3_len_1to3_128b
    - XXH64_avalanche
    - XXH3_len_4to8_128b
    - XXH_ASSERT
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_len_0to16_128b(const xxh_u8* input, size_t len,
      const xxh_u8* secret, XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14742,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14743,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14743,1
    - Dst: XXH3_mix16B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14744,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14745,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - acc
    - input_1
    - input_2
    - secret
    - seed
    argTypes:
    - XXH128_hash_t
    - xxh_u8*
    - xxh_u8*
    - xxh_u8*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14747
      start: 14738
    functionDepth: 4
    functionLinenumber: 14738
    functionLinenumberEnd: 14747
    functionName: XXH128_hash_t::XXH128_mix32B
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mix16B
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH128_mix32B(XXH128_hash_t acc, const
      xxh_u8* input_1, const xxh_u8* input_2,\n              const xxh_u8* secret,
      XXH64_hash_t seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14755,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14756,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14767,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14774,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14776,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14778,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14780,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14787,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14792
      start: 14750
    functionDepth: 3
    functionLinenumber: 14750
    functionLinenumberEnd: 14792
    functionName: XXH3_len_17to128_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_mix32B
    - XXH3_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_len_17to128_128b(const xxh_u8* XXH_RESTRICT
      input, size_t len,\n                      const xxh_u8* XXH_RESTRICT secret,
      size_t secretSize,\n                      XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14799,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14800,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14813,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14819,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14820,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14827,1
    - Dst: XXH128_mix32B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14834,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14845,1
    - Dst: XXH3_avalanche
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - seed
    argTypes:
    - xxh_u8*
    - size_t
    - xxh_u8*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14850
      start: 14794
    functionDepth: 3
    functionLinenumber: 14794
    functionLinenumberEnd: 14850
    functionName: XXH3_len_129to240_128b
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_mix32B
    - XXH3_avalanche
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_len_129to240_128b(const xxh_u8* XXH_RESTRICT input,
      size_t len,\n                       const xxh_u8* XXH_RESTRICT secret, size_t
      secretSize,\n                       XXH64_hash_t seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14858,1
    - Dst: XXH3_hashLong_internal_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14860,1
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14863,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14864,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14866,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - XXH_RESTRICT
    - secretSize
    - f_acc
    - f_scramble
    argTypes:
    - void*
    - size_t
    - xxh_u8*
    - size_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14875
      start: 14852
    functionDepth: 5
    functionLinenumber: 14852
    functionLinenumberEnd: 14875
    functionName: XXH128_hash_t::XXH3_hashLong_128b_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH_STATIC_ASSERT
    - XXH_ALIGN
    - XXH_ASSERT
    - XXH3_hashLong_internal_loop
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_hashLong_128b_internal(const
      void* XXH_RESTRICT input, size_t len,\n                            const xxh_u8*
      XXH_RESTRICT secret, size_t secretSize,\n                            XXH3_f_accumulate
      f_acc,\n                            XXH3_f_scrambleAcc f_scramble)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_hashLong_128b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14888
      start: 14880
    functionDepth: 0
    functionLinenumber: 14880
    functionLinenumberEnd: 14888
    functionName: XXH3_hashLong_128b_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH3_hashLong_128b_default(const void* XXH_RESTRICT
      input, size_t len,\n                           XXH64_hash_t seed64,\n                           const
      void* XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14905
      start: 14897
    functionDepth: 6
    functionLinenumber: 14897
    functionLinenumberEnd: 14905
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    linkageType: ''
    returnType: XXH3_WITH_SECRET_INLINE
    signature: "XXH3_WITH_SECRET_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSecret(const
      void* XXH_RESTRICT input, size_t len,\n                              XXH64_hash_t
      seed64,\n                              const void* XXH_RESTRICT secret, size_t
      secretLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14915,1
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14918,1
    - Dst: f_initSec
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14919,1
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - XXH_RESTRICT
    - len
    - seed64
    - f_acc
    - f_scramble
    - f_initSec
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - XXH3_f_accumulate
    - XXH3_f_scrambleAcc
    - XXH3_f_initCustomSecret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14923
      start: 14907
    functionDepth: 6
    functionLinenumber: 14907
    functionLinenumberEnd: 14923
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    - f_initSec
    - XXH_ALIGN
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSeed_internal(const
      void* XXH_RESTRICT input, size_t len,\n                                XXH64_hash_t
      seed64,\n                                XXH3_f_accumulate f_acc,\n                                XXH3_f_scrambleAcc
      f_scramble,\n                                XXH3_f_initCustomSecret f_initSec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - input
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14935
      start: 14928
    functionDepth: 7
    functionLinenumber: 14928
    functionLinenumberEnd: 14935
    functionName: XXH128_hash_t::XXH3_hashLong_128b_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
    linkageType: ''
    returnType: XXH_NO_INLINE
    signature: "XXH_NO_INLINE XXH128_hash_t\nXXH3_hashLong_128b_withSeed(const void*
      input, size_t len,\n                            XXH64_hash_t seed64, const void*
      XXH_RESTRICT secret, size_t secretLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14945,1
    - Dst: XXH3_len_0to16_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14953,1
    - Dst: XXH3_len_17to128_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14955,1
    - Dst: XXH3_len_129to240_128b
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14957,1
    - Dst: f_hl128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14958,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - input
    - len
    - seed64
    - XXH_RESTRICT
    - secretLen
    - f_hl128
    argTypes:
    - void*
    - size_t
    - XXH64_hash_t
    - void*
    - size_t
    - XXH3_hashLong128_f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14959
      start: 14940
    functionDepth: 5
    functionLinenumber: 14940
    functionLinenumberEnd: 14959
    functionName: XXH128_hash_t::XXH3_128bits_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - f_hl128
    - XXH_ASSERT
    - XXH3_len_0to16_128b
    - XXH3_len_17to128_128b
    - XXH3_len_129to240_128b
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_128bits_internal(const void*
      input, size_t len,\n                      XXH64_hash_t seed64, const void* XXH_RESTRICT
      secret, size_t secretLen,\n                      XXH3_hashLong128_f f_hl128)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - len
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14970
      start: 14965
    functionDepth: 6
    functionLinenumber: 14965
    functionLinenumberEnd: 14970
    functionName: XXH128_hash_t::XXH3_128bits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void*
      input, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - len
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14979
      start: 14973
    functionDepth: 6
    functionLinenumber: 14973
    functionLinenumberEnd: 14979
    functionName: XXH128_hash_t::XXH3_128bits_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSecret(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14988
      start: 14982
    functionDepth: 6
    functionLinenumber: 14982
    functionLinenumberEnd: 14988
    functionName: XXH128_hash_t::XXH3_128bits_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSeed(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t
      seed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14995,1
    - Dst: XXH128_hash_t::XXH3_hashLong_128b_withSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:14996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - input
    - len
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14997
      start: 14991
    functionDepth: 7
    functionLinenumber: 14991
    functionLinenumberEnd: 14997
    functionName: XXH128_hash_t::XXH3_128bits_withSecretandSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_hashLong_128b_withSecret
    - XXH128_hash_t::XXH3_128bits_internal
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t len, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - len
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15004
      start: 15000
    functionDepth: 7
    functionLinenumber: 15000
    functionLinenumberEnd: 15004
    functionName: XXH128_hash_t::XXH128
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH128_hash_t::XXH3_128bits_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128(XXH_NOESCAPE const void* input, size_t len, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - XXH3_state_t* statePtr
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15019
      start: 15015
    functionDepth: 3
    functionLinenumber: 15015
    functionLinenumberEnd: 15019
    functionName: XXH_errorcode::XXH3_128bits_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15026
      start: 15022
    functionDepth: 3
    functionLinenumber: 15022
    functionLinenumberEnd: 15026
    functionName: XXH_errorcode::XXH3_128bits_reset_withSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSeed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - XXH3_state_t* statePtr
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15033
      start: 15029
    functionDepth: 4
    functionLinenumber: 15029
    functionLinenumberEnd: 15033
    functionName: XXH_errorcode::XXH3_128bits_reset_withSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t
      seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - XXH3_state_t* statePtr
    - secret
    - secretSize
    - seed
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15040
      start: 15036
    functionDepth: 3
    functionLinenumber: 15036
    functionLinenumberEnd: 15040
    functionName: XXH_errorcode::XXH3_128bits_reset_withSecretandSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE
      const void* secret, size_t secretSize, XXH64_hash_t seed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_errorcode::XXH3_64bits_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - XXH3_state_t* state
    - input
    - len
    argTypes:
    - XXH_NOESCAPE
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15047
      start: 15043
    functionDepth: 1
    functionLinenumber: 15043
    functionLinenumberEnd: 15047
    functionName: XXH_errorcode::XXH3_128bits_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_errorcode::XXH3_64bits_update
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_128bits_update(XXH_NOESCAPE XXH3_state_t* state, XXH_NOESCAPE const void*
      input, size_t len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15054,1
    - Dst: XXH3_digest_long
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15055,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15056,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15058,1
    - Dst: XXH3_mergeAccs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15061,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSeed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15070,1
    - Dst: XXH128_hash_t::XXH3_128bits_withSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - XXH3_state_t* state
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15073
      start: 15050
    functionDepth: 7
    functionLinenumber: 15050
    functionLinenumberEnd: 15073
    functionName: XXH128_hash_t::XXH3_128bits_digest
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH3_mergeAccs
    - XXH128_hash_t::XXH3_128bits_withSecret
    - XXH3_digest_long
    - XXH_ALIGN
    - XXH128_hash_t::XXH3_128bits_withSeed
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const
      XXH3_state_t* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - XXH128_hash_t
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15085
      start: 15081
    functionDepth: 0
    functionLinenumber: 15081
    functionLinenumberEnd: 15085
    functionName: XXH128_isEqual
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h128_1
    - h128_2
    argTypes:
    - XXH_NOESCAPE*
    - XXH_NOESCAPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15100
      start: 15092
    functionDepth: 0
    functionLinenumber: 15092
    functionLinenumberEnd: 15100
    functionName: XXH128_cmp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE
      const void* h128_2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15108,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15110,1
    - Dst: XXH_swap64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15111,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15113,1
    - Dst: XXH_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - XXH128_canonical_t* dst
    - hash
    argTypes:
    - XXH_NOESCAPE
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15115
      start: 15105
    functionDepth: 2
    functionLinenumber: 15105
    functionLinenumberEnd: 15115
    functionName: XXH128_canonicalFromHash
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_swap64
    - XXH_STATIC_ASSERT
    - XXH_memcpy
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t*
      dst, XXH128_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_readBE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15122,1
    - Dst: XXH_readBE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - XXH128_canonical_t* src
    argTypes:
    - XXH_NOESCAPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15125
      start: 15118
    functionDepth: 1
    functionLinenumber: 15118
    functionLinenumberEnd: 15125
    functionName: XXH128_hash_t::XXH128_hashFromCanonical
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readBE64
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH128_hash_t

      XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src)'
  - 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: 15134
      start: 15133
    functionDepth: 0
    functionLinenumber: 15133
    functionLinenumberEnd: 15134
    functionName: XXH_MIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXH_MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15137,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15137,1
    - Dst: XXH_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15138,1
    - Dst: XXH_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - h128
    argTypes:
    - void*
    - XXH128_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15139
      start: 15135
    functionDepth: 3
    functionLinenumber: 15135
    functionLinenumberEnd: 15139
    functionName: XXH3_combine16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_readLE64
    - XXH_writeLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_combine16(void* dst, XXH128_hash_t h128)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15146,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15147,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15159,1
    - Dst: XXH_MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15167,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15168,1
    - Dst: XXH128_canonicalFromHash
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15175,1
    - Dst: XXH128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15175,1
    - Dst: XXH128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15177,1
    - Dst: XXH3_combine16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15178,1
    - Dst: XXH3_combine16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15181,1
    - Dst: XXH128_hashFromCanonical
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - secretBuffer
    - secretSize
    - customSeed
    - customSeedSize
    argTypes:
    - XXH_NOESCAPE*
    - size_t
    - XXH_NOESCAPE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15184
      start: 15142
    functionDepth: 4
    functionLinenumber: 15142
    functionLinenumberEnd: 15184
    functionName: XXH_errorcode::XXH3_generateSecret
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - XXH128_canonicalFromHash
    - XXH3_combine16
    - XXH128_hashFromCanonical
    - XXH128
    - XXH_MIN
    - XXH_ASSERT
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: 'XXH_PUBLIC_API XXH_errorcode

      XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE
      const void* customSeed, size_t customSeedSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ALIGN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15190,1
    - Dst: XXH3_initCustomSecret
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15191,1
    - Dst: XXH_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15192,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - secretBuffer
    - seed
    argTypes:
    - XXH_NOESCAPE*
    - XXH64_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15194
      start: 15187
    functionDepth: 1
    functionLinenumber: 15187
    functionLinenumberEnd: 15194
    functionName: XXH3_generateSecret_fromSeed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH_ALIGN
    - memcpy
    - XXH_ASSERT
    - XXH3_initCustomSecret
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH3_generateSecret_fromSeed(XXH_NOESCAPE void* secretBuffer,
      XXH64_hash_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15395
      start: 15394
    functionDepth: 0
    functionLinenumber: 15394
    functionLinenumberEnd: 15395
    functionName: ZSTD_STATIC_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15406
      start: 15405
    functionDepth: 0
    functionLinenumber: 15405
    functionLinenumberEnd: 15406
    functionName: MIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 15407
      start: 15406
    functionDepth: 0
    functionLinenumber: 15406
    functionLinenumberEnd: 15407
    functionName: MAX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - min
    - ','
    - val
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15408
      start: 15407
    functionDepth: 0
    functionLinenumber: 15407
    functionLinenumberEnd: 15408
    functionName: BOUNDED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOUNDED(min,val,max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15523,1
    - Dst: vld1_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15523,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15527
      start: 15521
    functionDepth: 1
    functionLinenumber: 15521
    functionLinenumberEnd: 15527
    functionName: ZSTD_copy8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - vld1_u8
    - vst1_u8
    linkageType: ''
    returnType: void
    signature: void ZSTD_copy8(void* dst, const void* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15529
      start: 15528
    functionDepth: 0
    functionLinenumber: 15528
    functionLinenumberEnd: 15529
    functionName: COPY8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8(d,s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1q_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15536,1
    - Dst: vld1q_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15536,1
    - Dst: _mm_storeu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15538,1
    - Dst: _mm_loadu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15538,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15540,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15544,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15547
      start: 15534
    functionDepth: 1
    functionLinenumber: 15534
    functionLinenumberEnd: 15547
    functionName: ZSTD_copy16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - vst1q_u8
    - ZSTD_memmove
    - _mm_storeu_si128
    - vld1q_u8
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void ZSTD_copy16(void* dst, const void* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15549
      start: 15548
    functionDepth: 0
    functionLinenumber: 15548
    functionLinenumberEnd: 15549
    functionName: COPY16
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY16(d,s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COPY8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15577,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15580,1
    - Dst: ZSTD_copy16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15587,1
    - Dst: COPY16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15592,1
    - Dst: COPY16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - dst
    - src
    - length
    - ovtype
    argTypes:
    - void*
    - void*
    - ptrdiff_t
    - ZSTD_overlap_e
    assertStmts:
    - condition: (diff >= WILDCOPY_VECLEN || diff <= -WILDCOPY_VECLEN)
      pos:
        line_end: 15579
        line_start: 15579
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 15597
      start: 15566
    functionDepth: 2
    functionLinenumber: 15566
    functionLinenumberEnd: 15597
    functionName: ZSTD_wildcopy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - COPY8
    - COPY16
    - ZSTD_copy16
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_wildcopy(void* dst, const void* src, ptrdiff_t length,
      ZSTD_overlap_e const ovtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15601,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15606
      start: 15599
    functionDepth: 1
    functionLinenumber: 15599
    functionLinenumberEnd: 15606
    functionName: ZSTD_limitCopy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - MIN
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_limitCopy(void* dst, size_t dstCapacity, const void*
      src, size_t srcSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - seqStore
    - seq
    argTypes:
    - seqStore_t*
    - seqDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15683
      start: 15669
    functionDepth: 0
    functionLinenumber: 15669
    functionLinenumberEnd: 15683
    functionName: ZSTD_sequenceLength::ZSTD_getSequenceLength
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const*
      seqStore, seqDef const* seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cpuid
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15731,1
    - Dst: ZSTD_cpuid_bmi1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15732,1
    - Dst: ZSTD_cpuid_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15733
      start: 15729
    functionDepth: 0
    functionLinenumber: 15729
    functionLinenumberEnd: 15733
    functionName: ZSTD_cpuSupportsBmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cpuid_bmi1
    - ZSTD_cpuid_bmi2
    - ZSTD_cpuid
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cpuSupportsBmi2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15746
      start: 15746
    functionDepth: 0
    functionLinenumber: 15746
    functionLinenumberEnd: 15746
    functionName: ZSTD_versionNumber
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_versionNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15748
      start: 15748
    functionDepth: 0
    functionLinenumber: 15748
    functionLinenumberEnd: 15748
    functionName: ZSTD_versionString
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZSTD_versionString(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15758
      start: 15758
    functionDepth: 2
    functionLinenumber: 15758
    functionLinenumberEnd: 15758
    functionName: ZSTD_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 26
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_isError(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15762
      start: 15762
    functionDepth: 4
    functionLinenumber: 15762
    functionLinenumberEnd: 15762
    functionName: ZSTD_getErrorName
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 48
    functionsReached:
    - ERR_getErrorName
    linkageType: ''
    returnType: char
    signature: char * ZSTD_getErrorName(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorCode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15766
      start: 15766
    functionDepth: 3
    functionLinenumber: 15766
    functionLinenumberEnd: 15766
    functionName: ZSTD_getErrorCode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_getErrorCode
    linkageType: ''
    returnType: ZSTD_ErrorCode
    signature: ZSTD_ErrorCode ZSTD_getErrorCode(size_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorString
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - ZSTD_ErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15770
      start: 15770
    functionDepth: 1
    functionLinenumber: 15770
    functionLinenumberEnd: 15770
    functionName: ZSTD_getErrorString
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_getErrorString
    linkageType: ''
    returnType: char
    signature: char * ZSTD_getErrorString(ZSTD_ErrorCode code)
  - 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: 15906
      start: 15905
    functionDepth: 0
    functionLinenumber: 15905
    functionLinenumberEnd: 15906
    functionName: FSE_CAT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_CAT(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: 15907
      start: 15906
    functionDepth: 0
    functionLinenumber: 15906
    functionLinenumberEnd: 15907
    functionName: FSE_FUNCTION_NAME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_FUNCTION_NAME(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: 15908
      start: 15907
    functionDepth: 0
    functionLinenumber: 15907
    functionLinenumberEnd: 15908
    functionName: FSE_TYPE_NAME
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_TYPE_NAME(X,Y)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FSE_TABLESTEP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15927,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15935,1
    - Dst: FSE_BUILD_CTABLE_WORKSPACE_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15936,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15936,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15940,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15946,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15957,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15959,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15977,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15979,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15981,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:15992,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16001,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16015,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16038,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16043,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16044,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16052,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16055,1
    - Dst: FSE_getMaxNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16057,1
    - Dst: FSE_bitCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16058,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 82
    argCount: 6
    argNames:
    - ct
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    - workSpace
    - wkspSize
    argTypes:
    - FSE_CTable*
    - short*
    - unsigned
    - unsigned
    - void*
    - size_t
    assertStmts:
    - condition: (position==0)
      pos:
        line_end: 16014
        line_start: 16014
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableLog < 16)
      pos:
        line_end: 15939
        line_start: 15939
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (normalizedCounter[s] > 1)
      pos:
        line_end: 16042
        line_start: 16042
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (n>=0)
      pos:
        line_end: 15980
        line_start: 15980
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (total <= INT_MAX)
      pos:
        line_end: 16037
        line_start: 16037
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (position == 0)
      pos:
        line_end: 16000
        line_start: 16000
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (normalizedCounter[u-1] >= 0)
      pos:
        line_end: 15956
        line_start: 15956
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cumul[u] >= cumul[u-1])
      pos:
        line_end: 15958
        line_start: 15958
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableSize % unroll == 0)
      pos:
        line_end: 15991
        line_start: 15991
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((size_t)workSpace & 1) == 0)
      pos:
        line_end: 15934
        line_start: 15934
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16063
      start: 15917
    functionDepth: 4
    functionLinenumber: 15917
    functionLinenumberEnd: 16063
    functionName: FSE_buildCTable_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_getMaxNbBits
    - ZSTD_highbit32
    - ERROR
    - DEBUGLOG
    - MEM_write64
    - FSE_TABLESTEP
    - FSE_BUILD_CTABLE_WORKSPACE_SIZE
    - FSE_bitCost
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_buildCTable_wksp(FSE_CTable* ct,\n                      const
      short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog,\n                            void*
      workSpace, size_t wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - maxSymbolValue
    - tableLog
    argTypes:
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16080
      start: 16072
    functionDepth: 0
    functionLinenumber: 16072
    functionLinenumberEnd: 16080
    functionName: FSE_NCountWriteBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16118,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16133,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16150,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16155,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16164,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16165,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16169,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16174,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 6
    argNames:
    - header
    - headerBufferSize
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    - writeIsSafe
    argTypes:
    - void*
    - size_t
    - short*
    - unsigned
    - unsigned
    - unsigned
    assertStmts:
    - condition: (symbol <= alphabetSize)
      pos:
        line_end: 16164
        line_start: 16164
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (out >= ostart)
      pos:
        line_end: 16173
        line_start: 16173
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16176
      start: 16082
    functionDepth: 1
    functionLinenumber: 16082
    functionLinenumberEnd: 16176
    functionName: FSE_writeNCount_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_writeNCount_generic (void* header, size_t headerBufferSize,\n
      \                  const short* normalizedCounter, unsigned maxSymbolValue,
      unsigned tableLog,\n                         unsigned writeIsSafe)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16182,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16183,1
    - Dst: FSE_NCountWriteBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16185,1
    - Dst: FSE_writeNCount_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16186,1
    - Dst: FSE_writeNCount_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - buffer
    - bufferSize
    - normalizedCounter
    - maxSymbolValue
    - tableLog
    argTypes:
    - void*
    - size_t
    - short*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16189
      start: 16179
    functionDepth: 2
    functionLinenumber: 16179
    functionLinenumberEnd: 16189
    functionName: FSE_writeNCount
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - FSE_writeNCount_generic
    - FSE_NCountWriteBound
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_writeNCount (void* buffer, size_t bufferSize,\n                  const
      short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16199,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16200,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srcSize
    - maxSymbolValue
    argTypes:
    - size_t
    - unsigned
    assertStmts:
    - condition: (srcSize > 1)
      pos:
        line_end: 16201
        line_start: 16201
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16204
      start: 16197
    functionDepth: 4
    functionLinenumber: 16197
    functionLinenumberEnd: 16204
    functionName: FSE_minTableLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_highbit32
    linkageType: ''
    returnType: unsigned
    signature: unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16208,1
    - Dst: FSE_minTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16210,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - maxTableLog
    - srcSize
    - maxSymbolValue
    - minus
    argTypes:
    - unsigned
    - size_t
    - unsigned
    - unsigned
    assertStmts:
    - condition: (srcSize > 1)
      pos:
        line_end: 16210
        line_start: 16210
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16218
      start: 16206
    functionDepth: 5
    functionLinenumber: 16206
    functionLinenumberEnd: 16218
    functionName: FSE_optimalTableLog_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - FSE_minTableLog
    - ZSTD_highbit32
    linkageType: ''
    returnType: unsigned
    signature: unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t
      srcSize, unsigned maxSymbolValue, unsigned minus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_optimalTableLog_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - maxTableLog
    - srcSize
    - maxSymbolValue
    argTypes:
    - unsigned
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16223
      start: 16220
    functionDepth: 6
    functionLinenumber: 16220
    functionLinenumberEnd: 16223
    functionName: FSE_optimalTableLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_optimalTableLog_internal
    linkageType: ''
    returnType: unsigned
    signature: unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize,
      unsigned maxSymbolValue)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_div64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16297,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16306,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 6
    argNames:
    - norm
    - tableLog
    - count
    - total
    - maxSymbolValue
    - lowProbCount
    argTypes:
    - short*
    - U32
    - unsigned*
    - size_t
    - U32
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16312
      start: 16228
    functionDepth: 1
    functionLinenumber: 16228
    functionLinenumberEnd: 16312
    functionName: FSE_normalizeM2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_div64
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count,
      size_t total, U32 maxSymbolValue, short lowProbCount)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16320,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16321,1
    - Dst: FSE_minTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16322,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16322,1
    - Dst: ZSTD_div64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16327,1
    - Dst: FSE_normalizeM2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16353,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16354,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16364,1
    - Dst: abs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16366,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16368,1
    - Dst: getchar
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16369,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 6
    argNames:
    - normalizedCounter
    - tableLog
    - count
    - total
    - maxSymbolValue
    - useLowProbCount
    argTypes:
    - short*
    - unsigned
    - unsigned*
    - size_t
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16374
      start: 16314
    functionDepth: 5
    functionLinenumber: 16314
    functionLinenumberEnd: 16374
    functionName: FSE_normalizeCount
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_isError
    - ERROR
    - ZSTD_div64
    - FSE_normalizeM2
    - abs
    - RAWLOG
    - FSE_minTableLog
    - getchar
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog,\n
      \                          const unsigned* count, size_t total,\n                           unsigned
      maxSymbolValue, unsigned useLowProbCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ct
    - symbolValue
    argTypes:
    - FSE_CTable*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16397
      start: 16377
    functionDepth: 0
    functionLinenumber: 16377
    functionLinenumberEnd: 16397
    functionName: FSE_buildCTable_rle
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_buildCTable_rle (FSE_CTable* ct, BYTE symbolValue)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BIT_initCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16413,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16414,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16419,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16420,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16421,1
    - Dst: FSE_FLUSHBITS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16422,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16424,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16425,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16431,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16432,1
    - Dst: FSE_FLUSHBITS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16433,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16439,1
    - Dst: FSE_FLUSHBITS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16442,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16444,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16447,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16448,1
    - Dst: FSE_FLUSHBITS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16451,1
    - Dst: FSE_flushCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16454,1
    - Dst: FSE_flushCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16455,1
    - Dst: BIT_closeCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16456,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - ct
    - fast
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - FSE_CTable*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16457
      start: 16400
    functionDepth: 6
    functionLinenumber: 16400
    functionLinenumberEnd: 16457
    functionName: FSE_compress_usingCTable_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_initCState2
    - FSE_isError
    - FSE_flushCState
    - BIT_initCStream
    - FSE_FLUSHBITS
    - BIT_closeCStream
    - FSE_encodeSymbol
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_compress_usingCTable_generic (void* dst, size_t dstSize,\n
      \                          const void* src, size_t srcSize,\n                           const
      FSE_CTable* ct, const unsigned fast)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16417
      start: 16416
    functionDepth: 0
    functionLinenumber: 16416
    functionLinenumberEnd: 16417
    functionName: FSE_FLUSHBITS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FSE_FLUSHBITS(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSE_BLOCKBOUND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16463,1
    - Dst: FSE_compress_usingCTable_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16466,1
    - Dst: FSE_compress_usingCTable_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - ct
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - FSE_CTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16469
      start: 16459
    functionDepth: 7
    functionLinenumber: 16459
    functionLinenumberEnd: 16469
    functionName: FSE_compress_usingCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_BLOCKBOUND
    - FSE_compress_usingCTable_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t FSE_compress_usingCTable (void* dst, size_t dstSize,\n                           const
      void* src, size_t srcSize,\n                           const FSE_CTable* ct)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_COMPRESSBOUND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16472
      start: 16472
    functionDepth: 1
    functionLinenumber: 16472
    functionLinenumberEnd: 16472
    functionName: FSE_compressBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_COMPRESSBOUND
    linkageType: ''
    returnType: size_t
    signature: size_t FSE_compressBound(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16500
      start: 16500
    functionDepth: 2
    functionLinenumber: 16500
    functionLinenumberEnd: 16500
    functionName: HIST_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned HIST_isError(size_t code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16513,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - count
    - maxSymbolValuePtr
    - src
    - srcSize
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts:
    - condition: (*ip <= maxSymbolValue)
      pos:
        line_end: 16516
        line_start: 16516
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16530
      start: 16505
    functionDepth: 1
    functionLinenumber: 16505
    functionLinenumberEnd: 16530
    functionName: HIST_count_simple
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr,\n
      \                          const void* src, size_t srcSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16558,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16560,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16564,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16567,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16569,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16574,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16579,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16584,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16604,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16606,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 6
    argNames:
    - count
    - maxSymbolValuePtr
    - source
    - sourceSize
    - check
    - workSpace
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    - HIST_checkInput_e
    - U32*
    assertStmts:
    - condition: (*maxSymbolValuePtr <= 255)
      pos:
        line_end: 16557
        line_start: 16557
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16609
      start: 16542
    functionDepth: 1
    functionLinenumber: 16542
    functionLinenumberEnd: 16609
    functionName: HIST_count_parallel_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_memmove
    - MEM_read32
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t HIST_count_parallel_wksp(\n                                unsigned*
      count, unsigned* maxSymbolValuePtr,\n                                const void*
      source, size_t sourceSize,\n                                HIST_checkInput_e
      check,\n                                U32* const workSpace)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HIST_count_simple
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16621,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16622,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16623,1
    - Dst: HIST_count_parallel_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - count
    - maxSymbolValuePtr
    - source
    - sourceSize
    - workSpace
    - workSpaceSize
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16625
      start: 16616
    functionDepth: 2
    functionLinenumber: 16616
    functionLinenumberEnd: 16625
    functionName: HIST_countFast_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HIST_count_simple
    - ERROR
    - HIST_count_parallel_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr,\n
      \                         const void* source, size_t sourceSize,\n                          void*
      workSpace, size_t workSpaceSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16634,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16635,1
    - Dst: HIST_count_parallel_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16637,1
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - count
    - maxSymbolValuePtr
    - source
    - sourceSize
    - workSpace
    - workSpaceSize
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16640
      start: 16630
    functionDepth: 3
    functionLinenumber: 16630
    functionLinenumberEnd: 16640
    functionName: HIST_count_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HIST_count_parallel_wksp
    - HIST_countFast_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr,\n
      \                      const void* source, size_t sourceSize,\n                       void*
      workSpace, size_t workSpaceSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - count
    - maxSymbolValuePtr
    - source
    - sourceSize
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16649
      start: 16644
    functionDepth: 3
    functionLinenumber: 16644
    functionLinenumberEnd: 16649
    functionName: HIST_countFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HIST_countFast_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr,\n
      \                    const void* source, size_t sourceSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HIST_count_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - count
    - maxSymbolValuePtr
    - src
    - srcSize
    argTypes:
    - unsigned*
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16656
      start: 16651
    functionDepth: 4
    functionLinenumber: 16651
    functionLinenumberEnd: 16656
    functionName: HIST_count
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HIST_count_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr,\n
      \                const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16701
      start: 16700
    functionDepth: 0
    functionLinenumber: 16700
    functionLinenumberEnd: 16701
    functionName: HUF_STATIC_ASSERT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_STATIC_ASSERT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16724,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - arr
    - size
    argTypes:
    - U32*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16728
      start: 16720
    functionDepth: 1
    functionLinenumber: 16720
    functionLinenumberEnd: 16728
    functionName: showU32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RAWLOG
    linkageType: ''
    returnType: size_t
    signature: size_t showU32(const U32* arr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16736,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16736,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctable
    - size
    argTypes:
    - HUF_CElt*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16741
      start: 16732
    functionDepth: 1
    functionLinenumber: 16732
    functionLinenumberEnd: 16741
    functionName: showCTableBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getNbBits
    - RAWLOG
    linkageType: ''
    returnType: size_t
    signature: size_t showCTableBits(const HUF_CElt* ctable, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16747,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hnode
    - size
    argTypes:
    - nodeElt*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16751
      start: 16743
    functionDepth: 1
    functionLinenumber: 16743
    functionLinenumberEnd: 16751
    functionName: showHNodeSymbols
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RAWLOG
    linkageType: ''
    returnType: size_t
    signature: size_t showHNodeSymbols(const nodeElt* hnode, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16757,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hnode
    - size
    argTypes:
    - nodeElt*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16761
      start: 16753
    functionDepth: 1
    functionLinenumber: 16753
    functionLinenumberEnd: 16761
    functionName: showHNodeBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RAWLOG
    linkageType: ''
    returnType: size_t
    signature: size_t showHNodeBits(const nodeElt* hnode, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16777,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16778,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16780,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - workspace
    - workspaceSizePtr
    - align
    argTypes:
    - void*
    - size_t*
    - size_t
    assertStmts:
    - condition: ((align & (align - 1)) == 0)
      pos:
        line_end: 16776
        line_start: 16776
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (align <= HUF_WORKSPACE_MAX_ALIGNMENT)
      pos:
        line_end: 16777
        line_start: 16777
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (add < align)
      pos:
        line_end: 16779
        line_start: 16779
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((size_t)aligned & mask) == 0)
      pos:
        line_end: 16780
        line_start: 16780
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16788
      start: 16771
    functionDepth: 1
    functionLinenumber: 16771
    functionLinenumberEnd: 16788
    functionName: HUF_alignUpWorkspace
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void * HUF_alignUpWorkspace(void* workspace, size_t* workspaceSizePtr,
      size_t align)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HUF_alignUpWorkspace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16816,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16816,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16818,1
    - Dst: HIST_count_simple
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16824,1
    - Dst: FSE_optimalTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16829,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16830,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16830,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16833,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16833,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16838,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16838,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16839,1
    - Dst: FSE_compress_usingCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - dst
    - dstSize
    - weightTable
    - wtSize
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16845
      start: 16805
    functionDepth: 8
    functionLinenumber: 16805
    functionLinenumberEnd: 16845
    functionName: HUF_compressWeights
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HIST_count_simple
    - CHECK_F
    - FSE_optimalTableLog
    - CHECK_V_F
    - ERROR
    - FSE_writeNCount
    - ZSTD_ALIGNOF
    - FSE_compress_usingCTable
    - FSE_buildCTable_wksp
    - FSE_normalizeCount
    - HUF_alignUpWorkspace
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compressWeights(void* dst, size_t dstSize,\n              const
      void* weightTable, size_t wtSize,\n                    void* workspace, size_t
      workspaceSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - HUF_CElt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16850
      start: 16847
    functionDepth: 0
    functionLinenumber: 16847
    functionLinenumberEnd: 16850
    functionName: HUF_getNbBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_getNbBits(HUF_CElt elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - HUF_CElt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16855
      start: 16852
    functionDepth: 0
    functionLinenumber: 16852
    functionLinenumberEnd: 16855
    functionName: HUF_getNbBitsFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_getNbBitsFast(HUF_CElt elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - HUF_CElt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16860
      start: 16857
    functionDepth: 0
    functionLinenumber: 16857
    functionLinenumberEnd: 16860
    functionName: HUF_getValue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_getValue(HUF_CElt elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elt
    argTypes:
    - HUF_CElt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16865
      start: 16862
    functionDepth: 0
    functionLinenumber: 16862
    functionLinenumberEnd: 16865
    functionName: HUF_getValueFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_getValueFast(HUF_CElt elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - elt
    - nbBits
    argTypes:
    - HUF_CElt*
    - size_t
    assertStmts:
    - condition: (nbBits <= HUF_TABLELOG_ABSOLUTEMAX)
      pos:
        line_end: 16868
        line_start: 16868
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16871
      start: 16867
    functionDepth: 1
    functionLinenumber: 16867
    functionLinenumberEnd: 16871
    functionName: HUF_setNbBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void HUF_setNbBits(HUF_CElt* elt, size_t nbBits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16875,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - elt
    - value
    argTypes:
    - HUF_CElt*
    - size_t
    assertStmts:
    - condition: ((value >> nbBits) == 0)
      pos:
        line_end: 16876
        line_start: 16876
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16880
      start: 16873
    functionDepth: 1
    functionLinenumber: 16873
    functionLinenumberEnd: 16880
    functionName: HUF_setValue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_getNbBits
    linkageType: ''
    returnType: void
    signature: void HUF_setValue(HUF_CElt* elt, size_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctable
    argTypes:
    - HUF_CElt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16887
      start: 16882
    functionDepth: 1
    functionLinenumber: 16882
    functionLinenumberEnd: 16887
    functionName: HUF_readCTableHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: HUF_CTableHeader
    signature: HUF_CTableHeader HUF_readCTableHeader(HUF_CElt const* ctable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16892,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16893,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16894,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16896,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ctable
    - tableLog
    - maxSymbolValue
    argTypes:
    - HUF_CElt*
    - U32
    - U32
    assertStmts:
    - condition: (maxSymbolValue < 256)
      pos:
        line_end: 16895
        line_start: 16895
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableLog < 256)
      pos:
        line_end: 16893
        line_start: 16893
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16899
      start: 16889
    functionDepth: 1
    functionLinenumber: 16889
    functionLinenumberEnd: 16899
    functionName: HUF_writeCTableHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - assert
    - ZSTD_memcpy
    - HUF_STATIC_ASSERT
    linkageType: ''
    returnType: void
    signature: void HUF_writeCTableHeader(HUF_CElt* ctable, U32 tableLog, U32 maxSymbolValue)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HUF_alignUpWorkspace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16914,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16914,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16916,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16918,1
    - Dst: HUF_readCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16918,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16919,1
    - Dst: HUF_readCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16919,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16922,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16923,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16930,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16933,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16934,1
    - Dst: HUF_compressWeights
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16934,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16941,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16942,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 7
    argNames:
    - dst
    - maxDstSize
    - CTable
    - maxSymbolValue
    - huffLog
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    - HUF_CElt*
    - unsigned
    - unsigned
    - void*
    - size_t
    assertStmts:
    - condition: (HUF_readCTableHeader(CTable).maxSymbolValue == maxSymbolValue)
      pos:
        line_end: 16917
        line_start: 16917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (HUF_readCTableHeader(CTable).tableLog == huffLog)
      pos:
        line_end: 16918
        line_start: 16918
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 16948
      start: 16907
    functionDepth: 9
    functionLinenumber: 16907
    functionLinenumberEnd: 16948
    functionName: HUF_writeCTable_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getNbBits
    - HUF_compressWeights
    - CHECK_V_F
    - ERROR
    - HUF_readCTableHeader
    - ZSTD_ALIGNOF
    - HUF_STATIC_ASSERT
    - assert
    - HUF_alignUpWorkspace
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize,\n                            const
      HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog,\n                            void*
      workspace, size_t workspaceSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16960,1
    - Dst: HUF_readStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16960,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16964,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16965,1
    - Dst: HUF_writeCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16969,1
    - Dst: HUF_setNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16982,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16988,1
    - Dst: HUF_setValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16998,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:16998,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - CTable
    - maxSymbolValuePtr
    - src
    - srcSize
    - hasZeroWeights
    argTypes:
    - HUF_CElt*
    - unsigned*
    - void*
    - size_t
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17002
      start: 16951
    functionDepth: 2
    functionLinenumber: 16951
    functionLinenumberEnd: 17002
    functionName: HUF_readCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_writeCTableHeader
    - HUF_getNbBits
    - HUF_setValue
    - CHECK_V_F
    - ERROR
    - HUF_readStats
    - HUF_setNbBits
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr,
      const void* src, size_t srcSize, unsigned* hasZeroWeights)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17007,1
    - Dst: HUF_readCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17008,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - CTable
    - symbolValue
    argTypes:
    - HUF_CElt*
    - U32
    assertStmts:
    - condition: (symbolValue <= HUF_SYMBOLVALUE_MAX)
      pos:
        line_end: 17006
        line_start: 17006
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17011
      start: 17004
    functionDepth: 2
    functionLinenumber: 17004
    functionLinenumberEnd: 17011
    functionName: HUF_getNbBitsFromCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_getNbBits
    - HUF_readCTableHeader
    linkageType: ''
    returnType: U32
    signature: U32 HUF_getNbBitsFromCTable(HUF_CElt const* CTable, U32 symbolValue)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17041,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17058,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17064,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17066,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17073,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17086,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17100,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17144,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 3
    argNames:
    - huffNode
    - lastNonNull
    - targetNbBits
    argTypes:
    - nodeElt*
    - U32
    - U32
    assertStmts:
    - condition: (((U32)totalCost & (baseCost - 1)) == 0)
      pos:
        line_end: 17063
        line_start: 17063
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (huffNode[n].nbBits <= targetNbBits)
      pos:
        line_end: 17057
        line_start: 17057
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (totalCost > 0)
      pos:
        line_end: 17065
        line_start: 17065
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rankLast[nBitsToDecrease] != noSymbol || nBitsToDecrease == 1)
      pos:
        line_end: 17099
        line_start: 17099
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rankLast[nBitsToDecrease] != noSymbol)
      pos:
        line_end: 17103
        line_start: 17103
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (n >= 0)
      pos:
        line_end: 17143
        line_start: 17143
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17157
      start: 17035
    functionDepth: 4
    functionLinenumber: 17035
    functionLinenumberEnd: 17157
    functionName: HUF_setMaxHeight
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - assert
    - ZSTD_highbit32
    - DEBUGLOG
    linkageType: ''
    returnType: U32
    signature: U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 targetNbBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17193
      start: 17189
    functionDepth: 4
    functionLinenumber: 17189
    functionLinenumberEnd: 17193
    functionName: HUF_getIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    linkageType: ''
    returnType: U32
    signature: U32 HUF_getIndex(U32 const count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - nodeElt*
    - nodeElt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17200
      start: 17196
    functionDepth: 0
    functionLinenumber: 17196
    functionLinenumberEnd: 17200
    functionName: HUF_swapNodes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HUF_swapNodes(nodeElt* a, nodeElt* b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - huffNode
    - maxSymbolValue1
    argTypes:
    - nodeElt[]
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17211
      start: 17203
    functionDepth: 0
    functionLinenumber: 17203
    functionLinenumberEnd: 17211
    functionName: HUF_isSorted
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC HUF_isSorted(nodeElt huffNode[], U32 const maxSymbolValue1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - huffNode
    - low
    - high
    argTypes:
    - nodeElt[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17227
      start: 17214
    functionDepth: 0
    functionLinenumber: 17214
    functionLinenumberEnd: 17227
    functionName: HUF_insertionSort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HINT_INLINE
    signature: HINT_INLINE HUF_insertionSort(nodeElt huffNode[], int const low, int
      const high)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_swapNodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17240,1
    - Dst: HUF_swapNodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arr
    - low
    - high
    argTypes:
    - nodeElt[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17245
      start: 17230
    functionDepth: 1
    functionLinenumber: 17230
    functionLinenumberEnd: 17245
    functionName: HUF_quickSortPartition
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_swapNodes
    linkageType: ''
    returnType: int
    signature: int HUF_quickSortPartition(nodeElt arr[], int const low, int const
      high)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_insertionSort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17253,1
    - Dst: HUF_quickSortPartition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17257,1
    - Dst: HUF_simpleQuickSort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17259,1
    - Dst: HUF_simpleQuickSort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - arr
    - low
    - high
    argTypes:
    - nodeElt[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17266
      start: 17250
    functionDepth: 2
    functionLinenumber: 17250
    functionLinenumberEnd: 17266
    functionName: HUF_simpleQuickSort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - HUF_simpleQuickSort
    - HUF_insertionSort
    - HUF_quickSortPartition
    linkageType: ''
    returnType: void
    signature: void HUF_simpleQuickSort(nodeElt arr[], int low, int high)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17289,1
    - Dst: HUF_getIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17291,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17292,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17296,1
    - Dst: HUF_getIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17306,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17308,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17318,1
    - Dst: HUF_simpleQuickSort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17319,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17323,1
    - Dst: HUF_isSorted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - huffNode
    - count
    - maxSymbolValue
    - rankPosition
    argTypes:
    - nodeElt[]
    - unsigned[]
    - U32
    - rankPos[]
    assertStmts:
    - condition: (lowerRank < RANK_POSITION_TABLE_SIZE - 1)
      pos:
        line_end: 17291
        line_start: 17291
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0)
      pos:
        line_end: 17295
        line_start: 17295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (pos < maxSymbolValue1)
      pos:
        line_end: 17307
        line_start: 17307
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bucketStartIdx < maxSymbolValue1)
      pos:
        line_end: 17317
        line_start: 17317
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (HUF_isSorted(huffNode, maxSymbolValue1))
      pos:
        line_end: 17322
        line_start: 17322
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17324
      start: 17279
    functionDepth: 5
    functionLinenumber: 17279
    functionLinenumberEnd: 17324
    functionName: HUF_sort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_simpleQuickSort
    - HUF_isSorted
    - HUF_getIndex
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: void
    signature: void HUF_sort(nodeElt huffNode[], const unsigned count[], U32 const
      maxSymbolValue, rankPos rankPosition[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17347,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17374,1
    - Dst: showHNodeBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - huffNode
    - maxSymbolValue
    argTypes:
    - nodeElt*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17377
      start: 17340
    functionDepth: 2
    functionLinenumber: 17340
    functionLinenumberEnd: 17377
    functionName: HUF_buildTree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - showHNodeBits
    - DEBUGLOG
    linkageType: ''
    returnType: int
    signature: int HUF_buildTree(nodeElt* huffNode, U32 maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_setNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17407,1
    - Dst: HUF_setValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17409,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17409,1
    - Dst: HUF_writeCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - CTable
    - huffNode
    - nonNullRank
    - maxSymbolValue
    - maxNbBits
    argTypes:
    - HUF_CElt*
    - nodeElt*
    - int
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17412
      start: 17389
    functionDepth: 2
    functionLinenumber: 17389
    functionLinenumberEnd: 17412
    functionName: HUF_buildCTableFromTree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_writeCTableHeader
    - HUF_getNbBits
    - HUF_setNbBits
    - HUF_setValue
    linkageType: ''
    returnType: void
    signature: void HUF_buildCTableFromTree(HUF_CElt* CTable, nodeElt const* huffNode,
      int nonNullRank, U32 maxSymbolValue, U32 maxNbBits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HUF_alignUpWorkspace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17419,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17419,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17424,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17426,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17430,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17433,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17434,1
    - Dst: HUF_sort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17437,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17438,1
    - Dst: showHNodeSymbols
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17438,1
    - Dst: HUF_buildTree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17441,1
    - Dst: HUF_setMaxHeight
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17444,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17445,1
    - Dst: HUF_buildCTableFromTree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - CTable
    - count
    - maxSymbolValue
    - maxNbBits
    - workSpace
    - wkspSize
    argTypes:
    - HUF_CElt*
    - unsigned*
    - U32
    - U32
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17450
      start: 17414
    functionDepth: 6
    functionLinenumber: 17414
    functionLinenumberEnd: 17450
    functionName: HUF_buildCTable_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_buildTree
    - HUF_setMaxHeight
    - ERROR
    - DEBUGLOG
    - showHNodeSymbols
    - ZSTD_ALIGNOF
    - HUF_STATIC_ASSERT
    - HUF_sort
    - ZSTD_memset
    - HUF_buildCTableFromTree
    - HUF_alignUpWorkspace
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_buildCTable_wksp(HUF_CElt* CTable, const unsigned* count,
      U32 maxSymbolValue, U32 maxNbBits,\n                     void* workSpace, size_t
      wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - CTable
    - count
    - maxSymbolValue
    argTypes:
    - HUF_CElt*
    - unsigned*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17461
      start: 17452
    functionDepth: 1
    functionLinenumber: 17452
    functionLinenumberEnd: 17461
    functionName: HUF_estimateCompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getNbBits
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned*
      count, unsigned maxSymbolValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17464,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17469,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - CTable
    - count
    - maxSymbolValue
    argTypes:
    - HUF_CElt*
    - unsigned*
    - unsigned
    assertStmts:
    - condition: (header.tableLog <= HUF_TABLELOG_ABSOLUTEMAX)
      pos:
        line_end: 17468
        line_start: 17468
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17478
      start: 17463
    functionDepth: 2
    functionLinenumber: 17463
    functionLinenumberEnd: 17478
    functionName: HUF_validateCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_getNbBits
    - HUF_readCTableHeader
    linkageType: ''
    returnType: int
    signature: int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count,
      unsigned maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_COMPRESSBOUND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17480
      start: 17480
    functionDepth: 1
    functionLinenumber: 17480
    functionLinenumberEnd: 17480
    functionName: HUF_compressBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_COMPRESSBOUND
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_compressBound(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17518,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - bitC
    - startPtr
    - dstCapacity
    argTypes:
    - HUF_CStream_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17524
      start: 17515
    functionDepth: 1
    functionLinenumber: 17515
    functionLinenumberEnd: 17524
    functionName: HUF_initCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_initCStream(HUF_CStream_t* bitC,\n                                  void*
      startPtr, size_t dstCapacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17538,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17539,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17539,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17545,1
    - Dst: HUF_getValueFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17546,1
    - Dst: HUF_getValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17546,1
    - Dst: HUF_getNbBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17550,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17551,1
    - Dst: HUF_getNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17558,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17559,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17562,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - bitC
    - elt
    - idx
    - kFast
    argTypes:
    - HUF_CStream_t*
    - HUF_CElt
    - int
    - int
    assertStmts:
    - condition: (idx <= 1)
      pos:
        line_end: 17537
        line_start: 17537
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (HUF_getNbBits(elt) <= HUF_TABLELOG_ABSOLUTEMAX)
      pos:
        line_end: 17538
        line_start: 17538
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER)
      pos:
        line_end: 17550
        line_start: 17550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((elt >> dirtyBits) << (dirtyBits + nbBits)) == 0)
      pos:
        line_end: 17561
        line_start: 17561
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!kFast || (bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER)
      pos:
        line_end: 17563
        line_start: 17563
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17568
      start: 17536
    functionDepth: 4
    functionLinenumber: 17536
    functionLinenumberEnd: 17568
    functionName: HUF_addBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getNbBits
    - ZSTD_highbit32
    - HUF_getValue
    - HUF_getNbBitsFast
    - assert
    - HUF_getValueFast
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_addBits(HUF_CStream_t* bitC, HUF_CElt elt,
      int idx, int kFast)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - HUF_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17574
      start: 17570
    functionDepth: 0
    functionLinenumber: 17570
    functionLinenumberEnd: 17574
    functionName: HUF_zeroIndex1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_zeroIndex1(HUF_CStream_t* bitC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17582,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - HUF_CStream_t*
    assertStmts:
    - condition: ((bitC->bitPos[1] & 0xFF) < HUF_BITS_IN_CONTAINER)
      pos:
        line_end: 17581
        line_start: 17581
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((bitC->bitPos[0] & 0xFF) <= HUF_BITS_IN_CONTAINER)
      pos:
        line_end: 17585
        line_start: 17585
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17587
      start: 17580
    functionDepth: 1
    functionLinenumber: 17580
    functionLinenumberEnd: 17587
    functionName: HUF_mergeIndex1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_mergeIndex1(HUF_CStream_t* bitC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17605,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17606,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17607,1
    - Dst: MEM_writeLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17608,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - bitC
    - kFast
    argTypes:
    - HUF_CStream_t*
    - int
    assertStmts:
    - condition: (nbBits > 0)
      pos:
        line_end: 17604
        line_start: 17604
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbBits <= sizeof(bitC->bitContainer[0]) * 8)
      pos:
        line_end: 17605
        line_start: 17605
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitC->ptr <= bitC->endPtr)
      pos:
        line_end: 17606
        line_start: 17606
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!kFast || bitC->ptr <= bitC->endPtr)
      pos:
        line_end: 17609
        line_start: 17609
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17616
      start: 17596
    functionDepth: 4
    functionLinenumber: 17596
    functionLinenumberEnd: 17616
    functionName: HUF_flushBits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_writeLEST
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_flushBits(HUF_CStream_t* bitC, int kFast)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_setNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17624,1
    - Dst: HUF_setValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17627
      start: 17621
    functionDepth: 2
    functionLinenumber: 17621
    functionLinenumberEnd: 17627
    functionName: HUF_endMark
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_setNbBits
    - HUF_setValue
    linkageType: ''
    returnType: HUF_CElt
    signature: HUF_CElt HUF_endMark(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17634,1
    - Dst: HUF_endMark
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17634,1
    - Dst: HUF_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bitC
    argTypes:
    - HUF_CStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17641
      start: 17632
    functionDepth: 5
    functionLinenumber: 17632
    functionLinenumberEnd: 17641
    functionName: HUF_closeCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_addBits
    - HUF_endMark
    - HUF_flushBits
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_closeCStream(HUF_CStream_t* bitC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - bitCPtr
    - symbol
    - CTable
    - idx
    - fast
    argTypes:
    - HUF_CStream_t*
    - U32
    - HUF_CElt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17647
      start: 17643
    functionDepth: 5
    functionLinenumber: 17643
    functionLinenumberEnd: 17647
    functionName: HUF_encodeSymbol
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_addBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_encodeSymbol(HUF_CStream_t* bitCPtr, U32
      symbol, const HUF_CElt* CTable, int idx, int fast)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17660,1
    - Dst: HUF_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17662,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17664,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17670,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17672,1
    - Dst: HUF_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17673,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17676,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17682,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17684,1
    - Dst: HUF_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17685,1
    - Dst: HUF_zeroIndex1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17690,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17692,1
    - Dst: HUF_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17694,1
    - Dst: HUF_mergeIndex1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17696,1
    - Dst: HUF_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17697,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17699,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - bitC
    - ip
    - srcSize
    - ct
    - kUnroll
    - kFastFlush
    - kLastFast
    argTypes:
    - HUF_CStream_t*
    - BYTE*
    - size_t
    - HUF_CElt*
    - int
    - int
    - int
    assertStmts:
    - condition: (n % kUnroll == 0)
      pos:
        line_end: 17663
        line_start: 17663
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (n % (2 * kUnroll) == 0)
      pos:
        line_end: 17675
        line_start: 17675
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (n == 0)
      pos:
        line_end: 17698
        line_start: 17698
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17701
      start: 17649
    functionDepth: 6
    functionLinenumber: 17649
    functionLinenumberEnd: 17701
    functionName: HUF_compress1X_usingCTable_internal_body_loop
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_mergeIndex1
    - HUF_flushBits
    - HUF_zeroIndex1
    - assert
    - HUF_encodeSymbol
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_compress1X_usingCTable_internal_body_loop(HUF_CStream_t*
      bitC,\n                                   const BYTE* ip, size_t srcSize,\n
      \                                  const HUF_CElt* ct,\n                                   int
      kUnroll, int kFastFlush, int kLastFast)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srcSize
    - tableLog
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17711
      start: 17708
    functionDepth: 0
    functionLinenumber: 17708
    functionLinenumberEnd: 17711
    functionName: HUF_tightCompressBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_tightCompressBound(size_t srcSize, size_t tableLog)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readCTableHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17719,1
    - Dst: HUF_initCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17729,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17730,1
    - Dst: HUF_tightCompressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17732,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17733,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17733,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17735,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17738,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17743,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17747,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17753,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17756,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17759,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17762,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17765,1
    - Dst: HUF_compress1X_usingCTable_internal_body_loop
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17769,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17774,1
    - Dst: HUF_closeCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17776,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    assertStmts:
    - condition: (bitC.ptr <= bitC.endPtr)
      pos:
        line_end: 17773
        line_start: 17773
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17777
      start: 17714
    functionDepth: 7
    functionLinenumber: 17714
    functionLinenumberEnd: 17777
    functionName: HUF_compress1X_usingCTable_internal_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_isError
    - MEM_32bits
    - HUF_tightCompressBound
    - HUF_initCStream
    - HUF_readCTableHeader
    - HUF_closeCStream
    - HUF_compress1X_usingCTable_internal_body_loop
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_compress1X_usingCTable_internal_body(void*
      dst, size_t dstSize,\n                                   const void* src, size_t
      srcSize,\n                                   const HUF_CElt* CTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17787
      start: 17781
    functionDepth: 8
    functionLinenumber: 17781
    functionLinenumberEnd: 17787
    functionName: HUF_compress1X_usingCTable_internal_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress1X_usingCTable_internal_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE HUF_compress1X_usingCTable_internal_bmi2(void*
      dst, size_t dstSize,\n                                   const void* src, size_t
      srcSize,\n                                   const HUF_CElt* CTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17795
      start: 17789
    functionDepth: 8
    functionLinenumber: 17789
    functionLinenumberEnd: 17795
    functionName: HUF_compress1X_usingCTable_internal_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress1X_usingCTable_internal_body
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress1X_usingCTable_internal_default(void* dst, size_t
      dstSize,\n                                      const void* src, size_t srcSize,\n
      \                                     const HUF_CElt* CTable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17803,1
    - Dst: HUF_compress1X_usingCTable_internal_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17806
      start: 17797
    functionDepth: 9
    functionLinenumber: 17797
    functionLinenumberEnd: 17806
    functionName: HUF_compress1X_usingCTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress1X_usingCTable_internal_bmi2
    - HUF_compress1X_usingCTable_internal_default
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize,\n
      \                             const void* src, size_t srcSize,\n                              const
      HUF_CElt* CTable, const int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17817
      start: 17810
    functionDepth: 8
    functionLinenumber: 17810
    functionLinenumberEnd: 17817
    functionName: HUF_compress1X_usingCTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress1X_usingCTable_internal_body
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize,\n
      \                             const void* src, size_t srcSize,\n                              const
      HUF_CElt* CTable, const int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17824
      start: 17821
    functionDepth: 10
    functionLinenumber: 17821
    functionLinenumberEnd: 17824
    functionName: HUF_compress1X_usingCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress1X_usingCTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const
      void* src, size_t srcSize, const HUF_CElt* CTable, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17842,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17843,1
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17843,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17845,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17850,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17851,1
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17851,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17853,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17858,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17859,1
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17859,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17861,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17866,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17867,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17868,1
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17868,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    - int
    assertStmts:
    - condition: (op <= oend)
      pos:
        line_end: 17841
        line_start: 17841
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 17849
        line_start: 17849
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 17857
        line_start: 17857
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 17865
        line_start: 17865
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip <= iend)
      pos:
        line_end: 17866
        line_start: 17866
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17874
      start: 17826
    functionDepth: 10
    functionLinenumber: 17826
    functionLinenumberEnd: 17874
    functionName: HUF_compress4X_usingCTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_V_F
    - MEM_writeLE16
    - HUF_compress1X_usingCTable_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize,\n
      \                             const void* src, size_t srcSize,\n                              const
      HUF_CElt* CTable, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress4X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - CTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_CElt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17879
      start: 17876
    functionDepth: 11
    functionLinenumber: 17876
    functionLinenumberEnd: 17879
    functionName: HUF_compress4X_usingCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_compress4X_usingCTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const
      void* src, size_t srcSize, const HUF_CElt* CTable, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HUF_compress1X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17889,1
    - Dst: HUF_compress4X_usingCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17890,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17891,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 8
    argNames:
    - ostart
    - op
    - oend
    - src
    - srcSize
    - nbStreams
    - CTable
    - flags
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - void*
    - size_t
    - HUF_nbStreams_e
    - HUF_CElt*
    - int
    assertStmts:
    - condition: (op >= ostart)
      pos:
        line_end: 17894
        line_start: 17894
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17898
      start: 17883
    functionDepth: 11
    functionLinenumber: 17883
    functionLinenumberEnd: 17898
    functionName: HUF_compressCTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_isError
    - HUF_compress4X_usingCTable_internal
    - HUF_compress1X_usingCTable_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compressCTable_internal(\n                BYTE* const ostart,
      BYTE* op, BYTE* const oend,\n                const void* src, size_t srcSize,\n
      \               HUF_nbStreams_e nbStreams, const HUF_CElt* CTable, const int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - count
    - maxSymbolValue
    argTypes:
    - unsigned*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17923
      start: 17913
    functionDepth: 0
    functionLinenumber: 17913
    functionLinenumberEnd: 17923
    functionName: HUF_cardinality
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned HUF_cardinality(const unsigned* count, unsigned maxSymbolValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symbolCardinality
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17929
      start: 17925
    functionDepth: 4
    functionLinenumber: 17925
    functionLinenumberEnd: 17929
    functionName: HUF_minTableLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    linkageType: ''
    returnType: unsigned
    signature: unsigned HUF_minTableLog(unsigned symbolCardinality)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17940,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17941,1
    - Dst: FSE_optimalTableLog_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17945,1
    - Dst: HUF_cardinality
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17951,1
    - Dst: HUF_minTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17952,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17956,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17960,1
    - Dst: HUF_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17962,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17963,1
    - Dst: HUF_writeCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17967,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17970,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17972,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17983,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 8
    argNames:
    - maxTableLog
    - srcSize
    - maxSymbolValue
    - workSpace
    - wkspSize
    - table
    - count
    - flags
    argTypes:
    - unsigned
    - size_t
    - unsigned
    - void*
    - size_t
    - HUF_CElt*
    - unsigned*
    - int
    assertStmts:
    - condition: (srcSize > 1)
      pos:
        line_end: 17939
        line_start: 17939
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (wkspSize >= sizeof(HUF_buildCTable_wksp_tables))
      pos:
        line_end: 17940
        line_start: 17940
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (optLog <= HUF_TABLELOG_MAX)
      pos:
        line_end: 17982
        line_start: 17982
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 17986
      start: 17931
    functionDepth: 10
    functionLinenumber: 17931
    functionLinenumberEnd: 17986
    functionName: HUF_optimalTableLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_writeCTable_wksp
    - HUF_buildCTable_wksp
    - FSE_optimalTableLog_internal
    - ERR_isError
    - DEBUGLOG
    - HUF_cardinality
    - HUF_estimateCompressedSize
    - HUF_minTableLog
    - assert
    linkageType: ''
    returnType: unsigned
    signature: "unsigned HUF_optimalTableLog(\n            unsigned maxTableLog,\n
      \           size_t srcSize,\n            unsigned maxSymbolValue,\n            void*
      workSpace, size_t wkspSize,\n            HUF_CElt* table,\n      const unsigned*
      count,\n            int flags)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: HUF_alignUpWorkspace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17999,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:17999,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18004,1
    - Dst: HUF_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18005,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18008,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18011,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18012,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18013,1
    - Dst: HUF_compressCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18019,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18025,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18028,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18030,1
    - Dst: HIST_count_simple
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18030,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18034,1
    - Dst: HIST_count_simple
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18034,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18041,1
    - Dst: HIST_count_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18041,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18045,1
    - Dst: showU32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18045,1
    - Dst: HUF_validateCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18050,1
    - Dst: HUF_compressCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18055,1
    - Dst: HUF_optimalTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18061,1
    - Dst: HUF_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18062,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18065,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18067,1
    - Dst: showCTableBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18067,1
    - Dst: CHECK_V_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18071,1
    - Dst: HUF_writeCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18071,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18075,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18076,1
    - Dst: HUF_compressCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18078,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18088,1
    - Dst: HUF_compressCTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18090,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 12
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - maxSymbolValue
    - huffLog
    - nbStreams
    - workSpace
    - wkspSize
    - oldHufTable
    - repeat
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - unsigned
    - HUF_nbStreams_e
    - void*
    - size_t
    - HUF_CElt*
    - HUF_repeat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18093
      start: 17991
    functionDepth: 12
    functionLinenumber: 17991
    functionLinenumberEnd: 18093
    functionName: HUF_compress_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - CHECK_F
    - HUF_optimalTableLog
    - CHECK_V_F
    - ERROR
    - showU32
    - HUF_validateCTable
    - HUF_alignUpWorkspace
    - showCTableBits
    - DEBUG_STATIC_ASSERT
    - HIST_count_simple
    - HUF_writeCTable_wksp
    - HUF_buildCTable_wksp
    - DEBUGLOG
    - HUF_estimateCompressedSize
    - ZSTD_ALIGNOF
    - HUF_STATIC_ASSERT
    - ZSTD_memcpy
    - HUF_compressCTable_internal
    - HIST_count_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress_internal (void* dst, size_t dstSize,\n                 const
      void* src, size_t srcSize,\n                       unsigned maxSymbolValue,
      unsigned huffLog,\n                       HUF_nbStreams_e nbStreams,\n                       void*
      workSpace, size_t wkspSize,\n                       HUF_CElt* oldHufTable, HUF_repeat*
      repeat, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18101,1
    - Dst: HUF_compress_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 11
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - maxSymbolValue
    - huffLog
    - workSpace
    - wkspSize
    - hufTable
    - repeat
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - unsigned
    - void*
    - size_t
    - HUF_CElt*
    - HUF_repeat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18106
      start: 18095
    functionDepth: 13
    functionLinenumber: 18095
    functionLinenumberEnd: 18106
    functionName: HUF_compress1X_repeat
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - HUF_compress_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress1X_repeat (void* dst, size_t dstSize,\n                      const
      void* src, size_t srcSize,\n                      unsigned maxSymbolValue, unsigned
      huffLog,\n                      void* workSpace, size_t wkspSize,\n                      HUF_CElt*
      hufTable, HUF_repeat* repeat, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18118,1
    - Dst: HUF_compress_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 11
    argNames:
    - dst
    - dstSize
    - src
    - srcSize
    - maxSymbolValue
    - huffLog
    - workSpace
    - wkspSize
    - hufTable
    - repeat
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    - unsigned
    - void*
    - size_t
    - HUF_CElt*
    - HUF_repeat*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18123
      start: 18112
    functionDepth: 13
    functionLinenumber: 18112
    functionLinenumberEnd: 18123
    functionName: HUF_compress4X_repeat
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - HUF_compress_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_compress4X_repeat (void* dst, size_t dstSize,\n                      const
      void* src, size_t srcSize,\n                      unsigned maxSymbolValue, unsigned
      huffLog,\n                      void* workSpace, size_t wkspSize,\n                      HUF_CElt*
      hufTable, HUF_repeat* repeat, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18358,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18359,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18360,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18361,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18362,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18363,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18364,1
    - Dst: ZSTD_cwksp_initialAllocStart
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18364,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18365,1
    - Dst: __msan_test_shadow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18368,1
    - Dst: ZSTD_cwksp_initialAllocStart
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18369,1
    - Dst: __msan_print_shadow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18373,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts:
    - condition: (ws->workspace <= ws->objectEnd)
      pos:
        line_end: 18357
        line_start: 18357
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->objectEnd <= ws->tableEnd)
      pos:
        line_end: 18358
        line_start: 18358
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->objectEnd <= ws->tableValidEnd)
      pos:
        line_end: 18359
        line_start: 18359
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableValidEnd <= ws->allocStart)
      pos:
        line_end: 18361
        line_start: 18361
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableEnd <= ws->allocStart)
      pos:
        line_end: 18360
        line_start: 18360
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->allocStart <= ws->workspaceEnd)
      pos:
        line_end: 18362
        line_start: 18362
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->initOnceStart <= ZSTD_cwksp_initialAllocStart(ws))
      pos:
        line_end: 18363
        line_start: 18363
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->workspace <= ws->initOnceStart)
      pos:
        line_end: 18364
        line_start: 18364
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset==-1)
      pos:
        line_end: 18375
        line_start: 18375
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18379
      start: 18356
    functionDepth: 1
    functionLinenumber: 18356
    functionLinenumberEnd: 18379
    functionName: ZSTD_cwksp_assert_internal_consistency
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - __msan_test_shadow
    - assert
    - __msan_print_shadow
    - ZSTD_cwksp_initialAllocStart
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - size
    - align
    argTypes:
    - size_t
    - size_t
    assertStmts:
    - condition: ((align & mask) == 0)
      pos:
        line_end: 18385
        line_start: 18385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18388
      start: 18384
    functionDepth: 1
    functionLinenumber: 18384
    functionLinenumberEnd: 18388
    functionName: ZSTD_cwksp_align
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_align(size_t size, size_t const align)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18410
      start: 18402
    functionDepth: 0
    functionLinenumber: 18402
    functionLinenumberEnd: 18410
    functionName: ZSTD_cwksp_alloc_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_alloc_size(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18417,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18418
      start: 18416
    functionDepth: 2
    functionLinenumber: 18416
    functionLinenumberEnd: 18418
    functionName: ZSTD_cwksp_aligned_alloc_size
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_align
    - ZSTD_cwksp_alloc_size
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_aligned_alloc_size(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18430
      start: 18424
    functionDepth: 0
    functionLinenumber: 18424
    functionLinenumberEnd: 18430
    functionName: ZSTD_cwksp_slack_space_required
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_slack_space_required(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18440,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - alignBytes
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: ((alignBytes & alignBytesMask) == 0)
      pos:
        line_end: 18439
        line_start: 18439
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bytes < alignBytes)
      pos:
        line_end: 18440
        line_start: 18440
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18443
      start: 18437
    functionDepth: 1
    functionLinenumber: 18437
    functionLinenumberEnd: 18443
    functionName: ZSTD_cwksp_bytes_to_align_ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18451
      start: 18449
    functionDepth: 0
    functionLinenumber: 18449
    functionLinenumberEnd: 18451
    functionName: ZSTD_cwksp_initialAllocStart
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC *  ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18465,1
    - Dst: ZSTD_cwksp_available_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18466,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18467,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18468,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts:
    - condition: (alloc >= bottom)
      pos:
        line_end: 18467
        line_start: 18467
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18481
      start: 18460
    functionDepth: 2
    functionLinenumber: 18460
    functionLinenumberEnd: 18481
    functionName: ZSTD_cwksp_reserve_internal_buffer_space
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_cwksp_available_space
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    linkageType: ''
    returnType: MEM_STATIC
    signature: 'MEM_STATIC *

      ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t const bytes)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18491,1
    - Dst: ZSTD_cwksp_initialAllocStart
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18497,1
    - Dst: ZSTD_cwksp_bytes_to_align_ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18501,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18503,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18504,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ws
    - phase
    argTypes:
    - ZSTD_cwksp*
    - ZSTD_cwksp_alloc_phase_e
    assertStmts:
    - condition: (phase >= ws->phase)
      pos:
        line_end: 18490
        line_start: 18490
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18517
      start: 18488
    functionDepth: 2
    functionLinenumber: 18488
    functionLinenumberEnd: 18517
    functionName: ZSTD_cwksp_internal_advance_phase
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_initialAllocStart
    - ZSTD_cwksp_bytes_to_align_ptr
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_internal_advance_phase(ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e
      phase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - ptr
    argTypes:
    - ZSTD_cwksp*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18525
      start: 18522
    functionDepth: 0
    functionLinenumber: 18522
    functionLinenumberEnd: 18525
    functionName: ZSTD_cwksp_owns_buffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void*
      ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18534,1
    - Dst: ZSTD_cwksp_internal_advance_phase
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18534,1
    - Dst: ZSTD_cwksp_reserve_internal_buffer_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18543,1
    - Dst: __asan_unpoison_memory_region
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - ws
    - bytes
    - phase
    argTypes:
    - ZSTD_cwksp*
    - size_t
    - ZSTD_cwksp_alloc_phase_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18559
      start: 18530
    functionDepth: 3
    functionLinenumber: 18530
    functionLinenumberEnd: 18559
    functionName: ZSTD_cwksp_reserve_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_internal_advance_phase
    - ZSTD_isError
    - ZSTD_cwksp_reserve_internal_buffer_space
    - __asan_unpoison_memory_region
    linkageType: ''
    returnType: MEM_STATIC
    signature: 'MEM_STATIC *

      ZSTD_cwksp_reserve_internal(ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e
      phase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_reserve_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18567
      start: 18564
    functionDepth: 4
    functionLinenumber: 18564
    functionLinenumberEnd: 18567
    functionName: ZSTD_cwksp_reserve_buffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_reserve_internal
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18580,1
    - Dst: ZSTD_cwksp_reserve_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18581,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18582,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18590,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18590,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18594,1
    - Dst: __msan_test_shadow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts:
    - condition: (((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0)
      pos:
        line_end: 18581
        line_start: 18581
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (__msan_test_shadow(ptr, bytes) == -1)
      pos:
        line_end: 18593
        line_start: 18593
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18597
      start: 18578
    functionDepth: 4
    functionLinenumber: 18578
    functionLinenumberEnd: 18597
    functionName: ZSTD_cwksp_reserve_aligned_init_once
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_align
    - ZSTD_cwksp_reserve_internal
    - __msan_test_shadow
    - ZSTD_memset
    - assert
    - MIN
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_cwksp_reserve_aligned_init_once(ZSTD_cwksp* ws, size_t
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_reserve_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18604,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18604,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts:
    - condition: (((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0)
      pos:
        line_end: 18605
        line_start: 18605
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18608
      start: 18602
    functionDepth: 4
    functionLinenumber: 18602
    functionLinenumberEnd: 18608
    functionName: ZSTD_cwksp_reserve_aligned
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_cwksp_align
    - ZSTD_cwksp_reserve_internal
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18625,1
    - Dst: ZSTD_cwksp_internal_advance_phase
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18625,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18633,1
    - Dst: ZSTD_cwksp_available_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18634,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18635,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18636,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18637,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18639,1
    - Dst: __asan_unpoison_memory_region
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18647,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18651,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts:
    - condition: ((bytes & (sizeof(U32)-1)) == 0)
      pos:
        line_end: 18634
        line_start: 18634
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (end <= top)
      pos:
        line_end: 18636
        line_start: 18636
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((bytes & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0)
      pos:
        line_end: 18650
        line_start: 18650
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0)
      pos:
        line_end: 18651
        line_start: 18651
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18654
      start: 18615
    functionDepth: 3
    functionLinenumber: 18615
    functionLinenumberEnd: 18654
    functionName: ZSTD_cwksp_reserve_table
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_internal_advance_phase
    - ZSTD_isError
    - ZSTD_cwksp_available_space
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    - assert
    - __asan_unpoison_memory_region
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18662,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18671,1
    - Dst: ZSTD_cwksp_available_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18673,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18674,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18674,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18675,1
    - Dst: ZSTD_ALIGNOF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18675,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18676,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18679,1
    - Dst: __asan_unpoison_memory_region
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ws
    - bytes
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts:
    - condition: ((size_t)alloc % ZSTD_ALIGNOF(void*) == 0)
      pos:
        line_end: 18673
        line_start: 18673
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bytes % ZSTD_ALIGNOF(void*) == 0)
      pos:
        line_end: 18674
        line_start: 18674
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18697
      start: 18660
    functionDepth: 2
    functionLinenumber: 18660
    functionLinenumberEnd: 18697
    functionName: ZSTD_cwksp_reserve_object
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_align
    - ZSTD_cwksp_available_space
    - DEBUGLOG
    - ZSTD_ALIGNOF
    - ZSTD_cwksp_assert_internal_consistency
    - assert
    - __asan_unpoison_memory_region
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC * ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18701,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18712,1
    - Dst: __msan_test_shadow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18712,1
    - Dst: __msan_poison
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18714,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18716,1
    - Dst: __msan_poison
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18717,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18722,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18723,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts:
    - condition: (ws->initOnceStart >= ws->objectEnd)
      pos:
        line_end: 18715
        line_start: 18715
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (__msan_test_shadow(ws->objectEnd, size) == -1)
      pos:
        line_end: 18711
        line_start: 18711
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableValidEnd >= ws->objectEnd)
      pos:
        line_end: 18721
        line_start: 18721
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableValidEnd <= ws->allocStart)
      pos:
        line_end: 18722
        line_start: 18722
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18726
      start: 18699
    functionDepth: 2
    functionLinenumber: 18699
    functionLinenumberEnd: 18726
    functionName: ZSTD_cwksp_mark_tables_dirty
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - __msan_poison
    - __msan_test_shadow
    - ZSTD_cwksp_assert_internal_consistency
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18729,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18730,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18731,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts:
    - condition: (ws->tableValidEnd <= ws->allocStart)
      pos:
        line_end: 18730
        line_start: 18730
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableValidEnd >= ws->objectEnd)
      pos:
        line_end: 18729
        line_start: 18729
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18736
      start: 18728
    functionDepth: 2
    functionLinenumber: 18728
    functionLinenumberEnd: 18736
    functionName: ZSTD_cwksp_mark_tables_clean
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_mark_tables_clean(ZSTD_cwksp* ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18742,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18743,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18744,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18746,1
    - Dst: ZSTD_cwksp_mark_tables_clean
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts:
    - condition: (ws->tableValidEnd >= ws->objectEnd)
      pos:
        line_end: 18742
        line_start: 18742
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ws->tableValidEnd <= ws->allocStart)
      pos:
        line_end: 18743
        line_start: 18743
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18749
      start: 18741
    functionDepth: 3
    functionLinenumber: 18741
    functionLinenumberEnd: 18749
    functionName: ZSTD_cwksp_clean_tables
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - assert
    - ZSTD_cwksp_mark_tables_clean
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_clean_tables(ZSTD_cwksp* ws)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18756,1
    - Dst: __asan_poison_memory_region
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18765,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18771
      start: 18755
    functionDepth: 2
    functionLinenumber: 18755
    functionLinenumberEnd: 18771
    functionName: ZSTD_cwksp_clear_tables
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    - __asan_poison_memory_region
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_clear_tables(ZSTD_cwksp* ws)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18778,1
    - Dst: __msan_poison
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18789,1
    - Dst: __asan_poison_memory_region
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18801,1
    - Dst: ZSTD_cwksp_initialAllocStart
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18806,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18811,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18812
      start: 18777
    functionDepth: 2
    functionLinenumber: 18777
    functionLinenumberEnd: 18812
    functionName: ZSTD_cwksp_clear
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_initialAllocStart
    - DEBUGLOG
    - __asan_poison_memory_region
    - __msan_poison
    - ZSTD_cwksp_assert_internal_consistency
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_clear(ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18816
      start: 18814
    functionDepth: 0
    functionLinenumber: 18814
    functionLinenumberEnd: 18816
    functionName: ZSTD_cwksp_sizeof
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18821
      start: 18818
    functionDepth: 0
    functionLinenumber: 18818
    functionLinenumberEnd: 18821
    functionName: ZSTD_cwksp_used
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_used(const ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18829,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18830,1
    - Dst: ZSTD_cwksp_initialAllocStart
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18835,1
    - Dst: ZSTD_cwksp_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18838,1
    - Dst: ZSTD_cwksp_assert_internal_consistency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - ws
    - start
    - size
    - isStatic
    argTypes:
    - ZSTD_cwksp*
    - void*
    - size_t
    - ZSTD_cwksp_static_alloc_e
    assertStmts:
    - condition: (((size_t)start & (sizeof(void*)-1)) == 0)
      pos:
        line_end: 18829
        line_start: 18829
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 18841
      start: 18828
    functionDepth: 3
    functionLinenumber: 18828
    functionLinenumberEnd: 18841
    functionName: ZSTD_cwksp_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_initialAllocStart
    - DEBUGLOG
    - ZSTD_cwksp_assert_internal_consistency
    - assert
    - ZSTD_cwksp_clear
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_init(ZSTD_cwksp* ws, void* start, size_t size,
      ZSTD_cwksp_static_alloc_e isStatic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18844,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18845,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18846,1
    - Dst: ZSTD_cwksp_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ws
    - size
    - customMem
    argTypes:
    - ZSTD_cwksp*
    - size_t
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18849
      start: 18843
    functionDepth: 4
    functionLinenumber: 18843
    functionLinenumberEnd: 18849
    functionName: ZSTD_cwksp_create
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMalloc
    - RETURN_ERROR_IF
    - DEBUGLOG
    - ZSTD_cwksp_init
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_create(ZSTD_cwksp* ws, size_t size, ZSTD_customMem
      customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18853,1
    - Dst: __msan_unpoison
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18856,1
    - Dst: ZSTD_cwksp_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18856,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18859,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ws
    - customMem
    argTypes:
    - ZSTD_cwksp*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18861
      start: 18851
    functionDepth: 2
    functionLinenumber: 18851
    functionLinenumberEnd: 18861
    functionName: ZSTD_cwksp_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - DEBUGLOG
    - ZSTD_customFree
    - ZSTD_memset
    - ZSTD_cwksp_sizeof
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_free(ZSTD_cwksp* ws, ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - ZSTD_cwksp*
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18870
      start: 18867
    functionDepth: 1
    functionLinenumber: 18867
    functionLinenumberEnd: 18870
    functionName: ZSTD_cwksp_move
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_move(ZSTD_cwksp* dst, ZSTD_cwksp* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18874
      start: 18872
    functionDepth: 0
    functionLinenumber: 18872
    functionLinenumberEnd: 18874
    functionName: ZSTD_cwksp_reserve_failed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_slack_space_required
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18887,1
    - Dst: ZSTD_cwksp_used
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18887,1
    - Dst: ZSTD_cwksp_used
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - estimatedSpace
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18889
      start: 18884
    functionDepth: 1
    functionLinenumber: 18884
    functionLinenumberEnd: 18889
    functionName: ZSTD_cwksp_estimated_space_within_bounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_slack_space_required
    - ZSTD_cwksp_used
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_estimated_space_within_bounds(const ZSTD_cwksp
      *const ws, size_t const estimatedSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - ZSTD_cwksp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18894
      start: 18892
    functionDepth: 0
    functionLinenumber: 18892
    functionLinenumberEnd: 18894
    functionName: ZSTD_cwksp_available_space
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_available_space(ZSTD_cwksp* ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_available_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - additionalNeededSpace
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18898
      start: 18896
    functionDepth: 1
    functionLinenumber: 18896
    functionLinenumberEnd: 18898
    functionName: ZSTD_cwksp_check_available
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_available_space
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_check_available(ZSTD_cwksp* ws, size_t additionalNeededSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_check_available
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - additionalNeededSpace
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18903
      start: 18900
    functionDepth: 2
    functionLinenumber: 18900
    functionLinenumberEnd: 18903
    functionName: ZSTD_cwksp_check_too_large
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_check_available
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_check_too_large(ZSTD_cwksp* ws, size_t additionalNeededSpace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_check_too_large
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ws
    - additionalNeededSpace
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18908
      start: 18905
    functionDepth: 3
    functionLinenumber: 18905
    functionLinenumberEnd: 18908
    functionName: ZSTD_cwksp_check_wasteful
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_check_too_large
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cwksp_check_wasteful(ZSTD_cwksp* ws, size_t additionalNeededSpace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_check_too_large
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:18912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ws
    - additionalNeededSpace
    argTypes:
    - ZSTD_cwksp*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18917
      start: 18910
    functionDepth: 3
    functionLinenumber: 18910
    functionLinenumberEnd: 18917
    functionName: ZSTD_cwksp_bump_oversized_duration
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_check_too_large
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_cwksp_bump_oversized_duration(\n        ZSTD_cwksp*
      ws, size_t additionalNeededSpace)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - litLength
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19545
      start: 19533
    functionDepth: 4
    functionLinenumber: 19533
    functionLinenumberEnd: 19545
    functionName: ZSTD_LLcode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_LLcode(U32 litLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mlBase
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19562
      start: 19550
    functionDepth: 4
    functionLinenumber: 19550
    functionLinenumberEnd: 19562
    functionName: ZSTD_MLcode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_MLcode(U32 mlBase)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cParam_getBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19569,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cParam
    - value
    argTypes:
    - ZSTD_cParameter
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19574
      start: 19567
    functionDepth: 3
    functionLinenumber: 19567
    functionLinenumberEnd: 19574
    functionName: ZSTD_cParam_withinBounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_cParam_getBounds
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_cParam_withinBounds(ZSTD_cParameter cParam, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19583,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19584,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19586,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19589
      start: 19579
    functionDepth: 3
    functionLinenumber: 19579
    functionLinenumberEnd: 19589
    functionName: ZSTD_noCompressBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE24
    - ZSTD_memcpy
    - RETURN_ERROR_IF
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_noCompressBlock(void* dst, size_t dstCapacity, const
      void* src, size_t srcSize, U32 lastBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19596,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    argTypes:
    - void*
    - size_t
    - BYTE
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19600
      start: 19591
    functionDepth: 3
    functionLinenumber: 19591
    functionLinenumberEnd: 19600
    functionName: ZSTD_rleCompressBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE24
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rleCompressBlock(void* dst, size_t dstCapacity, BYTE
      src, size_t srcSize, U32 lastBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19610,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19611,1
    - Dst: ZSTD_cParam_withinBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - srcSize
    - strat
    argTypes:
    - size_t
    - ZSTD_strategy
    assertStmts:
    - condition: (ZSTD_cParam_withinBounds(ZSTD_c_strategy, (int)strat))
      pos:
        line_end: 19610
        line_start: 19610
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19613
      start: 19607
    functionDepth: 4
    functionLinenumber: 19607
    functionLinenumberEnd: 19613
    functionName: ZSTD_minGain
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_STATIC_ASSERT
    - ZSTD_cParam_withinBounds
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_minGain(size_t srcSize, ZSTD_strategy strat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - cctxParams
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts:
    - condition: '(0 /* impossible: pre-validated */)'
      pos:
        line_end: 19622
        line_start: 19622
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19628
      start: 19615
    functionDepth: 1
    functionLinenumber: 19615
    functionLinenumberEnd: 19628
    functionName: ZSTD_literalsCompressionIsDisabled
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_literalsCompressionIsDisabled(const ZSTD_CCtx_params*
      cctxParams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19638,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - op
    - ip
    - iend
    - ilimit_w
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: (iend > ilimit_w)
      pos:
        line_end: 19637
        line_start: 19637
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19645
      start: 19635
    functionDepth: 3
    functionLinenumber: 19635
    functionLinenumberEnd: 19645
    functionName: ZSTD_safecopyLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_wildcopy
    linkageType: ''
    returnType: void
    signature: void ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const
      iend, BYTE const* ilimit_w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19652
      start: 19651
    functionDepth: 0
    functionLinenumber: 19651
    functionLinenumberEnd: 19652
    functionName: REPCODE_TO_OFFBASE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REPCODE_TO_OFFBASE(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19653
      start: 19652
    functionDepth: 0
    functionLinenumber: 19652
    functionLinenumberEnd: 19653
    functionName: OFFSET_TO_OFFBASE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_TO_OFFBASE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19654
      start: 19653
    functionDepth: 0
    functionLinenumber: 19653
    functionLinenumberEnd: 19654
    functionName: OFFBASE_IS_OFFSET
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFBASE_IS_OFFSET(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19655
      start: 19654
    functionDepth: 0
    functionLinenumber: 19654
    functionLinenumberEnd: 19655
    functionName: OFFBASE_IS_REPCODE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFBASE_IS_REPCODE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19656
      start: 19655
    functionDepth: 0
    functionLinenumber: 19655
    functionLinenumberEnd: 19656
    functionName: OFFBASE_TO_OFFSET
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFBASE_TO_OFFSET(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19657
      start: 19656
    functionDepth: 0
    functionLinenumber: 19656
    functionLinenumberEnd: 19657
    functionName: OFFBASE_TO_REPCODE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFBASE_TO_REPCODE(o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19676,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19680,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19682,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19683,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19684,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19689,1
    - Dst: ZSTD_copy16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19690,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19692,1
    - Dst: ZSTD_safecopyLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19695,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19701,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19711,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 6
    argNames:
    - seqStorePtr
    - litLength
    - literals
    - litLimit
    - offBase
    - matchLength
    argTypes:
    - seqStore_t*
    - size_t
    - BYTE*
    - BYTE*
    - U32
    - size_t
    assertStmts:
    - condition: ((size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart) <
        seqStorePtr->maxNbSeq)
      pos:
        line_end: 19679
        line_start: 19679
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqStorePtr->maxNbLit <= 128 KB)
      pos:
        line_end: 19681
        line_start: 19681
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqStorePtr->lit + litLength <= seqStorePtr->litStart + seqStorePtr->maxNbLit)
      pos:
        line_end: 19682
        line_start: 19682
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (literals + litLength <= litLimit)
      pos:
        line_end: 19683
        line_start: 19683
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchLength >= MINMATCH)
      pos:
        line_end: 19710
        line_start: 19710
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqStorePtr->longLengthType == ZSTD_llt_none)
      pos:
        line_end: 19700
        line_start: 19700
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqStorePtr->longLengthType == ZSTD_llt_none)
      pos:
        line_end: 19713
        line_start: 19713
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19722
      start: 19664
    functionDepth: 4
    functionLinenumber: 19664
    functionLinenumberEnd: 19722
    functionName: ZSTD_storeSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_safecopyLiterals
    - ZSTD_wildcopy
    - DEBUGLOG
    - ZSTD_copy16
    - assert
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: HINT_INLINE
    signature: "HINT_INLINE ZSTD_storeSeq(seqStore_t* seqStorePtr,\n              size_t
      litLength, const BYTE* literals, const BYTE* litLimit,\n              U32 offBase,\n
      \             size_t matchLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OFFBASE_IS_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19731,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19734,1
    - Dst: OFFBASE_TO_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - rep
    - offBase
    - ll0
    argTypes:
    - U32[]
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19746
      start: 19728
    functionDepth: 1
    functionLinenumber: 19728
    functionLinenumberEnd: 19746
    functionName: ZSTD_updateRep
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - OFFBASE_TO_OFFSET
    - OFFBASE_TO_REPCODE
    - OFFBASE_IS_OFFSET
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_updateRep(U32 rep[ZSTD_REP_NUM], U32 const offBase,
      U32 const ll0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19756,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rep
    - offBase
    - ll0
    argTypes:
    - U32[]
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19759
      start: 19752
    functionDepth: 2
    functionLinenumber: 19752
    functionLinenumberEnd: 19759
    functionName: ZSTD_newRep
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_updateRep
    - ZSTD_memcpy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_newRep(U32 const rep[ZSTD_REP_NUM], U32 const offBase,
      U32 const ll0)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19771,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19771,1
    - Dst: ZSTD_NbCommonBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19772,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19775,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19775,1
    - Dst: ZSTD_NbCommonBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19777,1
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19780,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19780,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19780,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19781,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19781,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - pIn
    - pMatch
    - pInLimit
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19784
      start: 19765
    functionDepth: 5
    functionLinenumber: 19765
    functionLinenumberEnd: 19784
    functionName: ZSTD_count
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read16
    - MEM_64bits
    - MEM_read32
    - ZSTD_NbCommonBytes
    - MEM_readST
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_count(const BYTE* pIn, const BYTE* pMatch, const BYTE*
      const pInLimit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19794,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19795,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19797,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19798,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19799,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19800,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19801,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19801,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ip
    - match
    - iEnd
    - mEnd
    - iStart
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19803
      start: 19790
    functionDepth: 6
    functionLinenumber: 19790
    functionLinenumberEnd: 19803
    functionName: ZSTD_count_2segments
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_count
    - MIN
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_count_2segments(const BYTE* ip, const BYTE* match,\n
      \                    const BYTE* iEnd, const BYTE* mEnd, const BYTE* iStart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (h <= 32)
      pos:
        line_end: 19809
        line_start: 19809
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19810
      start: 19810
    functionDepth: 1
    functionLinenumber: 19810
    functionLinenumberEnd: 19810
    functionName: ZSTD_hash3
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_hash3(U32 u, U32 h, U32 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19811,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19811
      start: 19811
    functionDepth: 3
    functionLinenumber: 19811
    functionLinenumberEnd: 19811
    functionName: ZSTD_hash3Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash3
    - MEM_readLE32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_hash3Ptr(const void* ptr, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19812,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - h
    - s
    argTypes:
    - void*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19812
      start: 19812
    functionDepth: 3
    functionLinenumber: 19812
    functionLinenumberEnd: 19812
    functionName: ZSTD_hash3PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash3
    - MEM_readLE32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_hash3PtrS(const void* ptr, U32 h, U32 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (h <= 32)
      pos:
        line_end: 19814
        line_start: 19814
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19815
      start: 19815
    functionDepth: 1
    functionLinenumber: 19815
    functionLinenumberEnd: 19815
    functionName: ZSTD_hash4
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_hash4(U32 u, U32 h, U32 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19816,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19816
      start: 19816
    functionDepth: 3
    functionLinenumber: 19816
    functionLinenumberEnd: 19816
    functionName: ZSTD_hash4Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash4
    - MEM_readLE32
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash4Ptr(const void* ptr, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19817,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - h
    - s
    argTypes:
    - void*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19817
      start: 19817
    functionDepth: 3
    functionLinenumber: 19817
    functionLinenumberEnd: 19817
    functionName: ZSTD_hash4PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash4
    - MEM_readLE32
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash4PtrS(const void* ptr, U32 h, U32 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U64
    - U32
    - U64
    assertStmts:
    - condition: (h <= 64)
      pos:
        line_end: 19819
        line_start: 19819
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19820
      start: 19820
    functionDepth: 1
    functionLinenumber: 19820
    functionLinenumberEnd: 19820
    functionName: ZSTD_hash5
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash5(U64 u, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19821,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19821
      start: 19821
    functionDepth: 3
    functionLinenumber: 19821
    functionLinenumberEnd: 19821
    functionName: ZSTD_hash5Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash5
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash5Ptr(const void* p, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19822,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - h
    - s
    argTypes:
    - void*
    - U32
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19822
      start: 19822
    functionDepth: 3
    functionLinenumber: 19822
    functionLinenumberEnd: 19822
    functionName: ZSTD_hash5PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash5
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash5PtrS(const void* p, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U64
    - U32
    - U64
    assertStmts:
    - condition: (h <= 64)
      pos:
        line_end: 19824
        line_start: 19824
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19825
      start: 19825
    functionDepth: 1
    functionLinenumber: 19825
    functionLinenumberEnd: 19825
    functionName: ZSTD_hash6
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash6(U64 u, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash6
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19826,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19826
      start: 19826
    functionDepth: 3
    functionLinenumber: 19826
    functionLinenumberEnd: 19826
    functionName: ZSTD_hash6Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash6
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash6Ptr(const void* p, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash6
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19827,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - h
    - s
    argTypes:
    - void*
    - U32
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19827
      start: 19827
    functionDepth: 3
    functionLinenumber: 19827
    functionLinenumberEnd: 19827
    functionName: ZSTD_hash6PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash6
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash6PtrS(const void* p, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U64
    - U32
    - U64
    assertStmts:
    - condition: (h <= 64)
      pos:
        line_end: 19829
        line_start: 19829
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19830
      start: 19830
    functionDepth: 1
    functionLinenumber: 19830
    functionLinenumberEnd: 19830
    functionName: ZSTD_hash7
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash7(U64 u, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash7
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19831,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19831
      start: 19831
    functionDepth: 3
    functionLinenumber: 19831
    functionLinenumberEnd: 19831
    functionName: ZSTD_hash7Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash7
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash7Ptr(const void* p, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash7
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19832,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - h
    - s
    argTypes:
    - void*
    - U32
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19832
      start: 19832
    functionDepth: 3
    functionLinenumber: 19832
    functionLinenumberEnd: 19832
    functionName: ZSTD_hash7PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash7
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash7PtrS(const void* p, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - u
    - h
    - s
    argTypes:
    - U64
    - U32
    - U64
    assertStmts:
    - condition: (h <= 64)
      pos:
        line_end: 19834
        line_start: 19834
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19835
      start: 19835
    functionDepth: 1
    functionLinenumber: 19835
    functionLinenumberEnd: 19835
    functionName: ZSTD_hash8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash8(U64 u, U32 h, U64 s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19836,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - h
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19836
      start: 19836
    functionDepth: 3
    functionLinenumber: 19836
    functionLinenumberEnd: 19836
    functionName: ZSTD_hash8Ptr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash8
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash8Ptr(const void* p, U32 h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19837,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - h
    - s
    argTypes:
    - void*
    - U32
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19837
      start: 19837
    functionDepth: 3
    functionLinenumber: 19837
    functionLinenumberEnd: 19837
    functionName: ZSTD_hash8PtrS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash8
    - MEM_readLE64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_hash8PtrS(const void* p, U32 h, U64 s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19845,1
    - Dst: ZSTD_hash4Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19850,1
    - Dst: ZSTD_hash5Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19851,1
    - Dst: ZSTD_hash6Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19852,1
    - Dst: ZSTD_hash7Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19853,1
    - Dst: ZSTD_hash8Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - p
    - hBits
    - mls
    argTypes:
    - void*
    - U32
    - U32
    assertStmts:
    - condition: (hBits <= 32)
      pos:
        line_end: 19844
        line_start: 19844
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19856
      start: 19840
    functionDepth: 4
    functionLinenumber: 19840
    functionLinenumberEnd: 19856
    functionName: ZSTD_hashPtr
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash5Ptr
    - ZSTD_hash4Ptr
    - ZSTD_hash6Ptr
    - ZSTD_hash7Ptr
    - assert
    - ZSTD_hash8Ptr
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_hashPtr(const void* p, U32 hBits, U32 mls)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19862,1
    - Dst: ZSTD_hash4PtrS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19867,1
    - Dst: ZSTD_hash5PtrS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19868,1
    - Dst: ZSTD_hash6PtrS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19869,1
    - Dst: ZSTD_hash7PtrS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19870,1
    - Dst: ZSTD_hash8PtrS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - p
    - hBits
    - mls
    - hashSalt
    argTypes:
    - void*
    - U32
    - U32
    - U64
    assertStmts:
    - condition: (hBits <= 32)
      pos:
        line_end: 19861
        line_start: 19861
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 19873
      start: 19858
    functionDepth: 4
    functionLinenumber: 19858
    functionLinenumberEnd: 19873
    functionName: ZSTD_hashPtrSalted
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash6PtrS
    - ZSTD_hash8PtrS
    - ZSTD_hash5PtrS
    - ZSTD_hash7PtrS
    - assert
    - ZSTD_hash4PtrS
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_hashPtrSalted(const void* p, U32 hBits, U32 mls, const
      U64 hashSalt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - base
    - exponent
    argTypes:
    - U64
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19888
      start: 19879
    functionDepth: 0
    functionLinenumber: 19879
    functionLinenumberEnd: 19888
    functionName: ZSTD_ipow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U64
    signature: U64 ZSTD_ipow(U64 base, U64 exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hash
    - buf
    - size
    argTypes:
    - U64
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19904
      start: 19895
    functionDepth: 0
    functionLinenumber: 19895
    functionLinenumberEnd: 19904
    functionName: ZSTD_rollingHash_append
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U64
    signature: U64 ZSTD_rollingHash_append(U64 hash, void const* buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_rollingHash_append
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19912
      start: 19909
    functionDepth: 1
    functionLinenumber: 19909
    functionLinenumberEnd: 19912
    functionName: ZSTD_rollingHash_compute
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rollingHash_append
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rollingHash_compute(void const* buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_ipow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19921
      start: 19918
    functionDepth: 1
    functionLinenumber: 19918
    functionLinenumberEnd: 19921
    functionName: ZSTD_rollingHash_primePower
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_ipow
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rollingHash_primePower(U32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - hash
    - toRemove
    - toAdd
    - primePower
    argTypes:
    - U64
    - BYTE
    - BYTE
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19932
      start: 19926
    functionDepth: 0
    functionLinenumber: 19926
    functionLinenumberEnd: 19932
    functionName: ZSTD_rollingHash_rotate
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_rollingHash_rotate(U64 hash, BYTE toRemove, BYTE toAdd,
      U64 primePower)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - window
    argTypes:
    - ZSTD_window_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19958
      start: 19951
    functionDepth: 0
    functionLinenumber: 19951
    functionLinenumberEnd: 19958
    functionName: ZSTD_window_clear
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_window_clear(ZSTD_window_t* window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - window
    argTypes:
    - ZSTD_window_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19965
      start: 19960
    functionDepth: 0
    functionLinenumber: 19960
    functionLinenumberEnd: 19965
    functionName: ZSTD_window_isEmpty
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_window_isEmpty(ZSTD_window_t const window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - window
    argTypes:
    - ZSTD_window_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19974
      start: 19971
    functionDepth: 0
    functionLinenumber: 19971
    functionLinenumberEnd: 19974
    functionName: ZSTD_window_hasExtDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_window_hasExtDict(ZSTD_window_t const window)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_window_hasExtDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:19983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - ZSTD_matchState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19988
      start: 19981
    functionDepth: 1
    functionLinenumber: 19981
    functionLinenumberEnd: 19988
    functionName: ZSTD_dictMode_e::ZSTD_matchState_dictMode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_window_hasExtDict
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_dictMode_e ZSTD_matchState_dictMode(const ZSTD_matchState_t
      *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20016,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 5
    argNames:
    - window
    - cycleLog
    - maxDist
    - loadedDictEnd
    - src
    argTypes:
    - ZSTD_window_t
    - U32
    - U32
    - U32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20035
      start: 20007
    functionDepth: 1
    functionLinenumber: 20007
    functionLinenumberEnd: 20035
    functionName: ZSTD_window_canOverflowCorrect
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_window_canOverflowCorrect(ZSTD_window_t const window,\n
      \                                             U32 cycleLog,\n                                              U32
      maxDist,\n                                              U32 loadedDictEnd,\n
      \                                             void const* src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_window_canOverflowCorrect
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - window
    - cycleLog
    - maxDist
    - loadedDictEnd
    - src
    - srcEnd
    argTypes:
    - ZSTD_window_t
    - U32
    - U32
    - U32
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20056
      start: 20042
    functionDepth: 2
    functionLinenumber: 20042
    functionLinenumberEnd: 20056
    functionName: ZSTD_window_needOverflowCorrection
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_window_canOverflowCorrect
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_window_needOverflowCorrection(ZSTD_window_t const
      window,\n                                                  U32 cycleLog,\n                                                  U32
      maxDist,\n                                                  U32 loadedDictEnd,\n
      \                                                 void const* src,\n                                                  void
      const* srcEnd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20097,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20101,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20107,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20108,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20109,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20112,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20129,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20130,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20132,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20133,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - window
    - cycleLog
    - maxDist
    - src
    argTypes:
    - ZSTD_window_t*
    - U32
    - U32
    - void*
    assertStmts:
    - condition: ((maxDist & (maxDist - 1)) == 0)
      pos:
        line_end: 20106
        line_start: 20106
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((curr & cycleMask) == (newCurrent & cycleMask))
      pos:
        line_end: 20107
        line_start: 20107
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr > newCurrent)
      pos:
        line_end: 20108
        line_start: 20108
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (correction > 1<<28)
      pos:
        line_end: 20111
        line_start: 20111
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (newCurrent >= maxDist)
      pos:
        line_end: 20128
        line_start: 20128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (newCurrent - maxDist >= ZSTD_WINDOW_START_INDEX)
      pos:
        line_end: 20129
        line_start: 20129
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (window->lowLimit <= newCurrent)
      pos:
        line_end: 20131
        line_start: 20131
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (window->dictLimit <= newCurrent)
      pos:
        line_end: 20132
        line_start: 20132
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20140
      start: 20067
    functionDepth: 1
    functionLinenumber: 20067
    functionLinenumberEnd: 20140
    functionName: ZSTD_window_correctOverflow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - MAX
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_window_correctOverflow(ZSTD_window_t* window, U32
      cycleLog,\n                                           U32 maxDist, void const*
      src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20174,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - window
    - blockEnd
    - maxDist
    - loadedDictEndPtr
    - dictMatchStatePtr
    argTypes:
    - ZSTD_window_t*
    - void*
    - U32
    - U32*
    - ZSTD_matchState_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20202
      start: 20165
    functionDepth: 1
    functionLinenumber: 20165
    functionLinenumberEnd: 20202
    functionName: ZSTD_window_enforceMaxDist
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_window_enforceMaxDist(ZSTD_window_t* window,\n                     const
      void* blockEnd,\n                           U32   maxDist,\n                           U32*
      \ loadedDictEndPtr,\n                     const ZSTD_matchState_t** dictMatchStatePtr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20217,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20218,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20221,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20223,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20235,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - window
    - blockEnd
    - maxDist
    - loadedDictEndPtr
    - dictMatchStatePtr
    argTypes:
    - ZSTD_window_t*
    - void*
    - U32
    - U32*
    - ZSTD_matchState_t**
    assertStmts:
    - condition: (loadedDictEndPtr != NULL)
      pos:
        line_end: 20216
        line_start: 20216
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (blockEndIdx >= loadedDictEnd)
      pos:
        line_end: 20222
        line_start: 20222
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dictMatchStatePtr != NULL)
      pos:
        line_end: 20217
        line_start: 20217
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20242
      start: 20210
    functionDepth: 1
    functionLinenumber: 20210
    functionLinenumberEnd: 20242
    functionName: ZSTD_checkDictValidity
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_checkDictValidity(const ZSTD_window_t* window,\n                       const
      void* blockEnd,\n                             U32   maxDist,\n                             U32*
      \ loadedDictEndPtr,\n                       const ZSTD_matchState_t** dictMatchStatePtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20245,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - window
    argTypes:
    - ZSTD_window_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20253
      start: 20244
    functionDepth: 1
    functionLinenumber: 20244
    functionLinenumberEnd: 20253
    functionName: ZSTD_window_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_window_init(ZSTD_window_t* window)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20270,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20273,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20274,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20279,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20281,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - window
    - src
    - srcSize
    - forceNonContiguous
    argTypes:
    - ZSTD_window_t*
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (distanceFromBase == (size_t)(U32)distanceFromBase)
      pos:
        line_end: 20280
        line_start: 20280
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (window->base != NULL)
      pos:
        line_end: 20272
        line_start: 20272
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (window->dictBase != NULL)
      pos:
        line_end: 20273
        line_start: 20273
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20299
      start: 20262
    functionDepth: 1
    functionLinenumber: 20262
    functionLinenumberEnd: 20299
    functionName: ZSTD_window_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_window_update(ZSTD_window_t* window,\n                                  void
      const* src, size_t srcSize,\n                                  int forceNonContiguous)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ms
    - curr
    - windowLog
    argTypes:
    - ZSTD_matchState_t*
    - U32
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20316
      start: 20304
    functionDepth: 0
    functionLinenumber: 20304
    functionLinenumberEnd: 20316
    functionName: ZSTD_getLowestMatchIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_getLowestMatchIndex(const ZSTD_matchState_t* ms, U32
      curr, unsigned windowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ms
    - curr
    - windowLog
    argTypes:
    - ZSTD_matchState_t*
    - U32
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20332
      start: 20321
    functionDepth: 0
    functionLinenumber: 20321
    functionLinenumberEnd: 20332
    functionName: ZSTD_getLowestPrefixIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_getLowestPrefixIndex(const ZSTD_matchState_t* ms, U32
      curr, unsigned windowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20344,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rawStat
    argTypes:
    - U32
    assertStmts:
    - condition: (hb + fp_accuracy < 31)
      pos:
        line_end: 20347
        line_start: 20347
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20350
      start: 20339
    functionDepth: 4
    functionLinenumber: 20339
    functionLinenumberEnd: 20350
    functionName: ZSTD_fWeight
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_fWeight(U32 rawStat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20358,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20360,1
    - Dst: ZSTD_fWeight
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20361,1
    - Dst: ZSTD_fWeight
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - table
    - max
    argTypes:
    - U32*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20363
      start: 20354
    functionDepth: 5
    functionLinenumber: 20354
    functionLinenumberEnd: 20363
    functionName: ZSTD_debugTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_fWeight
    - DEBUGLOG
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_debugTable(const U32* table, U32 max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hashTable
    - hashAndTag
    - index
    argTypes:
    - U32*
    - size_t
    - U32
    assertStmts:
    - condition: (index >> (32 - ZSTD_SHORT_CACHE_TAG_BITS) == 0)
      pos:
        line_end: 20391
        line_start: 20391
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20394
      start: 20389
    functionDepth: 1
    functionLinenumber: 20389
    functionLinenumberEnd: 20394
    functionName: ZSTD_writeTaggedIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_writeTaggedIndex(U32* const hashTable, size_t hashAndTag,
      U32 index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - packedTag1
    - packedTag2
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20402
      start: 20398
    functionDepth: 0
    functionLinenumber: 20398
    functionLinenumberEnd: 20402
    functionName: ZSTD_comparePackedTags
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_comparePackedTags(size_t packedTag1, size_t packedTag2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20529
      start: 20527
    functionDepth: 0
    functionLinenumber: 20527
    functionLinenumberEnd: 20529
    functionName: ZSTD_hasExtSeqProd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_hasExtSeqProd(const ZSTD_CCtx_params* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20590,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20594
      start: 20585
    functionDepth: 1
    functionLinenumber: 20585
    functionLinenumberEnd: 20594
    functionName: showHexa
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RAWLOG
    linkageType: ''
    returnType: size_t
    signature: size_t showHexa(const void* src, size_t srcSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20607,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20609,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20617,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20620,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20623,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20626,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (0)
      pos:
        line_end: 20622
        line_start: 20622
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20629
      start: 20602
    functionDepth: 3
    functionLinenumber: 20602
    functionLinenumberEnd: 20629
    functionName: ZSTD_noCompressLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - ZSTD_memcpy
    - DEBUGLOG
    - assert
    - RETURN_ERROR_IF
    - MEM_writeLE16
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const
      void* src, size_t srcSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20633,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (srcSize >= 1)
      pos:
        line_end: 20632
        line_start: 20632
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (src != NULL)
      pos:
        line_end: 20633
        line_start: 20633
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20642
      start: 20631
    functionDepth: 1
    functionLinenumber: 20631
    functionLinenumberEnd: 20642
    functionName: allBytesIdentical
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int allBytesIdentical(const void* src, size_t srcSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20649,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20650,1
    - Dst: allBytesIdentical
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20650,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20658,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20661,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20664,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (dstCapacity >= 4)
      pos:
        line_end: 20648
        line_start: 20648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (allBytesIdentical(src, srcSize))
      pos:
        line_end: 20649
        line_start: 20649
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 20663
        line_start: 20663
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20670
      start: 20644
    functionDepth: 3
    functionLinenumber: 20644
    functionLinenumberEnd: 20670
    functionName: ZSTD_compressRleLiteralsBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - DEBUGLOG
    - allBytesIdentical
    - assert
    - MEM_writeLE16
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity,
      const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20680,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20681,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20685,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - strategy
    - huf_repeat
    argTypes:
    - ZSTD_strategy
    - HUF_repeat
    assertStmts:
    - condition: ((int)strategy >= 0)
      pos:
        line_end: 20679
        line_start: 20679
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((int)strategy <= 9)
      pos:
        line_end: 20680
        line_start: 20680
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20690
      start: 20677
    functionDepth: 1
    functionLinenumber: 20677
    functionLinenumberEnd: 20690
    functionName: ZSTD_minLiteralsToCompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_minLiteralsToCompress(ZSTD_strategy strategy, HUF_repeat
      huf_repeat)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20709,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20712,1
    - Dst: showHexa
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20712,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20715,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20718,1
    - Dst: ZSTD_minLiteralsToCompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20721,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20722,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20724,1
    - Dst: huf_compress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20736,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20742,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20745,1
    - Dst: ZSTD_minGain
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20750,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20751,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20752,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20753,1
    - Dst: allBytesIdentical
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20761,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20762,1
    - Dst: ZSTD_compressRleLiteralsBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20763,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20775,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20777,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20781,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20783,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20787,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20789,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20794,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20796,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 12
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - entropyWorkspace
    - entropyWorkspaceSize
    - prevHuf
    - nextHuf
    - strategy
    - disableLiteralCompression
    - suspectUncompressible
    - bmi2
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_hufCTables_t*
    - ZSTD_hufCTables_t*
    - ZSTD_strategy
    - int
    - int
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 20793
        line_start: 20793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= MIN_LITERALS_FOR_4_STREAMS)
      pos:
        line_end: 20780
        line_start: 20780
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= MIN_LITERALS_FOR_4_STREAMS)
      pos:
        line_end: 20774
        line_start: 20774
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= MIN_LITERALS_FOR_4_STREAMS)
      pos:
        line_end: 20786
        line_start: 20786
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20798
      start: 20692
    functionDepth: 5
    functionLinenumber: 20692
    functionLinenumberEnd: 20798
    functionName: ZSTD_compressLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_minLiteralsToCompress
    - ZSTD_memcpy
    - MEM_writeLE32
    - ZSTD_noCompressLiterals
    - ERR_isError
    - ZSTD_compressRleLiteralsBlock
    - MEM_writeLE24
    - DEBUGLOG
    - allBytesIdentical
    - showHexa
    - assert
    - RETURN_ERROR_IF
    - huf_compress
    - ZSTD_minGain
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressLiterals (\n                  void* dst, size_t
      dstCapacity,\n            const void* src, size_t srcSize,\n                  void*
      entropyWorkspace, size_t entropyWorkspaceSize,\n            const ZSTD_hufCTables_t*
      prevHuf,\n                  ZSTD_hufCTables_t* nextHuf,\n                  ZSTD_strategy
      strategy,\n                  int disableLiteralCompression,\n                  int
      suspectUncompressible,\n                  int bmi2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctable
    argTypes:
    - FSE_CTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20906
      start: 20901
    functionDepth: 1
    functionLinenumber: 20901
    functionLinenumberEnd: 20906
    functionName: ZSTD_getFSEMaxSymbolValue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read16
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_getFSEMaxSymbolValue(FSE_CTable const* ctable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nbSeq
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20919
      start: 20912
    functionDepth: 0
    functionLinenumber: 20912
    functionLinenumberEnd: 20919
    functionName: ZSTD_useLowProbCount
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_useLowProbCount(size_t const nbSeq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FSE_optimalTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20930,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20931,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20931,1
    - Dst: ZSTD_useLowProbCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20931,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - count
    - max
    - nbSeq
    - FSELog
    argTypes:
    - unsigned const*
    - unsigned const
    - size_t
    - unsigned const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20933
      start: 20925
    functionDepth: 7
    functionLinenumber: 20925
    functionLinenumberEnd: 20933
    functionName: ZSTD_NCountCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_useLowProbCount
    - FSE_optimalTableLog
    - FSE_writeNCount
    - FSE_normalizeCount
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_NCountCost(unsigned const* count, unsigned const max,\n
      \                             size_t const nbSeq, unsigned const FSELog)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20944,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - count
    - max
    - total
    argTypes:
    - unsigned const*
    - unsigned const
    - size_t
    assertStmts:
    - condition: (total > 0)
      pos:
        line_end: 20943
        line_start: 20943
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (count[s] < total)
      pos:
        line_end: 20948
        line_start: 20948
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 20953
      start: 20939
    functionDepth: 1
    functionLinenumber: 20939
    functionLinenumberEnd: 20953
    functionName: ZSTD_entropyCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_entropyCost(unsigned const* count, unsigned const max,
      size_t const total)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FSE_initCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20968,1
    - Dst: ZSTD_getFSEMaxSymbolValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20969,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20970,1
    - Dst: ZSTD_getFSEMaxSymbolValue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20971,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20972,1
    - Dst: FSE_bitCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20977,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20981,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:20982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - ctable
    - count
    - max
    argTypes:
    - FSE_CTable*
    - unsigned const*
    - unsigned const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20987
      start: 20959
    functionDepth: 2
    functionLinenumber: 20959
    functionLinenumberEnd: 20987
    functionName: ZSTD_fseBitCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_initCState
    - ERROR
    - DEBUGLOG
    - ZSTD_getFSEMaxSymbolValue
    - FSE_bitCost
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_fseBitCost(\n    FSE_CTable const* ctable,\n    unsigned
      const* count,\n    unsigned const max)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21000,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21004,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - norm
    - accuracyLog
    - count
    - max
    argTypes:
    - short const*
    - unsigned
    - unsigned const*
    - unsigned const
    assertStmts:
    - condition: (accuracyLog <= 8)
      pos:
        line_end: 20999
        line_start: 20999
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (norm256 > 0)
      pos:
        line_end: 21003
        line_start: 21003
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (norm256 < 256)
      pos:
        line_end: 21004
        line_start: 21004
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21009
      start: 20994
    functionDepth: 1
    functionLinenumber: 20994
    functionLinenumberEnd: 21009
    functionName: ZSTD_crossEntropyCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog,\n
      \                            unsigned const* count, unsigned const max)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21020,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21028,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21031,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21040,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21041,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21044,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21049,1
    - Dst: ZSTD_crossEntropyCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21061,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21061,1
    - Dst: ZSTD_fseBitCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21062,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21062,1
    - Dst: ZSTD_NCountCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21063,1
    - Dst: ZSTD_entropyCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21064,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21067,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21067,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21068,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21068,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21070,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21070,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21071,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21071,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21072,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21075,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21076,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21081,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21082,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21082,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21085,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21087,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 11
    argNames:
    - repeatMode
    - count
    - max
    - mostFrequent
    - nbSeq
    - FSELog
    - prevCTable
    - defaultNorm
    - defaultNormLog
    - isDefaultAllowed
    - strategy
    argTypes:
    - FSE_repeat*
    - unsigned const*
    - unsigned const
    - size_t
    - size_t
    - unsigned const
    - FSE_CTable*
    - short const*
    - U32
    - ZSTD_defaultPolicy_e
    - ZSTD_strategy
    assertStmts:
    - condition: (!ZSTD_isError(basicCost))
      pos:
        line_end: 21066
        line_start: 21066
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(repeatCost))
      pos:
        line_end: 21081
        line_start: 21081
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(NCountCost))
      pos:
        line_end: 21069
        line_start: 21069
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (compressedCost < ERROR(maxCode))
      pos:
        line_end: 21070
        line_start: 21070
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(*repeatMode == FSE_repeat_valid && ZSTD_isError(repeatCost)))
      pos:
        line_end: 21067
        line_start: 21067
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (isDefaultAllowed)
      pos:
        line_end: 21075
        line_start: 21075
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (compressedCost < basicCost && compressedCost < repeatCost)
      pos:
        line_end: 21084
        line_start: 21084
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mult <= 9 && mult >= 7)
      pos:
        line_end: 21040
        line_start: 21040
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (defaultNormLog >= 5 && defaultNormLog <= 6)
      pos:
        line_end: 21039
        line_start: 21039
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21090
      start: 21011
    functionDepth: 8
    functionLinenumber: 21011
    functionLinenumberEnd: 21090
    functionName: ZSTD_selectEncodingType
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ERROR
    - DEBUGLOG
    - ZSTD_fseBitCost
    - ZSTD_NCountCost
    - ZSTD_entropyCost
    - assert
    - ZSTD_STATIC_ASSERT
    - ZSTD_crossEntropyCost
    linkageType: ''
    returnType: symbolEncodingType_e
    signature: "symbolEncodingType_e ZSTD_selectEncodingType(\n        FSE_repeat*
      repeatMode, unsigned const* count, unsigned const max,\n        size_t const
      mostFrequent, size_t nbSeq, unsigned const FSELog,\n        FSE_CTable const*
      prevCTable,\n        short const* defaultNorm, U32 defaultNormLog,\n        ZSTD_defaultPolicy_e
      const isDefaultAllowed,\n        ZSTD_strategy const strategy)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21108,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21112,1
    - Dst: FSE_buildCTable_rle
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21112,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21113,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21117,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21120,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21120,1
    - Dst: FSE_optimalTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21125,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21130,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21131,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21133,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21133,1
    - Dst: ZSTD_useLowProbCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21133,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21134,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21135,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21136,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21137,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21137,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21141,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 16
    argNames:
    - dst
    - dstCapacity
    - nextCTable
    - FSELog
    - type
    - count
    - max
    - codeTable
    - nbSeq
    - defaultNorm
    - defaultNormLog
    - defaultMax
    - prevCTable
    - prevCTableSize
    - entropyWorkspace
    - entropyWorkspaceSize
    argTypes:
    - void*
    - size_t
    - FSE_CTable*
    - U32
    - symbolEncodingType_e
    - unsigned*
    - U32
    - BYTE*
    - size_t
    - S16*
    - U32
    - U32
    - FSE_CTable*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (nbSeq_1 > 1)
      pos:
        line_end: 21129
        line_start: 21129
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (entropyWorkspaceSize >= sizeof(ZSTD_BuildCTableWksp))
      pos:
        line_end: 21130
        line_start: 21130
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 21140
        line_start: 21140
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oend >= op)
      pos:
        line_end: 21133
        line_start: 21133
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21143
      start: 21097
    functionDepth: 7
    functionLinenumber: 21097
    functionLinenumberEnd: 21143
    functionName: ZSTD_buildCTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_useLowProbCount
    - FSE_optimalTableLog
    - DEBUGLOG
    - FSE_writeNCount
    - RETURN_ERROR
    - FSE_buildCTable_rle
    - FSE_buildCTable_wksp
    - FSE_normalizeCount
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildCTable(void* dst, size_t dstCapacity,\n                FSE_CTable*
      nextCTable, U32 FSELog, symbolEncodingType_e type,\n                unsigned*
      count, U32 max,\n                const BYTE* codeTable, size_t nbSeq,\n                const
      S16* defaultNorm, U32 defaultNormLog, U32 defaultMax,\n                const
      FSE_CTable* prevCTable, size_t prevCTableSize,\n                void* entropyWorkspace,
      size_t entropyWorkspaceSize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21158,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21159,1
    - Dst: BIT_initCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21159,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21161,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21166,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21167,1
    - Dst: FSE_initCState2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21168,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21169,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21170,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21170,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21171,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21172,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21172,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21175,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21177,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21178,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21180,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21183,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21185,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21195,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21201,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21202,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21203,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21203,1
    - Dst: FSE_encodeSymbol
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21204,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21205,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21206,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21207,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21208,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21208,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21209,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21210,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21210,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21212,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21214,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21215,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21217,1
    - Dst: BIT_addBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21220,1
    - Dst: BIT_flushBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21222,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21223,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21226,1
    - Dst: FSE_flushCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21227,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21228,1
    - Dst: FSE_flushCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21229,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21230,1
    - Dst: FSE_flushCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21231,1
    - Dst: BIT_closeCStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21233,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21234,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 11
    argNames:
    - dst
    - dstCapacity
    - CTable_MatchLength
    - mlCodeTable
    - CTable_OffsetBits
    - ofCodeTable
    - CTable_LitLength
    - llCodeTable
    - sequences
    - nbSeq
    - longOffsets
    argTypes:
    - void*
    - size_t
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - seqDef*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21237
      start: 21145
    functionDepth: 6
    functionLinenumber: 21145
    functionLinenumberEnd: 21237
    functionName: ZSTD_encodeSequences_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FSE_initCState2
    - MEM_32bits
    - BIT_flushBits
    - ERR_isError
    - FSE_flushCState
    - DEBUGLOG
    - BIT_initCStream
    - FSE_encodeSymbol
    - RETURN_ERROR_IF
    - BIT_closeCStream
    - MIN
    - BIT_addBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_encodeSequences_body(\n            void*
      dst, size_t dstCapacity,\n            FSE_CTable const* CTable_MatchLength,
      BYTE const* mlCodeTable,\n            FSE_CTable const* CTable_OffsetBits, BYTE
      const* ofCodeTable,\n            FSE_CTable const* CTable_LitLength, BYTE const*
      llCodeTable,\n            seqDef const* sequences, size_t nbSeq, int longOffsets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_encodeSequences_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - dst
    - dstCapacity
    - CTable_MatchLength
    - mlCodeTable
    - CTable_OffsetBits
    - ofCodeTable
    - CTable_LitLength
    - llCodeTable
    - sequences
    - nbSeq
    - longOffsets
    argTypes:
    - void*
    - size_t
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - seqDef*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21252
      start: 21239
    functionDepth: 7
    functionLinenumber: 21239
    functionLinenumberEnd: 21252
    functionName: ZSTD_encodeSequences_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_encodeSequences_body
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_encodeSequences_default(\n            void* dst, size_t
      dstCapacity,\n            FSE_CTable const* CTable_MatchLength, BYTE const*
      mlCodeTable,\n            FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable,\n
      \           FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable,\n            seqDef
      const* sequences, size_t nbSeq, int longOffsets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_encodeSequences_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - dst
    - dstCapacity
    - CTable_MatchLength
    - mlCodeTable
    - CTable_OffsetBits
    - ofCodeTable
    - CTable_LitLength
    - llCodeTable
    - sequences
    - nbSeq
    - longOffsets
    argTypes:
    - void*
    - size_t
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - seqDef*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21270
      start: 21257
    functionDepth: 7
    functionLinenumber: 21257
    functionLinenumberEnd: 21270
    functionName: ZSTD_encodeSequences_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_encodeSequences_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE ZSTD_encodeSequences_bmi2(\n            void*
      dst, size_t dstCapacity,\n            FSE_CTable const* CTable_MatchLength,
      BYTE const* mlCodeTable,\n            FSE_CTable const* CTable_OffsetBits, BYTE
      const* ofCodeTable,\n            FSE_CTable const* CTable_LitLength, BYTE const*
      llCodeTable,\n            seqDef const* sequences, size_t nbSeq, int longOffsets)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21281,1
    - Dst: ZSTD_encodeSequences_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21284,1
    - Dst: ZSTD_encodeSequences_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 12
    argNames:
    - dst
    - dstCapacity
    - CTable_MatchLength
    - mlCodeTable
    - CTable_OffsetBits
    - ofCodeTable
    - CTable_LitLength
    - llCodeTable
    - sequences
    - nbSeq
    - longOffsets
    - bmi2
    argTypes:
    - void*
    - size_t
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - FSE_CTable*
    - BYTE*
    - seqDef*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21297
      start: 21274
    functionDepth: 8
    functionLinenumber: 21274
    functionLinenumberEnd: 21297
    functionName: ZSTD_encodeSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_encodeSequences_bmi2
    - ZSTD_encodeSequences_default
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_encodeSequences(\n            void* dst, size_t dstCapacity,\n
      \           FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable,\n
      \           FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable,\n
      \           FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable,\n            seqDef
      const* sequences, size_t nbSeq, int longOffsets, int bmi2)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21389,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21393,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21394,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21396,1
    - Dst: ZSTD_compressRleLiteralsBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21397,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21400,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21401,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21404,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21407,1
    - Dst: HUF_compress1X_usingCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21411,1
    - Dst: HUF_compress4X_usingCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21412,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21415,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21416,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21416,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21421,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21422,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21426,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21427,1
    - Dst: ZSTD_noCompressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21428,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21430,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21438,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21443,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21448,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21453,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21456,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 9
    argNames:
    - hufTable
    - hufMetadata
    - literals
    - litSize
    - dst
    - dstSize
    - bmi2
    - writeEntropy
    - entropyWritten
    argTypes:
    - HUF_CElt*
    - ZSTD_hufCTablesMetadata_t*
    - BYTE*
    - size_t
    - void*
    - size_t
    - int
    - int
    - int*
    assertStmts:
    - condition: (cLitSize > litSize)
      pos:
        line_end: 21425
        line_start: 21425
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (litSize > 0)
      pos:
        line_end: 21399
        line_start: 21399
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat)
      pos:
        line_end: 21400
        line_start: 21400
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 21452
        line_start: 21452
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21458
      start: 21373
    functionDepth: 12
    functionLinenumber: 21373
    functionLinenumberEnd: 21458
    functionName: ZSTD_compressSubBlock_literal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - MEM_writeLE32
    - ZSTD_noCompressLiterals
    - ERR_isError
    - ZSTD_compressRleLiteralsBlock
    - MEM_writeLE24
    - DEBUGLOG
    - ZSTD_getErrorName
    - HUF_compress4X_usingCTable
    - assert
    - HUF_compress1X_usingCTable
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable,\n                              const
      ZSTD_hufCTablesMetadata_t* hufMetadata,\n                              const
      BYTE* literals, size_t litSize,\n                              void* dst, size_t
      dstSize,\n                              const int bmi2, int writeEntropy, int*
      entropyWritten)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getSequenceLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21469,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21473,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21477,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - seqStore
    - sequences
    - nbSeqs
    - litSize
    - lastSubBlock
    argTypes:
    - seqStore_t*
    - seqDef*
    - size_t
    - size_t
    - int
    assertStmts:
    - condition: (litLengthSum == litSize)
      pos:
        line_end: 21476
        line_start: 21476
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (litLengthSum <= litSize)
      pos:
        line_end: 21478
        line_start: 21478
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21482
      start: 21460
    functionDepth: 1
    functionLinenumber: 21460
    functionLinenumberEnd: 21482
    functionName: ZSTD_seqDecompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getSequenceLength
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_seqDecompressedSize(seqStore_t const* seqStore,\n                   const
      seqDef* sequences, size_t nbSeqs,\n                         size_t litSize,
      int lastSubBlock)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21509,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21513,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21520,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21528,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21534,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21536,1
    - Dst: ZSTD_encodeSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21543,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21550,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21563,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21564,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21569,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21581,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 13
    argNames:
    - fseTables
    - fseMetadata
    - sequences
    - nbSeq
    - llCode
    - mlCode
    - ofCode
    - cctxParams
    - dst
    - dstCapacity
    - bmi2
    - writeEntropy
    - entropyWritten
    argTypes:
    - ZSTD_fseCTables_t*
    - ZSTD_fseCTablesMetadata_t*
    - seqDef*
    - size_t
    - BYTE*
    - BYTE*
    - BYTE*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - int
    - int
    - int*
    assertStmts:
    - condition: (fseMetadata->lastCountSize + bitstreamSize == 3)
      pos:
        line_end: 21562
        line_start: 21562
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21589
      start: 21494
    functionDepth: 9
    functionLinenumber: 21494
    functionLinenumberEnd: 21589
    functionName: ZSTD_compressSubBlock_sequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - DEBUGLOG
    - MEM_writeLE16
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_encodeSequences
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables,\n
      \                               const ZSTD_fseCTablesMetadata_t* fseMetadata,\n
      \                               const seqDef* sequences, size_t nbSeq,\n                                const
      BYTE* llCode, const BYTE* mlCode, const BYTE* ofCode,\n                                const
      ZSTD_CCtx_params* cctxParams,\n                                void* dst, size_t
      dstCapacity,\n                                const int bmi2, int writeEntropy,
      int* entropyWritten)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21610,1
    - Dst: ZSTD_compressSubBlock_literal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21612,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21616,1
    - Dst: ZSTD_compressSubBlock_sequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21620,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21627,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 18
    argNames:
    - entropy
    - entropyMetadata
    - sequences
    - nbSeq
    - literals
    - litSize
    - llCode
    - mlCode
    - ofCode
    - cctxParams
    - dst
    - dstCapacity
    - bmi2
    - writeLitEntropy
    - writeSeqEntropy
    - litEntropyWritten
    - seqEntropyWritten
    - lastBlock
    argTypes:
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTablesMetadata_t*
    - seqDef*
    - size_t
    - BYTE*
    - size_t
    - BYTE*
    - BYTE*
    - BYTE*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - int
    - int
    - int
    - int*
    - int*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21637
      start: 21595
    functionDepth: 13
    functionLinenumber: 21595
    functionLinenumberEnd: 21637
    functionName: ZSTD_compressSubBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressSubBlock_literal
    - MEM_writeLE24
    - DEBUGLOG
    - ZSTD_compressSubBlock_sequences
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t* entropy,\n
      \                                   const ZSTD_entropyCTablesMetadata_t* entropyMetadata,\n
      \                                   const seqDef* sequences, size_t nbSeq,\n
      \                                   const BYTE* literals, size_t litSize,\n
      \                                   const BYTE* llCode, const BYTE* mlCode,
      const BYTE* ofCode,\n                                    const ZSTD_CCtx_params*
      cctxParams,\n                                    void* dst, size_t dstCapacity,\n
      \                                   const int bmi2,\n                                    int
      writeLitEntropy, int writeSeqEntropy,\n                                    int*
      litEntropyWritten, int* seqEntropyWritten,\n                                    U32
      lastBlock)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HIST_count_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21652,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21653,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21654,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 7
    argNames:
    - literals
    - litSize
    - huf
    - hufMetadata
    - workspace
    - wkspSize
    - writeEntropy
    argTypes:
    - BYTE*
    - size_t
    - ZSTD_hufCTables_t*
    - ZSTD_hufCTablesMetadata_t*
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 21657
        line_start: 21657
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21660
      start: 21639
    functionDepth: 4
    functionLinenumber: 21639
    functionLinenumberEnd: 21660
    functionName: ZSTD_estimateSubBlockSize_literal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_isError
    - HIST_count_wksp
    - HUF_estimateCompressedSize
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateSubBlockSize_literal(const BYTE* literals, size_t
      litSize,\n                                                const ZSTD_hufCTables_t*
      huf,\n                                                const ZSTD_hufCTablesMetadata_t*
      hufMetadata,\n                                                void* workspace,
      size_t wkspSize,\n                                                int writeEntropy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21676,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21679,1
    - Dst: ZSTD_crossEntropyCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21681,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21682,1
    - Dst: ZSTD_fseBitCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21686,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21688,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 11
    argNames:
    - type
    - codeTable
    - maxCode
    - nbSeq
    - fseCTable
    - additionalBits
    - defaultNorm
    - defaultNormLog
    - defaultMax
    - workspace
    - wkspSize
    argTypes:
    - symbolEncodingType_e
    - BYTE*
    - unsigned
    - size_t
    - FSE_CTable*
    - U8*
    - short const*
    - U32
    - U32
    - void*
    - size_t
    assertStmts:
    - condition: (max <= defaultMax)
      pos:
        line_end: 21678
        line_start: 21678
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21695
      start: 21662
    functionDepth: 3
    functionLinenumber: 21662
    functionLinenumberEnd: 21695
    functionName: ZSTD_estimateSubBlockSize_symbolType
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ERROR
    - ZSTD_fseBitCost
    - assert
    - ZSTD_crossEntropyCost
    - HIST_countFast_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type,\n
      \                       const BYTE* codeTable, unsigned maxCode,\n                        size_t
      nbSeq, const FSE_CTable* fseCTable,\n                        const U8* additionalBits,\n
      \                       short const* defaultNorm, U32 defaultNormLog, U32 defaultMax,\n
      \                       void* workspace, size_t wkspSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_estimateSubBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21709,1
    - Dst: ZSTD_estimateSubBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21713,1
    - Dst: ZSTD_estimateSubBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - ofCodeTable
    - llCodeTable
    - mlCodeTable
    - nbSeq
    - fseTables
    - fseMetadata
    - workspace
    - wkspSize
    - writeEntropy
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - size_t
    - ZSTD_fseCTables_t*
    - ZSTD_fseCTablesMetadata_t*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21723
      start: 21697
    functionDepth: 4
    functionLinenumber: 21697
    functionLinenumberEnd: 21723
    functionName: ZSTD_estimateSubBlockSize_sequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateSubBlockSize_symbolType
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateSubBlockSize_sequences(const BYTE* ofCodeTable,\n
      \                                                 const BYTE* llCodeTable,\n
      \                                                 const BYTE* mlCodeTable,\n
      \                                                 size_t nbSeq,\n                                                  const
      ZSTD_fseCTables_t* fseTables,\n                                                  const
      ZSTD_fseCTablesMetadata_t* fseMetadata,\n                                                  void*
      workspace, size_t wkspSize,\n                                                  int
      writeEntropy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_estimateSubBlockSize_literal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21740,1
    - Dst: ZSTD_estimateSubBlockSize_sequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 12
    argNames:
    - literals
    - litSize
    - ofCodeTable
    - llCodeTable
    - mlCodeTable
    - nbSeq
    - entropy
    - entropyMetadata
    - workspace
    - wkspSize
    - writeLitEntropy
    - writeSeqEntropy
    argTypes:
    - BYTE*
    - size_t
    - BYTE*
    - BYTE*
    - BYTE*
    - size_t
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTablesMetadata_t*
    - void*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21748
      start: 21729
    functionDepth: 5
    functionLinenumber: 21729
    functionLinenumberEnd: 21748
    functionName: ZSTD_estimateSubBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateSubBlockSize_literal
    - ZSTD_estimateSubBlockSize_sequences
    linkageType: ''
    returnType: EstimatedBlockSize
    signature: "EstimatedBlockSize ZSTD_estimateSubBlockSize(const BYTE* literals,
      size_t litSize,\n                                        const BYTE* ofCodeTable,\n
      \                                       const BYTE* llCodeTable,\n                                        const
      BYTE* mlCodeTable,\n                                        size_t nbSeq,\n
      \                                       const ZSTD_entropyCTables_t* entropy,\n
      \                                       const ZSTD_entropyCTablesMetadata_t*
      entropyMetadata,\n                                        void* workspace, size_t
      wkspSize,\n                                        int writeLitEntropy, int
      writeSeqEntropy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - fseMetadata
    argTypes:
    - ZSTD_fseCTablesMetadata_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21759
      start: 21750
    functionDepth: 0
    functionLinenumber: 21750
    functionLinenumberEnd: 21759
    functionName: ZSTD_needSequenceEntropyTables
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const*
      fseMetadata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21764,1
    - Dst: ZSTD_getSequenceLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21766,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - seqStore
    - sp
    - seqCount
    argTypes:
    - seqStore_t*
    - seqDef*
    - size_t
    assertStmts:
    - condition: (sp != NULL)
      pos:
        line_end: 21763
        line_start: 21763
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21770
      start: 21761
    functionDepth: 1
    functionLinenumber: 21761
    functionLinenumberEnd: 21770
    functionName: countLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - ZSTD_getSequenceLength
    linkageType: ''
    returnType: size_t
    signature: size_t countLiterals(seqStore_t const* seqStore, const seqDef* sp,
      size_t seqCount)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21781,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 6
    argNames:
    - sp
    - nbSeqs
    - targetBudget
    - avgLitCost
    - avgSeqCost
    - firstSubBlock
    argTypes:
    - seqDef*
    - size_t
    - size_t
    - size_t
    - size_t
    - int
    assertStmts:
    - condition: (firstSubBlock==0 || firstSubBlock==1)
      pos:
        line_end: 21780
        line_start: 21780
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21802
      start: 21774
    functionDepth: 1
    functionLinenumber: 21774
    functionLinenumberEnd: 21802
    functionName: sizeBlockSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t sizeBlockSequences(const seqDef* sp, size_t nbSeqs,\n                size_t
      targetBudget, size_t avgLitCost, size_t avgSeqCost,\n                int firstSubBlock)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21838,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21842,1
    - Dst: ZSTD_estimateSubBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21848,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21856,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21859,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21867,1
    - Dst: sizeBlockSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21870,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21873,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21875,1
    - Dst: countLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21879,1
    - Dst: ZSTD_seqDecompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21881,1
    - Dst: ZSTD_compressSubBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21882,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21891,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21895,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21897,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21919,1
    - Dst: ZSTD_seqDecompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21925,1
    - Dst: ZSTD_compressSubBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21926,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21935,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21939,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21941,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21961,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21962,1
    - Dst: ZSTD_needSequenceEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21964,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21968,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21975,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21976,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21977,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21978,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21984,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21986,1
    - Dst: ZSTD_getSequenceLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21986,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21988,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:21992,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 13
    argNames:
    - seqStorePtr
    - prevCBlock
    - nextCBlock
    - entropyMetadata
    - cctxParams
    - dst
    - dstCapacity
    - src
    - srcSize
    - bmi2
    - lastBlock
    - workspace
    - wkspSize
    argTypes:
    - seqStore_t*
    - ZSTD_compressedBlockState_t*
    - ZSTD_compressedBlockState_t*
    - ZSTD_entropyCTablesMetadata_t*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - U32
    - void*
    - size_t
    assertStmts:
    - condition: (seqCount <= (size_t)(send-sp))
      pos:
        line_end: 21872
        line_start: 21872
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip + decompressedSize <= iend)
      pos:
        line_end: 21940
        line_start: 21940
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSize != 0)
      pos:
        line_end: 21977
        line_start: 21977
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqCount > 0)
      pos:
        line_end: 21874
        line_start: 21874
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip + decompressedSize <= iend)
      pos:
        line_end: 21896
        line_start: 21896
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbSubBlocks>0)
      pos:
        line_end: 21866
        line_start: 21866
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 21995
      start: 21811
    functionDepth: 14
    functionLinenumber: 21811
    functionLinenumberEnd: 21995
    functionName: ZSTD_compressSubBlock_multi
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - countLiterals
    - ZSTD_noCompressBlock
    - ZSTD_estimateSubBlockSize
    - MAX
    - ZSTD_needSequenceEntropyTables
    - DEBUGLOG
    - ZSTD_compressSubBlock
    - ZSTD_seqDecompressedSize
    - ZSTD_getSequenceLength
    - sizeBlockSequences
    - ZSTD_updateRep
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr,\n
      \                           const ZSTD_compressedBlockState_t* prevCBlock,\n
      \                           ZSTD_compressedBlockState_t* nextCBlock,\n                            const
      ZSTD_entropyCTablesMetadata_t* entropyMetadata,\n                            const
      ZSTD_CCtx_params* cctxParams,\n                                  void* dst,
      size_t dstCapacity,\n                            const void* src, size_t srcSize,\n
      \                           const int bmi2, U32 lastBlock,\n                            void*
      workspace, size_t wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22004,1
    - Dst: ZSTD_buildBlockEntropyStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22004,1
    - Dst: ZSTD_compressSubBlock_multi
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22020
      start: 21997
    functionDepth: 15
    functionLinenumber: 21997
    functionLinenumberEnd: 22020
    functionName: ZSTD_compressSuperBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressSubBlock_multi
    - ZSTD_buildBlockEntropyStats
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc,\n                               void*
      dst, size_t dstCapacity,\n                               const void* src, size_t
      srcSize,\n                               unsigned lastBlock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_COMPRESSBOUND
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22584,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - srcSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22587
      start: 22583
    functionDepth: 1
    functionLinenumber: 22583
    functionLinenumberEnd: 22587
    functionName: ZSTD_compressBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ERROR
    - ZSTD_COMPRESSBOUND
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBound(size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtx_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22613
      start: 22610
    functionDepth: 1
    functionLinenumber: 22610
    functionLinenumberEnd: 22613
    functionName: ZSTD_createCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_createCCtx_advanced
    linkageType: ''
    returnType: ZSTD_CCtx
    signature: ZSTD_CCtx * ZSTD_createCCtx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22617,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22618,1
    - Dst: ZSTD_cpuSupportsBmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22620,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22621,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22622,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - cctx
    - memManager
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_customMem
    assertStmts:
    - condition: (cctx != NULL)
      pos:
        line_end: 22616
        line_start: 22616
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(err))
      pos:
        line_end: 22621
        line_start: 22621
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22625
      start: 22615
    functionDepth: 3
    functionLinenumber: 22615
    functionLinenumberEnd: 22625
    functionName: ZSTD_initCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - ZSTD_cpuSupportsBmi2
    - ZSTD_memset
    - assert
    linkageType: ''
    returnType: void
    signature: void ZSTD_initCCtx(ZSTD_CCtx* cctx, ZSTD_customMem memManager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22629,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22630,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22632,1
    - Dst: ZSTD_initCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22637
      start: 22627
    functionDepth: 4
    functionLinenumber: 22627
    functionLinenumberEnd: 22637
    functionName: ZSTD_createCCtx_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_customMalloc
    - ZSTD_STATIC_ASSERT
    - ZSTD_initCCtx
    linkageType: ''
    returnType: ZSTD_CCtx
    signature: ZSTD_CCtx * ZSTD_createCCtx_advanced(ZSTD_customMem customMem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22645,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22647,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22650,1
    - Dst: ZSTD_cwksp_move
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22651,1
    - Dst: ZSTD_cwksp_check_available
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22655,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22656,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22657,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22658,1
    - Dst: ZSTD_cpuid_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22659,1
    - Dst: ZSTD_cpuid
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22659,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22661
      start: 22639
    functionDepth: 4
    functionLinenumber: 22639
    functionLinenumberEnd: 22661
    functionName: ZSTD_initStaticCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_move
    - ZSTD_cpuid
    - ZSTD_cwksp_init
    - ZSTD_cwksp_reserve_object
    - ZSTD_cwksp_check_available
    - ZSTD_memset
    - ZSTD_cpuid_bmi2
    linkageType: ''
    returnType: ZSTD_CCtx
    signature: ZSTD_CCtx * ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22668,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22669,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22670,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22673
      start: 22666
    functionDepth: 2
    functionLinenumber: 22666
    functionLinenumberEnd: 22673
    functionName: ZSTD_clearAllDicts
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_freeCDict
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTD_clearAllDicts(ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_sizeof_CDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - ZSTD_localDict
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22680
      start: 22675
    functionDepth: 1
    functionLinenumber: 22675
    functionLinenumberEnd: 22680
    functionName: ZSTD_sizeof_localDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_sizeof_CDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_localDict(ZSTD_localDict dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22684,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22685,1
    - Dst: ZSTD_clearAllDicts
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22686,1
    - Dst: ZSTDMT_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22688,1
    - Dst: ZSTD_cwksp_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (cctx != NULL)
      pos:
        line_end: 22683
        line_start: 22683
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->staticSize == 0)
      pos:
        line_end: 22684
        line_start: 22684
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22691
      start: 22682
    functionDepth: 3
    functionLinenumber: 22682
    functionLinenumberEnd: 22691
    functionName: ZSTD_freeCCtxContent
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_cwksp_free
    - ZSTDMT_freeCCtx
    - ZSTD_clearAllDicts
    linkageType: ''
    returnType: void
    signature: void ZSTD_freeCCtxContent(ZSTD_CCtx* cctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22695,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22697,1
    - Dst: ZSTD_cwksp_owns_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22699,1
    - Dst: ZSTD_freeCCtxContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22700,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22704
      start: 22693
    functionDepth: 4
    functionLinenumber: 22693
    functionLinenumberEnd: 22704
    functionName: ZSTD_freeCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_freeCCtxContent
    - DEBUGLOG
    - ZSTD_cwksp_owns_buffer
    - ZSTD_customFree
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_sizeof_CCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22715
      start: 22707
    functionDepth: 1
    functionLinenumber: 22707
    functionLinenumberEnd: 22715
    functionName: ZSTD_sizeof_mtctx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_sizeof_CCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_mtctx(const ZSTD_CCtx* cctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22723,1
    - Dst: ZSTD_sizeof_localDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22724,1
    - Dst: ZSTD_sizeof_mtctx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22726
      start: 22718
    functionDepth: 2
    functionLinenumber: 22718
    functionLinenumberEnd: 22726
    functionName: ZSTD_sizeof_CCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_sizeof_mtctx
    - ZSTD_sizeof_localDict
    - ZSTD_cwksp_sizeof
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_sizeof_CCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zcs
    argTypes:
    - ZSTD_CStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22731
      start: 22728
    functionDepth: 3
    functionLinenumber: 22728
    functionLinenumberEnd: 22731
    functionName: ZSTD_sizeof_CStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_sizeof_CCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22734
      start: 22734
    functionDepth: 0
    functionLinenumber: 22734
    functionLinenumberEnd: 22734
    functionName: ZSTD_getSeqStore
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: seqStore_t
    signature: seqStore_t * ZSTD_getSeqStore(const ZSTD_CCtx* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - ZSTD_strategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22739
      start: 22737
    functionDepth: 0
    functionLinenumber: 22737
    functionLinenumberEnd: 22739
    functionName: ZSTD_rowMatchFinderSupported
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_rowMatchFinderSupported(const ZSTD_strategy strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22745,1
    - Dst: ZSTD_rowMatchFinderSupported
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - strategy
    - mode
    argTypes:
    - ZSTD_strategy
    - ZSTD_paramSwitch_e
    assertStmts:
    - condition: (mode != ZSTD_ps_auto)
      pos:
        line_end: 22744
        line_start: 22744
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22747
      start: 22744
    functionDepth: 1
    functionLinenumber: 22744
    functionLinenumberEnd: 22747
    functionName: ZSTD_rowMatchFinderUsed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rowMatchFinderSupported
    - assert
    linkageType: ''
    returnType: int
    signature: int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_paramSwitch_e
      mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_rowMatchFinderSupported
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - mode
    - cParams
    argTypes:
    - ZSTD_paramSwitch_e
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22766
      start: 22750
    functionDepth: 1
    functionLinenumber: 22750
    functionLinenumberEnd: 22766
    functionName: ZSTD_resolveRowMatchFinderMode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rowMatchFinderSupported
    linkageType: ''
    returnType: ZSTD_paramSwitch_e
    signature: "ZSTD_paramSwitch_e ZSTD_resolveRowMatchFinderMode(ZSTD_paramSwitch_e
      mode,\n                                                         const ZSTD_compressionParameters*
      const cParams)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - cParams
    argTypes:
    - ZSTD_paramSwitch_e
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22773
      start: 22769
    functionDepth: 0
    functionLinenumber: 22769
    functionLinenumberEnd: 22773
    functionName: ZSTD_resolveBlockSplitterMode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_paramSwitch_e
    signature: "ZSTD_paramSwitch_e ZSTD_resolveBlockSplitterMode(ZSTD_paramSwitch_e
      mode,\n                                                        const ZSTD_compressionParameters*
      const cParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22779,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - strategy
    - useRowMatchFinder
    - forDDSDict
    argTypes:
    - ZSTD_strategy
    - ZSTD_paramSwitch_e
    - U32
    assertStmts:
    - condition: (useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 22778
        line_start: 22778
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22784
      start: 22776
    functionDepth: 2
    functionLinenumber: 22776
    functionLinenumberEnd: 22784
    functionName: ZSTD_allocateChainTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_rowMatchFinderUsed
    linkageType: ''
    returnType: int
    signature: "int ZSTD_allocateChainTable(const ZSTD_strategy strategy,\n                                   const
      ZSTD_paramSwitch_e useRowMatchFinder,\n                                   const
      U32 forDDSDict)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - mode
    - cParams
    argTypes:
    - ZSTD_paramSwitch_e
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22794
      start: 22790
    functionDepth: 0
    functionLinenumber: 22790
    functionLinenumberEnd: 22794
    functionName: ZSTD_resolveEnableLdm
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_paramSwitch_e
    signature: "ZSTD_paramSwitch_e ZSTD_resolveEnableLdm(ZSTD_paramSwitch_e mode,\n
      \                                const ZSTD_compressionParameters* const cParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22798
      start: 22796
    functionDepth: 0
    functionLinenumber: 22796
    functionLinenumberEnd: 22798
    functionName: ZSTD_resolveExternalSequenceValidation
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_resolveExternalSequenceValidation(int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - maxBlockSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22807
      start: 22801
    functionDepth: 0
    functionLinenumber: 22801
    functionLinenumberEnd: 22807
    functionName: ZSTD_resolveMaxBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_resolveMaxBlockSize(size_t maxBlockSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - value
    - cLevel
    argTypes:
    - ZSTD_paramSwitch_e
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22816
      start: 22809
    functionDepth: 0
    functionLinenumber: 22809
    functionLinenumberEnd: 22816
    functionName: ZSTD_resolveExternalRepcodeSearch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_paramSwitch_e
    signature: ZSTD_paramSwitch_e ZSTD_resolveExternalRepcodeSearch(ZSTD_paramSwitch_e
      value, int cLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22822
      start: 22820
    functionDepth: 0
    functionLinenumber: 22820
    functionLinenumberEnd: 22822
    functionName: ZSTD_CDictIndicesAreTagged
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_CDictIndicesAreTagged(const ZSTD_compressionParameters* const
      cParams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22829,1
    - Dst: ZSTD_resolveEnableLdm
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22833,1
    - Dst: ZSTD_ldm_adjustParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22835,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22836,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22837,1
    - Dst: ZSTD_resolveBlockSplitterMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22839,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22840,1
    - Dst: ZSTD_resolveExternalSequenceValidation
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22841,1
    - Dst: ZSTD_resolveMaxBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22842,1
    - Dst: ZSTD_resolveExternalRepcodeSearch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22843,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22845,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters
    assertStmts:
    - condition: (cctxParams.ldmParams.hashLog >= cctxParams.ldmParams.bucketSizeLog)
      pos:
        line_end: 22835
        line_start: 22835
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctxParams.ldmParams.hashRateLog < 32)
      pos:
        line_end: 22836
        line_start: 22836
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_checkCParams(cParams))
      pos:
        line_end: 22844
        line_start: 22844
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22847
      start: 22824
    functionDepth: 2
    functionLinenumber: 22824
    functionLinenumberEnd: 22847
    functionName: ZSTD_makeCCtxParamsFromCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkCParams
    - ZSTD_resolveExternalRepcodeSearch
    - ZSTD_CCtxParams_init
    - ZSTD_resolveMaxBlockSize
    - ZSTD_ldm_adjustParameters
    - ZSTD_resolveRowMatchFinderMode
    - assert
    - ZSTD_resolveExternalSequenceValidation
    - ZSTD_resolveEnableLdm
    - ZSTD_resolveBlockSplitterMode
    linkageType: ''
    returnType: ZSTD_CCtx_params
    signature: "ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams(\n        ZSTD_compressionParameters
      cParams)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22854,1
    - Dst: ZSTD_CCtxParams_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22860
      start: 22849
    functionDepth: 2
    functionLinenumber: 22849
    functionLinenumberEnd: 22860
    functionName: ZSTD_createCCtxParams_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customCalloc
    - ZSTD_CCtxParams_init
    linkageType: ''
    returnType: ZSTD_CCtx_params
    signature: "ZSTD_CCtx_params * ZSTD_createCCtxParams_advanced(\n        ZSTD_customMem
      customMem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtxParams_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22865
      start: 22862
    functionDepth: 3
    functionLinenumber: 22862
    functionLinenumberEnd: 22865
    functionName: ZSTD_createCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_createCCtxParams_advanced
    linkageType: ''
    returnType: ZSTD_CCtx_params
    signature: ZSTD_CCtx_params * ZSTD_createCCtxParams(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22872
      start: 22867
    functionDepth: 2
    functionLinenumber: 22867
    functionLinenumberEnd: 22872
    functionName: ZSTD_freeCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_customFree
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22877
      start: 22874
    functionDepth: 1
    functionLinenumber: 22874
    functionLinenumberEnd: 22877
    functionName: ZSTD_CCtxParams_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_CCtxParams_init
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22880,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cctxParams
    - compressionLevel
    argTypes:
    - ZSTD_CCtx_params*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22885
      start: 22879
    functionDepth: 1
    functionLinenumber: 22879
    functionLinenumberEnd: 22885
    functionName: ZSTD_CCtxParams_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZSTD_memset
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22898,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22898,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22899,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22906,1
    - Dst: ZSTD_resolveBlockSplitterMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22907,1
    - Dst: ZSTD_resolveEnableLdm
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22908,1
    - Dst: ZSTD_resolveExternalSequenceValidation
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22909,1
    - Dst: ZSTD_resolveMaxBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22910,1
    - Dst: ZSTD_resolveExternalRepcodeSearch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22911,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - cctxParams
    - params
    - compressionLevel
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_parameters*
    - int
    assertStmts:
    - condition: (!ZSTD_checkCParams(params->cParams))
      pos:
        line_end: 22897
        line_start: 22897
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22914
      start: 22893
    functionDepth: 2
    functionLinenumber: 22893
    functionLinenumberEnd: 22914
    functionName: ZSTD_CCtxParams_init_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resolveExternalSequenceValidation
    - ZSTD_resolveExternalRepcodeSearch
    - ZSTD_resolveMaxBlockSize
    - DEBUGLOG
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_memset
    - assert
    - ZSTD_checkCParams
    - ZSTD_resolveEnableLdm
    - ZSTD_resolveBlockSplitterMode
    linkageType: ''
    returnType: void
    signature: "void ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams,\n
      \                       const ZSTD_parameters* params,\n                              int
      compressionLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22918,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22919,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22919,1
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cctxParams
    - params
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22922
      start: 22916
    functionDepth: 3
    functionLinenumber: 22916
    functionLinenumberEnd: 22922
    functionName: ZSTD_CCtxParams_init_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkCParams
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams,
      ZSTD_parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22931,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cctxParams
    - params
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_parameters*
    assertStmts:
    - condition: (!ZSTD_checkCParams(params->cParams))
      pos:
        line_end: 22930
        line_start: 22930
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 22938
      start: 22928
    functionDepth: 1
    functionLinenumber: 22928
    functionLinenumberEnd: 22938
    functionName: ZSTD_CCtxParams_setZstdParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_checkCParams
    linkageType: ''
    returnType: void
    signature: "void ZSTD_CCtxParams_setZstdParams(\n        ZSTD_CCtx_params* cctxParams,
      const ZSTD_parameters* params)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_minCLevel
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22947,1
    - Dst: ZSTD_maxCLevel
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:22948,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23071,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23077,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23083,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 162
    argCount: 1
    argNames:
    - param
    argTypes:
    - ZSTD_cParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23153
      start: 22940
    functionDepth: 1
    functionLinenumber: 22940
    functionLinenumberEnd: 23153
    functionName: ZSTD_cParam_getBounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_maxCLevel
    - ZSTD_STATIC_ASSERT
    - ERROR
    - ZSTD_minCLevel
    linkageType: ''
    returnType: ZSTD_bounds
    signature: ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cParam_getBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23160,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cParam
    - value
    argTypes:
    - ZSTD_cParameter
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23165
      start: 23158
    functionDepth: 3
    functionLinenumber: 23158
    functionLinenumberEnd: 23165
    functionName: ZSTD_cParam_clampBounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_cParam_getBounds
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_cParam_clampBounds(ZSTD_cParameter cParam, int* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cParam
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23172
      start: 23167
    functionDepth: 0
    functionLinenumber: 23167
    functionLinenumberEnd: 23172
    functionName: BOUNDCHECK
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOUNDCHECK(cParam, val)
  - BBCount: 40
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - param
    argTypes:
    - ZSTD_cParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23221
      start: 23174
    functionDepth: 0
    functionLinenumber: 23174
    functionLinenumberEnd: 23221
    functionName: ZSTD_isUpdateAuthorized
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_isUpdateAuthorized(ZSTD_cParameter param)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23225,1
    - Dst: ZSTD_isUpdateAuthorized
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23227,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23230,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23236,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23279,1
    - Dst: ZSTD_CCtxParams_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 3
    argNames:
    - cctx
    - param
    - value
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_cParameter
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23282
      start: 23223
    functionDepth: 1
    functionLinenumber: 23223
    functionLinenumberEnd: 23282
    functionName: ZSTD_CCtx_setParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtxParams_setParameter
    - DEBUGLOG
    - RETURN_ERROR
    - RETURN_ERROR_IF
    - ZSTD_isUpdateAuthorized
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param,
      int value)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23287,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23291,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23296,1
    - Dst: ZSTD_cParam_clampBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23296,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23307,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23313,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23319,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23325,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23331,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23336,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23342,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23348,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23358,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23368,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23375,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23382,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23385,1
    - Dst: ZSTD_cParam_clampBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23385,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23392,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23398,1
    - Dst: ZSTD_cParam_clampBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23398,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23399,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23406,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23409,1
    - Dst: ZSTD_cParam_clampBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23409,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23416,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23419,1
    - Dst: ZSTD_cParam_clampBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23419,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23429,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23435,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23441,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23447,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23453,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23459,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23460,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23467,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23472,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23477,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23482,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23487,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23492,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23497,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23502,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23507,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23512,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23518,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23523,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23527,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 188
    argCount: 3
    argNames:
    - CCtxParams
    - param
    - value
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_cParameter
    - int
    assertStmts:
    - condition: (value >= 0)
      pos:
        line_end: 23398
        line_start: 23398
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 23529
      start: 23284
    functionDepth: 4
    functionLinenumber: 23284
    functionLinenumberEnd: 23529
    functionName: ZSTD_CCtxParams_setParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - BOUNDCHECK
    - MAX
    - DEBUGLOG
    - RETURN_ERROR
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_cParam_clampBounds
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,\n
      \                                   ZSTD_cParameter param, int value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_getParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cctx
    - param
    - value
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_cParameter
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23534
      start: 23531
    functionDepth: 1
    functionLinenumber: 23531
    functionLinenumberEnd: 23534
    functionName: ZSTD_CCtx_getParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtxParams_getParameter
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_getParameter(ZSTD_CCtx const* cctx, ZSTD_cParameter
      param, int* value)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23588,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23594,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23596,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23602,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23609,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23671,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 125
    argCount: 3
    argNames:
    - CCtxParams
    - param
    - value
    argTypes:
    - ZSTD_CCtx_params*
    - ZSTD_cParameter
    - int*
    assertStmts:
    - condition: (CCtxParams->nbWorkers == 0)
      pos:
        line_end: 23587
        line_start: 23587
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (CCtxParams->jobSize <= INT_MAX)
      pos:
        line_end: 23595
        line_start: 23595
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 23674
      start: 23536
    functionDepth: 1
    functionLinenumber: 23536
    functionLinenumberEnd: 23674
    functionName: ZSTD_CCtxParams_getParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtxParams_getParameter(\n        ZSTD_CCtx_params const*
      CCtxParams, ZSTD_cParameter param, int* value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23686,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23687,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - params
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23695
      start: 23683
    functionDepth: 1
    functionLinenumber: 23683
    functionLinenumberEnd: 23695
    functionName: ZSTD_CCtx_setParametersUsingCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - RETURN_ERROR_IF
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtx_setParametersUsingCCtxParams(\n        ZSTD_CCtx*
      cctx, const ZSTD_CCtx_params* params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23699,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23700,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23702,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23702,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23703,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23703,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23704,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23704,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23705,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23705,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23706,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23706,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23707,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23707,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23708,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23708,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23709,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cctx
    - cparams
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23711
      start: 23697
    functionDepth: 2
    functionLinenumber: 23697
    functionLinenumberEnd: 23711
    functionName: ZSTD_CCtx_setCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_setParameter
    - DEBUGLOG
    - ZSTD_checkCParams
    - ZSTD_STATIC_ASSERT
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_setCParams(ZSTD_CCtx* cctx, ZSTD_compressionParameters
      cparams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23715,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23716,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23717,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23717,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23718,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23718,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23719,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cctx
    - fparams
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_frameParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23721
      start: 23713
    functionDepth: 2
    functionLinenumber: 23713
    functionLinenumberEnd: 23721
    functionName: ZSTD_CCtx_setFParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_STATIC_ASSERT
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_CCtx_setParameter
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_setFParams(ZSTD_CCtx* cctx, ZSTD_frameParameters fparams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23725,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23727,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23727,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23729,1
    - Dst: ZSTD_CCtx_setFParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23729,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23731,1
    - Dst: ZSTD_CCtx_setCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cctx
    - params
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23733
      start: 23723
    functionDepth: 3
    functionLinenumber: 23723
    functionLinenumberEnd: 23733
    functionName: ZSTD_CCtx_setParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_CCtx_setCParams
    - ZSTD_checkCParams
    - ZSTD_CCtx_setFParams
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_setParams(ZSTD_CCtx* cctx, ZSTD_parameters params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23737,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23742
      start: 23735
    functionDepth: 1
    functionLinenumber: 23735
    functionLinenumberEnd: 23742
    functionName: ZSTD_CCtx_setPledgedSrcSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 8
    functionsReached:
    - RETURN_ERROR_IF
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long
      pledgedSrcSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23762,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23763,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23764,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23769,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23772,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23773,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23774,1
    - Dst: ZSTD_createCDict_advanced2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23776,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (dl->dictBuffer == NULL)
      pos:
        line_end: 23761
        line_start: 23761
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->cdict == dl->cdict)
      pos:
        line_end: 23768
        line_start: 23768
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dl->dictSize == 0)
      pos:
        line_end: 23763
        line_start: 23763
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dl->cdict == NULL)
      pos:
        line_end: 23762
        line_start: 23762
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dl->dictSize > 0)
      pos:
        line_end: 23771
        line_start: 23771
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->cdict == NULL)
      pos:
        line_end: 23772
        line_start: 23772
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->prefixDict.dict == NULL)
      pos:
        line_end: 23773
        line_start: 23773
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 23786
      start: 23757
    functionDepth: 1
    functionLinenumber: 23757
    functionLinenumberEnd: 23786
    functionName: ZSTD_initLocalDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - RETURN_ERROR_IF
    - ZSTD_createCDict_advanced2
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23794,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23795,1
    - Dst: ZSTD_clearAllDicts
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23797,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23805,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23807,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23808,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - cctx
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23817
      start: 23788
    functionDepth: 3
    functionLinenumber: 23788
    functionLinenumberEnd: 23817
    functionName: ZSTD_CCtx_loadDictionary_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_clearAllDicts
    - ZSTD_customMalloc
    - DEBUGLOG
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtx_loadDictionary_advanced(\n        ZSTD_CCtx* cctx,\n
      \       const void* dict, size_t dictSize,\n        ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \       ZSTD_dictContentType_e dictContentType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23824
      start: 23819
    functionDepth: 4
    functionLinenumber: 23819
    functionLinenumberEnd: 23824
    functionName: ZSTD_CCtx_loadDictionary_byReference
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_loadDictionary_advanced
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtx_loadDictionary_byReference(\n      ZSTD_CCtx* cctx,
      const void* dict, size_t dictSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23830
      start: 23826
    functionDepth: 4
    functionLinenumber: 23826
    functionLinenumberEnd: 23830
    functionName: ZSTD_CCtx_loadDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_loadDictionary_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict,
      size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23835,1
    - Dst: ZSTD_clearAllDicts
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cctx
    - cdict
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23841
      start: 23833
    functionDepth: 3
    functionLinenumber: 23833
    functionLinenumberEnd: 23841
    functionName: ZSTD_CCtx_refCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_clearAllDicts
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cctx
    - pool
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_threadPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23849
      start: 23843
    functionDepth: 1
    functionLinenumber: 23843
    functionLinenumberEnd: 23849
    functionName: ZSTD_CCtx_refThreadPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtx_refPrefix_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cctx
    - prefix
    - prefixSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23854
      start: 23851
    functionDepth: 1
    functionLinenumber: 23851
    functionLinenumberEnd: 23854
    functionName: ZSTD_CCtx_refPrefix
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_refPrefix_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t
      prefixSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23859,1
    - Dst: ZSTD_clearAllDicts
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - cctx
    - prefix
    - prefixSize
    - dictContentType
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23868
      start: 23856
    functionDepth: 3
    functionLinenumber: 23856
    functionLinenumberEnd: 23868
    functionName: ZSTD_CCtx_refPrefix_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_clearAllDicts
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtx_refPrefix_advanced(\n        ZSTD_CCtx* cctx, const
      void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23881,1
    - Dst: ZSTD_clearAllDicts
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23883,1
    - Dst: ZSTD_CCtxParams_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cctx
    - reset
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_ResetDirective
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23887
      start: 23872
    functionDepth: 3
    functionLinenumber: 23872
    functionLinenumberEnd: 23887
    functionName: ZSTD_CCtx_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 8
    functionsReached:
    - ZSTD_CCtxParams_reset
    - RETURN_ERROR_IF
    - ZSTD_clearAllDicts
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23895,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23896,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23897,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23898,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23899,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23900,1
    - Dst: BOUNDCHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23903
      start: 23893
    functionDepth: 1
    functionLinenumber: 23893
    functionLinenumberEnd: 23903
    functionName: ZSTD_checkCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 6
    functionsReached:
    - BOUNDCHECK
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23918,1
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23919,1
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23920,1
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23921,1
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23922,1
    - Dst: CLAMP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23923,1
    - Dst: CLAMP_TYPE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23926
      start: 23908
    functionDepth: 1
    functionLinenumber: 23908
    functionLinenumberEnd: 23926
    functionName: ZSTD_clampCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - CLAMP
    - CLAMP_TYPE
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: ZSTD_compressionParameters ZSTD_clampCParams(ZSTD_compressionParameters
      cParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cParam
    - ','
    - val
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23917
      start: 23911
    functionDepth: 0
    functionLinenumber: 23911
    functionLinenumberEnd: 23917
    functionName: CLAMP_TYPE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMP_TYPE(cParam, val, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cParam
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23918
      start: 23917
    functionDepth: 0
    functionLinenumber: 23917
    functionLinenumberEnd: 23918
    functionName: CLAMP
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLAMP(cParam, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hashLog
    - strat
    argTypes:
    - U32
    - ZSTD_strategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23934
      start: 23930
    functionDepth: 0
    functionLinenumber: 23930
    functionLinenumberEnd: 23934
    functionName: ZSTD_cycleLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23951,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23952,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - windowLog
    - srcSize
    - dictSize
    argTypes:
    - U32
    - U64
    - U64
    assertStmts:
    - condition: (windowLog <= ZSTD_WINDOWLOG_MAX)
      pos:
        line_end: 23950
        line_start: 23950
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize != ZSTD_CONTENTSIZE_UNKNOWN)
      pos:
        line_end: 23951
        line_start: 23951
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 23968
      start: 23944
    functionDepth: 4
    functionLinenumber: 23944
    functionLinenumberEnd: 23968
    functionName: ZSTD_dictAndWindowLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_highbit32
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_dictAndWindowLog(U32 windowLog, U64 srcSize, U64 dictSize)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23986,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:23986,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24053,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24063,1
    - Dst: ZSTD_dictAndWindowLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24067,1
    - Dst: ZSTD_cycleLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24068,1
    - Dst: ZSTD_CDictIndicesAreTagged
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24080,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24102,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24107,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 5
    argNames:
    - cPar
    - srcSize
    - dictSize
    - mode
    - useRowMatchFinder
    argTypes:
    - ZSTD_compressionParameters
    - unsigned long long
    - size_t
    - ZSTD_cParamMode_e
    - ZSTD_paramSwitch_e
    assertStmts:
    - condition: (ZSTD_checkCParams(cPar)==0)
      pos:
        line_end: 23985
        line_start: 23985
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 24052
        line_start: 24052
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cPar.hashLog >= rowLog)
      pos:
        line_end: 24106
        line_start: 24106
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24114
      start: 23977
    functionDepth: 5
    functionLinenumber: 23977
    functionLinenumberEnd: 24114
    functionName: ZSTD_adjustCParams_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - ZSTD_rowMatchFinderUsed
    - ZSTD_CDictIndicesAreTagged
    - ZSTD_dictAndWindowLog
    - BOUNDED
    - assert
    - ZSTD_checkCParams
    - ZSTD_cycleLog
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: "ZSTD_compressionParameters ZSTD_adjustCParams_internal(ZSTD_compressionParameters
      cPar,\n                            unsigned long long srcSize,\n                            size_t
      dictSize,\n                            ZSTD_cParamMode_e mode,\n                            ZSTD_paramSwitch_e
      useRowMatchFinder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_clampCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24121,1
    - Dst: ZSTD_adjustCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cPar
    - srcSize
    - dictSize
    argTypes:
    - ZSTD_compressionParameters
    - unsigned long long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24124
      start: 24116
    functionDepth: 6
    functionLinenumber: 24116
    functionLinenumberEnd: 24124
    functionName: ZSTD_adjustCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_clampCParams
    - ZSTD_adjustCParams_internal
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: "ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters
      cPar,\n                   unsigned long long srcSize,\n                   size_t
      dictSize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - cParams
    - overrides
    argTypes:
    - ZSTD_compressionParameters*
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24140
      start: 24129
    functionDepth: 0
    functionLinenumber: 24129
    functionLinenumberEnd: 24140
    functionName: ZSTD_overrideCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZSTD_overrideCParams(\n              ZSTD_compressionParameters*
      cParams,\n        const ZSTD_compressionParameters* overrides)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24149,1
    - Dst: ZSTD_overrideCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24151,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24152,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24152,1
    - Dst: ZSTD_adjustCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - CCtxParams
    - srcSizeHint
    - dictSize
    - mode
    argTypes:
    - ZSTD_CCtx_params*
    - U64
    - size_t
    - ZSTD_cParamMode_e
    assertStmts:
    - condition: (!ZSTD_checkCParams(cParams))
      pos:
        line_end: 24151
        line_start: 24151
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24155
      start: 24142
    functionDepth: 6
    functionLinenumber: 24142
    functionLinenumberEnd: 24155
    functionName: ZSTD_getCParamsFromCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_adjustCParams_internal
    - ZSTD_overrideCParams
    - assert
    - ZSTD_checkCParams
    - ZSTD_getCParams_internal
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: "ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams(\n        const
      ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e
      mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24164,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24168,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24176,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24177,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24178,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24179,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24180,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24181,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24182,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24183,1
    - Dst: ZSTD_cwksp_slack_space_required
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24188,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24191,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24192,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - cParams
    - useRowMatchFinder
    - enableDedicatedDictSearch
    - forCCtx
    argTypes:
    - ZSTD_compressionParameters*
    - ZSTD_paramSwitch_e
    - U32
    - U32
    assertStmts:
    - condition: (useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 24191
        line_start: 24191
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24197
      start: 24157
    functionDepth: 3
    functionLinenumber: 24157
    functionLinenumberEnd: 24197
    functionName: ZSTD_sizeof_matchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_slack_space_required
    - ZSTD_rowMatchFinderUsed
    - ZSTD_allocateChainTable
    - DEBUGLOG
    - MIN
    - assert
    - ZSTD_STATIC_ASSERT
    - ZSTD_cwksp_aligned_alloc_size
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const
      cParams,\n                       const ZSTD_paramSwitch_e useRowMatchFinder,\n
      \                      const U32 enableDedicatedDictSearch,\n                       const
      U32 forCCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - blockSize
    - minMatch
    - useSequenceProducer
    argTypes:
    - size_t
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24204
      start: 24201
    functionDepth: 0
    functionLinenumber: 24201
    functionLinenumberEnd: 24204
    functionName: ZSTD_maxNbSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_maxNbSeq(size_t blockSize, unsigned minMatch, int useSequenceProducer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24217,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24218,1
    - Dst: ZSTD_resolveMaxBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24218,1
    - Dst: ZSTD_maxNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24219,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24220,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24221,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24222,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24223,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24224,1
    - Dst: ZSTD_sizeof_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24225,1
    - Dst: ZSTD_ldm_getTableSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24227,1
    - Dst: ZSTD_ldm_getMaxNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24228,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24230,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24233,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24234,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24236,1
    - Dst: ZSTD_sequenceBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24238,1
    - Dst: ZSTD_cwksp_aligned_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24240,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - cParams
    - ldmParams
    - isStatic
    - useRowMatchFinder
    - buffInSize
    - buffOutSize
    - pledgedSrcSize
    - useSequenceProducer
    - maxBlockSize
    argTypes:
    - ZSTD_compressionParameters*
    - ldmParams_t*
    - int
    - ZSTD_paramSwitch_e
    - size_t
    - size_t
    - U64
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24256
      start: 24206
    functionDepth: 4
    functionLinenumber: 24206
    functionLinenumberEnd: 24256
    functionName: ZSTD_estimateCCtxSize_usingCCtxParams_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_sequenceBound
    - ZSTD_cwksp_aligned_alloc_size
    - ZSTD_resolveMaxBlockSize
    - ZSTD_cwksp_alloc_size
    - ZSTD_ldm_getMaxNbSeq
    - DEBUGLOG
    - ZSTD_maxNbSeq
    - ZSTD_ldm_getTableSize
    - BOUNDED
    - MIN
    - ZSTD_sizeof_matchState
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal(\n        const
      ZSTD_compressionParameters* cParams,\n        const ldmParams_t* ldmParams,\n
      \       const int isStatic,\n        const ZSTD_paramSwitch_e useRowMatchFinder,\n
      \       const size_t buffInSize,\n        const size_t buffOutSize,\n        const
      U64 pledgedSrcSize,\n        int useSequenceProducer,\n        size_t maxBlockSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24261,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24262,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24265,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24269,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24271
      start: 24258
    functionDepth: 7
    functionLinenumber: 24258
    functionLinenumberEnd: 24271
    functionName: ZSTD_estimateCCtxSize_usingCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_estimateCCtxSize_usingCCtxParams_internal
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_hasExtSeqProd
    - ZSTD_getCParamsFromCCtxParams
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params*
      params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_makeCCtxParamsFromCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24275,1
    - Dst: ZSTD_rowMatchFinderSupported
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24276,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24281,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24283,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24284,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24288
      start: 24273
    functionDepth: 8
    functionLinenumber: 24273
    functionLinenumberEnd: 24288
    functionName: ZSTD_estimateCCtxSize_usingCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_makeCCtxParamsFromCParams
    - MAX
    - ZSTD_rowMatchFinderSupported
    - ZSTD_estimateCCtxSize_usingCCtxParams
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters
      cParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24297,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24298,1
    - Dst: ZSTD_estimateCCtxSize_usingCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - compressionLevel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24301
      start: 24290
    functionDepth: 9
    functionLinenumber: 24290
    functionLinenumberEnd: 24301
    functionName: ZSTD_estimateCCtxSize_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateCCtxSize_usingCParams
    - ZSTD_getCParams_internal
    - MAX
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCCtxSize_internal(int compressionLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24307,1
    - Dst: ZSTD_estimateCCtxSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - compressionLevel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24313
      start: 24303
    functionDepth: 10
    functionLinenumber: 24303
    functionLinenumberEnd: 24313
    functionName: ZSTD_estimateCCtxSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MIN
    - ZSTD_estimateCCtxSize_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCCtxSize(int compressionLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24317,1
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24319,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24320,1
    - Dst: ZSTD_resolveMaxBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24320,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24325,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24327,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24329,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24333
      start: 24315
    functionDepth: 7
    functionLinenumber: 24315
    functionLinenumberEnd: 24333
    functionName: ZSTD_estimateCStreamSize_usingCCtxParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resolveMaxBlockSize
    - ZSTD_estimateCCtxSize_usingCCtxParams_internal
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_compressBound
    - ZSTD_hasExtSeqProd
    - ZSTD_getCParamsFromCCtxParams
    - RETURN_ERROR_IF
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params*
      params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_makeCCtxParamsFromCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24337,1
    - Dst: ZSTD_rowMatchFinderSupported
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24338,1
    - Dst: ZSTD_estimateCStreamSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24343,1
    - Dst: ZSTD_estimateCStreamSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24345,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24346,1
    - Dst: ZSTD_estimateCStreamSize_usingCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24350
      start: 24335
    functionDepth: 8
    functionLinenumber: 24335
    functionLinenumberEnd: 24350
    functionName: ZSTD_estimateCStreamSize_usingCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_makeCCtxParamsFromCParams
    - ZSTD_estimateCStreamSize_usingCCtxParams
    - ZSTD_rowMatchFinderSupported
    - MAX
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters
      cParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24354,1
    - Dst: ZSTD_estimateCStreamSize_usingCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - compressionLevel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24356
      start: 24352
    functionDepth: 9
    functionLinenumber: 24352
    functionLinenumberEnd: 24356
    functionName: ZSTD_estimateCStreamSize_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateCStreamSize_usingCParams
    - ZSTD_getCParams_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCStreamSize_internal(int compressionLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24362,1
    - Dst: ZSTD_estimateCStreamSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - compressionLevel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24367
      start: 24358
    functionDepth: 10
    functionLinenumber: 24358
    functionLinenumberEnd: 24367
    functionName: ZSTD_estimateCStreamSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MIN
    - ZSTD_estimateCStreamSize_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCStreamSize(int compressionLevel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_getFrameProgression
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24377,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24383,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (buffered <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 24383
        line_start: 24383
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->inBuffPos >= cctx->inToCompress)
      pos:
        line_end: 24382
        line_start: 24382
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24392
      start: 24373
    functionDepth: 1
    functionLinenumber: 24373
    functionLinenumberEnd: 24392
    functionName: ZSTD_getFrameProgression
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - ZSTDMT_getFrameProgression
    linkageType: ''
    returnType: ZSTD_frameProgression
    signature: ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_toFlushNow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24406
      start: 24397
    functionDepth: 1
    functionLinenumber: 24397
    functionLinenumberEnd: 24406
    functionName: ZSTD_toFlushNow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_toFlushNow
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24413,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24414,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24415,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24416,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24417,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24418,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - cParams1
    - cParams2
    argTypes:
    - ZSTD_compressionParameters
    - ZSTD_compressionParameters
    assertStmts:
    - condition: (cParams1.windowLog    == cParams2.windowLog)
      pos:
        line_end: 24412
        line_start: 24412
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.chainLog     == cParams2.chainLog)
      pos:
        line_end: 24413
        line_start: 24413
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.searchLog    == cParams2.searchLog)
      pos:
        line_end: 24415
        line_start: 24415
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.hashLog      == cParams2.hashLog)
      pos:
        line_end: 24414
        line_start: 24414
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.minMatch     == cParams2.minMatch)
      pos:
        line_end: 24416
        line_start: 24416
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.targetLength == cParams2.targetLength)
      pos:
        line_end: 24417
        line_start: 24417
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cParams1.strategy     == cParams2.strategy)
      pos:
        line_end: 24418
        line_start: 24418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24420
      start: 24408
    functionDepth: 1
    functionLinenumber: 24408
    functionLinenumberEnd: 24420
    functionName: ZSTD_assertEqualCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ZSTD_assertEqualCParams(ZSTD_compressionParameters cParams1,\n
      \                                   ZSTD_compressionParameters cParams2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ZSTD_compressedBlockState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24431
      start: 24422
    functionDepth: 0
    functionLinenumber: 24422
    functionLinenumberEnd: 24431
    functionName: ZSTD_reset_compressedBlockState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_window_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - ZSTD_matchState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24445
      start: 24437
    functionDepth: 1
    functionLinenumber: 24437
    functionLinenumberEnd: 24445
    functionName: ZSTD_invalidateMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_window_clear
    linkageType: ''
    returnType: void
    signature: void ZSTD_invalidateMatchState(ZSTD_matchState_t* ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24476,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - U64
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24481
      start: 24475
    functionDepth: 2
    functionLinenumber: 24475
    functionLinenumberEnd: 24481
    functionName: ZSTD_bitmix
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rotateRight_U64
    linkageType: ''
    returnType: U64
    signature: U64 ZSTD_bitmix(U64 val, U64 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_bitmix
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24485,1
    - Dst: ZSTD_bitmix
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ms
    argTypes:
    - ZSTD_matchState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24486
      start: 24484
    functionDepth: 3
    functionLinenumber: 24484
    functionLinenumberEnd: 24486
    functionName: ZSTD_advanceHashSalt
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_bitmix
    linkageType: ''
    returnType: void
    signature: void ZSTD_advanceHashSalt(ZSTD_matchState_t* ms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24498,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24503,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24506,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24507,1
    - Dst: ZSTD_window_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24509,1
    - Dst: ZSTD_cwksp_mark_tables_dirty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24510,1
    - Dst: ZSTD_invalidateMatchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24516,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24518,1
    - Dst: ZSTD_cwksp_reserve_failed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24518,1
    - Dst: ZSTD_cwksp_clear_tables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24520,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24522,1
    - Dst: ZSTD_cwksp_reserve_table
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24524,1
    - Dst: ZSTD_cwksp_reserve_table
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24525,1
    - Dst: ZSTD_cwksp_reserve_table
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24526,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24527,1
    - Dst: ZSTD_cwksp_reserve_failed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24527,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24530,1
    - Dst: ZSTD_cwksp_clean_tables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24533,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24536,1
    - Dst: ZSTD_cwksp_reserve_aligned_init_once
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24542,1
    - Dst: ZSTD_advanceHashSalt
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24543,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24546,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24547,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24551,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24552,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24559,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24560,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24561,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24562,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24563,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24564,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24565,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24570,1
    - Dst: ZSTD_cwksp_reserve_failed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 7
    argNames:
    - ms
    - ws
    - cParams
    - useRowMatchFinder
    - crp
    - forceResetIndex
    - forWho
    argTypes:
    - ZSTD_matchState_t*
    - ZSTD_cwksp*
    - ZSTD_compressionParameters*
    - ZSTD_paramSwitch_e
    - ZSTD_compResetPolicy_e
    - ZSTD_indexResetPolicy_e
    - ZSTD_resetTarget_e
    assertStmts:
    - condition: (cParams->hashLog >= rowLog)
      pos:
        line_end: 24551
        line_start: 24551
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_cwksp_reserve_failed(ws))
      pos:
        line_end: 24517
        line_start: 24517
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 24506
        line_start: 24506
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24573
      start: 24488
    functionDepth: 5
    functionLinenumber: 24488
    functionLinenumberEnd: 24573
    functionName: ZSTD_reset_matchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_reserve_table
    - ZSTD_advanceHashSalt
    - ZSTD_rowMatchFinderUsed
    - ZSTD_invalidateMatchState
    - ZSTD_cwksp_clean_tables
    - ZSTD_allocateChainTable
    - DEBUGLOG
    - ZSTD_window_init
    - ZSTD_memset
    - ZSTD_cwksp_mark_tables_dirty
    - ZSTD_cwksp_reserve_failed
    - ZSTD_cwksp_clear_tables
    - ZSTD_cwksp_reserve_aligned_init_once
    - assert
    - ZSTD_cwksp_reserve_aligned
    - RETURN_ERROR_IF
    - BOUNDED
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_reset_matchState(ZSTD_matchState_t* ms,\n                      ZSTD_cwksp*
      ws,\n                const ZSTD_compressionParameters* cParams,\n                const
      ZSTD_paramSwitch_e useRowMatchFinder,\n                const ZSTD_compResetPolicy_e
      crp,\n                const ZSTD_indexResetPolicy_e forceResetIndex,\n                const
      ZSTD_resetTarget_e forWho)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - ZSTD_window_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24586
      start: 24583
    functionDepth: 0
    functionLinenumber: 24583
    functionLinenumberEnd: 24586
    functionName: ZSTD_indexTooCloseToMax
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_indexTooCloseToMax(ZSTD_window_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - loadedDictSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24596
      start: 24593
    functionDepth: 0
    functionLinenumber: 24593
    functionLinenumberEnd: 24596
    functionName: ZSTD_dictTooBig
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_dictTooBig(size_t const loadedDictSize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24612,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24614,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24614,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24614,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24624,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24625,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24626,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24627,1
    - Dst: ZSTD_ldm_adjustParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24630,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24631,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24632,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24635,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24635,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24636,1
    - Dst: ZSTD_maxNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24637,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24637,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24639,1
    - Dst: ZSTD_ldm_getMaxNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24644,1
    - Dst: ZSTD_indexTooCloseToMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24646,1
    - Dst: ZSTD_dictTooBig
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24647,1
    - Dst: ZSTD_estimateCCtxSize_usingCCtxParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24652,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24654,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24656,1
    - Dst: ZSTD_cwksp_bump_oversized_duration
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24658,1
    - Dst: ZSTD_cwksp_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24661,1
    - Dst: ZSTD_cwksp_check_wasteful
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24662,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24664,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24665,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24668,1
    - Dst: ZSTD_cwksp_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24669,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24672,1
    - Dst: ZSTD_cwksp_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24676,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24677,1
    - Dst: ZSTD_cwksp_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24677,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24679,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24683,1
    - Dst: ZSTD_cwksp_check_available
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24683,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24684,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24685,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24686,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24687,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24688,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24689,1
    - Dst: ZSTD_cwksp_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24692,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24702,1
    - Dst: XXH64_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24706,1
    - Dst: ZSTD_reset_compressedBlockState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24711,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24713,1
    - Dst: ZSTD_reset_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24713,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24722,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24728,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24729,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24730,1
    - Dst: ZSTD_window_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24733,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24738,1
    - Dst: ZSTD_sequenceBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24739,1
    - Dst: ZSTD_cwksp_reserve_aligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24742,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24750,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24755,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24757,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24765,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24766,1
    - Dst: ZSTD_referenceExternalSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24770,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24772,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24773,1
    - Dst: ZSTD_cwksp_reserve_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24774,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24776,1
    - Dst: ZSTD_cwksp_available_space
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24776,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24777,1
    - Dst: ZSTD_cwksp_estimated_space_within_bounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24777,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 86
    argCount: 6
    argNames:
    - zc
    - params
    - pledgedSrcSize
    - loadedDictSize
    - crp
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CCtx_params*
    - U64
    - size_t
    - ZSTD_compResetPolicy_e
    - ZSTD_buffered_policy_e
    assertStmts:
    - condition: (params->maxBlockSize != 0)
      pos:
        line_end: 24626
        line_start: 24626
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->ldmParams.hashLog >= params->ldmParams.bucketSizeLog)
      pos:
        line_end: 24630
        line_start: 24630
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->useBlockSplitter != ZSTD_ps_auto)
      pos:
        line_end: 24624
        line_start: 24624
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->ldmParams.enableLdm != ZSTD_ps_auto)
      pos:
        line_end: 24625
        line_start: 24625
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->ldmParams.hashRateLog < 32)
      pos:
        line_end: 24631
        line_start: 24631
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_cwksp_estimated_space_within_bounds(ws, neededSpace))
      pos:
        line_end: 24776
        line_start: 24776
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(ZSTD_checkCParams(params->cParams)))
      pos:
        line_end: 24613
        line_start: 24613
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 24623
        line_start: 24623
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_cwksp_check_available(ws, 2 * sizeof(ZSTD_compressedBlockState_t)))
      pos:
        line_end: 24682
        line_start: 24682
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24783
      start: 24604
    functionDepth: 6
    functionLinenumber: 24604
    functionLinenumberEnd: 24783
    functionName: ZSTD_resetCCtx_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - MAX
    - ZSTD_estimateCCtxSize_usingCCtxParams_internal
    - ZSTD_indexTooCloseToMax
    - ZSTD_window_init
    - ZSTD_cwksp_clear
    - ZSTD_referenceExternalSequences
    - ZSTD_sequenceBound
    - ZSTD_cwksp_create
    - ZSTD_cwksp_available_space
    - ZSTD_ldm_getMaxNbSeq
    - ZSTD_hasExtSeqProd
    - assert
    - ZSTD_checkCParams
    - RETURN_ERROR_IF
    - XXH64_reset
    - ZSTD_cwksp_bump_oversized_duration
    - ZSTD_cwksp_reserve_buffer
    - ZSTD_cwksp_free
    - DEBUGLOG
    - ZSTD_cwksp_reserve_object
    - ZSTD_cwksp_check_available
    - ZSTD_cwksp_reserve_aligned
    - FORWARD_IF_ERROR
    - MIN
    - ZSTD_cwksp_estimated_space_within_bounds
    - ZSTD_dictTooBig
    - ZSTD_reset_compressedBlockState
    - ZSTD_cwksp_check_wasteful
    - ZSTD_maxNbSeq
    - ZSTD_ldm_adjustParameters
    - ZSTD_reset_matchState
    - ZSTD_compressBound
    - ZSTD_memset
    - ZSTD_cwksp_sizeof
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,\n                                      ZSTD_CCtx_params
      const* params,\n                                      U64 const pledgedSrcSize,\n
      \                                     size_t const loadedDictSize,\n                                      ZSTD_compResetPolicy_e
      const crp,\n                                      ZSTD_buffered_policy_e const
      zbuff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24792,1
    - Dst: ZSTD_window_hasExtDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (!ZSTD_window_hasExtDict(cctx->blockState.matchState.window))
      pos:
        line_end: 24791
        line_start: 24791
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24793
      start: 24789
    functionDepth: 1
    functionLinenumber: 24789
    functionLinenumberEnd: 24793
    functionName: ZSTD_invalidateRepCodes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_window_hasExtDict
    linkageType: ''
    returnType: void
    signature: void ZSTD_invalidateRepCodes(ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 3
    argNames:
    - cdict
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24825
      start: 24812
    functionDepth: 0
    functionLinenumber: 24812
    functionLinenumberEnd: 24825
    functionName: ZSTD_shouldAttachDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ZSTD_shouldAttachDict(const ZSTD_CDict* cdict,\n                                 const
      ZSTD_CCtx_params* params,\n                                 U64 pledgedSrcSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24834,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24839,1
    - Dst: ZSTD_dedicatedDictSearch_revertCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24845,1
    - Dst: ZSTD_adjustCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24848,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24853,1
    - Dst: ZSTD_resetCCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24853,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24856,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24864,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24866,1
    - Dst: ZSTD_window_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24874,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 5
    argNames:
    - cctx
    - cdict
    - params
    - pledgedSrcSize
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    - ZSTD_CCtx_params
    - U64
    - ZSTD_buffered_policy_e
    assertStmts:
    - condition: (windowLog != 0)
      pos:
        line_end: 24838
        line_start: 24838
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.cParams.strategy == adjusted_cdict_cParams.strategy)
      pos:
        line_end: 24855
        line_start: 24855
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24887
      start: 24827
    functionDepth: 7
    functionLinenumber: 24827
    functionLinenumberEnd: 24887
    functionName: ZSTD_resetCCtx_byAttachingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_dedicatedDictSearch_revertCParams
    - ZSTD_resetCCtx_internal
    - ZSTD_memcpy
    - ZSTD_adjustCParams_internal
    - DEBUGLOG
    - ZSTD_window_clear
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_resetCCtx_byAttachingCDict(ZSTD_CCtx* cctx,\n                        const
      ZSTD_CDict* cdict,\n                        ZSTD_CCtx_params params,\n                        U64
      pledgedSrcSize,\n                        ZSTD_buffered_policy_e zbuff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CDictIndicesAreTagged
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24891,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - dst
    - src
    - tableSize
    - cParams
    argTypes:
    - U32*
    - U32*
    - size_t
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24903
      start: 24889
    functionDepth: 1
    functionLinenumber: 24889
    functionLinenumberEnd: 24903
    functionName: ZSTD_copyCDictTableIntoCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_CDictIndicesAreTagged
    linkageType: ''
    returnType: void
    signature: "void ZSTD_copyCDictTableIntoCCtx(U32* dst, U32 const* src, size_t
      tableSize,\n                                        ZSTD_compressionParameters
      const* cParams)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24913,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24914,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24918,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24923,1
    - Dst: ZSTD_resetCCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24923,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24926,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24927,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24928,1
    - Dst: ZSTD_cwksp_mark_tables_dirty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24931,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24932,1
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24935,1
    - Dst: ZSTD_copyCDictTableIntoCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24940,1
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24945,1
    - Dst: ZSTD_copyCDictTableIntoCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24946,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24951,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24953,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24963,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24964,1
    - Dst: ZSTD_cwksp_mark_tables_clean
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24967,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 5
    argNames:
    - cctx
    - cdict
    - params
    - pledgedSrcSize
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    - ZSTD_CCtx_params
    - U64
    - ZSTD_buffered_policy_e
    assertStmts:
    - condition: (cctx->appliedParams.cParams.strategy == cdict_cParams->strategy)
      pos:
        line_end: 24925
        line_start: 24925
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params.useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 24931
        line_start: 24931
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (windowLog != 0)
      pos:
        line_end: 24917
        line_start: 24917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.cParams.hashLog == cdict_cParams->hashLog)
      pos:
        line_end: 24926
        line_start: 24926
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.cParams.chainLog == cdict_cParams->chainLog)
      pos:
        line_end: 24927
        line_start: 24927
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!cdict->matchState.dedicatedDictSearch)
      pos:
        line_end: 24912
        line_start: 24912
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cdict->matchState.hashLog3 == 0)
      pos:
        line_end: 24962
        line_start: 24962
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 24984
      start: 24905
    functionDepth: 7
    functionLinenumber: 24905
    functionLinenumberEnd: 24984
    functionName: ZSTD_resetCCtx_byCopyingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resetCCtx_internal
    - ZSTD_memcpy
    - ZSTD_rowMatchFinderUsed
    - ZSTD_cwksp_mark_tables_clean
    - ZSTD_allocateChainTable
    - DEBUGLOG
    - ZSTD_copyCDictTableIntoCCtx
    - ZSTD_cwksp_mark_tables_dirty
    - ZSTD_memset
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx,\n                            const
      ZSTD_CDict* cdict,\n                            ZSTD_CCtx_params params,\n                            U64
      pledgedSrcSize,\n                            ZSTD_buffered_policy_e zbuff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24996,1
    - Dst: ZSTD_shouldAttachDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:24999,1
    - Dst: ZSTD_resetCCtx_byAttachingCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25000,1
    - Dst: ZSTD_resetCCtx_byCopyingCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - cctx
    - cdict
    - params
    - pledgedSrcSize
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - U64
    - ZSTD_buffered_policy_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25006
      start: 24989
    functionDepth: 8
    functionLinenumber: 24989
    functionLinenumberEnd: 25006
    functionName: ZSTD_resetCCtx_usingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_shouldAttachDict
    - ZSTD_resetCCtx_byAttachingCDict
    - DEBUGLOG
    - ZSTD_resetCCtx_byCopyingCDict
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_resetCCtx_usingCDict(ZSTD_CCtx* cctx,\n                            const
      ZSTD_CDict* cdict,\n                            const ZSTD_CCtx_params* params,\n
      \                           U64 pledgedSrcSize,\n                            ZSTD_buffered_policy_e
      zbuff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25021,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25023,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25024,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25028,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25029,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25030,1
    - Dst: ZSTD_resetCCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25036,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25039,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25040,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25041,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25042,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25043,1
    - Dst: ZSTD_cwksp_mark_tables_dirty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25046,1
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25049,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25058,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25061,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25064,1
    - Dst: ZSTD_cwksp_mark_tables_clean
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25069,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 5
    argNames:
    - dstCCtx
    - srcCCtx
    - fParams
    - pledgedSrcSize
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CCtx*
    - ZSTD_frameParameters
    - U64
    - ZSTD_buffered_policy_e
    assertStmts:
    - condition: (srcCCtx->appliedParams.useBlockSplitter != ZSTD_ps_auto)
      pos:
        line_end: 25028
        line_start: 25028
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcCCtx->appliedParams.ldmParams.enableLdm != ZSTD_ps_auto)
      pos:
        line_end: 25029
        line_start: 25029
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCCtx->appliedParams.cParams.strategy == srcCCtx->appliedParams.cParams.strategy)
      pos:
        line_end: 25039
        line_start: 25039
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcCCtx->appliedParams.useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 25027
        line_start: 25027
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCCtx->appliedParams.cParams.windowLog == srcCCtx->appliedParams.cParams.windowLog)
      pos:
        line_end: 25038
        line_start: 25038
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCCtx->blockState.matchState.hashLog3 == srcCCtx->blockState.matchState.hashLog3)
      pos:
        line_end: 25042
        line_start: 25042
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCCtx->appliedParams.cParams.chainLog == srcCCtx->appliedParams.cParams.chainLog)
      pos:
        line_end: 25041
        line_start: 25041
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCCtx->appliedParams.cParams.hashLog == srcCCtx->appliedParams.cParams.hashLog)
      pos:
        line_end: 25040
        line_start: 25040
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25086
      start: 25015
    functionDepth: 7
    functionLinenumber: 25015
    functionLinenumberEnd: 25086
    functionName: ZSTD_copyCCtx_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resetCCtx_internal
    - ZSTD_memcpy
    - ZSTD_cwksp_mark_tables_clean
    - ZSTD_allocateChainTable
    - DEBUGLOG
    - ZSTD_cwksp_mark_tables_dirty
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx,\n                            const
      ZSTD_CCtx* srcCCtx,\n                            ZSTD_frameParameters fParams,\n
      \                           U64 pledgedSrcSize,\n                            ZSTD_buffered_policy_e
      zbuff)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25097,1
    - Dst: ZSTD_copyCCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dstCCtx
    - srcCCtx
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CCtx*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25104
      start: 25093
    functionDepth: 8
    functionLinenumber: 25093
    functionLinenumberEnd: 25104
    functionName: ZSTD_copyCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_STATIC_ASSERT
    - ZSTD_copyCCtx_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_copyCCtx(ZSTD_CCtx* dstCCtx, const ZSTD_CCtx* srcCCtx,
      unsigned long long pledgedSrcSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25122,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25123,1
    - Dst: __msan_unpoison
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - table
    - size
    - reducerValue
    - preserveMark
    argTypes:
    - U32*
    - U32
    - U32
    - int
    assertStmts:
    - condition: ((size & (ZSTD_ROWSIZE-1)) == 0)
      pos:
        line_end: 25121
        line_start: 25121
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (size < (1U<<31))
      pos:
        line_end: 25122
        line_start: 25122
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25154
      start: 25114
    functionDepth: 1
    functionLinenumber: 25114
    functionLinenumberEnd: 25154
    functionName: ZSTD_reduceTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - __msan_unpoison
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_reduceTable_internal (U32* const table,
      U32 const size, U32 const reducerValue, int const preserveMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_reduceTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - table
    - size
    - reducerValue
    argTypes:
    - U32*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25159
      start: 25156
    functionDepth: 2
    functionLinenumber: 25156
    functionLinenumberEnd: 25159
    functionName: ZSTD_reduceTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_reduceTable_internal
    linkageType: ''
    returnType: void
    signature: void ZSTD_reduceTable(U32* const table, U32 const size, U32 const reducerValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_reduceTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - table
    - size
    - reducerValue
    argTypes:
    - U32*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25164
      start: 25161
    functionDepth: 2
    functionLinenumber: 25161
    functionLinenumberEnd: 25164
    functionName: ZSTD_reduceTable_btlazy2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_reduceTable_internal
    linkageType: ''
    returnType: void
    signature: void ZSTD_reduceTable_btlazy2(U32* const table, U32 const size, U32
      const reducerValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_reduceTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25171,1
    - Dst: ZSTD_allocateChainTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25174,1
    - Dst: ZSTD_reduceTable_btlazy2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25177,1
    - Dst: ZSTD_reduceTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25179,1
    - Dst: ZSTD_reduceTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - ms
    - params
    - reducerValue
    argTypes:
    - ZSTD_matchState_t*
    - ZSTD_CCtx_params*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25186
      start: 25168
    functionDepth: 3
    functionLinenumber: 25168
    functionLinenumberEnd: 25186
    functionName: ZSTD_reduceIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_reduceTable_btlazy2
    - ZSTD_reduceTable
    - ZSTD_allocateChainTable
    linkageType: ''
    returnType: void
    signature: void ZSTD_reduceIndex (ZSTD_matchState_t* ms, ZSTD_CCtx_params const*
      params, const U32 reducerValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25204,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25207,1
    - Dst: ZSTD_LLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25209,1
    - Dst: ZSTD_MLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25211,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25212,1
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25212,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - seqStorePtr
    argTypes:
    - seqStore_t*
    assertStmts:
    - condition: (nbSeq <= seqStorePtr->maxNbSeq)
      pos:
        line_end: 25203
        line_start: 25203
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(MEM_64bits() && ofCode >= STREAM_ACCUMULATOR_MIN))
      pos:
        line_end: 25211
        line_start: 25211
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25221
      start: 25195
    functionDepth: 5
    functionLinenumber: 25195
    functionLinenumberEnd: 25221
    functionName: ZSTD_seqToCodes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - MEM_32bits
    - MEM_64bits
    - ZSTD_MLcode
    - ZSTD_LLcode
    - assert
    linkageType: ''
    returnType: int
    signature: int ZSTD_seqToCodes(const seqStore_t* seqStorePtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cctxParams
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25231
      start: 25227
    functionDepth: 1
    functionLinenumber: 25227
    functionLinenumberEnd: 25231
    functionName: ZSTD_useTargetCBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    linkageType: ''
    returnType: int
    signature: int ZSTD_useTargetCBlockSize(const ZSTD_CCtx_params* cctxParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25240,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cctxParams
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts:
    - condition: (cctxParams->useBlockSplitter != ZSTD_ps_auto)
      pos:
        line_end: 25240
        line_start: 25240
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25243
      start: 25238
    functionDepth: 1
    functionLinenumber: 25238
    functionLinenumberEnd: 25243
    functionName: ZSTD_blockSplitterEnabled
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: int
    signature: int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_seqToCodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25285,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25286,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25287,1
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25290,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25291,1
    - Dst: ZSTD_selectEncodingType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25293,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25298,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25299,1
    - Dst: ZSTD_buildCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25300,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25308,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25309,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25316,1
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25320,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25324,1
    - Dst: ZSTD_selectEncodingType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25326,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25331,1
    - Dst: ZSTD_buildCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25332,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25340,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25341,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25348,1
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25352,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25354,1
    - Dst: ZSTD_selectEncodingType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25356,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25361,1
    - Dst: ZSTD_buildCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25362,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25370,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25371,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 10
    argNames:
    - seqStorePtr
    - nbSeq
    - prevEntropy
    - nextEntropy
    - dst
    - dstEnd
    - strategy
    - countWorkspace
    - entropyWorkspace
    - entropyWkspSize
    argTypes:
    - seqStore_t*
    - size_t
    - ZSTD_fseCTables_t*
    - ZSTD_fseCTables_t*
    - BYTE*
    - BYTE*
    - ZSTD_strategy
    - unsigned*
    - void*
    - size_t
    assertStmts:
    - condition: (op <= oend)
      pos:
        line_end: 25285
        line_start: 25285
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 25347
        line_start: 25347
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 25315
        line_start: 25315
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(stats.LLtype < set_compressed && nextEntropy->litlength_repeatMode
        != FSE_repeat_none))
      pos:
        line_end: 25298
        line_start: 25298
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 25377
        line_start: 25377
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbSeq != 0)
      pos:
        line_end: 25286
        line_start: 25286
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (set_basic < set_compressed && set_rle < set_compressed)
      pos:
        line_end: 25297
        line_start: 25297
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(stats.Offtype < set_compressed && nextEntropy->offcode_repeatMode
        != FSE_repeat_none))
      pos:
        line_end: 25330
        line_start: 25330
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(stats.MLtype < set_compressed && nextEntropy->matchlength_repeatMode
        != FSE_repeat_none))
      pos:
        line_end: 25360
        line_start: 25360
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25382
      start: 25264
    functionDepth: 9
    functionLinenumber: 25264
    functionLinenumberEnd: 25382
    functionName: ZSTD_buildSequencesStatistics
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - DEBUGLOG
    - ZSTD_buildCTable
    - ZSTD_selectEncodingType
    - ZSTD_seqToCodes
    - assert
    - HIST_countFast_wksp
    linkageType: ''
    returnType: ZSTD_symbolEncodingTypeStats_t
    signature: "ZSTD_symbolEncodingTypeStats_t ZSTD_buildSequencesStatistics(\n                const
      seqStore_t* seqStorePtr, size_t nbSeq,\n                const ZSTD_fseCTables_t*
      prevEntropy, ZSTD_fseCTables_t* nextEntropy,\n                      BYTE* dst,
      const BYTE* const dstEnd,\n                      ZSTD_strategy strategy, unsigned*
      countWorkspace,\n                      void* entropyWorkspace, size_t entropyWkspSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25418,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25419,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25419,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25420,1
    - Dst: ZSTD_compressLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25430,1
    - Dst: ZSTD_literalsCompressionIsDisabled
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25436,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25438,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25439,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25444,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25454,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25457,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25460,1
    - Dst: ZSTD_buildSequencesStatistics
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25466,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25471,1
    - Dst: ZSTD_encodeSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25478,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25485,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25487,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25498,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25499,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 9
    argNames:
    - seqStorePtr
    - prevEntropy
    - nextEntropy
    - cctxParams
    - dst
    - dstCapacity
    - entropyWorkspace
    - entropyWkspSize
    - bmi2
    argTypes:
    - seqStore_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (cSize <= dstCapacity)
      pos:
        line_end: 25438
        line_start: 25438
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (entropyWkspSize >= HUF_WORKSPACE_SIZE)
      pos:
        line_end: 25419
        line_start: 25419
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (lastCountSize + bitstreamSize == 3)
      pos:
        line_end: 25497
        line_start: 25497
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 25486
        line_start: 25486
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 25456
        line_start: 25456
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25507
      start: 25389
    functionDepth: 10
    functionLinenumber: 25389
    functionLinenumberEnd: 25507
    functionName: ZSTD_entropyCompressSeqStore_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_memcpy
    - ZSTD_buildSequencesStatistics
    - MAX
    - ZSTD_literalsCompressionIsDisabled
    - ZSTD_encodeSequences
    - DEBUGLOG
    - ZSTD_compressLiterals
    - assert
    - ZSTD_STATIC_ASSERT
    - FORWARD_IF_ERROR
    - MEM_writeLE16
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_entropyCompressSeqStore_internal(\n                        const
      seqStore_t* seqStorePtr,\n                        const ZSTD_entropyCTables_t*
      prevEntropy,\n                              ZSTD_entropyCTables_t* nextEntropy,\n
      \                       const ZSTD_CCtx_params* cctxParams,\n                              void*
      dst, size_t dstCapacity,\n                              void* entropyWorkspace,
      size_t entropyWkspSize,\n                        const int bmi2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_entropyCompressSeqStore_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25520,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25528,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25529,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25532,1
    - Dst: ZSTD_minGain
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25535,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25538,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 10
    argNames:
    - seqStorePtr
    - prevEntropy
    - nextEntropy
    - cctxParams
    - dst
    - dstCapacity
    - srcSize
    - entropyWorkspace
    - entropyWkspSize
    - bmi2
    argTypes:
    - seqStore_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (cSize < ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 25541
        line_start: 25541
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25544
      start: 25509
    functionDepth: 11
    functionLinenumber: 25509
    functionLinenumberEnd: 25544
    functionName: ZSTD_entropyCompressSeqStore
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_entropyCompressSeqStore_internal
    - ERROR
    - DEBUGLOG
    - assert
    - FORWARD_IF_ERROR
    - ZSTD_minGain
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_entropyCompressSeqStore(\n                    const
      seqStore_t* seqStorePtr,\n                    const ZSTD_entropyCTables_t* prevEntropy,\n
      \                         ZSTD_entropyCTables_t* nextEntropy,\n                    const
      ZSTD_CCtx_params* cctxParams,\n                          void* dst, size_t dstCapacity,\n
      \                         size_t srcSize,\n                          void* entropyWorkspace,
      size_t entropyWkspSize,\n                          int bmi2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25597,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25599,1
    - Dst: ZSTD_cParam_withinBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25599,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25600,1
    - Dst: ZSTD_rowMatchFinderUsed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25601,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25624,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25625,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - strat
    - useRowMatchFinder
    - dictMode
    argTypes:
    - ZSTD_strategy
    - ZSTD_paramSwitch_e
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat))
      pos:
        line_end: 25598
        line_start: 25598
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 25624
        line_start: 25624
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (selectedCompressor != NULL)
      pos:
        line_end: 25629
        line_start: 25629
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25632
      start: 25549
    functionDepth: 4
    functionLinenumber: 25549
    functionLinenumberEnd: 25632
    functionName: ZSTD_selectBlockCompressor
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rowMatchFinderUsed
    - DEBUGLOG
    - assert
    - ZSTD_STATIC_ASSERT
    - ZSTD_cParam_withinBounds
    linkageType: ''
    returnType: ZSTD_blockCompressor
    signature: ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat,
      ZSTD_paramSwitch_e useRowMatchFinder, ZSTD_dictMode_e dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - seqStorePtr
    - anchor
    - lastLLSize
    argTypes:
    - seqStore_t*
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25639
      start: 25634
    functionDepth: 1
    functionLinenumber: 25634
    functionLinenumberEnd: 25639
    functionName: ZSTD_storeLastLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: void
    signature: "void ZSTD_storeLastLiterals(seqStore_t* seqStorePtr,\n                                   const
      BYTE* anchor, size_t lastLLSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssPtr
    argTypes:
    - seqStore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25646
      start: 25641
    functionDepth: 0
    functionLinenumber: 25641
    functionLinenumberEnd: 25646
    functionName: ZSTD_resetSeqStore
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_resetSeqStore(seqStore_t* ssPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25657,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25664,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25671,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25685,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - outSeqs
    - nbExternalSeqs
    - outSeqsCapacity
    - srcSize
    argTypes:
    - ZSTD_Sequence*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25695
      start: 25654
    functionDepth: 1
    functionLinenumber: 25654
    functionLinenumberEnd: 25695
    functionName: ZSTD_postProcessSequenceProducerResult
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_postProcessSequenceProducerResult(\n    ZSTD_Sequence*
      outSeqs, size_t nbExternalSeqs, size_t outSeqsCapacity, size_t srcSize\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - seqBuf
    - seqBufSize
    argTypes:
    - ZSTD_Sequence*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25712
      start: 25703
    functionDepth: 0
    functionLinenumber: 25703
    functionLinenumberEnd: 25712
    functionName: ZSTD_fastSequenceLengthSum
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_fastSequenceLengthSum(ZSTD_Sequence const* seqBuf, size_t
      seqBufSize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25719,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25720,1
    - Dst: ZSTD_assertEqualCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25722,1
    - Dst: ZSTD_ldm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25727,1
    - Dst: ZSTD_ldm_skipSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25729,1
    - Dst: ZSTD_resetSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25733,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25741,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25747,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25749,1
    - Dst: ZSTD_matchState_dictMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25753,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25760,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25764,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25765,1
    - Dst: ZSTD_ldm_blockCompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25772,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25777,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25783,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25784,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25792,1
    - Dst: ZSTD_ldm_generateSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25792,1
    - Dst: ZSTD_ldm_blockCompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25797,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25802,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25803,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25804,1
    - Dst: ZSTD_sequenceBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25805,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25807,1
    - Dst: ZSTD_postProcessSequenceProducerResult
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25821,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25829,1
    - Dst: ZSTD_fastSequenceLengthSum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25831,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25832,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25833,1
    - Dst: ZSTD_copySequencesToSeqStoreExplicitBlockDelim
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25834,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25843,1
    - Dst: ZSTD_selectBlockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25854,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25859,1
    - Dst: blockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25864,1
    - Dst: ZSTD_selectBlockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25867,1
    - Dst: blockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25872,1
    - Dst: ZSTD_storeLastLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25875,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 3
    argNames:
    - zc
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    assertStmts:
    - condition: (srcSize <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 25719
        line_start: 25719
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->dictMatchState == NULL || ms->loadedDictEnd == ms->window.dictLimit)
      pos:
        line_end: 25740
        line_start: 25740
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zc->appliedParams.ldmParams.enableLdm == ZSTD_ps_disable)
      pos:
        line_end: 25759
        line_start: 25759
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ldmSeqStore.pos == ldmSeqStore.size)
      pos:
        line_end: 25801
        line_start: 25801
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zc->appliedParams.extSeqProdFunc != NULL)
      pos:
        line_end: 25806
        line_start: 25806
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (istart - base < (ptrdiff_t)(U32)(-1))
      pos:
        line_end: 25746
        line_start: 25746
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zc->externSeqStore.pos <= zc->externSeqStore.size)
      pos:
        line_end: 25776
        line_start: 25776
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: "(\n                zc->extSeqBufCapacity >= ZSTD_sequenceBound(srcSize)\n
        \           )"
      pos:
        line_end: 25805
        line_start: 25803
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25878
      start: 25716
    functionDepth: 5
    functionLinenumber: 25716
    functionLinenumberEnd: 25878
    functionName: ZSTD_buildSeqStore
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_fastSequenceLengthSum
    - ZSTD_selectBlockCompressor
    - ZSTD_ldm_blockCompress
    - ZSTD_assertEqualCParams
    - ZSTD_sequenceBound
    - ZSTD_ldm_skipRawSeqStoreBytes
    - ZSTD_copySequencesToSeqStoreExplicitBlockDelim
    - blockCompressor
    - ZSTD_hasExtSeqProd
    - assert
    - RETURN_ERROR_IF
    - DEBUGLOG
    - ZSTD_matchState_dictMode
    - ZSTD_ldm_skipSequences
    - ZSTD_ldm_generateSequences
    - ZSTD_postProcessSequenceProducerResult
    - FORWARD_IF_ERROR
    - MIN
    - ZSTD_storeLastLiterals
    - ZSTD_resetSeqStore
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25895,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25896,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25901,1
    - Dst: OFFBASE_IS_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25921,1
    - Dst: OFFBASE_TO_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25922,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25923,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25929,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25936,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25941,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25951,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25957,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25960,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - seqCollector
    - seqStore
    - prevRepcodes
    argTypes:
    - SeqCollector*
    - seqStore_t*
    - U32[]
    assertStmts:
    - condition: (seqCollector->seqIndex <= seqCollector->maxSequences)
      pos:
        line_end: 25894
        line_start: 25894
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (repcode > 0)
      pos:
        line_end: 25922
        line_start: 25922
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (repcodes.rep[0] > 1)
      pos:
        line_end: 25928
        line_start: 25928
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbInLiterals >= nbOutLiterals)
      pos:
        line_end: 25950
        line_start: 25950
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqCollector->seqIndex <= seqCollector->maxSequences)
      pos:
        line_end: 25959
        line_start: 25959
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbOutSequences == nbInSequences + 1)
      pos:
        line_end: 25956
        line_start: 25956
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 25963
      start: 25880
    functionDepth: 2
    functionLinenumber: 25880
    functionLinenumberEnd: 25963
    functionName: ZSTD_copyBlockSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - OFFBASE_TO_OFFSET
    - OFFBASE_TO_REPCODE
    - OFFBASE_IS_REPCODE
    - ZSTD_updateRep
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_copyBlockSequences(SeqCollector* seqCollector, const seqStore_t*
      seqStore, const U32 prevRepcodes[ZSTD_REP_NUM])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srcSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25969
      start: 25965
    functionDepth: 0
    functionLinenumber: 25965
    functionLinenumberEnd: 25969
    functionName: ZSTD_sequenceBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sequenceBound(size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25974,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25975,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25979,1
    - Dst: ZSTD_CCtx_getParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25979,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25980,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25984,1
    - Dst: ZSTD_CCtx_getParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25984,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25985,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25988,1
    - Dst: ZSTD_compress2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25997,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25998,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:25999,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26001,1
    - Dst: ZSTD_sequenceBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 5
    argNames:
    - zc
    - outSeqs
    - outSeqsSize
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_Sequence*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (zc->seqCollector.seqIndex <= ZSTD_sequenceBound(srcSize))
      pos:
        line_end: 26000
        line_start: 26000
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26003
      start: 25971
    functionDepth: 2
    functionLinenumber: 25971
    functionLinenumberEnd: 26003
    functionName: ZSTD_generateSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_sequenceBound
    - ZSTD_CCtx_getParameter
    - ZSTD_customMalloc
    - ZSTD_compressBound
    - ZSTD_customFree
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_compress2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs,\n
      \                             size_t outSeqsSize, const void* src, size_t srcSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - sequences
    - seqsSize
    argTypes:
    - ZSTD_Sequence*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26019
      start: 26005
    functionDepth: 0
    functionLinenumber: 26005
    functionLinenumberEnd: 26019
    functionName: ZSTD_mergeBlockDelimiters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26032,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26038,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - src
    - length
    argTypes:
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26042
      start: 26022
    functionDepth: 6
    functionLinenumber: 26022
    functionLinenumberEnd: 26042
    functionName: ZSTD_isRLE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readST
    - ZSTD_count
    linkageType: ''
    returnType: int
    signature: int ZSTD_isRLE(const BYTE* src, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - seqStore
    argTypes:
    - seqStore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26054
      start: 26048
    functionDepth: 0
    functionLinenumber: 26048
    functionLinenumberEnd: 26054
    functionName: ZSTD_maybeRLE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_maybeRLE(seqStore_t const* seqStore)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bs
    argTypes:
    - ZSTD_blockState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26062
      start: 26056
    functionDepth: 0
    functionLinenumber: 26056
    functionLinenumberEnd: 26062
    functionName: ZSTD_blockState_confirmRepcodesAndEntropyTables
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_blockState_confirmRepcodesAndEntropyTables(ZSTD_blockState_t*
      const bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26071,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - op
    - cSize
    - blockSize
    - lastBlock
    argTypes:
    - void*
    - size_t
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26073
      start: 26065
    functionDepth: 3
    functionLinenumber: 26065
    functionLinenumberEnd: 26073
    functionName: writeBlockHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE24
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void writeBlockHeader(void* op, size_t cSize, size_t blockSize, U32
      lastBlock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26101,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26104,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26107,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26118,1
    - Dst: HIST_count_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26125,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26128,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26131,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26137,1
    - Dst: HUF_validateCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26144,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26149,1
    - Dst: HUF_optimalTableLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26150,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26151,1
    - Dst: HUF_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26152,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26155,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26159,1
    - Dst: HUF_writeCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26161,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26167,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26170,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26171,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26176,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26177,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26181,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 9
    argNames:
    - src
    - srcSize
    - prevHuf
    - nextHuf
    - hufMetadata
    - literalsCompressionIsDisabled
    - workspace
    - wkspSize
    - hufFlags
    argTypes:
    - void*
    - size_t
    - ZSTD_hufCTables_t*
    - ZSTD_hufCTables_t*
    - ZSTD_hufCTablesMetadata_t*
    - int
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (huffLog <= LitHufLog)
      pos:
        line_end: 26150
        line_start: 26150
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26186
      start: 26082
    functionDepth: 11
    functionLinenumber: 26082
    functionLinenumberEnd: 26186
    functionName: ZSTD_buildBlockEntropyStats_literals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_writeCTable_wksp
    - ZSTD_memcpy
    - HUF_buildCTable_wksp
    - HUF_optimalTableLog
    - HIST_count_wksp
    - DEBUGLOG
    - HUF_estimateCompressedSize
    - HUF_validateCTable
    - ZSTD_memset
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildBlockEntropyStats_literals(void* const src, size_t
      srcSize,\n                               const ZSTD_hufCTables_t* prevHuf,\n
      \                                    ZSTD_hufCTables_t* nextHuf,\n                                     ZSTD_hufCTablesMetadata_t*
      hufMetadata,\n                               const int literalsCompressionIsDisabled,\n
      \                                    void* workspace, size_t wkspSize,\n                                     int
      hufFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - nextEntropy
    argTypes:
    - ZSTD_fseCTables_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26201
      start: 26193
    functionDepth: 0
    functionLinenumber: 26193
    functionLinenumberEnd: 26201
    functionName: ZSTD_buildDummySequencesStatistics
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_symbolEncodingTypeStats_t
    signature: ZSTD_symbolEncodingTypeStats_t ZSTD_buildDummySequencesStatistics(ZSTD_fseCTables_t*
      nextEntropy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26227,1
    - Dst: ZSTD_buildSequencesStatistics
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26228,1
    - Dst: ZSTD_buildDummySequencesStatistics
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26232,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - seqStorePtr
    - prevEntropy
    - nextEntropy
    - cctxParams
    - fseMetadata
    - workspace
    - wkspSize
    argTypes:
    - seqStore_t*
    - ZSTD_fseCTables_t*
    - ZSTD_fseCTables_t*
    - ZSTD_CCtx_params*
    - ZSTD_fseCTablesMetadata_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26239
      start: 26208
    functionDepth: 10
    functionLinenumber: 26208
    functionLinenumberEnd: 26239
    functionName: ZSTD_buildBlockEntropyStats_sequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_buildDummySequencesStatistics
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_buildSequencesStatistics
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildBlockEntropyStats_sequences(\n                const
      seqStore_t* seqStorePtr,\n                const ZSTD_fseCTables_t* prevEntropy,\n
      \                     ZSTD_fseCTables_t* nextEntropy,\n                const
      ZSTD_CCtx_params* cctxParams,\n                      ZSTD_fseCTablesMetadata_t*
      fseMetadata,\n                      void* workspace, size_t wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_buildBlockEntropyStats_literals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26261,1
    - Dst: ZSTD_literalsCompressionIsDisabled
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26264,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26267,1
    - Dst: ZSTD_buildBlockEntropyStats_sequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26269,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - seqStorePtr
    - prevEntropy
    - nextEntropy
    - cctxParams
    - entropyMetadata
    - workspace
    - wkspSize
    argTypes:
    - seqStore_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTables_t*
    - ZSTD_CCtx_params*
    - ZSTD_entropyCTablesMetadata_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26276
      start: 26248
    functionDepth: 12
    functionLinenumber: 26248
    functionLinenumberEnd: 26276
    functionName: ZSTD_buildBlockEntropyStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_literalsCompressionIsDisabled
    - FORWARD_IF_ERROR
    - ZSTD_buildBlockEntropyStats_sequences
    - ZSTD_buildBlockEntropyStats_literals
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildBlockEntropyStats(\n            const seqStore_t*
      seqStorePtr,\n            const ZSTD_entropyCTables_t* prevEntropy,\n                  ZSTD_entropyCTables_t*
      nextEntropy,\n            const ZSTD_CCtx_params* cctxParams,\n                  ZSTD_entropyCTablesMetadata_t*
      entropyMetadata,\n                  void* workspace, size_t wkspSize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HIST_count_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26294,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26295,1
    - Dst: HUF_estimateCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26296,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - literals
    - litSize
    - huf
    - hufMetadata
    - workspace
    - wkspSize
    - writeEntropy
    argTypes:
    - BYTE*
    - size_t
    - ZSTD_hufCTables_t*
    - ZSTD_hufCTablesMetadata_t*
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 26300
        line_start: 26300
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26303
      start: 26279
    functionDepth: 4
    functionLinenumber: 26279
    functionLinenumberEnd: 26303
    functionName: ZSTD_estimateBlockSize_literal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_isError
    - HIST_count_wksp
    - HUF_estimateCompressedSize
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateBlockSize_literal(const BYTE* literals, size_t
      litSize,\n                               const ZSTD_hufCTables_t* huf,\n                               const
      ZSTD_hufCTablesMetadata_t* hufMetadata,\n                               void*
      workspace, size_t wkspSize,\n                               int writeEntropy)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HIST_countFast_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26321,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26324,1
    - Dst: ZSTD_crossEntropyCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26326,1
    - Dst: ZSTD_fseBitCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26330,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 11
    argNames:
    - type
    - codeTable
    - nbSeq
    - maxCode
    - fseCTable
    - additionalBits
    - defaultNorm
    - defaultNormLog
    - defaultMax
    - workspace
    - wkspSize
    argTypes:
    - symbolEncodingType_e
    - BYTE*
    - size_t
    - unsigned
    - FSE_CTable*
    - U8*
    - short const*
    - U32
    - U32
    - void*
    - size_t
    assertStmts:
    - condition: (max <= defaultMax)
      pos:
        line_end: 26323
        line_start: 26323
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26341
      start: 26306
    functionDepth: 3
    functionLinenumber: 26306
    functionLinenumberEnd: 26341
    functionName: ZSTD_estimateBlockSize_symbolType
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_fseBitCost
    - assert
    - ZSTD_crossEntropyCost
    - HIST_countFast_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateBlockSize_symbolType(symbolEncodingType_e type,\n
      \                   const BYTE* codeTable, size_t nbSeq, unsigned maxCode,\n
      \                   const FSE_CTable* fseCTable,\n                    const
      U8* additionalBits,\n                    short const* defaultNorm, U32 defaultNormLog,
      U32 defaultMax,\n                    void* workspace, size_t wkspSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_estimateBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26356,1
    - Dst: ZSTD_estimateBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26360,1
    - Dst: ZSTD_estimateBlockSize_symbolType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - ofCodeTable
    - llCodeTable
    - mlCodeTable
    - nbSeq
    - fseTables
    - fseMetadata
    - workspace
    - wkspSize
    - writeEntropy
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - size_t
    - ZSTD_fseCTables_t*
    - ZSTD_fseCTablesMetadata_t*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26370
      start: 26344
    functionDepth: 4
    functionLinenumber: 26344
    functionLinenumberEnd: 26370
    functionName: ZSTD_estimateBlockSize_sequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateBlockSize_symbolType
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateBlockSize_sequences(const BYTE* ofCodeTable,\n
      \                                const BYTE* llCodeTable,\n                                 const
      BYTE* mlCodeTable,\n                                 size_t nbSeq,\n                                 const
      ZSTD_fseCTables_t* fseTables,\n                                 const ZSTD_fseCTablesMetadata_t*
      fseMetadata,\n                                 void* workspace, size_t wkspSize,\n
      \                                int writeEntropy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_estimateBlockSize_literal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26384,1
    - Dst: ZSTD_estimateBlockSize_sequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 12
    argNames:
    - literals
    - litSize
    - ofCodeTable
    - llCodeTable
    - mlCodeTable
    - nbSeq
    - entropy
    - entropyMetadata
    - workspace
    - wkspSize
    - writeLitEntropy
    - writeSeqEntropy
    argTypes:
    - BYTE*
    - size_t
    - BYTE*
    - BYTE*
    - BYTE*
    - size_t
    - ZSTD_entropyCTables_t*
    - ZSTD_entropyCTablesMetadata_t*
    - void*
    - size_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26391
      start: 26373
    functionDepth: 5
    functionLinenumber: 26373
    functionLinenumberEnd: 26391
    functionName: ZSTD_estimateBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateBlockSize_literal
    - ZSTD_estimateBlockSize_sequences
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateBlockSize(const BYTE* literals, size_t litSize,\n
      \                      const BYTE* ofCodeTable,\n                       const
      BYTE* llCodeTable,\n                       const BYTE* mlCodeTable,\n                       size_t
      nbSeq,\n                       const ZSTD_entropyCTables_t* entropy,\n                       const
      ZSTD_entropyCTablesMetadata_t* entropyMetadata,\n                       void*
      workspace, size_t wkspSize,\n                       int writeLitEntropy, int
      writeSeqEntropy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26401,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26402,1
    - Dst: ZSTD_buildBlockEntropyStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26402,1
    - Dst: ZSTD_estimateBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seqStore
    - zc
    argTypes:
    - seqStore_t*
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26416
      start: 26397
    functionDepth: 13
    functionLinenumber: 26397
    functionLinenumberEnd: 26416
    functionName: ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_buildBlockEntropyStats
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_estimateBlockSize
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(seqStore_t*
      seqStore, ZSTD_CCtx* zc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - seqStore
    argTypes:
    - seqStore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26431
      start: 26419
    functionDepth: 0
    functionLinenumber: 26419
    functionLinenumberEnd: 26431
    functionName: ZSTD_countSeqStoreLiteralsBytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_countSeqStoreLiteralsBytes(const seqStore_t* const seqStore)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - seqStore
    argTypes:
    - seqStore_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26446
      start: 26434
    functionDepth: 0
    functionLinenumber: 26434
    functionLinenumberEnd: 26446
    functionName: ZSTD_countSeqStoreMatchBytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_countSeqStoreMatchBytes(const seqStore_t* const seqStore)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_countSeqStoreLiteralsBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26458,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26473,1
    - Dst: ZSTD_countSeqStoreLiteralsBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - resultSeqStore
    - originalSeqStore
    - startIdx
    - endIdx
    argTypes:
    - seqStore_t*
    - seqStore_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (resultSeqStore->lit == originalSeqStore->lit)
      pos:
        line_end: 26472
        line_start: 26472
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26481
      start: 26451
    functionDepth: 1
    functionLinenumber: 26451
    functionLinenumberEnd: 26481
    functionName: ZSTD_deriveSeqStoreChunk
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_countSeqStoreLiteralsBytes
    linkageType: ''
    returnType: void
    signature: "void ZSTD_deriveSeqStoreChunk(seqStore_t* resultSeqStore,\n                               const
      seqStore_t* originalSeqStore,\n                                     size_t startIdx,
      size_t endIdx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OFFBASE_TO_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26490,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26491,1
    - Dst: OFFBASE_IS_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26491,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - rep
    - offBase
    - ll0
    argTypes:
    - U32[]
    - U32
    - U32
    assertStmts:
    - condition: (ll0)
      pos:
        line_end: 26492
        line_start: 26492
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (OFFBASE_IS_REPCODE(offBase))
      pos:
        line_end: 26490
        line_start: 26490
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26504
      start: 26487
    functionDepth: 1
    functionLinenumber: 26487
    functionLinenumberEnd: 26504
    functionName: ZSTD_resolveRepcodeToRawOffset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - OFFBASE_TO_REPCODE
    - OFFBASE_IS_REPCODE
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_resolveRepcodeToRawOffset(const U32 rep[ZSTD_REP_NUM], const
      U32 offBase, const U32 ll0)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26529,1
    - Dst: OFFBASE_IS_REPCODE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26530,1
    - Dst: ZSTD_resolveRepcodeToRawOffset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26531,1
    - Dst: ZSTD_resolveRepcodeToRawOffset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26532,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26538,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26544,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26545,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - dRepcodes
    - cRepcodes
    - seqStore
    - nbSeq
    argTypes:
    - repcodes_t*
    - repcodes_t*
    - seqStore_t*
    - U32
    assertStmts:
    - condition: (offBase > 0)
      pos:
        line_end: 26528
        line_start: 26528
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26547
      start: 26519
    functionDepth: 2
    functionLinenumber: 26519
    functionLinenumberEnd: 26547
    functionName: ZSTD_seqStore_resolveOffCodes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resolveRepcodeToRawOffset
    - OFFBASE_IS_REPCODE
    - ZSTD_updateRep
    - OFFSET_TO_OFFBASE
    - assert
    linkageType: ''
    returnType: void
    signature: "void ZSTD_seqStore_resolveOffCodes(repcodes_t* const dRepcodes, repcodes_t*
      const cRepcodes,\n                        const seqStore_t* const seqStore,
      U32 const nbSeq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26570,1
    - Dst: ZSTD_seqStore_resolveOffCodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26572,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26574,1
    - Dst: ZSTD_entropyCompressSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26575,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26582,1
    - Dst: ZSTD_isRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26586,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26596,1
    - Dst: ZSTD_copyBlockSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26596,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26597,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26602,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26603,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26604,1
    - Dst: ZSTD_rleCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26607,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26608,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26609,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26612,1
    - Dst: writeBlockHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26613,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26615,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 10
    argNames:
    - zc
    - seqStore
    - dRep
    - cRep
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    - isPartition
    argTypes:
    - ZSTD_CCtx*
    - seqStore_t*
    - repcodes_t*
    - repcodes_t*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26622
      start: 26554
    functionDepth: 12
    functionLinenumber: 26554
    functionLinenumberEnd: 26622
    functionName: ZSTD_compressSeqStore_singleBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isRLE
    - ZSTD_noCompressBlock
    - ZSTD_rleCompressBlock
    - writeBlockHeader
    - DEBUGLOG
    - ZSTD_blockState_confirmRepcodesAndEntropyTables
    - ZSTD_entropyCompressSeqStore
    - ZSTD_seqStore_resolveOffCodes
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_copyBlockSequences
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSeqStore_singleBlock(ZSTD_CCtx* zc,\n                            const
      seqStore_t* const seqStore,\n                                  repcodes_t* const
      dRep, repcodes_t* const cRep,\n                                  void* dst,
      size_t dstCapacity,\n                            const void* src, size_t srcSize,\n
      \                                 U32 lastBlock, U32 isPartition)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26658,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26659,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26661,1
    - Dst: ZSTD_deriveSeqStoreChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26664,1
    - Dst: ZSTD_deriveSeqStoreChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26665,1
    - Dst: ZSTD_deriveSeqStoreChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26666,1
    - Dst: ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26667,1
    - Dst: ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26668,1
    - Dst: ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26669,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26670,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26672,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26672,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26672,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26676,1
    - Dst: ZSTD_deriveBlockSplitsHelper
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26677,1
    - Dst: ZSTD_deriveBlockSplitsHelper
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - splits
    - startIdx
    - endIdx
    - zc
    - origSeqStore
    argTypes:
    - seqStoreSplits*
    - size_t
    - size_t
    - ZSTD_CCtx*
    - seqStore_t*
    assertStmts:
    - condition: (endIdx >= startIdx)
      pos:
        line_end: 26658
        line_start: 26658
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26682
      start: 26646
    functionDepth: 14
    functionLinenumber: 26646
    functionLinenumberEnd: 26682
    functionName: ZSTD_deriveBlockSplitsHelper
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    - ZSTD_deriveBlockSplitsHelper
    - DEBUGLOG
    - ZSTD_deriveSeqStoreChunk
    - ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
    - assert
    linkageType: ''
    returnType: void
    signature: "void ZSTD_deriveBlockSplitsHelper(seqStoreSplits* splits, size_t startIdx,
      size_t endIdx,\n                             ZSTD_CCtx* zc, const seqStore_t*
      origSeqStore)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26695,1
    - Dst: ZSTD_deriveBlockSplitsHelper
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26699,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - zc
    - partitions
    - nbSeq
    argTypes:
    - ZSTD_CCtx*
    - U32[]
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26703
      start: 26689
    functionDepth: 15
    functionLinenumber: 26689
    functionLinenumberEnd: 26703
    functionName: ZSTD_deriveBlockSplits
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_deriveBlockSplitsHelper
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_deriveBlockSplits(ZSTD_CCtx* zc, U32 partitions[], U32
      nbSeq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_deriveBlockSplits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26724,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26742,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26743,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26744,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26746,1
    - Dst: ZSTD_compressSeqStore_singleBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26752,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26757,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26758,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26759,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26760,1
    - Dst: ZSTD_deriveSeqStoreChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26764,1
    - Dst: ZSTD_countSeqStoreLiteralsBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26770,1
    - Dst: ZSTD_countSeqStoreMatchBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26770,1
    - Dst: ZSTD_deriveSeqStoreChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26777,1
    - Dst: ZSTD_compressSeqStore_singleBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26780,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26785,1
    - Dst: ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26786,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26787,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26794,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 7
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - blockSize
    - lastBlock
    - nbSeq
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    - U32
    assertStmts:
    - condition: (zc->blockSize <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 26758
        line_start: 26758
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSizeSingleBlock <= zc->blockSize + ZSTD_blockHeaderSize)
      pos:
        line_end: 26759
        line_start: 26759
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSizeChunk <= zc->blockSize + ZSTD_blockHeaderSize)
      pos:
        line_end: 26793
        line_start: 26793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26801
      start: 26710
    functionDepth: 16
    functionLinenumber: 26710
    functionLinenumberEnd: 26801
    functionName: ZSTD_compressBlock_splitBlock_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_deriveBlockSplits
    - DEBUGLOG
    - ZSTD_compressSeqStore_singleBlock
    - ZSTD_deriveSeqStoreChunk
    - ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
    - ZSTD_countSeqStoreLiteralsBytes
    - ZSTD_countSeqStoreMatchBytes
    - ZSTD_memset
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_splitBlock_internal(ZSTD_CCtx* zc,\n                                    void*
      dst, size_t dstCapacity,\n                              const void* src, size_t
      blockSize,\n                                    U32 lastBlock, U32 nbSeq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26810,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26811,1
    - Dst: ZSTD_buildSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26813,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26814,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26818,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26819,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26820,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26821,1
    - Dst: ZSTD_compressBlock_splitBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26827,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 6
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    assertStmts:
    - condition: (zc->appliedParams.useBlockSplitter == ZSTD_ps_enable)
      pos:
        line_end: 26810
        line_start: 26810
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 26830
      start: 26803
    functionDepth: 17
    functionLinenumber: 26803
    functionLinenumberEnd: 26830
    functionName: ZSTD_compressBlock_splitBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_noCompressBlock
    - ZSTD_buildSeqStore
    - DEBUGLOG
    - ZSTD_compressBlock_splitBlock_internal
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc,\n                              void*
      dst, size_t dstCapacity,\n                              const void* src, size_t
      srcSize, U32 lastBlock)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26845,1
    - Dst: ZSTD_buildSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26849,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26850,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26852,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26859,1
    - Dst: ZSTD_copyBlockSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26859,1
    - Dst: ZSTD_getSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26859,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26860,1
    - Dst: ZSTD_entropyCompressSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26865,1
    - Dst: ZSTD_isRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26880,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26887,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26888,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 6
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - srcSize
    - frame
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26898
      start: 26832
    functionDepth: 12
    functionLinenumber: 26832
    functionLinenumberEnd: 26898
    functionName: ZSTD_compressBlock_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_isRLE
    - ZSTD_getSeqStore
    - ZSTD_buildSeqStore
    - DEBUGLOG
    - ZSTD_blockState_confirmRepcodesAndEntropyTables
    - ZSTD_entropyCompressSeqStore
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_copyBlockSequences
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc,\n                            void*
      dst, size_t dstCapacity,\n                            const void* src, size_t
      srcSize, U32 frame)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26905,1
    - Dst: ZSTD_maybeRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26912,1
    - Dst: ZSTD_isRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26913,1
    - Dst: ZSTD_rleCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26915,1
    - Dst: ZSTD_compressSuperBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26936,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26937,1
    - Dst: ZSTD_minGain
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26939,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26940,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26942,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26949,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26953,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 7
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - srcSize
    - bss
    - lastBlock
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26954
      start: 26900
    functionDepth: 16
    functionLinenumber: 26900
    functionLinenumberEnd: 26954
    functionName: ZSTD_compressBlock_targetCBlockSize_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isRLE
    - ZSTD_rleCompressBlock
    - ZSTD_noCompressBlock
    - ERROR
    - ZSTD_compressSuperBlock
    - DEBUGLOG
    - ZSTD_blockState_confirmRepcodesAndEntropyTables
    - ZSTD_maybeRLE
    - FORWARD_IF_ERROR
    - ZSTD_minGain
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc,\n                               void*
      dst, size_t dstCapacity,\n                               const void* src, size_t
      srcSize,\n                               const size_t bss, U32 lastBlock)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_buildSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26962,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26963,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26965,1
    - Dst: ZSTD_compressBlock_targetCBlockSize_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26967,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - zc
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastBlock
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26974
      start: 26956
    functionDepth: 17
    functionLinenumber: 26956
    functionLinenumberEnd: 26974
    functionName: ZSTD_compressBlock_targetCBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_buildSeqStore
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_compressBlock_targetCBlockSize_body
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_targetCBlockSize(ZSTD_CCtx* zc,\n                               void*
      dst, size_t dstCapacity,\n                               const void* src, size_t
      srcSize,\n                               U32 lastBlock)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cycleLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26982,1
    - Dst: ZSTD_window_needOverflowCorrection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26984,1
    - Dst: ZSTD_window_correctOverflow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26985,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26986,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26987,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26988,1
    - Dst: ZSTD_cwksp_mark_tables_dirty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26989,1
    - Dst: ZSTD_reduceIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26990,1
    - Dst: ZSTD_cwksp_mark_tables_clean
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:26991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - ms
    - ws
    - params
    - ip
    - iend
    argTypes:
    - ZSTD_matchState_t*
    - ZSTD_cwksp*
    - ZSTD_CCtx_params*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26998
      start: 26976
    functionDepth: 4
    functionLinenumber: 26976
    functionLinenumberEnd: 26998
    functionName: ZSTD_overflowCorrectIfNeeded
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_mark_tables_clean
    - ZSTD_window_correctOverflow
    - ZSTD_cwksp_mark_tables_dirty
    - ZSTD_reduceIndex
    - ZSTD_STATIC_ASSERT
    - ZSTD_cycleLog
    - ZSTD_window_needOverflowCorrection
    linkageType: ''
    returnType: void
    signature: "void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms,\n                                         ZSTD_cwksp*
      ws,\n                                         ZSTD_CCtx_params const* params,\n
      \                                        void const* ip,\n                                         void
      const* iend)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27019,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27021,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27023,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27031,1
    - Dst: ZSTD_overflowCorrectIfNeeded
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27036,1
    - Dst: ZSTD_checkDictValidity
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27038,1
    - Dst: ZSTD_window_enforceMaxDist
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27039,1
    - Dst: ZSTD_useTargetCBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27045,1
    - Dst: ZSTD_compressBlock_targetCBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27046,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27047,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27048,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27049,1
    - Dst: ZSTD_blockSplitterEnabled
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27050,1
    - Dst: ZSTD_compressBlock_splitBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27051,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27052,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27053,1
    - Dst: ZSTD_compressBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27055,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27058,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27061,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27062,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27067,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27074,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27077,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27080,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 6
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - lastFrameChunk
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    assertStmts:
    - condition: (cSize > 0)
      pos:
        line_end: 27047
        line_start: 27047
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (remaining >= blockSize)
      pos:
        line_end: 27073
        line_start: 27073
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSize > 0 || cctx->seqCollector.collectSequences == 1)
      pos:
        line_end: 27052
        line_start: 27052
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.cParams.windowLog <= ZSTD_WINDOWLOG_MAX)
      pos:
        line_end: 27018
        line_start: 27018
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSize <= blockSize + ZSTD_blockHeaderSize)
      pos:
        line_end: 27048
        line_start: 27048
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCapacity >= cSize)
      pos:
        line_end: 27076
        line_start: 27076
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27086
      start: 27007
    functionDepth: 18
    functionLinenumber: 27007
    functionLinenumberEnd: 27086
    functionName: ZSTD_compress_frameChunk
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_update
    - ZSTD_noCompressBlock
    - ZSTD_window_enforceMaxDist
    - MEM_writeLE24
    - DEBUGLOG
    - ZSTD_checkDictValidity
    - ZSTD_blockSplitterEnabled
    - ZSTD_compressBlock_internal
    - ZSTD_overflowCorrectIfNeeded
    - ZSTD_useTargetCBlockSize
    - ZSTD_compressBlock_targetCBlockSize
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_compressBlock_splitBlock
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx,\n                                     void*
      dst, size_t dstCapacity,\n                               const void* src, size_t
      srcSize,\n                                     U32 lastFrameChunk)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27103,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27104,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27106,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27109,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27117,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27121,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27122,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27127,1
    - Dst: MEM_writeLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27130,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27131,1
    - Dst: MEM_writeLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27132,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - params
    - pledgedSrcSize
    - dictID
    argTypes:
    - void*
    - size_t
    - ZSTD_CCtx_params*
    - U64
    - U32
    assertStmts:
    - condition: (!(params->fParams.contentSizeFlag && pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN))
      pos:
        line_end: 27102
        line_start: 27102
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27116
        line_start: 27116
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27126
        line_start: 27126
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27135
      start: 27089
    functionDepth: 3
    functionLinenumber: 27089
    functionLinenumberEnd: 27135
    functionName: ZSTD_writeFrameHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - DEBUGLOG
    - MEM_writeLE64
    - assert
    - RETURN_ERROR_IF
    - MEM_writeLE16
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity,\n                                    const
      ZSTD_CCtx_params* params, U64 pledgedSrcSize, U32 dictID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27146,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27148,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27149,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27151,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27152,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - magicVariant
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27155
      start: 27143
    functionDepth: 3
    functionLinenumber: 27143
    functionLinenumberEnd: 27155
    functionName: ZSTD_writeSkippableFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - RETURN_ERROR_IF
    - ZSTD_memcpy
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity,\n                                const
      void* src, size_t srcSize, unsigned magicVariant)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27164,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - dstCapacity
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27170
      start: 27162
    functionDepth: 3
    functionLinenumber: 27162
    functionLinenumberEnd: 27170
    functionName: ZSTD_writeLastEmptyBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE24
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_writeLastEmptyBlock(void* dst, size_t dstCapacity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27174,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - cctx
    - seq
    - nbSeq
    argTypes:
    - ZSTD_CCtx*
    - rawSeq*
    - size_t
    assertStmts:
    - condition: (cctx->stage == ZSTDcs_init)
      pos:
        line_end: 27173
        line_start: 27173
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbSeq == 0 || cctx->appliedParams.ldmParams.enableLdm != ZSTD_ps_enable)
      pos:
        line_end: 27174
        line_start: 27174
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27181
      start: 27172
    functionDepth: 1
    functionLinenumber: 27172
    functionLinenumberEnd: 27181
    functionName: ZSTD_referenceExternalSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq,
      size_t nbSeq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27192,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27194,1
    - Dst: ZSTD_writeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27198,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27200,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27201,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27209,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27214,1
    - Dst: ZSTD_overflowCorrectIfNeeded
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27219,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27224,1
    - Dst: ZSTD_compress_frameChunk
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27226,1
    - Dst: ZSTD_compressBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27227,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27228,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27231,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27233,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 7
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - frame
    - lastFrameChunk
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - U32
    - U32
    assertStmts:
    - condition: (fhSize <= dstCapacity)
      pos:
        line_end: 27200
        line_start: 27200
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne
        == 0))
      pos:
        line_end: 27230
        line_start: 27230
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27243
      start: 27184
    functionDepth: 19
    functionLinenumber: 27184
    functionLinenumberEnd: 27243
    functionName: ZSTD_compressContinue_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_window_update
    - ZSTD_compress_frameChunk
    - ZSTD_writeFrameHeader
    - ZSTD_STATIC_ASSERT
    - DEBUGLOG
    - ZSTD_compressBlock_internal
    - ZSTD_overflowCorrectIfNeeded
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx,\n                              void*
      dst, size_t dstCapacity,\n                        const void* src, size_t srcSize,\n
      \                              U32 frame, U32 lastFrameChunk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27249,1
    - Dst: ZSTD_compressContinue_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27251
      start: 27245
    functionDepth: 20
    functionLinenumber: 27245
    functionLinenumberEnd: 27251
    functionName: ZSTD_compressContinue_public
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressContinue_internal
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressContinue_public(ZSTD_CCtx* cctx,\n                                        void*
      dst, size_t dstCapacity,\n                                  const void* src,
      size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27259
      start: 27254
    functionDepth: 21
    functionLinenumber: 27254
    functionLinenumberEnd: 27259
    functionName: ZSTD_compressContinue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressContinue_public
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressContinue(ZSTD_CCtx* cctx,\n                             void*
      dst, size_t dstCapacity,\n                       const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27264,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27264,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (!ZSTD_checkCParams(cParams))
      pos:
        line_end: 27263
        line_start: 27263
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27266
      start: 27261
    functionDepth: 2
    functionLinenumber: 27261
    functionLinenumberEnd: 27266
    functionName: ZSTD_getBlockSize_deprecated
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_checkCParams
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getBlockSize_deprecated(const ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getBlockSize_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27272
      start: 27269
    functionDepth: 3
    functionLinenumber: 27269
    functionLinenumberEnd: 27272
    functionName: ZSTD_getBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getBlockSize_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27277,1
    - Dst: ZSTD_getBlockSize_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27278,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27279,1
    - Dst: ZSTD_compressContinue_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27282
      start: 27275
    functionDepth: 20
    functionLinenumber: 27275
    functionLinenumberEnd: 27282
    functionName: ZSTD_compressBlock_deprecated
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressContinue_internal
    - RETURN_ERROR_IF
    - DEBUGLOG
    - ZSTD_getBlockSize_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBlock_deprecated(ZSTD_CCtx* cctx, void* dst, size_t
      dstCapacity, const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27288
      start: 27285
    functionDepth: 21
    functionLinenumber: 27285
    functionLinenumberEnd: 27288
    functionName: ZSTD_compressBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity,
      const void* src, size_t srcSize)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_assertEqualCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27306,1
    - Dst: ZSTD_CDictIndicesAreTagged
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27316,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27324,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27325,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27338,1
    - Dst: ZSTD_window_isEmpty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27338,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27339,1
    - Dst: ZSTD_window_isEmpty
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27339,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27341,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27343,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27346,1
    - Dst: ZSTD_ldm_fillHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27348,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27353,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27353,1
    - Dst: ZSTD_overflowCorrectIfNeeded
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27367,1
    - Dst: ZSTD_fillHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27372,1
    - Dst: ZSTD_fillDoubleHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27376,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27378,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27388,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27390,1
    - Dst: ZSTD_dedicatedDictSearch_lazy_loadDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27391,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27393,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27396,1
    - Dst: ZSTD_row_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27397,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27398,1
    - Dst: ZSTD_insertAndFindFirstIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27400,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27401,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27405,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27416,1
    - Dst: ZSTD_updateTree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27417,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27419,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27424,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 8
    argNames:
    - ms
    - ls
    - ws
    - params
    - src
    - srcSize
    - dtlm
    - tfp
    argTypes:
    - ZSTD_matchState_t*
    - ldmState_t*
    - ZSTD_cwksp*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_tableFillPurpose_e
    assertStmts:
    - condition: (!loadLdmDict)
      pos:
        line_end: 27324
        line_start: 27324
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params->useRowMatchFinder != ZSTD_ps_auto)
      pos:
        line_end: 27392
        line_start: 27392
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27418
        line_start: 27418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_window_isEmpty(ms->window))
      pos:
        line_end: 27337
        line_start: 27337
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27423
        line_start: 27423
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_window_isEmpty(ls->window))
      pos:
        line_end: 27338
        line_start: 27338
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27377
        line_start: 27377
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= HASH_READ_SIZE)
      pos:
        line_end: 27387
        line_start: 27387
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->chainTable != NULL)
      pos:
        line_end: 27389
        line_start: 27389
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 27404
        line_start: 27404
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= HASH_READ_SIZE)
      pos:
        line_end: 27415
        line_start: 27415
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27429
      start: 27293
    functionDepth: 5
    functionLinenumber: 27293
    functionLinenumberEnd: 27429
    functionName: ZSTD_loadDictionaryContent
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_ldm_fillHashTable
    - ZSTD_updateTree
    - ZSTD_fillDoubleHashTable
    - ZSTD_dedicatedDictSearch_lazy_loadDictionary
    - MAX
    - ZSTD_insertAndFindFirstIndex
    - ZSTD_window_isEmpty
    - ZSTD_CDictIndicesAreTagged
    - DEBUGLOG
    - ZSTD_row_update
    - ZSTD_fillHashTable
    - ZSTD_overflowCorrectIfNeeded
    - ZSTD_memset
    - assert
    - ZSTD_window_update
    - MIN
    - ZSTD_assertEqualCParams
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms,\n                                         ldmState_t*
      ls,\n                                         ZSTD_cwksp* ws,\n                                         ZSTD_CCtx_params
      const* params,\n                                         const void* src, size_t
      srcSize,\n                                         ZSTD_dictTableLoadMethod_e
      dtlm,\n                                         ZSTD_tableFillPurpose_e tfp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - normalizedCounter
    - dictMaxSymbolValue
    - maxSymbolValue
    argTypes:
    - short*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27448
      start: 27436
    functionDepth: 0
    functionLinenumber: 27436
    functionLinenumberEnd: 27448
    functionName: ZSTD_dictNCountRepeat
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FSE_repeat
    signature: FSE_repeat ZSTD_dictNCountRepeat(short* normalizedCounter, unsigned
      dictMaxSymbolValue, unsigned maxSymbolValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27462,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27470,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27470,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27475,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27476,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27476,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27477,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27479,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27479,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27479,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27490,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27491,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27491,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27492,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27493,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27493,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27493,1
    - Dst: ZSTD_dictNCountRepeat
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27498,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27504,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27505,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27505,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27506,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27507,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27507,1
    - Dst: FSE_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27507,1
    - Dst: ZSTD_dictNCountRepeat
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27512,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27516,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27517,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27518,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27519,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27526,1
    - Dst: ZSTD_dictNCountRepeat
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27529,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27529,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27534,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 4
    argNames:
    - bs
    - workspace
    - dict
    - dictSize
    argTypes:
    - ZSTD_compressedBlockState_t*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27539
      start: 27450
    functionDepth: 8
    functionLinenumber: 27450
    functionLinenumberEnd: 27539
    functionName: ZSTD_loadCEntropy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_isError
    - ZSTD_highbit32
    - MEM_readLE32
    - FSE_isError
    - HUF_readCTable
    - FSE_readNCount
    - ZSTD_dictNCountRepeat
    - FSE_buildCTable_wksp
    - RETURN_ERROR_IF
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace,\n
      \                        const void* const dict, size_t dictSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27563,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27563,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27564,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27565,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27565,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27567,1
    - Dst: ZSTD_loadCEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27568,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27569,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27574,1
    - Dst: ZSTD_loadDictionaryContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 9
    argNames:
    - bs
    - ms
    - ws
    - params
    - dict
    - dictSize
    - dtlm
    - tfp
    - workspace
    argTypes:
    - ZSTD_compressedBlockState_t*
    - ZSTD_matchState_t*
    - ZSTD_cwksp*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_tableFillPurpose_e
    - void*
    assertStmts:
    - condition: (dictSize >= 8)
      pos:
        line_end: 27563
        line_start: 27563
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (MEM_readLE32(dictPtr) == ZSTD_MAGIC_DICTIONARY)
      pos:
        line_end: 27564
        line_start: 27564
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27578
      start: 27550
    functionDepth: 9
    functionLinenumber: 27550
    functionLinenumberEnd: 27578
    functionName: ZSTD_loadZstdDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE32
    - MAX
    - ZSTD_loadCEntropy
    - ZSTD_loadDictionaryContent
    - assert
    - ZSTD_STATIC_ASSERT
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs,\n
      \                                     ZSTD_matchState_t* ms,\n                                      ZSTD_cwksp*
      ws,\n                                      ZSTD_CCtx_params const* params,\n
      \                                     const void* dict, size_t dictSize,\n                                      ZSTD_dictTableLoadMethod_e
      dtlm,\n                                      ZSTD_tableFillPurpose_e tfp,\n
      \                                     void* workspace)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27594,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27596,1
    - Dst: ZSTD_reset_compressedBlockState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27600,1
    - Dst: ZSTD_loadDictionaryContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27604,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27606,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27608,1
    - Dst: ZSTD_loadDictionaryContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27609,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27612,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27613,1
    - Dst: ZSTD_loadZstdDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 11
    argNames:
    - bs
    - ms
    - ls
    - ws
    - params
    - dict
    - dictSize
    - dictContentType
    - dtlm
    - tfp
    - workspace
    argTypes:
    - ZSTD_compressedBlockState_t*
    - ZSTD_matchState_t*
    - ldmState_t*
    - ZSTD_cwksp*
    - ZSTD_CCtx_params*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_tableFillPurpose_e
    - void*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 27612
        line_start: 27612
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27619
      start: 27582
    functionDepth: 10
    functionLinenumber: 27582
    functionLinenumberEnd: 27619
    functionName: ZSTD_compress_insertDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE32
    - ZSTD_reset_compressedBlockState
    - ZSTD_loadZstdDictionary
    - DEBUGLOG
    - ZSTD_loadDictionaryContent
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t*
      bs,\n                               ZSTD_matchState_t* ms,\n                               ldmState_t*
      ls,\n                               ZSTD_cwksp* ws,\n                         const
      ZSTD_CCtx_params* params,\n                         const void* dict, size_t
      dictSize,\n                               ZSTD_dictContentType_e dictContentType,\n
      \                              ZSTD_dictTableLoadMethod_e dtlm,\n                               ZSTD_tableFillPurpose_e
      tfp,\n                               void* workspace)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_trace_compress_begin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27637,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27639,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27641,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27641,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27641,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27642,1
    - Dst: ZSTD_resetCCtx_usingCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27650,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27653,1
    - Dst: ZSTD_resetCCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27653,1
    - Dst: ZSTD_compress_insertDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27657,1
    - Dst: ZSTD_compress_insertDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27662,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27666,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27667,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 9
    argNames:
    - cctx
    - dict
    - dictSize
    - dictContentType
    - dtlm
    - cdict
    - params
    - pledgedSrcSize
    - zbuff
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - U64
    - ZSTD_buffered_policy_e
    assertStmts:
    - condition: (!ZSTD_isError(ZSTD_checkCParams(params->cParams)))
      pos:
        line_end: 27640
        line_start: 27640
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!((dict) && (cdict)))
      pos:
        line_end: 27641
        line_start: 27641
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dictID <= UINT_MAX)
      pos:
        line_end: 27666
        line_start: 27666
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27672
      start: 27627
    functionDepth: 11
    functionLinenumber: 27627
    functionLinenumberEnd: 27672
    functionName: ZSTD_compressBegin_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_resetCCtx_internal
    - ZSTD_isError
    - ZSTD_compress_insertDictionary
    - DEBUGLOG
    - ZSTD_trace_compress_begin
    - ZSTD_resetCCtx_usingCDict
    - assert
    - ZSTD_checkCParams
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,\n                                    const
      void* dict, size_t dictSize,\n                                    ZSTD_dictContentType_e
      dictContentType,\n                                    ZSTD_dictTableLoadMethod_e
      dtlm,\n                                    const ZSTD_CDict* cdict,\n                                    const
      ZSTD_CCtx_params* params, U64 pledgedSrcSize,\n                                    ZSTD_buffered_policy_e
      zbuff)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27682,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27684,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27684,1
    - Dst: ZSTD_compressBegin_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - cctx
    - dict
    - dictSize
    - dictContentType
    - dtlm
    - cdict
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27690
      start: 27674
    functionDepth: 12
    functionLinenumber: 27674
    functionLinenumberEnd: 27690
    functionName: ZSTD_compressBegin_advanced_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkCParams
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_compressBegin_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx,\n                                    const
      void* dict, size_t dictSize,\n                                    ZSTD_dictContentType_e
      dictContentType,\n                                    ZSTD_dictTableLoadMethod_e
      dtlm,\n                                    const ZSTD_CDict* cdict,\n                                    const
      ZSTD_CCtx_params* params,\n                                    unsigned long
      long pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27699,1
    - Dst: ZSTD_compressBegin_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cctx
    - dict
    - dictSize
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_parameters
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27704
      start: 27694
    functionDepth: 13
    functionLinenumber: 27694
    functionLinenumberEnd: 27704
    functionName: ZSTD_compressBegin_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_advanced_internal
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx,\n                             const
      void* dict, size_t dictSize,\n                                   ZSTD_parameters
      params, unsigned long long pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27710,1
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27711,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27713,1
    - Dst: ZSTD_compressBegin_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - cctx
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27716
      start: 27706
    functionDepth: 12
    functionLinenumber: 27706
    functionLinenumberEnd: 27716
    functionName: ZSTD_compressBegin_usingDict_deprecated
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_internal
    - ZSTD_getParams_internal
    - DEBUGLOG
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBegin_usingDict_deprecated(ZSTD_CCtx* cctx, const
      void* dict, size_t dictSize, int compressionLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBegin_usingDict_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cctx
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27722
      start: 27718
    functionDepth: 13
    functionLinenumber: 27718
    functionLinenumberEnd: 27722
    functionName: ZSTD_compressBegin_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_usingDict_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict,
      size_t dictSize, int compressionLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBegin_usingDict_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - compressionLevel
    argTypes:
    - ZSTD_CCtx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27727
      start: 27724
    functionDepth: 13
    functionLinenumber: 27724
    functionLinenumberEnd: 27727
    functionName: ZSTD_compressBegin
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_usingDict_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27738,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27739,1
    - Dst: ZSTD_writeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27743,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27744,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27753,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27754,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27755,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27761,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27762,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27763,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - cctx
    - dst
    - dstCapacity
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27770
      start: 27733
    functionDepth: 4
    functionLinenumber: 27733
    functionLinenumberEnd: 27770
    functionName: ZSTD_writeEpilogue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - XXH64_digest
    - ZSTD_writeFrameHeader
    - ZSTD_STATIC_ASSERT
    - MEM_writeLE24
    - DEBUGLOG
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27778,1
    - Dst: ZSTD_trace_compress_end
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - cctx
    - extraCSize
    argTypes:
    - ZSTD_CCtx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27794
      start: 27772
    functionDepth: 1
    functionLinenumber: 27772
    functionLinenumberEnd: 27794
    functionName: ZSTD_CCtx_trace
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_trace_compress_end
    linkageType: ''
    returnType: void
    signature: void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressContinue_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27801,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27804,1
    - Dst: ZSTD_writeEpilogue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27805,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27806,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27807,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27809,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27810,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27811,1
    - Dst: ZSTD_CCtx_trace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne
        == 0))
      pos:
        line_end: 27806
        line_start: 27806
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27820
      start: 27796
    functionDepth: 20
    functionLinenumber: 27796
    functionLinenumberEnd: 27820
    functionName: ZSTD_compressEnd_public
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_writeEpilogue
    - ZSTD_compressContinue_internal
    - DEBUGLOG
    - ZSTD_CCtx_trace
    - assert
    - ZSTD_STATIC_ASSERT
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressEnd_public(ZSTD_CCtx* cctx,\n                               void*
      dst, size_t dstCapacity,\n                         const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27828
      start: 27823
    functionDepth: 21
    functionLinenumber: 27823
    functionLinenumberEnd: 27828
    functionName: ZSTD_compressEnd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressEnd_public
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressEnd(ZSTD_CCtx* cctx,\n                        void*
      dst, size_t dstCapacity,\n                  const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27836,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27837,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27837,1
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27838,1
    - Dst: ZSTD_compress_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 8
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    - params
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27844
      start: 27830
    functionDepth: 3
    functionLinenumber: 27830
    functionLinenumberEnd: 27844
    functionName: ZSTD_compress_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compress_advanced_internal
    - DEBUGLOG
    - ZSTD_checkCParams
    - FORWARD_IF_ERROR
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx,\n                               void*
      dst, size_t dstCapacity,\n                         const void* src, size_t srcSize,\n
      \                        const void* dict,size_t dictSize,\n                               ZSTD_parameters
      params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27854,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27855,1
    - Dst: ZSTD_compressBegin_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27855,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    - params
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27859
      start: 27847
    functionDepth: 21
    functionLinenumber: 27847
    functionLinenumberEnd: 27859
    functionName: ZSTD_compress_advanced_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_compressEnd_public
    - ZSTD_compressBegin_internal
    - FORWARD_IF_ERROR
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_advanced_internal(\n        ZSTD_CCtx* cctx,\n
      \       void* dst, size_t dstCapacity,\n        const void* src, size_t srcSize,\n
      \       const void* dict,size_t dictSize,\n        const ZSTD_CCtx_params* params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27868,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27869,1
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27870,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27872,1
    - Dst: ZSTD_compress_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (params.fParams.contentSizeFlag == 1)
      pos:
        line_end: 27868
        line_start: 27868
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27874
      start: 27861
    functionDepth: 22
    functionLinenumber: 27861
    functionLinenumberEnd: 27874
    functionName: ZSTD_compress_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compress_advanced_internal
    - ZSTD_getParams_internal
    - DEBUGLOG
    - assert
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx,\n                               void*
      dst, size_t dstCapacity,\n                         const void* src, size_t srcSize,\n
      \                        const void* dict, size_t dictSize,\n                               int
      compressionLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27881,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27882,1
    - Dst: ZSTD_compress_usingDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - compressionLevel
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (cctx != NULL)
      pos:
        line_end: 27881
        line_start: 27881
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27884
      start: 27876
    functionDepth: 23
    functionLinenumber: 27876
    functionLinenumberEnd: 27884
    functionName: ZSTD_compressCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - ZSTD_compress_usingDict
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx,\n                         void*
      dst, size_t dstCapacity,\n                   const void* src, size_t srcSize,\n
      \                        int compressionLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27892,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27893,1
    - Dst: ZSTD_compressCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27894,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27895,1
    - Dst: ZSTD_initCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27898,1
    - Dst: ZSTD_compressCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27899,1
    - Dst: ZSTD_freeCCtxContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    - compressionLevel
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27903
      start: 27886
    functionDepth: 24
    functionLinenumber: 27886
    functionLinenumberEnd: 27903
    functionName: ZSTD_compress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createCCtx
    - ZSTD_freeCCtxContent
    - ZSTD_freeCCtx
    - ZSTD_compressCCtx
    - RETURN_ERROR_IF
    - ZSTD_initCCtx
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress(void* dst, size_t dstCapacity,\n               const
      void* src, size_t srcSize,\n                     int compressionLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27914,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27915,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27916,1
    - Dst: ZSTD_sizeof_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27919,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27919,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27922,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dictSize
    - cParams
    - dictLoadMethod
    argTypes:
    - size_t
    - ZSTD_compressionParameters
    - ZSTD_dictLoadMethod_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27923
      start: 27910
    functionDepth: 4
    functionLinenumber: 27910
    functionLinenumberEnd: 27923
    functionName: ZSTD_estimateCDictSize_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_align
    - ZSTD_cwksp_alloc_size
    - DEBUGLOG
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_sizeof_matchState
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_estimateCDictSize_advanced(\n        size_t dictSize,
      ZSTD_compressionParameters cParams,\n        ZSTD_dictLoadMethod_e dictLoadMethod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27927,1
    - Dst: ZSTD_estimateCDictSize_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dictSize
    - compressionLevel
    argTypes:
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27929
      start: 27925
    functionDepth: 5
    functionLinenumber: 27925
    functionLinenumberEnd: 27929
    functionName: ZSTD_estimateCDictSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getCParams_internal
    - ZSTD_estimateCDictSize_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27934,1
    - Dst: ZSTD_cwksp_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cdict
    argTypes:
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27938
      start: 27931
    functionDepth: 1
    functionLinenumber: 27931
    functionLinenumberEnd: 27938
    functionName: ZSTD_sizeof_CDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - DEBUGLOG
    - ZSTD_cwksp_sizeof
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27947,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27948,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27948,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27954,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27954,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27955,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27957,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27962,1
    - Dst: ZSTD_reset_compressedBlockState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27966,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27967,1
    - Dst: ZSTD_reset_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27967,1
    - Dst: ZSTD_compress_insertDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27980,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27984,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:27985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 6
    argNames:
    - cdict
    - dictBuffer
    - dictSize
    - dictLoadMethod
    - dictContentType
    - params
    argTypes:
    - ZSTD_CDict*
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    - ZSTD_CCtx_params
    assertStmts:
    - condition: (!ZSTD_checkCParams(params.cParams))
      pos:
        line_end: 27947
        line_start: 27947
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dictID <= (size_t)(U32)-1)
      pos:
        line_end: 27984
        line_start: 27984
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 27991
      start: 27940
    functionDepth: 11
    functionLinenumber: 27940
    functionLinenumberEnd: 27991
    functionName: ZSTD_initCDict_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_compress_insertDictionary
    - ZSTD_cwksp_align
    - ZSTD_reset_compressedBlockState
    - DEBUGLOG
    - ZSTD_reset_matchState
    - ZSTD_cwksp_reserve_object
    - assert
    - ZSTD_checkCParams
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_initCDict_internal(\n                    ZSTD_CDict* cdict,\n
      \             const void* dictBuffer, size_t dictSize,\n                    ZSTD_dictLoadMethod_e
      dictLoadMethod,\n                    ZSTD_dictContentType_e dictContentType,\n
      \                   ZSTD_CCtx_params params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28003,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28004,1
    - Dst: ZSTD_sizeof_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28005,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28007,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28007,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28008,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28013,1
    - Dst: ZSTD_cwksp_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28017,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28019,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28020,1
    - Dst: ZSTD_cwksp_move
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - dictSize
    - dictLoadMethod
    - cParams
    - useRowMatchFinder
    - enableDedicatedDictSearch
    - customMem
    argTypes:
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_compressionParameters
    - ZSTD_paramSwitch_e
    - U32
    - ZSTD_customMem
    assertStmts:
    - condition: (cdict != NULL)
      pos:
        line_end: 28019
        line_start: 28019
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28027
      start: 27993
    functionDepth: 4
    functionLinenumber: 27993
    functionLinenumberEnd: 28027
    functionName: ZSTD_createCDict_advanced_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cwksp_move
    - ZSTD_cwksp_align
    - ZSTD_customMalloc
    - ZSTD_cwksp_alloc_size
    - ZSTD_cwksp_init
    - ZSTD_cwksp_reserve_object
    - ZSTD_customFree
    - assert
    - ZSTD_sizeof_matchState
    linkageType: ''
    returnType: ZSTD_CDict
    signature: "ZSTD_CDict * ZSTD_createCDict_advanced_internal(size_t dictSize,\n
      \                                     ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \                                     ZSTD_compressionParameters cParams,\n
      \                                     ZSTD_paramSwitch_e useRowMatchFinder,\n
      \                                     U32 enableDedicatedDictSearch,\n                                      ZSTD_customMem
      customMem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28036,1
    - Dst: ZSTD_CCtxParams_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28037,1
    - Dst: ZSTD_createCDict_advanced2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - dictBuffer
    - dictSize
    - dictLoadMethod
    - dictContentType
    - cParams
    - customMem
    argTypes:
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    - ZSTD_compressionParameters
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28044
      start: 28029
    functionDepth: 2
    functionLinenumber: 28029
    functionLinenumberEnd: 28044
    functionName: ZSTD_createCDict_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_memset
    - ZSTD_CCtxParams_init
    - ZSTD_createCDict_advanced2
    linkageType: ''
    returnType: ZSTD_CDict
    signature: "ZSTD_CDict * ZSTD_createCDict_advanced(const void* dictBuffer, size_t
      dictSize,\n                                      ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \                                     ZSTD_dictContentType_e dictContentType,\n
      \                                     ZSTD_compressionParameters cParams,\n
      \                                     ZSTD_customMem customMem)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28057,1
    - Dst: ZSTD_dedicatedDictSearch_getCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28061,1
    - Dst: ZSTD_overrideCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28063,1
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28065,1
    - Dst: ZSTD_dedicatedDictSearch_isSupported
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28069,1
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28072,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28076,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28078,1
    - Dst: ZSTD_createCDict_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28080,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28085,1
    - Dst: ZSTD_initCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28085,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28089,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    - originalCctxParams
    - customMem
    argTypes:
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    - ZSTD_CCtx_params*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28094
      start: 28046
    functionDepth: 12
    functionLinenumber: 28046
    functionLinenumberEnd: 28094
    functionName: ZSTD_createCDict_advanced2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_isError
    - ZSTD_dedicatedDictSearch_getCParams
    - ZSTD_freeCDict
    - ZSTD_initCDict_internal
    - ZSTD_createCDict_advanced_internal
    - DEBUGLOG
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_getCParamsFromCCtxParams
    - ZSTD_overrideCParams
    - ZSTD_dedicatedDictSearch_isSupported
    linkageType: ''
    returnType: ZSTD_CDict
    signature: "ZSTD_CDict * ZSTD_createCDict_advanced2(\n        const void* dict,
      size_t dictSize,\n        ZSTD_dictLoadMethod_e dictLoadMethod,\n        ZSTD_dictContentType_e
      dictContentType,\n        const ZSTD_CCtx_params* originalCctxParams,\n        ZSTD_customMem
      customMem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28098,1
    - Dst: ZSTD_createCDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28105
      start: 28096
    functionDepth: 3
    functionLinenumber: 28096
    functionLinenumberEnd: 28105
    functionName: ZSTD_createCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getCParams_internal
    - ZSTD_createCDict_advanced
    linkageType: ''
    returnType: ZSTD_CDict
    signature: ZSTD_CDict * ZSTD_createCDict(const void* dict, size_t dictSize, int
      compressionLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28109,1
    - Dst: ZSTD_createCDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28116
      start: 28107
    functionDepth: 3
    functionLinenumber: 28107
    functionLinenumberEnd: 28116
    functionName: ZSTD_createCDict_byReference
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getCParams_internal
    - ZSTD_createCDict_advanced
    linkageType: ''
    returnType: ZSTD_CDict
    signature: ZSTD_CDict * ZSTD_createCDict_byReference(const void* dict, size_t
      dictSize, int compressionLevel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cwksp_owns_buffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28122,1
    - Dst: ZSTD_cwksp_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28123,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cdict
    argTypes:
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28129
      start: 28118
    functionDepth: 3
    functionLinenumber: 28118
    functionLinenumberEnd: 28129
    functionName: ZSTD_freeCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached:
    - ZSTD_cwksp_free
    - ZSTD_cwksp_owns_buffer
    - ZSTD_customFree
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeCDict(ZSTD_CDict* cdict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28151,1
    - Dst: ZSTD_sizeof_matchState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28153,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28154,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28156,1
    - Dst: ZSTD_cwksp_align
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28156,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28157,1
    - Dst: ZSTD_cwksp_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28166,1
    - Dst: ZSTD_cwksp_reserve_object
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28167,1
    - Dst: ZSTD_cwksp_move
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28169,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28172,1
    - Dst: ZSTD_CCtxParams_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28176,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28182,1
    - Dst: ZSTD_initCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28182,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - workspace
    - workspaceSize
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    - cParams
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    - ZSTD_compressionParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28189
      start: 28144
    functionDepth: 12
    functionLinenumber: 28144
    functionLinenumberEnd: 28189
    functionName: ZSTD_initStaticCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_cwksp_move
    - ZSTD_cwksp_align
    - ZSTD_CCtxParams_init
    - ZSTD_initCDict_internal
    - ZSTD_cwksp_alloc_size
    - DEBUGLOG
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_cwksp_init
    - ZSTD_cwksp_reserve_object
    - ZSTD_sizeof_matchState
    linkageType: ''
    returnType: ZSTD_CDict
    signature: "ZSTD_CDict * ZSTD_initStaticCDict(\n                                 void*
      workspace, size_t workspaceSize,\n                           const void* dict,
      size_t dictSize,\n                                 ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \                                ZSTD_dictContentType_e dictContentType,\n                                 ZSTD_compressionParameters
      cParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cdict
    argTypes:
    - ZSTD_CDict*
    assertStmts:
    - condition: (cdict != NULL)
      pos:
        line_end: 28192
        line_start: 28192
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28195
      start: 28191
    functionDepth: 1
    functionLinenumber: 28191
    functionLinenumberEnd: 28195
    functionName: ZSTD_getCParamsFromCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict*
      cdict)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cdict
    argTypes:
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28205
      start: 28201
    functionDepth: 0
    functionLinenumber: 28201
    functionLinenumberEnd: 28205
    functionName: ZSTD_getDictID_fromCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28215,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28216,1
    - Dst: ZSTD_getCParamsFromCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28225,1
    - Dst: ZSTD_getCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28226,1
    - Dst: ZSTD_CCtxParams_init_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28229,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28236,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28237,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28238,1
    - Dst: ZSTD_compressBegin_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - cctx
    - cdict
    - fParams
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    - ZSTD_frameParameters
    - unsigned long long const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28245
      start: 28210
    functionDepth: 12
    functionLinenumber: 28210
    functionLinenumberEnd: 28245
    functionName: ZSTD_compressBegin_usingCDict_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_compressBegin_internal
    - ZSTD_highbit32
    - MAX
    - ZSTD_getCParamsFromCDict
    - DEBUGLOG
    - ZSTD_getCParams
    - MIN
    - ZSTD_CCtxParams_init_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBegin_usingCDict_internal(\n    ZSTD_CCtx* const
      cctx, const ZSTD_CDict* const cdict,\n    ZSTD_frameParameters const fParams,
      unsigned long long const pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBegin_usingCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cctx
    - cdict
    - fParams
    - pledgedSrcSize
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    - ZSTD_frameParameters
    - unsigned long long const
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28256
      start: 28251
    functionDepth: 13
    functionLinenumber: 28251
    functionLinenumberEnd: 28256
    functionName: ZSTD_compressBegin_usingCDict_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_usingCDict_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBegin_usingCDict_advanced(\n    ZSTD_CCtx* const
      cctx, const ZSTD_CDict* const cdict,\n    ZSTD_frameParameters const fParams,
      unsigned long long const pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBegin_usingCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - cdict
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28264
      start: 28260
    functionDepth: 13
    functionLinenumber: 28260
    functionLinenumberEnd: 28264
    functionName: ZSTD_compressBegin_usingCDict_deprecated
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_usingCDict_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBegin_usingCDict_deprecated(ZSTD_CCtx* cctx, const
      ZSTD_CDict* cdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBegin_usingCDict_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cctx
    - cdict
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28269
      start: 28266
    functionDepth: 14
    functionLinenumber: 28266
    functionLinenumberEnd: 28269
    functionName: ZSTD_compressBegin_usingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBegin_usingCDict_deprecated
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict*
      cdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28279,1
    - Dst: ZSTD_compressBegin_usingCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28279,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - cdict
    - fParams
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_CDict*
    - ZSTD_frameParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28281
      start: 28274
    functionDepth: 21
    functionLinenumber: 28274
    functionLinenumberEnd: 28281
    functionName: ZSTD_compress_usingCDict_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressEnd_public
    - ZSTD_compressBegin_usingCDict_internal
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_usingCDict_internal(ZSTD_CCtx* cctx,\n                                void*
      dst, size_t dstCapacity,\n                                const void* src, size_t
      srcSize,\n                                const ZSTD_CDict* cdict, ZSTD_frameParameters
      fParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compress_usingCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - cdict
    - fParams
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_CDict*
    - ZSTD_frameParameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28292
      start: 28286
    functionDepth: 22
    functionLinenumber: 28286
    functionLinenumberEnd: 28292
    functionName: ZSTD_compress_usingCDict_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compress_usingCDict_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,\n                                void*
      dst, size_t dstCapacity,\n                                const void* src, size_t
      srcSize,\n                                const ZSTD_CDict* cdict, ZSTD_frameParameters
      fParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compress_usingCDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - cdict
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28306
      start: 28299
    functionDepth: 22
    functionLinenumber: 28299
    functionLinenumberEnd: 28306
    functionName: ZSTD_compress_usingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compress_usingCDict_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx,\n                                void*
      dst, size_t dstCapacity,\n                                const void* src, size_t
      srcSize,\n                                const ZSTD_CDict* cdict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28316,1
    - Dst: ZSTD_createCStream_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28318
      start: 28314
    functionDepth: 1
    functionLinenumber: 28314
    functionLinenumberEnd: 28318
    functionName: ZSTD_createCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_createCStream_advanced
    linkageType: ''
    returnType: ZSTD_CStream
    signature: ZSTD_CStream * ZSTD_createCStream(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_initStaticCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28323
      start: 28320
    functionDepth: 5
    functionLinenumber: 28320
    functionLinenumberEnd: 28323
    functionName: ZSTD_initStaticCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_initStaticCCtx
    linkageType: ''
    returnType: ZSTD_CStream
    signature: ZSTD_CStream * ZSTD_initStaticCStream(void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createCCtx_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28328
      start: 28325
    functionDepth: 5
    functionLinenumber: 28325
    functionLinenumberEnd: 28328
    functionName: ZSTD_createCStream_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_createCCtx_advanced
    linkageType: ''
    returnType: ZSTD_CStream
    signature: ZSTD_CStream * ZSTD_createCStream_advanced(ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zcs
    argTypes:
    - ZSTD_CStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28333
      start: 28330
    functionDepth: 5
    functionLinenumber: 28330
    functionLinenumberEnd: 28333
    functionName: ZSTD_freeCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeCStream(ZSTD_CStream* zcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28339
      start: 28339
    functionDepth: 0
    functionLinenumber: 28339
    functionLinenumberEnd: 28339
    functionName: ZSTD_CStreamInSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CStreamInSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28344
      start: 28341
    functionDepth: 2
    functionLinenumber: 28341
    functionLinenumberEnd: 28344
    functionName: ZSTD_CStreamOutSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 7
    functionsReached:
    - ZSTD_compressBound
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_CStreamOutSize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_shouldAttachDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cdict
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28352
      start: 28346
    functionDepth: 1
    functionLinenumber: 28346
    functionLinenumberEnd: 28352
    functionName: ZSTD_getCParamMode
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_shouldAttachDict
    linkageType: ''
    returnType: ZSTD_cParamMode_e
    signature: ZSTD_cParamMode_e ZSTD_getCParamMode(ZSTD_CDict const* cdict, ZSTD_CCtx_params
      const* params, U64 pledgedSrcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28363,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28364,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28364,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28365,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - zcs
    - pss
    argTypes:
    - ZSTD_CStream*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28367
      start: 28356
    functionDepth: 4
    functionLinenumber: 28356
    functionLinenumberEnd: 28367
    functionName: ZSTD_resetCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_CCtx_setPledgedSrcSize
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28378,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28379,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28379,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28380,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28380,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28381,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28381,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28381,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28383,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28385,1
    - Dst: ZSTD_CCtx_loadDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28385,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28388,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - zcs
    - dict
    - dictSize
    - cdict
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTD_CStream*
    - void*
    - size_t
    - ZSTD_CDict*
    - ZSTD_CCtx_params*
    - unsigned long long
    assertStmts:
    - condition: (!ZSTD_isError(ZSTD_checkCParams(params->cParams)))
      pos:
        line_end: 28380
        line_start: 28380
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!((dict) && (cdict)))
      pos:
        line_end: 28382
        line_start: 28382
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28391
      start: 28373
    functionDepth: 5
    functionLinenumber: 28373
    functionLinenumberEnd: 28391
    functionName: ZSTD_initCStream_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_refCDict
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_setPledgedSrcSize
    - ZSTD_CCtx_loadDictionary
    - DEBUGLOG
    - assert
    - ZSTD_checkCParams
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_initCStream_internal(ZSTD_CStream* zcs,\n                    const
      void* dict, size_t dictSize, const ZSTD_CDict* cdict,\n                    const
      ZSTD_CCtx_params* params,\n                    unsigned long long pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28400,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28401,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28401,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28402,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28402,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28404,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - zcs
    - cdict
    - fParams
    - pledgedSrcSize
    argTypes:
    - ZSTD_CStream*
    - ZSTD_CDict*
    - ZSTD_frameParameters
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28406
      start: 28395
    functionDepth: 4
    functionLinenumber: 28395
    functionLinenumberEnd: 28406
    functionName: ZSTD_initCStream_usingCDict_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_setPledgedSrcSize
    - DEBUGLOG
    - ZSTD_CCtx_refCDict
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs,\n                                            const
      ZSTD_CDict* cdict,\n                                            ZSTD_frameParameters
      fParams,\n                                            unsigned long long pledgedSrcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28411,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28412,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28412,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28413,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - zcs
    - cdict
    argTypes:
    - ZSTD_CStream*
    - ZSTD_CDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28415
      start: 28409
    functionDepth: 4
    functionLinenumber: 28409
    functionLinenumberEnd: 28415
    functionName: ZSTD_initCStream_usingCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_refCDict
    - ZSTD_CCtx_reset
    - FORWARD_IF_ERROR
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict*
      cdict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28431,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28432,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28432,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28433,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28433,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28434,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28434,1
    - Dst: ZSTD_CCtxParams_setZstdParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28435,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28436,1
    - Dst: ZSTD_CCtx_loadDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - zcs
    - dict
    - dictSize
    - params
    - pss
    argTypes:
    - ZSTD_CStream*
    - void*
    - size_t
    - ZSTD_parameters
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28438
      start: 28422
    functionDepth: 5
    functionLinenumber: 28422
    functionLinenumberEnd: 28438
    functionName: ZSTD_initCStream_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_setPledgedSrcSize
    - ZSTD_CCtxParams_setZstdParams
    - ZSTD_CCtx_loadDictionary
    - DEBUGLOG
    - ZSTD_checkCParams
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs,\n                                 const
      void* dict, size_t dictSize,\n                                 ZSTD_parameters
      params, unsigned long long pss)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28442,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28443,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28443,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28444,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28444,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28445,1
    - Dst: ZSTD_CCtx_loadDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - zcs
    - dict
    - dictSize
    - compressionLevel
    argTypes:
    - ZSTD_CStream*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28447
      start: 28440
    functionDepth: 5
    functionLinenumber: 28440
    functionLinenumberEnd: 28447
    functionName: ZSTD_initCStream_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_loadDictionary
    - ZSTD_CCtx_setParameter
    - DEBUGLOG
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, const void* dict,
      size_t dictSize, int compressionLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28456,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28457,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28457,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28458,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28458,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28459,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28459,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28460,1
    - Dst: ZSTD_CCtx_setPledgedSrcSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - zcs
    - compressionLevel
    - pss
    argTypes:
    - ZSTD_CStream*
    - int
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28462
      start: 28449
    functionDepth: 4
    functionLinenumber: 28449
    functionLinenumberEnd: 28462
    functionName: ZSTD_initCStream_srcSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_setPledgedSrcSize
    - ZSTD_CCtx_setParameter
    - DEBUGLOG
    - ZSTD_CCtx_refCDict
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, int compressionLevel,
      unsigned long long pss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28466,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28467,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28467,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28468,1
    - Dst: ZSTD_CCtx_refCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28468,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28469,1
    - Dst: ZSTD_CCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - zcs
    - compressionLevel
    argTypes:
    - ZSTD_CStream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28471
      start: 28464
    functionDepth: 4
    functionLinenumber: 28464
    functionLinenumberEnd: 28471
    functionName: ZSTD_initCStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_CCtx_setParameter
    - DEBUGLOG
    - ZSTD_CCtx_refCDict
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (cctx->appliedParams.inBufferMode == ZSTD_bm_buffered)
      pos:
        line_end: 28479
        line_start: 28479
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28485
      start: 28475
    functionDepth: 1
    functionLinenumber: 28475
    functionLinenumberEnd: 28485
    functionName: ZSTD_nextInputSizeHint
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_nextInputSizeHint(const ZSTD_CCtx* cctx)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28495,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28498,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28504,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28505,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28507,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28513,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28514,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28517,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28518,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28520,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28521,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28522,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28523,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28524,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28530,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28534,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28538,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28540,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28541,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28545,1
    - Dst: ZSTD_limitCopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28551,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28567,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28582,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28588,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28589,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28596,1
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28598,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28600,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28606,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28609,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28614,1
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28615,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28618,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28620,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28625,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28627,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28637,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28638,1
    - Dst: ZSTD_limitCopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28640,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28642,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28649,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28655,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28657,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28665,1
    - Dst: ZSTD_nextInputSizeHint
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28672,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 134
    argCount: 4
    argNames:
    - zcs
    - output
    - input
    - flushMode
    argTypes:
    - ZSTD_CStream*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    - ZSTD_EndDirective
    assertStmts:
    - condition: ((U32)flushMode <= (U32)ZSTD_e_end)
      pos:
        line_end: 28523
        line_start: 28523
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->appliedParams.inBufferMode == ZSTD_bm_stable)
      pos:
        line_end: 28566
        line_start: 28566
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->inBuffTarget <= zcs->inBuffSize)
      pos:
        line_end: 28608
        line_start: 28608
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input != NULL)
      pos:
        line_end: 28494
        line_start: 28494
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->inBuff != NULL)
      pos:
        line_end: 28512
        line_start: 28512
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->outBuff !=  NULL)
      pos:
        line_end: 28516
        line_start: 28516
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (output->size == 0)
      pos:
        line_end: 28521
        line_start: 28521
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (output->pos <= output->size)
      pos:
        line_end: 28522
        line_start: 28522
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->appliedParams.outBufferMode == ZSTD_bm_buffered)
      pos:
        line_end: 28637
        line_start: 28637
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->pos >= zcs->stableIn_notConsumed)
      pos:
        line_end: 28506
        line_start: 28506
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs != NULL)
      pos:
        line_end: 28504
        line_start: 28504
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->inBuffSize > 0)
      pos:
        line_end: 28513
        line_start: 28513
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zcs->outBuffSize > 0)
      pos:
        line_end: 28517
        line_start: 28517
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->size == 0)
      pos:
        line_end: 28519
        line_start: 28519
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->pos <= input->size)
      pos:
        line_end: 28520
        line_start: 28520
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op==oend)
      pos:
        line_end: 28648
        line_start: 28648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (output != NULL)
      pos:
        line_end: 28497
        line_start: 28497
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip == iend)
      pos:
        line_end: 28619
        line_start: 28619
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 28664
        line_start: 28664
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28673
      start: 28490
    functionDepth: 21
    functionLinenumber: 28490
    functionLinenumberEnd: 28673
    functionName: ZSTD_compressStream_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtx_reset
    - ZSTD_compressEnd_public
    - ZSTD_compressContinue_public
    - DEBUGLOG
    - RETURN_ERROR
    - ZSTD_compressBound
    - ZSTD_nextInputSizeHint
    - ZSTD_limitCopy
    - assert
    - FORWARD_IF_ERROR
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,\n                                          ZSTD_outBuffer*
      output,\n                                          ZSTD_inBuffer* input,\n                                          ZSTD_EndDirective
      const flushMode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28679,1
    - Dst: ZSTDMT_nextInputSizeHint
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28680,1
    - Dst: ZSTD_nextInputSizeHint
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cctx
    argTypes:
    - ZSTD_CCtx*
    assertStmts:
    - condition: (cctx->mtctx != NULL)
      pos:
        line_end: 28678
        line_start: 28678
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28685
      start: 28675
    functionDepth: 2
    functionLinenumber: 28675
    functionLinenumberEnd: 28685
    functionName: ZSTD_nextInputSizeHint_MTorST
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_nextInputSizeHint
    - assert
    - ZSTD_nextInputSizeHint
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_nextInputSizeHint_MTorST(const ZSTD_CCtx* cctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28689,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28689,1
    - Dst: ZSTD_nextInputSizeHint_MTorST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zcs
    - output
    - input
    argTypes:
    - ZSTD_CStream*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28691
      start: 28687
    functionDepth: 3
    functionLinenumber: 28687
    functionLinenumberEnd: 28691
    functionName: ZSTD_compressStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressStream2
    - FORWARD_IF_ERROR
    - ZSTD_nextInputSizeHint_MTorST
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output,
      ZSTD_inBuffer* input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - cctx
    - output
    - input
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28706
      start: 28696
    functionDepth: 1
    functionLinenumber: 28696
    functionLinenumberEnd: 28706
    functionName: ZSTD_setBufferExpectations
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void ZSTD_setBufferExpectations(ZSTD_CCtx* cctx, const ZSTD_outBuffer*
      output, const ZSTD_inBuffer* input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28719,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28725,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - cctx
    - output
    - input
    - endOp
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    - ZSTD_EndDirective
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28728
      start: 28711
    functionDepth: 0
    functionLinenumber: 28711
    functionLinenumberEnd: 28728
    functionName: ZSTD_checkBufferStability
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_checkBufferStability(ZSTD_CCtx const* cctx,\n                                        ZSTD_outBuffer
      const* output,\n                                        ZSTD_inBuffer const*
      input,\n                                        ZSTD_EndDirective endOp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28736,1
    - Dst: ZSTD_initLocalDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28736,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28737,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28738,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28746,1
    - Dst: ZSTD_getCParamMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28752,1
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28753,1
    - Dst: ZSTD_resolveBlockSplitterMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28758,1
    - Dst: ZSTD_resolveEnableLdm
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28759,1
    - Dst: ZSTD_resolveRowMatchFinderMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28760,1
    - Dst: ZSTD_resolveExternalSequenceValidation
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28761,1
    - Dst: ZSTD_resolveMaxBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28762,1
    - Dst: ZSTD_resolveExternalRepcodeSearch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28763,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28767,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28768,1
    - Dst: ZSTD_trace_compress_begin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28778,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28782,1
    - Dst: ZSTDMT_createCCtx_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28784,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28785,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28788,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28789,1
    - Dst: ZSTDMT_initCStream_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28789,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28802,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28802,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28802,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28803,1
    - Dst: ZSTD_compressBegin_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28803,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28808,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 3
    argNames:
    - cctx
    - endOp
    - inSize
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_EndDirective
    - size_t
    assertStmts:
    - condition: (!ZSTD_isError(ZSTD_checkCParams(params.cParams)))
      pos:
        line_end: 28801
        line_start: 28801
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.nbWorkers == 0)
      pos:
        line_end: 28807
        line_start: 28807
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (prefixDict.dict==NULL || cctx->cdict==NULL)
      pos:
        line_end: 28737
        line_start: 28737
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28824
      start: 28730
    functionDepth: 12
    functionLinenumber: 28730
    functionLinenumberEnd: 28824
    functionName: ZSTD_CCtx_init_compressStream2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getCParamMode
    - ZSTD_resolveExternalRepcodeSearch
    - ZSTD_resolveMaxBlockSize
    - ZSTD_hasExtSeqProd
    - ZSTD_getCParamsFromCCtxParams
    - assert
    - ZSTDMT_createCCtx_advanced
    - RETURN_ERROR_IF
    - ZSTD_checkCParams
    - DEBUGLOG
    - ZSTD_trace_compress_begin
    - ZSTD_initLocalDict
    - ZSTD_resolveExternalSequenceValidation
    - FORWARD_IF_ERROR
    - ZSTD_compressBegin_internal
    - ZSTDMT_initCStream_internal
    - ZSTD_resolveRowMatchFinderMode
    - ZSTD_memset
    - ZSTD_resolveEnableLdm
    - ZSTD_resolveBlockSplitterMode
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_CCtx_init_compressStream2(ZSTD_CCtx* cctx,\n                                             ZSTD_EndDirective
      endOp,\n                                             size_t inSize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28833,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28835,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28836,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28837,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28838,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28849,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28850,1
    - Dst: ZSTD_FRAMEHEADERSIZE_MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28859,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28861,1
    - Dst: ZSTD_CCtx_init_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28861,1
    - Dst: ZSTD_setBufferExpectations
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28862,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28866,1
    - Dst: ZSTD_checkBufferStability
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28866,1
    - Dst: ZSTDMT_updateCParams_whileCompressing
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28872,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28876,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28878,1
    - Dst: ZSTDMT_compressStream_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28885,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28888,1
    - Dst: ZSTD_CCtx_trace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28891,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28892,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28894,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28904,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28912,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28916,1
    - Dst: ZSTD_setBufferExpectations
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28917,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28921,1
    - Dst: ZSTD_compressStream_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28921,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28922,1
    - Dst: ZSTD_setBufferExpectations
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28923,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 60
    argCount: 4
    argNames:
    - cctx
    - output
    - input
    - endOp
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    - ZSTD_EndDirective
    assertStmts:
    - condition: (cctx != NULL)
      pos:
        line_end: 28837
        line_start: 28837
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cctx->appliedParams.inBufferMode == ZSTD_bm_stable)
      pos:
        line_end: 28875
        line_start: 28875
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->pos >= cctx->stableIn_notConsumed)
      pos:
        line_end: 28877
        line_start: 28877
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (endOp == ZSTD_e_flush || endOp == ZSTD_e_end)
      pos:
        line_end: 28903
        line_start: 28903
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (endOp == ZSTD_e_continue || flushMin == 0 || output->pos == output->size)
      pos:
        line_end: 28915
        line_start: 28915
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28925
      start: 28828
    functionDepth: 22
    functionLinenumber: 28828
    functionLinenumberEnd: 28925
    functionName: ZSTD_compressStream2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 15
    functionsReached:
    - ZSTDMT_compressStream_generic
    - ZSTD_isError
    - ZSTD_CCtx_reset
    - ZSTD_compressStream_generic
    - ZSTDMT_updateCParams_whileCompressing
    - DEBUGLOG
    - ZSTD_checkBufferStability
    - ZSTD_CCtx_trace
    - ZSTD_CCtx_init_compressStream2
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_setBufferExpectations
    - ZSTD_FRAMEHEADERSIZE_MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,\n                             ZSTD_outBuffer*
      output,\n                             ZSTD_inBuffer* input,\n                             ZSTD_EndDirective
      endOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - cctx
    - dst
    - dstCapacity
    - dstPos
    - src
    - srcSize
    - srcPos
    - endOp
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - size_t*
    - void*
    - size_t
    - size_t*
    - ZSTD_EndDirective
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28947
      start: 28927
    functionDepth: 23
    functionLinenumber: 28927
    functionLinenumberEnd: 28947
    functionName: ZSTD_compressStream2_simpleArgs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressStream2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressStream2_simpleArgs (\n                            ZSTD_CCtx*
      cctx,\n                            void* dst, size_t dstCapacity, size_t* dstPos,\n
      \                     const void* src, size_t srcSize, size_t* srcPos,\n                            ZSTD_EndDirective
      endOp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28955,1
    - Dst: ZSTD_CCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28956,1
    - Dst: ZSTD_compressStream2_simpleArgs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28962,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28970,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28972,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28973,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - cctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (oPos == dstCapacity)
      pos:
        line_end: 28971
        line_start: 28971
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (iPos == srcSize)
      pos:
        line_end: 28974
        line_start: 28974
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 28978
      start: 28949
    functionDepth: 24
    functionLinenumber: 28949
    functionLinenumberEnd: 28978
    functionName: ZSTD_compress2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_CCtx_reset
    - DEBUGLOG
    - RETURN_ERROR
    - ZSTD_compressStream2_simpleArgs
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compress2(ZSTD_CCtx* cctx,\n                      void*
      dst, size_t dstCapacity,\n                      const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28996,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28996,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:28998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - offCode
    - matchLength
    - minMatch
    - posInSrc
    - windowLog
    - dictSize
    - useSequenceProducer
    argTypes:
    - U32
    - U32
    - U32
    - size_t
    - U32
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29000
      start: 28984
    functionDepth: 1
    functionLinenumber: 28984
    functionLinenumberEnd: 29000
    functionName: ZSTD_validateSequence
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - OFFSET_TO_OFFBASE
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_validateSequence(U32 offCode, U32 matchLength, U32 minMatch,\n
      \                     size_t posInSrc, U32 windowLog, size_t dictSize, int useSequenceProducer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29005,1
    - Dst: REPCODE_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29010,1
    - Dst: REPCODE_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29012,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - rawOffset
    - rep
    - ll0
    argTypes:
    - U32
    - U32[]
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29017
      start: 29003
    functionDepth: 1
    functionLinenumber: 29003
    functionLinenumberEnd: 29017
    functionName: ZSTD_finalizeOffBase
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - REPCODE_TO_OFFBASE
    - OFFSET_TO_OFFBASE
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_finalizeOffBase(U32 rawOffset, const U32 rep[ZSTD_REP_NUM],
      U32 ll0)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29033,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29042,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29049,1
    - Dst: ZSTD_finalizeOffBase
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29052,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29053,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29056,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29059,1
    - Dst: ZSTD_validateSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29059,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29060,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29063,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29065,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29070,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29071,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29085,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29092,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29095,1
    - Dst: ZSTD_storeLastLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29096,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 7
    argNames:
    - cctx
    - seqPos
    - inSeqs
    - inSeqsSize
    - src
    - blockSize
    - externalRepSearch
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_sequencePosition*
    - ZSTD_Sequence*
    - size_t
    - void*
    - size_t
    - ZSTD_paramSwitch_e
    assertStmts:
    - condition: (idx >= startIdx)
      pos:
        line_end: 29070
        line_start: 29070
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (lastSeqIdx == startIdx)
      pos:
        line_end: 29084
        line_start: 29084
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (externalRepSearch != ZSTD_ps_auto)
      pos:
        line_end: 29069
        line_start: 29069
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29103
      start: 29019
    functionDepth: 5
    functionLinenumber: 29019
    functionLinenumberEnd: 29103
    functionName: ZSTD_copySequencesToSeqStoreExplicitBlockDelim
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_validateSequence
    - ZSTD_memcpy
    - assert
    - ZSTD_storeSeq
    - DEBUGLOG
    - ZSTD_finalizeOffBase
    - OFFSET_TO_OFFBASE
    - ZSTD_hasExtSeqProd
    - ZSTD_updateRep
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_storeLastLiterals
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx,\n
      \                                             ZSTD_sequencePosition* seqPos,\n
      \                                       const ZSTD_Sequence* const inSeqs, size_t
      inSeqsSize,\n                                        const void* src, size_t
      blockSize,\n                                        ZSTD_paramSwitch_e externalRepSearch)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29130,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29131,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29132,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29155,1
    - Dst: ZSTD_finalizeOffBase
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29191,1
    - Dst: ZSTD_updateRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29192,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29197,1
    - Dst: ZSTD_validateSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29197,1
    - Dst: ZSTD_hasExtSeqProd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29198,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29201,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29202,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29204,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29209,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29210,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29213,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29219,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29220,1
    - Dst: ZSTD_storeLastLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29221,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 7
    argNames:
    - cctx
    - seqPos
    - inSeqs
    - inSeqsSize
    - src
    - blockSize
    - externalRepSearch
    argTypes:
    - ZSTD_CCtx*
    - ZSTD_sequencePosition*
    - ZSTD_Sequence*
    - size_t
    - void*
    - size_t
    - ZSTD_paramSwitch_e
    assertStmts:
    - condition: (ip <= iend)
      pos:
        line_end: 29218
        line_start: 29218
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (idx == inSeqsSize || endPosInSequence <= inSeqs[idx].litLength +
        inSeqs[idx].matchLength)
      pos:
        line_end: 29209
        line_start: 29209
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29226
      start: 29105
    functionDepth: 5
    functionLinenumber: 29105
    functionLinenumberEnd: 29226
    functionName: ZSTD_copySequencesToSeqStoreNoBlockDelim
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_validateSequence
    - ZSTD_memcpy
    - assert
    - ZSTD_storeSeq
    - DEBUGLOG
    - ZSTD_finalizeOffBase
    - ZSTD_hasExtSeqProd
    - ZSTD_updateRep
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_storeLastLiterals
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition*
      seqPos,\n                                   const ZSTD_Sequence* const inSeqs,
      size_t inSeqsSize,\n                                   const void* src, size_t
      blockSize, ZSTD_paramSwitch_e externalRepSearch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29234,1
    - Dst: ZSTD_cParam_withinBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29234,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ZSTD_sequenceFormat_e
    assertStmts:
    - condition: (ZSTD_cParam_withinBounds(ZSTD_c_blockDelimiters, mode))
      pos:
        line_end: 29233
        line_start: 29233
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequenceCopier != NULL)
      pos:
        line_end: 29239
        line_start: 29239
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29242
      start: 29231
    functionDepth: 4
    functionLinenumber: 29231
    functionLinenumberEnd: 29242
    functionName: ZSTD_selectSequenceCopier
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_cParam_withinBounds
    linkageType: ''
    returnType: ZSTD_sequenceCopier
    signature: ZSTD_sequenceCopier ZSTD_selectSequenceCopier(ZSTD_sequenceFormat_e
      mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29254,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29255,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29261,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - inSeqs
    - inSeqsSize
    - seqPos
    argTypes:
    - ZSTD_Sequence*
    - size_t
    - ZSTD_sequencePosition
    assertStmts:
    - condition: (spos <= inSeqsSize)
      pos:
        line_end: 29254
        line_start: 29254
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29269
      start: 29248
    functionDepth: 1
    functionLinenumber: 29248
    functionLinenumberEnd: 29269
    functionName: blockSize_explicitDelimiter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t blockSize_explicitDelimiter(const ZSTD_Sequence* inSeqs, size_t
      inSeqsSize, ZSTD_sequencePosition seqPos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - blockSize
    - remaining
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29276
      start: 29272
    functionDepth: 0
    functionLinenumber: 29272
    functionLinenumberEnd: 29276
    functionName: blockSize_noDelimiter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t blockSize_noDelimiter(size_t blockSize, size_t remaining)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29282,1
    - Dst: blockSize_noDelimiter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29284,1
    - Dst: blockSize_explicitDelimiter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29285,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29286,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29288,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - mode
    - blockSize
    - remaining
    - inSeqs
    - inSeqsSize
    - seqPos
    argTypes:
    - ZSTD_sequenceFormat_e
    - size_t
    - size_t
    - ZSTD_Sequence*
    - size_t
    - ZSTD_sequencePosition
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29293
      start: 29278
    functionDepth: 2
    functionLinenumber: 29278
    functionLinenumberEnd: 29293
    functionName: determine_blockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - blockSize_explicitDelimiter
    - DEBUGLOG
    - RETURN_ERROR
    - blockSize_noDelimiter
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t determine_blockSize(ZSTD_sequenceFormat_e mode,\n                           size_t
      blockSize, size_t remaining,\n                     const ZSTD_Sequence* inSeqs,
      size_t inSeqsSize, ZSTD_sequencePosition seqPos)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_selectSequenceCopier
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29312,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29314,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29318,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29319,1
    - Dst: determine_blockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29329,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29333,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29334,1
    - Dst: ZSTD_resetSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29335,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29336,1
    - Dst: sequenceCopier
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29338,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29339,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29346,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29347,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29348,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29357,1
    - Dst: ZSTD_entropyCompressSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29358,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29365,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29366,1
    - Dst: ZSTD_maybeRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29369,1
    - Dst: ZSTD_isRLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29370,1
    - Dst: ZSTD_noCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29380,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29381,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29382,1
    - Dst: ZSTD_rleCompressBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29384,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29385,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29386,1
    - Dst: ZSTD_blockState_confirmRepcodesAndEntropyTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29390,1
    - Dst: MEM_writeLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29396,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29398,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29412,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29415,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 7
    argNames:
    - cctx
    - dst
    - dstCapacity
    - inSeqs
    - inSeqsSize
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_Sequence*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (blockSize <= remaining)
      pos:
        line_end: 29333
        line_start: 29333
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29417
      start: 29300
    functionDepth: 12
    functionLinenumber: 29300
    functionLinenumberEnd: 29417
    functionName: ZSTD_compressSequences_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - assert
    - ZSTD_isRLE
    - ZSTD_noCompressBlock
    - ZSTD_rleCompressBlock
    - MEM_writeLE24
    - DEBUGLOG
    - ZSTD_blockState_confirmRepcodesAndEntropyTables
    - ZSTD_entropyCompressSeqStore
    - ZSTD_maybeRLE
    - ZSTD_selectSequenceCopier
    - determine_blockSize
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_resetSeqStore
    - sequenceCopier
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSequences_internal(ZSTD_CCtx* cctx,\n                                void*
      dst, size_t dstCapacity,\n                          const ZSTD_Sequence* inSeqs,
      size_t inSeqsSize,\n                          const void* src, size_t srcSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29430,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29431,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29432,1
    - Dst: ZSTD_CCtx_init_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29432,1
    - Dst: ZSTD_writeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29434,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29439,1
    - Dst: ZSTD_compressSequences_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29442,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29446,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29451,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29452,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29453,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29454,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 7
    argNames:
    - cctx
    - dst
    - dstCapacity
    - inSeqs
    - inSeqsSize
    - src
    - srcSize
    argTypes:
    - ZSTD_CCtx*
    - void*
    - size_t
    - ZSTD_Sequence*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (cctx != NULL)
      pos:
        line_end: 29430
        line_start: 29430
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29460
      start: 29419
    functionDepth: 13
    functionLinenumber: 29419
    functionLinenumberEnd: 29460
    functionName: ZSTD_compressSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_update
    - MEM_writeLE32
    - XXH64_digest
    - ZSTD_writeFrameHeader
    - DEBUGLOG
    - ZSTD_compressSequences_internal
    - ZSTD_CCtx_init_compressStream2
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressSequences(ZSTD_CCtx* cctx,\n                              void*
      dst, size_t dstCapacity,\n                              const ZSTD_Sequence*
      inSeqs, size_t inSeqsSize,\n                              const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zcs
    argTypes:
    - ZSTD_CStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29469
      start: 29464
    functionDepth: 0
    functionLinenumber: 29464
    functionLinenumberEnd: 29469
    functionName: inBuffer_forEndFlush
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_inBuffer
    signature: ZSTD_inBuffer inBuffer_forEndFlush(const ZSTD_CStream* zcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inBuffer_forEndFlush
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29475,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zcs
    - output
    argTypes:
    - ZSTD_CStream*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29478
      start: 29473
    functionDepth: 23
    functionLinenumber: 29473
    functionLinenumberEnd: 29478
    functionName: ZSTD_flushStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - inBuffer_forEndFlush
    - ZSTD_compressStream2
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inBuffer_forEndFlush
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29483,1
    - Dst: ZSTD_compressStream2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29484,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29485,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - zcs
    - output
    argTypes:
    - ZSTD_CStream*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29494
      start: 29481
    functionDepth: 23
    functionLinenumber: 29481
    functionLinenumberEnd: 29494
    functionName: ZSTD_endStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - inBuffer_forEndFlush
    - FORWARD_IF_ERROR
    - ZSTD_compressStream2
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29635
      start: 29635
    functionDepth: 0
    functionLinenumber: 29635
    functionLinenumberEnd: 29635
    functionName: ZSTD_maxCLevel
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_maxCLevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29636
      start: 29636
    functionDepth: 0
    functionLinenumber: 29636
    functionLinenumberEnd: 29636
    functionName: ZSTD_minCLevel
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_minCLevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29637
      start: 29637
    functionDepth: 0
    functionLinenumber: 29637
    functionLinenumberEnd: 29637
    functionName: ZSTD_defaultCLevel
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_defaultCLevel(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - compressionLevel
    - dictSize
    argTypes:
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29658
      start: 29639
    functionDepth: 1
    functionLinenumber: 29639
    functionLinenumberEnd: 29658
    functionName: ZSTD_dedicatedDictSearch_getCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_getCParams_internal
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int
      const compressionLevel, size_t const dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29667
      start: 29660
    functionDepth: 0
    functionLinenumber: 29660
    functionLinenumberEnd: 29667
    functionName: ZSTD_dedicatedDictSearch_isSupported
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ZSTD_dedicatedDictSearch_isSupported(\n        ZSTD_compressionParameters
      const* cParams)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - cParams
    argTypes:
    - ZSTD_compressionParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29694
      start: 29674
    functionDepth: 0
    functionLinenumber: 29674
    functionLinenumberEnd: 29694
    functionName: ZSTD_dedicatedDictSearch_revertCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZSTD_dedicatedDictSearch_revertCParams(\n        ZSTD_compressionParameters*
      cParams)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - srcSizeHint
    - dictSize
    - mode
    argTypes:
    - U64
    - size_t
    - ZSTD_cParamMode_e
    assertStmts:
    - condition: (0)
      pos:
        line_end: 29706
        line_start: 29706
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29714
      start: 29696
    functionDepth: 1
    functionLinenumber: 29696
    functionLinenumberEnd: 29714
    functionName: ZSTD_getCParamRowSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: U64
    signature: U64 ZSTD_getCParamRowSize(U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e
      mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParamRowSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29723,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29726,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29735,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29738,1
    - Dst: ZSTD_minCLevel
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29738,1
    - Dst: ZSTD_adjustCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - compressionLevel
    - srcSizeHint
    - dictSize
    - mode
    argTypes:
    - int
    - unsigned long long
    - size_t
    - ZSTD_cParamMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29744
      start: 29721
    functionDepth: 6
    functionLinenumber: 29721
    functionLinenumberEnd: 29744
    functionName: ZSTD_getCParams_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 7
    functionsReached:
    - ZSTD_adjustCParams_internal
    - MAX
    - DEBUGLOG
    - ZSTD_getCParamRowSize
    - ZSTD_minCLevel
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel,
      unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - compressionLevel
    - srcSizeHint
    - dictSize
    argTypes:
    - int
    - unsigned long long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29753
      start: 29749
    functionDepth: 7
    functionLinenumber: 29749
    functionLinenumberEnd: 29753
    functionName: ZSTD_getCParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZSTD_getCParams_internal
    linkageType: ''
    returnType: ZSTD_compressionParameters
    signature: ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned
      long long srcSizeHint, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getCParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29761,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29762,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - compressionLevel
    - srcSizeHint
    - dictSize
    - mode
    argTypes:
    - int
    - unsigned long long
    - size_t
    - ZSTD_cParamMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29767
      start: 29759
    functionDepth: 7
    functionLinenumber: 29759
    functionLinenumberEnd: 29767
    functionName: ZSTD_getParams_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_memset
    - ZSTD_getCParams_internal
    - DEBUGLOG
    linkageType: ''
    returnType: ZSTD_parameters
    signature: ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned
      long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getParams_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - compressionLevel
    - srcSizeHint
    - dictSize
    argTypes:
    - int
    - unsigned long long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29776
      start: 29773
    functionDepth: 8
    functionLinenumber: 29773
    functionLinenumberEnd: 29776
    functionName: ZSTD_getParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getParams_internal
    linkageType: ''
    returnType: ZSTD_parameters
    signature: ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long
      long srcSizeHint, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29783,1
    - Dst: ZSTD_CCtxParams_registerSequenceProducer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zc
    - extSeqProdState
    - extSeqProdFunc
    argTypes:
    - ZSTD_CCtx*
    - void*
    - ZSTD_sequenceProducer_F
    assertStmts:
    - condition: (zc != NULL)
      pos:
        line_end: 29782
        line_start: 29782
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29787
      start: 29778
    functionDepth: 1
    functionLinenumber: 29778
    functionLinenumberEnd: 29787
    functionName: ZSTD_registerSequenceProducer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_CCtxParams_registerSequenceProducer
    linkageType: ''
    returnType: void
    signature: "void ZSTD_registerSequenceProducer(\n    ZSTD_CCtx* zc,\n    void*
      extSeqProdState,\n    ZSTD_sequenceProducer_F extSeqProdFunc\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - params
    - extSeqProdState
    - extSeqProdFunc
    argTypes:
    - ZSTD_CCtx_params*
    - void*
    - ZSTD_sequenceProducer_F
    assertStmts:
    - condition: (params != NULL)
      pos:
        line_end: 29793
        line_start: 29793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 29802
      start: 29789
    functionDepth: 1
    functionLinenumber: 29789
    functionLinenumberEnd: 29802
    functionName: ZSTD_CCtxParams_registerSequenceProducer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void ZSTD_CCtxParams_registerSequenceProducer(\n  ZSTD_CCtx_params*
      params,\n  void* extSeqProdState,\n  ZSTD_sequenceProducer_F extSeqProdFunc\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29844,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29845,1
    - Dst: ZSTD_writeTaggedIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29847,1
    - Dst: ZSTD_writeTaggedIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - ms
    - end
    - dtlm
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29856
      start: 29820
    functionDepth: 5
    functionLinenumber: 29820
    functionLinenumberEnd: 29856
    functionName: ZSTD_fillDoubleHashTableForCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_writeTaggedIndex
    - ZSTD_hashPtr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_fillDoubleHashTableForCDict(ZSTD_matchState_t*
      ms,\n                              void const* end, ZSTD_dictTableLoadMethod_e
      dtlm)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29882,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29883,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - ms
    - end
    - dtlm
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29892
      start: 29858
    functionDepth: 5
    functionLinenumber: 29858
    functionLinenumberEnd: 29892
    functionName: ZSTD_fillDoubleHashTableForCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hashPtr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_fillDoubleHashTableForCCtx(ZSTD_matchState_t*
      ms,\n                              void const* end, ZSTD_dictTableLoadMethod_e
      dtlm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_fillDoubleHashTableForCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29900,1
    - Dst: ZSTD_fillDoubleHashTableForCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ms
    - end
    - dtlm
    - tfp
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_tableFillPurpose_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29904
      start: 29894
    functionDepth: 6
    functionLinenumber: 29894
    functionLinenumberEnd: 29904
    functionName: ZSTD_fillDoubleHashTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_fillDoubleHashTableForCDict
    - ZSTD_fillDoubleHashTableForCCtx
    linkageType: ''
    returnType: void
    signature: "void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms,\n                        const
      void* const end,\n                        ZSTD_dictTableLoadMethod_e dtlm,\n
      \                       ZSTD_tableFillPurpose_e tfp)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29923,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29953,1
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29959,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29975,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29981,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29989,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29989,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29990,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29992,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:29996,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30000,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30000,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30001,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30013,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30013,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30019,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30020,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30031,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30051,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30051,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30053,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30061,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30082,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30082,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30093,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30094,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30095,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30096,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30102,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30102,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30104,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30106,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30107,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30108,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 124
    argCount: 6
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30115
      start: 29907
    functionDepth: 6
    functionLinenumber: 29907
    functionLinenumberEnd: 30115
    functionName: ZSTD_compressBlock_doubleFast_noDict_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - ZSTD_count
    - ZSTD_storeSeq
    - DEBUGLOG
    - MEM_read32
    - MEM_read64
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - ZSTD_getLowestPrefixIndex
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_doubleFast_noDict_generic(\n
      \       ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n
      \       void const* src, size_t srcSize, U32 const mls /* template */)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30136,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30155,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30158,1
    - Dst: PREFETCH_AREA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30163,1
    - Dst: PREFETCH_AREA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30164,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30172,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30173,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30179,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30180,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30181,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30182,1
    - Dst: ZSTD_comparePackedTags
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30185,1
    - Dst: ZSTD_comparePackedTags
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30186,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30200,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30200,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30202,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30204,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30210,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30210,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30211,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30220,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30222,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30222,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30223,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30231,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30231,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30240,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30240,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30246,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30251,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30252,1
    - Dst: ZSTD_comparePackedTags
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30255,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30261,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30261,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30262,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30272,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30273,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30273,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30274,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30283,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30287,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30296,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30296,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30307,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30308,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30309,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30310,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30321,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30321,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30323,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30325,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30326,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30327,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 146
    argCount: 6
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    assertStmts:
    - condition: (dictMatchL3 < dictEnd)
      pos:
        line_end: 30271
        line_start: 30271
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset_1 <= dictAndPrefixLength)
      pos:
        line_end: 30171
        line_start: 30171
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset_2 <= dictAndPrefixLength)
      pos:
        line_end: 30172
        line_start: 30172
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->window.dictLimit + (1U << cParams->windowLog) >= endIndex)
      pos:
        line_end: 30157
        line_start: 30157
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dictMatchL < dictEnd)
      pos:
        line_end: 30219
        line_start: 30219
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 30343
      start: 30118
    functionDepth: 7
    functionLinenumber: 30118
    functionLinenumberEnd: 30343
    functionName: ZSTD_compressBlock_doubleFast_dictMatchState_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_AREA
    - PREFETCH_L1
    - ZSTD_count_2segments
    - ZSTD_count
    - ZSTD_storeSeq
    - ZSTD_comparePackedTags
    - DEBUGLOG
    - MEM_read32
    - MEM_read64
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_getLowestPrefixIndex
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_doubleFast_dictMatchState_generic(\n
      \       ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n
      \       void const* src, size_t srcSize,\n        U32 const mls /* template
      */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30352
      start: 30345
    functionDepth: 0
    functionLinenumber: 30345
    functionLinenumberEnd: 30352
    functionName: ZSTD_GEN_DFAST_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_GEN_DFAST_FN(dictMode, mls)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_doubleFast_noDict_4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30373,1
    - Dst: ZSTD_compressBlock_doubleFast_noDict_5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30375,1
    - Dst: ZSTD_compressBlock_doubleFast_noDict_6
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30377,1
    - Dst: ZSTD_compressBlock_doubleFast_noDict_7
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30381
      start: 30364
    functionDepth: 0
    functionLinenumber: 30364
    functionLinenumberEnd: 30381
    functionName: ZSTD_compressBlock_doubleFast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_doubleFast_noDict_6
    - ZSTD_compressBlock_doubleFast_noDict_7
    - ZSTD_compressBlock_doubleFast_noDict_4
    - ZSTD_compressBlock_doubleFast_noDict_5
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_doubleFast(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_doubleFast_dictMatchState_4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30393,1
    - Dst: ZSTD_compressBlock_doubleFast_dictMatchState_5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30395,1
    - Dst: ZSTD_compressBlock_doubleFast_dictMatchState_6
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30397,1
    - Dst: ZSTD_compressBlock_doubleFast_dictMatchState_7
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30401
      start: 30384
    functionDepth: 0
    functionLinenumber: 30384
    functionLinenumberEnd: 30401
    functionName: ZSTD_compressBlock_doubleFast_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_doubleFast_dictMatchState_7
    - ZSTD_compressBlock_doubleFast_dictMatchState_4
    - ZSTD_compressBlock_doubleFast_dictMatchState_5
    - ZSTD_compressBlock_doubleFast_dictMatchState_6
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_doubleFast_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30423,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30433,1
    - Dst: ZSTD_compressBlock_doubleFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30437,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30441,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30446,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30460,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30460,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30462,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30464,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30466,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30466,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30470,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30475,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30475,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30477,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30477,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30478,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30484,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30484,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30487,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30494,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30500,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30500,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30515,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30516,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30517,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30518,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30528,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30528,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30530,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30532,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30533,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30534,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 6
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30548
      start: 30404
    functionDepth: 7
    functionLinenumber: 30404
    functionLinenumberEnd: 30548
    functionName: ZSTD_compressBlock_doubleFast_extDict_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_storeSeq
    - ZSTD_getLowestMatchIndex
    - ZSTD_compressBlock_doubleFast
    - DEBUGLOG
    - MEM_read32
    - MEM_read64
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - ZSTD_count_2segments
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_compressBlock_doubleFast_extDict_generic(\n
      \       ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n
      \       void const* src, size_t srcSize,\n        U32 const mls /* template
      */)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_doubleFast_extDict_4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30564,1
    - Dst: ZSTD_compressBlock_doubleFast_extDict_5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30566,1
    - Dst: ZSTD_compressBlock_doubleFast_extDict_6
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30568,1
    - Dst: ZSTD_compressBlock_doubleFast_extDict_7
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30572
      start: 30555
    functionDepth: 0
    functionLinenumber: 30555
    functionLinenumberEnd: 30572
    functionName: ZSTD_compressBlock_doubleFast_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_doubleFast_extDict_4
    - ZSTD_compressBlock_doubleFast_extDict_6
    - ZSTD_compressBlock_doubleFast_extDict_7
    - ZSTD_compressBlock_doubleFast_extDict_5
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_doubleFast_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30607,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30614,1
    - Dst: ZSTD_writeTaggedIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30615,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30621,1
    - Dst: ZSTD_writeTaggedIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ms
    - end
    - dtlm
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    assertStmts:
    - condition: (dtlm == ZSTD_dtlm_full)
      pos:
        line_end: 30606
        line_start: 30606
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 30625
      start: 30590
    functionDepth: 5
    functionLinenumber: 30590
    functionLinenumberEnd: 30625
    functionName: ZSTD_fillHashTableForCDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_writeTaggedIndex
    - ZSTD_hashPtr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_fillHashTableForCDict(ZSTD_matchState_t*
      ms,\n                        const void* const end,\n                        ZSTD_dictTableLoadMethod_e
      dtlm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30644,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30651,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - ms
    - end
    - dtlm
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    assertStmts:
    - condition: (dtlm == ZSTD_dtlm_fast)
      pos:
        line_end: 30643
        line_start: 30643
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 30661
      start: 30627
    functionDepth: 5
    functionLinenumber: 30627
    functionLinenumberEnd: 30661
    functionName: ZSTD_fillHashTableForCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_hashPtr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_fillHashTableForCCtx(ZSTD_matchState_t*
      ms,\n                        const void* const end,\n                        ZSTD_dictTableLoadMethod_e
      dtlm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_fillHashTableForCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30669,1
    - Dst: ZSTD_fillHashTableForCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ms
    - end
    - dtlm
    - tfp
    argTypes:
    - ZSTD_matchState_t*
    - void*
    - ZSTD_dictTableLoadMethod_e
    - ZSTD_tableFillPurpose_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30673
      start: 30663
    functionDepth: 6
    functionLinenumber: 30663
    functionLinenumberEnd: 30673
    functionName: ZSTD_fillHashTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_fillHashTableForCCtx
    - ZSTD_fillHashTableForCDict
    linkageType: ''
    returnType: void
    signature: "void ZSTD_fillHashTable(ZSTD_matchState_t* ms,\n                        const
      void* const end,\n                        ZSTD_dictTableLoadMethod_e dtlm,\n
      \                       ZSTD_tableFillPurpose_e tfp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30737,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30770,1
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30773,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30794,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30795,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30801,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30808,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30827,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30829,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30833,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30849,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30862,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30864,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30868,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30893,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30904,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30905,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30943,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30956,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30958,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30966,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30967,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30968,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30971,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30971,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30973,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30975,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:30977,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 124
    argCount: 7
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    - hasStep
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    - U32
    assertStmts:
    - condition: (base+current0+2 > istart)
      pos:
        line_end: 30965
        line_start: 30965
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 30983
      start: 30722
    functionDepth: 6
    functionLinenumber: 30722
    functionLinenumberEnd: 30983
    functionName: ZSTD_compressBlock_fast_noDict_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - ZSTD_count
    - ZSTD_storeSeq
    - DEBUGLOG
    - MEM_read32
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_getLowestPrefixIndex
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_fast_noDict_generic(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize,\n        U32 const mls, U32 const hasStep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - ','
    - step
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30992
      start: 30985
    functionDepth: 0
    functionLinenumber: 30985
    functionLinenumberEnd: 30992
    functionName: ZSTD_GEN_FAST_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_GEN_FAST_FN(dictMode, mls, step)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31008,1
    - Dst: ZSTD_compressBlock_fast_noDict_4_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31014,1
    - Dst: ZSTD_compressBlock_fast_noDict_5_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31016,1
    - Dst: ZSTD_compressBlock_fast_noDict_6_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31018,1
    - Dst: ZSTD_compressBlock_fast_noDict_7_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31020,1
    - Dst: ZSTD_compressBlock_fast_noDict_4_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31027,1
    - Dst: ZSTD_compressBlock_fast_noDict_5_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31029,1
    - Dst: ZSTD_compressBlock_fast_noDict_6_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31031,1
    - Dst: ZSTD_compressBlock_fast_noDict_7_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts:
    - condition: (ms->dictMatchState == NULL)
      pos:
        line_end: 31007
        line_start: 31007
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31037
      start: 31003
    functionDepth: 1
    functionLinenumber: 31003
    functionLinenumberEnd: 31037
    functionName: ZSTD_compressBlock_fast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_fast_noDict_5_1
    - ZSTD_compressBlock_fast_noDict_5_0
    - ZSTD_compressBlock_fast_noDict_7_0
    - ZSTD_compressBlock_fast_noDict_4_0
    - ZSTD_compressBlock_fast_noDict_6_0
    - ZSTD_compressBlock_fast_noDict_4_1
    - ZSTD_compressBlock_fast_noDict_7_1
    - assert
    - ZSTD_compressBlock_fast_noDict_6_1
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_fast(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t srcSize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31076,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31083,1
    - Dst: PREFETCH_AREA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31087,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31091,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31095,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31096,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31099,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31102,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31104,1
    - Dst: ZSTD_comparePackedTags
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31106,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31121,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31122,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31127,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31127,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31129,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31131,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31140,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31140,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31144,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31153,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31153,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31159,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31159,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31162,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31171,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31171,1
    - Dst: ZSTD_comparePackedTags
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31177,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31193,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31199,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31200,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31201,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31211,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31211,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31213,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31215,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31216,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31226,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 94
    argCount: 7
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    - hasStep
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    - U32
    assertStmts:
    - condition: (endIndex - prefixStartIndex <= maxDistance)
      pos:
        line_end: 31075
        line_start: 31075
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset_1 <= dictAndPrefixLength)
      pos:
        line_end: 31094
        line_start: 31094
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset_2 <= dictAndPrefixLength)
      pos:
        line_end: 31095
        line_start: 31095
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (stepSize >= 1)
      pos:
        line_end: 31098
        line_start: 31098
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mLength)
      pos:
        line_end: 31192
        line_start: 31192
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip0 == anchor)
      pos:
        line_end: 31225
        line_start: 31225
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (prefixStartIndex >= (U32)(dictEnd - dictBase))
      pos:
        line_end: 31082
        line_start: 31082
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (base+curr+2 > istart)
      pos:
        line_end: 31198
        line_start: 31198
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31237
      start: 31039
    functionDepth: 7
    functionLinenumber: 31039
    functionLinenumberEnd: 31237
    functionName: ZSTD_compressBlock_fast_dictMatchState_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_AREA
    - ZSTD_count
    - ZSTD_storeSeq
    - ZSTD_comparePackedTags
    - DEBUGLOG
    - MEM_read32
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_count_2segments
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_fast_dictMatchState_generic(\n
      \       ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n
      \       void const* src, size_t srcSize, U32 const mls, U32 const hasStep)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31250,1
    - Dst: ZSTD_compressBlock_fast_dictMatchState_4_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31255,1
    - Dst: ZSTD_compressBlock_fast_dictMatchState_5_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31257,1
    - Dst: ZSTD_compressBlock_fast_dictMatchState_6_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31259,1
    - Dst: ZSTD_compressBlock_fast_dictMatchState_7_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts:
    - condition: (ms->dictMatchState != NULL)
      pos:
        line_end: 31249
        line_start: 31249
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31263
      start: 31245
    functionDepth: 1
    functionLinenumber: 31245
    functionLinenumberEnd: 31263
    functionName: ZSTD_compressBlock_fast_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_fast_dictMatchState_5_0
    - ZSTD_compressBlock_fast_dictMatchState_4_0
    - ZSTD_compressBlock_fast_dictMatchState_7_0
    - ZSTD_compressBlock_fast_dictMatchState_6_0
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_fast_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31282,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31317,1
    - Dst: ZSTD_compressBlock_fast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31321,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31344,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31345,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31358,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31360,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31368,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31372,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31383,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31384,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31387,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31398,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31411,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31412,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31415,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31426,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31437,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31438,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31468,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31481,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31482,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31484,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31497,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31498,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31499,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31505,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31505,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31507,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31509,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31510,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 131
    argCount: 7
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - mls
    - hasStep
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - U32
    - U32
    assertStmts:
    - condition: (matchEnd != 0)
      pos:
        line_end: 31480
        line_start: 31480
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (base+current0+2 > istart)
      pos:
        line_end: 31496
        line_start: 31496
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((match0 != prefixStart) & (match0 != dictStart))
      pos:
        line_end: 31371
        line_start: 31371
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31519
      start: 31266
    functionDepth: 7
    functionLinenumber: 31266
    functionLinenumberEnd: 31519
    functionName: ZSTD_compressBlock_fast_extDict_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - assert
    - ZSTD_storeSeq
    - ZSTD_getLowestMatchIndex
    - DEBUGLOG
    - MEM_read32
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - ZSTD_compressBlock_fast
    - ZSTD_count_2segments
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_compressBlock_fast_extDict_generic(\n
      \       ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n
      \       void const* src, size_t srcSize, U32 const mls, U32 const hasStep)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31531,1
    - Dst: ZSTD_compressBlock_fast_extDict_4_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31536,1
    - Dst: ZSTD_compressBlock_fast_extDict_5_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31538,1
    - Dst: ZSTD_compressBlock_fast_extDict_6_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31540,1
    - Dst: ZSTD_compressBlock_fast_extDict_7_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts:
    - condition: (ms->dictMatchState == NULL)
      pos:
        line_end: 31530
        line_start: 31530
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31544
      start: 31526
    functionDepth: 1
    functionLinenumber: 31526
    functionLinenumberEnd: 31544
    functionName: ZSTD_compressBlock_fast_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_fast_extDict_7_0
    - ZSTD_compressBlock_fast_extDict_4_0
    - ZSTD_compressBlock_fast_extDict_5_0
    - assert
    - ZSTD_compressBlock_fast_extDict_6_0
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_fast_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31592,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31594,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31597,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31599,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - ms
    - ip
    - iend
    - mls
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - U32
    assertStmts:
    - condition: (idx >= ms->window.dictLimit)
      pos:
        line_end: 31596
        line_start: 31596
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip + 8 <= iend)
      pos:
        line_end: 31593
        line_start: 31593
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31611
      start: 31573
    functionDepth: 5
    functionLinenumber: 31573
    functionLinenumberEnd: 31611
    functionName: ZSTD_updateDUBT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - ZSTD_hashPtr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_updateDUBT(ZSTD_matchState_t*
      ms,\n                const BYTE* ip, const BYTE* iend,\n                U32
      mls)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31647,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31649,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31650,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31654,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31655,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31666,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31669,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31672,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31677,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31689,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31698,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 6
    argNames:
    - ms
    - curr
    - inputEnd
    - nbCompares
    - btLow
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - U32
    - BYTE*
    - U32
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (curr >= btLow)
      pos:
        line_end: 31648
        line_start: 31648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip < iend)
      pos:
        line_end: 31649
        line_start: 31649
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex < curr)
      pos:
        line_end: 31654
        line_start: 31654
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: "( (matchIndex+matchLength >= dictLimit)   /* might be wrong if extDict
        is incorrectly set to 0 */\n                 || (curr < dictLimit) )"
      pos:
        line_end: 31666
        line_start: 31665
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31705
      start: 31618
    functionDepth: 7
    functionLinenumber: 31618
    functionLinenumberEnd: 31705
    functionName: ZSTD_insertDUBT1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_count
    - DEBUGLOG
    - assert
    - ZSTD_count_2segments
    - MIN
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_insertDUBT1(const ZSTD_matchState_t*
      ms,\n                 U32 curr, const BYTE* inputEnd,\n                 U32
      nbCompares, U32 btLow,\n                 const ZSTD_dictMode_e dictMode)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31723,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31743,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31747,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31749,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31755,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31755,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31756,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31757,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31758,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31778,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31779,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 8
    argNames:
    - ms
    - ip
    - iend
    - offsetPtr
    - bestLength
    - nbCompares
    - mls
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - size_t
    - U32
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (dictMode == ZSTD_dictMatchState)
      pos:
        line_end: 31742
        line_start: 31742
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31784
      start: 31708
    functionDepth: 7
    functionLinenumber: 31708
    functionLinenumberEnd: 31784
    functionName: ZSTD_DUBT_findBetterDictMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - OFFBASE_TO_OFFSET
    - DEBUGLOG
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_count_2segments
    - MIN
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_DUBT_findBetterDictMatch (\n
      \       const ZSTD_matchState_t* ms,\n        const BYTE* const ip, const BYTE*
      const iend,\n        size_t* offsetPtr,\n        size_t bestLength,\n        U32
      nbCompares,\n        U32 const mls,\n        const ZSTD_dictMode_e dictMode)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31798,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31803,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31809,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31817,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31818,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31819,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31825,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31839,1
    - Dst: ZSTD_insertDUBT1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31849,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31872,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31877,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31880,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31888,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31888,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31889,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31918,1
    - Dst: ZSTD_DUBT_findBetterDictMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31920,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31926,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31929,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31930,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 6
    argNames:
    - ms
    - ip
    - iend
    - offBasePtr
    - mls
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (matchEndIdx > curr+8)
      pos:
        line_end: 31925
        line_start: 31925
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip <= iend-8)
      pos:
        line_end: 31817
        line_start: 31817
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dictMode != ZSTD_dedicatedDictSearch)
      pos:
        line_end: 31818
        line_start: 31818
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbCompares <= (1U << ZSTD_SEARCHLOG_MAX))
      pos:
        line_end: 31917
        line_start: 31917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 31935
      start: 31787
    functionDepth: 8
    functionLinenumber: 31787
    functionLinenumberEnd: 31935
    functionName: ZSTD_DUBT_findBestMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_count
    - ZSTD_count_2segments
    - ZSTD_highbit32
    - MAX
    - ZSTD_DUBT_findBetterDictMatch
    - OFFBASE_TO_OFFSET
    - ZSTD_getLowestMatchIndex
    - DEBUGLOG
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_insertDUBT1
    - MIN
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_DUBT_findBestMatch(ZSTD_matchState_t*
      ms,\n                        const BYTE* const ip, const BYTE* const iend,\n
      \                       size_t* offBasePtr,\n                        U32 const
      mls,\n                        const ZSTD_dictMode_e dictMode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31947,1
    - Dst: ZSTD_updateDUBT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31949,1
    - Dst: ZSTD_DUBT_findBestMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ms
    - ip
    - iLimit
    - offBasePtr
    - mls
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - U32
    - ZSTD_dictMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31951
      start: 31939
    functionDepth: 9
    functionLinenumber: 31939
    functionLinenumberEnd: 31951
    functionName: ZSTD_BtFindBestMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DUBT_findBestMatch
    - DEBUGLOG
    - ZSTD_updateDUBT
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms,\n
      \               const BYTE* const ip, const BYTE* const iLimit,\n                      size_t*
      offBasePtr,\n                const U32 mls /* template */,\n                const
      ZSTD_dictMode_e dictMode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31983,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31984,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31985,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31986,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:31990,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32043,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32059,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - ms
    - ip
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    assertStmts:
    - condition: (ms->cParams.hashLog > ms->cParams.chainLog)
      pos:
        line_end: 31983
        line_start: 31983
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (idx != 0)
      pos:
        line_end: 31984
        line_start: 31984
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->cParams.chainLog <= 24)
      pos:
        line_end: 31982
        line_start: 31982
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tmpMinChain <= minChain)
      pos:
        line_end: 31985
        line_start: 31985
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (chainPos <= chainSize)
      pos:
        line_end: 32042
        line_start: 32042
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32069
      start: 31957
    functionDepth: 5
    functionLinenumber: 31957
    functionLinenumberEnd: 32069
    functionName: ZSTD_dedicatedDictSearch_lazy_loadDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - ZSTD_hashPtr
    linkageType: ''
    returnType: void
    signature: void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t*
      ms, const BYTE* const ip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32091,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32098,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32113,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32114,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32115,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32115,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32117,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32123,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32140,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32150,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32151,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32152,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32152,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32154,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 10
    argNames:
    - offsetPtr
    - ml
    - nbAttempts
    - dms
    - ip
    - iLimit
    - prefixStart
    - curr
    - dictLimit
    - ddsIdx
    argTypes:
    - size_t*
    - size_t
    - U32
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - BYTE*
    - U32
    - U32
    - size_t
    assertStmts:
    - condition: (match+4 <= ddsEnd)
      pos:
        line_end: 32113
        line_start: 32113
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex >= ddsLowestIndex)
      pos:
        line_end: 32112
        line_start: 32112
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match+4 <= ddsEnd)
      pos:
        line_end: 32150
        line_start: 32150
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex >= ddsLowestIndex)
      pos:
        line_end: 32149
        line_start: 32149
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32166
      start: 32074
    functionDepth: 7
    functionLinenumber: 32074
    functionLinenumberEnd: 32166
    functionName: ZSTD_dedicatedDictSearch_lazy_search
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - MEM_read32
    - OFFSET_TO_OFFBASE
    - assert
    - ZSTD_count_2segments
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_dedicatedDictSearch_lazy_search(size_t*
      offsetPtr, size_t ml, U32 nbAttempts,\n                                            const
      ZSTD_matchState_t* const dms,\n                                            const
      BYTE* const ip, const BYTE* const iLimit,\n                                            const
      BYTE* const prefixStart, const U32 curr,\n                                            const
      U32 dictLimit, const size_t ddsIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - d
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32173
      start: 32172
    functionDepth: 0
    functionLinenumber: 32172
    functionLinenumberEnd: 32173
    functionName: NEXT_IN_CHAIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_IN_CHAIN(d, mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32192,1
    - Dst: NEXT_IN_CHAIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32193,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - ms
    - cParams
    - ip
    - mls
    - lazySkipping
    argTypes:
    - ZSTD_matchState_t*
    - ZSTD_compressionParameters*
    - BYTE*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32203
      start: 32176
    functionDepth: 5
    functionLinenumber: 32176
    functionLinenumberEnd: 32203
    functionName: ZSTD_insertAndFindFirstIndex_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - NEXT_IN_CHAIN
    - ZSTD_hashPtr
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_insertAndFindFirstIndex_internal(\n                        ZSTD_matchState_t*
      ms,\n                        const ZSTD_compressionParameters* const cParams,\n
      \                       const BYTE* ip, U32 const mls, U32 const lazySkipping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_insertAndFindFirstIndex_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ms
    - ip
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32208
      start: 32205
    functionDepth: 6
    functionLinenumber: 32205
    functionLinenumberEnd: 32208
    functionName: ZSTD_insertAndFindFirstIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_insertAndFindFirstIndex_internal
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE*
      ip)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32242,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32248,1
    - Dst: ZSTD_insertAndFindFirstIndex_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32252,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32258,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32260,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32260,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32261,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32264,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32265,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32265,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32266,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32272,1
    - Dst: NEXT_IN_CHAIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32277,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32280,1
    - Dst: ZSTD_dedicatedDictSearch_lazy_search
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32282,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32295,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32300,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32301,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32301,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32302,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32307,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32308,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 6
    argNames:
    - ms
    - ip
    - iLimit
    - offsetPtr
    - mls
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (match+4 <= dmsEnd)
      pos:
        line_end: 32299
        line_start: 32299
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX))
      pos:
        line_end: 32279
        line_start: 32279
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex >= dictLimit)
      pos:
        line_end: 32257
        line_start: 32257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match+4 <= dictEnd)
      pos:
        line_end: 32263
        line_start: 32263
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr > matchIndex + dmsIndexDelta)
      pos:
        line_end: 32306
        line_start: 32306
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32319
      start: 32211
    functionDepth: 8
    functionLinenumber: 32211
    functionLinenumberEnd: 32319
    functionName: ZSTD_HcFindBestMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - ZSTD_count
    - ZSTD_insertAndFindFirstIndex_internal
    - MEM_read32
    - ZSTD_dedicatedDictSearch_lazy_search
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - NEXT_IN_CHAIN
    - assert
    - ZSTD_count_2segments
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_HcFindBestMatch(\n                        ZSTD_matchState_t*
      ms,\n                        const BYTE* const ip, const BYTE* const iLimit,\n
      \                       size_t* offsetPtr,\n                        const U32
      mls, const ZSTD_dictMode_e dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_countTrailingZeros64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - ZSTD_VecMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32338
      start: 32336
    functionDepth: 4
    functionLinenumber: 32336
    functionLinenumberEnd: 32338
    functionName: ZSTD_VecMask_next
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_countTrailingZeros64
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_VecMask_next(ZSTD_VecMask val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tagRow
    - rowMask
    argTypes:
    - BYTE*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32349
      start: 32344
    functionDepth: 0
    functionLinenumber: 32344
    functionLinenumberEnd: 32349
    functionName: ZSTD_row_nextIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_row_nextIndex(BYTE* const tagRow, U32 const
      rowMask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - align
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: ((align & (align - 1)) == 0)
      pos:
        line_end: 32354
        line_start: 32354
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32357
      start: 32354
    functionDepth: 1
    functionLinenumber: 32354
    functionLinenumberEnd: 32357
    functionName: ZSTD_isAligned
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_isAligned(void const* ptr, size_t align)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32363,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32365,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32368,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32370,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32372,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32373,1
    - Dst: ZSTD_isAligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32373,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32374,1
    - Dst: ZSTD_isAligned
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - hashTable
    - tagTable
    - relRow
    - rowLog
    argTypes:
    - U32*
    - BYTE*
    - U32
    - U32
    assertStmts:
    - condition: (rowLog == 4 || rowLog == 5 || rowLog == 6)
      pos:
        line_end: 32371
        line_start: 32371
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_isAligned(hashTable + relRow, 64))
      pos:
        line_end: 32372
        line_start: 32372
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_isAligned(tagTable + relRow, (size_t)1 << rowLog))
      pos:
        line_end: 32373
        line_start: 32373
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32375
      start: 32362
    functionDepth: 2
    functionLinenumber: 32362
    functionLinenumberEnd: 32375
    functionName: ZSTD_row_prefetch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - PREFETCH_L1
    - ZSTD_isAligned
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_row_prefetch(U32 const* hashTable, BYTE
      const* tagTable, U32 const relRow, U32 const rowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32391,1
    - Dst: ZSTD_hashPtrSalted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32394,1
    - Dst: ZSTD_row_prefetch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32396,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ms
    - base
    - rowLog
    - mls
    - idx
    - iLimit
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - U32
    - U32
    - U32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32403
      start: 32381
    functionDepth: 5
    functionLinenumber: 32381
    functionLinenumberEnd: 32403
    functionName: ZSTD_row_fillHashCache
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_row_prefetch
    - DEBUGLOG
    - MIN
    - ZSTD_hashPtrSalted
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_row_fillHashCache(ZSTD_matchState_t* ms,
      const BYTE* base,\n                                   U32 const rowLog, U32
      const mls,\n                                   U32 idx, const BYTE* const iLimit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtrSalted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32417,1
    - Dst: ZSTD_row_prefetch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - cache
    - hashTable
    - tagTable
    - base
    - idx
    - hashLog
    - rowLog
    - mls
    - hashSalt
    argTypes:
    - U32*
    - U32*
    - BYTE*
    - BYTE*
    - U32
    - U32
    - U32
    - U32
    - U64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32424
      start: 32409
    functionDepth: 5
    functionLinenumber: 32409
    functionLinenumberEnd: 32424
    functionName: ZSTD_row_nextCachedHash
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_row_prefetch
    - ZSTD_hashPtrSalted
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_row_nextCachedHash(U32* cache, U32 const*
      hashTable,\n                                                  BYTE const* tagTable,
      BYTE const* base,\n                                                  U32 idx,
      U32 const hashLog,\n                                                  U32 const
      rowLog, U32 const mls,\n                                                  U64
      const hashSalt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32441,1
    - Dst: ZSTD_row_nextCachedHash
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32443,1
    - Dst: ZSTD_hashPtrSalted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32444,1
    - Dst: ZSTD_row_nextIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32448,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32450,1
    - Dst: ZSTD_hashPtrSalted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - ms
    - updateStartIdx
    - updateEndIdx
    - mls
    - rowLog
    - rowMask
    - useCache
    argTypes:
    - ZSTD_matchState_t*
    - U32
    - U32
    - U32
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (hash == ZSTD_hashPtrSalted(base + updateStartIdx, hashLog + ZSTD_ROW_HASH_TAG_BITS,
        mls, ms->hashSalt))
      pos:
        line_end: 32449
        line_start: 32449
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32454
      start: 32429
    functionDepth: 6
    functionLinenumber: 32429
    functionLinenumberEnd: 32454
    functionName: ZSTD_row_update_internalImpl
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_row_nextIndex
    - DEBUGLOG
    - ZSTD_hashPtrSalted
    - assert
    - ZSTD_row_nextCachedHash
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_row_update_internalImpl(ZSTD_matchState_t*
      ms,\n                                  U32 updateStartIdx, U32 const updateEndIdx,\n
      \                                 U32 const mls, U32 const rowLog,\n                                  U32
      const rowMask, U32 const useCache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32479,1
    - Dst: ZSTD_row_update_internalImpl
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32481,1
    - Dst: ZSTD_row_fillHashCache
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32483,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32486,1
    - Dst: ZSTD_row_update_internalImpl
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - ms
    - ip
    - mls
    - rowLog
    - rowMask
    - useCache
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - U32
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (target >= idx)
      pos:
        line_end: 32485
        line_start: 32485
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32489
      start: 32460
    functionDepth: 7
    functionLinenumber: 32460
    functionLinenumberEnd: 32489
    functionName: ZSTD_row_update_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - ZSTD_row_update_internalImpl
    - ZSTD_row_fillHashCache
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_row_update_internal(ZSTD_matchState_t*
      ms, const BYTE* ip,\n                              U32 const mls, U32 const
      rowLog,\n                              U32 const rowMask, U32 const useCache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32496,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32498,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32500,1
    - Dst: ZSTD_row_update_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ms
    - ip
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32502
      start: 32495
    functionDepth: 8
    functionLinenumber: 32495
    functionLinenumberEnd: 32502
    functionName: ZSTD_row_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - BOUNDED
    - DEBUGLOG
    - MIN
    - ZSTD_row_update_internal
    linkageType: ''
    returnType: void
    signature: void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32511,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32512,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rowEntries
    argTypes:
    - U32
    assertStmts:
    - condition: ((rowEntries == 16) || (rowEntries == 32) || rowEntries == 64)
      pos:
        line_end: 32510
        line_start: 32510
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rowEntries <= ZSTD_ROW_HASH_MAX_ENTRIES)
      pos:
        line_end: 32511
        line_start: 32511
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32530
      start: 32508
    functionDepth: 1
    functionLinenumber: 32508
    functionLinenumberEnd: 32530
    functionName: ZSTD_row_matchMaskGroupWidth
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_isLittleEndian
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_row_matchMaskGroupWidth(const U32 rowEntries)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set1_epi8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32536,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32539,1
    - Dst: _mm_loadu_si128
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32541,1
    - Dst: _mm_cmpeq_epi8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32542,1
    - Dst: _mm_movemask_epi8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32543,1
    - Dst: ZSTD_rotateRight_U16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32545,1
    - Dst: ZSTD_rotateRight_U32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32546,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32547,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - nbChunks
    - src
    - tag
    - head
    argTypes:
    - int
    - BYTE*
    - BYTE
    - U32
    assertStmts:
    - condition: (nbChunks == 1 || nbChunks == 2 || nbChunks == 4)
      pos:
        line_end: 32538
        line_start: 32538
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbChunks == 4)
      pos:
        line_end: 32546
        line_start: 32546
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32549
      start: 32533
    functionDepth: 2
    functionLinenumber: 32533
    functionLinenumberEnd: 32549
    functionName: ZSTD_VecMask::ZSTD_row_getSSEMask
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - _mm_set1_epi8
    - _mm_cmpeq_epi8
    - ZSTD_rotateRight_U16
    - ZSTD_rotateRight_U32
    - ZSTD_rotateRight_U64
    - _mm_movemask_epi8
    - assert
    - _mm_loadu_si128
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: 'FORCE_INLINE_TEMPLATE ZSTD_VecMask

      ZSTD_row_getSSEMask(int nbChunks, const BYTE* const src, const BYTE tag, const
      U32 head)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32556,1
    - Dst: vld1q_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32563,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32564,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32564,1
    - Dst: vdupq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32564,1
    - Dst: vshrn_n_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32565,1
    - Dst: vget_lane_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32566,1
    - Dst: vreinterpret_u64_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32566,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32567,1
    - Dst: vld2q_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32572,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32573,1
    - Dst: vreinterpretq_u8_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32574,1
    - Dst: vdupq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32575,1
    - Dst: vshrn_n_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32576,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32576,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32576,1
    - Dst: vshrn_n_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32577,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32577,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32577,1
    - Dst: vsli_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32578,1
    - Dst: vget_lane_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32579,1
    - Dst: vreinterpret_u64_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32579,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32580,1
    - Dst: vld4q_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32582,1
    - Dst: vdupq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32583,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32584,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32585,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32586,1
    - Dst: vceqq_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32587,1
    - Dst: vsriq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32589,1
    - Dst: vsriq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32590,1
    - Dst: vsriq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32591,1
    - Dst: vsriq_n_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32592,1
    - Dst: vshrn_n_u16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32593,1
    - Dst: vreinterpretq_u16_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32593,1
    - Dst: vget_lane_u64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32594,1
    - Dst: vreinterpret_u64_u8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32594,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - rowEntries
    - src
    - tag
    - headGrouped
    argTypes:
    - U32
    - BYTE*
    - BYTE
    - U32
    assertStmts:
    - condition: ((rowEntries == 16) || (rowEntries == 32) || rowEntries == 64)
      pos:
        line_end: 32555
        line_start: 32555
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32597
      start: 32553
    functionDepth: 2
    functionLinenumber: 32553
    functionLinenumberEnd: 32597
    functionName: ZSTD_VecMask::ZSTD_row_getNEONMask
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - vshrn_n_u16
    - vreinterpretq_u16_u8
    - vget_lane_u64
    - vsli_n_u8
    - vdupq_n_u8
    - vceqq_u8
    - vld2q_u16
    - ZSTD_rotateRight_U64
    - vsriq_n_u8
    - vld1q_u8
    - assert
    - vreinterpretq_u8_u16
    - vld4q_u8
    - vreinterpret_u64_u8
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: 'FORCE_INLINE_TEMPLATE ZSTD_VecMask

      ZSTD_row_getNEONMask(const U32 rowEntries, const BYTE* const src, const BYTE
      tag, const U32 headGrouped)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32610,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32611,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32612,1
    - Dst: ZSTD_row_matchMaskGroupWidth
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32612,1
    - Dst: ZSTD_VecMask::ZSTD_row_getSSEMask
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32616,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32622,1
    - Dst: ZSTD_VecMask::ZSTD_row_getNEONMask
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32623,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32635,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32636,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32639,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32650,1
    - Dst: ZSTD_rotateRight_U16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32660,1
    - Dst: ZSTD_rotateRight_U32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32662,1
    - Dst: ZSTD_rotateRight_U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32664,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - tagRow
    - tag
    - headGrouped
    - rowEntries
    argTypes:
    - BYTE*
    - BYTE
    - U32
    - U32
    assertStmts:
    - condition: ((rowEntries == 16) || (rowEntries == 32) || rowEntries == 64)
      pos:
        line_end: 32609
        line_start: 32609
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rowEntries <= ZSTD_ROW_HASH_MAX_ENTRIES)
      pos:
        line_end: 32610
        line_start: 32610
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ZSTD_row_matchMaskGroupWidth(rowEntries) * rowEntries <= sizeof(ZSTD_VecMask)
        * 8)
      pos:
        line_end: 32611
        line_start: 32611
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((sizeof(size_t) == 4) || (sizeof(size_t) == 8))
      pos:
        line_end: 32634
        line_start: 32634
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32668
      start: 32606
    functionDepth: 3
    functionLinenumber: 32606
    functionLinenumberEnd: 32668
    functionName: ZSTD_VecMask::ZSTD_row_getMatchMask
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_isLittleEndian
    - ZSTD_VecMask::ZSTD_row_getSSEMask
    - ZSTD_rotateRight_U32
    - ZSTD_rotateRight_U16
    - ZSTD_rotateRight_U64
    - ZSTD_row_matchMaskGroupWidth
    - assert
    - MEM_readST
    - ZSTD_VecMask::ZSTD_row_getNEONMask
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: 'FORCE_INLINE_TEMPLATE ZSTD_VecMask

      ZSTD_row_getMatchMask(const BYTE* const tagRow, const BYTE tag, const U32 headGrouped,
      const U32 rowEntries)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32712,1
    - Dst: ZSTD_row_matchMaskGroupWidth
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32713,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32732,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32733,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32742,1
    - Dst: ZSTD_row_prefetch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32747,1
    - Dst: ZSTD_row_update_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32752,1
    - Dst: ZSTD_row_nextCachedHash
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32753,1
    - Dst: ZSTD_hashPtrSalted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32758,1
    - Dst: ZSTD_row_getMatchMask
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32772,1
    - Dst: ZSTD_VecMask_next
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32776,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32779,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32783,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32785,1
    - Dst: ZSTD_row_nextIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32794,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32803,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32804,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32808,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32810,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32810,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32811,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32814,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32815,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32815,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32816,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32822,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32828,1
    - Dst: ZSTD_dedicatedDictSearch_lazy_search
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32830,1
    - Dst: ZSTD_row_getMatchMask
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32844,1
    - Dst: ZSTD_VecMask_next
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32847,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32852,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32861,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32862,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32865,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32866,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32866,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32867,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32872,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:32873,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 7
    argNames:
    - ms
    - ip
    - iLimit
    - offsetPtr
    - mls
    - dictMode
    - rowLog
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - U32
    - ZSTD_dictMode_e
    - U32
    assertStmts:
    - condition: (matchIndex >= dictLimit)
      pos:
        line_end: 32807
        line_start: 32807
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex < curr)
      pos:
        line_end: 32802
        line_start: 32802
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match+4 <= dictEnd)
      pos:
        line_end: 32813
        line_start: 32813
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex >= lowLimit)
      pos:
        line_end: 32803
        line_start: 32803
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr > matchIndex + dmsIndexDelta)
      pos:
        line_end: 32871
        line_start: 32871
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX))
      pos:
        line_end: 32827
        line_start: 32827
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex >= dmsLowestIndex)
      pos:
        line_end: 32860
        line_start: 32860
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (numMatches < rowEntries)
      pos:
        line_end: 32778
        line_start: 32778
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex < curr)
      pos:
        line_end: 32861
        line_start: 32861
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match+4 <= dmsEnd)
      pos:
        line_end: 32864
        line_start: 32864
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 32880
      start: 32685
    functionDepth: 8
    functionLinenumber: 32685
    functionLinenumberEnd: 32880
    functionName: ZSTD_RowFindBestMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_row_prefetch
    - ZSTD_VecMask_next
    - PREFETCH_L1
    - ZSTD_row_nextIndex
    - ZSTD_count
    - ZSTD_hashPtrSalted
    - ZSTD_row_getMatchMask
    - MEM_read32
    - ZSTD_row_update_internal
    - ZSTD_row_matchMaskGroupWidth
    - ZSTD_dedicatedDictSearch_lazy_search
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - assert
    - ZSTD_count_2segments
    - MIN
    - ZSTD_row_nextCachedHash
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_RowFindBestMatch(\n                        ZSTD_matchState_t*
      ms,\n                        const BYTE* const ip, const BYTE* const iLimit,\n
      \                       size_t* offsetPtr,\n                        const U32
      mls, const ZSTD_dictMode_e dictMode,\n                        const U32 rowLog)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32906
      start: 32905
    functionDepth: 0
    functionLinenumber: 32905
    functionLinenumberEnd: 32906
    functionName: ZSTD_BT_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_BT_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32907
      start: 32906
    functionDepth: 0
    functionLinenumber: 32906
    functionLinenumberEnd: 32907
    functionName: ZSTD_HC_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_HC_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - ','
    - rowLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32908
      start: 32907
    functionDepth: 0
    functionLinenumber: 32907
    functionLinenumberEnd: 32908
    functionName: ZSTD_ROW_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32921
      start: 32911
    functionDepth: 0
    functionLinenumber: 32911
    functionLinenumberEnd: 32921
    functionName: GEN_ZSTD_BT_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_BT_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32931
      start: 32921
    functionDepth: 0
    functionLinenumber: 32921
    functionLinenumberEnd: 32931
    functionName: GEN_ZSTD_HC_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_HC_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - ','
    - rowLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32942
      start: 32931
    functionDepth: 0
    functionLinenumber: 32931
    functionLinenumberEnd: 32942
    functionName: GEN_ZSTD_ROW_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32946
      start: 32942
    functionDepth: 0
    functionLinenumber: 32942
    functionLinenumberEnd: 32946
    functionName: ZSTD_FOR_EACH_ROWLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FOR_EACH_ROWLOG(X, dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32951
      start: 32947
    functionDepth: 0
    functionLinenumber: 32947
    functionLinenumberEnd: 32951
    functionName: ZSTD_FOR_EACH_MLS_ROWLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FOR_EACH_MLS_ROWLOG(X, dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32956
      start: 32952
    functionDepth: 0
    functionLinenumber: 32952
    functionLinenumberEnd: 32956
    functionName: ZSTD_FOR_EACH_MLS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FOR_EACH_MLS(X, dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32962
      start: 32957
    functionDepth: 0
    functionLinenumber: 32957
    functionLinenumberEnd: 32962
    functionName: ZSTD_FOR_EACH_DICT_MODE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_FOR_EACH_DICT_MODE(X, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32975
      start: 32972
    functionDepth: 0
    functionLinenumber: 32972
    functionLinenumberEnd: 32975
    functionName: GEN_ZSTD_CALL_BT_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_CALL_BT_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32978
      start: 32975
    functionDepth: 0
    functionLinenumber: 32975
    functionLinenumberEnd: 32978
    functionName: GEN_ZSTD_CALL_HC_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_CALL_HC_SEARCH_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - ','
    - rowLog
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32981
      start: 32978
    functionDepth: 0
    functionLinenumber: 32978
    functionLinenumberEnd: 32981
    functionName: GEN_ZSTD_CALL_ROW_SEARCH_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_CALL_ROW_SEARCH_FN(dictMode, mls, rowLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32986
      start: 32982
    functionDepth: 0
    functionLinenumber: 32982
    functionLinenumberEnd: 32986
    functionName: ZSTD_SWITCH_MLS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_SWITCH_MLS(X, dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32994
      start: 32987
    functionDepth: 0
    functionLinenumber: 32987
    functionLinenumberEnd: 32994
    functionName: ZSTD_SWITCH_ROWLOG
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_SWITCH_ROWLOG(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33008
      start: 32995
    functionDepth: 0
    functionLinenumber: 32995
    functionLinenumberEnd: 33008
    functionName: ZSTD_SWITCH_SEARCH_METHOD
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_SWITCH_SEARCH_METHOD(dictMode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_SWITCH_SEARCH_METHOD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33044,1
    - Dst: ZSTD_SWITCH_SEARCH_METHOD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33046,1
    - Dst: ZSTD_SWITCH_SEARCH_METHOD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33048,1
    - Dst: ZSTD_SWITCH_SEARCH_METHOD
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 8
    argNames:
    - ms
    - ip
    - iend
    - offsetPtr
    - mls
    - rowLog
    - searchMethod
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - size_t*
    - U32
    - U32
    - searchMethod_e
    - ZSTD_dictMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33054
      start: 33033
    functionDepth: 1
    functionLinenumber: 33033
    functionLinenumberEnd: 33054
    functionName: ZSTD_searchMax
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_SWITCH_SEARCH_METHOD
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_searchMax(\n    ZSTD_matchState_t* ms,\n
      \   const BYTE* ip,\n    const BYTE* iend,\n    size_t* offsetPtr,\n    U32
      const mls,\n    U32 const rowLog,\n    searchMethod_e const searchMethod,\n
      \   ZSTD_dictMode_e const dictMode)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33077,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33078,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33096,1
    - Dst: ZSTD_getLowestPrefixIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33100,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33108,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33109,1
    - Dst: ZSTD_row_fillHashCache
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33116,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33130,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33140,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33140,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33142,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33147,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33147,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33148,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33154,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33176,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33179,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33179,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33180,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33182,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33192,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33192,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33194,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33196,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33202,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33203,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33204,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33212,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33215,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33215,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33216,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33218,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33228,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33228,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33230,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33232,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33238,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33239,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33240,1
    - Dst: OFFBASE_IS_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33253,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33255,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33256,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33260,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33265,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33270,1
    - Dst: ZSTD_row_fillHashCache
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33276,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33290,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33290,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33292,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33294,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33305,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33305,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33307,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33309,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 143
    argCount: 8
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - searchMethod
    - depth
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - searchMethod_e
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (offset_1 <= dictAndPrefixLength)
      pos:
        line_end: 33107
        line_start: 33107
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (offset_2 <= dictAndPrefixLength)
      pos:
        line_end: 33108
        line_start: 33108
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 33325
      start: 33060
    functionDepth: 7
    functionLinenumber: 33060
    functionLinenumberEnd: 33325
    functionName: ZSTD_compressBlock_lazy_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_count_2segments
    - ZSTD_count
    - ZSTD_highbit32
    - OFFBASE_IS_OFFSET
    - OFFBASE_TO_OFFSET
    - ZSTD_storeSeq
    - DEBUGLOG
    - MEM_read32
    - ZSTD_searchMax
    - assert
    - BOUNDED
    - ZSTD_row_fillHashCache
    - ZSTD_getLowestPrefixIndex
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_lazy_generic(\n                        ZSTD_matchState_t*
      ms, seqStore_t* seqStore,\n                        U32 rep[ZSTD_REP_NUM],\n
      \                       const void* src, size_t srcSize,\n                        const
      searchMethod_e searchMethod, const U32 depth,\n                        ZSTD_dictMode_e
      const dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33335
      start: 33330
    functionDepth: 8
    functionLinenumber: 33330
    functionLinenumberEnd: 33335
    functionName: ZSTD_compressBlock_greedy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33342
      start: 33337
    functionDepth: 8
    functionLinenumber: 33337
    functionLinenumberEnd: 33342
    functionName: ZSTD_compressBlock_greedy_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33349
      start: 33344
    functionDepth: 8
    functionLinenumber: 33344
    functionLinenumberEnd: 33349
    functionName: ZSTD_compressBlock_greedy_dedicatedDictSearch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_dedicatedDictSearch(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33356
      start: 33351
    functionDepth: 8
    functionLinenumber: 33351
    functionLinenumberEnd: 33356
    functionName: ZSTD_compressBlock_greedy_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33363
      start: 33358
    functionDepth: 8
    functionLinenumber: 33358
    functionLinenumberEnd: 33363
    functionName: ZSTD_compressBlock_greedy_dictMatchState_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_dictMatchState_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33370
      start: 33365
    functionDepth: 8
    functionLinenumber: 33365
    functionLinenumberEnd: 33370
    functionName: ZSTD_compressBlock_greedy_dedicatedDictSearch_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33379
      start: 33374
    functionDepth: 8
    functionLinenumber: 33374
    functionLinenumberEnd: 33379
    functionName: ZSTD_compressBlock_lazy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33386
      start: 33381
    functionDepth: 8
    functionLinenumber: 33381
    functionLinenumberEnd: 33386
    functionName: ZSTD_compressBlock_lazy_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33393
      start: 33388
    functionDepth: 8
    functionLinenumber: 33388
    functionLinenumberEnd: 33393
    functionName: ZSTD_compressBlock_lazy_dedicatedDictSearch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_dedicatedDictSearch(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33400
      start: 33395
    functionDepth: 8
    functionLinenumber: 33395
    functionLinenumberEnd: 33400
    functionName: ZSTD_compressBlock_lazy_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_row(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33407
      start: 33402
    functionDepth: 8
    functionLinenumber: 33402
    functionLinenumberEnd: 33407
    functionName: ZSTD_compressBlock_lazy_dictMatchState_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_dictMatchState_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33414
      start: 33409
    functionDepth: 8
    functionLinenumber: 33409
    functionLinenumberEnd: 33414
    functionName: ZSTD_compressBlock_lazy_dedicatedDictSearch_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33423
      start: 33418
    functionDepth: 8
    functionLinenumber: 33418
    functionLinenumberEnd: 33423
    functionName: ZSTD_compressBlock_lazy2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33430
      start: 33425
    functionDepth: 8
    functionLinenumber: 33425
    functionLinenumberEnd: 33430
    functionName: ZSTD_compressBlock_lazy2_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33437
      start: 33432
    functionDepth: 8
    functionLinenumber: 33432
    functionLinenumberEnd: 33437
    functionName: ZSTD_compressBlock_lazy2_dedicatedDictSearch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33444
      start: 33439
    functionDepth: 8
    functionLinenumber: 33439
    functionLinenumberEnd: 33444
    functionName: ZSTD_compressBlock_lazy2_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_row(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33451
      start: 33446
    functionDepth: 8
    functionLinenumber: 33446
    functionLinenumberEnd: 33451
    functionName: ZSTD_compressBlock_lazy2_dictMatchState_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_dictMatchState_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33458
      start: 33453
    functionDepth: 8
    functionLinenumber: 33453
    functionLinenumberEnd: 33458
    functionName: ZSTD_compressBlock_lazy2_dedicatedDictSearch_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33467
      start: 33462
    functionDepth: 8
    functionLinenumber: 33462
    functionLinenumberEnd: 33467
    functionName: ZSTD_compressBlock_btlazy2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btlazy2(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33474
      start: 33469
    functionDepth: 8
    functionLinenumber: 33469
    functionLinenumberEnd: 33474
    functionName: ZSTD_compressBlock_btlazy2_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btlazy2_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33501,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33502,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33506,1
    - Dst: ZSTD_row_fillHashCache
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33514,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33531,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33537,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33537,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33540,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33546,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33572,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33578,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33578,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33581,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33583,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33590,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33591,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33592,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33604,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33610,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33610,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33613,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33615,1
    - Dst: ZSTD_searchMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33622,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33623,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33624,1
    - Dst: OFFBASE_IS_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33633,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33634,1
    - Dst: OFFBASE_TO_OFFSET
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33638,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33644,1
    - Dst: ZSTD_row_fillHashCache
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33650,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33658,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33664,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33664,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33667,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33669,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 97
    argCount: 7
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - searchMethod
    - depth
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - searchMethod_e
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33683
      start: 33481
    functionDepth: 7
    functionLinenumber: 33481
    functionLinenumberEnd: 33683
    functionName: ZSTD_compressBlock_lazy_extDict_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - OFFBASE_IS_OFFSET
    - OFFBASE_TO_OFFSET
    - ZSTD_storeSeq
    - ZSTD_getLowestMatchIndex
    - DEBUGLOG
    - MEM_read32
    - ZSTD_searchMax
    - BOUNDED
    - ZSTD_row_fillHashCache
    - ZSTD_count_2segments
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_lazy_extDict_generic(\n                        ZSTD_matchState_t*
      ms, seqStore_t* seqStore,\n                        U32 rep[ZSTD_REP_NUM],\n
      \                       const void* src, size_t srcSize,\n                        const
      searchMethod_e searchMethod, const U32 depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33692
      start: 33687
    functionDepth: 8
    functionLinenumber: 33687
    functionLinenumberEnd: 33692
    functionName: ZSTD_compressBlock_greedy_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33699
      start: 33694
    functionDepth: 8
    functionLinenumber: 33694
    functionLinenumberEnd: 33699
    functionName: ZSTD_compressBlock_greedy_extDict_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_greedy_extDict_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33709
      start: 33703
    functionDepth: 8
    functionLinenumber: 33703
    functionLinenumberEnd: 33709
    functionName: ZSTD_compressBlock_lazy_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33717
      start: 33711
    functionDepth: 8
    functionLinenumber: 33711
    functionLinenumberEnd: 33717
    functionName: ZSTD_compressBlock_lazy_extDict_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy_extDict_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33727
      start: 33721
    functionDepth: 8
    functionLinenumber: 33721
    functionLinenumberEnd: 33727
    functionName: ZSTD_compressBlock_lazy2_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33734
      start: 33729
    functionDepth: 8
    functionLinenumber: 33729
    functionLinenumberEnd: 33734
    functionName: ZSTD_compressBlock_lazy2_extDict_row
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_lazy2_extDict_row(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_lazy_extDict_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33744
      start: 33738
    functionDepth: 8
    functionLinenumber: 33738
    functionLinenumberEnd: 33744
    functionName: ZSTD_compressBlock_btlazy2_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_lazy_extDict_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btlazy2_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t
      srcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - params
    argTypes:
    - ldmRollingHashState_t*
    - ldmParams_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33912
      start: 33886
    functionDepth: 0
    functionLinenumber: 33886
    functionLinenumberEnd: 33912
    functionName: ZSTD_ldm_gear_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: void
    signature: void ZSTD_ldm_gear_init(ldmRollingHashState_t* state, ldmParams_t const*
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33930,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33931,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33932,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33933,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33936,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - state
    - data
    - minMatchLength
    argTypes:
    - ldmRollingHashState_t*
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33939
      start: 33919
    functionDepth: 1
    functionLinenumber: 33919
    functionLinenumberEnd: 33939
    functionName: ZSTD_ldm_gear_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - GEAR_ITER_ONCE
    linkageType: ''
    returnType: void
    signature: "void ZSTD_ldm_gear_reset(ldmRollingHashState_t* state,\n                                BYTE
      const* data, size_t minMatchLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33929
      start: 33925
    functionDepth: 0
    functionLinenumber: 33925
    functionLinenumberEnd: 33929
    functionName: GEAR_ITER_ONCE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEAR_ITER_ONCE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33973,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33974,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33975,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33976,1
    - Dst: GEAR_ITER_ONCE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - state
    - data
    - size
    - splits
    - numSplits
    argTypes:
    - ldmRollingHashState_t*
    - BYTE*
    - size_t
    - size_t*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33987
      start: 33950
    functionDepth: 1
    functionLinenumber: 33950
    functionLinenumberEnd: 33987
    functionName: ZSTD_ldm_gear_feed
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - GEAR_ITER_ONCE
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_gear_feed(ldmRollingHashState_t* state,\n                                 BYTE
      const* data, size_t size,\n                                 size_t* splits,
      unsigned* numSplits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33971
      start: 33961
    functionDepth: 0
    functionLinenumber: 33961
    functionLinenumberEnd: 33971
    functionName: GEAR_ITER_ONCE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEAR_ITER_ONCE()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33993,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33994,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33998,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:33999,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - params
    - cParams
    argTypes:
    - ldmParams_t*
    - ZSTD_compressionParameters*
    assertStmts:
    - condition: (params->hashLog <= ZSTD_HASHLOG_MAX)
      pos:
        line_end: 33998
        line_start: 33998
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34007
      start: 33989
    functionDepth: 1
    functionLinenumber: 33989
    functionLinenumberEnd: 34007
    functionName: ZSTD_ldm_adjustParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - MAX
    - DEBUGLOG
    - assert
    - ZSTD_STATIC_ASSERT
    - MIN
    linkageType: ''
    returnType: void
    signature: "void ZSTD_ldm_adjustParameters(ldmParams_t* params,\n                               ZSTD_compressionParameters
      const* cParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34012,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34014,1
    - Dst: ZSTD_cwksp_alloc_size
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - params
    argTypes:
    - ldmParams_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34017
      start: 34009
    functionDepth: 1
    functionLinenumber: 34009
    functionLinenumberEnd: 34017
    functionName: ZSTD_ldm_getTableSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_cwksp_alloc_size
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_ldm_getTableSize(ldmParams_t params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - maxChunkSize
    argTypes:
    - ldmParams_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34022
      start: 34019
    functionDepth: 0
    functionLinenumber: 34019
    functionLinenumberEnd: 34022
    functionName: ZSTD_ldm_getMaxNbSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ldmState
    - hash
    - ldmParams
    argTypes:
    - ldmState_t*
    - size_t
    - ldmParams_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34030
      start: 34026
    functionDepth: 0
    functionLinenumber: 34026
    functionLinenumberEnd: 34030
    functionName: ZSTD_ldm_getBucket
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ldmEntry_t
    signature: "ldmEntry_t * ZSTD_ldm_getBucket(\n        ldmState_t* ldmState, size_t
      hash, ldmParams_t const ldmParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_ldm_getBucket
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ldmState
    - hash
    - entry
    - ldmParams
    argTypes:
    - ldmState_t*
    - size_t
    - ldmEntry_t
    - ldmParams_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34044
      start: 34034
    functionDepth: 1
    functionLinenumber: 34034
    functionLinenumberEnd: 34044
    functionName: ZSTD_ldm_insertEntry
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_ldm_getBucket
    linkageType: ''
    returnType: void
    signature: "void ZSTD_ldm_insertEntry(ldmState_t* ldmState,\n                                 size_t
      const hash, const ldmEntry_t entry,\n                                 ldmParams_t
      const ldmParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - pIn
    - pAnchor
    - pMatch
    - pMatchBase
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34061
      start: 34050
    functionDepth: 0
    functionLinenumber: 34050
    functionLinenumberEnd: 34061
    functionName: ZSTD_ldm_countBackwardsMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_countBackwardsMatch(\n            const BYTE* pIn,
      const BYTE* pAnchor,\n            const BYTE* pMatch, const BYTE* pMatchBase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_ldm_countBackwardsMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34073,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34078,1
    - Dst: ZSTD_ldm_countBackwardsMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34079,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - pIn
    - pAnchor
    - pMatch
    - pMatchBase
    - pExtDictStart
    - pExtDictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34082
      start: 34068
    functionDepth: 1
    functionLinenumber: 34068
    functionLinenumberEnd: 34082
    functionName: ZSTD_ldm_countBackwardsMatch_2segments
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_ldm_countBackwardsMatch
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_countBackwardsMatch_2segments(\n                    const
      BYTE* pIn, const BYTE* pAnchor,\n                    const BYTE* pMatch, const
      BYTE* pMatchBase,\n                    const BYTE* pExtDictStart, const BYTE*
      pExtDictEnd)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_fillHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34099,1
    - Dst: ZSTD_fillDoubleHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34106,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ms
    - end
    argTypes:
    - ZSTD_matchState_t*
    - void*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 34118
        line_start: 34118
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 34105
        line_start: 34105
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34123
      start: 34091
    functionDepth: 7
    functionLinenumber: 34091
    functionLinenumberEnd: 34123
    functionName: ZSTD_ldm_fillFastTables
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_fillHashTable
    - ZSTD_fillDoubleHashTable
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms,\n                                      void
      const* end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34137,1
    - Dst: ZSTD_ldm_gear_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34139,1
    - Dst: ZSTD_ldm_gear_feed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34145,1
    - Dst: XXH64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34150,1
    - Dst: ZSTD_ldm_insertEntry
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ldmState
    - ip
    - iend
    - params
    argTypes:
    - ldmState_t*
    - BYTE*
    - BYTE*
    - ldmParams_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34162
      start: 34125
    functionDepth: 2
    functionLinenumber: 34125
    functionLinenumberEnd: 34162
    functionName: ZSTD_ldm_fillHashTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_ldm_gear_init
    - ZSTD_ldm_gear_feed
    - ZSTD_ldm_insertEntry
    - DEBUGLOG
    - XXH64
    linkageType: ''
    returnType: void
    signature: "void ZSTD_ldm_fillHashTable(\n            ldmState_t* ldmState, const
      BYTE* ip,\n            const BYTE* iend, ldmParams_t const* params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ms
    - anchor
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34177
      start: 34170
    functionDepth: 0
    functionLinenumber: 34170
    functionLinenumberEnd: 34177
    functionName: ZSTD_ldm_limitTableUpdate
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: void
    signature: void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_window_hasExtDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34186,1
    - Dst: ZSTD_ldm_gear_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34216,1
    - Dst: ZSTD_ldm_gear_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34217,1
    - Dst: ZSTD_ldm_gear_feed
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34225,1
    - Dst: XXH64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34230,1
    - Dst: ZSTD_ldm_getBucket
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34236,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34237,1
    - Dst: ZSTD_ldm_insertEntry
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34259,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34278,1
    - Dst: ZSTD_ldm_countBackwardsMatch_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34282,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34286,1
    - Dst: ZSTD_ldm_countBackwardsMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34291,1
    - Dst: ZSTD_ldm_insertEntry
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34306,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34318,1
    - Dst: ZSTD_ldm_insertEntry
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34327,1
    - Dst: ZSTD_ldm_gear_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34340,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 5
    argNames:
    - ldmState
    - rawSeqStore
    - params
    - src
    - srcSize
    argTypes:
    - ldmState_t*
    - rawSeqStore_t*
    - ldmParams_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34351
      start: 34179
    functionDepth: 7
    functionLinenumber: 34179
    functionLinenumberEnd: 34351
    functionName: ZSTD_ldm_generateSequences_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_L1
    - ZSTD_ldm_countBackwardsMatch_2segments
    - ZSTD_ldm_gear_init
    - ZSTD_count_2segments
    - ZSTD_ldm_gear_feed
    - ZSTD_ldm_gear_reset
    - ZSTD_count
    - ZSTD_ldm_insertEntry
    - ZSTD_ldm_countBackwardsMatch
    - ERROR
    - ZSTD_ldm_getBucket
    - ZSTD_window_hasExtDict
    - XXH64
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_ldm_generateSequences_internal(\n
      \       ldmState_t* ldmState, rawSeqStore_t* rawSeqStore,\n        ldmParams_t
      const* params, void const* src, size_t srcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - table
    - size
    - reducerValue
    argTypes:
    - ldmEntry_t*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34363
      start: 34355
    functionDepth: 0
    functionLinenumber: 34355
    functionLinenumberEnd: 34363
    functionName: ZSTD_ldm_reduceTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ZSTD_ldm_reduceTable(ldmEntry_t* const table, U32 const size,\n
      \                                U32 const reducerValue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34377,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34381,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34385,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34386,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34396,1
    - Dst: ZSTD_window_needOverflowCorrection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34398,1
    - Dst: ZSTD_window_correctOverflow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34400,1
    - Dst: ZSTD_ldm_reduceTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34402,1
    - Dst: ZSTD_window_enforceMaxDist
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34420,1
    - Dst: ZSTD_ldm_generateSequences_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34422,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34424,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - ldmState
    - sequences
    - params
    - src
    - srcSize
    argTypes:
    - ldmState_t*
    - rawSeqStore_t*
    - ldmParams_t*
    - void*
    - size_t
    assertStmts:
    - condition: (ZSTD_CHUNKSIZE_MAX >= kMaxChunkSize)
      pos:
        line_end: 34376
        line_start: 34376
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequences->pos <= sequences->size)
      pos:
        line_end: 34384
        line_start: 34384
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ldmState->window.nextSrc >= (BYTE const*)src + srcSize)
      pos:
        line_end: 34380
        line_start: 34380
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequences->size <= sequences->capacity)
      pos:
        line_end: 34385
        line_start: 34385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (chunkStart < iend)
      pos:
        line_end: 34395
        line_start: 34395
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (newLeftoverSize == chunkSize)
      pos:
        line_end: 34434
        line_start: 34434
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34440
      start: 34365
    functionDepth: 8
    functionLinenumber: 34365
    functionLinenumberEnd: 34440
    functionName: ZSTD_ldm_generateSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    - ZSTD_ldm_reduceTable
    - ZSTD_window_enforceMaxDist
    - ZSTD_ldm_generateSequences_internal
    - ZSTD_window_correctOverflow
    - assert
    - ZSTD_window_needOverflowCorrection
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_generateSequences(\n        ldmState_t* ldmState,
      rawSeqStore_t* sequences,\n        ldmParams_t const* params, void const* src,
      size_t srcSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - rawSeqStore
    - srcSize
    - minMatch
    argTypes:
    - rawSeqStore_t*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34470
      start: 34442
    functionDepth: 0
    functionLinenumber: 34442
    functionLinenumberEnd: 34470
    functionName: ZSTD_ldm_skipSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
      U32 const minMatch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34483,1
    - Dst: ZSTD_ldm_skipSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - rawSeqStore
    - remaining
    - minMatch
    argTypes:
    - rawSeqStore_t*
    - U32
    - U32
    assertStmts:
    - condition: (sequence.offset > 0)
      pos:
        line_end: 34482
        line_start: 34482
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34501
      start: 34479
    functionDepth: 1
    functionLinenumber: 34479
    functionLinenumberEnd: 34501
    functionName: maybeSplitSequence
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_ldm_skipSequences
    linkageType: ''
    returnType: rawSeq
    signature: "rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore,\n                                 U32
      const remaining, U32 const minMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - rawSeqStore
    - nbBytes
    argTypes:
    - rawSeqStore_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34518
      start: 34503
    functionDepth: 0
    functionLinenumber: 34503
    functionLinenumberEnd: 34518
    functionName: ZSTD_ldm_skipRawSeqStoreBytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t
      nbBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_selectBlockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34528,1
    - Dst: ZSTD_matchState_dictMode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34528,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34535,1
    - Dst: blockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34540,1
    - Dst: ZSTD_ldm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34541,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34545,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34546,1
    - Dst: maybeSplitSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34550,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34556,1
    - Dst: ZSTD_ldm_limitTableUpdate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34559,1
    - Dst: ZSTD_ldm_fillFastTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34560,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34562,1
    - Dst: blockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34566,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34573,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34574,1
    - Dst: ZSTD_ldm_limitTableUpdate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34580,1
    - Dst: ZSTD_ldm_fillFastTables
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34581,1
    - Dst: blockCompressor
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 7
    argNames:
    - rawSeqStore
    - ms
    - seqStore
    - rep
    - useRowMatchFinder
    - src
    - srcSize
    argTypes:
    - rawSeqStore_t*
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - ZSTD_paramSwitch_e
    - void*
    - size_t
    assertStmts:
    - condition: (ip + sequence.litLength + sequence.matchLength <= iend)
      pos:
        line_end: 34555
        line_start: 34555
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rawSeqStore->size <= rawSeqStore->capacity)
      pos:
        line_end: 34545
        line_start: 34545
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rawSeqStore->pos <= rawSeqStore->size)
      pos:
        line_end: 34544
        line_start: 34544
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34584
      start: 34520
    functionDepth: 8
    functionLinenumber: 34520
    functionLinenumberEnd: 34584
    functionName: ZSTD_ldm_blockCompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_ldm_skipRawSeqStoreBytes
    - ZSTD_ldm_fillFastTables
    - ZSTD_selectBlockCompressor
    - blockCompressor
    - ZSTD_storeSeq
    - DEBUGLOG
    - ZSTD_matchState_dictMode
    - ZSTD_ldm_limitTableUpdate
    - OFFSET_TO_OFFBASE
    - assert
    - maybeSplitSequence
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,\n    ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n    ZSTD_paramSwitch_e useRowMatchFinder,\n
      \   void const* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stat
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34619
      start: 34618
    functionDepth: 0
    functionLinenumber: 34618
    functionLinenumberEnd: 34619
    functionName: WEIGHT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEIGHT(stat, opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stat
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34623
      start: 34622
    functionDepth: 0
    functionLinenumber: 34622
    functionLinenumberEnd: 34623
    functionName: WEIGHT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEIGHT(stat,opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stat
    - ','
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34627
      start: 34626
    functionDepth: 0
    functionLinenumber: 34626
    functionLinenumberEnd: 34627
    functionName: WEIGHT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEIGHT(stat,opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stat
    argTypes:
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34634
      start: 34631
    functionDepth: 4
    functionLinenumber: 34631
    functionLinenumberEnd: 34634
    functionName: ZSTD_bitWeight
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_bitWeight(U32 stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34642,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rawStat
    argTypes:
    - U32
    assertStmts:
    - condition: (hb + BITCOST_ACCURACY < 31)
      pos:
        line_end: 34648
        line_start: 34648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34651
      start: 34639
    functionDepth: 4
    functionLinenumber: 34639
    functionLinenumberEnd: 34651
    functionName: ZSTD_fracWeight
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_highbit32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_fracWeight(U32 rawStat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - price
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34660
      start: 34657
    functionDepth: 0
    functionLinenumber: 34657
    functionLinenumberEnd: 34660
    functionName: ZSTD_fCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_fCost(int price)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - optPtr
    argTypes:
    - optState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34666
      start: 34663
    functionDepth: 0
    functionLinenumber: 34663
    functionLinenumberEnd: 34666
    functionName: ZSTD_compressedLiterals
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_compressedLiterals(optState_t const* const optPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressedLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34670,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34671,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34672,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34673,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - optPtr
    - optLevel
    argTypes:
    - optState_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34675
      start: 34668
    functionDepth: 1
    functionLinenumber: 34668
    functionLinenumberEnd: 34675
    functionName: ZSTD_setBasePrices
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - WEIGHT
    - ZSTD_compressedLiterals
    linkageType: ''
    returnType: void
    signature: void ZSTD_setBasePrices(optState_t* optPtr, int optLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - table
    - nbElts
    argTypes:
    - unsigned[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34686
      start: 34678
    functionDepth: 0
    functionLinenumber: 34678
    functionLinenumberEnd: 34686
    functionName: sum_u32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 sum_u32(const unsigned table[], size_t nbElts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34694,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - table
    - lastEltIndex
    - shift
    - base1
    argTypes:
    - unsigned*
    - U32
    - U32
    - base_directive_e
    assertStmts:
    - condition: (shift < 30)
      pos:
        line_end: 34695
        line_start: 34695
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34704
      start: 34690
    functionDepth: 1
    functionLinenumber: 34690
    functionLinenumberEnd: 34704
    functionName: ZSTD_downscaleStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_downscaleStats(unsigned* table, U32 lastEltIndex, U32 shift,
      base_directive_e base1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sum_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34711,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34713,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34714,1
    - Dst: ZSTD_downscaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34716,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - table
    - lastEltIndex
    - logTarget
    argTypes:
    - unsigned*
    - U32
    - U32
    assertStmts:
    - condition: (logTarget < 30)
      pos:
        line_end: 34713
        line_start: 34713
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34717
      start: 34709
    functionDepth: 4
    functionLinenumber: 34709
    functionLinenumberEnd: 34717
    functionName: ZSTD_scaleStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - sum_u32
    - ZSTD_downscaleStats
    - DEBUGLOG
    - assert
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_scaleStats(unsigned* table, U32 lastEltIndex, U32 logTarget)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressedLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34731,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34732,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34739,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34743,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34752,1
    - Dst: HUF_getNbBitsFromCTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34756,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34757,1
    - Dst: FSE_initCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34764,1
    - Dst: FSE_getMaxNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34768,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34769,1
    - Dst: FSE_initCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34776,1
    - Dst: FSE_getMaxNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34780,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34781,1
    - Dst: FSE_initCState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34788,1
    - Dst: FSE_getMaxNbBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34792,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34793,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34800,1
    - Dst: HIST_count_simple
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34804,1
    - Dst: ZSTD_downscaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34805,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34815,1
    - Dst: sum_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34816,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34831,1
    - Dst: sum_u32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34832,1
    - Dst: ZSTD_scaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34840,1
    - Dst: ZSTD_scaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34841,1
    - Dst: ZSTD_scaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34842,1
    - Dst: ZSTD_scaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34843,1
    - Dst: ZSTD_setBasePrices
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34846,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 69
    argCount: 4
    argNames:
    - optPtr
    - src
    - srcSize
    - optLevel
    argTypes:
    - optState_t*
    - BYTE*
    - size_t
    - int
    assertStmts:
    - condition: (bitCost < scaleLog)
      pos:
        line_end: 34768
        line_start: 34768
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitCost < scaleLog)
      pos:
        line_end: 34792
        line_start: 34792
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (optPtr->symbolCosts != NULL)
      pos:
        line_end: 34742
        line_start: 34742
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitCost <= scaleLog)
      pos:
        line_end: 34756
        line_start: 34756
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (bitCost < scaleLog)
      pos:
        line_end: 34780
        line_start: 34780
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (optPtr->litFreq != NULL)
      pos:
        line_end: 34751
        line_start: 34751
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (optPtr->litFreq != NULL)
      pos:
        line_end: 34799
        line_start: 34799
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34847
      start: 34726
    functionDepth: 5
    functionLinenumber: 34726
    functionLinenumberEnd: 34847
    functionName: ZSTD_rescaleFreqs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HIST_count_simple
    - ZSTD_memcpy
    - FSE_getMaxNbBits
    - ZSTD_setBasePrices
    - sum_u32
    - HUF_getNbBitsFromCTable
    - ZSTD_downscaleStats
    - DEBUGLOG
    - ZSTD_scaleStats
    - FSE_initCState
    - assert
    - ZSTD_compressedLiterals
    linkageType: ''
    returnType: void
    signature: "void ZSTD_rescaleFreqs(optState_t* const optPtr,\n            const
      BYTE* const src, size_t const srcSize,\n                  int const optLevel)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34856,1
    - Dst: ZSTD_compressedLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34859,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34869,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34871,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - literals
    - litLength
    - optPtr
    - optLevel
    argTypes:
    - BYTE*
    - U32
    - optState_t*
    - int
    assertStmts:
    - condition: (optPtr->litSumBasePrice >= BITCOST_MULTIPLIER)
      pos:
        line_end: 34868
        line_start: 34868
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34877
      start: 34852
    functionDepth: 1
    functionLinenumber: 34852
    functionLinenumberEnd: 34877
    functionName: ZSTD_rawLiteralsCost
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - WEIGHT
    - UNLIKELY
    - ZSTD_compressedLiterals
    linkageType: ''
    returnType: U32
    signature: "U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength,\n
      \                               const optState_t* const optPtr,\n                                int
      optLevel)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34883,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34885,1
    - Dst: ZSTD_litLengthPrice
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34893,1
    - Dst: ZSTD_LLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34896,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - litLength
    - optPtr
    - optLevel
    argTypes:
    - U32
    - optState_t*
    - int
    assertStmts:
    - condition: (litLength <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 34882
        line_start: 34882
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34901
      start: 34881
    functionDepth: 5
    functionLinenumber: 34881
    functionLinenumberEnd: 34901
    functionName: ZSTD_litLengthPrice
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_LLcode
    - assert
    - WEIGHT
    - ZSTD_litLengthPrice
    linkageType: ''
    returnType: U32
    signature: U32 ZSTD_litLengthPrice(U32 const litLength, const optState_t* const
      optPtr, int optLevel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34916,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34918,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34921,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34925,1
    - Dst: ZSTD_MLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34930,1
    - Dst: WEIGHT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34931,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - offBase
    - matchLength
    - optPtr
    - optLevel
    argTypes:
    - U32
    - U32
    - optState_t*
    - int
    assertStmts:
    - condition: (matchLength >= MINMATCH)
      pos:
        line_end: 34917
        line_start: 34917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34938
      start: 34909
    functionDepth: 5
    functionLinenumber: 34909
    functionLinenumberEnd: 34938
    functionName: ZSTD_getMatchPrice
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - DEBUGLOG
    - ZSTD_MLcode
    - WEIGHT
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_getMatchPrice(U32 const offBase,\n                   U32
      const matchLength,\n             const optState_t* const optPtr,\n                   int
      const optLevel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressedLiterals
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34947,1
    - Dst: ZSTD_LLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34955,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34961,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34962,1
    - Dst: ZSTD_MLcode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - optPtr
    - litLength
    - literals
    - offBase
    - matchLength
    argTypes:
    - optState_t*
    - U32
    - BYTE*
    - U32
    - U32
    assertStmts:
    - condition: (offCode <= MaxOff)
      pos:
        line_end: 34961
        line_start: 34961
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 34973
      start: 34942
    functionDepth: 5
    functionLinenumber: 34942
    functionLinenumberEnd: 34973
    functionName: ZSTD_updateStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_highbit32
    - ZSTD_MLcode
    - ZSTD_LLcode
    - ZSTD_compressedLiterals
    linkageType: ''
    returnType: void
    signature: "void ZSTD_updateStats(optState_t* const optPtr,\n                             U32
      litLength, const BYTE* literals,\n                             U32 offBase,
      U32 matchLength)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34984,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34985,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34986,1
    - Dst: MEM_read32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:34988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - memPtr
    - length
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34990
      start: 34979
    functionDepth: 1
    functionLinenumber: 34979
    functionLinenumberEnd: 34990
    functionName: ZSTD_readMINMATCH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_isLittleEndian
    - MEM_read32
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_readMINMATCH(const void* memPtr, U32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash3Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35006,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35007,1
    - Dst: ZSTD_hash3Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ms
    - nextToUpdate3
    - ip
    argTypes:
    - ZSTD_matchState_t*
    - U32*
    - BYTE*
    assertStmts:
    - condition: (hashLog3 > 0)
      pos:
        line_end: 35006
        line_start: 35006
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35016
      start: 34995
    functionDepth: 4
    functionLinenumber: 34995
    functionLinenumberEnd: 35016
    functionName: ZSTD_insertAndFindFirstIndexHash3
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_hash3Ptr
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_insertAndFindFirstIndexHash3
      (const ZSTD_matchState_t* ms,\n                                       U32* nextToUpdate3,\n
      \                                      const BYTE* const ip)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35037,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35057,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35068,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35070,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35071,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35074,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35077,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35078,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35102,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35104,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35107,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35140,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35141,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35142,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 6
    argNames:
    - ms
    - ip
    - iend
    - target
    - mls
    - extDict
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - U32
    - U32
    - int
    assertStmts:
    - condition: (curr <= target)
      pos:
        line_end: 35069
        line_start: 35069
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip <= iend-8)
      pos:
        line_end: 35070
        line_start: 35070
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (windowLow > 0)
      pos:
        line_end: 35073
        line_start: 35073
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex < curr)
      pos:
        line_end: 35077
        line_start: 35077
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex+matchLength >= dictLimit)
      pos:
        line_end: 35101
        line_start: 35101
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchEndIdx > curr + 8)
      pos:
        line_end: 35140
        line_start: 35140
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35144
      start: 35026
    functionDepth: 7
    functionLinenumber: 35026
    functionLinenumberEnd: 35144
    functionName: ZSTD_insertBt1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_count
    - MAX
    - ZSTD_getLowestMatchIndex
    - DEBUGLOG
    - ZSTD_hashPtr
    - assert
    - ZSTD_count_2segments
    - MIN
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_insertBt1(\n                const
      ZSTD_matchState_t* ms,\n                const BYTE* const ip, const BYTE* const
      iend,\n                U32 const target,\n                U32 const mls, const
      int extDict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35156,1
    - Dst: ZSTD_insertBt1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35160,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35161,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35164,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ms
    - ip
    - iend
    - mls
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    - U32
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (idx < (U32)(idx + forward))
      pos:
        line_end: 35160
        line_start: 35160
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((size_t)(ip - base) <= (size_t)(U32)(-1))
      pos:
        line_end: 35163
        line_start: 35163
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((size_t)(iend - base) <= (size_t)(U32)(-1))
      pos:
        line_end: 35164
        line_start: 35164
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35167
      start: 35146
    functionDepth: 8
    functionLinenumber: 35146
    functionLinenumberEnd: 35167
    functionName: ZSTD_updateTree_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_insertBt1
    - DEBUGLOG
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_updateTree_internal(\n                ZSTD_matchState_t*
      ms,\n                const BYTE* const ip, const BYTE* const iend,\n                const
      U32 mls, const ZSTD_dictMode_e dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_updateTree_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ms
    - ip
    - iend
    argTypes:
    - ZSTD_matchState_t*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35171
      start: 35169
    functionDepth: 9
    functionLinenumber: 35169
    functionLinenumberEnd: 35171
    functionName: ZSTD_updateTree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_updateTree_internal
    linkageType: ''
    returnType: void
    signature: void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE*
      iend)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35188,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35194,1
    - Dst: ZSTD_getLowestMatchIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35205,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35228,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35231,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35238,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35243,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35243,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35244,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35250,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35254,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35254,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35255,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35260,1
    - Dst: ZSTD_readMINMATCH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35260,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35261,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35265,1
    - Dst: REPCODE_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35268,1
    - Dst: ZSTD_insertAndFindFirstIndexHash3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35278,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35284,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35287,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35292,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35295,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35296,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35297,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35313,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35314,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35317,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35319,1
    - Dst: memcmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35319,1
    - Dst: ZSTD_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35320,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35323,1
    - Dst: memcmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35323,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35324,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35330,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35331,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35332,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35336,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35362,1
    - Dst: ZSTD_hashPtr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35364,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35370,1
    - Dst: ZSTD_count_2segments
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35372,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35378,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35379,1
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35383,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35401,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 139
    argCount: 10
    argNames:
    - matches
    - ms
    - nextToUpdate3
    - ip
    - iLimit
    - dictMode
    - rep
    - ll0
    - lengthToBeat
    - mls
    argTypes:
    - ZSTD_match_t*
    - ZSTD_matchState_t*
    - U32*
    - BYTE*
    - BYTE*
    - ZSTD_dictMode_e
    - U32[]
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (memcmp(match, ip, matchLength) == 0)
      pos:
        line_end: 35318
        line_start: 35318
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (memcmp(match, ip, matchLength) == 0)
      pos:
        line_end: 35322
        line_start: 35322
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr > matchIndex)
      pos:
        line_end: 35313
        line_start: 35313
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbCompares <= (1U << ZSTD_SEARCHLOG_MAX))
      pos:
        line_end: 35361
        line_start: 35361
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ll0 <= 1)
      pos:
        line_end: 35230
        line_start: 35230
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr >= dictLimit)
      pos:
        line_end: 35237
        line_start: 35237
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchEndIdx > matchIndex)
      pos:
        line_end: 35331
        line_start: 35331
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr > matchIndex3)
      pos:
        line_end: 35294
        line_start: 35294
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (curr >= windowLow)
      pos:
        line_end: 35249
        line_start: 35249
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mnum==0)
      pos:
        line_end: 35295
        line_start: 35295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchIndex+matchLength >= dictLimit)
      pos:
        line_end: 35316
        line_start: 35316
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (matchEndIdx > curr+8)
      pos:
        line_end: 35400
        line_start: 35400
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35404
      start: 35173
    functionDepth: 7
    functionLinenumber: 35173
    functionLinenumberEnd: 35404
    functionName: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_readMINMATCH
    - REPCODE_TO_OFFBASE
    - ZSTD_count
    - ZSTD_getLowestMatchIndex
    - DEBUGLOG
    - OFFSET_TO_OFFBASE
    - ZSTD_hashPtr
    - ZSTD_insertAndFindFirstIndexHash3
    - assert
    - memcmp
    - ZSTD_count_2segments
    - MIN
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_ALLOW_POINTER_OVERFLOW_ATTR\nU32\nZSTD_insertBtAndGetAllMatches
      (\n                ZSTD_match_t* matches,  /* store result (found matches) in
      this table (presumed large enough) */\n                ZSTD_matchState_t* ms,\n
      \               U32* nextToUpdate3,\n                const BYTE* const ip, const
      BYTE* const iLimit,\n                const ZSTD_dictMode_e dictMode,\n                const
      U32 rep[ZSTD_REP_NUM],\n                const U32 ll0,  /* tells if associated
      literal length is 0 or not. This value must be 0 or 1 */\n                const
      U32 lengthToBeat,\n                const U32 mls /* template */)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35430,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35430,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35431,1
    - Dst: ZSTD_updateTree_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35434,1
    - Dst: ZSTD_insertBtAndGetAllMatches
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 10
    argNames:
    - matches
    - ms
    - nextToUpdate3
    - ip
    - iHighLimit
    - rep
    - ll0
    - lengthToBeat
    - dictMode
    - mls
    argTypes:
    - ZSTD_match_t*
    - ZSTD_matchState_t*
    - U32*
    - BYTE*
    - BYTE*
    - U32[]
    - U32
    - U32
    - ZSTD_dictMode_e
    - U32
    assertStmts:
    - condition: (BOUNDED(3, ms->cParams.minMatch, 6) == mls)
      pos:
        line_end: 35429
        line_start: 35429
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35436
      start: 35416
    functionDepth: 9
    functionLinenumber: 35416
    functionLinenumberEnd: 35436
    functionName: ZSTD_btGetAllMatches_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_updateTree_internal
    - ZSTD_insertBtAndGetAllMatches
    - DEBUGLOG
    - assert
    - BOUNDED
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_btGetAllMatches_internal(\n        ZSTD_match_t*
      matches,\n        ZSTD_matchState_t* ms,\n        U32* nextToUpdate3,\n        const
      BYTE* ip,\n        const BYTE* const iHighLimit,\n        const U32 rep[ZSTD_REP_NUM],\n
      \       U32 const ll0,\n        U32 const lengthToBeat,\n        const ZSTD_dictMode_e
      dictMode,\n        const U32 mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35439
      start: 35438
    functionDepth: 0
    functionLinenumber: 35438
    functionLinenumberEnd: 35439
    functionName: ZSTD_BT_GET_ALL_MATCHES_FN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dictMode
    - ','
    - mls
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35455
      start: 35440
    functionDepth: 0
    functionLinenumber: 35440
    functionLinenumberEnd: 35455
    functionName: GEN_ZSTD_BT_GET_ALL_MATCHES_
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35461
      start: 35456
    functionDepth: 0
    functionLinenumber: 35456
    functionLinenumberEnd: 35461
    functionName: GEN_ZSTD_BT_GET_ALL_MATCHES
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_ZSTD_BT_GET_ALL_MATCHES(dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dictMode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35473
      start: 35466
    functionDepth: 0
    functionLinenumber: 35466
    functionLinenumberEnd: 35473
    functionName: ZSTD_BT_GET_ALL_MATCHES_ARRAY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_BT_GET_ALL_MATCHES_ARRAY(dictMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_BT_GET_ALL_MATCHES_ARRAY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35478,1
    - Dst: ZSTD_BT_GET_ALL_MATCHES_ARRAY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35479,1
    - Dst: ZSTD_BT_GET_ALL_MATCHES_ARRAY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35480,1
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35482,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35483,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ms
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - ZSTD_dictMode_e
    assertStmts:
    - condition: ((U32)dictMode < 3)
      pos:
        line_end: 35482
        line_start: 35482
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mls - 3 < 4)
      pos:
        line_end: 35483
        line_start: 35483
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35486
      start: 35474
    functionDepth: 1
    functionLinenumber: 35474
    functionLinenumberEnd: 35486
    functionName: ZSTD_selectBtGetAllMatches
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - BOUNDED
    - ZSTD_BT_GET_ALL_MATCHES_ARRAY
    linkageType: ''
    returnType: ZSTD_getAllMatchesFn
    signature: ZSTD_getAllMatchesFn ZSTD_selectBtGetAllMatches(ZSTD_matchState_t const*
      ms, ZSTD_dictMode_e const dictMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - rawSeqStore
    - nbBytes
    argTypes:
    - rawSeqStore_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35520
      start: 35504
    functionDepth: 0
    functionLinenumber: 35504
    functionLinenumberEnd: 35520
    functionName: ZSTD_optLdm_skipRawSeqStoreBytes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZSTD_optLdm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t
      nbBytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35544,1
    - Dst: ZSTD_optLdm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35557,1
    - Dst: ZSTD_optLdm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35570,1
    - Dst: ZSTD_optLdm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35573,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - optLdm
    - currPosInBlock
    - blockBytesRemaining
    argTypes:
    - ZSTD_optLdm_t*
    - U32
    - U32
    assertStmts:
    - condition: (optLdm->seqStore.posInSequence <= currSeq.litLength + currSeq.matchLength)
      pos:
        line_end: 35543
        line_start: 35543
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 35575
      start: 35526
    functionDepth: 1
    functionLinenumber: 35526
    functionLinenumberEnd: 35575
    functionName: ZSTD_opt_getNextMatchAndUpdateSeqStore
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_optLdm_skipRawSeqStoreBytes
    - assert
    linkageType: ''
    returnType: void
    signature: "void ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm,
      U32 currPosInBlock,\n                                       U32 blockBytesRemaining)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OFFSET_TO_OFFBASE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35597,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - matches
    - nbMatches
    - optLdm
    - currPosInBlock
    argTypes:
    - ZSTD_match_t*
    - U32*
    - ZSTD_optLdm_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35604
      start: 35582
    functionDepth: 1
    functionLinenumber: 35582
    functionLinenumberEnd: 35604
    functionName: ZSTD_optLdm_maybeAddMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - OFFSET_TO_OFFBASE
    linkageType: ''
    returnType: void
    signature: "void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches,\n
      \                                     const ZSTD_optLdm_t* optLdm, U32 currPosInBlock)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_optLdm_skipRawSeqStoreBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35625,1
    - Dst: ZSTD_opt_getNextMatchAndUpdateSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35627,1
    - Dst: ZSTD_optLdm_maybeAddMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - optLdm
    - matches
    - nbMatches
    - currPosInBlock
    - remainingBytes
    argTypes:
    - ZSTD_optLdm_t*
    - ZSTD_match_t*
    - U32*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35630
      start: 35609
    functionDepth: 2
    functionLinenumber: 35609
    functionLinenumberEnd: 35630
    functionName: ZSTD_optLdm_processMatchCandidate
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_optLdm_skipRawSeqStoreBytes
    - ZSTD_opt_getNextMatchAndUpdateSeqStore
    - ZSTD_optLdm_maybeAddMatch
    linkageType: ''
    returnType: void
    signature: "void ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm,\n                                  ZSTD_match_t*
      matches, U32* nbMatches,\n                                  U32 currPosInBlock,
      U32 remainingBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35647,1
    - Dst: RAWLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - table
    - lastEltID
    argTypes:
    - U32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35650
      start: 35639
    functionDepth: 1
    functionLinenumber: 35639
    functionLinenumberEnd: 35650
    functionName: listStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RAWLOG
    linkageType: ''
    returnType: void
    signature: void listStats(const U32* table, int lastEltID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35655
      start: 35654
    functionDepth: 0
    functionLinenumber: 35654
    functionLinenumberEnd: 35655
    functionName: LIT_PRICE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIT_PRICE(_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35656
      start: 35655
    functionDepth: 0
    functionLinenumber: 35655
    functionLinenumberEnd: 35656
    functionName: LL_PRICE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL_PRICE(_l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35657
      start: 35656
    functionDepth: 0
    functionLinenumber: 35656
    functionLinenumberEnd: 35657
    functionName: LL_INCPRICE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LL_INCPRICE(_l)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_selectBtGetAllMatches
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35678,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35680,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35689,1
    - Dst: ZSTD_opt_getNextMatchAndUpdateSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35693,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35696,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35698,1
    - Dst: ZSTD_rescaleFreqs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35699,1
    - Dst: getAllMatches
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35709,1
    - Dst: ZSTD_optLdm_processMatchCandidate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35710,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35713,1
    - Dst: LL_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35733,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35734,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35735,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35740,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35747,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35755,1
    - Dst: ZSTD_getMatchPrice
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35767,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35769,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35770,1
    - Dst: LL_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35774,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35785,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35786,1
    - Dst: LIT_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35791,1
    - Dst: LL_INCPRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35792,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35793,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35796,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35797,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35797,1
    - Dst: LL_INCPRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35804,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35805,1
    - Dst: LIT_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35808,1
    - Dst: LL_INCPRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35808,1
    - Dst: LIT_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35809,1
    - Dst: LL_INCPRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35809,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35810,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35811,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35811,1
    - Dst: ZSTD_newRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35816,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35817,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35818,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35819,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35819,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35822,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35829,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35830,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35830,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35837,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35838,1
    - Dst: ZSTD_newRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35842,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35843,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35853,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35857,1
    - Dst: LL_PRICE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35860,1
    - Dst: getAllMatches
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35861,1
    - Dst: ZSTD_optLdm_processMatchCandidate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35864,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35868,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35873,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35893,1
    - Dst: ZSTD_getMatchPrice
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35898,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35901,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35902,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35902,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35914,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35915,1
    - Dst: ZSTD_fCost
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35915,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35923,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35927,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35928,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35929,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35933,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35937,1
    - Dst: ZSTD_newRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35942,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35943,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35945,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35946,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35962,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35964,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35965,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35980,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35988,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:35993,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36000,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36004,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36009,1
    - Dst: ZSTD_updateStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36010,1
    - Dst: ZSTD_storeSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36011,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36015,1
    - Dst: ZSTD_setBasePrices
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36018,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 196
    argCount: 7
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - optLevel
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - int
    - ZSTD_dictMode_e
    assertStmts:
    - condition: (cur >= opt[cur].mlen)
      pos:
        line_end: 35837
        line_start: 35837
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (storePos == storeEnd)
      pos:
        line_end: 36003
        line_start: 36003
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cur >= prevMatch.mlen)
      pos:
        line_end: 35816
        line_start: 35816
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (price < 1000000000)
      pos:
        line_end: 35792
        line_start: 35792
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (lastStretch.off > 0)
      pos:
        line_end: 35936
        line_start: 35936
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nextStretch.litlen + nextStretch.mlen <= stretchPos)
      pos:
        line_end: 35987
        line_start: 35987
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cur >= lastStretch.litlen)
      pos:
        line_end: 35945
        line_start: 35945
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (opt[0].price >= 0)
      pos:
        line_end: 35754
        line_start: 35754
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (lastStretch.litlen == (ip - anchor) + last_pos)
      pos:
        line_end: 35932
        line_start: 35932
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cur <= ZSTD_OPT_NUM)
      pos:
        line_end: 35784
        line_start: 35784
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (last_pos >= lastStretch.mlen)
      pos:
        line_end: 35927
        line_start: 35927
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (opt[0].mlen == 0)
      pos:
        line_end: 35926
        line_start: 35926
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (storeEnd < ZSTD_OPT_SIZE)
      pos:
        line_end: 35963
        line_start: 35963
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (anchor + llen <= iend)
      pos:
        line_end: 36008
        line_start: 36008
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cur == last_pos - lastStretch.mlen)
      pos:
        line_end: 35928
        line_start: 35928
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (optLevel <= 2)
      pos:
        line_end: 35697
        line_start: 35697
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (opt[cur].price >= 0)
      pos:
        line_end: 35856
        line_start: 35856
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cur >= lastStretch.mlen)
      pos:
        line_end: 35922
        line_start: 35922
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36024
      start: 35658
    functionDepth: 6
    functionLinenumber: 35658
    functionLinenumberEnd: 36024
    functionName: ZSTD_compressBlock_opt_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rescaleFreqs
    - getAllMatches
    - ZSTD_storeSeq
    - LL_PRICE
    - ZSTD_opt_getNextMatchAndUpdateSeqStore
    - assert
    - ZSTD_STATIC_ASSERT
    - ZSTD_newRep
    - ZSTD_fCost
    - DEBUGLOG
    - LIKELY
    - LL_INCPRICE
    - MIN
    - ZSTD_updateStats
    - ZSTD_memcpy
    - ZSTD_setBasePrices
    - ZSTD_getMatchPrice
    - ZSTD_optLdm_processMatchCandidate
    - LIT_PRICE
    - ZSTD_selectBtGetAllMatches
    - ZSTD_memset
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_compressBlock_opt_generic(ZSTD_matchState_t*
      ms,\n                               seqStore_t* seqStore,\n                               U32
      rep[ZSTD_REP_NUM],\n                         const void* src, size_t srcSize,\n
      \                        const int optLevel,\n                         const
      ZSTD_dictMode_e dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - ZSTD_dictMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36033
      start: 36028
    functionDepth: 7
    functionLinenumber: 36028
    functionLinenumberEnd: 36033
    functionName: ZSTD_compressBlock_opt0
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_opt0(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t srcSize, const
      ZSTD_dictMode_e dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt_generic
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    - dictMode
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    - ZSTD_dictMode_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36042
      start: 36037
    functionDepth: 7
    functionLinenumber: 36037
    functionLinenumberEnd: 36042
    functionName: ZSTD_compressBlock_opt2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt_generic
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_opt2(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t srcSize, const
      ZSTD_dictMode_e dictMode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36050,1
    - Dst: ZSTD_compressBlock_opt0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36052
      start: 36046
    functionDepth: 8
    functionLinenumber: 36046
    functionLinenumberEnd: 36052
    functionName: ZSTD_compressBlock_btopt
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt0
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btopt(\n        ZSTD_matchState_t* ms, seqStore_t*
      seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36072,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36074,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36075,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36076,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36077,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36078,1
    - Dst: ZSTD_compressBlock_opt2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36080,1
    - Dst: ZSTD_resetSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts:
    - condition: (ms->window.dictLimit == ms->window.lowLimit)
      pos:
        line_end: 36076
        line_start: 36076
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->opt.litLengthSum == 0)
      pos:
        line_end: 36074
        line_start: 36074
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seqStore->sequences == seqStore->sequencesStart)
      pos:
        line_end: 36075
        line_start: 36075
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ms->window.dictLimit - ms->nextToUpdate <= 1)
      pos:
        line_end: 36077
        line_start: 36077
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36089
      start: 36064
    functionDepth: 8
    functionLinenumber: 36064
    functionLinenumberEnd: 36089
    functionName: ZSTD_initStats_ultra
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_compressBlock_opt2
    - DEBUGLOG
    - assert
    - ZSTD_resetSeqStore
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_initStats_ultra(ZSTD_matchState_t*
      ms,\n                          seqStore_t* seqStore,\n                          U32
      rep[ZSTD_REP_NUM],\n                    const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36095,1
    - Dst: ZSTD_compressBlock_opt2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36097
      start: 36091
    functionDepth: 8
    functionLinenumber: 36091
    functionLinenumberEnd: 36097
    functionName: ZSTD_compressBlock_btultra
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt2
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btultra(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36104,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36114,1
    - Dst: ZSTD_initStats_ultra
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36121,1
    - Dst: ZSTD_compressBlock_opt2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts:
    - condition: (srcSize <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 36113
        line_start: 36113
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36125
      start: 36099
    functionDepth: 9
    functionLinenumber: 36099
    functionLinenumberEnd: 36125
    functionName: ZSTD_compressBlock_btultra2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_compressBlock_opt2
    - ZSTD_initStats_ultra
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btultra2(\n        ZSTD_matchState_t* ms,
      seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36134
      start: 36129
    functionDepth: 8
    functionLinenumber: 36129
    functionLinenumberEnd: 36134
    functionName: ZSTD_compressBlock_btopt_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt0
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btopt_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36141
      start: 36136
    functionDepth: 8
    functionLinenumber: 36136
    functionLinenumberEnd: 36141
    functionName: ZSTD_compressBlock_btopt_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt0
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btopt_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36150
      start: 36145
    functionDepth: 8
    functionLinenumber: 36145
    functionLinenumberEnd: 36150
    functionName: ZSTD_compressBlock_btultra_dictMatchState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btultra_dictMatchState(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_compressBlock_opt2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ms
    - seqStore
    - rep
    - src
    - srcSize
    argTypes:
    - ZSTD_matchState_t*
    - seqStore_t*
    - U32[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36157
      start: 36152
    functionDepth: 8
    functionLinenumber: 36152
    functionLinenumberEnd: 36157
    functionName: ZSTD_compressBlock_btultra_extDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_compressBlock_opt2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_compressBlock_btultra_extDict(\n        ZSTD_matchState_t*
      ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM],\n        const void* src, size_t
      srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36215
      start: 36208
    functionDepth: 0
    functionLinenumber: 36208
    functionLinenumberEnd: 36215
    functionName: DEBUG_PRINTHEX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_PRINTHEX(l,p,n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36219,1
    - Dst: times
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36223
      start: 36216
    functionDepth: 0
    functionLinenumber: 36216
    functionLinenumberEnd: 36223
    functionName: GetCurrentClockTimeMicroseconds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - sysconf
    - times
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long GetCurrentClockTimeMicroseconds(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36234
      start: 36226
    functionDepth: 0
    functionLinenumber: 36226
    functionLinenumberEnd: 36234
    functionName: ZSTD_PTHREAD_MUTEX_LOCK
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_PTHREAD_MUTEX_LOCK(mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36247
      start: 36246
    functionDepth: 0
    functionLinenumber: 36246
    functionLinenumberEnd: 36247
    functionName: ZSTD_PTHREAD_MUTEX_LOCK
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSTD_PTHREAD_MUTEX_LOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36248
      start: 36247
    functionDepth: 0
    functionLinenumber: 36247
    functionLinenumberEnd: 36248
    functionName: DEBUG_PRINTHEX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_PRINTHEX(l,p,n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36273,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36278,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36279,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36281,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36283,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - bufPool
    argTypes:
    - ZSTDMT_bufferPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36285
      start: 36271
    functionDepth: 2
    functionLinenumber: 36271
    functionLinenumberEnd: 36285
    functionName: ZSTDMT_freeBufferPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_destroy
    - DEBUGLOG
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_freeBufferPool(ZSTDMT_bufferPool* bufPool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36290,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36292,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36293,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36296,1
    - Dst: ZSTDMT_freeBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - maxNbBuffers
    - cMem
    argTypes:
    - unsigned
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36306
      start: 36287
    functionDepth: 3
    functionLinenumber: 36287
    functionLinenumberEnd: 36306
    functionName: ZSTDMT_createBufferPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customCalloc
    - ZSTDMT_freeBufferPool
    - ZSTD_pthread_mutex_init
    - ZSTD_customFree
    linkageType: ''
    returnType: ZSTDMT_bufferPool
    signature: ZSTDMT_bufferPool * ZSTDMT_createBufferPool(unsigned maxNbBuffers,
      ZSTD_customMem cMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36315,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bufPool
    argTypes:
    - ZSTDMT_bufferPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36321
      start: 36309
    functionDepth: 1
    functionLinenumber: 36309
    functionLinenumberEnd: 36321
    functionName: ZSTDMT_sizeof_bufferPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_sizeof_bufferPool(ZSTDMT_bufferPool* bufPool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36329,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36330,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - bufPool
    - bSize
    argTypes:
    - ZSTDMT_bufferPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36333
      start: 36327
    functionDepth: 1
    functionLinenumber: 36327
    functionLinenumberEnd: 36333
    functionName: ZSTDMT_setBufferSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - DEBUGLOG
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_setBufferSize(ZSTDMT_bufferPool* const bufPool, size_t
      const bSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_freeBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36345,1
    - Dst: ZSTDMT_createBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36346,1
    - Dst: ZSTDMT_setBufferSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - srcBufPool
    - maxNbBuffers
    argTypes:
    - ZSTDMT_bufferPool*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36351
      start: 36336
    functionDepth: 4
    functionLinenumber: 36336
    functionLinenumberEnd: 36351
    functionName: ZSTDMT_expandBufferPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_setBufferSize
    - ZSTDMT_freeBufferPool
    - ZSTDMT_createBufferPool
    linkageType: ''
    returnType: ZSTDMT_bufferPool
    signature: ZSTDMT_bufferPool * ZSTDMT_expandBufferPool(ZSTDMT_bufferPool* srcBufPool,
      unsigned maxNbBuffers)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36360,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36361,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36368,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36370,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36374,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36375,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36377,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36379,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36381,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36385,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - bufPool
    argTypes:
    - ZSTDMT_bufferPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36391
      start: 36357
    functionDepth: 2
    functionLinenumber: 36357
    functionLinenumberEnd: 36391
    functionName: ZSTDMT_getBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    - ZSTD_customMalloc
    - DEBUGLOG
    - ZSTD_customFree
    linkageType: ''
    returnType: buffer_t
    signature: buffer_t ZSTDMT_getBuffer(ZSTDMT_bufferPool* bufPool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36403,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36408,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36409,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36410,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - bufPool
    - buffer
    argTypes:
    - ZSTDMT_bufferPool*
    - buffer_t
    assertStmts:
    - condition: (newBuffer.capacity >= buffer.capacity)
      pos:
        line_end: 36407
        line_start: 36407
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36416
      start: 36399
    functionDepth: 2
    functionLinenumber: 36399
    functionLinenumberEnd: 36416
    functionName: ZSTDMT_resizeBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMalloc
    - assert
    - ZSTD_memcpy
    - DEBUGLOG
    linkageType: ''
    returnType: buffer_t
    signature: buffer_t ZSTDMT_resizeBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36422,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36424,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36427,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36429,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36432,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36434,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - bufPool
    - buf
    argTypes:
    - ZSTDMT_bufferPool*
    - buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36436
      start: 36420
    functionDepth: 2
    functionLinenumber: 36420
    functionLinenumberEnd: 36436
    functionName: ZSTDMT_releaseBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - DEBUGLOG
    - ZSTD_pthread_mutex_unlock
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_releaseBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbWorkers
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36444
      start: 36443
    functionDepth: 0
    functionLinenumber: 36443
    functionLinenumberEnd: 36444
    functionName: BUF_POOL_MAX_NB_BUFFERS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_POOL_MAX_NB_BUFFERS(nbWorkers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nbWorkers
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36448
      start: 36447
    functionDepth: 0
    functionLinenumber: 36447
    functionLinenumberEnd: 36448
    functionName: SEQ_POOL_MAX_NB_BUFFERS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEQ_POOL_MAX_NB_BUFFERS(nbWorkers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_sizeof_bufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seqPool
    argTypes:
    - ZSTDMT_seqPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36456
      start: 36453
    functionDepth: 2
    functionLinenumber: 36453
    functionLinenumberEnd: 36456
    functionName: ZSTDMT_sizeof_seqPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_sizeof_bufferPool
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_sizeof_seqPool(ZSTDMT_seqPool* seqPool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36464
      start: 36458
    functionDepth: 0
    functionLinenumber: 36458
    functionLinenumberEnd: 36464
    functionName: bufferToSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rawSeqStore_t
    signature: rawSeqStore_t bufferToSeq(buffer_t buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seq
    argTypes:
    - rawSeqStore_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36472
      start: 36466
    functionDepth: 0
    functionLinenumber: 36466
    functionLinenumberEnd: 36472
    functionName: seqToBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: buffer_t
    signature: buffer_t seqToBuffer(rawSeqStore_t seq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bufferToSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36479,1
    - Dst: ZSTDMT_getBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - seqPool
    argTypes:
    - ZSTDMT_seqPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36480
      start: 36474
    functionDepth: 3
    functionLinenumber: 36474
    functionLinenumberEnd: 36480
    functionName: ZSTDMT_getSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - bufferToSeq
    - ZSTDMT_getBuffer
    linkageType: ''
    returnType: rawSeqStore_t
    signature: rawSeqStore_t ZSTDMT_getSeq(ZSTDMT_seqPool* seqPool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferToSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36485,1
    - Dst: ZSTDMT_resizeBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36485,1
    - Dst: seqToBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seqPool
    - seq
    argTypes:
    - ZSTDMT_seqPool*
    - rawSeqStore_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36486
      start: 36483
    functionDepth: 3
    functionLinenumber: 36483
    functionLinenumberEnd: 36486
    functionName: ZSTDMT_resizeSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_resizeBuffer
    - bufferToSeq
    - seqToBuffer
    linkageType: ''
    returnType: rawSeqStore_t
    signature: rawSeqStore_t ZSTDMT_resizeSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t
      seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_releaseBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36491,1
    - Dst: seqToBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seqPool
    - seq
    argTypes:
    - ZSTDMT_seqPool*
    - rawSeqStore_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36492
      start: 36489
    functionDepth: 3
    functionLinenumber: 36489
    functionLinenumberEnd: 36492
    functionName: ZSTDMT_releaseSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - seqToBuffer
    - ZSTDMT_releaseBuffer
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_releaseSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_setBufferSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seqPool
    - nbSeq
    argTypes:
    - ZSTDMT_seqPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36497
      start: 36494
    functionDepth: 2
    functionLinenumber: 36494
    functionLinenumberEnd: 36497
    functionName: ZSTDMT_setNbSeq
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_setBufferSize
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_setNbSeq(ZSTDMT_seqPool* const seqPool, size_t const nbSeq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_createBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36501,1
    - Dst: SEQ_POOL_MAX_NB_BUFFERS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36501,1
    - Dst: ZSTDMT_setNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nbWorkers
    - cMem
    argTypes:
    - unsigned
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36505
      start: 36499
    functionDepth: 4
    functionLinenumber: 36499
    functionLinenumberEnd: 36505
    functionName: ZSTDMT_createSeqPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_setNbSeq
    - SEQ_POOL_MAX_NB_BUFFERS
    - ZSTDMT_createBufferPool
    linkageType: ''
    returnType: ZSTDMT_seqPool
    signature: ZSTDMT_seqPool * ZSTDMT_createSeqPool(unsigned nbWorkers, ZSTD_customMem
      cMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_freeBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seqPool
    argTypes:
    - ZSTDMT_seqPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36510
      start: 36507
    functionDepth: 3
    functionLinenumber: 36507
    functionLinenumberEnd: 36510
    functionName: ZSTDMT_freeSeqPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_freeBufferPool
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_freeSeqPool(ZSTDMT_seqPool* seqPool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_expandBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36514,1
    - Dst: SEQ_POOL_MAX_NB_BUFFERS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - nbWorkers
    argTypes:
    - ZSTDMT_seqPool*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36515
      start: 36512
    functionDepth: 5
    functionLinenumber: 36512
    functionLinenumberEnd: 36515
    functionName: ZSTDMT_expandSeqPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_expandBufferPool
    - SEQ_POOL_MAX_NB_BUFFERS
    linkageType: ''
    returnType: ZSTDMT_seqPool
    signature: ZSTDMT_seqPool * ZSTDMT_expandSeqPool(ZSTDMT_seqPool* pool, U32 nbWorkers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36533,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36537,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36538,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pool
    argTypes:
    - ZSTDMT_CCtxPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36541
      start: 36530
    functionDepth: 5
    functionLinenumber: 36530
    functionLinenumberEnd: 36541
    functionName: ZSTDMT_freeCCtxPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCCtx
    - ZSTD_pthread_mutex_destroy
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_freeCCtxPool(ZSTDMT_CCtxPool* pool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36549,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36550,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36552,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36553,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36557,1
    - Dst: ZSTDMT_freeCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36559,1
    - Dst: ZSTD_createCCtx_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36563,1
    - Dst: ZSTDMT_freeCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36564,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - nbWorkers
    - cMem
    argTypes:
    - int
    - ZSTD_customMem
    assertStmts:
    - condition: (nbWorkers > 0)
      pos:
        line_end: 36549
        line_start: 36549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36568
      start: 36545
    functionDepth: 6
    functionLinenumber: 36545
    functionLinenumberEnd: 36568
    functionName: ZSTDMT_createCCtxPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createCCtx_advanced
    - DEBUGLOG
    - ZSTDMT_freeCCtxPool
    - ZSTD_customFree
    - assert
    - ZSTD_customCalloc
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: ZSTDMT_CCtxPool
    signature: "ZSTDMT_CCtxPool * ZSTDMT_createCCtxPool(int nbWorkers,\n                                              ZSTD_customMem
      cMem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_freeCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36577,1
    - Dst: ZSTDMT_createCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - srcPool
    - nbWorkers
    argTypes:
    - ZSTDMT_CCtxPool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36580
      start: 36570
    functionDepth: 7
    functionLinenumber: 36570
    functionLinenumberEnd: 36580
    functionName: ZSTDMT_expandCCtxPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_createCCtxPool
    - ZSTDMT_freeCCtxPool
    linkageType: ''
    returnType: ZSTDMT_CCtxPool
    signature: "ZSTDMT_CCtxPool * ZSTDMT_expandCCtxPool(ZSTDMT_CCtxPool* srcPool,\n
      \                                             int nbWorkers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36585,1
    - Dst: ZSTD_sizeof_CCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36592,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36594,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - cctxPool
    argTypes:
    - ZSTDMT_CCtxPool*
    assertStmts:
    - condition: (nbWorkers > 0)
      pos:
        line_end: 36594
        line_start: 36594
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36598
      start: 36583
    functionDepth: 3
    functionLinenumber: 36583
    functionLinenumberEnd: 36598
    functionName: ZSTDMT_sizeof_CCtxPool
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    - ZSTD_sizeof_CCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_sizeof_CCtxPool(ZSTDMT_CCtxPool* cctxPool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36602,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36603,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36607,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36610,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36611,1
    - Dst: ZSTD_createCCtx_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cctxPool
    argTypes:
    - ZSTDMT_CCtxPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36613
      start: 36600
    functionDepth: 5
    functionLinenumber: 36600
    functionLinenumberEnd: 36613
    functionName: ZSTDMT_getCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - DEBUGLOG
    - ZSTD_pthread_mutex_unlock
    - ZSTD_createCCtx_advanced
    linkageType: ''
    returnType: ZSTD_CCtx
    signature: ZSTD_CCtx * ZSTDMT_getCCtx(ZSTDMT_CCtxPool* cctxPool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36618,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36623,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36624,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - cctx
    argTypes:
    - ZSTDMT_CCtxPool*
    - ZSTD_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36627
      start: 36615
    functionDepth: 5
    functionLinenumber: 36615
    functionLinenumberEnd: 36627
    functionName: ZSTDMT_releaseCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeCCtx
    - ZSTD_pthread_mutex_lock
    - DEBUGLOG
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_releaseCCtx(ZSTDMT_CCtxPool* pool, ZSTD_CCtx* cctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36662,1
    - Dst: ZSTD_ldm_adjustParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36663,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36664,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36665,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36667,1
    - Dst: XXH64_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36671,1
    - Dst: ZSTDMT_setNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36683,1
    - Dst: ZSTD_ldm_getMaxNbSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36683,1
    - Dst: ZSTD_window_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36685,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36688,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36689,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36692,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36693,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36698,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36699,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36706,1
    - Dst: ZSTD_ldm_fillHashTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36707,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 7
    argNames:
    - serialState
    - seqPool
    - params
    - jobSize
    - dict
    - dictSize
    - dictContentType
    argTypes:
    - serialState_t*
    - ZSTDMT_seqPool*
    - ZSTD_CCtx_params
    - size_t
    - void*
    - size_t
    - ZSTD_dictContentType_e
    assertStmts:
    - condition: (params.ldmParams.hashRateLog < 32)
      pos:
        line_end: 36664
        line_start: 36664
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (params.ldmParams.hashLog >= params.ldmParams.bucketSizeLog)
      pos:
        line_end: 36663
        line_start: 36663
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36721
      start: 36652
    functionDepth: 3
    functionLinenumber: 36652
    functionLinenumberEnd: 36721
    functionName: ZSTDMT_serialState_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_reset
    - ZSTDMT_setNbSeq
    - ZSTD_customMalloc
    - ZSTD_window_init
    - DEBUGLOG
    - ZSTD_ldm_getMaxNbSeq
    - ZSTD_ldm_adjustParameters
    - ZSTD_customFree
    - ZSTD_memset
    - assert
    - ZSTD_window_update
    - ZSTD_ldm_fillHashTable
    linkageType: ''
    returnType: int
    signature: "int ZSTDMT_serialState_reset(serialState_t* serialState,\n                         ZSTDMT_seqPool*
      seqPool,\n                         ZSTD_CCtx_params params,\n                         size_t
      jobSize,\n                         const void* dict, size_t const dictSize,\n
      \                        ZSTD_dictContentType_e dictContentType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36726,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36727,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36728,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36729,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - serialState
    argTypes:
    - serialState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36732
      start: 36723
    functionDepth: 1
    functionLinenumber: 36723
    functionLinenumberEnd: 36732
    functionName: ZSTDMT_serialState_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_pthread_cond_init
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_serialState_init(serialState_t* serialState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36737,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36738,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36739,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36740,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36741,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - serialState
    argTypes:
    - serialState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36743
      start: 36734
    functionDepth: 2
    functionLinenumber: 36734
    functionLinenumberEnd: 36743
    functionName: ZSTDMT_serialState_free
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_cond_destroy
    - ZSTD_pthread_mutex_destroy
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_serialState_free(serialState_t* serialState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36750,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36752,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36753,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36760,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36762,1
    - Dst: ZSTD_window_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36763,1
    - Dst: ZSTD_ldm_generateSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36764,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36768,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36768,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36772,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36774,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36775,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36778,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36782,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36783,1
    - Dst: ZSTD_referenceExternalSequences
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36786,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - serialState
    - jobCCtx
    - seqStore
    - src
    - jobID
    argTypes:
    - serialState_t*
    - ZSTD_CCtx*
    - rawSeqStore_t
    - range_t
    - unsigned
    assertStmts:
    - condition: (src.size <= serialState->params.jobSize)
      pos:
        line_end: 36761
        line_start: 36761
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: "(seqStore.seq != NULL && seqStore.pos == 0 &&\n                   seqStore.size
        == 0 && seqStore.capacity > 0)"
      pos:
        line_end: 36760
        line_start: 36759
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(error))
      pos:
        line_end: 36767
        line_start: 36767
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (serialState->params.ldmParams.enableLdm == ZSTD_ps_enable)
      pos:
        line_end: 36786
        line_start: 36786
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36789
      start: 36745
    functionDepth: 9
    functionLinenumber: 36745
    functionLinenumberEnd: 36789
    functionName: ZSTDMT_serialState_update
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64_update
    - ZSTD_isError
    - ZSTD_PTHREAD_MUTEX_LOCK
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_signal
    - ZSTD_pthread_cond_wait
    - DEBUGLOG
    - ZSTD_ldm_generateSequences
    - assert
    - ZSTD_window_update
    - ZSTD_referenceExternalSequences
    - ZSTD_pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: "void ZSTDMT_serialState_update(serialState_t* serialState,\n                                      ZSTD_CCtx*
      jobCCtx, rawSeqStore_t seqStore,\n                                      range_t
      src, unsigned jobID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36794,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36796,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36796,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36797,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36799,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36801,1
    - Dst: ZSTD_window_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36802,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36803,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36804,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - serialState
    - jobID
    - cSize
    argTypes:
    - serialState_t*
    - unsigned
    - size_t
    assertStmts:
    - condition: (ZSTD_isError(cSize))
      pos:
        line_end: 36795
        line_start: 36795
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36808
      start: 36791
    functionDepth: 3
    functionLinenumber: 36791
    functionLinenumberEnd: 36808
    functionName: ZSTDMT_serialState_ensureFinished
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_PTHREAD_MUTEX_LOCK
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_signal
    - DEBUGLOG
    - ZSTD_window_clear
    - assert
    - ZSTD_pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: "void ZSTDMT_serialState_ensureFinished(serialState_t* serialState,\n
      \                                             unsigned jobID, size_t cSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36846
      start: 36839
    functionDepth: 0
    functionLinenumber: 36839
    functionLinenumberEnd: 36846
    functionName: JOB_ERROR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOB_ERROR(e)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_getCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36852,1
    - Dst: ZSTDMT_getSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36853,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36858,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36858,1
    - Dst: ZSTDMT_getBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36860,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36861,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36861,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36865,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36865,1
    - Dst: ZSTD_compressBegin_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36879,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36880,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36881,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36881,1
    - Dst: ZSTD_CCtxParams_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36884,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36885,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36885,1
    - Dst: ZSTD_CCtxParams_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36888,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36889,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36889,1
    - Dst: ZSTD_compressBegin_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36891,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36896,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36896,1
    - Dst: ZSTDMT_serialState_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36900,1
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36903,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36904,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36904,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36905,1
    - Dst: ZSTD_invalidateRepCodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36906,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36917,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36918,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36919,1
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36921,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36922,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36922,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36924,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36926,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36929,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36931,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36932,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36935,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36936,1
    - Dst: ZSTD_compressEnd_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36941,1
    - Dst: ZSTD_compressContinue_public
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36942,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36943,1
    - Dst: JOB_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36943,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36950,1
    - Dst: ZSTD_window_hasExtDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36950,1
    - Dst: ZSTD_CCtx_trace
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36952,1
    - Dst: ZSTDMT_serialState_ensureFinished
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36955,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36957,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36958,1
    - Dst: ZSTDMT_releaseSeq
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36960,1
    - Dst: ZSTDMT_releaseCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36961,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36963,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36964,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36964,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36967,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:36968,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 1
    argNames:
    - jobDescription
    argTypes:
    - void*
    assertStmts:
    - condition: (job->firstJob)
      pos:
        line_end: 36879
        line_start: 36879
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_window_hasExtDict(cctx->blockState.matchState.window))
      pos:
        line_end: 36949
        line_start: 36949
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (chunkSize > 0)
      pos:
        line_end: 36934
        line_start: 36934
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->cSize == 0)
      pos:
        line_end: 36918
        line_start: 36918
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op < oend)
      pos:
        line_end: 36923
        line_start: 36923
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (lastCBlockSize == 0)
      pos:
        line_end: 36963
        line_start: 36963
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((chunkSize & (chunkSize - 1)) == 0)
      pos:
        line_end: 36935
        line_start: 36935
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->src.size < ((size_t)INT_MAX) * chunkSize)
      pos:
        line_end: 36916
        line_start: 36916
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 36969
      start: 36848
    functionDepth: 21
    functionLinenumber: 36848
    functionLinenumberEnd: 36969
    functionName: ZSTDMT_compressionJob
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ERROR
    - ZSTDMT_getBuffer
    - ZSTDMT_releaseCCtx
    - ZSTDMT_serialState_update
    - ZSTD_pthread_cond_signal
    - ZSTDMT_getCCtx
    - ZSTDMT_releaseSeq
    - ZSTD_compressContinue_public
    - ZSTDMT_getSeq
    - ZSTD_compressBegin_advanced_internal
    - assert
    - ZSTD_window_hasExtDict
    - JOB_ERROR
    - ZSTD_CCtxParams_setParameter
    - ZSTD_compressEnd_public
    - DEBUGLOG
    - ZSTD_invalidateRepCodes
    - ZSTD_CCtx_trace
    - ZSTD_PTHREAD_MUTEX_LOCK
    - ZSTD_pthread_mutex_unlock
    - ZSTDMT_serialState_ensureFinished
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_compressionJob(void* jobDescription)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37048,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37049,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - jobTable
    - nbJobs
    - cMem
    argTypes:
    - ZSTDMT_jobDescription*
    - U32
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37052
      start: 37043
    functionDepth: 2
    functionLinenumber: 37043
    functionLinenumberEnd: 37052
    functionName: ZSTDMT_freeJobsTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_cond_destroy
    - ZSTD_pthread_mutex_destroy
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_freeJobsTable(ZSTDMT_jobDescription* jobTable, U32 nbJobs,
      ZSTD_customMem cMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37059,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37063,1
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37068,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37069,1
    - Dst: ZSTDMT_freeJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - nbJobsPtr
    - cMem
    argTypes:
    - U32*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37076
      start: 37057
    functionDepth: 4
    functionLinenumber: 37057
    functionLinenumberEnd: 37076
    functionName: ZSTDMT_createJobsTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - ZSTDMT_freeJobsTable
    - ZSTD_customCalloc
    - ZSTD_pthread_cond_init
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: ZSTDMT_jobDescription
    signature: ZSTDMT_jobDescription * ZSTDMT_createJobsTable(U32* nbJobsPtr, ZSTD_customMem
      cMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_freeJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37081,1
    - Dst: ZSTDMT_createJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37083,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37084,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mtctx
    - nbWorkers
    argTypes:
    - ZSTDMT_CCtx*
    - U32
    assertStmts:
    - condition: ((nbJobs != 0) && ((nbJobs & (nbJobs - 1)) == 0))
      pos:
        line_end: 37084
        line_start: 37084
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37089
      start: 37078
    functionDepth: 5
    functionLinenumber: 37078
    functionLinenumberEnd: 37089
    functionName: ZSTDMT_expandJobsTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTDMT_freeJobsTable
    - ZSTDMT_createJobsTable
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_expandJobsTable (ZSTDMT_CCtx* mtctx, U32 nbWorkers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_CCtxParams_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - nbWorkers
    argTypes:
    - ZSTD_CCtx_params*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37097
      start: 37094
    functionDepth: 5
    functionLinenumber: 37094
    functionLinenumberEnd: 37097
    functionName: ZSTDMT_CCtxParam_setNbWorkers
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_CCtxParams_setParameter
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_CCtxParam_setNbWorkers(ZSTD_CCtx_params* params, unsigned
      nbWorkers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37104,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37107,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37112,1
    - Dst: ZSTDMT_CCtxParam_setNbWorkers
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37114,1
    - Dst: POOL_create_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37122,1
    - Dst: ZSTDMT_createJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37125,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37126,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37126,1
    - Dst: ZSTDMT_createBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37128,1
    - Dst: BUF_POOL_MAX_NB_BUFFERS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37128,1
    - Dst: ZSTDMT_createCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37129,1
    - Dst: ZSTDMT_createSeqPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37130,1
    - Dst: ZSTDMT_serialState_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37131,1
    - Dst: ZSTDMT_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37134,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (nbJobs > 0)
      pos:
        line_end: 37125
        line_start: 37125
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((nbJobs & (nbJobs - 1)) == 0)
      pos:
        line_end: 37125
        line_start: 37125
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37139
      start: 37099
    functionDepth: 7
    functionLinenumber: 37099
    functionLinenumberEnd: 37139
    functionName: ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned nbWorkers,
      ZSTD_customMem cMem, ZSTD_threadPool* pool)
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BUF_POOL_MAX_NB_BUFFERS
    - ZSTDMT_createCCtxPool
    - ZSTDMT_createSeqPool
    - ZSTDMT_freeCCtx
    - DEBUGLOG
    - ZSTDMT_CCtxParam_setNbWorkers
    - ZSTDMT_createBufferPool
    - ZSTDMT_serialState_init
    - ZSTDMT_createJobsTable
    - assert
    - ZSTD_customCalloc
    - POOL_create_advanced
    - MIN
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned
      nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_createCCtx_advanced_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - nbWorkers
    - cMem
    - pool
    argTypes:
    - unsigned
    - ZSTD_customMem
    - ZSTD_threadPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37151
      start: 37141
    functionDepth: 0
    functionLinenumber: 37141
    functionLinenumberEnd: 37151
    functionName: ZSTDMT_createCCtx_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTDMT_createCCtx_advanced_internal
    linkageType: ''
    returnType: ZSTDMT_CCtx
    signature: ZSTDMT_CCtx * ZSTDMT_createCCtx_advanced(unsigned nbWorkers, ZSTD_customMem
      cMem, ZSTD_threadPool* pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37159,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37165,1
    - Dst: ZSTDMT_releaseBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37166,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37176
      start: 37156
    functionDepth: 3
    functionLinenumber: 37156
    functionLinenumberEnd: 37176
    functionName: ZSTDMT_releaseAllJobResources
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTDMT_releaseBuffer
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_releaseAllJobResources(ZSTDMT_CCtx* mtctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37180,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37183,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37185,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37186,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37191
      start: 37178
    functionDepth: 1
    functionLinenumber: 37178
    functionLinenumberEnd: 37191
    functionName: ZSTDMT_waitForAllJobsCompleted
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_cond_wait
    - ZSTD_PTHREAD_MUTEX_LOCK
    - DEBUGLOG
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_waitForAllJobsCompleted(ZSTDMT_CCtx* mtctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37197,1
    - Dst: ZSTDMT_releaseAllJobResources
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37198,1
    - Dst: ZSTDMT_freeJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37199,1
    - Dst: ZSTDMT_freeBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37200,1
    - Dst: ZSTDMT_freeCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37201,1
    - Dst: ZSTDMT_freeSeqPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37202,1
    - Dst: ZSTDMT_serialState_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37203,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37204,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37206,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37209
      start: 37193
    functionDepth: 6
    functionLinenumber: 37193
    functionLinenumberEnd: 37209
    functionName: ZSTDMT_freeCCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTDMT_freeBufferPool
    - ZSTDMT_serialState_free
    - ZSTD_freeCDict
    - ZSTDMT_releaseAllJobResources
    - ZSTDMT_freeJobsTable
    - ZSTDMT_freeCCtxPool
    - ZSTD_customFree
    - ZSTDMT_freeSeqPool
    - POOL_free
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: POOL_sizeof
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37215,1
    - Dst: ZSTDMT_sizeof_bufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37216,1
    - Dst: ZSTDMT_sizeof_CCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37218,1
    - Dst: ZSTDMT_sizeof_seqPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37219,1
    - Dst: ZSTD_sizeof_CDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37222
      start: 37211
    functionDepth: 4
    functionLinenumber: 37211
    functionLinenumberEnd: 37222
    functionName: ZSTDMT_sizeof_CCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - POOL_sizeof
    - ZSTDMT_sizeof_seqPool
    - ZSTDMT_sizeof_CCtxPool
    - ZSTDMT_sizeof_bufferPool
    - ZSTD_sizeof_CDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: POOL_resize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37229,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37229,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37230,1
    - Dst: ZSTDMT_expandJobsTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37230,1
    - Dst: ZSTDMT_expandBufferPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37231,1
    - Dst: BUF_POOL_MAX_NB_BUFFERS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37231,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37232,1
    - Dst: ZSTDMT_expandCCtxPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37233,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37234,1
    - Dst: ZSTDMT_expandSeqPool
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37235,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37236,1
    - Dst: ZSTDMT_CCtxParam_setNbWorkers
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - mtctx
    - nbWorkers
    argTypes:
    - ZSTDMT_CCtx*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37239
      start: 37227
    functionDepth: 8
    functionLinenumber: 37227
    functionLinenumberEnd: 37239
    functionName: ZSTDMT_resize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_expandBufferPool
    - ZSTDMT_expandSeqPool
    - POOL_resize
    - BUF_POOL_MAX_NB_BUFFERS
    - ERROR
    - ZSTDMT_expandJobsTable
    - ZSTDMT_expandCCtxPool
    - ZSTDMT_CCtxParam_setNbWorkers
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37249,1
    - Dst: ZSTD_getCParamsFromCCtxParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - mtctx
    - cctxParams
    argTypes:
    - ZSTDMT_CCtx*
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37256
      start: 37245
    functionDepth: 7
    functionLinenumber: 37245
    functionLinenumberEnd: 37256
    functionName: ZSTDMT_updateCParams_whileCompressing
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_getCParamsFromCCtxParams
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const
      ZSTD_CCtx_params* cctxParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37265,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37272,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37273,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37278,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37280,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37281,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37282,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts:
    - condition: (mtctx->jobReady <= 1)
      pos:
        line_end: 37271
        line_start: 37271
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (flushed <= produced)
      pos:
        line_end: 37281
        line_start: 37281
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37293
      start: 37262
    functionDepth: 3
    functionLinenumber: 37262
    functionLinenumberEnd: 37293
    functionName: ZSTDMT_getFrameProgression
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_isError
    - ZSTD_pthread_mutex_unlock
    - DEBUGLOG
    - assert
    linkageType: ''
    returnType: ZSTD_frameProgression
    signature: ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37300,1
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37306,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37308,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37309,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37310,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37311,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37319,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts:
    - condition: (jobID <= mtctx->nextJobID)
      pos:
        line_end: 37299
        line_start: 37299
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (flushed <= produced)
      pos:
        line_end: 37309
        line_start: 37309
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (jobPtr->consumed <= jobPtr->src.size)
      pos:
        line_end: 37310
        line_start: 37310
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (jobPtr->consumed < jobPtr->src.size)
      pos:
        line_end: 37318
        line_start: 37318
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37326
      start: 37296
    functionDepth: 3
    functionLinenumber: 37296
    functionLinenumberEnd: 37326
    functionName: ZSTDMT_toFlushNow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - assert
    - ZSTD_pthread_mutex_lock
    - ZSTD_isError
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37340,1
    - Dst: ZSTD_cycleLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37340,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37342,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37345
      start: 37333
    functionDepth: 1
    functionLinenumber: 37333
    functionLinenumberEnd: 37345
    functionName: ZSTDMT_computeTargetJobLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cycleLog
    - MIN
    - MAX
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTDMT_computeTargetJobLog(const ZSTD_CCtx_params* params)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - strat
    argTypes:
    - ZSTD_strategy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37366
      start: 37347
    functionDepth: 0
    functionLinenumber: 37347
    functionLinenumberEnd: 37366
    functionName: ZSTDMT_overlapLog_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_overlapLog_default(ZSTD_strategy strat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37370,1
    - Dst: ZSTDMT_overlapLog_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ovlog
    - strat
    argTypes:
    - int
    - ZSTD_strategy
    assertStmts:
    - condition: (0 <= ovlog && ovlog <= 9)
      pos:
        line_end: 37369
        line_start: 37369
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37373
      start: 37368
    functionDepth: 1
    functionLinenumber: 37368
    functionLinenumberEnd: 37373
    functionName: ZSTDMT_overlapLog
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTDMT_overlapLog_default
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_overlapLog(int ovlog, ZSTD_strategy strat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_overlapLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37377,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37379,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37385,1
    - Dst: ZSTDMT_computeTargetJobLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37385,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37388,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37389,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - params
    argTypes:
    - ZSTD_CCtx_params*
    assertStmts:
    - condition: (0 <= ovLog && ovLog <= ZSTD_WINDOWLOG_MAX)
      pos:
        line_end: 37387
        line_start: 37387
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0 <= overlapRLog && overlapRLog <= 8)
      pos:
        line_end: 37378
        line_start: 37378
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37392
      start: 37375
    functionDepth: 2
    functionLinenumber: 37375
    functionLinenumberEnd: 37392
    functionName: ZSTDMT_computeOverlapSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTDMT_overlapLog
    - ZSTDMT_computeTargetJobLog
    - assert
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_computeOverlapSize(const ZSTD_CCtx_params* params)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37404,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37408,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37408,1
    - Dst: ZSTD_checkCParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37408,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37409,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37413,1
    - Dst: ZSTDMT_resize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37413,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37418,1
    - Dst: ZSTDMT_waitForAllJobsCompleted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37421,1
    - Dst: ZSTDMT_releaseAllJobResources
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37422,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37429,1
    - Dst: ZSTD_createCDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37430,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37434,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37436,1
    - Dst: ZSTDMT_computeOverlapSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37441,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37442,1
    - Dst: ZSTDMT_computeTargetJobLog
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37445,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37447,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37452,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37452,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37455,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37456,1
    - Dst: ZSTD_rollingHash_primePower
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37459,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37462,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37463,1
    - Dst: ZSTDMT_setBufferSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37464,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37464,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37477,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37479,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37482,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37483,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37486,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37491,1
    - Dst: ZSTDMT_serialState_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37502,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 7
    argNames:
    - mtctx
    - dict
    - dictSize
    - dictContentType
    - cdict
    - params
    - pledgedSrcSize
    argTypes:
    - ZSTDMT_CCtx*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    - ZSTD_CDict*
    - ZSTD_CCtx_params
    - unsigned long long
    assertStmts:
    - condition: (!ZSTD_isError(ZSTD_checkCParams(params.cParams)))
      pos:
        line_end: 37407
        line_start: 37407
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->targetSectionSize <= (size_t)ZSTDMT_JOBSIZE_MAX)
      pos:
        line_end: 37446
        line_start: 37446
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!((dict) && (cdict)))
      pos:
        line_end: 37408
        line_start: 37408
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (jobSizeKB >= 1)
      pos:
        line_end: 37451
        line_start: 37451
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rsyncBits >= RSYNC_MIN_BLOCK_LOG + 2)
      pos:
        line_end: 37454
        line_start: 37454
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37506
      start: 37398
    functionDepth: 9
    functionLinenumber: 37398
    functionLinenumberEnd: 37506
    functionName: ZSTDMT_initCStream_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    - ZSTD_highbit32
    - MAX
    - ZSTDMT_releaseAllJobResources
    - ZSTD_customMalloc
    - ERROR
    - ZSTDMT_waitForAllJobsCompleted
    - ZSTDMT_setBufferSize
    - ZSTD_freeCDict
    - ZSTD_rollingHash_primePower
    - ZSTD_createCDict_advanced
    - ZSTDMT_computeOverlapSize
    - ZSTD_customFree
    - assert
    - ZSTD_checkCParams
    - ZSTDMT_computeTargetJobLog
    - ZSTDMT_serialState_reset
    - DEBUGLOG
    - ZSTDMT_resize
    - FORWARD_IF_ERROR
    - ZSTD_compressBound
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTDMT_initCStream_internal(\n        ZSTDMT_CCtx* mtctx,\n
      \       const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType,\n
      \       const ZSTD_CDict* cdict, ZSTD_CCtx_params params,\n        unsigned
      long long pledgedSrcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37516,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37517,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37518,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37519,1
    - Dst: ZSTDMT_getBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37520,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37522,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37525,1
    - Dst: ZSTD_writeLastEmptyBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37527,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37528,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37528,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - job
    argTypes:
    - ZSTDMT_jobDescription*
    assertStmts:
    - condition: (job->lastJob == 1)
      pos:
        line_end: 37515
        line_start: 37515
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->dstBuff.start == NULL)
      pos:
        line_end: 37518
        line_start: 37518
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->firstJob == 0)
      pos:
        line_end: 37517
        line_start: 37517
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->src.size == 0)
      pos:
        line_end: 37516
        line_start: 37516
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->dstBuff.capacity >= ZSTD_blockHeaderSize)
      pos:
        line_end: 37524
        line_start: 37524
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(job->cSize))
      pos:
        line_end: 37527
        line_start: 37527
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (job->consumed == 0)
      pos:
        line_end: 37528
        line_start: 37528
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37530
      start: 37514
    functionDepth: 4
    functionLinenumber: 37514
    functionLinenumberEnd: 37530
    functionName: ZSTDMT_writeLastEmptyBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_writeLastEmptyBlock
    - ERROR
    - ZSTDMT_getBuffer
    - assert
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_writeLastEmptyBlock(ZSTDMT_jobDescription* job)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37538,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37539,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37545,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37549,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37573,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37586,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37587,1
    - Dst: ZSTDMT_writeLastEmptyBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37588,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37594,1
    - Dst: POOL_tryAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37600,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 3
    argNames:
    - mtctx
    - srcSize
    - endOp
    argTypes:
    - ZSTDMT_CCtx*
    - size_t
    - ZSTD_EndDirective
    assertStmts:
    - condition: (mtctx->inBuff.filled >= srcSize)
      pos:
        line_end: 37548
        line_start: 37548
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((mtctx->nextJobID & mtctx->jobIDMask) == (mtctx->doneJobID & mtctx->jobIDMask))
      pos:
        line_end: 37538
        line_start: 37538
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (endOp == ZSTD_e_end)
      pos:
        line_end: 37586
        line_start: 37586
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37608
      start: 37532
    functionDepth: 5
    functionLinenumber: 37532
    functionLinenumberEnd: 37608
    functionName: ZSTDMT_createCompressionJob
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDMT_writeLastEmptyBlock
    - DEBUGLOG
    - POOL_tryAdd
    - assert
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_createCompressionJob(ZSTDMT_CCtx* mtctx, size_t srcSize,
      ZSTD_EndDirective endOp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37620,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37622,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37624,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37627,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37630,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37634,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37636,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37643,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37644,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37645,1
    - Dst: ZSTD_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37646,1
    - Dst: ZSTDMT_waitForAllJobsCompleted
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37647,1
    - Dst: ZSTDMT_releaseAllJobResources
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37648,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37652,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37655,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37656,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37657,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37664,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37665,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37667,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37668,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37669,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37671,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37680,1
    - Dst: ZSTDMT_releaseBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37682,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37683,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 4
    argNames:
    - mtctx
    - output
    - blockToFlush
    - end
    argTypes:
    - ZSTDMT_CCtx*
    - ZSTD_outBuffer*
    - unsigned
    - ZSTD_EndDirective
    assertStmts:
    - condition: (srcConsumed <= srcSize)
      pos:
        line_end: 37651
        line_start: 37651
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->doneJobID < mtctx->nextJobID)
      pos:
        line_end: 37666
        line_start: 37666
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->jobs[wJobID].dstFlushed <= mtctx->jobs[wJobID].cSize)
      pos:
        line_end: 37626
        line_start: 37626
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (cSize >= mtctx->jobs[wJobID].dstFlushed)
      pos:
        line_end: 37667
        line_start: 37667
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->jobs[wJobID].dstBuff.start != NULL)
      pos:
        line_end: 37668
        line_start: 37668
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (output->size >= output->pos)
      pos:
        line_end: 37621
        line_start: 37621
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37701
      start: 37617
    functionDepth: 5
    functionLinenumber: 37617
    functionLinenumberEnd: 37701
    functionName: ZSTDMT_flushProduced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - MEM_writeLE32
    - ZSTD_PTHREAD_MUTEX_LOCK
    - XXH64_digest
    - ZSTD_pthread_mutex_unlock
    - ZSTD_memcpy
    - ZSTDMT_releaseAllJobResources
    - ZSTDMT_releaseBuffer
    - ZSTD_pthread_cond_wait
    - DEBUGLOG
    - ZSTDMT_waitForAllJobsCompleted
    - ZSTD_getErrorName
    - assert
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_flushProduced(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output,
      unsigned blockToFlush, ZSTD_EndDirective end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37718,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37720,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts:
    - condition: (range.start <= mtctx->jobs[wJobID].src.start)
      pos:
        line_end: 37728
        line_start: 37728
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37734
      start: 37708
    functionDepth: 1
    functionLinenumber: 37708
    functionLinenumberEnd: 37734
    functionName: ZSTDMT_getInputDataInUse
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_PTHREAD_MUTEX_LOCK
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: range_t
    signature: range_t ZSTDMT_getInputDataInUse(ZSTDMT_CCtx* mtctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - range
    argTypes:
    - buffer_t
    - range_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37757
      start: 37739
    functionDepth: 0
    functionLinenumber: 37739
    functionLinenumberEnd: 37757
    functionName: ZSTDMT_isOverlapped
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_isOverlapped(buffer_t buffer, range_t range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37764,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37770,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37773,1
    - Dst: ZSTDMT_isOverlapped
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37777,1
    - Dst: ZSTDMT_isOverlapped
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - window
    argTypes:
    - buffer_t
    - ZSTD_window_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37779
      start: 37759
    functionDepth: 1
    functionLinenumber: 37759
    functionLinenumberEnd: 37779
    functionName: ZSTDMT_doesOverlapWindow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTDMT_isOverlapped
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37785,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37786,1
    - Dst: ZSTD_PTHREAD_MUTEX_LOCK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37789,1
    - Dst: ZSTDMT_doesOverlapWindow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37790,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37791,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37792,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37794,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - mtctx
    - buffer
    argTypes:
    - ZSTDMT_CCtx*
    - buffer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37797
      start: 37781
    functionDepth: 2
    functionLinenumber: 37781
    functionLinenumberEnd: 37797
    functionName: ZSTDMT_waitForLdmComplete
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_PTHREAD_MUTEX_LOCK
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_wait
    - DEBUGLOG
    - ZSTDMT_doesOverlapWindow
    linkageType: ''
    returnType: void
    signature: void ZSTDMT_waitForLdmComplete(ZSTDMT_CCtx* mtctx, buffer_t buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTDMT_getInputDataInUse
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37806,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37811,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37812,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37813,1
    - Dst: ZSTDMT_isOverlapped
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37824,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37825,1
    - Dst: ZSTDMT_waitForLdmComplete
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37828,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37829,1
    - Dst: ZSTDMT_isOverlapped
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37836,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37837,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37840,1
    - Dst: ZSTDMT_isOverlapped
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37840,1
    - Dst: ZSTDMT_waitForLdmComplete
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37842,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37844,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37847,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts:
    - condition: (mtctx->inBuff.buffer.start == NULL)
      pos:
        line_end: 37811
        line_start: 37811
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->roundBuff.capacity >= target)
      pos:
        line_end: 37812
        line_start: 37812
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->roundBuff.pos + buffer.capacity <= mtctx->roundBuff.capacity)
      pos:
        line_end: 37853
        line_start: 37853
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTDMT_isOverlapped(buffer, mtctx->inBuff.prefix))
      pos:
        line_end: 37839
        line_start: 37839
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37856
      start: 37804
    functionDepth: 3
    functionLinenumber: 37804
    functionLinenumberEnd: 37856
    functionName: ZSTDMT_tryGetInputRange
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_memmove
    - ZSTDMT_waitForLdmComplete
    - ZSTDMT_getInputDataInUse
    - ZSTDMT_isOverlapped
    - assert
    linkageType: ''
    returnType: int
    signature: int ZSTDMT_tryGetInputRange(ZSTDMT_CCtx* mtctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37881,1
    - Dst: ZSTD_rollingHash_compute
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37909,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37911,1
    - Dst: ZSTD_rollingHash_compute
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37913,1
    - Dst: ZSTD_rollingHash_append
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37914,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37921,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37922,1
    - Dst: ZSTD_rollingHash_compute
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37925,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37945,1
    - Dst: ZSTD_rollingHash_compute
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37945,1
    - Dst: ZSTD_rollingHash_rotate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37953,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37954,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37962,1
    - Dst: ZSTD_rollingHash_compute
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37962,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - mtctx
    - input
    argTypes:
    - ZSTDMT_CCtx*
    - ZSTD_inBuffer
    assertStmts:
    - condition: (mtctx->inBuff.filled >= RSYNC_LENGTH)
      pos:
        line_end: 37910
        line_start: 37910
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.filled >= RSYNC_MIN_BLOCK_SIZE)
      pos:
        line_end: 37920
        line_start: 37920
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (RSYNC_MIN_BLOCK_SIZE >= RSYNC_LENGTH)
      pos:
        line_end: 37921
        line_start: 37921
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH,
        RSYNC_LENGTH) == hash)
      pos:
        line_end: 37944
        line_start: 37944
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.filled + pos >= RSYNC_MIN_BLOCK_SIZE)
      pos:
        line_end: 37953
        line_start: 37953
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH,
        RSYNC_LENGTH) == hash)
      pos:
        line_end: 37961
        line_start: 37961
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 37964
      start: 37869
    functionDepth: 2
    functionLinenumber: 37869
    functionLinenumberEnd: 37964
    functionName: findSynchronizationPoint
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_rollingHash_compute
    - ZSTD_rollingHash_append
    - assert
    - ZSTD_rollingHash_rotate
    - MIN
    linkageType: ''
    returnType: syncPoint_t
    signature: syncPoint_t findSynchronizationPoint(ZSTDMT_CCtx const* mtctx, ZSTD_inBuffer
      const input)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mtctx
    argTypes:
    - ZSTDMT_CCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37971
      start: 37966
    functionDepth: 0
    functionLinenumber: 37966
    functionLinenumberEnd: 37971
    functionName: ZSTDMT_nextInputSizeHint
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37983,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37985,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37986,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37990,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37997,1
    - Dst: ZSTDMT_tryGetInputRange
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:37998,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38002,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38003,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38005,1
    - Dst: findSynchronizationPoint
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38008,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38012,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38013,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38015,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38028,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38037,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38038,1
    - Dst: ZSTDMT_createCompressionJob
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38038,1
    - Dst: ZSTDMT_flushProduced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38042,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38043,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38044,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 4
    argNames:
    - mtctx
    - output
    - input
    - endOp
    argTypes:
    - ZSTDMT_CCtx*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    - ZSTD_EndDirective
    assertStmts:
    - condition: (mtctx->doneJobID != mtctx->nextJobID)
      pos:
        line_end: 38002
        line_start: 38002
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.filled == 0 || mtctx->inBuff.filled == mtctx->targetSectionSize
        || mtctx->params.rsyncable)
      pos:
        line_end: 38027
        line_start: 38027
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->pos  <= input->size)
      pos:
        line_end: 37985
        line_start: 37985
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (output->pos <= output->size)
      pos:
        line_end: 37984
        line_start: 37984
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.filled <= mtctx->targetSectionSize)
      pos:
        line_end: 38036
        line_start: 38036
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.filled == 0)
      pos:
        line_end: 37996
        line_start: 37996
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (mtctx->inBuff.buffer.capacity >= mtctx->targetSectionSize)
      pos:
        line_end: 38011
        line_start: 38011
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38047
      start: 37977
    functionDepth: 6
    functionLinenumber: 37977
    functionLinenumberEnd: 38047
    functionName: ZSTDMT_compressStream_generic
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_memcpy
    - assert
    - MAX
    - ERROR
    - DEBUGLOG
    - findSynchronizationPoint
    - ZSTDMT_createCompressionJob
    - ZSTDMT_tryGetInputRange
    - ZSTDMT_flushProduced
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx,\n                                     ZSTD_outBuffer*
      output,\n                                     ZSTD_inBuffer* input,\n                                     ZSTD_EndDirective
      endOp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38136
      start: 38135
    functionDepth: 0
    functionLinenumber: 38135
    functionLinenumberEnd: 38136
    functionName: HUF_ALIGN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_ALIGN(x, a)
  - 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: 38137
      start: 38136
    functionDepth: 0
    functionLinenumber: 38136
    functionLinenumberEnd: 38137
    functionName: HUF_ALIGN_MASK
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_ALIGN_MASK(x, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38175
      start: 38149
    functionDepth: 0
    functionLinenumber: 38149
    functionLinenumberEnd: 38175
    functionName: HUF_DGEN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DGEN(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38185
      start: 38178
    functionDepth: 0
    functionLinenumber: 38178
    functionLinenumberEnd: 38185
    functionName: HUF_DGEN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DGEN(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - table
    argTypes:
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38199
      start: 38194
    functionDepth: 1
    functionLinenumber: 38194
    functionLinenumberEnd: 38199
    functionName: HUF_getDTableDesc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: DTableDesc
    signature: DTableDesc HUF_getDTableDesc(const HUF_DTable* table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38203,1
    - Dst: MEM_readLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38204,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38205,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ip
    argTypes:
    - BYTE*
    assertStmts:
    - condition: (bitsConsumed <= 8)
      pos:
        line_end: 38204
        line_start: 38204
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sizeof(size_t) == 8)
      pos:
        line_end: 38205
        line_start: 38205
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38208
      start: 38201
    functionDepth: 4
    functionLinenumber: 38201
    functionLinenumberEnd: 38208
    functionName: HUF_initFastDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLEST
    - assert
    - ZSTD_highbit32
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_initFastDStream(BYTE const* ip)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38245,1
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38249,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38254,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38254,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38260,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38264,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38275,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38276,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38277,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38289,1
    - Dst: HUF_initFastDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38314,1
    - Dst: HUF_initFastDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38315,1
    - Dst: HUF_initFastDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38316,1
    - Dst: HUF_initFastDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38317,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - args
    - dst
    - dstSize
    - src
    - srcSize
    - DTable
    argTypes:
    - HUF_DecompressFastArgs*
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 38259
        line_start: 38259
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38330
      start: 38242
    functionDepth: 5
    functionLinenumber: 38242
    functionLinenumberEnd: 38330
    functionName: HUF_DecompressFastArgs_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - HUF_initFastDStream
    - MEM_32bits
    - MEM_isLittleEndian
    - ERROR
    - ZSTD_maybeNullPtrAdd
    - MEM_readLE16
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_DecompressFastArgs_init(HUF_DecompressFastArgs* args, void*
      dst, size_t dstSize, void const* src, size_t srcSize, const HUF_DTable* DTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38336,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38343,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38346,1
    - Dst: MEM_readLEST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38347,1
    - Dst: ZSTD_countTrailingZeros64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - bit
    - args
    - stream
    - segmentEnd
    argTypes:
    - BIT_DStream_t*
    - HUF_DecompressFastArgs*
    - int
    - BYTE*
    assertStmts:
    - condition: (sizeof(size_t) == 8)
      pos:
        line_end: 38345
        line_start: 38345
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38354
      start: 38332
    functionDepth: 4
    functionLinenumber: 38332
    functionLinenumberEnd: 38354
    functionName: HUF_initRemainingDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ERROR
    - MEM_readLEST
    - ZSTD_countTrailingZeros64
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_initRemainingDStream(BIT_DStream_t* bit, HUF_DecompressFastArgs
      const* args, int stream, BYTE* segmentEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38364
      start: 38357
    functionDepth: 0
    functionLinenumber: 38357
    functionLinenumberEnd: 38364
    functionName: HUF_4X_FOR_EACH_STREAM
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X_FOR_EACH_STREAM(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38373
      start: 38366
    functionDepth: 0
    functionLinenumber: 38366
    functionLinenumberEnd: 38373
    functionName: HUF_4X_FOR_EACH_STREAM_WITH_VAR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X_FOR_EACH_STREAM_WITH_VAR(X, var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38388,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - symbol
    - nbBits
    argTypes:
    - BYTE
    - BYTE
    assertStmts:
    - condition: (D4 < (1U << 16))
      pos:
        line_end: 38392
        line_start: 38392
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38396
      start: 38386
    functionDepth: 1
    functionLinenumber: 38386
    functionLinenumberEnd: 38396
    functionName: HUF_DEltX1_set4
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM_isLittleEndian
    linkageType: ''
    returnType: U64
    signature: U64 HUF_DEltX1_set4(BYTE symbol, BYTE nbBits)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - huffWeight
    - rankVal
    - nbSymbols
    - tableLog
    - targetTableLog
    argTypes:
    - BYTE*
    - U32*
    - U32
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38426
      start: 38403
    functionDepth: 0
    functionLinenumber: 38403
    functionLinenumberEnd: 38426
    functionName: HUF_rescaleStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 HUF_rescaleStats(BYTE* huffWeight, U32* rankVal, U32 nbSymbols,
      U32 tableLog, U32 targetTableLog)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38445,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38446,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38448,1
    - Dst: HUF_readStats_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38451,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38452,1
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38456,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38458,1
    - Dst: HUF_rescaleStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38459,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38460,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38463,1
    - Dst: HUF_DEltX1_set4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38538,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38539,1
    - Dst: HUF_DEltX1_set4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38545,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38546,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38547,1
    - Dst: HUF_DEltX1_set4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38553,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38555,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38556,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38557,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38558,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38560,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 78
    argCount: 6
    argNames:
    - DTable
    - src
    - srcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (u == length)
      pos:
        line_end: 38559
        line_start: 38559
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38570
      start: 38436
    functionDepth: 7
    functionLinenumber: 38436
    functionLinenumberEnd: 38570
    functionName: HUF_readDTableX1_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ZSTD_memcpy
    - HUF_isError
    - HUF_DEltX1_set4
    - HUF_readStats_wksp
    - ERROR
    - HUF_rescaleStats
    - MEM_write64
    - DEBUG_STATIC_ASSERT
    - assert
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t
      srcSize, void* workSpace, size_t wkspSize, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38575,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - Dstream
    - dt
    - dtLog
    argTypes:
    - BIT_DStream_t*
    - HUF_DEltX1*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38579
      start: 38572
    functionDepth: 2
    functionLinenumber: 38572
    functionLinenumberEnd: 38579
    functionName: HUF_decodeSymbolX1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_lookBitsFast
    - BIT_skipBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_decodeSymbolX1(BIT_DStream_t* Dstream, const
      HUF_DEltX1* dt, const U32 dtLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38583
      start: 38581
    functionDepth: 0
    functionLinenumber: 38581
    functionLinenumberEnd: 38583
    functionName: HUF_DECODE_SYMBOLX1_0
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38589
      start: 38584
    functionDepth: 0
    functionLinenumber: 38584
    functionLinenumberEnd: 38589
    functionName: HUF_DECODE_SYMBOLX1_1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38595
      start: 38590
    functionDepth: 0
    functionLinenumber: 38590
    functionLinenumberEnd: 38595
    functionName: HUF_DECODE_SYMBOLX1_2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38603,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38604,1
    - Dst: HUF_DECODE_SYMBOLX1_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38605,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38606,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38607,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38610,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38614,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38615,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38616,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - p
    - bitDPtr
    - pEnd
    - dt
    - dtLog
    argTypes:
    - BYTE*
    - BIT_DStream_t*
    - BYTE*
    - HUF_DEltX1*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38623
      start: 38596
    functionDepth: 1
    functionLinenumber: 38596
    functionLinenumberEnd: 38623
    functionName: HUF_decodeStreamX1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_32bits
    - BIT_reloadDStream
    - HUF_DECODE_SYMBOLX1_0
    - HUF_DECODE_SYMBOLX1_1
    - HUF_DECODE_SYMBOLX1_2
    linkageType: ''
    returnType: HINT_INLINE
    signature: HINT_INLINE HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr,
      BYTE* const pEnd, const HUF_DEltX1* const dt, const U32 dtLog)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38632,1
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38636,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38639,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38639,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38641,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38643,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38646
      start: 38625
    functionDepth: 5
    functionLinenumber: 38625
    functionLinenumberEnd: 38646
    functionName: HUF_decompress1X1_usingDTable_internal_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - CHECK_F
    - BIT_initDStream
    - ERROR
    - ZSTD_maybeNullPtrAdd
    - BIT_endOfDStream
    - HUF_decodeStreamX1
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_decompress1X1_usingDTable_internal_body(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38659,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38660,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38674,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38675,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38676,1
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38690,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38694,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38695,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38696,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38697,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38697,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38698,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38698,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38699,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38699,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38700,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38700,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38705,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38706,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38707,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38708,1
    - Dst: HUF_DECODE_SYMBOLX1_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38709,1
    - Dst: HUF_DECODE_SYMBOLX1_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38710,1
    - Dst: HUF_DECODE_SYMBOLX1_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38711,1
    - Dst: HUF_DECODE_SYMBOLX1_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38712,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38713,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38714,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38715,1
    - Dst: HUF_DECODE_SYMBOLX1_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38716,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38717,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38718,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38719,1
    - Dst: HUF_DECODE_SYMBOLX1_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38720,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38721,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38722,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38723,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38724,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38731,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38732,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38733,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38737,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38738,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38739,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38740,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38743,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38743,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38743,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38743,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38744,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts:
    - condition: (dstSize >= 6)
      pos:
        line_end: 38695
        line_start: 38695
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38749
      start: 38652
    functionDepth: 5
    functionLinenumber: 38652
    functionLinenumberEnd: 38749
    functionName: HUF_decompress4X1_usingDTable_internal_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_reloadDStreamFast
    - CHECK_F
    - BIT_initDStream
    - ERROR
    - HUF_DECODE_SYMBOLX1_0
    - BIT_endOfDStream
    - MEM_readLE16
    - HUF_decodeStreamX1
    - assert
    - HUF_DECODE_SYMBOLX1_1
    - HUF_DECODE_SYMBOLX1_2
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_decompress4X1_usingDTable_internal_body(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_decompress4X1_usingDTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38756
      start: 38752
    functionDepth: 6
    functionLinenumber: 38752
    functionLinenumberEnd: 38756
    functionName: HUF_decompress4X1_usingDTable_internal_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X1_usingDTable_internal_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE HUF_decompress4X1_usingDTable_internal_bmi2(void*
      dst, size_t dstSize, void const* cSrc,\n                    size_t cSrcSize,
      HUF_DTable const* DTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_decompress4X1_usingDTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38763
      start: 38759
    functionDepth: 6
    functionLinenumber: 38759
    functionLinenumberEnd: 38763
    functionName: HUF_decompress4X1_usingDTable_internal_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X1_usingDTable_internal_body
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X1_usingDTable_internal_default(void* dst, size_t
      dstSize, void const* cSrc,\n                    size_t cSrcSize, HUF_DTable
      const* DTable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38782,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38783,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38784,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38786,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38786,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38787,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38787,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38796,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38797,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38809,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38834,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38862,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38863,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38864,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38865,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38866,1
    - Dst: HUF_4X_FOR_EACH_STREAM
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38869,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38879,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38880,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38881,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - args
    argTypes:
    - HUF_DecompressFastArgs*
    assertStmts:
    - condition: (!MEM_32bits())
      pos:
        line_end: 38786
        line_start: 38786
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip[stream] >= ip[stream - 1])
      pos:
        line_end: 38833
        line_start: 38833
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (MEM_isLittleEndian())
      pos:
        line_end: 38785
        line_start: 38785
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: '(op[stream] <= (stream == 3 ? oend : op[stream + 1]))'
      pos:
        line_end: 38795
        line_start: 38795
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip[stream] >= ilowest)
      pos:
        line_end: 38796
        line_start: 38796
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38882
      start: 38771
    functionDepth: 1
    functionLinenumber: 38771
    functionLinenumberEnd: 38882
    functionName: HUF_decompress4X1_usingDTable_internal_fast_c_loop
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - MEM_32bits
    - MEM_isLittleEndian
    - HUF_4X_FOR_EACH_STREAM
    - HUF_4X_FOR_EACH_STREAM_WITH_VAR
    - assert
    - MIN
    linkageType: ''
    returnType: HUF_FAST_BMI2_ATTRS
    signature: HUF_FAST_BMI2_ATTRS HUF_decompress4X1_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _stream
    - ','
    - _symbol
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38845
      start: 38838
    functionDepth: 0
    functionLinenumber: 38838
    functionLinenumberEnd: 38845
    functionName: HUF_4X1_DECODE_SYMBOL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X1_DECODE_SYMBOL(_stream, _symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38856
      start: 38846
    functionDepth: 0
    functionLinenumber: 38846
    functionLinenumberEnd: 38856
    functionName: HUF_4X1_RELOAD_STREAM
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X1_RELOAD_STREAM(_stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38899,1
    - Dst: HUF_DecompressFastArgs_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38901,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38902,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38907,1
    - Dst: loopFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38908,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38913,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38914,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38915,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38916,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38917,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38918,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38920,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38921,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38934,1
    - Dst: HUF_initRemainingDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38934,1
    - Dst: HUF_decodeStreamX1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38936,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38937,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 6
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    - loopFn
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - HUF_DecompressFastLoopFn
    assertStmts:
    - condition: (args.ip[0] >= args.ilowest)
      pos:
        line_end: 38906
        line_start: 38906
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[0] >= ilowest)
      pos:
        line_end: 38912
        line_start: 38912
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[0] >= ilowest)
      pos:
        line_end: 38913
        line_start: 38913
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[1] >= ilowest)
      pos:
        line_end: 38914
        line_start: 38914
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[2] >= ilowest)
      pos:
        line_end: 38915
        line_start: 38915
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[3] >= ilowest)
      pos:
        line_end: 38916
        line_start: 38916
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ilowest + 6 == args.iend[0])
      pos:
        line_end: 38920
        line_start: 38920
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ilowest == args.ilowest)
      pos:
        line_end: 38919
        line_start: 38919
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstSize != 0)
      pos:
        line_end: 38941
        line_start: 38941
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.op[3] <= oend)
      pos:
        line_end: 38917
        line_start: 38917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 38944
      start: 38889
    functionDepth: 6
    functionLinenumber: 38889
    functionLinenumberEnd: 38944
    functionName: HUF_decompress4X1_usingDTable_internal_fast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - ZSTD_maybeNullPtrAdd
    - loopFn
    - HUF_decodeStreamX1
    - HUF_initRemainingDStream
    - assert
    - FORWARD_IF_ERROR
    - HUF_DecompressFastArgs_init
    linkageType: ''
    returnType: HUF_FAST_BMI2_ATTRS
    signature: "HUF_FAST_BMI2_ATTRS HUF_decompress4X1_usingDTable_internal_fast(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable,\n    HUF_DecompressFastLoopFn loopFn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fallbackFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38963,1
    - Dst: HUF_decompress4X1_usingDTable_internal_fast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38974,1
    - Dst: fallbackFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38979
      start: 38948
    functionDepth: 7
    functionLinenumber: 38948
    functionLinenumberEnd: 38979
    functionName: HUF_decompress4X1_usingDTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - fallbackFn
    - HUF_decompress4X1_usingDTable_internal_fast
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X1_usingDTable_internal(void* dst, size_t dstSize,
      void const* cSrc,\n                    size_t cSrcSize, HUF_DTable const* DTable,
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX1_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38987,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38988,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38989,1
    - Dst: HUF_decompress4X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:38992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38993
      start: 38981
    functionDepth: 8
    functionLinenumber: 38981
    functionLinenumberEnd: 38993
    functionName: HUF_decompress4X1_DCtx_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_readDTableX1_wksp
    - HUF_isError
    - HUF_decompress4X1_usingDTable_internal
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t
      dstSize,\n                                   const void* cSrc, size_t cSrcSize,\n
      \                                  void* workSpace, size_t wkspSize, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39015,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39016,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39017,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39018,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - symbol
    - nbBits
    - baseSeq
    - level
    argTypes:
    - U32
    - U32
    - U32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39026
      start: 39012
    functionDepth: 1
    functionLinenumber: 39012
    functionLinenumberEnd: 39026
    functionName: HUF_buildDEltX2U32
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_isLittleEndian
    - DEBUG_STATIC_ASSERT
    linkageType: ''
    returnType: U32
    signature: U32 HUF_buildDEltX2U32(U32 symbol, U32 nbBits, U32 baseSeq, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_buildDEltX2U32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39034,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39035,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - symbol
    - nbBits
    - baseSeq
    - level
    argTypes:
    - U32
    - U32
    - U32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39038
      start: 39031
    functionDepth: 2
    functionLinenumber: 39031
    functionLinenumberEnd: 39038
    functionName: HUF_buildDEltX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - DEBUG_STATIC_ASSERT
    - HUF_buildDEltX2U32
    linkageType: ''
    returnType: HUF_DEltX2
    signature: HUF_DEltX2 HUF_buildDEltX2(U32 symbol, U32 nbBits, U32 baseSeq, int
      level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_buildDEltX2U32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - symbol
    - nbBits
    - baseSeq
    - level
    argTypes:
    - U32
    - U32
    - U16
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39047
      start: 39043
    functionDepth: 2
    functionLinenumber: 39043
    functionLinenumberEnd: 39047
    functionName: HUF_buildDEltX2U64
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_buildDEltX2U32
    linkageType: ''
    returnType: U64
    signature: U64 HUF_buildDEltX2U64(U32 symbol, U32 nbBits, U16 baseSeq, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39069,1
    - Dst: HUF_buildDEltX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39073,1
    - Dst: HUF_buildDEltX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39079,1
    - Dst: HUF_buildDEltX2U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39087,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39088,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39089,1
    - Dst: HUF_buildDEltX2U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39095,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39096,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39097,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39098,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39099,1
    - Dst: HUF_buildDEltX2U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39105,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39108,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39109,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39110,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 7
    argNames:
    - DTableRank
    - begin
    - end
    - nbBits
    - tableLog
    - baseSeq
    - level
    argTypes:
    - HUF_DEltX2*
    - sortedSymbol_t*
    - sortedSymbol_t*
    - U32
    - U32
    - U16
    - int
    assertStmts:
    - condition: (level >= 1 && level <= 2)
      pos:
        line_end: 39068
        line_start: 39068
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39116
      start: 39061
    functionDepth: 3
    functionLinenumber: 39061
    functionLinenumberEnd: 39116
    functionName: HUF_fillDTableX2ForWeight
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_buildDEltX2U64
    - ZSTD_memcpy
    - HUF_buildDEltX2
    linkageType: ''
    returnType: void
    signature: "void HUF_fillDTableX2ForWeight(\n    HUF_DEltX2* DTableRank,\n    sortedSymbol_t
      const* begin, sortedSymbol_t const* end,\n    U32 nbBits, U32 tableLog,\n    U16
      baseSeq, int const level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HUF_buildDEltX2U64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39131,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39133,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39134,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39137,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39138,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39141,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39142,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39143,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39149,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39150,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39151,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39152,1
    - Dst: HUF_fillDTableX2ForWeight
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 10
    argNames:
    - DTable
    - targetLog
    - consumedBits
    - rankVal
    - minWeight
    - maxWeight1
    - sortedSymbols
    - rankStart
    - nbBitsBaseline
    - baseSeq
    argTypes:
    - HUF_DEltX2*
    - U32
    - U32
    - U32*
    - int
    - int
    - sortedSymbol_t*
    - U32*
    - U32
    - U16
    assertStmts:
    - condition: (length > 1)
      pos:
        line_end: 39132
        line_start: 39132
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: ((U32)skipSize < length)
      pos:
        line_end: 39133
        line_start: 39133
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (skipSize == 1)
      pos:
        line_end: 39136
        line_start: 39136
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (skipSize <= 4)
      pos:
        line_end: 39140
        line_start: 39140
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39173
      start: 39120
    functionDepth: 4
    functionLinenumber: 39120
    functionLinenumberEnd: 39173
    functionName: HUF_fillDTableX2Level2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - HUF_buildDEltX2U64
    - HUF_fillDTableX2ForWeight
    - ZSTD_memcpy
    linkageType: ''
    returnType: void
    signature: "void HUF_fillDTableX2Level2(HUF_DEltX2* DTable, U32 targetLog, const
      U32 consumedBits,\n                           const U32* rankVal, const int
      minWeight, const int maxWeight1,\n                           const sortedSymbol_t*
      sortedSymbols, U32 const* rankStart,\n                           U32 nbBitsBaseline,
      U16 baseSeq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_fillDTableX2Level2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39203,1
    - Dst: HUF_fillDTableX2ForWeight
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - DTable
    - targetLog
    - sortedList
    - rankStart
    - rankValOrigin
    - maxWeight
    - nbBitsBaseline
    argTypes:
    - HUF_DEltX2*
    - U32
    - sortedSymbol_t*
    - U32*
    - rankValCol_t*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39219
      start: 39175
    functionDepth: 5
    functionLinenumber: 39175
    functionLinenumberEnd: 39219
    functionName: HUF_fillDTableX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_fillDTableX2Level2
    - HUF_fillDTableX2ForWeight
    linkageType: ''
    returnType: void
    signature: "void HUF_fillDTableX2(HUF_DEltX2* DTable, const U32 targetLog,\n                           const
      sortedSymbol_t* sortedList,\n                           const U32* rankStart,
      rankValCol_t* rankValOrigin, const U32 maxWeight,\n                           const
      U32 nbBitsBaseline)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39235,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39244,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39247,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39248,1
    - Dst: DEBUG_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39250,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39251,1
    - Dst: HUF_readStats_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39254,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39255,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39258,1
    - Dst: HUF_fillDTableX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39304,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 6
    argNames:
    - DTable
    - src
    - srcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39313
      start: 39230
    functionDepth: 7
    functionLinenumber: 39230
    functionLinenumberEnd: 39313
    functionName: HUF_readDTableX2_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - ZSTD_memcpy
    - HUF_isError
    - HUF_readStats_wksp
    - HUF_fillDTableX2
    - ERROR
    - DEBUG_STATIC_ASSERT
    - ZSTD_memset
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_readDTableX2_wksp(HUF_DTable* DTable,\n                       const
      void* src, size_t srcSize,\n                             void* workSpace, size_t
      wkspSize, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39319,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39320,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - op
    - DStream
    - dt
    - dtLog
    argTypes:
    - void*
    - BIT_DStream_t*
    - HUF_DEltX2*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39323
      start: 39316
    functionDepth: 2
    functionLinenumber: 39316
    functionLinenumberEnd: 39323
    functionName: HUF_decodeSymbolX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_lookBitsFast
    - BIT_skipBits
    - ZSTD_memcpy
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_decodeSymbolX2(void* op, BIT_DStream_t* DStream,
      const HUF_DEltX2* dt, const U32 dtLog)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIT_lookBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39328,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39329,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39331,1
    - Dst: BIT_skipBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - op
    - DStream
    - dt
    - dtLog
    argTypes:
    - void*
    - BIT_DStream_t*
    - HUF_DEltX2*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39341
      start: 39325
    functionDepth: 2
    functionLinenumber: 39325
    functionLinenumberEnd: 39341
    functionName: HUF_decodeLastSymbolX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_lookBitsFast
    - BIT_skipBits
    - ZSTD_memcpy
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE HUF_decodeLastSymbolX2(void* op, BIT_DStream_t*
      DStream, const HUF_DEltX2* dt, const U32 dtLog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39345
      start: 39343
    functionDepth: 0
    functionLinenumber: 39343
    functionLinenumberEnd: 39345
    functionName: HUF_DECODE_SYMBOLX2_0
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39351
      start: 39346
    functionDepth: 0
    functionLinenumber: 39346
    functionLinenumberEnd: 39351
    functionName: HUF_DECODE_SYMBOLX2_1
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - DStreamPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39357
      start: 39352
    functionDepth: 0
    functionLinenumber: 39352
    functionLinenumberEnd: 39357
    functionName: HUF_DECODE_SYMBOLX2_2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39366,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39368,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39369,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39370,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39371,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39372,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39373,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39377,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39378,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39379,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39380,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39381,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39385,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39390,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39391,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39394,1
    - Dst: HUF_decodeLastSymbolX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39398,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - p
    - bitDPtr
    - pEnd
    - dt
    - dtLog
    argTypes:
    - BYTE*
    - BIT_DStream_t*
    - BYTE*
    - HUF_DEltX2*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39401
      start: 39358
    functionDepth: 3
    functionLinenumber: 39358
    functionLinenumberEnd: 39401
    functionName: HUF_decodeStreamX2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_DECODE_SYMBOLX2_1
    - BIT_reloadDStream
    - MEM_64bits
    - HUF_DECODE_SYMBOLX2_2
    - HUF_decodeLastSymbolX2
    - HUF_DECODE_SYMBOLX2_0
    linkageType: ''
    returnType: HINT_INLINE
    signature: "HINT_INLINE HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE*
      const pEnd,\n                const HUF_DEltX2* const dt, const U32 dtLog)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39412,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39412,1
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39416,1
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39419,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39420,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39424,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39428
      start: 39403
    functionDepth: 5
    functionLinenumber: 39403
    functionLinenumberEnd: 39428
    functionName: HUF_decompress1X2_usingDTable_internal_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - CHECK_F
    - BIT_initDStream
    - ERROR
    - ZSTD_maybeNullPtrAdd
    - BIT_endOfDStream
    - HUF_decodeStreamX2
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_decompress1X2_usingDTable_internal_body(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39440,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39441,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39455,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39456,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39457,1
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39472,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39475,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39476,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39477,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39478,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39478,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39479,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39479,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39480,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39480,1
    - Dst: CHECK_F
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39481,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39481,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39487,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39488,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39489,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39490,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39491,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39492,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39493,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39494,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39495,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39496,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39497,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39498,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39499,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39500,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39501,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39502,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39503,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39504,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39505,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39506,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39508,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39509,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39510,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39511,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39512,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39513,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39514,1
    - Dst: HUF_DECODE_SYMBOLX2_1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39515,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39516,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39517,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39518,1
    - Dst: HUF_DECODE_SYMBOLX2_2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39519,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39520,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39521,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39522,1
    - Dst: HUF_DECODE_SYMBOLX2_0
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39523,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39524,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39525,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39526,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39527,1
    - Dst: BIT_reloadDStreamFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39528,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39534,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39535,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39536,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39540,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39541,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39542,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39543,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39546,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39546,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39546,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39546,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts:
    - condition: (dstSize >= 6 /* validated above */)
      pos:
        line_end: 39476
        line_start: 39476
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39552
      start: 39434
    functionDepth: 5
    functionLinenumber: 39434
    functionLinenumberEnd: 39552
    functionName: HUF_decompress4X2_usingDTable_internal_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - BIT_reloadDStreamFast
    - CHECK_F
    - HUF_DECODE_SYMBOLX2_1
    - BIT_initDStream
    - ERROR
    - HUF_DECODE_SYMBOLX2_2
    - BIT_endOfDStream
    - LIKELY
    - MEM_readLE16
    - HUF_decodeStreamX2
    - assert
    - HUF_DECODE_SYMBOLX2_0
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE HUF_decompress4X2_usingDTable_internal_body(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_decompress4X2_usingDTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39559
      start: 39555
    functionDepth: 6
    functionLinenumber: 39555
    functionLinenumberEnd: 39559
    functionName: HUF_decompress4X2_usingDTable_internal_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE HUF_decompress4X2_usingDTable_internal_bmi2(void*
      dst, size_t dstSize, void const* cSrc,\n                    size_t cSrcSize,
      HUF_DTable const* DTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_decompress4X2_usingDTable_internal_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39566
      start: 39562
    functionDepth: 6
    functionLinenumber: 39562
    functionLinenumberEnd: 39566
    functionName: HUF_decompress4X2_usingDTable_internal_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal_body
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X2_usingDTable_internal_default(void* dst, size_t
      dstSize, void const* cSrc,\n                    size_t cSrcSize, HUF_DTable
      const* DTable)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39585,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39586,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39587,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39594,1
    - Dst: MEM_isLittleEndian
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39594,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39595,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39595,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39604,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39605,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39625,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39652,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39688,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39689,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39690,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39691,1
    - Dst: HUF_4X_FOR_EACH_STREAM_WITH_VAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39692,1
    - Dst: HUF_4X2_DECODE_SYMBOL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39695,1
    - Dst: HUF_4X_FOR_EACH_STREAM
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39701,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39711,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39712,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - args
    argTypes:
    - HUF_DecompressFastArgs*
    assertStmts:
    - condition: (ip[stream] >= ip[stream - 1])
      pos:
        line_end: 39651
        line_start: 39651
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (MEM_isLittleEndian())
      pos:
        line_end: 39593
        line_start: 39593
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip[stream] >= ilowest)
      pos:
        line_end: 39604
        line_start: 39604
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op[stream] <= oend[stream])
      pos:
        line_end: 39603
        line_start: 39603
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!MEM_32bits())
      pos:
        line_end: 39594
        line_start: 39594
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39714
      start: 39574
    functionDepth: 1
    functionLinenumber: 39574
    functionLinenumberEnd: 39714
    functionName: HUF_decompress4X2_usingDTable_internal_fast_c_loop
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - MEM_32bits
    - MEM_isLittleEndian
    - HUF_4X_FOR_EACH_STREAM
    - HUF_4X2_DECODE_SYMBOL
    - HUF_4X_FOR_EACH_STREAM_WITH_VAR
    - assert
    - MIN
    linkageType: ''
    returnType: HUF_FAST_BMI2_ATTRS
    signature: HUF_FAST_BMI2_ATTRS HUF_decompress4X2_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _stream
    - ','
    - _decode3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39666
      start: 39656
    functionDepth: 0
    functionLinenumber: 39656
    functionLinenumberEnd: 39666
    functionName: HUF_4X2_DECODE_SYMBOL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X2_DECODE_SYMBOL(_stream, _decode3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _stream
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39679
      start: 39667
    functionDepth: 0
    functionLinenumber: 39667
    functionLinenumberEnd: 39679
    functionName: HUF_4X2_RELOAD_STREAM
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HUF_4X2_RELOAD_STREAM(_stream)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39725,1
    - Dst: HUF_DecompressFastArgs_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39728,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39729,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39734,1
    - Dst: loopFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39735,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39738,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39739,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39740,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39741,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39742,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39744,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39745,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39759,1
    - Dst: HUF_initRemainingDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39759,1
    - Dst: HUF_decodeStreamX2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39760,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 6
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    - loopFn
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - HUF_DecompressFastLoopFn
    assertStmts:
    - condition: (args.ip[0] >= args.ilowest)
      pos:
        line_end: 39733
        line_start: 39733
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[0] >= ilowest)
      pos:
        line_end: 39737
        line_start: 39737
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[1] >= ilowest)
      pos:
        line_end: 39738
        line_start: 39738
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[2] >= ilowest)
      pos:
        line_end: 39739
        line_start: 39739
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.ip[3] >= ilowest)
      pos:
        line_end: 39740
        line_start: 39740
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (args.op[3] <= oend)
      pos:
        line_end: 39741
        line_start: 39741
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ilowest + 6 == args.iend[0])
      pos:
        line_end: 39744
        line_start: 39744
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ilowest == args.ilowest)
      pos:
        line_end: 39743
        line_start: 39743
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39768
      start: 39717
    functionDepth: 6
    functionLinenumber: 39717
    functionLinenumberEnd: 39768
    functionName: HUF_decompress4X2_usingDTable_internal_fast
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HUF_decodeStreamX2
    - ZSTD_maybeNullPtrAdd
    - loopFn
    - HUF_initRemainingDStream
    - assert
    - FORWARD_IF_ERROR
    - HUF_DecompressFastArgs_init
    linkageType: ''
    returnType: HUF_FAST_BMI2_ATTRS
    signature: "HUF_FAST_BMI2_ATTRS HUF_decompress4X2_usingDTable_internal_fast(\n
      \         void* dst,  size_t dstSize,\n    const void* cSrc, size_t cSrcSize,\n
      \   const HUF_DTable* DTable,\n    HUF_DecompressFastLoopFn loopFn)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fallbackFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39785,1
    - Dst: HUF_decompress4X2_usingDTable_internal_fast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39796,1
    - Dst: fallbackFn
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39800,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 6
    argNames:
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - DTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39801
      start: 39770
    functionDepth: 7
    functionLinenumber: 39770
    functionLinenumberEnd: 39801
    functionName: HUF_decompress4X2_usingDTable_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X2_usingDTable_internal_fast
    - fallbackFn
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X2_usingDTable_internal(void* dst, size_t dstSize,
      void const* cSrc,\n                    size_t cSrcSize, HUF_DTable const* DTable,
      int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX2_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39811,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39813,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39814,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - DCtx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39818
      start: 39805
    functionDepth: 8
    functionLinenumber: 39805
    functionLinenumberEnd: 39818
    functionName: HUF_decompress1X2_DCtx_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HUF_isError
    - HUF_decompress1X2_usingDTable_internal
    - HUF_readDTableX2_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t
      dstSize,\n                                   const void* cSrc, size_t cSrcSize,\n
      \                                  void* workSpace, size_t wkspSize, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX2_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39826,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39828,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39829,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39833
      start: 39820
    functionDepth: 8
    functionLinenumber: 39820
    functionLinenumberEnd: 39833
    functionName: HUF_decompress4X2_DCtx_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ERROR
    - HUF_isError
    - HUF_readDTableX2_wksp
    - HUF_decompress4X2_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t
      dstSize,\n                                   const void* cSrc, size_t cSrcSize,\n
      \                                  void* workSpace, size_t wkspSize, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39874,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - dstSize
    - cSrcSize
    argTypes:
    - size_t
    - size_t
    assertStmts:
    - condition: (dstSize > 0)
      pos:
        line_end: 39873
        line_start: 39873
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstSize <= 128*1024)
      pos:
        line_end: 39874
        line_start: 39874
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39894
      start: 39872
    functionDepth: 1
    functionLinenumber: 39872
    functionLinenumberEnd: 39894
    functionName: HUF_selectDecoder
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: U32
    signature: U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39901,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39902,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39903,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39904,1
    - Dst: HUF_selectDecoder
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39906,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39909,1
    - Dst: HUF_decompress1X1_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39910,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39914,1
    - Dst: HUF_decompress1X2_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39915,1
    - Dst: HUF_decompress1X2_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39918,1
    - Dst: HUF_decompress1X1_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39920,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (algoNb == 0)
      pos:
        line_end: 39908
        line_start: 39908
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (algoNb == 1)
      pos:
        line_end: 39913
        line_start: 39913
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39924
      start: 39896
    functionDepth: 9
    functionLinenumber: 39896
    functionLinenumberEnd: 39924
    functionName: HUF_decompress1X_DCtx_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ERROR
    - HUF_decompress1X2_DCtx_wksp
    - HUF_selectDecoder
    - ZSTD_memset
    - assert
    - HUF_decompress1X1_DCtx_wksp
    linkageType: ''
    returnType: size_t
    signature: "size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t
      dstSize,\n                                  const void* cSrc, size_t cSrcSize,\n
      \                                 void* workSpace, size_t wkspSize, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39929,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39932,1
    - Dst: HUF_decompress1X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39933,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39936,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39937,1
    - Dst: HUF_decompress1X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39939,1
    - Dst: HUF_decompress1X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - DTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - int
    assertStmts:
    - condition: (dtd.tableType == 1)
      pos:
        line_end: 39935
        line_start: 39935
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dtd.tableType == 0)
      pos:
        line_end: 39931
        line_start: 39931
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39942
      start: 39927
    functionDepth: 2
    functionLinenumber: 39927
    functionLinenumberEnd: 39942
    functionName: HUF_decompress1X_usingDTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - assert
    - HUF_decompress1X2_usingDTable_internal
    - HUF_decompress1X1_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const
      void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HUF_readDTableX1_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39949,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39950,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39951,1
    - Dst: HUF_decompress1X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39955
      start: 39945
    functionDepth: 8
    functionLinenumber: 39945
    functionLinenumberEnd: 39955
    functionName: HUF_decompress1X1_DCtx_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - HUF_readDTableX1_wksp
    - HUF_isError
    - HUF_decompress1X1_usingDTable_internal
    - ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t
      dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HUF_getDTableDesc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39960,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39963,1
    - Dst: HUF_decompress4X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39964,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39967,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39968,1
    - Dst: HUF_decompress4X2_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39970,1
    - Dst: HUF_decompress4X1_usingDTable_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - dst
    - maxDstSize
    - cSrc
    - cSrcSize
    - DTable
    - flags
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - HUF_DTable*
    - int
    assertStmts:
    - condition: (dtd.tableType == 0)
      pos:
        line_end: 39962
        line_start: 39962
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dtd.tableType == 1)
      pos:
        line_end: 39966
        line_start: 39966
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39973
      start: 39958
    functionDepth: 8
    functionLinenumber: 39958
    functionLinenumberEnd: 39973
    functionName: HUF_decompress4X_usingDTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_getDTableDesc
    - assert
    - HUF_decompress4X1_usingDTable_internal
    - HUF_decompress4X2_usingDTable_internal
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const
      void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39978,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39979,1
    - Dst: HUF_selectDecoder
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39981,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39984,1
    - Dst: HUF_decompress4X1_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39985,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39988,1
    - Dst: HUF_decompress4X2_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39989,1
    - Dst: HUF_decompress4X2_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39991,1
    - Dst: HUF_decompress4X1_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:39992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstSize
    - cSrc
    - cSrcSize
    - workSpace
    - wkspSize
    - flags
    argTypes:
    - HUF_DTable*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (algoNb == 0)
      pos:
        line_end: 39983
        line_start: 39983
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (algoNb == 1)
      pos:
        line_end: 39987
        line_start: 39987
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 39995
      start: 39975
    functionDepth: 9
    functionLinenumber: 39975
    functionLinenumberEnd: 39995
    functionName: HUF_decompress4X_hufOnly_wksp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - HUF_decompress4X1_DCtx_wksp
    - ERROR
    - HUF_decompress4X2_DCtx_wksp
    - HUF_selectDecoder
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t
      dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - log
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40096
      start: 40095
    functionDepth: 0
    functionLinenumber: 40095
    functionLinenumberEnd: 40096
    functionName: SEQSYMBOL_TABLE_SIZE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEQSYMBOL_TABLE_SIZE(log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - struct ZSTD_DCtx_s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40241
      start: 40234
    functionDepth: 0
    functionLinenumber: 40234
    functionLinenumberEnd: 40241
    functionName: ZSTD_DCtx_get_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_DCtx_get_bmi2(const struct ZSTD_DCtx_s *dctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41347
      start: 41317
    functionDepth: 3
    functionLinenumber: 41317
    functionLinenumberEnd: 41347
    functionName: ZSTD_isLegacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE32
    linkageType: ''
    returnType: MEM_STATIC unsigned
    signature: MEM_STATIC unsigned ZSTD_isLegacy(const void* src, size_t srcSize)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41352,1
    - Dst: ZSTDv05_getFrameParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41357,1
    - Dst: ZSTDv06_getFrameParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41365,1
    - Dst: ZSTDv07_getFrameParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41379
      start: 41350
    functionDepth: 4
    functionLinenumber: 41350
    functionLinenumberEnd: 41379
    functionName: ZSTD_getDecompressedSize_legacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDv05_getFrameParams
    - ZSTDv06_getFrameParams
    - ZSTD_isLegacy
    - ZSTDv07_getFrameParams
    linkageType: ''
    returnType: MEM_STATIC unsigned long long
    signature: MEM_STATIC unsigned long long ZSTD_getDecompressedSize_legacy(const
      void* src, size_t srcSize)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41387,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41391,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41395,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41399,1
    - Dst: ZSTDv01_decompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41407,1
    - Dst: ZSTDv02_decompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41411,1
    - Dst: ZSTDv03_decompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41415,1
    - Dst: ZSTDv04_decompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41419,1
    - Dst: ZSTDv05_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41424,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41425,1
    - Dst: ZSTDv05_decompress_usingDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41426,1
    - Dst: ZSTDv05_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41427,1
    - Dst: ZSTDv06_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41434,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41435,1
    - Dst: ZSTDv06_decompress_usingDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41436,1
    - Dst: ZSTDv06_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41437,1
    - Dst: ZSTDv07_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41444,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41445,1
    - Dst: ZSTDv07_decompress_usingDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41446,1
    - Dst: ZSTDv07_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41447,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 6
    argNames:
    - dst
    - dstCapacity
    - src
    - compressedSize
    - dict
    - dictSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (dictSize == 0)
      pos:
        line_end: 41398
        line_start: 41398
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dstCapacity == 0)
      pos:
        line_end: 41390
        line_start: 41390
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (compressedSize == 0)
      pos:
        line_end: 41394
        line_start: 41394
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41454
      start: 41382
    functionDepth: 4
    functionLinenumber: 41382
    functionLinenumberEnd: 41454
    functionName: ZSTD_decompressLegacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTDv03_decompress
    - ZSTDv06_createDCtx
    - ZSTD_isLegacy
    - ZSTDv06_freeDCtx
    - ZSTDv04_decompress
    - ZSTDv07_freeDCtx
    - ERROR
    - ZSTDv06_decompress_usingDict
    - ZSTDv05_freeDCtx
    - ZSTDv07_decompress_usingDict
    - ZSTDv05_createDCtx
    - ZSTDv02_decompress
    - ZSTDv07_createDCtx
    - assert
    - ZSTDv05_decompress_usingDict
    - ZSTDv01_decompress
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_decompressLegacy(\n                     void* dst,
      size_t dstCapacity,\n               const void* src, size_t compressedSize,\n
      \              const void* dict,size_t dictSize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41459,1
    - Dst: ZSTDv01_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41464,1
    - Dst: ZSTDv02_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41471,1
    - Dst: ZSTDv03_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41478,1
    - Dst: ZSTDv04_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41485,1
    - Dst: ZSTDv05_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41492,1
    - Dst: ZSTDv06_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41499,1
    - Dst: ZSTDv07_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41506,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41512,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41516,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41517,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41524,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: ((frameSizeInfo.decompressedBound & (ZSTD_BLOCKSIZE_MAX - 1)) ==
        0)
      pos:
        line_end: 41523
        line_start: 41523
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41528
      start: 41456
    functionDepth: 4
    functionLinenumber: 41456
    functionLinenumberEnd: 41528
    functionName: ZSTD_frameSizeInfo::ZSTD_findFrameSizeInfoLegacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTDv07_findFrameSizeInfoLegacy
    - ZSTD_isLegacy
    - ZSTDv02_findFrameSizeInfoLegacy
    - ZSTDv05_findFrameSizeInfoLegacy
    - ERROR
    - ZSTDv06_findFrameSizeInfoLegacy
    - ZSTDv03_findFrameSizeInfoLegacy
    - assert
    - ZSTDv01_findFrameSizeInfoLegacy
    - ZSTDv04_findFrameSizeInfoLegacy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_frameSizeInfo ZSTD_findFrameSizeInfoLegacy(const void
      *src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41534
      start: 41530
    functionDepth: 0
    functionLinenumber: 41530
    functionLinenumberEnd: 41534
    functionName: ZSTD_findFrameCompressedSizeLegacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_findFrameSizeInfoLegacy
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_findFrameCompressedSizeLegacy(const void *src, size_t
      srcSize)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41545,1
    - Dst: ZBUFFv04_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41547,1
    - Dst: ZBUFFv05_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41550,1
    - Dst: ZBUFFv06_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41553,1
    - Dst: ZBUFFv07_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - legacyContext
    - version
    argTypes:
    - void*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41559
      start: 41536
    functionDepth: 1
    functionLinenumber: 41536
    functionLinenumberEnd: 41559
    functionName: ZSTD_freeLegacyStreamContext
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZBUFFv07_freeDCtx
    - ERROR
    - ZBUFFv04_freeDCtx
    - ZBUFFv06_freeDCtx
    - ZBUFFv05_freeDCtx
    linkageType: ''
    returnType: MEM_STATIC
    signature: MEM_STATIC ZSTD_freeLegacyStreamContext(void* legacyContext, U32 version)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41568,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41571,1
    - Dst: ZSTD_freeLegacyStreamContext
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41572,1
    - Dst: ZBUFFv04_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41584,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41585,1
    - Dst: ZBUFFv04_decompressInit
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41586,1
    - Dst: ZBUFFv04_decompressWithDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41587,1
    - Dst: ZBUFFv05_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41595,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41596,1
    - Dst: ZBUFFv05_decompressInitDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41597,1
    - Dst: ZBUFFv06_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41605,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41606,1
    - Dst: ZBUFFv06_decompressInitDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41607,1
    - Dst: ZBUFFv07_createDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41615,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41616,1
    - Dst: ZBUFFv07_decompressInitDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41617,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 5
    argNames:
    - legacyContext
    - prevVersion
    - newVersion
    - dict
    - dictSize
    argTypes:
    - void**
    - U32
    - U32
    - void*
    - size_t
    assertStmts:
    - condition: (dictSize == 0)
      pos:
        line_end: 41567
        line_start: 41567
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41623
      start: 41562
    functionDepth: 2
    functionLinenumber: 41562
    functionLinenumberEnd: 41623
    functionName: ZSTD_initLegacyStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZBUFFv07_createDCtx
    - ZBUFFv04_decompressInit
    - ERROR
    - ZBUFFv04_createDCtx
    - DEBUGLOG
    - ZBUFFv07_decompressInitDictionary
    - ZBUFFv06_createDCtx
    - ZBUFFv04_decompressWithDictionary
    - ZBUFFv05_decompressInitDictionary
    - assert
    - ZBUFFv06_decompressInitDictionary
    - ZBUFFv05_createDCtx
    - ZSTD_freeLegacyStreamContext
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_initLegacyStream(void** legacyContext, U32 prevVersion,
      U32 newVersion,\n                                        const void* dict, size_t
      dictSize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41633,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41637,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41640,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41648,1
    - Dst: ZBUFFv04_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41657,1
    - Dst: ZBUFFv05_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41671,1
    - Dst: ZBUFFv06_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41685,1
    - Dst: ZBUFFv07_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 4
    argNames:
    - legacyContext
    - version
    - output
    - input
    argTypes:
    - void*
    - U32
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    assertStmts:
    - condition: (output->size == 0)
      pos:
        line_end: 41632
        line_start: 41632
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (input->size == 0)
      pos:
        line_end: 41636
        line_start: 41636
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41706
      start: 41627
    functionDepth: 1
    functionLinenumber: 41627
    functionLinenumberEnd: 41706
    functionName: ZSTD_decompressLegacyStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZBUFFv07_decompressContinue
    - ZBUFFv05_decompressContinue
    - ERROR
    - DEBUGLOG
    - ZBUFFv06_decompressContinue
    - assert
    - ZBUFFv04_decompressContinue
    linkageType: ''
    returnType: MEM_STATIC
    signature: "MEM_STATIC ZSTD_decompressLegacyStream(void* legacyContext, U32 version,\n
      \                                             ZSTD_outBuffer* output, ZSTD_inBuffer*
      input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts:
    - condition: (ddict != NULL)
      pos:
        line_end: 41733
        line_start: 41733
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41736
      start: 41732
    functionDepth: 1
    functionLinenumber: 41732
    functionLinenumberEnd: 41736
    functionName: ZSTD_DDict_dictContent
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void * ZSTD_DDict_dictContent(const ZSTD_DDict* ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts:
    - condition: (ddict != NULL)
      pos:
        line_end: 41739
        line_start: 41739
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41742
      start: 41738
    functionDepth: 1
    functionLinenumber: 41738
    functionLinenumberEnd: 41742
    functionName: ZSTD_DDict_dictSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41746,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41747,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - dctx
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DDict*
    assertStmts:
    - condition: (dctx != NULL)
      pos:
        line_end: 41746
        line_start: 41746
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ddict != NULL)
      pos:
        line_end: 41747
        line_start: 41747
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41772
      start: 41744
    functionDepth: 1
    functionLinenumber: 41744
    functionLinenumberEnd: 41772
    functionName: ZSTD_copyDDictParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41785,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41788,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41791,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41795,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41798,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41798,1
    - Dst: ZSTD_loadDEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41798,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ddict
    - dictContentType
    argTypes:
    - ZSTD_DDict*
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41803
      start: 41775
    functionDepth: 3
    functionLinenumber: 41775
    functionLinenumberEnd: 41803
    functionName: ZSTD_loadEntropy_intoDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_loadDEntropy
    - MEM_readLE32
    - ERROR
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_loadEntropy_intoDDict(ZSTD_DDict* ddict,\n                           ZSTD_dictContentType_e
      dictContentType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41816,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41819,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41820,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41826,1
    - Dst: ZSTD_loadEntropy_intoDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ddict
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    argTypes:
    - ZSTD_DDict*
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41829
      start: 41806
    functionDepth: 4
    functionLinenumber: 41806
    functionLinenumberEnd: 41829
    functionName: ZSTD_initDDict_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_customMalloc
    - ERROR
    - ZSTD_loadEntropy_intoDDict
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict,\n                                      const
      void* dict, size_t dictSize,\n                                      ZSTD_dictLoadMethod_e
      dictLoadMethod,\n                                      ZSTD_dictContentType_e
      dictContentType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41838,1
    - Dst: ZSTD_initDDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41841,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41844,1
    - Dst: ZSTD_freeDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    - customMem
    argTypes:
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41850
      start: 41831
    functionDepth: 5
    functionLinenumber: 41831
    functionLinenumberEnd: 41850
    functionName: ZSTD_createDDict_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_customMalloc
    - ZSTD_isError
    - ZSTD_freeDDict
    - ZSTD_initDDict_internal
    linkageType: ''
    returnType: ZSTD_DDict
    signature: "ZSTD_DDict * ZSTD_createDDict_advanced(const void* dict, size_t dictSize,\n
      \                                     ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \                                     ZSTD_dictContentType_e dictContentType,\n
      \                                     ZSTD_customMem customMem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41860
      start: 41856
    functionDepth: 6
    functionLinenumber: 41856
    functionLinenumberEnd: 41860
    functionName: ZSTD_createDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDDict_advanced
    linkageType: ''
    returnType: ZSTD_DDict
    signature: ZSTD_DDict * ZSTD_createDDict(const void* dict, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dictBuffer
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41870
      start: 41866
    functionDepth: 6
    functionLinenumber: 41866
    functionLinenumberEnd: 41870
    functionName: ZSTD_createDDict_byReference
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDDict_advanced
    linkageType: ''
    returnType: ZSTD_DDict
    signature: ZSTD_DDict * ZSTD_createDDict_byReference(const void* dictBuffer, size_t
      dictSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41882,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41883,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41887,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41890,1
    - Dst: ZSTD_initDDict_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - sBuffer
    - sBufferSize
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    assertStmts:
    - condition: (sBuffer != NULL)
      pos:
        line_end: 41881
        line_start: 41881
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dict != NULL)
      pos:
        line_end: 41882
        line_start: 41882
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 41895
      start: 41873
    functionDepth: 5
    functionLinenumber: 41873
    functionLinenumberEnd: 41895
    functionName: ZSTD_initStaticDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_initDDict_internal
    - assert
    - ZSTD_memcpy
    - ZSTD_isError
    linkageType: ''
    returnType: ZSTD_DDict
    signature: "ZSTD_DDict * ZSTD_initStaticDDict(\n                                void*
      sBuffer, size_t sBufferSize,\n                                const void* dict,
      size_t dictSize,\n                                ZSTD_dictLoadMethod_e dictLoadMethod,\n
      \                               ZSTD_dictContentType_e dictContentType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41902,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:41903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41906
      start: 41898
    functionDepth: 2
    functionLinenumber: 41898
    functionLinenumberEnd: 41906
    functionName: ZSTD_freeDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_customFree
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDDict(ZSTD_DDict* ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dictSize
    - dictLoadMethod
    argTypes:
    - size_t
    - ZSTD_dictLoadMethod_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41914
      start: 41911
    functionDepth: 0
    functionLinenumber: 41911
    functionLinenumberEnd: 41914
    functionName: ZSTD_estimateDDictSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e
      dictLoadMethod)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41920
      start: 41916
    functionDepth: 0
    functionLinenumber: 41916
    functionLinenumberEnd: 41920
    functionName: ZSTD_sizeof_DDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ddict
    argTypes:
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41930
      start: 41926
    functionDepth: 0
    functionLinenumber: 41926
    functionLinenumberEnd: 41930
    functionName: ZSTD_getDictID_fromDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hashSet
    - dictID
    argTypes:
    - ZSTD_DDictHashSet*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42105
      start: 42101
    functionDepth: 0
    functionLinenumber: 42101
    functionLinenumberEnd: 42105
    functionName: ZSTD_DDictHashSet_getIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - XXH64
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictHashSet_getIndex(const ZSTD_DDictHashSet* hashSet,
      U32 dictID)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getDictID_fromDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42112,1
    - Dst: ZSTD_DDictHashSet_getIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42113,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42115,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42116,1
    - Dst: ZSTD_getDictID_fromDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42119,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42120,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - hashSet
    - ddict
    argTypes:
    - ZSTD_DDictHashSet*
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42131
      start: 42111
    functionDepth: 1
    functionLinenumber: 42111
    functionLinenumberEnd: 42131
    functionName: ZSTD_DDictHashSet_emplaceDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_getDictID_fromDDict
    - ZSTD_DDictHashSet_getIndex
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictHashSet_emplaceDDict(ZSTD_DDictHashSet* hashSet, const
      ZSTD_DDict* ddict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42139,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42144,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42145,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42151,1
    - Dst: ZSTD_DDictHashSet_emplaceDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42151,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42154,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - hashSet
    - customMem
    argTypes:
    - ZSTD_DDictHashSet*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42157
      start: 42137
    functionDepth: 2
    functionLinenumber: 42137
    functionLinenumberEnd: 42157
    functionName: ZSTD_DDictHashSet_expand
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_DDictHashSet_emplaceDDict
    - ZSTD_customFree
    - ZSTD_customCalloc
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictHashSet_expand(ZSTD_DDictHashSet* hashSet, ZSTD_customMem
      customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DDictHashSet_getIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42163,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42165,1
    - Dst: ZSTD_getDictID_fromDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42167,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - hashSet
    - dictID
    argTypes:
    - ZSTD_DDictHashSet*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42178
      start: 42162
    functionDepth: 1
    functionLinenumber: 42162
    functionLinenumberEnd: 42178
    functionName: ZSTD_DDictHashSet_getDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getDictID_fromDDict
    - ZSTD_DDictHashSet_getIndex
    - DEBUGLOG
    linkageType: ''
    returnType: ZSTD_DDict
    signature: ZSTD_DDict * ZSTD_DDictHashSet_getDDict(ZSTD_DDictHashSet* hashSet,
      U32 dictID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42185,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42186,1
    - Dst: ZSTD_customCalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42189,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42197
      start: 42184
    functionDepth: 2
    functionLinenumber: 42184
    functionLinenumberEnd: 42197
    functionName: ZSTD_createDDictHashSet
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMalloc
    - ZSTD_customCalloc
    - DEBUGLOG
    - ZSTD_customFree
    linkageType: ''
    returnType: ZSTD_DDictHashSet
    signature: ZSTD_DDictHashSet * ZSTD_createDDictHashSet(ZSTD_customMem customMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42203,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42205,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hashSet
    - customMem
    argTypes:
    - ZSTD_DDictHashSet*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42210
      start: 42202
    functionDepth: 2
    functionLinenumber: 42202
    functionLinenumberEnd: 42210
    functionName: ZSTD_freeDDictHashSet
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DEBUGLOG
    - ZSTD_customFree
    linkageType: ''
    returnType: void
    signature: void ZSTD_freeDDictHashSet(ZSTD_DDictHashSet* hashSet, ZSTD_customMem
      customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42216,1
    - Dst: ZSTD_getDictID_fromDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42216,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42218,1
    - Dst: ZSTD_DDictHashSet_expand
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42218,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42220,1
    - Dst: ZSTD_DDictHashSet_emplaceDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - hashSet
    - ddict
    - customMem
    argTypes:
    - ZSTD_DDictHashSet*
    - ZSTD_DDict*
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42222
      start: 42215
    functionDepth: 3
    functionLinenumber: 42215
    functionLinenumberEnd: 42222
    functionName: ZSTD_DDictHashSet_addDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getDictID_fromDDict
    - ZSTD_DDictHashSet_expand
    - DEBUGLOG
    - ZSTD_DDictHashSet_emplaceDDict
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DDictHashSet_addDDict(ZSTD_DDictHashSet* hashSet, const
      ZSTD_DDict* ddict, ZSTD_customMem customMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_sizeof_DDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42233
      start: 42227
    functionDepth: 1
    functionLinenumber: 42227
    functionLinenumberEnd: 42233
    functionName: ZSTD_sizeof_DCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_sizeof_DDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42235
      start: 42235
    functionDepth: 0
    functionLinenumber: 42235
    functionLinenumberEnd: 42235
    functionName: ZSTD_estimateDCtxSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateDCtxSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_FRAMEHEADERSIZE_PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42240,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - format
    argTypes:
    - ZSTD_format_e
    assertStmts:
    - condition: ( (format == ZSTD_f_zstd1) || (format == ZSTD_f_zstd1_magicless)
        )
      pos:
        line_end: 42241
        line_start: 42241
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42244
      start: 42238
    functionDepth: 1
    functionLinenumber: 42238
    functionLinenumberEnd: 42244
    functionName: ZSTD_startingInputLength
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_FRAMEHEADERSIZE_PREFIX
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_startingInputLength(ZSTD_format_e format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (dctx->streamStage == zdss_init)
      pos:
        line_end: 42247
        line_start: 42247
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42256
      start: 42246
    functionDepth: 1
    functionLinenumber: 42246
    functionLinenumberEnd: 42256
    functionName: ZSTD_DCtx_resetParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ZSTD_DCtx_resetParameters(ZSTD_DCtx* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_cpuSupportsBmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42278,1
    - Dst: ZSTD_DCtx_resetParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42285
      start: 42258
    functionDepth: 2
    functionLinenumber: 42258
    functionLinenumberEnd: 42285
    functionName: ZSTD_initDCtx_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_cpuSupportsBmi2
    - ZSTD_DCtx_resetParameters
    linkageType: ''
    returnType: void
    signature: void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_initDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42298
      start: 42287
    functionDepth: 3
    functionLinenumber: 42287
    functionLinenumberEnd: 42298
    functionName: ZSTD_initStaticDCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_initDCtx_internal
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx * ZSTD_initStaticDCtx(void *workspace, size_t workspaceSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42303,1
    - Dst: ZSTD_initDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42309
      start: 42300
    functionDepth: 3
    functionLinenumber: 42300
    functionLinenumberEnd: 42309
    functionName: ZSTD_createDCtx_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_customMalloc
    - ZSTD_initDCtx_internal
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx * ZSTD_createDCtx_internal(ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42314
      start: 42311
    functionDepth: 4
    functionLinenumber: 42311
    functionLinenumberEnd: 42314
    functionName: ZSTD_createDCtx_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDCtx_internal
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx * ZSTD_createDCtx_advanced(ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42318,1
    - Dst: ZSTD_createDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42320
      start: 42316
    functionDepth: 4
    functionLinenumber: 42316
    functionLinenumberEnd: 42320
    functionName: ZSTD_createDCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_createDCtx_internal
    - DEBUGLOG
    linkageType: ''
    returnType: ZSTD_DCtx
    signature: ZSTD_DCtx * ZSTD_createDCtx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42328
      start: 42322
    functionDepth: 3
    functionLinenumber: 42322
    functionLinenumberEnd: 42328
    functionName: ZSTD_clearDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeDDict
    linkageType: ''
    returnType: void
    signature: void ZSTD_clearDict(ZSTD_DCtx* dctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42333,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42335,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42336,1
    - Dst: ZSTD_freeLegacyStreamContext
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42340,1
    - Dst: ZSTD_freeDDictHashSet
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42343,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42349
      start: 42330
    functionDepth: 4
    functionLinenumber: 42330
    functionLinenumberEnd: 42349
    functionName: ZSTD_freeDCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZSTD_clearDict
    - ZSTD_freeDDictHashSet
    - ZSTD_customFree
    - RETURN_ERROR_IF
    - ZSTD_freeLegacyStreamContext
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dstDCtx
    - srcDCtx
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42356
      start: 42352
    functionDepth: 1
    functionLinenumber: 42352
    functionLinenumberEnd: 42356
    functionName: ZSTD_copyDCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: void
    signature: void ZSTD_copyDCtx(ZSTD_DCtx* dstDCtx, const ZSTD_DCtx* srcDCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42367,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42368,1
    - Dst: ZSTD_DDictHashSet_getDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42370,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42372,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42373,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (dctx->refMultipleDDicts && dctx->ddictSet)
      pos:
        line_end: 42366
        line_start: 42366
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42379
      start: 42366
    functionDepth: 4
    functionLinenumber: 42366
    functionLinenumberEnd: 42379
    functionName: ZSTD_DCtx_selectFrameDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DDictHashSet_getDDict
    - assert
    - ZSTD_clearDict
    - DEBUGLOG
    linkageType: ''
    returnType: void
    signature: void ZSTD_DCtx_selectFrameDDict(ZSTD_DCtx* dctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42394,1
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42402
      start: 42391
    functionDepth: 4
    functionLinenumber: 42391
    functionLinenumberEnd: 42402
    functionName: ZSTD_isFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isLegacy
    - MEM_readLE32
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_isFrame(const void* buffer, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42415
      start: 42408
    functionDepth: 3
    functionLinenumber: 42408
    functionLinenumberEnd: 42415
    functionName: ZSTD_isSkippableFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE32
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42424,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - src
    - srcSize
    - format
    argTypes:
    - void*
    - size_t
    - ZSTD_format_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42435
      start: 42422
    functionDepth: 2
    functionLinenumber: 42422
    functionLinenumberEnd: 42435
    functionName: ZSTD_frameHeaderSize_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_startingInputLength
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_frameHeaderSize_internal(const void* src, size_t srcSize,
      ZSTD_format_e format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_frameHeaderSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42444
      start: 42441
    functionDepth: 3
    functionLinenumber: 42441
    functionLinenumberEnd: 42444
    functionName: ZSTD_frameHeaderSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_frameHeaderSize_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42456,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42458,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42462,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42470,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42471,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42472,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42473,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42474,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42476,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42477,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42478,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42479,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42485,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42487,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42488,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42492,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42493,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42497,1
    - Dst: ZSTD_frameHeaderSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42501,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42515,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42521,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42528,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42532,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42533,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42538,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42541,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42542,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42543,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42550,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 89
    argCount: 4
    argNames:
    - zfhPtr
    - src
    - srcSize
    - format
    argTypes:
    - ZSTD_frameHeader*
    - void*
    - size_t
    - ZSTD_format_e
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 42471
        line_start: 42471
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 42537
        line_start: 42537
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 42527
        line_start: 42527
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42555
      start: 42453
    functionDepth: 3
    functionLinenumber: 42453
    functionLinenumberEnd: 42555
    functionName: ZSTD_getFrameHeader_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - ZSTD_memcpy
    - MEM_readLE32
    - DEBUGLOG
    - MEM_readLE64
    - RETURN_ERROR
    - ZSTD_frameHeaderSize_internal
    - ZSTD_startingInputLength
    - MEM_readLE16
    - ZSTD_memset
    - assert
    - RETURN_ERROR_IF
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const
      void* src, size_t srcSize, ZSTD_format_e format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameHeader_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - zfhPtr
    - src
    - srcSize
    argTypes:
    - ZSTD_frameHeader*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42566
      start: 42563
    functionDepth: 4
    functionLinenumber: 42563
    functionLinenumberEnd: 42566
    functionName: ZSTD_getFrameHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ZSTD_getFrameHeader_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src,
      size_t srcSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42576,1
    - Dst: ZSTD_getDecompressedSize_legacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42577,1
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42589
      start: 42573
    functionDepth: 5
    functionLinenumber: 42573
    functionLinenumberEnd: 42589
    functionName: ZSTD_getFrameContentSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZSTD_getDecompressedSize_legacy
    - ZSTD_getFrameHeader
    - ZSTD_isLegacy
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ZSTD_getFrameContentSize(const void *src, size_t
      srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42596,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42598,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42599,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42605
      start: 42591
    functionDepth: 3
    functionLinenumber: 42591
    functionLinenumberEnd: 42605
    functionName: readSkippableFrameSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - MEM_readLE32
    linkageType: ''
    returnType: size_t
    signature: size_t readSkippableFrameSize(void const* src, size_t srcSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42622,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42624,1
    - Dst: readSkippableFrameSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42625,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42629,1
    - Dst: ZSTD_isSkippableFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42629,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42630,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42631,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - dst
    - dstCapacity
    - magicVariant
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - unsigned*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42640
      start: 42618
    functionDepth: 4
    functionLinenumber: 42618
    functionLinenumberEnd: 42640
    functionName: ZSTD_readSkippableFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - readSkippableFrameSize
    - MEM_readLE32
    - ZSTD_isSkippableFrame
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity,\n                               unsigned*
      magicVariant,  /* optional, can be NULL */\n                         const void*
      src, size_t srcSize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42651,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42652,1
    - Dst: readSkippableFrameSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42655,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42656,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42657,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42664,1
    - Dst: ZSTD_findFrameCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42672,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42673,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (skippableSize <= srcSize)
      pos:
        line_end: 42656
        line_start: 42656
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (frameSrcSize <= srcSize)
      pos:
        line_end: 42673
        line_start: 42673
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42684
      start: 42647
    functionDepth: 6
    functionLinenumber: 42647
    functionLinenumberEnd: 42684
    functionName: ZSTD_findDecompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - readSkippableFrameSize
    - MEM_readLE32
    - ZSTD_findFrameCompressedSize
    - ZSTD_startingInputLength
    - ZSTD_getFrameContentSize
    - assert
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ZSTD_findDecompressedSize(const void* src, size_t
      srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42696,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42699
      start: 42694
    functionDepth: 6
    functionLinenumber: 42694
    functionLinenumberEnd: 42699
    functionName: ZSTD_getDecompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getFrameContentSize
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ZSTD_getDecompressedSize(const void* src, size_t
      srcSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameHeader_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42708,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42709,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42710,1
    - Dst: ZSTD_DCtx_selectFrameDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42714,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42721,1
    - Dst: XXH64_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42725,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - dctx
    - src
    - headerSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42728
      start: 42706
    functionDepth: 5
    functionLinenumber: 42706
    functionLinenumberEnd: 42728
    functionName: ZSTD_decodeFrameHeader
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getFrameHeader_advanced
    - ZSTD_DCtx_selectFrameDDict
    - XXH64_reset
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t
      headerSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ret
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42736
      start: 42730
    functionDepth: 0
    functionLinenumber: 42730
    functionLinenumberEnd: 42736
    functionName: ZSTD_errorFrameSizeInfo
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_frameSizeInfo
    signature: ZSTD_frameSizeInfo ZSTD_errorFrameSizeInfo(size_t ret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42741,1
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42744,1
    - Dst: ZSTD_findFrameSizeInfoLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42745,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42749,1
    - Dst: readSkippableFrameSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42750,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42751,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42751,1
    - Dst: ZSTD_getFrameHeader_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42762,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42763,1
    - Dst: ZSTD_errorFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42764,1
    - Dst: ZSTD_errorFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42766,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42766,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42775,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42776,1
    - Dst: ZSTD_errorFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42777,1
    - Dst: ZSTD_errorFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42780,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42780,1
    - Dst: ZSTD_errorFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42792,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42792,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - src
    - srcSize
    - format
    argTypes:
    - void*
    - size_t
    - ZSTD_format_e
    assertStmts:
    - condition: "(ZSTD_isError(frameSizeInfo.compressedSize) ||\n               frameSizeInfo.compressedSize
        <= srcSize)"
      pos:
        line_end: 42751
        line_start: 42750
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42803
      start: 42738
    functionDepth: 4
    functionLinenumber: 42738
    functionLinenumberEnd: 42803
    functionName: ZSTD_findFrameSizeInfo
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getFrameHeader_advanced
    - readSkippableFrameSize
    - MEM_readLE32
    - ZSTD_isLegacy
    - ERROR
    - ZSTD_findFrameSizeInfoLegacy
    - ZSTD_getcBlockSize
    - ZSTD_memset
    - assert
    - ZSTD_errorFrameSizeInfo
    linkageType: ''
    returnType: ZSTD_frameSizeInfo
    signature: ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize,
      ZSTD_format_e format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - srcSize
    - format
    argTypes:
    - void*
    - size_t
    - ZSTD_format_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42808
      start: 42805
    functionDepth: 5
    functionLinenumber: 42805
    functionLinenumberEnd: 42808
    functionName: ZSTD_findFrameCompressedSize_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_findFrameSizeInfo
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_findFrameCompressedSize_advanced(const void *src, size_t
      srcSize, ZSTD_format_e format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameCompressedSize_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42816
      start: 42813
    functionDepth: 6
    functionLinenumber: 42813
    functionLinenumberEnd: 42816
    functionName: ZSTD_findFrameCompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_findFrameCompressedSize_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42829,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42832,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (srcSize >= compressedSize)
      pos:
        line_end: 42833
        line_start: 42833
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42840
      start: 42824
    functionDepth: 5
    functionLinenumber: 42824
    functionLinenumberEnd: 42840
    functionName: ZSTD_decompressBound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_isError
    - ZSTD_findFrameSizeInfo
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_findFrameSizeInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42849,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42854,1
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42854,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42855,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42856,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42867,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42869,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (zfh.frameType == ZSTD_skippableFrame)
      pos:
        line_end: 42868
        line_start: 42868
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= compressedSize)
      pos:
        line_end: 42873
        line_start: 42873
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 42883
      start: 42842
    functionDepth: 5
    functionLinenumber: 42842
    functionLinenumberEnd: 42883
    functionName: ZSTD_decompressionMargin
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_findFrameSizeInfo
    - MAX
    - ERROR
    - ZSTD_getFrameHeader
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressionMargin(void const* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42893,1
    - Dst: ZSTD_checkContinuity
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - dctx
    - blockStart
    - blockSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42897
      start: 42891
    functionDepth: 1
    functionLinenumber: 42891
    functionLinenumberEnd: 42897
    functionName: ZSTD_insertBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_checkContinuity
    - DEBUGLOG
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t
      blockSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42903,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42904,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42907,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42911
      start: 42900
    functionDepth: 1
    functionLinenumber: 42900
    functionLinenumberEnd: 42911
    functionName: ZSTD_copyRawBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_memmove
    - DEBUGLOG
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_copyRawBlock(void* dst, size_t dstCapacity,\n                          const
      void* src, size_t srcSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42917,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42920,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - b
    - regenSize
    argTypes:
    - void*
    - size_t
    - BYTE
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42924
      start: 42913
    functionDepth: 1
    functionLinenumber: 42913
    functionLinenumberEnd: 42924
    functionName: ZSTD_setRleBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - RETURN_ERROR_IF
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_setRleBlock(void* dst, size_t dstCapacity,\n                               BYTE
      b,\n                               size_t regenSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42931,1
    - Dst: ZSTD_getDictID_fromDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42935,1
    - Dst: ZSTD_DDict_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42936,1
    - Dst: ZSTD_trace_decompress_end
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - dctx
    - uncompressedSize
    - compressedSize
    - streaming
    argTypes:
    - ZSTD_DCtx*
    - U64
    - U64
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42950
      start: 42926
    functionDepth: 2
    functionLinenumber: 42926
    functionLinenumberEnd: 42950
    functionName: ZSTD_DCtx_trace_end
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memset
    - ZSTD_DDict_dictSize
    - ZSTD_getDictID_fromDDict
    - ZSTD_trace_decompress_end
    linkageType: ''
    returnType: void
    signature: void ZSTD_DCtx_trace_end(ZSTD_DCtx const* dctx, U64 uncompressedSize,
      U64 compressedSize, unsigned streaming)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42968,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42971,1
    - Dst: ZSTD_FRAMEHEADERSIZE_MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42972,1
    - Dst: ZSTD_frameHeaderSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42976,1
    - Dst: ZSTD_FRAMEHEADERSIZE_PREFIX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42977,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42978,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42979,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42981,1
    - Dst: ZSTD_decodeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42981,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42987,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42994,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42995,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:42999,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43021,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43022,1
    - Dst: ZSTD_copyRawBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43026,1
    - Dst: ZSTD_setRleBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43029,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43033,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43035,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43036,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43038,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43043,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43050,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43054,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43056,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43058,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43059,1
    - Dst: ZSTD_DCtx_trace_end
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43064,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43066,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - srcPtr
    - srcSizePtr
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void**
    - size_t*
    assertStmts:
    - condition: (dctx->isFrameDecompression == 1)
      pos:
        line_end: 43020
        line_start: 43020
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip != NULL)
      pos:
        line_end: 43042
        line_start: 43042
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43070
      start: 42957
    functionDepth: 6
    functionLinenumber: 42957
    functionLinenumberEnd: 43070
    functionName: ZSTD_decompressFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_setRleBlock
    - ZSTD_decompressBlock_internal
    - XXH64_digest
    - MEM_readLE32
    - ZSTD_FRAMEHEADERSIZE_PREFIX
    - ZSTD_DCtx_trace_end
    - assert
    - RETURN_ERROR_IF
    - ZSTD_decodeFrameHeader
    - DEBUGLOG
    - ZSTD_getcBlockSize
    - ZSTD_copyRawBlock
    - FORWARD_IF_ERROR
    - MIN
    - ZSTD_FRAMEHEADERSIZE_MIN
    - XXH64_update
    - ZSTD_frameHeaderSize_internal
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx,\n                                   void*
      dst, size_t dstCapacity,\n                             const void** srcPtr,
      size_t *srcSizePtr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43083,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43084,1
    - Dst: ZSTD_DDict_dictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43087,1
    - Dst: ZSTD_DDict_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43088,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43091,1
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43094,1
    - Dst: ZSTD_findFrameCompressedSizeLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43096,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43097,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43098,1
    - Dst: ZSTD_decompressLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43101,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43102,1
    - Dst: ZSTD_getFrameContentSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43105,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43106,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43108,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43113,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43125,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43126,1
    - Dst: readSkippableFrameSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43129,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43130,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43131,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43140,1
    - Dst: ZSTD_decompressBegin_usingDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43140,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43144,1
    - Dst: ZSTD_decompressBegin_usingDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43144,1
    - Dst: ZSTD_checkContinuity
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43146,1
    - Dst: ZSTD_decompressFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43148,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43150,1
    - Dst: ZSTD_getErrorCode
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43151,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43161,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43162,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43170,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 8
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_DDict*
    assertStmts:
    - condition: (decodedSize <= dstCapacity)
      pos:
        line_end: 43112
        line_start: 43112
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (skippableSize <= srcSize)
      pos:
        line_end: 43130
        line_start: 43130
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (res <= dstCapacity)
      pos:
        line_end: 43161
        line_start: 43161
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dict==NULL || ddict==NULL)
      pos:
        line_end: 43083
        line_start: 43083
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43173
      start: 43072
    functionDepth: 7
    functionLinenumber: 43072
    functionLinenumberEnd: 43173
    functionName: ZSTD_decompressMultiFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressFrame
    - ZSTD_isError
    - ZSTD_decompressBegin_usingDDict
    - ZSTD_isLegacy
    - MEM_readLE32
    - ZSTD_getFrameContentSize
    - assert
    - RETURN_ERROR_IF
    - ZSTD_decompressLegacy
    - ZSTD_DDict_dictContent
    - ZSTD_checkContinuity
    - readSkippableFrameSize
    - DEBUGLOG
    - ZSTD_findFrameCompressedSizeLegacy
    - ZSTD_startingInputLength
    - FORWARD_IF_ERROR
    - ZSTD_DDict_dictSize
    - ZSTD_decompressBegin_usingDict
    - ZSTD_getErrorCode
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: "ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_decompressMultiFrame(ZSTD_DCtx*
      dctx,\n                                        void* dst, size_t dstCapacity,\n
      \                                 const void* src, size_t srcSize,\n                                  const
      void* dict, size_t dictSize,\n                                  const ZSTD_DDict*
      ddict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressMultiFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43181
      start: 43175
    functionDepth: 8
    functionLinenumber: 43175
    functionLinenumberEnd: 43181
    functionName: ZSTD_decompress_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressMultiFrame
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,\n                                 void*
      dst, size_t dstCapacity,\n                           const void* src, size_t
      srcSize,\n                           const void* dict, size_t dictSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43188,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (0 /* Impossible */)
      pos:
        line_end: 43187
        line_start: 43187
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43199
      start: 43184
    functionDepth: 4
    functionLinenumber: 43184
    functionLinenumberEnd: 43199
    functionName: ZSTD_getDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_clearDict
    linkageType: ''
    returnType: ZSTD_DDict
    signature: ZSTD_DDict * ZSTD_getDDict(ZSTD_DCtx* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompress_usingDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43203,1
    - Dst: ZSTD_getDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43204
      start: 43201
    functionDepth: 5
    functionLinenumber: 43201
    functionLinenumberEnd: 43204
    functionName: ZSTD_decompressDCtx
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompress_usingDDict
    - ZSTD_getDDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity,
      const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43211,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43212,1
    - Dst: ZSTD_decompressDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43213,1
    - Dst: ZSTD_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43214,1
    - Dst: ZSTD_initDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43218,1
    - Dst: ZSTD_decompressDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43221
      start: 43207
    functionDepth: 6
    functionLinenumber: 43207
    functionLinenumberEnd: 43221
    functionName: ZSTD_decompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDCtx_internal
    - ZSTD_freeDCtx
    - ZSTD_initDCtx_internal
    - ZSTD_decompressDCtx
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src,
      size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43228
      start: 43228
    functionDepth: 0
    functionLinenumber: 43228
    functionLinenumberEnd: 43228
    functionName: ZSTD_nextSrcSizeToDecompress
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOUNDED
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - dctx
    - inputSize
    argTypes:
    - ZSTD_DCtx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43246
      start: 43240
    functionDepth: 1
    functionLinenumber: 43240
    functionLinenumberEnd: 43246
    functionName: ZSTD_nextSrcSizeToDecompressWithInputSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BOUNDED
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t
      inputSize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 43251
        line_start: 43251
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43271
      start: 43248
    functionDepth: 1
    functionLinenumber: 43248
    functionLinenumberEnd: 43271
    functionName: ZSTD_nextInputType
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: ZSTD_nextInputType_e
    signature: ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43273
      start: 43273
    functionDepth: 0
    functionLinenumber: 43273
    functionLinenumberEnd: 43273
    functionName: ZSTD_isSkipFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_isSkipFrame(ZSTD_DCtx* dctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43281,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43283,1
    - Dst: ZSTD_nextSrcSizeToDecompressWithInputSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43283,1
    - Dst: ZSTD_checkContinuity
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43284,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43291,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43293,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43294,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43295,1
    - Dst: ZSTD_frameHeaderSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43300,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43301,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43302,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43308,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43309,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43310,1
    - Dst: ZSTD_decodeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43310,1
    - Dst: ZSTD_getcBlockSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43317,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43318,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43319,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43345,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43350,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43351,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43352,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43356,1
    - Dst: ZSTD_copyRawBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43357,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43358,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43359,1
    - Dst: ZSTD_setRleBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43363,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43368,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43370,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43371,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43372,1
    - Dst: XXH64_update
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43374,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43383,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43384,1
    - Dst: ZSTD_DCtx_trace_end
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43392,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43404,1
    - Dst: XXH64_digest
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43407,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43408,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43409,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43410,1
    - Dst: ZSTD_DCtx_trace_end
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43412,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43419,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43420,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43421,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43422,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43423,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43433,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43434,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 135
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts:
    - condition: (srcSize <= ZSTD_SKIPPABLEHEADERSIZE)
      pos:
        line_end: 43419
        line_start: 43419
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 43432
        line_start: 43432
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize >= ZSTD_FRAMEIDSIZE)
      pos:
        line_end: 43292
        line_start: 43292
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (src != NULL)
      pos:
        line_end: 43307
        line_start: 43307
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize <= dctx->expected)
      pos:
        line_end: 43355
        line_start: 43355
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (src != NULL)
      pos:
        line_end: 43418
        line_start: 43418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (src != NULL)
      pos:
        line_end: 43290
        line_start: 43290
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (rSize == srcSize)
      pos:
        line_end: 43358
        line_start: 43358
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (srcSize == 4)
      pos:
        line_end: 43403
        line_start: 43403
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dctx->isFrameDecompression == 1)
      pos:
        line_end: 43350
        line_start: 43350
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dctx->format != ZSTD_f_zstd1_magicless)
      pos:
        line_end: 43420
        line_start: 43420
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43436
      start: 43279
    functionDepth: 6
    functionLinenumber: 43279
    functionLinenumberEnd: 43436
    functionName: ZSTD_decompressContinue
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_setRleBlock
    - ZSTD_decompressBlock_internal
    - XXH64_digest
    - MEM_readLE32
    - ZSTD_DCtx_trace_end
    - assert
    - RETURN_ERROR_IF
    - ZSTD_decodeFrameHeader
    - ZSTD_checkContinuity
    - DEBUGLOG
    - ZSTD_getcBlockSize
    - ZSTD_copyRawBlock
    - FORWARD_IF_ERROR
    - XXH64_update
    - ZSTD_memcpy
    - ZSTD_frameHeaderSize_internal
    - RETURN_ERROR
    - ZSTD_nextSrcSizeToDecompressWithInputSize
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity,
      const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43450
      start: 43439
    functionDepth: 0
    functionLinenumber: 43439
    functionLinenumberEnd: 43450
    functionName: ZSTD_refDictContent
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, size_t
      dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43462,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43463,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43463,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43466,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43467,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43468,1
    - Dst: HUF_readDTableX1_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43473,1
    - Dst: HUF_readDTableX2_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43477,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43481,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43481,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43487,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43488,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43488,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43489,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43490,1
    - Dst: ZSTD_buildFSETable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43491,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43502,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43503,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43503,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43504,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43505,1
    - Dst: ZSTD_buildFSETable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43506,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43517,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43518,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43518,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43519,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43520,1
    - Dst: ZSTD_buildFSETable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43521,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43530,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43534,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - entropy
    - dict
    - dictSize
    argTypes:
    - ZSTD_entropyDTables_t*
    - void*
    - size_t
    assertStmts:
    - condition: (MEM_readLE32(dict) == ZSTD_MAGIC_DICTIONARY)
      pos:
        line_end: 43462
        line_start: 43462
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43541
      start: 43455
    functionDepth: 8
    functionLinenumber: 43455
    functionLinenumberEnd: 43541
    functionName: ZSTD_loadDEntropy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - HUF_isError
    - MEM_readLE32
    - FSE_isError
    - ZSTD_STATIC_ASSERT
    - FSE_readNCount
    - HUF_readDTableX1_wksp
    - HUF_readDTableX2_wksp
    - ZSTD_buildFSETable
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy,\n                  const
      void* const dict, size_t const dictSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_refDictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43545,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43546,1
    - Dst: ZSTD_refDictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43548,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43550,1
    - Dst: ZSTD_loadDEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43553,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43554,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43554,1
    - Dst: ZSTD_refDictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43562
      start: 43543
    functionDepth: 9
    functionLinenumber: 43543
    functionLinenumberEnd: 43562
    functionName: ZSTD_decompress_insertDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_loadDEntropy
    - MEM_readLE32
    - ZSTD_refDictContent
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void*
      dict, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43566,1
    - Dst: ZSTD_trace_decompress_begin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43568,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43570,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43583,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (dctx != NULL)
      pos:
        line_end: 43565
        line_start: 43565
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43590
      start: 43564
    functionDepth: 2
    functionLinenumber: 43564
    functionLinenumberEnd: 43590
    functionName: ZSTD_decompressBegin
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - ZSTD_trace_decompress_begin
    - ZSTD_startingInputLength
    - assert
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43594,1
    - Dst: ZSTD_decompressBegin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43594,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43596,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43597,1
    - Dst: ZSTD_decompress_insertDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43600
      start: 43592
    functionDepth: 10
    functionLinenumber: 43592
    functionLinenumberEnd: 43600
    functionName: ZSTD_decompressBegin_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    - ZSTD_decompressBegin
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_decompress_insertDictionary
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void*
      dict, size_t dictSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43607,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43608,1
    - Dst: ZSTD_DDict_dictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43610,1
    - Dst: ZSTD_DDict_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43611,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43614,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43617,1
    - Dst: ZSTD_decompressBegin
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43617,1
    - Dst: ZSTD_copyDDictParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dctx
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DDict*
    assertStmts:
    - condition: (dctx != NULL)
      pos:
        line_end: 43607
        line_start: 43607
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43622
      start: 43605
    functionDepth: 3
    functionLinenumber: 43605
    functionLinenumberEnd: 43622
    functionName: ZSTD_decompressBegin_usingDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_DDict_dictContent
    - ZSTD_DDict_dictSize
    - DEBUGLOG
    - ZSTD_decompressBegin
    - ZSTD_copyDDictParameters
    - assert
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict*
      ddict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43631,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dict
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43633
      start: 43628
    functionDepth: 3
    functionLinenumber: 43628
    functionLinenumberEnd: 43633
    functionName: ZSTD_getDictID_fromDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE32
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43651,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43654
      start: 43648
    functionDepth: 5
    functionLinenumber: 43648
    functionLinenumberEnd: 43654
    functionName: ZSTD_getDictID_fromFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getFrameHeader
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressMultiFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43669
      start: 43660
    functionDepth: 8
    functionLinenumber: 43660
    functionLinenumberEnd: 43669
    functionName: ZSTD_decompress_usingDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_decompressMultiFrame
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,\n                                  void*
      dst, size_t dstCapacity,\n                            const void* src, size_t
      srcSize,\n                            const ZSTD_DDict* ddict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43678,1
    - Dst: ZSTD_createDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43680
      start: 43676
    functionDepth: 4
    functionLinenumber: 43676
    functionLinenumberEnd: 43680
    functionName: ZSTD_createDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDCtx_internal
    - DEBUGLOG
    linkageType: ''
    returnType: ZSTD_DStream
    signature: ZSTD_DStream * ZSTD_createDStream(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_initStaticDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - workspace
    - workspaceSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43685
      start: 43682
    functionDepth: 4
    functionLinenumber: 43682
    functionLinenumberEnd: 43685
    functionName: ZSTD_initStaticDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_initStaticDCtx
    linkageType: ''
    returnType: ZSTD_DStream
    signature: ZSTD_DStream * ZSTD_initStaticDStream(void *workspace, size_t workspaceSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_createDCtx_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - customMem
    argTypes:
    - ZSTD_customMem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43690
      start: 43687
    functionDepth: 4
    functionLinenumber: 43687
    functionLinenumberEnd: 43690
    functionName: ZSTD_createDStream_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_createDCtx_internal
    linkageType: ''
    returnType: ZSTD_DStream
    signature: ZSTD_DStream * ZSTD_createDStream_advanced(ZSTD_customMem customMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_freeDCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zds
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43695
      start: 43692
    functionDepth: 5
    functionLinenumber: 43692
    functionLinenumberEnd: 43695
    functionName: ZSTD_freeDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_freeDCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_freeDStream(ZSTD_DStream* zds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43700
      start: 43700
    functionDepth: 0
    functionLinenumber: 43700
    functionLinenumberEnd: 43700
    functionName: ZSTD_DStreamInSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DStreamInSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43701
      start: 43701
    functionDepth: 0
    functionLinenumber: 43701
    functionLinenumberEnd: 43701
    functionName: ZSTD_DStreamOutSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DStreamOutSize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43708,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43709,1
    - Dst: ZSTD_createDDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43711,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - dctx
    - dict
    - dictSize
    - dictLoadMethod
    - dictContentType
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - ZSTD_dictLoadMethod_e
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43717
      start: 43703
    functionDepth: 6
    functionLinenumber: 43703
    functionLinenumberEnd: 43717
    functionName: ZSTD_DCtx_loadDictionary_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_createDDict_advanced
    - ZSTD_clearDict
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx,\n                                   const
      void* dict, size_t dictSize,\n                                         ZSTD_dictLoadMethod_e
      dictLoadMethod,\n                                         ZSTD_dictContentType_e
      dictContentType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43722
      start: 43719
    functionDepth: 7
    functionLinenumber: 43719
    functionLinenumberEnd: 43722
    functionName: ZSTD_DCtx_loadDictionary_byReference
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_loadDictionary_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const
      void* dict, size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dctx
    - dict
    - dictSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43727
      start: 43724
    functionDepth: 7
    functionLinenumber: 43724
    functionLinenumberEnd: 43727
    functionName: ZSTD_DCtx_loadDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_loadDictionary_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict,
      size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43731,1
    - Dst: ZSTD_DCtx_loadDictionary_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dctx
    - prefix
    - prefixSize
    - dictContentType
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - ZSTD_dictContentType_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43734
      start: 43729
    functionDepth: 7
    functionLinenumber: 43729
    functionLinenumberEnd: 43734
    functionName: ZSTD_DCtx_refPrefix_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - FORWARD_IF_ERROR
    - ZSTD_DCtx_loadDictionary_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix,
      size_t prefixSize, ZSTD_dictContentType_e dictContentType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_refPrefix_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dctx
    - prefix
    - prefixSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43739
      start: 43736
    functionDepth: 8
    functionLinenumber: 43736
    functionLinenumberEnd: 43739
    functionName: ZSTD_DCtx_refPrefix
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_refPrefix_advanced
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t
      prefixSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43747,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43748,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43748,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43749,1
    - Dst: ZSTD_DCtx_loadDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43749,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - zds
    - dict
    - dictSize
    argTypes:
    - ZSTD_DStream*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43751
      start: 43745
    functionDepth: 8
    functionLinenumber: 43745
    functionLinenumberEnd: 43751
    functionName: ZSTD_initDStream_usingDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_loadDictionary
    - ZSTD_DCtx_reset
    - DEBUGLOG
    - ZSTD_startingInputLength
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict,
      size_t dictSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43756,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43757,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43757,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43758,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43758,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - zds
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43760
      start: 43754
    functionDepth: 2
    functionLinenumber: 43754
    functionLinenumberEnd: 43760
    functionName: ZSTD_initDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_reset
    - ZSTD_DCtx_refDDict
    - DEBUGLOG
    - ZSTD_startingInputLength
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initDStream(ZSTD_DStream* zds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43767,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43768,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43768,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43769,1
    - Dst: ZSTD_DCtx_refDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43769,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dctx
    - ddict
    argTypes:
    - ZSTD_DStream*
    - ZSTD_DDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43771
      start: 43765
    functionDepth: 2
    functionLinenumber: 43765
    functionLinenumberEnd: 43771
    functionName: ZSTD_initDStream_usingDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_reset
    - ZSTD_DCtx_refDDict
    - DEBUGLOG
    - ZSTD_startingInputLength
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict*
      ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43778,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43779,1
    - Dst: ZSTD_DCtx_reset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43779,1
    - Dst: ZSTD_startingInputLength
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43781
      start: 43776
    functionDepth: 2
    functionLinenumber: 43776
    functionLinenumberEnd: 43781
    functionName: ZSTD_resetDStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_startingInputLength
    - FORWARD_IF_ERROR
    - DEBUGLOG
    - ZSTD_DCtx_reset
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_resetDStream(ZSTD_DStream* dctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43786,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43787,1
    - Dst: ZSTD_createDDictHashSet
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43793,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43795,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43798,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43799,1
    - Dst: ZSTD_DDictHashSet_addDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - dctx
    - ddict
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_DDict*
    assertStmts:
    - condition: (!dctx->staticSize)
      pos:
        line_end: 43797
        line_start: 43797
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 43803
      start: 43784
    functionDepth: 4
    functionLinenumber: 43784
    functionLinenumberEnd: 43803
    functionName: ZSTD_DCtx_refDDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 4
    functionsReached:
    - ZSTD_clearDict
    - ZSTD_createDDictHashSet
    - RETURN_ERROR
    - assert
    - RETURN_ERROR_IF
    - FORWARD_IF_ERROR
    - ZSTD_DDictHashSet_addDDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_dParam_getBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43810,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43813,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43814,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dctx
    - maxWindowSize
    argTypes:
    - ZSTD_DCtx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43818
      start: 43808
    functionDepth: 1
    functionLinenumber: 43808
    functionLinenumberEnd: 43818
    functionName: ZSTD_DCtx_setMaxWindowSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_dParam_getBounds
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_setParameter
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dctx
    - format
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_format_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43823
      start: 43820
    functionDepth: 1
    functionLinenumber: 43820
    functionLinenumberEnd: 43823
    functionName: ZSTD_DCtx_setFormat
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_setParameter
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43836,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - dParam
    argTypes:
    - ZSTD_dParameter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43863
      start: 43825
    functionDepth: 1
    functionLinenumber: 43825
    functionLinenumberEnd: 43863
    functionName: ZSTD_dParam_getBounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ERROR
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: ZSTD_bounds
    signature: ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_dParam_getBounds
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43870,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dParam
    - value
    argTypes:
    - ZSTD_dParameter
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43875
      start: 43868
    functionDepth: 3
    functionLinenumber: 43868
    functionLinenumberEnd: 43875
    functionName: ZSTD_dParam_withinBounds
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_dParam_getBounds
    linkageType: ''
    returnType: int
    signature: int ZSTD_dParam_withinBounds(ZSTD_dParameter dParam, int value)
  - 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: 43880
      start: 43877
    functionDepth: 0
    functionLinenumber: 43877
    functionLinenumberEnd: 43880
    functionName: CHECK_DBOUNDS
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DBOUNDS(p,v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43885,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - dctx
    - param
    - value
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_dParameter
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43908
      start: 43881
    functionDepth: 4
    functionLinenumber: 43881
    functionLinenumberEnd: 43908
    functionName: ZSTD_DCtx_getParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_highbit32
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param,
      int* value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43912,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43916,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43920,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43924,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43928,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43932,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43934,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43939,1
    - Dst: CHECK_DBOUNDS
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43943,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 3
    argNames:
    - dctx
    - dParam
    - value
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_dParameter
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43949
      start: 43910
    functionDepth: 1
    functionLinenumber: 43910
    functionLinenumberEnd: 43949
    functionName: ZSTD_DCtx_setParameter
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - RETURN_ERROR_IF
    - RETURN_ERROR
    - CHECK_DBOUNDS
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam,
      int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43961,1
    - Dst: ZSTD_clearDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43962,1
    - Dst: ZSTD_DCtx_resetParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43963,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dctx
    - reset
    argTypes:
    - ZSTD_DCtx*
    - ZSTD_ResetDirective
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43966
      start: 43951
    functionDepth: 4
    functionLinenumber: 43951
    functionLinenumberEnd: 43966
    functionName: ZSTD_DCtx_reset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 5
    functionsReached:
    - RETURN_ERROR_IF
    - ZSTD_DCtx_resetParameters
    - ZSTD_clearDict
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_sizeof_DCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43972
      start: 43969
    functionDepth: 2
    functionLinenumber: 43969
    functionLinenumberEnd: 43972
    functionName: ZSTD_sizeof_DStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_sizeof_DCtx
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43976,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43976,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43985,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - windowSize
    - frameContentSize
    - blockSizeMax
    argTypes:
    - unsigned long long
    - unsigned long long
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43990
      start: 43974
    functionDepth: 1
    functionLinenumber: 43974
    functionLinenumberEnd: 43990
    functionName: ZSTD_decodingBufferSize_internal
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR_IF
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodingBufferSize_internal(unsigned long long windowSize,
      unsigned long long frameContentSize, size_t blockSizeMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decodingBufferSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - windowSize
    - frameContentSize
    argTypes:
    - unsigned long long
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43995
      start: 43992
    functionDepth: 2
    functionLinenumber: 43992
    functionLinenumberEnd: 43995
    functionName: ZSTD_decodingBufferSize_min
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decodingBufferSize_internal
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned
      long long frameContentSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:43999,1
    - Dst: ZSTD_decodingBufferSize_min
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44001,1
    - Dst: ZSTD_estimateDCtxSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - windowSize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44003
      start: 43997
    functionDepth: 3
    functionLinenumber: 43997
    functionLinenumberEnd: 44003
    functionName: ZSTD_estimateDStreamSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decodingBufferSize_min
    - ZSTD_estimateDCtxSize
    - MIN
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateDStreamSize(size_t windowSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_getFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44009,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44010,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44011,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44012,1
    - Dst: ZSTD_estimateDStreamSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - src
    - srcSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44015
      start: 44005
    functionDepth: 5
    functionLinenumber: 44005
    functionLinenumberEnd: 44015
    functionName: ZSTD_estimateDStreamSize_fromFrame
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_estimateDStreamSize
    - RETURN_ERROR_IF
    - ZSTD_isError
    - ZSTD_getFrameHeader
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - zds
    - neededInBuffSize
    - neededOutBuffSize
    argTypes:
    - ZSTD_DStream*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44023
      start: 44020
    functionDepth: 0
    functionLinenumber: 44020
    functionLinenumberEnd: 44023
    functionName: ZSTD_DCtx_isOverflow
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_DCtx_isOverflow(ZSTD_DStream* zds, size_t const neededInBuffSize,
      size_t const neededOutBuffSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_DCtx_isOverflow
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - zds
    - neededInBuffSize
    - neededOutBuffSize
    argTypes:
    - ZSTD_DStream*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44031
      start: 44025
    functionDepth: 1
    functionLinenumber: 44025
    functionLinenumberEnd: 44031
    functionName: ZSTD_DCtx_updateOversizedDuration
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_DCtx_isOverflow
    linkageType: ''
    returnType: void
    signature: void ZSTD_DCtx_updateOversizedDuration(ZSTD_DStream* zds, size_t const
      neededInBuffSize, size_t const neededOutBuffSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zds
    argTypes:
    - ZSTD_DStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44036
      start: 44033
    functionDepth: 0
    functionLinenumber: 44033
    functionLinenumberEnd: 44036
    functionName: ZSTD_DCtx_isOversizedTooLong
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_DCtx_isOversizedTooLong(ZSTD_DStream* zds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - zds
    - output
    argTypes:
    - ZSTD_DStream*
    - ZSTD_outBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44054
      start: 44039
    functionDepth: 0
    functionLinenumber: 44039
    functionLinenumberEnd: 44054
    functionName: ZSTD_checkOutBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - RETURN_ERROR
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_checkOutBuffer(ZSTD_DStream const* zds, ZSTD_outBuffer
      const* output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isSkipFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44064,1
    - Dst: ZSTD_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44067,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44069,1
    - Dst: ZSTD_decompressContinue
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44079,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44080,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44084,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - zds
    - op
    - oend
    - src
    - srcSize
    argTypes:
    - ZSTD_DStream*
    - char**
    - char*
    - void*
    - size_t
    assertStmts:
    - condition: (*op <= oend)
      pos:
        line_end: 44083
        line_start: 44083
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zds->outBufferMode == ZSTD_bm_stable)
      pos:
        line_end: 44084
        line_start: 44084
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44088
      start: 44061
    functionDepth: 7
    functionLinenumber: 44061
    functionLinenumberEnd: 44088
    functionName: ZSTD_decompressContinueStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_decompressContinue
    - FORWARD_IF_ERROR
    - ZSTD_isSkipFrame
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressContinueStream(\n            ZSTD_DStream* zds,
      char** op, char* oend,\n            void const* src, size_t srcSize)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44102,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44103,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44108,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44113,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44114,1
    - Dst: ZSTD_checkOutBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44114,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44120,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44131,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44134,1
    - Dst: ZSTD_decompressLegacyStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44136,1
    - Dst: ZSTD_getFrameHeader_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44141,1
    - Dst: ZSTD_DCtx_selectFrameDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44143,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44145,1
    - Dst: ZSTD_isLegacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44147,1
    - Dst: ZSTD_getDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44149,1
    - Dst: ZSTD_DDict_dictContent
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44150,1
    - Dst: ZSTD_DDict_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44151,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44152,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44153,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44155,1
    - Dst: ZSTD_initLegacyStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44155,1
    - Dst: ZSTD_decompressLegacyStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44159,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44169,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44172,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44177,1
    - Dst: ZSTD_getFrameHeader_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44178,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44181,1
    - Dst: ZSTD_FRAMEHEADERSIZE_MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44181,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44183,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44184,1
    - Dst: ZSTD_findFrameCompressedSize_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44192,1
    - Dst: ZSTD_decompress_usingDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44195,1
    - Dst: ZSTD_getDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44195,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44196,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44197,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44198,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44212,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44216,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44217,1
    - Dst: ZSTD_decompressBegin_usingDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44217,1
    - Dst: ZSTD_getDDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44217,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44220,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44221,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44224,1
    - Dst: ZSTD_decodeFrameHeader
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44224,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44230,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44233,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44234,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44237,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44240,1
    - Dst: ZSTD_decodingBufferSize_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44242,1
    - Dst: ZSTD_DCtx_updateOversizedDuration
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44245,1
    - Dst: ZSTD_DCtx_isOversizedTooLong
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44248,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44252,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44254,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44257,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44258,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44259,1
    - Dst: ZSTD_customFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44263,1
    - Dst: ZSTD_customMalloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44266,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44267,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44277,1
    - Dst: ZSTD_nextSrcSizeToDecompressWithInputSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44278,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44279,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44286,1
    - Dst: ZSTD_decompressContinueStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44286,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44287,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44297,1
    - Dst: ZSTD_isSkipFrame
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44299,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44302,1
    - Dst: ZSTD_nextSrcSizeToDecompressWithInputSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44302,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44304,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44306,1
    - Dst: ZSTD_limitCopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44309,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44320,1
    - Dst: ZSTD_decompressContinueStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44320,1
    - Dst: ZSTD_limitCopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44327,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44336,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44348,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44349,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44362,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44363,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44364,1
    - Dst: ZSTD_nextSrcSizeToDecompress
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44369,1
    - Dst: ZSTD_nextInputType
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44388,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44389,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 209
    argCount: 3
    argNames:
    - zds
    - output
    - input
    argTypes:
    - ZSTD_DStream*
    - ZSTD_outBuffer*
    - ZSTD_inBuffer*
    assertStmts:
    - condition: (ip != NULL)
      pos:
        line_end: 44182
        line_start: 44182
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (neededInSize == ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend
        - ip)))
      pos:
        line_end: 44301
        line_start: 44301
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (iend >= ip)
      pos:
        line_end: 44168
        line_start: 44168
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (istart != NULL)
      pos:
        line_end: 44197
        line_start: 44197
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 44363
        line_start: 44363
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zds->inPos <= nextSrcSizeHint)
      pos:
        line_end: 44388
        line_start: 44388
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (zds->staticSize >= sizeof(ZSTD_DCtx))
      pos:
        line_end: 44257
        line_start: 44257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (0)
      pos:
        line_end: 44347
        line_start: 44347
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ip != NULL)
      pos:
        line_end: 44286
        line_start: 44286
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44393
      start: 44090
    functionDepth: 9
    functionLinenumber: 44090
    functionLinenumberEnd: 44393
    functionName: ZSTD_decompressStream
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 8
    functionsReached:
    - ZSTD_isError
    - ZSTD_getFrameHeader_advanced
    - ZSTD_DCtx_isOversizedTooLong
    - MAX
    - ZSTD_customMalloc
    - ZSTD_decompressBegin_usingDDict
    - ZSTD_decodingBufferSize_internal
    - ZSTD_nextInputType
    - ZSTD_getDDict
    - ZSTD_DCtx_selectFrameDDict
    - ZSTD_isLegacy
    - MEM_readLE32
    - ZSTD_decompress_usingDDict
    - ZSTD_checkOutBuffer
    - ZSTD_nextSrcSizeToDecompress
    - ZSTD_customFree
    - ZSTD_limitCopy
    - assert
    - RETURN_ERROR_IF
    - ZSTD_decodeFrameHeader
    - ZSTD_DDict_dictContent
    - ZSTD_findFrameCompressedSize_advanced
    - DEBUGLOG
    - ZSTD_decompressLegacyStream
    - ZSTD_isSkipFrame
    - FORWARD_IF_ERROR
    - MIN
    - ZSTD_FRAMEHEADERSIZE_MIN
    - ZSTD_memcpy
    - ZSTD_DDict_dictSize
    - ZSTD_DCtx_updateOversizedDuration
    - RETURN_ERROR
    - ZSTD_decompressContinueStream
    - ZSTD_nextSrcSizeToDecompressWithInputSize
    - ZSTD_initLegacyStream
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output,
      ZSTD_inBuffer* input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstCapacity
    - dstPos
    - src
    - srcSize
    - srcPos
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - size_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44413
      start: 44395
    functionDepth: 10
    functionLinenumber: 44395
    functionLinenumberEnd: 44413
    functionName: ZSTD_decompressStream_simpleArgs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressStream
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressStream_simpleArgs (\n                            ZSTD_DCtx*
      dctx,\n                            void* dst, size_t dstCapacity, size_t* dstPos,\n
      \                     const void* src, size_t srcSize, size_t* srcPos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44462
      start: 44462
    functionDepth: 1
    functionLinenumber: 44462
    functionLinenumberEnd: 44462
    functionName: ZSTD_copy4
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    linkageType: ''
    returnType: void
    signature: void ZSTD_copy4(void* dst, const void* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dctx
    argTypes:
    - ZSTD_DCtx*
    assertStmts:
    - condition: (blockSizeMax <= ZSTD_BLOCKSIZE_MAX)
      pos:
        line_end: 44471
        line_start: 44471
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44474
      start: 44469
    functionDepth: 1
    functionLinenumber: 44469
    functionLinenumberEnd: 44474
    functionName: ZSTD_blockSizeMax
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_blockSizeMax(ZSTD_DCtx const* dctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44481,1
    - Dst: MEM_readLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44483,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - src
    - srcSize
    - bpPtr
    argTypes:
    - void*
    - size_t
    - blockProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44492
      start: 44478
    functionDepth: 3
    functionLinenumber: 44478
    functionLinenumberEnd: 44492
    functionName: ZSTD_getcBlockSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - RETURN_ERROR_IF
    - MEM_readLE24
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_getcBlockSize(const void* src, size_t srcSize,\n                          blockProperties_t*
      bpPtr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_blockSizeMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44498,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44499,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44500,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44501,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44519,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44537,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 7
    argNames:
    - dctx
    - dst
    - dstCapacity
    - litSize
    - streaming
    - expectedWriteSize
    - splitImmediately
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - size_t
    - streaming_operation
    - size_t
    - unsigned
    assertStmts:
    - condition: (litSize <= blockSizeMax)
      pos:
        line_end: 44498
        line_start: 44498
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (blockSizeMax > ZSTD_LITBUFFEREXTRASIZE)
      pos:
        line_end: 44518
        line_start: 44518
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dctx->isFrameDecompression || streaming == not_streaming)
      pos:
        line_end: 44499
        line_start: 44499
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (expectedWriteSize <= blockSizeMax)
      pos:
        line_end: 44500
        line_start: 44500
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dctx->litBufferEnd <= (BYTE*)dst + expectedWriteSize)
      pos:
        line_end: 44536
        line_start: 44536
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44539
      start: 44495
    functionDepth: 2
    functionLinenumber: 44495
    functionLinenumberEnd: 44539
    functionName: ZSTD_allocateLiteralsBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_blockSizeMax
    linkageType: ''
    returnType: void
    signature: "void ZSTD_allocateLiteralsBuffer(ZSTD_DCtx* dctx, void* const dst,
      const size_t dstCapacity, const size_t litSize,\n    const streaming_operation
      streaming, const size_t expectedWriteSize, const unsigned splitImmediately)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44553,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44554,1
    - Dst: ZSTD_blockSizeMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44558,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44563,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44564,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44568,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44572,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44574,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44576,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44600,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44601,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44603,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44606,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44607,1
    - Dst: ZSTD_allocateLiteralsBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44608,1
    - Dst: PREFETCH_AREA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44612,1
    - Dst: HUF_decompress1X_usingDTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44617,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44621,1
    - Dst: HUF_decompress4X_usingDTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44622,1
    - Dst: HUF_decompress1X_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44629,1
    - Dst: HUF_decompress1X1_DCtx_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44634,1
    - Dst: HUF_decompress4X_hufOnly_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44640,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44648,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44649,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44650,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44653,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44656,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44656,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44668,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44677,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44681,1
    - Dst: MEM_readLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44682,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44686,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44687,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44688,1
    - Dst: ZSTD_allocateLiteralsBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44689,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44691,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44694,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44695,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44699,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44716,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44725,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44726,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44730,1
    - Dst: MEM_readLE24
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44731,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44734,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44735,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44736,1
    - Dst: ZSTD_allocateLiteralsBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44737,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44740,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44741,1
    - Dst: ZSTD_memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44745,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44752,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 148
    argCount: 6
    argNames:
    - dctx
    - src
    - srcSize
    - dst
    - dstCapacity
    - streaming
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - streaming_operation
    assertStmts:
    - condition: (litSize >= MIN_LITERALS_FOR_4_STREAMS)
      pos:
        line_end: 44620
        line_start: 44620
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (litSize > ZSTD_LITBUFFEREXTRASIZE)
      pos:
        line_end: 44647
        line_start: 44647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dctx->litBufferEnd <= (BYTE*)dst + blockSizeMax)
      pos:
        line_end: 44652
        line_start: 44652
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44755
      start: 44549
    functionDepth: 10
    functionLinenumber: 44549
    functionLinenumberEnd: 44755
    functionName: ZSTD_decodeLiteralsBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_allocateLiteralsBuffer
    - ZSTD_blockSizeMax
    - ZSTD_DCtx_get_bmi2
    - MEM_readLE24
    - MEM_readLE32
    - HUF_decompress4X_usingDTable
    - HUF_decompress1X_DCtx_wksp
    - ZSTD_memmove
    - assert
    - RETURN_ERROR_IF
    - HUF_decompress4X_hufOnly_wksp
    - HUF_isError
    - DEBUGLOG
    - HUF_decompress1X1_DCtx_wksp
    - MIN
    - PREFETCH_AREA
    - ZSTD_memcpy
    - RETURN_ERROR
    - ZSTD_memset
    - MEM_readLE16
    - HUF_decompress1X_usingDTable
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx,\n                          const
      void* src, size_t srcSize,   /* note : srcSize < BLOCKSIZE */\n                          void*
      dst, size_t dstCapacity, const streaming_operation streaming)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decodeLiteralsBlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dctx
    - src
    - srcSize
    - dst
    - dstCapacity
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44767
      start: 44761
    functionDepth: 11
    functionLinenumber: 44761
    functionLinenumberEnd: 44767
    functionName: ZSTD_decodeLiteralsBlock_wrapper
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decodeLiteralsBlock
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decodeLiteralsBlock_wrapper(ZSTD_DCtx* dctx,\n                          const
      void* src, size_t srcSize,\n                          void* dst, size_t dstCapacity)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dt
    - baseValue
    - nbAddBits
    argTypes:
    - ZSTD_seqSymbol*
    - U32
    - U8
    assertStmts:
    - condition: (nbAddBits < 255)
      pos:
        line_end: 44888
        line_start: 44888
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 44892
      start: 44878
    functionDepth: 1
    functionLinenumber: 44878
    functionLinenumberEnd: 44892
    functionName: ZSTD_buildSeqTable_rle
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ZSTD_buildSeqTable_rle(ZSTD_seqSymbol* dt, U32 baseValue, U8 nbAddBits)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44915,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44916,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44917,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44931,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44934,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44938,1
    - Dst: FSE_TABLESTEP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44946,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44961,1
    - Dst: MEM_write64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44963,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44965,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44979,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44988,1
    - Dst: FSE_TABLESTEP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:44992,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45000,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45002,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45011,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45013,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 8
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - baseValue
    - nbAdditionalBits
    - tableLog
    - wksp
    - wkspSize
    argTypes:
    - ZSTD_seqSymbol*
    - short*
    - unsigned
    - U32*
    - U8*
    - unsigned
    - void*
    - size_t
    assertStmts:
    - condition: (maxSymbolValue <= MaxSeq)
      pos:
        line_end: 44914
        line_start: 44914
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableLog <= MaxFSELog)
      pos:
        line_end: 44915
        line_start: 44915
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbAdditionalBits[symbol] < 255)
      pos:
        line_end: 45012
        line_start: 45012
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableSize <= 512)
      pos:
        line_end: 44937
        line_start: 44937
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (position == 0)
      pos:
        line_end: 44987
        line_start: 44987
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (n>=0)
      pos:
        line_end: 44964
        line_start: 44964
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (wkspSize >= ZSTD_BUILD_FSE_TABLE_WKSP_SIZE)
      pos:
        line_end: 44916
        line_start: 44916
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (normalizedCounter[s]>=0)
      pos:
        line_end: 44930
        line_start: 44930
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (position == 0)
      pos:
        line_end: 45001
        line_start: 45001
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (tableSize % unroll == 0)
      pos:
        line_end: 44978
        line_start: 44978
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45018
      start: 44899
    functionDepth: 4
    functionLinenumber: 44899
    functionLinenumberEnd: 45018
    functionName: ZSTD_buildFSETable_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - UNLIKELY
    - ZSTD_highbit32
    - MEM_write64
    - FSE_TABLESTEP
    - assert
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_buildFSETable_body(ZSTD_seqSymbol* dt,\n
      \           const short* normalizedCounter, unsigned maxSymbolValue,\n            const
      U32* baseValue, const U8* nbAdditionalBits,\n            unsigned tableLog,
      void* wksp, size_t wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_buildFSETable_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - baseValue
    - nbAdditionalBits
    - tableLog
    - wksp
    - wkspSize
    argTypes:
    - ZSTD_seqSymbol*
    - short*
    - unsigned
    - U32*
    - U8*
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45028
      start: 45021
    functionDepth: 5
    functionLinenumber: 45021
    functionLinenumberEnd: 45028
    functionName: ZSTD_buildFSETable_body_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_buildFSETable_body
    linkageType: ''
    returnType: void
    signature: "void ZSTD_buildFSETable_body_default(ZSTD_seqSymbol* dt,\n            const
      short* normalizedCounter, unsigned maxSymbolValue,\n            const U32* baseValue,
      const U8* nbAdditionalBits,\n            unsigned tableLog, void* wksp, size_t
      wkspSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_buildFSETable_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - baseValue
    - nbAdditionalBits
    - tableLog
    - wksp
    - wkspSize
    argTypes:
    - ZSTD_seqSymbol*
    - short*
    - unsigned
    - U32*
    - U8*
    - unsigned
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45038
      start: 45031
    functionDepth: 5
    functionLinenumber: 45031
    functionLinenumberEnd: 45038
    functionName: ZSTD_buildFSETable_body_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_buildFSETable_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE ZSTD_buildFSETable_body_bmi2(ZSTD_seqSymbol*
      dt,\n            const short* normalizedCounter, unsigned maxSymbolValue,\n
      \           const U32* baseValue, const U8* nbAdditionalBits,\n            unsigned
      tableLog, void* wksp, size_t wkspSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_buildFSETable_body_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45048,1
    - Dst: ZSTD_buildFSETable_body_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - dt
    - normalizedCounter
    - maxSymbolValue
    - baseValue
    - nbAdditionalBits
    - tableLog
    - wksp
    - wkspSize
    - bmi2
    argTypes:
    - ZSTD_seqSymbol*
    - short*
    - unsigned
    - U32*
    - U8*
    - unsigned
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45056
      start: 45041
    functionDepth: 6
    functionLinenumber: 45041
    functionLinenumberEnd: 45056
    functionName: ZSTD_buildFSETable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_buildFSETable_body_default
    - ZSTD_buildFSETable_body_bmi2
    linkageType: ''
    returnType: void
    signature: "void ZSTD_buildFSETable(ZSTD_seqSymbol* dt,\n            const short*
      normalizedCounter, unsigned maxSymbolValue,\n            const U32* baseValue,
      const U8* nbAdditionalBits,\n            unsigned tableLog, void* wksp, size_t
      wkspSize, int bmi2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45073,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45074,1
    - Dst: ZSTD_buildSeqTable_rle
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45078,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45086,1
    - Dst: SEQSYMBOL_TABLE_SIZE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45090,1
    - Dst: PREFETCH_AREA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45091,1
    - Dst: FSE_readNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45097,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45098,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45098,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45099,1
    - Dst: ZSTD_buildFSETable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45100,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45105,1
    - Dst: RETURN_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 16
    argNames:
    - DTableSpace
    - DTablePtr
    - type
    - max
    - maxLog
    - src
    - srcSize
    - baseValue
    - nbAdditionalBits
    - defaultTable
    - flagRepeatTable
    - ddictIsCold
    - nbSeq
    - wksp
    - wkspSize
    - bmi2
    argTypes:
    - ZSTD_seqSymbol*
    - ZSTD_seqSymbol**
    - symbolEncodingType_e
    - unsigned
    - U32
    - void*
    - size_t
    - U32*
    - U8*
    - ZSTD_seqSymbol*
    - U32
    - int
    - int
    - U32*
    - size_t
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 45104
        line_start: 45104
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45108
      start: 45062
    functionDepth: 8
    functionLinenumber: 45062
    functionLinenumberEnd: 45108
    functionName: ZSTD_buildSeqTable
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - PREFETCH_AREA
    - FSE_isError
    - FSE_readNCount
    - ZSTD_buildSeqTable_rle
    - RETURN_ERROR
    - SEQSYMBOL_TABLE_SIZE
    - ZSTD_buildFSETable
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_buildSeqTable(ZSTD_seqSymbol* DTableSpace, const ZSTD_seqSymbol**
      DTablePtr,\n                                 symbolEncodingType_e type, unsigned
      max, U32 maxLog,\n                                 const void* src, size_t srcSize,\n
      \                                const U32* baseValue, const U8* nbAdditionalBits,\n
      \                                const ZSTD_seqSymbol* defaultTable, U32 flagRepeatTable,\n
      \                                int ddictIsCold, int nbSeq, U32* wksp, size_t
      wkspSize,\n                                 int bmi2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45117,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45120,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45126,1
    - Dst: MEM_readLE16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45127,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45130,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45138,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45144,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45145,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45152,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45159,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45160,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45160,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45164,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45171,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45172,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45172,1
    - Dst: ZSTD_buildSeqTable
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45176,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45183,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45184,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 4
    argNames:
    - dctx
    - nbSeqPtr
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - int*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45190
      start: 45110
    functionDepth: 9
    functionLinenumber: 45110
    functionLinenumberEnd: 45190
    functionName: ZSTD_decodeSeqHeaders
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - DEBUGLOG
    - ZSTD_buildSeqTable
    - MEM_readLE16
    - RETURN_ERROR_IF
    - ZSTD_DCtx_get_bmi2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr,\n                             const
      void* src, size_t srcSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45220,1
    - Dst: ZSTD_copy4
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45231,1
    - Dst: ZSTD_copy8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45234,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - op
    - ip
    - offset
    argTypes:
    - BYTE**
    - BYTE**
    - size_t
    assertStmts:
    - condition: (*ip <= *op)
      pos:
        line_end: 45219
        line_start: 45219
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (*op - *ip >= 8)
      pos:
        line_end: 45237
        line_start: 45237
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45239
      start: 45219
    functionDepth: 2
    functionLinenumber: 45219
    functionLinenumberEnd: 45239
    functionName: ZSTD_overlapCopy8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_copy8
    - ZSTD_copy4
    linkageType: ''
    returnType: HINT_INLINE
    signature: HINT_INLINE ZSTD_overlapCopy8(BYTE** op, BYTE const** ip, size_t offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45256,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45266,1
    - Dst: ZSTD_overlapCopy8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45267,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45269,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45270,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45275,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45280,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 5
    argNames:
    - op
    - oend_w
    - ip
    - length
    - ovtype
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - ptrdiff_t
    - ZSTD_overlap_e
    assertStmts:
    - condition: "((ovtype == ZSTD_no_overlap && (diff <= -8 || diff >= 8 || op >=
        oend_w)) ||\n           (ovtype == ZSTD_overlap_src_before_dst && diff >=
        0))"
      pos:
        line_end: 45256
        line_start: 45255
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op - ip >= 8)
      pos:
        line_end: 45268
        line_start: 45268
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (length >= 8)
      pos:
        line_end: 45265
        line_start: 45265
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 45269
        line_start: 45269
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oend > oend_w)
      pos:
        line_end: 45279
        line_start: 45279
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45287
      start: 45252
    functionDepth: 3
    functionLinenumber: 45252
    functionLinenumberEnd: 45287
    functionName: ZSTD_safecopy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_overlapCopy8
    - assert
    - ZSTD_wildcopy
    linkageType: ''
    returnType: void
    signature: void ZSTD_safecopy(BYTE* op, const BYTE* const oend_w, BYTE const*
      ip, ptrdiff_t length, ZSTD_overlap_e ovtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - op
    - ip
    - length
    argTypes:
    - BYTE*
    - BYTE*
    - ptrdiff_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45310
      start: 45292
    functionDepth: 3
    functionLinenumber: 45292
    functionLinenumberEnd: 45310
    functionName: ZSTD_safecopyDstBeforeSrc
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_wildcopy
    linkageType: ''
    returnType: void
    signature: void ZSTD_safecopyDstBeforeSrc(BYTE* op, const BYTE* ip, ptrdiff_t
      length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45334,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45335,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45336,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45337,1
    - Dst: ZSTD_safecopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45340,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45347,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45350,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45355,1
    - Dst: ZSTD_safecopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 8
    argNames:
    - op
    - oend
    - sequence
    - litPtr
    - litLimit
    - prefixStart
    - virtualStart
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: (op < op + sequenceLength)
      pos:
        line_end: 45335
        line_start: 45335
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd < op + sequenceLength)
      pos:
        line_end: 45336
        line_start: 45336
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45363
      start: 45320
    functionDepth: 4
    functionLinenumber: 45320
    functionLinenumberEnd: 45363
    functionName: ZSTD_execSequenceEnd
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - RETURN_ERROR_IF
    - ZSTD_memmove
    - ZSTD_safecopy
    linkageType: ''
    returnType: FORCE_NOINLINE
    signature: "FORCE_NOINLINE ZSTD_execSequenceEnd(BYTE* op,\n    BYTE* const oend,
      seq_t sequence,\n    const BYTE** litPtr, const BYTE* const litLimit,\n    const
      BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45382,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45383,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45384,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45385,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45388,1
    - Dst: ZSTD_safecopyDstBeforeSrc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45389,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45396,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45399,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45404,1
    - Dst: ZSTD_safecopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 9
    argNames:
    - op
    - oend
    - oend_w
    - sequence
    - litPtr
    - litLimit
    - prefixStart
    - virtualStart
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: (op < op + sequenceLength)
      pos:
        line_end: 45383
        line_start: 45383
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd < op + sequenceLength)
      pos:
        line_end: 45384
        line_start: 45384
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45412
      start: 45368
    functionDepth: 4
    functionLinenumber: 45368
    functionLinenumberEnd: 45412
    functionName: ZSTD_execSequenceEndSplitLitBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_safecopyDstBeforeSrc
    - ZSTD_memmove
    - ZSTD_safecopy
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: FORCE_NOINLINE
    signature: "FORCE_NOINLINE ZSTD_execSequenceEndSplitLitBuffer(BYTE* op,\n    BYTE*
      const oend, const BYTE* const oend_w, seq_t sequence,\n    const BYTE** litPtr,
      const BYTE* const litLimit,\n    const BYTE* const prefixStart, const BYTE*
      const virtualStart, const BYTE* const dictEnd)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45428,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45429,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45433,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45440,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45443,1
    - Dst: ZSTD_execSequenceEnd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45444,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45447,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45448,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45449,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45450,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45451,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45452,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45458,1
    - Dst: ZSTD_copy16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45459,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45460,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45461,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45469,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45469,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45472,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45477,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45484,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45485,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45486,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45487,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45492,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45497,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45500,1
    - Dst: ZSTD_overlapCopy8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45503,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45507,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 8
    argNames:
    - op
    - oend
    - sequence
    - litPtr
    - litLimit
    - prefixStart
    - virtualStart
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: (WILDCOPY_OVERLENGTH >= 16)
      pos:
        line_end: 45457
        line_start: 45457
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequence.matchLength >= 1)
      pos:
        line_end: 45486
        line_start: 45486
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequence.offset < WILDCOPY_VECLEN)
      pos:
        line_end: 45499
        line_start: 45499
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oLitEnd /* No overflow */)
      pos:
        line_end: 45446
        line_start: 45446
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd < oMatchEnd /* Non-zero match & no overflow */)
      pos:
        line_end: 45447
        line_start: 45447
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (iLitEnd <= litLimit /* Literal length is in bounds */)
      pos:
        line_end: 45449
        line_start: 45449
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oMatchEnd)
      pos:
        line_end: 45483
        line_start: 45483
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oMatchEnd <= oend_w)
      pos:
        line_end: 45484
        line_start: 45484
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op < oMatchEnd)
      pos:
        line_end: 45506
        line_start: 45506
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op != NULL /* Precondition */)
      pos:
        line_end: 45427
        line_start: 45427
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oMatchEnd <= oend /* No underflow */)
      pos:
        line_end: 45448
        line_start: 45448
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd <= oend_w /* Can wildcopy literals */)
      pos:
        line_end: 45450
        line_start: 45450
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match >= prefixStart)
      pos:
        line_end: 45485
        line_start: 45485
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oend_w < oend /* No underflow */)
      pos:
        line_end: 45428
        line_start: 45428
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oMatchEnd <= oend_w /* Can wildcopy matches */)
      pos:
        line_end: 45451
        line_start: 45451
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45511
      start: 45414
    functionDepth: 5
    functionLinenumber: 45414
    functionLinenumberEnd: 45511
    functionName: ZSTD_execSequence
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_overlapCopy8
    - PREFETCH_L1
    - UNLIKELY
    - ZSTD_wildcopy
    - MEM_32bits
    - ZSTD_execSequenceEnd
    - ZSTD_memmove
    - LIKELY
    - ZSTD_copy16
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: HINT_INLINE
    signature: "HINT_INLINE ZSTD_execSequence(BYTE* op,\n    BYTE* const oend, seq_t
      sequence,\n    const BYTE** litPtr, const BYTE* const litLimit,\n    const BYTE*
      const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45526,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45527,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45533,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45536,1
    - Dst: ZSTD_execSequenceEndSplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45537,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45540,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45541,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45542,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45543,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45544,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45545,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45551,1
    - Dst: ZSTD_copy16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45552,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45553,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45554,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45562,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45562,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45565,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45570,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45576,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45577,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45578,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45579,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45584,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45589,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45592,1
    - Dst: ZSTD_overlapCopy8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45595,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45599,1
    - Dst: ZSTD_wildcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 9
    argNames:
    - op
    - oend
    - oend_w
    - sequence
    - litPtr
    - litLimit
    - prefixStart
    - virtualStart
    - dictEnd
    argTypes:
    - BYTE*
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE**
    - BYTE*
    - BYTE*
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: (oMatchEnd <= oend /* No underflow */)
      pos:
        line_end: 45541
        line_start: 45541
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (WILDCOPY_OVERLENGTH >= 16)
      pos:
        line_end: 45550
        line_start: 45550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequence.matchLength >= 1)
      pos:
        line_end: 45578
        line_start: 45578
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequence.offset < WILDCOPY_VECLEN)
      pos:
        line_end: 45591
        line_start: 45591
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (iLitEnd <= litLimit /* Literal length is in bounds */)
      pos:
        line_end: 45542
        line_start: 45542
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oMatchEnd)
      pos:
        line_end: 45575
        line_start: 45575
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oMatchEnd <= oend_w)
      pos:
        line_end: 45576
        line_start: 45576
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op < oMatchEnd)
      pos:
        line_end: 45598
        line_start: 45598
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op != NULL /* Precondition */)
      pos:
        line_end: 45525
        line_start: 45525
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd <= oend_w /* Can wildcopy literals */)
      pos:
        line_end: 45543
        line_start: 45543
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (match >= prefixStart)
      pos:
        line_end: 45577
        line_start: 45577
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oend_w < oend /* No underflow */)
      pos:
        line_end: 45526
        line_start: 45526
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oLitEnd /* No overflow */)
      pos:
        line_end: 45539
        line_start: 45539
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oLitEnd < oMatchEnd /* Non-zero match & no overflow */)
      pos:
        line_end: 45540
        line_start: 45540
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (oMatchEnd <= oend_w /* Can wildcopy matches */)
      pos:
        line_end: 45544
        line_start: 45544
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45603
      start: 45513
    functionDepth: 5
    functionLinenumber: 45513
    functionLinenumberEnd: 45603
    functionName: ZSTD_execSequenceSplitLitBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_overlapCopy8
    - ZSTD_wildcopy
    - UNLIKELY
    - MEM_32bits
    - ZSTD_memmove
    - ZSTD_execSequenceEndSplitLitBuffer
    - LIKELY
    - ZSTD_copy16
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: HINT_INLINE
    signature: "HINT_INLINE ZSTD_execSequenceSplitLitBuffer(BYTE* op,\n    BYTE* const
      oend, const BYTE* const oend_w, seq_t sequence,\n    const BYTE** litPtr, const
      BYTE* const litLimit,\n    const BYTE* const prefixStart, const BYTE* const
      virtualStart, const BYTE* const dictEnd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45611,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45612,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - DStatePtr
    - bitD
    - dt
    argTypes:
    - ZSTD_fseState*
    - BIT_DStream_t*
    - ZSTD_seqSymbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45616
      start: 45606
    functionDepth: 4
    functionLinenumber: 45606
    functionLinenumberEnd: 45616
    functionName: ZSTD_initFseState
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBits
    - DEBUGLOG
    - BIT_reloadDStream
    linkageType: ''
    returnType: void
    signature: void ZSTD_initFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD,
      const ZSTD_seqSymbol* dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIT_readBits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - DStatePtr
    - bitD
    - nextState
    - nbBits
    argTypes:
    - ZSTD_fseState*
    - BIT_DStream_t*
    - U16
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45623
      start: 45618
    functionDepth: 4
    functionLinenumber: 45618
    functionLinenumberEnd: 45623
    functionName: ZSTD_updateFseStateWithDInfo
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BIT_readBits
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr,
      BIT_DStream_t* bitD, U16 nextState, U32 nbBits)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45660,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45661,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45662,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45683,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45684,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45685,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45695,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45696,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45697,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45698,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45699,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45704,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45705,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45706,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45708,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45709,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45709,1
    - Dst: LIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45716,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45721,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45732,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45734,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45735,1
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45736,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45736,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45737,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45739,1
    - Dst: BIT_readBitsFast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45742,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45744,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45745,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45747,1
    - Dst: ZSTD_updateFseStateWithDInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45752,1
    - Dst: ZSTD_updateFseStateWithDInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45753,1
    - Dst: MEM_32bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45754,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45754,1
    - Dst: ZSTD_updateFseStateWithDInfo
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45755,1
    - Dst: BIT_reloadDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45756,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - seqState
    - longOffsets
    - isLastSeq
    argTypes:
    - seqState_t*
    - ZSTD_longOffset_e
    - int
    assertStmts:
    - condition: (mlBits <= MaxMLBits)
      pos:
        line_end: 45683
        line_start: 45683
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (llBits <= MaxLLBits)
      pos:
        line_end: 45682
        line_start: 45682
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ofBits <= MaxOff)
      pos:
        line_end: 45684
        line_start: 45684
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45761
      start: 45643
    functionDepth: 5
    functionLinenumber: 45643
    functionLinenumberEnd: 45761
    functionName: ZSTD_decodeSequence
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_memcpy
    - BIT_readBitsFast
    - UNLIKELY
    - MEM_32bits
    - BIT_reloadDStream
    - ZSTD_updateFseStateWithDInfo
    - MEM_64bits
    - DEBUGLOG
    - LIKELY
    - assert
    - ZSTD_STATIC_ASSERT
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: FORCE_INLINE_TEMPLATE ZSTD_decodeSequence(seqState_t* seqState, const
      ZSTD_longOffset_e longOffsets, const int isLastSeq)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - dctx
    - prefixStart
    - oLitEnd
    argTypes:
    - ZSTD_DCtx*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45778
      start: 45765
    functionDepth: 0
    functionLinenumber: 45765
    functionLinenumberEnd: 45778
    functionName: ZSTD_dictionaryIsActive
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart,
      BYTE const* oLitEnd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45792,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45794,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45795,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45796,1
    - Dst: ZSTD_blockSizeMax
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45796,1
    - Dst: ZSTD_dictionaryIsActive
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45797,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45800,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45801,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - dctx
    - op
    - oend
    - seq
    - prefixStart
    - virtualStart
    argTypes:
    - ZSTD_DCtx*
    - BYTE*
    - BYTE*
    - seq_t
    - BYTE*
    - BYTE*
    assertStmts:
    - condition: ((size_t)(oend - op) >= sequenceSize)
      pos:
        line_end: 45794
        line_start: 45794
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (op <= oend)
      pos:
        line_end: 45793
        line_start: 45793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (sequenceSize <= ZSTD_blockSizeMax(dctx))
      pos:
        line_end: 45795
        line_start: 45795
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seq.offset <= (size_t)(oLitEnd - virtualStart))
      pos:
        line_end: 45799
        line_start: 45799
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seq.offset <= windowSize + dictSize)
      pos:
        line_end: 45800
        line_start: 45800
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (seq.offset <= windowSize)
      pos:
        line_end: 45803
        line_start: 45803
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 45810
      start: 45781
    functionDepth: 2
    functionLinenumber: 45781
    functionLinenumberEnd: 45810
    functionName: ZSTD_assertValidSequence
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_dictionaryIsActive
    - DEBUGLOG
    - ZSTD_blockSizeMax
    linkageType: ''
    returnType: void
    signature: "void ZSTD_assertValidSequence(\n        ZSTD_DCtx const* dctx,\n        BYTE
      const* op, BYTE const* oend,\n        seq_t const seq,\n        BYTE const*
      prefixStart, BYTE const* virtualStart)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45826,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45833,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45840,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45841,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45841,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45843,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45844,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45845,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45846,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45848,1
    - Dst: ZSTD_decodeSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45917,1
    - Dst: ZSTD_execSequenceSplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45919,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45921,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45921,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45922,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45924,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45924,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45926,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45929,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45934,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45936,1
    - Dst: ZSTD_safecopyDstBeforeSrc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45937,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45944,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45946,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45946,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45947,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45949,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45949,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45951,1
    - Dst: ZSTD_decodeSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45979,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45980,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45982,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45982,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45983,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45985,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45985,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45987,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45993,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45994,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45995,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45996,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:45996,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46005,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46006,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46008,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46017,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46018,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46020,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46024,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 101
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts:
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 45981
        line_start: 45981
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dst != NULL)
      pos:
        line_end: 45845
        line_start: 45845
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 45920
        line_start: 45920
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 45945
        line_start: 45945
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 46026
      start: 45816
    functionDepth: 6
    functionLinenumber: 45816
    functionLinenumberEnd: 46026
    functionName: ZSTD_decompressSequences_bodySplitLitBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_safecopyDstBeforeSrc
    - ZSTD_isError
    - UNLIKELY
    - ZSTD_memcpy
    - BIT_initDStream
    - ERR_isError
    - ZSTD_STATIC_ASSERT
    - ZSTD_decodeSequence
    - DEBUGLOG
    - ZSTD_maybeNullPtrAdd
    - ZSTD_assertValidSequence
    - ZSTD_memmove
    - BIT_endOfDStream
    - ZSTD_initFseState
    - ZSTD_execSequenceSplitLitBuffer
    - ZSTD_execSequence
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_decompressSequences_bodySplitLitBuffer(
      ZSTD_DCtx* dctx,\n                               void* dst, size_t maxDstSize,\n
      \                        const void* seqStart, size_t seqSize, int nbSeq,\n
      \                        const ZSTD_longOffset_e isLongOffset)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46038,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46045,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46052,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46053,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46053,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46055,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46056,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46057,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46058,1
    - Dst: ZSTD_decodeSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46075,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46076,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46078,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46078,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46079,1
    - Dst: UNLIKELY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46081,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46081,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46083,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46088,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46089,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46089,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46096,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46097,1
    - Dst: ZSTD_memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46099,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts:
    - condition: (dst != NULL)
      pos:
        line_end: 46057
        line_start: 46057
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (nbSeq == 0)
      pos:
        line_end: 46087
        line_start: 46087
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 46077
        line_start: 46077
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 46105
      start: 46028
    functionDepth: 6
    functionLinenumber: 46028
    functionLinenumberEnd: 46105
    functionName: ZSTD_decompressSequences_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - UNLIKELY
    - ZSTD_memcpy
    - BIT_initDStream
    - ERR_isError
    - ZSTD_decodeSequence
    - ZSTD_assertValidSequence
    - DEBUGLOG
    - ZSTD_maybeNullPtrAdd
    - BIT_endOfDStream
    - ZSTD_initFseState
    - ZSTD_execSequence
    - assert
    - RETURN_ERROR_IF
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_decompressSequences_body(ZSTD_DCtx* dctx,\n
      \   void* dst, size_t maxDstSize,\n    const void* seqStart, size_t seqSize,
      int nbSeq,\n    const ZSTD_longOffset_e isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequences_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46114
      start: 46107
    functionDepth: 7
    functionLinenumber: 46107
    functionLinenumberEnd: 46114
    functionName: ZSTD_decompressSequences_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences_body
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequences_default(ZSTD_DCtx* dctx,\n                                 void*
      dst, size_t maxDstSize,\n                           const void* seqStart, size_t
      seqSize, int nbSeq,\n                           const ZSTD_longOffset_e isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequences_bodySplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46123
      start: 46116
    functionDepth: 7
    functionLinenumber: 46116
    functionLinenumberEnd: 46123
    functionName: ZSTD_decompressSequencesSplitLitBuffer_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences_bodySplitLitBuffer
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequencesSplitLitBuffer_default(ZSTD_DCtx* dctx,\n
      \                                              void* dst, size_t maxDstSize,\n
      \                                        const void* seqStart, size_t seqSize,
      int nbSeq,\n                                         const ZSTD_longOffset_e
      isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_wrappedPtrSub
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46137,1
    - Dst: ZSTD_wrappedPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46137,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46138,1
    - Dst: PREFETCH_L1
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - prefetchPos
    - sequence
    - prefixStart
    - dictEnd
    argTypes:
    - size_t
    - seq_t
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46141
      start: 46128
    functionDepth: 1
    functionLinenumber: 46128
    functionLinenumberEnd: 46141
    functionName: ZSTD_prefetchMatch
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_wrappedPtrSub
    - PREFETCH_L1
    - ZSTD_wrappedPtrAdd
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_prefetchMatch(size_t prefetchPos, seq_t
      const sequence,\n                   const BYTE* const prefixStart, const BYTE*
      const dictEnd)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_maybeNullPtrAdd
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46157,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46171,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46178,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46179,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46180,1
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46181,1
    - Dst: BIT_initDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46181,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46183,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46184,1
    - Dst: ZSTD_initFseState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46185,1
    - Dst: ZSTD_decodeSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46189,1
    - Dst: ZSTD_prefetchMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46190,1
    - Dst: ZSTD_decodeSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46196,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46203,1
    - Dst: ZSTD_safecopyDstBeforeSrc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46204,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46211,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46213,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46213,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46214,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46216,1
    - Dst: ZSTD_prefetchMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46218,1
    - Dst: ZSTD_execSequenceSplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46226,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46227,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46229,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46229,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46230,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46232,1
    - Dst: ZSTD_prefetchMatch
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46234,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46239,1
    - Dst: BIT_endOfDStream
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46239,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46248,1
    - Dst: ZSTD_safecopyDstBeforeSrc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46249,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46256,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46258,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46258,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46259,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46261,1
    - Dst: ZSTD_execSequenceSplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46268,1
    - Dst: ZSTD_execSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46269,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46271,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46271,1
    - Dst: ZSTD_assertValidSequence
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46272,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46274,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46286,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46288,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46295,1
    - Dst: ZSTD_memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46297,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 92
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts:
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 46228
        line_start: 46228
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 46257
        line_start: 46257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (dst != NULL)
      pos:
        line_end: 46177
        line_start: 46177
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 46212
        line_start: 46212
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (!ZSTD_isError(oneSeqSize))
      pos:
        line_end: 46270
        line_start: 46270
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (iend >= ip)
      pos:
        line_end: 46178
        line_start: 46178
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 46303
      start: 46147
    functionDepth: 6
    functionLinenumber: 46147
    functionLinenumberEnd: 46303
    functionName: ZSTD_decompressSequencesLong_body
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_safecopyDstBeforeSrc
    - ZSTD_isError
    - BIT_initDStream
    - ERR_isError
    - ZSTD_decodeSequence
    - ZSTD_assertValidSequence
    - ZSTD_memmove
    - ZSTD_maybeNullPtrAdd
    - ZSTD_prefetchMatch
    - BIT_endOfDStream
    - ZSTD_initFseState
    - ZSTD_execSequenceSplitLitBuffer
    - ZSTD_execSequence
    - assert
    - RETURN_ERROR_IF
    - MIN
    linkageType: ''
    returnType: FORCE_INLINE_TEMPLATE
    signature: "FORCE_INLINE_TEMPLATE ZSTD_decompressSequencesLong_body(\n                               ZSTD_DCtx*
      dctx,\n                               void* dst, size_t maxDstSize,\n                         const
      void* seqStart, size_t seqSize, int nbSeq,\n                         const ZSTD_longOffset_e
      isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequencesLong_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46312
      start: 46305
    functionDepth: 7
    functionLinenumber: 46305
    functionLinenumberEnd: 46312
    functionName: ZSTD_decompressSequencesLong_default
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequencesLong_body
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx,\n                                 void*
      dst, size_t maxDstSize,\n                           const void* seqStart, size_t
      seqSize, int nbSeq,\n                           const ZSTD_longOffset_e isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequences_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46328
      start: 46320
    functionDepth: 7
    functionLinenumber: 46320
    functionLinenumberEnd: 46328
    functionName: ZSTD_decompressSequences_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx,\n
      \                                void* dst, size_t maxDstSize,\n                           const
      void* seqStart, size_t seqSize, int nbSeq,\n                           const
      ZSTD_longOffset_e isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequences_bodySplitLitBuffer
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46337
      start: 46329
    functionDepth: 7
    functionLinenumber: 46329
    functionLinenumberEnd: 46337
    functionName: ZSTD_decompressSequencesSplitLitBuffer_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences_bodySplitLitBuffer
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE ZSTD_decompressSequencesSplitLitBuffer_bmi2(ZSTD_DCtx*
      dctx,\n                                 void* dst, size_t maxDstSize,\n                           const
      void* seqStart, size_t seqSize, int nbSeq,\n                           const
      ZSTD_longOffset_e isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressSequencesLong_body
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46348
      start: 46341
    functionDepth: 7
    functionLinenumber: 46341
    functionLinenumberEnd: 46348
    functionName: ZSTD_decompressSequencesLong_bmi2
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequencesLong_body
    linkageType: ''
    returnType: BMI2_TARGET_ATTRIBUTE
    signature: "BMI2_TARGET_ATTRIBUTE ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx*
      dctx,\n                                 void* dst, size_t maxDstSize,\n                           const
      void* seqStart, size_t seqSize, int nbSeq,\n                           const
      ZSTD_longOffset_e isLongOffset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46365,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46367,1
    - Dst: ZSTD_decompressSequences_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46368,1
    - Dst: ZSTD_decompressSequences_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46372
      start: 46360
    functionDepth: 8
    functionLinenumber: 46360
    functionLinenumberEnd: 46372
    functionName: ZSTD_decompressSequences
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequences_default
    - DEBUGLOG
    - ZSTD_DCtx_get_bmi2
    - ZSTD_decompressSequences_bmi2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t
      maxDstSize,\n                   const void* seqStart, size_t seqSize, int nbSeq,\n
      \                  const ZSTD_longOffset_e isLongOffset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46378,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46380,1
    - Dst: ZSTD_decompressSequencesSplitLitBuffer_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46381,1
    - Dst: ZSTD_decompressSequencesSplitLitBuffer_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46385
      start: 46373
    functionDepth: 8
    functionLinenumber: 46373
    functionLinenumberEnd: 46385
    functionName: ZSTD_decompressSequencesSplitLitBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequencesSplitLitBuffer_default
    - ZSTD_decompressSequencesSplitLitBuffer_bmi2
    - DEBUGLOG
    - ZSTD_DCtx_get_bmi2
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequencesSplitLitBuffer(ZSTD_DCtx* dctx, void*
      dst, size_t maxDstSize,\n                                 const void* seqStart,
      size_t seqSize, int nbSeq,\n                                 const ZSTD_longOffset_e
      isLongOffset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46401,1
    - Dst: ZSTD_DCtx_get_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46403,1
    - Dst: ZSTD_decompressSequencesLong_bmi2
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46404,1
    - Dst: ZSTD_decompressSequencesLong_default
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - dctx
    - dst
    - maxDstSize
    - seqStart
    - seqSize
    - nbSeq
    - isLongOffset
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    - int
    - ZSTD_longOffset_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46408
      start: 46395
    functionDepth: 8
    functionLinenumber: 46395
    functionLinenumberEnd: 46408
    functionName: ZSTD_decompressSequencesLong
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressSequencesLong_bmi2
    - DEBUGLOG
    - ZSTD_DCtx_get_bmi2
    - ZSTD_decompressSequencesLong_default
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx,\n                             void*
      dst, size_t maxDstSize,\n                             const void* seqStart,
      size_t seqSize, int nbSeq,\n                             const ZSTD_longOffset_e
      isLongOffset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - virtualStart
    argTypes:
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46420
      start: 46417
    functionDepth: 0
    functionLinenumber: 46417
    functionLinenumberEnd: 46420
    functionName: ZSTD_totalHistorySize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_totalHistorySize(BYTE* op, BYTE const* virtualStart)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46446,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46448,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46450,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - offTable
    - nbSeq
    argTypes:
    - ZSTD_seqSymbol*
    - int
    assertStmts:
    - condition: (tableLog <= OffFSELog)
      pos:
        line_end: 46453
        line_start: 46453
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (max <= (1 << OffFSELog))
      pos:
        line_end: 46447
        line_start: 46447
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 46459
      start: 46433
    functionDepth: 1
    functionLinenumber: 46433
    functionLinenumberEnd: 46459
    functionName: ZSTD_getOffsetInfo
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - DEBUGLOG
    - MAX
    linkageType: ''
    returnType: ZSTD_OffsetInfo
    signature: ZSTD_OffsetInfo ZSTD_getOffsetInfo(const ZSTD_seqSymbol* offTable,
      int nbSeq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_64bits
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46468,1
    - Dst: ZSTD_STATIC_ASSERT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46472,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46481,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ZSTD_highbit32((U32)maxOffbase) == STREAM_ACCUMULATOR_MIN)
      pos:
        line_end: 46480
        line_start: 46480
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 46484
      start: 46466
    functionDepth: 4
    functionLinenumber: 46466
    functionLinenumberEnd: 46484
    functionName: ZSTD_maxShortOffset
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - ZSTD_STATIC_ASSERT
    - MEM_64bits
    - ZSTD_highbit32
    linkageType: ''
    returnType: size_t
    signature: size_t ZSTD_maxShortOffset(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - dctx
    - dst
    - dstSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46607
      start: 46598
    functionDepth: 0
    functionLinenumber: 46598
    functionLinenumberEnd: 46607
    functionName: ZSTD_checkContinuity
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
    signature: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR ZSTD_checkContinuity(ZSTD_DCtx* dctx,
      const void* dst, size_t dstSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_checkContinuity
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46616,1
    - Dst: ZSTD_decompressBlock_internal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46617,1
    - Dst: FORWARD_IF_ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46621
      start: 46610
    functionDepth: 1
    functionLinenumber: 46610
    functionLinenumberEnd: 46621
    functionName: ZSTD_decompressBlock_deprecated
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressBlock_internal
    - ZSTD_checkContinuity
    - FORWARD_IF_ERROR
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx,\n                                       void*
      dst, size_t dstCapacity,\n                                 const void* src,
      size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_decompressBlock_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:46629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dctx
    - dst
    - dstCapacity
    - src
    - srcSize
    argTypes:
    - ZSTD_DCtx*
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46630
      start: 46625
    functionDepth: 2
    functionLinenumber: 46625
    functionLinenumberEnd: 46630
    functionName: ZSTD_decompressBlock
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_decompressBlock_deprecated
    linkageType: ''
    returnType: size_t
    signature: "size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx,\n                            void*
      dst, size_t dstCapacity,\n                      const void* src, size_t srcSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47123
      start: 47122
    functionDepth: 0
    functionLinenumber: 47122
    functionLinenumberEnd: 47123
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47125
      start: 47124
    functionDepth: 0
    functionLinenumber: 47124
    functionLinenumberEnd: 47125
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47127
      start: 47126
    functionDepth: 0
    functionLinenumber: 47126
    functionLinenumberEnd: 47127
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47129
      start: 47128
    functionDepth: 0
    functionLinenumber: 47128
    functionLinenumberEnd: 47129
    functionName: ZDICT_DEPRECATED
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZDICT_DEPRECATED(message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47327
      start: 47322
    functionDepth: 0
    functionLinenumber: 47322
    functionLinenumberEnd: 47327
    functionName: DISPLAY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - displayLevel
    - ','
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47332
      start: 47328
    functionDepth: 0
    functionLinenumber: 47328
    functionLinenumberEnd: 47332
    functionName: LOCALDISPLAYLEVEL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCALDISPLAYLEVEL(displayLevel, l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47334
      start: 47333
    functionDepth: 0
    functionLinenumber: 47333
    functionLinenumberEnd: 47334
    functionName: DISPLAYLEVEL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYLEVEL(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - displayLevel
    - ','
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47347
      start: 47340
    functionDepth: 0
    functionLinenumber: 47340
    functionLinenumberEnd: 47347
    functionName: LOCALDISPLAYUPDATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCALDISPLAYUPDATE(displayLevel, l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47349
      start: 47348
    functionDepth: 0
    functionLinenumber: 47348
    functionLinenumberEnd: 47349
    functionName: DISPLAYUPDATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYUPDATE(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - map
    argTypes:
    - COVER_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47377
      start: 47375
    functionDepth: 0
    functionLinenumber: 47375
    functionLinenumberEnd: 47377
    functionName: COVER_map_clear
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void COVER_map_clear(COVER_map_t *map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47386,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47389,1
    - Dst: COVER_map_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - map
    - size
    argTypes:
    - COVER_map_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47397
      start: 47385
    functionDepth: 4
    functionLinenumber: 47385
    functionLinenumberEnd: 47397
    functionName: COVER_map_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - ZSTD_highbit32
    - COVER_map_clear
    linkageType: ''
    returnType: int
    signature: int COVER_map_init(COVER_map_t *map, U32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - COVER_map_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47405
      start: 47403
    functionDepth: 0
    functionLinenumber: 47403
    functionLinenumberEnd: 47405
    functionName: COVER_map_hash
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 COVER_map_hash(COVER_map_t *map, U32 key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COVER_map_hash
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - COVER_map_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47422
      start: 47410
    functionDepth: 1
    functionLinenumber: 47410
    functionLinenumberEnd: 47422
    functionName: COVER_map_index
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_map_hash
    linkageType: ''
    returnType: U32
    signature: U32 COVER_map_index(COVER_map_t *map, U32 key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COVER_map_index
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - COVER_map_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47436
      start: 47429
    functionDepth: 2
    functionLinenumber: 47429
    functionLinenumberEnd: 47436
    functionName: COVER_map_at
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_map_index
    linkageType: ''
    returnType: U32
    signature: U32 *COVER_map_at(COVER_map_t *map, U32 key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COVER_map_index
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47442,1
    - Dst: COVER_map_hash
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - map
    - key
    argTypes:
    - COVER_map_t*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47465
      start: 47441
    functionDepth: 2
    functionLinenumber: 47441
    functionLinenumberEnd: 47465
    functionName: COVER_map_remove
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_map_hash
    - COVER_map_index
    linkageType: ''
    returnType: void
    signature: void COVER_map_remove(COVER_map_t *map, U32 key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - map
    argTypes:
    - COVER_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47476
      start: 47470
    functionDepth: 0
    functionLinenumber: 47470
    functionLinenumberEnd: 47476
    functionName: COVER_map_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void COVER_map_destroy(COVER_map_t *map)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - samplesSizes
    - nbSamples
    argTypes:
    - size_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47513
      start: 47506
    functionDepth: 0
    functionLinenumber: 47506
    functionLinenumberEnd: 47513
    functionName: COVER_sum
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - lp
    - rp
    argTypes:
    - COVER_ctx_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47524
      start: 47520
    functionDepth: 0
    functionLinenumber: 47520
    functionLinenumberEnd: 47524
    functionName: COVER_cmp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int COVER_cmp(COVER_ctx_t *ctx, const void *lp, const void *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47530,1
    - Dst: MEM_readLE64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - lp
    - rp
    argTypes:
    - COVER_ctx_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47536
      start: 47528
    functionDepth: 3
    functionLinenumber: 47528
    functionLinenumberEnd: 47536
    functionName: COVER_cmp8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readLE64
    linkageType: ''
    returnType: int
    signature: int COVER_cmp8(COVER_ctx_t *ctx, const void *lp, const void *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COVER_cmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lp
    - rp
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47549
      start: 47543
    functionDepth: 1
    functionLinenumber: 47543
    functionLinenumberEnd: 47549
    functionName: COVER_strict_cmp
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_cmp
    linkageType: ''
    returnType: int
    signature: int COVER_strict_cmp(const void *lp, const void *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COVER_cmp8
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lp
    - rp
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47559
      start: 47553
    functionDepth: 4
    functionLinenumber: 47553
    functionLinenumberEnd: 47559
    functionName: COVER_strict_cmp8
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_cmp8
    linkageType: ''
    returnType: int
    signature: int COVER_strict_cmp8(const void *lp, const void *rp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - first
    - last
    - value
    argTypes:
    - size_t*
    - size_t*
    - size_t
    assertStmts:
    - condition: (last >= first)
      pos:
        line_end: 47567
        line_start: 47567
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 47581
      start: 47565
    functionDepth: 1
    functionLinenumber: 47565
    functionLinenumberEnd: 47581
    functionName: COVER_lower_bound
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: "size_t *COVER_lower_bound(const size_t* first, const size_t* last,\n
      \                                      size_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47597,1
    - Dst: grp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - data
    - count
    - size
    - ctx
    argTypes:
    - void*
    - size_t
    - size_t
    - COVER_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47604
      start: 47588
    functionDepth: 0
    functionLinenumber: 47588
    functionLinenumberEnd: 47604
    functionName: COVER_groupBy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - cmp
    - grp
    linkageType: ''
    returnType: void
    signature: "void COVER_groupBy(const void *data, size_t count, size_t size, COVER_ctx_t
      *ctx,\n              int (*cmp)(COVER_ctx_t *, const void *, const void *),\n
      \             void (*grp)(COVER_ctx_t *, const void *, const void *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COVER_lower_bound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - group
    - groupEnd
    argTypes:
    - COVER_ctx_t*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47662
      start: 47615
    functionDepth: 2
    functionLinenumber: 47615
    functionLinenumberEnd: 47662
    functionName: COVER_group
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_lower_bound
    linkageType: ''
    returnType: void
    signature: "void COVER_group(COVER_ctx_t *ctx, const void *group,\n                        const
      void *groupEnd)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COVER_map_clear
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47688,1
    - Dst: COVER_map_at
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47700,1
    - Dst: COVER_map_at
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47715,1
    - Dst: COVER_map_remove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47720,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - ctx
    - freqs
    - activeDmers
    - begin
    - end
    - parameters
    argTypes:
    - COVER_ctx_t*
    - U32*
    - COVER_map_t*
    - U32
    - U32
    - ZDICT_cover_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47753
      start: 47676
    functionDepth: 3
    functionLinenumber: 47676
    functionLinenumberEnd: 47753
    functionName: COVER_selectSegment
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_map_at
    - COVER_map_remove
    - MIN
    - COVER_map_clear
    linkageType: ''
    returnType: COVER_segment_t
    signature: "COVER_segment_t COVER_selectSegment(const COVER_ctx_t *ctx, U32 *freqs,\n
      \                                          COVER_map_t *activeDmers, U32 begin,\n
      \                                          U32 end,\n                                           ZDICT_cover_params_t
      parameters)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - parameters
    - maxDictSize
    argTypes:
    - ZDICT_cover_params_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47778
      start: 47759
    functionDepth: 0
    functionLinenumber: 47759
    functionLinenumberEnd: 47778
    functionName: COVER_checkParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int COVER_checkParameters(ZDICT_cover_params_t parameters,\n                                 size_t
      maxDictSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47788,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47792,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47796,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - COVER_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47803
      start: 47783
    functionDepth: 0
    functionLinenumber: 47783
    functionLinenumberEnd: 47803
    functionName: COVER_ctx_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void COVER_ctx_destroy(COVER_ctx_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47817,1
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47821,1
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47822,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47824,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47826,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47828,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47832,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47833,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47837,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47838,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47841,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47842,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47844,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47852,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47853,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47855,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47857,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47859,1
    - Dst: COVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47860,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47861,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47874,1
    - Dst: mergesort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47889,1
    - Dst: qsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47892,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47896,1
    - Dst: COVER_groupBy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47904,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 6
    argNames:
    - ctx
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - d
    - splitPoint
    argTypes:
    - COVER_ctx_t*
    - void*
    - size_t*
    - unsigned
    - unsigned
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47909
      start: 47812
    functionDepth: 1
    functionLinenumber: 47812
    functionLinenumberEnd: 47909
    functionName: COVER_ctx_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_ctx_destroy
    - malloc
    - mergesort
    - COVER_sum
    - MAX
    - ERROR
    - qsort
    - COVER_groupBy
    - DISPLAYLEVEL
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t COVER_ctx_init(COVER_ctx_t *ctx, const void *samplesBuffer,\n
      \                         const size_t *samplesSizes, unsigned nbSamples,\n
      \                         unsigned d, double splitPoint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - maxDictSize
    - nbDmers
    - displayLevel
    argTypes:
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47925
      start: 47911
    functionDepth: 1
    functionLinenumber: 47911
    functionLinenumberEnd: 47925
    functionName: COVER_warnOnSmallCorpus
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - LOCALDISPLAYLEVEL
    linkageType: ''
    returnType: void
    signature: void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int
      displayLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47932,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47935,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47938,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - maxDictSize
    - nbDmers
    - k
    - passes
    argTypes:
    - U32
    - U32
    - U32
    - U32
    assertStmts:
    - condition: (epochs.size * epochs.num <= nbDmers)
      pos:
        line_end: 47939
        line_start: 47939
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (epochs.size * epochs.num <= nbDmers)
      pos:
        line_end: 47934
        line_start: 47934
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 47942
      start: 47927
    functionDepth: 1
    functionLinenumber: 47927
    functionLinenumberEnd: 47942
    functionName: COVER_computeEpochs
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - assert
    - MIN
    - MAX
    linkageType: ''
    returnType: COVER_epoch_info_t
    signature: "COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize,\n                                       U32
      nbDmers, U32 k, U32 passes)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COVER_computeEpochs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47954,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47956,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47956,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47959,1
    - Dst: COVER_selectSegment
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47969,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47982,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47990,1
    - Dst: DISPLAYUPDATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47991,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:47995,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - freqs
    - activeDmers
    - dictBuffer
    - dictBufferCapacity
    - parameters
    argTypes:
    - COVER_ctx_t*
    - U32*
    - COVER_map_t*
    - void*
    - size_t
    - ZDICT_cover_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47997
      start: 47947
    functionDepth: 4
    functionLinenumber: 47947
    functionLinenumberEnd: 47997
    functionName: COVER_buildDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MAX
    - COVER_computeEpochs
    - DISPLAYUPDATE
    - COVER_selectSegment
    - DISPLAYLEVEL
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t COVER_buildDictionary(const COVER_ctx_t *ctx, U32 *freqs,\n
      \                                   COVER_map_t *activeDmers, void *dictBuffer,\n
      \                                   size_t dictBufferCapacity,\n                                    ZDICT_cover_params_t
      parameters)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: COVER_checkParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48011,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48012,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48013,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48016,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48017,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48020,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48022,1
    - Dst: COVER_ctx_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48026,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48028,1
    - Dst: COVER_warnOnSmallCorpus
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48032,1
    - Dst: COVER_map_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48033,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48034,1
    - Dst: COVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48035,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48036,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48039,1
    - Dst: COVER_buildDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48042,1
    - Dst: ZDICT_finalizeDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48044,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48047,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48048,1
    - Dst: COVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48051,1
    - Dst: COVER_map_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48052,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 6
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - parameters
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_cover_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48055
      start: 47999
    functionDepth: 5
    functionLinenumber: 47999
    functionLinenumberEnd: 48055
    functionName: ZDICT_trainFromBuffer_cover
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - COVER_ctx_init
    - ZSTD_isError
    - COVER_ctx_destroy
    - ZDICT_finalizeDictionary
    - ERROR
    - COVER_map_init
    - COVER_warnOnSmallCorpus
    - COVER_map_destroy
    - DISPLAYLEVEL
    - COVER_buildDictionary
    - COVER_checkParameters
    linkageType: ''
    returnType: ZDICTLIB_STATIC_API
    signature: "ZDICTLIB_STATIC_API ZDICT_trainFromBuffer_cover(\n    void *dictBuffer,
      size_t dictBufferCapacity,\n    const void *samplesBuffer, const size_t *samplesSizes,
      unsigned nbSamples,\n    ZDICT_cover_params_t parameters)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48064,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48077,1
    - Dst: ZSTD_compressBound
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48079,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48080,1
    - Dst: ZSTD_createCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48083,1
    - Dst: ZSTD_createCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48084,1
    - Dst: ZSTD_compress_usingCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48093,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48096,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48103,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48104,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 8
    argNames:
    - parameters
    - samplesSizes
    - samples
    - offsets
    - nbTrainSamples
    - nbSamples
    - dict
    - dictBufferCapacity
    argTypes:
    - ZDICT_cover_params_t
    - size_t*
    - BYTE*
    - size_t*
    - size_t
    - size_t
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48109
      start: 48059
    functionDepth: 23
    functionLinenumber: 48059
    functionLinenumberEnd: 48109
    functionName: COVER_checkTotalCompressedSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - ZSTD_isError
    - ZSTD_createCCtx
    - MAX
    - ZSTD_freeCDict
    - ZSTD_freeCCtx
    - ERROR
    - ZSTD_compressBound
    - ZSTD_compress_usingCDict
    - ZSTD_createCDict
    - free
    linkageType: ''
    returnType: size_t
    signature: "size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters,\n
      \                                   const size_t *samplesSizes, const BYTE *samples,\n
      \                                   size_t *offsets,\n                                    size_t
      nbTrainSamples, size_t nbSamples,\n                                    BYTE
      *const dict, size_t dictBufferCapacity)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48117,1
    - Dst: ZSTD_pthread_cond_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48118,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - best
    argTypes:
    - COVER_best_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48124
      start: 48115
    functionDepth: 1
    functionLinenumber: 48115
    functionLinenumberEnd: 48124
    functionName: COVER_best_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_cond_init
    - memset
    - ZSTD_pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void COVER_best_init(COVER_best_t *best)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48133,1
    - Dst: ZSTD_pthread_cond_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48135,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - best
    argTypes:
    - COVER_best_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48138
      start: 48129
    functionDepth: 1
    functionLinenumber: 48129
    functionLinenumberEnd: 48138
    functionName: COVER_best_wait
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_cond_wait
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void COVER_best_wait(COVER_best_t *best)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COVER_best_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48147,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48149,1
    - Dst: ZSTD_pthread_mutex_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48151,1
    - Dst: ZSTD_pthread_cond_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - best
    argTypes:
    - COVER_best_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48153
      start: 48143
    functionDepth: 2
    functionLinenumber: 48143
    functionLinenumberEnd: 48153
    functionName: COVER_best_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    - ZSTD_pthread_mutex_destroy
    - COVER_best_wait
    - ZSTD_pthread_cond_destroy
    linkageType: ''
    returnType: void
    signature: void COVER_best_destroy(COVER_best_t *best)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48163,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - best
    argTypes:
    - COVER_best_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48166
      start: 48159
    functionDepth: 1
    functionLinenumber: 48159
    functionLinenumberEnd: 48166
    functionName: COVER_best_start
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_pthread_mutex_lock
    - ZSTD_pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void COVER_best_start(COVER_best_t *best)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_pthread_mutex_lock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48185,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48193,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48195,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48197,1
    - Dst: ZSTD_pthread_cond_signal
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48199,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48200,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48206,1
    - Dst: ZSTD_pthread_cond_broadcast
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48213,1
    - Dst: ZSTD_pthread_mutex_unlock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - best
    - parameters
    - selection
    argTypes:
    - COVER_best_t*
    - ZDICT_cover_params_t
    - COVER_dictSelection_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48217
      start: 48173
    functionDepth: 1
    functionLinenumber: 48173
    functionLinenumberEnd: 48217
    functionName: COVER_best_finish
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - ZSTD_pthread_mutex_lock
    - memcpy
    - ZSTD_pthread_mutex_unlock
    - ZSTD_pthread_cond_signal
    - ERROR
    - free
    - ZSTD_pthread_cond_broadcast
    linkageType: ''
    returnType: void
    signature: "void COVER_best_finish(COVER_best_t* best,\n                      ZDICT_cover_params_t
      parameters,\n                      COVER_dictSelection_t selection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - s
    - csz
    argTypes:
    - BYTE*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48226
      start: 48219
    functionDepth: 0
    functionLinenumber: 48219
    functionLinenumberEnd: 48226
    functionName: setDictSelection
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: COVER_dictSelection_t
    signature: COVER_dictSelection_t setDictSelection(BYTE* buf, size_t s, size_t
      csz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDictSelection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48230
      start: 48228
    functionDepth: 1
    functionLinenumber: 48228
    functionLinenumberEnd: 48230
    functionName: COVER_dictSelectionError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - setDictSelection
    linkageType: ''
    returnType: COVER_dictSelection_t
    signature: COVER_dictSelection_t COVER_dictSelectionError(size_t error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - selection
    argTypes:
    - COVER_dictSelection_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48234
      start: 48232
    functionDepth: 3
    functionLinenumber: 48232
    functionLinenumberEnd: 48234
    functionName: COVER_dictSelectionIsError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - selection
    argTypes:
    - COVER_dictSelection_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48238
      start: 48236
    functionDepth: 0
    functionLinenumber: 48236
    functionLinenumberEnd: 48238
    functionName: COVER_dictSelectionFree
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void COVER_dictSelectionFree(COVER_dictSelection_t selection)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48248,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48249,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48253,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48254,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48255,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48259,1
    - Dst: ZDICT_finalizeDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48260,1
    - Dst: ZDICT_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48264,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48265,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48266,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48267,1
    - Dst: COVER_checkTotalCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48270,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48275,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48276,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48277,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48278,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48282,1
    - Dst: setDictSelection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48283,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48292,1
    - Dst: ZDICT_finalizeDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48293,1
    - Dst: ZDICT_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48297,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48298,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48299,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48300,1
    - Dst: COVER_checkTotalCompressedSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48304,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48309,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48310,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48311,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48312,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48316,1
    - Dst: setDictSelection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48317,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48323,1
    - Dst: setDictSelection
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 11
    argNames:
    - customDictContent
    - dictBufferCapacity
    - dictContentSize
    - samplesBuffer
    - samplesSizes
    - nbFinalizeSamples
    - nbCheckSamples
    - nbSamples
    - params
    - offsets
    - totalCompressedSize
    argTypes:
    - BYTE*
    - size_t
    - size_t
    - BYTE*
    - size_t*
    - unsigned
    - size_t
    - size_t
    - ZDICT_cover_params_t
    - size_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48325
      start: 48240
    functionDepth: 24
    functionLinenumber: 48240
    functionLinenumberEnd: 48325
    functionName: COVER_selectDict
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - ZSTD_isError
    - memcpy
    - ZDICT_finalizeDictionary
    - COVER_checkTotalCompressedSize
    - COVER_dictSelectionError
    - ZDICT_isError
    - free
    - setDictSelection
    linkageType: ''
    returnType: COVER_dictSelection_t
    signature: "COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t
      dictBufferCapacity,\n        size_t dictContentSize, const BYTE* samplesBuffer,
      const size_t* samplesSizes, unsigned nbFinalizeSamples,\n        size_t nbCheckSamples,
      size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48349,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48352,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48353,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48353,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48354,1
    - Dst: COVER_map_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48355,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48356,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48360,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48364,1
    - Dst: COVER_buildDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48367,1
    - Dst: COVER_selectDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48369,1
    - Dst: COVER_dictSelectionIsError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48373,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48374,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48379,1
    - Dst: COVER_best_finish
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48380,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48381,1
    - Dst: COVER_map_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48382,1
    - Dst: COVER_dictSelectionFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48383,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48385
      start: 48342
    functionDepth: 25
    functionLinenumber: 48342
    functionLinenumberEnd: 48385
    functionName: COVER_tryParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - COVER_selectDict
    - memcpy
    - COVER_dictSelectionIsError
    - free
    - ERROR
    - COVER_map_init
    - COVER_dictSelectionFree
    - COVER_map_destroy
    - COVER_best_finish
    - COVER_dictSelectionError
    - COVER_buildDictionary
    - DISPLAYLEVEL
    linkageType: ''
    returnType: void
    signature: void COVER_tryParameters(void *opaque)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48401,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48416,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48417,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48420,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48421,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48424,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48425,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48428,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48430,1
    - Dst: POOL_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48433,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48435,1
    - Dst: COVER_best_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48439,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48443,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48448,1
    - Dst: COVER_ctx_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48450,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48451,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48452,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48453,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48454,1
    - Dst: COVER_warnOnSmallCorpus
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48459,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48465,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48467,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48469,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48470,1
    - Dst: COVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48471,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48472,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48473,1
    - Dst: COVER_checkParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48486,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48487,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48488,1
    - Dst: COVER_best_start
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48492,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48494,1
    - Dst: COVER_tryParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48496,1
    - Dst: LOCALDISPLAYUPDATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48499,1
    - Dst: COVER_best_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48503,1
    - Dst: COVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48504,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48506,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48510,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48512,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48513,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48517,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48518,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48519,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 87
    argCount: 6
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - parameters
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_cover_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48522
      start: 48387
    functionDepth: 26
    functionLinenumber: 48387
    functionLinenumberEnd: 48522
    functionName: ZDICT_optimizeTrainFromBuffer_cover
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - MAX
    - ERROR
    - COVER_best_start
    - LOCALDISPLAYUPDATE
    - malloc
    - COVER_best_wait
    - COVER_best_init
    - COVER_warnOnSmallCorpus
    - LOCALDISPLAYLEVEL
    - free
    - COVER_checkParameters
    - POOL_create
    - COVER_ctx_destroy
    - POOL_add
    - COVER_tryParameters
    - POOL_free
    - COVER_ctx_init
    - memcpy
    - COVER_best_destroy
    - DISPLAYLEVEL
    linkageType: ''
    returnType: ZDICTLIB_STATIC_API
    signature: "ZDICTLIB_STATIC_API ZDICT_optimizeTrainFromBuffer_cover(\n    void*
      dictBuffer, size_t dictBufferCapacity, const void* samplesBuffer,\n    const
      size_t* samplesSizes, unsigned nbSamples,\n    ZDICT_cover_params_t* parameters)"
  - 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: 48687
      start: 48686
    functionDepth: 0
    functionLinenumber: 48686
    functionLinenumberEnd: 48687
    functionName: SWAP
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(_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: 48690
      start: 48689
    functionDepth: 0
    functionLinenumber: 48689
    functionLinenumberEnd: 48690
    functionName: MIN
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 48693
      start: 48692
    functionDepth: 0
    functionLinenumber: 48692
    functionLinenumberEnd: 48693
    functionName: MAX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(_a, _b)
  - 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: 48700
      start: 48694
    functionDepth: 0
    functionLinenumber: 48694
    functionLinenumberEnd: 48700
    functionName: STACK_PUSH
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_PUSH(_a, _b, _c, _d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48706
      start: 48700
    functionDepth: 0
    functionLinenumber: 48700
    functionLinenumberEnd: 48706
    functionName: STACK_PUSH5
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_PUSH5(_a, _b, _c, _d, _e)
  - 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: 48713
      start: 48706
    functionDepth: 0
    functionLinenumber: 48706
    functionLinenumberEnd: 48713
    functionName: STACK_POP
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_POP(_a, _b, _c, _d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _a
    - ','
    - _b
    - ','
    - _c
    - ','
    - _d
    - ','
    - _e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48720
      start: 48713
    functionDepth: 0
    functionLinenumber: 48713
    functionLinenumberEnd: 48720
    functionName: STACK_POP5
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_POP5(_a, _b, _c, _d, _e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _c0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48721
      start: 48720
    functionDepth: 0
    functionLinenumber: 48720
    functionLinenumberEnd: 48721
    functionName: BUCKET_A
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_A(_c0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c0
    - ','
    - _c1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48723
      start: 48722
    functionDepth: 0
    functionLinenumber: 48722
    functionLinenumberEnd: 48723
    functionName: BUCKET_B
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_B(_c0, _c1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c0
    - ','
    - _c1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48724
      start: 48723
    functionDepth: 0
    functionLinenumber: 48723
    functionLinenumberEnd: 48724
    functionName: BUCKET_BSTAR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_BSTAR(_c0, _c1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c0
    - ','
    - _c1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48726
      start: 48725
    functionDepth: 0
    functionLinenumber: 48725
    functionLinenumberEnd: 48726
    functionName: BUCKET_B
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_B(_c0, _c1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c0
    - ','
    - _c1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48727
      start: 48726
    functionDepth: 0
    functionLinenumber: 48726
    functionLinenumberEnd: 48727
    functionName: BUCKET_BSTAR
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_BSTAR(_c0, _c1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48763
      start: 48745
    functionDepth: 0
    functionLinenumber: 48745
    functionLinenumberEnd: 48763
    functionName: ss_ilg
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE ss_ilg(int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48813
      start: 48788
    functionDepth: 0
    functionLinenumber: 48788
    functionLinenumberEnd: 48813
    functionName: ss_isqrt
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE ss_isqrt(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - T
    - p1
    - p2
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48839
      start: 48821
    functionDepth: 0
    functionLinenumber: 48821
    functionLinenumberEnd: 48839
    functionName: ss_compare
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: "INLINE ss_compare(const unsigned char *T,\n           const int *p1,
      const int *p2,\n           int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48856,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - T
    - PA
    - first
    - last
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48863
      start: 48847
    functionDepth: 1
    functionLinenumber: 48847
    functionLinenumberEnd: 48863
    functionName: ss_insertionsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_compare
    linkageType: ''
    returnType: void
    signature: "void ss_insertionsort(const unsigned char *T, const int *PA,\n                 int
      *first, int *last, int depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - Td
    - PA
    - SA
    - i
    - size
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48886
      start: 48872
    functionDepth: 0
    functionLinenumber: 48872
    functionLinenumberEnd: 48886
    functionName: ss_fixdown
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: "INLINE ss_fixdown(const unsigned char *Td, const int *PA,\n           int
      *SA, int i, int size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48898,1
    - Dst: ss_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48901,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48902,1
    - Dst: ss_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48902,1
    - Dst: ss_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - Td
    - PA
    - SA
    - size
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48908
      start: 48889
    functionDepth: 1
    functionLinenumber: 48889
    functionLinenumberEnd: 48908
    functionName: ss_heapsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    - ss_fixdown
    linkageType: ''
    returnType: void
    signature: void ss_heapsort(const unsigned char *Td, const int *PA, int *SA, int
      size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - Td
    - PA
    - v1
    - v2
    - v3
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48925
      start: 48914
    functionDepth: 1
    functionLinenumber: 48914
    functionLinenumberEnd: 48925
    functionName: ss_median3
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: INLINE
    signature: "INLINE *\nss_median3(const unsigned char *Td, const int *PA,\n           int
      *v1, int *v2, int *v3)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48933,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48934,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48935,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48935,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48936,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48937,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48937,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - Td
    - PA
    - v1
    - v2
    - v3
    - v4
    - v5
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48940
      start: 48928
    functionDepth: 1
    functionLinenumber: 48928
    functionLinenumberEnd: 48940
    functionName: ss_median5
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: INLINE
    signature: "INLINE *\nss_median5(const unsigned char *Td, const int *PA,\n           int
      *v1, int *v2, int *v3, int *v4, int *v5)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ss_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48954,1
    - Dst: ss_median5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48957,1
    - Dst: ss_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48961,1
    - Dst: ss_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48962,1
    - Dst: ss_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48963,1
    - Dst: ss_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:48964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - Td
    - PA
    - first
    - last
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48965
      start: 48943
    functionDepth: 2
    functionLinenumber: 48943
    functionLinenumberEnd: 48965
    functionName: ss_pivot
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_median3
    - ss_median5
    linkageType: ''
    returnType: INLINE
    signature: 'INLINE *

      ss_pivot(const unsigned char *Td, const int *PA, int *first, int *last)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - PA
    - first
    - last
    - depth
    argTypes:
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48987
      start: 48971
    functionDepth: 0
    functionLinenumber: 48971
    functionLinenumberEnd: 48987
    functionName: ss_partition
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: "INLINE *\nss_partition(const int *PA,\n                    int *first,
      int *last, int depth)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49004,1
    - Dst: ss_insertionsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49008,1
    - Dst: STACK_POP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49010,1
    - Dst: ss_heapsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49015,1
    - Dst: ss_partition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49025,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49029,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49030,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49036,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49036,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49039,1
    - Dst: ss_pivot
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49046,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49048,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49054,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49060,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49064,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49066,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49069,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49077,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49079,1
    - Dst: ss_partition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49082,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49086,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49086,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49087,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49090,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49091,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49091,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49094,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49095,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49096,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49100,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49100,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49101,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49104,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49105,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49105,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49108,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49109,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49110,1
    - Dst: ss_partition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49116,1
    - Dst: ss_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49117,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 137
    argCount: 5
    argNames:
    - T
    - PA
    - first
    - last
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49123
      start: 48990
    functionDepth: 3
    functionLinenumber: 48990
    functionLinenumberEnd: 49123
    functionName: ss_mintrosort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    - ss_pivot
    - STACK_POP
    - ss_ilg
    - ss_insertionsort
    - STACK_PUSH
    - ss_heapsort
    - ss_partition
    linkageType: ''
    returnType: void
    signature: "void ss_mintrosort(const unsigned char *T, const int *PA,\n              int
      *first, int *last,\n              int depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49139
      start: 49132
    functionDepth: 0
    functionLinenumber: 49132
    functionLinenumberEnd: 49139
    functionName: ss_blockswap
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE ss_blockswap(int *a, int *b, int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ss_blockswap
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49148,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - first
    - middle
    - last
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49177
      start: 49141
    functionDepth: 1
    functionLinenumber: 49141
    functionLinenumberEnd: 49177
    functionName: ss_rotate
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_blockswap
    linkageType: ''
    returnType: INLINE
    signature: INLINE ss_rotate(int *first, int *middle, int *last)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49200,1
    - Dst: ss_rotate
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49210,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 6
    argNames:
    - T
    - PA
    - first
    - middle
    - last
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49219
      start: 49182
    functionDepth: 2
    functionLinenumber: 49182
    functionLinenumberEnd: 49219
    functionName: ss_inplacemerge
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_compare
    - ss_rotate
    linkageType: ''
    returnType: void
    signature: "void ss_inplacemerge(const unsigned char *T, const int *PA,\n                int
      *first, int *middle, int *last,\n                int depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ss_blockswap
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49235,1
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49238,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 7
    argNames:
    - T
    - PA
    - first
    - middle
    - last
    - buf
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49272
      start: 49225
    functionDepth: 1
    functionLinenumber: 49225
    functionLinenumberEnd: 49272
    functionName: ss_mergeforward
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_blockswap
    - ss_compare
    linkageType: ''
    returnType: void
    signature: "void ss_mergeforward(const unsigned char *T, const int *PA,\n                int
      *first, int *middle, int *last,\n                int *buf, int depth)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ss_blockswap
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49287,1
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49295,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 7
    argNames:
    - T
    - PA
    - first
    - middle
    - last
    - buf
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49331
      start: 49275
    functionDepth: 1
    functionLinenumber: 49275
    functionLinenumberEnd: 49331
    functionName: ss_mergebackward
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_blockswap
    - ss_compare
    linkageType: ''
    returnType: void
    signature: "void ss_mergebackward(const unsigned char *T, const int *PA,\n                 int
      *first, int *middle, int *last,\n                 int *buf, int depth)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ss_mergebackward
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49360,1
    - Dst: MERGE_CHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49362,1
    - Dst: STACK_POP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49363,1
    - Dst: ss_mergeforward
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49369,1
    - Dst: MERGE_CHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49371,1
    - Dst: STACK_POP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49372,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49376,1
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49379,1
    - Dst: GETIDX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49379,1
    - Dst: GETIDX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49380,1
    - Dst: ss_blockswap
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49388,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49402,1
    - Dst: STACK_PUSH
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49406,1
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49410,1
    - Dst: GETIDX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49410,1
    - Dst: MERGE_CHECK
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49413,1
    - Dst: STACK_POP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49414,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 8
    argNames:
    - T
    - PA
    - first
    - middle
    - last
    - buf
    - bufsize
    - depth
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49418
      start: 49334
    functionDepth: 2
    functionLinenumber: 49334
    functionLinenumberEnd: 49418
    functionName: ss_swapmerge
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_blockswap
    - ss_compare
    - STACK_POP
    - STACK_PUSH
    - ss_mergebackward
    - MERGE_CHECK
    - GETIDX
    - MIN
    - ss_mergeforward
    linkageType: ''
    returnType: void
    signature: "void ss_swapmerge(const unsigned char *T, const int *PA,\n             int
      *first, int *middle, int *last,\n             int *buf, int bufsize, int depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49341
      start: 49340
    functionDepth: 0
    functionLinenumber: 49340
    functionLinenumberEnd: 49341
    functionName: GETIDX
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETIDX(a)
  - 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: 49351
      start: 49341
    functionDepth: 0
    functionLinenumber: 49341
    functionLinenumberEnd: 49351
    functionName: MERGE_CHECK
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_CHECK(a, b, c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ss_mintrosort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49442,1
    - Dst: ss_isqrt
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49446,1
    - Dst: ss_mintrosort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49454,1
    - Dst: ss_insertionsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49456,1
    - Dst: ss_swapmerge
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49462,1
    - Dst: ss_mintrosort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49466,1
    - Dst: ss_insertionsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49468,1
    - Dst: ss_swapmerge
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49472,1
    - Dst: ss_mintrosort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49478,1
    - Dst: ss_insertionsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49480,1
    - Dst: ss_inplacemerge
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49482,1
    - Dst: ss_compare
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49490,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 9
    argNames:
    - T
    - PA
    - first
    - last
    - buf
    - bufsize
    - depth
    - n
    - lastsuffix
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49496
      start: 49426
    functionDepth: 4
    functionLinenumber: 49426
    functionLinenumberEnd: 49496
    functionName: sssort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ss_isqrt
    - ss_inplacemerge
    - ss_compare
    - ss_swapmerge
    - ss_insertionsort
    - ss_mintrosort
    linkageType: ''
    returnType: void
    signature: "void sssort(const unsigned char *T, const int *PA,\n       int *first,
      int *last,\n       int *buf, int bufsize,\n       int depth, int n, int lastsuffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49511
      start: 49501
    functionDepth: 0
    functionLinenumber: 49501
    functionLinenumberEnd: 49511
    functionName: tr_ilg
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE tr_ilg(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ISAd
    - first
    - last
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49531
      start: 49517
    functionDepth: 0
    functionLinenumber: 49517
    functionLinenumberEnd: 49531
    functionName: tr_insertionsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tr_insertionsort(const int *ISAd, int *first, int *last)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - ISAd
    - SA
    - i
    - size
    argTypes:
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49549
      start: 49536
    functionDepth: 0
    functionLinenumber: 49536
    functionLinenumberEnd: 49549
    functionName: tr_fixdown
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE tr_fixdown(const int *ISAd, int *SA, int i, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49561,1
    - Dst: tr_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49564,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49565,1
    - Dst: tr_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49565,1
    - Dst: tr_fixdown
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ISAd
    - SA
    - size
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49571
      start: 49552
    functionDepth: 1
    functionLinenumber: 49552
    functionLinenumberEnd: 49571
    functionName: tr_heapsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - tr_fixdown
    - SWAP
    linkageType: ''
    returnType: void
    signature: void tr_heapsort(const int *ISAd, int *SA, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ISAd
    - v1
    - v2
    - v3
    argTypes:
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49587
      start: 49577
    functionDepth: 1
    functionLinenumber: 49577
    functionLinenumberEnd: 49587
    functionName: tr_median3
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: INLINE
    signature: 'INLINE *

      tr_median3(const int *ISAd, int *v1, int *v2, int *v3)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49595,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49596,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49597,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49597,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49598,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49599,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49599,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - ISAd
    - v1
    - v2
    - v3
    - v4
    - v5
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49602
      start: 49590
    functionDepth: 1
    functionLinenumber: 49590
    functionLinenumberEnd: 49602
    functionName: tr_median5
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: INLINE
    signature: "INLINE *\ntr_median5(const int *ISAd,\n           int *v1, int *v2,
      int *v3, int *v4, int *v5)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tr_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49616,1
    - Dst: tr_median5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49619,1
    - Dst: tr_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49623,1
    - Dst: tr_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49624,1
    - Dst: tr_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49625,1
    - Dst: tr_median3
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ISAd
    - first
    - last
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49627
      start: 49605
    functionDepth: 2
    functionLinenumber: 49605
    functionLinenumberEnd: 49627
    functionName: tr_pivot
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - tr_median5
    - tr_median3
    linkageType: ''
    returnType: INLINE
    signature: 'INLINE *

      tr_pivot(const int *ISAd, int *first, int *last)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - budget
    - chance
    - incval
    argTypes:
    - trbudget_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49645
      start: 49640
    functionDepth: 0
    functionLinenumber: 49640
    functionLinenumberEnd: 49645
    functionName: trbudget_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE trbudget_init(trbudget_t *budget, int chance, int incval)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - budget
    - size
    argTypes:
    - trbudget_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49655
      start: 49647
    functionDepth: 0
    functionLinenumber: 49647
    functionLinenumberEnd: 49655
    functionName: trbudget_check
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: INLINE
    signature: INLINE trbudget_check(trbudget_t *budget, int size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49672,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49678,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49682,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49684,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49687,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49694,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49696,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 53
    argCount: 7
    argNames:
    - ISAd
    - first
    - middle
    - last
    - pa
    - pb
    - v
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int**
    - int**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49700
      start: 49660
    functionDepth: 1
    functionLinenumber: 49660
    functionLinenumberEnd: 49700
    functionName: tr_partition
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - SWAP
    linkageType: ''
    returnType: INLINE
    signature: "INLINE tr_partition(const int *ISAd,\n             int *first, int
      *middle, int *last,\n             int **pa, int **pb, int v)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 7
    argNames:
    - ISA
    - SA
    - first
    - a
    - b
    - last
    - depth
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49725
      start: 49702
    functionDepth: 0
    functionLinenumber: 49702
    functionLinenumberEnd: 49725
    functionName: tr_copy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tr_copy(int *ISA, const int *SA,\n        int *first, int *a,
      int *b, int *last,\n        int depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 7
    argNames:
    - ISA
    - SA
    - first
    - a
    - b
    - last
    - depth
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49763
      start: 49727
    functionDepth: 0
    functionLinenumber: 49727
    functionLinenumberEnd: 49763
    functionName: tr_partialcopy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void tr_partialcopy(int *ISA, const int *SA,\n               int *first,
      int *a, int *b, int *last,\n               int depth)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49779,1
    - Dst: tr_partition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49784,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49796,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49797,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49802,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49802,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49803,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49805,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49807,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49811,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49811,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49812,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49814,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49816,1
    - Dst: tr_copy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49823,1
    - Dst: tr_partialcopy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49826,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49828,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49838,1
    - Dst: trbudget_check
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49842,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49844,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49848,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49859,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49863,1
    - Dst: tr_insertionsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49870,1
    - Dst: tr_heapsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49876,1
    - Dst: tr_pivot
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49885,1
    - Dst: SWAP
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49886,1
    - Dst: tr_partition
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49890,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49892,1
    - Dst: trbudget_check
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49899,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49903,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49904,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49907,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49914,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49915,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49918,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49922,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49923,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49929,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49930,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49933,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49940,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49941,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49944,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49948,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49949,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49957,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49962,1
    - Dst: STACK_PUSH5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49966,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49971,1
    - Dst: trbudget_check
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49976,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49977,1
    - Dst: STACK_POP5
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:49980,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 224
    argCount: 6
    argNames:
    - ISA
    - ISAd
    - SA
    - first
    - last
    - budget
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - trbudget_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49985
      start: 49765
    functionDepth: 3
    functionLinenumber: 49765
    functionLinenumberEnd: 49985
    functionName: tr_introsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - tr_partition
    - tr_heapsort
    - tr_partialcopy
    - SWAP
    - tr_ilg
    - tr_pivot
    - tr_copy
    - STACK_PUSH5
    - tr_insertionsort
    - STACK_POP5
    - trbudget_check
    linkageType: ''
    returnType: void
    signature: "void tr_introsort(int *ISA, const int *ISAd,\n             int *SA,
      int *first, int *last,\n             trbudget_t *budget)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: trbudget_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50000,1
    - Dst: tr_ilg
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50000,1
    - Dst: tr_introsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50013,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - ISA
    - SA
    - n
    - depth
    argTypes:
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50025
      start: 49992
    functionDepth: 4
    functionLinenumber: 49992
    functionLinenumberEnd: 50025
    functionName: trsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - trbudget_init
    - tr_introsort
    - tr_ilg
    linkageType: ''
    returnType: void
    signature: void trsort(int *ISA, int *SA, int n, int depth)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50057,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50060,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50064,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50077,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50078,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50079,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50081,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50082,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50083,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50092,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50095,1
    - Dst: omp_get_num_threads
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50105,1
    - Dst: omp_get_thread_num
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50106,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50114,1
    - Dst: sssort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50124,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50134,1
    - Dst: sssort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50136,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50146,1
    - Dst: sssort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50148,1
    - Dst: trsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50169,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50182,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50184,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50186,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50187,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50190,1
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50194,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50194,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50195,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 130
    argCount: 6
    argNames:
    - T
    - SA
    - bucket_A
    - bucket_B
    - n
    - openMP
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50200
      start: 50031
    functionDepth: 5
    functionLinenumber: 50031
    functionLinenumberEnd: 50200
    functionName: sort_typeBstar
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - omp_get_thread_num
    - BUCKET_B
    - trsort
    - BUCKET_BSTAR
    - BUCKET_A
    - sssort
    - omp_get_num_threads
    linkageType: ''
    returnType: int
    signature: "int sort_typeBstar(const unsigned char *T, int *SA,\n               int
      *bucket_A, int *bucket_B,\n               int n, int openMP)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50217,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50218,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50222,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50223,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50224,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50229,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50230,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50232,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50232,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50235,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50244,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50249,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50253,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50254,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50256,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 6
    argNames:
    - T
    - SA
    - bucket_A
    - bucket_B
    - n
    - m
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    - int
    assertStmts:
    - condition: (((s + 1) < n) && (T[s] <= T[s + 1]))
      pos:
        line_end: 50222
        line_start: 50222
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s] == c1)
      pos:
        line_end: 50221
        line_start: 50221
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s - 1] <= T[s])
      pos:
        line_end: 50223
        line_start: 50223
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k < j)
      pos:
        line_end: 50231
        line_start: 50231
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k != NULL)
      pos:
        line_end: 50231
        line_start: 50231
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((s == 0) && (T[s] == c1)) || (s < 0))
      pos:
        line_end: 50234
        line_start: 50234
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (i < k)
      pos:
        line_end: 50255
        line_start: 50255
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (s < 0)
      pos:
        line_end: 50258
        line_start: 50258
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s - 1] >= T[s])
      pos:
        line_end: 50248
        line_start: 50248
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 50263
      start: 50203
    functionDepth: 1
    functionLinenumber: 50203
    functionLinenumberEnd: 50263
    functionName: construct_SA
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BUCKET_A
    - assert
    - BUCKET_B
    - BUCKET_BSTAR
    linkageType: ''
    returnType: void
    signature: "void construct_SA(const unsigned char *T, int *SA,\n             int
      *bucket_A, int *bucket_B,\n             int n, int m)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50281,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50282,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50286,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50287,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50288,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50293,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50294,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50296,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50296,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50302,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50311,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50316,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50321,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50322,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50324,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 6
    argNames:
    - T
    - SA
    - bucket_A
    - bucket_B
    - n
    - m
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    - int
    assertStmts:
    - condition: (T[s - 1] <= T[s])
      pos:
        line_end: 50287
        line_start: 50287
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((s + 1) < n) && (T[s] <= T[s + 1]))
      pos:
        line_end: 50286
        line_start: 50286
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s] == c1)
      pos:
        line_end: 50285
        line_start: 50285
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k < j)
      pos:
        line_end: 50295
        line_start: 50295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k != NULL)
      pos:
        line_end: 50295
        line_start: 50295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s] == c1)
      pos:
        line_end: 50301
        line_start: 50301
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (i < k)
      pos:
        line_end: 50323
        line_start: 50323
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s - 1] >= T[s])
      pos:
        line_end: 50315
        line_start: 50315
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 50334
      start: 50267
    functionDepth: 1
    functionLinenumber: 50267
    functionLinenumberEnd: 50334
    functionName: construct_BWT
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BUCKET_A
    - assert
    - BUCKET_B
    - BUCKET_BSTAR
    linkageType: ''
    returnType: int
    signature: "int construct_BWT(const unsigned char *T, int *SA,\n              int
      *bucket_A, int *bucket_B,\n              int n, int m)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: BUCKET_BSTAR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50362,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50363,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50367,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50368,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50369,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50377,1
    - Dst: BUCKET_B
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50378,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50380,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50380,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50386,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50395,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50407,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50414,1
    - Dst: BUCKET_A
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50415,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50417,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 8
    argNames:
    - T
    - SA
    - bucket_A
    - bucket_B
    - n
    - m
    - num_indexes
    - indexes
    argTypes:
    - unsigned char*
    - int*
    - int*
    - int*
    - int
    - int
    - unsigned char*
    - int*
    assertStmts:
    - condition: (T[s - 1] <= T[s])
      pos:
        line_end: 50368
        line_start: 50368
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s] == c1)
      pos:
        line_end: 50366
        line_start: 50366
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (((s + 1) < n) && (T[s] <= T[s + 1]))
      pos:
        line_end: 50367
        line_start: 50367
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k < j)
      pos:
        line_end: 50379
        line_start: 50379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (k != NULL)
      pos:
        line_end: 50379
        line_start: 50379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s] == c1)
      pos:
        line_end: 50385
        line_start: 50385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (T[s - 1] >= T[s])
      pos:
        line_end: 50406
        line_start: 50406
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (i < k)
      pos:
        line_end: 50416
        line_start: 50416
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 50431
      start: 50338
    functionDepth: 1
    functionLinenumber: 50338
    functionLinenumberEnd: 50431
    functionName: construct_BWT_indexes
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - BUCKET_A
    - assert
    - BUCKET_B
    - BUCKET_BSTAR
    linkageType: ''
    returnType: int
    signature: "int construct_BWT_indexes(const unsigned char *T, int *SA,\n                      int
      *bucket_A, int *bucket_B,\n                      int n, int m,\n                      unsigned
      char * num_indexes, int * indexes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50450,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50451,1
    - Dst: sort_typeBstar
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50455,1
    - Dst: construct_SA
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50456,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50461,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - T
    - SA
    - n
    - openMP
    argTypes:
    - unsigned char*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50465
      start: 50438
    functionDepth: 6
    functionLinenumber: 50438
    functionLinenumberEnd: 50465
    functionName: divsufsort
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - sort_typeBstar
    - construct_SA
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: int divsufsort(const unsigned char *T, int *SA, int n, int openMP)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50477,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50478,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50479,1
    - Dst: sort_typeBstar
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50483,1
    - Dst: construct_BWT
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50486,1
    - Dst: construct_BWT_indexes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50488,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50500,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50501,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50502,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 7
    argNames:
    - T
    - U
    - A
    - n
    - num_indexes
    - indexes
    - openMP
    argTypes:
    - unsigned char*
    - unsigned char*
    - int*
    - int
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50505
      start: 50467
    functionDepth: 6
    functionLinenumber: 50467
    functionLinenumberEnd: 50505
    functionName: divbwt
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - sort_typeBstar
    - construct_BWT
    - free
    - construct_BWT_indexes
    linkageType: ''
    returnType: int
    signature: int divbwt(const unsigned char *T, unsigned char *U, int *A, int n,
      unsigned char * num_indexes, int * indexes, int openMP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50569
      start: 50564
    functionDepth: 0
    functionLinenumber: 50564
    functionLinenumberEnd: 50569
    functionName: DISPLAY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - displayLevel
    - ','
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50574
      start: 50570
    functionDepth: 0
    functionLinenumber: 50570
    functionLinenumberEnd: 50574
    functionName: LOCALDISPLAYLEVEL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCALDISPLAYLEVEL(displayLevel, l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50576
      start: 50575
    functionDepth: 0
    functionLinenumber: 50575
    functionLinenumberEnd: 50576
    functionName: DISPLAYLEVEL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYLEVEL(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - displayLevel
    - ','
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50589
      start: 50582
    functionDepth: 0
    functionLinenumber: 50582
    functionLinenumberEnd: 50589
    functionName: LOCALDISPLAYUPDATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCALDISPLAYUPDATE(displayLevel, l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50591
      start: 50590
    functionDepth: 0
    functionLinenumber: 50590
    functionLinenumberEnd: 50591
    functionName: DISPLAYUPDATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYUPDATE(l, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZSTD_hash6Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50601,1
    - Dst: ZSTD_hash8Ptr
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - f
    - d
    argTypes:
    - void*
    - U32
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50604
      start: 50599
    functionDepth: 4
    functionLinenumber: 50599
    functionLinenumberEnd: 50604
    functionName: FASTCOVER_hashPtrToIndex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_hash8Ptr
    - ZSTD_hash6Ptr
    linkageType: ''
    returnType: size_t
    signature: size_t FASTCOVER_hashPtrToIndex(const void* p, U32 f, unsigned d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FASTCOVER_hashPtrToIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50688,1
    - Dst: FASTCOVER_hashPtrToIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50700,1
    - Dst: FASTCOVER_hashPtrToIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50718,1
    - Dst: FASTCOVER_hashPtrToIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50727,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - ctx
    - freqs
    - begin
    - end
    - parameters
    - segmentFreqs
    argTypes:
    - FASTCOVER_ctx_t*
    - U32*
    - U32
    - U32
    - ZDICT_cover_params_t
    - U16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50733
      start: 50663
    functionDepth: 5
    functionLinenumber: 50663
    functionLinenumberEnd: 50733
    functionName: FASTCOVER_selectSegment
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FASTCOVER_hashPtrToIndex
    linkageType: ''
    returnType: COVER_segment_t
    signature: "COVER_segment_t FASTCOVER_selectSegment(const FASTCOVER_ctx_t *ctx,\n
      \                                             U32 *freqs, U32 begin, U32 end,\n
      \                                             ZDICT_cover_params_t parameters,\n
      \                                             U16* segmentFreqs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - parameters
    - maxDictSize
    - f
    - accel
    argTypes:
    - ZDICT_cover_params_t
    - size_t
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50768
      start: 50736
    functionDepth: 0
    functionLinenumber: 50736
    functionLinenumberEnd: 50768
    functionName: FASTCOVER_checkParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int FASTCOVER_checkParameters(ZDICT_cover_params_t parameters,\n                                     size_t
      maxDictSize, unsigned f,\n                                     unsigned accel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50779,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - FASTCOVER_ctx_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50784
      start: 50774
    functionDepth: 0
    functionLinenumber: 50774
    functionLinenumberEnd: 50784
    functionName: FASTCOVER_ctx_destroy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FASTCOVER_ctx_destroy(FASTCOVER_ctx_t* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50796,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50798,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50799,1
    - Dst: FASTCOVER_hashPtrToIndex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - freqs
    - ctx
    argTypes:
    - U32*
    - FASTCOVER_ctx_t*
    assertStmts:
    - condition: (ctx->nbTrainSamples <= ctx->nbSamples)
      pos:
        line_end: 50798
        line_start: 50798
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (ctx->nbTrainSamples >= 5)
      pos:
        line_end: 50797
        line_start: 50797
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 50809
      start: 50790
    functionDepth: 5
    functionLinenumber: 50790
    functionLinenumberEnd: 50809
    functionName: FASTCOVER_computeFrequency
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FASTCOVER_hashPtrToIndex
    - assert
    - MAX
    linkageType: ''
    returnType: void
    signature: void FASTCOVER_computeFrequency(U32* freqs, const FASTCOVER_ctx_t*
      ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50827,1
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50831,1
    - Dst: COVER_sum
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50832,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50835,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50837,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50839,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50844,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50845,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50850,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50851,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50855,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50856,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50858,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50866,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50872,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50874,1
    - Dst: FASTCOVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50875,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50876,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50882,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50889,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50891,1
    - Dst: FASTCOVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50892,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50893,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50896,1
    - Dst: FASTCOVER_computeFrequency
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 8
    argNames:
    - ctx
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - d
    - splitPoint
    - f
    - accelParams
    argTypes:
    - FASTCOVER_ctx_t*
    - void*
    - size_t*
    - unsigned
    - unsigned
    - double
    - unsigned
    - FASTCOVER_accel_t
    assertStmts:
    - condition: (nbSamples >= 5)
      pos:
        line_end: 50881
        line_start: 50881
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 50900
      start: 50819
    functionDepth: 6
    functionLinenumber: 50819
    functionLinenumberEnd: 50900
    functionName: FASTCOVER_ctx_init
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - FASTCOVER_computeFrequency
    - COVER_sum
    - MAX
    - FASTCOVER_ctx_destroy
    - ERROR
    - assert
    - calloc
    - DISPLAYLEVEL
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t FASTCOVER_ctx_init(FASTCOVER_ctx_t* ctx,\n                   const
      void* samplesBuffer,\n                   const size_t* samplesSizes, unsigned
      nbSamples,\n                   unsigned d, double splitPoint, unsigned f,\n
      \                  FASTCOVER_accel_t accelParams)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: COVER_computeEpochs
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50916,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50921,1
    - Dst: FASTCOVER_selectSegment
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50931,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50946,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50955,1
    - Dst: DISPLAYUPDATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50956,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50960,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - ctx
    - freqs
    - dictBuffer
    - dictBufferCapacity
    - parameters
    - segmentFreqs
    argTypes:
    - FASTCOVER_ctx_t*
    - U32*
    - void*
    - size_t
    - ZDICT_cover_params_t
    - U16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50962
      start: 50906
    functionDepth: 6
    functionLinenumber: 50906
    functionLinenumberEnd: 50962
    functionName: FASTCOVER_buildDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FASTCOVER_selectSegment
    - COVER_computeEpochs
    - DISPLAYUPDATE
    - DISPLAYLEVEL
    - MIN
    linkageType: ''
    returnType: size_t
    signature: "size_t FASTCOVER_buildDictionary(const FASTCOVER_ctx_t* ctx,\n                          U32*
      freqs,\n                          void* dictBuffer, size_t dictBufferCapacity,\n
      \                         ZDICT_cover_params_t parameters,\n                          U16*
      segmentFreqs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50987,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50989,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50991,1
    - Dst: COVER_dictSelectionError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50992,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50992,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50993,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50995,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:50999,1
    - Dst: FASTCOVER_buildDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51001,1
    - Dst: COVER_selectDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51005,1
    - Dst: COVER_dictSelectionIsError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51009,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51010,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51015,1
    - Dst: COVER_best_finish
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51016,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51017,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51018,1
    - Dst: COVER_dictSelectionFree
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51019,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - opaque
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51021
      start: 50980
    functionDepth: 25
    functionLinenumber: 50980
    functionLinenumberEnd: 51021
    functionName: FASTCOVER_tryParameters
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - COVER_selectDict
    - memcpy
    - COVER_dictSelectionIsError
    - free
    - ERROR
    - FASTCOVER_buildDictionary
    - COVER_dictSelectionFree
    - COVER_best_finish
    - COVER_dictSelectionError
    - calloc
    - DISPLAYLEVEL
    linkageType: ''
    returnType: void
    signature: void FASTCOVER_tryParameters(void* opaque)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - fastCoverParams
    - coverParams
    argTypes:
    - ZDICT_fastCover_params_t
    - ZDICT_cover_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51035
      start: 51024
    functionDepth: 0
    functionLinenumber: 51024
    functionLinenumberEnd: 51035
    functionName: FASTCOVER_convertToCoverParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FASTCOVER_convertToCoverParams(ZDICT_fastCover_params_t fastCoverParams,\n
      \                              ZDICT_cover_params_t* coverParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - coverParams
    - fastCoverParams
    - f
    - accel
    argTypes:
    - ZDICT_cover_params_t
    - ZDICT_fastCover_params_t*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51052
      start: 51038
    functionDepth: 0
    functionLinenumber: 51038
    functionLinenumberEnd: 51052
    functionName: FASTCOVER_convertToFastCoverParams
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void FASTCOVER_convertToFastCoverParams(ZDICT_cover_params_t coverParams,\n
      \                                  ZDICT_fastCover_params_t* fastCoverParams,\n
      \                                  unsigned f, unsigned accel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51072,1
    - Dst: FASTCOVER_convertToCoverParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51073,1
    - Dst: FASTCOVER_checkParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51075,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51077,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51078,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51081,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51082,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51085,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51087,1
    - Dst: FASTCOVER_ctx_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51093,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51096,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51097,1
    - Dst: COVER_warnOnSmallCorpus
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51101,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51103,1
    - Dst: calloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51106,1
    - Dst: FASTCOVER_buildDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51107,1
    - Dst: ZDICT_finalizeDictionary
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51110,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51113,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51114,1
    - Dst: FASTCOVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51117,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 6
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - parameters
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_fastCover_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51121
      start: 51055
    functionDepth: 7
    functionLinenumber: 51055
    functionLinenumberEnd: 51121
    functionName: ZDICT_trainFromBuffer_fastCover
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZDICT_finalizeDictionary
    - FASTCOVER_ctx_init
    - FASTCOVER_ctx_destroy
    - ERROR
    - FASTCOVER_buildDictionary
    - COVER_warnOnSmallCorpus
    - FASTCOVER_convertToCoverParams
    - DISPLAYLEVEL
    - free
    - calloc
    - FASTCOVER_checkParameters
    - memset
    linkageType: ''
    returnType: ZDICTLIB_STATIC_API
    signature: "ZDICTLIB_STATIC_API ZDICT_trainFromBuffer_fastCover(void* dictBuffer,
      size_t dictBufferCapacity,\n                                const void* samplesBuffer,\n
      \                               const size_t* samplesSizes, unsigned nbSamples,\n
      \                               ZDICT_fastCover_params_t parameters)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51142,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51158,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51159,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51162,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51163,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51166,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51167,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51170,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51171,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51174,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51176,1
    - Dst: POOL_create
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51179,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51181,1
    - Dst: COVER_best_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51185,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51186,1
    - Dst: FASTCOVER_convertToCoverParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51187,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51192,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51197,1
    - Dst: FASTCOVER_ctx_init
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51199,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51200,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51201,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51202,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51203,1
    - Dst: COVER_warnOnSmallCorpus
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51208,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51214,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51216,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51218,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51219,1
    - Dst: FASTCOVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51220,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51221,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51222,1
    - Dst: FASTCOVER_checkParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51235,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51237,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51238,1
    - Dst: COVER_best_start
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51242,1
    - Dst: POOL_add
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51244,1
    - Dst: FASTCOVER_tryParameters
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51246,1
    - Dst: LOCALDISPLAYUPDATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51249,1
    - Dst: COVER_best_wait
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51253,1
    - Dst: FASTCOVER_ctx_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51254,1
    - Dst: LOCALDISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51256,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51260,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51262,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51263,1
    - Dst: FASTCOVER_convertToFastCoverParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51266,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51267,1
    - Dst: COVER_best_destroy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51268,1
    - Dst: POOL_free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51269,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 94
    argCount: 6
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - parameters
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_fastCover_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51273
      start: 51124
    functionDepth: 26
    functionLinenumber: 51124
    functionLinenumberEnd: 51273
    functionName: ZDICT_optimizeTrainFromBuffer_fastCover
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ZSTD_isError
    - MAX
    - FASTCOVER_ctx_destroy
    - ERROR
    - COVER_best_start
    - LOCALDISPLAYUPDATE
    - malloc
    - COVER_best_wait
    - COVER_best_init
    - COVER_warnOnSmallCorpus
    - LOCALDISPLAYLEVEL
    - free
    - FASTCOVER_checkParameters
    - POOL_create
    - memset
    - POOL_add
    - FASTCOVER_convertToCoverParams
    - POOL_free
    - memcpy
    - FASTCOVER_tryParameters
    - FASTCOVER_ctx_init
    - COVER_best_destroy
    - FASTCOVER_convertToFastCoverParams
    - DISPLAYLEVEL
    linkageType: ''
    returnType: ZDICTLIB_STATIC_API
    signature: "ZDICTLIB_STATIC_API ZDICT_optimizeTrainFromBuffer_fastCover(\n                    void*
      dictBuffer, size_t dictBufferCapacity,\n                    const void* samplesBuffer,\n
      \                   const size_t* samplesSizes, unsigned nbSamples,\n                    ZDICT_fastCover_params_t*
      parameters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51353
      start: 51352
    functionDepth: 0
    functionLinenumber: 51352
    functionLinenumberEnd: 51353
    functionName: DISPLAY
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAY(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51355
      start: 51354
    functionDepth: 0
    functionLinenumber: 51354
    functionLinenumberEnd: 51355
    functionName: DISPLAYLEVEL
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYLEVEL(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nPrevious
    argTypes:
    - clock_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51356
      start: 51356
    functionDepth: 0
    functionLinenumber: 51356
    functionLinenumberEnd: 51356
    functionName: ZDICT_clockSpan
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - clock
    linkageType: ''
    returnType: clock_t
    signature: clock_t ZDICT_clockSpan(clock_t nPrevious)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DISPLAY
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51367
      start: 51358
    functionDepth: 1
    functionLinenumber: 51358
    functionLinenumberEnd: 51367
    functionName: ZDICT_printHex
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - DISPLAY
    linkageType: ''
    returnType: void
    signature: void ZDICT_printHex(const void* ptr, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51373
      start: 51373
    functionDepth: 2
    functionLinenumber: 51373
    functionLinenumberEnd: 51373
    functionName: ZDICT_isError
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - ERR_isError
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZDICT_isError(size_t errorCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_getErrorName
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errorCode
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51375
      start: 51375
    functionDepth: 4
    functionLinenumber: 51375
    functionLinenumberEnd: 51375
    functionName: ZDICT_getErrorName
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 2
    functionsReached:
    - ERR_getErrorName
    linkageType: ''
    returnType: char
    signature: char * ZDICT_getErrorName(size_t errorCode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51380,1
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dictBuffer
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51382
      start: 51377
    functionDepth: 3
    functionLinenumber: 51377
    functionLinenumberEnd: 51382
    functionName: ZDICT_getDictID
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 1
    functionsReached:
    - MEM_readLE32
    linkageType: ''
    returnType: unsigned
    signature: unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51387,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51387,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51389,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51390,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51392,1
    - Dst: ZSTD_reset_compressedBlockState
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51394,1
    - Dst: ZSTD_loadCEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51395,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51398,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - dictBuffer
    - dictSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51403
      start: 51384
    functionDepth: 9
    functionLinenumber: 51384
    functionLinenumberEnd: 51403
    functionName: ZDICT_getDictHeaderSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - MEM_readLE32
    - ZSTD_reset_compressedBlockState
    - ERROR
    - ZSTD_loadCEntropy
    - free
    linkageType: ''
    returnType: size_t
    signature: size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51416,1
    - Dst: MEM_readST
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51416,1
    - Dst: ZSTD_NbCommonBytes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pIn
    - pMatch
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51425
      start: 51412
    functionDepth: 5
    functionLinenumber: 51412
    functionLinenumberEnd: 51425
    functionName: ZDICT_count
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_readST
    - ZSTD_NbCommonBytes
    linkageType: ''
    returnType: size_t
    signature: size_t ZDICT_count(const void* pIn, const void* pMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - dictItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51439
      start: 51434
    functionDepth: 0
    functionLinenumber: 51434
    functionLinenumberEnd: 51439
    functionName: ZDICT_initDictItem
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZDICT_initDictItem(dictItem* d)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51459,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51463,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51463,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51464,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51464,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51465,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51465,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51467,1
    - Dst: MEM_read16
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51469,1
    - Dst: ZDICT_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51480,1
    - Dst: ZDICT_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51487,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51505,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51506,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51507,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51543,1
    - Dst: ZDICT_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51549,1
    - Dst: ZDICT_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51558,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51566,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51587,1
    - Dst: ZDICT_count
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51602,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 6
    argNames:
    - doneMarks
    - suffix
    - start
    - buffer
    - minRatio
    - notificationLevel
    argTypes:
    - BYTE*
    - int*
    - U32
    - void*
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51611
      start: 51444
    functionDepth: 6
    functionLinenumber: 51444
    functionLinenumberEnd: 51611
    functionName: ZDICT_analyzePos
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZDICT_count
    - MEM_read16
    - DISPLAYLEVEL
    - memset
    linkageType: ''
    returnType: dictItem
    signature: "dictItem ZDICT_analyzePos(\n                       BYTE* doneMarks,\n
      \                      const int* suffix, U32 start,\n                       const
      void* buffer, U32 minRatio, U32 notificationLevel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - in
    - container
    - length
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51625
      start: 51614
    functionDepth: 0
    functionLinenumber: 51614
    functionLinenumberEnd: 51625
    functionName: isIncluded
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isIncluded(const void* in, const void* container, size_t length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51675,1
    - Dst: MEM_read64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51675,1
    - Dst: isIncluded
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51676,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51677,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51680,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - table
    - elt
    - eltNbToSkip
    - buffer
    argTypes:
    - dictItem*
    - dictItem
    - U32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51687
      start: 51631
    functionDepth: 1
    functionLinenumber: 51631
    functionLinenumberEnd: 51687
    functionName: ZDICT_tryMerge
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_read64
    - isIncluded
    - MIN
    - MAX
    linkageType: ''
    returnType: U32
    signature: U32 ZDICT_tryMerge(dictItem* table, dictItem elt, U32 eltNbToSkip,
      const void* buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - table
    - id
    argTypes:
    - dictItem*
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51699
      start: 51690
    functionDepth: 0
    functionLinenumber: 51690
    functionLinenumberEnd: 51699
    functionName: ZDICT_removeDictItem
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZDICT_removeDictItem(dictItem* table, U32 id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ZDICT_tryMerge
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51705,1
    - Dst: ZDICT_tryMerge
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51709,1
    - Dst: ZDICT_removeDictItem
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - table
    - maxSize
    - elt
    - buffer
    argTypes:
    - dictItem*
    - U32
    - dictItem
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51728
      start: 51702
    functionDepth: 2
    functionLinenumber: 51702
    functionLinenumberEnd: 51728
    functionName: ZDICT_insertDictItem
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZDICT_removeDictItem
    - ZDICT_tryMerge
    linkageType: ''
    returnType: void
    signature: void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt,
      const void* buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dictList
    argTypes:
    - dictItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51737
      start: 51731
    functionDepth: 0
    functionLinenumber: 51731
    functionLinenumberEnd: 51737
    functionName: ZDICT_dictSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U32
    signature: U32 ZDICT_dictSize(const dictItem* dictList)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51745,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51747,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51748,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51749,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51767,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51769,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51773,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51776,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51780,1
    - Dst: divsufsort
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51781,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51782,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51797,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51798,1
    - Dst: ZDICT_analyzePos
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51803,1
    - Dst: ZDICT_insertDictItem
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51805,1
    - Dst: DISPLAYUPDATE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51807,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51811,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51812,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51813,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51814,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 8
    argNames:
    - dictList
    - dictListSize
    - buffer
    - bufferSize
    - fileSizes
    - nbFiles
    - minRatio
    - notificationLevel
    argTypes:
    - dictItem*
    - U32
    - void*
    - size_t
    - size_t*
    - unsigned
    - unsigned
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51816
      start: 51740
    functionDepth: 7
    functionLinenumber: 51740
    functionLinenumberEnd: 51816
    functionName: ZDICT_trainBuffer_legacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - divsufsort
    - ERROR
    - ZDICT_insertDictItem
    - DISPLAYUPDATE
    - ZDICT_analyzePos
    - free
    - DISPLAYLEVEL
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_trainBuffer_legacy(dictItem* dictList, U32 dictListSize,\n
      \                           const void* const buffer, size_t bufferSize,   /*
      buffer must end with noisy guard band */\n                            const
      size_t* fileSizes, unsigned nbFiles,\n                            unsigned minRatio,
      U32 notificationLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51765
      start: 51755
    functionDepth: 0
    functionLinenumber: 51755
    functionLinenumberEnd: 51765
    functionName: DISPLAYUPDATE
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPLAYUPDATE(l, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buffer
    - length
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51829
      start: 51819
    functionDepth: 0
    functionLinenumber: 51819
    functionLinenumberEnd: 51829
    functionName: ZDICT_fillNoise
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZDICT_fillNoise(void* buffer, size_t length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51846,1
    - Dst: ZSTD_compressBegin_usingCDict_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51850,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51851,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51851,1
    - Dst: ZSTD_compressBlock_deprecated
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51854,1
    - Dst: ZSTD_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51855,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51855,1
    - Dst: ZSTD_getSeqStore
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51858,1
    - Dst: ZSTD_seqToCodes
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51868,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 10
    argNames:
    - esr
    - params
    - countLit
    - offsetcodeCount
    - matchlengthCount
    - litlengthCount
    - repOffsets
    - src
    - srcSize
    - notificationLevel
    argTypes:
    - EStats_ress_t
    - ZSTD_parameters*
    - unsigned*
    - unsigned*
    - unsigned*
    - unsigned*
    - U32*
    - void*
    - size_t
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51894
      start: 51841
    functionDepth: 21
    functionLinenumber: 51841
    functionLinenumberEnd: 51894
    functionName: ZDICT_countEStats
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_isError
    - ZSTD_getSeqStore
    - ZSTD_compressBlock_deprecated
    - ZSTD_compressBegin_usingCDict_deprecated
    - ZSTD_seqToCodes
    - DISPLAYLEVEL
    - MIN
    linkageType: ''
    returnType: void
    signature: "void ZDICT_countEStats(EStats_ress_t esr, const ZSTD_parameters* params,\n
      \                             unsigned* countLit, unsigned* offsetcodeCount,
      unsigned* matchlengthCount, unsigned* litlengthCount, U32* repOffsets,\n                              const
      void* src, size_t srcSize,\n                              U32 notificationLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fileSizes
    - nbFiles
    argTypes:
    - size_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51902
      start: 51896
    functionDepth: 0
    functionLinenumber: 51896
    functionLinenumberEnd: 51902
    functionName: ZDICT_totalSampleSize
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - table
    - val
    - count
    argTypes:
    - offsetCount_t[]
    - U32
    - U32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51918
      start: 51906
    functionDepth: 0
    functionLinenumber: 51906
    functionLinenumberEnd: 51918
    functionName: ZDICT_insertSortCount
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZDICT_insertSortCount(offsetCount_t table[ZSTD_REP_NUM+1], U32
      val, U32 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - countLit
    argTypes:
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51931
      start: 51924
    functionDepth: 0
    functionLinenumber: 51924
    functionLinenumberEnd: 51931
    functionName: ZDICT_flatLit
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZDICT_flatLit(unsigned* countLit)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HUF_CREATE_STATIC_CTABLE
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51941,1
    - Dst: ZSTD_highbit32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51944,1
    - Dst: ZDICT_totalSampleSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51956,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51962,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51963,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51968,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51970,1
    - Dst: ZSTD_getParams
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51972,1
    - Dst: ZSTD_createCDict_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51974,1
    - Dst: ZSTD_createCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51975,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51976,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51978,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51979,1
    - Dst: ZDICT_countEStats
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51985,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51994,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:51996,1
    - Dst: HUF_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52000,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52001,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52003,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52007,1
    - Dst: ZDICT_flatLit
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52008,1
    - Dst: HUF_buildCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52009,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52010,1
    - Dst: ZDICT_insertSortCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52018,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52023,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52024,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52026,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52032,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52033,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52035,1
    - Dst: FSE_normalizeCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52041,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52042,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52044,1
    - Dst: HUF_writeCTable_wksp
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52050,1
    - Dst: HUF_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52051,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52053,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52061,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52062,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52064,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52072,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52073,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52075,1
    - Dst: FSE_writeNCount
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52083,1
    - Dst: FSE_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52084,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52086,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52095,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52096,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52100,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52101,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52102,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52106,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52107,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52108,1
    - Dst: ZSTD_freeCDict
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52113,1
    - Dst: ZSTD_freeCCtx
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52114,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52115,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 150
    argCount: 9
    argNames:
    - dstBuffer
    - maxDstSize
    - compressionLevel
    - srcBuffer
    - fileSizes
    - nbFiles
    - dictBuffer
    - dictBufferSize
    - notificationLevel
    argTypes:
    - void*
    - size_t
    - int
    - void*
    - size_t*
    - unsigned
    - void*
    - size_t
    - unsigned
    assertStmts:
    - condition: (maxNbBits==9)
      pos:
        line_end: 52009
        line_start: 52009
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 52118
      start: 51934
    functionDepth: 22
    functionLinenumber: 51934
    functionLinenumberEnd: 52118
    functionName: ZDICT_analyzeEntropy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZSTD_getParams
    - MEM_writeLE32
    - ZSTD_highbit32
    - ZSTD_createCCtx
    - ZDICT_totalSampleSize
    - ZDICT_flatLit
    - ERROR
    - malloc
    - ZDICT_countEStats
    - ZSTD_freeCDict
    - ZSTD_freeCCtx
    - ZSTD_createCDict_advanced
    - assert
    - free
    - memset
    - HUF_writeCTable_wksp
    - HUF_isError
    - HUF_buildCTable_wksp
    - FSE_isError
    - DEBUGLOG
    - FSE_writeNCount
    - FSE_normalizeCount
    - ZDICT_insertSortCount
    - HUF_CREATE_STATIC_CTABLE
    - DISPLAYLEVEL
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_analyzeEntropy(void*  dstBuffer, size_t maxDstSize,\n
      \                                  int compressionLevel,\n                             const
      void*  srcBuffer, const size_t* fileSizes, unsigned nbFiles,\n                             const
      void* dictBuffer, size_t  dictBufferSize,\n                                   unsigned
      notificationLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - reps
    argTypes:
    - U32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52131
      start: 52124
    functionDepth: 1
    functionLinenumber: 52124
    functionLinenumberEnd: 52131
    functionName: ZDICT_maxRep
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MAX
    linkageType: ''
    returnType: U32
    signature: U32 ZDICT_maxRep(U32 const reps[ZSTD_REP_NUM])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZDICT_maxRep
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52144,1
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52148,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52149,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52150,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52153,1
    - Dst: XXH64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52154,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52157,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52162,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52163,1
    - Dst: ZDICT_analyzeEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52164,1
    - Dst: ZDICT_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52169,1
    - Dst: RETURN_ERROR_IF
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52180,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52198,1
    - Dst: assert
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52199,1
    - Dst: memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52206,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52207,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 8
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - customDictContent
    - dictContentSize
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - params
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_params_t
    assertStmts:
    - condition: (dictSize <= dictBufferCapacity)
      pos:
        line_end: 52197
        line_start: 52197
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - condition: (outDictContent + dictContentSize == (BYTE*)dictBuffer + dictSize)
      pos:
        line_end: 52198
        line_start: 52198
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    constantsTouched: []
    func_position:
      end: 52212
      start: 52133
    functionDepth: 23
    functionLinenumber: 52133
    functionLinenumberEnd: 52212
    functionName: ZDICT_finalizeDictionary
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 3
    functionsReached:
    - ZDICT_maxRep
    - MEM_writeLE32
    - RETURN_ERROR_IF
    - memcpy
    - ERROR
    - DEBUGLOG
    - memmove
    - ZDICT_analyzeEntropy
    - assert
    - ZDICT_isError
    - DISPLAYLEVEL
    - memset
    - XXH64
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_finalizeDictionary(void* dictBuffer, size_t dictBufferCapacity,\n
      \                         const void* customDictContent, size_t dictContentSize,\n
      \                         const void* samplesBuffer, const size_t* samplesSizes,\n
      \                         unsigned nbSamples, ZDICT_params_t params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52225,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52226,1
    - Dst: ZDICT_analyzeEntropy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52227,1
    - Dst: ZDICT_isError
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52232,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52237,1
    - Dst: XXH64
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52238,1
    - Dst: MEM_writeLE32
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52241,1
    - Dst: memmove
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52245,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - dictBuffer
    - dictContentSize
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - params
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52247
      start: 52215
    functionDepth: 23
    functionLinenumber: 52215
    functionLinenumberEnd: 52247
    functionName: ZDICT_addEntropyTablesFromBuffer_advanced
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - MEM_writeLE32
    - memmove
    - ZDICT_analyzeEntropy
    - ZDICT_isError
    - DISPLAYLEVEL
    - MIN
    - XXH64
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_addEntropyTablesFromBuffer_advanced(\n        void* dictBuffer,
      size_t dictContentSize, size_t dictBufferCapacity,\n        const void* samplesBuffer,
      const size_t* samplesSizes, unsigned nbSamples,\n        ZDICT_params_t params)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52258,1
    - Dst: MAX
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52258,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52259,1
    - Dst: ZDICT_totalSampleSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52263,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52268,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52269,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52269,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52270,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52270,1
    - Dst: ZDICT_initDictItem
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52273,1
    - Dst: ZDICT_trainBuffer_legacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52276,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52283,1
    - Dst: ZDICT_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52284,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52286,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52287,1
    - Dst: MIN
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52291,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52293,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52294,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52296,1
    - Dst: ZDICT_printHex
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52298,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52299,1
    - Dst: ZDICT_dictSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52304,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52305,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52305,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52307,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52309,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52311,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52312,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52319,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52320,1
    - Dst: DISPLAYLEVEL
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52321,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52341,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52341,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52342,1
    - Dst: ZDICT_addEntropyTablesFromBuffer_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52345,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52351,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 6
    argNames:
    - dictBuffer
    - maxDictSize
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - params
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_legacy_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52353
      start: 52253
    functionDepth: 24
    functionLinenumber: 52253
    functionLinenumberEnd: 52353
    functionName: ZDICT_trainFromBuffer_unsafe_legacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - ZDICT_totalSampleSize
    - MAX
    - ZDICT_addEntropyTablesFromBuffer_advanced
    - ERROR
    - ZDICT_trainBuffer_legacy
    - ZDICT_initDictItem
    - ZDICT_printHex
    - free
    - DISPLAYLEVEL
    - MIN
    - ZDICT_dictSize
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_trainFromBuffer_unsafe_legacy(\n                            void*
      dictBuffer, size_t maxDictSize,\n                            const void* samplesBuffer,
      const size_t* samplesSizes, unsigned nbSamples,\n                            ZDICT_legacy_params_t
      params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZDICT_totalSampleSize
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52365,1
    - Dst: malloc
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52368,1
    - Dst: ERROR
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52369,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52371,1
    - Dst: ZDICT_fillNoise
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52372,1
    - Dst: ZDICT_trainFromBuffer_unsafe_legacy
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52375,1
    - Dst: free
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    - params
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    - ZDICT_legacy_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52379
      start: 52359
    functionDepth: 25
    functionLinenumber: 52359
    functionLinenumberEnd: 52379
    functionName: ZDICT_trainFromBuffer_legacy
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - ZDICT_totalSampleSize
    - ZDICT_trainFromBuffer_unsafe_legacy
    - ERROR
    - ZDICT_fillNoise
    - free
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity,\n
      \                             const void* samplesBuffer, const size_t* samplesSizes,
      unsigned nbSamples,\n                              ZDICT_legacy_params_t params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEBUGLOG
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52386,1
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52387,1
    - Dst: ZDICT_optimizeTrainFromBuffer_fastCover
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - dictBuffer
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    argTypes:
    - void*
    - size_t
    - void*
    - size_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52398
      start: 52382
    functionDepth: 27
    functionLinenumber: 52382
    functionLinenumberEnd: 52398
    functionName: ZDICT_trainFromBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZDICT_optimizeTrainFromBuffer_fastCover
    - DEBUGLOG
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity,\n
      \                            const void* samplesBuffer, const size_t* samplesSizes,
      unsigned nbSamples)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52404,1
    - Dst: ZDICT_addEntropyTablesFromBuffer_advanced
      Src: /src/mercurial/contrib/python-zstandard/zstd/zstd.c:52405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - dictBuffer
    - dictContentSize
    - dictBufferCapacity
    - samplesBuffer
    - samplesSizes
    - nbSamples
    argTypes:
    - void*
    - size_t
    - size_t
    - void*
    - size_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52408
      start: 52400
    functionDepth: 24
    functionLinenumber: 52400
    functionLinenumberEnd: 52408
    functionName: ZDICT_addEntropyTablesFromBuffer
    functionSourceFile: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    functionUses: 0
    functionsReached:
    - ZDICT_addEntropyTablesFromBuffer_advanced
    - memset
    linkageType: ''
    returnType: size_t
    signature: "size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize,
      size_t dictBufferCapacity,\n                                  const void* samplesBuffer,
      const size_t* samplesSizes, unsigned nbSamples)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/mercurial/contrib/hgsh/hgsh.c:124,1
    - Dst: strpbrk
      Src: /src/mercurial/contrib/hgsh/hgsh.c:127,1
    - Dst: fputc
      Src: /src/mercurial/contrib/hgsh/hgsh.c:129,1
    - Dst: fputs
      Src: /src/mercurial/contrib/hgsh/hgsh.c:131,1
    - Dst: fputc
      Src: /src/mercurial/contrib/hgsh/hgsh.c:133,1
    - Dst: fputc
      Src: /src/mercurial/contrib/hgsh/hgsh.c:136,1
    - Dst: fputc
      Src: /src/mercurial/contrib/hgsh/hgsh.c:139,1
    - Dst: fflush
      Src: /src/mercurial/contrib/hgsh/hgsh.c:140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: print_cmdline
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - fputc
    - fputs
    - strpbrk
    - fflush
    linkageType: ''
    returnType: void
    signature: void print_cmdline(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:148,1
    - Dst: fprintf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:150,1
    - Dst: fprintf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:152,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - reason
    - exitcode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: usage
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *reason, int exitcode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/mercurial/contrib/hgsh/hgsh.c:168,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/hgsh/hgsh.c:186,1
    - Dst: print_cmdline
      Src: /src/mercurial/contrib/hgsh/hgsh.c:196,1
    - Dst: execv
      Src: /src/mercurial/contrib/hgsh/hgsh.c:199,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:200,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 202
    functionName: forward_through_gateway
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - perror
    - execv
    - print_cmdline
    - exit
    - alloca
    - strcmp
    linkageType: ''
    returnType: void
    signature: void forward_through_gateway(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/mercurial/contrib/hgsh/hgsh.c:217,1
    - Dst: strrchr
      Src: /src/mercurial/contrib/hgsh/hgsh.c:218,1
    - Dst: strdup
      Src: /src/mercurial/contrib/hgsh/hgsh.c:223,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:225,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:226,1
    - Dst: print_cmdline
      Src: /src/mercurial/contrib/hgsh/hgsh.c:239,1
    - Dst: execv
      Src: /src/mercurial/contrib/hgsh/hgsh.c:242,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:243,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 245
    functionName: run_shell
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - strdup
    - strrchr
    - perror
    - execv
    - print_cmdline
    - exit
    - alloca
    linkageType: ''
    returnType: void
    signature: void run_shell(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:262,1
    - Dst: stat
      Src: /src/mercurial/contrib/hgsh/hgsh.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - repo_root
    - subdir
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: validate_repo
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - stat
    - asprintf
    linkageType: ''
    returnType: int
    signature: int validate_repo(const char *repo_root, const char *subdir)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mercurial/contrib/hgsh/hgsh.c:306,1
    - Dst: sscanf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:310,1
    - Dst: sscanf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:312,1
    - Dst: strlen
      Src: /src/mercurial/contrib/hgsh/hgsh.c:318,1
    - Dst: asprintf
      Src: /src/mercurial/contrib/hgsh/hgsh.c:325,1
    - Dst: strstr
      Src: /src/mercurial/contrib/hgsh/hgsh.c:336,1
    - Dst: validate_repo
      Src: /src/mercurial/contrib/hgsh/hgsh.c:345,1
    - Dst: validate_repo
      Src: /src/mercurial/contrib/hgsh/hgsh.c:352,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:360,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:361,1
    - Dst: chdir
      Src: /src/mercurial/contrib/hgsh/hgsh.c:365,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:366,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:367,1
    - Dst: print_cmdline
      Src: /src/mercurial/contrib/hgsh/hgsh.c:391,1
    - Dst: execv
      Src: /src/mercurial/contrib/hgsh/hgsh.c:394,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:395,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:396,1
    - Dst: usage
      Src: /src/mercurial/contrib/hgsh/hgsh.c:401,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 402
    functionName: serve_data
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - perror
    - validate_repo
    - chdir
    - execv
    - strlen
    - print_cmdline
    - usage
    - sscanf
    - exit
    - strcmp
    - strstr
    - asprintf
    linkageType: ''
    returnType: void
    signature: void serve_data(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/mercurial/contrib/hgsh/hgsh.c:409,1
    - Dst: perror
      Src: /src/mercurial/contrib/hgsh/hgsh.c:410,1
    - Dst: exit
      Src: /src/mercurial/contrib/hgsh/hgsh.c:411,1
    - Dst: strchr
      Src: /src/mercurial/contrib/hgsh/hgsh.c:414,1
    - Dst: getenv
      Src: /src/mercurial/contrib/hgsh/hgsh.c:418,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/hgsh/hgsh.c:422,1
    - Dst: forward_through_gateway
      Src: /src/mercurial/contrib/hgsh/hgsh.c:423,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/hgsh/hgsh.c:426,1
    - Dst: usage
      Src: /src/mercurial/contrib/hgsh/hgsh.c:427,1
    - Dst: serve_data
      Src: /src/mercurial/contrib/hgsh/hgsh.c:430,1
    - Dst: run_shell
      Src: /src/mercurial/contrib/hgsh/hgsh.c:432,1
    - Dst: usage
      Src: /src/mercurial/contrib/hgsh/hgsh.c:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 438
    functionName: main
    functionSourceFile: /src/mercurial/contrib/hgsh/hgsh.c
    functionUses: 0
    functionsReached:
    - forward_through_gateway
    - gethostname
    - perror
    - serve_data
    - usage
    - getenv
    - exit
    - strchr
    - strcmp
    - run_shell
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/revlog.cc:16,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/revlog.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 39
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/revlog.cc
    functionUses: 0
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/revlog.cc:49,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/revlog.cc:50,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/revlog.cc:51,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/revlog.cc:52,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/revlog.cc:52,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/revlog.cc:54,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/revlog.cc:56,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/revlog.cc:57,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/revlog.cc:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 60
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/revlog.cc
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Print
    - contrib::pyglobals
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: LOG
    functionSourceFile: /src/mercurial/contrib/fuzz/fuzzutil.h
    functionUses: 230
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG(level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLVMFuzzerInitialize
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:24,1
    - Dst: std::ifstream::seekg
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:28,1
    - Dst: std::ifstream::tellg
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:29,1
    - Dst: std::ifstream::seekg
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:30,1
    - Dst: std::ifstream::read
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:36,1
    - Dst: std::vector::data
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:36,1
    - Dst: std::vector::size
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:36,1
    - Dst: assert
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:37,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:38,1
    - Dst: reinterpret_cast<const uint8_t *>
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:39,1
    - Dst: std::vector::data
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:39,1
    - Dst: std::vector::size
      Src: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (in)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc
    functionUses: 0
    functionsReached:
    - assert
    - std::vector::data
    - reinterpret_cast<const uint8_t *>
    - LLVMFuzzerInitialize
    - std::ifstream::read
    - std::ifstream::seekg
    - std::ifstream::tellg
    - LLVMFuzzerTestOneInput
    - std::vector::size
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/bdiff.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:25,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:26,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:29,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:29,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:29,1
    - Dst: bdiff_splitlines
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:30,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:30,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:30,1
    - Dst: bdiff_diff
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:32,1
    - Dst: free
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:33,1
    - Dst: free
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:34,1
    - Dst: bdiff_freehunks
      Src: /src/mercurial/contrib/fuzz/bdiff.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 37
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/bdiff.cc
    functionUses: 1
    functionsReached:
    - FuzzedDataProvider::ConsumeRandomLengthString
    - std::string::c_str
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - bdiff_diff
    - bdiff_freehunks
    - bdiff_splitlines
    - std::string::size
    - free
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/xdiff.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a1
    - a2
    - b1
    - b2
    - priv
    argTypes:
    - long
    - long
    - long
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: hunk_consumer
    functionSourceFile: /src/mercurial/contrib/fuzz/xdiff.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hunk_consumer(long a1, long a2, long b1, long b2, void *priv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:36,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:37,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:40,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:41,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:42,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:43,1
    - Dst: xdl_diff
      Src: /src/mercurial/contrib/fuzz/xdiff.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/xdiff.cc
    functionUses: 1
    functionsReached:
    - FuzzedDataProvider::ConsumeRandomLengthString
    - std::string::c_str
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - xdl_diff
    - std::string::size
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:18,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:38,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:39,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:41,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:42,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:42,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:43,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:44,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:45,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:46,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:46,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:48,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:50,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:51,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - PyBytes_FromStringAndSize
    - FuzzedDataProvider::ConsumeBool
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - contrib::pyglobals
    - PyErr_Print
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - std::string::size
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/mpatch.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector*::at
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:39,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:41,1
    - Dst: mpatch_decode
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:42,1
    - Dst: mpatchbin::data::get
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vbins
    - pos
    argTypes:
    - void*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: getitem
    functionSourceFile: /src/mercurial/contrib/fuzz/mpatch.cc
    functionUses: 0
    functionsReached:
    - std::vector*::at
    - LOG
    - mpatchbin::data::get
    - mpatch_decode
    linkageType: ''
    returnType: mpatch_flist
    signature: mpatch_flist *getitem(void *vbins, ssize_t pos)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:69,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:70,1
    - Dst: std::vector::reserve
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:72,1
    - Dst: getbeuint16
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:75,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:76,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:80,1
    - Dst: mpatchbin::data::reset
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:85,1
    - Dst: char::char
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:85,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:86,1
    - Dst: mpatchbin::data::get
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:86,1
    - Dst: std::vector::push_back
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:87,1
    - Dst: std::move
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:87,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:89,1
    - Dst: mpatch_fold
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:91,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:95,1
    - Dst: mpatch_calcsize
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:96,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:97,1
    - Dst: malloc
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:102,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:103,1
    - Dst: mpatch_apply
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:105,1
    - Dst: data::get
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:105,1
    - Dst: free
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:106,1
    - Dst: LOG
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:107,1
    - Dst: mpatch_lfree
      Src: /src/mercurial/contrib/fuzz/mpatch.cc:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 112
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/mpatch.cc
    functionUses: 1
    functionsReached:
    - LOG
    - mpatchbin::data::get
    - memcpy
    - char::char
    - malloc
    - mpatch_apply
    - std::vector::push_back
    - mpatch_lfree
    - mpatch_fold
    - std::move
    - mpatchbin::data::reset
    - mpatch_calcsize
    - free
    - std::vector::reserve
    - getbeuint16
    - data::get
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::rfind
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:34,1
    - Dst: getcwd
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:37,1
    - Dst: exit
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:40,1
    - Dst: std::string
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:42,1
    - Dst: std::string::substr
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:44,1
    - Dst: strncpy
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:47,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:48,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:50,1
    - Dst: std::string::begin
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:52,1
    - Dst: std::string::end
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:52,1
    - Dst: Py_SetPythonHome
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:53,1
    - Dst: std::wstring::c_str
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:53,1
    - Dst: Py_SetPythonHome
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:55,1
    - Dst: Py_InitializeEx
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:57,1
    - Dst: PyImport_AddModule
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:58,1
    - Dst: PyModule_GetDict
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:59,1
    - Dst: PyInit_parsers
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:62,1
    - Dst: initparsers
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:64,1
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:65,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - cselfpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 69
    functionName: contrib::initpy
    functionSourceFile: /src/mercurial/contrib/fuzz/pyutil.cc
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - PyModule_GetDict
    - getcwd
    - std::string::substr
    - initparsers
    - std::string::begin
    - exit
    - PyImport_AddModule
    - setenv
    - std::string
    - std::wstring::c_str
    - std::string::end
    - std::string::rfind
    - Py_InitializeEx
    - PyImport_ImportModule
    - PyInit_parsers
    - Py_SetPythonHome
    - strncpy
    - std::string::size
    - PyDict_SetItemString
    linkageType: ''
    returnType: void
    signature: void initpy(const char *cselfpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: contrib::pyglobals
    functionSourceFile: /src/mercurial/contrib/fuzz/pyutil.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyglobals()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::rfind
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:34,1
    - Dst: getcwd
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:37,1
    - Dst: exit
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:40,1
    - Dst: std::string
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:42,1
    - Dst: std::string::substr
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:44,1
    - Dst: strncpy
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: std::string::c_str
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: std::string::size
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:46,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:47,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:48,1
    - Dst: setenv
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:50,1
    - Dst: std::string::begin
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:52,1
    - Dst: std::string::end
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:52,1
    - Dst: Py_SetPythonHome
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:53,1
    - Dst: std::wstring::c_str
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:53,1
    - Dst: Py_SetPythonHome
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:55,1
    - Dst: Py_InitializeEx
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:57,1
    - Dst: PyImport_AddModule
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:58,1
    - Dst: PyModule_GetDict
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:59,1
    - Dst: PyInit_parsers
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:62,1
    - Dst: initparsers
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:64,1
    - Dst: PyImport_ImportModule
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:65,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/pyutil.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - cselfpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 69
    functionName: contrib::initpy
    functionSourceFile: /src/mercurial/contrib/fuzz/pyutil.cc
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - PyModule_GetDict
    - getcwd
    - std::string::substr
    - initparsers
    - std::string::begin
    - exit
    - PyImport_AddModule
    - setenv
    - std::string
    - std::wstring::c_str
    - std::string::end
    - std::string::rfind
    - Py_InitializeEx
    - PyImport_ImportModule
    - PyInit_parsers
    - Py_SetPythonHome
    - strncpy
    - std::string::size
    - PyDict_SetItemString
    linkageType: ''
    returnType: void
    signature: void initpy(const char *cselfpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: contrib::pyglobals
    functionSourceFile: /src/mercurial/contrib/fuzz/pyutil.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *pyglobals()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: FuzzedDataProvider::FuzzedDataProvider
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzedDataProvider(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: ~FuzzedDataProvider()
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FuzzedDataProvider()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:47,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: FuzzedDataProvider::ConsumeBytes
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 1
    functionsReached:
    - FuzzedDataProvider::ConsumeBytes
    - min
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> ConsumeBytes(size_t num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:60,1
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:62,1
    - Dst: std::vector::back
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: FuzzedDataProvider::ConsumeBytesWithTerminator
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - std::vector::back
    - FuzzedDataProvider::ConsumeBytes
    - min
    linkageType: ''
    returnType: std::vector<T>
    signature: "std::vector<T> ConsumeBytesWithTerminator(size_t num_bytes,\n\t                                          T
      terminator = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:80,1
    - Dst: FuzzedDataProvider::Advance
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - num_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: FuzzedDataProvider::ConsumeBytesAsString
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::Advance
    - min
    linkageType: ''
    returnType: std::string
    signature: std::string ConsumeBytesAsString(size_t num_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:101,1
    - Dst: static_cast<uint64_t>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:105,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:126,1
    - Dst: static_cast<T>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 130
    functionName: FuzzedDataProvider::ConsumeIntegralInRange
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - siftdown_max
    - abort
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T ConsumeIntegralInRange(T min, T max)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:150,1
    - Dst: min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:150,1
    - Dst: FuzzedDataProvider::ConvertUnsignedToSigned
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:153,1
    - Dst: FuzzedDataProvider::Advance
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:154,1
    - Dst: FuzzedDataProvider::ConvertUnsignedToSigned
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:157,1
    - Dst: FuzzedDataProvider::Advance
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:158,1
    - Dst: std::string::shrink_to_fit
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - max_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 167
    functionName: FuzzedDataProvider::ConsumeRandomLengthString
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 2
    functionsReached:
    - FuzzedDataProvider::Advance
    - std::string::shrink_to_fit
    - std::string::reserve
    - min
    - FuzzedDataProvider::ConvertUnsignedToSigned
    linkageType: ''
    returnType: std::string
    signature: std::string ConsumeRandomLengthString(size_t max_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBytes
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: FuzzedDataProvider::ConsumeRemainingBytes
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeBytes
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> ConsumeRemainingBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBytesAsString
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: FuzzedDataProvider::ConsumeRemainingBytesAsString
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 3
    functionsReached:
    - FuzzedDataProvider::ConsumeBytesAsString
    linkageType: ''
    returnType: std::string
    signature: std::string ConsumeRemainingBytesAsString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:189,1
    - Dst: add_roots_get_min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:189,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: FuzzedDataProvider::ConsumeIntegral
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - add_roots_get_min
    - siftdown_max
    - FuzzedDataProvider::ConsumeIntegralInRange
    linkageType: ''
    returnType: T
    signature: T ConsumeIntegral()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: FuzzedDataProvider::ConsumeBool
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 1
    functionsReached:
    - FuzzedDataProvider::ConsumeIntegral
    linkageType: ''
    returnType: bool
    signature: bool ConsumeBool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: FuzzedDataProvider::PickValueInArray
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeIntegralInRange
    linkageType: ''
    returnType: T
    signature: T PickValueInArray(const T (&array)[size])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::initializer_list<const T>::size
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:212,1
    - Dst: abort
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:213,1
    - Dst: std::initializer_list<const T>::begin
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:215,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:216,1
    - Dst: std::initializer_list<const T>::size
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - std::initializer_list<const T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: FuzzedDataProvider::PickValueInArray
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - std::initializer_list<const T>::begin
    - abort
    - FuzzedDataProvider::ConsumeIntegralInRange
    - std::initializer_list<const T>::size
    linkageType: ''
    returnType: T
    signature: T PickValueInArray(std::initializer_list<const T> list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:227,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:227,1
    - Dst: static_cast<uint32_t>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: FuzzedDataProvider::ConsumeEnum
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeIntegralInRange
    - static_cast<T>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: T
    signature: T ConsumeEnum()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:245,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:245,1
    - Dst: static_cast<T>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:247,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: FuzzedDataProvider::ConsumeProbability
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - siftdown_max
    - FuzzedDataProvider::ConsumeIntegral
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T ConsumeProbability()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:256,1
    - Dst: std::numeric_limits<T>::lowest
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:257,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: FuzzedDataProvider::ConsumeFloatingPoint
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached:
    - siftdown_max
    - FuzzedDataProvider::ConsumeFloatingPointInRange
    - std::numeric_limits<T>::lowest
    linkageType: ''
    returnType: T
    signature: T ConsumeFloatingPoint()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:267,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:273,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:279,1
    - Dst: FuzzedDataProvider::ConsumeProbability
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - min
    - max
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 287
    functionName: FuzzedDataProvider::ConsumeFloatingPointInRange
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 1
    functionsReached:
    - siftdown_max
    - abort
    - FuzzedDataProvider::ConsumeBool
    - FuzzedDataProvider::ConsumeProbability
    linkageType: ''
    returnType: T
    signature: T ConsumeFloatingPointInRange(T min, T max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: FuzzedDataProvider::remaining_bytes
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remaining_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: FuzzedDataProvider::FuzzedDataProvider
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuzzedDataProvider(const FuzzedDataProvider &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: '&operator=(const FuzzedDataProvider &)'
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FuzzedDataProvider
    signature: FuzzedDataProvider &operator=(const FuzzedDataProvider &)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - num_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 306
    functionName: FuzzedDataProvider::Advance
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 2
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: void Advance(size_t num_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:325,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:329,1
    - Dst: std::vector::data
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:329,1
    - Dst: FuzzedDataProvider::Advance
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:330,1
    - Dst: std::vector::shrink_to_fit
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - size
    - num_bytes_to_consume
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 338
    functionName: FuzzedDataProvider::ConsumeBytes
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 3
    functionsReached:
    - memcpy
    - std::vector::shrink_to_fit
    - std::vector::data
    - abort
    - FuzzedDataProvider::Advance
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> ConsumeBytes(size_t size, size_t num_bytes_to_consume)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TS>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:350,1
    - Dst: siftdown_max
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:355,1
    - Dst: static_cast<TS>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:356,1
    - Dst: add_roots_get_min
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:358,1
    - Dst: static_cast<char>
      Src: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - TU
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 361
    functionName: FuzzedDataProvider::ConvertUnsignedToSigned
    functionSourceFile: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
    functionUses: 1
    functionsReached:
    - add_roots_get_min
    - siftdown_max
    - static_cast<TS>
    - static_cast<char>
    linkageType: ''
    returnType: TS
    signature: TS ConvertUnsignedToSigned(TU value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/manifest.cc:17,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/manifest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 15
    functionDepth: 4
    functionLinenumber: 15
    functionLinenumberEnd: 46
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/manifest.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/mercurial/contrib/fuzz/manifest.cc:56,1
    - Dst: PyLong_FromSsize_t
      Src: /src/mercurial/contrib/fuzz/manifest.cc:57,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/manifest.cc:59,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/manifest.cc:60,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/manifest.cc:61,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/manifest.cc:62,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/manifest.cc:63,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/manifest.cc:63,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/manifest.cc:65,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/manifest.cc:67,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/manifest.cc:68,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/manifest.cc:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/manifest.cc
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - FuzzedDataProvider::ConsumeBool
    - contrib::pyglobals
    - PyErr_Print
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyLong_FromSsize_t
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:16,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 30
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/dirstate.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:35,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:36,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:37,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:38,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:38,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:40,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:42,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:43,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/dirstate.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/dirstate.cc
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Print
    - contrib::pyglobals
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/fncache.cc:17,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/fncache.cc:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 15
    functionDepth: 4
    functionLinenumber: 15
    functionLinenumberEnd: 52
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/fncache.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/fncache.cc:57,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/fncache.cc:58,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/fncache.cc:59,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/fncache.cc:60,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/fncache.cc:60,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/fncache.cc:62,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/fncache.cc:64,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/fncache.cc:65,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/fncache.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/fncache.cc
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Print
    - contrib::pyglobals
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:16,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 42
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/fm1readmarkers.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:47,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:48,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:49,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:50,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:50,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:52,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:54,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:55,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/fm1readmarkers.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 58
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/fm1readmarkers.cc
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Print
    - contrib::pyglobals
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contrib::initpy
      Src: /src/mercurial/contrib/fuzz/dirs.cc:16,1
    - Dst: Py_CompileString
      Src: /src/mercurial/contrib/fuzz/dirs.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 33
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/mercurial/contrib/fuzz/dirs.cc
    functionUses: 1
    functionsReached:
    - Py_CompileString
    - contrib::initpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/mercurial/contrib/fuzz/dirs.cc:43,1
    - Dst: PyDict_New
      Src: /src/mercurial/contrib/fuzz/dirs.cc:44,1
    - Dst: PyDict_SetItemString
      Src: /src/mercurial/contrib/fuzz/dirs.cc:45,1
    - Dst: PyEval_EvalCode
      Src: /src/mercurial/contrib/fuzz/dirs.cc:46,1
    - Dst: contrib::pyglobals
      Src: /src/mercurial/contrib/fuzz/dirs.cc:46,1
    - Dst: PyErr_Print
      Src: /src/mercurial/contrib/fuzz/dirs.cc:48,1
    - Dst: Py_XDECREF
      Src: /src/mercurial/contrib/fuzz/dirs.cc:50,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/dirs.cc:51,1
    - Dst: Py_DECREF
      Src: /src/mercurial/contrib/fuzz/dirs.cc:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - Data
    - Size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/mercurial/contrib/fuzz/dirs.cc
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Print
    - contrib::pyglobals
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyDict_SetItemString
    - PyEval_EvalCode
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/mercurial/contrib/chg/util.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fp
    - code
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: fsetcolor
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fsetcolor(FILE *fp, const char *code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsetcolor
      Src: /src/mercurial/contrib/chg/util.c:36,1
    - Dst: fputs
      Src: /src/mercurial/contrib/chg/util.c:37,1
    - Dst: vfprintf
      Src: /src/mercurial/contrib/chg/util.c:38,1
    - Dst: fprintf
      Src: /src/mercurial/contrib/chg/util.c:40,1
    - Dst: strerror
      Src: /src/mercurial/contrib/chg/util.c:40,1
    - Dst: fsetcolor
      Src: /src/mercurial/contrib/chg/util.c:42,1
    - Dst: fputc
      Src: /src/mercurial/contrib/chg/util.c:43,1
    - Dst: exit
      Src: /src/mercurial/contrib/chg/util.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - 'no'
    - fmt
    - args
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: vabortmsgerrno
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - strerror
    - fputc
    - fprintf
    - fsetcolor
    - exit
    - fputs
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void vabortmsgerrno(int no, const char *fmt, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/mercurial/contrib/chg/util.c:50,1
    - Dst: vabortmsgerrno
      Src: /src/mercurial/contrib/chg/util.c:51,1
    - Dst: va_end
      Src: /src/mercurial/contrib/chg/util.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: abortmsg
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vabortmsgerrno
    linkageType: ''
    returnType: void
    signature: void abortmsg(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/mercurial/contrib/chg/util.c:59,1
    - Dst: vabortmsgerrno
      Src: /src/mercurial/contrib/chg/util.c:60,1
    - Dst: va_end
      Src: /src/mercurial/contrib/chg/util.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: abortmsgerrno
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 2
    functionsReached:
    - va_start
    - va_end
    - vabortmsgerrno
    linkageType: ''
    returnType: void
    signature: void abortmsgerrno(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/mercurial/contrib/chg/util.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: now
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - gettimeofday
    linkageType: ''
    returnType: double
    signature: double now()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: enablecolor
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enablecolor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: now
      Src: /src/mercurial/contrib/chg/util.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: enabledebugmsg
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - now
    linkageType: ''
    returnType: void
    signature: void enabledebugmsg(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/mercurial/contrib/chg/util.c:92,1
    - Dst: fsetcolor
      Src: /src/mercurial/contrib/chg/util.c:93,1
    - Dst: fprintf
      Src: /src/mercurial/contrib/chg/util.c:94,1
    - Dst: now
      Src: /src/mercurial/contrib/chg/util.c:94,1
    - Dst: vfprintf
      Src: /src/mercurial/contrib/chg/util.c:95,1
    - Dst: fsetcolor
      Src: /src/mercurial/contrib/chg/util.c:96,1
    - Dst: fputc
      Src: /src/mercurial/contrib/chg/util.c:97,1
    - Dst: va_end
      Src: /src/mercurial/contrib/chg/util.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: debugmsg
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - va_start
    - now
    - va_end
    - fputc
    - fprintf
    - fsetcolor
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void debugmsg(const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fchdir
      Src: /src/mercurial/contrib/chg/util.c:103,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/util.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dirfd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: fchdirx
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - abortmsgerrno
    - fchdir
    linkageType: ''
    returnType: void
    signature: void fchdirx(int dirfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/mercurial/contrib/chg/util.c:111,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/util.c:113,1
    - Dst: fcntl
      Src: /src/mercurial/contrib/chg/util.c:115,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/util.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: fsetcloexec
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - fcntl
    - abortmsgerrno
    linkageType: ''
    returnType: void
    signature: void fsetcloexec(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/chg/util.c:122,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/util.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: mallocx
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - malloc
    - abortmsg
    linkageType: ''
    returnType: void
    signature: void *mallocx(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/mercurial/contrib/chg/util.c:131,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/util.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: reallocx
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - realloc
    - abortmsg
    linkageType: ''
    returnType: void
    signature: void *reallocx(void *ptr, size_t size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/chg/util.c:152,1
    - Dst: sigemptyset
      Src: /src/mercurial/contrib/chg/util.c:155,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:158,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:162,1
    - Dst: sigaddset
      Src: /src/mercurial/contrib/chg/util.c:167,1
    - Dst: sigprocmask
      Src: /src/mercurial/contrib/chg/util.c:170,1
    - Dst: fork
      Src: /src/mercurial/contrib/chg/util.c:175,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:180,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:181,1
    - Dst: sigprocmask
      Src: /src/mercurial/contrib/chg/util.c:182,1
    - Dst: chdir
      Src: /src/mercurial/contrib/chg/util.c:183,1
    - Dst: _exit
      Src: /src/mercurial/contrib/chg/util.c:184,1
    - Dst: execve
      Src: /src/mercurial/contrib/chg/util.c:188,1
    - Dst: execv
      Src: /src/mercurial/contrib/chg/util.c:190,1
    - Dst: _exit
      Src: /src/mercurial/contrib/chg/util.c:192,1
    - Dst: waitpid
      Src: /src/mercurial/contrib/chg/util.c:194,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:202,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/util.c:205,1
    - Dst: sigprocmask
      Src: /src/mercurial/contrib/chg/util.c:208,1
    - Dst: WIFEXITED
      Src: /src/mercurial/contrib/chg/util.c:215,1
    - Dst: WEXITSTATUS
      Src: /src/mercurial/contrib/chg/util.c:216,1
    - Dst: WIFSIGNALED
      Src: /src/mercurial/contrib/chg/util.c:218,1
    - Dst: WTERMSIG
      Src: /src/mercurial/contrib/chg/util.c:219,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - cmd
    - envp
    - cwd
    argTypes:
    - char*
    - char*[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 222
    functionName: runshellcmd
    functionSourceFile: /src/mercurial/contrib/chg/util.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - sigemptyset
    - sigaddset
    - sigaction
    - chdir
    - fork
    - _exit
    - execve
    - execv
    - WIFSIGNALED
    - WEXITSTATUS
    - sigprocmask
    - WTERMSIG
    - waitpid
    - memset
    linkageType: ''
    returnType: int
    signature: int runshellcmd(const char *cmd, const char *envp[], const char *cwd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/procutil.c:27,1
    - Dst: kill
      Src: /src/mercurial/contrib/chg/procutil.c:28,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:29,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/procutil.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts:
    - condition: (peerpid > 0)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/mercurial/contrib/chg/procutil.c
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: forwardsignal
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - assert
    - kill
    - abortmsgerrno
    linkageType: ''
    returnType: void
    signature: void forwardsignal(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/mercurial/contrib/chg/procutil.c:38,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:39,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/procutil.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 3
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: forwardsignaltogroup
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - kill
    - abortmsgerrno
    linkageType: ''
    returnType: void
    signature: void forwardsignaltogroup(int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/mercurial/contrib/chg/procutil.c:48,1
    - Dst: sigaddset
      Src: /src/mercurial/contrib/chg/procutil.c:51,1
    - Dst: memset
      Src: /src/mercurial/contrib/chg/procutil.c:54,1
    - Dst: sigemptyset
      Src: /src/mercurial/contrib/chg/procutil.c:57,1
    - Dst: forwardsignal
      Src: /src/mercurial/contrib/chg/procutil.c:61,1
    - Dst: raise
      Src: /src/mercurial/contrib/chg/procutil.c:62,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:65,1
    - Dst: sigprocmask
      Src: /src/mercurial/contrib/chg/procutil.c:68,1
    - Dst: sigprocmask
      Src: /src/mercurial/contrib/chg/procutil.c:72,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:75,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:81,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: handlestopsignal
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - forwardsignal
    - sigemptyset
    - sigaddset
    - raise
    - sigaction
    - abortmsgerrno
    - sigprocmask
    - memset
    linkageType: ''
    returnType: void
    signature: void handlestopsignal(int sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/mercurial/contrib/chg/procutil.c:92,1
    - Dst: kill
      Src: /src/mercurial/contrib/chg/procutil.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - UNUSED_
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: handlechildsignal
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - kill
    - waitpid
    linkageType: ''
    returnType: void
    signature: void handlechildsignal(int sig UNUSED_)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/chg/procutil.c:106,1
    - Dst: sigemptyset
      Src: /src/mercurial/contrib/chg/procutil.c:114,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:117,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:120,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:127,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:133,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:137,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:140,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:146,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:151,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:157,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:164,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - pid
    - pgid
    argTypes:
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 165
    functionName: setupsignalhandler
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    - memset
    - abortmsgerrno
    linkageType: ''
    returnType: void
    signature: void setupsignalhandler(pid_t pid, pid_t pgid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/chg/procutil.c:170,1
    - Dst: sigemptyset
      Src: /src/mercurial/contrib/chg/procutil.c:173,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:177,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:180,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:183,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:186,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:189,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:192,1
    - Dst: sigaction
      Src: /src/mercurial/contrib/chg/procutil.c:198,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:206,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 207
    functionName: restoresignalhandler
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    - memset
    - abortmsgerrno
    linkageType: ''
    returnType: void
    signature: void restoresignalhandler(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/procutil.c:213,1
    - Dst: pipe
      Src: /src/mercurial/contrib/chg/procutil.c:219,1
    - Dst: fork
      Src: /src/mercurial/contrib/chg/procutil.c:222,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:227,1
    - Dst: dup2
      Src: /src/mercurial/contrib/chg/procutil.c:228,1
    - Dst: fileno
      Src: /src/mercurial/contrib/chg/procutil.c:228,1
    - Dst: isatty
      Src: /src/mercurial/contrib/chg/procutil.c:231,1
    - Dst: fileno
      Src: /src/mercurial/contrib/chg/procutil.c:231,1
    - Dst: dup2
      Src: /src/mercurial/contrib/chg/procutil.c:232,1
    - Dst: fileno
      Src: /src/mercurial/contrib/chg/procutil.c:232,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:236,1
    - Dst: dup2
      Src: /src/mercurial/contrib/chg/procutil.c:240,1
    - Dst: fileno
      Src: /src/mercurial/contrib/chg/procutil.c:240,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:241,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:242,1
    - Dst: execle
      Src: /src/mercurial/contrib/chg/procutil.c:245,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:247,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:253,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/procutil.c:254,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/procutil.c:255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - pagercmd
    - envp
    argTypes:
    - char*
    - char*[]
    assertStmts:
    - condition: (pagerpid == 0)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/mercurial/contrib/chg/procutil.c
    constantsTouched: []
    func_position:
      end: 257
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 257
    functionName: setuppager
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - dup2
    - execle
    - pipe
    - fork
    - abortmsgerrno
    - isatty
    - close
    - assert
    - fileno
    linkageType: ''
    returnType: pid_t
    signature: pid_t setuppager(const char *pagercmd, const char *envp[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/mercurial/contrib/chg/procutil.c:266,1
    - Dst: fclose
      Src: /src/mercurial/contrib/chg/procutil.c:267,1
    - Dst: waitpid
      Src: /src/mercurial/contrib/chg/procutil.c:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: waitpager
    functionSourceFile: /src/mercurial/contrib/chg/procutil.c
    functionUses: 0
    functionsReached:
    - waitpid
    - fclose
    linkageType: ''
    returnType: void
    signature: void waitpager(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/chg/hgclient.c:89,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: initcontext
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - malloc
    linkageType: ''
    returnType: void
    signature: void initcontext(context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reallocx
      Src: /src/mercurial/contrib/chg/hgclient.c:103,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - newsize
    argTypes:
    - context_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: enlargecontext
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - reallocx
    - debugmsg
    linkageType: ''
    returnType: void
    signature: void enlargecontext(context_t *ctx, size_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:110,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/hgclient.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: freecontext
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - free
    linkageType: ''
    returnType: void
    signature: void freecontext(context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:120,1
    - Dst: recv
      Src: /src/mercurial/contrib/chg/hgclient.c:122,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:125,1
    - Dst: exit
      Src: /src/mercurial/contrib/chg/hgclient.c:126,1
    - Dst: recv
      Src: /src/mercurial/contrib/chg/hgclient.c:130,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:132,1
    - Dst: ntohl
      Src: /src/mercurial/contrib/chg/hgclient.c:136,1
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:137,1
    - Dst: isupper
      Src: /src/mercurial/contrib/chg/hgclient.c:139,1
    - Dst: recv
      Src: /src/mercurial/contrib/chg/hgclient.c:145,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 152
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 152
    functionName: readchannel
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - ntohl
    - enlargecontext
    - abortmsg
    - isupper
    - recv
    - exit
    - assert
    linkageType: ''
    returnType: void
    signature: void readchannel(hgclient_t *hgc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/mercurial/contrib/chg/hgclient.c:159,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sockfd
    - data
    - datasize
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: sendall
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - abortmsgerrno
    - send
    linkageType: ''
    returnType: void
    signature: void sendall(int sockfd, const void *data, size_t datasize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:170,1
    - Dst: htonl
      Src: /src/mercurial/contrib/chg/hgclient.c:172,1
    - Dst: sendall
      Src: /src/mercurial/contrib/chg/hgclient.c:173,1
    - Dst: sendall
      Src: /src/mercurial/contrib/chg/hgclient.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: writeblock
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - assert
    - htonl
    - sendall
    linkageType: ''
    returnType: void
    signature: void writeblock(const hgclient_t *hgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:180,1
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:182,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:183,1
    - Dst: sendall
      Src: /src/mercurial/contrib/chg/hgclient.c:185,1
    - Dst: writeblock
      Src: /src/mercurial/contrib/chg/hgclient.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hgc
    - chcmd
    argTypes:
    - hgclient_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 188
    functionName: writeblockrequest
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - memcpy
    - writeblock
    - strlen
    - sendall
    linkageType: ''
    returnType: void
    signature: void writeblockrequest(const hgclient_t *hgc, const char *chcmd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:198,1
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:199,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - args
    - argsize
    argTypes:
    - context_t*
    - char*[]
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: packcmdargs
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - enlargecontext
    linkageType: ''
    returnType: void
    signature: "void packcmdargs(context_t *ctx, const char *const args[],\n                        ssize_t
      argsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reallocx
      Src: /src/mercurial/contrib/chg/hgclient.c:219,1
    - Dst: memchr
      Src: /src/mercurial/contrib/chg/hgclient.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 231
    functionName: unpackcmdargsnul
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - reallocx
    - memchr
    linkageType: ''
    returnType: char
    signature: char **unpackcmdargsnul(const context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/mercurial/contrib/chg/hgclient.c:236,1
    - Dst: writeblock
      Src: /src/mercurial/contrib/chg/hgclient.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: handlereadrequest
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - writeblock
    - fread
    linkageType: ''
    returnType: void
    signature: void handlereadrequest(hgclient_t *hgc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/mercurial/contrib/chg/hgclient.c:245,1
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:248,1
    - Dst: writeblock
      Src: /src/mercurial/contrib/chg/hgclient.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 5
    functionLinenumber: 242
    functionLinenumberEnd: 250
    functionName: handlereadlinerequest
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - fgets
    - writeblock
    - strlen
    linkageType: ''
    returnType: void
    signature: void handlereadlinerequest(hgclient_t *hgc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:256,1
    - Dst: unpackcmdargsnul
      Src: /src/mercurial/contrib/chg/hgclient.c:259,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:261,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/hgclient.c:263,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:264,1
    - Dst: runshellcmd
      Src: /src/mercurial/contrib/chg/hgclient.c:265,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/hgclient.c:266,1
    - Dst: htonl
      Src: /src/mercurial/contrib/chg/hgclient.c:268,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:269,1
    - Dst: writeblock
      Src: /src/mercurial/contrib/chg/hgclient.c:271,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/hgclient.c:272,1
    - Dst: setuppager
      Src: /src/mercurial/contrib/chg/hgclient.c:273,1
    - Dst: attachio
      Src: /src/mercurial/contrib/chg/hgclient.c:275,1
    - Dst: sendall
      Src: /src/mercurial/contrib/chg/hgclient.c:279,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 283
    functionName: handlesystemrequest
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - setuppager
    - htonl
    - memcpy
    - enlargecontext
    - writeblock
    - abortmsg
    - runshellcmd
    - attachio
    - sendall
    - unpackcmdargsnul
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void handlesystemrequest(hgclient_t *hgc)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: readchannel
      Src: /src/mercurial/contrib/chg/hgclient.c:289,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:291,1
    - Dst: fwrite
      Src: /src/mercurial/contrib/chg/hgclient.c:295,1
    - Dst: fwrite
      Src: /src/mercurial/contrib/chg/hgclient.c:299,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:305,1
    - Dst: handlereadrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:310,1
    - Dst: handlereadlinerequest
      Src: /src/mercurial/contrib/chg/hgclient.c:313,1
    - Dst: handlesystemrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:316,1
    - Dst: isupper
      Src: /src/mercurial/contrib/chg/hgclient.c:319,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 325
    functionName: handleresponse
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - fwrite
    - abortmsg
    - isupper
    - readchannel
    - handlesystemrequest
    - handlereadrequest
    - handlereadlinerequest
    linkageType: ''
    returnType: void
    signature: void handleresponse(hgclient_t *hgc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/mercurial/contrib/chg/hgclient.c:331,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/hgclient.c:338,1
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - s
    - e
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 347
    functionName: parsecapabilities
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - strchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int parsecapabilities(const char *s, const char *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: readchannel
      Src: /src/mercurial/contrib/chg/hgclient.c:351,1
    - Dst: fwrite
      Src: /src/mercurial/contrib/chg/hgclient.c:357,1
    - Dst: handleresponse
      Src: /src/mercurial/contrib/chg/hgclient.c:359,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:361,1
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:363,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:365,1
    - Dst: strchr
      Src: /src/mercurial/contrib/chg/hgclient.c:370,1
    - Dst: strchr
      Src: /src/mercurial/contrib/chg/hgclient.c:374,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/hgclient.c:378,1
    - Dst: parsecapabilities
      Src: /src/mercurial/contrib/chg/hgclient.c:379,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/hgclient.c:380,1
    - Dst: strtol
      Src: /src/mercurial/contrib/chg/hgclient.c:381,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/hgclient.c:382,1
    - Dst: strtol
      Src: /src/mercurial/contrib/chg/hgclient.c:383,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:387,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 349
    functionDepth: 7
    functionLinenumber: 349
    functionLinenumberEnd: 388
    functionName: readhello
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - enlargecontext
    - fwrite
    - abortmsg
    - parsecapabilities
    - strtol
    - readchannel
    - handleresponse
    - strchr
    - strncmp
    linkageType: ''
    returnType: void
    signature: void readhello(hgclient_t *hgc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/hgclient.c:392,1
    - Dst: getpid
      Src: /src/mercurial/contrib/chg/hgclient.c:393,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:395,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 6
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: updateprocname
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - snprintf
    - writeblockrequest
    - getpid
    - abortmsg
    linkageType: ''
    returnType: void
    signature: void updateprocname(hgclient_t *hgc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:403,1
    - Dst: sendall
      Src: /src/mercurial/contrib/chg/hgclient.c:405,1
    - Dst: readchannel
      Src: /src/mercurial/contrib/chg/hgclient.c:406,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:409,1
    - Dst: memset
      Src: /src/mercurial/contrib/chg/hgclient.c:414,1
    - Dst: CMSG_SPACE
      Src: /src/mercurial/contrib/chg/hgclient.c:418,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/mercurial/contrib/chg/hgclient.c:421,1
    - Dst: CMSG_LEN
      Src: /src/mercurial/contrib/chg/hgclient.c:424,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:425,1
    - Dst: CMSG_DATA
      Src: /src/mercurial/contrib/chg/hgclient.c:425,1
    - Dst: sendmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:427,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:429,1
    - Dst: handleresponse
      Src: /src/mercurial/contrib/chg/hgclient.c:432,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:435,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:437,1
    - Dst: ntohl
      Src: /src/mercurial/contrib/chg/hgclient.c:438,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 401
    functionDepth: 7
    functionLinenumber: 401
    functionLinenumberEnd: 442
    functionName: attachio
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 1
    functionsReached:
    - debugmsg
    - sendmsg
    - CMSG_LEN
    - ntohl
    - memcpy
    - abortmsg
    - abortmsgerrno
    - readchannel
    - CMSG_DATA
    - handleresponse
    - sendall
    - CMSG_FIRSTHDR
    - memset
    - CMSG_SPACE
    linkageType: ''
    returnType: void
    signature: void attachio(hgclient_t *hgc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getcwd
      Src: /src/mercurial/contrib/chg/hgclient.c:446,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:447,1
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:449,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 444
    functionDepth: 6
    functionLinenumber: 444
    functionLinenumberEnd: 451
    functionName: chdirtocwd
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - getcwd
    - writeblockrequest
    - abortmsgerrno
    - strlen
    linkageType: ''
    returnType: void
    signature: void chdirtocwd(hgclient_t *hgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/mercurial/contrib/chg/hgclient.c:455,1
    - Dst: umask
      Src: /src/mercurial/contrib/chg/hgclient.c:456,1
    - Dst: htonl
      Src: /src/mercurial/contrib/chg/hgclient.c:458,1
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:459,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:460,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 463
    functionName: forwardumask
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - writeblockrequest
    - htonl
    - memcpy
    - enlargecontext
    - umask
    linkageType: ''
    returnType: void
    signature: void forwardumask(hgclient_t *hgc)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/mercurial/contrib/chg/hgclient.c:472,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:474,1
    - Dst: fsetcloexec
      Src: /src/mercurial/contrib/chg/hgclient.c:479,1
    - Dst: strrchr
      Src: /src/mercurial/contrib/chg/hgclient.c:488,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:491,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:495,1
    - Dst: open
      Src: /src/mercurial/contrib/chg/hgclient.c:498,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:500,1
    - Dst: chdir
      Src: /src/mercurial/contrib/chg/hgclient.c:503,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:505,1
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/hgclient.c:511,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:512,1
    - Dst: strncpy
      Src: /src/mercurial/contrib/chg/hgclient.c:514,1
    - Dst: connect
      Src: /src/mercurial/contrib/chg/hgclient.c:518,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/hgclient.c:521,1
    - Dst: fchdirx
      Src: /src/mercurial/contrib/chg/hgclient.c:525,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/hgclient.c:526,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/hgclient.c:529,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:532,1
    - Dst: mallocx
      Src: /src/mercurial/contrib/chg/hgclient.c:534,1
    - Dst: memset
      Src: /src/mercurial/contrib/chg/hgclient.c:535,1
    - Dst: initcontext
      Src: /src/mercurial/contrib/chg/hgclient.c:537,1
    - Dst: readhello
      Src: /src/mercurial/contrib/chg/hgclient.c:539,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:541,1
    - Dst: updateprocname
      Src: /src/mercurial/contrib/chg/hgclient.c:544,1
    - Dst: attachio
      Src: /src/mercurial/contrib/chg/hgclient.c:547,1
    - Dst: chdirtocwd
      Src: /src/mercurial/contrib/chg/hgclient.c:550,1
    - Dst: forwardumask
      Src: /src/mercurial/contrib/chg/hgclient.c:553,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 1
    argNames:
    - sockname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 470
    functionDepth: 8
    functionLinenumber: 470
    functionLinenumberEnd: 557
    functionName: hgc_open
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - forwardumask
    - attachio
    - readhello
    - mallocx
    - abortmsg
    - chdir
    - strlen
    - close
    - initcontext
    - open
    - memset
    - debugmsg
    - strrchr
    - chdirtocwd
    - connect
    - fsetcloexec
    - memcpy
    - strncpy
    - fchdirx
    - abortmsgerrno
    - updateprocname
    - socket
    linkageType: ''
    returnType: hgclient_t
    signature: hgclient_t *hgc_open(const char *sockname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:564,1
    - Dst: freecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:565,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/hgclient.c:566,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/hgclient.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 563
        line_start: 563
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: hgc_close
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - freecontext
    - assert
    - close
    - free
    linkageType: ''
    returnType: void
    signature: void hgc_close(hgclient_t *hgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 571
        line_start: 571
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: hgc_peerpgid
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: pid_t
    signature: pid_t hgc_peerpgid(const hgclient_t *hgc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 580
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 580
    functionName: hgc_peerpid
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: pid_t
    signature: pid_t hgc_peerpid(const hgclient_t *hgc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:598,1
    - Dst: packcmdargs
      Src: /src/mercurial/contrib/chg/hgclient.c:603,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:604,1
    - Dst: handleresponse
      Src: /src/mercurial/contrib/chg/hgclient.c:605,1
    - Dst: enlargecontext
      Src: /src/mercurial/contrib/chg/hgclient.c:613,1
    - Dst: unpackcmdargsnul
      Src: /src/mercurial/contrib/chg/hgclient.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 616
      start: 595
    functionDepth: 7
    functionLinenumber: 595
    functionLinenumberEnd: 616
    functionName: hgc_validate
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - writeblockrequest
    - enlargecontext
    - handleresponse
    - unpackcmdargsnul
    - assert
    - packcmdargs
    linkageType: ''
    returnType: char
    signature: "char **hgc_validate(hgclient_t *hgc, const char *const args[],\n                          size_t
      argsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:625,1
    - Dst: packcmdargs
      Src: /src/mercurial/contrib/chg/hgclient.c:627,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:628,1
    - Dst: handleresponse
      Src: /src/mercurial/contrib/chg/hgclient.c:629,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/hgclient.c:633,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/hgclient.c:635,1
    - Dst: ntohl
      Src: /src/mercurial/contrib/chg/hgclient.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - hgc
    - args
    - argsize
    argTypes:
    - hgclient_t*
    - char*[]
    - size_t
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 7
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: hgc_runcommand
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - writeblockrequest
    - ntohl
    - memcpy
    - abortmsg
    - handleresponse
    - assert
    - packcmdargs
    linkageType: ''
    returnType: int
    signature: int hgc_runcommand(hgclient_t *hgc, const char *const args[], size_t
      argsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:644,1
    - Dst: attachio
      Src: /src/mercurial/contrib/chg/hgclient.c:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hgc
    argTypes:
    - hgclient_t*
    assertStmts:
    - condition: (hgc)
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 649
      start: 642
    functionDepth: 8
    functionLinenumber: 642
    functionLinenumberEnd: 649
    functionName: hgc_attachio
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - assert
    - attachio
    linkageType: ''
    returnType: void
    signature: void hgc_attachio(hgclient_t *hgc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/hgclient.c:659,1
    - Dst: packcmdargs
      Src: /src/mercurial/contrib/chg/hgclient.c:663,1
    - Dst: writeblockrequest
      Src: /src/mercurial/contrib/chg/hgclient.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hgc
    - envp
    argTypes:
    - hgclient_t*
    - char*[]
    assertStmts:
    - condition: (hgc && envp)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/mercurial/contrib/chg/hgclient.c
    constantsTouched: []
    func_position:
      end: 665
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 665
    functionName: hgc_setenv
    functionSourceFile: /src/mercurial/contrib/chg/hgclient.c
    functionUses: 0
    functionsReached:
    - assert
    - writeblockrequest
    - packcmdargs
    linkageType: ''
    returnType: void
    signature: void hgc_setenv(hgclient_t *hgc, const char *const envp[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/contrib/chg/chg.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: initcmdserveropts
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void initcmdserveropts(struct cmdserveropts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: freecmdserveropts
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freecmdserveropts(struct cmdserveropts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/mercurial/contrib/chg/chg.c:72,1
    - Dst: memcmp
      Src: /src/mercurial/contrib/chg/chg.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: testsensitiveflag
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcmp
    linkageType: ''
    returnType: size_t
    signature: size_t testsensitiveflag(const char *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:101,1
    - Dst: testsensitiveflag
      Src: /src/mercurial/contrib/chg/chg.c:103,1
    - Dst: reallocx
      Src: /src/mercurial/contrib/chg/chg.c:107,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/chg.c:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - opts
    - argc
    - argv
    argTypes:
    - struct cmdserveropts*
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: setcmdserverargs
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - reallocx
    - testsensitiveflag
    - strcmp
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void setcmdserverargs(struct cmdserveropts *opts, int argc,\n                             const
      char *argv[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/mercurial/contrib/chg/chg.c:118,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:120,1
    - Dst: lstat
      Src: /src/mercurial/contrib/chg/chg.c:123,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:125,1
    - Dst: S_ISDIR
      Src: /src/mercurial/contrib/chg/chg.c:126,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:127,1
    - Dst: geteuid
      Src: /src/mercurial/contrib/chg/chg.c:128,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - sockdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: preparesockdir
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - abortmsg
    - abortmsgerrno
    - geteuid
    - lstat
    - mkdir
    linkageType: ''
    returnType: void
    signature: void preparesockdir(const char *sockdir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/mercurial/contrib/chg/chg.c:142,1
    - Dst: S_ISDIR
      Src: /src/mercurial/contrib/chg/chg.c:145,1
    - Dst: geteuid
      Src: /src/mercurial/contrib/chg/chg.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sockdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: checkruntimedir
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - lstat
    - S_ISDIR
    - geteuid
    linkageType: ''
    returnType: int
    signature: int checkruntimedir(const char *sockdir)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:155,1
    - Dst: checkruntimedir
      Src: /src/mercurial/contrib/chg/chg.c:157,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:158,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:160,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:163,1
    - Dst: geteuid
      Src: /src/mercurial/contrib/chg/chg.c:163,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - sockdir
    - size
    argTypes:
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: getdefaultsockdir
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - abortmsg
    - snprintf
    - geteuid
    - checkruntimedir
    - getenv
    linkageType: ''
    returnType: void
    signature: void getdefaultsockdir(char sockdir[], size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:173,1
    - Dst: getdefaultsockdir
      Src: /src/mercurial/contrib/chg/chg.c:175,1
    - Dst: preparesockdir
      Src: /src/mercurial/contrib/chg/chg.c:176,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:181,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:183,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:184,1
    - Dst: getpid
      Src: /src/mercurial/contrib/chg/chg.c:185,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 188
    functionName: setcmdserveropts
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - getpid
    - abortmsg
    - preparesockdir
    - snprintf
    - getenv
    - getdefaultsockdir
    linkageType: ''
    returnType: void
    signature: void setcmdserveropts(struct cmdserveropts *opts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/mercurial/contrib/chg/chg.c:196,1
    - Dst: readlink
      Src: /src/mercurial/contrib/chg/chg.c:199,1
    - Dst: strrchr
      Src: /src/mercurial/contrib/chg/chg.c:203,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/chg.c:209,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 214
    functionName: getrelhgcmd
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - malloc
    - strrchr
    - memcpy
    - readlink
    - free
    linkageType: ''
    returnType: char
    signature: char *getrelhgcmd(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:225,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:227,1
    - Dst: getrelhgcmd
      Src: /src/mercurial/contrib/chg/chg.c:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: gethgcmd
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - getrelhgcmd
    - getenv
    linkageType: ''
    returnType: char
    signature: char *gethgcmd(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gethgcmd
      Src: /src/mercurial/contrib/chg/chg.c:242,1
    - Dst: mallocx
      Src: /src/mercurial/contrib/chg/chg.c:251,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/chg.c:252,1
    - Dst: memcpy
      Src: /src/mercurial/contrib/chg/chg.c:255,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:259,1
    - Dst: putenv
      Src: /src/mercurial/contrib/chg/chg.c:261,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:262,1
    - Dst: setenv
      Src: /src/mercurial/contrib/chg/chg.c:264,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:265,1
    - Dst: opendir
      Src: /src/mercurial/contrib/chg/chg.c:270,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:272,1
    - Dst: readdir
      Src: /src/mercurial/contrib/chg/chg.c:274,1
    - Dst: strtol
      Src: /src/mercurial/contrib/chg/chg.c:277,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:283,1
    - Dst: dirfd
      Src: /src/mercurial/contrib/chg/chg.c:288,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:289,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/chg.c:290,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:292,1
    - Dst: closedir
      Src: /src/mercurial/contrib/chg/chg.c:298,1
    - Dst: putenv
      Src: /src/mercurial/contrib/chg/chg.c:301,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:302,1
    - Dst: execvp
      Src: /src/mercurial/contrib/chg/chg.c:303,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:304,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:305,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 306
    functionName: execcmdserver
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - opendir
    - putenv
    - memcpy
    - setenv
    - readdir
    - strtol
    - abortmsgerrno
    - gethgcmd
    - close
    - dirfd
    - closedir
    - getenv
    - execvp
    - free
    - mallocx
    linkageType: ''
    returnType: void
    signature: void execcmdserver(const struct cmdserveropts *opts)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:314,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:317,1
    - Dst: sscanf
      Src: /src/mercurial/contrib/chg/chg.c:319,1
    - Dst: hgc_open
      Src: /src/mercurial/contrib/chg/chg.c:322,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:324,1
    - Dst: rename
      Src: /src/mercurial/contrib/chg/chg.c:326,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:328,1
    - Dst: waitpid
      Src: /src/mercurial/contrib/chg/chg.c:334,1
    - Dst: nanosleep
      Src: /src/mercurial/contrib/chg/chg.c:339,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:342,1
    - Dst: WIFEXITED
      Src: /src/mercurial/contrib/chg/chg.c:346,1
    - Dst: WEXITSTATUS
      Src: /src/mercurial/contrib/chg/chg.c:347,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:348,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:350,1
    - Dst: WEXITSTATUS
      Src: /src/mercurial/contrib/chg/chg.c:350,1
    - Dst: exit
      Src: /src/mercurial/contrib/chg/chg.c:351,1
    - Dst: WEXITSTATUS
      Src: /src/mercurial/contrib/chg/chg.c:351,1
    - Dst: WIFSIGNALED
      Src: /src/mercurial/contrib/chg/chg.c:352,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:353,1
    - Dst: WTERMSIG
      Src: /src/mercurial/contrib/chg/chg.c:353,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:355,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - opts
    - pid
    argTypes:
    - struct cmdserveropts*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 309
    functionDepth: 9
    functionLinenumber: 309
    functionLinenumberEnd: 358
    functionName: retryconnectcmdserver
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - nanosleep
    - abortmsg
    - WIFEXITED
    - rename
    - hgc_open
    - abortmsgerrno
    - WIFSIGNALED
    - WEXITSTATUS
    - getenv
    - sscanf
    - exit
    - WTERMSIG
    - waitpid
    linkageType: ''
    returnType: hgclient_t
    signature: hgclient_t *retryconnectcmdserver(struct cmdserveropts *opts, pid_t
      pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:365,1
    - Dst: hgc_open
      Src: /src/mercurial/contrib/chg/chg.c:366,1
    - Dst: unlink
      Src: /src/mercurial/contrib/chg/chg.c:375,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:377,1
    - Dst: fork
      Src: /src/mercurial/contrib/chg/chg.c:379,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:381,1
    - Dst: execcmdserver
      Src: /src/mercurial/contrib/chg/chg.c:383,1
    - Dst: retryconnectcmdserver
      Src: /src/mercurial/contrib/chg/chg.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 361
    functionDepth: 10
    functionLinenumber: 361
    functionLinenumberEnd: 389
    functionName: connectcmdserver
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 1
    functionsReached:
    - debugmsg
    - abortmsg
    - unlink
    - hgc_open
    - fork
    - retryconnectcmdserver
    - execcmdserver
    linkageType: ''
    returnType: hgclient_t
    signature: hgclient_t *connectcmdserver(struct cmdserveropts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/mercurial/contrib/chg/chg.c:394,1
    - Dst: unlink
      Src: /src/mercurial/contrib/chg/chg.c:396,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct cmdserveropts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: killcmdserver
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - free
    - unlink
    - realpath
    linkageType: ''
    returnType: void
    signature: void killcmdserver(const struct cmdserveropts *opts)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/contrib/chg/chg.c:409,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:413,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/chg.c:414,1
    - Dst: unlink
      Src: /src/mercurial/contrib/chg/chg.c:415,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/chg.c:416,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:417,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:421,1
    - Dst: strncmp
      Src: /src/mercurial/contrib/chg/chg.c:423,1
    - Dst: sscanf
      Src: /src/mercurial/contrib/chg/chg.c:425,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:426,1
    - Dst: exit
      Src: /src/mercurial/contrib/chg/chg.c:427,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:428,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - opts
    - insts
    argTypes:
    - struct cmdserveropts*
    - char**
    assertStmts:
    - condition: (insts)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/mercurial/contrib/chg/chg.c
    constantsTouched: []
    func_position:
      end: 435
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 435
    functionName: runinstructions
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - abortmsg
    - snprintf
    - unlink
    - sscanf
    - exit
    - assert
    - strcmp
    - strncmp
    linkageType: ''
    returnType: int
    signature: int runinstructions(struct cmdserveropts *opts, const char **insts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/mercurial/contrib/chg/chg.c:458,1
    - Dst: fcntl
      Src: /src/mercurial/contrib/chg/chg.c:459,1
    - Dst: fcntl
      Src: /src/mercurial/contrib/chg/chg.c:460,1
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:461,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:465,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:472,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:474,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 479
    functionName: isunsupported
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - fcntl
    - debugmsg
    - strcmp
    linkageType: ''
    returnType: int
    signature: int isunsupported(int argc, const char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: debugmsg
      Src: /src/mercurial/contrib/chg/chg.c:483,1
    - Dst: execvp
      Src: /src/mercurial/contrib/chg/chg.c:484,1
    - Dst: gethgcmd
      Src: /src/mercurial/contrib/chg/chg.c:484,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 486
    functionName: execoriginalhg
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - debugmsg
    - execvp
    - abortmsgerrno
    - gethgcmd
    linkageType: ''
    returnType: void
    signature: void execoriginalhg(const char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/mercurial/contrib/chg/chg.c:494,1
    - Dst: malloc
      Src: /src/mercurial/contrib/chg/chg.c:497,1
    - Dst: read
      Src: /src/mercurial/contrib/chg/chg.c:504,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/chg.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - max_size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 510
    functionName: read_procfs_file
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - close
    - malloc
    - open
    - read
    linkageType: ''
    returnType: char
    signature: char *read_procfs_file(const char *path, size_t max_size)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:514,1
    - Dst: enabledebugmsg
      Src: /src/mercurial/contrib/chg/chg.c:515,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:517,1
    - Dst: isatty
      Src: /src/mercurial/contrib/chg/chg.c:517,1
    - Dst: fileno
      Src: /src/mercurial/contrib/chg/chg.c:517,1
    - Dst: enablecolor
      Src: /src/mercurial/contrib/chg/chg.c:518,1
    - Dst: getenv
      Src: /src/mercurial/contrib/chg/chg.c:520,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:521,1
    - Dst: isunsupported
      Src: /src/mercurial/contrib/chg/chg.c:526,1
    - Dst: execoriginalhg
      Src: /src/mercurial/contrib/chg/chg.c:527,1
    - Dst: initcmdserveropts
      Src: /src/mercurial/contrib/chg/chg.c:530,1
    - Dst: setcmdserveropts
      Src: /src/mercurial/contrib/chg/chg.c:531,1
    - Dst: setcmdserverargs
      Src: /src/mercurial/contrib/chg/chg.c:532,1
    - Dst: strcmp
      Src: /src/mercurial/contrib/chg/chg.c:535,1
    - Dst: killcmdserver
      Src: /src/mercurial/contrib/chg/chg.c:536,1
    - Dst: setenv
      Src: /src/mercurial/contrib/chg/chg.c:548,1
    - Dst: gethgcmd
      Src: /src/mercurial/contrib/chg/chg.c:548,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:549,1
    - Dst: read_procfs_file
      Src: /src/mercurial/contrib/chg/chg.c:556,1
    - Dst: setenv
      Src: /src/mercurial/contrib/chg/chg.c:558,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:559,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:560,1
    - Dst: open
      Src: /src/mercurial/contrib/chg/chg.c:575,1
    - Dst: readlinkat
      Src: /src/mercurial/contrib/chg/chg.c:582,1
    - Dst: snprintf
      Src: /src/mercurial/contrib/chg/chg.c:586,1
    - Dst: close
      Src: /src/mercurial/contrib/chg/chg.c:592,1
    - Dst: setenv
      Src: /src/mercurial/contrib/chg/chg.c:594,1
    - Dst: abortmsgerrno
      Src: /src/mercurial/contrib/chg/chg.c:595,1
    - Dst: connectcmdserver
      Src: /src/mercurial/contrib/chg/chg.c:602,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:604,1
    - Dst: hgc_setenv
      Src: /src/mercurial/contrib/chg/chg.c:608,1
    - Dst: hgc_validate
      Src: /src/mercurial/contrib/chg/chg.c:609,1
    - Dst: runinstructions
      Src: /src/mercurial/contrib/chg/chg.c:610,1
    - Dst: free
      Src: /src/mercurial/contrib/chg/chg.c:611,1
    - Dst: hgc_close
      Src: /src/mercurial/contrib/chg/chg.c:614,1
    - Dst: abortmsg
      Src: /src/mercurial/contrib/chg/chg.c:616,1
    - Dst: gethgcmd
      Src: /src/mercurial/contrib/chg/chg.c:621,1
    - Dst: setupsignalhandler
      Src: /src/mercurial/contrib/chg/chg.c:624,1
    - Dst: hgc_peerpid
      Src: /src/mercurial/contrib/chg/chg.c:624,1
    - Dst: hgc_peerpgid
      Src: /src/mercurial/contrib/chg/chg.c:624,1
    - Dst: atexit
      Src: /src/mercurial/contrib/chg/chg.c:625,1
    - Dst: hgc_runcommand
      Src: /src/mercurial/contrib/chg/chg.c:626,1
    - Dst: restoresignalhandler
      Src: /src/mercurial/contrib/chg/chg.c:627,1
    - Dst: hgc_close
      Src: /src/mercurial/contrib/chg/chg.c:628,1
    - Dst: freecmdserveropts
      Src: /src/mercurial/contrib/chg/chg.c:629,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 512
    functionDepth: 11
    functionLinenumber: 512
    functionLinenumberEnd: 632
    functionName: main
    functionSourceFile: /src/mercurial/contrib/chg/chg.c
    functionUses: 0
    functionsReached:
    - initcmdserveropts
    - read_procfs_file
    - hgc_peerpgid
    - execoriginalhg
    - hgc_close
    - isatty
    - freecmdserveropts
    - hgc_peerpid
    - isunsupported
    - readlinkat
    - enabledebugmsg
    - hgc_runcommand
    - abortmsg
    - enablecolor
    - gethgcmd
    - close
    - open
    - getenv
    - setupsignalhandler
    - free
    - setcmdserveropts
    - fileno
    - runinstructions
    - killcmdserver
    - hgc_setenv
    - setenv
    - snprintf
    - setcmdserverargs
    - connectcmdserver
    - restoresignalhandler
    - abortmsgerrno
    - atexit
    - hgc_validate
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/mercurial/rust/chg/src/sighandlers.c:21,1
    - Dst: kill
      Src: /src/mercurial/rust/chg/src/sighandlers.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts:
    - condition: (peerpid > 0)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/mercurial/rust/chg/src/sighandlers.c
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: forwardsignal
    functionSourceFile: /src/mercurial/rust/chg/src/sighandlers.c
    functionUses: 1
    functionsReached:
    - assert
    - kill
    linkageType: ''
    returnType: void
    signature: void forwardsignal(int sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/mercurial/rust/chg/src/sighandlers.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: forwardsignaltogroup
    functionSourceFile: /src/mercurial/rust/chg/src/sighandlers.c
    functionUses: 0
    functionsReached:
    - kill
    linkageType: ''
    returnType: void
    signature: void forwardsignaltogroup(int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:36,1
    - Dst: sigaddset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:39,1
    - Dst: memset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:42,1
    - Dst: sigemptyset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:45,1
    - Dst: forwardsignal
      Src: /src/mercurial/rust/chg/src/sighandlers.c:49,1
    - Dst: raise
      Src: /src/mercurial/rust/chg/src/sighandlers.c:50,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:53,1
    - Dst: sigprocmask
      Src: /src/mercurial/rust/chg/src/sighandlers.c:56,1
    - Dst: sigprocmask
      Src: /src/mercurial/rust/chg/src/sighandlers.c:60,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 66
    functionName: handlestopsignal
    functionSourceFile: /src/mercurial/rust/chg/src/sighandlers.c
    functionUses: 0
    functionsReached:
    - forwardsignal
    - sigemptyset
    - sigaddset
    - raise
    - sigaction
    - sigprocmask
    - memset
    linkageType: ''
    returnType: void
    signature: void handlestopsignal(int sig)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:84,1
    - Dst: sigemptyset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:92,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:95,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:98,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:105,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:111,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:115,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:118,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:124,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - pid
    - pgid
    argTypes:
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 134
    functionName: setupsignalhandler
    functionSourceFile: /src/mercurial/rust/chg/src/sighandlers.c
    functionUses: 1
    functionsReached:
    - sigemptyset
    - sigaction
    - memset
    linkageType: ''
    returnType: int
    signature: int setupsignalhandler(pid_t pid, pid_t pgid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:144,1
    - Dst: sigemptyset
      Src: /src/mercurial/rust/chg/src/sighandlers.c:147,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:151,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:154,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:157,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:160,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:163,1
    - Dst: sigaction
      Src: /src/mercurial/rust/chg/src/sighandlers.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 175
    functionName: restoresignalhandler
    functionSourceFile: /src/mercurial/rust/chg/src/sighandlers.c
    functionUses: 1
    functionsReached:
    - sigemptyset
    - sigaction
    - memset
    linkageType: ''
    returnType: int
    signature: int restoresignalhandler(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/mercurial/rust/chg/src/sendfds.c:28,1
    - Dst: memset
      Src: /src/mercurial/rust/chg/src/sendfds.c:38,1
    - Dst: CMSG_SPACE
      Src: /src/mercurial/rust/chg/src/sendfds.c:42,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/mercurial/rust/chg/src/sendfds.c:44,1
    - Dst: CMSG_LEN
      Src: /src/mercurial/rust/chg/src/sendfds.c:47,1
    - Dst: memcpy
      Src: /src/mercurial/rust/chg/src/sendfds.c:48,1
    - Dst: CMSG_DATA
      Src: /src/mercurial/rust/chg/src/sendfds.c:48,1
    - Dst: sendmsg
      Src: /src/mercurial/rust/chg/src/sendfds.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - sockfd
    - fds
    - fdlen
    argTypes:
    - int
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sendfds
    functionSourceFile: /src/mercurial/rust/chg/src/sendfds.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - memcpy
    - CMSG_DATA
    - CMSG_FIRSTHDR
    - CMSG_SPACE
    - CMSG_LEN
    - memset
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t sendfds(int sockfd, const int *fds, size_t fdlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:12,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:16,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:17,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:20,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:21,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:24,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:27,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:28,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:30,1
    - Dst: atoi
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:30,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:32,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:33,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:34,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:38,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:40,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:41,1
    - Dst: printf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:43,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:43,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:44,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:47,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:48,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:49,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:50,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:55,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:56,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:57,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:59,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:60,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:63,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:64,1
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/Doc/includes/run-func.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Doc/includes/run-func.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_CallObject
    - PyLong_AsLong
    - PyErr_Print
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_DecodeFSDefault
    - PyCallable_Check
    - atoi
    - PyErr_Occurred
    - Py_XDECREF
    - printf
    - Py_Initialize
    - fprintf
    - Py_FinalizeEx
    - PyImport_Import
    - PyTuple_New
    - PyTuple_SetItem
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - SubListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: SubList_increment
    functionSourceFile: /src/Python-3.8.3/Doc/includes/sublist.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SubList_increment(SubListObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - SubListObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: SubList_init
    functionSourceFile: /src/Python-3.8.3/Doc/includes/sublist.c
    functionUses: 0
    functionsReached:
    - tp_init
    linkageType: ''
    returnType: int
    signature: int SubList_init(SubListObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:54,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:57,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:61,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:62,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:63,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/sublist.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: PyInit_sublist
    functionSourceFile: /src/Python-3.8.3/Doc/includes/sublist.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_sublist(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Doc/includes/custom.c:30,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Doc/includes/custom.c:33,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom.c:37,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Doc/includes/custom.c:38,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom.c:39,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 45
    functionName: PyInit_custom
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:15,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:16,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - CustomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: Custom_dealloc
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom2.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(CustomObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:24,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:26,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:28,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:31,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: Custom_new
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom2.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:47,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:54,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:56,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:60,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - CustomObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: Custom_init
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom2.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:81,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:85,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CustomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: Custom_name
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom2.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(CustomObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:123,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:126,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:130,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:132,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom2.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: PyInit_custom2
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom2.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:15,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - CustomObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: Custom_traverse
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Custom_traverse(CustomObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:23,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - CustomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: Custom_clear
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Custom_clear(CustomObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:31,1
    - Dst: Custom_clear
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:32,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - CustomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: Custom_dealloc
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Custom_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(CustomObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:40,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:42,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:44,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:47,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: Custom_new
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:63,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:70,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:72,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:76,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - CustomObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: Custom_init
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - CustomObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Custom_getfirst
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getfirst(CustomObject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:100,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:104,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:108,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - CustomObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: Custom_setfirst
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_CLEAR
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_setfirst(CustomObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - CustomObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Custom_getlast
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getlast(CustomObject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:125,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:128,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:129,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:133,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - CustomObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    functionName: Custom_setlast
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_CLEAR
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_setlast(CustomObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CustomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Custom_name
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(CustomObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:188,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:191,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:195,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:196,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:197,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom4.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: PyInit_custom4
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom4.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom4(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:15,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:16,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - CustomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: Custom_dealloc
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Custom_dealloc(CustomObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:24,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:26,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:28,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:31,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: Custom_new
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:47,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:56,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:60,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - CustomObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: Custom_init
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_init(CustomObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - CustomObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: Custom_getfirst
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getfirst(CustomObject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:85,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:88,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:89,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:94,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - CustomObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: Custom_setfirst
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_DECREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_setfirst(CustomObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - CustomObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: Custom_getlast
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_getlast(CustomObject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:112,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:116,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - CustomObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: Custom_setlast
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_DECREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Custom_setlast(CustomObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CustomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Custom_name
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Custom_name(CustomObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:174,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:177,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:181,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Doc/includes/custom3.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: PyInit_custom3
    functionSourceFile: /src/Python-3.8.3/Doc/includes/custom3.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_custom3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: _csvstate
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _csvstate(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:29,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:29,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:30,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: _csv_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _csvstate
    linkageType: ''
    returnType: int
    signature: int _csv_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:37,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:37,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:38,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: _csv_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _csvstate
    linkageType: ''
    returnType: int
    signature: int _csv_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _csv_clear
      Src: /src/Python-3.8.3/Modules/_csv.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: _csv_free
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _csv_clear
    linkageType: ''
    returnType: void
    signature: void _csv_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: ReaderObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ReaderObject_Check(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_csv.c:135,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:137,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:138,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name_obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 143
    functionName: get_dialect_from_registry
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dialect_from_registry(PyObject * name_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: get_string
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_string(PyObject *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/_csv.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: get_nullchar_as_None
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_nullchar_as_None(Py_UCS4 c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/Python-3.8.3/Modules/_csv.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DialectObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: Dialect_get_lineterminator
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_lineterminator(DialectObj *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_nullchar_as_None
      Src: /src/Python-3.8.3/Modules/_csv.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DialectObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: Dialect_get_delimiter
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_nullchar_as_None
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_delimiter(DialectObj *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_nullchar_as_None
      Src: /src/Python-3.8.3/Modules/_csv.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DialectObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: Dialect_get_escapechar
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_nullchar_as_None
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_escapechar(DialectObj *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_nullchar_as_None
      Src: /src/Python-3.8.3/Modules/_csv.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DialectObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: Dialect_get_quotechar
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_nullchar_as_None
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_quotechar(DialectObj *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_csv.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DialectObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: Dialect_get_quoting
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Dialect_get_quoting(DialectObj *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_csv.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - char*
    - PyObject*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: _set_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _set_bool(const char *name, char *target, PyObject *src, bool dflt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_csv.c:213,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:214,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_csv.c:218,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - int*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: _set_int
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - PyErr_Occurred
    - PyErr_Format
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int _set_int(const char *name, int *target, PyObject *src, int dflt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:236,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:237,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_csv.c:242,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:244,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_csv.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - Py_UCS4*
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 255
    functionName: _set_char
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_GetLength
    - PyUnicode_READ_CHAR
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4
      dflt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/_csv.c:261,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_csv.c:261,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:265,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:266,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_csv.c:271,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:273,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_csv.c:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - name
    - target
    - src
    - dflt
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: _set_str
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_INCREF
    - Py_XSETREF
    - strlen
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_DecodeASCII
    linkageType: ''
    returnType: int
    signature: int _set_str(const char *name, PyObject **target, PyObject *src, const
      char *dflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - quoting
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 291
    functionName: dialect_check_quoting
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int dialect_check_quoting(int quoting)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 294
    functionName: D_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:314,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_csv.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - DialectObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: Dialect_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Dialect_dealloc(DialectObj *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_csv.c:346,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:360,1
    - Dst: get_dialect_from_registry
      Src: /src/Python-3.8.3/Modules/_csv.c:361,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:366,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_csv.c:368,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_csv.c:380,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:382,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:387,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:388,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:389,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:390,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:391,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:392,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:393,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:394,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:399,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:400,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:401,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:402,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:403,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:404,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:405,1
    - Dst: DIALECT_GETATTR
      Src: /src/Python-3.8.3/Modules/_csv.c:406,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_csv.c:407,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:414,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:415,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:416,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:417,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:418,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:419,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:420,1
    - Dst: DIASET
      Src: /src/Python-3.8.3/Modules/_csv.c:421,1
    - Dst: dialect_check_quoting
      Src: /src/Python-3.8.3/Modules/_csv.c:424,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:439,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:444,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:446,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:447,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:448,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:449,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:450,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:451,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:452,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:453,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:454,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:455,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 457
    functionName: dialect_new
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - DIALECT_GETATTR
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - get_dialect_from_registry
    - Py_XINCREF
    - PyObject_TypeCheck
    - dialect_check_quoting
    - PyUnicode_Check
    - DIASET
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: DIALECT_GETATTR
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIALECT_GETATTR(v, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - meth
    - ','
    - name
    - ','
    - target
    - ','
    - src
    - ','
    - dflt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: DIASET
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIASET(meth, name, target, src, dflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Modules/_csv.c:517,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Modules/_csv.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dialect_inst
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 522
    functionName: _call_dialect
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - _PyObject_FastCallDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _call_dialect(PyObject *dialect_inst, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_csv.c:532,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Modules/_csv.c:541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:542,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_csv.c:547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:551,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 553
    functionName: parse_save_field
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - PyList_Append
    - Py_DECREF
    - PyNumber_Float
    linkageType: ''
    returnType: int
    signature: int parse_save_field(ReaderObj *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_csv.c:558,1
    - Dst: PyMem_Resize
      Src: /src/Python-3.8.3/Modules/_csv.c:562,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_csv.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts:
    - condition: ((size_t)self->field_size <= PY_SSIZE_T_MAX / sizeof(Py_UCS4))
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/Python-3.8.3/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 570
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 570
    functionName: parse_grow_buff
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Resize
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int parse_grow_buff(ReaderObj *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:576,1
    - Dst: parse_grow_buff
      Src: /src/Python-3.8.3/Modules/_csv.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - ReaderObj*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 584
    functionName: parse_add_char
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_grow_buff
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int parse_add_char(ReaderObj *self, Py_UCS4 c)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:608,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:626,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:633,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:641,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:648,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:662,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:672,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:678,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:704,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:712,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:722,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:728,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:734,1
    - Dst: parse_add_char
      Src: /src/Python-3.8.3/Modules/_csv.c:739,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:745,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:758,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 129
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - ReaderObj*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 765
    functionName: parse_process_char
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_add_char
    - PyErr_Format
    - parse_save_field
    linkageType: ''
    returnType: int
    signature: int parse_process_char(ReaderObj *self, Py_UCS4 c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_csv.c:770,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_csv.c:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: parse_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int parse_reset(ReaderObj *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_reset
      Src: /src/Python-3.8.3/Modules/_csv.c:789,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_csv.c:792,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:795,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:798,1
    - Dst: parse_save_field
      Src: /src/Python-3.8.3/Modules/_csv.c:800,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:805,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:806,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:812,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_csv.c:815,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:816,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_csv.c:820,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_csv.c:821,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_csv.c:823,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_csv.c:825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:827,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:828,1
    - Dst: parse_process_char
      Src: /src/Python-3.8.3/Modules/_csv.c:832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:838,1
    - Dst: parse_process_char
      Src: /src/Python-3.8.3/Modules/_csv.c:839,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 779
    functionDepth: 4
    functionLinenumber: 779
    functionLinenumberEnd: 847
    functionName: Reader_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - parse_reset
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_READY
    - PyUnicode_READ
    - parse_process_char
    - PyUnicode_DATA
    - parse_save_field
    - PyIter_Next
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Reader_iternext(ReaderObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_csv.c:852,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:853,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:854,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:855,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_csv.c:857,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_csv.c:858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 859
    functionName: Reader_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Reader_dealloc(ReaderObj *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:864,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:865,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - ReaderObj*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 868
    functionName: Reader_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Reader_traverse(ReaderObj *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:873,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:874,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - ReaderObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 877
    functionName: Reader_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Reader_clear(ReaderObj *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 890
    functionName: R_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R_OFF(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_csv.c:938,1
    - Dst: parse_reset
      Src: /src/Python-3.8.3/Modules/_csv.c:950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:951,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_csv.c:955,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:956,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_csv.c:959,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:961,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:963,1
    - Dst: _call_dialect
      Src: /src/Python-3.8.3/Modules/_csv.c:966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:968,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_csv.c:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 974
    functionName: csv_reader
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - parse_reset
    - Py_DECREF
    - _call_dialect
    - PyObject_GC_New
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_reader(PyObject *module, PyObject *args, PyObject *keyword_args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: join_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void join_reset(WriterObj *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1020,1
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1024,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_csv.c:1029,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_csv.c:1035,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_csv.c:1037,1
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1043,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:1052,1
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1056,1
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1061,1
    - Dst: ADDCH
      Src: /src/Python-3.8.3/Modules/_csv.c:1066,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_csv.c:1075,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 6
    argNames:
    - self
    - field_kind
    - field_data
    - field_len
    - quoted
    - copy_phase
    argTypes:
    - WriterObj*
    - unsigned int
    - void*
    - Py_ssize_t
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1079
    functionName: join_append_data
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - PyUnicode_FindChar
    - PyErr_NoMemory
    - PyErr_Format
    - ADDCH
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t join_append_data(WriterObj *self, unsigned int field_kind,
      void *field_data,\n                 Py_ssize_t field_len, int *quoted,\n                 int
      copy_phase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1015
    functionName: ADDCH
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDCH(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_csv.c:1084,1
    - Dst: PyMem_Resize
      Src: /src/Python-3.8.3/Modules/_csv.c:1089,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_csv.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - rec_len
    argTypes:
    - WriterObj*
    - Py_ssize_t
    assertStmts:
    - condition: (rec_len >= 0)
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/Python-3.8.3/Modules/_csv.c
    constantsTouched: []
    func_position:
      end: 1098
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1098
    functionName: join_check_rec_size
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Resize
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int join_check_rec_size(WriterObj *self, Py_ssize_t rec_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_csv.c:1109,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_csv.c:1111,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_csv.c:1112,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_csv.c:1113,1
    - Dst: join_append_data
      Src: /src/Python-3.8.3/Modules/_csv.c:1115,1
    - Dst: join_check_rec_size
      Src: /src/Python-3.8.3/Modules/_csv.c:1121,1
    - Dst: join_append_data
      Src: /src/Python-3.8.3/Modules/_csv.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - field
    - quoted
    argTypes:
    - WriterObj*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1129
    functionName: join_append
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - join_append_data
    - join_check_rec_size
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int join_append(WriterObj *self, PyObject *field, int quoted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_csv.c:1138,1
    - Dst: join_check_rec_size
      Src: /src/Python-3.8.3/Modules/_csv.c:1143,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_csv.c:1146,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_csv.c:1147,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_csv.c:1149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1153
    functionName: join_append_lineterminator
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - join_check_rec_size
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int join_append_lineterminator(WriterObj *self)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_csv.c:1167,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:1169,1
    - Dst: join_reset
      Src: /src/Python-3.8.3/Modules/_csv.c:1175,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_csv.c:1176,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:1182,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:1192,1
    - Dst: join_append
      Src: /src/Python-3.8.3/Modules/_csv.c:1193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1194,1
    - Dst: join_append
      Src: /src/Python-3.8.3/Modules/_csv.c:1197,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1198,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_csv.c:1203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1206,1
    - Dst: join_append
      Src: /src/Python-3.8.3/Modules/_csv.c:1209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1217,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:1218,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:1223,1
    - Dst: join_append
      Src: /src/Python-3.8.3/Modules/_csv.c:1228,1
    - Dst: join_append_lineterminator
      Src: /src/Python-3.8.3/Modules/_csv.c:1234,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_csv.c:1238,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_csv.c:1243,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1244,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - self
    - seq
    argTypes:
    - WriterObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1161
    functionDepth: 3
    functionLinenumber: 1161
    functionLinenumberEnd: 1246
    functionName: csv_writerow
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - join_append_lineterminator
    - PyUnicode_FromKindAndData
    - PyErr_Occurred
    - PyNumber_Check
    - join_reset
    - Py_DECREF
    - PyObject_Str
    - PyIter_Next
    - PyErr_Format
    - PyObject_CallFunctionObjArgs
    - PyUnicode_Check
    - join_append
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerow(WriterObj *self, PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_csv.c:1259,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:1261,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_csv.c:1265,1
    - Dst: csv_writerow
      Src: /src/Python-3.8.3/Modules/_csv.c:1266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1275,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:1276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - seqseq
    argTypes:
    - WriterObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1254
    functionDepth: 4
    functionLinenumber: 1254
    functionLinenumberEnd: 1279
    functionName: csv_writerows
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - csv_writerow
    - PyIter_Next
    - PyErr_SetString
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writerows(WriterObj *self, PyObject *seqseq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1287
    functionDepth: 0
    functionLinenumber: 1287
    functionLinenumberEnd: 1288
    functionName: W_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_csv.c:1297,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1298,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1299,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_csv.c:1301,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_csv.c:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1303
    functionName: Writer_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void Writer_dealloc(WriterObj *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:1308,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_csv.c:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - WriterObj*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: Writer_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Writer_traverse(WriterObj *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:1316,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_csv.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - WriterObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1319
    functionName: Writer_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Writer_clear(WriterObj *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_csv.c:1367,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_csv.c:1368,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_csv.c:1381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1382,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_csv.c:1385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1386,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:1389,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:1390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1392,1
    - Dst: _call_dialect
      Src: /src/Python-3.8.3/Modules/_csv.c:1395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1397,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_csv.c:1400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - keyword_args
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1402
    functionName: csv_writer
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCallable_Check
    - _PyObject_LookupAttrId
    - _call_dialect
    - _Py_IDENTIFIER
    - PyObject_GC_New
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_writer(PyObject *module, PyObject *args, PyObject *keyword_args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Modules/_csv.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1411
    functionName: csv_list_dialects
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_list_dialects(PyObject *module, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_csv.c:1419,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_csv.c:1421,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_csv.c:1422,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_csv.c:1426,1
    - Dst: _call_dialect
      Src: /src/Python-3.8.3/Modules/_csv.c:1428,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_csv.c:1431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1435,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - module
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1437
    functionName: csv_register_dialect
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - _call_dialect
    - PyDict_SetItem
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_register_dialect(PyObject *module, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_csv.c:1442,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_csv.c:1443,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:1444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1449
    functionName: csv_unregister_dialect
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - PyErr_Format
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_unregister_dialect(PyObject *module, PyObject *name_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_dialect_from_registry
      Src: /src/Python-3.8.3/Modules/_csv.c:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1455
    functionName: csv_get_dialect
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - get_dialect_from_registry
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_get_dialect(PyObject *module, PyObject *name_obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_csv.c:1463,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_csv.c:1466,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_csv.c:1467,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_csv.c:1471,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_csv.c:1472,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_csv.c:1477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1478
    functionName: csv_field_size_limit
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_CheckExact
    - PyErr_Format
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      csv_field_size_limit(PyObject *module, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_csv.c:1630,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_csv.c:1633,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_csv.c:1636,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_csv.c:1640,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_csv.c:1645,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1650,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1654,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_csv.c:1654,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1655,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1657,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1657,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_csv.c:1658,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1658,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_csv.c:1663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1669,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_csv.c:1670,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1674,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_csv.c:1674,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1675,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_csv.c:1677,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1677,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_csv.c:1678,1
    - Dst: _csvstate
      Src: /src/Python-3.8.3/Modules/_csv.c:1678,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1680
    functionName: PyInit__csv
    functionSourceFile: /src/Python-3.8.3/Modules/_csv.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - Py_INCREF
    - PyErr_NewException
    - PyDict_New
    - PyModule_Create
    - PyModule_AddObject
    - _csvstate
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__csv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CFNumberGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - CFNumberRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: cfnum_to_int32
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - CFNumberGetValue
    linkageType: ''
    returnType: int32_t
    signature: int32_t cfnum_to_int32(CFNumberRef num)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CFStringGetCStringPtr
      Src: /src/Python-3.8.3/Modules/_scproxy.c:22,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_scproxy.c:24,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_scproxy.c:25,1
    - Dst: CFStringGetLength
      Src: /src/Python-3.8.3/Modules/_scproxy.c:28,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_scproxy.c:33,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_scproxy.c:35,1
    - Dst: CFStringGetCString
      Src: /src/Python-3.8.3/Modules/_scproxy.c:39,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_scproxy.c:43,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_scproxy.c:46,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_scproxy.c:47,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_scproxy.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ref
    argTypes:
    - CFStringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 52
    functionName: cfstring_to_pystring
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - CFStringGetCString
    - PyErr_NoMemory
    - CFStringGetCStringPtr
    - CFStringGetLength
    - strlen
    - PyUnicode_DecodeUTF8
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cfstring_to_pystring(CFStringRef ref)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreCopyProxies
      Src: /src/Python-3.8.3/Modules/_scproxy.c:66,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_scproxy.c:73,1
    - Dst: CFDictionaryGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:76,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_scproxy.c:79,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_scproxy.c:81,1
    - Dst: cfnum_to_int32
      Src: /src/Python-3.8.3/Modules/_scproxy.c:81,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_scproxy.c:86,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:87,1
    - Dst: CFDictionaryGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:90,1
    - Dst: CFArrayGetCount
      Src: /src/Python-3.8.3/Modules/_scproxy.c:93,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_scproxy.c:95,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_scproxy.c:98,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:99,1
    - Dst: CFArrayGetValueAtIndex
      Src: /src/Python-3.8.3/Modules/_scproxy.c:105,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_scproxy.c:107,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:108,1
    - Dst: cfstring_to_pystring
      Src: /src/Python-3.8.3/Modules/_scproxy.c:110,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_scproxy.c:112,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:113,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_scproxy.c:115,1
    - Dst: CFRelease
      Src: /src/Python-3.8.3/Modules/_scproxy.c:121,1
    - Dst: CFRelease
      Src: /src/Python-3.8.3/Modules/_scproxy.c:125,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - Py_UNUSED(mod)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 128
    functionName: get_proxy_settings
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - CFDictionaryGetValue
    - CFArrayGetCount
    - Py_DECREF
    - PyTuple_New
    - Py_INCREF
    - CFRelease
    - PyDict_New
    - CFArrayGetValueAtIndex
    - Py_XDECREF
    - cfnum_to_int32
    - PyBool_FromLong
    - cfstring_to_pystring
    - PyDict_SetItemString
    - SCDynamicStoreCopyProxies
    - PyTuple_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_proxy_settings(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CFDictionaryGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:137,1
    - Dst: cfnum_to_int32
      Src: /src/Python-3.8.3/Modules/_scproxy.c:138,1
    - Dst: CFDictionaryGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:141,1
    - Dst: CFDictionaryGetValue
      Src: /src/Python-3.8.3/Modules/_scproxy.c:142,1
    - Dst: cfstring_to_pystring
      Src: /src/Python-3.8.3/Modules/_scproxy.c:146,1
    - Dst: cfnum_to_int32
      Src: /src/Python-3.8.3/Modules/_scproxy.c:150,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_scproxy.c:151,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_scproxy.c:154,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:156,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_scproxy.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - proxies
    - proto
    - proxyDict
    - enabledKey
    - hostKey
    - portKey
    argTypes:
    - PyObject*
    - char*
    - CFDictionaryRef
    - CFStringRef
    - CFStringRef
    - CFStringRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 167
    functionName: set_proxy
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - CFDictionaryGetValue
    - Py_DECREF
    - PyUnicode_FromFormat
    - cfnum_to_int32
    - cfstring_to_pystring
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: "int set_proxy(PyObject* proxies, const char* proto, CFDictionaryRef
      proxyDict,\n                CFStringRef enabledKey,\n                CFStringRef
      hostKey, CFStringRef portKey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SCDynamicStoreCopyProxies
      Src: /src/Python-3.8.3/Modules/_scproxy.c:179,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_scproxy.c:183,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_scproxy.c:186,1
    - Dst: set_proxy
      Src: /src/Python-3.8.3/Modules/_scproxy.c:189,1
    - Dst: set_proxy
      Src: /src/Python-3.8.3/Modules/_scproxy.c:194,1
    - Dst: set_proxy
      Src: /src/Python-3.8.3/Modules/_scproxy.c:199,1
    - Dst: set_proxy
      Src: /src/Python-3.8.3/Modules/_scproxy.c:204,1
    - Dst: CFRelease
      Src: /src/Python-3.8.3/Modules/_scproxy.c:210,1
    - Dst: CFRelease
      Src: /src/Python-3.8.3/Modules/_scproxy.c:213,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_scproxy.c:214,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - Py_UNUSED(mod)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 216
    functionName: get_proxies
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - set_proxy
    - CFRelease
    - PyDict_New
    - Py_XDECREF
    - SCDynamicStoreCopyProxies
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_proxies(PyObject* Py_UNUSED(mod), PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_scproxy.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: PyInit__scproxy
    functionSourceFile: /src/Python-3.8.3/Modules/_scproxy.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__scproxy(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:83,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: SetFromWindowsErr
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    - GetLastError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SetFromWindowsErr(DWORD err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: GET_WSA_POINTER
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WSA_POINTER(s, x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/Python-3.8.3/Modules/overlapped.c:123,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:125,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:125,1
    - Dst: GET_WSA_POINTER
      Src: /src/Python-3.8.3/Modules/overlapped.c:129,1
    - Dst: GET_WSA_POINTER
      Src: /src/Python-3.8.3/Modules/overlapped.c:130,1
    - Dst: GET_WSA_POINTER
      Src: /src/Python-3.8.3/Modules/overlapped.c:131,1
    - Dst: GET_WSA_POINTER
      Src: /src/Python-3.8.3/Modules/overlapped.c:132,1
    - Dst: closesocket
      Src: /src/Python-3.8.3/Modules/overlapped.c:134,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:135,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:135,1
    - Dst: closesocket
      Src: /src/Python-3.8.3/Modules/overlapped.c:139,1
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/Modules/overlapped.c:143,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/overlapped.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 147
    functionName: initialize_function_pointers
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - WSAGetLastError
    - GetModuleHandle
    - SetFromWindowsErr
    - socket
    - closesocket
    - GET_WSA_POINTER
    linkageType: ''
    returnType: int
    signature: int initialize_function_pointers(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:167,1
    - Dst: CreateIoCompletionPort
      Src: /src/Python-3.8.3/Modules/overlapped.c:173,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:178,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: overlapped_CreateIoCompletionPort
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - CreateIoCompletionPort
    - PyArg_ParseTuple
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_CreateIoCompletionPort(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:198,1
    - Dst: GetQueuedCompletionStatus
      Src: /src/Python-3.8.3/Modules/overlapped.c:203,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:207,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:212,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 216
    functionName: overlapped_GetQueuedCompletionStatus
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_BuildValue
    - GetQueuedCompletionStatus
    - SetFromWindowsErr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_GetQueuedCompletionStatus(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:232,1
    - Dst: PostQueuedCompletionStatus
      Src: /src/Python-3.8.3/Modules/overlapped.c:238,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 245
    functionName: overlapped_PostQueuedCompletionStatus
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - PyArg_ParseTuple
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_PostQueuedCompletionStatus(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PostQueuedCompletionStatus
      Src: /src/Python-3.8.3/Modules/overlapped.c:261,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/overlapped.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lpParameter
    - TimerOrWaitFired
    argTypes:
    - PVOID
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: PostToQueueCallback
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - PostQueuedCompletionStatus
    linkageType: ''
    returnType: VOID
    signature: VOID PostToQueueCallback(PVOID lpParameter, BOOL TimerOrWaitFired)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:281,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/overlapped.c:291,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:293,1
    - Dst: RegisterWaitForSingleObject
      Src: /src/Python-3.8.3/Modules/overlapped.c:297,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/overlapped.c:302,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:303,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 307
    functionName: overlapped_RegisterWaitWithQueue
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - SetFromWindowsErr
    - PyMem_RawMalloc
    - RegisterWaitForSingleObject
    - PyMem_RawFree
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_RegisterWaitWithQueue(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:320,1
    - Dst: UnregisterWait
      Src: /src/Python-3.8.3/Modules/overlapped.c:324,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 330
    functionName: overlapped_UnregisterWait
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetFromWindowsErr
    - PyArg_ParseTuple
    - UnregisterWait
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_UnregisterWait(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:343,1
    - Dst: UnregisterWaitEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:347,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 353
    functionName: overlapped_UnregisterWaitEx
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - UnregisterWaitEx
    - PyArg_ParseTuple
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_UnregisterWaitEx(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:380,1
    - Dst: CreateEventW
      Src: /src/Python-3.8.3/Modules/overlapped.c:385,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:389,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 391
    functionName: overlapped_CreateEvent
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - SetFromWindowsErr
    - CreateEventW
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_CreateEvent(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:404,1
    - Dst: SetEvent
      Src: /src/Python-3.8.3/Modules/overlapped.c:408,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: overlapped_SetEvent
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetEvent
    - PyArg_ParseTuple
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_SetEvent(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:427,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/overlapped.c:431,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 437
    functionName: overlapped_ResetEvent
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - SetFromWindowsErr
    - ResetEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_ResetEvent(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:456,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:461,1
    - Dst: bind
      Src: /src/Python-3.8.3/Modules/overlapped.c:465,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:468,1
    - Dst: bind
      Src: /src/Python-3.8.3/Modules/overlapped.c:472,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:474,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:479,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 481
    functionName: overlapped_BindLocal
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - bind
    - WSAGetLastError
    - SetFromWindowsErr
    - PyErr_SetString
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_BindLocal(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:499,1
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Modules/overlapped.c:502,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Modules/overlapped.c:507,1
    - Dst: iswspace
      Src: /src/Python-3.8.3/Modules/overlapped.c:512,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:515,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/overlapped.c:517,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Modules/overlapped.c:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ignore
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 521
    functionName: overlapped_FormatMessage
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - iswspace
    - Py_BuildValue
    - FormatMessageW
    - LocalFree
    - MAKELANGID
    - PyUnicode_FromFormat
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_FormatMessage(PyObject *ignore, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetEvent
      Src: /src/Python-3.8.3/Modules/overlapped.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ov
    argTypes:
    - OVERLAPPED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: mark_as_completed
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void mark_as_completed(OVERLAPPED *ov)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/overlapped.c:552,1
    - Dst: CreateEvent
      Src: /src/Python-3.8.3/Modules/overlapped.c:556,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:558,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/overlapped.c:561,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/overlapped.c:564,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:572,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:573,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 577
    functionName: Overlapped_new
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - SetFromWindowsErr
    - PyObject_New
    - PyArg_ParseTupleAndKeywords
    - memset
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/overlapped.c:588,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/overlapped.c:597,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/overlapped.c:600,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 615
    functionName: Overlapped_clear
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int Overlapped_clear(OverlappedObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:621,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/Python-3.8.3/Modules/overlapped.c:625,1
    - Dst: Py_CancelIoEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:628,1
    - Dst: GetOverlappedResult
      Src: /src/Python-3.8.3/Modules/overlapped.c:632,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:636,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/overlapped.c:642,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/overlapped.c:646,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/overlapped.c:651,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:654,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/overlapped.c:655,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 657
    functionName: Overlapped_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - HasOverlappedIoCompleted
    - GetLastError
    - SetLastError
    - PyErr_WriteUnraisable
    - Overlapped_clear
    - PyErr_Format
    - Py_CancelIoEx
    - PyObject_Del
    - GetOverlappedResult
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void Overlapped_dealloc(OverlappedObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/Python-3.8.3/Modules/overlapped.c:666,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/overlapped.c:667,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/overlapped.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 671
    functionName: make_ipv4_addr
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ipv4_addr(const struct sockaddr_in *addr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/Python-3.8.3/Modules/overlapped.c:680,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/overlapped.c:681,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/overlapped.c:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 685
    functionName: make_ipv6_addr
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ipv6_addr(const struct sockaddr_in6 *addr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: make_ipv4_addr
      Src: /src/Python-3.8.3/Modules/overlapped.c:696,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:699,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/overlapped.c:699,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:700,1
    - Dst: make_ipv6_addr
      Src: /src/Python-3.8.3/Modules/overlapped.c:707,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:710,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/overlapped.c:712,1
    - Dst: ntohl
      Src: /src/Python-3.8.3/Modules/overlapped.c:713,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:715,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - Address
    - Length
    argTypes:
    - LPSOCKADDR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 724
    functionName: unparse_address
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - ntohl
    - Py_BuildValue
    - Py_DECREF
    - ntohs
    - make_ipv4_addr
    - SetFromWindowsErr
    - make_ipv6_addr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unparse_address(LPSOCKADDR Address, DWORD Length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HasOverlappedIoCompleted
      Src: /src/Python-3.8.3/Modules/overlapped.c:740,1
    - Dst: Py_CancelIoEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:743,1
    - Dst: CancelIo
      Src: /src/Python-3.8.3/Modules/overlapped.c:745,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:750,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 753
    functionName: Overlapped_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - HasOverlappedIoCompleted
    - GetLastError
    - SetFromWindowsErr
    - Py_CancelIoEx
    - CancelIo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:771,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:775,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:780,1
    - Dst: GetOverlappedResult
      Src: /src/Python-3.8.3/Modules/overlapped.c:785,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:789,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:806,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/overlapped.c:811,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/overlapped.c:811,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/overlapped.c:812,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/overlapped.c:813,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:816,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/overlapped.c:819,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/overlapped.c:819,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/overlapped.c:821,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/overlapped.c:823,1
    - Dst: unparse_address
      Src: /src/Python-3.8.3/Modules/overlapped.c:829,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/overlapped.c:837,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/overlapped.c:839,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:844,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/overlapped.c:845,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/overlapped.c:848,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:850,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/overlapped.c:853,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_CheckExact(self->read_from.allocated_buffer))
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/Python-3.8.3/Modules/overlapped.c
    - condition: (PyBytes_CheckExact(self->allocated_buffer))
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/Python-3.8.3/Modules/overlapped.c
    constantsTouched: []
    func_position:
      end: 855
      start: 762
    functionDepth: 3
    functionLinenumber: 762
    functionLinenumberEnd: 855
    functionName: Overlapped_getresult
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_CLEAR
    - PyTuple_SET_ITEM
    - Py_INCREF
    - PyTuple_New
    - PyBytes_CheckExact
    - unparse_address
    - SetFromWindowsErr
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - assert
    - GetOverlappedResult
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_getresult(OverlappedObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/Python-3.8.3/Modules/overlapped.c:866,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:870,1
    - Dst: mark_as_completed
      Src: /src/Python-3.8.3/Modules/overlapped.c:873,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:874,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:880,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - self
    - handle
    - bufstart
    - buflen
    argTypes:
    - OverlappedObject*
    - HANDLE
    - char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 883
    functionName: do_ReadFile
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - mark_as_completed
    - Overlapped_clear
    - SetFromWindowsErr
    - ReadFile
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_ReadFile(OverlappedObject *self, HANDLE handle,\n            char
      *bufstart, DWORD buflen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:897,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:901,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/overlapped.c:906,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/overlapped.c:908,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/overlapped.c:908,1
    - Dst: do_ReadFile
      Src: /src/Python-3.8.3/Modules/overlapped.c:916,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/overlapped.c:916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 890
    functionDepth: 3
    functionLinenumber: 890
    functionLinenumberEnd: 917
    functionName: Overlapped_ReadFile
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - do_ReadFile
    - Py_MAX
    - PyErr_SetString
    - PyBytes_AS_STRING
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_ReadFile(OverlappedObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:930,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:934,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/overlapped.c:938,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:943,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:944,1
    - Dst: do_ReadFile
      Src: /src/Python-3.8.3/Modules/overlapped.c:952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 954
    functionName: Overlapped_ReadFileInto
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - do_ReadFile
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_ReadFileInto(OverlappedObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WSARecv
      Src: /src/Python-3.8.3/Modules/overlapped.c:969,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:973,1
    - Dst: mark_as_completed
      Src: /src/Python-3.8.3/Modules/overlapped.c:976,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:977,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:983,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:984,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - self
    - handle
    - bufstart
    - buflen
    - flags
    argTypes:
    - OverlappedObject*
    - HANDLE
    - char*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 986
    functionName: do_WSARecv
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSARecv
    - mark_as_completed
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_WSARecv(OverlappedObject *self, HANDLE handle,\n           char
      *bufstart, DWORD buflen, DWORD flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1001,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1006,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/overlapped.c:1011,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/overlapped.c:1013,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/overlapped.c:1013,1
    - Dst: do_WSARecv
      Src: /src/Python-3.8.3/Modules/overlapped.c:1021,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/overlapped.c:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1022
    functionName: Overlapped_WSARecv
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_MAX
    - do_WSARecv
    - PyErr_SetString
    - PyBytes_AS_STRING
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WSARecv(OverlappedObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1036,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1041,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/overlapped.c:1045,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:1050,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1051,1
    - Dst: do_WSARecv
      Src: /src/Python-3.8.3/Modules/overlapped.c:1059,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1061
    functionName: Overlapped_WSARecvInto
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - do_WSARecv
    - PyErr_SetString
    - PyBuffer_Release
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WSARecvInto(OverlappedObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1077,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1081,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/overlapped.c:1085,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:1090,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1091,1
    - Dst: WriteFile
      Src: /src/Python-3.8.3/Modules/overlapped.c:1100,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1105,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1111,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1114
    functionName: Overlapped_WriteFile
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WriteFile
    - Overlapped_clear
    - SetFromWindowsErr
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WriteFile(OverlappedObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1132,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1137,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/overlapped.c:1141,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:1146,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1147,1
    - Dst: WSASend
      Src: /src/Python-3.8.3/Modules/overlapped.c:1158,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1162,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1168,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1121
    functionDepth: 2
    functionLinenumber: 1121
    functionLinenumberEnd: 1171
    functionName: Overlapped_WSASend
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - WSASend
    - Overlapped_clear
    - SetFromWindowsErr
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WSASend(OverlappedObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1189,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1194,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/overlapped.c:1199,1
    - Dst: Py_AcceptEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:1208,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/overlapped.c:1208,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1212,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1218,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1221
    functionName: Overlapped_AcceptEx
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_AcceptEx
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_AcceptEx(OverlappedObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:1232,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1234,1
    - Dst: WSAStringToAddressW
      Src: /src/Python-3.8.3/Modules/overlapped.c:1237,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1238,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1238,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/overlapped.c:1241,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1244,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1248,1
    - Dst: WSAStringToAddressW
      Src: /src/Python-3.8.3/Modules/overlapped.c:1250,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1251,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1251,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/overlapped.c:1254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - obj
    - Address
    - Length
    argTypes:
    - PyObject*
    - SOCKADDR*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1261
    functionName: parse_address
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 1
    functionsReached:
    - WSAStringToAddressW
    - WSAGetLastError
    - SetFromWindowsErr
    - PyErr_Clear
    - PyArg_ParseTuple
    - htons
    - memset
    linkageType: ''
    returnType: int
    signature: int parse_address(PyObject *obj, SOCKADDR *Address, int Length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1286,1
    - Dst: parse_address
      Src: /src/Python-3.8.3/Modules/overlapped.c:1291,1
    - Dst: Py_ConnectEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:1299,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1303,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1309,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1268
    functionDepth: 3
    functionLinenumber: 1268
    functionLinenumberEnd: 1312
    functionName: Overlapped_ConnectEx
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - PyErr_SetString
    - Py_ConnectEx
    - parse_address
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_ConnectEx(OverlappedObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1327,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1331,1
    - Dst: Py_DisconnectEx
      Src: /src/Python-3.8.3/Modules/overlapped.c:1339,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1342,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1348,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1351
    functionName: Overlapped_DisconnectEx
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_DisconnectEx
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_DisconnectEx(OverlappedObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1373,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1382,1
    - Dst: Py_TransmitFile
      Src: /src/Python-3.8.3/Modules/overlapped.c:1392,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1397,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1403,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1406
    functionName: Overlapped_TransmitFile
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - Overlapped_clear
    - SetFromWindowsErr
    - PyErr_SetString
    - PyArg_ParseTuple
    - Py_TransmitFile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_TransmitFile(OverlappedObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1424,1
    - Dst: ConnectNamedPipe
      Src: /src/Python-3.8.3/Modules/overlapped.c:1432,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1435,1
    - Dst: mark_as_completed
      Src: /src/Python-3.8.3/Modules/overlapped.c:1438,1
    - Dst: Overlapped_clear
      Src: /src/Python-3.8.3/Modules/overlapped.c:1444,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1447
    functionName: Overlapped_ConnectNamedPipe
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - mark_as_completed
    - Overlapped_clear
    - SetFromWindowsErr
    - PyErr_SetString
    - ConnectNamedPipe
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_ConnectNamedPipe(OverlappedObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1461,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1464,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/overlapped.c:1469,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1477,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/overlapped.c:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1454
    functionDepth: 2
    functionLinenumber: 1454
    functionLinenumberEnd: 1479
    functionName: overlapped_ConnectPipe
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_AsWideCharString
    - SetFromWindowsErr
    - CreateFileW
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_ConnectPipe(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1485
    functionName: Overlapped_getaddress
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_getaddress(OverlappedObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/overlapped.c:1490,1
    - Dst: HasOverlappedIoCompleted
      Src: /src/Python-3.8.3/Modules/overlapped.c:1490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1492
    functionName: Overlapped_getpending
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - HasOverlappedIoCompleted
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_getpending(OverlappedObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1500,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1506,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1511,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - OverlappedObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1518
    functionName: Overlapped_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Overlapped_traverse(OverlappedObject *self, visitproc visit, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1541,1
    - Dst: parse_address
      Src: /src/Python-3.8.3/Modules/overlapped.c:1546,1
    - Dst: WSAConnect
      Src: /src/Python-3.8.3/Modules/overlapped.c:1554,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1562,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1531
    functionDepth: 3
    functionLinenumber: 1531
    functionLinenumberEnd: 1564
    functionName: overlapped_WSAConnect
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - SetFromWindowsErr
    - parse_address
    - WSAConnect
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      overlapped_WSAConnect(PyObject *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1587,1
    - Dst: parse_address
      Src: /src/Python-3.8.3/Modules/overlapped.c:1595,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1601,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/overlapped.c:1605,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/overlapped.c:1611,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1612,1
    - Dst: WSASendTo
      Src: /src/Python-3.8.3/Modules/overlapped.c:1623,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1627,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1572
    functionDepth: 3
    functionLinenumber: 1572
    functionLinenumberEnd: 1638
    functionName: Overlapped_WSASendTo
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - WSASendTo
    - WSAGetLastError
    - SetFromWindowsErr
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - parse_address
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WSASendTo(OverlappedObject *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/overlapped.c:1659,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/overlapped.c:1666,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/overlapped.c:1671,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/overlapped.c:1673,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/overlapped.c:1673,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/overlapped.c:1679,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/overlapped.c:1684,1
    - Dst: WSARecvFrom
      Src: /src/Python-3.8.3/Modules/overlapped.c:1688,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/overlapped.c:1694,1
    - Dst: mark_as_completed
      Src: /src/Python-3.8.3/Modules/overlapped.c:1698,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1699,1
    - Dst: SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/overlapped.c:1706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1708
    functionName: Overlapped_WSARecvFrom
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - mark_as_completed
    - WSAGetLastError
    - Py_MAX
    - SetFromWindowsErr
    - WSARecvFrom
    - PyErr_SetString
    - PyBytes_AS_STRING
    - Py_MIN
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Overlapped_WSARecvFrom(OverlappedObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - con
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1848
    functionName: WINAPI_CONSTANT
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_CONSTANT(fmt, con)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/overlapped.c:1855,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/overlapped.c:1858,1
    - Dst: initialize_function_pointers
      Src: /src/Python-3.8.3/Modules/overlapped.c:1860,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/overlapped.c:1863,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/overlapped.c:1866,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/overlapped.c:1867,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/overlapped.c:1870,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1872,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1873,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1874,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1875,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1876,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1877,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1878,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1879,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1880,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1881,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/overlapped.c:1882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1849
    functionDepth: 3
    functionLinenumber: 1849
    functionLinenumberEnd: 1885
    functionName: PyInit__overlapped
    functionSourceFile: /src/Python-3.8.3/Modules/overlapped.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - PyModule_GetDict
    - PyModule_Create
    - WINAPI_CONSTANT
    - PyModule_AddObject
    - initialize_function_pointers
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__overlapped(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 276
    functionName: NAMLEN
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMLEN(dirent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: NAMLEN
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMLEN(dirent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirent
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: NAMLEN
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAMLEN(dirent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u_wait
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 332
    functionName: WIFEXITED
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(u_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u_wait
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: WEXITSTATUS
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(u_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - u_wait
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 340
    functionName: WTERMSIG
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WTERMSIG(u_wait)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAIT_STATUS_INT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAIT_STATUS_INT(s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:421,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/posixmodule.c:421,1
    - Dst: PyList_GetSlice
      Src: /src/Python-3.8.3/Modules/posixmodule.c:426,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:426,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:428,1
    - Dst: PyList_Reverse
      Src: /src/Python-3.8.3/Modules/posixmodule.c:431,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:432,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:434,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:435,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - lst
    - reverse
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_CheckExact(lst))
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 444
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 444
    functionName: run_at_forkers
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyList_GetSlice
    - Py_DECREF
    - PyErr_WriteUnraisable
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyList_Reverse
    - assert
    - PyList_CheckExact
    linkageType: ''
    returnType: void
    signature: void run_at_forkers(PyObject *lst, int reverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_at_forkers
      Src: /src/Python-3.8.3/Modules/posixmodule.c:449,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:449,1
    - Dst: _PyImport_AcquireLock
      Src: /src/Python-3.8.3/Modules/posixmodule.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: PyOS_BeforeFork
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyImport_AcquireLock
    - _PyInterpreterState_Get
    - run_at_forkers
    linkageType: ''
    returnType: void
    signature: void PyOS_BeforeFork(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_ReleaseLock
      Src: /src/Python-3.8.3/Modules/posixmodule.c:457,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:458,1
    - Dst: run_at_forkers
      Src: /src/Python-3.8.3/Modules/posixmodule.c:460,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: PyOS_AfterFork_Parent
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyImport_ReleaseLock
    - Py_FatalError
    - _PyInterpreterState_Get
    - run_at_forkers
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Parent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGILState_Reinit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:467,1
    - Dst: _PyEval_ReInitThreads
      Src: /src/Python-3.8.3/Modules/posixmodule.c:468,1
    - Dst: _PyImport_ReInitLock
      Src: /src/Python-3.8.3/Modules/posixmodule.c:469,1
    - Dst: _PySignal_AfterFork
      Src: /src/Python-3.8.3/Modules/posixmodule.c:470,1
    - Dst: _PyRuntimeState_ReInitThreads
      Src: /src/Python-3.8.3/Modules/posixmodule.c:471,1
    - Dst: _PyInterpreterState_DeleteExceptMain
      Src: /src/Python-3.8.3/Modules/posixmodule.c:472,1
    - Dst: run_at_forkers
      Src: /src/Python-3.8.3/Modules/posixmodule.c:474,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 475
    functionName: PyOS_AfterFork_Child
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyGILState_Reinit
    - _PyRuntimeState_ReInitThreads
    - _PyInterpreterState_Get
    - _PySignal_AfterFork
    - _PyEval_ReInitThreads
    - run_at_forkers
    - _PyImport_ReInitLock
    - _PyInterpreterState_DeleteExceptMain
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork_Child(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:483,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - lst
    - func
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 488
    functionName: register_at_forker
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int register_at_forker(PyObject **lst, PyObject *func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_AfterFork_Child
      Src: /src/Python-3.8.3/Modules/posixmodule.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 3
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: PyOS_AfterFork
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_AfterFork_Child
    linkageType: ''
    returnType: void
    signature: void PyOS_AfterFork(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:514,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: _PyLong_FromUid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromUid(uid_t uid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:522,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gid
    argTypes:
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: _PyLong_FromGid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromGid(gid_t gid)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/posixmodule.c:535,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:537,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:539,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/posixmodule.c:556,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:562,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:587,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:588,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/posixmodule.c:589,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:613,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:618,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:628,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 630
    functionName: _Py_Uid_Converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - Py_DECREF
    - PyNumber_Index
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _Py_Uid_Converter(PyObject *obj, void *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/posixmodule.c:641,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:643,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:645,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/posixmodule.c:662,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:668,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:694,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:695,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/posixmodule.c:696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:720,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:730,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:735,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 737
    functionName: _Py_Gid_Converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - Py_DECREF
    - PyNumber_Index
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _Py_Gid_Converter(PyObject *obj, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:748,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 752
    functionName: _Py_Dev_Converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongLong
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _Py_Dev_Converter(PyObject *obj, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/posixmodule.c:775,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:780,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:780,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/posixmodule.c:781,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:782,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:783,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:783,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:790,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - int*
    assertStmts:
    - condition: (PyLong_Check(index))
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 797
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 797
    functionName: _fd_converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyNumber_Index
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int _fd_converter(PyObject *o, int *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:806,1
    - Dst: _fd_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:807,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:810,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 815
    functionName: dir_fd_converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _fd_converter
    - PyIndex_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int dir_fd_converter(PyObject *o, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function_name
    - ','
    - argument_name
    - ','
    - nullable
    - ','
    - allow_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 924
    functionName: PATH_T_INITIALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATH_T_INITIALIZE(function_name, argument_name, nullable, allow_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - function_name
    - ','
    - argument_name
    - ','
    - nullable
    - ','
    - allow_fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: PATH_T_INITIALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATH_T_INITIALIZE(function_name, argument_name, nullable, allow_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:932,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 934
    functionName: path_cleanup
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void path_cleanup(path_t *path)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:957,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:964,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:979,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/posixmodule.c:980,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:981,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:982,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/posixmodule.c:986,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/posixmodule.c:989,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/posixmodule.c:993,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:994,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:998,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1001,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1005,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1007,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1008,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1014,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1020,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1025,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1028,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1029,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1038,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1045,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1050,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1060,1
    - Dst: PyBytes_FromObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1063,1
    - Dst: _fd_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1069,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1082,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1091,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1095,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1096,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1097,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1098,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1103,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1111,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1116,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1119,1
    - Dst: FORMAT_EXCEPTION
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1133,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1147,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1148,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1150,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 154
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1153
    functionName: path_converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - _fd_converter
    - PyObject_CheckBuffer
    - _Py_IDENTIFIER
    - FORMAT_EXCEPTION
    - wcslen
    - PyUnicode_DecodeFSDefaultAndSize
    - PyErr_WarnFormat
    - Py_INCREF
    - strlen
    - PyErr_Format
    - path_cleanup
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyUnicode_AsUnicodeAndSize
    - PyBytes_GET_SIZE
    - Py_TYPE
    - PyBytes_AS_STRING
    - _PyObject_CallNoArg
    - PyUnicode_FSConverter
    - PyBytes_FromObject
    - PyBytes_Check
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int path_converter(PyObject *o, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - exc
    - ','
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 954
    functionName: FORMAT_EXCEPTION
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_EXCEPTION(exc, fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - function_name
    - argument_name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1163
    functionName: argument_unavailable_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void argument_unavailable_error(const char *function_name, const char
      *argument_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1169,1
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1177
    functionName: dir_fd_unavailable
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - argument_unavailable_error
    - dir_fd_converter
    linkageType: ''
    returnType: int
    signature: int dir_fd_unavailable(PyObject *o, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - fd
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1187
    functionName: fd_specified
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - argument_unavailable_error
    linkageType: ''
    returnType: int
    signature: int fd_specified(const char *function_name, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function_name
    - follow_symlinks
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1197
    functionName: follow_symlinks_specified
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - argument_unavailable_error
    linkageType: ''
    returnType: int
    signature: int follow_symlinks_specified(const char *function_name, int follow_symlinks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - path
    - dir_fd
    argTypes:
    - char*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1213
    functionName: path_and_dir_fd_invalid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int path_and_dir_fd_invalid(const char *function_name, path_t *path,
      int dir_fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - dir_fd
    - fd
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1225
    functionName: dir_fd_and_fd_invalid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int dir_fd_and_fd_invalid(const char *function_name, int dir_fd, int
      fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - fd
    - follow_symlinks
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1238
    functionName: fd_and_follow_symlinks_invalid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int fd_and_follow_symlinks_invalid(const char *function_name, int
      fd,\n                               int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - function_name
    - dir_fd
    - follow_symlinks
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1251
    functionName: dir_fd_and_follow_symlinks_invalid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int dir_fd_and_follow_symlinks_invalid(const char *function_name,
      int dir_fd,\n                                   int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1263,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1265,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1270
    functionName: Py_off_t_converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyLong_AsLongLong
    linkageType: ''
    returnType: int
    signature: int Py_off_t_converter(PyObject *arg, void *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1276,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1280
    functionName: PyLong_FromPy_off_t
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromPy_off_t(Py_off_t offset)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1294,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1296,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1300,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1305,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1307,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1309,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1310,1
    - Dst: sigaddset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1315,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1318,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1326,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1332,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1337,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1339
    functionName: _Py_Sigset_Converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_WarnFormat
    - sigemptyset
    - sigaddset
    - PyErr_SetFromErrno
    - PyLong_AsLongAndOverflow
    - PyIter_Next
    - PyErr_Format
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: int _Py_Sigset_Converter(PyObject *obj, void *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DeviceIoControl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - reparse_point_handle
    - reparse_tag
    argTypes:
    - HANDLE
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1344
    functionDepth: 0
    functionLinenumber: 1344
    functionLinenumberEnd: 1364
    functionName: win32_get_reparse_tag
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DeviceIoControl
    linkageType: ''
    returnType: int
    signature: int win32_get_reparse_tag(HANDLE reparse_point_handle, ULONG *reparse_tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1389,1
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1395,1
    - Dst: _NSGetEnviron
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1401,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1411,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1413,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1418,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1423,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1427,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1427,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1429,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1433,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1436,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1437,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1445,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1448
    functionName: convertenviron
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_New
    - wcschr
    - strlen
    - _wgetenv
    - PyUnicode_FromWideChar
    - PyDict_SetItem
    - _NSGetEnviron
    - strchr
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      convertenviron(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1456
    functionName: posix_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1467,1
    - Dst: PyErr_SetFromWindowsErrWithFilename
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1469,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - function
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1472
    functionName: win32_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_SetFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_error(const char* function, const char* filename)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1479,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - function
    - filename
    - err
    argTypes:
    - char*
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1485
    functionName: win32_error_object_err
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_error_object_err(const char* function, PyObject* filename, DWORD err)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1490,1
    - Dst: win32_error_object_err
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - function
    - filename
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1487
    functionDepth: 2
    functionLinenumber: 1487
    functionLinenumberEnd: 1492
    functionName: win32_error_object
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - win32_error_object_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_error_object(const char* function, PyObject* filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1500
    functionName: posix_path_object_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_path_object_error(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1506,1
    - Dst: posix_path_object_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1511
    functionName: path_object_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - posix_path_object_error
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_object_error(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1517,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1522
    functionName: path_object_error2
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_object_error2(PyObject *path, PyObject *path2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_object_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1528
    functionName: path_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_object_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_error(path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_path_object_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1534
    functionName: posix_path_error
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_path_object_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_path_error(path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_object_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - path2
    argTypes:
    - path_t*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1540
    functionName: path_error2
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_object_error2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      path_error2(path_t *path, path_t *path2)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1555
    functionName: fildes_converter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int fildes_converter(PyObject *o, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1569,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1557
    functionDepth: 2
    functionLinenumber: 1557
    functionLinenumberEnd: 1573
    functionName: posix_fildes_fd
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_fildes_fd(int fd, int (*func)(int))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SetCurrentDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1589,1
    - Dst: GetCurrentDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1591,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1591,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1594,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1595,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1597,1
    - Dst: GetCurrentDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1600,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1602,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1606,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1607,1
    - Dst: SetEnvironmentVariableW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1610,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1613,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - path
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1615
    functionName: win32_wchdir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - Py_ARRAY_LENGTH
    - SetEnvironmentVariableW
    - SetLastError
    - PyMem_RawMalloc
    - GetCurrentDirectoryW
    - SetCurrentDirectoryW
    - PyMem_RawFree
    linkageType: ''
    returnType: BOOL
    signature: BOOL win32_wchdir(LPCWSTR path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pFileData
    - info
    - reparse_tag
    argTypes:
    - WIN32_FIND_DATAW*
    - BY_HANDLE_FILE_INFORMATION*
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1629
    functionDepth: 0
    functionLinenumber: 1629
    functionLinenumberEnd: 1646
    functionName: find_data_to_file_info
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: "void find_data_to_file_info(WIN32_FIND_DATAW *pFileData,\n                       BY_HANDLE_FILE_INFORMATION
      *info,\n                       ULONG *reparse_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindFirstFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1653,1
    - Dst: FindClose
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1656,1
    - Dst: find_data_to_file_info
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pszFile
    - info
    - reparse_tag
    argTypes:
    - LPCWSTR
    - BY_HANDLE_FILE_INFORMATION*
    - ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1659
    functionName: attributes_from_dir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - find_data_to_file_info
    - FindFirstFileW
    - FindClose
    linkageType: ''
    returnType: BOOL
    signature: BOOL attributes_from_dir(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION
      *info, ULONG *reparse_tag)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1678,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1681,1
    - Dst: attributes_from_dir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1686,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1688,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1693,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1695,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1703,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1707,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1717,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1721,1
    - Dst: GetFileType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1733,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1735,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1739,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1740,1
    - Dst: GetFileInformationByHandleEx
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1758,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1761,1
    - Dst: IsReparseTagNameSurrogate
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1774,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1778,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1785,1
    - Dst: win32_xstat_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1786,1
    - Dst: GetFileInformationByHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1791,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1792,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1798,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1807,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1816,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1818,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1819,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1820,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1821,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1830,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1831,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1835,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 129
    argCount: 3
    argNames:
    - path
    - result
    - traverse
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1661
    functionDepth: 2
    functionLinenumber: 1661
    functionLinenumberEnd: 1840
    functionName: win32_xstat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - _Py_attribute_data_to_stat
    - GetLastError
    - GetFileType
    - SetLastError
    - GetFileAttributesW
    - IsReparseTagNameSurrogate
    - CreateFileW
    - attributes_from_dir
    - wcsrchr
    - GetFileInformationByHandle
    - win32_xstat_impl
    - GetFileInformationByHandleEx
    - _wcsicmp
    - memset
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: "int win32_xstat_impl(const wchar_t *path, struct _Py_stat_struct *result,\n
      \                BOOL traverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_xstat_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - path
    - result
    - traverse
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1842
    functionDepth: 3
    functionLinenumber: 1842
    functionLinenumberEnd: 1850
    functionName: win32_xstat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_xstat_impl
    linkageType: ''
    returnType: int
    signature: int win32_xstat(const wchar_t *path, struct _Py_stat_struct *result,
      BOOL traverse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_xstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1861
    functionDepth: 4
    functionLinenumber: 1861
    functionLinenumberEnd: 1865
    functionName: win32_lstat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_xstat
    linkageType: ''
    returnType: int
    signature: int win32_lstat(const wchar_t* path, struct _Py_stat_struct *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_xstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - result
    argTypes:
    - wchar_t*
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1871
    functionName: win32_stat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_xstat
    linkageType: ''
    returnType: int
    signature: int win32_stat(const wchar_t* path, struct _Py_stat_struct *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: structseq_new
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2074,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2060
    functionDepth: 1
    functionLinenumber: 2060
    functionLinenumberEnd: 2080
    functionName: statresult_new
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - structseq_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      statresult_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2088,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2089,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2097,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2101,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2105,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2110,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2111,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2112,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2117,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2118,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2119,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2120,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - v
    - index
    - sec
    - nsec
    argTypes:
    - PyObject*
    - int
    - time_t
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2122
    functionName: fill_time
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - PyStructSequence_SET_ITEM
    - _PyLong_FromTime_t
    - PyNumber_Add
    - PyNumber_Multiply
    - PyFloat_FromDouble
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void fill_time(PyObject *v, int index, time_t sec, unsigned long nsec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2130,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2134,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2134,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2135,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2136,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2136,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2138,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2138,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2140,1
    - Dst: _PyLong_FromDev
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2140,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2142,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2142,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2144,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2144,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2145,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2145,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2147,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2147,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2148,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2148,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2150,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2151,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2151,1
    - Dst: fill_time
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2168,1
    - Dst: fill_time
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2169,1
    - Dst: fill_time
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2170,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2173,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2174,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2177,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2178,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2181,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2182,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2185,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2186,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2198,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2199,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2204,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2205,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2208,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2209,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2212,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2213,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2216,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2217,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 1
    argNames:
    - st
    argTypes:
    - STRUCT_STAT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2226
    functionName: _pystat_fromstructstat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - Py_BUILD_ASSERT
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - _PyLong_FromUid
    - _PyLong_FromGid
    - PyStructSequence_New
    - PyLong_FromUnsignedLong
    - fill_time
    - _PyLong_FromDev
    - PyFloat_FromDouble
    - PyLong_FromLongLong
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystat_fromstructstat(STRUCT_STAT *st)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2239,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2243,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2244,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2245,1
    - Dst: FSTAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2250,1
    - Dst: win32_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2253,1
    - Dst: win32_lstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2255,1
    - Dst: LSTAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2260,1
    - Dst: fstatat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2265,1
    - Dst: STAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2269,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2274,1
    - Dst: _pystat_fromstructstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 15
    argCount: 4
    argNames:
    - function_name
    - path
    - dir_fd
    - follow_symlinks
    argTypes:
    - char*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2231
    functionDepth: 5
    functionLinenumber: 2231
    functionLinenumberEnd: 2278
    functionName: posix_do_stat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - STAT
    - fd_and_follow_symlinks_invalid
    - path_error
    - win32_lstat
    - LSTAT
    - dir_fd_and_fd_invalid
    - FSTAT
    - fstatat
    - win32_stat
    - follow_symlinks_specified
    - _pystat_fromstructstat
    - path_and_dir_fd_invalid
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nposix_do_stat(const char *function_name, path_t *path,\n
      \             int dir_fd, int follow_symlinks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_do_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - path
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2611
    functionDepth: 6
    functionLinenumber: 2611
    functionLinenumberEnd: 2616
    functionName: os_stat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_do_stat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_stat_impl(PyObject *module, path_t *path, int dir_fd, int follow_symlinks)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_do_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2634
    functionDepth: 6
    functionLinenumber: 2634
    functionLinenumberEnd: 2640
    functionName: os_lstat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_do_stat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lstat_impl(PyObject *module, path_t *path, int dir_fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2696,1
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2700,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2707,1
    - Dst: faccessat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2734,1
    - Dst: access
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2738,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 6
    argNames:
    - module
    - path
    - mode
    - dir_fd
    - effective_ids
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2682
    functionDepth: 3
    functionLinenumber: 2682
    functionLinenumberEnd: 2744
    functionName: os_access_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - argument_unavailable_error
    - faccessat
    - GetFileAttributesW
    - access
    - follow_symlinks_specified
    linkageType: ''
    returnType: int
    signature: "int os_access_impl(PyObject *module, path_t *path, int mode, int dir_fd,\n
      \              int effective_ids, int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ttyname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2778,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2780,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2772
    functionDepth: 2
    functionLinenumber: 2772
    functionLinenumberEnd: 2783
    functionName: os_ttyname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - ttyname
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ttyname_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ctermid_r
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2801,1
    - Dst: ctermid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2803,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2806,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2793
    functionDepth: 2
    functionLinenumber: 2793
    functionLinenumberEnd: 2808
    functionName: os_ctermid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - ctermid_r
    - ctermid
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ctermid_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2830,1
    - Dst: win32_wchdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2837,1
    - Dst: fchdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2841,1
    - Dst: chdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2844,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2824
    functionDepth: 4
    functionLinenumber: 2824
    functionLinenumberEnd: 2853
    functionName: os_chdir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - chdir
    - fchdir
    - win32_wchdir
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chdir_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2850
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2873,1
    - Dst: posix_fildes_fd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2869
    functionDepth: 3
    functionLinenumber: 2869
    functionLinenumberEnd: 2877
    functionName: os_fchdir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fildes_fd
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchdir_impl(PyObject *module, int fd)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2929,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2933,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2940,1
    - Dst: SetFileAttributesW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2948,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2953,1
    - Dst: fchmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2959,1
    - Dst: lchmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2964,1
    - Dst: fchmodat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2979,1
    - Dst: chmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2992,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2999,1
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3002,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3007,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 5
    argNames:
    - module
    - path
    - mode
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 2913
    functionDepth: 4
    functionLinenumber: 2913
    functionLinenumberEnd: 3012
    functionName: os_chmod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - SetFileAttributesW
    - PySys_Audit
    - GetFileAttributesW
    - chmod
    - fchmodat
    - lchmod
    - dir_fd_and_follow_symlinks_invalid
    - follow_symlinks_specified
    - fchmod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_chmod_impl(PyObject *module, path_t *path, int mode,
      int dir_fd,\n              int follow_symlinks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:2999,1
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3002,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2993
    functionDepth: 4
    functionLinenumber: 2993
    functionLinenumberEnd: 3008
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - dir_fd_and_follow_symlinks_invalid
    - path_error
    - follow_symlinks_specified
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3034,1
    - Dst: fchmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3040,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3042,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - module
    - fd
    - mode
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3027
    functionDepth: 2
    functionLinenumber: 3027
    functionLinenumberEnd: 3047
    functionName: os_fchmod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - PySys_Audit
    - fchmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchmod_impl(PyObject *module, int fd, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3069,1
    - Dst: lchmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3073,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - path
    - mode
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3064
    functionDepth: 4
    functionLinenumber: 3064
    functionLinenumberEnd: 3080
    functionName: os_lchmod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - PySys_Audit
    - lchmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchmod_impl(PyObject *module, path_t *path, int mode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3110,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3114,1
    - Dst: lchflags
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3121,1
    - Dst: chflags
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3124,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - path
    - flags
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3102
    functionDepth: 4
    functionLinenumber: 3102
    functionLinenumberEnd: 3131
    functionName: os_chflags_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - chflags
    - path_error
    - PySys_Audit
    - lchflags
    - follow_symlinks_specified
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_chflags_impl(PyObject *module, path_t *path, unsigned
      long flags,\n                int follow_symlinks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3153,1
    - Dst: lchflags
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3157,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - path
    - flags
    argTypes:
    - PyObject*
    - path_t*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3163
      start: 3148
    functionDepth: 4
    functionLinenumber: 3148
    functionLinenumberEnd: 3163
    functionName: os_lchflags_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lchflags
    - PySys_Audit
    - path_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchflags_impl(PyObject *module, path_t *path, unsigned long flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chroot
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3182,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3176
    functionDepth: 4
    functionLinenumber: 3176
    functionLinenumberEnd: 3187
    functionName: os_chroot_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - chroot
    - path_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chroot_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_fildes_fd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3205
      start: 3200
    functionDepth: 3
    functionLinenumber: 3200
    functionLinenumberEnd: 3205
    functionName: os_fsync_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fildes_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fsync_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3216
    functionDepth: 0
    functionLinenumber: 3216
    functionLinenumberEnd: 3224
    functionName: os_sync_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sync_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_fildes_fd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3241
    functionDepth: 3
    functionLinenumber: 3241
    functionLinenumberEnd: 3246
    functionName: os_fdatasync_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fildes_fd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fdatasync_impl(PyObject *module, int fd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3298,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3301,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3302,1
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3313,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3318,1
    - Dst: fchown
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3326,1
    - Dst: lchown
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3331,1
    - Dst: fchownat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3336,1
    - Dst: chown
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3340,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3344,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 6
    argNames:
    - module
    - path
    - uid
    - gid
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - uid_t
    - gid_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3290
    functionDepth: 4
    functionLinenumber: 3290
    functionLinenumberEnd: 3347
    functionName: os_chown_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fd_and_follow_symlinks_invalid
    - path_error
    - PySys_Audit
    - chown
    - dir_fd_and_fd_invalid
    - fchownat
    - lchown
    - follow_symlinks_specified
    - fchown
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_chown_impl(PyObject *module, path_t *path, uid_t uid,
      gid_t gid,\n              int dir_fd, int follow_symlinks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3372,1
    - Dst: fchown
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3378,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3380,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - module
    - fd
    - uid
    - gid
    argTypes:
    - PyObject*
    - int
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3365
    functionDepth: 2
    functionLinenumber: 3365
    functionLinenumberEnd: 3385
    functionName: os_fchown_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - PySys_Audit
    - fchown
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchown_impl(PyObject *module, int fd, uid_t uid, gid_t gid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3408,1
    - Dst: lchown
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3412,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - module
    - path
    - uid
    - gid
    argTypes:
    - PyObject*
    - path_t*
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3418
      start: 3403
    functionDepth: 4
    functionLinenumber: 3403
    functionLinenumberEnd: 3418
    functionName: os_lchown_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - PySys_Audit
    - lchown
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchown_impl(PyObject *module, path_t *path, uid_t uid, gid_t gid)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3431,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3431,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3435,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3437,1
    - Dst: GetCurrentDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3443,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3449,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3454,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3455,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3458,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3460,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3467,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3467,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3483,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3489,1
    - Dst: getcwd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3495,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3500,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3503,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3504,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3509,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3509,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3512,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3514,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - use_bytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3422
    functionDepth: 2
    functionLinenumber: 3422
    functionLinenumberEnd: 3518
    functionName: posix_getcwd
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_EncodeFSDefault
    - posix_error
    - Py_ARRAY_LENGTH
    - PyUnicode_DecodeFSDefault
    - PyMem_RawRealloc
    - getcwd
    - PyErr_NoMemory
    - PyMem_RawMalloc
    - GetCurrentDirectoryW
    - strlen
    - PyUnicode_FromWideChar
    - PyMem_RawFree
    - Py_SETREF
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_getcwd(int use_bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3483,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3489,1
    - Dst: getcwd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3478
    functionDepth: 1
    functionLinenumber: 3478
    functionLinenumberEnd: 3496
    functionName: do
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawRealloc
    - getcwd
    - PyMem_RawFree
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_getcwd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3527
    functionDepth: 3
    functionLinenumber: 3527
    functionLinenumberEnd: 3532
    functionName: os_getcwd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_getcwd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getcwd_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posix_getcwd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3546
      start: 3541
    functionDepth: 3
    functionLinenumber: 3541
    functionLinenumberEnd: 3546
    functionName: os_getcwdb_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_getcwd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getcwdb_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3591,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3598,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3604,1
    - Dst: CreateHardLinkW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3612,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3616,1
    - Dst: linkat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3623,1
    - Dst: link
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3628,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - module
    - src
    - dst
    - src_dir_fd
    - dst_dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3636
      start: 3578
    functionDepth: 3
    functionLinenumber: 3578
    functionLinenumberEnd: 3636
    functionName: os_link_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - link
    - path_error2
    - CreateHardLinkW
    - PyErr_SetString
    - argument_unavailable_error
    - linkat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_link_impl(PyObject *module, path_t *src, path_t *dst,
      int src_dir_fd,\n             int dst_dir_fd, int follow_symlinks)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3649,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3660,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3663,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3665,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3668,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3673,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3675,1
    - Dst: FindFirstFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3679,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3685,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3686,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3691,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3692,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3693,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3694,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3696,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3699,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3704,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3709,1
    - Dst: FindNextFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3712,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3716,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3717,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3718,1
    - Dst: FindClose
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3725,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3727,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3728,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3732,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3641
    functionDepth: 4
    functionLinenumber: 3641
    functionLinenumberEnd: 3735
    functionName: _listdir_windows_no_opendir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyMem_New
    - path_error
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - FindClose
    - PyErr_NoMemory
    - PyList_Append
    - FindFirstFileW
    - PyUnicode_FromWideChar
    - FindNextFileW
    - wcscmp
    - PyMem_Free
    - wcscpy
    - PyList_New
    - Py_SETREF
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _listdir_windows_no_opendir(path_t *path, PyObject *list)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3754,1
    - Dst: fdopendir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3761,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3771,1
    - Dst: opendir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3779,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3784,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3794,1
    - Dst: readdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3806,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3807,1
    - Dst: NAMLEN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3812,1
    - Dst: NAMLEN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3813,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3816,1
    - Dst: NAMLEN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3816,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3818,1
    - Dst: NAMLEN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3818,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3820,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3824,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3828,1
    - Dst: rewinddir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3836,1
    - Dst: closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3838,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - path
    - list
    argTypes:
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3739
    functionDepth: 4
    functionLinenumber: 3739
    functionLinenumberEnd: 3843
    functionName: _posix_listdir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - opendir
    - path_error
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - Py_CLEAR
    - NAMLEN
    - PyObject_CheckBuffer
    - readdir
    - fdopendir
    - PyList_Append
    - rewinddir
    - closedir
    - PyList_New
    - _Py_dup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posix_listdir(path_t *path, PyObject *list)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3872,1
    - Dst: _listdir_windows_no_opendir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3877,1
    - Dst: _posix_listdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3868
    functionDepth: 5
    functionLinenumber: 3868
    functionLinenumberEnd: 3881
    functionName: os_listdir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - _listdir_windows_no_opendir
    - _posix_listdir
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdir_impl(PyObject *module, path_t *path)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3902,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3903,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3905,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3906,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3908,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3909,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3912,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3912,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3914,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3914,1
    - Dst: win32_error_object
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3916,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3893
    functionDepth: 3
    functionLinenumber: 3893
    functionLinenumberEnd: 3920
    functionName: os__getfullpathname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyUnicode_EncodeFSDefault
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - PyUnicode_FromWideChar
    - GetFullPathNameW
    - PyMem_Free
    - win32_error_object
    - Py_SETREF
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfullpathname_impl(PyObject *module, path_t *path)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3938,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3943,1
    - Dst: win32_error_object
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3955,1
    - Dst: GetFinalPathNameByHandleW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3962,1
    - Dst: win32_error_object
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3967,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3977,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3980,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3988,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3990,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3990,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3995,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:3997,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3999
      start: 3932
    functionDepth: 3
    functionLinenumber: 3932
    functionLinenumberEnd: 3999
    functionName: os__getfinalpathname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - CreateFileW
    - PyMem_Realloc
    - GetFinalPathNameByHandleW
    - PyUnicode_FromWideChar
    - PyMem_Free
    - Py_SETREF
    - win32_error_object
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfinalpathname_impl(PyObject *module, path_t *path)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4020,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4023,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4027,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4029,1
    - Dst: GetVolumePathNameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4032,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4033,1
    - Dst: win32_error_object
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4037,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4040,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4040,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4042,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4042,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4047
      start: 4010
    functionDepth: 3
    functionLinenumber: 4010
    functionLinenumberEnd: 4047
    functionName: os__getvolumepathname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyMem_New
    - PyUnicode_EncodeFSDefault
    - PyErr_NoMemory
    - Py_MAX
    - PyUnicode_FromWideChar
    - GetVolumePathNameW
    - PyMem_Free
    - PyErr_SetString
    - wcslen
    - Py_SETREF
    - win32_error_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getvolumepathname_impl(PyObject *module, path_t *path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4081,1
    - Dst: CreateDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4088,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4092,1
    - Dst: mkdirat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4097,1
    - Dst: mkdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4101,1
    - Dst: mkdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4103,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - module
    - path
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4110
      start: 4075
    functionDepth: 4
    functionLinenumber: 4075
    functionLinenumberEnd: 4110
    functionName: os_mkdir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - mkdirat
    - CreateDirectoryW
    - mkdir
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkdir_impl(PyObject *module, path_t *path, int mode, int dir_fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nice
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4146,1
    - Dst: getpriority
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4149,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4153,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - increment
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4129
    functionDepth: 2
    functionLinenumber: 4129
    functionLinenumberEnd: 4155
    functionName: os_nice_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - nice
    - getpriority
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_nice_impl(PyObject *module, int increment)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpriority
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4176,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4178,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - which
    - who
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4169
    functionDepth: 2
    functionLinenumber: 4169
    functionLinenumberEnd: 4180
    functionName: os_getpriority_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - getpriority
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpriority_impl(PyObject *module, int which, int who)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setpriority
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4201,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - which
    - who
    - priority
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4205
      start: 4195
    functionDepth: 2
    functionLinenumber: 4195
    functionLinenumberEnd: 4205
    functionName: os_setpriority_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setpriority
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpriority_impl(PyObject *module, int which, int who, int priority)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4226,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4231,1
    - Dst: MoveFileExW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4239,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4243,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4247,1
    - Dst: renameat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4255,1
    - Dst: rename
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4258,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 5
    argNames:
    - src
    - dst
    - src_dir_fd
    - dst_dir_fd
    - is_replace
    argTypes:
    - path_t*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4265
      start: 4209
    functionDepth: 3
    functionLinenumber: 4209
    functionLinenumberEnd: 4265
    functionName: internal_rename
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - rename
    - MoveFileExW
    - path_error2
    - PyErr_Format
    - argument_unavailable_error
    - renameat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      internal_rename(path_t *src, path_t *dst, int src_dir_fd, int dst_dir_fd, int
      is_replace)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_rename
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - src
    - dst
    - src_dir_fd
    - dst_dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4292
      start: 4286
    functionDepth: 4
    functionLinenumber: 4286
    functionLinenumberEnd: 4292
    functionName: os_rename_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - internal_rename
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_rename_impl(PyObject *module, path_t *src, path_t *dst,
      int src_dir_fd,\n               int dst_dir_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_rename
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - src
    - dst
    - src_dir_fd
    - dst_dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4307
    functionDepth: 4
    functionLinenumber: 4307
    functionLinenumberEnd: 4313
    functionName: os_replace_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - internal_rename
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_replace_impl(PyObject *module, path_t *src, path_t
      *dst, int src_dir_fd,\n                int dst_dir_fd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4337,1
    - Dst: RemoveDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4345,1
    - Dst: unlinkat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4349,1
    - Dst: rmdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4352,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4331
    functionDepth: 4
    functionLinenumber: 4331
    functionLinenumberEnd: 4360
    functionName: os_rmdir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - RemoveDirectoryW
    - path_error
    - unlinkat
    - rmdir
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_rmdir_impl(PyObject *module, path_t *path, int dir_fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4379,1
    - Dst: _wsystem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 4373
    functionDepth: 1
    functionLinenumber: 4373
    functionLinenumberEnd: 4389
    functionName: os_system_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _wsystem
    - PySys_Audit
    linkageType: ''
    returnType: long
    signature: long os_system_impl(PyObject *module, const Py_UNICODE *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4404,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4406,1
    - Dst: system
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - command
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4414
      start: 4399
    functionDepth: 1
    functionLinenumber: 4399
    functionLinenumberEnd: 4414
    functionName: os_system_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - system
    - PySys_Audit
    - PyBytes_AsString
    linkageType: ''
    returnType: long
    signature: long os_system_impl(PyObject *module, PyObject *command)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4432,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4434,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - mask
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4436
      start: 4428
    functionDepth: 2
    functionLinenumber: 4428
    functionLinenumberEnd: 4436
    functionName: os_umask_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - umask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_umask_impl(PyObject *module, int mask)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesExW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4451,1
    - Dst: FindFirstFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4458,1
    - Dst: FindClose
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4465,1
    - Dst: RemoveDirectoryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4471,1
    - Dst: DeleteFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - lpFileName
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4443
    functionDepth: 0
    functionLinenumber: 4443
    functionLinenumberEnd: 4474
    functionName: Py_DeleteFileW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - RemoveDirectoryW
    - FindFirstFileW
    - GetFileAttributesExW
    - DeleteFileW
    - FindClose
    linkageType: ''
    returnType: BOOL
    signature: BOOL Py_DeleteFileW(LPCWSTR lpFileName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4500,1
    - Dst: Py_DeleteFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4509,1
    - Dst: unlinkat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4513,1
    - Dst: unlink
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4516,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4525
      start: 4494
    functionDepth: 4
    functionLinenumber: 4494
    functionLinenumberEnd: 4525
    functionName: os_unlink_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - unlink
    - unlinkat
    - Py_DeleteFileW
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unlink_impl(PyObject *module, path_t *path, int dir_fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_unlink_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4544
      start: 4539
    functionDepth: 5
    functionLinenumber: 4539
    functionLinenumberEnd: 4544
    functionName: os_remove_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - os_unlink_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_remove_impl(PyObject *module, path_t *path, int dir_fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4594,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4597,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4599,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4613,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4614,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4615,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4616,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4622
      start: 4585
    functionDepth: 2
    functionLinenumber: 4585
    functionLinenumberEnd: 4622
    functionName: os_uname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyStructSequence_New
    - SET
    - uname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_uname_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4613
      start: 4603
    functionDepth: 0
    functionLinenumber: 4603
    functionLinenumberEnd: 4613
    functionName: SET
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4696,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4704,1
    - Dst: futimesat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ut
    - dir_fd
    - path
    - follow_symlinks
    argTypes:
    - utime_t*
    - int
    - char*
    - int
    assertStmts:
    - condition: (follow_symlinks)
      pos:
        line_end: 4703
        line_start: 4703
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 4707
      start: 4690
    functionDepth: 1
    functionLinenumber: 4690
    functionLinenumberEnd: 4707
    functionName: utime_dir_fd
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - utimensat
    - futimesat
    linkageType: ''
    returnType: int
    signature: int utime_dir_fd(utime_t *ut, int dir_fd, const char *path, int follow_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: futimens
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4721,1
    - Dst: futimes
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ut
    - fd
    argTypes:
    - utime_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4726
      start: 4716
    functionDepth: 0
    functionLinenumber: 4716
    functionLinenumberEnd: 4726
    functionName: utime_fd
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - futimes
    - futimens
    linkageType: ''
    returnType: int
    signature: int utime_fd(utime_t *ut, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4744,1
    - Dst: lutimes
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4749
      start: 4739
    functionDepth: 0
    functionLinenumber: 4739
    functionLinenumberEnd: 4749
    functionName: utime_nofollow_symlinks
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lutimes
    - utimensat
    linkageType: ''
    returnType: int
    signature: int utime_nofollow_symlinks(utime_t *ut, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: utimensat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4760,1
    - Dst: utimes
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4763,1
    - Dst: utime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4766,1
    - Dst: utime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ut
    - path
    argTypes:
    - utime_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4755
    functionDepth: 0
    functionLinenumber: 4755
    functionLinenumberEnd: 4771
    functionName: utime_default
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - utimensat
    - utime
    - utimes
    linkageType: ''
    returnType: int
    signature: int utime_default(utime_t *ut, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4780,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4783,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4783,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4784,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4786,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4786,1
    - Dst: _PyLong_AsTime_t
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4789,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4789,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4790,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4792,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4792,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4793,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4798,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - py_long
    - s
    - ns
    argTypes:
    - PyObject*
    - time_t*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4775
    functionDepth: 1
    functionLinenumber: 4775
    functionLinenumberEnd: 4800
    functionName: split_py_long_to_s_and_ns
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyLong_AsTime_t
    - PyNumber_Divmod
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int split_py_long_to_s_and_ns(PyObject *py_long, time_t *s, long *ns)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4855,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4858,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4867,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4867,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4868,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4874,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4874,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4876,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4876,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4886,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4886,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4887,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4892,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4892,1
    - Dst: split_py_long_to_s_and_ns
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4894,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4894,1
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4905,1
    - Dst: path_and_dir_fd_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4909,1
    - Dst: dir_fd_and_fd_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4910,1
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4911,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4916,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4923,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4930,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4935,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4940,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4944,1
    - Dst: _Py_time_t_to_FILE_TIME
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4945,1
    - Dst: SetFileTime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4947,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4952,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4953,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4956,1
    - Dst: utime_nofollow_symlinks
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4962,1
    - Dst: utime_dir_fd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4968,1
    - Dst: utime_fd
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4974,1
    - Dst: utime_default
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4978,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:4984,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 6
    argNames:
    - module
    - path
    - times
    - ns
    - dir_fd
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4991
      start: 4841
    functionDepth: 4
    functionLinenumber: 4841
    functionLinenumberEnd: 4991
    functionName: os_utime_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fd_and_follow_symlinks_invalid
    - path_error
    - GetSystemTimeAsFileTime
    - utime_fd
    - follow_symlinks_specified
    - utime_default
    - CloseHandle
    - PyTuple_GET_ITEM
    - utime_nofollow_symlinks
    - PyErr_SetFromWindowsErr
    - memset
    - path_and_dir_fd_invalid
    - SetFileTime
    - utime_dir_fd
    - dir_fd_and_fd_invalid
    - CreateFileW
    - _Py_time_t_to_FILE_TIME
    - PyTuple_CheckExact
    - _PyTime_ObjectToTimespec
    - split_py_long_to_s_and_ns
    - PyTuple_Size
    - PyErr_SetString
    - posix_error
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_utime_impl(PyObject *module, path_t *path, PyObject
      *times, PyObject *ns,\n              int dir_fd, int follow_symlinks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _exit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 5004
    functionDepth: 0
    functionLinenumber: 5004
    functionLinenumberEnd: 5010
    functionName: os__exit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _exit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__exit_impl(PyObject *module, int status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5024,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - array
    - count
    argTypes:
    - EXECV_CHAR**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5026
      start: 5019
    functionDepth: 1
    functionLinenumber: 5019
    functionLinenumberEnd: 5026
    functionName: free_string_array
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyMem_DEL
    linkageType: ''
    returnType: void
    signature: void free_string_array(EXECV_CHAR **array, Py_ssize_t count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5035,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5037,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5041,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5043,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5044,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5046,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5046,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5049,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - o
    - out
    argTypes:
    - PyObject*
    - EXECV_CHAR**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5028
    functionDepth: 1
    functionLinenumber: 5028
    functionLinenumberEnd: 5053
    functionName: fsconvert_strdup
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyUnicode_FSDecoder
    - PyErr_NoMemory
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyMem_Malloc
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: int
    signature: int fsconvert_strdup(PyObject *o, EXECV_CHAR **out)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5065,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5068,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5070,1
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5074,1
    - Dst: PyMapping_Values
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5077,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5080,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5080,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5081,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5087,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5088,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5093,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5095,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5101,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5102,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5106,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5109,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5111,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5113,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5114,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5117,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5118,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5118,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5122,1
    - Dst: PyBytes_FromFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5125,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5125,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5129,1
    - Dst: fsconvert_strdup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5133,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5134,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5138,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5141,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5148,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5149,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5150,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5152
      start: 5057
    functionDepth: 2
    functionLinenumber: 5057
    functionLinenumberEnd: 5152
    functionName: parse_envlist
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FSDecoder
    - PyMem_NEW
    - PyUnicode_FromFormat
    - PyBytes_FromFormat
    - PyList_GetItem
    - free_string_array
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyMapping_Keys
    - PyMapping_Values
    - PyMapping_Size
    - fsconvert_strdup
    - Py_DECREF
    - PyUnicode_FindChar
    - PyList_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - strchr
    - PyUnicode_FSConverter
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: EXECV_CHAR
    signature: 'EXECV_CHAR **

      parse_envlist(PyObject* env, Py_ssize_t *envc_ptr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5158,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5160,1
    - Dst: PySequence_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5164,1
    - Dst: fsconvert_strdup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5168,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5171,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5179
      start: 5154
    functionDepth: 2
    functionLinenumber: 5154
    functionLinenumberEnd: 5179
    functionName: parse_arglist
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsconvert_strdup
    - Py_DECREF
    - PySequence_ITEM
    - PyErr_NoMemory
    - PyMem_NEW
    - free_string_array
    linkageType: ''
    returnType: EXECV_CHAR
    signature: 'EXECV_CHAR **

      parse_arglist(PyObject* argv, Py_ssize_t *argc)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5207,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5207,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5208,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5212,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5214,1
    - Dst: parse_arglist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5218,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5223,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5225,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5229,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5230,1
    - Dst: _wexecv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5236,1
    - Dst: execv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5238,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - module
    - path
    - argv
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5246
      start: 5197
    functionDepth: 3
    functionLinenumber: 5197
    functionLinenumberEnd: 5246
    functionName: os_execv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _wexecv
    - PySequence_Size
    - execv
    - PyList_Check
    - PyTuple_Check
    - free_string_array
    - parse_arglist
    - PyErr_SetString
    - posix_error
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execv_impl(PyObject *module, path_t *path, PyObject *argv)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5274,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5275,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5281,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5285,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5286,1
    - Dst: parse_arglist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5296,1
    - Dst: parse_envlist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5301,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5305,1
    - Dst: fexecve
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5312,1
    - Dst: _wexecve
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5316,1
    - Dst: execve
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5318,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5326,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5329,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - module
    - path
    - argv
    - env
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5331
      start: 5262
    functionDepth: 3
    functionLinenumber: 5262
    functionLinenumberEnd: 5331
    functionName: os_execve_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fexecve
    - PyMapping_Check
    - PySequence_Size
    - execve
    - PyList_Check
    - parse_envlist
    - PyTuple_Check
    - _wexecve
    - free_string_array
    - parse_arglist
    - PyErr_SetString
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execve_impl(PyObject *module, path_t *path, PyObject *argv, PyObject *env)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: posix_spawnattr_init
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5356,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5358,1
    - Dst: PyLong_AsPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5363,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5364,1
    - Dst: posix_spawnattr_setpgroup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5367,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5369,1
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5385,1
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5392,1
    - Dst: posix_spawnattr_setsigmask
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5395,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5397,1
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5405,1
    - Dst: posix_spawnattr_setsigdefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5408,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5410,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5421,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5427,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5429,1
    - Dst: posix_spawnattr_setschedpolicy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5432,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5434,1
    - Dst: posix_spawnattr_setschedparam
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5439,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5446,1
    - Dst: posix_spawnattr_setflags
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5452,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5454,1
    - Dst: posix_spawnattr_destroy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5461,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 94
    argCount: 8
    argNames:
    - func_name
    - setpgroup
    - resetids
    - setsid
    - setsigmask
    - setsigdef
    - scheduler
    - attrp
    argTypes:
    - char*
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - posix_spawnattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5463
      start: 5348
    functionDepth: 2
    functionLinenumber: 5348
    functionLinenumberEnd: 5463
    functionName: parse_posix_spawn_flags
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_spawnattr_setflags
    - posix_spawnattr_setsigdefault
    - PyErr_Occurred
    - posix_spawnattr_setpgroup
    - posix_spawnattr_destroy
    - posix_spawnattr_setsigmask
    - posix_spawnattr_setschedpolicy
    - _Py_Sigset_Converter
    - PyErr_SetString
    - posix_error
    - posix_spawnattr_init
    - argument_unavailable_error
    - PyLong_AsPid
    - PyArg_ParseTuple
    - _PyLong_AsInt
    - posix_spawnattr_setschedparam
    linkageType: ''
    returnType: int
    signature: "int parse_posix_spawn_flags(const char *func_name, PyObject *setpgroup,\n
      \                       int resetids, int setsid, PyObject *setsigmask,\n                        PyObject
      *setsigdef, PyObject *scheduler,\n                        posix_spawnattr_t
      *attrp)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5474,1
    - Dst: posix_spawn_file_actions_init
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5480,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5483,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5487,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5488,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5489,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5490,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5490,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5491,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5495,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5495,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5496,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5506,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5514,1
    - Dst: posix_spawn_file_actions_addopen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5517,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5518,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5519,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5521,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5528,1
    - Dst: posix_spawn_file_actions_addclose
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5534,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5536,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5543,1
    - Dst: posix_spawn_file_actions_adddup2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5549,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5552,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5558,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5563,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5566,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5571,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5572,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 3
    argNames:
    - file_actions
    - file_actionsp
    - temp_buffer
    argTypes:
    - PyObject*
    - posix_spawn_file_actions_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5574
      start: 5465
    functionDepth: 2
    functionLinenumber: 5465
    functionLinenumberEnd: 5574
    functionName: parse_file_actions
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - posix_spawn_file_actions_adddup2
    - PyTuple_GET_SIZE
    - PySequence_Fast
    - PyErr_Occurred
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - posix_spawn_file_actions_init
    - PyTuple_Check
    - posix_spawn_file_actions_destroy
    - PyArg_ParseTuple
    - PySequence_Fast_GET_SIZE
    - posix_spawn_file_actions_addopen
    - Py_DECREF
    - PyBytes_AS_STRING
    - PyList_Append
    - PyErr_SetString
    - posix_error
    - PyTuple_GET_ITEM
    - posix_spawn_file_actions_addclose
    linkageType: ''
    returnType: int
    signature: "int parse_file_actions(PyObject *file_actions,\n                   posix_spawn_file_actions_t
      *file_actionsp,\n                   PyObject *temp_buffer)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5600,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5600,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5601,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5605,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5607,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5612,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5613,1
    - Dst: parse_arglist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5618,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5623,1
    - Dst: parse_envlist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5628,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5642,1
    - Dst: parse_file_actions
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5646,1
    - Dst: parse_posix_spawn_flags
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5652,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5658,1
    - Dst: posix_spawnp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5665,1
    - Dst: posix_spawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5671,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5678,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5682,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5684,1
    - Dst: posix_spawn_file_actions_destroy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5688,1
    - Dst: posix_spawnattr_destroy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5691,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5694,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5697,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5699,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 12
    argNames:
    - use_posix_spawnp
    - module
    - path
    - argv
    - env
    - file_actions
    - setpgroup
    - resetids
    - setsid
    - setsigmask
    - setsigdef
    - scheduler
    argTypes:
    - int
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5577
    functionDepth: 3
    functionLinenumber: 5577
    functionLinenumberEnd: 5701
    functionName: py_posix_spawn
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_spawnattr_destroy
    - parse_arglist
    - PyList_New
    - PyTuple_Check
    - free_string_array
    - PyErr_Format
    - PyLong_FromPid
    - posix_spawn_file_actions_destroy
    - Py_XDECREF
    - PyMapping_Check
    - PySequence_Size
    - parse_posix_spawn_flags
    - PyList_Check
    - posix_spawnp
    - __msan_unpoison
    - parse_envlist
    - parse_file_actions
    - posix_spawn
    - PySys_Audit
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_posix_spawn(int use_posix_spawnp, PyObject *module,
      path_t *path, PyObject *argv,\n               PyObject *env, PyObject *file_actions,\n
      \              PyObject *setpgroup, int resetids, int setsid, PyObject *setsigmask,\n
      \              PyObject *setsigdef, PyObject *scheduler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5680
      start: 5674
    functionDepth: 1
    functionLinenumber: 5674
    functionLinenumberEnd: 5680
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: _Py_END_SUPPRESS_IPH if (err_code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_posix_spawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - module
    - path
    - argv
    - env
    - file_actions
    - setpgroup
    - resetids
    - setsid
    - setsigmask
    - setsigdef
    - scheduler
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5733
    functionDepth: 4
    functionLinenumber: 5733
    functionLinenumberEnd: 5744
    functionName: os_posix_spawn_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - py_posix_spawn
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_posix_spawn_impl(PyObject *module, path_t *path, PyObject
      *argv,\n                    PyObject *env, PyObject *file_actions,\n                    PyObject
      *setpgroup, int resetids, int setsid,\n                    PyObject *setsigmask,
      PyObject *setsigdef,\n                    PyObject *scheduler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_posix_spawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - module
    - path
    - argv
    - env
    - file_actions
    - setpgroup
    - resetids
    - setsid
    - setsigmask
    - setsigdef
    - scheduler
    argTypes:
    - PyObject*
    - path_t*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5790
      start: 5779
    functionDepth: 4
    functionLinenumber: 5779
    functionLinenumberEnd: 5790
    functionName: os_posix_spawnp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - py_posix_spawn
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_posix_spawnp_impl(PyObject *module, path_t *path, PyObject
      *argv,\n                     PyObject *env, PyObject *file_actions,\n                     PyObject
      *setpgroup, int resetids, int setsid,\n                     PyObject *setsigmask,
      PyObject *setsigdef,\n                     PyObject *scheduler)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rtpSpawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5807,1
    - Dst: rtpSpawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5811,1
    - Dst: waitpid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5816,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5817,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 4
    argNames:
    - mode
    - rtpFileName
    - argv
    - envp
    argTypes:
    - int
    - char*
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5824
      start: 5794
    functionDepth: 1
    functionLinenumber: 5794
    functionLinenumberEnd: 5824
    functionName: _rtp_spawn
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - rtpSpawn
    - PyErr_CheckSignals
    - waitpid
    linkageType: ''
    returnType: intptr_t
    signature: "intptr_t _rtp_spawn(int mode, const char *rtpFileName, const char
      *argv[],\n               const char  *envp[])"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5855,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5856,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5859,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5864,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5869,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5874,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5876,1
    - Dst: fsconvert_strdup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5879,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5881,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5882,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5888,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5889,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5902,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5904,1
    - Dst: _wspawnv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5911,1
    - Dst: _rtp_spawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5913,1
    - Dst: _spawnv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5915,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5923,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5925,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 4
    argNames:
    - module
    - mode
    - path
    - argv
    argTypes:
    - PyObject*
    - int
    - path_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5842
    functionDepth: 2
    functionLinenumber: 5842
    functionLinenumberEnd: 5926
    functionName: os_spawnv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsconvert_strdup
    - posix_error
    - Py_BuildValue
    - PyErr_NoMemory
    - PyMem_NEW
    - PyList_Check
    - PyList_Size
    - PyTuple_Check
    - free_string_array
    - _rtp_spawn
    - PyTuple_Size
    - PyErr_SetString
    - _wspawnv
    - _spawnv
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_spawnv_impl(PyObject *module, int mode, path_t *path, PyObject *argv)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5961,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5962,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5965,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5966,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5970,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5975,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5979,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5980,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5985,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5987,1
    - Dst: fsconvert_strdup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:5999,1
    - Dst: parse_envlist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6008,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6017,1
    - Dst: _wspawnve
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6024,1
    - Dst: _rtp_spawn
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6026,1
    - Dst: _spawnve
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6029,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6035,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6037,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6041,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6042,1
    - Dst: free_string_array
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6044,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 5
    argNames:
    - module
    - mode
    - path
    - argv
    - env
    argTypes:
    - PyObject*
    - int
    - path_t*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6047
      start: 5944
    functionDepth: 3
    functionLinenumber: 5944
    functionLinenumberEnd: 6047
    functionName: os_spawnve_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fsconvert_strdup
    - PyMapping_Check
    - posix_error
    - Py_BuildValue
    - PyMem_DEL
    - PyErr_NoMemory
    - PyMem_NEW
    - PyList_Check
    - PyList_Size
    - parse_envlist
    - PyTuple_Check
    - free_string_array
    - PyTuple_Size
    - PyErr_SetString
    - _rtp_spawn
    - PySys_Audit
    - _wspawnve
    - _spawnve
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_spawnve_impl(PyObject *module, int mode, path_t *path,
      PyObject *argv,\n                PyObject *env)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6060,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6061,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - obj_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6066
      start: 6057
    functionDepth: 1
    functionLinenumber: 6057
    functionLinenumberEnd: 6066
    functionName: check_null_or_callable
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyCallable_Check
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int check_null_or_callable(PyObject *obj, const char* obj_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6094,1
    - Dst: check_null_or_callable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6097,1
    - Dst: check_null_or_callable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6098,1
    - Dst: check_null_or_callable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6099,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6102,1
    - Dst: register_at_forker
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6104,1
    - Dst: register_at_forker
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6107,1
    - Dst: register_at_forker
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 4
    argNames:
    - module
    - before
    - after_in_child
    - after_in_parent
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6114
      start: 6086
    functionDepth: 2
    functionLinenumber: 6086
    functionLinenumberEnd: 6114
    functionName: os_register_at_fork_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - register_at_forker
    - _PyInterpreterState_Get
    - PyErr_SetString
    - check_null_or_callable
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_register_at_fork_impl(PyObject *module, PyObject *before,\n
      \                        PyObject *after_in_child, PyObject *after_in_parent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6133,1
    - Dst: PyInterpreterState_Main
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6133,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6134,1
    - Dst: PyOS_BeforeFork
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6137,1
    - Dst: fork1
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6138,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6141,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6144,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6147,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6149
      start: 6127
    functionDepth: 3
    functionLinenumber: 6127
    functionLinenumberEnd: 6149
    functionName: os_fork1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_BeforeFork
    - _PyInterpreterState_Get
    - PyOS_AfterFork_Child
    - PyInterpreterState_Main
    - PyOS_AfterFork_Parent
    - PyLong_FromPid
    - PyErr_SetString
    - posix_error
    - fork1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork1_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6168,1
    - Dst: PyInterpreterState_Main
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6168,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6169,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6172,1
    - Dst: PyOS_BeforeFork
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6175,1
    - Dst: fork
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6176,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6179,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6182,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6185,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6162
    functionDepth: 3
    functionLinenumber: 6162
    functionLinenumberEnd: 6187
    functionName: os_fork_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_BeforeFork
    - _PyInterpreterState_Get
    - fork
    - PyOS_AfterFork_Child
    - PyInterpreterState_Main
    - PyLong_FromPid
    - PyErr_SetString
    - posix_error
    - PySys_Audit
    - PyOS_AfterFork_Parent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_priority_max
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6207,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6209,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6211
      start: 6201
    functionDepth: 2
    functionLinenumber: 6201
    functionLinenumberEnd: 6211
    functionName: os_sched_get_priority_max_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - sched_get_priority_max
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_get_priority_max_impl(PyObject *module, int policy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_get_priority_min
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6226,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6228,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - policy
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6230
      start: 6222
    functionDepth: 2
    functionLinenumber: 6222
    functionLinenumberEnd: 6230
    functionName: os_sched_get_priority_min_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - sched_get_priority_min
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_get_priority_min_impl(PyObject *module, int policy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_getscheduler
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6251,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6253,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6255
      start: 6245
    functionDepth: 2
    functionLinenumber: 6245
    functionLinenumberEnd: 6255
    functionName: os_sched_getscheduler_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyLong_FromLong
    - sched_getscheduler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getscheduler_impl(PyObject *module, pid_t pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6278,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6281,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - sched_priority
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6284
      start: 6272
    functionDepth: 1
    functionLinenumber: 6272
    functionLinenumberEnd: 6284
    functionName: os_sched_param_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - PyStructSequence_SET_ITEM
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_param_impl(PyTypeObject *type, PyObject *sched_priority)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6306,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6307,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6310,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6310,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6311,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6314,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - param
    - res
    argTypes:
    - PyObject*
    - struct sched_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6319
      start: 6301
    functionDepth: 1
    functionLinenumber: 6301
    functionLinenumberEnd: 6319
    functionName: convert_sched_param
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_TYPE
    - PyErr_SetString
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int convert_sched_param(PyObject *param, struct sched_param *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_setscheduler
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6348,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - pid
    - policy
    - param
    argTypes:
    - PyObject*
    - pid_t
    - int
    - struct sched_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6351
      start: 6338
    functionDepth: 2
    functionLinenumber: 6338
    functionLinenumberEnd: 6351
    functionName: os_sched_setscheduler_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sched_setscheduler
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_sched_setscheduler_impl(PyObject *module, pid_t pid,
      int policy,\n                           struct sched_param *param)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sched_getparam
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6375,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6376,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6377,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6382,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6387
      start: 6367
    functionDepth: 2
    functionLinenumber: 6367
    functionLinenumberEnd: 6387
    functionName: os_sched_getparam_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - sched_getparam
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getparam_impl(PyObject *module, pid_t pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_setparam
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6407,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - pid
    - param
    argTypes:
    - PyObject*
    - pid_t
    - struct sched_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6402
    functionDepth: 2
    functionLinenumber: 6402
    functionLinenumberEnd: 6410
    functionName: os_sched_setparam_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - sched_setparam
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_sched_setparam_impl(PyObject *module, pid_t pid,\n
      \                      struct sched_param *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_rr_get_interval
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6430,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6431,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6438
      start: 6425
    functionDepth: 2
    functionLinenumber: 6425
    functionLinenumberEnd: 6438
    functionName: os_sched_rr_get_interval_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - __msan_unpoison
    - sched_rr_get_interval
    linkageType: ''
    returnType: double
    signature: double os_sched_rr_get_interval_impl(PyObject *module, pid_t pid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6452,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6455
      start: 6448
    functionDepth: 2
    functionLinenumber: 6448
    functionLinenumberEnd: 6455
    functionName: os_sched_yield_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - sched_yield
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_yield_impl(PyObject *module)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6481,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6486,1
    - Dst: CPU_ALLOC
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6487,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6489,1
    - Dst: CPU_ZERO_S
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6492,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6494,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6496,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6497,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6500,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6501,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6504,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6505,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6507,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6508,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6512,1
    - Dst: CPU_ALLOC
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6526,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6528,1
    - Dst: CPU_ALLOC_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6531,1
    - Dst: CPU_ZERO_S
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6532,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6533,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6534,1
    - Dst: CPU_SET_S
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6539,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6541,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6544,1
    - Dst: sched_setaffinity
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6546,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6547,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6550,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6555,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6556,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - module
    - pid
    - mask
    argTypes:
    - PyObject*
    - pid_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6472
    functionDepth: 2
    functionLinenumber: 6472
    functionLinenumberEnd: 6558
    functionName: os_sched_setaffinity_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - CPU_ZERO_S
    - PyLong_AsLong
    - Py_CLEAR
    - PyIter_Next
    - PyObject_GetIter
    - PyErr_Occurred
    - CPU_ALLOC
    - PyErr_Format
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - Py_TYPE
    - sched_setaffinity
    - memcpy
    - CPU_ALLOC_SIZE
    - PyErr_NoMemory
    - CPU_FREE
    - PyErr_SetString
    - posix_error
    - CPU_SET_S
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setaffinity_impl(PyObject *module, pid_t pid, PyObject *mask)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ALLOC_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6582,1
    - Dst: CPU_ALLOC
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6583,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6585,1
    - Dst: sched_getaffinity
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6586,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6588,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6592,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6599,1
    - Dst: CPU_COUNT_S
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6602,1
    - Dst: CPU_ISSET_S
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6603,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6604,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6608,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6609,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6612,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6615,1
    - Dst: CPU_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6620,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6621,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6623
      start: 6571
    functionDepth: 2
    functionLinenumber: 6571
    functionLinenumberEnd: 6623
    functionName: os_sched_getaffinity_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySet_Add
    - Py_DECREF
    - CPU_ALLOC_SIZE
    - CPU_ISSET_S
    - PyErr_NoMemory
    - CPU_COUNT_S
    - Py_XDECREF
    - CPU_FREE
    - CPU_ALLOC
    - PyErr_SetString
    - posix_error
    - PySet_New
    - sched_getaffinity
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getaffinity_impl(PyObject *module, pid_t pid)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: openpty
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6683,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6686,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6688,1
    - Dst: _getpty
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6692,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6695,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6698,1
    - Dst: open
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6703,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6707,1
    - Dst: grantpt
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6710,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6711,1
    - Dst: unlockpt
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6716,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6717,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6721,1
    - Dst: ptsname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6723,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6727,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6731,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6735,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6736,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6738,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6743,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6746,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6749,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6751,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 62
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6753
      start: 6667
    functionDepth: 2
    functionLinenumber: 6667
    functionLinenumberEnd: 6753
    functionName: os_openpty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_open
    - Py_BuildValue
    - ioctl
    - _Py_set_inheritable
    - ptsname
    - grantpt
    - unlockpt
    - _getpty
    - openpty
    - PyOS_setsig
    - close
    - open
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_openpty_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6776,1
    - Dst: PyInterpreterState_Main
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6776,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6777,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6780,1
    - Dst: PyOS_BeforeFork
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6783,1
    - Dst: forkpty
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6784,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6787,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6790,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6793,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6794,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6795
      start: 6769
    functionDepth: 3
    functionLinenumber: 6769
    functionLinenumberEnd: 6795
    functionName: os_forkpty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_BeforeFork
    - _PyInterpreterState_Get
    - forkpty
    - Py_BuildValue
    - PyOS_AfterFork_Child
    - PyInterpreterState_Main
    - PyLong_FromPid
    - PyErr_SetString
    - posix_error
    - PySys_Audit
    - PyOS_AfterFork_Parent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_forkpty_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6810,1
    - Dst: getegid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6811
      start: 6806
    functionDepth: 2
    functionLinenumber: 6806
    functionLinenumberEnd: 6811
    functionName: os_getegid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getegid
    - _PyLong_FromGid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getegid_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6826,1
    - Dst: geteuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6827
      start: 6822
    functionDepth: 2
    functionLinenumber: 6822
    functionLinenumberEnd: 6827
    functionName: os_geteuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromUid
    - geteuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_geteuid_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6842,1
    - Dst: getgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6843
      start: 6838
    functionDepth: 2
    functionLinenumber: 6838
    functionLinenumberEnd: 6843
    functionName: os_getgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromGid
    - getgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgid_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6858,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6859
      start: 6854
    functionDepth: 0
    functionLinenumber: 6854
    functionLinenumberEnd: 6859
    functionName: os_getpid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromPid
    - getpid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpid_impl(PyObject *module)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6901,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6904,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6911,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6913,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6916,1
    - Dst: getgrouplist
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6920,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6926,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6936,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6946,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6947,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6950,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6952,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6958,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6960,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6963,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6964,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6967,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:6970,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6973
      start: 6878
    functionDepth: 2
    functionLinenumber: 6878
    functionLinenumberEnd: 6973
    functionName: posix_getgrouplist
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - PyMem_New
    - Py_DECREF
    - PyErr_NoMemory
    - _PyLong_FromGid
    - getgrouplist
    - PyList_SET_ITEM
    - PyMem_Del
    - PyMem_Free
    - PyLong_FromUnsignedLong
    - PyList_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_getgrouplist(PyObject *self, PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: getgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7008,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7010,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7015,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7017,1
    - Dst: getgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7021,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7024,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7026,1
    - Dst: getgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7029,1
    - Dst: getgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7032,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7034,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7040,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7042,1
    - Dst: getgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7044,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7046,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7047,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7051,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7056,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7060,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7062,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7066,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7071,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7075
      start: 6984
    functionDepth: 2
    functionLinenumber: 6984
    functionLinenumberEnd: 7075
    functionName: os_getgroups_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - PyErr_NoMemory
    - _PyLong_FromGid
    - PyList_SET_ITEM
    - getgroups
    - PyMem_Free
    - posix_error
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgroups_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7099,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7103,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7108,1
    - Dst: initgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7110,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7111,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7116
      start: 7086
    functionDepth: 1
    functionLinenumber: 7086
    functionLinenumberEnd: 7116
    functionName: posix_initgroups
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - initgroups
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      posix_initgroups(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7133,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7135,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7137
      start: 7129
    functionDepth: 2
    functionLinenumber: 7129
    functionLinenumberEnd: 7137
    functionName: os_getpgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpgid
    - PyLong_FromPid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpgid_impl(PyObject *module, pid_t pid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7153,1
    - Dst: getpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7153,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7155,1
    - Dst: getpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7157
      start: 7148
    functionDepth: 0
    functionLinenumber: 7148
    functionLinenumberEnd: 7157
    functionName: os_getpgrp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getpgrp
    - PyLong_FromPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpgrp_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7173,1
    - Dst: setpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7175,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7179
      start: 7168
    functionDepth: 2
    functionLinenumber: 7168
    functionLinenumberEnd: 7179
    functionName: os_setpgrp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setpgrp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgrp_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7196,1
    - Dst: CreateToolhelp32Snapshot
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7198,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7200,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7200,1
    - Dst: Process32First
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7203,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7207,1
    - Dst: Process32Next
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7211,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7218,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7218,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7223
      start: 7187
    functionDepth: 1
    functionLinenumber: 7187
    functionLinenumberEnd: 7223
    functionName: win32_getppid
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Process32Next
    - Process32First
    - getpid
    - PyLong_FromPid
    - CreateToolhelp32Snapshot
    - PyErr_SetFromWindowsErr
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      win32_getppid()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_getppid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7241,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7243,1
    - Dst: getppid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7245
      start: 7236
    functionDepth: 2
    functionLinenumber: 7236
    functionLinenumberEnd: 7245
    functionName: os_getppid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_getppid
    - getppid
    - PyLong_FromPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getppid_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7263,1
    - Dst: GetUserNameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7265,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7267,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7270,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7270,1
    - Dst: getlogin
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7276,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7281,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7288
      start: 7256
    functionDepth: 2
    functionLinenumber: 7256
    functionLinenumberEnd: 7288
    functionName: os_getlogin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - getlogin
    - Py_ARRAY_LENGTH
    - GetUserNameW
    - PyUnicode_DecodeFSDefault
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - posix_error
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getlogin_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7303,1
    - Dst: getuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7304
      start: 7299
    functionDepth: 2
    functionLinenumber: 7299
    functionLinenumberEnd: 7304
    functionName: os_getuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromUid
    - getuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getuid_impl(PyObject *module)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7327,1
    - Dst: kill
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7331,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7332,1
    - Dst: GenerateConsoleCtrlEvent
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7343,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7344,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7345,1
    - Dst: OpenProcess
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7353,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7355,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7356,1
    - Dst: TerminateProcess
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7359,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7360,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7361,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7363,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - module
    - pid
    - signal
    argTypes:
    - PyObject*
    - pid_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7370
      start: 7323
    functionDepth: 2
    functionLinenumber: 7323
    functionLinenumberEnd: 7370
    functionName: os_kill_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_INCREF
    - kill
    - OpenProcess
    - GenerateConsoleCtrlEvent
    - posix_error
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - TerminateProcess
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_kill_impl(PyObject *module, pid_t pid, Py_ssize_t signal)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7389,1
    - Dst: killpg
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7396,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - pgid
    - signal
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7399
      start: 7385
    functionDepth: 2
    functionLinenumber: 7385
    functionLinenumberEnd: 7399
    functionName: os_killpg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - killpg
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_killpg_impl(PyObject *module, pid_t pgid, int signal)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: plock
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7420,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - op
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7423
      start: 7416
    functionDepth: 2
    functionLinenumber: 7416
    functionLinenumberEnd: 7423
    functionName: os_plock_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - plock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_plock_impl(PyObject *module, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7441,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - uid
    argTypes:
    - PyObject*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7444
      start: 7437
    functionDepth: 2
    functionLinenumber: 7437
    functionLinenumberEnd: 7444
    functionName: os_setuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setuid_impl(PyObject *module, uid_t uid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seteuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7462,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - euid
    argTypes:
    - PyObject*
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7465
      start: 7458
    functionDepth: 2
    functionLinenumber: 7458
    functionLinenumberEnd: 7465
    functionName: os_seteuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - seteuid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_seteuid_impl(PyObject *module, uid_t euid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setegid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7483,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - egid
    argTypes:
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7486
      start: 7479
    functionDepth: 2
    functionLinenumber: 7479
    functionLinenumberEnd: 7486
    functionName: os_setegid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setegid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setegid_impl(PyObject *module, gid_t egid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setreuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7505,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - ruid
    - euid
    argTypes:
    - PyObject*
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7510
      start: 7501
    functionDepth: 2
    functionLinenumber: 7501
    functionLinenumberEnd: 7510
    functionName: os_setreuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setreuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setreuid_impl(PyObject *module, uid_t ruid, uid_t euid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setregid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7529,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - rgid
    - egid
    argTypes:
    - PyObject*
    - gid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7532
      start: 7525
    functionDepth: 2
    functionLinenumber: 7525
    functionLinenumberEnd: 7532
    functionName: os_setregid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setregid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setregid_impl(PyObject *module, gid_t rgid, gid_t egid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7549,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - gid
    argTypes:
    - PyObject*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7552
      start: 7545
    functionDepth: 2
    functionLinenumber: 7545
    functionLinenumberEnd: 7552
    functionName: os_setgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setgid_impl(PyObject *module, gid_t gid)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7574,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7577,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7582,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7587,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7593,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7596,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7597,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7601,1
    - Dst: setgroups
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7604,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - module
    - groups
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7607
      start: 7566
    functionDepth: 2
    functionLinenumber: 7566
    functionLinenumberEnd: 7607
    functionName: os_setgroups
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PySequence_Check
    - Py_DECREF
    - PySequence_Size
    - PySequence_GetItem
    - _Py_Gid_Converter
    - setgroups
    - PyErr_SetString
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setgroups(PyObject *module, PyObject *groups)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7616,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7619,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7622,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7625,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7626,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7632,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7640,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7641,1
    - Dst: doubletime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7641,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7642,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7643,1
    - Dst: doubletime
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7643,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7646,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7647,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7648,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7649,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7650,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7651,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7652,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7653,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7654,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7655,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7656,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7657,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7658,1
    - Dst: SET_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7659,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7663,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7667,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7667,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - pid
    - status
    - ru
    argTypes:
    - pid_t
    - int
    - struct rusage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7668
      start: 7611
    functionDepth: 2
    functionLinenumber: 7611
    functionLinenumberEnd: 7668
    functionName: wait_helper
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - _PyObject_GetAttrId
    - PyImport_ImportModuleNoBlock
    - _Py_IDENTIFIER
    - PyStructSequence_New
    - doubletime
    - PyLong_FromPid
    - SET_INT
    - posix_error
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wait_helper(pid_t pid, int status, struct rusage *ru)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TV
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7638
      start: 7637
    functionDepth: 0
    functionLinenumber: 7637
    functionLinenumberEnd: 7638
    functionName: doubletime
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: doubletime(TV)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - result
    - ','
    - index
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7646
      start: 7644
    functionDepth: 0
    functionLinenumber: 7644
    functionLinenumberEnd: 7646
    functionName: SET_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INT(result, index, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait3
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7695,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7697,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7699,1
    - Dst: wait_helper
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7701,1
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - options
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7702
      start: 7683
    functionDepth: 3
    functionLinenumber: 7683
    functionLinenumberEnd: 7702
    functionName: os_wait3_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - wait3
    - wait_helper
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait3_impl(PyObject *module, int options)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7691
      start: 7691
    functionDepth: 0
    functionLinenumber: 7691
    functionLinenumberEnd: 7691
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait4
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7732,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7734,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7736,1
    - Dst: wait_helper
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7738,1
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7739
      start: 7720
    functionDepth: 3
    functionLinenumber: 7720
    functionLinenumberEnd: 7739
    functionName: os_wait4_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wait4
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - wait_helper
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait4_impl(PyObject *module, pid_t pid, int options)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7728
      start: 7728
    functionDepth: 0
    functionLinenumber: 7728
    functionLinenumberEnd: 7728
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: waitid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7774,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7776,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7778,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7783,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7787,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7787,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7788,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7788,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7789,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7789,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7790,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7790,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7791,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7791,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - module
    - idtype
    - id
    - options
    argTypes:
    - PyObject*
    - idtype_t
    - id_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7798
      start: 7762
    functionDepth: 2
    functionLinenumber: 7762
    functionLinenumberEnd: 7798
    functionName: os_waitid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyErr_CheckSignals
    - _PyLong_FromUid
    - waitid
    - PyStructSequence_New
    - PyLong_FromPid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitid_impl(PyObject *module, idtype_t idtype, id_t id, int options)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: waitpid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7828,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7830,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7832,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7834,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7834,1
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - pid_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7835
      start: 7817
    functionDepth: 2
    functionLinenumber: 7817
    functionLinenumberEnd: 7835
    functionName: os_waitpid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - PyLong_FromPid
    - posix_error
    - waitpid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitpid_impl(PyObject *module, pid_t pid, int options)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7824
      start: 7824
    functionDepth: 0
    functionLinenumber: 7824
    functionLinenumberEnd: 7824
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _cwait
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7863,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7866,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7868,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pid
    - options
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7874
      start: 7852
    functionDepth: 2
    functionLinenumber: 7852
    functionLinenumberEnd: 7874
    functionName: os_waitpid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _cwait
    - PyErr_CheckSignals
    - Py_BuildValue
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitpid_impl(PyObject *module, intptr_t pid, int options)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wait
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7899,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7901,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7903,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7905,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7905,1
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7905,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7906
      start: 7888
    functionDepth: 2
    functionLinenumber: 7888
    functionLinenumberEnd: 7906
    functionName: os_wait_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - WAIT_STATUS_INT
    - PyErr_CheckSignals
    - wait
    - PyLong_FromPid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7895
      start: 7895
    functionDepth: 0
    functionLinenumber: 7895
    functionLinenumberEnd: 7895
    functionName: WAIT_STATUS_INT
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WAIT_STATUS_INT(status)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: readlinkat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7938,1
    - Dst: readlink
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7941,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7945,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7949,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7950,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7952,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7963,1
    - Dst: DeviceIoControl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7973,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7981,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:7986,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8005,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8008,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8012,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8014,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8014,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - module
    - path
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8019
      start: 7927
    functionDepth: 4
    functionLinenumber: 7927
    functionLinenumberEnd: 8019
    functionName: os_readlink_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - PyUnicode_DecodeFSDefaultAndSize
    - path_error
    - PyBytes_FromStringAndSize
    - PyUnicode_EncodeFSDefault
    - DeviceIoControl
    - CreateFileW
    - readlink
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - PyUnicode_Check
    - Py_SETREF
    - readlinkat
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readlink_impl(PyObject *module, path_t *path, int dir_fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcsnlen_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8044
      start: 8027
    functionDepth: 0
    functionLinenumber: 8027
    functionLinenumberEnd: 8044
    functionName: _dirnameW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcsnlen_s
    linkageType: ''
    returnType: int
    signature: int _dirnameW(WCHAR *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8052
      start: 8047
    functionDepth: 0
    functionLinenumber: 8047
    functionLinenumberEnd: 8052
    functionName: _is_absW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _is_absW(const WCHAR *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_absW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8058,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8059,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8062,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8066,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - dest_path
    - root
    - rest
    argTypes:
    - WCHAR*
    - WCHAR*
    - WCHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8071
      start: 8055
    functionDepth: 1
    functionLinenumber: 8055
    functionLinenumberEnd: 8071
    functionName: _joinW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _is_absW
    - wcscpy_s
    - wcscat_s
    linkageType: ''
    returnType: int
    signature: int _joinW(WCHAR *dest_path, const WCHAR *root, const WCHAR *rest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8082,1
    - Dst: _dirnameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8083,1
    - Dst: _joinW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8087,1
    - Dst: GetFileAttributesExW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8091,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8094
      start: 8074
    functionDepth: 2
    functionLinenumber: 8074
    functionLinenumberEnd: 8094
    functionName: _check_dirW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _dirnameW
    - _joinW
    - GetFileAttributesExW
    - wcscpy_s
    linkageType: ''
    returnType: int
    signature: int _check_dirW(LPCWSTR src, LPCWSTR dest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8137,1
    - Dst: _check_dirW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8152,1
    - Dst: CreateSymbolicLinkW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8156,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8161,1
    - Dst: CreateSymbolicLinkW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8176,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8180,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8186,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8191,1
    - Dst: symlinkat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8199,1
    - Dst: symlink
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8202,1
    - Dst: path_error2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8206,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 5
    argNames:
    - module
    - src
    - dst
    - target_is_directory
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8210
      start: 8122
    functionDepth: 3
    functionLinenumber: 8122
    functionLinenumberEnd: 8210
    functionName: os_symlink_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - _check_dirW
    - CreateSymbolicLinkW
    - path_error2
    - symlink
    - symlinkat
    - PyErr_SetString
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_symlink_impl(PyObject *module, path_t *src, path_t
      *dst,\n                int target_is_directory, int dir_fd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8254,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8268,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8269,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8270,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8271,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - user
    - system
    - children_user
    - children_system
    - elapsed
    argTypes:
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8277
      start: 8249
    functionDepth: 1
    functionLinenumber: 8249
    functionLinenumberEnd: 8277
    functionName: build_times_result
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - SET
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_times_result(double user, double system,\n    double
      children_user, double children_system,\n    double elapsed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8258
    functionDepth: 0
    functionLinenumber: 8258
    functionLinenumberEnd: 8268
    functionName: SET
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i, field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8354,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8356,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - pid
    argTypes:
    - PyObject*
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8349
    functionDepth: 2
    functionLinenumber: 8349
    functionLinenumberEnd: 8358
    functionName: os_getsid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - getsid
    - PyLong_FromLong
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getsid_impl(PyObject *module, pid_t pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setsid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8373,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8376
      start: 8369
    functionDepth: 2
    functionLinenumber: 8369
    functionLinenumberEnd: 8376
    functionName: os_setsid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setsid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setsid_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setpgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8395,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - pid
    - pgrp
    argTypes:
    - PyObject*
    - pid_t
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8398
      start: 8391
    functionDepth: 2
    functionLinenumber: 8391
    functionLinenumberEnd: 8398
    functionName: os_setpgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setpgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgid_impl(PyObject *module, pid_t pid, pid_t pgrp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcgetpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8416,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8418,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8420
      start: 8412
    functionDepth: 2
    functionLinenumber: 8412
    functionLinenumberEnd: 8420
    functionName: os_tcgetpgrp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - tcgetpgrp
    - PyLong_FromPid
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcgetpgrp_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tcsetpgrp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8439,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - fd
    - pgid
    argTypes:
    - PyObject*
    - int
    - pid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8442
      start: 8435
    functionDepth: 2
    functionLinenumber: 8435
    functionLinenumberEnd: 8442
    functionName: os_tcsetpgrp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - tcsetpgrp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcsetpgrp_impl(PyObject *module, int fd, pid_t pgid)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8489,1
    - Dst: _wopen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8497,1
    - Dst: openat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8501,1
    - Dst: open
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8504,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8507,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8512,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8517,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - module
    - path
    - flags
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8524
      start: 8470
    functionDepth: 1
    functionLinenumber: 8470
    functionLinenumberEnd: 8524
    functionName: os_open_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_set_inheritable
    - PyErr_CheckSignals
    - close
    - open
    - _wopen
    - PySys_Audit
    - PyErr_SetFromErrnoWithFilenameObject
    - openat
    linkageType: ''
    returnType: int
    signature: int os_open_impl(PyObject *module, path_t *path, int flags, int mode,
      int dir_fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wopen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8497,1
    - Dst: openat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8501,1
    - Dst: open
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8507
      start: 8493
    functionDepth: 0
    functionLinenumber: 8493
    functionLinenumberEnd: 8507
    functionName: do
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - open
    - openat
    - _wopen
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8546,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8552
      start: 8535
    functionDepth: 2
    functionLinenumber: 8535
    functionLinenumberEnd: 8552
    functionName: os_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_close_impl(PyObject *module, int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - lohi
    - fd
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8567
      start: 8556
    functionDepth: 0
    functionLinenumber: 8556
    functionLinenumberEnd: 8567
    functionName: _fdwalk_close_func
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int _fdwalk_close_func(void *lohi, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8592,1
    - Dst: fdwalk
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8594,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8596,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - fd_low
    - fd_high
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8602
      start: 8580
    functionDepth: 1
    functionLinenumber: 8580
    functionLinenumberEnd: 8602
    functionName: os_closerange_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fdwalk
    - close
    - Py_MAX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_closerange_impl(PyObject *module, int fd_low, int fd_high)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8619
      start: 8614
    functionDepth: 1
    functionLinenumber: 8614
    functionLinenumberEnd: 8619
    functionName: os_dup_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_dup
    linkageType: ''
    returnType: int
    signature: int os_dup_impl(PyObject *module, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8745,1
    - Dst: lockf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8750,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - fd
    - command
    - length
    argTypes:
    - PyObject*
    - int
    - int
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8757
      start: 8739
    functionDepth: 2
    functionLinenumber: 8739
    functionLinenumberEnd: 8757
    functionName: os_lockf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PySys_Audit
    - lockf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lockf_impl(PyObject *module, int fd, int command, Py_off_t length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _lseeki64
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8793,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8795,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - module
    - fd
    - position
    - how
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8803
      start: 8775
    functionDepth: 2
    functionLinenumber: 8775
    functionLinenumberEnd: 8803
    functionName: os_lseek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - lseek
    - posix_error
    - _lseeki64
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t os_lseek_impl(PyObject *module, int fd, Py_off_t position,
      int how)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8824,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8827,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8829,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8833,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8835,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8840,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8843
      start: 8815
    functionDepth: 2
    functionLinenumber: 8815
    functionLinenumberEnd: 8843
    functionName: os_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyBytes_Resize
    - _Py_read
    - PyBytes_AS_STRING
    - posix_error
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_read_impl(PyObject *module, int fd, Py_ssize_t length)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8854,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8856,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8860,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8862,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8863,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8868,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8872,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8875,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8882,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8884,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8886,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - iov
    - buf
    - seq
    - cnt
    - type
    argTypes:
    - struct iovec**
    - Py_buffer**
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8888
      start: 8849
    functionDepth: 1
    functionLinenumber: 8849
    functionLinenumberEnd: 8888
    functionName: iov_setup
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - PySequence_GetItem
    - PyErr_NoMemory
    - PyMem_Del
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int iov_setup(struct iovec **iov, Py_buffer **buf, PyObject *seq, Py_ssize_t
      cnt, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8894,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8896,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - iov
    - buf
    - cnt
    argTypes:
    - struct iovec*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8899
      start: 8890
    functionDepth: 1
    functionLinenumber: 8890
    functionLinenumberEnd: 8899
    functionName: iov_cleanup
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Del
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void iov_cleanup(struct iovec *iov, Py_buffer *buf, int cnt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8931,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8932,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8937,1
    - Dst: iov_setup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8941,1
    - Dst: readv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8946,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8948,1
    - Dst: iov_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8950,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8958
      start: 8922
    functionDepth: 2
    functionLinenumber: 8922
    functionLinenumberEnd: 8958
    functionName: os_readv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PySequence_Size
    - readv
    - PyErr_CheckSignals
    - iov_cleanup
    - iov_setup
    - PyErr_SetString
    - posix_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_readv_impl(PyObject *module, int fd, PyObject *buffers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8988,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8990,1
    - Dst: pread
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8997,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:8997,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9003,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9004,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9007,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - module
    - fd
    - length
    - offset
    argTypes:
    - PyObject*
    - int
    - int
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9009
      start: 8978
    functionDepth: 2
    functionLinenumber: 8978
    functionLinenumberEnd: 9009
    functionName: os_pread_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyErr_CheckSignals
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - posix_error
    - pread
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pread_impl(PyObject *module, int fd, int length, Py_off_t offset)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9049,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9050,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9055,1
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9062,1
    - Dst: iov_setup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9067,1
    - Dst: preadv2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9074,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9077,1
    - Dst: preadv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9082,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9085,1
    - Dst: iov_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9088,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9091,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 5
    argNames:
    - module
    - fd
    - buffers
    - offset
    - flags
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9097
      start: 9039
    functionDepth: 2
    functionLinenumber: 9039
    functionLinenumberEnd: 9097
    functionName: os_preadv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PySequence_Size
    - PyErr_CheckSignals
    - preadv
    - iov_cleanup
    - iov_setup
    - PyErr_SetString
    - posix_error
    - preadv2
    - argument_unavailable_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t os_preadv_impl(PyObject *module, int fd, PyObject *buffers,
      Py_off_t offset,\n               int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - fd
    - data
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9116
      start: 9111
    functionDepth: 1
    functionLinenumber: 9111
    functionLinenumberEnd: 9116
    functionName: os_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_write
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_write_impl(PyObject *module, int fd, Py_buffer *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sendfile
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9221,1
    - Dst: sendfile
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9226
      start: 9217
    functionDepth: 0
    functionLinenumber: 9217
    functionLinenumberEnd: 9226
    functionName: do
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - sendfile
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcopyfile
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9312,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - module
    - infd
    - outfd
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9317
      start: 9305
    functionDepth: 2
    functionLinenumber: 9305
    functionLinenumberEnd: 9317
    functionName: os__fcopyfile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - fcopyfile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__fcopyfile_impl(PyObject *module, int infd, int outfd, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FSTAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9342,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9344,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9347,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9349,1
    - Dst: _pystat_fromstructstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9354
      start: 9332
    functionDepth: 3
    functionLinenumber: 9332
    functionLinenumberEnd: 9354
    functionName: os_fstat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - FSTAT
    - posix_error
    - _pystat_fromstructstat
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstat_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9377
      start: 9368
    functionDepth: 0
    functionLinenumber: 9368
    functionLinenumberEnd: 9377
    functionName: os_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: int
    signature: int os_isatty_impl(PyObject *module, int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pipe2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9486,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9488,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9490
      start: 9479
    functionDepth: 2
    functionLinenumber: 9479
    functionLinenumberEnd: 9490
    functionName: os_pipe2_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - pipe2
    - Py_BuildValue
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pipe2_impl(PyObject *module, int flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9518,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9522,1
    - Dst: iov_setup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9526,1
    - Dst: writev
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9532,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9534,1
    - Dst: iov_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9536,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9538,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fd
    - buffers
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9541
      start: 9507
    functionDepth: 2
    functionLinenumber: 9507
    functionLinenumberEnd: 9541
    functionName: os_writev_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PySequence_Size
    - PyErr_CheckSignals
    - iov_cleanup
    - iov_setup
    - PyErr_SetString
    - writev
    - posix_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_writev_impl(PyObject *module, int fd, PyObject *buffers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pwrite
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9571,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9574,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - module
    - fd
    - buffer
    - offset
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9579
      start: 9561
    functionDepth: 2
    functionLinenumber: 9561
    functionLinenumberEnd: 9579
    functionName: os_pwrite_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - pwrite
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t os_pwrite_impl(PyObject *module, int fd, Py_buffer *buffer,
      Py_off_t offset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9620,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9621,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9626,1
    - Dst: argument_unavailable_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9633,1
    - Dst: iov_setup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9638,1
    - Dst: pwritev2
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9645,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9648,1
    - Dst: pwritev
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9653,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9656,1
    - Dst: iov_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9659,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9662,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 5
    argNames:
    - module
    - fd
    - buffers
    - offset
    - flags
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9668
      start: 9609
    functionDepth: 2
    functionLinenumber: 9609
    functionLinenumberEnd: 9668
    functionName: os_pwritev_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - pwritev2
    - PySequence_Check
    - pwritev
    - PySequence_Size
    - PyErr_CheckSignals
    - iov_cleanup
    - iov_setup
    - PyErr_SetString
    - posix_error
    - argument_unavailable_error
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t os_pwritev_impl(PyObject *module, int fd, PyObject *buffers,
      Py_off_t offset,\n                int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9708,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9713,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9720,1
    - Dst: copy_file_range
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9728,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9730,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9733,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9736,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - module
    - src
    - dst
    - count
    - offset_src
    - offset_dst
    argTypes:
    - PyObject*
    - int
    - int
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9737
      start: 9692
    functionDepth: 2
    functionLinenumber: 9692
    functionLinenumberEnd: 9737
    functionName: os_copy_file_range_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - copy_file_range
    - PyErr_CheckSignals
    - PyErr_SetString
    - posix_error
    - PyLong_FromSsize_t
    - Py_off_t_converter
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_copy_file_range_impl(PyObject *module, int src, int
      dst, Py_ssize_t count,\n                        PyObject *offset_src, PyObject
      *offset_dst)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mkfifoat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9768,1
    - Dst: mkfifo
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9771,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9774,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - module
    - path
    - mode
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9779
      start: 9757
    functionDepth: 2
    functionLinenumber: 9757
    functionLinenumberEnd: 9779
    functionName: os_mkfifo_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - mkfifo
    - PyErr_CheckSignals
    - posix_error
    - mkfifoat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkfifo_impl(PyObject *module, path_t *path, int mode, int dir_fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mknodat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9820,1
    - Dst: mknod
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9823,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9826,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9828,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - module
    - path
    - mode
    - device
    - dir_fd
    argTypes:
    - PyObject*
    - path_t*
    - int
    - dev_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9831
      start: 9808
    functionDepth: 2
    functionLinenumber: 9808
    functionLinenumberEnd: 9831
    functionName: os_mknod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - mknod
    - mknodat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_mknod_impl(PyObject *module, path_t *path, int mode,
      dev_t device,\n              int dir_fd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: major
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9850
      start: 9845
    functionDepth: 0
    functionLinenumber: 9845
    functionLinenumberEnd: 9850
    functionName: os_major_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - major
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int os_major_impl(PyObject *module, dev_t device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minor
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - device
    argTypes:
    - PyObject*
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9867
      start: 9862
    functionDepth: 0
    functionLinenumber: 9862
    functionLinenumberEnd: 9867
    functionName: os_minor_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - minor
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int os_minor_impl(PyObject *module, dev_t device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makedev
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - major
    - minor
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9885
      start: 9880
    functionDepth: 0
    functionLinenumber: 9880
    functionLinenumberEnd: 9885
    functionName: os_makedev_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - makedev
    linkageType: ''
    returnType: dev_t
    signature: dev_t os_makedev_impl(PyObject *module, int major, int minor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9907,1
    - Dst: _chsize_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9915,1
    - Dst: ftruncate
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9917,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9922,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fd
    - length
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9926
      start: 9900
    functionDepth: 2
    functionLinenumber: 9900
    functionLinenumberEnd: 9926
    functionName: os_ftruncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - ftruncate
    - _chsize_s
    - posix_error
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ftruncate_impl(PyObject *module, int fd, Py_off_t length)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: os_ftruncate_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9952,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9954,1
    - Dst: _wopen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9961,1
    - Dst: _chsize_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9965,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9966,1
    - Dst: truncate
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9971,1
    - Dst: posix_path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:9976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - path
    - length
    argTypes:
    - PyObject*
    - path_t*
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9979
      start: 9942
    functionDepth: 3
    functionLinenumber: 9942
    functionLinenumberEnd: 9979
    functionName: os_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - truncate
    - os_ftruncate_impl
    - posix_path_error
    - _chsize_s
    - close
    - _wopen
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_truncate_impl(PyObject *module, path_t *path, Py_off_t length)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: posix_fallocate
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10017,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10019,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - module
    - fd
    - offset
    - length
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    - Py_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10029
      start: 10007
    functionDepth: 2
    functionLinenumber: 10007
    functionLinenumberEnd: 10029
    functionName: os_posix_fallocate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - posix_fallocate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_posix_fallocate_impl(PyObject *module, int fd, Py_off_t
      offset,\n                        Py_off_t length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: posix_fadvise
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10064,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10066,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10075,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - module
    - fd
    - offset
    - length
    - advice
    argTypes:
    - PyObject*
    - int
    - Py_off_t
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10076
      start: 10054
    functionDepth: 2
    functionLinenumber: 10054
    functionLinenumberEnd: 10076
    functionName: os_posix_fadvise_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_fadvise
    - PyErr_CheckSignals
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_posix_fadvise_impl(PyObject *module, int fd, Py_off_t
      offset,\n                      Py_off_t length, int advice)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10092,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10094,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10097
      start: 10085
    functionDepth: 1
    functionLinenumber: 10085
    functionLinenumberEnd: 10097
    functionName: posix_putenv_garbage_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void posix_putenv_garbage_setitem(PyObject *name, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10120,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10121,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10123,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10126,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10131,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10135,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10141,1
    - Dst: _wputenv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10145,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10146,1
    - Dst: posix_putenv_garbage_setitem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10156
      start: 10111
    functionDepth: 2
    functionLinenumber: 10111
    functionLinenumberEnd: 10156
    functionName: os_putenv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FindChar
    - _wputenv
    - PyUnicode_FromFormat
    - PyUnicode_AsUnicodeAndSize
    - PyErr_Format
    - PyErr_SetString
    - posix_error
    - posix_putenv_garbage_setitem
    - PyUnicode_GET_LENGTH
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10174,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10175,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10178,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10181,1
    - Dst: PyBytes_FromFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10184,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10189,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10191,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10192,1
    - Dst: posix_putenv_garbage_setitem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10197
      start: 10168
    functionDepth: 2
    functionLinenumber: 10168
    functionLinenumberEnd: 10197
    functionName: os_putenv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - putenv
    - Py_DECREF
    - PyBytes_FromFormat
    - PyBytes_AS_STRING
    - PyErr_SetString
    - posix_error
    - strchr
    - posix_putenv_garbage_setitem
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv_impl(PyObject *module, PyObject *name, PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10219,1
    - Dst: unsetenv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10224,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10224,1
    - Dst: unsetenv
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10226,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10226,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10228,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10236,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10238,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10244
      start: 10211
    functionDepth: 2
    functionLinenumber: 10211
    functionLinenumberEnd: 10244
    functionName: os_unsetenv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - unsetenv
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - posix_error
    - PyErr_Clear
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv_impl(PyObject *module, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strerror
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10261,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10263,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10268
      start: 10257
    functionDepth: 1
    functionLinenumber: 10257
    functionLinenumberEnd: 10268
    functionName: os_strerror_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyErr_SetString
    - strerror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_strerror_impl(PyObject *module, int code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10287,1
    - Dst: WCOREDUMP
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10289
      start: 10282
    functionDepth: 1
    functionLinenumber: 10282
    functionLinenumberEnd: 10289
    functionName: os_WCOREDUMP_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WCOREDUMP
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WCOREDUMP_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10310,1
    - Dst: WIFCONTINUED
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10312
      start: 10305
    functionDepth: 1
    functionLinenumber: 10305
    functionLinenumberEnd: 10312
    functionName: os_WIFCONTINUED_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFCONTINUED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFCONTINUED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10330,1
    - Dst: WIFSTOPPED
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10332
      start: 10325
    functionDepth: 1
    functionLinenumber: 10325
    functionLinenumberEnd: 10332
    functionName: os_WIFSTOPPED_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFSTOPPED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFSTOPPED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10350,1
    - Dst: WIFSIGNALED
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10352
      start: 10345
    functionDepth: 1
    functionLinenumber: 10345
    functionLinenumberEnd: 10352
    functionName: os_WIFSIGNALED_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFSIGNALED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFSIGNALED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10370,1
    - Dst: WIFEXITED
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10372
      start: 10365
    functionDepth: 1
    functionLinenumber: 10365
    functionLinenumberEnd: 10372
    functionName: os_WIFEXITED_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WIFEXITED
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WIFEXITED_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10390,1
    - Dst: WEXITSTATUS
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10392
      start: 10385
    functionDepth: 1
    functionLinenumber: 10385
    functionLinenumberEnd: 10392
    functionName: os_WEXITSTATUS_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WEXITSTATUS
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WEXITSTATUS_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10410,1
    - Dst: WTERMSIG
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10412
      start: 10405
    functionDepth: 1
    functionLinenumber: 10405
    functionLinenumberEnd: 10412
    functionName: os_WTERMSIG_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WTERMSIG
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WTERMSIG_impl(PyObject *module, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WAIT_STATUS_INT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10430,1
    - Dst: WSTOPSIG
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10432
      start: 10425
    functionDepth: 1
    functionLinenumber: 10425
    functionLinenumberEnd: 10432
    functionName: os_WSTOPSIG_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - WSTOPSIG
    - WAIT_STATUS_INT
    linkageType: ''
    returnType: int
    signature: int os_WSTOPSIG_impl(PyObject *module, int status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10447,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10452,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10452,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10453,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10453,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10454,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10454,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10455,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10455,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10456,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10456,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10457,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10457,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10458,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10458,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10459,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10459,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10460,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10460,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10461,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10461,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10463,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10463,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10464,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10464,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10465,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10466,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10467,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10468,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10469,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10470,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10471,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10472,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10473,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10474,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10475,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10476,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10477,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10477,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10478,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10478,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10483,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10483,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10485,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10485,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10487,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct statvfs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10493
      start: 10445
    functionDepth: 1
    functionLinenumber: 10445
    functionLinenumberEnd: 10493
    functionName: _pystatvfs_fromstructstatvfs
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - PyLong_FromUnsignedLong
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pystatvfs_fromstructstatvfs(struct statvfs st)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fstatvfs
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10516,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10519,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10521,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10523,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10524
      start: 10506
    functionDepth: 2
    functionLinenumber: 10506
    functionLinenumberEnd: 10524
    functionName: os_fstatvfs_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - PyErr_CheckSignals
    - _pystatvfs_fromstructstatvfs
    - fstatvfs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstatvfs_impl(PyObject *module, int fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fd_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10555,1
    - Dst: fstatvfs
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10559,1
    - Dst: statvfs
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10563,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10567,1
    - Dst: _pystatvfs_fromstructstatvfs
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10571
      start: 10542
    functionDepth: 4
    functionLinenumber: 10542
    functionLinenumberEnd: 10571
    functionName: os_statvfs_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    - statvfs
    - fstatvfs
    - _pystatvfs_fromstructstatvfs
    - fd_specified
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_statvfs_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10568
      start: 10564
    functionDepth: 4
    functionLinenumber: 10564
    functionLinenumberEnd: 10568
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - path_error
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetDiskFreeSpaceExW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10593,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10596,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10599,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10601,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10604,1
    - Dst: _dirnameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10606,1
    - Dst: GetDiskFreeSpaceExW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10608,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10612,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10613,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10618,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10623
      start: 10584
    functionDepth: 1
    functionLinenumber: 10584
    functionLinenumberEnd: 10623
    functionName: os__getdiskusage_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyMem_New
    - Py_BuildValue
    - _dirnameW
    - PyErr_NoMemory
    - PyMem_Free
    - GetDiskFreeSpaceExW
    - wcscpy_s
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getdiskusage_impl(PyObject *module, path_t *path)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10647,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10648,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10649,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10661,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10662,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10666,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10671,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10681,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - arg
    - valuep
    - table
    - tablesize
    argTypes:
    - PyObject*
    - int*
    - struct constdef*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10684
      start: 10643
    functionDepth: 1
    functionLinenumber: 10643
    functionLinenumberEnd: 10684
    functionName: conv_confname
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyUnicode_AsUTF8
    - PyErr_SetString
    - PyUnicode_Check
    - strcmp
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: "int conv_confname(PyObject *arg, int *valuep, struct constdef *table,\n
      \             size_t tablesize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conv_confname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - valuep
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10781
      start: 10775
    functionDepth: 2
    functionLinenumber: 10775
    functionLinenumberEnd: 10781
    functionName: conv_path_confname
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - conv_confname
    linkageType: ''
    returnType: int
    signature: int conv_path_confname(PyObject *arg, int *valuep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fpathconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10805,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - module
    - fd
    - name
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10810
      start: 10798
    functionDepth: 2
    functionLinenumber: 10798
    functionLinenumberEnd: 10810
    functionName: os_fpathconf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - fpathconf
    linkageType: ''
    returnType: long
    signature: long os_fpathconf_impl(PyObject *module, int fd, int name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fpathconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10836,1
    - Dst: pathconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10839,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10843,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:10845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - module
    - path
    - name
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10849
      start: 10827
    functionDepth: 4
    functionLinenumber: 10827
    functionLinenumberEnd: 10849
    functionName: os_pathconf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - path_error
    - fpathconf
    - pathconf
    linkageType: ''
    returnType: long
    signature: long os_pathconf_impl(PyObject *module, path_t *path, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conv_confname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - valuep
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11012
      start: 11006
    functionDepth: 2
    functionLinenumber: 11006
    functionLinenumberEnd: 11012
    functionName: conv_confstr_confname
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - conv_confname
    linkageType: ''
    returnType: int
    signature: int conv_confstr_confname(PyObject *arg, int *valuep)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: confstr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11033,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11036,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11046,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11048,1
    - Dst: confstr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11049,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11050,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11051,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11052,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (len == len2)
      pos:
        line_end: 11049
        line_start: 11049
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 11057
      start: 11024
    functionDepth: 2
    functionLinenumber: 11024
    functionLinenumberEnd: 11057
    functionName: os_confstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - PyMem_Malloc
    - PyErr_NoMemory
    - confstr
    - PyMem_Free
    - posix_error
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_confstr_impl(PyObject *module, int name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conv_confname
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - valuep
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11563
      start: 11557
    functionDepth: 2
    functionLinenumber: 11557
    functionLinenumberEnd: 11563
    functionName: conv_sysconf_confname
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - conv_confname
    linkageType: ''
    returnType: int
    signature: int conv_sysconf_confname(PyObject *arg, int *valuep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11581,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11585
      start: 11574
    functionDepth: 2
    functionLinenumber: 11574
    functionLinenumberEnd: 11585
    functionName: os_sysconf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - sysconf
    linkageType: ''
    returnType: long
    signature: long os_sysconf_impl(PyObject *module, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11608
      start: 11599
    functionDepth: 0
    functionLinenumber: 11599
    functionLinenumberEnd: 11608
    functionName: cmp_constdefs
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_constdefs(const void *v1,  const void *v2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11617,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11618,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11623,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11624,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11625,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11629,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - table
    - tablesize
    - tablename
    - module
    argTypes:
    - struct constdef*
    - size_t
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11632
      start: 11610
    functionDepth: 1
    functionLinenumber: 11610
    functionLinenumberEnd: 11632
    functionName: setup_confname_table
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyDict_New
    - PyModule_AddObject
    - qsort
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int setup_confname_table(struct constdef *table, size_t tablesize,\n
      \                    const char *tablename, PyObject *module)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_confname_table
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11639,1
    - Dst: setup_confname_table
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11646,1
    - Dst: setup_confname_table
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11660
      start: 11635
    functionDepth: 2
    functionLinenumber: 11635
    functionLinenumberEnd: 11660
    functionName: setup_confname_tables
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setup_confname_table
    linkageType: ''
    returnType: int
    signature: int setup_confname_tables(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11676,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11685
      start: 11672
    functionDepth: 1
    functionLinenumber: 11672
    functionLinenumberEnd: 11685
    functionName: os_abort_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - abort
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_abort_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11704,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11715
      start: 11692
    functionDepth: 0
    functionLinenumber: 11692
    functionLinenumberEnd: 11715
    functionName: check_ShellExecute
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - LoadLibraryW
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int check_ShellExecute()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_ShellExecute
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11748,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11751,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11755,1
    - Dst: Py_ShellExecuteW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11760,1
    - Dst: win32_error_object
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - filepath
    - operation
    argTypes:
    - PyObject*
    - path_t*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11769
      start: 11741
    functionDepth: 3
    functionLinenumber: 11741
    functionLinenumberEnd: 11769
    functionName: os_startfile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_ShellExecuteW
    - PySys_Audit
    - check_ShellExecute
    - win32_error_object
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_startfile_impl(PyObject *module, path_t *filepath,\n
      \                 const Py_UNICODE *operation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getloadavg
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11789,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11790,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11794
      start: 11784
    functionDepth: 1
    functionLinenumber: 11784
    functionLinenumberEnd: 11794
    functionName: os_getloadavg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_SetString
    - getloadavg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getloadavg_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_device_encoding
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11813
      start: 11808
    functionDepth: 1
    functionLinenumber: 11808
    functionLinenumberEnd: 11813
    functionName: os_device_encoding_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_device_encoding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_device_encoding_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setresuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11832,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - ruid
    - euid
    - suid
    argTypes:
    - PyObject*
    - uid_t
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11835
      start: 11828
    functionDepth: 2
    functionLinenumber: 11828
    functionLinenumberEnd: 11835
    functionName: os_setresuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setresuid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresuid_impl(PyObject *module, uid_t ruid, uid_t euid, uid_t suid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setresgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11855,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - rgid
    - egid
    - sgid
    argTypes:
    - PyObject*
    - gid_t
    - gid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11858
      start: 11851
    functionDepth: 2
    functionLinenumber: 11851
    functionLinenumberEnd: 11858
    functionName: os_setresgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - setresgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresgid_impl(PyObject *module, gid_t rgid, gid_t egid, gid_t sgid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getresuid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11874,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11875,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11876,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11876,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11877,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11879
      start: 11869
    functionDepth: 2
    functionLinenumber: 11869
    functionLinenumberEnd: 11879
    functionName: os_getresuid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - _PyLong_FromUid
    - getresuid
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresuid_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getresgid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11895,1
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11896,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11897,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11897,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11898,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11900
      start: 11890
    functionDepth: 2
    functionLinenumber: 11890
    functionLinenumberEnd: 11900
    functionName: os_getresgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - posix_error
    - _PyLong_FromGid
    - Py_BuildValue
    - getresgid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresgid_impl(PyObject *module)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11930,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11933,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11943,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11946,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11949,1
    - Dst: fgetxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11953,1
    - Dst: getxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11955,1
    - Dst: lgetxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11957,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11961,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11964,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:11970,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - module
    - path
    - attribute
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11976
      start: 11922
    functionDepth: 4
    functionLinenumber: 11922
    functionLinenumberEnd: 11976
    functionName: os_getxattr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fd_and_follow_symlinks_invalid
    - path_error
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - getxattr
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - fgetxattr
    - PySys_Audit
    - lgetxattr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_getxattr_impl(PyObject *module, path_t *path, path_t
      *attribute,\n                 int follow_symlinks)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12005,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12008,1
    - Dst: fsetxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12015,1
    - Dst: setxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12018,1
    - Dst: lsetxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12021,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - module
    - path
    - attribute
    - value
    - flags
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - Py_buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12031
      start: 11998
    functionDepth: 4
    functionLinenumber: 11998
    functionLinenumberEnd: 12031
    functionName: os_setxattr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - setxattr
    - fd_and_follow_symlinks_invalid
    - path_error
    - lsetxattr
    - PySys_Audit
    - fsetxattr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_setxattr_impl(PyObject *module, path_t *path, path_t
      *attribute,\n                 Py_buffer *value, int flags, int follow_symlinks)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12058,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12061,1
    - Dst: fremovexattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12067,1
    - Dst: removexattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12069,1
    - Dst: lremovexattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12071,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - path
    - attribute
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12079
      start: 12051
    functionDepth: 4
    functionLinenumber: 12051
    functionLinenumberEnd: 12079
    functionName: os_removexattr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fd_and_follow_symlinks_invalid
    - path_error
    - removexattr
    - fremovexattr
    - lremovexattr
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_removexattr_impl(PyObject *module, path_t *path, path_t
      *attribute,\n                    int follow_symlinks)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12107,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12110,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12124,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12127,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12129,1
    - Dst: flistxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12135,1
    - Dst: listxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12137,1
    - Dst: llistxattr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12139,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12144,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12148,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12152,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12164,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12168,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12171,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12182,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - module
    - path
    - follow_symlinks
    argTypes:
    - PyObject*
    - path_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12184
      start: 12098
    functionDepth: 4
    functionLinenumber: 12098
    functionLinenumberEnd: 12184
    functionName: os_listxattr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - fd_and_follow_symlinks_invalid
    - path_error
    - flistxattr
    - PyUnicode_DecodeFSDefaultAndSize
    - Py_DECREF
    - PyMem_MALLOC
    - PyErr_NoMemory
    - llistxattr
    - PyMem_FREE
    - PyList_Append
    - listxattr
    - PyList_New
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listxattr_impl(PyObject *module, path_t *path, int follow_symlinks)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12205,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12207,1
    - Dst: _PyOS_URandom
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12211,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12211,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12211,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12217
      start: 12197
    functionDepth: 1
    functionLinenumber: 12197
    functionLinenumberEnd: 12217
    functionName: os_urandom_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyOS_URandom
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_urandom_impl(PyObject *module, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12233,1
    - Dst: memfd_create
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12235,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12238,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - name
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12241
      start: 12228
    functionDepth: 1
    functionLinenumber: 12228
    functionLinenumberEnd: 12241
    functionName: os_memfd_create_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - memfd_create
    - PyLong_FromLong
    - PyErr_SetFromErrno
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_memfd_create_impl(PyObject *module, PyObject *name, unsigned int flags)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12287,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12296,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12302,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12303,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12322,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12324,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12326,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12328,1
    - Dst: GetConsoleScreenBufferInfo
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12330,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12331,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12338,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12341,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12341,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12342,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12342,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12343,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12344,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12348
      start: 12281
    functionDepth: 1
    functionLinenumber: 12281
    functionLinenumberEnd: 12348
    functionName: get_terminal_size
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GetConsoleScreenBufferInfo
    - ioctl
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyErr_SetFromErrno
    - GetStdHandle
    - PyStructSequence_New
    - PyErr_Format
    - PyErr_SetFromWindowsErr
    - fileno
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_terminal_size(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetActiveProcessorCount
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12370,1
    - Dst: mpctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12372,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12374,1
    - Dst: sysctl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12384,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12391
      start: 12362
    functionDepth: 0
    functionLinenumber: 12362
    functionLinenumberEnd: 12391
    functionName: os_cpu_count_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GetActiveProcessorCount
    - mpctl
    - sysconf
    - sysctl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_cpu_count_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12412
      start: 12403
    functionDepth: 1
    functionLinenumber: 12403
    functionLinenumberEnd: 12412
    functionName: os_get_inheritable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_get_inheritable
    linkageType: ''
    returnType: int
    signature: int os_get_inheritable_impl(PyObject *module, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - inheritable
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12436
      start: 12424
    functionDepth: 1
    functionLinenumber: 12424
    functionLinenumberEnd: 12436
    functionName: os_set_inheritable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_set_inheritable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_inheritable_impl(PyObject *module, int fd, int inheritable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetHandleInformation
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12454,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12460
      start: 12448
    functionDepth: 1
    functionLinenumber: 12448
    functionLinenumberEnd: 12460
    functionName: os_get_handle_inheritable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - GetHandleInformation
    linkageType: ''
    returnType: int
    signature: int os_get_handle_inheritable_impl(PyObject *module, intptr_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetHandleInformation
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12478,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - handle
    - inheritable
    argTypes:
    - PyObject*
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12483
      start: 12472
    functionDepth: 1
    functionLinenumber: 12472
    functionLinenumberEnd: 12483
    functionName: os_set_handle_inheritable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - SetHandleInformation
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nos_set_handle_inheritable_impl(PyObject *module, intptr_t
      handle,\n                               int inheritable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_blocking
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12507
      start: 12497
    functionDepth: 1
    functionLinenumber: 12497
    functionLinenumberEnd: 12507
    functionName: os_get_blocking_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_get_blocking
    linkageType: ''
    returnType: int
    signature: int os_get_blocking_impl(PyObject *module, int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_set_blocking
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - blocking
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12533
      start: 12521
    functionDepth: 1
    functionLinenumber: 12521
    functionLinenumberEnd: 12533
    functionName: os_set_blocking_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_set_blocking
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_blocking_impl(PyObject *module, int fd, int blocking)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12564,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12565,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12566,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12567,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12569
      start: 12561
    functionDepth: 1
    functionLinenumber: 12561
    functionLinenumberEnd: 12569
    functionName: DirEntry_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void DirEntry_dealloc(DirEntry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12592,1
    - Dst: DirEntry_test_mode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12597
      start: 12581
    functionDepth: 1
    functionLinenumber: 12581
    functionLinenumberEnd: 12597
    functionName: os_DirEntry_is_symlink_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: int os_DirEntry_is_symlink_impl(DirEntry *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12607,1
    - Dst: PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12609,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12611,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12613,1
    - Dst: fstatat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12616,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12619,1
    - Dst: STAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12627,1
    - Dst: LSTAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12629,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12631,1
    - Dst: path_object_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12634,1
    - Dst: _pystat_fromstructstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - follow_symlinks
    argTypes:
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12637
      start: 12599
    functionDepth: 3
    functionLinenumber: 12599
    functionLinenumberEnd: 12637
    functionName: DirEntry_fetch_stat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - STAT
    - Py_DECREF
    - PyUnicode_FSDecoder
    - LSTAT
    - PyUnicode_AsUnicode
    - PyBytes_AS_STRING
    - PyErr_SetString
    - fstatat
    - _pystat_fromstructstat
    - PyUnicode_FSConverter
    - path_object_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_fetch_stat(DirEntry *self, int follow_symlinks)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pystat_fromstructstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12644,1
    - Dst: DirEntry_fetch_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12646,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12651
      start: 12639
    functionDepth: 4
    functionLinenumber: 12639
    functionLinenumberEnd: 12651
    functionName: DirEntry_get_lstat
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_fetch_stat
    - Py_XINCREF
    - _pystat_fromstructstat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_get_lstat(DirEntry *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_get_lstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12666,1
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12669,1
    - Dst: DirEntry_fetch_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12673,1
    - Dst: DirEntry_get_lstat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12675,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - follow_symlinks
    argTypes:
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12680
      start: 12661
    functionDepth: 5
    functionLinenumber: 12661
    functionLinenumberEnd: 12680
    functionName: os_DirEntry_stat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - os_DirEntry_is_symlink_impl
    - DirEntry_fetch_stat
    - Py_XINCREF
    - DirEntry_get_lstat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_stat_impl(DirEntry *self, int follow_symlinks)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12697,1
    - Dst: os_DirEntry_stat_impl
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12710,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12712,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12715,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12720,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12724,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12725,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12727,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12728,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12733,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12737,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12756,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12757,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 3
    argNames:
    - self
    - follow_symlinks
    - mode_bits
    argTypes:
    - DirEntry*
    - int
    - unsigned short
    assertStmts:
    - condition: (mode_bits != S_IFLNK)
      pos:
        line_end: 12732
        line_start: 12732
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - condition: (mode_bits == S_IFDIR || mode_bits == S_IFREG)
      pos:
        line_end: 12736
        line_start: 12736
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    constantsTouched: []
    func_position:
      end: 12759
      start: 12683
    functionDepth: 6
    functionLinenumber: 12683
    functionLinenumberEnd: 12759
    functionName: DirEntry_test_mode
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_CLEAR
    - os_DirEntry_stat_impl
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int DirEntry_test_mode(DirEntry *self, int follow_symlinks, unsigned
      short mode_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - follow_symlinks
    argTypes:
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12774
      start: 12769
    functionDepth: 7
    functionLinenumber: 12769
    functionLinenumberEnd: 12774
    functionName: os_DirEntry_is_dir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: int os_DirEntry_is_dir_impl(DirEntry *self, int follow_symlinks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry_test_mode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - follow_symlinks
    argTypes:
    - DirEntry*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12789
      start: 12784
    functionDepth: 7
    functionLinenumber: 12784
    functionLinenumberEnd: 12789
    functionName: os_DirEntry_is_file_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - DirEntry_test_mode
    linkageType: ''
    returnType: int
    signature: int os_DirEntry_is_file_impl(DirEntry *self, int follow_symlinks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12808,1
    - Dst: PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12810,1
    - Dst: LSTAT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12811,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12812,1
    - Dst: path_object_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12815,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12820,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12821,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12823,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12826
      start: 12797
    functionDepth: 3
    functionLinenumber: 12797
    functionLinenumberEnd: 12826
    functionName: os_DirEntry_inode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - Py_DECREF
    - PyUnicode_FSDecoder
    - LSTAT
    - PyUnicode_AsUnicode
    - path_object_error
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_inode_impl(DirEntry *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12832
      start: 12828
    functionDepth: 1
    functionLinenumber: 12828
    functionLinenumberEnd: 12832
    functionName: DirEntry_repr
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_repr(DirEntry *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - DirEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12846
      start: 12840
    functionDepth: 1
    functionLinenumber: 12840
    functionLinenumberEnd: 12846
    functionName: os_DirEntry___fspath___impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry___fspath___impl(DirEntry *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12916,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12920,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12921,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12923,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12926,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - path_wide
    - filename
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12934
      start: 12903
    functionDepth: 1
    functionLinenumber: 12903
    functionLinenumberEnd: 12934
    functionName: join_path_filenameW
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - wcscpy
    - PyMem_New
    - PyErr_NoMemory
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      join_path_filenameW(const wchar_t *path_wide, const wchar_t *filename)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12944,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12953,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12957,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12957,1
    - Dst: join_path_filenameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12962,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12966,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12967,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12971,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12971,1
    - Dst: find_data_to_file_info
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12976,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:12982,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - path
    - dataW
    argTypes:
    - path_t*
    - WIN32_FIND_DATAW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12984
      start: 12936
    functionDepth: 2
    functionLinenumber: 12936
    functionLinenumberEnd: 12984
    functionName: DirEntry_from_find_data
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - _Py_attribute_data_to_stat
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - find_data_to_file_info
    - join_path_filenameW
    - PyUnicode_FromWideChar
    - PyMem_Free
    - Py_SETREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      DirEntry_from_find_data(path_t *path, WIN32_FIND_DATAW *dataW)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13000,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13004,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13008,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13010,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13013,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13016,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - path_narrow
    - filename
    - filename_len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13018
      start: 12988
    functionDepth: 1
    functionLinenumber: 12988
    functionLinenumberEnd: 13018
    functionName: join_path_filename
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyMem_New
    - strcpy
    - PyErr_NoMemory
    linkageType: ''
    returnType: char
    signature: 'char *

      join_path_filename(const char *path_narrow, const char* filename, Py_ssize_t
      filename_len)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13031,1
    - Dst: join_path_filename
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13045,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13050,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13051,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13053,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13056,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13058,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13060,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13066,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13079,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 5
    argNames:
    - path
    - name
    - name_len
    - d_ino
    - d_type
    argTypes:
    - path_t*
    - char*
    - Py_ssize_t
    - ino_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13081
      start: 13020
    functionDepth: 2
    functionLinenumber: 13020
    functionLinenumberEnd: 13081
    functionName: DirEntry_from_posix_info
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - PyBytes_FromStringAndSize
    - PyUnicode_DecodeFSDefault
    - PyObject_CheckBuffer
    - Py_INCREF
    - PyBytes_FromString
    - join_path_filename
    - PyMem_Free
    - Py_XDECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nDirEntry_from_posix_info(path_t *path, const char *name,
      Py_ssize_t name_len,\n                         ino_t d_ino\n#ifdef HAVE_DIRENT_D_TYPE\n
      \                        , unsigned char d_type\n#endif\n                         )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13107
      start: 13103
    functionDepth: 0
    functionLinenumber: 13103
    functionLinenumberEnd: 13107
    functionName: ScandirIterator_is_closed
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ScandirIterator_is_closed(ScandirIterator *iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13121
      start: 13109
    functionDepth: 0
    functionLinenumber: 13109
    functionLinenumberEnd: 13121
    functionName: ScandirIterator_closedir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_closedir(ScandirIterator *iterator)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FindNextFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13137,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13141,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13142,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13149,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13150,1
    - Dst: DirEntry_from_find_data
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13151,1
    - Dst: ScandirIterator_closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13163
      start: 13123
    functionDepth: 4
    functionLinenumber: 13123
    functionLinenumberEnd: 13163
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - GetLastError
    - path_error
    - DirEntry_from_find_data
    - FindNextFileW
    - wcscmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_iternext(ScandirIterator *iterator)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13171
      start: 13167
    functionDepth: 0
    functionLinenumber: 13167
    functionLinenumberEnd: 13171
    functionName: ScandirIterator_is_closed
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ScandirIterator_is_closed(ScandirIterator *iterator)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rewinddir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13185,1
    - Dst: closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13190
      start: 13173
    functionDepth: 0
    functionLinenumber: 13173
    functionLinenumberEnd: 13190
    functionName: ScandirIterator_closedir
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 1
    functionsReached:
    - closedir
    - rewinddir
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_closedir(ScandirIterator *iterator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13207,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13213,1
    - Dst: NAMLEN
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13218,1
    - Dst: DirEntry_from_posix_info
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13222,1
    - Dst: ScandirIterator_closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13237,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13239
      start: 13192
    functionDepth: 4
    functionLinenumber: 13192
    functionLinenumberEnd: 13239
    functionName: ScandirIterator_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - path_error
    - DirEntry_from_posix_info
    - NAMLEN
    - readdir
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_iternext(ScandirIterator *iterator)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ScandirIterator*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13248
      start: 13243
    functionDepth: 1
    functionLinenumber: 13243
    functionLinenumberEnd: 13248
    functionName: ScandirIterator_close
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_close(ScandirIterator *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13255
      start: 13250
    functionDepth: 1
    functionLinenumber: 13250
    functionLinenumberEnd: 13255
    functionName: ScandirIterator_enter
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_enter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScandirIterator_closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ScandirIterator*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13262
      start: 13257
    functionDepth: 1
    functionLinenumber: 13257
    functionLinenumberEnd: 13262
    functionName: ScandirIterator_exit
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ScandirIterator_exit(ScandirIterator *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13270,1
    - Dst: ScandirIterator_is_closed
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13272,1
    - Dst: ScandirIterator_closedir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13273,1
    - Dst: PyErr_ResourceWarning
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13275,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13278,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13279,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13284,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13288
      start: 13264
    functionDepth: 2
    functionLinenumber: 13264
    functionLinenumberEnd: 13288
    functionName: ScandirIterator_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - ScandirIterator_closedir
    - ScandirIterator_is_closed
    - PyErr_Fetch
    - PyErr_WriteUnraisable
    - PyErr_ExceptionMatches
    - path_cleanup
    - PyErr_Restore
    - PyErr_ResourceWarning
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_finalize(ScandirIterator *iterator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13293,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - ScandirIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13297
      start: 13290
    functionDepth: 1
    functionLinenumber: 13290
    functionLinenumberEnd: 13297
    functionName: ScandirIterator_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ScandirIterator_dealloc(ScandirIterator *iterator)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13386,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13391,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13401,1
    - Dst: join_path_filenameW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13409,1
    - Dst: FindFirstFileW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13414,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13420,1
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13428,1
    - Dst: fdopendir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13433,1
    - Dst: opendir
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13445,1
    - Dst: path_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13465,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13467
      start: 13372
    functionDepth: 4
    functionLinenumber: 13372
    functionLinenumberEnd: 13467
    functionName: os_scandir_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - opendir
    - path_error
    - memcpy
    - Py_DECREF
    - join_path_filenameW
    - fdopendir
    - FindFirstFileW
    - PySys_Audit
    - _Py_dup
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_scandir_impl(PyObject *module, path_t *path)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13481,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13485,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13486,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13490,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13492,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13495,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13499,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13504,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13504,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13505,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13507,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13509,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13514
      start: 13476
    functionDepth: 1
    functionLinenumber: 13476
    functionLinenumberEnd: 13514
    functionName: PyOS_FSPath
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyOS_FSPath(PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_FSPath
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13533
      start: 13528
    functionDepth: 2
    functionLinenumber: 13528
    functionLinenumberEnd: 13533
    functionName: os_fspath_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_FSPath
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fspath_impl(PyObject *module, PyObject *path)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: posix_error
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13554,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13557,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13559,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13564,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13565,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13566,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13569,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13580,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13591,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - module
    - size
    - flags
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13593
      start: 13545
    functionDepth: 2
    functionLinenumber: 13545
    functionLinenumberEnd: 13593
    functionName: os_getrandom_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyErr_CheckSignals
    - PyErr_NoMemory
    - syscall
    - PyErr_SetFromErrno
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - posix_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getrandom_impl(PyObject *module, Py_ssize_t size, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13628,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13636,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13637,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13640,1
    - Dst: win32_error_object_err
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13645,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - path_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13650
      start: 13619
    functionDepth: 2
    functionLinenumber: 13619
    functionLinenumberEnd: 13650
    functionName: os__add_dll_directory_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetProcAddress
    - PyCapsule_New
    - GetModuleHandleW
    - PySys_Audit
    - win32_error_object_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__add_dll_directory_impl(PyObject *module, path_t *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_error_object_err
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13647
      start: 13642
    functionDepth: 2
    functionLinenumber: 13642
    functionLinenumberEnd: 13647
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_IsValid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13673,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13674,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13679,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13686,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13687,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13690,1
    - Dst: win32_error_object_err
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13695,1
    - Dst: PyCapsule_SetName
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - cookie
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13704
      start: 13664
    functionDepth: 2
    functionLinenumber: 13664
    functionLinenumberEnd: 13704
    functionName: os__remove_dll_directory_impl
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_IsValid
    - GetLastError
    - GetProcAddress
    - PyCapsule_GetPointer
    - PyCapsule_SetName
    - PyErr_SetString
    - GetModuleHandleW
    - win32_error_object_err
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__remove_dll_directory_impl(PyObject *module, PyObject *cookie)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win32_error_object_err
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13697
      start: 13692
    functionDepth: 2
    functionLinenumber: 13692
    functionLinenumberEnd: 13697
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - win32_error_object_err
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 162
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13907,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13910,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13913,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13916,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13919,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13922,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13925,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13928,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13931,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13934,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13937,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13940,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13943,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13946,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13949,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13952,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13955,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13958,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13961,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13964,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13967,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13970,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13973,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13976,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13979,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13982,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13986,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13989,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13993,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13996,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:13999,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14002,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14005,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14008,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14011,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14014,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14017,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14020,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14025,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14028,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14034,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14039,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14043,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14047,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14051,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14058,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14062,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14066,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14070,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14074,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14078,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14083,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14086,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14089,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14092,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14095,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14098,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14101,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14104,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14107,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14110,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14113,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14116,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14119,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14122,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14125,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14128,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14131,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14136,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14139,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14144,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14147,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14150,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14153,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14156,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14159,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14162,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14165,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14168,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14173,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14176,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14179,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14184,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14187,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14190,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14193,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14196,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14199,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14204,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14205,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14206,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14209,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14212,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14215,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14218,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14221,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14224,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14227,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14232,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14235,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14238,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14241,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14245,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14248,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14251,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14254,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14259,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14260,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14261,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14265,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14266,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14267,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14270,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14271,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14276,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14279,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14282,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14285,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14288,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14291,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14294,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14297,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14300,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14303,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14306,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14311,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14312,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14313,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14317,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14320,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14323,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14326,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14329,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14332,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14335,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14338,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14342,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14343,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14346,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14347,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14349,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14352,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14355,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14358,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14361,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14364,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14367,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14370,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14373,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14376,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14379,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14382,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14385,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14388,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14391,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14396,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14400,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14401,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14402,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14403,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14404,1
    CyclomaticComplexity: 163
    EdgeCount: 163
    ICount: 324
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14408
      start: 13903
    functionDepth: 1
    functionLinenumber: 13903
    functionLinenumberEnd: 14408
    functionName: all_ins
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int all_ins(PyObject *m)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14565,1
    - Dst: convertenviron
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14570,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14571,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14572,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14574,1
    - Dst: all_ins
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14576,1
    - Dst: setup_confname_tables
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14579,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14582,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14583,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14587,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14593,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14603,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14611,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14617,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14627,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14635,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14641,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14643,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14647,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14648,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14650,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14651,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14652,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14653,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14657,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14658,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14662,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14666,1
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14669,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14673,1
    - Dst: PyObject_DelAttrString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14688,1
    - Dst: PyObject_DelAttrString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14696,1
    - Dst: PyObject_DelAttrString
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14704,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14713,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14714,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14716,1
    - Dst: fd_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14723,1
    - Dst: follow_symlinks_specified
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14724,1
    - Dst: dir_fd_and_follow_symlinks_invalid
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14725,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14726,1
    - Dst: dir_fd_unavailable
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14727,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14734,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14738,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14738,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14741,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14743,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14745,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14747,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/posixmodule.c:14748,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14753
      start: 14558
    functionDepth: 4
    functionLinenumber: 14558
    functionLinenumberEnd: 14753
    functionName: INITFUNC
    functionSourceFile: /src/Python-3.8.3/Modules/posixmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - setup_confname_tables
    - dir_fd_converter
    - dir_fd_and_follow_symlinks_invalid
    - PyList_New
    - follow_symlinks_specified
    - Py_INCREF
    - PyModule_Create
    - strlen
    - fd_specified
    - PyStructSequence_NewType
    - Py_DECREF
    - dir_fd_unavailable
    - PyType_Ready
    - sysconf
    - PyDict_New
    - PyModule_AddObject
    - PyList_Append
    - PyObject_DelAttrString
    - all_ins
    - convertenviron
    - PyUnicode_DecodeASCII
    - Py_XINCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC INITFUNC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: FutureObj_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FutureObj_HEAD(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: Future_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Future_CheckExact(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: Task_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Task_CheckExact(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: Future_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Future_Check(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Task_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Task_Check(obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:145,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:152,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:157,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:162,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    functionName: _is_coroutine
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyObject_IsTrue
    - PySet_GET_SIZE
    - PySet_Add
    linkageType: ''
    returnType: int
    signature: int _is_coroutine(PyObject *coro)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:174,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:187,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:188,1
    - Dst: _is_coroutine
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 198
    functionName: is_coroutine
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    - PyCoro_CheckExact
    - _is_coroutine
    - PySet_Contains
    linkageType: ''
    returnType: int
    signature: int is_coroutine(PyObject *coro)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:206,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:207,1
    - Dst: Future_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:210,1
    - Dst: Task_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:210,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:212,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:216,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:221,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - fut
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: get_future_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Task_CheckExact
    - Py_INCREF
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - Future_CheckExact
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_future_loop(PyObject *fut)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:234,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:244,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:247,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:259,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:259,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:270,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - loop
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (Py_TYPE(rl) == &PyRunningLoopHolder_Type)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 286
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 286
    functionName: get_running_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - getpid
    - Py_INCREF
    - PyThreadState_Get
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int get_running_loop(PyObject **loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:295,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:297,1
    - Dst: new_running_loop_holder
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:302,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:307,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - loop
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 316
    functionName: set_running_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - new_running_loop_holder
    - _PyDict_SetItemId
    - PyErr_SetString
    - PyThreadState_GetDict
    linkageType: ''
    returnType: int
    signature: int set_running_loop(PyObject *loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_running_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:325,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:332,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:337,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: get_event_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_running_loop
    - _PyObject_CallNoArg
    - Py_DECREF
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_event_loop(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:351,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:357,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - loop
    - func
    - arg
    - ctx
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 380
    functionName: call_soon
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - _PyObject_CallMethodIdObjArgs
    - _PyObject_Vectorcall
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int call_soon(PyObject *loop, PyObject *func, PyObject *arg, PyObject
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: future_is_alive
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int future_is_alive(FutureObj *fut)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:393,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: future_ensure_alive
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int future_ensure_alive(FutureObj *fut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: ENSURE_FUTURE_ALIVE
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_FUTURE_ALIVE(fut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:420,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:424,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:425,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:429,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:442,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:445,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:450,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:451,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:452,1
    - Dst: call_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:454,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:457,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 464
    functionName: future_schedule_callbacks
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - call_soon
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int future_schedule_callbacks(FutureObj *fut)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:472,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:475,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:476,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:477,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:478,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:479,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:480,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:481,1
    - Dst: get_event_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:488,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:494,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:498,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:502,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:503,1
    - Dst: _Py_IsFinalizing
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:507,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - fut
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 521
    functionName: future_init
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - get_event_loop
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - _Py_IsFinalizing
    - PyObject_IsTrue
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int future_init(FutureObj *fut, PyObject *loop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: future_ensure_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:531,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:535,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:536,1
    - Dst: future_schedule_callbacks
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - fut
    - res
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (!fut->fut_result)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 544
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 544
    functionName: future_set_result
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - future_ensure_alive
    - PyErr_SetString
    - assert
    - future_schedule_callbacks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_set_result(FutureObj *fut, PyObject *res)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:552,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:556,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:557,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:562,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:563,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:569,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:572,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:573,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:577,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:578,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:584,1
    - Dst: future_schedule_callbacks
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - fut
    - exc
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts:
    - condition: (!fut->fut_exception)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 594
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 594
    functionName: future_set_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - Py_DECREF
    - Py_INCREF
    - PyExceptionClass_Check
    - Py_TYPE
    - PyErr_SetString
    - assert
    - _PyObject_CallNoArg
    - future_schedule_callbacks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_set_exception(FutureObj *fut, PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:600,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:605,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:611,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - fut
    - result
    argTypes:
    - FutureObj*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 619
    functionName: future_get_result
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_SetString
    - PyErr_SetNone
    linkageType: ''
    returnType: int
    signature: int future_get_result(FutureObj *fut, PyObject **result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:624,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:625,1
    - Dst: call_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:632,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:659,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:661,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:665,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:669,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:670,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:671,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:672,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:675,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:677,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:680,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:683,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - fut
    - arg
    - ctx
    argTypes:
    - FutureObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 694
    functionName: future_add_done_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - call_soon
    - PyList_SET_ITEM
    - future_is_alive
    - PyList_Append
    - PyErr_SetString
    - PyList_New
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_add_done_callback(FutureObj *fut, PyObject *arg, PyObject *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: future_schedule_callbacks
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 711
    functionName: future_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_schedule_callbacks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_cancel(FutureObj *fut)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: future_init
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - loop
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 739
    functionName: _asyncio_Future___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_init
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future___init___impl(FutureObj *self, PyObject *loop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:744,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:745,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:746,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:747,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:748,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:749,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:750,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 753
    functionName: FutureObj_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int FutureObj_clear(FutureObj *fut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:758,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:759,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:760,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:761,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:762,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:763,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:764,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - fut
    - visit
    - arg
    argTypes:
    - FutureObj*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 767
    functionName: FutureObj_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int FutureObj_traverse(FutureObj *fut, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:786,1
    - Dst: future_get_result
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:791,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:801,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:803,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:803,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 800
        line_start: 800
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 806
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: _asyncio_Future_result_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyExceptionInstance_Class
    - PyErr_SetObject
    - future_is_alive
    - PyErr_SetString
    - assert
    - future_get_result
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_result_impl(FutureObj *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:823,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:824,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:830,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:835,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 846
    functionName: _asyncio_Future_exception_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - Py_INCREF
    - PyErr_SetString
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_exception_impl(FutureObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:864,1
    - Dst: future_set_result
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 866
    functionName: _asyncio_Future_set_result
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_set_result
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_set_result(FutureObj *self, PyObject *result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:884,1
    - Dst: future_set_exception
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 886
    functionName: _asyncio_Future_set_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - future_set_exception
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_set_exception(FutureObj *self, PyObject *exception)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CopyCurrent
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:909,1
    - Dst: future_add_done_callback
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:914,1
    - Dst: future_add_done_callback
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - fn
    - context
    argTypes:
    - FutureObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 918
    functionName: _asyncio_Future_add_done_callback_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyContext_CopyCurrent
    - future_add_done_callback
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Future_add_done_callback_impl(FutureObj *self,
      PyObject *fn,\n                                       PyObject *context)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:939,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:942,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:948,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:949,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:955,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:958,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:960,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:961,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:965,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:966,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:967,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:973,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:974,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:977,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:980,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:985,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:987,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:988,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:989,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:989,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:992,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:996,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:998,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1006,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1007,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1011,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1013,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1014,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1020,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1021,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1024,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 2
    argNames:
    - self
    - fn
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 1026
    functionName: _asyncio_Future_remove_done_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - PyList_SetSlice
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_SET_ITEM
    - PyList_Append
    - PyObject_RichCompareBool
    - Py_SIZE
    - PyList_New
    - PyList_GET_SIZE
    - PyLong_FromSsize_t
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_remove_done_callback(FutureObj *self, PyObject *fn)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1042,1
    - Dst: future_cancel
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1038
    functionDepth: 4
    functionLinenumber: 1038
    functionLinenumberEnd: 1044
    functionName: _asyncio_Future_cancel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_cancel
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancel_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: _asyncio_Future_cancelled_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancelled_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1083
    functionName: _asyncio_Future_done_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_done_impl(FutureObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1095,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1098
    functionName: _asyncio_Future_get_loop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_get_loop_impl(FutureObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1109
    functionName: FutureObj_get_blocking
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_blocking(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: future_ensure_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1114,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1118,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fut
    - val
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1128
    functionName: FutureObj_set_blocking
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_ensure_alive
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int FutureObj_set_blocking(FutureObj *fut, PyObject *val, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1140
    functionName: FutureObj_get_log_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_log_traceback(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1146,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1149,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - fut
    - val
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1160
    functionName: FutureObj_set_log_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int FutureObj_set_log_traceback(FutureObj *fut, PyObject *val, void
      *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1165,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1170
    functionName: FutureObj_get_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_loop(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1177,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1184,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1190,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1194,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1201,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1205,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1206,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1207,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1208,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1209,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1211,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1214,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1215,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1216,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts:
    - condition: (fut->fut_context0 != NULL)
      pos:
        line_end: 1206
        line_start: 1206
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1222
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1222
    functionName: FutureObj_get_callbacks
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - assert
    - Py_DECREF
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_GET_ITEM
    - PyList_New
    - PyList_GET_SIZE
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_callbacks(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1227,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1233
    functionName: FutureObj_get_result
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_result(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1238,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1244
    functionName: FutureObj_get_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_exception(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: future_is_alive
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1249,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1254
    functionName: FutureObj_get_source_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - future_is_alive
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_source_traceback(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1259,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1260,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1261,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1264,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1268,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1271,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1274,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1277,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - fut
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - void*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1281
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1281
    functionName: FutureObj_get_state
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1293
    functionName: _asyncio_Future__repr_info_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__repr_info_impl(FutureObj *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1298,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1300,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1302,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1310,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1315,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1316,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1316,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1319
    functionName: FutureObj_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - PyUnicode_Join
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureObj_repr(FutureObj *fut)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1324,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1325,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1326,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1327,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1328,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1338,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1342,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1344,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1349,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1350,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1350,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1355,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1356,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1357,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1361,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1367,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1369,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1380,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1381,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1384,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 1
    argNames:
    - fut
    argTypes:
    - FutureObj*
    assertStmts:
    - condition: (fut->fut_exception != NULL)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 1385
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1385
    functionName: FutureObj_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyErr_Fetch
    - PyDict_New
    - PyErr_Restore
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyUnicode_FromFormat
    - PyErr_WriteUnraisable
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - assert
    - _PyType_Name
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void FutureObj_finalize(FutureObj *fut)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Future_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1454,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1458,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1464,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1467,1
    - Dst: FutureObj_clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1470,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1472
    functionName: FutureObj_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - FutureObj_clear
    - Future_CheckExact
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void FutureObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1491,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1492,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - futureiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1502
    functionName: FutureIter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void FutureIter_dealloc(futureiterobject *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1520,1
    - Dst: _asyncio_Future_result_impl
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1526,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1529,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - it
    argTypes:
    - futureiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1535
    functionName: FutureIter_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _asyncio_Future_result_impl
    - PyErr_SetString
    - _PyGen_SetStopIterationValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_iternext(futureiterobject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FutureIter_iternext
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - futureiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1537
    functionDepth: 4
    functionLinenumber: 1537
    functionLinenumberEnd: 1544
    functionName: FutureIter_send
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - FutureIter_iternext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_send(futureiterobject *self, PyObject *unused)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1550,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1559,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1563,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1564,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1565,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1567,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1568,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1573,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1578,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1579,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1581,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1583,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1589,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1596,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1597,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - futureiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1600
    functionName: FutureIter_throw
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_GetTraceback
    - Py_CLEAR
    - Py_DECREF
    - PyExceptionInstance_Class
    - Py_INCREF
    - PyExceptionClass_Check
    - Py_XDECREF
    - PyTraceBack_Check
    - PyErr_NormalizeException
    - PyErr_SetString
    - PyErr_Restore
    - Py_XINCREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_throw(futureiterobject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - futureiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1607
    functionName: FutureIter_close
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FutureIter_close(futureiterobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - futureiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1614
    functionName: FutureIter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int FutureIter_traverse(futureiterobject *it, visitproc visit, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1642,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1643,1
    - Dst: ENSURE_FUTURE_ALIVE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1647,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1654,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1657,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1663,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - fut
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1667
    functionName: future_new_iter
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - ENSURE_FUTURE_ALIVE
    - Py_INCREF
    - _Py_NewReference
    - PyErr_BadInternalCall
    - PyObject_TypeCheck
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      future_new_iter(PyObject *fut)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1687,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - TaskStepMethWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1690
    functionName: TaskStepMethWrapper_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int TaskStepMethWrapper_clear(TaskStepMethWrapper *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1695,1
    - Dst: TaskStepMethWrapper_clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1696,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - TaskStepMethWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1692
    functionDepth: 2
    functionLinenumber: 1692
    functionLinenumberEnd: 1698
    functionName: TaskStepMethWrapper_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - TaskStepMethWrapper_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TaskStepMethWrapper_dealloc(TaskStepMethWrapper *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1704,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1705,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1708,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1709,1
    - Dst: task_step
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - o
    - args
    - kwds
    argTypes:
    - TaskStepMethWrapper*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1713
    functionName: TaskStepMethWrapper_call
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - task_step
    - PyErr_SetString
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nTaskStepMethWrapper_call(TaskStepMethWrapper *o,\n                         PyObject
      *args, PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1719,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - TaskStepMethWrapper*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1722
    functionName: TaskStepMethWrapper_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int TaskStepMethWrapper_traverse(TaskStepMethWrapper *o,\n                             visitproc
      visit, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - Py_UNUSED(ignored)
    argTypes:
    - TaskStepMethWrapper*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1732
    functionName: TaskStepMethWrapper_get___self__
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskStepMethWrapper_get___self__(TaskStepMethWrapper *o, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1757,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1762,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1765,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - task
    - arg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1753
    functionDepth: 1
    functionLinenumber: 1753
    functionLinenumberEnd: 1770
    functionName: TaskStepMethWrapper_new
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_XINCREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskStepMethWrapper_new(TaskObj *task, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1780,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1781,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1784,1
    - Dst: task_wakeup
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - o
    - args
    - kwds
    argTypes:
    - TaskWakeupMethWrapper*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1789
    functionName: TaskWakeupMethWrapper_call
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - PyDict_GET_SIZE
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nTaskWakeupMethWrapper_call(TaskWakeupMethWrapper *o,\n
      \                          PyObject *args, PyObject *kwds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - TaskWakeupMethWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1796
    functionName: TaskWakeupMethWrapper_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int TaskWakeupMethWrapper_clear(TaskWakeupMethWrapper *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - TaskWakeupMethWrapper*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1798
    functionDepth: 1
    functionLinenumber: 1798
    functionLinenumberEnd: 1804
    functionName: TaskWakeupMethWrapper_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int TaskWakeupMethWrapper_traverse(TaskWakeupMethWrapper *o,\n                               visitproc
      visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1809,1
    - Dst: TaskWakeupMethWrapper_clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1810,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - TaskWakeupMethWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1806
    functionDepth: 2
    functionLinenumber: 1806
    functionLinenumberEnd: 1812
    functionName: TaskWakeupMethWrapper_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - TaskWakeupMethWrapper_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void TaskWakeupMethWrapper_dealloc(TaskWakeupMethWrapper *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - Py_UNUSED(ignored)
    argTypes:
    - TaskWakeupMethWrapper*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1822
    functionName: TaskWakeupMethWrapper_get___self__
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskWakeupMethWrapper_get___self__(TaskWakeupMethWrapper *o, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1847,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1852,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1843
    functionDepth: 1
    functionLinenumber: 1843
    functionLinenumberEnd: 1857
    functionName: TaskWakeupMethWrapper_new
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskWakeupMethWrapper_new(TaskObj *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1864,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1866,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - task
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1873
    functionName: register_task
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int register_task(PyObject *task)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1879,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - task
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1876
    functionDepth: 1
    functionLinenumber: 1876
    functionLinenumberEnd: 1888
    functionName: unregister_task
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int unregister_task(PyObject *task)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1896,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1900,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1902,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1903,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1908,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1911,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1915
    functionName: enter_task
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _PyDict_GetItem_KnownHash
    - PyErr_Format
    - PyObject_Hash
    linkageType: ''
    returnType: int
    signature: int enter_task(PyObject *loop, PyObject *task)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1924,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1928,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1934,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1940,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1941
    functionName: leave_task
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _PyDict_GetItem_KnownHash
    - PyErr_Format
    - _PyDict_DelItem_KnownHash
    linkageType: ''
    returnType: int
    signature: int leave_task(PyObject *loop, PyObject *task)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: future_init
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1961,1
    - Dst: is_coroutine
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1965,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1971,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1977,1
    - Dst: PyContext_CopyCurrent
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1977,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1982,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1985,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1986,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1989,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1990,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1991,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1993,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:1995,1
    - Dst: task_call_step_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2000,1
    - Dst: register_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2003,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 4
    argNames:
    - self
    - coro
    - loop
    - name
    argTypes:
    - TaskObj*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1956
    functionDepth: 4
    functionLinenumber: 1956
    functionLinenumberEnd: 2004
    functionName: _asyncio_Task___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - is_coroutine
    - Py_INCREF
    - Py_XSETREF
    - future_init
    - register_task
    - PyUnicode_FromFormat
    - PyObject_Str
    - PyErr_Format
    - PyContext_CopyCurrent
    - PyUnicode_CheckExact
    - task_call_step_soon
    linkageType: ''
    returnType: int
    signature: "int _asyncio_Task___init___impl(TaskObj *self, PyObject *coro, PyObject
      *loop,\n                            PyObject *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FutureObj_clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2009,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2010,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2011,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2012,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2015
    functionName: TaskObj_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - FutureObj_clear
    linkageType: ''
    returnType: int
    signature: int TaskObj_clear(TaskObj *task)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2020,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2021,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2022,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2023,1
    - Dst: FutureObj_traverse
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - task
    - visit
    - arg
    argTypes:
    - TaskObj*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2017
    functionDepth: 2
    functionLinenumber: 2017
    functionLinenumberEnd: 2026
    functionName: TaskObj_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - FutureObj_traverse
    linkageType: ''
    returnType: int
    signature: int TaskObj_traverse(TaskObj *task, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - task
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2037
    functionName: TaskObj_get_log_destroy_pending
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskObj_get_log_destroy_pending(TaskObj *task, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2043,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - task
    - val
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2052
    functionName: TaskObj_set_log_destroy_pending
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int TaskObj_set_log_destroy_pending(TaskObj *task, PyObject *val, void
      *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - task
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2054
    functionDepth: 0
    functionLinenumber: 2054
    functionLinenumberEnd: 2063
    functionName: TaskObj_get_must_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskObj_get_must_cancel(TaskObj *task, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - task
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2074
    functionName: TaskObj_get_coro
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskObj_get_coro(TaskObj *task, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - task
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2076
    functionDepth: 1
    functionLinenumber: 2076
    functionLinenumberEnd: 2085
    functionName: TaskObj_get_fut_waiter
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TaskObj_get_fut_waiter(TaskObj *task, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2107,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2114,1
    - Dst: get_event_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2122,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2125,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2127,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - type
    - loop
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2135
    functionName: _asyncio_Task_current_task_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - get_event_loop
    - PyObject_CallFunctionObjArgs
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_current_task_impl(PyTypeObject *type, PyObject *loop)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2155,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2162,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - type
    - loop
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2170
    functionName: _asyncio_Task_all_tasks_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_all_tasks_impl(PyTypeObject *type, PyObject *loop)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2176
    functionDepth: 1
    functionLinenumber: 2176
    functionLinenumberEnd: 2182
    functionName: _asyncio_Task__repr_info_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__repr_info_impl(TaskObj *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2221,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2240
    functionName: _asyncio_Task_cancel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyObject_CallMethodId
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancel_impl(TaskObj *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2269
    functionDepth: 1
    functionLinenumber: 2269
    functionLinenumberEnd: 2275
    functionName: _asyncio_Task_get_stack_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_stack_impl(TaskObj *self, PyObject *limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - limit
    - file
    argTypes:
    - TaskObj*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2293
    functionDepth: 1
    functionLinenumber: 2293
    functionLinenumberEnd: 2300
    functionName: _asyncio_Task_print_stack_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_asyncio_Task_print_stack_impl(TaskObj *self, PyObject
      *limit,\n                               PyObject *file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2316
    functionName: _asyncio_Task_set_result
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_result(TaskObj *self, PyObject *result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - exception
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2332
    functionName: _asyncio_Task_set_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_exception(TaskObj *self, PyObject *exception)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2344
    functionName: _asyncio_Task_get_coro_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_coro_impl(TaskObj *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2360
    functionName: _asyncio_Task_get_name_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_name_impl(TaskObj *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2373,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2374,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2379,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2384
    functionName: _asyncio_Task_set_name
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyObject_Str
    - PyUnicode_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_set_name(TaskObj *self, PyObject *value)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2389,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2390,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2391,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2392,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2404,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2406,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2411,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2416,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2417,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2423,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2430,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2432,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2439,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2443,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2444,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2447,1
    - Dst: FutureObj_finalize
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2450,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - task
    argTypes:
    - TaskObj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2386
    functionDepth: 2
    functionLinenumber: 2386
    functionLinenumberEnd: 2451
    functionName: TaskObj_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - FutureObj_finalize
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyErr_Fetch
    - PyDict_New
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyErr_WriteUnraisable
    - PyObject_CallFunctionObjArgs
    - PyErr_Restore
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void TaskObj_finalize(TaskObj *task)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Task_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2513,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2517,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2523,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2526,1
    - Dst: TaskObj_clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2529,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2508
    functionDepth: 3
    functionLinenumber: 2508
    functionLinenumberEnd: 2531
    functionName: TaskObj_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - Task_CheckExact
    - TaskObj_clear
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void TaskObj_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TaskStepMethWrapper_new
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2536,1
    - Dst: call_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - task
    - arg
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2533
    functionDepth: 2
    functionLinenumber: 2533
    functionLinenumberEnd: 2544
    functionName: task_call_step_soon
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - call_soon
    - TaskStepMethWrapper_new
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int task_call_step_soon(TaskObj *task, PyObject *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2553,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2555,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2557,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2558,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2565,1
    - Dst: task_call_step_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - task
    - et
    - format
    argTypes:
    - TaskObj*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2546
    functionDepth: 3
    functionLinenumber: 2546
    functionLinenumberEnd: 2577
    functionName: task_set_error_soon
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyUnicode_FromFormatV
    - va_end
    - task_call_step_soon
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_set_error_soon(TaskObj *task, PyObject *et, const char *format, ...)'
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2589,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2597,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2601,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2614,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2624,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2631,1
    - Dst: PyGen_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2637,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2637,1
    - Dst: _PyGen_Send
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2638,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2641,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2646,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2650,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2657,1
    - Dst: future_cancel
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2665,1
    - Dst: future_set_result
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2671,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2676,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2680,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2682,1
    - Dst: future_cancel
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2683,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2687,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2689,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2690,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2691,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2694,1
    - Dst: future_set_exception
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2699,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2700,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2701,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2704,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2705,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2707,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2708,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2715,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2716,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2717,1
    - Dst: Future_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2728,1
    - Dst: Task_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2728,1
    - Dst: TaskWakeupMethWrapper_new
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2745,1
    - Dst: future_add_done_callback
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2749,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2755,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2763,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2767,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2768,1
    - Dst: task_call_step_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2783,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2790,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2799,1
    - Dst: get_future_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2805,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2810,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2813,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2820,1
    - Dst: TaskWakeupMethWrapper_new
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2825,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2831,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2834,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2840,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2841,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2842,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2846,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2854,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2858,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2859,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2871,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2873,1
    - Dst: task_set_error_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2879,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2883,1
    - Dst: task_set_error_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2888,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2890,1
    - Dst: task_set_error_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2897,1
    - Dst: task_set_error_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2906,1
    - Dst: task_set_error_soon
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2914,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2918,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 244
    argCount: 2
    argNames:
    - task
    - exc
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (o == Py_None)
      pos:
        line_end: 2703
        line_start: 2703
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - condition: (exc != Py_None)
      pos:
        line_end: 2596
        line_start: 2596
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - condition: (et)
      pos:
        line_end: 2688
        line_start: 2688
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2920
      start: 2579
    functionDepth: 4
    functionLinenumber: 2579
    functionLinenumberEnd: 2920
    functionName: task_step_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - PyObject_TypeCheck
    - future_set_exception
    - Future_CheckExact
    - future_add_done_callback
    - PyErr_Format
    - PyErr_ExceptionMatches
    - TaskWakeupMethWrapper_new
    - assert
    - PyErr_Clear
    - PyException_SetTraceback
    - Py_XDECREF
    - _PyObject_SetAttrId
    - Py_DECREF
    - Task_CheckExact
    - task_set_error_soon
    - get_future_loop
    - _PyObject_CallMethodIdObjArgs
    - _PyGen_FetchStopIterationValue
    - PyErr_NormalizeException
    - PyErr_GivenExceptionMatches
    - future_cancel
    - PyErr_Restore
    - _PyObject_CallNoArg
    - _PyGen_Send
    - _PyObject_Vectorcall
    - task_call_step_soon
    - PyCoro_CheckExact
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - future_set_result
    - PyErr_SetString
    - PyObject_IsTrue
    - PyGen_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step_impl(TaskObj *task, PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: enter_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2927,1
    - Dst: task_step_impl
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2931,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2935,1
    - Dst: leave_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2936,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2937,1
    - Dst: leave_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2941,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - task
    - exc
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2922
    functionDepth: 5
    functionLinenumber: 2922
    functionLinenumberEnd: 2949
    functionName: task_step
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyErr_ChainExceptions
    - PyErr_Fetch
    - enter_task
    - leave_task
    - task_step_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_step(TaskObj *task, PyObject *exc)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2956,1
    - Dst: Future_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2958,1
    - Dst: Task_CheckExact
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2958,1
    - Dst: future_get_result
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2960,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2967,1
    - Dst: task_step
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2968,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2970,1
    - Dst: task_step
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2972,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2979,1
    - Dst: task_step
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2980,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2985,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2986,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2987,1
    - Dst: task_step
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2992,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2993,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:2994,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - task
    - o
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts:
    - condition: (fut_result == NULL)
      pos:
        line_end: 2963
        line_start: 2963
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - condition: (o)
      pos:
        line_end: 2955
        line_start: 2955
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - condition: (res == 1)
      pos:
        line_end: 2969
        line_start: 2969
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 2997
      start: 2951
    functionDepth: 6
    functionLinenumber: 2951
    functionLinenumberEnd: 2997
    functionName: task_wakeup
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Task_CheckExact
    - PyErr_Fetch
    - Py_XDECREF
    - PyObject_CallMethod
    - task_step
    - PyObject_TypeCheck
    - PyErr_NormalizeException
    - assert
    - Future_CheckExact
    - future_get_result
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      task_wakeup(TaskObj *task, PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_running_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3013
    functionDepth: 2
    functionLinenumber: 3013
    functionLinenumberEnd: 3026
    functionName: _asyncio__get_running_loop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_running_loop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__get_running_loop_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_running_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - loop
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3039
    functionDepth: 2
    functionLinenumber: 3039
    functionLinenumberEnd: 3047
    functionName: _asyncio__set_running_loop
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - set_running_loop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__set_running_loop(PyObject *module, PyObject *loop)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_event_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3062
    functionDepth: 3
    functionLinenumber: 3062
    functionLinenumberEnd: 3067
    functionName: _asyncio_get_event_loop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_event_loop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_get_event_loop_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_running_loop
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3082,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3077
    functionDepth: 2
    functionLinenumber: 3077
    functionLinenumberEnd: 3091
    functionName: _asyncio_get_running_loop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - get_running_loop
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_get_running_loop_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: register_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3103
    functionDepth: 2
    functionLinenumber: 3103
    functionLinenumberEnd: 3111
    functionName: _asyncio__register_task_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - register_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unregister_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - task
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3124
    functionDepth: 2
    functionLinenumber: 3124
    functionLinenumberEnd: 3132
    functionName: _asyncio__unregister_task_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - unregister_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_task_impl(PyObject *module, PyObject *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enter_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3148
    functionDepth: 2
    functionLinenumber: 3148
    functionLinenumberEnd: 3156
    functionName: _asyncio__enter_task_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - enter_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__enter_task_impl(PyObject *module, PyObject *loop, PyObject *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: leave_task
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - loop
    - task
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3172
    functionDepth: 2
    functionLinenumber: 3172
    functionLinenumberEnd: 3180
    functionName: _asyncio__leave_task_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - leave_task
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__leave_task_impl(PyObject *module, PyObject *loop, PyObject *task)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3189,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3196,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - loop
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3186
    functionDepth: 1
    functionLinenumber: 3186
    functionLinenumberEnd: 3203
    functionName: new_running_loop_holder
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached:
    - getpid
    - Py_INCREF
    - PyObject_New
    linkageType: ''
    returnType: PyRunningLoopHolder
    signature: 'PyRunningLoopHolder *

      new_running_loop_holder(PyObject *loop)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3209,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rl
    argTypes:
    - PyRunningLoopHolder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3206
    functionDepth: 1
    functionLinenumber: 3206
    functionLinenumberEnd: 3211
    functionName: PyRunningLoopHolder_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void PyRunningLoopHolder_tp_dealloc(PyRunningLoopHolder *rl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3235,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3240,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (fi_freelist_len > 0)
      pos:
        line_end: 3234
        line_start: 3234
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - condition: (fi_freelist_len == 0)
      pos:
        line_end: 3241
        line_start: 3241
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    constantsTouched: []
    func_position:
      end: 3244
      start: 3227
    functionDepth: 1
    functionLinenumber: 3227
    functionLinenumberEnd: 3244
    functionName: module_free_freelists
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void module_free_freelists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3250,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3251,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3252,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3253,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3254,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3255,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3256,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3257,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3258,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3259,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3261,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3262,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3263,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3265,1
    - Dst: module_free_freelists
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3247
    functionDepth: 2
    functionLinenumber: 3247
    functionLinenumberEnd: 3270
    functionName: module_free
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - module_free_freelists
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void module_free(void *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3277,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3288,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3293,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3299,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3317,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3318,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3320,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3321,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3323,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3324,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3325,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3327,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3328,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3329,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3330,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3332,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3333,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3335,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3336,1
    - Dst: WITH_MOD
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3339,1
    - Dst: GET_MOD_ATTR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3340,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3341,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3342,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3347,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3351,1
    - Dst: module_free
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3272
    functionDepth: 1
    functionLinenumber: 3272
    functionLinenumberEnd: 3357
    functionName: module_init
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 6
    functionsReached:
    - WITH_MOD
    - PyImport_ImportModule
    - Py_BuildValue
    - Py_CLEAR
    - Py_DECREF
    - GET_MOD_ATTR
    - PyDict_New
    - module_free
    - _PyObject_CallNoArg
    - PySet_New
    linkageType: ''
    returnType: int
    signature: int module_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3304
    functionDepth: 0
    functionLinenumber: 3304
    functionLinenumberEnd: 3310
    functionName: WITH_MOD
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WITH_MOD(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VAR
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3311
    functionDepth: 0
    functionLinenumber: 3311
    functionLinenumberEnd: 3316
    functionName: GET_MOD_ATTR
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_MOD_ATTR(VAR, NAME)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: module_init
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3389,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3392,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3395,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3398,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3401,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3404,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3407,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3411,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3416,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3417,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3419,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3423,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3424,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3425,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3426,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3430,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3433,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3437,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_asynciomodule.c:3440,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3386
    functionDepth: 1
    functionLinenumber: 3386
    functionLinenumberEnd: 3445
    functionName: PyInit__asyncio
    functionSourceFile: /src/Python-3.8.3/Modules/_asynciomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - module_init
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__asyncio(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_localemodule.c:60,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_localemodule.c:66,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_localemodule.c:73,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:75,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_localemodule.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 82
    functionName: copy_grouping
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_FromLong
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_grouping(const char* s)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:91,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:97,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:107,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:110,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:117,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 123
    functionName: PyLocale_setlocale
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    - PyErr_SetString
    - setlocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_setlocale(PyObject* self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_localemodule.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: locale_is_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int locale_is_ascii(const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: locale_is_ascii
      Src: /src/Python-3.8.3/Modules/_localemodule.c:135,1
    - Dst: locale_is_ascii
      Src: /src/Python-3.8.3/Modules/_localemodule.c:136,1
    - Dst: locale_is_ascii
      Src: /src/Python-3.8.3/Modules/_localemodule.c:137,1
    - Dst: locale_is_ascii
      Src: /src/Python-3.8.3/Modules/_localemodule.c:138,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:143,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:145,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/_localemodule.c:150,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_localemodule.c:152,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:156,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_localemodule.c:157,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:165,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:185,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:186,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:187,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:188,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:195,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_localemodule.c:197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - dict
    - lc
    argTypes:
    - PyObject*
    - struct lconv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 199
    functionName: locale_decode_monetary
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - setlocale
    - PyErr_NoMemory
    - locale_is_ascii
    - RESULT_STRING
    - PyMem_Free
    - PyErr_SetString
    - strcmp
    linkageType: ''
    returnType: int
    signature: int locale_decode_monetary(PyObject *dict, struct lconv *lc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: RESULT_STRING
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT_STRING(ATTR)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_localemodule.c:211,1
    - Dst: localeconv
      Src: /src/Python-3.8.3/Modules/_localemodule.c:217,1
    - Dst: locale_decode_monetary
      Src: /src/Python-3.8.3/Modules/_localemodule.c:246,1
    - Dst: copy_grouping
      Src: /src/Python-3.8.3/Modules/_localemodule.c:249,1
    - Dst: RESULT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:250,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:252,1
    - Dst: RESULT_STRING
      Src: /src/Python-3.8.3/Modules/_localemodule.c:253,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:254,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:255,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:256,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:257,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:258,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:259,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:260,1
    - Dst: RESULT_INT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:261,1
    - Dst: _Py_GetLocaleconvNumeric
      Src: /src/Python-3.8.3/Modules/_localemodule.c:265,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:271,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:274,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:280,1
    - Dst: copy_grouping
      Src: /src/Python-3.8.3/Modules/_localemodule.c:282,1
    - Dst: RESULT
      Src: /src/Python-3.8.3/Modules/_localemodule.c:283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 294
    functionName: PyLocale_localeconv
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - RESULT
    - _Py_GetLocaleconvNumeric
    - copy_grouping
    - localeconv
    - locale_decode_monetary
    - RESULT_STRING
    - RESULT_INT
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_localeconv(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: RESULT
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT(key, obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: RESULT_STRING
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT_STRING(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: RESULT_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESULT_INT(i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:306,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:309,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:312,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_localemodule.c:316,1
    - Dst: wcscoll
      Src: /src/Python-3.8.3/Modules/_localemodule.c:316,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_localemodule.c:319,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_localemodule.c:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 322
    functionName: PyLocale_strcoll
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_AsWideCharString
    - wcscoll
    - PyMem_FREE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_strcoll(PyObject* self, PyObject* args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:340,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:343,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_localemodule.c:346,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:347,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_localemodule.c:354,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_localemodule.c:356,1
    - Dst: wcsxfrm
      Src: /src/Python-3.8.3/Modules/_localemodule.c:360,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_localemodule.c:362,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_localemodule.c:367,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_localemodule.c:369,1
    - Dst: wcsxfrm
      Src: /src/Python-3.8.3/Modules/_localemodule.c:374,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_localemodule.c:376,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_localemodule.c:380,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_localemodule.c:382,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_localemodule.c:383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 385
    functionName: PyLocale_strxfrm
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyErr_SetFromErrno
    - PyMem_Realloc
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyErr_SetString
    - wcsxfrm
    - PyArg_ParseTuple
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_strxfrm(PyObject* self, PyObject* args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_localemodule.c:395,1
    - Dst: GetACP
      Src: /src/Python-3.8.3/Modules/_localemodule.c:395,1
    - Dst: GetLocaleInfo
      Src: /src/Python-3.8.3/Modules/_localemodule.c:397,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_localemodule.c:400,1
    - Dst: GetLocaleInfo
      Src: /src/Python-3.8.3/Modules/_localemodule.c:402,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_localemodule.c:405,1
    - Dst: GetLocaleInfo
      Src: /src/Python-3.8.3/Modules/_localemodule.c:414,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_localemodule.c:416,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:420,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_localemodule.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 422
    functionName: PyLocale_getdefaultlocale
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyOS_snprintf
    - GetLocaleInfo
    - Py_INCREF
    - strlen
    - GetACP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_getdefaultlocale(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    functionName: LANGINFO
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LANGINFO(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:542,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Modules/_localemodule.c:551,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:553,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 557
    functionName: PyLocale_nl_langinfo
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - nl_langinfo
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLocale_nl_langinfo(PyObject* self, PyObject* args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:570,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:572,1
    - Dst: gettext
      Src: /src/Python-3.8.3/Modules/_localemodule.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: PyIntl_gettext
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - gettext
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_gettext(PyObject* self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:583,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:585,1
    - Dst: dgettext
      Src: /src/Python-3.8.3/Modules/_localemodule.c:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 586
    functionName: PyIntl_dgettext
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - dgettext
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_dgettext(PyObject* self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:597,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:599,1
    - Dst: dcgettext
      Src: /src/Python-3.8.3/Modules/_localemodule.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 600
    functionName: PyIntl_dcgettext
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    - dcgettext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_dcgettext(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:610,1
    - Dst: textdomain
      Src: /src/Python-3.8.3/Modules/_localemodule.c:612,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_localemodule.c:614,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 618
    functionName: PyIntl_textdomain
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - textdomain
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_textdomain(PyObject* self, PyObject* args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:629,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_localemodule.c:631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:632,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_localemodule.c:636,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_localemodule.c:638,1
    - Dst: bindtextdomain
      Src: /src/Python-3.8.3/Modules/_localemodule.c:643,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:645,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_localemodule.c:646,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:649,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 652
    functionName: PyIntl_bindtextdomain
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - strlen
    - PyUnicode_DecodeLocale
    - PyErr_SetString
    - bindtextdomain
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_bindtextdomain(PyObject* self,PyObject*args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_localemodule.c:663,1
    - Dst: bind_textdomain_codeset
      Src: /src/Python-3.8.3/Modules/_localemodule.c:665,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_localemodule.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: PyIntl_bind_textdomain_codeset
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - bind_textdomain_codeset
    - PyUnicode_DecodeLocale
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIntl_bind_textdomain_codeset(PyObject* self,PyObject*args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_localemodule.c:734,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:738,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:739,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:740,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:741,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:744,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:747,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:748,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_localemodule.c:749,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_localemodule.c:751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:753,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_localemodule.c:756,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_localemodule.c:760,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_localemodule.c:765,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_localemodule.c:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 770
    functionName: PyInit__locale
    functionSourceFile: /src/Python-3.8.3/Modules/_localemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__locale(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: S_ISBLK
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISBLK(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: S_ISFIFO
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISFIFO(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: S_ISLNK
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: S_ISSOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: S_ISDOOR
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDOOR(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: S_ISPORT
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISPORT(mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: S_ISWHT
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISWHT(mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:253,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_stat.c:254,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_stat.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: _PyLong_AsMode_t
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: mode_t
    signature: mode_t _PyLong_AsMode_t(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - isfunc
    - ','
    - doc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: stat_S_ISFUNC
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: stat_S_ISFUNC(isfunc, doc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsMode_t
      Src: /src/Python-3.8.3/Modules/_stat.c:324,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_stat.c:325,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - omode
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: stat_S_IMODE
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_S_IMODE(PyObject *self, PyObject *omode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsMode_t
      Src: /src/Python-3.8.3/Modules/_stat.c:337,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_stat.c:338,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - omode
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: stat_S_IFMT
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_S_IFMT(PyObject *self, PyObject *omode)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/Python-3.8.3/Modules/_stat.c:350,1
    - Dst: S_ISDIR
      Src: /src/Python-3.8.3/Modules/_stat.c:351,1
    - Dst: S_ISLNK
      Src: /src/Python-3.8.3/Modules/_stat.c:352,1
    - Dst: S_ISBLK
      Src: /src/Python-3.8.3/Modules/_stat.c:354,1
    - Dst: S_ISCHR
      Src: /src/Python-3.8.3/Modules/_stat.c:355,1
    - Dst: S_ISFIFO
      Src: /src/Python-3.8.3/Modules/_stat.c:356,1
    - Dst: S_ISSOCK
      Src: /src/Python-3.8.3/Modules/_stat.c:357,1
    - Dst: S_ISDOOR
      Src: /src/Python-3.8.3/Modules/_stat.c:359,1
    - Dst: S_ISPORT
      Src: /src/Python-3.8.3/Modules/_stat.c:360,1
    - Dst: S_ISWHT
      Src: /src/Python-3.8.3/Modules/_stat.c:361,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - mode
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: filetype
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - S_ISCHR
    - S_ISDIR
    - S_ISFIFO
    - S_ISBLK
    - S_ISSOCK
    - S_ISWHT
    - S_ISREG
    - S_ISDOOR
    - S_ISPORT
    linkageType: ''
    returnType: char
    signature: char filetype(mode_t mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - mode
    - buf
    argTypes:
    - mode_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 390
    functionName: fileperm
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fileperm(mode_t mode, char *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsMode_t
      Src: /src/Python-3.8.3/Modules/_stat.c:401,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_stat.c:402,1
    - Dst: filetype
      Src: /src/Python-3.8.3/Modules/_stat.c:405,1
    - Dst: fileperm
      Src: /src/Python-3.8.3/Modules/_stat.c:406,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_stat.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - omode
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 408
    functionName: stat_filemode
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - filetype
    - _PyLong_AsMode_t
    - PyErr_Occurred
    - PyUnicode_FromStringAndSize
    - fileperm
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stat_filemode(PyObject *self, PyObject *omode)'
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_stat.c:511,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:515,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:516,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:517,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:518,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:519,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:520,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:521,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:522,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:523,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:524,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:526,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:527,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:528,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:529,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:531,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:532,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:533,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:535,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:536,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:537,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:538,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:540,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:541,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:542,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:543,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:545,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:546,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:547,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:548,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:550,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:551,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:552,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:553,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:554,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:555,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:556,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:557,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:558,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:559,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:560,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:561,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:563,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:564,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:565,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:566,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:567,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:568,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:569,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:570,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:571,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_stat.c:572,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:575,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:576,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:577,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:578,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:579,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:580,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:581,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:582,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:583,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:584,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:585,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:586,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:587,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:588,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:589,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:590,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_stat.c:591,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_stat.c:593,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:594,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_stat.c:595,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:596,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_stat.c:597,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_stat.c:598,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 602
    functionName: PyInit__stat
    functionSourceFile: /src/Python-3.8.3/Modules/_stat.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    - PyModule_AddObject
    - PyLong_FromUnsignedLong
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__stat(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: CTRL
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTRL(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/termios.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: fdconv
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int fdconv(PyObject* obj, void* p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:78,1
    - Dst: tcgetattr
      Src: /src/Python-3.8.3/Modules/termios.c:82,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:83,1
    - Dst: cfgetispeed
      Src: /src/Python-3.8.3/Modules/termios.c:85,1
    - Dst: cfgetospeed
      Src: /src/Python-3.8.3/Modules/termios.c:86,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/termios.c:88,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/termios.c:93,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:96,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:103,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:106,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:107,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:110,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/termios.c:113,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:116,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:116,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:117,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:117,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:118,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:118,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:119,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:119,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:120,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:120,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:121,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/termios.c:121,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/termios.c:122,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/termios.c:123,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/termios.c:126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/termios.c:129,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 131
    functionName: termios_tcgetattr
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_DECREF
    - PyList_SetItem
    - PyErr_SetFromErrno
    - cfgetospeed
    - cfgetispeed
    - tcgetattr
    - PyList_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcgetattr(PyObject *self, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:153,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/termios.c:156,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/termios.c:156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/termios.c:157,1
    - Dst: tcgetattr
      Src: /src/Python-3.8.3/Modules/termios.c:163,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:164,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:165,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:165,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:166,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:166,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:167,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:167,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:168,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:168,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:169,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:169,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:170,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:170,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:171,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/termios.c:172,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/termios.c:175,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/termios.c:175,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/termios.c:176,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/termios.c:183,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/termios.c:185,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/termios.c:185,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/termios.c:186,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/termios.c:187,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/termios.c:188,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/termios.c:190,1
    - Dst: cfsetispeed
      Src: /src/Python-3.8.3/Modules/termios.c:196,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:197,1
    - Dst: cfsetospeed
      Src: /src/Python-3.8.3/Modules/termios.c:198,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:199,1
    - Dst: tcsetattr
      Src: /src/Python-3.8.3/Modules/termios.c:200,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:201,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 204
    functionName: termios_tcsetattr
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - PyList_Check
    - PyList_Size
    - PyList_GetItem
    - PyBytes_Check
    - PyBytes_Size
    - PyBytes_AsString
    - PyErr_Format
    - cfsetispeed
    - PyErr_SetString
    - cfsetospeed
    - tcgetattr
    - tcsetattr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsetattr(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:218,1
    - Dst: tcsendbreak
      Src: /src/Python-3.8.3/Modules/termios.c:221,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: termios_tcsendbreak
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - tcsendbreak
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcsendbreak(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:237,1
    - Dst: tcdrain
      Src: /src/Python-3.8.3/Modules/termios.c:240,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: termios_tcdrain
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - tcdrain
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcdrain(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:259,1
    - Dst: tcflush
      Src: /src/Python-3.8.3/Modules/termios.c:262,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 266
    functionName: termios_tcflush
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - tcflush
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflush(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/termios.c:281,1
    - Dst: tcflow
      Src: /src/Python-3.8.3/Modules/termios.c:284,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/termios.c:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 288
    functionName: termios_tcflow
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - tcflow
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      termios_tcflow(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/termios.c:957,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/termios.c:962,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/termios.c:964,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/termios.c:965,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/termios.c:968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 972
    functionName: PyInit_termios
    functionSourceFile: /src/Python-3.8.3/Modules/termios.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_termios(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: PyLong_FromSocket_t
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_FromSocket_t(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 178
    functionName: PyLong_AsSocket_t
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_AsSocket_t(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: PyLong_FromSocket_t
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_FromSocket_t(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: PyLong_AsSocket_t
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_AsSocket_t(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: PySocketModule_ImportModuleAndAPI
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySocketModule_ImportModuleAndAPI()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:29,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:33,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:34,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:36,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:38,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: simplequeue_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyThread_free_lock
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyThread_release_lock
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void simplequeue_dealloc(simplequeueobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - simplequeueobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: simplequeue_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int simplequeue_traverse(simplequeueobject *self, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:62,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:65,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:66,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:69,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:70,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 80
    functionName: simplequeue_new_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_new_impl(PyTypeObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:101,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - self
    - item
    - block
    - timeout
    argTypes:
    - simplequeueobject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: _queue_SimpleQueue_put_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_queue_SimpleQueue_put_impl(simplequeueobject *self, PyObject
      *item,\n                            int block, PyObject *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_put_impl
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: _queue_SimpleQueue_put_nowait_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_put_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_put_nowait_impl(simplequeueobject *self, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:136,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:137,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:139,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:140,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:141,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:146,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts:
    - condition: (self->lst_pos < n)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/Python-3.8.3/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: simplequeue_pop_item
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - assert
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_pop_item(simplequeueobject *self)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:191,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:195,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:202,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:206,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:217,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:219,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:222,1
    - Dst: Py_MakePendingCalls
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:225,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:230,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:236,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:237,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:241,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:241,1
    - Dst: simplequeue_pop_item
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:242,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:244,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - self
    - block
    - timeout
    argTypes:
    - simplequeueobject*
    - int
    - PyObject*
    assertStmts:
    - condition: (self->lst_pos < PyList_GET_SIZE(self->lst))
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/Python-3.8.3/Modules/_queuemodule.c
    constantsTouched: []
    func_position:
      end: 250
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 250
    functionName: _queue_SimpleQueue_get_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyThread_acquire_lock_timed
    - PyErr_SetNone
    - simplequeue_pop_item
    - _PyTime_GetMonotonicClock
    - _PyTime_AsMicroseconds
    - PyErr_SetString
    - PyThread_release_lock
    - Py_MakePendingCalls
    - PyList_GET_SIZE
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_queue_SimpleQueue_get_impl(simplequeueobject *self, int
      block,\n                            PyObject *timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_get_impl
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: _queue_SimpleQueue_get_nowait_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_get_nowait_impl(simplequeueobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: _queue_SimpleQueue_empty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _queue_SimpleQueue_empty_impl(simplequeueobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - simplequeueobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: _queue_SimpleQueue_qsize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _queue_SimpleQueue_qsize_impl(simplequeueobject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:378,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:382,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:389,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:390,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:393,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:395,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_queuemodule.c:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 400
    functionName: PyInit__queue
    functionSourceFile: /src/Python-3.8.3/Modules/_queuemodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__queue(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: ACQUIRE_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRE_LOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: RELEASE_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_LOCK(obj)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:74,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:79,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_bz2module.c:84,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:88,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:91,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:94,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:99,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_bz2module.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - bzerror
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 108
    functionName: catch_bz2_error
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int catch_bz2_error(int bzerror)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:122,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:129,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - max_length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 135
    functionName: grow_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int grow_buffer(PyObject **buf, Py_ssize_t max_length)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:146,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_bz2module.c:152,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_bz2module.c:161,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:170,1
    - Dst: grow_buffer
      Src: /src/Python-3.8.3/Modules/_bz2module.c:172,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_bz2module.c:174,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:175,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_bz2module.c:177,1
    - Dst: BZ2_bzCompress
      Src: /src/Python-3.8.3/Modules/_bz2module.c:182,1
    - Dst: catch_bz2_error
      Src: /src/Python-3.8.3/Modules/_bz2module.c:185,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:192,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:193,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 4
    argNames:
    - c
    - data
    - len
    - action
    argTypes:
    - BZ2Compressor*
    - char*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 200
    functionName: compress
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 3
    functionsReached:
    - PyBytes_FromStringAndSize
    - catch_bz2_error
    - Py_XDECREF
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - grow_buffer
    - PyBytes_AS_STRING
    - Py_MIN
    - BZ2_bzCompress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress(BZ2Compressor *c, char *data, size_t len, int action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:231,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:233,1
    - Dst: compress
      Src: /src/Python-3.8.3/Modules/_bz2module.c:235,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - BZ2Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: _bz2_BZ2Compressor_compress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - PyErr_SetString
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_compress_impl(BZ2Compressor *self, Py_buffer *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:256,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:258,1
    - Dst: compress
      Src: /src/Python-3.8.3/Modules/_bz2module.c:261,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - BZ2Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: _bz2_BZ2Compressor_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - PyErr_SetString
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_flush_impl(BZ2Compressor *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_bz2module.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: BZ2_Malloc
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      BZ2_Malloc(void* ctx, int items, int size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_bz2module.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: BZ2_Free
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void BZ2_Free(void* ctx, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:304,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:309,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:311,1
    - Dst: BZ2_bzCompressInit
      Src: /src/Python-3.8.3/Modules/_bz2module.c:318,1
    - Dst: catch_bz2_error
      Src: /src/Python-3.8.3/Modules/_bz2module.c:319,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - compresslevel
    argTypes:
    - BZ2Compressor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 328
    functionName: _bz2_BZ2Compressor___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - catch_bz2_error
    - PyThread_free_lock
    - PyThread_allocate_lock
    - PyErr_SetString
    - BZ2_bzCompressInit
    linkageType: ''
    returnType: int
    signature: int _bz2_BZ2Compressor___init___impl(BZ2Compressor *self, int compresslevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BZ2_bzCompressEnd
      Src: /src/Python-3.8.3/Modules/_bz2module.c:333,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:335,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - BZ2Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: BZ2Compressor_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyThread_free_lock
    - BZ2_bzCompressEnd
    linkageType: ''
    returnType: void
    signature: void BZ2Compressor_dealloc(BZ2Compressor *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:405,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:407,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_bz2module.c:411,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:420,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_bz2module.c:421,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_bz2module.c:422,1
    - Dst: BZ2_bzDecompress
      Src: /src/Python-3.8.3/Modules/_bz2module.c:426,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_bz2module.c:427,1
    - Dst: catch_bz2_error
      Src: /src/Python-3.8.3/Modules/_bz2module.c:430,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:440,1
    - Dst: grow_buffer
      Src: /src/Python-3.8.3/Modules/_bz2module.c:441,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_bz2module.c:443,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:446,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:447,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:453,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - d
    - max_length
    argTypes:
    - BZ2Decompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 455
    functionName: decompress_buf
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - catch_bz2_error
    - Py_XDECREF
    - BZ2_bzDecompress
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - grow_buffer
    - PyBytes_AS_STRING
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress_buf(BZ2Decompressor *d, Py_ssize_t max_length)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_bz2module.c:485,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_bz2module.c:487,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_bz2module.c:496,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_bz2module.c:500,1
    - Dst: decompress_buf
      Src: /src/Python-3.8.3/Modules/_bz2module.c:510,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:519,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:520,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_bz2module.c:541,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_bz2module.c:547,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_bz2module.c:549,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_bz2module.c:556,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 4
    argNames:
    - d
    - data
    - len
    - max_length
    argTypes:
    - BZ2Decompressor*
    - char*
    - size_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 566
    functionName: decompress
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - PyMem_Malloc
    - PyErr_SetNone
    - Py_XSETREF
    - PyMem_Realloc
    - PyMem_Free
    - memmove
    - decompress_buf
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress(BZ2Decompressor *d, char *data, size_t len, Py_ssize_t max_length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:599,1
    - Dst: decompress
      Src: /src/Python-3.8.3/Modules/_bz2module.c:601,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_bz2module.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - BZ2Decompressor*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 604
    functionName: _bz2_BZ2Decompressor_decompress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - decompress
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_bz2_BZ2Decompressor_decompress_impl(BZ2Decompressor *self,
      Py_buffer *data,\n                                     Py_ssize_t max_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:620,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bz2module.c:622,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:626,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:634,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_bz2module.c:634,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/Python-3.8.3/Modules/_bz2module.c:638,1
    - Dst: catch_bz2_error
      Src: /src/Python-3.8.3/Modules/_bz2module.c:639,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_bz2module.c:645,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - BZ2Decompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 649
    functionName: _bz2_BZ2Decompressor___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - catch_bz2_error
    - Py_CLEAR
    - PyThread_free_lock
    - Py_XSETREF
    - BZ2_bzDecompressInit
    - PyThread_allocate_lock
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _bz2_BZ2Decompressor___init___impl(BZ2Decompressor *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_bz2module.c:655,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/Python-3.8.3/Modules/_bz2module.c:656,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_bz2module.c:657,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_bz2module.c:659,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_bz2module.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - BZ2Decompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 661
    functionName: BZ2Decompressor_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - BZ2_bzDecompressEnd
    - Py_CLEAR
    - PyThread_free_lock
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void BZ2Decompressor_dealloc(BZ2Decompressor *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_bz2module.c:748,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_bz2module.c:750,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_bz2module.c:753,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:757,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_bz2module.c:758,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_bz2module.c:760,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_bz2module.c:761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 765
    functionName: PyInit__bz2
    functionSourceFile: /src/Python-3.8.3/Modules/_bz2module.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_Create
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__bz2(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:34,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:35,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:41,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:42,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:48,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:48,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:49,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:49,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:52,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:53,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:59,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:64,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:66,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:68,1
    - Dst: PySequence_Concat
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:75,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:76,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:78,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:81,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:81,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:84,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:86,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:88,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:89,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:93,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:97,1
    - Dst: PyDict_Merge
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:99,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:106,1
    - Dst: _PyVectorcall_Function
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:110,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(pargs))
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (PyDict_Check(pkw))
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 113
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 113
    functionName: partial_new
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PySequence_Concat
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyDict_GET_SIZE
    - Py_REFCNT
    - PyTuple_Check
    - assert
    - PyTuple_GetSlice
    - Py_DECREF
    - PyDict_Check
    - PyDict_Merge
    - _PyVectorcall_Function
    - Py_TYPE
    - PyCallable_Check
    - PyDict_New
    - PyErr_SetString
    - PyDict_Copy
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:119,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:121,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:122,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:123,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:124,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:125,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pto
    argTypes:
    - partialobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: partial_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void partial_dealloc(partialobject *pto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:138,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:145,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:148,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:152,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:154,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:161,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:162,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:164,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:169,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - pto
    - args
    - nargs
    - kwargs
    argTypes:
    - partialobject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 172
    functionName: partial_fastcall
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_ARRAY_LENGTH
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - _PyTuple_ITEMS
    - _PyObject_FastCallDict
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npartial_fastcall(partialobject *pto, PyObject **args,
      Py_ssize_t nargs,\n                 PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Concat
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:180,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:184,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:184,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pto
    - args
    - kwargs
    argTypes:
    - partialobject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args2))
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: partial_call_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Concat
    - PyTuple_Check
    - PyObject_Call
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_call_impl(partialobject *pto, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:196,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:196,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:197,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:197,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:198,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:198,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:200,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:203,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:209,1
    - Dst: PyDict_Merge
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:216,1
    - Dst: partial_fastcall
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:224,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:225,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:226,1
    - Dst: partial_call_impl
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:230,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - pto
    - args
    - kwargs
    argTypes:
    - partialobject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyCallable_Check(pto->fn))
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (PyDict_Check(pto->kw))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 234
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 234
    functionName: partial_call
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCallable_Check
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - Py_XDECREF
    - partial_fastcall
    - PyDict_Check
    - PyDict_Merge
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyDict_Copy
    - assert
    - Py_XINCREF
    - partial_call_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_call(partialobject *pto, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:239,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:240,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:241,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pto
    - visit
    - arg
    argTypes:
    - partialobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: partial_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int partial_traverse(partialobject *pto, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:275,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:279,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:282,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:286,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:286,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:287,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:289,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:289,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:290,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:295,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:295,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:296,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:298,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:299,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:299,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:301,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:305,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:307,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:310,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - pto
    argTypes:
    - partialobject*
    assertStmts:
    - condition: (PyTuple_Check(pto->args))
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (PyDict_Check(pto->kw))
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 312
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 312
    functionName: partial_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyDict_Next
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_Check
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - PyTuple_Check
    - Py_TYPE
    - assert
    - PyTuple_GET_ITEM
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_repr(partialobject *pto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:324,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pto
    - unused
    argTypes:
    - partialobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: partial_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_reduce(partialobject *pto, PyObject *unused)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:334,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:335,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:336,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:337,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:338,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:340,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:344,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:345,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:347,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:352,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:353,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:354,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:358,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:365,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:367,1
    - Dst: _PyVectorcall_Function
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:368,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:369,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:370,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:371,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:372,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - pto
    - state
    argTypes:
    - partialobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 374
    functionName: partial_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCallable_Check
    - Py_INCREF
    - Py_XSETREF
    - PySequence_Tuple
    - PyDict_New
    - PyDict_Check
    - PyDict_CheckExact
    - _PyVectorcall_Function
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_CheckExact
    - Py_SETREF
    - PyDict_Copy
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      partial_setstate(partialobject *pto, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:438,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:439,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ko
    argTypes:
    - keyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: keyobject_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_DECREF
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void keyobject_dealloc(keyobject *ko)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:446,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ko
    - visit
    - arg
    argTypes:
    - keyobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 450
    functionName: keyobject_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int keyobject_traverse(keyobject *ko, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:455,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ko
    argTypes:
    - keyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 459
    functionName: keyobject_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int keyobject_clear(keyobject *ko)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:515,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:517,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:520,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ko
    - args
    - kwds
    argTypes:
    - keyobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 525
    functionName: keyobject_call
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyobject_call(keyobject *ko, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:537,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:538,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:542,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:546,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:555,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:560,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:561,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ko
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (compare != NULL)
      pos:
        line_end: 541
        line_start: 541
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 563
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 563
    functionName: keyobject_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompare
    - _PyObject_FastCall
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      keyobject_richcompare(PyObject *ko, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:572,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:574,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 581
    functionName: functools_cmp_to_key
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      functools_cmp_to_key(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:593,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:596,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:598,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:600,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:601,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:603,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:607,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:614,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:615,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:619,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:630,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:631,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:631,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:632,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:632,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:633,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:649,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:651,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args->ob_refcnt == 1)
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 653
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 653
    functionName: functools_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyTuple_New
    - Py_XSETREF
    - _PyTuple_ITEMS
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyObject_Call
    - assert
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      functools_reduce(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:703,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:704,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - link
    argTypes:
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 706
    functionName: lru_list_elem_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void lru_list_elem_dealloc(lru_list_elem *link)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:756,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:760,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:761,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:762,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:762,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:765,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:769,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:773,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:777,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:779,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:784,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:785,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:786,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:787,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:790,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:791,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:792,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:793,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:794,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:795,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:796,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:798,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:798,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:801,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:802,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:802,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:803,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:804,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:807,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:808,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:809,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:810,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:814,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - args
    - kwds
    - typed
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (key_pos == PyTuple_GET_SIZE(args) + kwds_size * 2 + 1)
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (key_pos == key_size)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 816
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 816
    functionName: lru_cache_make_key
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_Next
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyLong_CheckExact
    - Py_TYPE
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_make_key(PyObject *args, PyObject *kwds, int typed)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 828
    functionName: uncached_lru_cache_wrapper
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      uncached_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject
      *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_make_key
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:835,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:838,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:840,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:843,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:845,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:847,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:850,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:851,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:855,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:857,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:860,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:861,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:862,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 867
    functionName: infinite_lru_cache_wrapper
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _PyDict_GetItem_KnownHash
    - lru_cache_make_key
    - PyObject_Call
    - PyObject_Hash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      infinite_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject
      *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - link
    argTypes:
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 876
    functionName: lru_cache_extract_link
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lru_cache_extract_link(lru_list_elem *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - link
    argTypes:
    - lru_cache_object*
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: lru_cache_append_link
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lru_cache_append_link(lru_cache_object *self, lru_list_elem *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - link
    argTypes:
    - lru_cache_object*
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: lru_cache_prepend_link
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lru_cache_prepend_link(lru_cache_object *self, lru_list_elem *link)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_make_key
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:936,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:941,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:944,1
    - Dst: lru_cache_extract_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:946,1
    - Dst: lru_cache_append_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:947,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:951,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:954,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:955,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:959,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:961,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:969,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:972,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:978,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:985,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:986,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:993,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:994,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1006,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1008,1
    - Dst: lru_cache_append_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1011,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1012,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1030,1
    - Dst: lru_cache_extract_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1032,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1045,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1046,1
    - Dst: lru_cache_prepend_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1057,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1075,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1081,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1082,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1083,1
    - Dst: lru_cache_append_link
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1086,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1090,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 92
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self->maxsize > 0)
      pos:
        line_end: 984
        line_start: 984
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - condition: (self->root.next != &self->root)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    constantsTouched: []
    func_position:
      end: 1092
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 1092
    functionName: bounded_lru_cache_wrapper
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - Py_DECREF
    - lru_cache_append_link
    - Py_INCREF
    - _PyDict_SetItem_KnownHash
    - PyDict_GET_SIZE
    - _PyDict_Pop_KnownHash
    - _PyDict_GetItem_KnownHash
    - lru_cache_prepend_link
    - lru_cache_extract_link
    - lru_cache_make_key
    - PyObject_Call
    - PyObject_Hash
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bounded_lru_cache_wrapper(lru_cache_object *self, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1105,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1111,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1112,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1122,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1124,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1134,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1138,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1141,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1143,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1152,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1159
    functionName: lru_cache_new
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyCallable_Check
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyDict_New
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - lru_cache_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1171
    functionName: lru_cache_unlink_list
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lru_list_elem
    signature: 'lru_list_elem *

      lru_cache_unlink_list(lru_cache_object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - link
    argTypes:
    - lru_list_elem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1181
    functionName: lru_cache_clear_list
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void lru_cache_clear_list(lru_list_elem *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1188,1
    - Dst: lru_cache_unlink_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1190,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1191,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1192,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1193,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1194,1
    - Dst: lru_cache_clear_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1195,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - lru_cache_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1197
    functionName: lru_cache_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - lru_cache_unlink_list
    - Py_TYPE
    - lru_cache_clear_list
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void lru_cache_dealloc(lru_cache_object *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_object*::wrapper
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lru_cache_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1203
    functionName: lru_cache_call
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_object*::wrapper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_call(lru_cache_object *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1209,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1213
    functionName: lru_cache_descr_get
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1219,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1221,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1223,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - lru_cache_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1226
    functionName: lru_cache_cache_info
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_cache_info(lru_cache_object *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_unlink_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1231,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1233,1
    - Dst: lru_cache_clear_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - lru_cache_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1236
    functionName: lru_cache_cache_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_unlink_list
    - lru_cache_clear_list
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_cache_clear(lru_cache_object *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1242
    functionName: lru_cache_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_reduce(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    functionName: lru_cache_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_copy(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1256
    functionName: lru_cache_deepcopy
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lru_cache_deepcopy(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1264,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1265,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1268,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1269,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1270,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - lru_cache_object*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1273
    functionName: lru_cache_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int lru_cache_tp_traverse(lru_cache_object *self, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lru_cache_unlink_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1278,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1279,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1280,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1281,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1282,1
    - Dst: lru_cache_clear_list
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - lru_cache_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1285
    functionName: lru_cache_tp_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - lru_cache_unlink_list
    - Py_CLEAR
    - lru_cache_clear_list
    linkageType: ''
    returnType: int
    signature: int lru_cache_tp_clear(lru_cache_object *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1378
    functionName: module_free
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void module_free(void *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1404,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1410,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1416,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1419,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1420,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_functoolsmodule.c:1421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1424
    functionName: PyInit__functools
    functionSourceFile: /src/Python-3.8.3/Modules/_functoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - _PyType_Name
    - PyType_Ready
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__functools(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: ENTER_ZLIB
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_ZLIB(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: LEAVE_ZLIB
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_ZLIB(obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:76,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - zst
    - err
    - msg
    argTypes:
    - z_stream
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 79
    functionName: zlib_error
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void zlib_error(z_stream zst, int err, const char *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:92,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:98,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:100,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:105,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:110,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 115
    functionName: newcompobject
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyErr_SetString
    - PyThread_allocate_lock
    - PyObject_New
    linkageType: ''
    returnType: compobject
    signature: 'compobject *

      newcompobject(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: PyZlib_Malloc
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyZlib_Malloc(voidpf ctx, uInt items, uInt size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - voidpf
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: PyZlib_Free
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyZlib_Free(voidpf ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zst
    - remains
    argTypes:
    - z_stream*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: arrange_input_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Py_MIN
    linkageType: ''
    returnType: void
    signature: void arrange_input_buffer(z_stream *zst, Py_ssize_t *remains)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:148,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:153,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:157,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:165,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:171,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - zst
    - buffer
    - length
    - max_length
    argTypes:
    - z_stream*
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (length <= max_length)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: arrange_output_buffer_with_maximum
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - assert
    - Py_MIN
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t arrange_output_buffer_with_maximum(z_stream *zst, PyObject
      **buffer,\n                                   Py_ssize_t length,\n                                   Py_ssize_t
      max_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arrange_output_buffer_with_maximum
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:182,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - zst
    - buffer
    - length
    argTypes:
    - z_stream*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: arrange_output_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - arrange_output_buffer_with_maximum
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t arrange_output_buffer(z_stream *zst, PyObject **buffer,
      Py_ssize_t length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:225,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:229,1
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:232,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:233,1
    - Dst: arrange_input_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:238,1
    - Dst: arrange_output_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:242,1
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:244,1
    - Dst: deflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:249,1
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:253,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:259,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:262,1
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:264,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:266,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:267,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:272,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:274,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 3
    argNames:
    - module
    - data
    - level
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (zst.avail_in == 0)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    - condition: (err == Z_STREAM_END)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 276
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 276
    functionName: zlib_compress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - arrange_input_buffer
    - deflateEnd
    - _PyBytes_Resize
    - arrange_output_buffer
    - PyErr_SetString
    - deflateInit
    - PyBytes_AS_STRING
    - assert
    - Py_XDECREF
    - deflate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress_impl(PyObject *module, Py_buffer *data, int level)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:296,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:300,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:301,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 307
    functionName: ssize_t_converter
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsSsize_t
    - PyErr_Occurred
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    linkageType: ''
    returnType: int
    signature: int ssize_t_converter(PyObject *obj, void *ptr)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:335,1
    - Dst: inflateInit2
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:349,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:355,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:359,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:360,1
    - Dst: arrange_input_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:365,1
    - Dst: arrange_output_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:369,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:371,1
    - Dst: inflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:376,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:385,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:386,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:390,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:391,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:401,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:402,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:406,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:408,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:412,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:419,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 4
    argNames:
    - module
    - data
    - wbits
    - bufsize
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 421
    functionName: zlib_decompress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflate
    - zlib_error
    - arrange_input_buffer
    - inflateEnd
    - inflateInit2
    - _PyBytes_Resize
    - arrange_output_buffer
    - PyErr_SetString
    - PyBytes_AS_STRING
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_decompress_impl(PyObject *module, Py_buffer *data,
      int wbits,\n                     Py_ssize_t bufsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:385,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:386,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:390,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: switch
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - zlib_error
    - PyErr_SetString
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:460,1
    - Dst: newcompobject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:465,1
    - Dst: deflateInit2
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:473,1
    - Dst: deflateSetDictionary
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:480,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:486,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:489,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:494,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:498,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:501,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:506,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 7
    argNames:
    - module
    - level
    - method
    - wbits
    - memLevel
    - strategy
    - zdict
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 509
    functionName: zlib_compressobj_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - Py_CLEAR
    - deflateSetDictionary
    - newcompobject
    - deflateInit2
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_compressobj_impl(PyObject *module, int level, int
      method, int wbits,\n                      int memLevel, int strategy, Py_buffer
      *zdict)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:521,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:523,1
    - Dst: inflateSetDictionary
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:526,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:528,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 534
    functionName: set_inflate_zdict
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - inflateSetDictionary
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int set_inflate_zdict(compobject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:555,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:556,1
    - Dst: newcompobject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:561,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:570,1
    - Dst: inflateInit2
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:573,1
    - Dst: set_inflate_zdict
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:579,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:580,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:587,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:593,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:598,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:603,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 3
    argNames:
    - module
    - wbits
    - zdict
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 606
    functionName: zlib_decompressobj_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - Py_DECREF
    - Py_INCREF
    - PyObject_CheckBuffer
    - inflateInit2
    - newcompobject
    - PyErr_Format
    - PyErr_SetString
    - set_inflate_zdict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:611,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:612,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:613,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:614,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 616
    functionName: Dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 3
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void Dealloc(compobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:622,1
    - Dst: Dealloc
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 618
    functionDepth: 2
    functionLinenumber: 618
    functionLinenumberEnd: 624
    functionName: Comp_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - Dealloc
    - deflateEnd
    linkageType: ''
    returnType: void
    signature: void Comp_dealloc(compobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:630,1
    - Dst: Dealloc
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: Decomp_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - Dealloc
    linkageType: ''
    returnType: void
    signature: void Decomp_dealloc(compobject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:659,1
    - Dst: arrange_input_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:662,1
    - Dst: arrange_output_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:665,1
    - Dst: deflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:670,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:674,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:679,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:683,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:684,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:688,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:690,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - compobject*
    - Py_buffer*
    assertStmts:
    - condition: (self->zst.avail_in == 0)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 692
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 692
    functionName: zlib_Compress_compress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - arrange_input_buffer
    - ENTER_ZLIB
    - zlib_error
    - Py_CLEAR
    - LEAVE_ZLIB
    - _PyBytes_Resize
    - arrange_output_buffer
    - PyBytes_AS_STRING
    - assert
    - deflate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_compress_impl(compobject *self, Py_buffer *data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:703,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:708,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:712,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:715,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:715,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:716,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:717,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:717,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:719,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:724,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:729,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - data
    - err
    argTypes:
    - compobject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 737
    functionName: save_unconsumed_input
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - PyErr_NoMemory
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int save_unconsumed_input(compobject *self, Py_buffer *data, int err)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:767,1
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:781,1
    - Dst: arrange_input_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:784,1
    - Dst: arrange_output_buffer_with_maximum
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:787,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:793,1
    - Dst: inflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:800,1
    - Dst: set_inflate_zdict
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:810,1
    - Dst: save_unconsumed_input
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:823,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:835,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:839,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:840,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:844,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:846,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 67
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - compobject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 848
    functionName: zlib_Decompress_decompress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflate
    - arrange_input_buffer
    - ENTER_ZLIB
    - save_unconsumed_input
    - zlib_error
    - Py_CLEAR
    - PyErr_NoMemory
    - LEAVE_ZLIB
    - _PyBytes_Resize
    - arrange_output_buffer_with_maximum
    - PyErr_SetString
    - PyBytes_AS_STRING
    - set_inflate_zdict
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nzlib_Decompress_decompress_impl(compobject *self, Py_buffer
      *data,\n                                Py_ssize_t max_length)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_inflate_zdict
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 816
    functionName: switch
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - set_inflate_zdict
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:874,1
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:877,1
    - Dst: arrange_output_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:882,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:884,1
    - Dst: deflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:889,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:893,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:894,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:898,1
    - Dst: deflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:904,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:906,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:907,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:918,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:919,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:923,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:924,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:925,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:928,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - self
    - mode
    argTypes:
    - compobject*
    - int
    assertStmts:
    - condition: (self->zst.avail_in == 0)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    constantsTouched: []
    func_position:
      end: 930
      start: 863
    functionDepth: 3
    functionLinenumber: 863
    functionLinenumberEnd: 930
    functionName: zlib_Compress_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ENTER_ZLIB
    - zlib_error
    - Py_CLEAR
    - LEAVE_ZLIB
    - deflateEnd
    - _PyBytes_Resize
    - arrange_output_buffer
    - PyBytes_AS_STRING
    - assert
    - deflate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_flush_impl(compobject *self, int mode)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: newcompobject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:947,1
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:953,1
    - Dst: deflateCopy
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:954,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:959,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:962,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:966,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:969,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:970,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:971,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:972,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:973,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:974,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:980,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:984,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 987
    functionName: zlib_Compress_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - ENTER_ZLIB
    - Py_INCREF
    - Py_XSETREF
    - Py_XDECREF
    - LEAVE_ZLIB
    - newcompobject
    - PyErr_SetString
    - deflateCopy
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_copy_impl(compobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Compress_copy_impl
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 998
    functionName: zlib_Compress___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Compress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress___copy___impl(compobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Compress_copy_impl
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1008
    functionDepth: 3
    functionLinenumber: 1008
    functionLinenumberEnd: 1013
    functionName: zlib_Compress___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Compress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress___deepcopy__(compobject *self, PyObject *memo)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: newcompobject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1028,1
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1034,1
    - Dst: inflateCopy
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1040,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1043,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1047,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1051,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1052,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1053,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1054,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1055,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1056,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1062,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1066,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1067,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1069
    functionName: zlib_Decompress_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_error
    - ENTER_ZLIB
    - Py_INCREF
    - Py_XSETREF
    - Py_XDECREF
    - LEAVE_ZLIB
    - inflateCopy
    - newcompobject
    - PyErr_SetString
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_copy_impl(compobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Decompress_copy_impl
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - compobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1080
    functionName: zlib_Decompress___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Decompress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress___copy___impl(compobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Decompress_copy_impl
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1095
    functionName: zlib_Decompress___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - zlib_Decompress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress___deepcopy__(compobject *self, PyObject *memo)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1119,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1123,1
    - Dst: ENTER_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1126,1
    - Dst: arrange_input_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1132,1
    - Dst: arrange_output_buffer
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1136,1
    - Dst: inflate
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1141,1
    - Dst: set_inflate_zdict
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1151,1
    - Dst: save_unconsumed_input
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1164,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1171,1
    - Dst: zlib_error
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1173,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1178,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1179,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1183,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1185,1
    - Dst: LEAVE_ZLIB
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1186,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - compobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1188
    functionName: zlib_Decompress_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - inflate
    - arrange_input_buffer
    - ENTER_ZLIB
    - save_unconsumed_input
    - zlib_error
    - Py_CLEAR
    - inflateEnd
    - LEAVE_ZLIB
    - _PyBytes_Resize
    - arrange_output_buffer
    - PyBuffer_Release
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    - set_inflate_zdict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_flush_impl(compobject *self, Py_ssize_t length)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: set_inflate_zdict
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1157
    functionName: switch
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - set_inflate_zdict
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1213
    functionName: COMP_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP_OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: adler32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1247,1
    - Dst: adler32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1251,1
    - Dst: adler32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1254,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1257
    functionName: zlib_adler32_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - adler32
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_adler32_impl(PyObject *module, Py_buffer *data, unsigned int value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crc32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1288,1
    - Dst: crc32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1292,1
    - Dst: crc32
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1295,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - module
    - data
    - value
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1272
    functionDepth: 1
    functionLinenumber: 1272
    functionLinenumberEnd: 1298
    functionName: zlib_crc32_impl
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - crc32
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_crc32_impl(PyObject *module, Py_buffer *data, unsigned int value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1406,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1408,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1410,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1414,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1416,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1417,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1419,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1420,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1421,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1422,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1424,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1425,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1426,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1427,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1429,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1430,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1432,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1435,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1437,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1439,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1440,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1441,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1442,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1443,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1445,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1448,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1450,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1452,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1454,1
    - Dst: zlibVersion
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1454,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1456,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/zlibmodule.c:1458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1461
    functionName: PyInit_zlib
    functionSourceFile: /src/Python-3.8.3/Modules/zlibmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyUnicode_FromString
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - zlibVersion
    - PyModule_AddObject
    - PyType_Ready
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_zlib(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: BUCKETS_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKETS_HEAD(SLIST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HT
    - ','
    - BUCKET
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: TABLE_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLE_HEAD(HT, BUCKET)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ENTRY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: ENTRY_NEXT
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_NEXT(ENTRY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - HT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: HASHTABLE_ITEM_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHTABLE_ITEM_SIZE(HT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - ','
    - DATA_SIZE
    - ','
    - PDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: ENTRY_READ_PDATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_READ_PDATA(TABLE, ENTRY, DATA_SIZE, PDATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - ','
    - DATA_SIZE
    - ','
    - PDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: ENTRY_WRITE_PDATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY_WRITE_PDATA(TABLE, ENTRY, DATA_SIZE, PDATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - _Py_slist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: _Py_slist_init
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_slist_init(_Py_slist_t *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - _Py_slist_t*
    - _Py_slist_item_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: _Py_slist_prepend
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_slist_prepend(_Py_slist_t *list, _Py_slist_item_t *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - list
    - previous
    - item
    argTypes:
    - _Py_slist_t*
    - _Py_slist_item_t*
    - _Py_slist_item_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: _Py_slist_remove
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _Py_slist_remove(_Py_slist_t *list, _Py_slist_item_t *previous,\n
      \                _Py_slist_item_t *item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/hashtable.c:112,1
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Modules/hashtable.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ht
    - pkey
    argTypes:
    - struct _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: _Py_hashtable_hash_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointer
    - _Py_HASHTABLE_READ_KEY
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t _Py_hashtable_hash_ptr(struct _Py_hashtable_t *ht, const
      void *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_PKEY
      Src: /src/Python-3.8.3/Modules/hashtable.c:121,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/hashtable.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ht
    - pkey
    - entry
    argTypes:
    - _Py_hashtable_t*
    - void*
    - _Py_hashtable_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: _Py_hashtable_compare_direct
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_PKEY
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_compare_direct(_Py_hashtable_t *ht, const void *pkey,\n
      \                            const _Py_hashtable_entry_t *entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: round_size
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t round_size(size_t s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_allocator_t::malloc
      Src: /src/Python-3.8.3/Modules/hashtable.c:158,1
    - Dst: round_size
      Src: /src/Python-3.8.3/Modules/hashtable.c:162,1
    - Dst: _Py_hashtable_allocator_t::malloc
      Src: /src/Python-3.8.3/Modules/hashtable.c:168,1
    - Dst: _Py_hashtable_allocator_t::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:170,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/hashtable.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - key_size
    - data_size
    - init_size
    - hash_func
    - compare_func
    - allocator
    argTypes:
    - size_t
    - size_t
    - size_t
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    - _Py_hashtable_allocator_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: _Py_hashtable_new_full
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_allocator_t::free
    - _Py_hashtable_allocator_t::malloc
    - memset
    - round_size
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\n_Py_hashtable_new_full(size_t key_size, size_t
      data_size,\n                       size_t init_size,\n                       _Py_hashtable_hash_func
      hash_func,\n                       _Py_hashtable_compare_func compare_func,\n
      \                      _Py_hashtable_allocator_t *allocator)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/Python-3.8.3/Modules/hashtable.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key_size
    - data_size
    - hash_func
    - compare_func
    argTypes:
    - size_t
    - size_t
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: _Py_hashtable_new
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\n_Py_hashtable_new(size_t key_size, size_t data_size,\n
      \                 _Py_hashtable_hash_func hash_func,\n                  _Py_hashtable_compare_func
      compare_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHTABLE_ITEM_SIZE
      Src: /src/Python-3.8.3/Modules/hashtable.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: _Py_hashtable_size
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - HASHTABLE_ITEM_SIZE
    linkageType: ''
    returnType: size_t
    signature: size_t _Py_hashtable_size(_Py_hashtable_t *ht)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_size
      Src: /src/Python-3.8.3/Modules/hashtable.c:221,1
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:229,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:232,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/hashtable.c:241,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/hashtable.c:245,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/hashtable.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 248
    functionName: _Py_hashtable_print_stats
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - printf
    - ENTRY_NEXT
    - TABLE_HEAD
    - _Py_hashtable_size
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_print_stats(_Py_hashtable_t *ht)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:260,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:262,1
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:265,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:265,1
    - Dst: _Py_hashtable_t*::compare_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ht
    - key_size
    - pkey
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    assertStmts:
    - condition: (key_size == ht->key_size)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 271
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 271
    functionName: _Py_hashtable_get_entry
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::compare_func
    - _Py_hashtable_t*::hash_func
    - TABLE_HEAD
    - assert
    - ENTRY_NEXT
    linkageType: ''
    returnType: _Py_hashtable_entry_t
    signature: "_Py_hashtable_entry_t *\n_Py_hashtable_get_entry(_Py_hashtable_t *ht,\n
      \                       size_t key_size, const void *pkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:282,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:284,1
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:288,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:288,1
    - Dst: _Py_hashtable_t*::compare_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:289,1
    - Dst: _Py_slist_remove
      Src: /src/Python-3.8.3/Modules/hashtable.c:297,1
    - Dst: ENTRY_READ_PDATA
      Src: /src/Python-3.8.3/Modules/hashtable.c:302,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:303,1
    - Dst: hashtable_rehash
      Src: /src/Python-3.8.3/Modules/hashtable.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - ht
    - key_size
    - pkey
    - data
    - data_size
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    - void*
    - size_t
    assertStmts:
    - condition: (key_size == ht->key_size)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 308
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 308
    functionName: _Py_hashtable_pop_entry
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::compare_func
    - ENTRY_READ_PDATA
    - _Py_hashtable_t*::alloc::free
    - _Py_hashtable_t*::hash_func
    - TABLE_HEAD
    - hashtable_rehash
    - assert
    - ENTRY_NEXT
    - _Py_slist_remove
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_pop_entry(_Py_hashtable_t *ht, size_t key_size,
      const void *pkey,\n                        void *data, size_t data_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:319,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:321,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/Python-3.8.3/Modules/hashtable.c:326,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:327,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:330,1
    - Dst: _Py_hashtable_t*::alloc::malloc
      Src: /src/Python-3.8.3/Modules/hashtable.c:333,1
    - Dst: HASHTABLE_ITEM_SIZE
      Src: /src/Python-3.8.3/Modules/hashtable.c:333,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/hashtable.c:340,1
    - Dst: _Py_HASHTABLE_ENTRY_PKEY
      Src: /src/Python-3.8.3/Modules/hashtable.c:340,1
    - Dst: ENTRY_WRITE_PDATA
      Src: /src/Python-3.8.3/Modules/hashtable.c:342,1
    - Dst: _Py_slist_prepend
      Src: /src/Python-3.8.3/Modules/hashtable.c:344,1
    - Dst: hashtable_rehash
      Src: /src/Python-3.8.3/Modules/hashtable.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - ht
    - key_size
    - pkey
    - data_size
    - data
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts:
    - condition: (key_size == ht->key_size)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    - condition: (entry == NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    - condition: (data != NULL || data_size == 0)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 350
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 350
    functionName: _Py_hashtable_set
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _Py_hashtable_get_entry
    - _Py_slist_prepend
    - _Py_hashtable_t*::hash_func
    - HASHTABLE_ITEM_SIZE
    - _Py_HASHTABLE_ENTRY_PKEY
    - _Py_hashtable_t*::alloc::malloc
    - hashtable_rehash
    - assert
    - ENTRY_WRITE_PDATA
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_set(_Py_hashtable_t *ht, size_t key_size, const
      void *pkey,\n                  size_t data_size, const void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:359,1
    - Dst: _Py_hashtable_get_entry
      Src: /src/Python-3.8.3/Modules/hashtable.c:361,1
    - Dst: ENTRY_READ_PDATA
      Src: /src/Python-3.8.3/Modules/hashtable.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ht
    - key_size
    - pkey
    - data_size
    - data
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: _Py_hashtable_get
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_hashtable_get_entry
    - ENTRY_READ_PDATA
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_get(_Py_hashtable_t *ht, size_t key_size,const void
      *pkey,\n                  size_t data_size, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:373,1
    - Dst: _Py_hashtable_pop_entry
      Src: /src/Python-3.8.3/Modules/hashtable.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ht
    - key_size
    - pkey
    - data_size
    - data
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    - size_t
    - void*
    assertStmts:
    - condition: (data != NULL)
      pos:
        line_end: 372
        line_start: 372
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: _Py_hashtable_pop
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_hashtable_pop_entry
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_pop(_Py_hashtable_t *ht, size_t key_size, const
      void *pkey,\n                  size_t data_size, void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_pop_entry
      Src: /src/Python-3.8.3/Modules/hashtable.c:384,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:385,1
    - Dst: _Py_hashtable_pop_entry
      Src: /src/Python-3.8.3/Modules/hashtable.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ht
    - key_size
    - pkey
    argTypes:
    - _Py_hashtable_t*
    - size_t
    - void*
    assertStmts:
    - condition: (found)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: _Py_hashtable_delete
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_hashtable_pop_entry
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_delete(_Py_hashtable_t *ht, size_t key_size, const
      void *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:402,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:402,1
    - Dst: func
      Src: /src/Python-3.8.3/Modules/hashtable.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ht
    - func
    - arg
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_foreach_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 409
    functionName: _Py_hashtable_foreach
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - ENTRY_NEXT
    - TABLE_HEAD
    - func
    linkageType: ''
    returnType: int
    signature: "int _Py_hashtable_foreach(_Py_hashtable_t *ht,\n                      _Py_hashtable_foreach_func
      func,\n                      void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: round_size
      Src: /src/Python-3.8.3/Modules/hashtable.c:419,1
    - Dst: _Py_hashtable_t*::alloc::malloc
      Src: /src/Python-3.8.3/Modules/hashtable.c:427,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/hashtable.c:434,1
    - Dst: BUCKETS_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:440,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/hashtable.c:444,1
    - Dst: _Py_hashtable_t*::hash_func
      Src: /src/Python-3.8.3/Modules/hashtable.c:444,1
    - Dst: _Py_HASHTABLE_ENTRY_PKEY
      Src: /src/Python-3.8.3/Modules/hashtable.c:444,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:445,1
    - Dst: _Py_slist_prepend
      Src: /src/Python-3.8.3/Modules/hashtable.c:448,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts:
    - condition: (ht->hash_func(ht, _Py_HASHTABLE_ENTRY_PKEY(entry)) == entry->key_hash)
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/Python-3.8.3/Modules/hashtable.c
    constantsTouched: []
    func_position:
      end: 453
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 453
    functionName: hashtable_rehash
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 2
    functionsReached:
    - BUCKETS_HEAD
    - _Py_slist_prepend
    - _Py_hashtable_t*::alloc::free
    - _Py_hashtable_t*::hash_func
    - _Py_HASHTABLE_ENTRY_PKEY
    - _Py_hashtable_t*::alloc::malloc
    - assert
    - ENTRY_NEXT
    - memset
    - round_size
    linkageType: ''
    returnType: void
    signature: void hashtable_rehash(_Py_hashtable_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:463,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:464,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:465,1
    - Dst: _Py_slist_init
      Src: /src/Python-3.8.3/Modules/hashtable.c:467,1
    - Dst: hashtable_rehash
      Src: /src/Python-3.8.3/Modules/hashtable.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: _Py_hashtable_clear
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::alloc::free
    - TABLE_HEAD
    - hashtable_rehash
    - ENTRY_NEXT
    - _Py_slist_init
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_clear(_Py_hashtable_t *ht)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:483,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:488,1
    - Dst: _Py_hashtable_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/hashtable.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ht
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 490
    functionName: _Py_hashtable_destroy
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_t*::alloc::free
    linkageType: ''
    returnType: void
    signature: void _Py_hashtable_destroy(_Py_hashtable_t *ht)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/Python-3.8.3/Modules/hashtable.c:503,1
    - Dst: TABLE_HEAD
      Src: /src/Python-3.8.3/Modules/hashtable.c:512,1
    - Dst: ENTRY_NEXT
      Src: /src/Python-3.8.3/Modules/hashtable.c:513,1
    - Dst: _Py_HASHTABLE_ENTRY_PKEY
      Src: /src/Python-3.8.3/Modules/hashtable.c:514,1
    - Dst: _Py_HASHTABLE_ENTRY_PDATA
      Src: /src/Python-3.8.3/Modules/hashtable.c:515,1
    - Dst: _Py_hashtable_set
      Src: /src/Python-3.8.3/Modules/hashtable.c:516,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/hashtable.c:518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - src
    argTypes:
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 524
    functionName: _Py_hashtable_copy
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_set
    - _Py_hashtable_new_full
    - _Py_HASHTABLE_ENTRY_PKEY
    - _Py_HASHTABLE_ENTRY_PDATA
    - TABLE_HEAD
    - _Py_hashtable_destroy
    - ENTRY_NEXT
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: '_Py_hashtable_t *

      _Py_hashtable_copy(_Py_hashtable_t *src)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/binascii.c:213,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/binascii.c:216,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/binascii.c:217,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/binascii.c:219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:220,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:224,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/binascii.c:224,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/binascii.c:225,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/binascii.c:226,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/binascii.c:230,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/binascii.c:231,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/binascii.c:233,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/binascii.c:236,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/binascii.c:237,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/binascii.c:239,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/binascii.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - arg
    - buf
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (PyUnicode_KIND(arg) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 244
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 244
    functionName: ascii_buffer_converter
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_KIND
    - PyBuffer_IsContiguous
    - PyUnicode_IS_ASCII
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_1BYTE_DATA
    - PyUnicode_Check
    - assert
    - PyErr_Format
    - PyObject_GetBuffer
    - PyUnicode_GET_LENGTH
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int ascii_buffer_converter(PyObject *arg, Py_buffer *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:273,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/binascii.c:280,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/binascii.c:282,1
    - Dst: this_ch < ' ' || this_ch >
      Src: /src/Python-3.8.3/Modules/binascii.c:299,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/binascii.c:305,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:332,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:336,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/binascii.c:337,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 342
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 342
    functionName: binascii_a2b_uu_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - this_ch < ' ' || this_ch >
    - Py_DECREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    - assert
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_uu_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:368,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:373,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:377,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:383,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:413,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - module
    - data
    - backtick
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 414
    functionName: binascii_b2a_uu_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - PyErr_SetString
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu_impl(PyObject *module, Py_buffer *data, int backtick)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - s
    - slen
    - num
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 440
    functionName: binascii_find_valid
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int binascii_find_valid(const unsigned char *s, Py_ssize_t slen, int
      num)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:469,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:472,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:476,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:479,1
    - Dst: binascii_find_valid
      Src: /src/Python-3.8.3/Modules/binascii.c:497,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:532,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/binascii.c:542,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:548,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/binascii.c:550,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:554,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (ascii_len >= 0)
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 555
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 555
    functionName: binascii_a2b_base64_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_NoMemory
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - binascii_find_valid
    - _PyBytesWriter_Dealloc
    - PyErr_Format
    - PyErr_SetString
    - assert
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base64_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:584,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:586,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:589,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:593,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:603,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - module
    - data
    - newline
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (bin_len >= 0)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 631
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 631
    functionName: binascii_b2a_base64_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - PyErr_SetString
    - assert
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:659,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:661,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:664,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:669,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:679,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:683,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/binascii.c:684,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:704,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:708,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/binascii.c:710,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:714,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/binascii.c:717,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 660
        line_start: 660
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 718
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 718
    functionName: binascii_a2b_hqx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - Py_BuildValue
    - _PyBytesWriter_Alloc
    - PyErr_NoMemory
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyErr_SetString
    - assert
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:740,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:744,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:747,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:750,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:779,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 780
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 780
    functionName: binascii_rlecode_hqx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - _PyBytesWriter_Alloc
    - PyErr_NoMemory
    - _PyBytesWriter_Finish
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_rlecode_hqx_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:806,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:808,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:811,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:814,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 835
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 835
    functionName: binascii_b2a_hqx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - _PyBytesWriter_Alloc
    - PyErr_NoMemory
    - _PyBytesWriter_Finish
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_hqx_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:859,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:862,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/binascii.c:866,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:868,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/binascii.c:871,1
    - Dst: INBYTE
      Src: /src/Python-3.8.3/Modules/binascii.c:899,1
    - Dst: INBYTE
      Src: /src/Python-3.8.3/Modules/binascii.c:902,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:911,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:915,1
    - Dst: INBYTE
      Src: /src/Python-3.8.3/Modules/binascii.c:924,1
    - Dst: INBYTE
      Src: /src/Python-3.8.3/Modules/binascii.c:927,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Modules/binascii.c:942,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/binascii.c:956,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/binascii.c:959,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 2
    argNames:
    - module
    - data
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (in_len >= 0)
      pos:
        line_end: 861
        line_start: 861
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 961
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 961
    functionName: binascii_rledecode_hqx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_Init
    - _PyBytesWriter_Alloc
    - PyErr_NoMemory
    - _PyBytesWriter_Finish
    - INBYTE
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Prepare
    - PyErr_SetString
    - assert
    - PyModule_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 894
    functionName: INBYTE
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INBYTE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - data
    - crc
    argTypes:
    - PyObject*
    - Py_buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 990
    functionName: binascii_crc_hqx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int binascii_crc_hqx_impl(PyObject *module, Py_buffer *data,
      unsigned int crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_bytes_with_sep
      Src: /src/Python-3.8.3/Modules/binascii.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - sep
    - bytes_per_sep
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1189
    functionName: binascii_b2a_hex_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_bytes_with_sep
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_hex_impl(PyObject *module, Py_buffer *data,
      PyObject *sep,\n                      int bytes_per_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_bytes_with_sep
      Src: /src/Python-3.8.3/Modules/binascii.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - sep
    - bytes_per_sep
    argTypes:
    - PyObject*
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1207
    functionName: binascii_hexlify_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_bytes_with_sep
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_hexlify_impl(PyObject *module, Py_buffer *data,
      PyObject *sep,\n                      int bytes_per_sep)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/binascii.c:1235,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:1242,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:1246,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/binascii.c:1250,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/binascii.c:1253,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/binascii.c:1256,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/binascii.c:1257,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:1259,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/binascii.c:1263,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/binascii.c:1272,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - module
    - hexstr
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts:
    - condition: (arglen >= 0)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/Python-3.8.3/Modules/binascii.c
    constantsTouched: []
    func_position:
      end: 1274
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1274
    functionName: binascii_a2b_hex_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    - assert
    - PyModule_GetState
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_hex_impl(PyObject *module, Py_buffer *hexstr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binascii_a2b_hex_impl
      Src: /src/Python-3.8.3/Modules/binascii.c:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - hexstr
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1289
    functionName: binascii_unhexlify_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - binascii_a2b_hex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_unhexlify_impl(PyObject *module, Py_buffer *hexstr)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/binascii.c:1321,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:1323,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/binascii.c:1326,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/binascii.c:1373,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/binascii.c:1374,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/binascii.c:1377,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 3
    argNames:
    - module
    - data
    - header
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1379
    functionName: binascii_a2b_qp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_Malloc
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_qp_impl(PyObject *module, Py_buffer *data, int header)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ch
    - s
    argTypes:
    - unsigned char
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1390
    functionName: to_hex
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int to_hex (unsigned char ch, unsigned char *s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/binascii.c:1433,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:1499,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/binascii.c:1509,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/binascii.c:1511,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/binascii.c:1514,1
    - Dst: to_hex
      Src: /src/Python-3.8.3/Modules/binascii.c:1537,1
    - Dst: to_hex
      Src: /src/Python-3.8.3/Modules/binascii.c:1553,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/binascii.c:1584,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/binascii.c:1585,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/binascii.c:1588,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 107
    argCount: 5
    argNames:
    - module
    - data
    - quotetabs
    - istext
    - header
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1590
    functionName: binascii_b2a_qp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memchr
    - PyErr_NoMemory
    - to_hex
    - PyMem_Free
    - PyMem_Malloc
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinascii_b2a_qp_impl(PyObject *module, Py_buffer *data,
      int quotetabs,\n                     int istext, int header)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/binascii.c:1621,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/binascii.c:1626,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/binascii.c:1630,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/binascii.c:1635,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/binascii.c:1639,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1645
    functionName: binascii_exec
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyModule_AddObject
    - PyModule_GetState
    - PyErr_NewException
    linkageType: ''
    returnType: int
    signature: int binascii_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/binascii.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1668
    functionName: PyInit_binascii
    functionSourceFile: /src/Python-3.8.3/Modules/binascii.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_binascii(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:93,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:100,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:102,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:107,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:114,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:123,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:129,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:130,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:131,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:135,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:136,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:137,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:141,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:142,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 151
    functionName: newossobject
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _Py_open
    - ioctl
    - PyErr_SetFromErrnoWithFilename
    - fcntl
    - close
    - getenv
    - PyErr_SetString
    - strcmp
    - PyArg_ParseTuple
    - PyObject_New
    linkageType: ''
    returnType: oss_audio_t
    signature: 'oss_audio_t *

      newossobject(PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:158,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - oss_audio_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: oss_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - close
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void oss_dealloc(oss_audio_t *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:174,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:179,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:184,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:188,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: newossmixerobject
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _Py_open
    - close
    - getenv
    - PyArg_ParseTuple
    - PyObject_New
    linkageType: ''
    returnType: oss_mixer_t
    signature: 'oss_mixer_t *

      newossmixerobject(PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:203,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - oss_mixer_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: oss_mixer_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - close
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void oss_mixer_dealloc(oss_mixer_t *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: _is_fd_valid
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _is_fd_valid(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:250,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:250,1
    - Dst: strncat
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:251,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:252,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:255,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:256,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - args
    - fname
    - cmd
    argTypes:
    - int
    - PyObject*
    - char*
    - unsigned long
    assertStmts:
    - condition: (strlen(fname) <= 30)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: _do_ioctl_1
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - strncat
    - ioctl
    - PyErr_SetFromErrno
    - strlen
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _do_ioctl_1(int fd, PyObject *args, char *fname, unsigned long cmd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:275,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:275,1
    - Dst: strncat
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:276,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:277,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:280,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:281,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - fd
    - args
    - fname
    - cmd
    argTypes:
    - int
    - PyObject*
    - char*
    - unsigned long
    assertStmts:
    - condition: (strlen(fname) <= 30)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: _do_ioctl_1_internal
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - strncat
    - ioctl
    - PyErr_SetFromErrno
    - strlen
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _do_ioctl_1_internal(int fd, PyObject *args, char *fname, unsigned long cmd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:295,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:295,1
    - Dst: strncat
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:296,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:297,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:305,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - fd
    - args
    - fname
    - cmd
    argTypes:
    - int
    - PyObject*
    - char*
    - unsigned long
    assertStmts:
    - condition: (strlen(fname) <= 30)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    constantsTouched: []
    func_position:
      end: 311
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 311
    functionName: _do_ioctl_0
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - strncat
    - ioctl
    - PyErr_SetFromErrno
    - strlen
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _do_ioctl_0(int fd, PyObject *args, char *fname, unsigned long cmd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:321,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:326,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: oss_nonblock
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - ioctl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_nonblock(oss_audio_t *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:334,1
    - Dst: _do_ioctl_1
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 338
    functionName: oss_setfmt
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_setfmt(oss_audio_t *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:345,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:348,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:349,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: oss_getfmts
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _is_fd_valid
    - ioctl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_getfmts(oss_audio_t *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:356,1
    - Dst: _do_ioctl_1
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: oss_channels
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_channels(oss_audio_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:365,1
    - Dst: _do_ioctl_1
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: oss_speed
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_speed(oss_audio_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:374,1
    - Dst: _do_ioctl_0
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: oss_sync
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_0
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_sync(oss_audio_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:383,1
    - Dst: _do_ioctl_0
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: oss_reset
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_0
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_reset(oss_audio_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:392,1
    - Dst: _do_ioctl_0
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: oss_post
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_0
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_post(oss_audio_t *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:408,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:411,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:414,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:418,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:420,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 427
    functionName: oss_read
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyBytes_Resize
    - _Py_read
    - PyBytes_AS_STRING
    - _is_fd_valid
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_read(oss_audio_t *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:435,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:438,1
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:442,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:443,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 449
    functionName: oss_write
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Py_write
    - PyBuffer_Release
    - _is_fd_valid
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_write(oss_audio_t *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:468,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:471,1
    - Dst: _PyIsSelectable_fd
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:474,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:475,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:477,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:481,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:482,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:488,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:493,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:494,1
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:497,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:497,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:501,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:505,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:514,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 516
    functionName: oss_writeall
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - select
    - _Py_write
    - FD_ZERO
    - FD_SET
    - PyErr_SetFromErrno
    - _PyIsSelectable_fd
    - PyBuffer_Release
    - PyErr_SetString
    - _is_fd_valid
    - PyErr_Clear
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_writeall(oss_audio_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 528
    functionName: oss_close
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_close(oss_audio_t *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 535
    functionName: oss_self
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_self(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:540,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 547
    functionName: oss_exit
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_exit(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:552,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: oss_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _is_fd_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_fileno(oss_audio_t *self, PyObject *unused)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:568,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:571,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:577,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:578,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:581,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:588,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:589,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:592,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:599,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:600,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:603,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:611,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 612
    functionName: oss_setparameters
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - ioctl
    - PyErr_SetFromErrno
    - PyErr_Format
    - _is_fd_valid
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_setparameters(oss_audio_t *self, PyObject *args)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:620,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:641,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - self
    - nchannels
    - ssize
    argTypes:
    - oss_audio_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 644
    functionName: _ssize
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - ioctl
    linkageType: ''
    returnType: int
    signature: int _ssize(oss_audio_t *self, int *nchannels, int *ssize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:655,1
    - Dst: _ssize
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:658,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:659,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:662,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:663,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:666,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 667
    functionName: oss_bufsize
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ioctl
    - _ssize
    - PyErr_SetFromErrno
    - _is_fd_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_bufsize(oss_audio_t *self, PyObject *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:677,1
    - Dst: _ssize
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:680,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:681,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:684,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:685,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:688,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 690
    functionName: oss_obufcount
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ioctl
    - _ssize
    - PyErr_SetFromErrno
    - _is_fd_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_obufcount(oss_audio_t *self, PyObject *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:700,1
    - Dst: _ssize
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:703,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:704,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:707,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:708,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 712
    functionName: oss_obuffree
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ioctl
    - _ssize
    - PyErr_SetFromErrno
    - _is_fd_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_obuffree(oss_audio_t *self, PyObject *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:720,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:727,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:728,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_audio_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 732
    functionName: oss_getptr
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - Py_BuildValue
    - ioctl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_getptr(oss_audio_t *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: oss_mixer_close
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_close(oss_mixer_t *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:752,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 756
    functionName: oss_mixer_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _is_fd_valid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_fileno(oss_mixer_t *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:763,1
    - Dst: _do_ioctl_1_internal
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 768
    functionName: oss_mixer_controls
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_controls(oss_mixer_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:773,1
    - Dst: _do_ioctl_1_internal
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: oss_mixer_stereocontrols
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_stereocontrols(oss_mixer_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:783,1
    - Dst: _do_ioctl_1_internal
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 788
    functionName: oss_mixer_reccontrols
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_reccontrols(oss_mixer_t *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:795,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:799,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:803,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:807,1
    - Dst: MIXER_READ
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:807,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:808,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 811
    functionName: oss_mixer_get
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - ioctl
    - PyErr_SetFromErrno
    - PyErr_SetString
    - _is_fd_valid
    - MIXER_READ
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_get(oss_mixer_t *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:818,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:822,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:826,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:831,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:837,1
    - Dst: MIXER_WRITE
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:837,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:838,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 841
    functionName: oss_mixer_set
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - ioctl
    - PyErr_SetFromErrno
    - MIXER_WRITE
    - PyErr_SetString
    - _is_fd_valid
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_set(oss_mixer_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:846,1
    - Dst: _do_ioctl_1_internal
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 851
    functionName: oss_mixer_get_recsrc
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_get_recsrc(oss_mixer_t *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_valid
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:856,1
    - Dst: _do_ioctl_1
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - oss_mixer_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 861
    functionName: oss_mixer_set_recsrc
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _is_fd_valid
    - _do_ioctl_1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mixer_set_recsrc(oss_mixer_t *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - oss_audio_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 933
    functionName: oss_closed_getter
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_closed_getter(oss_audio_t *self, void *closure)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:940,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:943,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:946,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - oss_audio_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 953
    functionName: oss_mode_getter
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      oss_mode_getter(oss_audio_t *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newossobject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: ossopen
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - newossobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ossopen(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newossmixerobject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1038
    functionName: ossopenmixer
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - newossmixerobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ossopenmixer(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mod
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1049
    functionName: _EXPORT_INT
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _EXPORT_INT(mod, name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1064,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1065,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1065,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1067,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1068,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1072,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1075,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1077,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1080,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1083,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1085,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1091,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1093,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (num_controls == Py_ARRAY_LENGTH(control_names))
      pos:
        line_end: 1064
        line_start: 1064
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    constantsTouched: []
    func_position:
      end: 1095
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1095
    functionName: build_namelists
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ARRAY_LENGTH
    - PyList_SET_ITEM
    - PyModule_AddObject
    - PyList_New
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int build_namelists (PyObject *module)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1115,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1118,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1121,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1125,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1129,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1130,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1131,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1132,1
    - Dst: build_namelists
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1137,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1141,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1142,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1143,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1144,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1145,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1146,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1147,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1148,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1149,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1150,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1151,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1153,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1156,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1159,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1162,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1165,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1168,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1172,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1173,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1174,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1175,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1176,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1177,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1178,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1179,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1180,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1181,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1182,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1183,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1184,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1185,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1186,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1187,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1188,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1189,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1191,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1194,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1197,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1200,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1203,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1206,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1209,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1212,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1217,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1218,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1219,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1220,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1221,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1222,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1223,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1224,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1225,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1226,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1228,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1230,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1231,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1232,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1234,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1236,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1237,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1238,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1240,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1242,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1243,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1245,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1247,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1248,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1249,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1250,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1251,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1253,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1255,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1256,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1257,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1258,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1259,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1261,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1263,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1264,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1265,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1266,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1267,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1268,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1269,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1270,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1271,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1272,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1273,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1274,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1275,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1276,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1277,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1279,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1281,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1282,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1283,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1284,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1285,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1286,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1287,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1288,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1289,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1290,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1292,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1295,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1297,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1298,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1300,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1302,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1303,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1304,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1305,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1306,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1307,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1308,1
    - Dst: _EXPORT_INT
      Src: /src/Python-3.8.3/Modules/ossaudiodev.c:1309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 134
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1110
    functionDepth: 2
    functionLinenumber: 1110
    functionLinenumberEnd: 1311
    functionName: PyInit_ossaudiodev
    functionSourceFile: /src/Python-3.8.3/Modules/ossaudiodev.c
    functionUses: 0
    functionsReached:
    - _EXPORT_INT
    - build_namelists
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_ossaudiodev(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: dirfd
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dirfd(dirp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: POSIX_CALL
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POSIX_CALL(call)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:58,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:62,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:63,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:65,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - need_to_reenable_gc
    - gc_module
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: _enable_gc
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyErr_Restore
    linkageType: ''
    returnType: int
    signature: int _enable_gc(int need_to_reenable_gc, PyObject *gc_module)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: _pos_int_from_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _pos_int_from_ascii(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:103,1
    - Dst: stat
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: _is_fdescfs_mounted_on_dev_fd
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - stat
    linkageType: ''
    returnType: int
    signature: int _is_fdescfs_mounted_on_dev_fd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:120,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:121,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:123,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - fd_sequence
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 134
    functionName: _sanity_check_python_fd_sequence
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int _sanity_check_python_fd_sequence(PyObject *fd_sequence)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:143,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:148,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - fd_sequence
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 157
    functionName: _is_fd_in_sorted_fd_sequence
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int _is_fd_in_sorted_fd_sequence(int fd, PyObject *fd_sequence)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:164,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:166,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:167,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:168,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:168,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:169,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - py_fds_to_keep
    - errpipe_write
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
    - condition: (0 <= fd && fd <= INT_MAX)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
    constantsTouched: []
    func_position:
      end: 180
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 180
    functionName: make_inheritable
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _Py_set_inheritable_async_safe
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int make_inheritable(PyObject *py_fds_to_keep, int errpipe_write)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:191,1
    - Dst: getrlimit
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:199,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: safe_get_max_fd
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - fcntl
    - sysconf
    - getrlimit
    linkageType: ''
    returnType: long
    signature: long safe_get_max_fd(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: safe_get_max_fd
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:222,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:223,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:229,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:230,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:234,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - start_fd
    - py_fds_to_keep
    argTypes:
    - long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 243
    functionName: _close_fds_by_brute_force
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyTuple_GET_SIZE
    - close
    - safe_get_max_fd
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: void
    signature: void _close_fds_by_brute_force(long start_fd, PyObject *py_fds_to_keep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_open_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:281,1
    - Dst: _close_fds_by_brute_force
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:284,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:289,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:295,1
    - Dst: _pos_int_from_ascii
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:300,1
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:303,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:304,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:308,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - start_fd
    - py_fds_to_keep
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 310
    functionName: _close_open_fds_safe
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - _pos_int_from_ascii
    - syscall
    - _is_fd_in_sorted_fd_sequence
    - close
    - _Py_open_noraise
    - _close_fds_by_brute_force
    linkageType: ''
    returnType: void
    signature: void _close_open_fds_safe(int start_fd, PyObject* py_fds_to_keep)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:335,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:342,1
    - Dst: _is_fdescfs_mounted_on_dev_fd
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:347,1
    - Dst: opendir
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:351,1
    - Dst: _close_fds_by_brute_force
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:354,1
    - Dst: dirfd
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:358,1
    - Dst: readdir
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:363,1
    - Dst: _pos_int_from_ascii
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:365,1
    - Dst: _is_fd_in_sorted_fd_sequence
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:368,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:369,1
    - Dst: _close_fds_by_brute_force
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:375,1
    - Dst: closedir
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - start_fd
    - py_fds_to_keep
    argTypes:
    - long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 379
    functionName: _close_open_fds_maybe_unsafe
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - opendir
    - readdir
    - _pos_int_from_ascii
    - _is_fd_in_sorted_fd_sequence
    - close
    - dirfd
    - closedir
    - _is_fdescfs_mounted_on_dev_fd
    - _close_fds_by_brute_force
    linkageType: ''
    returnType: void
    signature: void _close_open_fds_maybe_unsafe(long start_fd, PyObject* py_fds_to_keep)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: make_inheritable
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:418,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:423,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:423,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:425,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:425,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:427,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:427,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:428,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:428,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:433,1
    - Dst: dup
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:433,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:435,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:440,1
    - Dst: dup
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:440,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:442,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:451,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:455,1
    - Dst: dup2
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:455,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:458,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:462,1
    - Dst: dup2
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:462,1
    - Dst: _Py_set_inheritable_async_safe
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:465,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:469,1
    - Dst: dup2
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:469,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:475,1
    - Dst: chdir
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:475,1
    - Dst: _Py_RestoreSignals
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:478,1
    - Dst: POSIX_CALL
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:482,1
    - Dst: setsid
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:482,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:488,1
    - Dst: _close_open_fds
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:505,1
    - Dst: execve
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:514,1
    - Dst: execv
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:516,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:535,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:541,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:542,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:545,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:550,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:551,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:551,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 97
    argCount: 18
    argNames:
    - exec_array
    - argv
    - envp
    - cwd
    - p2cread
    - p2cwrite
    - c2pread
    - c2pwrite
    - errread
    - errwrite
    - errpipe_read
    - errpipe_write
    - close_fds
    - restore_signals
    - call_setsid
    - py_fds_to_keep
    - preexec_fn
    - preexec_fn_args_tuple
    argTypes:
    - char*[]
    - char*[]
    - char*[]
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 553
    functionName: child_exec
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - dup2
    - chdir
    - execv
    - _Py_RestoreSignals
    - execve
    - _close_open_fds
    - close
    - strlen
    - _Py_set_inheritable_async_safe
    - make_inheritable
    - POSIX_CALL
    - _Py_write_noraise
    - PyObject_Call
    - dup
    - setsid
    linkageType: ''
    returnType: void
    signature: "void child_exec(char *const exec_array[],\n           char *const
      argv[],\n           char *const envp[],\n           const char *cwd,\n           int
      p2cread, int p2cwrite,\n           int c2pread, int c2pwrite,\n           int
      errread, int errwrite,\n           int errpipe_read, int errpipe_write,\n           int
      close_fds, int restore_signals,\n           int call_setsid,\n           PyObject
      *py_fds_to_keep,\n           PyObject *preexec_fn,\n           PyObject *preexec_fn_args_tuple)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:576,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:587,1
    - Dst: PyInterpreterState_Main
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:587,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:588,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:594,1
    - Dst: _sanity_check_python_fd_sequence
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:598,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:605,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:606,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:608,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:611,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:613,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:617,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:619,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:627,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:630,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:641,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:644,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:645,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:650,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:651,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:654,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:655,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:657,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:660,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:661,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:662,1
    - Dst: _PySequence_BytesToCharpArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:668,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:674,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:676,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:686,1
    - Dst: PyOS_BeforeFork
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:689,1
    - Dst: fork
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:693,1
    - Dst: PyOS_AfterFork_Child
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:707,1
    - Dst: child_exec
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:710,1
    - Dst: _exit
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:715,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:724,1
    - Dst: PyOS_AfterFork_Parent
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:727,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:729,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:731,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:732,1
    - Dst: _enable_gc
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:735,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:738,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:739,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:745,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:749,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:753,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:755,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:757,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:758,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:759,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:760,1
    - Dst: _enable_gc
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:761,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:762,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 140
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 764
    functionName: subprocess_fork_exec
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyOS_BeforeFork
    - Py_CLEAR
    - _Py_FreeCharPArray
    - _Py_IDENTIFIER
    - PySequence_Fast
    - _PySequence_BytesToCharpArray
    - PyOS_AfterFork_Parent
    - PySequence_Fast_GET_ITEM
    - PyLong_FromPid
    - _enable_gc
    - Py_XDECREF
    - PyArg_ParseTuple
    - PySequence_Fast_GET_SIZE
    - _PyInterpreterState_Get
    - Py_DECREF
    - _sanity_check_python_fd_sequence
    - fork
    - PyBytes_AsString
    - PyInterpreterState_Main
    - _exit
    - PyErr_SetFromErrno
    - PyTuple_New
    - PyUnicode_FSConverter
    - PyImport_ImportModule
    - _PyObject_CallMethodId
    - PyOS_AfterFork_Child
    - PyErr_SetString
    - PyObject_IsTrue
    - PyTuple_SET_ITEM
    - child_exec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subprocess_fork_exec(PyObject* self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_posixsubprocess.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: PyInit__posixsubprocess
    functionSourceFile: /src/Python-3.8.3/Modules/_posixsubprocess.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__posixsubprocess(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:13,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:17,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:17,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:19,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - strobj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 24
    functionName: _copy_raw_string
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyUnicode_AsUTF8
    - PyErr_NoMemory
    - strlen
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      _copy_raw_string(PyObject *strobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: _get_current
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _get_current(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _copy_raw_string
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:47,1
    - Dst: _PyObject_GetCrossInterpreterData
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:51,1
    - Dst: _sharednsitem_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - item
    - key
    - value
    argTypes:
    - struct _sharednsitem*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: _sharednsitem_init
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_clear
    - _PyObject_GetCrossInterpreterData
    - _copy_raw_string
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_init(struct _sharednsitem *item, PyObject *key, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:62,1
    - Dst: _PyCrossInterpreterData_Release
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct _sharednsitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: _sharednsitem_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - _PyCrossInterpreterData_Release
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _sharednsitem_clear(struct _sharednsitem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:71,1
    - Dst: _PyCrossInterpreterData_NewObject
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:75,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:77,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:80,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:81,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - item
    - ns
    argTypes:
    - struct _sharednsitem*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: _sharednsitem_apply
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyCrossInterpreterData_NewObject
    - PyUnicode_FromString
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _sharednsitem_apply(struct _sharednsitem *item, PyObject *ns)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:94,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:96,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:100,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:102,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - len
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 107
    functionName: _sharedns_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    - PyMem_Free
    linkageType: ''
    returnType: _sharedns
    signature: '_sharedns *

      _sharedns_new(Py_ssize_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sharednsitem_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:113,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:115,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - shared
    argTypes:
    - _sharedns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: _sharedns_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_clear
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _sharedns_free(_sharedns *shared)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Size
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:125,1
    - Dst: _sharedns_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:130,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:137,1
    - Dst: _sharednsitem_init
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:140,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:144,1
    - Dst: _sharedns_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - shareable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 149
    functionName: _get_shared_ns
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyDict_Next
    - _sharednsitem_init
    - PyDict_Size
    - _sharedns_new
    - _sharedns_free
    linkageType: ''
    returnType: _sharedns
    signature: '_sharedns *

      _get_shared_ns(PyObject *shareable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sharednsitem_apply
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - shared
    - ns
    argTypes:
    - _sharedns*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: _sharedns_apply
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _sharednsitem_apply
    linkageType: ''
    returnType: int
    signature: int _sharedns_apply(_sharedns *shared, PyObject *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:175,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: _sharedexception_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    linkageType: ''
    returnType: _sharedexception
    signature: '_sharedexception *

      _sharedexception_new(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:189,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - exc
    argTypes:
    - _sharedexception*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: _sharedexception_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _sharedexception_clear(_sharedexception *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sharedexception_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:199,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exc
    argTypes:
    - _sharedexception*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: _sharedexception_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _sharedexception_clear
    linkageType: ''
    returnType: void
    signature: void _sharedexception_free(_sharedexception *exc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:206,1
    - Dst: _sharedexception_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:209,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:214,1
    - Dst: _copy_raw_string
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:220,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:222,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:231,1
    - Dst: _copy_raw_string
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:237,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:239,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:250,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:252,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - exctype
    - exc
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (exctype != NULL)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    constantsTouched: []
    func_position:
      end: 258
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 258
    functionName: _sharedexception_bind
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _copy_raw_string
    - Py_DECREF
    - _sharedexception_new
    - PyUnicode_FromFormat
    - PyErr_ExceptionMatches
    - PyMem_Free
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: _sharedexception
    signature: '_sharedexception *

      _sharedexception_bind(PyObject *exctype, PyObject *exc, PyObject *tb)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:265,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:268,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:272,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - exc
    - wrapperclass
    argTypes:
    - _sharedexception*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 277
    functionName: _sharedexception_apply
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    - PyErr_SetNone
    linkageType: ''
    returnType: void
    signature: void _sharedexception_apply(_sharedexception *exc, PyObject *wrapperclass)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:298,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:303,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:308,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:313,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:318,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:323,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:328,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:333,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:338,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:343,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 348
    functionName: channel_exceptions_init
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyErr_NewException
    linkageType: ''
    returnType: int
    signature: int channel_exceptions_init(PyObject *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:362,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: _channelitem_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    linkageType: ''
    returnType: _channelitem
    signature: '_channelitem *

      _channelitem_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCrossInterpreterData_Release
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:376,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 381
    functionName: _channelitem_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyCrossInterpreterData_Release
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _channelitem_clear(_channelitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:386,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 388
    functionName: _channelitem_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_clear
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _channelitem_free(_channelitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 398
    functionName: _channelitem_free_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free
    linkageType: ''
    returnType: void
    signature: void _channelitem_free_all(_channelitem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - _channelitem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 407
    functionName: _channelitem_popped
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free
    linkageType: ''
    returnType: _PyCrossInterpreterData
    signature: '_PyCrossInterpreterData *

      _channelitem_popped(_channelitem *item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:418,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: _channelqueue_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    linkageType: ''
    returnType: _channelqueue
    signature: '_channelqueue *

      _channelqueue_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_free_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _channelqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 4
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: _channelqueue_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_free_all
    linkageType: ''
    returnType: void
    signature: void _channelqueue_clear(_channelqueue *queue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelqueue_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:441,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _channelqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 5
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: _channelqueue_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelqueue_clear
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _channelqueue_free(_channelqueue *queue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - queue
    - data
    argTypes:
    - _channelqueue*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 463
    functionName: _channelqueue_put
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_new
    linkageType: ''
    returnType: int
    signature: int _channelqueue_put(_channelqueue *queue, _PyCrossInterpreterData
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelitem_popped
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - queue
    argTypes:
    - _channelqueue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: _channelqueue_get
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelitem_popped
    linkageType: ''
    returnType: _PyCrossInterpreterData
    signature: '_PyCrossInterpreterData *

      _channelqueue_get(_channelqueue *queue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:494,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: _channelend_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    linkageType: ''
    returnType: _channelend
    signature: '_channelend *

      _channelend_new(int64_t interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - end
    argTypes:
    - _channelend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: _channelend_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _channelend_free(_channelend *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - end
    argTypes:
    - _channelend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 519
    functionName: _channelend_free_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_free
    linkageType: ''
    returnType: void
    signature: void _channelend_free_all(_channelend *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - first
    - interp
    - pprev
    argTypes:
    - _channelend*
    - int64_t
    - _channelend**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 537
    functionName: _channelend_find
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelend
    signature: '_channelend *

      _channelend_find(_channelend *first, int64_t interp, _channelend **pprev)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 562
    functionName: _channelends_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    linkageType: ''
    returnType: _channelends
    signature: '_channelends *

      _channelends_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_free_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:567,1
    - Dst: _channelend_free_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 574
    functionName: _channelends_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_free_all
    linkageType: ''
    returnType: void
    signature: void _channelends_clear(_channelends *ends)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelends_clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:579,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: _channelends_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _channelends_clear
    linkageType: ''
    returnType: void
    signature: void _channelends_free(_channelends *ends)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ends
    - prev
    - interp
    - send
    argTypes:
    - _channelends*
    - _channelend*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 610
    functionName: _channelends_add
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_new
    linkageType: ''
    returnType: _channelend
    signature: "_channelend *\n_channelends_add(_channelends *ends, _channelend *prev,
      int64_t interp,\n                 int send)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:616,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:620,1
    - Dst: _channelends_add
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ends
    - interp
    - send
    argTypes:
    - _channelends*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 630
    functionName: _channelends_associate
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_find
    - _channelends_add
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _channelends_associate(_channelends *ends, int64_t interp, int
      send)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ends
    argTypes:
    - _channelends*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: _channelends_is_open
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _channelends_is_open(_channelends *ends)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ends
    - end
    - send
    argTypes:
    - _channelends*
    - _channelend*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 654
    functionName: _channelends_close_end
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _channelends_close_end(_channelends *ends, _channelend *end, int
      send)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _channelend_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:662,1
    - Dst: _channelends_add
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:665,1
    - Dst: _channelends_close_end
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:670,1
    - Dst: _channelend_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:673,1
    - Dst: _channelends_add
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:676,1
    - Dst: _channelends_close_end
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - ends
    - interp
    - which
    argTypes:
    - _channelends*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 684
    functionName: _channelends_close_interpreter
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelend_find
    - _channelends_add
    - _channelends_close_end
    linkageType: ''
    returnType: int
    signature: int _channelends_close_interpreter(_channelends *ends, int64_t interp,
      int which)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channelends_close_end
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:695,1
    - Dst: _channelends_close_end
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ends
    - which
    - force
    argTypes:
    - _channelends*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 702
    functionName: _channelends_close_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_close_end
    linkageType: ''
    returnType: void
    signature: void _channelends_close_all(_channelends *ends, int which, int force)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:722,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:726,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:728,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:729,1
    - Dst: _channelqueue_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:733,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:735,1
    - Dst: _channelends_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:738,1
    - Dst: _channelqueue_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:740,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 719
    functionDepth: 6
    functionLinenumber: 719
    functionLinenumberEnd: 747
    functionName: _channel_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_new
    - PyMem_NEW
    - _channelqueue_new
    - PyMem_Free
    - PyThread_allocate_lock
    - PyErr_SetString
    - _channelqueue_free
    linkageType: ''
    returnType: _PyChannelState
    signature: '_PyChannelState *

      _channel_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:752,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:753,1
    - Dst: _channelqueue_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:754,1
    - Dst: _channelends_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:755,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:756,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:758,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - chan
    argTypes:
    - _PyChannelState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 6
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: _channel_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_clear_closing
    - _channelends_free
    - PyThread_free_lock
    - PyThread_acquire_lock
    - PyMem_Free
    - PyThread_release_lock
    - _channelqueue_free
    linkageType: ''
    returnType: void
    signature: void _channel_free(_PyChannelState *chan)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:767,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:770,1
    - Dst: _channelends_associate
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:773,1
    - Dst: _channelqueue_put
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:777,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - chan
    - interp
    - data
    argTypes:
    - _PyChannelState*
    - int64_t
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 762
    functionDepth: 4
    functionLinenumber: 762
    functionLinenumberEnd: 785
    functionName: _channel_add
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelqueue_put
    - PyThread_acquire_lock
    - PyErr_SetString
    - PyThread_release_lock
    - _channelends_associate
    linkageType: ''
    returnType: int
    signature: "int _channel_add(_PyChannelState *chan, int64_t interp,\n             _PyCrossInterpreterData
      *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:791,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:794,1
    - Dst: _channelends_associate
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:797,1
    - Dst: _channelqueue_get
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:801,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:802,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:807,1
    - Dst: _channel_finish_closing
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:809,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - chan
    - interp
    argTypes:
    - _PyChannelState*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 812
    functionName: _channel_next
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_finish_closing
    - PyErr_Occurred
    - PyThread_acquire_lock
    - _channelqueue_get
    - PyErr_SetString
    - PyThread_release_lock
    - _channelends_associate
    linkageType: ''
    returnType: _PyCrossInterpreterData
    signature: '_PyCrossInterpreterData *

      _channel_next(_PyChannelState *chan, int64_t interp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:817,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:821,1
    - Dst: _channelends_close_interpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:825,1
    - Dst: _channelends_is_open
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:828,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:832,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - chan
    - interp
    - end
    argTypes:
    - _PyChannelState*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 814
    functionDepth: 4
    functionLinenumber: 814
    functionLinenumberEnd: 834
    functionName: _channel_close_interpreter
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelends_is_open
    - PyThread_acquire_lock
    - PyErr_SetString
    - PyThread_release_lock
    - _channelends_close_interpreter
    linkageType: ''
    returnType: int
    signature: int _channel_close_interpreter(_PyChannelState *chan, int64_t interp,
      int end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:840,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:843,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:848,1
    - Dst: _channelends_close_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:857,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:861,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - chan
    - end
    - force
    argTypes:
    - _PyChannelState*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 863
    functionName: _channel_close_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelends_close_all
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_close_all(_PyChannelState *chan, int end, int force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - id
    - chan
    argTypes:
    - int64_t
    - _PyChannelState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 888
    functionName: _channelref_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    linkageType: ''
    returnType: _channelref
    signature: '_channelref *

      _channelref_new(int64_t id, _PyChannelState *chan)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:903,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:906,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - _channelref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 907
    functionName: _channelref_free
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_clear_closing
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _channelref_free(_channelref *ref)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - first
    - id
    - pprev
    argTypes:
    - _channelref*
    - int64_t
    - _channelref**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 925
    functionName: _channelref_find
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _channelref
    signature: '_channelref *

      _channelref_find(_channelref *first, int64_t id, _channelref **pprev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:938,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channels
    argTypes:
    - _channels*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 949
    functionName: _channels_init
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_allocate_lock
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _channels_init(_channels *channels)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - channels
    argTypes:
    - _channels*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 963
    functionName: _channels_next_id
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int64_t
    signature: int64_t _channels_next_id(_channels *channels)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:969,1
    - Dst: _channelref_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:974,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:976,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:980,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:992,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - channels
    - id
    - pmutex
    argTypes:
    - _channels*
    - int64_t
    - PyThread_type_lock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 995
    functionName: _channels_lookup
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_find
    - PyErr_Format
    - PyThread_release_lock
    linkageType: ''
    returnType: _PyChannelState
    signature: '_PyChannelState *

      _channels_lookup(_channels *channels, int64_t id, PyThread_type_lock *pmutex)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1001,1
    - Dst: _channels_next_id
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1004,1
    - Dst: _channelref_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1008,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - channels
    - chan
    argTypes:
    - _channels*
    - _PyChannelState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1023
    functionName: _channels_add
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_new
    - _channels_next_id
    - PyThread_release_lock
    linkageType: ''
    returnType: int64_t
    signature: int64_t _channels_add(_channels *channels, _PyChannelState *chan)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1033,1
    - Dst: _channelref_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1038,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1040,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1045,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1049,1
    - Dst: _channel_close_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1053,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1055,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1057,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1063,1
    - Dst: _channel_set_closing
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1064,1
    - Dst: _channel_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1078,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1085,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 5
    argNames:
    - channels
    - cid
    - pchan
    - end
    - force
    argTypes:
    - _channels*
    - int64_t
    - _PyChannelState**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1028
    functionDepth: 7
    functionLinenumber: 1028
    functionLinenumberEnd: 1087
    functionName: _channels_close
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelref_find
    - _channel_close_all
    - _channel_free
    - _channel_set_closing
    - PyThread_acquire_lock
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyThread_release_lock
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int _channels_close(_channels *channels, int64_t cid, _PyChannelState
      **pchan,\n                int end, int force)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channelref_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - channels
    - ref
    - prev
    - pchan
    argTypes:
    - _channels*
    - _channelref*
    - _channelref*
    - _PyChannelState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1105
    functionName: _channels_remove_ref
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelref_free
    linkageType: ''
    returnType: void
    signature: "void _channels_remove_ref(_channels *channels, _channelref *ref, _channelref
      *prev,\n                     _PyChannelState **pchan)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1111,1
    - Dst: _channelref_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1118,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1120,1
    - Dst: _channels_remove_ref
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1124,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - channels
    - id
    - pchan
    argTypes:
    - _channels*
    - int64_t
    - _PyChannelState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1107
    functionDepth: 3
    functionLinenumber: 1107
    functionLinenumberEnd: 1130
    functionName: _channels_remove
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelref_find
    - _channels_remove_ref
    - PyThread_acquire_lock
    - PyErr_Format
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channels_remove(_channels *channels, int64_t id, _PyChannelState
      **pchan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1136,1
    - Dst: _channelref_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1138,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1140,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - channels
    - id
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1149
    functionName: _channels_add_id_object
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - _channelref_find
    - PyErr_Format
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channels_add_id_object(_channels *channels, int64_t id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1154,1
    - Dst: _channelref_find
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1157,1
    - Dst: _channels_remove_ref
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1167,1
    - Dst: _channel_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1169,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - channels
    - id
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1151
    functionDepth: 7
    functionLinenumber: 1151
    functionLinenumberEnd: 1175
    functionName: _channels_drop_id_object
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channelref_find
    - _channels_remove_ref
    - _channel_free
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _channels_drop_id_object(_channels *channels, int64_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1181,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1184,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1187,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - channels
    - count
    argTypes:
    - _channels*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1201
    functionName: _channels_list_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyMem_NEW
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: int64_t
    signature: 'int64_t *

      _channels_list_all(_channels *channels, int64_t *count)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1217,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1219,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1222,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ref
    - mutex
    argTypes:
    - struct _channelref*
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1232
    functionName: _channel_set_closing
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - PyThread_acquire_lock
    - PyMem_NEW
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _channel_set_closing(struct _channelref *ref, PyThread_type_lock
      mutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1236,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1238,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - struct _channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1242
    functionName: _channel_clear_closing
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 2
    functionsReached:
    - PyThread_acquire_lock
    - PyMem_Free
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _channel_clear_closing(struct _channel *chan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channel_clear_closing
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1251,1
    - Dst: _channel_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - chan
    argTypes:
    - struct _channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1244
    functionDepth: 7
    functionLinenumber: 1244
    functionLinenumberEnd: 1255
    functionName: _channel_finish_closing
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - _channel_clear_closing
    - _channel_free
    linkageType: ''
    returnType: void
    signature: void _channel_finish_closing(struct _channel *chan)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channel_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1262,1
    - Dst: _channels_add
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1266,1
    - Dst: _channel_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - channels
    argTypes:
    - _channels*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1259
    functionDepth: 7
    functionLinenumber: 1259
    functionLinenumberEnd: 1272
    functionName: _channel_create
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_new
    - _channel_free
    - _channels_add
    linkageType: ''
    returnType: int64_t
    signature: int64_t _channel_create(_channels *channels)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _channels_remove
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1278,1
    - Dst: _channel_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - channels
    - id
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1274
    functionDepth: 7
    functionLinenumber: 1274
    functionLinenumberEnd: 1285
    functionName: _channel_destroy
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_free
    - _channels_remove
    linkageType: ''
    returnType: int
    signature: int _channel_destroy(_channels *channels, int64_t id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _get_current
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1290,1
    - Dst: _channels_lookup
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1297,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1304,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1305,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1310,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1312,1
    - Dst: _PyObject_GetCrossInterpreterData
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1315,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1316,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1317,1
    - Dst: _channel_add
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1322,1
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1322,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1323,1
    - Dst: _PyCrossInterpreterData_Release
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1325,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - channels
    - id
    - obj
    argTypes:
    - _channels*
    - int64_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1287
    functionDepth: 5
    functionLinenumber: 1287
    functionLinenumberEnd: 1331
    functionName: _channel_send
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current
    - _PyObject_GetCrossInterpreterData
    - _channel_add
    - PyInterpreterState_GetID
    - PyMem_NEW
    - PyErr_Format
    - PyMem_Free
    - PyThread_release_lock
    - _PyCrossInterpreterData_Release
    - _channels_lookup
    linkageType: ''
    returnType: int
    signature: int _channel_send(_channels *channels, int64_t id, PyObject *obj)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_current
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1336,1
    - Dst: _channels_lookup
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1343,1
    - Dst: _channel_next
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1350,1
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1350,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1351,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1353,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1354,1
    - Dst: _PyCrossInterpreterData_NewObject
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1360,1
    - Dst: _PyCrossInterpreterData_Release
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1364,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - channels
    - id
    argTypes:
    - _channels*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1333
    functionDepth: 6
    functionLinenumber: 1333
    functionLinenumberEnd: 1368
    functionName: _channel_recv
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current
    - PyErr_Occurred
    - PyInterpreterState_GetID
    - _PyCrossInterpreterData_NewObject
    - PyThread_release_lock
    - PyErr_Format
    - PyMem_Free
    - _channel_next
    - _PyCrossInterpreterData_Release
    - _channels_lookup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channel_recv(_channels *channels, int64_t id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_current
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1373,1
    - Dst: _channels_lookup
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1380,1
    - Dst: _channel_close_interpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1387,1
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1387,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - channels
    - id
    - send
    - recv
    argTypes:
    - _channels*
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1370
    functionDepth: 5
    functionLinenumber: 1370
    functionLinenumberEnd: 1390
    functionName: _channel_drop
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _get_current
    - PyInterpreterState_GetID
    - _channel_close_interpreter
    - PyThread_release_lock
    - _channels_lookup
    linkageType: ''
    returnType: int
    signature: int _channel_drop(_channels *channels, int64_t id, int send, int recv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _channels_close
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - channels
    - id
    - end
    - force
    argTypes:
    - _channels*
    - int64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1392
    functionDepth: 8
    functionLinenumber: 1392
    functionLinenumberEnd: 1396
    functionName: _channel_close
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channels_close
    linkageType: ''
    returnType: int
    signature: int _channel_close(_channels *channels, int64_t id, int end, int force)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1414,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1417,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1418,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1419,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1423,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1436
    functionName: channel_id_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PyObject_TypeCheck
    - PyLong_AsLongLong
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int channel_id_converter(PyObject *arg, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1442,1
    - Dst: _channels_add_id_object
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1451,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1452,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - cls
    - cid
    - end
    - channels
    - force
    - resolve
    argTypes:
    - PyTypeObject*
    - int64_t
    - int
    - _channels*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1462
    functionName: newchannelid
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channels_add_id_object
    - Py_DECREF
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - PyObject_New
    linkageType: ''
    returnType: channelid
    signature: "channelid *\nnewchannelid(PyTypeObject *cls, int64_t cid, int end,
      _channels *channels,\n             int force, int resolve)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1475,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1482,1
    - Dst: newchannelid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1497,1
    - Dst: _global_channels
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1466
    functionDepth: 3
    functionLinenumber: 1466
    functionLinenumberEnd: 1499
    functionName: channelid_new
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - newchannelid
    - _global_channels
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1506,1
    - Dst: _channels_drop_id_object
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1501
    functionDepth: 8
    functionLinenumber: 1501
    functionLinenumberEnd: 1509
    functionName: channelid_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _channels_drop_id_object
    linkageType: ''
    returnType: void
    signature: void channelid_dealloc(PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1514,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1515,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1511
    functionDepth: 1
    functionLinenumber: 1511
    functionLinenumberEnd: 1529
    functionName: channelid_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1536
    functionName: channelid_str
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1543
    functionName: channelid_int
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_int(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1589,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1593,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1596
    functionName: channelid_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - Py_DECREF
    - PyLong_FromLongLong
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t channelid_hash(PyObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1605,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1611,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1615,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1618,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1619,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1624,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1625,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1629,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1630,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1641
    functionName: channelid_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyNumber_Check
    - Py_DECREF
    - PyObject_TypeCheck
    - PyObject_RichCompare
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1646,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1648,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1649,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1657,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1662,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cid
    - end
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1643
    functionDepth: 1
    functionLinenumber: 1643
    functionLinenumberEnd: 1667
    functionName: _channel_from_cid
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_CallFunctionObjArgs
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channel_from_cid(PyObject *cid, int end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newchannelid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1680,1
    - Dst: _global_channels
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1681,1
    - Dst: _channel_from_cid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1690,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1692,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1675
    functionDepth: 3
    functionLinenumber: 1675
    functionLinenumberEnd: 1697
    functionName: _channelid_from_xid
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channel_from_cid
    - Py_DECREF
    - newchannelid
    - _global_channels
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _channelid_from_xid(_PyCrossInterpreterData *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1702,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1716
    functionName: _channelid_shared
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int _channelid_shared(PyObject *obj, _PyCrossInterpreterData *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newchannelid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1724,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1724,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1729,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1732,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - end
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1718
    functionDepth: 3
    functionLinenumber: 1718
    functionLinenumberEnd: 1735
    functionName: channelid_end
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - newchannelid
    - PyUnicode_InternFromString
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channelid_end(PyObject *self, void *end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1811,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1822
    functionName: interp_exceptions_init
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyErr_NewException
    linkageType: ''
    returnType: int
    signature: int interp_exceptions_init(PyObject *ns)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1827,1
    - Dst: PyThreadState_Next
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1828,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1829,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1841
    functionName: _is_running
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Next
    - PyErr_Occurred
    - PyInterpreterState_ThreadHead
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _is_running(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _is_running
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1846,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1855
    functionName: _ensure_not_running
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _is_running
    linkageType: ''
    returnType: int
    signature: int _ensure_not_running(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GetMainModule
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1865,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1869,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1870,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1874,1
    - Dst: _sharedns_apply
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1878,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1879,1
    - Dst: PyRun_StringFlags
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1891,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1898,1
    - Dst: _sharedexception_bind
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1900,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1901,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1902,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1903,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1905,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1906,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1910,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1910,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - interp
    - codestr
    - shared
    - exc
    argTypes:
    - PyInterpreterState*
    - char*
    - _sharedns*
    - _sharedexception**
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1909
        line_start: 1909
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    constantsTouched: []
    func_position:
      end: 1914
      start: 1857
    functionDepth: 3
    functionLinenumber: 1857
    functionLinenumberEnd: 1914
    functionName: _run_script
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyModule_GetDict
    - PyRun_StringFlags
    - PyErr_Fetch
    - _sharedexception_bind
    - _sharedns_apply
    - fprintf
    - assert
    - _PyInterpreterState_GetMainModule
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _run_script(PyInterpreterState *interp, const char *codestr,\n
      \           _sharedns *shared, _sharedexception **exc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _ensure_not_running
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1920,1
    - Dst: _get_shared_ns
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1924,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1925,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1931,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1933,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1935,1
    - Dst: _run_script
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1940,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1944,1
    - Dst: _sharedexception_apply
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1949,1
    - Dst: _sharedexception_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1950,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1954,1
    - Dst: _sharedns_free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1958,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - interp
    - codestr
    - shareables
    argTypes:
    - PyInterpreterState*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1916
    functionDepth: 4
    functionLinenumber: 1916
    functionLinenumberEnd: 1962
    functionName: _run_script_in_interpreter
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - _sharedexception_apply
    - PyErr_Occurred
    - PyThreadState_Swap
    - _ensure_not_running
    - _run_script
    - PyErr_NoMemory
    - _get_shared_ns
    - _sharedexception_free
    - _sharedns_free
    - PyInterpreterState_ThreadHead
    linkageType: ''
    returnType: int
    signature: "int _run_script_in_interpreter(PyInterpreterState *interp, const char
      *codestr,\n                           PyObject *shareables)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _channels_init
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 1981
    functionName: _init_globals
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _channels_init
    linkageType: ''
    returnType: int
    signature: int _init_globals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1986
    functionName: _global_channels
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: _channels
    signature: '_channels *

      _global_channels(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1991,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1996,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1998,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:1999,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2004,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2007,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2010,1
    - Dst: Py_EndInterpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2011,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2012,1
    - Dst: _PyInterpreterState_RequireIDRef
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2017
    functionName: interp_create
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_NewInterpreter
    - PyThreadState_Swap
    - Py_EndInterpreter
    - _PyInterpreterState_GetIDObject
    - PyErr_SetString
    - PyArg_UnpackTuple
    - _PyInterpreterState_RequireIDRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_create(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2031,1
    - Dst: _PyInterpreterID_LookUp
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2037,1
    - Dst: _get_current
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2043,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2048,1
    - Dst: _ensure_not_running
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2056,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2062,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2064,1
    - Dst: Py_EndInterpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2065,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2025
    functionDepth: 3
    functionLinenumber: 2025
    functionLinenumberEnd: 2069
    functionName: interp_destroy
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyThreadState_Swap
    - _ensure_not_running
    - Py_EndInterpreter
    - _PyInterpreterID_LookUp
    - PyErr_SetString
    - _get_current
    - PyArg_ParseTupleAndKeywords
    - PyInterpreterState_ThreadHead
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_destroy(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2086,1
    - Dst: PyInterpreterState_Head
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2091,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2093,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2095,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2099,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2102,1
    - Dst: PyInterpreterState_Next
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2110
    functionName: interp_list_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Insert
    - PyInterpreterState_Next
    - Py_DECREF
    - _PyInterpreterState_GetIDObject
    - PyInterpreterState_Head
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_current
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2121,1
    - Dst: _PyInterpreterState_GetIDObject
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2118
    functionDepth: 2
    functionLinenumber: 2118
    functionLinenumberEnd: 2126
    functionName: interp_get_current
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GetIDObject
    - _get_current
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_get_current(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterID_New
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2140
    functionName: interp_get_main
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterID_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_get_main(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2154,1
    - Dst: _PyInterpreterID_LookUp
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2161,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2168,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2172,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2173,1
    - Dst: _run_script_in_interpreter
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2148
    functionDepth: 5
    functionLinenumber: 2148
    functionLinenumberEnd: 2183
    functionName: interp_run_string
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyInterpreterID_LookUp
    - _run_script_in_interpreter
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_run_string(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2198,1
    - Dst: _PyObject_CheckCrossInterpreterData
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2203,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2208
    functionName: object_is_shareable
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyErr_Clear
    - _PyObject_CheckCrossInterpreterData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_is_shareable(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2222,1
    - Dst: _PyInterpreterID_LookUp
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2227,1
    - Dst: _is_running
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2217
    functionDepth: 2
    functionLinenumber: 2217
    functionLinenumberEnd: 2239
    functionName: interp_is_running
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _PyInterpreterID_LookUp
    - _is_running
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interp_is_running(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _channel_create
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2249,1
    - Dst: newchannelid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2253,1
    - Dst: _channel_destroy
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2256,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (((channelid *)id)->channels != NULL)
      pos:
        line_end: 2260
        line_start: 2260
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    constantsTouched: []
    func_position:
      end: 2263
      start: 2246
    functionDepth: 8
    functionLinenumber: 2246
    functionLinenumberEnd: 2263
    functionName: channel_create
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - _channel_destroy
    - assert
    - newchannelid
    - _channel_create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_create(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2275,1
    - Dst: _channel_destroy
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2270
    functionDepth: 8
    functionLinenumber: 2270
    functionLinenumberEnd: 2284
    functionName: channel_destroy
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 2
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_destroy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_destroy(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _channels_list_all
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2296,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2299,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2303,1
    - Dst: newchannelid
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2312,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2316,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2292
    functionDepth: 3
    functionLinenumber: 2292
    functionLinenumberEnd: 2322
    functionName: channel_list_all
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_SET_ITEM
    - _channels_list_all
    - newchannelid
    - PyMem_Free
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_list_all(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2335,1
    - Dst: _channel_send
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2329
    functionDepth: 6
    functionLinenumber: 2329
    functionLinenumberEnd: 2344
    functionName: channel_send
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_send(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2356,1
    - Dst: _channel_recv
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2351
    functionDepth: 7
    functionLinenumber: 2351
    functionLinenumberEnd: 2362
    functionName: channel_recv
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_recv
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_recv(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2377,1
    - Dst: _channel_close
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2369
    functionDepth: 9
    functionLinenumber: 2369
    functionLinenumberEnd: 2387
    functionName: channel_close
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 1
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_close(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2425,1
    - Dst: _channel_drop
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2416
    functionDepth: 6
    functionLinenumber: 2416
    functionLinenumberEnd: 2442
    functionName: channel_release
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _channel_drop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel_release(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: channelid_new
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2451
    functionDepth: 4
    functionLinenumber: 2451
    functionLinenumberEnd: 2455
    functionName: channel__channel_id
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - channelid_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      channel__channel_id(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _init_globals
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2519,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2524,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2529,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2535,1
    - Dst: interp_exceptions_init
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2536,1
    - Dst: channel_exceptions_init
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2539,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2544,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2545,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2548,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2549,1
    - Dst: _PyCrossInterpreterData_RegisterClass
      Src: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c:2553,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2516
    functionDepth: 3
    functionLinenumber: 2516
    functionLinenumberEnd: 2558
    functionName: PyInit__xxsubinterpreters
    functionSourceFile: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    functionUses: 0
    functionsReached:
    - interp_exceptions_init
    - PyModule_GetDict
    - Py_INCREF
    - PyModule_Create
    - channel_exceptions_init
    - PyDict_SetItemString
    - _PyCrossInterpreterData_RegisterClass
    - _init_globals
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__xxsubinterpreters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CopyCurrent
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: _contextvars_copy_context_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_contextvarsmodule.c
    functionUses: 0
    functionsReached:
    - PyContext_CopyCurrent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_copy_context_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:45,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:50,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:51,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:55,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:59,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:60,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:63,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:64,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:68,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:69,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:72,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_contextvarsmodule.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 78
    functionName: PyInit__contextvars
    functionSourceFile: /src/Python-3.8.3/Modules/_contextvarsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - Py_DECREF
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__contextvars(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SourceAsString
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:38,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:43,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:45,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:47,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:50,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:52,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:53,1
    - Dst: _Py_SymtableStringObjectFlags
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:56,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:57,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:58,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:63,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:64,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - module
    - source
    - filename
    - startstr
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 67
    functionName: _symtable_symtable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySymtable_Free
    - Py_INCREF
    - PyMem_Free
    - PyErr_SetString
    - _Py_SymtableStringObjectFlags
    - _Py_SourceAsString
    - strcmp
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_symtable_symtable_impl(PyObject *module, PyObject *source,\n
      \                       PyObject *filename, const char *startstr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:91,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:94,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:97,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:98,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:99,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:100,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:101,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:102,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:103,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:104,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:105,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:106,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:108,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:109,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:110,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:112,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:113,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:114,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:115,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:116,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:118,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:119,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/symtablemodule.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 126
    functionName: PyInit__symtable
    functionSourceFile: /src/Python-3.8.3/Modules/symtablemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyErr_Occurred
    - Py_DECREF
    - PyModule_Create
    - PyType_Ready
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__symtable(void)
  - 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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ROL
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL(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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: ROLc
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROLc(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: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: STORE32H
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE32H(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: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: LOAD32H
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD32H(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: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: STORE64H
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(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: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: F0
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F0(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: F1
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F1(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: F2
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F2(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: F3
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F3(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD32H
      Src: /src/Python-3.8.3/Modules/sha1module.c:116,1
    - Dst: ROL
      Src: /src/Python-3.8.3/Modules/sha1module.c:128,1
    - Dst: FF_0
      Src: /src/Python-3.8.3/Modules/sha1module.c:139,1
    - Dst: FF_0
      Src: /src/Python-3.8.3/Modules/sha1module.c:140,1
    - Dst: FF_0
      Src: /src/Python-3.8.3/Modules/sha1module.c:141,1
    - Dst: FF_0
      Src: /src/Python-3.8.3/Modules/sha1module.c:142,1
    - Dst: FF_0
      Src: /src/Python-3.8.3/Modules/sha1module.c:143,1
    - Dst: FF_1
      Src: /src/Python-3.8.3/Modules/sha1module.c:148,1
    - Dst: FF_1
      Src: /src/Python-3.8.3/Modules/sha1module.c:149,1
    - Dst: FF_1
      Src: /src/Python-3.8.3/Modules/sha1module.c:150,1
    - Dst: FF_1
      Src: /src/Python-3.8.3/Modules/sha1module.c:151,1
    - Dst: FF_1
      Src: /src/Python-3.8.3/Modules/sha1module.c:152,1
    - Dst: FF_2
      Src: /src/Python-3.8.3/Modules/sha1module.c:157,1
    - Dst: FF_2
      Src: /src/Python-3.8.3/Modules/sha1module.c:158,1
    - Dst: FF_2
      Src: /src/Python-3.8.3/Modules/sha1module.c:159,1
    - Dst: FF_2
      Src: /src/Python-3.8.3/Modules/sha1module.c:160,1
    - Dst: FF_2
      Src: /src/Python-3.8.3/Modules/sha1module.c:161,1
    - Dst: FF_3
      Src: /src/Python-3.8.3/Modules/sha1module.c:166,1
    - Dst: FF_3
      Src: /src/Python-3.8.3/Modules/sha1module.c:167,1
    - Dst: FF_3
      Src: /src/Python-3.8.3/Modules/sha1module.c:168,1
    - Dst: FF_3
      Src: /src/Python-3.8.3/Modules/sha1module.c:169,1
    - Dst: FF_3
      Src: /src/Python-3.8.3/Modules/sha1module.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - sha1
    - buf
    argTypes:
    - struct sha1_state*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 184
    functionName: sha1_compress
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - FF_3
    - FF_0
    - FF_2
    - ROL
    - LOAD32H
    - FF_1
    linkageType: ''
    returnType: void
    signature: void sha1_compress(struct sha1_state *sha1, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: FF_0
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF_0(a,b,c,d,e,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: FF_1
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF_1(a,b,c,d,e,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: FF_2
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF_2(a,b,c,d,e,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: FF_3
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF_3(a,b,c,d,e,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - sha1
    argTypes:
    - struct sha1_state*
    assertStmts:
    - condition: (sha1 != NULL)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 201
    functionName: sha1_init
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sha1_init(struct sha1_state *sha1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:215,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:216,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:217,1
    - Dst: sha1_compress
      Src: /src/Python-3.8.3/Modules/sha1module.c:221,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/sha1module.c:226,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha1module.c:227,1
    - Dst: sha1_compress
      Src: /src/Python-3.8.3/Modules/sha1module.c:232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - sha1
    - in
    - inlen
    argTypes:
    - struct sha1_state*
    - unsigned char*
    - Py_ssize_t
    assertStmts:
    - condition: (sha1 != NULL)
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    - condition: (in != NULL)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    - condition: (sha1->curlen <= sizeof(sha1->buf))
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    constantsTouched: []
    func_position:
      end: 238
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 238
    functionName: sha1_process
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 2
    functionsReached:
    - memcpy
    - assert
    - Py_MIN
    - sha1_compress
    linkageType: ''
    returnType: void
    signature: "void sha1_process(struct sha1_state *sha1,\n                  const
      unsigned char *in, Py_ssize_t inlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:250,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sha1module.c:252,1
    - Dst: sha1_compress
      Src: /src/Python-3.8.3/Modules/sha1module.c:268,1
    - Dst: STORE64H
      Src: /src/Python-3.8.3/Modules/sha1module.c:278,1
    - Dst: sha1_compress
      Src: /src/Python-3.8.3/Modules/sha1module.c:279,1
    - Dst: STORE32H
      Src: /src/Python-3.8.3/Modules/sha1module.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - sha1
    - out
    argTypes:
    - struct sha1_state*
    - unsigned char*
    assertStmts:
    - condition: (sha1 != NULL)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    - condition: (sha1->curlen < sizeof(sha1->buf))
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    - condition: (out != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    constantsTouched: []
    func_position:
      end: 285
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 285
    functionName: sha1_done
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - assert
    - STORE32H
    - STORE64H
    - sha1_compress
    linkageType: ''
    returnType: void
    signature: void sha1_done(struct sha1_state *sha1, unsigned char *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/sha1module.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: newSHA1object
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHA1object
    signature: 'SHA1object *

      newSHA1object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/sha1module.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: SHA1_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void SHA1_dealloc(PyObject *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newSHA1object
      Src: /src/Python-3.8.3/Modules/sha1module.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: SHA1Type_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - newSHA1object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_copy_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_done
      Src: /src/Python-3.8.3/Modules/sha1module.c:352,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha1module.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 354
    functionName: SHA1Type_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - sha1_done
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_digest_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha1_done
      Src: /src/Python-3.8.3/Modules/sha1module.c:371,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/sha1module.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA1object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: SHA1Type_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - sha1_done
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_hexdigest_impl(SHA1object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha1module.c:391,1
    - Dst: sha1_process
      Src: /src/Python-3.8.3/Modules/sha1module.c:393,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha1module.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: SHA1Type_update
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - sha1_process
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_update(SHA1object *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/sha1module.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: SHA1_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1_get_block_size(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha1module.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: SHA1_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1_get_name(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/sha1module.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: sha1_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sha1_get_digest_size(PyObject *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha1module.c:495,1
    - Dst: newSHA1object::newSHA1object
      Src: /src/Python-3.8.3/Modules/sha1module.c:497,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha1module.c:499,1
    - Dst: sha1_init
      Src: /src/Python-3.8.3/Modules/sha1module.c:503,1
    - Dst: hash_state::hash_state
      Src: /src/Python-3.8.3/Modules/sha1module.c:503,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/sha1module.c:505,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha1module.c:508,1
    - Dst: sha1_process
      Src: /src/Python-3.8.3/Modules/sha1module.c:512,1
    - Dst: hash_state::hash_state
      Src: /src/Python-3.8.3/Modules/sha1module.c:512,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha1module.c:513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 517
    functionName: _sha1_sha1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - hash_state::hash_state
    - newSHA1object::newSHA1object
    - sha1_process
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - sha1_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha1_sha1_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 531
    functionName: insint
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insint(n,v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha1module.c:550,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/sha1module.c:551,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/sha1module.c:554,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/sha1module.c:558,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/sha1module.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 561
    functionName: PyInit__sha1
    functionSourceFile: /src/Python-3.8.3/Modules/sha1module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha1(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/sre_lib.h:30,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/sre_lib.h:34,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/sre_lib.h:39,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:48,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:50,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:57,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:59,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:66,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:68,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:75,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:77,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:84,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:86,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:93,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - state
    - ptr
    - at
    argTypes:
    - SRE_STATE*
    - SRE_CHAR*
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 101
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached:
    - SRE_IS_WORD
    - SRE_IS_LINEBREAK
    - SRE_UNI_IS_WORD
    - SRE_LOC_IS_WORD
    linkageType: ''
    returnType: void
    signature: void SRE(at)(SRE_STATE* state, SRE_CHAR* ptr, SRE_CODE at)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sre_category
      Src: /src/Python-3.8.3/Modules/sre_lib.h:125,1
    - Dst: sre_upper_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:152,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 3
    argNames:
    - state
    - set
    - ch
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 188
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached:
    - sre_upper_unicode
    - sre_category
    linkageType: ''
    returnType: void
    signature: void SRE(charset)(SRE_STATE* state, SRE_CODE* set, SRE_CODE ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_locale
      Src: /src/Python-3.8.3/Modules/sre_lib.h:194,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:195,1
    - Dst: sre_upper_locale
      Src: /src/Python-3.8.3/Modules/sre_lib.h:198,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - state
    - set
    - ch
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 1
    functionsReached:
    - sre_lower_locale
    - SRE
    - sre_upper_locale
    linkageType: ''
    returnType: void
    signature: void SRE(charset_loc_ignore)(SRE_STATE* state, SRE_CODE* set, SRE_CODE
      ch)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:221,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:222,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:228,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/sre_lib.h:229,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:236,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:243,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:257,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:258,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:265,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:266,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:273,1
    - Dst: char_loc_ignore
      Src: /src/Python-3.8.3/Modules/sre_lib.h:274,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:281,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:295,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:296,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:303,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:304,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:311,1
    - Dst: char_loc_ignore
      Src: /src/Python-3.8.3/Modules/sre_lib.h:312,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:318,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:320,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:326,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:331,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 86
    argCount: 3
    argNames:
    - state
    - pattern
    - maxcount
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 334
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 2
    functionsReached:
    - SRE
    - sre_lower_ascii
    - char_loc_ignore
    - sre_lower_unicode
    - SRE_IS_LINEBREAK
    - TRACE
    linkageType: ''
    returnType: void
    signature: void SRE(count)(SRE_STATE* state, SRE_CODE* pattern, Py_ssize_t maxcount)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - state
    - pattern
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 361
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SRE(info)(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: LASTMARK_SAVE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LASTMARK_SAVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: LASTMARK_RESTORE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LASTMARK_RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    functionName: RETURN_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ERROR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: RETURN_ON_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ON_ERROR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: RETURN_ON_SUCCESS
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ON_SUCCESS(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: RETURN_ON_FAILURE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ON_FAILURE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - state
    - ','
    - type
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 429
    functionName: DATA_STACK_ALLOC
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_STACK_ALLOC(state, type, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - state
    - ','
    - type
    - ','
    - ptr
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 435
    functionName: DATA_STACK_LOOKUP_AT
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_STACK_LOOKUP_AT(state, type, ptr, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - state
    - ','
    - data
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 450
    functionName: DATA_STACK_PUSH
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_STACK_PUSH(state, data, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - state
    - ','
    - data
    - ','
    - size
    - ','
    - discard
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: DATA_STACK_POP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_STACK_POP(state, data, size, discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: DATA_STACK_POP_DISCARD
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_STACK_POP_DISCARD(state, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: DATA_PUSH
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_PUSH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: DATA_POP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_POP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 475
    functionName: DATA_POP_DISCARD
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_POP_DISCARD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: DATA_ALLOC
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_ALLOC(t,p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - t
    - ','
    - p
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: DATA_LOOKUP_AT
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATA_LOOKUP_AT(t,p,pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: MARK_PUSH
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_PUSH(lastmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: MARK_POP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_POP(lastmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: MARK_POP_KEEP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_POP_KEEP(lastmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lastmark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: MARK_POP_DISCARD
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_POP_DISCARD(lastmark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - jumpvalue
    - ','
    - jumplabel
    - ','
    - nextpattern
    - ','
    - toplevel_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 523
    functionName: DO_JUMPX
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_JUMPX(jumpvalue, jumplabel, nextpattern, toplevel_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - jumpvalue
    - ','
    - jumplabel
    - ','
    - nextpattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: DO_JUMP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_JUMP(jumpvalue, jumplabel, nextpattern)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - jumpvalue
    - ','
    - jumplabel
    - ','
    - nextpattern
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: DO_JUMP0
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_JUMP0(jumpvalue, jumplabel, nextpattern)
  - BBCount: 123
    BranchProfiles: []
    Callsites:
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:557,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:558,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:560,1
    - Dst: DATA_ALLOC
      Src: /src/Python-3.8.3/Modules/sre_lib.h:562,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:562,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:577,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/sre_lib.h:587,1
    - Dst: RETURN_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:588,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:595,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:617,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:628,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:638,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:651,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:652,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:660,1
    - Dst: sre_category
      Src: /src/Python-3.8.3/Modules/sre_lib.h:662,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:671,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/sre_lib.h:672,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:680,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:689,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:691,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:698,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:701,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:708,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:711,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:718,1
    - Dst: char_loc_ignore
      Src: /src/Python-3.8.3/Modules/sre_lib.h:721,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:728,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:731,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:738,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:741,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:748,1
    - Dst: char_loc_ignore
      Src: /src/Python-3.8.3/Modules/sre_lib.h:751,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:758,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:760,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:761,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:768,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:770,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:771,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:778,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:780,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:790,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:798,1
    - Dst: LASTMARK_SAVE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:799,1
    - Dst: MARK_PUSH
      Src: /src/Python-3.8.3/Modules/sre_lib.h:802,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:810,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:814,1
    - Dst: MARK_POP_DISCARD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:817,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:818,1
    - Dst: MARK_POP_KEEP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:822,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:823,1
    - Dst: MARK_POP_DISCARD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:826,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:839,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:847,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:848,1
    - Dst: DATA_LOOKUP_AT
      Src: /src/Python-3.8.3/Modules/sre_lib.h:849,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:849,1
    - Dst: LASTMARK_SAVE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:870,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:885,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:888,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:892,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:902,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:905,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:910,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:925,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:937,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:938,1
    - Dst: DATA_LOOKUP_AT
      Src: /src/Python-3.8.3/Modules/sre_lib.h:939,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:939,1
    - Dst: LASTMARK_SAVE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:959,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:963,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:966,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:970,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:971,1
    - Dst: DATA_LOOKUP_AT
      Src: /src/Python-3.8.3/Modules/sre_lib.h:972,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:972,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sre_lib.h:975,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:978,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:987,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Modules/sre_lib.h:991,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/sre_lib.h:993,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1003,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1005,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1008,1
    - Dst: RETURN_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1022,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1028,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1034,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1037,1
    - Dst: LASTMARK_SAVE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1051,1
    - Dst: MARK_PUSH
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1052,1
    - Dst: DATA_PUSH
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1054,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1056,1
    - Dst: DATA_POP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1058,1
    - Dst: MARK_POP_DISCARD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1060,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1061,1
    - Dst: MARK_POP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1064,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1065,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1073,1
    - Dst: RETURN_ON_SUCCESS
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1074,1
    - Dst: RETURN_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1085,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1091,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1097,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1100,1
    - Dst: LASTMARK_SAVE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1108,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1112,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1114,1
    - Dst: LASTMARK_RESTORE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1121,1
    - Dst: DATA_PUSH
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1130,1
    - Dst: DO_JUMP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1132,1
    - Dst: DATA_POP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1134,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1136,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1145,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1170,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1184,1
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1184,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1196,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1210,1
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1210,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1222,1
    - Dst: sre_lower_locale
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1236,1
    - Dst: sre_lower_locale
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1236,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1247,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1271,1
    - Dst: DO_JUMP0
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1276,1
    - Dst: RETURN_ON_FAILURE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1277,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1284,1
    - Dst: DO_JUMP0
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1288,1
    - Dst: RETURN_ON_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1290,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1299,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1303,1
    - Dst: RETURN_ERROR
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1305,1
    - Dst: DATA_POP_DISCARD
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1312,1
    - Dst: DATA_LOOKUP_AT
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1315,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1315,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1319,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1322,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1325,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1328,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1331,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1334,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1337,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1340,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1343,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1346,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1349,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1352,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1355,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1358,1
    CyclomaticComplexity: 185
    EdgeCount: 185
    ICount: 562
    argCount: 3
    argNames:
    - state
    - pattern
    - toplevel
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    - int
    assertStmts:
    - condition: (ret == 1)
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
    constantsTouched: []
    func_position:
      end: 1364
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 1364
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 3
    functionsReached:
    - MARK_POP_DISCARD
    - DO_JUMP
    - sre_lower_ascii
    - RETURN_ON_FAILURE
    - DATA_ALLOC
    - DATA_POP_DISCARD
    - RETURN_ON_ERROR
    - SRE_IS_LINEBREAK
    - sre_lower_locale
    - PyObject_FREE
    - DATA_POP
    - LASTMARK_SAVE
    - MARK_PUSH
    - PyObject_MALLOC
    - MARK_POP_KEEP
    - PyErr_CheckSignals
    - DO_JUMP0
    - sre_lower_unicode
    - LASTMARK_RESTORE
    - assert
    - DATA_PUSH
    - SRE
    - char_loc_ignore
    - TRACE
    - sre_category
    - MARK_POP
    - DATA_LOOKUP_AT
    - PyErr_NoMemory
    - RETURN_ERROR
    - RETURN_ON_SUCCESS
    linkageType: ''
    returnType: void
    signature: void SRE(match)(SRE_STATE* state, SRE_CODE* pattern, int toplevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1369
    functionName: RESET_CAPTURE_GROUP
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_CAPTURE_GROUP()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1393,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1420,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1422,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1438,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1443,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1447,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1484,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1489,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1495,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1508,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1512,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1515,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1519,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1523,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1524,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1526,1
    - Dst: RESET_CAPTURE_GROUP
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1530,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1531,1
    - Dst: SRE
      Src: /src/Python-3.8.3/Modules/sre_lib.h:1533,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 121
    argCount: 2
    argNames:
    - state
    - pattern
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    assertStmts:
    - condition: (ptr <= end)
      pos:
        line_end: 1522
        line_start: 1522
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
    constantsTouched: []
    func_position:
      end: 1538
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1538
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/sre_lib.h
    functionUses: 4
    functionsReached:
    - assert
    - SRE
    - TRACE
    - RESET_CAPTURE_GROUP
    linkageType: ''
    returnType: void
    signature: void SRE(search)(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Modules/main.c:41,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/main.c:42,1
    - Dst: fedisableexcept
      Src: /src/Python-3.8.3/Modules/main.c:52,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Modules/main.c:56,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Modules/main.c:58,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/main.c:59,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Modules/main.c:64,1
    - Dst: PyConfig_SetBytesArgv
      Src: /src/Python-3.8.3/Modules/main.c:69,1
    - Dst: PyConfig_SetArgv
      Src: /src/Python-3.8.3/Modules/main.c:72,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/main.c:74,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Modules/main.c:78,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/main.c:79,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/main.c:82,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Modules/main.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 87
    functionName: pymain_init
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    - Py_InitializeFromConfig
    - PyConfig_Clear
    - PyConfig_SetArgv
    - PyConfig_SetBytesArgv
    - _PyRuntime_Initialize
    - PyConfig_InitPythonConfig
    - _PyStatus_EXCEPTION
    - fedisableexcept
    - PyPreConfig_InitPythonConfig
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pymain_init(const _PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: config_run_code
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int config_run_code(const PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Modules/main.c:106,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/main.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: stdin_is_interactive
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - isatty
    - fileno
    linkageType: ''
    returnType: int
    signature: int stdin_is_interactive(const PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HandleSystemExit
      Src: /src/Python-3.8.3/Modules/main.c:115,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/main.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: pymain_err_print
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - _Py_HandleSystemExit
    linkageType: ''
    returnType: int
    signature: int pymain_err_print(int *exitcode_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_err_print
      Src: /src/Python-3.8.3/Modules/main.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 131
    functionName: pymain_exit_err_print
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_err_print
    linkageType: ''
    returnType: int
    signature: int pymain_exit_err_print(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/main.c:141,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/main.c:141,1
    - Dst: PyImport_GetImporter
      Src: /src/Python-3.8.3/Modules/main.c:146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:153,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:157,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/main.c:162,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/main.c:164,1
    - Dst: pymain_err_print
      Src: /src/Python-3.8.3/Modules/main.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - filename
    - importer_p
    - exitcode
    argTypes:
    - wchar_t*
    - PyObject**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 166
    functionName: pymain_get_importer
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_err_print
    - Py_DECREF
    - PyImport_GetImporter
    - PySys_WriteStderr
    - PyUnicode_FromWideChar
    - Py_XDECREF
    - wcslen
    linkageType: ''
    returnType: int
    signature: int pymain_get_importer(const wchar_t *filename, PyObject **importer_p,
      int *exitcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/main.c:172,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/main.c:176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/main.c:177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/main.c:185,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Modules/main.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - interp
    - path0
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 193
    functionName: pymain_sys_path_add_path0
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyList_Insert
    - PyErr_Occurred
    - _Py_IDENTIFIER
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int pymain_sys_path_add_path0(PyInterpreterState *interp, PyObject
      *path0)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: config_run_code
      Src: /src/Python-3.8.3/Modules/main.c:203,1
    - Dst: stdin_is_interactive
      Src: /src/Python-3.8.3/Modules/main.c:203,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:207,1
    - Dst: Py_GetVersion
      Src: /src/Python-3.8.3/Modules/main.c:207,1
    - Dst: Py_GetPlatform
      Src: /src/Python-3.8.3/Modules/main.c:207,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 211
    functionName: pymain_header
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_GetVersion
    - fprintf
    - stdin_is_interactive
    - Py_GetPlatform
    - config_run_code
    linkageType: ''
    returnType: void
    signature: void pymain_header(const PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: config_run_code
      Src: /src/Python-3.8.3/Modules/main.c:220,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Modules/main.c:223,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/main.c:223,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/main.c:227,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/main.c:229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 234
    functionName: pymain_import_readline
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - isatty
    - PyErr_Clear
    - fileno
    - config_run_code
    linkageType: ''
    returnType: void
    signature: void pymain_import_readline(const PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/main.c:243,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:248,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:249,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/main.c:252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:253,1
    - Dst: PyRun_SimpleStringFlags
      Src: /src/Python-3.8.3/Modules/main.c:258,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/main.c:258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:259,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/main.c:263,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - command
    - cf
    argTypes:
    - wchar_t*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: pymain_run_command
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - pymain_exit_err_print
    - PySys_WriteStderr
    - PyBytes_AsString
    - PyUnicode_FromWideChar
    - PyRun_SimpleStringFlags
    - PySys_Audit
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: int pymain_run_command(wchar_t *command, PyCompilerFlags *cf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:272,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:273,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/main.c:275,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:277,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:278,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/main.c:280,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:283,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:284,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/main.c:286,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/main.c:286,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:289,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:290,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:291,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/main.c:293,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:299,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:300,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/main.c:302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:303,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:306,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - modname
    - set_argv0
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 312
    functionName: pymain_run_module
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_BuildValue
    - Py_DECREF
    - PyObject_GetAttrString
    - pymain_exit_err_print
    - PyUnicode_FromWideChar
    - fprintf
    - PyObject_Call
    - PySys_Audit
    - wcslen
    linkageType: ''
    returnType: int
    signature: int pymain_run_module(const wchar_t *modname, int set_argv0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:319,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:320,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/Modules/main.c:322,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/Python-3.8.3/Modules/main.c:327,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:332,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Modules/main.c:333,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/main.c:334,1
    - Dst: getc
      Src: /src/Python-3.8.3/Modules/main.c:341,1
    - Dst: ungetc
      Src: /src/Python-3.8.3/Modules/main.c:343,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Modules/main.c:350,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/main.c:350,1
    - Dst: S_ISDIR
      Src: /src/Python-3.8.3/Modules/main.c:350,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/main.c:351,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/main.c:354,1
    - Dst: Py_MakePendingCalls
      Src: /src/Python-3.8.3/Modules/main.c:359,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/main.c:360,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:361,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/main.c:367,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/main.c:367,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/main.c:369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:370,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/main.c:373,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/main.c:376,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/Python-3.8.3/Modules/main.c:381,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/main.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - config
    - cf
    argTypes:
    - PyConfig*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 384
    functionName: pymain_run_file
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyRun_AnyFileExFlags
    - wcslen
    - S_ISDIR
    - getc
    - PyUnicode_FromWideChar
    - ungetc
    - Py_MakePendingCalls
    - PyErr_Clear
    - fileno
    - Py_XDECREF
    - Py_DECREF
    - pymain_exit_err_print
    - PyBytes_AsString
    - _Py_fstat_noraise
    - fprintf
    - fclose
    - PyMem_RawFree
    - _Py_wfopen
    - _Py_EncodeLocaleRaw
    - PyUnicode_EncodeFSDefault
    - strerror
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int pymain_run_file(PyConfig *config, PyCompilerFlags *cf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Modules/main.c:390,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:394,1
    - Dst: pymain_err_print
      Src: /src/Python-3.8.3/Modules/main.c:395,1
    - Dst: _Py_fopen
      Src: /src/Python-3.8.3/Modules/main.c:398,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/main.c:401,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Modules/main.c:404,1
    - Dst: pymain_err_print
      Src: /src/Python-3.8.3/Modules/main.c:406,1
    - Dst: PyRun_SimpleFileExFlags
      Src: /src/Python-3.8.3/Modules/main.c:409,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/main.c:410,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/main.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - config
    - cf
    - exitcode
    argTypes:
    - PyConfig*
    - PyCompilerFlags*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 413
    functionName: pymain_run_startup
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    - pymain_err_print
    - _Py_fopen
    - PyErr_SetFromErrnoWithFilename
    - PySys_WriteStderr
    - PyRun_SimpleFileExFlags
    - fclose
    - PyErr_Clear
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int pymain_run_startup(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/main.c:422,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/main.c:427,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:428,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/main.c:430,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:434,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/main.c:438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:443,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/main.c:448,1
    - Dst: pymain_err_print
      Src: /src/Python-3.8.3/Modules/main.c:449,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 450
    functionName: pymain_run_interactive_hook
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - pymain_err_print
    - Py_DECREF
    - PyObject_GetAttrString
    - PySys_Audit
    - PySys_WriteStderr
    - PyErr_Clear
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int pymain_run_interactive_hook(int *exitcode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stdin_is_interactive
      Src: /src/Python-3.8.3/Modules/main.c:456,1
    - Dst: pymain_run_startup
      Src: /src/Python-3.8.3/Modules/main.c:461,1
    - Dst: pymain_run_interactive_hook
      Src: /src/Python-3.8.3/Modules/main.c:465,1
    - Dst: Py_MakePendingCalls
      Src: /src/Python-3.8.3/Modules/main.c:471,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:472,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/main.c:475,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:476,1
    - Dst: PyRun_AnyFileExFlags
      Src: /src/Python-3.8.3/Modules/main.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - config
    - cf
    argTypes:
    - PyConfig*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 481
    functionName: pymain_run_stdin
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyRun_AnyFileExFlags
    - pymain_exit_err_print
    - pymain_run_interactive_hook
    - stdin_is_interactive
    - Py_MakePendingCalls
    - pymain_run_startup
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int pymain_run_stdin(PyConfig *config, PyCompilerFlags *cf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Modules/main.c:489,1
    - Dst: stdin_is_interactive
      Src: /src/Python-3.8.3/Modules/main.c:494,1
    - Dst: config_run_code
      Src: /src/Python-3.8.3/Modules/main.c:494,1
    - Dst: pymain_run_interactive_hook
      Src: /src/Python-3.8.3/Modules/main.c:500,1
    - Dst: PyRun_AnyFileFlags
      Src: /src/Python-3.8.3/Modules/main.c:504,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - config
    - cf
    - exitcode
    argTypes:
    - PyConfig*
    - PyCompilerFlags*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 506
    functionName: pymain_repl
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    - pymain_run_interactive_hook
    - stdin_is_interactive
    - PyRun_AnyFileFlags
    - config_run_code
    linkageType: ''
    returnType: void
    signature: void pymain_repl(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Modules/main.c:512,1
    - Dst: pymain_get_importer
      Src: /src/Python-3.8.3/Modules/main.c:523,1
    - Dst: pymain_sys_path_add_path0
      Src: /src/Python-3.8.3/Modules/main.c:530,1
    - Dst: _PyPathConfig_ComputeSysPath0
      Src: /src/Python-3.8.3/Modules/main.c:536,1
    - Dst: pymain_sys_path_add_path0
      Src: /src/Python-3.8.3/Modules/main.c:542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/main.c:546,1
    - Dst: pymain_header
      Src: /src/Python-3.8.3/Modules/main.c:552,1
    - Dst: pymain_import_readline
      Src: /src/Python-3.8.3/Modules/main.c:553,1
    - Dst: pymain_run_command
      Src: /src/Python-3.8.3/Modules/main.c:556,1
    - Dst: pymain_run_module
      Src: /src/Python-3.8.3/Modules/main.c:559,1
    - Dst: pymain_run_module
      Src: /src/Python-3.8.3/Modules/main.c:562,1
    - Dst: pymain_run_file
      Src: /src/Python-3.8.3/Modules/main.c:565,1
    - Dst: pymain_run_stdin
      Src: /src/Python-3.8.3/Modules/main.c:568,1
    - Dst: pymain_repl
      Src: /src/Python-3.8.3/Modules/main.c:571,1
    - Dst: pymain_exit_err_print
      Src: /src/Python-3.8.3/Modules/main.c:575,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/main.c:578,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 579
    functionName: pymain_run_python
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_repl
    - pymain_sys_path_add_path0
    - Py_DECREF
    - pymain_get_importer
    - _PyPathConfig_ComputeSysPath0
    - pymain_run_file
    - pymain_exit_err_print
    - _PyInterpreterState_GET_UNSAFE
    - Py_XDECREF
    - pymain_run_command
    - pymain_header
    - pymain_run_module
    - pymain_run_stdin
    - pymain_import_readline
    linkageType: ''
    returnType: void
    signature: void pymain_run_python(int *exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_Fini2
      Src: /src/Python-3.8.3/Modules/main.c:587,1
    - Dst: _PyPathConfig_ClearGlobal
      Src: /src/Python-3.8.3/Modules/main.c:593,1
    - Dst: _Py_ClearStandardStreamEncoding
      Src: /src/Python-3.8.3/Modules/main.c:594,1
    - Dst: _Py_ClearArgcArgv
      Src: /src/Python-3.8.3/Modules/main.c:595,1
    - Dst: _PyRuntime_Finalize
      Src: /src/Python-3.8.3/Modules/main.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 597
    functionName: pymain_free
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _PyRuntime_Finalize
    - _PyImport_Fini2
    - _Py_ClearArgcArgv
    - _PyPathConfig_ClearGlobal
    - _Py_ClearStandardStreamEncoding
    linkageType: ''
    returnType: void
    signature: void pymain_free(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/main.c:608,1
    - Dst: perror
      Src: /src/Python-3.8.3/Modules/main.c:609,1
    - Dst: kill
      Src: /src/Python-3.8.3/Modules/main.c:611,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/main.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 623
    functionName: exit_sigint
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - kill
    - getpid
    - perror
    linkageType: ''
    returnType: int
    signature: int exit_sigint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/Python-3.8.3/Modules/main.c:629,1
    - Dst: pymain_free
      Src: /src/Python-3.8.3/Modules/main.c:633,1
    - Dst: _Py_NO_RETURN::Py_ExitStatusException
      Src: /src/Python-3.8.3/Modules/main.c:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 636
    functionName: _Py_NO_RETURN::pymain_exit_error
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::Py_ExitStatusException
    - pymain_free
    - _PyStatus_IS_EXIT
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      pymain_exit_error(PyStatus status)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_run_python
      Src: /src/Python-3.8.3/Modules/main.c:644,1
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/Modules/main.c:646,1
    - Dst: pymain_free
      Src: /src/Python-3.8.3/Modules/main.c:652,1
    - Dst: exit_sigint
      Src: /src/Python-3.8.3/Modules/main.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 639
    functionDepth: 5
    functionLinenumber: 639
    functionLinenumberEnd: 659
    functionName: Py_RunMain
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - Py_FinalizeEx
    - pymain_free
    - pymain_run_python
    - exit_sigint
    linkageType: ''
    returnType: int
    signature: int Py_RunMain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymain_init
      Src: /src/Python-3.8.3/Modules/main.c:665,1
    - Dst: _PyStatus_IS_EXIT
      Src: /src/Python-3.8.3/Modules/main.c:666,1
    - Dst: pymain_free
      Src: /src/Python-3.8.3/Modules/main.c:667,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/main.c:670,1
    - Dst: pymain_exit_error
      Src: /src/Python-3.8.3/Modules/main.c:671,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/Modules/main.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 662
    functionDepth: 6
    functionLinenumber: 662
    functionLinenumberEnd: 675
    functionName: pymain_main
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_free
    - Py_RunMain
    - pymain_init
    - pymain_exit_error
    - _PyStatus_EXCEPTION
    - _PyStatus_IS_EXIT
    linkageType: ''
    returnType: int
    signature: int pymain_main(_PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_main
      Src: /src/Python-3.8.3/Modules/main.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 678
    functionDepth: 7
    functionLinenumber: 678
    functionLinenumberEnd: 687
    functionName: Py_Main
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 1
    functionsReached:
    - pymain_main
    linkageType: ''
    returnType: int
    signature: int Py_Main(int argc, wchar_t **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymain_main
      Src: /src/Python-3.8.3/Modules/main.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 690
    functionDepth: 7
    functionLinenumber: 690
    functionLinenumberEnd: 699
    functionName: Py_BytesMain
    functionSourceFile: /src/Python-3.8.3/Modules/main.c
    functionUses: 0
    functionsReached:
    - pymain_main
    linkageType: ''
    returnType: int
    signature: int Py_BytesMain(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/grpmodule.c:46,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/grpmodule.c:52,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:53,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/grpmodule.c:57,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/grpmodule.c:58,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:59,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:60,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:61,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:64,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/grpmodule.c:68,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/grpmodule.c:68,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/grpmodule.c:70,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/grpmodule.c:70,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/grpmodule.c:72,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:73,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/grpmodule.c:75,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/grpmodule.c:75,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/grpmodule.c:76,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/grpmodule.c:79,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:80,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 85
    functionName: mkgrent
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    - Py_INCREF
    - _PyLong_FromGid
    - PyList_Append
    - PyStructSequence_New
    - SET
    - PyList_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mkgrent(struct group *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: SET
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i,val)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/grpmodule.c:107,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/grpmodule.c:108,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/grpmodule.c:111,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Modules/grpmodule.c:112,1
    - Dst: PyNumber_Long
      Src: /src/Python-3.8.3/Modules/grpmodule.c:117,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/grpmodule.c:120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:124,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/grpmodule.c:133,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/grpmodule.c:139,1
    - Dst: getgrgid_r
      Src: /src/Python-3.8.3/Modules/grpmodule.c:146,1
    - Dst: getgrgid
      Src: /src/Python-3.8.3/Modules/grpmodule.c:162,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/grpmodule.c:165,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/grpmodule.c:167,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/grpmodule.c:169,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/grpmodule.c:172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:173,1
    - Dst: mkgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:176,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/grpmodule.c:178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - module
    - id
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 181
    functionName: grp_getgrgid_impl
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - mkgrent
    - PyErr_WarnFormat
    - Py_DECREF
    - PyMem_RawRealloc
    - getgrgid_r
    - PyErr_NoMemory
    - _Py_Gid_Converter
    - PyNumber_Long
    - _PyLong_FromGid
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyMem_RawFree
    - getgrgid
    - PyErr_Clear
    - sysconf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrgid_impl(PyObject *module, PyObject *id)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/grpmodule.c:202,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/grpmodule.c:205,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/grpmodule.c:214,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/grpmodule.c:220,1
    - Dst: getgrnam_r
      Src: /src/Python-3.8.3/Modules/grpmodule.c:227,1
    - Dst: getgrnam
      Src: /src/Python-3.8.3/Modules/grpmodule.c:243,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/grpmodule.c:247,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/grpmodule.c:250,1
    - Dst: mkgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:254,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/grpmodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:257,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 259
    functionName: grp_getgrnam_impl
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - PyMem_RawRealloc
    - getgrnam
    - PyErr_NoMemory
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - getgrnam_r
    - PyMem_RawFree
    - mkgrent
    - sysconf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrnam_impl(PyObject *module, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/grpmodule.c:277,1
    - Dst: setgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:279,1
    - Dst: getgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:280,1
    - Dst: mkgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:281,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/grpmodule.c:282,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:284,1
    - Dst: endgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/grpmodule.c:288,1
    - Dst: endgrent
      Src: /src/Python-3.8.3/Modules/grpmodule.c:290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: grp_getgrall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - setgrent
    - PyList_Append
    - endgrent
    - PyList_New
    - getgrent
    - mkgrent
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrall_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/grpmodule.c:335,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/grpmodule.c:338,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/grpmodule.c:340,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/grpmodule.c:344,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 349
    functionName: PyInit_grp
    functionSourceFile: /src/Python-3.8.3/Modules/grpmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyModule_Create
    - PyStructSequence_InitType2
    - PyModule_GetDict
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_grp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: IN_MULTICAST
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_MULTICAST(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: IN_EXPERIMENTAL
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IN_EXPERIMENTAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ai
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: GET_CANONNAME
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CANONNAME(ai, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ai
    - ','
    - gai_afd
    - ','
    - addr
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: GET_AI
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AI(ai, gai_afd, addr, port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ai
    - ','
    - gai_afd
    - ','
    - addr
    - ','
    - port
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: GET_AI
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_AI(ai, gai_afd, addr, port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: ERR
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ecode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: gai_strerror
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      gai_strerror(int ecode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:217,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ai
    argTypes:
    - struct addrinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: freeaddrinfo
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeaddrinfo(struct addrinfo *ai)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: str_isnumber
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int str_isnumber(const char *p)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:254,1
    - Dst: inet_pton
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:255,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:282,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:284,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:293,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:295,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:317,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:323,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:327,1
    - Dst: str_isnumber
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:336,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:342,1
    - Dst: atoi
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:342,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:359,1
    - Dst: getservbyname
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:362,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:363,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:366,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:369,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:373,1
    - Dst: GET_AI
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:393,1
    - Dst: GET_AI
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:398,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:410,1
    - Dst: inet_pton
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:415,1
    - Dst: ntohl
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:424,1
    - Dst: IN_MULTICAST
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:425,1
    - Dst: IN_EXPERIMENTAL
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:425,1
    - Dst: GET_AI
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:443,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:455,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:458,1
    - Dst: ERR
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:463,1
    - Dst: get_addr
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:466,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/getaddrinfo.c:477,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 175
    argCount: 4
    argNames:
    - hostname
    - servname
    - hints
    - res
    argTypes:
    - char*
    - char*
    - struct addrinfo*
    - struct addrinfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 481
    functionName: getaddrinfo
    functionSourceFile: /src/Python-3.8.3/Modules/getaddrinfo.c
    functionUses: 0
    functionsReached:
    - ntohl
    - freeaddrinfo
    - memcpy
    - IN_EXPERIMENTAL
    - atoi
    - str_isnumber
    - getservbyname
    - inet_pton
    - get_addr
    - get_name
    - fprintf
    - getenv
    - htons
    - strcmp
    - IN_MULTICAST
    - ERR
    - GET_AI
    linkageType: ''
    returnType: int
    signature: "int getaddrinfo(const char*hostname, const char*servname,\n            const
      struct addrinfo *hints, struct addrinfo **res)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:74,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:80,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:82,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:89,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:90,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:93,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:98,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:102,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 109
    functionName: syslog_get_argv
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyList_GetItem
    - PyList_Size
    - PySys_GetObject
    - PyUnicode_Check
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_get_argv(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:121,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:126,1
    - Dst: syslog_get_argv
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:131,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:134,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:142,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:147,1
    - Dst: openlog
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 155
    functionName: syslog_openlog
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - syslog_get_argv
    - openlog
    - Py_INCREF
    - PyUnicode_AsUTF8
    - PyArg_ParseTupleAndKeywords
    - PySys_Audit
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:165,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:167,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:168,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:173,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:177,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:189,1
    - Dst: syslog_openlog
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:190,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:191,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:192,1
    - Dst: syslog
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 200
    functionName: syslog_syslog
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySys_Audit
    - PyUnicode_AsUTF8
    - Py_XDECREF
    - syslog_openlog
    - syslog
    - PyErr_Clear
    - PyTuple_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_syslog(PyObject * self, PyObject * args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:205,1
    - Dst: closelog
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:209,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: syslog_closelog
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - closelog
    - PySys_Audit
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_closelog(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:221,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:223,1
    - Dst: setlogmask
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:226,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: syslog_setlogmask
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - setlogmask
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_setlogmask(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:235,1
    - Dst: LOG_MASK
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:237,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: syslog_log_mask
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    - LOG_MASK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_log_mask(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:246,1
    - Dst: LOG_UPTO
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:248,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: syslog_log_upto
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - LOG_UPTO
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      syslog_log_upto(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:285,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:292,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:293,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:294,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:295,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:296,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:297,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:298,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:299,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:302,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:303,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:304,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:306,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:309,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:312,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:316,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:317,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:318,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:319,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:320,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:321,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:322,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:323,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:324,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:325,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:326,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:327,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:328,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:329,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:344,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:345,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:346,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:347,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/syslogmodule.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 354
    functionName: PyInit_syslog
    functionSourceFile: /src/Python-3.8.3/Modules/syslogmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_syslog(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: ACQUIRE_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACQUIRE_LOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: RELEASE_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE_LOCK(obj)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:79,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:82,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:85,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:88,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:91,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:94,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:97,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:100,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - lzret
    argTypes:
    - lzma_ret
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 106
    functionName: catch_lzma_error
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int catch_lzma_error(lzma_ret lzret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: PyLzma_Malloc
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyLzma_Malloc(void *opaque, size_t items, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: PyLzma_Free
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyLzma_Free(void *opaque, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:133,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - max_length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: grow_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int grow_buffer(PyObject **buf, Py_ssize_t max_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - FUNCNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: INT_TYPE_CONVERTER_FUNC
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_TYPE_CONVERTER_FUNC(TYPE, FUNCNAME)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetItemString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:202,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:204,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:205,1
    - Dst: uint32_converter
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:210,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:215,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:217,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:218,1
    - Dst: lzma_lzma_preset
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:220,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:221,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:222,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:237,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 243
    functionName: parse_filter_spec_lzma
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_DECREF
    - PyMapping_GetItemString
    - lzma_lzma_preset
    - uint32_converter
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - PyErr_Clear
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_lzma(PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:253,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:255,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:260,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:262,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 267
    functionName: parse_filter_spec_delta
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_delta(PyObject *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:277,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:279,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:284,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:286,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: parse_filter_spec_bcj
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      parse_filter_spec_bcj(PyObject *spec)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:298,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:299,1
    - Dst: PyMapping_GetItemString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:303,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:305,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:306,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:311,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:312,1
    - Dst: parse_filter_spec_lzma
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:318,1
    - Dst: parse_filter_spec_delta
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:321,1
    - Dst: parse_filter_spec_bcj
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:329,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - spec
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 335
    functionName: lzma_filter_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_Check
    - Py_DECREF
    - PyMapping_GetItemString
    - PyErr_Occurred
    - PyLong_AsUnsignedLongLong
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - parse_filter_spec_delta
    - parse_filter_spec_bcj
    - parse_filter_spec_lzma
    linkageType: ''
    returnType: int
    signature: int lzma_filter_converter(PyObject *spec, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - filters
    argTypes:
    - lzma_filter[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: free_filter_chain
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_filter_chain(lzma_filter filters[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:351,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:355,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:363,1
    - Dst: lzma_filter_converter
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:364,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:366,1
    - Dst: free_filter_chain
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - filters
    - filterspecs
    argTypes:
    - lzma_filter[]
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: parse_filter_chain_spec
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PySequence_Length
    - free_filter_chain
    - PySequence_GetItem
    - PyErr_Format
    - lzma_filter_converter
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int parse_filter_chain_spec(lzma_filter filters[], PyObject *filterspecs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:389,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:393,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - spec
    - key
    - value
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: spec_add_field
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyDict_SetItemId
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: int
    signature: int spec_add_field(PyObject *spec, _Py_Identifier *key, unsigned long
      long value)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:403,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:414,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:422,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:423,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:424,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:425,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:430,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:435,1
    - Dst: ADD_FIELD
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:445,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:449,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - f
    argTypes:
    - lzma_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 460
    functionName: build_filter_spec
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - ADD_FIELD
    - Py_DECREF
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_filter_spec(const lzma_filter *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SOURCE
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: ADD_FIELD
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FIELD(SOURCE, FIELD)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:500,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:505,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:506,1
    - Dst: lzma_code
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:511,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:512,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:516,1
    - Dst: grow_buffer
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:522,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:524,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:525,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:528,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:529,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:534,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 4
    argNames:
    - c
    - data
    - len
    - action
    argTypes:
    - Compressor*
    - uint8_t*
    - size_t
    - lzma_action
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 536
    functionName: compress
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 9
    functionsReached:
    - PyBytes_FromStringAndSize
    - lzma_code
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - catch_lzma_error
    - grow_buffer
    - PyBytes_AS_STRING
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress(Compressor *c, uint8_t *data, size_t len, lzma_action action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:560,1
    - Dst: compress
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:562,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - Compressor*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 565
    functionName: _lzma_LZMACompressor_compress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - PyErr_SetString
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_compress_impl(Compressor *self, Py_buffer *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:583,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:585,1
    - Dst: compress
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:588,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: _lzma_LZMACompressor_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - PyErr_SetString
    - compress
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_flush_impl(Compressor *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lzma_easy_encoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:601,1
    - Dst: parse_filter_chain_spec
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:605,1
    - Dst: lzma_stream_encoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:607,1
    - Dst: free_filter_chain
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:608,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - lzs
    - check
    - preset
    - filterspecs
    argTypes:
    - lzma_stream*
    - int
    - uint32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 614
    functionName: Compressor_init_xz
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - free_filter_chain
    - lzma_easy_encoder
    - catch_lzma_error
    - parse_filter_chain_spec
    - lzma_stream_encoder
    linkageType: ''
    returnType: int
    signature: "int Compressor_init_xz(lzma_stream *lzs, int check, uint32_t preset,\n
      \                  PyObject *filterspecs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lzma_lzma_preset
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:624,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:625,1
    - Dst: lzma_alone_encoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:628,1
    - Dst: parse_filter_chain_spec
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:632,1
    - Dst: lzma_alone_encoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:636,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:638,1
    - Dst: free_filter_chain
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:643,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:645,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - lzs
    - preset
    - filterspecs
    argTypes:
    - lzma_stream*
    - uint32_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 649
    functionName: Compressor_init_alone
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - free_filter_chain
    - PyErr_Occurred
    - lzma_lzma_preset
    - catch_lzma_error
    - PyErr_Format
    - PyErr_SetString
    - lzma_alone_encoder
    - parse_filter_chain_spec
    linkageType: ''
    returnType: int
    signature: int Compressor_init_alone(lzma_stream *lzs, uint32_t preset, PyObject
      *filterspecs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:658,1
    - Dst: parse_filter_chain_spec
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:662,1
    - Dst: lzma_raw_encoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:664,1
    - Dst: free_filter_chain
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:665,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - lzs
    - filterspecs
    argTypes:
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 651
    functionDepth: 4
    functionLinenumber: 651
    functionLinenumberEnd: 670
    functionName: Compressor_init_raw
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - free_filter_chain
    - lzma_raw_encoder
    - catch_lzma_error
    - PyErr_SetString
    - parse_filter_chain_spec
    linkageType: ''
    returnType: int
    signature: int Compressor_init_raw(lzma_stream *lzs, PyObject *filterspecs)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:714,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:721,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:727,1
    - Dst: uint32_converter
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:733,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:741,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:743,1
    - Dst: Compressor_init_xz
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:752,1
    - Dst: Compressor_init_alone
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:757,1
    - Dst: Compressor_init_raw
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:762,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:767,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:772,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - Compressor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 704
    functionDepth: 5
    functionLinenumber: 704
    functionLinenumberEnd: 775
    functionName: Compressor_init
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Compressor_init_alone
    - Compressor_init_xz
    - PyThread_free_lock
    - uint32_converter
    - PyErr_Format
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Compressor_init_raw
    linkageType: ''
    returnType: int
    signature: int Compressor_init(Compressor *self, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzma_end
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:780,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:782,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - Compressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: Compressor_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_end
    - Py_TYPE
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void Compressor_dealloc(Compressor *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:876,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:878,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:882,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:883,1
    - Dst: lzma_code
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:889,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:890,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:895,1
    - Dst: lzma_get_check
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:898,1
    - Dst: grow_buffer
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:909,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:911,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:912,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:917,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:918,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:924,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 2
    argNames:
    - d
    - max_length
    argTypes:
    - Decompressor*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 926
    functionName: decompress_buf
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - lzma_code
    - lzma_get_check
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - catch_lzma_error
    - grow_buffer
    - PyBytes_AS_STRING
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress_buf(Decompressor *d, Py_ssize_t max_length)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:955,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:957,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:966,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:970,1
    - Dst: decompress_buf
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:980,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:989,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:990,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1005,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1023,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1029,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1031,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1038,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1046,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 4
    argNames:
    - d
    - data
    - len
    - max_length
    argTypes:
    - Decompressor*
    - uint8_t*
    - size_t
    - Py_ssize_t
    assertStmts:
    - condition: (max_length >= 0)
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
    constantsTouched: []
    func_position:
      end: 1048
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 1048
    functionName: decompress
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 2
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - PyMem_Malloc
    - PyErr_SetNone
    - Py_XSETREF
    - PyMem_Realloc
    - PyMem_Free
    - memmove
    - assert
    - decompress_buf
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decompress(Decompressor *d, uint8_t *data, size_t len, Py_ssize_t max_length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACQUIRE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1079,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1081,1
    - Dst: decompress
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1083,1
    - Dst: RELEASE_LOCK
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - data
    - max_length
    argTypes:
    - Decompressor*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1086
    functionName: _lzma_LZMADecompressor_decompress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ACQUIRE_LOCK
    - RELEASE_LOCK
    - decompress
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lzma_LZMADecompressor_decompress_impl(Decompressor *self,
      Py_buffer *data,\n                                       Py_ssize_t max_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_filter_chain_spec
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1094,1
    - Dst: lzma_raw_decoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1096,1
    - Dst: free_filter_chain
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1097,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - lzs
    - filterspecs
    argTypes:
    - lzma_stream*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1102
    functionName: Decompressor_init_raw
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_raw_decoder
    - catch_lzma_error
    - free_filter_chain
    - parse_filter_chain_spec
    linkageType: ''
    returnType: int
    signature: int Decompressor_init_raw(lzma_stream *lzs, PyObject *filterspecs)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1140,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1144,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1150,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1154,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1167,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1171,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1179,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1179,1
    - Dst: lzma_auto_decoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1185,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1186,1
    - Dst: lzma_stream_decoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1191,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1192,1
    - Dst: lzma_alone_decoder
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1198,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1199,1
    - Dst: Decompressor_init_raw
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1205,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1210,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1216,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1217,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 4
    argNames:
    - self
    - format
    - memlimit
    - filters
    argTypes:
    - Decompressor*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1129
    functionDepth: 5
    functionLinenumber: 1129
    functionLinenumberEnd: 1220
    functionName: _lzma_LZMADecompressor___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - lzma_stream_decoder
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Decompressor_init_raw
    - PyThread_free_lock
    - Py_CLEAR
    - Py_XSETREF
    - PyLong_AsUnsignedLongLong
    - catch_lzma_error
    - lzma_alone_decoder
    - lzma_auto_decoder
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int _lzma_LZMADecompressor___init___impl(Decompressor *self, int format,\n
      \                                    PyObject *memlimit, PyObject *filters)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1226,1
    - Dst: lzma_end
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1228,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1229,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1231,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - Decompressor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1222
    functionDepth: 1
    functionLinenumber: 1222
    functionLinenumberEnd: 1233
    functionName: Decompressor_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyThread_free_lock
    - Py_TYPE
    - PyMem_Free
    - lzma_end
    linkageType: ''
    returnType: void
    signature: void Decompressor_dealloc(Decompressor *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1322,1
    - Dst: lzma_check_is_supported
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - check_id
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1323
    functionName: _lzma_is_check_supported_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - lzma_check_is_supported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_is_check_supported_impl(PyObject *module, int check_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lzma_properties_size
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1344,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1345,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1348,1
    - Dst: lzma_properties_encode
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1352,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1353,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1354,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - filter
    argTypes:
    - PyObject*
    - lzma_filter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1336
    functionDepth: 2
    functionLinenumber: 1336
    functionLinenumberEnd: 1362
    functionName: _lzma__encode_filter_properties_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - lzma_properties_encode
    - catch_lzma_error
    - PyBytes_AS_STRING
    - Py_XDECREF
    - lzma_properties_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__encode_filter_properties_impl(PyObject *module, lzma_filter filter)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lzma_properties_decode
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1386,1
    - Dst: catch_lzma_error
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1388,1
    - Dst: build_filter_spec
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1391,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - filter_id
    - encoded_props
    argTypes:
    - PyObject*
    - lzma_vli
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1397
    functionName: _lzma__decode_filter_properties_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - free
    - catch_lzma_error
    - lzma_properties_decode
    - build_filter_spec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_lzma__decode_filter_properties_impl(PyObject *module,
      lzma_vli filter_id,\n                                     Py_buffer *encoded_props)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1426,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1433
    functionName: module_add_int_constant
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyModule_AddObject
    - PyLong_FromLongLong
    linkageType: ''
    returnType: int
    signature: int module_add_int_constant(PyObject *m, const char *name, long long
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - macro
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1435
    functionDepth: 0
    functionLinenumber: 1435
    functionLinenumberEnd: 1437
    functionName: ADD_INT_PREFIX_MACRO
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT_PREFIX_MACRO(m, macro)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1443,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1447,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1451,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1452,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1453,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1454,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1455,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1456,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1457,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1458,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1459,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1460,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1461,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1462,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1463,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1464,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1465,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1466,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1467,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1468,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1469,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1470,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1471,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1472,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1473,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1474,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1475,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1476,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1477,1
    - Dst: ADD_INT_PREFIX_MACRO
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1478,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1481,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1485,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1486,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1489,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1491,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1492,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1496,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1498,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lzmamodule.c:1499,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1504
    functionName: PyInit__lzma
    functionSourceFile: /src/Python-3.8.3/Modules/_lzmamodule.c
    functionUses: 0
    functionsReached:
    - ADD_INT_PREFIX_MACRO
    - PyTuple_New
    - PyModule_AddIntMacro
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__lzma(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/selectmodule.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: fildes_converter
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int fildes_converter(PyObject *o, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/selectmodule.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd2obj
    argTypes:
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: reap_obj
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void reap_obj(pylist fd2obj[FD_SETSIZE + 1])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/selectmodule.c:120,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/selectmodule.c:122,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:126,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:130,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:133,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/selectmodule.c:134,1
    - Dst: _PyIsSelectable_fd
      Src: /src/Python-3.8.3/Modules/selectmodule.c:140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:141,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/selectmodule.c:148,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:161,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:166,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - seq
    - set
    - fd2obj
    argTypes:
    - PyObject*
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: seq2set
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - FD_ZERO
    - Py_DECREF
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - FD_SET
    - _PyIsSelectable_fd
    - PySequence_Fast
    - PyErr_SetString
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE +
      1])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FD_ISSET
      Src: /src/Python-3.8.3/Modules/selectmodule.c:179,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:182,1
    - Dst: FD_ISSET
      Src: /src/Python-3.8.3/Modules/selectmodule.c:189,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/selectmodule.c:193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - set
    - fd2obj
    argTypes:
    - fd_set*
    - pylist[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 203
    functionName: set2list
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyList_SetItem
    - FD_ISSET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set2list(fd_set *set, pylist fd2obj[FD_SETSIZE + 1])'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:271,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/selectmodule.c:273,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:274,1
    - Dst: _PyTime_AsTimeval
      Src: /src/Python-3.8.3/Modules/selectmodule.c:280,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:283,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/selectmodule.c:291,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/selectmodule.c:292,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/selectmodule.c:293,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:295,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:296,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:297,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:298,1
    - Dst: seq2set
      Src: /src/Python-3.8.3/Modules/selectmodule.c:308,1
    - Dst: seq2set
      Src: /src/Python-3.8.3/Modules/selectmodule.c:310,1
    - Dst: seq2set
      Src: /src/Python-3.8.3/Modules/selectmodule.c:312,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:320,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/selectmodule.c:325,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/selectmodule.c:332,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:336,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/selectmodule.c:339,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/selectmodule.c:340,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/selectmodule.c:341,1
    - Dst: _PyTime_AsTimeval_noraise
      Src: /src/Python-3.8.3/Modules/selectmodule.c:345,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/selectmodule.c:352,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/selectmodule.c:352,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:356,1
    - Dst: set2list
      Src: /src/Python-3.8.3/Modules/selectmodule.c:364,1
    - Dst: set2list
      Src: /src/Python-3.8.3/Modules/selectmodule.c:365,1
    - Dst: set2list
      Src: /src/Python-3.8.3/Modules/selectmodule.c:366,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/selectmodule.c:367,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/selectmodule.c:370,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:372,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:373,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:374,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 5
    argNames:
    - module
    - rlist
    - wlist
    - xlist
    - timeout_obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 375
    functionName: select_select_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - select
    - seq2set
    - FD_ZERO
    - PyMem_NEW
    - PyErr_Occurred
    - PyMem_DEL
    - PyErr_CheckSignals
    - _PyTime_AsTimeval_noraise
    - _PyTime_GetMonotonicClock
    - PyTuple_Pack
    - PyErr_ExceptionMatches
    - _PyTime_FromSecondsObject
    - Py_XDECREF
    - WSAGetLastError
    - set2list
    - PyErr_SetFromErrno
    - _PyTime_AsTimeval
    - PyErr_NoMemory
    - PyErr_SetString
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_select_impl(PyObject *module, PyObject *rlist,
      PyObject *wlist,\n                   PyObject *xlist, PyObject *timeout_obj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:416,1
    - Dst: PyMem_RESIZE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:417,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:420,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/selectmodule.c:425,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/selectmodule.c:426,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:428,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:429,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/selectmodule.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pollObject*
    assertStmts:
    - condition: (i < self->ufd_len)
      pos:
        line_end: 425
        line_start: 425
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - condition: (i == self->ufd_len)
      pos:
        line_end: 431
        line_start: 431
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 435
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 435
    functionName: update_ufd_array
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyDict_Next
    - PyDict_GET_SIZE
    - PyErr_NoMemory
    - PyMem_RESIZE
    - assert
    linkageType: ''
    returnType: int
    signature: int update_ufd_array(pollObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:458,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:463,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/selectmodule.c:466,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 475
    functionName: select_poll_register_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:499,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/selectmodule.c:502,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/selectmodule.c:503,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:507,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:510,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:512,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/selectmodule.c:515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: select_poll_modify_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyDict_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:543,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/selectmodule.c:547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 558
    functionName: select_poll_unregister_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_DelItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_unregister_impl(pollObject *self, int fd)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:583,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/selectmodule.c:585,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:586,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:592,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:594,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:599,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:616,1
    - Dst: update_ufd_array
      Src: /src/Python-3.8.3/Modules/selectmodule.c:623,1
    - Dst: poll
      Src: /src/Python-3.8.3/Modules/selectmodule.c:633,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/selectmodule.c:640,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:646,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:651,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:660,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:666,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:678,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:681,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:683,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:686,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:692,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:694,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:697,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:698,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:704,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - pollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 706
    functionName: select_poll_poll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyTime_FromMillisecondsObject
    - Py_DECREF
    - poll
    - update_ufd_array
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _PyTime_GetMonotonicClock
    - PyList_SET_ITEM
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _PyTime_AsMilliseconds
    - PyList_New
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_poll_impl(pollObject *self, PyObject *timeout_obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:712,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:720,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 726
    functionName: newPollObject
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: pollObject
    signature: 'pollObject *

      newPollObject(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:732,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:733,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/selectmodule.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: poll_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - PyMem_DEL
    linkageType: ''
    returnType: void
    signature: void poll_dealloc(pollObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 754
    functionName: devpoll_err_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      devpoll_err_closed(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Modules/selectmodule.c:765,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/selectmodule.c:777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 784
    functionName: devpoll_flush
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _Py_write
    linkageType: ''
    returnType: int
    signature: int devpoll_flush(devpollObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:791,1
    - Dst: devpoll_flush
      Src: /src/Python-3.8.3/Modules/selectmodule.c:798,1
    - Dst: devpoll_flush
      Src: /src/Python-3.8.3/Modules/selectmodule.c:807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - self
    - fd
    - events
    - remove
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 812
    functionName: internal_devpoll_register
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpoll_err_closed
    - devpoll_flush
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ninternal_devpoll_register(devpollObject *self, int fd,\n
      \                         unsigned short events, int remove)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_devpoll_register
      Src: /src/Python-3.8.3/Modules/selectmodule.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 833
    functionName: select_devpoll_register_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - internal_devpoll_register
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_devpoll_register_impl(devpollObject *self, int
      fd,\n                             unsigned short eventmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: internal_devpoll_register
      Src: /src/Python-3.8.3/Modules/selectmodule.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - devpollObject*
    - int
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 3
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: select_devpoll_modify_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - internal_devpoll_register
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_devpoll_modify_impl(devpollObject *self, int fd,\n
      \                          unsigned short eventmask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:870,1
    - Dst: devpoll_flush
      Src: /src/Python-3.8.3/Modules/selectmodule.c:876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - devpollObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 881
    functionName: select_devpoll_unregister_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpoll_err_closed
    - devpoll_flush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_unregister_impl(devpollObject *self, int fd)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:905,1
    - Dst: _PyTime_FromMillisecondsObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:913,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/selectmodule.c:915,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:916,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:922,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:924,1
    - Dst: devpoll_flush
      Src: /src/Python-3.8.3/Modules/selectmodule.c:929,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:937,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:943,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/selectmodule.c:950,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:954,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:959,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:966,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:971,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:976,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:977,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:979,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:980,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/selectmodule.c:983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:984,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:985,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:988,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:994,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 2
    argNames:
    - self
    - timeout_obj
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 996
    functionName: select_devpoll_poll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpoll_err_closed
    - _PyTime_FromMillisecondsObject
    - PyLong_FromLong
    - ioctl
    - Py_DECREF
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _PyTime_GetMonotonicClock
    - PyTuple_Pack
    - PyList_SET_ITEM
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _PyTime_AsMilliseconds
    - PyList_New
    - devpoll_flush
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1011
    functionName: devpoll_internal_close
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int devpoll_internal_close(devpollObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1025,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1031
    functionName: select_devpoll_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpoll_internal_close
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_close_impl(devpollObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - devpollObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1040
    functionName: devpoll_get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1053,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1055
    functionName: select_devpoll_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - devpoll_err_closed
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_fileno_impl(devpollObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1077,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1079,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1083,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1087,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1089,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1090,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1094,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1096,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1097,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1106
    functionName: newDevPollObject
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _Py_open
    - PyMem_DEL
    - PyErr_NoMemory
    - PyMem_NEW
    - PyErr_SetFromErrno
    - close
    - getrlimit
    - PyObject_New
    linkageType: ''
    returnType: devpollObject
    signature: 'devpollObject *

      newDevPollObject(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: devpoll_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1111,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1112,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - devpollObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1114
    functionName: devpoll_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - devpoll_internal_close
    - PyMem_DEL
    linkageType: ''
    returnType: void
    signature: void devpoll_dealloc(devpollObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newPollObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1133
    functionName: select_poll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newPollObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newDevPollObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1146
    functionDepth: 2
    functionLinenumber: 1146
    functionLinenumberEnd: 1151
    functionName: select_devpoll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newDevPollObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1169,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1173,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1174,1
    - Dst: poll
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1182
    functionName: select_have_broken_poll
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pipe
    - close
    - poll
    linkageType: ''
    returnType: int
    signature: int select_have_broken_poll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1206
    functionName: pyepoll_CHECK
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pyepoll_CHECK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1212
    functionName: pyepoll_err_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyepoll_err_closed(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1227
    functionName: pyepoll_internal_close
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int pyepoll_internal_close(pyEpoll_Object *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1234,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1235,1
    - Dst: epoll_create1
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1242,1
    - Dst: epoll_create
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1252,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1253,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - sizehint
    - fd
    argTypes:
    - PyTypeObject*
    - int
    - SOCKET
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1233
        line_start: 1233
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 1265
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1265
    functionName: newPyEpoll_Object
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _Py_set_inheritable
    - PyErr_SetFromErrno
    - epoll_create1
    - epoll_create
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newPyEpoll_Object(PyTypeObject *type, int sizehint, SOCKET fd)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1292,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1298,1
    - Dst: newPyEpoll_Object
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - sizehint
    - flags
    argTypes:
    - PyTypeObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1304
    functionName: select_epoll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - newPyEpoll_Object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_impl(PyTypeObject *type, int sizehint, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1310,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1312
    functionName: pyepoll_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - pyepoll_internal_close
    linkageType: ''
    returnType: void
    signature: void pyepoll_dealloc(pyEpoll_Object *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1326,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1332
    functionName: select_epoll_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - pyepoll_internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_close_impl(pyEpoll_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - pyEpoll_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1342
    functionName: pyepoll_get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1355,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1357
    functionName: select_epoll_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - pyepoll_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fileno_impl(pyEpoll_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newPyEpoll_Object
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1376
    functionName: select_epoll_fromfd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newPyEpoll_Object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fromfd_impl(PyTypeObject *type, int fd)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1386,1
    - Dst: epoll_ctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1394,1
    - Dst: epoll_ctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1402,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - epfd
    - op
    - fd
    - events
    argTypes:
    - int
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1379
    functionDepth: 2
    functionLinenumber: 1379
    functionLinenumberEnd: 1420
    functionName: pyepoll_internal_ctl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - epoll_ctl
    - PyErr_SetFromErrno
    - pyepoll_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyepoll_internal_ctl(int epfd, int op, int fd, unsigned int events)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_ctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1435
    functionDepth: 3
    functionLinenumber: 1435
    functionLinenumberEnd: 1441
    functionName: select_epoll_register_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_internal_ctl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_epoll_register_impl(pyEpoll_Object *self, int fd,\n
      \                          unsigned int eventmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_ctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - fd
    - eventmask
    argTypes:
    - pyEpoll_Object*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1454
    functionDepth: 3
    functionLinenumber: 1454
    functionLinenumberEnd: 1460
    functionName: select_epoll_modify_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_internal_ctl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_epoll_modify_impl(pyEpoll_Object *self, int fd,\n
      \                        unsigned int eventmask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_internal_ctl
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - fd
    argTypes:
    - pyEpoll_Object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1476
    functionName: select_epoll_unregister_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_internal_ctl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_unregister_impl(pyEpoll_Object *self, int fd)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1504,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1509,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1512,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1518,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1520,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1535,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1543,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1549,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1551,1
    - Dst: epoll_wait
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1558,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1565,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1569,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1574,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1580,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1584,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1590,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1592,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1595,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1599,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 3
    argNames:
    - self
    - timeout_obj
    - maxevents
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1601
    functionName: select_epoll_poll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_BuildValue
    - Py_CLEAR
    - PyErr_CheckSignals
    - PyErr_NoMemory
    - PyErr_SetFromErrno
    - _PyTime_GetMonotonicClock
    - PyList_SET_ITEM
    - PyErr_Format
    - PyErr_ExceptionMatches
    - pyepoll_err_closed
    - PyErr_SetString
    - _PyTime_AsMilliseconds
    - PyList_New
    - _PyTime_FromSecondsObject
    - PyMem_Free
    - epoll_wait
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_epoll_poll_impl(pyEpoll_Object *self, PyObject
      *timeout_obj,\n                       int maxevents)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pyepoll_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1614,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - pyEpoll_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1609
    functionDepth: 2
    functionLinenumber: 1609
    functionLinenumberEnd: 1618
    functionName: select_epoll___enter___impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - pyepoll_err_closed
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___enter___impl(pyEpoll_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1635,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - exc_tb
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1638
    functionName: select_epoll___exit___impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_epoll___exit___impl(pyEpoll_Object *self, PyObject
      *exc_type,\n                           PyObject *exc_value, PyObject *exc_tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1705
    functionName: kqueue_event_Check
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kqueue_event_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1714
    functionName: kqueue_queue_Check
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kqueue_queue_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1794
    functionDepth: 0
    functionLinenumber: 1794
    functionLinenumberEnd: 1795
    functionName: KQ_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KQ_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1811,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - kqueue_event_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1806
    functionDepth: 1
    functionLinenumber: 1806
    functionLinenumberEnd: 1818
    functionName: kqueue_event_repr
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyOS_snprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *


      kqueue_event_repr(kqueue_event_Object *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EV_SET
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1830,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1832,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1838,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1839,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1842,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - kqueue_event_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1820
    functionDepth: 1
    functionLinenumber: 1820
    functionLinenumberEnd: 1848
    functionName: kqueue_event_init
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyObject_AsFileDescriptor
    - PyErr_Occurred
    - PyLong_AsSize_t
    - EV_SET
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int kqueue_event_init(kqueue_event_Object *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_event_Check
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1856,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1861,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1862,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1863,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1864,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1865,1
    - Dst: CMP
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1866,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - o
    - op
    argTypes:
    - kqueue_event_Object*
    - kqueue_event_Object*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1850
    functionDepth: 1
    functionLinenumber: 1850
    functionLinenumberEnd: 1871
    functionName: kqueue_event_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - CMP
    - Py_RETURN_RICHCOMPARE
    - kqueue_event_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nkqueue_event_richcompare(kqueue_event_Object *s, kqueue_event_Object
      *o,\n                         int op)"
  - 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: 1861
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1861
    functionName: CMP
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1878
    functionName: kqueue_queue_err_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_queue_err_closed(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1880
    functionDepth: 0
    functionLinenumber: 1880
    functionLinenumberEnd: 1893
    functionName: kqueue_queue_internal_close
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: int
    signature: int kqueue_queue_internal_close(kqueue_queue_Object *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1899,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1900,1
    - Dst: kqueue
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1907,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1914,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1915,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - SOCKET
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1898
        line_start: 1898
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    constantsTouched: []
    func_position:
      end: 1926
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1926
    functionName: newKqueue_Object
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _Py_set_inheritable
    - PyErr_SetFromErrno
    - kqueue
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newKqueue_Object(PyTypeObject *type, SOCKET fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newKqueue_Object
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1947
    functionDepth: 2
    functionLinenumber: 1947
    functionLinenumberEnd: 1952
    functionName: select_kqueue_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newKqueue_Object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1957,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 1959
    functionName: kqueue_queue_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - kqueue_queue_internal_close
    linkageType: ''
    returnType: void
    signature: void kqueue_queue_dealloc(kqueue_queue_Object *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_internal_close
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1973,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:1975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1979
    functionName: select_kqueue_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - kqueue_queue_internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_close_impl(kqueue_queue_Object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - kqueue_queue_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1988
    functionName: kqueue_queue_get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2001,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - kqueue_queue_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1996
    functionDepth: 2
    functionLinenumber: 1996
    functionLinenumberEnd: 2003
    functionName: select_kqueue_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - kqueue_queue_err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fileno_impl(kqueue_queue_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newKqueue_Object
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fd
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2022
    functionName: select_kqueue_fromfd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - newKqueue_Object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fromfd_impl(PyTypeObject *type, int fd)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: kqueue_queue_err_closed
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2057,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2060,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2070,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2072,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2075,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2079,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2083,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2091,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2095,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2096,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2100,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2102,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2104,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2108,1
    - Dst: kqueue_event_Check
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2110,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2117,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2122,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2124,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2130,1
    - Dst: kevent
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2135,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2143,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2147,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2152,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2159,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2163,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2171,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2176,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2178,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2179,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2183,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2184,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2185,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/selectmodule.c:2186,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 105
    argCount: 4
    argNames:
    - self
    - changelist
    - maxevents
    - otimeout
    argTypes:
    - kqueue_queue_Object*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2040
    functionDepth: 2
    functionLinenumber: 2040
    functionLinenumberEnd: 2188
    functionName: select_kqueue_control_impl
    functionSourceFile: /src/Python-3.8.3/Modules/selectmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_CLEAR
    - kqueue_event_Check
    - PySequence_Fast
    - PyList_New
    - PyObject_New
    - _PyTime_AsTimespec
    - PySequence_Fast_GET_ITEM
    - PyErr_CheckSignals
    - _PyTime_GetMonotonicClock
    - PyList_SET_ITEM
    - PyErr_Format
    - _PyTime_FromSecondsObject
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - PyErr_SetFromErrno
    - Py_TYPE
    - PyMem_Free
    - kevent
    - kqueue_queue_err_closed
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nselect_kqueue_control_impl(kqueue_queue_Object *self,
      PyObject *changelist,\n                           int maxevents, PyObject *otimeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: is_dbmobject
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_dbmobject(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: check_dbmobject_open
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_dbmobject_open(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:60,1
    - Dst: dbm_open
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:66,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:67,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - file
    - flags
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: newdbmobject
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilename
    - dbm_open
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newdbmobject(const char *file, int flags, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbm_close
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:80,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dp
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: dbm_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_close
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void dbm_dealloc(dbmobject *dp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:88,1
    - Dst: dbm_firstkey
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:96,1
    - Dst: dbm_nextkey
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dp
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: dbm_length
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_nextkey
    - PyErr_SetString
    - dbm_firstkey
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dbm_length(dbmobject *dp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:110,1
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:114,1
    - Dst: dbm_fetch
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:115,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:117,1
    - Dst: dbm_error
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:120,1
    - Dst: dbm_clearerr
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:122,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - dp
    - key
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 126
    functionName: dbm_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_clearerr
    - PyBytes_FromStringAndSize
    - check_dbmobject_open
    - dbm_fetch
    - PyErr_SetObject
    - PyArg_Parse
    - PyErr_SetString
    - dbm_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm_subscript(dbmobject *dp, PyObject *key)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:141,1
    - Dst: dbm_delete
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:146,1
    - Dst: dbm_clearerr
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:147,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:154,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:159,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:160,1
    - Dst: dbm_store
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:165,1
    - Dst: dbm_clearerr
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:166,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:167,1
    - Dst: dbm_error
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:172,1
    - Dst: dbm_clearerr
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:173,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - dp
    - v
    - w
    argTypes:
    - dbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: dbm_ass_sub
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_clearerr
    - dbm_store
    - PyErr_SetObject
    - PyArg_Parse
    - PyErr_SetString
    - dbm_error
    - dbm_delete
    linkageType: ''
    returnType: int
    signature: int dbm_ass_sub(dbmobject *dp, PyObject *v, PyObject *w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbm_close
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: _dbm_dbm_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_close_impl(dbmobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:216,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:217,1
    - Dst: dbm_firstkey
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:220,1
    - Dst: dbm_nextkey
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:221,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:224,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 235
    functionName: _dbm_dbm_keys_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - check_dbmobject_open
    - Py_DECREF
    - dbm_nextkey
    - PyList_Append
    - PyList_New
    - dbm_firstkey
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_keys_impl(dbmobject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:245,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:249,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:250,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:255,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:256,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:262,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:263,1
    - Dst: dbm_fetch
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 267
    functionName: dbm_contains
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_fetch
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int dbm_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:302,1
    - Dst: dbm_fetch
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:303,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:305,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - self
    - key
    - key_length
    - default_value
    argTypes:
    - dbmobject*
    - char*
    - Py_ssize_clean_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 309
    functionName: _dbm_dbm_get_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - check_dbmobject_open
    - dbm_fetch
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_dbm_dbm_get_impl(dbmobject *self, const char *key,\n
      \                 Py_ssize_clean_t key_length, PyObject *default_value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:333,1
    - Dst: dbm_fetch
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:334,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:336,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:338,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:345,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:346,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:351,1
    - Dst: dbm_store
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:353,1
    - Dst: dbm_clearerr
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:354,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:355,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - self
    - key
    - key_length
    - default_value
    argTypes:
    - dbmobject*
    - char*
    - Py_ssize_clean_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 360
    functionName: _dbm_dbm_setdefault_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_clearerr
    - PyBytes_FromStringAndSize
    - check_dbmobject_open
    - Py_DECREF
    - dbm_store
    - Py_INCREF
    - dbm_fetch
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_dbm_dbm_setdefault_impl(dbmobject *self, const char *key,\n
      \                        Py_ssize_clean_t key_length,\n                         PyObject
      *default_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: dbm__enter__
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__enter__(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:372,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: dbm__exit__
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__exit__(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:447,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:449,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:451,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:453,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:455,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:458,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:463,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:467,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:468,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:469,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:470,1
    - Dst: newdbmobject
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:473,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - module
    - filename
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 476
    functionName: dbmopen_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - strlen
    - PyBytes_GET_SIZE
    - newdbmobject
    - PyBytes_AS_STRING
    - PyErr_SetString
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndbmopen_impl(PyObject *module, PyObject *filename, const
      char *flags,\n             int mode)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:500,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:502,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:505,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:507,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:509,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:512,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:515,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_dbmmodule.c:517,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 521
    functionName: PyInit__dbm
    functionSourceFile: /src/Python-3.8.3/Modules/_dbmmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_NewException
    - PyModule_GetDict
    - PyModule_Create
    - PyDict_SetItemString
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__dbm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/nismodule.c:52,1
    - Dst: yperr_string
      Src: /src/Python-3.8.3/Modules/nismodule.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: nis_error
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - yperr_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nis_error (int err)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/nismodule.c:79,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/nismodule.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - map
    - pfix
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: nis_mapname
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      nis_mapname (char *map, int *pfix)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Modules/nismodule.c:109,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/nismodule.c:116,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/nismodule.c:117,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/nismodule.c:120,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:121,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:122,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Modules/nismodule.c:123,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/nismodule.c:126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:127,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:128,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/nismodule.c:130,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Modules/nismodule.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - instatus
    - inkey
    - inkeylen
    - inval
    - invallen
    - indata
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    - struct ypcallback_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 137
    functionName: nis_foreach
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - PyEval_RestoreThread
    - Py_DECREF
    - PyEval_SaveThread
    - PyDict_SetItem
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int nis_foreach (int instatus, char *inkey, int inkeylen, char *inval,\n
      \            int invallen, struct ypcallback_data *indata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yp_get_default_domain
      Src: /src/Python-3.8.3/Modules/nismodule.c:146,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:147,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/nismodule.c:149,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/nismodule.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: nis_get_default_domain
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - strlen
    - nis_error
    - yp_get_default_domain
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nis_get_default_domain (PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/nismodule.c:166,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/nismodule.c:170,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/nismodule.c:173,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:174,1
    - Dst: yp_get_default_domain
      Src: /src/Python-3.8.3/Modules/nismodule.c:177,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:178,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:179,1
    - Dst: nis_mapname
      Src: /src/Python-3.8.3/Modules/nismodule.c:181,1
    - Dst: yp_match
      Src: /src/Python-3.8.3/Modules/nismodule.c:185,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:191,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Modules/nismodule.c:192,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/nismodule.c:193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwdict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 195
    functionName: nis_match
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - yp_match
    - PyUnicode_DecodeFSDefaultAndSize
    - PyUnicode_EncodeFSDefault
    - nis_mapname
    - Py_DECREF
    - yp_get_default_domain
    - nis_error
    - PyBytes_AsStringAndSize
    - PyArg_ParseTupleAndKeywords
    - free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nis_match (PyObject *self, PyObject *args, PyObject *kwdict)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/nismodule.c:208,1
    - Dst: yp_get_default_domain
      Src: /src/Python-3.8.3/Modules/nismodule.c:211,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:212,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/nismodule.c:213,1
    - Dst: nis_mapname
      Src: /src/Python-3.8.3/Modules/nismodule.c:218,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Modules/nismodule.c:220,1
    - Dst: yp_all
      Src: /src/Python-3.8.3/Modules/nismodule.c:221,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Modules/nismodule.c:222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:224,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwdict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 228
    functionName: nis_cat
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - yp_all
    - nis_mapname
    - PyEval_RestoreThread
    - Py_DECREF
    - yp_get_default_domain
    - PyDict_New
    - nis_error
    - PyEval_SaveThread
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nis_cat (PyObject *self, PyObject *args, PyObject *kwdict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdr_string
      Src: /src/Python-3.8.3/Modules/nismodule.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xdrs
    - objp
    argTypes:
    - XDR*
    - domainname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: nis_xdr_domainname
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - xdr_string
    linkageType: ''
    returnType: bool_t
    signature: bool_t nis_xdr_domainname(XDR *xdrs, domainname *objp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdr_string
      Src: /src/Python-3.8.3/Modules/nismodule.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xdrs
    - objp
    argTypes:
    - XDR*
    - mapname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: nis_xdr_mapname
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - xdr_string
    linkageType: ''
    returnType: bool_t
    signature: bool_t nis_xdr_mapname(XDR *xdrs, mapname *objp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nis_xdr_mapname
      Src: /src/Python-3.8.3/Modules/nismodule.c:298,1
    - Dst: xdr_pointer
      Src: /src/Python-3.8.3/Modules/nismodule.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xdrs
    - objp
    argTypes:
    - XDR*
    - nismaplist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 307
    functionName: nis_xdr_ypmaplist
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - nis_xdr_mapname
    - xdr_pointer
    linkageType: ''
    returnType: bool_t
    signature: bool_t nis_xdr_ypmaplist(XDR *xdrs, nismaplist *objp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xdr_enum
      Src: /src/Python-3.8.3/Modules/nismodule.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - xdrs
    - objp
    argTypes:
    - XDR*
    - nisstat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: nis_xdr_ypstat
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - xdr_enum
    linkageType: ''
    returnType: bool_t
    signature: bool_t nis_xdr_ypstat(XDR *xdrs, nisstat *objp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nis_xdr_ypstat
      Src: /src/Python-3.8.3/Modules/nismodule.c:324,1
    - Dst: xdr_pointer
      Src: /src/Python-3.8.3/Modules/nismodule.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - xdrs
    - objp
    argTypes:
    - XDR*
    - nisresp_maplist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: nis_xdr_ypresp_maplist
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - nis_xdr_ypstat
    - xdr_pointer
    linkageType: ''
    returnType: bool_t
    signature: bool_t nis_xdr_ypresp_maplist(XDR *xdrs, nisresp_maplist *objp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/nismodule.c:342,1
    - Dst: clnt_call
      Src: /src/Python-3.8.3/Modules/nismodule.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argp
    - clnt
    argTypes:
    - domainname*
    - CLIENT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: nisproc_maplist_2
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - clnt_call
    - memset
    linkageType: ''
    returnType: nisresp_maplist
    signature: 'nisresp_maplist *

      nisproc_maplist_2(domainname *argp, CLIENT *clnt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yp_master
      Src: /src/Python-3.8.3/Modules/nismodule.c:363,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/nismodule.c:367,1
    - Dst: clnt_create
      Src: /src/Python-3.8.3/Modules/nismodule.c:370,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/nismodule.c:372,1
    - Dst: clnt_spcreateerror
      Src: /src/Python-3.8.3/Modules/nismodule.c:372,1
    - Dst: nisproc_maplist_2
      Src: /src/Python-3.8.3/Modules/nismodule.c:375,1
    - Dst: clnt_destroy
      Src: /src/Python-3.8.3/Modules/nismodule.c:376,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/nismodule.c:382,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/nismodule.c:386,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - dom
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 388
    functionName: nis_maplist
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - clnt_spcreateerror
    - clnt_destroy
    - nisproc_maplist_2
    - yp_master
    - PyErr_SetString
    - free
    - clnt_create
    linkageType: ''
    returnType: nismaplist
    signature: 'nismaplist *

      nis_maplist (char *dom)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/nismodule.c:399,1
    - Dst: yp_get_default_domain
      Src: /src/Python-3.8.3/Modules/nismodule.c:402,1
    - Dst: nis_error
      Src: /src/Python-3.8.3/Modules/nismodule.c:403,1
    - Dst: nis_maplist
      Src: /src/Python-3.8.3/Modules/nismodule.c:407,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/nismodule.c:409,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/nismodule.c:412,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/nismodule.c:413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:416,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/nismodule.c:420,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwdict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 424
    functionName: nis_maps
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - yp_get_default_domain
    - Py_XDECREF
    - nis_error
    - PyList_Append
    - PyArg_ParseTupleAndKeywords
    - PyList_New
    - nis_maplist
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nis_maps (PyObject *self, PyObject *args, PyObject *kwdict)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/nismodule.c:461,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/nismodule.c:464,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/nismodule.c:465,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/nismodule.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: PyInit_nis
    functionSourceFile: /src/Python-3.8.3/Modules/nismodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_Create
    - PyDict_SetItemString
    - PyModule_GetDict
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_nis(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: RandomObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RandomObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 136
    functionName: genrand_int32
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t genrand_int32(RandomObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genrand_int32
      Src: /src/Python-3.8.3/Modules/_randommodule.c:160,1
    - Dst: genrand_int32
      Src: /src/Python-3.8.3/Modules/_randommodule.c:160,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_randommodule.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: _random_Random_random_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - genrand_int32
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_random_impl(RandomObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - RandomObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: init_genrand
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_genrand(RandomObject *self, uint32_t s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_genrand
      Src: /src/Python-3.8.3/Modules/_randommodule.c:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - init_key
    - key_length
    argTypes:
    - RandomObject*
    - uint32_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: init_by_array
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - init_genrand
    linkageType: ''
    returnType: void
    signature: void init_by_array(RandomObject *self, uint32_t init_key[], size_t
      key_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_URandomNonblock
      Src: /src/Python-3.8.3/Modules/_randommodule.c:225,1
    - Dst: init_by_array
      Src: /src/Python-3.8.3/Modules/_randommodule.c:228,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_randommodule.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: random_seed_urandom
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - init_by_array
    - _PyOS_URandomNonblock
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int random_seed_urandom(RandomObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetSystemClock
      Src: /src/Python-3.8.3/Modules/_randommodule.c:238,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/_randommodule.c:242,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_randommodule.c:244,1
    - Dst: init_by_array
      Src: /src/Python-3.8.3/Modules/_randommodule.c:248,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_randommodule.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: random_seed_time_pid
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetSystemClock
    - init_by_array
    - Py_ARRAY_LENGTH
    - getpid
    - _PyTime_GetMonotonicClock
    linkageType: ''
    returnType: void
    signature: void random_seed_time_pid(RandomObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: random_seed_urandom
      Src: /src/Python-3.8.3/Modules/_randommodule.c:261,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_randommodule.c:262,1
    - Dst: random_seed_time_pid
      Src: /src/Python-3.8.3/Modules/_randommodule.c:266,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_randommodule.c:275,1
    - Dst: tp_as_number::nb_absolute
      Src: /src/Python-3.8.3/Modules/_randommodule.c:278,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_randommodule.c:281,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_randommodule.c:284,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Modules/_randommodule.c:290,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_randommodule.c:291,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_randommodule.c:298,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_randommodule.c:300,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_randommodule.c:303,1
    - Dst: init_by_array
      Src: /src/Python-3.8.3/Modules/_randommodule.c:322,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:324,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:328,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_randommodule.c:329,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 331
    functionName: random_seed
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - random_seed_time_pid
    - tp_as_number::nb_absolute
    - PyLong_Check
    - PyErr_Occurred
    - init_by_array
    - Py_INCREF
    - PyErr_NoMemory
    - Py_XDECREF
    - random_seed_urandom
    - PyMem_Free
    - _PyLong_AsByteArray
    - PyMem_Malloc
    - PyObject_Hash
    - PyErr_Clear
    - _PyLong_NumBits
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      random_seed(RandomObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_seed
      Src: /src/Python-3.8.3/Modules/_randommodule.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 4
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: _random_Random_seed_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - random_seed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_seed_impl(RandomObject *self, PyObject *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_randommodule.c:369,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_randommodule.c:373,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_randommodule.c:376,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_randommodule.c:378,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_randommodule.c:381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - RandomObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 387
    functionName: _random_Random_getstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyLong_FromUnsignedLong
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getstate_impl(RandomObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_randommodule.c:409,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_randommodule.c:410,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_randommodule.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_randommodule.c:415,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_randommodule.c:421,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_randommodule.c:421,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_randommodule.c:422,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_randommodule.c:427,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_randommodule.c:427,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_randommodule.c:428,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_randommodule.c:431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 439
    functionName: _random_Random_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_Check
    - PyTuple_Size
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_setstate(RandomObject *self, PyObject *state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_randommodule.c:462,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_randommodule.c:468,1
    - Dst: genrand_int32
      Src: /src/Python-3.8.3/Modules/_randommodule.c:468,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_randommodule.c:471,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_randommodule.c:473,1
    - Dst: genrand_int32
      Src: /src/Python-3.8.3/Modules/_randommodule.c:485,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_randommodule.c:491,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_randommodule.c:493,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - self
    - k
    argTypes:
    - RandomObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 495
    functionName: _random_Random_getrandbits_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyMem_Malloc
    - genrand_int32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits_impl(RandomObject *self, int k)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_randommodule.c:503,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_randommodule.c:506,1
    - Dst: random_seed
      Src: /src/Python-3.8.3/Modules/_randommodule.c:509,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: random_new
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - random_seed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      random_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_randommodule.c:595,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_randommodule.c:597,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_randommodule.c:600,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_randommodule.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 603
    functionName: PyInit__random
    functionSourceFile: /src/Python-3.8.3/Modules/_randommodule.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_Create
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: _curses_panelstate
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _curses_panelstate(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:29,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: _curses_panel_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _curses_panelstate
    linkageType: ''
    returnType: int
    signature: int _curses_panel_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:36,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: _curses_panel_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _curses_panelstate
    linkageType: ''
    returnType: int
    signature: int _curses_panel_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_clear
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: _curses_panel_free
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - _curses_panel_clear
    linkageType: ''
    returnType: void
    signature: void _curses_panel_free(void *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:65,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - code
    - fname
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: PyCursesCheckERR
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesCheckERR(int code, const char *fname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: PyCursesPanel_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCursesPanel_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:119,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - po
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: insert_lop
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int insert_lop(PyCursesPanelObject *po)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:138,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:143,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - po
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 153
    functionName: remove_lop
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void remove_lop(PyCursesPanelObject *po)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pan
    argTypes:
    - PANEL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: find_po
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyCursesPanelObject
    signature: 'PyCursesPanelObject *

      find_po(PANEL *pan)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:185,1
    - Dst: bottom_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: _curses_panel_panel_bottom_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - bottom_panel
    - PyCursesCheckERR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_bottom_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:200,1
    - Dst: hide_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: _curses_panel_panel_hide_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - hide_panel
    - PyCursesCheckERR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hide_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:213,1
    - Dst: show_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: _curses_panel_panel_show_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - show_panel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_show_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:226,1
    - Dst: top_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: _curses_panel_panel_top_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - top_panel
    - PyCursesCheckERR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_top_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:236,1
    - Dst: insert_lop
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:242,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pan
    - wo
    argTypes:
    - PANEL*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 248
    functionName: PyCursesPanel_New
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - PyObject_NEW
    - insert_lop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesPanel_New(PANEL *pan, PyCursesWindowObject *wo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:255,1
    - Dst: panel_userptr
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:256,1
    - Dst: set_panel_userptr
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:259,1
    - Dst: del_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:263,1
    - Dst: remove_lop
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:264,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - po
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: PyCursesPanel_Dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - del_panel
    - remove_lop
    - Py_DECREF
    - panel_userptr
    - Py_TYPE
    - set_panel_userptr
    - PyObject_DEL
    linkageType: ''
    returnType: void
    signature: void PyCursesPanel_Dealloc(PyCursesPanelObject *po)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: panel_above
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:285,1
    - Dst: find_po
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:293,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: _curses_panel_panel_above_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_above
    - find_po
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_above_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: panel_below
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:316,1
    - Dst: find_po
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:322,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:324,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 330
    functionName: _curses_panel_panel_below_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_below
    - find_po
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_below_impl(PyCursesPanelObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_hidden
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 346
    functionName: _curses_panel_panel_hidden_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_hidden
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hidden_impl(PyCursesPanelObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:362,1
    - Dst: move_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesPanelObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: _curses_panel_panel_move_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - move_panel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_move_impl(PyCursesPanelObject *self, int y, int x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: _curses_panel_panel_window_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_window_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_po
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:396,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:398,1
    - Dst: replace_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:403,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:405,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:408,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - win
    argTypes:
    - PyCursesPanelObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 411
    functionName: _curses_panel_panel_replace_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - find_po
    - Py_INCREF
    - replace_panel
    - PyErr_SetString
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_panel_panel_replace_impl(PyCursesPanelObject *self,\n
      \                                PyCursesWindowObject *win)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:429,1
    - Dst: panel_userptr
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:430,1
    - Dst: set_panel_userptr
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:434,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:436,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 438
    functionName: _curses_panel_panel_set_userptr
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyCursesCheckERR
    - panel_userptr
    - set_panel_userptr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_set_userptr(PyCursesPanelObject *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: panel_userptr
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:454,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesPanelObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: _curses_panel_panel_userptr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_userptr
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_userptr_impl(PyCursesPanelObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: panel_above
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:516,1
    - Dst: find_po
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:522,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:524,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 530
    functionName: _curses_panel_bottom_panel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_above
    - find_po
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_bottom_panel_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_panel
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:545,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:547,1
    - Dst: PyCursesPanel_New
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - win
    argTypes:
    - PyObject*
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 551
    functionName: _curses_panel_new_panel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyCursesPanel_New
    - new_panel
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_new_panel_impl(PyObject *module, PyCursesWindowObject *win)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: panel_below
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:573,1
    - Dst: find_po
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:579,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:581,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 587
    functionName: _curses_panel_top_panel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - panel_below
    - find_po
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_top_panel_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_panels
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: _curses_panel_update_panels_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - update_panels
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_update_panels_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:638,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:641,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:644,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:648,1
    - Dst: import_curses
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:650,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:651,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:655,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:655,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:656,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:656,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:659,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:660,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:662,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:664,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:664,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:665,1
    - Dst: _curses_panelstate
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:665,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_curses_panel.c:668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 670
    functionName: PyInit__curses_panel
    functionSourceFile: /src/Python-3.8.3/Modules/_curses_panel.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _curses_panelstate
    - PyErr_Occurred
    - Py_DECREF
    - PyModule_GetDict
    - PyErr_NewException
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_FromSpec
    - import_curses
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__curses_panel(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:70,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:71,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:73,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - i
    - val
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: sets
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyStructSequence_SET_ITEM
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: void
    signature: void sets(PyObject *v, int i, const char* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:81,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:88,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:89,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:90,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:91,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:92,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:93,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:94,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:95,1
    - Dst: SETI
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:96,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:97,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:98,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct spwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 109
    functionName: mkspent
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - SETS
    - SETI
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *mkspent(struct spwd *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: SETI
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETI(i,val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: SETS
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETS(i,val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:135,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:138,1
    - Dst: getspnam
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:140,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:144,1
    - Dst: mkspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:147,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 151
    functionName: spwd_getspnam_impl
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - PyErr_SetFromErrno
    - getspnam
    - PyBytes_AsStringAndSize
    - PyErr_SetString
    - mkspent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spwd_getspnam_impl(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:171,1
    - Dst: setspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:173,1
    - Dst: getspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:174,1
    - Dst: mkspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:175,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:176,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:177,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:178,1
    - Dst: endspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:182,1
    - Dst: endspent
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: spwd_getspall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - endspent
    - setspent
    - PyList_Append
    - getspent
    - PyList_New
    - Py_XDECREF
    - mkspent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spwd_getspall_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:218,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:222,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:226,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/spwdmodule.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: PyInit_spwd
    functionSourceFile: /src/Python-3.8.3/Modules/spwdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyStructSequence_InitType2
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_spwd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: PySSL_BEGIN_ALLOW_THREADS_S
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_BEGIN_ALLOW_THREADS_S(save)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - save
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: PySSL_END_ALLOW_THREADS_S
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSL_END_ALLOW_THREADS_S(save)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Modules/_ssl.c:113,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_ssl.c:122,1
    - Dst: ssl_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:124,1
    - Dst: ssl_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: _PySSLFixErrno
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ssl_errno
    - GetProcAddress
    - GetModuleHandleW
    linkageType: ''
    returnType: void
    signature: void _PySSLFixErrno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ne
    argTypes:
    - X509_NAME_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: X509_NAME_ENTRY_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - meth
    argTypes:
    - COMP_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: COMP_get_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int COMP_get_type(const COMP_METHOD *meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: SSL_CTX_get_default_passwd_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pem_password_cb
    signature: pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: SSL_CTX_get_default_passwd_cb_userdata
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: X509_OBJECT_get_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int X509_OBJECT_get_type(X509_OBJECT *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: X509_OBJECT_get0_X509
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: X509
    signature: X509 *X509_OBJECT_get0_X509(X509_OBJECT *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_add
      Src: /src/Python-3.8.3/Modules/_ssl.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: BIO_up_ref
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_add
    linkageType: ''
    returnType: int
    signature: int BIO_up_ref(BIO *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - store
    argTypes:
    - X509_STORE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: X509_STORE_get0_objects
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STACK_OF
    signature: STACK_OF *X509_STORE_get0_objects(X509_STORE *store)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: SSL_SESSION_has_ticket
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SSL_SESSION_has_ticket(const SSL_SESSION *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: SSL_SESSION_get_ticket_lifetime_hint
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION
      *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:487,1
    - Dst: SSL_get_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - failed
    - ssl
    - retcode
    argTypes:
    - int
    - SSL*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 494
    functionName: _PySSL_errno
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_error
    - WSAGetLastError
    linkageType: ''
    returnType: _PySSLError
    signature: _PySSLError _PySSL_errno(int failed, const SSL *ssl, int retcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: PySSLSocket_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLSocket_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: PySSLMemoryBIO_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLMemoryBIO_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: PySSLSession_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySSLSession_Check(v)
  - 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: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: ERRSTR1
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRSTR1(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: ERRSTR
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRSTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 531
    functionName: GET_SOCKET
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SOCKET(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 535
    functionName: GET_SOCKET_TIMEOUT
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SOCKET_TIMEOUT(sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:568,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:569,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_ssl.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyOSErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 574
    functionName: SSLError_str
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyObject_Str
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SSLError_str(PyOSErrorObject *self)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ssl.c:598,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ssl.c:599,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ssl.c:600,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ssl.c:601,1
    - Dst: ERR_GET_LIB
      Src: /src/Python-3.8.3/Modules/_ssl.c:606,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:607,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:608,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ssl.c:611,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:612,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ssl.c:613,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:616,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ssl.c:619,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:620,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ssl.c:621,1
    - Dst: ERR_reason_error_string
      Src: /src/Python-3.8.3/Modules/_ssl.c:625,1
    - Dst: SSL_get_verify_result
      Src: /src/Python-3.8.3/Modules/_ssl.c:635,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:636,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:645,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:653,1
    - Dst: X509_verify_cert_error_string
      Src: /src/Python-3.8.3/Modules/_ssl.c:660,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:662,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:665,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:675,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:679,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:682,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:685,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:689,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:689,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:694,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_ssl.c:700,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_ssl.c:705,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_ssl.c:710,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_ssl.c:713,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:717,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:720,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:721,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 105
    argCount: 6
    argNames:
    - sslsock
    - type
    - ssl_errno
    - errstr
    - lineno
    - errcode
    argTypes:
    - PySSLSocket*
    - PyObject*
    - int
    - char*
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 722
    functionName: fill_and_set_sslerror
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ERR_reason_error_string
    - PyUnicode_FromString
    - Py_BuildValue
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyErr_Occurred
    - Py_INCREF
    - PyObject_CallObject
    - ERR_GET_LIB
    - SSL_get_verify_result
    - _Py_IDENTIFIER
    - X509_verify_cert_error_string
    - PyUnicode_FromFormat
    - PyErr_SetObject
    - ERR_GET_REASON
    - _PyObject_SetAttrId
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void fill_and_set_sslerror(PySSLSocket *sslsock, PyObject *type, int
      ssl_errno,\n                      const char *errstr, int lineno, unsigned long
      errcode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sslsock
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 734
    functionName: PySSL_ChainExceptions
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions
    linkageType: ''
    returnType: int
    signature: int PySSL_ChainExceptions(PySSLSocket *sslsock)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:745,1
    - Dst: ERR_peek_last_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:746,1
    - Dst: GET_SOCKET
      Src: /src/Python-3.8.3/Modules/_ssl.c:778,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:785,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:788,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_ssl.c:793,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:795,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/_ssl.c:796,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:797,1
    - Dst: ERR_GET_LIB
      Src: /src/Python-3.8.3/Modules/_ssl.c:816,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:817,1
    - Dst: fill_and_set_sslerror
      Src: /src/Python-3.8.3/Modules/_ssl.c:827,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:828,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:829,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 4
    argNames:
    - sslsock
    - ret
    - filename
    - lineno
    argTypes:
    - PySSLSocket*
    - int
    - char*
    - int
    assertStmts:
    - condition: (ret <= 0)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 831
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 831
    functionName: PySSL_SetError
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - Py_DECREF
    - Py_INCREF
    - ERR_GET_LIB
    - GET_SOCKET
    - fill_and_set_sslerror
    - PySSL_ChainExceptions
    - PyErr_SetFromErrno
    - PySocketSockObject*::errorhandler
    - ERR_GET_REASON
    - assert
    - ERR_peek_last_error
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:837,1
    - Dst: fill_and_set_sslerror
      Src: /src/Python-3.8.3/Modules/_ssl.c:840,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - errstr
    - errcode
    - filename
    - lineno
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 843
    functionName: _setSSLError
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - fill_and_set_sslerror
    - ERR_peek_last_error
    - ERR_clear_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _setSSLError (const char *errstr, int errcode, const char *filename, int lineno)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:857,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ssl.c:863,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:865,1
    - Dst: a2i_IPADDRESS
      Src: /src/Python-3.8.3/Modules/_ssl.c:873,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:875,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_ssl.c:878,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:886,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:887,1
    - Dst: SSL_get0_param
      Src: /src/Python-3.8.3/Modules/_ssl.c:891,1
    - Dst: X509_VERIFY_PARAM_set1_host
      Src: /src/Python-3.8.3/Modules/_ssl.c:893,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ssl.c:894,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:895,1
    - Dst: X509_VERIFY_PARAM_set1_ip
      Src: /src/Python-3.8.3/Modules/_ssl.c:899,1
    - Dst: ASN1_STRING_data
      Src: /src/Python-3.8.3/Modules/_ssl.c:899,1
    - Dst: ASN1_STRING_length
      Src: /src/Python-3.8.3/Modules/_ssl.c:900,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:901,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:909,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - self
    - server_hostname
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts:
    - condition: (server_hostname)
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 912
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 912
    functionName: _ssl_configure_hostname
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - _setSSLError
    - X509_VERIFY_PARAM_set1_ip
    - ASN1_STRING_data
    - X509_VERIFY_PARAM_set1_host
    - strlen
    - SSL_get0_param
    - ASN1_OCTET_STRING_free
    - PyErr_SetString
    - a2i_IPADDRESS
    - assert
    - ASN1_STRING_length
    - SSL_set_tlsext_host_name
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: int _ssl_configure_hostname(PySSLSocket *self, const char* server_hostname)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:925,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:932,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:942,1
    - Dst: SSL_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:945,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:948,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:949,1
    - Dst: SSL_set_app_data
      Src: /src/Python-3.8.3/Modules/_ssl.c:952,1
    - Dst: SSL_set_fd
      Src: /src/Python-3.8.3/Modules/_ssl.c:954,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ssl.c:954,1
    - Dst: BIO_up_ref
      Src: /src/Python-3.8.3/Modules/_ssl.c:959,1
    - Dst: BIO_up_ref
      Src: /src/Python-3.8.3/Modules/_ssl.c:960,1
    - Dst: SSL_set_bio
      Src: /src/Python-3.8.3/Modules/_ssl.c:961,1
    - Dst: SSL_set_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:963,1
    - Dst: SSL_get_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:972,1
    - Dst: SSL_get_verify_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:975,1
    - Dst: SSL_set_verify
      Src: /src/Python-3.8.3/Modules/_ssl.c:977,1
    - Dst: SSL_set_post_handshake_auth
      Src: /src/Python-3.8.3/Modules/_ssl.c:981,1
    - Dst: _ssl_configure_hostname
      Src: /src/Python-3.8.3/Modules/_ssl.c:987,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:988,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:996,1
    - Dst: SSL_get_rbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:996,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:997,1
    - Dst: SSL_get_wbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:997,1
    - Dst: SSL_set_connect_state
      Src: /src/Python-3.8.3/Modules/_ssl.c:1002,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_ssl.c:1009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1011,1
    - Dst: PySSL_set_owner
      Src: /src/Python-3.8.3/Modules/_ssl.c:1016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1017,1
    - Dst: PySSL_set_session
      Src: /src/Python-3.8.3/Modules/_ssl.c:1022,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1023,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 8
    argNames:
    - sslctx
    - sock
    - socket_type
    - server_hostname
    - owner
    - session
    - inbio
    - outbio
    argTypes:
    - PySSLContext*
    - PySocketSockObject*
    - enum py_ssl_server_or_client
    - char*
    - PyObject*
    - PyObject*
    - PySSLMemoryBIO*
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 1028
    functionName: newPySSLSocket
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _ssl_configure_hostname
    - BIO_set_nbio
    - BIO_up_ref
    - SSL_new
    - PyWeakref_NewRef
    - PyObject_New
    - Py_SAFE_DOWNCAST
    - SSL_set_post_handshake_auth
    - SSL_set_bio
    - SSL_set_connect_state
    - SSL_set_app_data
    - Py_INCREF
    - SSL_get_rbio
    - _setSSLError
    - Py_DECREF
    - SSL_get_verify_mode
    - SSL_get_verify_callback
    - PySSL_set_owner
    - SSL_set_verify
    - ERR_clear_error
    - PySSL_set_session
    - SSL_get_wbio
    - SSL_set_mode
    - SSL_set_fd
    linkageType: ''
    returnType: PySSLSocket
    signature: "PySSLSocket *\nnewPySSLSocket(PySSLContext *sslctx, PySocketSockObject
      *sock,\n               enum py_ssl_server_or_client socket_type,\n               char
      *server_hostname,\n               PyObject *owner, PyObject *session,\n               PySSLMemoryBIO
      *inbio, PySSLMemoryBIO *outbio)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/Python-3.8.3/Modules/_ssl.c:1043,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1049,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1053,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:1057,1
    - Dst: SSL_get_rbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:1057,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:1058,1
    - Dst: SSL_get_wbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:1058,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/Python-3.8.3/Modules/_ssl.c:1061,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:1064,1
    - Dst: SSL_do_handshake
      Src: /src/Python-3.8.3/Modules/_ssl.c:1070,1
    - Dst: _PySSL_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:1071,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_ssl.c:1075,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:1079,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:1082,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:1084,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1090,1
    - Dst: ERRSTR
      Src: /src/Python-3.8.3/Modules/_ssl.c:1091,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1094,1
    - Dst: ERRSTR
      Src: /src/Python-3.8.3/Modules/_ssl.c:1095,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1098,1
    - Dst: ERRSTR
      Src: /src/Python-3.8.3/Modules/_ssl.c:1099,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1106,1
    - Dst: PySSL_SetError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1108,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:1109,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1113,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:1114,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1116
    functionName: _ssl__SSLSocket_do_handshake_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - Py_INCREF
    - GET_SOCKET_TIMEOUT
    - _PySSL_errno
    - GET_SOCKET
    - PyErr_CheckSignals
    - PySSL_ChainExceptions
    - SSL_get_rbio
    - _PyTime_GetMonotonicClock
    - SSL_get_wbio
    - BIO_set_nbio
    - PySSL_SetError
    - ERRSTR
    - SSL_do_handshake
    - PyErr_SetString
    - PySSL_select
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2txt
      Src: /src/Python-3.8.3/Modules/_ssl.c:1126,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1128,1
    - Dst: OBJ_obj2txt
      Src: /src/Python-3.8.3/Modules/_ssl.c:1134,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:1136,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:1138,1
    - Dst: OBJ_obj2txt
      Src: /src/Python-3.8.3/Modules/_ssl.c:1141,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1143,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1148,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1152,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - name
    - no_name
    argTypes:
    - ASN1_OBJECT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1118
    functionDepth: 3
    functionLinenumber: 1118
    functionLinenumberEnd: 1160
    functionName: _asn1obj2py
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - Py_INCREF
    - OBJ_obj2txt
    - PyUnicode_FromStringAndSize
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asn1obj2py(const ASN1_OBJECT *name, int no_name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/Python-3.8.3/Modules/_ssl.c:1169,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1171,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:1174,1
    - Dst: _asn1obj2py
      Src: /src/Python-3.8.3/Modules/_ssl.c:1174,1
    - Dst: OPENSSL_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - ASN1_OBJECT*
    - ASN1_STRING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1162
    functionDepth: 4
    functionLinenumber: 1162
    functionLinenumberEnd: 1177
    functionName: _create_tuple_for_attribute
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - ASN1_STRING_to_UTF8
    - OPENSSL_free
    - _asn1obj2py
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _create_tuple_for_attribute(ASN1_OBJECT *name, ASN1_STRING *value)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: X509_NAME_entry_count
      Src: /src/Python-3.8.3/Modules/_ssl.c:1186,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1194,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1198,1
    - Dst: X509_NAME_get_entry
      Src: /src/Python-3.8.3/Modules/_ssl.c:1206,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/Python-3.8.3/Modules/_ssl.c:1210,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1214,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1217,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1218,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1222,1
    - Dst: X509_NAME_ENTRY_set
      Src: /src/Python-3.8.3/Modules/_ssl.c:1227,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/Python-3.8.3/Modules/_ssl.c:1230,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/Python-3.8.3/Modules/_ssl.c:1231,1
    - Dst: _create_tuple_for_attribute
      Src: /src/Python-3.8.3/Modules/_ssl.c:1232,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1242,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:1248,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1250,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1259,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1264,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1265,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1271,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1274,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 1
    argNames:
    - xname
    argTypes:
    - X509_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1179
    functionDepth: 5
    functionLinenumber: 1179
    functionLinenumberEnd: 1276
    functionName: _create_tuple_for_X509_NAME
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - X509_NAME_entry_count
    - Py_DECREF
    - X509_NAME_ENTRY_get_data
    - X509_NAME_get_entry
    - PyList_Append
    - X509_NAME_ENTRY_get_object
    - _create_tuple_for_attribute
    - X509_NAME_ENTRY_set
    - PyList_New
    - PyList_GET_SIZE
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _create_tuple_for_X509_NAME (X509_NAME *xname)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:1301,1
    - Dst: BIO_s_mem
      Src: /src/Python-3.8.3/Modules/_ssl.c:1301,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1303,1
    - Dst: X509_get_ext_d2i
      Src: /src/Python-3.8.3/Modules/_ssl.c:1307,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1311,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:1316,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:1321,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1328,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1335,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1338,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/Python-3.8.3/Modules/_ssl.c:1340,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1342,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1345,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1353,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1358,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1362,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1371,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1374,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1375,1
    - Dst: ASN1_STRING_data
      Src: /src/Python-3.8.3/Modules/_ssl.c:1375,1
    - Dst: ASN1_STRING_length
      Src: /src/Python-3.8.3/Modules/_ssl.c:1376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1378,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1381,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1385,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1389,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1391,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1394,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/Python-3.8.3/Modules/_ssl.c:1396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1398,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1399,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1402,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1407,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1410,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1417,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1421,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1423,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1426,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:1430,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ssl.c:1437,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1449,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1455,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1458,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Modules/_ssl.c:1471,1
    - Dst: BIO_reset
      Src: /src/Python-3.8.3/Modules/_ssl.c:1478,1
    - Dst: GENERAL_NAME_print
      Src: /src/Python-3.8.3/Modules/_ssl.c:1479,1
    - Dst: BIO_gets
      Src: /src/Python-3.8.3/Modules/_ssl.c:1480,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1482,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_ssl.c:1485,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:1487,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1492,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1495,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1497,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1500,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1504,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1507,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1517,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1519,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1521,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1523,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1524,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1533,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1536,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 208
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1278
    functionDepth: 6
    functionLinenumber: 1278
    functionLinenumberEnd: 1540
    functionName: _get_peer_alt_names
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - sk_GENERAL_NAME_num
    - PyUnicode_FromFormat
    - PyList_New
    - BIO_s_mem
    - BIO_new
    - PyErr_WarnFormat
    - PyList_AsTuple
    - i2t_ASN1_OBJECT
    - sk_GENERAL_NAME_value
    - PyErr_Format
    - Py_XDECREF
    - PyUnicode_FromString
    - _setSSLError
    - Py_DECREF
    - GENERAL_NAME_print
    - strchr
    - PyTuple_New
    - _create_tuple_for_X509_NAME
    - PyUnicode_FromStringAndSize
    - X509_get_ext_d2i
    - ASN1_STRING_data
    - BIO_gets
    - PyList_Append
    - BIO_reset
    - PyErr_SetString
    - BIO_free
    - sk_GENERAL_NAME_pop_free
    - ASN1_STRING_length
    - PyTuple_SET_ITEM
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_peer_alt_names (X509 *certificate)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_ext_d2i
      Src: /src/Python-3.8.3/Modules/_ssl.c:1548,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:1551,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1552,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1556,1
    - Dst: sk_ACCESS_DESCRIPTION_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:1560,1
    - Dst: sk_ACCESS_DESCRIPTION_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:1561,1
    - Dst: OBJ_obj2nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:1564,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1569,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1574,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1575,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1580,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_ssl.c:1583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1584,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1588,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1589,1
    - Dst: AUTHORITY_INFO_ACCESS_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1594,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1595,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - certificate
    - nid
    argTypes:
    - X509*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1597
    functionName: _get_aia_uri
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    - X509_get_ext_d2i
    - OBJ_obj2nid
    - PyList_Size
    - AUTHORITY_INFO_ACCESS_free
    - PyList_Append
    - sk_ACCESS_DESCRIPTION_num
    - sk_ACCESS_DESCRIPTION_value
    - PyList_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_aia_uri(X509 *certificate, int nid)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1601,1
    - Dst: X509_get_ext_d2i
      Src: /src/Python-3.8.3/Modules/_ssl.c:1605,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1610,1
    - Dst: sk_DIST_POINT_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:1614,1
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1616,1
    - Dst: sk_DIST_POINT_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:1618,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:1625,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:1631,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1636,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:1641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1642,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:1649,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:1649,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1652,1
    - Dst: CRL_DIST_POINTS_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1653,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1655
    functionName: _get_crl_dp
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    - STACK_OF
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_num
    - sk_DIST_POINT_num
    - CRL_DIST_POINTS_free
    - PyList_Append
    - PyList_New
    - PyList_GET_SIZE
    - Py_XDECREF
    - sk_GENERAL_NAME_value
    - sk_DIST_POINT_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_crl_dp(X509 *certificate)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1674,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/Python-3.8.3/Modules/_ssl.c:1678,1
    - Dst: X509_get_subject_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:1679,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1686,1
    - Dst: _create_tuple_for_X509_NAME
      Src: /src/Python-3.8.3/Modules/_ssl.c:1688,1
    - Dst: X509_get_issuer_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:1689,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1692,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1696,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:1698,1
    - Dst: X509_get_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:1698,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1701,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1705,1
    - Dst: BIO_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:1708,1
    - Dst: BIO_s_mem
      Src: /src/Python-3.8.3/Modules/_ssl.c:1708,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1710,1
    - Dst: BIO_reset
      Src: /src/Python-3.8.3/Modules/_ssl.c:1714,1
    - Dst: X509_get_serialNumber
      Src: /src/Python-3.8.3/Modules/_ssl.c:1715,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/Python-3.8.3/Modules/_ssl.c:1717,1
    - Dst: BIO_gets
      Src: /src/Python-3.8.3/Modules/_ssl.c:1718,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1720,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1723,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1726,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1727,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1730,1
    - Dst: BIO_reset
      Src: /src/Python-3.8.3/Modules/_ssl.c:1732,1
    - Dst: X509_get_notBefore
      Src: /src/Python-3.8.3/Modules/_ssl.c:1733,1
    - Dst: ASN1_TIME_print
      Src: /src/Python-3.8.3/Modules/_ssl.c:1734,1
    - Dst: BIO_gets
      Src: /src/Python-3.8.3/Modules/_ssl.c:1735,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1737,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1740,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1744,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1747,1
    - Dst: BIO_reset
      Src: /src/Python-3.8.3/Modules/_ssl.c:1749,1
    - Dst: X509_get_notAfter
      Src: /src/Python-3.8.3/Modules/_ssl.c:1750,1
    - Dst: ASN1_TIME_print
      Src: /src/Python-3.8.3/Modules/_ssl.c:1751,1
    - Dst: BIO_gets
      Src: /src/Python-3.8.3/Modules/_ssl.c:1752,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1754,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1757,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1760,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1761,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1764,1
    - Dst: _get_peer_alt_names
      Src: /src/Python-3.8.3/Modules/_ssl.c:1768,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1772,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1774,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1777,1
    - Dst: _get_aia_uri
      Src: /src/Python-3.8.3/Modules/_ssl.c:1781,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1786,1
    - Dst: _get_aia_uri
      Src: /src/Python-3.8.3/Modules/_ssl.c:1792,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1796,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1797,1
    - Dst: _get_crl_dp
      Src: /src/Python-3.8.3/Modules/_ssl.c:1804,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1809,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1815,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1820,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1822,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 158
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1657
    functionDepth: 7
    functionLinenumber: 1657
    functionLinenumberEnd: 1824
    functionName: _decode_certificate
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _get_peer_alt_names
    - _get_aia_uri
    - BIO_s_mem
    - X509_get_issuer_name
    - X509_get_notBefore
    - X509_get_subject_name
    - BIO_new
    - X509_get_notAfter
    - X509_get_serialNumber
    - Py_XDECREF
    - _setSSLError
    - Py_DECREF
    - ASN1_TIME_print
    - _create_tuple_for_X509_NAME
    - X509_get_version
    - PyUnicode_FromStringAndSize
    - PyDict_New
    - BIO_gets
    - _get_crl_dp
    - i2a_ASN1_INTEGER
    - BIO_reset
    - PyErr_SetString
    - PyDict_SetItemString
    - BIO_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _decode_certificate(X509 *certificate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: i2d_X509
      Src: /src/Python-3.8.3/Modules/_ssl.c:1834,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:1836,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:1840,1
    - Dst: OPENSSL_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - certificate
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1826
    functionDepth: 3
    functionLinenumber: 1826
    functionLinenumberEnd: 1843
    functionName: _certificate_to_der
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - i2d_X509
    - PyBytes_FromStringAndSize
    - _setSSLError
    - OPENSSL_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _certificate_to_der(X509 *certificate)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:1860,1
    - Dst: BIO_s_file
      Src: /src/Python-3.8.3/Modules/_ssl.c:1860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1861,1
    - Dst: BIO_read_filename
      Src: /src/Python-3.8.3/Modules/_ssl.c:1866,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1866,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1867,1
    - Dst: PEM_read_bio_X509
      Src: /src/Python-3.8.3/Modules/_ssl.c:1872,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1874,1
    - Dst: _decode_certificate
      Src: /src/Python-3.8.3/Modules/_ssl.c:1879,1
    - Dst: X509_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1880,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1883,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1852
    functionDepth: 8
    functionLinenumber: 1852
    functionLinenumberEnd: 1886
    functionName: _ssl__test_decode_cert_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_read_filename
    - BIO_new
    - Py_DECREF
    - PEM_read_bio_X509
    - PyBytes_AsString
    - BIO_s_file
    - _decode_certificate
    - X509_free
    - PyErr_SetString
    - BIO_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__test_decode_cert_impl(PyObject *module, PyObject *path)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_init_finished
      Src: /src/Python-3.8.3/Modules/_ssl.c:1913,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1914,1
    - Dst: SSL_get_peer_certificate
      Src: /src/Python-3.8.3/Modules/_ssl.c:1918,1
    - Dst: _certificate_to_der
      Src: /src/Python-3.8.3/Modules/_ssl.c:1924,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:1926,1
    - Dst: SSL_get_SSL_CTX
      Src: /src/Python-3.8.3/Modules/_ssl.c:1926,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1928,1
    - Dst: _decode_certificate
      Src: /src/Python-3.8.3/Modules/_ssl.c:1930,1
    - Dst: X509_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:1932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - binary_mode
    argTypes:
    - PySSLSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1905
    functionDepth: 8
    functionLinenumber: 1905
    functionLinenumberEnd: 1934
    functionName: _ssl__SSLSocket_getpeercert_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - SSL_is_init_finished
    - SSL_get_peer_certificate
    - SSL_CTX_get_verify_mode
    - SSL_get_SSL_CTX
    - _decode_certificate
    - X509_free
    - PyErr_SetString
    - _certificate_to_der
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_getpeercert_impl(PySSLSocket *self, int binary_mode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:1940,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:1944,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1946,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1947,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1949,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1952,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:1955,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1957,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1958,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:1960,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1963,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:1966,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/Python-3.8.3/Modules/_ssl.c:1966,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:1969,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:1974,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1936
    functionDepth: 1
    functionLinenumber: 1936
    functionLinenumberEnd: 1976
    functionName: cipher_to_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - SSL_CIPHER_get_version
    - SSL_CIPHER_get_bits
    - Py_INCREF
    - Py_DECREF
    - SSL_CIPHER_get_name
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cipher_to_tuple(const SSL_CIPHER *cipher)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CIPHER_get_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:1993,1
    - Dst: SSL_CIPHER_get_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:1994,1
    - Dst: SSL_CIPHER_get_id
      Src: /src/Python-3.8.3/Modules/_ssl.c:1995,1
    - Dst: SSL_CIPHER_description
      Src: /src/Python-3.8.3/Modules/_ssl.c:1996,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ssl.c:1998,1
    - Dst: SSL_CIPHER_get_bits
      Src: /src/Python-3.8.3/Modules/_ssl.c:2001,1
    - Dst: SSL_CIPHER_is_aead
      Src: /src/Python-3.8.3/Modules/_ssl.c:2004,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:2005,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_ssl.c:2006,1
    - Dst: SSL_CIPHER_get_digest_nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:2007,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_ssl.c:2008,1
    - Dst: SSL_CIPHER_get_kx_nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:2009,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_ssl.c:2010,1
    - Dst: SSL_CIPHER_get_auth_nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:2011,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_ssl.c:2012,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:2015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SSL_CIPHER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1979
    functionDepth: 1
    functionLinenumber: 1979
    functionLinenumberEnd: 2035
    functionName: cipher_to_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CIPHER_get_cipher_nid
    - SSL_CIPHER_description
    - Py_BuildValue
    - SSL_CIPHER_get_version
    - SSL_CIPHER_get_bits
    - SSL_CIPHER_get_digest_nid
    - OBJ_nid2ln
    - strlen
    - SSL_CIPHER_get_auth_nid
    - SSL_CIPHER_get_name
    - SSL_CIPHER_get_kx_nid
    - SSL_CIPHER_is_aead
    - SSL_CIPHER_get_id
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cipher_to_dict(const SSL_CIPHER *cipher)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2046,1
    - Dst: SSL_get_ciphers
      Src: /src/Python-3.8.3/Modules/_ssl.c:2050,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:2053,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:2053,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:2056,1
    - Dst: cipher_to_tuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:2057,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:2057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2059,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:2062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2065
    functionName: _ssl__SSLSocket_shared_ciphers_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_num
    - SSL_get_ciphers
    - Py_DECREF
    - STACK_OF
    - sk_SSL_CIPHER_value
    - PyList_SET_ITEM
    - PyList_New
    - cipher_to_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shared_ciphers_impl(PySSLSocket *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_cipher
      Src: /src/Python-3.8.3/Modules/_ssl.c:2079,1
    - Dst: cipher_to_tuple
      Src: /src/Python-3.8.3/Modules/_ssl.c:2082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2071
    functionDepth: 2
    functionLinenumber: 2071
    functionLinenumberEnd: 2083
    functionName: _ssl__SSLSocket_cipher_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - cipher_to_tuple
    - SSL_get_current_cipher
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_cipher_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_is_init_finished
      Src: /src/Python-3.8.3/Modules/_ssl.c:2097,1
    - Dst: SSL_get_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:2101,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_ssl.c:2102,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2105
    functionName: _ssl__SSLSocket_version_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyUnicode_FromString
    - SSL_get_version
    - SSL_is_init_finished
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_version_impl(PySSLSocket *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/Python-3.8.3/Modules/_ssl.c:2119,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2125
    functionName: _ssl__SSLSocket_selected_npn_protocol_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - SSL_get0_next_proto_negotiated
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_npn_protocol_impl(PySSLSocket *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_alpn_selected
      Src: /src/Python-3.8.3/Modules/_ssl.c:2140,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2145
    functionName: _ssl__SSLSocket_selected_alpn_protocol_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - SSL_get0_alpn_selected
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_alpn_protocol_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_current_compression
      Src: /src/Python-3.8.3/Modules/_ssl.c:2164,1
    - Dst: COMP_get_type
      Src: /src/Python-3.8.3/Modules/_ssl.c:2165,1
    - Dst: OBJ_nid2sn
      Src: /src/Python-3.8.3/Modules/_ssl.c:2167,1
    - Dst: COMP_get_type
      Src: /src/Python-3.8.3/Modules/_ssl.c:2167,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/_ssl.c:2170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2172
    functionName: _ssl__SSLSocket_compression_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_current_compression
    - OBJ_nid2sn
    - COMP_get_type
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_compression_impl(PySSLSocket *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2177
    functionName: PySSL_get_context
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PySSLContext
    signature: PySSLContext *PySSL_get_context(PySSLSocket *self, void *closure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_ssl.c:2182,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2184,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2188,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2189,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/Python-3.8.3/Modules/_ssl.c:2190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PySSLSocket*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2198
    functionName: PySSL_set_context
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - SSL_set_SSL_CTX
    - PyObject_TypeCheck
    - PyErr_SetString
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: "int PySSL_set_context(PySSLSocket *self, PyObject *value,\n                                   void
      *closure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:2212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2213
    functionName: PySSL_get_server_side
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_get_server_side(PySSLSocket *self, void *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2218
    functionDepth: 1
    functionLinenumber: 2218
    functionLinenumberEnd: 2225
    functionName: PySSL_get_server_hostname
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_get_server_hostname(PySSLSocket *self, void *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:2238,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2241
    functionName: PySSL_get_owner
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyWeakref_GetObject
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_get_owner(PySSLSocket *self, void *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2246,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_ssl.c:2246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - c
    argTypes:
    - PySSLSocket*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2250
    functionName: PySSL_set_owner
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - Py_XSETREF
    - PyWeakref_NewRef
    linkageType: ''
    returnType: int
    signature: int PySSL_set_owner(PySSLSocket *self, PyObject *value, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2259,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2260,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PySSLSocket*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2263
    functionName: PySSL_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PySSL_traverse(PySSLSocket *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:2268,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:2269,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:2270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2272
    functionName: PySSL_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PySSL_clear(PySSLSocket *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:2278,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2279,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2280,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2281,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2282,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_ssl.c:2283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2274
    functionDepth: 1
    functionLinenumber: 2274
    functionLinenumberEnd: 2284
    functionName: PySSL_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    - SSL_free
    linkageType: ''
    returnType: void
    signature: void PySSL_dealloc(PySSLSocket *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/_ssl.c:2325,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:2326,1
    - Dst: poll
      Src: /src/Python-3.8.3/Modules/_ssl.c:2329,1
    - Dst: _PyIsSelectable_fd
      Src: /src/Python-3.8.3/Modules/_ssl.c:2333,1
    - Dst: _PyTime_AsTimeval_noraise
      Src: /src/Python-3.8.3/Modules/_ssl.c:2336,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/_ssl.c:2338,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/_ssl.c:2339,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ssl.c:2343,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2345,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - s
    - writing
    - timeout
    argTypes:
    - PySocketSockObject*
    - int
    - _PyTime_t
    assertStmts:
    - condition: (ms <= INT_MAX)
      pos:
        line_end: 2325
        line_start: 2325
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2354
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2354
    functionName: PySSL_select
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - select
    - FD_ZERO
    - poll
    - FD_SET
    - _PyTime_AsTimeval_noraise
    - _PyIsSelectable_fd
    - _PyTime_AsMilliseconds
    - assert
    linkageType: ''
    returnType: int
    signature: int PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/Python-3.8.3/Modules/_ssl.c:2374,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2380,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2384,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:2388,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2396,1
    - Dst: SSL_get_rbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2396,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2397,1
    - Dst: SSL_get_wbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2397,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2400,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2403,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2405,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2407,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2411,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2415,1
    - Dst: SSL_write
      Src: /src/Python-3.8.3/Modules/_ssl.c:2422,1
    - Dst: _PySSL_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:2423,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_ssl.c:2427,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2431,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2434,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2436,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2446,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2455,1
    - Dst: PySSL_SetError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2457,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:2458,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:2460,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2462,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:2463,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLSocket*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2366
    functionDepth: 3
    functionLinenumber: 2366
    functionLinenumberEnd: 2465
    functionName: _ssl__SSLSocket_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _setSSLError
    - Py_INCREF
    - GET_SOCKET_TIMEOUT
    - _PySSL_errno
    - GET_SOCKET
    - PyErr_CheckSignals
    - PySSL_ChainExceptions
    - SSL_get_rbio
    - _PyTime_GetMonotonicClock
    - SSL_get_wbio
    - SSL_write
    - BIO_set_nbio
    - PyErr_Format
    - PySSL_SetError
    - PyErr_SetString
    - PySSL_select
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_pending
      Src: /src/Python-3.8.3/Modules/_ssl.c:2481,1
    - Dst: _PySSL_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:2482,1
    - Dst: PySSL_SetError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2487,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2473
    functionDepth: 3
    functionLinenumber: 2473
    functionLinenumberEnd: 2490
    functionName: _ssl__SSLSocket_pending_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySSL_SetError
    - SSL_pending
    - _PySSL_errno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_pending_impl(PySSLSocket *self)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/Python-3.8.3/Modules/_ssl.c:2514,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2519,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2525,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2529,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:2533,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2537,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:2540,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2547,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2561,1
    - Dst: SSL_get_rbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2561,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2562,1
    - Dst: SSL_get_wbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2562,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2565,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2568,1
    - Dst: SSL_read
      Src: /src/Python-3.8.3/Modules/_ssl.c:2572,1
    - Dst: _PySSL_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:2573,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_ssl.c:2577,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2581,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2584,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2586,1
    - Dst: SSL_get_shutdown
      Src: /src/Python-3.8.3/Modules/_ssl.c:2588,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2597,1
    - Dst: PySSL_SetError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2607,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2614,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_ssl.c:2616,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:2620,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:2624,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2625,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2627,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 99
    argCount: 4
    argNames:
    - self
    - len
    - group_right_1
    - buffer
    argTypes:
    - PySSLSocket*
    - int
    - int
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2503
    functionDepth: 3
    functionLinenumber: 2503
    functionLinenumberEnd: 2629
    functionName: _ssl__SSLSocket_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_SOCKET_TIMEOUT
    - _PyBytes_Resize
    - BIO_set_nbio
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - _PySSL_errno
    - PyErr_CheckSignals
    - PySSL_ChainExceptions
    - SSL_get_rbio
    - _PyTime_GetMonotonicClock
    - PySSL_select
    - Py_XDECREF
    - _setSSLError
    - PyBytes_AS_STRING
    - GET_SOCKET
    - SSL_read
    - SSL_get_shutdown
    - SSL_get_wbio
    - PySSL_SetError
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLSocket_read_impl(PySSLSocket *self, int len,
      int group_right_1,\n                          Py_buffer *buffer)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GET_SOCKET
      Src: /src/Python-3.8.3/Modules/_ssl.c:2644,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2651,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2655,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2659,1
    - Dst: SSL_get_rbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2659,1
    - Dst: BIO_set_nbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2660,1
    - Dst: SSL_get_wbio
      Src: /src/Python-3.8.3/Modules/_ssl.c:2660,1
    - Dst: GET_SOCKET_TIMEOUT
      Src: /src/Python-3.8.3/Modules/_ssl.c:2663,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2666,1
    - Dst: SSL_set_read_ahead
      Src: /src/Python-3.8.3/Modules/_ssl.c:2679,1
    - Dst: SSL_shutdown
      Src: /src/Python-3.8.3/Modules/_ssl.c:2680,1
    - Dst: _PySSL_errno
      Src: /src/Python-3.8.3/Modules/_ssl.c:2681,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_ssl.c:2700,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2704,1
    - Dst: PySSL_select
      Src: /src/Python-3.8.3/Modules/_ssl.c:2706,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2712,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2715,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2720,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2729,1
    - Dst: PySSL_SetError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2730,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2742,1
    - Dst: PySSL_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_ssl.c:2743,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2637
    functionDepth: 3
    functionLinenumber: 2637
    functionLinenumberEnd: 2745
    functionName: _ssl__SSLSocket_shutdown_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - Py_INCREF
    - GET_SOCKET_TIMEOUT
    - SSL_shutdown
    - GET_SOCKET
    - _PySSL_errno
    - PySSL_ChainExceptions
    - SSL_get_rbio
    - _PyTime_GetMonotonicClock
    - SSL_get_wbio
    - BIO_set_nbio
    - PySSL_SetError
    - PyErr_SetString
    - PySSL_select
    - Py_XDECREF
    - SSL_set_read_ahead
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shutdown_impl(PySSLSocket *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_ssl.c:2766,1
    - Dst: SSL_session_reused
      Src: /src/Python-3.8.3/Modules/_ssl.c:2767,1
    - Dst: SSL_get_finished
      Src: /src/Python-3.8.3/Modules/_ssl.c:2769,1
    - Dst: SSL_get_peer_finished
      Src: /src/Python-3.8.3/Modules/_ssl.c:2773,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:2777,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:2789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - cb_type
    argTypes:
    - PySSLSocket*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2790
    functionName: _ssl__SSLSocket_get_channel_binding_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_peer_finished
    - PyBytes_FromStringAndSize
    - PyErr_Format
    - SSL_session_reused
    - strcmp
    - SSL_get_finished
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLSocket_get_channel_binding_impl(PySSLSocket *self,\n
      \                                        const char *cb_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_verify_client_post_handshake
      Src: /src/Python-3.8.3/Modules/_ssl.c:2803,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2805,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2798
    functionDepth: 3
    functionLinenumber: 2798
    functionLinenumberEnd: 2814
    functionName: _ssl__SSLSocket_verify_client_post_handshake_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_verify_client_post_handshake
    - _setSSLError
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_verify_client_post_handshake_impl(PySSLSocket *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2826,1
    - Dst: i2d_SSL_SESSION
      Src: /src/Python-3.8.3/Modules/_ssl.c:2831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2833,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:2836,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:2837,1
    - Dst: i2d_SSL_SESSION
      Src: /src/Python-3.8.3/Modules/_ssl.c:2841,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2842,1
    - Dst: d2i_SSL_SESSION
      Src: /src/Python-3.8.3/Modules/_ssl.c:2846,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:2850,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:2854,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - session
    argTypes:
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2818
    functionDepth: 1
    functionLinenumber: 2818
    functionLinenumberEnd: 2857
    functionName: _ssl_session_dup
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - i2d_SSL_SESSION
    - PyMem_Free
    - d2i_SSL_SESSION
    - PyErr_SetString
    - PyMem_Malloc
    linkageType: ''
    returnType: SSL_SESSION
    signature: 'SSL_SESSION *

      _ssl_session_dup(SSL_SESSION *session)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get0_session
      Src: /src/Python-3.8.3/Modules/_ssl.c:2870,1
    - Dst: _ssl_session_dup
      Src: /src/Python-3.8.3/Modules/_ssl.c:2874,1
    - Dst: SSL_get1_session
      Src: /src/Python-3.8.3/Modules/_ssl.c:2878,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:2883,1
    - Dst: SSL_SESSION_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:2885,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:2889,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:2891,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_ssl.c:2893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts:
    - condition: (self->ctx)
      pos:
        line_end: 2888
        line_start: 2888
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 2895
      start: 2860
    functionDepth: 2
    functionLinenumber: 2860
    functionLinenumberEnd: 2895
    functionName: PySSL_get_session
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get0_session
    - Py_INCREF
    - _ssl_session_dup
    - PyObject_GC_New
    - SSL_SESSION_free
    - SSL_get1_session
    - assert
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_get_session(PySSLSocket *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySSLSession_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:2906,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2907,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2913,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2918,1
    - Dst: SSL_is_init_finished
      Src: /src/Python-3.8.3/Modules/_ssl.c:2922,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:2923,1
    - Dst: _ssl_session_dup
      Src: /src/Python-3.8.3/Modules/_ssl.c:2929,1
    - Dst: SSL_set_session
      Src: /src/Python-3.8.3/Modules/_ssl.c:2932,1
    - Dst: SSL_SESSION_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:2934,1
    - Dst: SSL_set_session
      Src: /src/Python-3.8.3/Modules/_ssl.c:2936,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:2939,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PySSLSocket*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2897
    functionDepth: 3
    functionLinenumber: 2897
    functionLinenumberEnd: 2943
    functionName: PySSL_set_session
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - _setSSLError
    - PySSLSession_Check
    - _ssl_session_dup
    - SSL_is_init_finished
    - SSL_set_session
    - SSL_SESSION_free
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PySSL_set_session(PySSLSocket *self, PyObject *value,\n                             void
      *closure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_session_reused
      Src: /src/Python-3.8.3/Modules/_ssl.c:2952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSocket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2950
    functionDepth: 0
    functionLinenumber: 2950
    functionLinenumberEnd: 2957
    functionName: PySSL_get_session_reused
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_session_reused
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_get_session_reused(PySSLSocket *self, void *closure)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3052,1
    - Dst: SSL_CTX_get_verify_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:3061,1
    - Dst: SSL_CTX_set_verify
      Src: /src/Python-3.8.3/Modules/_ssl.c:3062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PySSLContext*
    - enum py_ssl_cert_requirements
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3064
      start: 3035
    functionDepth: 1
    functionLinenumber: 3035
    functionLinenumberEnd: 3064
    functionName: _set_verify_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_verify_callback
    - SSL_CTX_set_verify
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _set_verify_mode(PySSLContext *self, enum py_ssl_cert_requirements
      n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3088,1
    - Dst: TLSv1_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3088,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3091,1
    - Dst: TLSv1_1_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3091,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3093,1
    - Dst: TLSv1_2_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3093,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3097,1
    - Dst: SSLv3_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3097,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3101,1
    - Dst: SSLv2_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3101,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3104,1
    - Dst: TLS_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3104,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3106,1
    - Dst: TLS_client_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3106,1
    - Dst: SSL_CTX_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3108,1
    - Dst: TLS_server_method
      Src: /src/Python-3.8.3/Modules/_ssl.c:3108,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3114,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:3119,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:3123,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:3124,1
    - Dst: SSL_CTX_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3126,1
    - Dst: _set_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3150,1
    - Dst: _set_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3156,1
    - Dst: SSL_CTX_set_options
      Src: /src/Python-3.8.3/Modules/_ssl.c:3180,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/Python-3.8.3/Modules/_ssl.c:3189,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/Python-3.8.3/Modules/_ssl.c:3193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3196,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:3197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3198,1
    - Dst: SSLeay
      Src: /src/Python-3.8.3/Modules/_ssl.c:3211,1
    - Dst: SSL_CTX_set_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3214,1
    - Dst: SSL_CTX_set_ecdh_auto
      Src: /src/Python-3.8.3/Modules/_ssl.c:3225,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:3228,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/Python-3.8.3/Modules/_ssl.c:3229,1
    - Dst: EC_KEY_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3230,1
    - Dst: SSL_CTX_set_session_id_context
      Src: /src/Python-3.8.3/Modules/_ssl.c:3236,1
    - Dst: SSL_CTX_get0_param
      Src: /src/Python-3.8.3/Modules/_ssl.c:3240,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3244,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3246,1
    - Dst: SSL_CTX_set_post_handshake_auth
      Src: /src/Python-3.8.3/Modules/_ssl.c:3250,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 81
    argCount: 2
    argNames:
    - type
    - proto_version
    argTypes:
    - PyTypeObject*
    - int
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 3122
        line_start: 3122
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 3254
      start: 3073
    functionDepth: 3
    functionLinenumber: 3073
    functionLinenumberEnd: 3254
    functionName: _ssl__SSLContext_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - EC_KEY_new_by_curve_name
    - SSL_CTX_free
    - SSLv3_method
    - PyTypeObject*::tp_alloc
    - SSL_CTX_set_options
    - SSL_CTX_set_ecdh_auto
    - TLS_server_method
    - X509_VERIFY_PARAM_set_hostflags
    - assert
    - TLSv1_1_method
    - TLSv1_2_method
    - SSL_CTX_set_tmp_ecdh
    - _setSSLError
    - TLS_method
    - Py_DECREF
    - X509_VERIFY_PARAM_set_flags
    - SSLv2_method
    - SSL_CTX_set_mode
    - SSL_CTX_set_session_id_context
    - SSL_CTX_new
    - _set_verify_mode
    - TLS_client_method
    - EC_KEY_free
    - ERR_clear_error
    - TLSv1_method
    - SSL_CTX_set_post_handshake_auth
    - SSL_CTX_set_cipher_list
    - SSLeay
    - SSL_CTX_get0_param
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_impl(PyTypeObject *type, int proto_version)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:3260,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PySSLContext*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3256
    functionDepth: 1
    functionLinenumber: 3256
    functionLinenumberEnd: 3264
    functionName: context_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int context_traverse(PySSLContext *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:3270,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:3272,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:3274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3283
      start: 3266
    functionDepth: 1
    functionLinenumber: 3266
    functionLinenumberEnd: 3283
    functionName: context_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int context_clear(PySSLContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_ssl.c:3289,1
    - Dst: context_clear
      Src: /src/Python-3.8.3/Modules/_ssl.c:3290,1
    - Dst: SSL_CTX_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3291,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3293,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3296,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3285
    functionDepth: 2
    functionLinenumber: 3285
    functionLinenumberEnd: 3299
    functionName: context_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - Py_TYPE
    - PyMem_FREE
    - PyObject_GC_UnTrack
    - context_clear
    linkageType: ''
    returnType: void
    signature: void context_dealloc(PySSLContext *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/Python-3.8.3/Modules/_ssl.c:3311,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:3316,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - cipherlist
    argTypes:
    - PySSLContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3307
    functionDepth: 1
    functionLinenumber: 3307
    functionLinenumberEnd: 3322
    functionName: _ssl__SSLContext_set_ciphers_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - PyErr_SetString
    - SSL_CTX_set_cipher_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers_impl(PySSLContext *self, const char *cipherlist)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3334,1
    - Dst: SSL_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:3339,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:3341,1
    - Dst: SSL_get_ciphers
      Src: /src/Python-3.8.3/Modules/_ssl.c:3344,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:3346,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:3346,1
    - Dst: sk_SSL_CIPHER_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:3351,1
    - Dst: sk_SSL_CIPHER_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:3352,1
    - Dst: cipher_to_dict
      Src: /src/Python-3.8.3/Modules/_ssl.c:3353,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:3355,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:3358,1
    - Dst: SSL_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3329
    functionDepth: 3
    functionLinenumber: 3329
    functionLinenumberEnd: 3366
    functionName: _ssl__SSLContext_get_ciphers_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - sk_SSL_CIPHER_num
    - _setSSLError
    - cipher_to_dict
    - SSL_get_ciphers
    - Py_CLEAR
    - SSL_free
    - STACK_OF
    - sk_SSL_CIPHER_value
    - PyList_SET_ITEM
    - PyList_New
    - SSL_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ciphers_impl(PySSLContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_select_next_proto
      Src: /src/Python-3.8.3/Modules/_ssl.c:3386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - alpn
    - out
    - outlen
    - server_protocols
    - server_protocols_len
    - client_protocols
    - client_protocols_len
    argTypes:
    - int
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3371
    functionDepth: 0
    functionLinenumber: 3371
    functionLinenumberEnd: 3393
    functionName: do_protocol_selection
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_select_next_proto
    linkageType: ''
    returnType: int
    signature: "int do_protocol_selection(int alpn, unsigned char **out, unsigned
      char *outlen,\n                      const unsigned char *server_protocols,
      unsigned int server_protocols_len,\n                      const unsigned char
      *client_protocols, unsigned int client_protocols_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - s
    - data
    - len
    - args
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3398
    functionDepth: 0
    functionLinenumber: 3398
    functionLinenumberEnd: 3414
    functionName: _advertiseNPN_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _advertiseNPN_cb(SSL *s,\n                 const unsigned char
      **data, unsigned int *len,\n                 void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_protocol_selection
      Src: /src/Python-3.8.3/Modules/_ssl.c:3423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - server
    - server_len
    - args
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3416
    functionDepth: 1
    functionLinenumber: 3416
    functionLinenumberEnd: 3425
    functionName: _selectNPN_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - do_protocol_selection
    linkageType: ''
    returnType: int
    signature: "int _selectNPN_cb(SSL *s,\n              unsigned char **out, unsigned
      char *outlen,\n              const unsigned char *server, unsigned int server_len,\n
      \             void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3440,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:3441,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:3443,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ssl.c:3444,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:3449,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:3452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - self
    - protos
    argTypes:
    - PySSLContext*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3462
      start: 3434
    functionDepth: 1
    functionLinenumber: 3434
    functionLinenumberEnd: 3462
    functionName: _ssl__SSLContext__set_npn_protocols_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SSL_CTX_set_next_proto_select_cb
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - SSL_CTX_set_next_protos_advertised_cb
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext__set_npn_protocols_impl(PySSLContext
      *self,\n                                         Py_buffer *protos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_protocol_selection
      Src: /src/Python-3.8.3/Modules/_ssl.c:3472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - out
    - outlen
    - client_protocols
    - client_protocols_len
    - args
    argTypes:
    - SSL*
    - unsigned char**
    - unsigned char*
    - unsigned char*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3475
      start: 3465
    functionDepth: 1
    functionLinenumber: 3465
    functionLinenumberEnd: 3475
    functionName: _selectALPN_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - do_protocol_selection
    linkageType: ''
    returnType: int
    signature: "int _selectALPN_cb(SSL *s,\n              const unsigned char **out,
      unsigned char *outlen,\n              const unsigned char *client_protocols,
      unsigned int client_protocols_len,\n              void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:3491,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3496,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:3497,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:3499,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ssl.c:3500,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/Python-3.8.3/Modules/_ssl.c:3503,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:3504,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:3505,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - protos
    argTypes:
    - PySSLContext*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3484
    functionDepth: 1
    functionLinenumber: 3484
    functionLinenumberEnd: 3513
    functionName: _ssl__SSLContext__set_alpn_protocols_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_alpn_protos
    - memcpy
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_SetString
    - SSL_CTX_set_alpn_select_cb
    - PyMem_Malloc
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext__set_alpn_protocols_impl(PySSLContext
      *self,\n                                          Py_buffer *protos)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3521,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3523,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3525,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3527,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3515
    functionDepth: 1
    functionLinenumber: 3515
    functionLinenumberEnd: 3532
    functionName: get_verify_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 3
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_get_verify_mode
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_verify_mode(PySSLContext *self, void *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3538,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3541,1
    - Dst: _set_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3534
    functionDepth: 2
    functionLinenumber: 3534
    functionLinenumberEnd: 3547
    functionName: set_verify_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - PyArg_Parse
    - _set_verify_mode
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int set_verify_mode(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get0_param
      Src: /src/Python-3.8.3/Modules/_ssl.c:3555,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3556,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3549
    functionDepth: 1
    functionLinenumber: 3549
    functionLinenumberEnd: 3558
    functionName: get_verify_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_param
    - X509_VERIFY_PARAM_get_flags
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_verify_flags(PySSLContext *self, void *c)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3566,1
    - Dst: SSL_CTX_get0_param
      Src: /src/Python-3.8.3/Modules/_ssl.c:3568,1
    - Dst: X509_VERIFY_PARAM_get_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3569,1
    - Dst: X509_VERIFY_PARAM_clear_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3573,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:3574,1
    - Dst: X509_VERIFY_PARAM_set_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3579,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:3580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3585
      start: 3560
    functionDepth: 3
    functionLinenumber: 3560
    functionLinenumberEnd: 3585
    functionName: set_verify_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - X509_VERIFY_PARAM_clear_flags
    - X509_VERIFY_PARAM_set_flags
    - X509_VERIFY_PARAM_get_flags
    - SSL_CTX_get0_param
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int set_verify_flags(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3600,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3610,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:3630,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:3644,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:3647,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - self
    - arg
    - what
    argTypes:
    - PySSLContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3591
    functionDepth: 1
    functionLinenumber: 3591
    functionLinenumberEnd: 3652
    functionName: set_min_max_proto_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_min_proto_version
    - PyArg_Parse
    - PyErr_Format
    - PyErr_SetString
    - SSL_CTX_set_max_proto_version
    linkageType: ''
    returnType: int
    signature: int set_min_max_proto_version(PySSLContext *self, PyObject *arg, int
      what)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_ctrl
      Src: /src/Python-3.8.3/Modules/_ssl.c:3657,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3662
      start: 3654
    functionDepth: 0
    functionLinenumber: 3654
    functionLinenumberEnd: 3662
    functionName: get_minimum_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_ctrl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_minimum_version(PySSLContext *self, void *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_max_proto_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:3667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3664
    functionDepth: 2
    functionLinenumber: 3664
    functionLinenumberEnd: 3668
    functionName: set_minimum_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - set_min_max_proto_version
    linkageType: ''
    returnType: int
    signature: int set_minimum_version(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_ctrl
      Src: /src/Python-3.8.3/Modules/_ssl.c:3673,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3670
    functionDepth: 0
    functionLinenumber: 3670
    functionLinenumberEnd: 3678
    functionName: get_maximum_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_ctrl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_maximum_version(PySSLContext *self, void *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_min_max_proto_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:3683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3680
    functionDepth: 2
    functionLinenumber: 3680
    functionLinenumberEnd: 3684
    functionName: set_maximum_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - set_min_max_proto_version
    linkageType: ''
    returnType: int
    signature: int set_maximum_version(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_ssl.c:3691,1
    - Dst: SSL_CTX_get_num_tickets
      Src: /src/Python-3.8.3/Modules/_ssl.c:3691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3688
    functionDepth: 1
    functionLinenumber: 3688
    functionLinenumberEnd: 3692
    functionName: get_num_tickets
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_get_num_tickets
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_num_tickets(PySSLContext *self, void *c)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3698,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3701,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3705,1
    - Dst: SSL_CTX_set_num_tickets
      Src: /src/Python-3.8.3/Modules/_ssl.c:3709,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3714
      start: 3694
    functionDepth: 1
    functionLinenumber: 3694
    functionLinenumberEnd: 3714
    functionName: set_num_tickets
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_num_tickets
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int set_num_tickets(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3723,1
    - Dst: SSL_CTX_get_options
      Src: /src/Python-3.8.3/Modules/_ssl.c:3723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3720
    functionDepth: 0
    functionLinenumber: 3720
    functionLinenumberEnd: 3724
    functionName: get_options
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - SSL_CTX_get_options
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_options(PySSLContext *self, void *c)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3730,1
    - Dst: SSL_CTX_get_options
      Src: /src/Python-3.8.3/Modules/_ssl.c:3732,1
    - Dst: SSL_CTX_clear_options
      Src: /src/Python-3.8.3/Modules/_ssl.c:3737,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3739,1
    - Dst: SSL_CTX_set_options
      Src: /src/Python-3.8.3/Modules/_ssl.c:3745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3747
    functionName: set_options
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - SSL_CTX_clear_options
    - SSL_CTX_get_options
    - SSL_CTX_set_options
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int set_options(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3749
    functionDepth: 1
    functionLinenumber: 3749
    functionLinenumberEnd: 3753
    functionName: get_host_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_host_flags(PySSLContext *self, void *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3761,1
    - Dst: SSL_CTX_get0_param
      Src: /src/Python-3.8.3/Modules/_ssl.c:3764,1
    - Dst: X509_VERIFY_PARAM_set_hostflags
      Src: /src/Python-3.8.3/Modules/_ssl.c:3766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3768
      start: 3755
    functionDepth: 1
    functionLinenumber: 3755
    functionLinenumberEnd: 3768
    functionName: set_host_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get0_param
    - PyArg_Parse
    - X509_VERIFY_PARAM_set_hostflags
    linkageType: ''
    returnType: int
    signature: int set_host_flags(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3770
    functionDepth: 1
    functionLinenumber: 3770
    functionLinenumberEnd: 3774
    functionName: get_check_hostname
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_check_hostname(PySSLContext *self, void *c)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:3780,1
    - Dst: SSL_CTX_get_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3783,1
    - Dst: _set_verify_mode
      Src: /src/Python-3.8.3/Modules/_ssl.c:3785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3776
    functionDepth: 2
    functionLinenumber: 3776
    functionLinenumberEnd: 3791
    functionName: set_check_hostname
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_verify_mode
    - PyArg_Parse
    - _set_verify_mode
    linkageType: ''
    returnType: int
    signature: int set_check_hostname(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3793
    functionDepth: 1
    functionLinenumber: 3793
    functionLinenumberEnd: 3800
    functionName: get_post_handshake_auth
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_post_handshake_auth(PySSLContext *self, void *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3806,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_ssl.c:3809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3803
    functionDepth: 1
    functionLinenumber: 3803
    functionLinenumberEnd: 3820
    functionName: set_post_handshake_auth
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int set_post_handshake_auth(PySSLContext *self, PyObject *arg, void
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:3825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3826
      start: 3823
    functionDepth: 0
    functionLinenumber: 3823
    functionLinenumberEnd: 3826
    functionName: get_protocol
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_protocol(PySSLContext *self, void *c)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:3848,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_ssl.c:3849,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:3853,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3854,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:3855,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:3856,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3857,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:3858,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:3859,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:3860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3862,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:3867,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:3872,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:3873,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3875,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ssl.c:3879,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3882,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3886,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - pw_info
    - password
    - bad_type_error
    argTypes:
    - _PySSLPasswordInfo*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3888
      start: 3836
    functionDepth: 1
    functionLinenumber: 3836
    functionLinenumberEnd: 3888
    functionName: _pwinfo_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - PyByteArray_AS_STRING
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyMem_Free
    - Py_XDECREF
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: int
    signature: "int _pwinfo_set(_PySSLPasswordInfo *pw_info, PyObject* password,\n
      \           const char *bad_type_error)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3896,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ssl.c:3899,1
    - Dst: _pwinfo_set
      Src: /src/Python-3.8.3/Modules/_ssl.c:3906,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:3910,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:3914,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3919,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ssl.c:3920,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:3924,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3925,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - buf
    - size
    - rwflag
    - userdata
    argTypes:
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3928
      start: 3890
    functionDepth: 2
    functionLinenumber: 3890
    functionLinenumberEnd: 3928
    functionName: _password_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - memcpy
    - PySSL_BEGIN_ALLOW_THREADS_S
    - PySSL_END_ALLOW_THREADS_S
    - PyErr_Format
    - _pwinfo_set
    - _PyObject_CallNoArg
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _password_callback(char *buf, int size, int rwflag, void *userdata)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_default_passwd_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:3944,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/Python-3.8.3/Modules/_ssl.c:3945,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:3950,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ssl.c:3953,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ssl.c:3954,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3955,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ssl.c:3960,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ssl.c:3961,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:3962,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:3968,1
    - Dst: _pwinfo_set
      Src: /src/Python-3.8.3/Modules/_ssl.c:3970,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:3974,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/Python-3.8.3/Modules/_ssl.c:3975,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3977,1
    - Dst: SSL_CTX_use_certificate_chain_file
      Src: /src/Python-3.8.3/Modules/_ssl.c:3978,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:3979,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3980,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:3983,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:3987,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_ssl.c:3988,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:3991,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3995,1
    - Dst: SSL_CTX_use_PrivateKey_file
      Src: /src/Python-3.8.3/Modules/_ssl.c:3996,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:3997,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:3999,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:4000,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:4001,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4004,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4008,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_ssl.c:4009,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4012,1
    - Dst: PySSL_BEGIN_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:4016,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/Python-3.8.3/Modules/_ssl.c:4017,1
    - Dst: PySSL_END_ALLOW_THREADS_S
      Src: /src/Python-3.8.3/Modules/_ssl.c:4018,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4020,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:4023,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/Python-3.8.3/Modules/_ssl.c:4024,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4025,1
    - Dst: SSL_CTX_set_default_passwd_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:4029,1
    - Dst: SSL_CTX_set_default_passwd_cb_userdata
      Src: /src/Python-3.8.3/Modules/_ssl.c:4030,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4031,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4032,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4033,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 4
    argNames:
    - self
    - certfile
    - keyfile
    - password
    argTypes:
    - PySSLContext*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4035
      start: 3938
    functionDepth: 3
    functionLinenumber: 3938
    functionLinenumberEnd: 4035
    functionName: _ssl__SSLContext_load_cert_chain_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_check_private_key
    - Py_CLEAR
    - PySSL_BEGIN_ALLOW_THREADS_S
    - SSL_CTX_set_default_passwd_cb_userdata
    - SSL_CTX_use_PrivateKey_file
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - _setSSLError
    - PyErr_SetFromErrno
    - SSL_CTX_set_default_passwd_cb
    - PyMem_Free
    - SSL_CTX_use_certificate_chain_file
    - PyBytes_AS_STRING
    - SSL_CTX_get_default_passwd_cb
    - PyUnicode_FSConverter
    - ERR_clear_error
    - PyCallable_Check
    - SSL_CTX_get_default_passwd_cb_userdata
    - PySSL_END_ALLOW_THREADS_S
    - PyErr_SetString
    - _pwinfo_set
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_load_cert_chain_impl(PySSLContext *self,
      PyObject *certfile,\n                                      PyObject *keyfile,
      PyObject *password)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4047,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4050,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4054,1
    - Dst: BIO_new_mem_buf
      Src: /src/Python-3.8.3/Modules/_ssl.c:4059,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4061,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/Python-3.8.3/Modules/_ssl.c:4065,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4066,1
    - Dst: d2i_X509_bio
      Src: /src/Python-3.8.3/Modules/_ssl.c:4073,1
    - Dst: PEM_read_bio_X509
      Src: /src/Python-3.8.3/Modules/_ssl.c:4075,1
    - Dst: SSL_CTX_get_default_passwd_cb
      Src: /src/Python-3.8.3/Modules/_ssl.c:4076,1
    - Dst: SSL_CTX_get_default_passwd_cb_userdata
      Src: /src/Python-3.8.3/Modules/_ssl.c:4077,1
    - Dst: X509_STORE_add_cert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4083,1
    - Dst: X509_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4084,1
    - Dst: ERR_peek_last_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4086,1
    - Dst: ERR_GET_LIB
      Src: /src/Python-3.8.3/Modules/_ssl.c:4087,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:4088,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4090,1
    - Dst: ERR_peek_last_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4098,1
    - Dst: ERR_GET_LIB
      Src: /src/Python-3.8.3/Modules/_ssl.c:4101,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:4102,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4104,1
    - Dst: ERR_GET_LIB
      Src: /src/Python-3.8.3/Modules/_ssl.c:4108,1
    - Dst: ERR_GET_REASON
      Src: /src/Python-3.8.3/Modules/_ssl.c:4109,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4111,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4114,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4118,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - self
    - data
    - len
    - filetype
    argTypes:
    - PySSLContext*
    - void*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (store != NULL)
      pos:
        line_end: 4065
        line_start: 4065
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - condition: (filetype == SSL_FILETYPE_ASN1 || filetype == SSL_FILETYPE_PEM)
      pos:
        line_end: 4046
        line_start: 4046
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4120
      start: 4039
    functionDepth: 3
    functionLinenumber: 4039
    functionLinenumberEnd: 4120
    functionName: _add_ca_certs
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - ERR_clear_error
    - _setSSLError
    - PEM_read_bio_X509
    - SSL_CTX_get_cert_store
    - ERR_GET_LIB
    - SSL_CTX_get_default_passwd_cb_userdata
    - X509_free
    - d2i_X509_bio
    - PyErr_SetString
    - BIO_new_mem_buf
    - ERR_GET_REASON
    - assert
    - ERR_peek_last_error
    - SSL_CTX_get_default_passwd_cb
    - X509_STORE_add_cert
    linkageType: ''
    returnType: int
    signature: "int _add_ca_certs(PySSLContext *self, void *data, Py_ssize_t len,\n
      \             int filetype)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4151,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ssl.c:4155,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ssl.c:4156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4157,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ssl.c:4162,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ssl.c:4163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4164,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:4172,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4173,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ssl.c:4175,1
    - Dst: _add_ca_certs
      Src: /src/Python-3.8.3/Modules/_ssl.c:4180,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:4181,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ssl.c:4182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4184,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_ssl.c:4189,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_ssl.c:4191,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_ssl.c:4194,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ssl.c:4195,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4196,1
    - Dst: _add_ca_certs
      Src: /src/Python-3.8.3/Modules/_ssl.c:4201,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ssl.c:4202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4209,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:4219,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:4221,1
    - Dst: SSL_CTX_load_verify_locations
      Src: /src/Python-3.8.3/Modules/_ssl.c:4223,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4228,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_ssl.c:4229,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4232,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4242,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4243,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 99
    argCount: 4
    argNames:
    - self
    - cafile
    - capath
    - cadata
    argTypes:
    - PySSLContext*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4249
      start: 4131
    functionDepth: 4
    functionLinenumber: 4131
    functionLinenumberEnd: 4249
    functionName: _ssl__SSLContext_load_verify_locations_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _add_ca_certs
    - ERR_clear_error
    - _setSSLError
    - Py_DECREF
    - PyObject_CheckBuffer
    - PyUnicode_AsASCIIString
    - PyErr_SetFromErrno
    - PyBuffer_IsContiguous
    - PyBytes_GET_SIZE
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - Py_XDECREF
    - PyUnicode_FSConverter
    - SSL_CTX_load_verify_locations
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext_load_verify_locations_impl(PySSLContext
      *self,\n                                            PyObject *cafile,\n                                            PyObject
      *capath,\n                                            PyObject *cadata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_fopen_obj
      Src: /src/Python-3.8.3/Modules/_ssl.c:4265,1
    - Dst: PEM_read_DHparams
      Src: /src/Python-3.8.3/Modules/_ssl.c:4271,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_ssl.c:4272,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:4276,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:4277,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4280,1
    - Dst: SSL_CTX_set_tmp_dh
      Src: /src/Python-3.8.3/Modules/_ssl.c:4284,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4285,1
    - Dst: DH_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - filepath
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4258
    functionDepth: 3
    functionLinenumber: 4258
    functionLinenumberEnd: 4288
    functionName: _ssl__SSLContext_load_dh_params
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - _setSSLError
    - _Py_fopen_obj
    - PEM_read_DHparams
    - DH_free
    - SSL_CTX_set_tmp_dh
    - fclose
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_dh_params(PySSLContext *self, PyObject *filepath)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:4313,1
    - Dst: newPySSLSocket
      Src: /src/Python-3.8.3/Modules/_ssl.c:4317,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - self
    - sock
    - server_side
    - hostname_obj
    - owner
    - session
    argTypes:
    - PySSLContext*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4301
    functionDepth: 5
    functionLinenumber: 4301
    functionLinenumberEnd: 4324
    functionName: _ssl__SSLContext__wrap_socket_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyMem_Free
    - newPySSLSocket
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext__wrap_socket_impl(PySSLContext *self,
      PyObject *sock,\n                                   int server_side, PyObject
      *hostname_obj,\n                                   PyObject *owner, PyObject
      *session)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_ssl.c:4351,1
    - Dst: newPySSLSocket
      Src: /src/Python-3.8.3/Modules/_ssl.c:4355,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 7
    argNames:
    - self
    - incoming
    - outgoing
    - server_side
    - hostname_obj
    - owner
    - session
    argTypes:
    - PySSLContext*
    - PySSLMemoryBIO*
    - PySSLMemoryBIO*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 4338
    functionDepth: 5
    functionLinenumber: 4338
    functionLinenumberEnd: 4361
    functionName: _ssl__SSLContext__wrap_bio_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyMem_Free
    - newPySSLSocket
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_ssl__SSLContext__wrap_bio_impl(PySSLContext *self, PySSLMemoryBIO
      *incoming,\n                                PySSLMemoryBIO *outgoing, int server_side,\n
      \                               PyObject *hostname_obj, PyObject *owner,\n                                PyObject
      *session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:4372,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4385,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4386,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4387,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4388,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4389,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4390,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4391,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4392,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4393,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4394,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4395,1
    - Dst: ADD_STATS
      Src: /src/Python-3.8.3/Modules/_ssl.c:4396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4367
    functionDepth: 1
    functionLinenumber: 4367
    functionLinenumberEnd: 4405
    functionName: _ssl__SSLContext_session_stats_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - ADD_STATS
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_session_stats_impl(PySSLContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SSL_NAME
    - ','
    - KEY_NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4376
    functionDepth: 0
    functionLinenumber: 4376
    functionLinenumberEnd: 4384
    functionName: ADD_STATS
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_STATS(SSL_NAME, KEY_NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_default_verify_paths
      Src: /src/Python-3.8.3/Modules/_ssl.c:4415,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4420
      start: 4411
    functionDepth: 3
    functionLinenumber: 4411
    functionLinenumberEnd: 4420
    functionName: _ssl__SSLContext_set_default_verify_paths_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setSSLError
    - SSL_CTX_set_default_verify_paths
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_default_verify_paths_impl(PySSLContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ssl.c:4438,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4440,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:4440,1
    - Dst: OBJ_sn2nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:4441,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:4441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4442,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:4444,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/Python-3.8.3/Modules/_ssl.c:4448,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4450,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/Python-3.8.3/Modules/_ssl.c:4453,1
    - Dst: EC_KEY_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(name_bytes))
      pos:
        line_end: 4439
        line_start: 4439
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4456
      start: 4430
    functionDepth: 3
    functionLinenumber: 4430
    functionLinenumberEnd: 4456
    functionName: _ssl__SSLContext_set_ecdh_curve
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - OBJ_sn2nid
    - SSL_CTX_set_tmp_ecdh
    - _setSSLError
    - Py_DECREF
    - EC_KEY_new_by_curve_name
    - PyBytes_Check
    - PyErr_Format
    - PyBytes_AS_STRING
    - assert
    - EC_KEY_free
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ecdh_curve(PySSLContext *self, PyObject *name)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_servername
      Src: /src/Python-3.8.3/Modules/_ssl.c:4469,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ssl.c:4470,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ssl.c:4475,1
    - Dst: SSL_get_app_data
      Src: /src/Python-3.8.3/Modules/_ssl.c:4479,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4480,1
    - Dst: PySSLSocket_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:4480,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:4491,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:4493,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4497,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ssl.c:4502,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4509,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ssl.c:4511,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:4517,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4518,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ssl.c:4520,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ssl.c:4523,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4526,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4528,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ssl.c:4531,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:4542,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ssl.c:4543,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ssl.c:4544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4549,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ssl.c:4552,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4556,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ssl.c:4559,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 3
    argNames:
    - s
    - al
    - args
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts:
    - condition: (PySSLSocket_Check(ssl))
      pos:
        line_end: 4479
        line_start: 4479
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4561
      start: 4460
    functionDepth: 1
    functionLinenumber: 4460
    functionLinenumberEnd: 4561
    functionName: _servername_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyLong_AsLong
    - Py_DECREF
    - PyErr_Occurred
    - Py_INCREF
    - PyGILState_Release
    - SSL_get_servername
    - PyErr_WriteUnraisable
    - PySSLSocket_Check
    - PyWeakref_GetObject
    - PyObject_CallFunctionObjArgs
    - PyBytes_FromString
    - assert
    - SSL_get_app_data
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: int
    signature: int _servername_callback(SSL *s, int *al, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4564
    functionDepth: 1
    functionLinenumber: 4564
    functionLinenumberEnd: 4573
    functionName: get_sni_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_sni_callback(PySSLContext *self, void *c)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4579,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:4584,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:4586,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:4589,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:4590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4591,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4595,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:4597,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/Python-3.8.3/Modules/_ssl.c:4598,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4575
    functionDepth: 1
    functionLinenumber: 4575
    functionLinenumberEnd: 4608
    functionName: set_sni_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyCallable_Check
    - Py_INCREF
    - SSL_CTX_set_tlsext_servername_callback
    - PyErr_SetString
    - SSL_CTX_set_tlsext_servername_arg
    linkageType: ''
    returnType: int
    signature: int set_sni_callback(PySSLContext *self, PyObject *arg, void *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4634,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/Python-3.8.3/Modules/_ssl.c:4638,1
    - Dst: X509_STORE_get0_objects
      Src: /src/Python-3.8.3/Modules/_ssl.c:4639,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:4640,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:4641,1
    - Dst: X509_OBJECT_get_type
      Src: /src/Python-3.8.3/Modules/_ssl.c:4642,1
    - Dst: X509_check_ca
      Src: /src/Python-3.8.3/Modules/_ssl.c:4645,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/Python-3.8.3/Modules/_ssl.c:4645,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:4659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4629
    functionDepth: 1
    functionLinenumber: 4629
    functionLinenumberEnd: 4661
    functionName: _ssl__SSLContext_cert_store_stats_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_get0_X509
    - Py_BuildValue
    - STACK_OF
    - SSL_CTX_get_cert_store
    - X509_OBJECT_get_type
    - sk_X509_OBJECT_value
    - X509_STORE_get0_objects
    - sk_X509_OBJECT_num
    - X509_check_ca
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_cert_store_stats_impl(PySSLContext *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4681,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:4685,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/Python-3.8.3/Modules/_ssl.c:4689,1
    - Dst: X509_STORE_get0_objects
      Src: /src/Python-3.8.3/Modules/_ssl.c:4690,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/Python-3.8.3/Modules/_ssl.c:4691,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/Python-3.8.3/Modules/_ssl.c:4695,1
    - Dst: X509_OBJECT_get_type
      Src: /src/Python-3.8.3/Modules/_ssl.c:4696,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/Python-3.8.3/Modules/_ssl.c:4701,1
    - Dst: X509_check_ca
      Src: /src/Python-3.8.3/Modules/_ssl.c:4702,1
    - Dst: _certificate_to_der
      Src: /src/Python-3.8.3/Modules/_ssl.c:4706,1
    - Dst: _decode_certificate
      Src: /src/Python-3.8.3/Modules/_ssl.c:4708,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_ssl.c:4713,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:4716,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4721,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4722,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - binary_form
    argTypes:
    - PySSLContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4724
      start: 4676
    functionDepth: 8
    functionLinenumber: 4676
    functionLinenumberEnd: 4724
    functionName: _ssl__SSLContext_get_ca_certs_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - X509_OBJECT_get0_X509
    - Py_CLEAR
    - STACK_OF
    - SSL_CTX_get_cert_store
    - X509_OBJECT_get_type
    - sk_X509_OBJECT_value
    - X509_STORE_get0_objects
    - PyList_Append
    - sk_X509_OBJECT_num
    - X509_check_ca
    - _decode_certificate
    - _certificate_to_der
    - PyList_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ca_certs_impl(PySSLContext *self, int binary_form)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/Python-3.8.3/Modules/_ssl.c:4845,1
    - Dst: BIO_s_mem
      Src: /src/Python-3.8.3/Modules/_ssl.c:4845,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4847,1
    - Dst: BIO_set_retry_read
      Src: /src/Python-3.8.3/Modules/_ssl.c:4854,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/Python-3.8.3/Modules/_ssl.c:4855,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl.c:4857,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:4858,1
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4860,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 4856
        line_start: 4856
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    constantsTouched: []
    func_position:
      end: 4867
      start: 4838
    functionDepth: 1
    functionLinenumber: 4838
    functionLinenumberEnd: 4867
    functionName: _ssl_MemoryBIO_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - BIO_set_mem_eof_return
    - PyTypeObject*::tp_alloc
    - BIO_set_retry_read
    - PyErr_SetString
    - assert
    - BIO_s_mem
    - BIO_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_impl(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:4872,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ssl.c:4873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4874
      start: 4869
    functionDepth: 1
    functionLinenumber: 4869
    functionLinenumberEnd: 4874
    functionName: memory_bio_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void memory_bio_dealloc(PySSLMemoryBIO *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_ssl.c:4879,1
    - Dst: BIO_ctrl_pending
      Src: /src/Python-3.8.3/Modules/_ssl.c:4879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLMemoryBIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4876
    functionDepth: 1
    functionLinenumber: 4876
    functionLinenumberEnd: 4880
    functionName: memory_bio_get_pending
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_ctrl_pending
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_bio_get_pending(PySSLMemoryBIO *self, void *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:4888,1
    - Dst: BIO_ctrl_pending
      Src: /src/Python-3.8.3/Modules/_ssl.c:4888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLMemoryBIO*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4890
      start: 4885
    functionDepth: 1
    functionLinenumber: 4885
    functionLinenumberEnd: 4890
    functionName: memory_bio_get_eof
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - BIO_ctrl_pending
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_bio_get_eof(PySSLMemoryBIO *self, void *c)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_ssl.c:4915,1
    - Dst: BIO_ctrl_pending
      Src: /src/Python-3.8.3/Modules/_ssl.c:4915,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:4919,1
    - Dst: BIO_read
      Src: /src/Python-3.8.3/Modules/_ssl.c:4923,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:4923,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:4925,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4926,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_ssl.c:4932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - PySSLMemoryBIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4936
      start: 4908
    functionDepth: 3
    functionLinenumber: 4908
    functionLinenumberEnd: 4936
    functionName: _ssl_MemoryBIO_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _setSSLError
    - Py_DECREF
    - Py_MIN
    - BIO_ctrl_pending
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - BIO_read
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_read_impl(PySSLMemoryBIO *self, int len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:4955,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:4961,1
    - Dst: BIO_write
      Src: /src/Python-3.8.3/Modules/_ssl.c:4966,1
    - Dst: _setSSLError
      Src: /src/Python-3.8.3/Modules/_ssl.c:4968,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:4972,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - PySSLMemoryBIO*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4973
      start: 4948
    functionDepth: 3
    functionLinenumber: 4948
    functionLinenumberEnd: 4973
    functionName: _ssl_MemoryBIO_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _setSSLError
    - PyErr_Format
    - PyErr_SetString
    - BIO_write
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write_impl(PySSLMemoryBIO *self, Py_buffer *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIO_clear_retry_flags
      Src: /src/Python-3.8.3/Modules/_ssl.c:4990,1
    - Dst: BIO_set_mem_eof_return
      Src: /src/Python-3.8.3/Modules/_ssl.c:4991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLMemoryBIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4994
      start: 4983
    functionDepth: 0
    functionLinenumber: 4983
    functionLinenumberEnd: 4994
    functionName: _ssl_MemoryBIO_write_eof_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - BIO_set_mem_eof_return
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write_eof_impl(PySSLMemoryBIO *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_ssl.c:5061,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5062,1
    - Dst: SSL_SESSION_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5064,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_ssl.c:5066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5067
      start: 5057
    functionDepth: 1
    functionLinenumber: 5057
    functionLinenumberEnd: 5067
    functionName: PySSLSession_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - SSL_SESSION_free
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void PySSLSession_dealloc(PySSLSession *self)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_ssl.c:5075,1
    - Dst: PySSLSession_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:5079,1
    - Dst: PySSLSession_Check
      Src: /src/Python-3.8.3/Modules/_ssl.c:5079,1
    - Dst: SSL_SESSION_get_id
      Src: /src/Python-3.8.3/Modules/_ssl.c:5088,1
    - Dst: SSL_SESSION_get_id
      Src: /src/Python-3.8.3/Modules/_ssl.c:5090,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_ssl.c:5093,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Modules/_ssl.c:5121,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5124
      start: 5069
    functionDepth: 1
    functionLinenumber: 5069
    functionLinenumberEnd: 5124
    functionName: PySSLSession_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySSLSession_Check
    - PyErr_BadArgument
    - PyErr_BadInternalCall
    - SSL_SESSION_get_id
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_richcompare(PyObject *left, PyObject *right, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ssl.c:5129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PySSLSession*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5126
    functionDepth: 1
    functionLinenumber: 5126
    functionLinenumberEnd: 5131
    functionName: PySSLSession_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PySSLSession_traverse(PySSLSession *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySSLSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5138
      start: 5133
    functionDepth: 1
    functionLinenumber: 5133
    functionLinenumberEnd: 5138
    functionName: PySSLSession_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PySSLSession_clear(PySSLSession *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5143,1
    - Dst: SSL_SESSION_get_time
      Src: /src/Python-3.8.3/Modules/_ssl.c:5143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSession*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5144
      start: 5141
    functionDepth: 0
    functionLinenumber: 5141
    functionLinenumberEnd: 5144
    functionName: PySSLSession_get_time
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_SESSION_get_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_get_time(PySSLSession *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5152,1
    - Dst: SSL_SESSION_get_timeout
      Src: /src/Python-3.8.3/Modules/_ssl.c:5152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSession*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5153
      start: 5150
    functionDepth: 0
    functionLinenumber: 5150
    functionLinenumberEnd: 5153
    functionName: PySSLSession_get_timeout
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SSL_SESSION_get_timeout
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_get_timeout(PySSLSession *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_ticket_lifetime_hint
      Src: /src/Python-3.8.3/Modules/_ssl.c:5161,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSession*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5159
    functionDepth: 1
    functionLinenumber: 5159
    functionLinenumberEnd: 5163
    functionName: PySSLSession_get_ticket_lifetime_hint
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_get_ticket_lifetime_hint
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_get_ticket_lifetime_hint(PySSLSession *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_get_id
      Src: /src/Python-3.8.3/Modules/_ssl.c:5173,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:5174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSession*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5175
      start: 5169
    functionDepth: 1
    functionLinenumber: 5169
    functionLinenumberEnd: 5175
    functionName: PySSLSession_get_session_id
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - SSL_SESSION_get_id
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_get_session_id(PySSLSession *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SESSION_has_ticket
      Src: /src/Python-3.8.3/Modules/_ssl.c:5183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PySSLSession*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5188
      start: 5181
    functionDepth: 1
    functionLinenumber: 5181
    functionLinenumberEnd: 5188
    functionName: PySSLSession_get_has_ticket
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_SESSION_has_ticket
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSLSession_get_has_ticket(PySSLSession *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_ssl.c:5265,1
    - Dst: RAND_add
      Src: /src/Python-3.8.3/Modules/_ssl.c:5266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - module
    - view
    - entropy
    argTypes:
    - PyObject*
    - Py_buffer*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5271
      start: 5255
    functionDepth: 1
    functionLinenumber: 5255
    functionLinenumberEnd: 5271
    functionName: _ssl_RAND_add_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - RAND_add
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_add_impl(PyObject *module, Py_buffer *view, double entropy)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5283,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:5287,1
    - Dst: RAND_pseudo_bytes
      Src: /src/Python-3.8.3/Modules/_ssl.c:5291,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:5291,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:5293,1
    - Dst: RAND_bytes
      Src: /src/Python-3.8.3/Modules/_ssl.c:5296,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ssl.c:5296,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5300,1
    - Dst: ERR_get_error
      Src: /src/Python-3.8.3/Modules/_ssl.c:5302,1
    - Dst: ERR_reason_error_string
      Src: /src/Python-3.8.3/Modules/_ssl.c:5303,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:5304,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:5306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - len
    - pseudo
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5310
      start: 5273
    functionDepth: 1
    functionLinenumber: 5273
    functionLinenumberEnd: 5310
    functionName: PySSL_RAND
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - RAND_bytes
    - RAND_pseudo_bytes
    - ERR_get_error
    - PyErr_SetObject
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySSL_RAND(int len, int pseudo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSL_RAND
      Src: /src/Python-3.8.3/Modules/_ssl.c:5324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5325
      start: 5320
    functionDepth: 2
    functionLinenumber: 5320
    functionLinenumberEnd: 5325
    functionName: _ssl_RAND_bytes_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySSL_RAND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_bytes_impl(PyObject *module, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySSL_RAND
      Src: /src/Python-3.8.3/Modules/_ssl.c:5342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5343
      start: 5338
    functionDepth: 2
    functionLinenumber: 5338
    functionLinenumberEnd: 5343
    functionName: _ssl_RAND_pseudo_bytes_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PySSL_RAND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_pseudo_bytes_impl(PyObject *module, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5358,1
    - Dst: RAND_status
      Src: /src/Python-3.8.3/Modules/_ssl.c:5358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5359
      start: 5354
    functionDepth: 0
    functionLinenumber: 5354
    functionLinenumberEnd: 5359
    functionName: _ssl_RAND_status_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - RAND_status
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_status_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_egd
      Src: /src/Python-3.8.3/Modules/_ssl.c:5378,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5378,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5379,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5381,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5387
      start: 5374
    functionDepth: 1
    functionLinenumber: 5374
    functionLinenumberEnd: 5387
    functionName: _ssl_RAND_egd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyBytes_AsString
    - RAND_egd
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_egd_impl(PyObject *module, PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT
      Src: /src/Python-3.8.3/Modules/_ssl.c:5419,1
    - Dst: X509_get_default_cert_file_env
      Src: /src/Python-3.8.3/Modules/_ssl.c:5419,1
    - Dst: CONVERT
      Src: /src/Python-3.8.3/Modules/_ssl.c:5420,1
    - Dst: X509_get_default_cert_file
      Src: /src/Python-3.8.3/Modules/_ssl.c:5420,1
    - Dst: CONVERT
      Src: /src/Python-3.8.3/Modules/_ssl.c:5421,1
    - Dst: X509_get_default_cert_dir_env
      Src: /src/Python-3.8.3/Modules/_ssl.c:5421,1
    - Dst: CONVERT
      Src: /src/Python-3.8.3/Modules/_ssl.c:5422,1
    - Dst: X509_get_default_cert_dir
      Src: /src/Python-3.8.3/Modules/_ssl.c:5422,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:5425,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5428,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5429,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5430,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5433
      start: 5401
    functionDepth: 1
    functionLinenumber: 5401
    functionLinenumberEnd: 5433
    functionName: _ssl_get_default_verify_paths_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_XDECREF
    - CONVERT
    - X509_get_default_cert_dir
    - X509_get_default_cert_file
    - X509_get_default_cert_file_env
    - X509_get_default_cert_dir_env
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_default_verify_paths_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - info
    - ','
    - target
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5418
      start: 5410
    functionDepth: 0
    functionLinenumber: 5410
    functionLinenumberEnd: 5418
    functionName: CONVERT
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT(info, target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_obj2nid
      Src: /src/Python-3.8.3/Modules/_ssl.c:5441,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:5443,1
    - Dst: OBJ_nid2sn
      Src: /src/Python-3.8.3/Modules/_ssl.c:5446,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_ssl.c:5447,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:5448,1
    - Dst: _asn1obj2py
      Src: /src/Python-3.8.3/Modules/_ssl.c:5448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - ASN1_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5449
      start: 5435
    functionDepth: 4
    functionLinenumber: 5435
    functionLinenumberEnd: 5449
    functionName: asn1obj2py
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 2
    functionsReached:
    - Py_BuildValue
    - _asn1obj2py
    - OBJ_obj2nid
    - OBJ_nid2ln
    - OBJ_nid2sn
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      asn1obj2py(ASN1_OBJECT *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OBJ_txt2obj
      Src: /src/Python-3.8.3/Modules/_ssl.c:5469,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:5471,1
    - Dst: asn1obj2py
      Src: /src/Python-3.8.3/Modules/_ssl.c:5474,1
    - Dst: ASN1_OBJECT_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - module
    - txt
    - name
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5477
      start: 5462
    functionDepth: 5
    functionLinenumber: 5462
    functionLinenumberEnd: 5477
    functionName: _ssl_txt2obj_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - OBJ_txt2obj
    - PyErr_Format
    - asn1obj2py
    - ASN1_OBJECT_free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_txt2obj_impl(PyObject *module, const char *txt, int name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5495,1
    - Dst: OBJ_nid2obj
      Src: /src/Python-3.8.3/Modules/_ssl.c:5498,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ssl.c:5500,1
    - Dst: asn1obj2py
      Src: /src/Python-3.8.3/Modules/_ssl.c:5503,1
    - Dst: ASN1_OBJECT_free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - nid
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5487
    functionDepth: 5
    functionLinenumber: 5487
    functionLinenumberEnd: 5506
    functionName: _ssl_nid2obj_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - OBJ_nid2obj
    - asn1obj2py
    - ASN1_OBJECT_free
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_nid2obj_impl(PyObject *module, int nid)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5517,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5522,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5528,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5531,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:5534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - encodingType
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5510
    functionDepth: 1
    functionLinenumber: 5510
    functionLinenumberEnd: 5536
    functionName: certEncodingType
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_INCREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      certEncodingType(DWORD encodingType)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/Python-3.8.3/Modules/_ssl.c:5545,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5546,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5550,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:5553,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:5555,1
    - Dst: CertGetEnhancedKeyUsage
      Src: /src/Python-3.8.3/Modules/_ssl.c:5559,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5560,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5561,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5565,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:5567,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:5575,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5577,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_ssl.c:5580,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5581,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5583,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - pCertCtx
    - flags
    argTypes:
    - PCCERT_CONTEXT
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5591
      start: 5538
    functionDepth: 1
    functionLinenumber: 5538
    functionLinenumberEnd: 5591
    functionName: parseKeyUsage
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyUnicode_FromString
    - Py_CLEAR
    - Py_DECREF
    - PyFrozenSet_New
    - CertGetEnhancedKeyUsage
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_SetFromWindowsErr
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parseKeyUsage(PCCERT_CONTEXT pCertCtx, DWORD flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CertOpenStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5614,1
    - Dst: CertOpenStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5621,1
    - Dst: CertAddStoreToCollection
      Src: /src/Python-3.8.3/Modules/_ssl.c:5626,1
    - Dst: CertCloseStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5631,1
    - Dst: CertCloseStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5635,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - store_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5593
    functionDepth: 0
    functionLinenumber: 5593
    functionLinenumberEnd: 5640
    functionName: ssl_collect_certificates
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CertOpenStore
    - CertCloseStore
    - CertAddStoreToCollection
    linkageType: ''
    returnType: HCERTSTORE
    signature: HCERTSTORE ssl_collect_certificates(const char *store_name)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:5664,1
    - Dst: ssl_collect_certificates
      Src: /src/Python-3.8.3/Modules/_ssl.c:5668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5670,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5671,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5671,1
    - Dst: CertEnumCertificatesInStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5674,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:5675,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5678,1
    - Dst: certEncodingType
      Src: /src/Python-3.8.3/Modules/_ssl.c:5681,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5682,1
    - Dst: parseKeyUsage
      Src: /src/Python-3.8.3/Modules/_ssl.c:5685,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5687,1
    - Dst: parseKeyUsage
      Src: /src/Python-3.8.3/Modules/_ssl.c:5688,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5691,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:5694,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5695,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:5698,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:5700,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:5702,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_ssl.c:5704,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5705,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5706,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5709,1
    - Dst: CertFreeCertificateContext
      Src: /src/Python-3.8.3/Modules/_ssl.c:5713,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5717,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5718,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5720,1
    - Dst: CertCloseStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5725,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5727,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5728,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5728,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_ssl.c:5735,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5736,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5739
      start: 5655
    functionDepth: 2
    functionLinenumber: 5655
    functionLinenumberEnd: 5739
    functionName: _ssl_enum_certificates_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyBytes_FromStringAndSize
    - CertCloseStore
    - Py_CLEAR
    - Py_DECREF
    - certEncodingType
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PySequence_List
    - Py_XDECREF
    - CertEnumCertificatesInStore
    - ssl_collect_certificates
    - parseKeyUsage
    - CertFreeCertificateContext
    - PySet_New
    - PyErr_SetFromWindowsErr
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_certificates_impl(PyObject *module, const char *store_name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:5762,1
    - Dst: ssl_collect_certificates
      Src: /src/Python-3.8.3/Modules/_ssl.c:5766,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5768,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5769,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5769,1
    - Dst: CertEnumCRLsInStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5772,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ssl.c:5773,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5776,1
    - Dst: certEncodingType
      Src: /src/Python-3.8.3/Modules/_ssl.c:5779,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5780,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:5783,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5784,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:5787,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ssl.c:5789,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_ssl.c:5792,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5793,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5794,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl.c:5797,1
    - Dst: CertFreeCRLContext
      Src: /src/Python-3.8.3/Modules/_ssl.c:5801,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5805,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5806,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5807,1
    - Dst: CertCloseStore
      Src: /src/Python-3.8.3/Modules/_ssl.c:5812,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5814,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ssl.c:5815,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ssl.c:5815,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_ssl.c:5821,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:5822,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - module
    - store_name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5825
      start: 5753
    functionDepth: 2
    functionLinenumber: 5753
    functionLinenumberEnd: 5825
    functionName: _ssl_enum_crls_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyBytes_FromStringAndSize
    - CertFreeCRLContext
    - Py_CLEAR
    - Py_DECREF
    - certEncodingType
    - PyTuple_New
    - PyTuple_SET_ITEM
    - CertCloseStore
    - Py_XDECREF
    - ssl_collect_certificates
    - PySequence_List
    - CertEnumCRLsInStore
    - PySet_New
    - PyErr_SetFromWindowsErr
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_crls_impl(PyObject *module, const char *store_name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_THREADID_set_numeric
      Src: /src/Python-3.8.3/Modules/_ssl.c:5860,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_ssl.c:5860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - CRYPTO_THREADID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5861
      start: 5857
    functionDepth: 0
    functionLinenumber: 5857
    functionLinenumberEnd: 5861
    functionName: _ssl_threadid_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_THREADID_set_numeric
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: void
    signature: void _ssl_threadid_callback(CRYPTO_THREADID *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_ssl.c:5866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5867
      start: 5864
    functionDepth: 0
    functionLinenumber: 5864
    functionLinenumberEnd: 5867
    functionName: _ssl_thread_id_function
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _ssl_thread_id_function (void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_ssl.c:5891,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_ssl.c:5893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - mode
    - n
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5895
      start: 5870
    functionDepth: 0
    functionLinenumber: 5870
    functionLinenumberEnd: 5895
    functionName: _ssl_thread_locking_function
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: "void _ssl_thread_locking_function\n    (int mode, int n, const char
      *file, int line)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_num_locks
      Src: /src/Python-3.8.3/Modules/_ssl.c:5902,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Modules/_ssl.c:5903,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ssl.c:5906,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_ssl.c:5910,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_ssl.c:5914,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ssl.c:5916,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:5920,1
    - Dst: CRYPTO_THREADID_set_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:5922,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/Python-3.8.3/Modules/_ssl.c:5924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5897
    functionDepth: 1
    functionLinenumber: 5897
    functionLinenumberEnd: 5928
    functionName: _setup_ssl_threads
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - CRYPTO_set_id_callback
    - CRYPTO_num_locks
    - PyThread_free_lock
    - CRYPTO_set_locking_callback
    - PyMem_Calloc
    - PyErr_NoMemory
    - PyMem_Free
    - PyThread_allocate_lock
    - CRYPTO_THREADID_set_callback
    linkageType: ''
    returnType: int
    signature: int _setup_ssl_threads(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - libver
    - major
    - minor
    - fix
    - patch
    - status
    argTypes:
    - unsigned long
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5950
    functionDepth: 0
    functionLinenumber: 5950
    functionLinenumberEnd: 5965
    functionName: parse_openssl_version
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void parse_openssl_version(unsigned long libver,\n                      unsigned
      int *major, unsigned int *minor,\n                      unsigned int *fix, unsigned
      int *patch,\n                      unsigned int *status)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ssl.c:5977,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ssl.c:5979,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ssl.c:5981,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ssl.c:5983,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_ssl.c:5987,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_ssl.c:5990,1
    - Dst: PySocketModule_ImportModuleAndAPI
      Src: /src/Python-3.8.3/Modules/_ssl.c:5993,1
    - Dst: OPENSSL_add_all_algorithms_noconf
      Src: /src/Python-3.8.3/Modules/_ssl.c:6000,1
    - Dst: SSL_load_error_strings
      Src: /src/Python-3.8.3/Modules/_ssl.c:6002,1
    - Dst: SSL_library_init
      Src: /src/Python-3.8.3/Modules/_ssl.c:6003,1
    - Dst: _setup_ssl_threads
      Src: /src/Python-3.8.3/Modules/_ssl.c:6008,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_ssl.c:6018,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:6023,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6026,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:6029,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6030,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6033,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6036,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6039,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_ssl.c:6042,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6052,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6053,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6055,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6056,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6057,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6058,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6059,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6061,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6064,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6067,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6070,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6074,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6077,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6079,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6081,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6083,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6085,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6087,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6089,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6092,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6094,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6097,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6099,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6101,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6104,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6106,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6108,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6110,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6113,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6125,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6126,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6127,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6128,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6129,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6130,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6131,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6132,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6133,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6134,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6135,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6136,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6137,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6138,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6139,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6140,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6141,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6142,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6143,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6144,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6145,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6148,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6151,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6154,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6157,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6160,1
    - Dst: ADD_AD_CONSTANT
      Src: /src/Python-3.8.3/Modules/_ssl.c:6163,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6170,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6174,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6177,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6179,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6181,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6183,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6185,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6188,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6190,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6195,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6197,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6198,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6199,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6201,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6202,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6205,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6207,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6209,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6211,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6212,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6214,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6217,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6221,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6225,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6230,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6234,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6238,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6242,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6246,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6250,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6255,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6257,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6259,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6260,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6261,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6262,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_ssl.c:6263,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6273,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6275,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6278,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6281,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6283,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6287,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6289,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6293,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6295,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6299,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6301,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6305,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6307,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6311,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6313,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6317,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6319,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6323,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6325,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6329,1
    - Dst: addbool
      Src: /src/Python-3.8.3/Modules/_ssl.c:6331,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:6335,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:6336,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6342,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:6343,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ssl.c:6346,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ssl.c:6348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:6350,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:6351,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6354,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6356,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ssl.c:6359,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:6365,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6366,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ssl.c:6369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:6371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl.c:6372,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6375,1
    - Dst: SSLeay
      Src: /src/Python-3.8.3/Modules/_ssl.c:6382,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ssl.c:6383,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6386,1
    - Dst: parse_openssl_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:6388,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:6389,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6390,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ssl.c:6392,1
    - Dst: SSLeay_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:6392,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6393,1
    - Dst: parse_openssl_version
      Src: /src/Python-3.8.3/Modules/_ssl.c:6397,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ssl.c:6398,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ssl.c:6399,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 211
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6403
      start: 5967
    functionDepth: 2
    functionLinenumber: 5967
    functionLinenumberEnd: 6403
    functionName: PyInit__ssl
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 0
    functionsReached:
    - _setup_ssl_threads
    - PyLong_FromLong
    - SSLeay_version
    - PyModule_GetDict
    - PyDict_SetItem
    - PyLong_FromUnsignedLong
    - parse_openssl_version
    - SSL_load_error_strings
    - addbool
    - PyModule_Create
    - PyType_FromSpec
    - ADD_AD_CONSTANT
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - PyUnicode_FromString
    - Py_DECREF
    - OPENSSL_add_all_algorithms_noconf
    - SSL_library_init
    - PyType_Ready
    - PyErr_NewExceptionWithDoc
    - Py_BuildValue
    - PyDict_New
    - PyModule_AddObject
    - SSLeay
    - PySocketModule_ImportModuleAndAPI
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ssl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6124
      start: 6121
    functionDepth: 0
    functionLinenumber: 6121
    functionLinenumberEnd: 6124
    functionName: ADD_AD_CONSTANT
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_AD_CONSTANT(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6271
      start: 6265
    functionDepth: 0
    functionLinenumber: 6265
    functionLinenumberEnd: 6271
    functionName: addbool
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addbool(m, key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - elemsize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: CHECK_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(size, elemsize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:132,1
    - Dst: Py_GetPrefix
      Src: /src/Python-3.8.3/Modules/_tkinter.c:132,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:138,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:142,1
    - Dst: _Py_stat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:146,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:155,1
    - Dst: _Py_stat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 177
    functionName: _get_tcl_lib_path
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Concat
    - PyUnicode_FromString
    - Py_GetPrefix
    - PyUnicode_FromWideChar
    - _Py_stat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_tcl_lib_path()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: Tkapp_Interp
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tkapp_Interp(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: DEBUG_REFCNT
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_REFCNT(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_UnicodeResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:336,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 342
    functionName: Tkinter_Error
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Tkapp_UnicodeResult
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkinter_Error(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/Python-3.8.3/Modules/_tkinter.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - milli
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 362
    functionName: Sleep
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - select
    linkageType: ''
    returnType: void
    signature: void Sleep(int milli)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: WaitForMainloop
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int WaitForMainloop(TkappObject* self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_tkinter.c:393,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_tkinter.c:394,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:399,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:401,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:404,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:406,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_tkinter.c:420,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:422,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 425
    functionName: unicodeFromTclStringAndSize
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - memchr
    - PyErr_NoMemory
    - PyErr_ExceptionMatches
    - PyUnicode_DecodeUTF8
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeFromTclStringAndSize(const char *s, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicodeFromTclStringAndSize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:430,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: unicodeFromTclString
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - strlen
    - unicodeFromTclStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeFromTclString(const char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetUnicodeFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:439,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/Python-3.8.3/Modules/_tkinter.c:441,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/Python-3.8.3/Modules/_tkinter.c:444,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:447,1
    - Dst: Tcl_GetStringFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:449,1
    - Dst: unicodeFromTclStringAndSize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: unicodeFromTclObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16
    - Tcl_GetUnicodeFromObj
    - Tcl_GetStringFromObj
    - Py_UNREACHABLE
    - PyUnicode_DecodeUTF32
    - unicodeFromTclStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeFromTclObj(Tcl_Obj *value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_SplitList
      Src: /src/Python-3.8.3/Modules/_tkinter.c:466,1
    - Dst: unicodeFromTclString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:471,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:475,1
    - Dst: unicodeFromTclString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:477,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:478,1
    - Dst: Split
      Src: /src/Python-3.8.3/Modules/_tkinter.c:483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:484,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - list
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 493
    functionName: Split
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - Split
    - unicodeFromTclString
    - Py_DECREF
    - Tcl_SplitList
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Split(const char *list)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:502,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:506,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:512,1
    - Dst: SplitObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:513,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:521,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:524,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:528,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:529,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:530,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:533,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:539,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:543,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:544,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:549,1
    - Dst: SplitObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:550,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:552,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:555,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:559,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_tkinter.c:562,1
    - Dst: Tcl_SplitList
      Src: /src/Python-3.8.3/Modules/_tkinter.c:565,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:566,1
    - Dst: Split
      Src: /src/Python-3.8.3/Modules/_tkinter.c:571,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:574,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:577,1
    - Dst: Tcl_SplitList
      Src: /src/Python-3.8.3/Modules/_tkinter.c:579,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:580,1
    - Dst: Split
      Src: /src/Python-3.8.3/Modules/_tkinter.c:585,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:585,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:588,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 499
    functionDepth: 4
    functionLinenumber: 499
    functionLinenumberEnd: 590
    functionName: SplitObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Split
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - Py_INCREF
    - PyUnicode_AsUTF8
    - PyList_Check
    - PyList_GET_ITEM
    - PyTuple_Check
    - PyBytes_Check
    - Tcl_SplitList
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyTuple_SET_ITEM
    - SplitObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SplitObj(PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_Init
      Src: /src/Python-3.8.3/Modules/_tkinter.c:609,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:610,1
    - Dst: Tcl_GetStringResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:610,1
    - Dst: Tcl_GetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:614,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:617,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:623,1
    - Dst: Tk_Init
      Src: /src/Python-3.8.3/Modules/_tkinter.c:628,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:632,1
    - Dst: Tcl_GetStringResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:632,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 637
    functionName: Tcl_AppInit
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_Init
    - Tk_Init
    - PySys_WriteStderr
    - Tcl_GetStringResult
    - strcmp
    - Tcl_GetVar
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:658,1
    - Dst: Tcl_CreateInterp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:662,1
    - Dst: Tcl_GetVar2Ex
      Src: /src/Python-3.8.3/Modules/_tkinter.c:664,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:666,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:671,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:673,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:679,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:683,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:684,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:685,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:686,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:687,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:688,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:689,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:690,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:691,1
    - Dst: Tcl_GetObjType
      Src: /src/Python-3.8.3/Modules/_tkinter.c:692,1
    - Dst: Tcl_DeleteCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:695,1
    - Dst: Tcl_SetVar2
      Src: /src/Python-3.8.3/Modules/_tkinter.c:698,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:702,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:704,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:707,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:707,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:709,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:710,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_tkinter.c:714,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Modules/_tkinter.c:715,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_tkinter.c:715,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Modules/_tkinter.c:716,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_tkinter.c:716,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:717,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:718,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:721,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:726,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:739,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:741,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:744,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:750,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:753,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:754,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:755,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:758,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:759,1
    - Dst: GetEnvironmentVariableW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:768,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_tkinter.c:769,1
    - Dst: _get_tcl_lib_path
      Src: /src/Python-3.8.3/Modules/_tkinter.c:770,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_tkinter.c:771,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_tkinter.c:775,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:779,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:781,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:783,1
    - Dst: Tcl_AppInit
      Src: /src/Python-3.8.3/Modules/_tkinter.c:789,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:790,1
    - Dst: Tcl_GetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:794,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:803,1
    - Dst: EnableEventHook
      Src: /src/Python-3.8.3/Modules/_tkinter.c:807,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 101
    argCount: 7
    argNames:
    - screenName
    - className
    - interactive
    - wantobjects
    - wantTk
    - sync
    - use
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 810
    functionName: Tkapp_New
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetObjType
    - _get_tcl_lib_path
    - strcat
    - Tcl_SetVar
    - Tkinter_Error
    - Tcl_DeleteCommand
    - EnableEventHook
    - Tcl_GetCurrentThread
    - PyUnicode_AsUTF8String
    - Py_CHARMASK
    - PyObject_New
    - GetLastError
    - PyErr_Occurred
    - Tcl_CreateInterp
    - Tcl_GetVar2Ex
    - Tcl_AppInit
    - Py_TOLOWER
    - strlen
    - Py_ISUPPER
    - Py_DECREF
    - PyThread_free_lock
    - PyMem_Free
    - PyBytes_AS_STRING
    - Tcl_GetVar
    - strcpy
    - Tcl_SetVar2
    - PyErr_NoMemory
    - GetEnvironmentVariableW
    - PyErr_SetString
    - PyMem_Malloc
    - strcmp
    linkageType: ''
    returnType: TkappObject
    signature: "TkappObject *\nTkapp_New(const char *screenName, const char *className,\n
      \         int interactive, int wantobjects, int wantTk, int sync,\n          const
      char *use)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 728
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_SetVar
    linkageType: ''
    returnType: else
    signature: else if (tk_load_failed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_MutexLock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:818,1
    - Dst: Tcl_ThreadQueueEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:819,1
    - Dst: Tcl_ThreadAlert
      Src: /src/Python-3.8.3/Modules/_tkinter.c:820,1
    - Dst: Tcl_ConditionWait
      Src: /src/Python-3.8.3/Modules/_tkinter.c:821,1
    - Dst: Tcl_MutexUnlock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - self
    - ev
    - cond
    - mutex
    argTypes:
    - TkappObject*
    - Tcl_Event*
    - Tcl_Condition*
    - Tcl_Mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 824
    functionName: Tkapp_ThreadSend
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionWait
    - Tcl_MutexLock
    - Tcl_ThreadQueueEvent
    - Tcl_MutexUnlock
    - Tcl_ThreadAlert
    linkageType: ''
    returnType: void
    signature: "void Tkapp_ThreadSend(TkappObject *self, Tcl_Event *ev,\n                 Tcl_Condition
      *cond, Tcl_Mutex *mutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 837
    functionName: PyTclObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTclObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:842,1
    - Dst: Tcl_IncrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 849
    functionName: newPyTclObject
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_IncrRefCount
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newPyTclObject(Tcl_Obj *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:854,1
    - Dst: Tcl_DecrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:855,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:856,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_tkinter.c:857,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTclObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 859
    functionName: PyTclObject_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Tcl_DecrRefCount
    - Py_TYPE
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyTclObject_dealloc(PyTclObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:869,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ignored
    argTypes:
    - PyTclObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 865
    functionDepth: 3
    functionLinenumber: 865
    functionLinenumberEnd: 875
    functionName: PyTclObject_string
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclObj
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_string(PyTclObject *self, void *ignored)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:881,1
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTclObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 886
    functionName: PyTclObject_str
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclObj
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_str(PyTclObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_str
      Src: /src/Python-3.8.3/Modules/_tkinter.c:891,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTclObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 888
    functionDepth: 4
    functionLinenumber: 888
    functionLinenumberEnd: 898
    functionName: PyTclObject_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTclObject_str
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_repr(PyTclObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_tkinter.c:907,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:912,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:912,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:920,1
    - Dst: Tcl_GetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:920,1
    - Dst: Tcl_GetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:921,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 923
    functionName: PyTclObject_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetString
    - Py_RETURN_RICHCOMPARE
    - PyErr_BadInternalCall
    - PyTclObject_Check
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTclObject_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicodeFromTclString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - ignored
    argTypes:
    - PyTclObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 3
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: get_typename
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - unicodeFromTclString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_typename(PyTclObject* obj, void* ignored)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 966
    functionName: CHECK_STRING_LENGTH
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STRING_LENGTH(s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:980,1
    - Dst: _PyLong_Format
      Src: /src/Python-3.8.3/Modules/_tkinter.c:981,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_tkinter.c:984,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:986,1
    - Dst: mp_init
      Src: /src/Python-3.8.3/Modules/_tkinter.c:990,1
    - Dst: mp_read_radix
      Src: /src/Python-3.8.3/Modules/_tkinter.c:991,1
    - Dst: mp_clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:993,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:994,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:997,1
    - Dst: Tcl_NewBignumObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:999,1
    - Dst: mp_clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1000,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 1006
    functionName: asBignumObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - mp_read_radix
    - _PyLong_Format
    - mp_clear
    - Tcl_NewBignumObj
    - Py_DECREF
    - PyUnicode_AsUTF8
    - PyErr_NoMemory
    - mp_init
    - Py_SIZE
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      asBignumObj(PyObject *value)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1014,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1015,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1016,1
    - Dst: Tcl_NewByteArrayObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1019,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1019,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1020,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1023,1
    - Dst: Tcl_NewBooleanObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1024,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1024,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1026,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1032,1
    - Dst: Tcl_NewLongObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1034,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1039,1
    - Dst: Tcl_NewWideIntObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1044,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1046,1
    - Dst: asBignumObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1051,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1057,1
    - Dst: Tcl_NewDoubleObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1058,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1058,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1060,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1060,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1064,1
    - Dst: Tcl_NewListObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1066,1
    - Dst: CHECK_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1067,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1068,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1069,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1073,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1075,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1079,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1079,1
    - Dst: Tcl_NewListObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1080,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1081,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1085,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1086,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1089,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1091,1
    - Dst: CHECK_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1093,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1094,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1097,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1098,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1098,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1105,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1108,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1111,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1113,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1120,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1121,1
    - Dst: Tcl_NewUnicodeObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1125,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1125,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1128,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1130,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1134,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1139,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1143,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1146
    functionName: AsObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_READY
    - _PyUnicode_EncodeUTF16
    - Tcl_NewWideIntObj
    - Tcl_NewBooleanObj
    - Tcl_NewByteArrayObj
    - PyFloat_Check
    - CHECK_SIZE
    - _PyUnicode_EncodeUTF32
    - PySequence_Fast_GET_ITEM
    - PyTuple_Check
    - PyObject_Str
    - PyUnicode_Check
    - PyUnicode_IS_ASCII
    - _PyLong_AsByteArray
    - PyUnicode_DATA
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - PyBool_Check
    - PySequence_Fast_GET_SIZE
    - Tcl_NewStringObj
    - Py_DECREF
    - PyFloat_AS_DOUBLE
    - Tcl_NewDoubleObj
    - PyList_Check
    - Py_UNREACHABLE
    - PyBytes_GET_SIZE
    - PyLong_AsLongAndOverflow
    - PyMem_Free
    - PyBytes_AS_STRING
    - Tcl_NewLongObj
    - Tcl_NewListObj
    - Tcl_NewUnicodeObj
    - PyErr_NoMemory
    - AsObj
    - PyTclObject_Check
    - PyBytes_Check
    - PyLong_CheckExact
    - PyErr_SetString
    - PyMem_Malloc
    - PyObject_IsTrue
    - asBignumObj
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj *

      AsObj(PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1152,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1152,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1153,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1155
    functionName: fromBoolean
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Tkapp_Interp
    - Tcl_GetBooleanFromObj
    - Tkinter_Error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fromBoolean(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetWideIntFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1161,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1161,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1163,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1170
    functionName: fromWideIntObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - _PyLong_FromByteArray
    - Tcl_GetWideIntFromObj
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fromWideIntObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetBignumFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1181,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1181,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1182,1
    - Dst: mp_unsigned_bin_size
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1183,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1184,1
    - Dst: mp_clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1186,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1187,1
    - Dst: mp_to_unsigned_bin_n
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1189,1
    - Dst: mp_clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1191,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1192,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1193,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1195,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1198,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1201,1
    - Dst: mp_clear
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1206
    functionName: fromBignumObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - mp_clear
    - mp_to_unsigned_bin_n
    - Py_DECREF
    - mp_unsigned_bin_size
    - _PyLong_FromByteArray
    - PyErr_NoMemory
    - Tkapp_Interp
    - Tcl_GetBignumFromObj
    - Tkinter_Error
    - PyNumber_Negative
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fromBignumObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1213,1
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1216,1
    - Dst: fromBoolean
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1221,1
    - Dst: Tcl_GetByteArrayFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1226,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1227,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1231,1
    - Dst: Tcl_GetLongFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1236,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1237,1
    - Dst: fromWideIntObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1244,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1245,1
    - Dst: Tcl_ResetResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1247,1
    - Dst: fromBignumObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1256,1
    - Dst: Tcl_ListObjLength
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1266,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1268,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1269,1
    - Dst: Tcl_ListObjIndex
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1275,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1276,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1280,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1283,1
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1293,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1298,1
    - Dst: fromBoolean
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1301,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1307,1
    - Dst: fromBignumObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1310,1
    - Dst: newPyTclObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1314,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 2
    argNames:
    - tkapp
    - value
    argTypes:
    - TkappObject*
    - Tcl_Obj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1315
    functionName: FromObj
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 5
    functionsReached:
    - PyLong_FromLong
    - Tkinter_Error
    - fromBoolean
    - Tcl_ListObjLength
    - PyBytes_FromStringAndSize
    - Tcl_ListObjIndex
    - PyErr_Occurred
    - Tkapp_Interp
    - fromWideIntObj
    - Tcl_GetByteArrayFromObj
    - PyFloat_FromDouble
    - Tcl_ResetResult
    - Py_DECREF
    - newPyTclObject
    - PyTuple_New
    - unicodeFromTclObj
    - FromObj
    - Tcl_GetLongFromObj
    - strcmp
    - fromBignumObj
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      FromObj(TkappObject *tkapp, Tcl_Obj *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DecrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1335,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - objv
    - objStore
    - objc
    argTypes:
    - Tcl_Obj**
    - Tcl_Obj**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1338
    functionName: Tkapp_CallDeallocArgs
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Tcl_DecrRefCount
    linkageType: ''
    returnType: void
    signature: void Tkapp_CallDeallocArgs(Tcl_Obj** objv, Tcl_Obj** objStore, int
      objc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1351,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1351,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1352,1
    - Dst: Tcl_IncrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1356,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1359,1
    - Dst: CHECK_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1363,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1364,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1368,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1370,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1377,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1382,1
    - Dst: Tcl_IncrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1389,1
    - Dst: Tkapp_CallDeallocArgs
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1395,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1343
    functionDepth: 3
    functionLinenumber: 1343
    functionLinenumberEnd: 1397
    functionName: Tkapp_CallArgs
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_SIZE
    - PySequence_Fast_GET_ITEM
    - PyErr_NoMemory
    - PyList_Check
    - AsObj
    - PyTuple_Check
    - Tkapp_CallDeallocArgs
    - Tcl_IncrRefCount
    - PyErr_SetString
    - PyMem_Malloc
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: Tcl_Obj
    signature: 'Tcl_Obj **

      Tkapp_CallArgs(PyObject *args, Tcl_Obj** objStore, int *pobjc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1404,1
    - Dst: Tcl_GetObjResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1401
    functionDepth: 3
    functionLinenumber: 1401
    functionLinenumberEnd: 1405
    functionName: Tkapp_UnicodeResult
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Tcl_GetObjResult
    - unicodeFromTclObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_UnicodeResult(TkappObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetObjResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1414,1
    - Dst: Tcl_IncrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1419,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1420,1
    - Dst: Tcl_DecrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1421,1
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1410
    functionDepth: 4
    functionLinenumber: 1410
    functionLinenumberEnd: 1426
    functionName: Tkapp_ObjectResult
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DecrRefCount
    - Tcl_GetObjResult
    - FromObj
    - Tcl_IncrRefCount
    - unicodeFromTclObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_ObjectResult(TkappObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_CallArgs
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1441,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1443,1
    - Dst: Tcl_EvalObjv
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1449,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1452,1
    - Dst: Tkapp_ObjectResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - e
    - flags
    argTypes:
    - Tkapp_CallEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1433
    functionDepth: 5
    functionLinenumber: 1433
    functionLinenumberEnd: 1456
    functionName: Tkapp_CallProc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - Tkapp_CallArgs
    - Tkinter_Error
    - Tcl_EvalObjv
    - Tkapp_ObjectResult
    linkageType: ''
    returnType: int
    signature: int Tkapp_CallProc(Tkapp_CallEvent *e, int flags)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1495,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1496,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1497,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1500,1
    - Dst: WaitForMainloop
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1506,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1508,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1510,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1522,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1526,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1528,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1530,1
    - Dst: Tkapp_CallArgs
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1535,1
    - Dst: Tcl_EvalObjv
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1541,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1546,1
    - Dst: Tkapp_ObjectResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1548,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - selfptr
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1484
    functionDepth: 5
    functionLinenumber: 1484
    functionLinenumberEnd: 1555
    functionName: Tkapp_Call
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - Tkapp_ThreadSend
    - Tkapp_CallArgs
    - attemptckalloc
    - Tkinter_Error
    - PyErr_SetObject
    - PyTuple_Check
    - WaitForMainloop
    - Tcl_GetCurrentThread
    - Tcl_EvalObjv
    - PyErr_Restore
    - Tcl_ConditionFinalize
    - PyTuple_GET_ITEM
    - Tkapp_ObjectResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_Call(PyObject *selfptr, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1573,1
    - Dst: Tcl_Eval
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1577,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1577,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1580,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - script
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1566
    functionDepth: 4
    functionLinenumber: 1566
    functionLinenumberEnd: 1585
    functionName: _tkinter_tkapp_eval_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkapp_Interp
    - Tkinter_Error
    - Tcl_Eval
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_eval_impl(TkappObject *self, const char *script)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1602,1
    - Dst: Tcl_EvalFile
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1606,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1606,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1609,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - fileName
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1595
    functionDepth: 4
    functionLinenumber: 1595
    functionLinenumberEnd: 1614
    functionName: _tkinter_tkapp_evalfile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkapp_Interp
    - Tkinter_Error
    - Tcl_EvalFile
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_evalfile_impl(TkappObject *self, const char *fileName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1631,1
    - Dst: Tcl_RecordAndEval
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1635,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1635,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1638,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - script
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1624
    functionDepth: 4
    functionLinenumber: 1624
    functionLinenumberEnd: 1643
    functionName: _tkinter_tkapp_record_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_RecordAndEval
    - Tkapp_UnicodeResult
    - Tkapp_Interp
    - Tkinter_Error
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_record_impl(TkappObject *self, const char *script)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - msg
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1665
    functionName: _tkinter_tkapp_adderrorinfo_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_adderrorinfo_impl(TkappObject *self, const char *msg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1701,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1702,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1703,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1706,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1707,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1707,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1708,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1714,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1716,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1721,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1724,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1725,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1731,1
    - Dst: Tcl_GetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1732,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1735,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - in
    - _out
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1739
    functionName: varname_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_GetString
    - PyTclObject_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - strlen
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int varname_converter(PyObject *in, void *_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VarEvent*::func
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1745,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1748,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1749,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ev
    argTypes:
    - VarEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1755
    functionName: var_perform
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - Py_XDECREF
    - VarEvent*::func
    - PyErr_NormalizeException
    linkageType: ''
    returnType: void
    signature: void var_perform(VarEvent *ev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_MutexLock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1762,1
    - Dst: Tcl_ConditionNotify
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1763,1
    - Dst: Tcl_MutexUnlock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ev
    - flags
    argTypes:
    - VarEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1757
    functionDepth: 0
    functionLinenumber: 1757
    functionLinenumberEnd: 1767
    functionName: var_proc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_MutexLock
    - Tcl_MutexUnlock
    - Tcl_ConditionNotify
    linkageType: ''
    returnType: int
    signature: int var_proc(VarEvent* ev, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1774,1
    - Dst: WaitForMainloop
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1782,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1785,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1787,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1799,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1800,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1803,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1804,1
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1810,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - func
    - selfptr
    - args
    - flags
    argTypes:
    - EventFunc
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1811
    functionName: var_invoke
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_NoMemory
    - Tkapp_ThreadSend
    - attemptckalloc
    - func
    - PyErr_SetObject
    - WaitForMainloop
    - Tcl_GetCurrentThread
    - Tcl_ConditionFinalize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      var_invoke(EventFunc func, PyObject *selfptr, PyObject *args, int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1821,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1823,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1827,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1831,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1831,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1838,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1843,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1846,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1847,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1849,1
    - Dst: Tcl_SetVar2Ex
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1851,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1851,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1813
    functionDepth: 3
    functionLinenumber: 1813
    functionLinenumberEnd: 1858
    functionName: SetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Tkapp_Interp
    - AsObj
    - Tcl_SetVar2Ex
    - PyArg_ParseTuple
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SetVar(TkappObject *self, PyObject *args, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1911
    functionDepth: 3
    functionLinenumber: 1911
    functionLinenumberEnd: 1915
    functionName: Tkapp_GetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - var_invoke
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_GetVar(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1917
    functionDepth: 3
    functionLinenumber: 1917
    functionLinenumberEnd: 1921
    functionName: Tkapp_GlobalGetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - var_invoke
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_GlobalGetVar(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1932,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1935,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1936,1
    - Dst: Tcl_UnsetVar2
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1938,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1938,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1941,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - flags
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1925
    functionDepth: 2
    functionLinenumber: 1925
    functionLinenumberEnd: 1945
    functionName: UnsetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Tkapp_Interp
    - Tcl_UnsetVar2
    - Tkinter_Error
    - PyArg_ParseTuple
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnsetVar(TkappObject *self, PyObject *args, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1954
    functionName: Tkapp_UnsetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - var_invoke
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_UnsetVar(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: var_invoke
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1956
    functionDepth: 3
    functionLinenumber: 1956
    functionLinenumberEnd: 1961
    functionName: Tkapp_GlobalUnsetVar
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - var_invoke
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_GlobalUnsetVar(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1983,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1984,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1988,1
    - Dst: Tcl_IncrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1990,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1993,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1995,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1996,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:1998,1
    - Dst: fromBignumObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2007,1
    - Dst: fromWideIntObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2009,1
    - Dst: Tcl_DecrRefCount
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2011,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2012,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1975
    functionDepth: 3
    functionLinenumber: 1975
    functionLinenumberEnd: 2015
    functionName: _tkinter_tkapp_getint
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_INCREF
    - Tcl_NewStringObj
    - fromWideIntObj
    - PyTclObject_Check
    - Tkinter_Error
    - Tcl_DecrRefCount
    - PyArg_Parse
    - Tcl_IncrRefCount
    - fromBignumObj
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getint(TkappObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2032,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2033,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2037,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2038,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2041,1
    - Dst: Tcl_GetDoubleFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2042,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2042,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2045,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2046,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2049,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2051,1
    - Dst: Tcl_GetDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2052,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2052,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2053,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2025
    functionDepth: 2
    functionLinenumber: 2025
    functionLinenumberEnd: 2055
    functionName: _tkinter_tkapp_getdouble
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyNumber_Check
    - Py_INCREF
    - CHECK_STRING_LENGTH
    - Tkapp_Interp
    - Tcl_GetDoubleFromObj
    - PyTclObject_Check
    - Tkinter_Error
    - PyArg_Parse
    - PyNumber_Float
    - PyFloat_FromDouble
    - Tcl_GetDouble
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getdouble(TkappObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2072,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2073,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2073,1
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2076,1
    - Dst: Tcl_GetBooleanFromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2077,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2077,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2080,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2081,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2084,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2086,1
    - Dst: Tcl_GetBoolean
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2087,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2087,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2088,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2089,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2090
    functionName: _tkinter_tkapp_getboolean
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Tcl_GetBoolean
    - Tkapp_Interp
    - Tcl_GetBooleanFromObj
    - PyTclObject_Check
    - Tkinter_Error
    - PyArg_Parse
    - PyBool_FromLong
    - Py_SIZE
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_getboolean(TkappObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2107,1
    - Dst: Tcl_ExprString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2111,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2111,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2114,1
    - Dst: Tkapp_UnicodeResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2100
    functionDepth: 4
    functionLinenumber: 2100
    functionLinenumberEnd: 2119
    functionName: _tkinter_tkapp_exprstring_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_UnicodeResult
    - Tkapp_Interp
    - Tkinter_Error
    - Tcl_ExprString
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprstring_impl(TkappObject *self, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2137,1
    - Dst: Tcl_ExprLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2141,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2141,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2144,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2129
    functionDepth: 2
    functionLinenumber: 2129
    functionLinenumberEnd: 2149
    functionName: _tkinter_tkapp_exprlong_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Tcl_ExprLong
    - Tkapp_Interp
    - Tkinter_Error
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprlong_impl(TkappObject *self, const char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2167,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2169,1
    - Dst: Tcl_ExprDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2171,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2171,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2175,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2159
    functionDepth: 2
    functionLinenumber: 2159
    functionLinenumberEnd: 2180
    functionName: _tkinter_tkapp_exprdouble_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ExprDouble
    - PyFPE_START_PROTECT
    - Tkapp_Interp
    - Tkinter_Error
    - PyFloat_FromDouble
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprdouble_impl(TkappObject *self, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2198,1
    - Dst: Tcl_ExprBoolean
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2201,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2201,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2204,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - s
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2190
    functionDepth: 2
    functionLinenumber: 2190
    functionLinenumberEnd: 2209
    functionName: _tkinter_tkapp_exprboolean_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Tkapp_Interp
    - Tkinter_Error
    - Tcl_ExprBoolean
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprboolean_impl(TkappObject *self, const char *s)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2231,1
    - Dst: Tcl_ListObjGetElements
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2234,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2234,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2237,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2239,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2242,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2244,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2247,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2251,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2252,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2255,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2256,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2259,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2262,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2263,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2264,1
    - Dst: Tcl_SplitList
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2267,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2267,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2269,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2270,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2273,1
    - Dst: unicodeFromTclString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2279,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2283,1
    - Dst: ckfree
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2287,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2288,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2221
    functionDepth: 4
    functionLinenumber: 2221
    functionLinenumberEnd: 2290
    functionName: _tkinter_tkapp_splitlist
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - Tkinter_Error
    - Tcl_SplitList
    - Py_INCREF
    - Tkapp_Interp
    - Tcl_ListObjGetElements
    - PyTuple_Check
    - strlen
    - unicodeFromTclString
    - Py_DECREF
    - PyList_Check
    - PyMem_Free
    - PyTuple_New
    - PySequence_Tuple
    - PyTclObject_Check
    - FromObj
    - PyArg_Parse
    - PyErr_SetString
    - ckfree
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_splitlist(TkappObject *self, PyObject *arg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTclObject_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2307,1
    - Dst: Tcl_ListObjGetElements
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2312,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2312,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2314,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2317,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2319,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2320,1
    - Dst: FromObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2325,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2328,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2332,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2332,1
    - Dst: SplitObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2333,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2335,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2337,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2338,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2339,1
    - Dst: Split
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2342,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2300
    functionDepth: 5
    functionLinenumber: 2300
    functionLinenumberEnd: 2345
    functionName: _tkinter_tkapp_split
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Split
    - Py_DECREF
    - Tkapp_Interp
    - PyList_Check
    - PyTclObject_Check
    - Tcl_ListObjGetElements
    - PyTuple_Check
    - FromObj
    - PyArg_Parse
    - strlen
    - PyMem_Free
    - PyErr_SetString
    - PyTuple_New
    - PyTuple_SET_ITEM
    - SplitObj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_split(TkappObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2364
    functionName: PythonCmd_Error
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    linkageType: ''
    returnType: int
    signature: int PythonCmd_Error(Tcl_Interp *interp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2381,1
    - Dst: PythonCmd_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2382,1
    - Dst: unicodeFromTclObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2387,1
    - Dst: PythonCmd_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2388,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2390,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2393,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2394,1
    - Dst: PythonCmd_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2397,1
    - Dst: AsObj
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2399,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2401,1
    - Dst: PythonCmd_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2402,1
    - Dst: Tcl_SetObjResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - clientData
    - interp
    - objc
    - objv
    argTypes:
    - ClientData
    - Tcl_Interp*
    - int
    - Tcl_Obj*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2369
    functionDepth: 3
    functionLinenumber: 2369
    functionLinenumberEnd: 2410
    functionName: PythonCmd
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Tcl_SetObjResult
    - AsObj
    - PythonCmd_Error
    - PyObject_Call
    - PyTuple_New
    - PyTuple_SET_ITEM
    - unicodeFromTclObj
    linkageType: ''
    returnType: int
    signature: "int PythonCmd(ClientData clientData, Tcl_Interp *interp,\n          int
      objc, Tcl_Obj *const objv[])"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2420,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2421,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2444,1
    - Dst: Tcl_DeleteCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2448,1
    - Dst: Tcl_MutexLock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2449,1
    - Dst: Tcl_ConditionNotify
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2450,1
    - Dst: Tcl_MutexUnlock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2451,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2472,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2474,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2478,1
    - Dst: WaitForMainloop
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2479,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2482,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2484,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2486,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2489,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2491,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2493,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2494,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2504,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2505,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2510,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2516,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2517,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2540,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2542,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2545,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2547,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2556,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2558,1
    - Dst: Tcl_DeleteCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2563,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2567,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2591,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2593,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2594,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2613,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2614,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2615,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2632,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2635,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2637,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2661,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2664,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2665,1
    - Dst: NewFHCD
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2669,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2696,1
    - Dst: DeleteFHCD
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2700,1
    - Dst: Tcl_DeleteTimerHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2740,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2750,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2754,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2759,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2768,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2770,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2772,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2773,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2780,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2803,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2807,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2810,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2832,1
    - Dst: Tktt_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2838,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2840,1
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2862,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2868,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2877,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2882,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2884,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2886,1
    - Dst: Sleep
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2888,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2892,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2904,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2926,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2951,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2951,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2962,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2973,1
    - Dst: Tcl_Eval
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2981,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2981,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2986,1
    - Dst: Tcl_GetStringResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2988,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2988,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2994,1
    - Dst: Tk_Init
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2995,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2996,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 226
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 3004
    functionName: PythonCmdDelete
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tk_Init
    - PyMem_NEW
    - Tkapp_ThreadSend
    - PyThreadState_Get
    - Tcl_MutexUnlock
    - PyUnicode_FromFormat
    - Tcl_DeleteCommand
    - PyThread_acquire_lock
    - Tcl_Eval
    - Tcl_GetCurrentThread
    - Tkinter_Error
    - Tcl_GetStringResult
    - Tcl_ConditionFinalize
    - PyLong_FromVoidPtr
    - PyObject_New
    - PyMem_DEL
    - Py_INCREF
    - PyErr_CheckSignals
    - Tkapp_Interp
    - attemptckalloc
    - WaitForMainloop
    - PyObject_CallFunction
    - PyThread_release_lock
    - Py_XDECREF
    - Tcl_MutexLock
    - Py_DECREF
    - Tk_GetNumMainWindows
    - Py_TYPE
    - NewFHCD
    - PyErr_Restore
    - Tcl_DeleteTimerHandler
    - _PyObject_CallNoArg
    - Tcl_CreateObjCommand
    - Tcl_CreateTimerHandler
    - Tcl_ConditionNotify
    - PyObject_AsFileDescriptor
    - PyCallable_Check
    - PyErr_NoMemory
    - PyErr_Fetch
    - DeleteFHCD
    - Tcl_DoOneEvent
    - PyErr_SetString
    - Sleep
    - PyObject_Del
    - strcmp
    - Py_XINCREF
    - Tktt_New
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: void
    signature: void PythonCmdDelete(ClientData clientData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_CreateObjCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2444,1
    - Dst: Tcl_DeleteCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2448,1
    - Dst: Tcl_MutexLock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2449,1
    - Dst: Tcl_ConditionNotify
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2450,1
    - Dst: Tcl_MutexUnlock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ev
    - flags
    argTypes:
    - CommandEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2440
    functionDepth: 0
    functionLinenumber: 2440
    functionLinenumberEnd: 2453
    functionName: Tkapp_CommandProc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_ConditionNotify
    - Tcl_MutexLock
    - Tcl_MutexUnlock
    - Tcl_DeleteCommand
    - Tcl_CreateObjCommand
    linkageType: ''
    returnType: int
    signature: int Tkapp_CommandProc(CommandEvent *ev, int flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2472,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2474,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2478,1
    - Dst: WaitForMainloop
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2479,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2482,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2484,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2486,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2489,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2491,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2493,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2494,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2504,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2505,1
    - Dst: Tcl_CreateObjCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2510,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2516,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2517,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - self
    - name
    - func
    argTypes:
    - TkappObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2522
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2522
    functionName: _tkinter_tkapp_createcommand_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_INCREF
    - PyMem_DEL
    - PyErr_NoMemory
    - PyMem_NEW
    - Tkapp_ThreadSend
    - attemptckalloc
    - Tkapp_Interp
    - WaitForMainloop
    - Tcl_GetCurrentThread
    - PyErr_SetString
    - Tcl_ConditionFinalize
    - Tcl_CreateObjCommand
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_tkapp_createcommand_impl(TkappObject *self, const
      char *name,\n                                  PyObject *func)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2540,1
    - Dst: Tcl_GetCurrentThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2542,1
    - Dst: attemptckalloc
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2545,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2547,1
    - Dst: Tkapp_ThreadSend
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2556,1
    - Dst: Tcl_ConditionFinalize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2558,1
    - Dst: Tcl_DeleteCommand
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2563,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - TkappObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2571
    functionName: _tkinter_tkapp_deletecommand_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Tkapp_ThreadSend
    - attemptckalloc
    - Tcl_DeleteCommand
    - Tcl_GetCurrentThread
    - PyErr_SetString
    - Tcl_ConditionFinalize
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletecommand_impl(TkappObject *self, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2591,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2593,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - func
    - file
    - id
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2587
    functionDepth: 1
    functionLinenumber: 2587
    functionLinenumberEnd: 2602
    functionName: NewFHCD
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyMem_NEW
    - Py_XINCREF
    linkageType: ''
    returnType: FileHandler_ClientData
    signature: 'FileHandler_ClientData *

      NewFHCD(PyObject *func, PyObject *file, int id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2613,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2614,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2620
    functionName: DeleteFHCD
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - PyMem_DEL
    linkageType: ''
    returnType: void
    signature: void DeleteFHCD(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2632,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2635,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - clientData
    - mask
    argTypes:
    - ClientData
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2639
    functionName: FileHandler
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - PyObject_CallFunction
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void FileHandler(ClientData clientData, int mask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2661,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2664,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2665,1
    - Dst: NewFHCD
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - file
    - mask
    - func
    argTypes:
    - TkappObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2651
    functionDepth: 2
    functionLinenumber: 2651
    functionLinenumberEnd: 2678
    functionName: _tkinter_tkapp_createfilehandler_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    - NewFHCD
    - PyCallable_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_tkapp_createfilehandler_impl(TkappObject *self,
      PyObject *file,\n                                      int mask, PyObject *func)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2696,1
    - Dst: DeleteFHCD
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2688
    functionDepth: 2
    functionLinenumber: 2688
    functionLinenumberEnd: 2707
    functionName: _tkinter_tkapp_deletefilehandler
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - DeleteFHCD
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletefilehandler(TkappObject *self, PyObject *file)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DeleteTimerHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkttObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2726
    functionDepth: 1
    functionLinenumber: 2726
    functionLinenumberEnd: 2743
    functionName: _tkinter_tktimertoken_deletetimerhandler_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DeleteTimerHandler
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tktimertoken_deletetimerhandler_impl(TkttObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2750,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2754,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2745
    functionDepth: 1
    functionLinenumber: 2745
    functionLinenumberEnd: 2761
    functionName: Tktt_New
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - PyObject_New
    linkageType: ''
    returnType: TkttObject
    signature: 'TkttObject *

      Tktt_New(PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2768,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2770,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2772,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2763
    functionDepth: 1
    functionLinenumber: 2763
    functionLinenumberEnd: 2774
    functionName: Tktt_Dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - Py_DECREF
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void Tktt_Dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2776
    functionDepth: 1
    functionLinenumber: 2776
    functionLinenumberEnd: 2783
    functionName: Tktt_Repr
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tktt_Repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2803,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2807,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - clientData
    argTypes:
    - ClientData
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2787
    functionDepth: 1
    functionLinenumber: 2787
    functionLinenumberEnd: 2813
    functionName: TimerHandler
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - PyErr_Fetch
    - _PyObject_CallNoArg
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void TimerHandler(ClientData clientData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2832,1
    - Dst: Tktt_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2838,1
    - Dst: Tcl_CreateTimerHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - milliseconds
    - func
    argTypes:
    - TkappObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2824
    functionDepth: 2
    functionLinenumber: 2824
    functionLinenumberEnd: 2845
    functionName: _tkinter_tkapp_createtimerhandler_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tktt_New
    - Tcl_CreateTimerHandler
    - PyCallable_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_tkapp_createtimerhandler_impl(TkappObject *self,
      int milliseconds,\n                                       PyObject *func)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2862,1
    - Dst: Tk_GetNumMainWindows
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2868,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2877,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2882,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2884,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2886,1
    - Dst: Sleep
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2888,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2892,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2904,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - self
    - threshold
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2909
    functionName: _tkinter_tkapp_mainloop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tk_GetNumMainWindows
    - PyErr_CheckSignals
    - PyThreadState_Get
    - PyThread_acquire_lock
    - Tcl_DoOneEvent
    - Sleep
    - PyThread_release_lock
    - PyErr_Restore
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_mainloop_impl(TkappObject *self, int threshold)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - flags
    argTypes:
    - TkappObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2919
    functionDepth: 0
    functionLinenumber: 2919
    functionLinenumberEnd: 2929
    functionName: _tkinter_tkapp_dooneevent_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tcl_DoOneEvent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_dooneevent_impl(TkappObject *self, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2935
    functionDepth: 0
    functionLinenumber: 2935
    functionLinenumberEnd: 2941
    functionName: _tkinter_tkapp_quit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_quit_impl(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2951,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2947
    functionDepth: 1
    functionLinenumber: 2947
    functionLinenumberEnd: 2952
    functionName: _tkinter_tkapp_interpaddr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_interpaddr_impl(TkappObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2962,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2973,1
    - Dst: Tcl_Eval
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2981,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2981,1
    - Dst: Tkinter_Error
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2986,1
    - Dst: Tcl_GetStringResult
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2988,1
    - Dst: Tkapp_Interp
      Src: /src/Python-3.8.3/Modules/_tkinter.c:2988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2958
    functionDepth: 2
    functionLinenumber: 2958
    functionLinenumberEnd: 2989
    functionName: _tkinter_tkapp_loadtk_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_Interp
    - Tkinter_Error
    - Tcl_Eval
    - PyErr_SetString
    - Tcl_GetStringResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_loadtk_impl(TkappObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3011,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 3006
    functionDepth: 1
    functionLinenumber: 3006
    functionLinenumberEnd: 3018
    functionName: Tkapp_WantObjects
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Tkapp_WantObjects(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - TkappObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 3025
    functionDepth: 0
    functionLinenumber: 3025
    functionLinenumberEnd: 3032
    functionName: _tkinter_tkapp_willdispatch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_willdispatch_impl(TkappObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3046,1
    - Dst: DisableEventHook
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3037
    functionDepth: 1
    functionLinenumber: 3037
    functionLinenumberEnd: 3048
    functionName: Tkapp_Dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - DisableEventHook
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void Tkapp_Dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_Resize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - size
    argTypes:
    - FlattenContext*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3060
    functionDepth: 1
    functionLinenumber: 3060
    functionLinenumberEnd: 3074
    functionName: _bump
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _PyTuple_Resize
    linkageType: ''
    returnType: int
    signature: int _bump(FlattenContext* context, Py_ssize_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3084,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3087,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3087,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3088,1
    - Dst: _bump
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3091,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3095,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3096,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3096,1
    - Dst: _flatten1
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3097,1
    - Dst: _bump
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3101,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3103,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 3
    argNames:
    - context
    - item
    - depth
    argTypes:
    - FlattenContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3076
    functionDepth: 2
    functionLinenumber: 3076
    functionLinenumberEnd: 3113
    functionName: _flatten1
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - _flatten1
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyList_Check
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_SET_ITEM
    - PySequence_Fast_GET_SIZE
    - _bump
    linkageType: ''
    returnType: int
    signature: int _flatten1(FlattenContext* context, PyObject* item, int depth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3129,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3133,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3135,1
    - Dst: _flatten1
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3141,1
    - Dst: _PyTuple_Resize
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3148
      start: 3123
    functionDepth: 3
    functionLinenumber: 3123
    functionLinenumberEnd: 3148
    functionName: _tkinter__flatten
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _flatten1
    - _PyTuple_Resize
    - PyTuple_New
    - PySequence_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter__flatten(PyObject *module, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3177,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3178,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3179,1
    - Dst: CHECK_STRING_LENGTH
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3180,1
    - Dst: Tkapp_New
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - module
    - screenName
    - baseName
    - className
    - interactive
    - wantobjects
    - wantTk
    - sync
    - use
    argTypes:
    - PyObject*
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3168
    functionDepth: 3
    functionLinenumber: 3168
    functionLinenumberEnd: 3185
    functionName: _tkinter_create_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - Tkapp_New
    - CHECK_STRING_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_tkinter_create_impl(PyObject *module, const char *screenName,\n
      \                    const char *baseName, const char *className,\n                     int
      interactive, int wantobjects, int wantTk, int sync,\n                     const
      char *use)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - new_val
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3198
    functionDepth: 1
    functionLinenumber: 3198
    functionLinenumberEnd: 3209
    functionName: _tkinter_setbusywaitinterval_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_setbusywaitinterval_impl(PyObject *module, int new_val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3217
    functionDepth: 0
    functionLinenumber: 3217
    functionLinenumberEnd: 3222
    functionName: _tkinter_getbusywaitinterval_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _tkinter_getbusywaitinterval_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clientData
    - mask
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3320
      start: 3316
    functionDepth: 0
    functionLinenumber: 3316
    functionLinenumberEnd: 3320
    functionName: MyFileProc
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MyFileProc(void *clientData, int mask)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3331,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3335,1
    - Dst: Tcl_CreateFileHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3336,1
    - Dst: _kbhit
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3341,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3347,1
    - Dst: Tcl_DoOneEvent
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3350,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3353,1
    - Dst: Sleep
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3355,1
    - Dst: Tcl_DeleteFileHandler
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3362,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3366,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3368,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3325
    functionDepth: 1
    functionLinenumber: 3325
    functionLinenumberEnd: 3372
    functionName: EventHook
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 2
    functionsReached:
    - PyEval_RestoreThread
    - PyErr_Print
    - Tcl_DeleteFileHandler
    - Tcl_CreateFileHandler
    - PyThread_acquire_lock
    - PyEval_SaveThread
    - Tcl_DoOneEvent
    - _kbhit
    - Sleep
    - PyThread_release_lock
    - PyErr_Restore
    - fileno
    linkageType: ''
    returnType: int
    signature: int EventHook(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3376
    functionDepth: 1
    functionLinenumber: 3376
    functionLinenumberEnd: 3385
    functionName: EnableEventHook
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - PyThreadState_Get
    linkageType: ''
    returnType: void
    signature: void EnableEventHook(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tk_GetNumMainWindows
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3387
    functionDepth: 0
    functionLinenumber: 3387
    functionLinenumberEnd: 3395
    functionName: DisableEventHook
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 1
    functionsReached:
    - Tk_GetNumMainWindows
    linkageType: ''
    returnType: void
    signature: void DisableEventHook(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3415,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3419,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3423,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3428,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3430,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3431,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3437,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3441,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3445,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3448,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3449,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3453,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3456,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3457,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3460,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3461,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3465,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3469,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3472,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3473,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3476,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3477,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3483,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3487,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3489,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3494,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3496,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3500,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3502,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3509,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3515,1
    - Dst: Tk_MacOSXSetupTkNotifier
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3531,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3537,1
    - Dst: Py_GetProgramName
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3537,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3539,1
    - Dst: GetEnvironmentVariableW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3547,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3549,1
    - Dst: _get_tcl_lib_path
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3550,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3552,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3556,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3558,1
    - Dst: SetEnvironmentVariableW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3561,1
    - Dst: Tcl_FindExecutable
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3566,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3566,1
    - Dst: SetEnvironmentVariableW
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3569,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3570,1
    - Dst: Tcl_FindExecutable
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3573,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3573,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3577,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3580,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3581,1
    - Dst: Py_AtExit
      Src: /src/Python-3.8.3/Modules/_tkinter.c:3589,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3410
    functionDepth: 2
    functionLinenumber: 3410
    functionLinenumberEnd: 3592
    functionName: PyInit__tkinter
    functionSourceFile: /src/Python-3.8.3/Modules/_tkinter.c
    functionUses: 0
    functionsReached:
    - _get_tcl_lib_path
    - PyErr_NewException
    - Tcl_FindExecutable
    - GetLastError
    - PyErr_Occurred
    - Py_INCREF
    - SetEnvironmentVariableW
    - PyModule_Create
    - PyUnicode_FromWideChar
    - Tk_MacOSXSetupTkNotifier
    - PyType_FromSpec
    - Py_XDECREF
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - Py_AtExit
    - PyMem_Free
    - PyBytes_AS_STRING
    - Py_GetProgramName
    - PyUnicode_EncodeFSDefault
    - PyModule_AddObject
    - GetEnvironmentVariableW
    - PyThread_allocate_lock
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tkinter(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: F_U_TO_PY
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:44,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:46,1
    - Dst: F_PY_TO_U
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:49,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:50,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:51,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:54,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:56,1
    - Dst: F_S_TO_PY
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:59,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:61,1
    - Dst: F_PY_TO_S
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:65,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:66,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:69,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:71,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:84,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:86,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:90,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:92,1
    - Dst: F_PY_TO_U
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:96,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:97,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:99,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:100,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:103,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:104,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:107,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:109,1
    - Dst: PyNumber_Lshift
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:112,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:113,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:115,1
    - Dst: F_PY_TO_U
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:118,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:119,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:120,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:123,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:124,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:127,1
    - Dst: PyNumber_Rshift
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:131,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:132,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:134,1
    - Dst: F_PY_TO_S
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:137,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:138,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:139,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:142,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:143,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:146,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:150,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:151,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:153,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:156,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:157,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:159,1
    - Dst: F_PY_TO_S
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:162,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:163,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:164,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:167,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:168,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:171,1
    - Dst: UNBIND
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:172,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:174,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:175,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:176,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:184,1
    - Dst: F_PY_TO_S
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:187,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:188,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:189,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:190,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:192,1
    - Dst: F_PY_TO_U
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:194,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:195,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:196,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:197,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:198,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:202,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/testcapi_long.h:205,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 99
    argCount: 1
    argNames:
    - error(const char*)
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 207
    functionName: TESTNAME
    functionSourceFile: /src/Python-3.8.3/Modules/testcapi_long.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyNumber_Lshift
    - F_PY_TO_U
    - F_PY_TO_S
    - F_S_TO_PY
    - error
    - PyNumber_Negative
    - PyErr_ExceptionMatches
    - PyNumber_Subtract
    - F_U_TO_PY
    - UNBIND
    - PyNumber_Rshift
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      TESTNAME(PyObject *error(const char*))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Register
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - search_function
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: _codecs_register
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_Register
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_register(PyObject *module, PyObject *search_function)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - encoding
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: _codecs_lookup_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup_impl(PyObject *module, const char *encoding)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:107,1
    - Dst: PyCodec_Encode
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: _codecs_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_Encode
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_encode_impl(PyObject *module, PyObject *obj, const
      char *encoding,\n                    const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:134,1
    - Dst: PyCodec_Decode
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: _codecs_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_Decode
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_decode_impl(PyObject *module, PyObject *obj, const
      char *encoding,\n                    const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Forget
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - encoding
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    functionName: _codecs__forget_codec_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyCodec_Forget
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs__forget_codec_impl(PyObject *module, const char *encoding)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - decoded
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: codec_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *codec_tuple(PyObject *decoded,\n                      Py_ssize_t
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_DecodeEscape
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:183,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: _codecs_escape_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_DecodeEscape
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_escape_decode_impl(PyObject *module, Py_buffer
      *data,\n                           const char *errors)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:206,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:211,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:219,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:223,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:223,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:224,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:243,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:243,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts:
    - condition: (newsize - (p - PyBytes_AS_STRING(v)) >= 4)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/Python-3.8.3/Modules/_codecsmodule.c
    constantsTouched: []
    func_position:
      end: 249
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 249
    functionName: _codecs_escape_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_SetString
    - codec_tuple
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_escape_encode_impl(PyObject *module, PyObject
      *data,\n                           const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF7Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:266,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: _codecs_utf_7_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF7Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_7_decode_impl(PyObject *module, Py_buffer
      *data,\n                          const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:286,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: _codecs_utf_8_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_8_decode_impl(PyObject *module, Py_buffer
      *data,\n                          const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:308,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: _codecs_utf_16_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_decode_impl(PyObject *module, Py_buffer
      *data,\n                           const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:330,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 334
    functionName: _codecs_utf_16_le_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_le_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:352,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: _codecs_utf_16_be_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_be_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:382,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - module
    - data
    - errors
    - byteorder
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: _codecs_utf_16_ex_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_DecodeUTF16Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_ex_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int byteorder, int
      final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:406,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: _codecs_utf_32_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF32Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_decode_impl(PyObject *module, Py_buffer
      *data,\n                           const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:428,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: _codecs_utf_32_le_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF32Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_le_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:450,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 454
    functionName: _codecs_utf_32_be_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF32Stateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_be_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:478,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - module
    - data
    - errors
    - byteorder
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: _codecs_utf_32_ex_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF32Stateful
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer
      *data,\n                              const char *errors, int byteorder, int
      final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUnicodeEscape
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:498,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: _codecs_unicode_escape_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeUnicodeEscape
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer
      *data,\n                                   const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeRawUnicodeEscape
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:515,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: _codecs_raw_unicode_escape_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeRawUnicodeEscape
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_raw_unicode_escape_decode_impl(PyObject *module,
      Py_buffer *data,\n                                       const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:532,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: _codecs_latin_1_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeLatin1
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_latin_1_decode_impl(PyObject *module, Py_buffer
      *data,\n                            const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:548,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: _codecs_ascii_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeASCII
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_ascii_decode_impl(PyObject *module, Py_buffer
      *data,\n                          const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeCharmap
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:570,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - mapping
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 572
    functionName: _codecs_charmap_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - codec_tuple
    - PyUnicode_DecodeCharmap
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_charmap_decode_impl(PyObject *module, Py_buffer
      *data,\n                            const char *errors, PyObject *mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeMBCSStateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:590,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: _codecs_mbcs_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeMBCSStateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_mbcs_decode_impl(PyObject *module, Py_buffer *data,\n
      \                        const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeCodePageStateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:609,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 612
    functionName: _codecs_oem_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeCodePageStateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_oem_decode_impl(PyObject *module, Py_buffer *data,\n
      \                       const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeCodePageStateful
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:629,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - codepage
    - data
    - errors
    - final
    argTypes:
    - PyObject*
    - int
    - Py_buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 634
    functionName: _codecs_code_page_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeCodePageStateful
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_code_page_decode_impl(PyObject *module, int codepage,\n
      \                             Py_buffer *data, const char *errors, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:652,1
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - data
    - errors
    argTypes:
    - PyObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 654
    functionName: _codecs_readbuffer_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_readbuffer_encode_impl(PyObject *module, Py_buffer
      *data,\n                               const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:668,1
    - Dst: _PyUnicode_EncodeUTF7
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:668,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 670
    functionName: _codecs_utf_7_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF7
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_7_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:684,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:684,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: _codecs_utf_8_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_8_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:708,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:708,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 710
    functionName: _codecs_utf_16_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_encode_impl(PyObject *module, PyObject
      *str,\n                           const char *errors, int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:724,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:724,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: _codecs_utf_16_le_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_le_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:740,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:740,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: _codecs_utf_16_be_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF16
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_16_be_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:764,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:764,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 766
    functionName: _codecs_utf_32_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_encode_impl(PyObject *module, PyObject
      *str,\n                           const char *errors, int byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:780,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:780,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 782
    functionName: _codecs_utf_32_le_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_le_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:796,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:796,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 798
    functionName: _codecs_utf_32_be_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeUTF32
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_utf_32_be_encode_impl(PyObject *module, PyObject
      *str,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:812,1
    - Dst: PyUnicode_AsUnicodeEscapeString
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:812,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 814
    functionName: _codecs_unicode_escape_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUnicodeEscapeString
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_unicode_escape_encode_impl(PyObject *module, PyObject
      *str,\n                                   const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:828,1
    - Dst: PyUnicode_AsRawUnicodeEscapeString
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:828,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 830
    functionName: _codecs_raw_unicode_escape_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsRawUnicodeEscapeString
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_raw_unicode_escape_encode_impl(PyObject *module,
      PyObject *str,\n                                       const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:844,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:844,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 846
    functionName: _codecs_latin_1_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_AsLatin1String
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_latin_1_encode_impl(PyObject *module, PyObject
      *str,\n                            const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:860,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:860,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 862
    functionName: _codecs_ascii_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsASCIIString
    - PyUnicode_GET_LENGTH
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_ascii_encode_impl(PyObject *module, PyObject *str,\n
      \                         const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:880,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:880,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - str
    - errors
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 882
    functionName: _codecs_charmap_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - _PyUnicode_EncodeCharmap
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_charmap_encode_impl(PyObject *module, PyObject
      *str,\n                            const char *errors, PyObject *mapping)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_BuildEncodingMap
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - map
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 895
    functionName: _codecs_charmap_build_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_BuildEncodingMap
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_build_impl(PyObject *module, PyObject *map)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:910,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:910,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 912
    functionName: _codecs_mbcs_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_mbcs_encode_impl(PyObject *module, PyObject *str, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:925,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:925,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - str
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 927
    functionName: _codecs_oem_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_oem_encode_impl(PyObject *module, PyObject *str, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_tuple
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:942,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:942,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - code_page
    - str
    - errors
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 944
    functionName: _codecs_code_page_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_EncodeCodePage
    - codec_tuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_code_page_encode_impl(PyObject *module, int code_page,
      PyObject *str,\n                              const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_RegisterError
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - errors
    - handler
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 971
    functionName: _codecs_register_error_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_RegisterError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_codecs_register_error_impl(PyObject *module, const char
      *errors,\n                            PyObject *handler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 989
    functionName: _codecs_lookup_error_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_LookupError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup_error_impl(PyObject *module, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_codecsmodule.c:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: PyInit__codecs
    functionSourceFile: /src/Python-3.8.3/Modules/_codecsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__codecs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_operator.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: _operator_truth_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _operator_truth_impl(PyObject *module, PyObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_operator.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: _operator_add_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_add_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/_operator.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: _operator_sub_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Subtract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_sub_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_operator.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: _operator_mul_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Multiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_mul_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_MatrixMultiply
      Src: /src/Python-3.8.3/Modules/_operator.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: _operator_matmul_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_MatrixMultiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_matmul_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Modules/_operator.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: _operator_floordiv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_FloorDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_floordiv_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_TrueDivide
      Src: /src/Python-3.8.3/Modules/_operator.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: _operator_truediv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_TrueDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_truediv_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Remainder
      Src: /src/Python-3.8.3/Modules/_operator.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: _operator_mod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Remainder
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_mod_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Modules/_operator.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: _operator_neg
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Negative
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_neg(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Positive
      Src: /src/Python-3.8.3/Modules/_operator.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: _operator_pos
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Positive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_pos(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Absolute
      Src: /src/Python-3.8.3/Modules/_operator.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: _operator_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Absolute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_abs(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Invert
      Src: /src/Python-3.8.3/Modules/_operator.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: _operator_inv
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Invert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_inv(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Invert
      Src: /src/Python-3.8.3/Modules/_operator.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: _operator_invert
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Invert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_invert(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Lshift
      Src: /src/Python-3.8.3/Modules/_operator.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: _operator_lshift_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Lshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_lshift_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Rshift
      Src: /src/Python-3.8.3/Modules/_operator.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: _operator_rshift_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Rshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_rshift_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Not
      Src: /src/Python-3.8.3/Modules/_operator.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: _operator_not__impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_Not
    linkageType: ''
    returnType: int
    signature: int _operator_not__impl(PyObject *module, PyObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_And
      Src: /src/Python-3.8.3/Modules/_operator.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: _operator_and__impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_And
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_and__impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Xor
      Src: /src/Python-3.8.3/Modules/_operator.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: _operator_xor_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Xor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_xor_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Or
      Src: /src/Python-3.8.3/Modules/_operator.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: _operator_or__impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Or
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_or__impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceAdd
      Src: /src/Python-3.8.3/Modules/_operator.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: _operator_iadd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceAdd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iadd_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceSubtract
      Src: /src/Python-3.8.3/Modules/_operator.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: _operator_isub_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceSubtract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_isub_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceMultiply
      Src: /src/Python-3.8.3/Modules/_operator.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: _operator_imul_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceMultiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imul_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceMatrixMultiply
      Src: /src/Python-3.8.3/Modules/_operator.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: _operator_imatmul_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceMatrixMultiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imatmul_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceFloorDivide
      Src: /src/Python-3.8.3/Modules/_operator.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: _operator_ifloordiv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceFloorDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ifloordiv_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceTrueDivide
      Src: /src/Python-3.8.3/Modules/_operator.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: _operator_itruediv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceTrueDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_itruediv_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceRemainder
      Src: /src/Python-3.8.3/Modules/_operator.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: _operator_imod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceRemainder
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imod_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceLshift
      Src: /src/Python-3.8.3/Modules/_operator.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: _operator_ilshift_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceLshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ilshift_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceRshift
      Src: /src/Python-3.8.3/Modules/_operator.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: _operator_irshift_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceRshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_irshift_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceAnd
      Src: /src/Python-3.8.3/Modules/_operator.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: _operator_iand_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceAnd
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iand_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceXor
      Src: /src/Python-3.8.3/Modules/_operator.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: _operator_ixor_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceXor
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ixor_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Modules/_operator.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: _operator_ior_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceOr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ior_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Concat
      Src: /src/Python-3.8.3/Modules/_operator.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: _operator_concat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PySequence_Concat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_concat_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_InPlaceConcat
      Src: /src/Python-3.8.3/Modules/_operator.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: _operator_iconcat_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PySequence_InPlaceConcat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iconcat_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Modules/_operator.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 475
    functionName: _operator_contains_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    linkageType: ''
    returnType: int
    signature: int _operator_contains_impl(PyObject *module, PyObject *a, PyObject
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Index
      Src: /src/Python-3.8.3/Modules/_operator.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: _operator_indexOf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PySequence_Index
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _operator_indexOf_impl(PyObject *module, PyObject *a, PyObject
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Count
      Src: /src/Python-3.8.3/Modules/_operator.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: _operator_countOf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PySequence_Count
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _operator_countOf_impl(PyObject *module, PyObject *a, PyObject
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_operator.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: _operator_getitem_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_getitem_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Modules/_operator.c:540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - a
    - b
    - c
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: _operator_setitem_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_operator_setitem_impl(PyObject *module, PyObject *a,
      PyObject *b,\n                       PyObject *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_DelItem
      Src: /src/Python-3.8.3/Modules/_operator.c:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: _operator_delitem_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_DelItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_delitem_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: _operator_eq_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_eq_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: _operator_ne_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ne_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: _operator_lt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_lt_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 614
    functionName: _operator_le_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_le_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 627
    functionName: _operator_gt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_gt_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_operator.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: _operator_ge_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ge_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Power
      Src: /src/Python-3.8.3/Modules/_operator.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 653
    functionName: _operator_pow_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Power
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_pow_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_InPlacePower
      Src: /src/Python-3.8.3/Modules/_operator.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 666
    functionName: _operator_ipow_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlacePower
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ipow_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_operator.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 682
    functionName: _operator_index
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_index(PyObject *module, PyObject *a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: _operator_is__impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is__impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 714
    functionName: _operator_is_not_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_not_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - a
    - b
    - len_a
    - len_b
    argTypes:
    - unsigned char*
    - unsigned char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 762
    functionName: _tscmp
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _tscmp(const unsigned char *a, const unsigned char *b,\n        Py_ssize_t
      len_a, Py_ssize_t len_b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_LengthHint
      Src: /src/Python-3.8.3/Modules/_operator.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - obj
    - default_value
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: _operator_length_hint_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_LengthHint
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _operator_length_hint_impl(PyObject *module, PyObject *obj,\n
      \                          Py_ssize_t default_value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:811,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:811,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_operator.c:812,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_operator.c:812,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_operator.c:815,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_operator.c:815,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:816,1
    - Dst: _tscmp
      Src: /src/Python-3.8.3/Modules/_operator.c:822,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_operator.c:822,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_operator.c:823,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_operator.c:824,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_operator.c:825,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_operator.c:832,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_operator.c:832,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_operator.c:833,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:836,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:836,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_operator.c:840,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:844,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:846,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_operator.c:850,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:851,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:855,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:857,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:858,1
    - Dst: _tscmp
      Src: /src/Python-3.8.3/Modules/_operator.c:862,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:867,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_operator.c:868,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_operator.c:871,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 872
    functionName: _operator__compare_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - _tscmp
    - PyUnicode_READY
    - PyObject_CheckBuffer
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyErr_SetString
    - Py_TYPE
    - PyUnicode_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator__compare_digest_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_operator.c:954,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:957,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_operator.c:959,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_operator.c:965,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:969,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_operator.c:973,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_operator.c:974,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_operator.c:981,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_operator.c:988,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 990
    functionName: itemgetter_new
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyLong_AsSsize_t
    - _PyArg_NoKeywords
    - PyObject_GC_New
    - PyLong_CheckExact
    - PyArg_UnpackTuple
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_operator.c:995,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:996,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_operator.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ig
    argTypes:
    - itemgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 998
    functionName: itemgetter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void itemgetter_dealloc(itemgetterobject *ig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_operator.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ig
    - visit
    - arg
    argTypes:
    - itemgetterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1005
    functionName: itemgetter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int itemgetter_traverse(itemgetterobject *ig, visitproc visit, void
      *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_operator.c:1013,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_operator.c:1013,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_operator.c:1014,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_operator.c:1016,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1016,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1019,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_operator.c:1022,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1023,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1025,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1026,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_operator.c:1029,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_operator.c:1032,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:1032,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_operator.c:1033,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1033,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1035,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1041,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_operator.c:1042,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1044,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1047,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - ig
    - args
    - kw
    argTypes:
    - itemgetterobject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(args))
      pos:
        line_end: 1012
        line_start: 1012
        source_file: /src/Python-3.8.3/Modules/_operator.c
    - condition: (PyTuple_Check(ig->item))
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/Python-3.8.3/Modules/_operator.c
    - condition: (PyTuple_GET_SIZE(ig->item) == nitems)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/Python-3.8.3/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1050
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1050
    functionName: itemgetter_call
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - _PyArg_CheckPositional
    - PyObject_GetItem
    - _PyArg_NoKeywords
    - PyTuple_Check
    - PyTuple_CheckExact
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_call(itemgetterobject *ig, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_operator.c:1058,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1062,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1062,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1066,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1066,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_operator.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ig
    argTypes:
    - itemgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1069
    functionName: itemgetter_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_TYPE
    - Py_ReprEnter
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_repr(itemgetterobject *ig)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_operator.c:1075,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1075,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_operator.c:1076,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ig
    - Py_UNUSED(ignored)
    argTypes:
    - itemgetterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1077
    functionName: itemgetter_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itemgetter_reduce(itemgetterobject *ig, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_operator.c:1156,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1159,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_operator.c:1161,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1165,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1171,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:1177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:1178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1180,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_operator.c:1183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1184,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_operator.c:1187,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_operator.c:1188,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_operator.c:1189,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_operator.c:1194,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1199,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_operator.c:1200,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1201,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1210,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_operator.c:1215,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_operator.c:1218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1223,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_operator.c:1226,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1227,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_operator.c:1233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1237,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_operator.c:1240,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1241,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1243,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1250,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_operator.c:1257,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1259
    functionName: attrgetter_new
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - PyTuple_GET_SIZE
    - PyUnicode_KIND
    - Py_INCREF
    - PyUnicode_Substring
    - _PyArg_NoKeywords
    - PyArg_UnpackTuple
    - PyUnicode_DATA
    - PyObject_GC_Track
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyObject_GC_New
    - PyTuple_New
    - PyUnicode_InternInPlace
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_operator.c:1264,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1265,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_operator.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ag
    argTypes:
    - attrgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1267
    functionName: attrgetter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void attrgetter_dealloc(attrgetterobject *ag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_operator.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ag
    - visit
    - arg
    argTypes:
    - attrgetterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1274
    functionName: attrgetter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int attrgetter_traverse(attrgetterobject *ag, visitproc visit, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_operator.c:1283,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1288,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1290,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_operator.c:1291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1292,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_operator.c:1300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - obj
    - attr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1307
    functionName: dotted_getattr
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_CheckExact
    - PyTuple_GET_ITEM
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotted_getattr(PyObject *obj, PyObject *attr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_operator.c:1315,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_operator.c:1317,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1317,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1319,1
    - Dst: dotted_getattr
      Src: /src/Python-3.8.3/Modules/_operator.c:1321,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1321,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_operator.c:1323,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:1323,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_operator.c:1324,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1324,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1326,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1332,1
    - Dst: dotted_getattr
      Src: /src/Python-3.8.3/Modules/_operator.c:1333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1335,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - ag
    - args
    - kw
    argTypes:
    - attrgetterobject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(ag->attr))
      pos:
        line_end: 1322
        line_start: 1322
        source_file: /src/Python-3.8.3/Modules/_operator.c
    - condition: (PyTuple_GET_SIZE(ag->attr) == nattrs)
      pos:
        line_end: 1323
        line_start: 1323
        source_file: /src/Python-3.8.3/Modules/_operator.c
    constantsTouched: []
    func_position:
      end: 1341
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1341
    functionName: attrgetter_call
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dotted_getattr
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyTuple_Check
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_call(attrgetterobject *ag, PyObject *args, PyObject *kw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_operator.c:1346,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_operator.c:1348,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_operator.c:1352,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - attr
    - attrsep
    argTypes:
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1357
    functionName: dotjoinattr
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_Join
    - Py_INCREF
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotjoinattr(PyObject *attr, PyObject **attrsep)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1364,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1369,1
    - Dst: dotjoinattr
      Src: /src/Python-3.8.3/Modules/_operator.c:1370,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1373,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ag
    argTypes:
    - attrgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1380
    functionName: attrgetter_args
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_New
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyTuple_SET_ITEM
    - dotjoinattr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_args(attrgetterobject *ag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_operator.c:1386,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1390,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1390,1
    - Dst: dotjoinattr
      Src: /src/Python-3.8.3/Modules/_operator.c:1395,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1395,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1397,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1398,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1400,1
    - Dst: attrgetter_args
      Src: /src/Python-3.8.3/Modules/_operator.c:1403,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1405,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1406,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1407,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_operator.c:1410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - ag
    argTypes:
    - attrgetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1412
    functionName: attrgetter_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_DECREF
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - attrgetter_args
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - dotjoinattr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_repr(attrgetterobject *ag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: attrgetter_args
      Src: /src/Python-3.8.3/Modules/_operator.c:1417,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_operator.c:1421,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ag
    - Py_UNUSED(ignored)
    argTypes:
    - attrgetterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1414
    functionDepth: 3
    functionLinenumber: 1414
    functionLinenumberEnd: 1422
    functionName: attrgetter_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - attrgetter_args
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      attrgetter_reduce(attrgetterobject *ag, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1501,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:1502,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1507,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_operator.c:1508,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:1509,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1515,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1519,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1520,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_operator.c:1521,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1524,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/_operator.c:1527,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1529,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_operator.c:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1535
    functionName: methodcaller_new
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyUnicode_InternInPlace
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_DECREF
    - PyObject_GC_New
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_operator.c:1540,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1541,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1542,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1543,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_operator.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - mc
    argTypes:
    - methodcallerobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1545
    functionName: methodcaller_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void methodcaller_dealloc(methodcallerobject *mc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_operator.c:1550,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_operator.c:1551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mc
    - visit
    - arg
    argTypes:
    - methodcallerobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1547
    functionDepth: 1
    functionLinenumber: 1547
    functionLinenumberEnd: 1553
    functionName: methodcaller_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int methodcaller_traverse(methodcallerobject *mc, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_operator.c:1560,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_operator.c:1562,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1562,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1564,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_operator.c:1565,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_operator.c:1568,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - mc
    - args
    - kw
    argTypes:
    - methodcallerobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1571
    functionName: methodcaller_call
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyObject_Call
    - PyTuple_GET_ITEM
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_call(methodcallerobject *mc, PyObject *args, PyObject *kw)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_operator.c:1578,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1582,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1582,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1585,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1586,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1590,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1590,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_operator.c:1591,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1595,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_operator.c:1597,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/_operator.c:1602,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1602,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1605,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_operator.c:1611,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1617,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1620,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_operator.c:1624,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_operator.c:1630,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_operator.c:1634,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1635,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_operator.c:1639,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1639,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1644,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_operator.c:1645,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 1
    argNames:
    - mc
    argTypes:
    - methodcallerobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1647
    functionName: methodcaller_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyDict_Next
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyUnicode_Join
    - PyDict_GET_SIZE
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyErr_SetString
    - PyObject_Repr
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_repr(methodcallerobject *mc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1653,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_operator.c:1655,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_operator.c:1656,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1659,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1660,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1662,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1663,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_operator.c:1664,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_operator.c:1666,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1666,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_operator.c:1674,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_operator.c:1675,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_operator.c:1678,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1679,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_operator.c:1683,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Modules/_operator.c:1685,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1687,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_operator.c:1688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - mc
    - Py_UNUSED(ignored)
    argTypes:
    - methodcallerobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1690
    functionName: methodcaller_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - _PyObject_GetAttrId
    - PyDict_GET_SIZE
    - _Py_IDENTIFIER
    - _PyObject_FastCallDict
    - Py_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_operator.c:1770,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_operator.c:1774,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1776,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_operator.c:1777,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_operator.c:1779,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1781,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_operator.c:1782,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_operator.c:1784,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_operator.c:1786,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_operator.c:1787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1789
    functionName: PyInit__operator
    functionSourceFile: /src/Python-3.8.3/Modules/_operator.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__operator(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7651
      start: 7642
    functionDepth: 0
    functionLinenumber: 7642
    functionLinenumberEnd: 7651
    functionName: get_change_3_2_0
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: change_record
    signature: change_record * get_change_3_2_0(Py_UCS4 n)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7663
      start: 7653
    functionDepth: 0
    functionLinenumber: 7653
    functionLinenumberEnd: 7663
    functionName: normalization_3_2_0
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 normalization_3_2_0(Py_UCS4 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: LOCAL
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: LOCAL
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: TRACE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: SRE_IS_DIGIT
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_IS_DIGIT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: SRE_IS_SPACE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_IS_SPACE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: SRE_IS_LINEBREAK
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_IS_LINEBREAK(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: SRE_IS_WORD
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Modules/_sre.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: sre_lower_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - Py_TOLOWER
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_lower_ascii(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: SRE_LOC_IS_ALNUM
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_LOC_IS_ALNUM(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SRE_LOC_IS_WORD
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_LOC_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/Python-3.8.3/Modules/_sre.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: sre_lower_locale
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - tolower
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_lower_locale(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/Python-3.8.3/Modules/_sre.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: sre_upper_locale
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached:
    - toupper
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_upper_locale(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: SRE_UNI_IS_DIGIT
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_DIGIT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: SRE_UNI_IS_SPACE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_SPACE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: SRE_UNI_IS_LINEBREAK
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_LINEBREAK(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: SRE_UNI_IS_ALNUM
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_ALNUM(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: SRE_UNI_IS_WORD
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE_UNI_IS_WORD(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TOLOWER
      Src: /src/Python-3.8.3/Modules/_sre.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sre_lower_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - Py_UNICODE_TOLOWER
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_lower_unicode(unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TOUPPER
      Src: /src/Python-3.8.3/Modules/_sre.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: sre_upper_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached:
    - Py_UNICODE_TOUPPER
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sre_upper_unicode(unsigned int ch)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SRE_IS_DIGIT
      Src: /src/Python-3.8.3/Modules/_sre.c:143,1
    - Dst: SRE_IS_DIGIT
      Src: /src/Python-3.8.3/Modules/_sre.c:145,1
    - Dst: SRE_IS_SPACE
      Src: /src/Python-3.8.3/Modules/_sre.c:147,1
    - Dst: SRE_IS_SPACE
      Src: /src/Python-3.8.3/Modules/_sre.c:149,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:151,1
    - Dst: SRE_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:153,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/_sre.c:155,1
    - Dst: SRE_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/_sre.c:157,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:160,1
    - Dst: SRE_LOC_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:162,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/Python-3.8.3/Modules/_sre.c:165,1
    - Dst: SRE_UNI_IS_DIGIT
      Src: /src/Python-3.8.3/Modules/_sre.c:167,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/Python-3.8.3/Modules/_sre.c:169,1
    - Dst: SRE_UNI_IS_SPACE
      Src: /src/Python-3.8.3/Modules/_sre.c:171,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:173,1
    - Dst: SRE_UNI_IS_WORD
      Src: /src/Python-3.8.3/Modules/_sre.c:175,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/_sre.c:177,1
    - Dst: SRE_UNI_IS_LINEBREAK
      Src: /src/Python-3.8.3/Modules/_sre.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 2
    argNames:
    - category
    - ch
    argTypes:
    - SRE_CODE
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 182
    functionName: sre_category
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - SRE_IS_WORD
    - SRE_UNI_IS_DIGIT
    - SRE_UNI_IS_LINEBREAK
    - SRE_IS_LINEBREAK
    - SRE_UNI_IS_WORD
    - SRE_LOC_IS_WORD
    - SRE_UNI_IS_SPACE
    - SRE_IS_SPACE
    - SRE_IS_DIGIT
    linkageType: ''
    returnType: void
    signature: void sre_category(SRE_CODE category, unsigned int ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_locale
      Src: /src/Python-3.8.3/Modules/_sre.c:188,1
    - Dst: sre_upper_locale
      Src: /src/Python-3.8.3/Modules/_sre.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pattern
    - ch
    argTypes:
    - SRE_CODE
    - SRE_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: char_loc_ignore
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - sre_lower_locale
    - sre_upper_locale
    linkageType: ''
    returnType: void
    signature: void char_loc_ignore(SRE_CODE pattern, SRE_CODE ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_sre.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: data_stack_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    linkageType: ''
    returnType: void
    signature: void data_stack_dealloc(SRE_STATE* state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:214,1
    - Dst: PyMem_REALLOC
      Src: /src/Python-3.8.3/Modules/_sre.c:215,1
    - Dst: data_stack_dealloc
      Src: /src/Python-3.8.3/Modules/_sre.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - state
    - size
    argTypes:
    - SRE_STATE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 224
    functionName: data_stack_grow
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - data_stack_dealloc
    - TRACE
    - PyMem_REALLOC
    linkageType: ''
    returnType: int
    signature: int data_stack_grow(SRE_STATE* state, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: SRE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRE(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: _sre_getcodesize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _sre_getcodesize_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Modules/_sre.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: _sre_ascii_iscased_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    linkageType: ''
    returnType: int
    signature: int _sre_ascii_iscased_impl(PyObject *module, int character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/_sre.c:307,1
    - Dst: sre_upper_unicode
      Src: /src/Python-3.8.3/Modules/_sre.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: _sre_unicode_iscased_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - sre_upper_unicode
    - sre_lower_unicode
    linkageType: ''
    returnType: int
    signature: int _sre_unicode_iscased_impl(PyObject *module, int character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_ascii
      Src: /src/Python-3.8.3/Modules/_sre.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: _sre_ascii_tolower_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - sre_lower_ascii
    linkageType: ''
    returnType: int
    signature: int _sre_ascii_tolower_impl(PyObject *module, int character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sre_lower_unicode
      Src: /src/Python-3.8.3/Modules/_sre.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - character
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: _sre_unicode_tolower_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - sre_lower_unicode
    linkageType: ''
    returnType: int
    signature: int _sre_unicode_tolower_impl(PyObject *module, int character)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data_stack_dealloc
      Src: /src/Python-3.8.3/Modules/_sre.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: state_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - data_stack_dealloc
    linkageType: ''
    returnType: void
    signature: void state_reset(SRE_STATE* state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sre.c:365,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_sre.c:366,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_sre.c:368,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_sre.c:369,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_sre.c:371,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_sre.c:375,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:376,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:385,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - string
    - p_length
    - p_isbytes
    - p_charsize
    - view
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - int*
    - int*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 391
    functionName: getstring
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_DATA
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyObject_GetBuffer
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: "void *\ngetstring(PyObject* string, Py_ssize_t* p_length,\n          int*
      p_isbytes, int* p_charsize,\n          Py_buffer *view)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sre.c:403,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_sre.c:405,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_sre.c:407,1
    - Dst: getstring
      Src: /src/Python-3.8.3/Modules/_sre.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:419,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:424,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:450,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/_sre.c:457,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:460,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 5
    argNames:
    - state
    - pattern
    - string
    - start
    - end
    argTypes:
    - SRE_STATE*
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 462
    functionName: state_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - getstring
    - Py_INCREF
    - PyErr_NoMemory
    - PyMem_Del
    - PyBuffer_Release
    - PyErr_SetString
    - memset
    linkageType: ''
    returnType: void
    signature: "void state_init(SRE_STATE* state, PatternObject* pattern, PyObject*
      string,\n           Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:468,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:469,1
    - Dst: data_stack_dealloc
      Src: /src/Python-3.8.3/Modules/_sre.c:470,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/_sre.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - SRE_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: state_fini
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - data_stack_dealloc
    - Py_XDECREF
    - PyBuffer_Release
    - PyMem_Del
    linkageType: ''
    returnType: void
    signature: void state_fini(SRE_STATE* state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: STATE_OFFSET
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_OFFSET(state, member)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_sre.c:484,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:486,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sre.c:489,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_sre.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - isbytes
    - ptr
    - string
    - start
    - end
    argTypes:
    - int
    - void*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 495
    functionName: getslice
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - PyBytes_CheckExact
    - PyUnicode_Substring
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: void
    signature: "void getslice(int isbytes, const void *ptr,\n         PyObject* string,
      Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:512,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:513,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - state
    - index
    - string
    - empty
    argTypes:
    - SRE_STATE*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 517
    functionName: state_getslice
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - getslice
    - STATE_OFFSET
    linkageType: ''
    returnType: void
    signature: void state_getslice(SRE_STATE* state, Py_ssize_t index, PyObject* string,
      int empty)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:525,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_sre.c:531,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - status
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 543
    functionName: pattern_error
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void pattern_error(Py_ssize_t status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_sre.c:549,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:550,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:551,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:552,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Modules/_sre.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 554
    functionName: pattern_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_DEL
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void pattern_dealloc(PatternObject* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sre_ucs1_match
      Src: /src/Python-3.8.3/Modules/_sre.c:560,1
    - Dst: sre_ucs2_match
      Src: /src/Python-3.8.3/Modules/_sre.c:562,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sre.c:563,1
    - Dst: sre_ucs4_match
      Src: /src/Python-3.8.3/Modules/_sre.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - pattern
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    assertStmts:
    - condition: (state->charsize == 4)
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/Python-3.8.3/Modules/_sre.c
    constantsTouched: []
    func_position:
      end: 565
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 565
    functionName: sre_match
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - sre_ucs2_match
    - assert
    - sre_ucs1_match
    - sre_ucs4_match
    linkageType: ''
    returnType: void
    signature: void sre_match(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sre_ucs1_search
      Src: /src/Python-3.8.3/Modules/_sre.c:571,1
    - Dst: sre_ucs2_search
      Src: /src/Python-3.8.3/Modules/_sre.c:573,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sre.c:574,1
    - Dst: sre_ucs4_search
      Src: /src/Python-3.8.3/Modules/_sre.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - pattern
    argTypes:
    - SRE_STATE*
    - SRE_CODE*
    assertStmts:
    - condition: (state->charsize == 4)
      pos:
        line_end: 573
        line_start: 573
        source_file: /src/Python-3.8.3/Modules/_sre.c
    constantsTouched: []
    func_position:
      end: 576
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 576
    functionName: sre_search
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - assert
    - sre_ucs2_search
    - sre_ucs4_search
    - sre_ucs1_search
    linkageType: ''
    returnType: void
    signature: void sre_search(SRE_STATE* state, SRE_CODE* pattern)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:597,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:602,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:602,1
    - Dst: sre_match
      Src: /src/Python-3.8.3/Modules/_sre.c:604,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:604,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:606,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:606,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:607,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:608,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:612,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 615
    functionName: _sre_SRE_Pattern_match_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - state_fini
    - PyErr_Occurred
    - sre_match
    - state_init
    - TRACE
    - pattern_new_match
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_match_impl(PatternObject *self, PyObject
      *string,\n                            Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:636,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:641,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:641,1
    - Dst: sre_match
      Src: /src/Python-3.8.3/Modules/_sre.c:644,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:644,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:646,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:646,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:647,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:648,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:652,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 655
    functionName: _sre_SRE_Pattern_fullmatch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - state_fini
    - PyErr_Occurred
    - sre_match
    - state_init
    - TRACE
    - pattern_new_match
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_fullmatch_impl(PatternObject *self, PyObject
      *string,\n                                Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:678,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:681,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:681,1
    - Dst: sre_search
      Src: /src/Python-3.8.3/Modules/_sre.c:683,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:683,1
    - Dst: TRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:685,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:685,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:687,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:688,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:692,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 695
    functionName: _sre_SRE_Pattern_search_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - state_fini
    - PyErr_Occurred
    - state_init
    - pattern_new_match
    - TRACE
    - sre_search
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_search_impl(PatternObject *self, PyObject
      *string,\n                             Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sre.c:707,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Modules/_sre.c:710,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:711,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sre.c:714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:715,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sre.c:718,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:719,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:720,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - module
    - function
    - args
    argTypes:
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 722
    functionName: call
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 6
    functionsReached:
    - PyUnicode_FromString
    - PyObject_CallObject
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_Import
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call(const char* module, const char* function, PyObject* args)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:744,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sre.c:747,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:749,1
    - Dst: state_reset
      Src: /src/Python-3.8.3/Modules/_sre.c:757,1
    - Dst: sre_search
      Src: /src/Python-3.8.3/Modules/_sre.c:761,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:761,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:762,1
    - Dst: pattern_error
      Src: /src/Python-3.8.3/Modules/_sre.c:768,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:775,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:776,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:777,1
    - Dst: state_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:783,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sre.c:788,1
    - Dst: state_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:794,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:797,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:803,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:811,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:815,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:816,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 819
    functionName: _sre_SRE_Pattern_findall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - pattern_error
    - state_fini
    - PatternObject_GetCode
    - STATE_OFFSET
    - PyErr_Occurred
    - getslice
    - Py_DECREF
    - state_getslice
    - state_reset
    - state_init
    - PyList_Append
    - PyList_New
    - sre_search
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_findall_impl(PatternObject *self, PyObject
      *string,\n                              Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pattern_scanner
      Src: /src/Python-3.8.3/Modules/_sre.c:842,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sre.c:846,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:847,1
    - Dst: PyCallIter_New
      Src: /src/Python-3.8.3/Modules/_sre.c:851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 855
    functionName: _sre_SRE_Pattern_finditer_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyCallIter_New
    - pattern_scanner
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_finditer_impl(PatternObject *self, PyObject
      *string,\n                               Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern_scanner
      Src: /src/Python-3.8.3/Modules/_sre.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 872
    functionName: _sre_SRE_Pattern_scanner_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - pattern_scanner
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_scanner_impl(PatternObject *self, PyObject
      *string,\n                              Py_ssize_t pos, Py_ssize_t endpos)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sre.c:896,1
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:898,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sre.c:901,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:903,1
    - Dst: state_reset
      Src: /src/Python-3.8.3/Modules/_sre.c:912,1
    - Dst: sre_search
      Src: /src/Python-3.8.3/Modules/_sre.c:916,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:916,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:917,1
    - Dst: pattern_error
      Src: /src/Python-3.8.3/Modules/_sre.c:923,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:928,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:929,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:930,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:935,1
    - Dst: state_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:941,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:945,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:957,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:958,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:962,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:963,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:971,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:972,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 3
    argNames:
    - self
    - string
    - maxsplit
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->codesize != 0)
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/Python-3.8.3/Modules/_sre.c
    constantsTouched: []
    func_position:
      end: 975
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 975
    functionName: _sre_SRE_Pattern_split_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - pattern_error
    - state_fini
    - PatternObject_GetCode
    - getslice
    - PyErr_Occurred
    - STATE_OFFSET
    - sre_search
    - Py_DECREF
    - state_getslice
    - state_reset
    - state_init
    - PyList_Append
    - PyList_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_split_impl(PatternObject *self, PyObject
      *string,\n                            Py_ssize_t maxsplit)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_sre.c:995,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:998,1
    - Dst: getstring
      Src: /src/Python-3.8.3/Modules/_sre.c:1004,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_sre.c:1008,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_sre.c:1010,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sre.c:1012,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:1016,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1019,1
    - Dst: call
      Src: /src/Python-3.8.3/Modules/_sre.c:1023,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_sre.c:1025,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_sre.c:1029,1
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:1033,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1034,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sre.c:1038,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1040,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:1041,1
    - Dst: state_reset
      Src: /src/Python-3.8.3/Modules/_sre.c:1049,1
    - Dst: sre_search
      Src: /src/Python-3.8.3/Modules/_sre.c:1053,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:1053,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:1054,1
    - Dst: pattern_error
      Src: /src/Python-3.8.3/Modules/_sre.c:1060,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:1064,1
    - Dst: STATE_OFFSET
      Src: /src/Python-3.8.3/Modules/_sre.c:1065,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:1069,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:1073,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1074,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:1082,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sre.c:1085,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1086,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1092,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:1097,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1098,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:1111,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:1115,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1116,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:1121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1123,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:1126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1128,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:1131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1132,1
    - Dst: _PyBytes_Join
      Src: /src/Python-3.8.3/Modules/_sre.c:1137,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_sre.c:1139,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1141,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_sre.c:1147,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1152,1
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:1153,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1154,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 133
    argCount: 5
    argNames:
    - self
    - ptemplate
    - string
    - count
    - subn
    argTypes:
    - PatternObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 1157
    functionName: pattern_subx
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - STATE_OFFSET
    - state_reset
    - PyList_New
    - sre_search
    - pattern_new_match
    - state_fini
    - PyErr_Occurred
    - Py_INCREF
    - state_init
    - PyTuple_Pack
    - PyErr_Clear
    - getslice
    - getstring
    - Py_DECREF
    - PyUnicode_FindChar
    - memchr
    - pattern_error
    - PatternObject_GetCode
    - Py_BuildValue
    - PyUnicode_Join
    - PyCallable_Check
    - call
    - _PyBytes_Join
    - PyList_Append
    - PyObject_CallFunctionObjArgs
    - PyBuffer_Release
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npattern_subx(PatternObject* self, PyObject* ptemplate,
      PyObject* string,\n             Py_ssize_t count, Py_ssize_t subn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern_subx
      Src: /src/Python-3.8.3/Modules/_sre.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - repl
    - string
    - count
    argTypes:
    - PatternObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1169
    functionDepth: 4
    functionLinenumber: 1169
    functionLinenumberEnd: 1175
    functionName: _sre_SRE_Pattern_sub_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - pattern_subx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_sub_impl(PatternObject *self, PyObject
      *repl,\n                          PyObject *string, Py_ssize_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pattern_subx
      Src: /src/Python-3.8.3/Modules/_sre.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - repl
    - string
    - count
    argTypes:
    - PatternObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1193
    functionName: _sre_SRE_Pattern_subn_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - pattern_subx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_SRE_Pattern_subn_impl(PatternObject *self, PyObject
      *repl,\n                           PyObject *string, Py_ssize_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1206
    functionName: _sre_SRE_Pattern___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___copy___impl(PatternObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - PatternObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1222
    functionName: _sre_SRE_Pattern___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___deepcopy__(PatternObject *self, PyObject *memo)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sre.c:1252,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_sre.c:1256,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sre.c:1258,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:1262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1263,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1266,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_sre.c:1271,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sre.c:1275,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1279,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_sre.c:1282,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sre.c:1284,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_sre.c:1287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1288,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_sre.c:1291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1293,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_sre.c:1296,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1300,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1302
    functionName: pattern_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_Join
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyUnicode_FromFormat
    - PyList_Size
    - PyList_Append
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_repr(PatternObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sre.c:1311,1
    - Dst: PyDictProxy_New
      Src: /src/Python-3.8.3/Modules/_sre.c:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PatternObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1313
    functionName: pattern_groupindex
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyDictProxy_New
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_groupindex(PatternObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:1340,1
    - Dst: PyObject_NEW_VAR
      Src: /src/Python-3.8.3/Modules/_sre.c:1342,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:1353,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_sre.c:1354,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:1357,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:1363,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1364,1
    - Dst: getstring
      Src: /src/Python-3.8.3/Modules/_sre.c:1376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1378,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:1382,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1385,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:1392,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1393,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:1395,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1396,1
    - Dst: _validate
      Src: /src/Python-3.8.3/Modules/_sre.c:1401,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1402,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 7
    argNames:
    - module
    - pattern
    - flags
    - code
    - groups
    - groupindex
    - indexgroup
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1329
    functionDepth: 2
    functionLinenumber: 1329
    functionLinenumberEnd: 1407
    functionName: _sre_compile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - getstring
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_GET_SIZE
    - _validate
    - PyList_GET_ITEM
    - PyObject_NEW_VAR
    - PyBuffer_Release
    - PyErr_SetString
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_sre_compile_impl(PyObject *module, PyObject *pattern,
      int flags,\n                  PyObject *code, Py_ssize_t groups, PyObject *groupindex,\n
      \                 PyObject *indexgroup)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1440
    functionName: VTRACE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTRACE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1442
    functionName: VTRACE
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTRACE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - adj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1473
    functionName: GET_SKIP_ADJ
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SKIP_ADJ(adj)
  - BBCount: 32
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - code
    - end
    argTypes:
    - SRE_CODE*
    - SRE_CODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1559
    functionName: _validate_charset
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _validate_charset(SRE_CODE *code, SRE_CODE *end)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1569,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1584,1
    - Dst: _validate_charset
      Src: /src/Python-3.8.3/Modules/_sre.c:1638,1
    - Dst: _validate_charset
      Src: /src/Python-3.8.3/Modules/_sre.c:1692,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1699,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1713,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1741,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1760,1
    - Dst: GET_SKIP_ADJ
      Src: /src/Python-3.8.3/Modules/_sre.c:1785,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1815,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1816,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1820,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1825,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1826,1
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1840,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1854,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 208
    argCount: 3
    argNames:
    - code
    - end
    - groups
    argTypes:
    - SRE_CODE*
    - SRE_CODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1856
    functionName: _validate_inner
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 1
    functionsReached:
    - VTRACE
    - GET_SKIP_ADJ
    - _validate_inner
    - _validate_charset
    linkageType: ''
    returnType: int
    signature: int _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _validate_inner
      Src: /src/Python-3.8.3/Modules/_sre.c:1864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - code
    - end
    - groups
    argTypes:
    - SRE_CODE*
    - SRE_CODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1858
    functionDepth: 2
    functionLinenumber: 1858
    functionLinenumberEnd: 1865
    functionName: _validate_outer
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - _validate_inner
    linkageType: ''
    returnType: int
    signature: int _validate_outer(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _validate_outer
      Src: /src/Python-3.8.3/Modules/_sre.c:1870,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:1872,1
    - Dst: VTRACE
      Src: /src/Python-3.8.3/Modules/_sre.c:1876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1867
    functionDepth: 3
    functionLinenumber: 1867
    functionLinenumberEnd: 1878
    functionName: _validate
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - _validate_outer
    - VTRACE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _validate(PatternObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1886,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1887,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1888,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Modules/_sre.c:1889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1890
    functionName: match_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyObject_DEL
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void match_dealloc(MatchObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sre.c:1902,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:1907,1
    - Dst: getstring
      Src: /src/Python-3.8.3/Modules/_sre.c:1911,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_sre.c:1917,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_sre.c:1918,1
    - Dst: getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:1919,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sre.c:1921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - index
    - def
    argTypes:
    - MatchObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (0 <= index && index < self->groups)
      pos:
        line_end: 1901
        line_start: 1901
        source_file: /src/Python-3.8.3/Modules/_sre.c
    constantsTouched: []
    func_position:
      end: 1923
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1923
    functionName: match_getslice_by_index
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - getslice
    - getstring
    - Py_INCREF
    - PyBuffer_Release
    - assert
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_getslice_by_index(MatchObject* self, Py_ssize_t index, PyObject* def)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_sre.c:1934,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_sre.c:1935,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sre.c:1941,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_sre.c:1942,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_sre.c:1943,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:1949,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sre.c:1950,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1956
    functionName: match_getindex
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyDict_GetItemWithError
    - PyIndex_Check
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t match_getindex(MatchObject* self, PyObject* index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/Python-3.8.3/Modules/_sre.c:1961,1
    - Dst: match_getslice_by_index
      Src: /src/Python-3.8.3/Modules/_sre.c:1967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - index
    - def
    argTypes:
    - MatchObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1958
    functionDepth: 3
    functionLinenumber: 1958
    functionLinenumberEnd: 1968
    functionName: match_getslice
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - match_getindex
    - match_getslice_by_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_getslice(MatchObject* self, PyObject* index, PyObject* def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call
      Src: /src/Python-3.8.3/Modules/_sre.c:1983,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_sre.c:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1978
    functionDepth: 2
    functionLinenumber: 1978
    functionLinenumberEnd: 1987
    functionName: _sre_SRE_Match_expand_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - call
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_expand_impl(MatchObject *self, PyObject *template)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:1995,1
    - Dst: match_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:1999,1
    - Dst: match_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:2002,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2002,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sre.c:2006,1
    - Dst: match_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:2010,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2011,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2014,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2017,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1989
    functionDepth: 4
    functionLinenumber: 1989
    functionLinenumberEnd: 2022
    functionName: match_group
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - match_getslice
    - PyTuple_GET_SIZE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_group(MatchObject* self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: match_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2024
    functionDepth: 4
    functionLinenumber: 2024
    functionLinenumberEnd: 2028
    functionName: match_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - match_getslice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_getitem(MatchObject* self, PyObject* name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sre.c:2046,1
    - Dst: match_getslice_by_index
      Src: /src/Python-3.8.3/Modules/_sre.c:2052,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2054,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2039
    functionDepth: 3
    functionLinenumber: 2039
    functionLinenumberEnd: 2061
    functionName: _sre_SRE_Match_groups_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyTuple_New
    - Py_DECREF
    - match_getslice_by_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groups_impl(MatchObject *self, PyObject *default_value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sre.c:2082,1
    - Dst: _PyDict_Next
      Src: /src/Python-3.8.3/Modules/_sre.c:2086,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2088,1
    - Dst: match_getslice
      Src: /src/Python-3.8.3/Modules/_sre.c:2089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2091,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_sre.c:2094,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2095,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2096,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2072
    functionDepth: 4
    functionLinenumber: 2072
    functionLinenumberEnd: 2106
    functionName: _sre_SRE_Match_groupdict_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - Py_DECREF
    - _PyDict_Next
    - match_getslice
    - Py_INCREF
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groupdict_impl(MatchObject *self, PyObject *default_value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/Python-3.8.3/Modules/_sre.c:2121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2117
    functionDepth: 2
    functionLinenumber: 2117
    functionLinenumberEnd: 2129
    functionName: _sre_SRE_Match_start_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - match_getindex
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _sre_SRE_Match_start_impl(MatchObject *self, PyObject *group)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/Python-3.8.3/Modules/_sre.c:2144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2140
    functionDepth: 2
    functionLinenumber: 2140
    functionLinenumberEnd: 2152
    functionName: _sre_SRE_Match_end_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - match_getindex
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _sre_SRE_Match_end_impl(MatchObject *self, PyObject *group)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sre.c:2160,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_sre.c:2164,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2167,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_sre.c:2169,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - i1
    - i2
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2179
    functionName: _pair
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: void _pair(Py_ssize_t i1, Py_ssize_t i2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getindex
      Src: /src/Python-3.8.3/Modules/_sre.c:2194,1
    - Dst: _pair
      Src: /src/Python-3.8.3/Modules/_sre.c:2201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - group
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2190
    functionDepth: 2
    functionLinenumber: 2190
    functionLinenumberEnd: 2202
    functionName: _sre_SRE_Match_span_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - _pair
    - match_getindex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_span_impl(MatchObject *self, PyObject *group)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sre.c:2211,1
    - Dst: _pair
      Src: /src/Python-3.8.3/Modules/_sre.c:2216,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2218,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2221,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2228
    functionName: match_regs
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - _pair
    - Py_DECREF
    - Py_INCREF
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_regs(MatchObject* self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2241
    functionName: _sre_SRE_Match___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___copy___impl(MatchObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2251
    functionDepth: 1
    functionLinenumber: 2251
    functionLinenumberEnd: 2257
    functionName: _sre_SRE_Match___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___deepcopy__(MatchObject *self, PyObject *memo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_sre.c:2272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MatchObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2274
    functionName: match_lastindex_get
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_lastindex_get(MatchObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sre.c:2281,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sre.c:2283,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MatchObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2276
    functionDepth: 1
    functionLinenumber: 2276
    functionLinenumberEnd: 2289
    functionName: match_lastgroup_get
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_lastgroup_get(MatchObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2295,1
    - Dst: match_regs
      Src: /src/Python-3.8.3/Modules/_sre.c:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MatchObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2291
    functionDepth: 3
    functionLinenumber: 2291
    functionLinenumberEnd: 2299
    functionName: match_regs_get
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - match_regs
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_regs_get(MatchObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: match_getslice_by_index
      Src: /src/Python-3.8.3/Modules/_sre.c:2305,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_sre.c:2308,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sre.c:2310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - MatchObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2301
    functionDepth: 3
    functionLinenumber: 2301
    functionLinenumberEnd: 2314
    functionName: match_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - Py_TYPE
    - Py_DECREF
    - match_getslice_by_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      match_repr(MatchObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW_VAR
      Src: /src/Python-3.8.3/Modules/_sre.c:2331,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2336,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2339,1
    - Dst: pattern_error
      Src: /src/Python-3.8.3/Modules/_sre.c:2375,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - pattern
    - state
    - status
    argTypes:
    - PatternObject*
    - SRE_STATE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2317
    functionDepth: 2
    functionLinenumber: 2317
    functionLinenumberEnd: 2377
    functionName: pattern_new_match
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 4
    functionsReached:
    - pattern_error
    - PyObject_NEW_VAR
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_new_match(PatternObject* pattern, SRE_STATE* state, Py_ssize_t status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: state_fini
      Src: /src/Python-3.8.3/Modules/_sre.c:2386,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2387,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Modules/_sre.c:2388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2383
    functionDepth: 3
    functionLinenumber: 2383
    functionLinenumberEnd: 2389
    functionName: scanner_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - state_fini
    - PyObject_DEL
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(ScannerObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state_reset
      Src: /src/Python-3.8.3/Modules/_sre.c:2407,1
    - Dst: sre_match
      Src: /src/Python-3.8.3/Modules/_sre.c:2411,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:2411,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:2412,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:2415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2396
    functionDepth: 3
    functionLinenumber: 2396
    functionLinenumberEnd: 2426
    functionName: _sre_SRE_Scanner_match_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - PyErr_Occurred
    - sre_match
    - state_reset
    - pattern_new_match
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_match_impl(ScannerObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: state_reset
      Src: /src/Python-3.8.3/Modules/_sre.c:2445,1
    - Dst: sre_search
      Src: /src/Python-3.8.3/Modules/_sre.c:2449,1
    - Dst: PatternObject_GetCode
      Src: /src/Python-3.8.3/Modules/_sre.c:2449,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sre.c:2450,1
    - Dst: pattern_new_match
      Src: /src/Python-3.8.3/Modules/_sre.c:2453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - ScannerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2434
    functionDepth: 3
    functionLinenumber: 2434
    functionLinenumberEnd: 2464
    functionName: _sre_SRE_Scanner_search_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PatternObject_GetCode
    - PyErr_Occurred
    - state_reset
    - pattern_new_match
    - sre_search
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_search_impl(ScannerObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/Modules/_sre.c:2472,1
    - Dst: state_init
      Src: /src/Python-3.8.3/Modules/_sre.c:2478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2479,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - self
    - string
    - pos
    - endpos
    argTypes:
    - PatternObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2466
    functionDepth: 3
    functionLinenumber: 2466
    functionLinenumberEnd: 2487
    functionName: pattern_scanner
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - state_init
    - PyObject_NEW
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_scanner(PatternObject *self, PyObject *string, Py_ssize_t pos, Py_ssize_t
      endpos)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_sre.c:2494,1
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Modules/_sre.c:2499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PatternObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2510
    functionName: pattern_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _Py_HashBytes
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pattern_hash(PatternObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sre.c:2522,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sre.c:2522,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2528,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_sre.c:2542,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_sre.c:2546,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2555,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - lefto
    - righto
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2556
    functionName: pattern_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - memcmp
    - Py_TYPE
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pattern_richcompare(PyObject *lefto, PyObject *righto, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2582
    functionName: PAT_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAT_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2655
    functionName: MATCH_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MATCH_OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2709
    functionName: SCAN_OFF
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCAN_OFF(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sre.c:2775,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sre.c:2775,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sre.c:2776,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_sre.c:2779,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_sre.c:2782,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2784,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sre.c:2786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2787,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2790,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sre.c:2792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2793,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2796,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sre.c:2798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2799,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_sre.c:2802,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sre.c:2804,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2805,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sre.c:2808,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sre.c:2810,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sre.c:2811,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2768
    functionDepth: 1
    functionLinenumber: 2768
    functionLinenumberEnd: 2814
    functionName: PyInit__sre
    functionSourceFile: /src/Python-3.8.3/Modules/_sre.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - Py_DECREF
    - PyModule_GetDict
    - PyModule_Create
    - PyDict_SetItemString
    - PyLong_FromUnsignedLong
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sre(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ITEM
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: _Py_SLIST_ITEM_NEXT
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SLIST_ITEM_NEXT(ITEM)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: _Py_SLIST_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SLIST_HEAD(SLIST)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ENTRY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: _Py_HASHTABLE_ENTRY_PKEY
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_ENTRY_PKEY(ENTRY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: _Py_HASHTABLE_ENTRY_PDATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_ENTRY_PDATA(TABLE, ENTRY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - PKEY
    - ','
    - DST_KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: _Py_HASHTABLE_READ_KEY
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_READ_KEY(TABLE, PKEY, DST_KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - ','
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: _Py_HASHTABLE_ENTRY_READ_KEY
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_ENTRY_READ_KEY(TABLE, ENTRY, KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - ','
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: _Py_HASHTABLE_ENTRY_READ_DATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_ENTRY_READ_DATA(TABLE, ENTRY, DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - ENTRY
    - ','
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: _Py_HASHTABLE_ENTRY_WRITE_DATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_ENTRY_WRITE_DATA(TABLE, ENTRY, DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - KEY
    - ','
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: _Py_HASHTABLE_SET
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_SET(TABLE, KEY, DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TABLE
    - ','
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: _Py_HASHTABLE_SET_NODATA
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_SET_NODATA(TABLE, KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TABLE
    - ','
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: _Py_HASHTABLE_GET_ENTRY
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_GET_ENTRY(TABLE, KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - KEY
    - ','
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: _Py_HASHTABLE_GET
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_GET(TABLE, KEY, DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TABLE
    - ','
    - KEY
    - ','
    - DATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: _Py_HASHTABLE_POP
    functionSourceFile: /src/Python-3.8.3/Modules/hashtable.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_HASHTABLE_POP(TABLE, KEY, DATA)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testimportmultiple.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: PyInit__testimportmultiple
    functionSourceFile: /src/Python-3.8.3/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testimportmultiple(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testimportmultiple.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: PyInit__testimportmultiple_foo
    functionSourceFile: /src/Python-3.8.3/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testimportmultiple_foo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testimportmultiple.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: PyInit__testimportmultiple_bar
    functionSourceFile: /src/Python-3.8.3/Modules/_testimportmultiple.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testimportmultiple_bar(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 74
    functionName: _getrecord_ex
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyUnicode_DatabaseRecord
    signature: '_PyUnicode_DatabaseRecord *

      _getrecord_ex(Py_UCS4 code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: get_old_record
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get_old_record(self, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: UCD_Check
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCD_Check(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/unicodedata.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - name
    - (*getrecord)(Py_UCS4)
    argTypes:
    - char*
    - change_record*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: new_previous_version
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_previous_version(const char*name, const change_record*
      (*getrecord)(Py_UCS4),\n                     Py_UCS4 (*normalization)(Py_UCS4))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:138,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:139,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Modules/unicodedata.c:152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:155,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:160,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/unicodedata.c:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: unicodedata_UCD_decimal_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_UNICODE_TODECIMAL
    - Py_INCREF
    - get_old_record
    - PyErr_SetString
    - UCD_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_decimal_impl(PyObject *self, int chr,\n
      \                            PyObject *default_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TODIGIT
      Src: /src/Python-3.8.3/Modules/unicodedata.c:188,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:191,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:195,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/unicodedata.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 200
    functionName: unicodedata_UCD_digit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_INCREF
    - Py_UNICODE_TODIGIT
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_digit_impl(PyObject *self, int chr, PyObject *default_value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:226,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:227,1
    - Dst: Py_UNICODE_TONUMERIC
      Src: /src/Python-3.8.3/Modules/unicodedata.c:240,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:243,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:247,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/unicodedata.c:251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 252
    functionName: unicodedata_UCD_numeric_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_TONUMERIC
    - Py_INCREF
    - get_old_record
    - PyErr_SetString
    - PyFloat_FromDouble
    - UCD_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_numeric_impl(PyObject *self, int chr,\n
      \                            PyObject *default_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:270,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:271,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:272,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: unicodedata_UCD_category_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - UCD_Check
    - get_old_record
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_category_impl(PyObject *self, int chr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:297,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:298,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:299,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 306
    functionName: unicodedata_UCD_bidirectional_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - UCD_Check
    - get_old_record
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_bidirectional_impl(PyObject *self, int chr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:326,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:327,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: unicodedata_UCD_combining_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - get_old_record
    - _getrecord_ex
    linkageType: ''
    returnType: int
    signature: int unicodedata_UCD_combining_impl(PyObject *self, int chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:354,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:355,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 363
    functionName: unicodedata_UCD_mirrored_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - get_old_record
    - _getrecord_ex
    linkageType: ''
    returnType: int
    signature: int unicodedata_UCD_mirrored_impl(PyObject *self, int chr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:381,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:382,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:383,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 390
    functionName: unicodedata_UCD_east_asian_width_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - UCD_Check
    - get_old_record
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_east_asian_width_impl(PyObject *self, int chr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:416,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:417,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:419,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/unicodedata.c:441,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:441,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:444,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/unicodedata.c:445,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/unicodedata.c:450,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/unicodedata.c:451,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:453,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/unicodedata.c:455,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - chr
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (prefix_index < Py_ARRAY_LENGTH(decomp_prefix))
      pos:
        line_end: 440
        line_start: 440
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    - condition: (i < sizeof(decomp))
      pos:
        line_end: 449
        line_start: 449
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 456
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 456
    functionName: unicodedata_UCD_decomposition_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - memcpy
    - PyOS_snprintf
    - Py_ARRAY_LENGTH
    - PyUnicode_FromStringAndSize
    - strlen
    - get_old_record
    - assert
    - UCD_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decomposition_impl(PyObject *self, int chr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:463,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:464,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - self
    - code
    - index
    - prefix
    - count
    argTypes:
    - PyObject*
    - Py_UCS4
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 480
    functionName: get_decomp_record
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - get_old_record
    linkageType: ''
    returnType: void
    signature: void get_decomp_record(PyObject *self, Py_UCS4 code, int *index, int
      *prefix, int *count)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:507,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/unicodedata.c:518,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/unicodedata.c:520,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/unicodedata.c:524,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/unicodedata.c:525,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:528,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/unicodedata.c:537,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/unicodedata.c:539,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/unicodedata.c:540,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:561,1
    - Dst: normalization
      Src: /src/Python-3.8.3/Modules/unicodedata.c:562,1
    - Dst: get_decomp_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:570,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/unicodedata.c:588,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/unicodedata.c:590,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/unicodedata.c:594,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/unicodedata.c:595,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:599,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:599,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:600,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:601,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:601,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:609,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/unicodedata.c:610,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:611,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/unicodedata.c:612,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:616,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:616,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:620,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:620,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 623
    functionName: nfd_nfkd
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - PyUnicode_FromKindAndData
    - PyUnicode_READ
    - normalization
    - PyUnicode_WRITE
    - PyErr_NoMemory
    - PyMem_NEW
    - get_decomp_record
    - PyMem_Realloc
    - PyMem_Free
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nfd_nfkd(PyObject *self, PyObject *input, int k)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - nfc
    - code
    argTypes:
    - PyObject*
    - struct reindex*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 639
    functionName: find_nfc_index
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_nfc_index(PyObject *self, struct reindex* nfc, Py_UCS4 code)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nfd_nfkd
      Src: /src/Python-3.8.3/Modules/unicodedata.c:654,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/unicodedata.c:658,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/unicodedata.c:659,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:660,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/unicodedata.c:665,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/unicodedata.c:667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:668,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:687,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:690,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:691,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:696,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:700,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:701,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:704,1
    - Dst: find_nfc_index
      Src: /src/Python-3.8.3/Modules/unicodedata.c:712,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:722,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:724,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:725,1
    - Dst: find_nfc_index
      Src: /src/Python-3.8.3/Modules/unicodedata.c:735,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/unicodedata.c:757,1
    - Dst: find_nfc_index
      Src: /src/Python-3.8.3/Modules/unicodedata.c:760,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/unicodedata.c:770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:773,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/unicodedata.c:774,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/unicodedata.c:776,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 3
    argNames:
    - self
    - input
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (cskipped < 20)
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    constantsTouched: []
    func_position:
      end: 778
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 778
    functionName: nfc_nfkc
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - find_nfc_index
    - assert
    - PyUnicode_READ
    - Py_DECREF
    - nfd_nfkd
    - PyMem_NEW
    - PyErr_NoMemory
    - PyMem_Free
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - _getrecord_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nfc_nfkc(PyObject *self, PyObject *input, int k)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:802,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/unicodedata.c:816,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/unicodedata.c:817,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:818,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:820,1
    - Dst: _getrecord_ex
      Src: /src/Python-3.8.3/Modules/unicodedata.c:821,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - self
    - input
    - nfc
    - k
    - yes_only
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 842
    functionName: is_normalized_quickcheck
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - UCD_Check
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - _getrecord_ex
    linkageType: ''
    returnType: QuickcheckResult
    signature: "QuickcheckResult is_normalized_quickcheck(PyObject *self, PyObject
      *input,\n                         int nfc, int k, bool yes_only)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/unicodedata.c:862,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:866,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:879,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:882,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:886,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:889,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:893,1
    - Dst: is_normalized_quickcheck
      Src: /src/Python-3.8.3/Modules/unicodedata.c:897,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Modules/unicodedata.c:904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:905,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 914
    functionName: unicodedata_UCD_is_normalized_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - Py_INCREF
    - is_normalized_quickcheck
    - _PyUnicode_EqualToASCIIId
    - PyErr_SetString
    - PyUnicode_GET_LENGTH
    - PyUnicode_Compare
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_is_normalized_impl(PyObject *self, PyObject
      *form,\n                                   PyObject *input)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/unicodedata.c:935,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:938,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:942,1
    - Dst: is_normalized_quickcheck
      Src: /src/Python-3.8.3/Modules/unicodedata.c:943,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:944,1
    - Dst: nfc_nfkc
      Src: /src/Python-3.8.3/Modules/unicodedata.c:947,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:949,1
    - Dst: is_normalized_quickcheck
      Src: /src/Python-3.8.3/Modules/unicodedata.c:950,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:951,1
    - Dst: nfc_nfkc
      Src: /src/Python-3.8.3/Modules/unicodedata.c:954,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:956,1
    - Dst: is_normalized_quickcheck
      Src: /src/Python-3.8.3/Modules/unicodedata.c:957,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:958,1
    - Dst: nfd_nfkd
      Src: /src/Python-3.8.3/Modules/unicodedata.c:961,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/unicodedata.c:963,1
    - Dst: is_normalized_quickcheck
      Src: /src/Python-3.8.3/Modules/unicodedata.c:964,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:965,1
    - Dst: nfd_nfkd
      Src: /src/Python-3.8.3/Modules/unicodedata.c:968,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:970,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - self
    - form
    - input
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 930
    functionDepth: 4
    functionLinenumber: 930
    functionLinenumberEnd: 972
    functionName: unicodedata_UCD_normalize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - nfc_nfkc
    - Py_INCREF
    - nfd_nfkd
    - is_normalized_quickcheck
    - _PyUnicode_EqualToASCIIId
    - PyErr_SetString
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_normalize_impl(PyObject *self, PyObject
      *form,\n                               PyObject *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Modules/unicodedata.c:990,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/unicodedata.c:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - s
    - len
    - scale
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 996
    functionName: _gethash
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_TOUPPER
    - Py_CHARMASK
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _gethash(const char *s, int len, int scale)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1041
    functionName: is_unified_ideograph
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_unified_ideograph(Py_UCS4 code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1046
    functionName: IS_ALIAS
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ALIAS(cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1048
    functionName: IS_NAMED_SEQ
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAMED_SEQ(cp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: IS_ALIAS
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1065,1
    - Dst: IS_NAMED_SEQ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1065,1
    - Dst: UCD_Check
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1068,1
    - Dst: IS_ALIAS
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1071,1
    - Dst: IS_NAMED_SEQ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1071,1
    - Dst: get_old_record
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1073,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1090,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1092,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1093,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1094,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1095,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1096,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1097,1
    - Dst: is_unified_ideograph
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1102,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1106,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 5
    argNames:
    - self
    - code
    - buffer
    - buflen
    - with_alias_and_seq
    argTypes:
    - PyObject*
    - Py_UCS4
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1149
    functionName: _getucname
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    - get_old_record
    - IS_ALIAS
    - is_unified_ideograph
    - IS_NAMED_SEQ
    - UCD_Check
    - sprintf
    linkageType: ''
    returnType: int
    signature: "int _getucname(PyObject *self, Py_UCS4 code, char* buffer, int buflen,\n
      \          int with_alias_and_seq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getucname
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1157,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1160,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - self
    - code
    - name
    - namelen
    argTypes:
    - PyObject*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1164
    functionName: _cmpname
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getucname
    - Py_TOUPPER
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int _cmpname(PyObject *self, int code, const char* name, int namelen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1173,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1173,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - str
    - len
    - pos
    - count
    - column
    argTypes:
    - char*
    - int*
    - int*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1184
    functionName: find_syllable
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - strlen
    - strncmp
    linkageType: ''
    returnType: void
    signature: void find_syllable(const char *str, int *len, int *pos, int count,
      int column)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_NAMED_SEQ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1190,1
    - Dst: IS_ALIAS
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - cp
    - code
    - with_named_seq
    argTypes:
    - unsigned int
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1199
    functionName: _check_alias_and_seq
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - IS_NAMED_SEQ
    - IS_ALIAS
    linkageType: ''
    returnType: int
    signature: int _check_alias_and_seq(unsigned int cp, Py_UCS4* code, int with_named_seq)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1214,1
    - Dst: find_syllable
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1217,1
    - Dst: find_syllable
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1219,1
    - Dst: find_syllable
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1221,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1232,1
    - Dst: is_unified_ideograph
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1249,1
    - Dst: _gethash
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1259,1
    - Dst: _cmpname
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1264,1
    - Dst: _check_alias_and_seq
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1265,1
    - Dst: _cmpname
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1274,1
    - Dst: _check_alias_and_seq
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1275,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 5
    argNames:
    - self
    - name
    - namelen
    - code
    - with_named_seq
    argTypes:
    - PyObject*
    - char*
    - int
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1201
    functionDepth: 3
    functionLinenumber: 1201
    functionLinenumberEnd: 1280
    functionName: _getcode
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - find_syllable
    - _gethash
    - is_unified_ideograph
    - _check_alias_and_seq
    - _cmpname
    - strncmp
    linkageType: ''
    returnType: int
    signature: "int _getcode(PyObject* self, const char* name, int namelen, Py_UCS4*
      code,\n         int with_named_seq)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _getucname
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1313,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1315,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1319,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - chr
    - default_value
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1325
    functionName: unicodedata_UCD_name_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - _getucname
    - PyUnicode_FromString
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_name_impl(PyObject *self, int chr, PyObject *default_value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1348,1
    - Dst: _getcode
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1352,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1353,1
    - Dst: IS_NAMED_SEQ
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1358,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1360,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - name_length
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_clean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1340
    functionDepth: 4
    functionLinenumber: 1340
    functionLinenumberEnd: 1365
    functionName: unicodedata_UCD_lookup_impl
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - _getcode
    - PyErr_Format
    - PyUnicode_FromOrdinal
    - PyErr_SetString
    - IS_NAMED_SEQ
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicodedata_UCD_lookup_impl(PyObject *self, const char
      *name,\n                            Py_ssize_clean_t name_length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1458,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1460,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1464,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1465,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1466,1
    - Dst: new_previous_version
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1469,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1471,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1474,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/unicodedata.c:1476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1478
    functionName: PyInit_unicodedata
    functionSourceFile: /src/Python-3.8.3/Modules/unicodedata.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - new_previous_version
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyCapsule_New
    - Py_TYPE
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_unicodedata(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Tk_MacOSXOpenBundleResources
      Src: /src/Python-3.8.3/Modules/tkappinit.c:42,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:46,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:47,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:48,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:52,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:53,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:54,1
    - Dst: Tcl_Init
      Src: /src/Python-3.8.3/Modules/tkappinit.c:57,1
    - Dst: Tk_MacOSXOpenBundleResources
      Src: /src/Python-3.8.3/Modules/tkappinit.c:62,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/tkappinit.c:66,1
    - Dst: TclGetLibraryPath
      Src: /src/Python-3.8.3/Modules/tkappinit.c:68,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:74,1
    - Dst: Tcl_NewStringObj
      Src: /src/Python-3.8.3/Modules/tkappinit.c:75,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/Python-3.8.3/Modules/tkappinit.c:76,1
    - Dst: TclSetLibraryPath
      Src: /src/Python-3.8.3/Modules/tkappinit.c:79,1
    - Dst: Tcl_GetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:86,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/tkappinit.c:89,1
    - Dst: Tcl_GetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:94,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/tkappinit.c:99,1
    - Dst: Tcl_SetResult
      Src: /src/Python-3.8.3/Modules/tkappinit.c:100,1
    - Dst: Tk_Init
      Src: /src/Python-3.8.3/Modules/tkappinit.c:105,1
    - Dst: Tcl_SetVar
      Src: /src/Python-3.8.3/Modules/tkappinit.c:108,1
    - Dst: Tk_MainWindow
      Src: /src/Python-3.8.3/Modules/tkappinit.c:113,1
    - Dst: TkMacOSXInitAppleEvents
      Src: /src/Python-3.8.3/Modules/tkappinit.c:116,1
    - Dst: TkMacOSXInitMenus
      Src: /src/Python-3.8.3/Modules/tkappinit.c:117,1
    - Dst: TkImaging_Init
      Src: /src/Python-3.8.3/Modules/tkappinit.c:123,1
    - Dst: Tcl_StaticPackage
      Src: /src/Python-3.8.3/Modules/tkappinit.c:141,1
    - Dst: Tcl_StaticPackage
      Src: /src/Python-3.8.3/Modules/tkappinit.c:149,1
    - Dst: Tcl_StaticPackage
      Src: /src/Python-3.8.3/Modules/tkappinit.c:158,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 1
    argNames:
    - interp
    argTypes:
    - Tcl_Interp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 166
    functionName: Tcl_AppInit
    functionSourceFile: /src/Python-3.8.3/Modules/tkappinit.c
    functionUses: 1
    functionsReached:
    - Tcl_ListObjAppendElement
    - Tcl_Init
    - Tcl_SetResult
    - TkMacOSXInitAppleEvents
    - TclSetLibraryPath
    - Tk_Init
    - Tcl_StaticPackage
    - Tk_MacOSXOpenBundleResources
    - Tcl_SetVar
    - Tk_MainWindow
    - TkImaging_Init
    - TkMacOSXInitMenus
    - TclGetLibraryPath
    - strcmp
    - Tcl_GetVar
    - Tcl_NewStringObj
    linkageType: ''
    returnType: int
    signature: int Tcl_AppInit(Tcl_Interp *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - target_var
    - ','
    - obj
    - ','
    - error_label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 101
    functionName: ASSIGN_DOUBLE
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_DOUBLE(target_var, obj, error_label)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:108,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:108,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Modules/mathmodule.c:109,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:109,1
    - Dst: round
      Src: /src/Python-3.8.3/Modules/mathmodule.c:110,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:111,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/mathmodule.c:114,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/mathmodule.c:117,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/mathmodule.c:122,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/mathmodule.c:125,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/mathmodule.c:128,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:131,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (Py_IS_FINITE(x))
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    - condition: (0 <= n && n <= 4)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: m_sinpi
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - cos
    - copysign
    - sin
    - fmod
    - fabs
    - Py_UNREACHABLE
    - round
    - assert
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double m_sinpi(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (x > 0.0)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 256
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 256
    functionName: lanczos_sum
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: double
    signature: double lanczos_sum(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_infinity
      Src: /src/Python-3.8.3/Modules/mathmodule.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: m_inf
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_dg_infinity
    linkageType: ''
    returnType: double
    signature: double m_inf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_stdnan
      Src: /src/Python-3.8.3/Modules/mathmodule.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 283
    functionName: m_nan
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_dg_stdnan
    linkageType: ''
    returnType: double
    signature: double m_nan(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:293,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:294,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:304,1
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/mathmodule.c:308,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:316,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:321,1
    - Dst: m_sinpi
      Src: /src/Python-3.8.3/Modules/mathmodule.c:331,1
    - Dst: m_sinpi
      Src: /src/Python-3.8.3/Modules/mathmodule.c:355,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:355,1
    - Dst: lanczos_sum
      Src: /src/Python-3.8.3/Modules/mathmodule.c:355,1
    - Dst: pow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:358,1
    - Dst: pow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:361,1
    - Dst: lanczos_sum
      Src: /src/Python-3.8.3/Modules/mathmodule.c:367,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:367,1
    - Dst: pow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:370,1
    - Dst: pow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:373,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:378,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 381
    functionName: m_tgamma
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - pow
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - exp
    - fabs
    - lanczos_sum
    - m_sinpi
    - floor
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double m_tgamma(double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:395,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:396,1
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/mathmodule.c:403,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:413,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:416,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:422,1
    - Dst: lanczos_sum
      Src: /src/Python-3.8.3/Modules/mathmodule.c:422,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:423,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:426,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:426,1
    - Dst: m_sinpi
      Src: /src/Python-3.8.3/Modules/mathmodule.c:426,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:426,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:427,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 430
    functionName: m_lgamma
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - Py_IS_INFINITY
    - fabs
    - lanczos_sum
    - m_sinpi
    - floor
    - log
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double m_lgamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 502
    functionName: m_erf_series
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - exp
    linkageType: ''
    returnType: double
    signature: double m_erf_series(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 541
    functionName: m_erfc_contfrac
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - exp
    linkageType: ''
    returnType: double
    signature: double m_erfc_contfrac(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: erf
      Src: /src/Python-3.8.3/Modules/mathmodule.c:551,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:555,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:557,1
    - Dst: m_erf_series
      Src: /src/Python-3.8.3/Modules/mathmodule.c:559,1
    - Dst: m_erfc_contfrac
      Src: /src/Python-3.8.3/Modules/mathmodule.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: m_erf
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - m_erfc_contfrac
    - fabs
    - erf
    - m_erf_series
    linkageType: ''
    returnType: double
    signature: double m_erf(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: erfc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:573,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:577,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:579,1
    - Dst: m_erf_series
      Src: /src/Python-3.8.3/Modules/mathmodule.c:581,1
    - Dst: m_erfc_contfrac
      Src: /src/Python-3.8.3/Modules/mathmodule.c:583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 587
    functionName: m_erfc
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - m_erfc_contfrac
    - fabs
    - erfc
    - m_erf_series
    linkageType: ''
    returnType: double
    signature: double m_erfc(double x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:600,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:600,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:602,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:603,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:604,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:606,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:609,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:612,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:614,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:615,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:617,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:620,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/mathmodule.c:622,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - y
    - x
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 623
    functionName: m_atan2
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - copysign
    - Py_IS_INFINITY
    - atan2
    - Py_IS_NAN
    linkageType: ''
    returnType: double
    signature: double m_atan2(double y, double x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:634,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:634,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:641,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:642,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Modules/mathmodule.c:643,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:700,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Modules/mathmodule.c:701,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:703,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:707,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:710,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:713,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:716,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:716,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts:
    - condition: (m == c)
      pos:
        line_end: 699
        line_start: 699
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    - condition: (Py_IS_INFINITY(y))
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 718
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 718
    functionName: m_remainder
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - fmod
    - fabs
    - assert
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double m_remainder(double x, double y)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:731,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:733,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 748
    functionName: m_log
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - log
    - Py_IS_FINITE
    - Py_IS_NAN
    linkageType: ''
    returnType: double
    signature: double m_log(double x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:763,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:764,1
    - Dst: log2
      Src: /src/Python-3.8.3/Modules/mathmodule.c:776,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:780,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:788,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:788,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:791,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/mathmodule.c:791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 803
    functionName: m_log2
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - log
    - log2
    - Py_IS_FINITE
    - frexp
    linkageType: ''
    returnType: double
    signature: double m_log2(double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:808,1
    - Dst: log10
      Src: /src/Python-3.8.3/Modules/mathmodule.c:810,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 825
    functionName: m_log10
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - log10
    - Py_IS_FINITE
    - Py_IS_NAN
    linkageType: ''
    returnType: double
    signature: double m_log10(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:844,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:847,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:849,1
    - Dst: _PyLong_GCD
      Src: /src/Python-3.8.3/Modules/mathmodule.c:852,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:853,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - module
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 856
    functionName: math_gcd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - _PyLong_GCD
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_gcd_impl(PyObject *module, PyObject *a, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:867,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:869,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:887,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:890,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mathmodule.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: (errno)
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 897
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 897
    functionName: is_error
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 4
    functionsReached:
    - fabs
    - assert
    - PyErr_SetFromErrno
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int is_error(double x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:935,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:936,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:939,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:941,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:942,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:942,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:943,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:947,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:947,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:949,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:952,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:956,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:956,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - arg
    - (*from_double_func) (double)
    - can_overflow
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 929
    functionDepth: 2
    functionLinenumber: 929
    functionLinenumberEnd: 961
    functionName: math_1_to_whatever
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - Py_IS_NAN
    - PyFPE_START_PROTECT
    - Py_IS_INFINITY
    - is_error
    - PyErr_SetString
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_1_to_whatever(PyObject *arg, double (*func) (double),\n
      \                  PyObject *(*from_double_func) (double),\n                   int
      can_overflow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:971,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:972,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:975,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:977,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:978,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 981
    functionName: math_1a
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyFPE_START_PROTECT
    - is_error
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_1a(PyObject *arg, double (*func) (double))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_1_to_whatever
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - can_overflow
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1014
    functionName: math_1
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - math_1_to_whatever
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_1(PyObject *arg, double (*func) (double), int can_overflow)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: math_1_to_whatever
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - can_overflow
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: math_1_to_int
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - math_1_to_whatever
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_1_to_int(PyObject *arg, double (*func) (double), int can_overflow)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1027,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1029,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1030,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1033,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1034,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1038,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1040,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1041,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1042,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1042,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1047,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1048,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1048,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1053,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1056,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - args
    - nargs
    - funcname
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1022
    functionDepth: 2
    functionLinenumber: 1022
    functionLinenumberEnd: 1057
    functionName: math_2
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - _PyArg_CheckPositional
    - Py_IS_INFINITY
    - is_error
    - PyFloat_FromDouble
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_2(PyObject *const *args, Py_ssize_t nargs,\n       double
      (*func) (double, double), const char *funcname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - funcname
    - ','
    - func
    - ','
    - can_overflow
    - ','
    - docstring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    functionName: FUNC1
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC1(funcname, func, can_overflow, docstring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - funcname
    - ','
    - func
    - ','
    - docstring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1070
    functionName: FUNC1A
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC1A(funcname, func, docstring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - funcname
    - ','
    - func
    - ','
    - docstring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1076
    functionName: FUNC2
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC2(funcname, func, docstring)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1115,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1118,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1120,1
    - Dst: math_1_to_int
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1122,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1111
    functionDepth: 4
    functionLinenumber: 1111
    functionLinenumberEnd: 1127
    functionName: math_ceil
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - math_1_to_int
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ceil(PyObject *module, PyObject *number)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1173,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1178,1
    - Dst: math_1_to_int
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1180,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1169
    functionDepth: 4
    functionLinenumber: 1169
    functionLinenumberEnd: 1185
    functionName: math_floor
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - math_1_to_int
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_floor(PyObject *module, PyObject *number)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1269,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1271,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - p_ptr
    - n
    - ps
    - m_ptr
    argTypes:
    - double**
    - Py_ssize_t
    - double*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1283
    functionName: _fsum_realloc
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - PyErr_SetString
    - PyMem_Realloc
    linkageType: ''
    returnType: int
    signature: "int _fsum_realloc(double **p_ptr, Py_ssize_t  n,\n             double
      \ *ps,    Py_ssize_t *m_ptr)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1336,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1340,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1340,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1343,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1344,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1347,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1349,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1353,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1354,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1359,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1359,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1372,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1377,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1378,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1382,1
    - Dst: _fsum_realloc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1388,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1396,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1397,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1400,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1412,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1412,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1412,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1433,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1437,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1443,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 92
    argCount: 2
    argNames:
    - module
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (0 <= n && n <= m)
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    - condition: "((m == NUM_PARTIALS && p == ps) ||\n               (m >  NUM_PARTIALS
        && p != NULL))"
      pos:
        line_end: 1344
        line_start: 1343
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    - condition: (fabs(y) < fabs(x))
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 1445
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1445
    functionName: math_fsum
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - _fsum_realloc
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - Py_DECREF
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - Py_IS_INFINITY
    - Py_IS_FINITE
    - fabs
    - PyFloat_FromDouble
    - PyIter_Next
    - PyMem_Free
    - PyErr_SetString
    - assert
    - PyObject_GetIter
    - ASSIGN_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fsum(PyObject *module, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1470
    functionName: bit_length
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long bit_length(unsigned long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1472
    functionDepth: 0
    functionLinenumber: 1472
    functionLinenumberEnd: 1481
    functionName: count_set_bits
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long count_set_bits(unsigned long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1641
    functionName: _approximate_isqrt
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _approximate_isqrt(uint64_t n)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1661,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1666,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1667,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1672,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1673,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1674,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1678,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1689,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1690,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1691,1
    - Dst: _approximate_isqrt
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1694,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1696,1
    - Dst: _PyLong_Rshift
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1710,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1715,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1716,1
    - Dst: _approximate_isqrt
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1719,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1720,1
    - Dst: _PyLong_Rshift
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1732,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1736,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1736,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1742,1
    - Dst: _PyLong_Lshift
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1742,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1744,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1747,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1747,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1748,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1758,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1762,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1763,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1769,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1771,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1775,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1776,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1778
    functionName: math_isqrt
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_Sign
    - PyNumber_FloorDivide
    - PyNumber_Multiply
    - _PyLong_Rshift
    - PyErr_Occurred
    - PyNumber_Index
    - _PyLong_Lshift
    - Py_XDECREF
    - _approximate_isqrt
    - Py_DECREF
    - PyNumber_Add
    - Py_SETREF
    - PyLong_FromUnsignedLongLong
    - PyLong_AsUnsignedLongLong
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyNumber_Subtract
    - _PyLong_NumBits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isqrt(PyObject *module, PyObject *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1880,1
    - Dst: factorial_partial_product
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1885,1
    - Dst: bit_length
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1886,1
    - Dst: factorial_partial_product
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1889,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1892,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1895,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - start
    - stop
    - max_bits
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1898
    functionName: factorial_partial_product
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 1
    functionsReached:
    - bit_length
    - factorial_partial_product
    - PyLong_FromUnsignedLong
    - PyNumber_Multiply
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfactorial_partial_product(unsigned long start, unsigned
      long stop,\n                          unsigned long max_bits)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1909,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1913,1
    - Dst: bit_length
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1916,1
    - Dst: factorial_partial_product
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1926,1
    - Dst: bit_length
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1926,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1930,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1934,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1940,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1951,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1953
    functionName: factorial_odd_part
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - Py_INCREF
    - bit_length
    - factorial_partial_product
    - PyNumber_Multiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      factorial_odd_part(unsigned long n)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1987,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1989,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1990,1
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1990,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1991,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1995,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1998,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:1999,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2002,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2006,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2007,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2010,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2014,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2020,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2026,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2027,1
    - Dst: factorial_odd_part
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2031,1
    - Dst: count_set_bits
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2034,1
    - Dst: _PyLong_Lshift
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2036,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1979
    functionDepth: 3
    functionLinenumber: 1979
    functionLinenumberEnd: 2038
    functionName: math_factorial
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - factorial_odd_part
    - PyErr_Occurred
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - count_set_bits
    - PyFloat_AS_DOUBLE
    - PyLong_FromDouble
    - PyNumber_Index
    - floor
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - _PyLong_Lshift
    - Py_IS_FINITE
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_factorial(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2056,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2059,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2060,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2060,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2064,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2066,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2067,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2069,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2072,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2052
    functionDepth: 1
    functionLinenumber: 2052
    functionLinenumberEnd: 2075
    functionName: math_trunc
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - Py_TYPE
    - PyErr_Format
    - PyType_Ready
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_trunc(PyObject *module, PyObject *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2097,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2097,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2101,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2102,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2103,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2106
    functionName: math_frexp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - Py_BuildValue
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - Py_IS_INFINITY
    - frexp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_frexp_impl(PyObject *module, double x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2129,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2132,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2133,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2139,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2144,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2150,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2154,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2158,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2159,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2160,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2161,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2165,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2167,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - module
    - x
    - i
    argTypes:
    - PyObject*
    - double
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2121
    functionDepth: 2
    functionLinenumber: 2121
    functionLinenumberEnd: 2168
    functionName: math_ldexp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyFPE_START_PROTECT
    - copysign
    - Py_IS_INFINITY
    - is_error
    - PyLong_AsLongAndOverflow
    - ldexp
    - PyErr_SetString
    - PyFloat_FromDouble
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ldexp_impl(PyObject *module, double x, PyObject *i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2189,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2190,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2191,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2191,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2192,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2193,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2197,1
    - Dst: modf
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2198,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2199,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2201
    functionName: math_modf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - Py_BuildValue
    - Py_IS_NAN
    - PyFPE_START_PROTECT
    - copysign
    - Py_IS_INFINITY
    - modf
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_modf_impl(PyObject *module, double x)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2217,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2222,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2223,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2228,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2229,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2230,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2234,1
    - Dst: _PyLong_Frexp
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2235,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2236,1
    - Dst: func
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2239,1
    - Dst: func
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2239,1
    - Dst: func
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2243,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2244,1
    - Dst: math_1
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - arg
    - funcname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2213
    functionDepth: 4
    functionLinenumber: 2213
    functionLinenumberEnd: 2249
    functionName: loghelper
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _PyLong_Frexp
    - PyErr_Occurred
    - func
    - PyLong_AsDouble
    - PyFloat_FromDouble
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    - math_1
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      loghelper(PyObject* arg, double (*func)(double), const char *funcname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: loghelper
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2274,1
    - Dst: loghelper
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2280,1
    - Dst: PyNumber_TrueDivide
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - x
    - group_right_1
    - base
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2266
    functionDepth: 5
    functionLinenumber: 2266
    functionLinenumberEnd: 2288
    functionName: math_log_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_TrueDivide
    - Py_DECREF
    - loghelper
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmath_log_impl(PyObject *module, PyObject *x, int group_right_1,\n
      \             PyObject *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loghelper
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2300
    functionDepth: 5
    functionLinenumber: 2300
    functionLinenumberEnd: 2305
    functionName: math_log2
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - loghelper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_log2(PyObject *module, PyObject *x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: loghelper
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2317
    functionDepth: 5
    functionLinenumber: 2317
    functionLinenumberEnd: 2322
    functionName: math_log10
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - loghelper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_log10(PyObject *module, PyObject *x)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2343,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2343,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2344,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2346,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2347,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2348,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2349,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2350,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2350,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2355,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2358,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2337
    functionDepth: 2
    functionLinenumber: 2337
    functionLinenumberEnd: 2359
    functionName: math_fmod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - Py_IS_INFINITY
    - is_error
    - fmod
    - PyFloat_FromDouble
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fmod_impl(PyObject *module, double x, double y)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2398,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2409,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2409,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2409,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2414,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - n
    - vec
    - max
    - found_nan
    argTypes:
    - Py_ssize_t
    - double*
    - double
    - int
    assertStmts:
    - condition: (Py_IS_FINITE(x) && fabs(x) <= max)
      pos:
        line_end: 2408
        line_start: 2408
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    - condition: (csum >= x)
      pos:
        line_end: 2413
        line_start: 2413
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
    constantsTouched: []
    func_position:
      end: 2418
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2418
    functionName: vector_norm
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_IS_INFINITY
    - fabs
    - assert
    - sqrt
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double vector_norm(Py_ssize_t n, double *vec, double max, int found_nan)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2450,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2451,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2457,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2458,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2461,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2468,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2469,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2471,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2477,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2479,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2483,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2484,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2485,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2486,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2487,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2489,1
    - Dst: vector_norm
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2494,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2496,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2502,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2504,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2514,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 3
    argNames:
    - module
    - p
    - q
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2438
    functionDepth: 2
    functionLinenumber: 2438
    functionLinenumberEnd: 2517
    functionName: math_dist_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyObject_Malloc
    - Py_IS_NAN
    - PySequence_Tuple
    - PyErr_NoMemory
    - fabs
    - PyTuple_Check
    - PyFloat_FromDouble
    - PyErr_SetString
    - PyObject_Free
    - PyTuple_GET_ITEM
    - vector_norm
    - ASSIGN_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_dist_impl(PyObject *module, PyObject *p, PyObject *q)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2532,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2534,1
    - Dst: ASSIGN_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2539,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2540,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2542,1
    - Dst: vector_norm
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2547,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2549,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2551,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2520
    functionDepth: 2
    functionLinenumber: 2520
    functionLinenumberEnd: 2558
    functionName: math_hypot
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - Py_IS_NAN
    - PyErr_NoMemory
    - fabs
    - PyObject_Free
    - PyFloat_FromDouble
    - vector_norm
    - ASSIGN_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_hypot(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2604,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2604,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2606,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2608,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2610,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2611,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2611,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2611,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2613,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2617,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2619,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2620,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2622,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2624,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2636,1
    - Dst: pow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2637,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2638,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2641,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2642,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2650,1
    - Dst: is_error
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2659,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2662,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2594
    functionDepth: 2
    functionLinenumber: 2594
    functionLinenumberEnd: 2663
    functionName: math_pow_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - pow
    - PyFPE_END_PROTECT
    - Py_IS_NAN
    - PyFPE_START_PROTECT
    - Py_IS_INFINITY
    - copysign
    - is_error
    - fmod
    - fabs
    - PyFloat_FromDouble
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_pow_impl(PyObject *module, double x, double y)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2678
    functionDepth: 1
    functionLinenumber: 2678
    functionLinenumberEnd: 2683
    functionName: math_degrees_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_degrees_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2695
    functionDepth: 1
    functionLinenumber: 2695
    functionLinenumberEnd: 2700
    functionName: math_radians_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_radians_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2716,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2712
    functionDepth: 1
    functionLinenumber: 2712
    functionLinenumberEnd: 2717
    functionName: math_isfinite_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isfinite_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2733,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2729
    functionDepth: 1
    functionLinenumber: 2729
    functionLinenumberEnd: 2734
    functionName: math_isnan_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_NAN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnan_impl(PyObject *module, double x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2750,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2746
    functionDepth: 1
    functionLinenumber: 2746
    functionLinenumberEnd: 2751
    functionName: math_isinf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_INFINITY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isinf_impl(PyObject *module, double x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2788,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2807,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2807,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2815,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2817,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 5
    argNames:
    - module
    - a
    - b
    - rel_tol
    - abs_tol
    argTypes:
    - PyObject*
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2820
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2820
    functionName: math_isclose_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - Py_IS_INFINITY
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int math_isclose_impl(PyObject *module, double a, double b, double
      rel_tol,\n                  double abs_tol)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2822
    functionDepth: 0
    functionLinenumber: 2822
    functionLinenumberEnd: 2870
    functionName: _check_long_mult_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _check_long_mult_overflow(long a, long b)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2896,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2904,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2908,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2915,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2917,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2920,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2926,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2928,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2929,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2932,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2934,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2935,1
    - Dst: _check_long_mult_overflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2936,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2939,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2945,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2947,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2948,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2951,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2953,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2956,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2966,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2968,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2973,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2974,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2977,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2979,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2980,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2981,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2984,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2987,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2990,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2994,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2996,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:2997,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3001,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3002,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3005,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3014,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3017,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3018,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3023,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3024,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3025,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3030,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 110
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2889
    functionDepth: 1
    functionLinenumber: 2889
    functionLinenumberEnd: 3032
    functionName: math_prod_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyFloat_AS_DOUBLE
    - PyFloat_FromDouble
    - PyLong_CheckExact
    - PyLong_AsLongAndOverflow
    - PyIter_Next
    - _check_long_mult_overflow
    - PyNumber_Multiply
    - PyObject_GetIter
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: math_factorial
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3063,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3065,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3069,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3070,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3070,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3075,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3077,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3080,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3081,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3081,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3083,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3088,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3089,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3093,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3094,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3099,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3102,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3108,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3110,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3121,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3126,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3132,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3134,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3134,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3138,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3138,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3143,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3147,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3151,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3153,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3154,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 3
    argNames:
    - module
    - n
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3054
    functionDepth: 4
    functionLinenumber: 3054
    functionLinenumberEnd: 3156
    functionName: math_perm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsLongLongAndOverflow
    - Py_DECREF
    - PyNumber_Multiply
    - _PyLong_Copy
    - Py_INCREF
    - math_factorial
    - PyNumber_Index
    - PyLong_CheckExact
    - PyObject_RichCompareBool
    - PyErr_Format
    - PyErr_SetString
    - PyNumber_Subtract
    - Py_SIZE
    - Py_XDECREF
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_perm_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3188,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3192,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3193,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3193,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3200,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3203,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3204,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3206,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3211,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3212,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3216,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3217,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3223,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3228,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3229,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3232,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3237,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3243,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3245,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3256,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3261,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3267,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3269,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3269,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3273,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3273,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3278,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3282,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3292,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3296,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3299,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 113
    argCount: 3
    argNames:
    - module
    - n
    - k
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3180
    functionDepth: 1
    functionLinenumber: 3180
    functionLinenumberEnd: 3301
    functionName: math_comb_impl
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsLongLongAndOverflow
    - Py_DECREF
    - PyNumber_Multiply
    - _PyLong_Copy
    - Py_INCREF
    - PyNumber_FloorDivide
    - PyNumber_Index
    - PyLong_CheckExact
    - PyObject_RichCompareBool
    - PyErr_Format
    - PyErr_SetString
    - PyNumber_Subtract
    - Py_SIZE
    - Py_XDECREF
    - Py_SETREF
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_comb_impl(PyObject *module, PyObject *n, PyObject *k)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3381,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3385,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3385,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3386,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3386,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3387,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3387,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3388,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3388,1
    - Dst: m_inf
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3388,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3390,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3390,1
    - Dst: m_nan
      Src: /src/Python-3.8.3/Modules/mathmodule.c:3390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3376
    functionDepth: 1
    functionLinenumber: 3376
    functionLinenumberEnd: 3395
    functionName: PyInit_math
    functionSourceFile: /src/Python-3.8.3/Modules/mathmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyModule_AddObject
    - m_inf
    - PyFloat_FromDouble
    - m_nan
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_math(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: DECODE_LOCALE_ERR
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_LOCALE_ERR(NAME, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: PATHLEN_ERR
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATHLEN_ERR()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/Python-3.8.3/Modules/getpath.c:149,1
    - Dst: stat
      Src: /src/Python-3.8.3/Modules/getpath.c:154,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - path
    - buf
    argTypes:
    - wchar_t*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: _Py_wstat
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeLocaleRaw
    - stat
    - PyMem_RawFree
    linkageType: ''
    returnType: int
    signature: int _Py_wstat(const wchar_t* path, struct stat *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: reduce
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: void
    signature: void reduce(wchar_t *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_wstat
      Src: /src/Python-3.8.3/Modules/getpath.c:176,1
    - Dst: S_ISREG
      Src: /src/Python-3.8.3/Modules/getpath.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: isfile
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - _Py_wstat
    linkageType: ''
    returnType: int
    signature: int isfile(const wchar_t *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isfile
      Src: /src/Python-3.8.3/Modules/getpath.c:190,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:195,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:196,1
    - Dst: isfile
      Src: /src/Python-3.8.3/Modules/getpath.c:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - filename
    - filename_len
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: ismodule
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - wcscat
    - wcslen
    - isfile
    linkageType: ''
    returnType: int
    signature: int ismodule(wchar_t *filename, size_t filename_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_wstat
      Src: /src/Python-3.8.3/Modules/getpath.c:210,1
    - Dst: S_ISREG
      Src: /src/Python-3.8.3/Modules/getpath.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: isxfile
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - S_ISREG
    - _Py_wstat
    linkageType: ''
    returnType: int
    signature: int isxfile(const wchar_t *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_wstat
      Src: /src/Python-3.8.3/Modules/getpath.c:228,1
    - Dst: S_ISDIR
      Src: /src/Python-3.8.3/Modules/getpath.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: isdir
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - S_ISDIR
    - _Py_wstat
    linkageType: ''
    returnType: int
    signature: int isdir(wchar_t *filename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:245,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:247,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:258,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:260,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Modules/getpath.c:262,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - buffer
    - stuff
    - buflen
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 266
    functionName: joinpath
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PATHLEN_ERR
    - wcsncpy
    - wcslen
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus joinpath(wchar_t *buffer, const wchar_t *stuff, size_t buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:272,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/getpath.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - src
    - n
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: safe_wcscpy
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - memcpy
    - wcslen
    linkageType: ''
    returnType: int
    signature: int safe_wcscpy(wchar_t *dst, const wchar_t *src, size_t n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:288,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:289,1
    - Dst: _Py_wgetcwd
      Src: /src/Python-3.8.3/Modules/getpath.c:293,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:295,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:296,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:298,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:303,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:304,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - path
    - p
    - pathlen
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 309
    functionName: copy_absolute
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _Py_wgetcwd
    - joinpath
    - safe_wcscpy
    - _PyStatus_EXCEPTION
    - PATHLEN_ERR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus copy_absolute(wchar_t *path, const wchar_t *p, size_t pathlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:317,1
    - Dst: copy_absolute
      Src: /src/Python-3.8.3/Modules/getpath.c:321,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:321,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:322,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:326,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:327,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - path
    - path_len
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 330
    functionName: absolutize
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - copy_absolute
    - Py_ARRAY_LENGTH
    - safe_wcscpy
    - PATHLEN_ERR
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus absolutize(wchar_t *path, size_t path_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:343,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:344,1
    - Dst: wcsncasecmp
      Src: /src/Python-3.8.3/Modules/getpath.c:345,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:346,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:350,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Modules/getpath.c:352,1
    - Dst: isxfile
      Src: /src/Python-3.8.3/Modules/getpath.c:355,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - progpath
    - progpathlen
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 361
    functionName: add_exe_suffix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - wcsncpy
    - isxfile
    - wcsncasecmp
    - PATHLEN_ERR
    - _PyStatus_OK
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus add_exe_suffix(wchar_t *progpath, size_t progpathlen)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:374,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:375,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:382,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:383,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:385,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:389,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:390,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:394,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:398,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:399,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:401,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:402,1
    - Dst: isfile
      Src: /src/Python-3.8.3/Modules/getpath.c:406,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:409,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:412,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:413,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:415,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:416,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:417,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:421,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:422,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:425,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:426,1
    - Dst: ismodule
      Src: /src/Python-3.8.3/Modules/getpath.c:430,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:432,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:433,1
    - Dst: copy_absolute
      Src: /src/Python-3.8.3/Modules/getpath.c:439,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:440,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:446,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:447,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:448,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:451,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:452,1
    - Dst: ismodule
      Src: /src/Python-3.8.3/Modules/getpath.c:456,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:458,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:459,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:462,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:467,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:468,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:470,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:471,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:474,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:475,1
    - Dst: ismodule
      Src: /src/Python-3.8.3/Modules/getpath.c:479,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:481,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:482,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:487,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 87
    argCount: 6
    argNames:
    - calculate
    - pathconfig
    - argv0_path
    - prefix
    - prefix_len
    - found
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 488
    functionName: search_for_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - ismodule
    - joinpath
    - copy_absolute
    - Py_ARRAY_LENGTH
    - safe_wcscpy
    - isfile
    - wcschr
    - reduce
    - Py_DecodeLocale
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - PATHLEN_ERR
    - memset
    - wcslen
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus search_for_prefix(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                  const wchar_t *argv0_path,\n                  wchar_t
      *prefix, size_t prefix_len, int *found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: search_for_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:498,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:501,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/getpath.c:507,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:510,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:511,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:513,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:514,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - calculate
    - pathconfig
    - argv0_path
    - prefix
    - prefix_len
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 519
    functionName: calculate_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - safe_wcscpy
    - fprintf
    - _PyStatus_EXCEPTION
    - search_for_prefix
    - PATHLEN_ERR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_prefix(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                 const wchar_t *argv0_path,\n                 wchar_t
      *prefix, size_t prefix_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:532,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:533,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:537,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Modules/getpath.c:539,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Modules/getpath.c:542,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Modules/getpath.c:546,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:548,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - calculate
    - pathconfig
    - prefix
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 549
    functionName: calculate_set_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - reduce
    - wcscpy
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_set_prefix(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                     wchar_t *prefix)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:560,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:561,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:568,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:569,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:571,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:572,1
    - Dst: isfile
      Src: /src/Python-3.8.3/Modules/getpath.c:576,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:577,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/Modules/getpath.c:580,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:583,1
    - Dst: fread
      Src: /src/Python-3.8.3/Modules/getpath.c:587,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:587,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/getpath.c:589,1
    - Dst: _Py_DecodeUTF8_surrogateescape
      Src: /src/Python-3.8.3/Modules/getpath.c:592,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:594,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:598,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:599,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:600,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:602,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:603,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:604,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - argv0_path
    - exec_prefix
    - exec_prefix_len
    - found
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 610
    functionName: calculate_pybuilddir
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - Py_ARRAY_LENGTH
    - safe_wcscpy
    - _Py_DecodeUTF8_surrogateescape
    - DECODE_LOCALE_ERR
    - fclose
    - _PyStatus_EXCEPTION
    - fread
    - _Py_wfopen
    - _PyStatus_OK
    - PyMem_RawFree
    - PATHLEN_ERR
    - memset
    - isfile
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_pybuilddir(const wchar_t *argv0_path,\n                     wchar_t
      *exec_prefix, size_t exec_prefix_len,\n                     int *found)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:627,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:629,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:630,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:634,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:635,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:638,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:639,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:642,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:643,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:647,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/getpath.c:651,1
    - Dst: calculate_pybuilddir
      Src: /src/Python-3.8.3/Modules/getpath.c:652,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:654,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:658,1
    - Dst: copy_absolute
      Src: /src/Python-3.8.3/Modules/getpath.c:662,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:663,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:669,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:670,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:671,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:674,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:675,1
    - Dst: isdir
      Src: /src/Python-3.8.3/Modules/getpath.c:678,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:680,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:683,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:689,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:690,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:692,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:693,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:696,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:697,1
    - Dst: isdir
      Src: /src/Python-3.8.3/Modules/getpath.c:700,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:702,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:707,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 67
    argCount: 6
    argNames:
    - calculate
    - pathconfig
    - argv0_path
    - exec_prefix
    - exec_prefix_len
    - found
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - size_t
    - int*
    assertStmts:
    - condition: (*found == 0)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/Python-3.8.3/Modules/getpath.c
    constantsTouched: []
    func_position:
      end: 708
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 708
    functionName: search_for_exec_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - copy_absolute
    - safe_wcscpy
    - wcschr
    - reduce
    - _PyStatus_EXCEPTION
    - wcslen
    - isdir
    - assert
    - PATHLEN_ERR
    - calculate_pybuilddir
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus search_for_exec_prefix(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                       const wchar_t *argv0_path,\n                       wchar_t
      *exec_prefix, size_t exec_prefix_len,\n                       int *found)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: search_for_exec_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:718,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:721,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/getpath.c:727,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:730,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:731,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:733,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:734,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - calculate
    - pathconfig
    - argv0_path
    - exec_prefix
    - exec_prefix_len
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 711
    functionDepth: 5
    functionLinenumber: 711
    functionLinenumberEnd: 740
    functionName: calculate_exec_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - safe_wcscpy
    - search_for_exec_prefix
    - fprintf
    - _PyStatus_EXCEPTION
    - PATHLEN_ERR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_exec_prefix(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                      const wchar_t *argv0_path,\n                      wchar_t
      *exec_prefix, size_t exec_prefix_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:749,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:750,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:751,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:753,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Modules/getpath.c:756,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Modules/getpath.c:759,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Modules/getpath.c:763,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - calculate
    - pathconfig
    - exec_prefix
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 767
    functionName: calculate_set_exec_prefix
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - reduce
    - wcscpy
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_set_exec_prefix(PyCalculatePath *calculate,\n                          _PyPathConfig
      *pathconfig,\n                          wchar_t *exec_prefix)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:775,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:776,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:781,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:783,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:792,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:793,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:795,1
    - Dst: _NSGetExecutablePath
      Src: /src/Python-3.8.3/Modules/getpath.c:809,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:813,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:815,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:817,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:818,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:819,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:821,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:827,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:832,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Modules/getpath.c:834,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:838,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:840,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:844,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:846,1
    - Dst: isxfile
      Src: /src/Python-3.8.3/Modules/getpath.c:850,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - calculate
    - pathconfig
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 863
    functionName: calculate_program_full_path
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - _NSGetExecutablePath
    - wcsncpy
    - Py_ARRAY_LENGTH
    - joinpath
    - safe_wcscpy
    - isxfile
    - wcschr
    - Py_DecodeLocale
    - DECODE_LOCALE_ERR
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - PATHLEN_ERR
    - memset
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus calculate_program_full_path(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:896,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:897,1
    - Dst: NSModuleForSymbol
      Src: /src/Python-3.8.3/Modules/getpath.c:908,1
    - Dst: NSLookupAndBindSymbol
      Src: /src/Python-3.8.3/Modules/getpath.c:908,1
    - Dst: NSLibraryNameForModule
      Src: /src/Python-3.8.3/Modules/getpath.c:910,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:922,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:924,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:927,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:928,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:930,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:931,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:932,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:933,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:936,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:937,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:938,1
    - Dst: ismodule
      Src: /src/Python-3.8.3/Modules/getpath.c:941,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:941,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:944,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:946,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:951,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:952,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:955,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:961,1
    - Dst: _Py_wreadlink
      Src: /src/Python-3.8.3/Modules/getpath.c:962,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:967,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:968,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:974,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:975,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:976,1
    - Dst: _Py_wreadlink
      Src: /src/Python-3.8.3/Modules/getpath.c:980,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:984,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:987,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 4
    argNames:
    - calculate
    - program_full_path
    - argv0_path
    - argv0_path_len
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 988
    functionName: calculate_argv0_path
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - ismodule
    - joinpath
    - Py_ARRAY_LENGTH
    - NSModuleForSymbol
    - safe_wcscpy
    - reduce
    - _Py_wreadlink
    - Py_DecodeLocale
    - DECODE_LOCALE_ERR
    - NSLookupAndBindSymbol
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - PATHLEN_ERR
    - NSLibraryNameForModule
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_argv0_path(PyCalculatePath *calculate, const wchar_t
      *program_full_path,\n                     wchar_t *argv0_path, size_t argv0_path_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1004,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1005,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:1008,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1009,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:1012,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1013,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/Modules/getpath.c:1016,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:1021,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:1022,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:1023,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1024,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/Modules/getpath.c:1028,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1031,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1037,1
    - Dst: _Py_FindEnvConfigValue
      Src: /src/Python-3.8.3/Modules/getpath.c:1039,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1040,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:1041,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/getpath.c:1042,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1043,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/getpath.c:1046,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - calculate
    - argv0_path
    - argv0_path_len
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1048
    functionName: calculate_read_pyenv
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - Py_ARRAY_LENGTH
    - safe_wcscpy
    - reduce
    - _Py_FindEnvConfigValue
    - fclose
    - _PyStatus_EXCEPTION
    - _Py_wfopen
    - PATHLEN_ERR
    - memset
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_read_pyenv(PyCalculatePath *calculate,\n                     wchar_t
      *argv0_path, size_t argv0_path_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:1059,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1060,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:1062,1
    - Dst: reduce
      Src: /src/Python-3.8.3/Modules/getpath.c:1063,1
    - Dst: safe_wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:1066,1
    - Dst: PATHLEN_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1067,1
    - Dst: joinpath
      Src: /src/Python-3.8.3/Modules/getpath.c:1070,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1071,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1076,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - calculate
    - prefix
    - zip_path
    - zip_path_len
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1080
    functionName: calculate_zip_path
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - joinpath
    - safe_wcscpy
    - reduce
    - _PyStatus_EXCEPTION
    - PATHLEN_ERR
    - wcslen
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_zip_path(PyCalculatePath *calculate, const wchar_t
      *prefix,\n                   wchar_t *zip_path, size_t zip_path_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1093,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1097,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:1099,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1110,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1116,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1117,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/getpath.c:1120,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Modules/getpath.c:1122,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/getpath.c:1128,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1129,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1133,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1134,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/getpath.c:1141,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1144,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1149,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/getpath.c:1155,1
    - Dst: wcsncat
      Src: /src/Python-3.8.3/Modules/getpath.c:1156,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1160,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1165,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/Modules/getpath.c:1168,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - calculate
    - pathconfig
    - prefix
    - exec_prefix
    - zip_path
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1172
    functionName: calculate_module_search_path
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - wcscat
    - _PyStatus_NO_MEMORY
    - wcschr
    - PyMem_RawMalloc
    - wcsncat
    - wcscpy
    - _PyStatus_OK
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_module_search_path(PyCalculatePath *calculate,\n
      \                            _PyPathConfig *pathconfig,\n                             const
      wchar_t *prefix,\n                             const wchar_t *exec_prefix,\n
      \                            const wchar_t *zip_path)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Modules/getpath.c:1179,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:1181,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1183,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:1187,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1189,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:1192,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1194,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:1196,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1198,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/getpath.c:1200,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Modules/getpath.c:1202,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - calculate
    - config
    argTypes:
    - PyCalculatePath*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1209
    functionName: calculate_init
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - Py_DecodeLocale
    - _PyStatus_OK
    - getenv
    - DECODE_LOCALE_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus calculate_init(PyCalculatePath *calculate, const PyConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:1215,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:1216,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:1217,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:1218,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/getpath.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - calculate
    argTypes:
    - PyCalculatePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1220
    functionName: calculate_free
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void calculate_free(PyCalculatePath *calculate)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: calculate_program_full_path
      Src: /src/Python-3.8.3/Modules/getpath.c:1229,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1230,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1236,1
    - Dst: calculate_argv0_path
      Src: /src/Python-3.8.3/Modules/getpath.c:1238,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1239,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1240,1
    - Dst: calculate_read_pyenv
      Src: /src/Python-3.8.3/Modules/getpath.c:1246,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1247,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1248,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1253,1
    - Dst: calculate_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:1254,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1256,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1257,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1262,1
    - Dst: calculate_zip_path
      Src: /src/Python-3.8.3/Modules/getpath.c:1264,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1265,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1266,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1271,1
    - Dst: calculate_exec_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:1272,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/getpath.c:1273,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1274,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/getpath.c:1281,1
    - Dst: calculate_module_search_path
      Src: /src/Python-3.8.3/Modules/getpath.c:1286,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1288,1
    - Dst: calculate_set_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:1294,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1295,1
    - Dst: calculate_set_exec_prefix
      Src: /src/Python-3.8.3/Modules/getpath.c:1301,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1302,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1307,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - calculate
    - pathconfig
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1223
    functionDepth: 6
    functionLinenumber: 1223
    functionLinenumberEnd: 1308
    functionName: calculate_path
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - calculate_read_pyenv
    - calculate_set_prefix
    - calculate_prefix
    - calculate_program_full_path
    - Py_ARRAY_LENGTH
    - calculate_set_exec_prefix
    - calculate_argv0_path
    - fprintf
    - calculate_module_search_path
    - _PyStatus_EXCEPTION
    - calculate_zip_path
    - _PyStatus_OK
    - memset
    - calculate_exec_prefix
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/getpath.c:1346,1
    - Dst: calculate_init
      Src: /src/Python-3.8.3/Modules/getpath.c:1348,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1349,1
    - Dst: calculate_path
      Src: /src/Python-3.8.3/Modules/getpath.c:1353,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Modules/getpath.c:1354,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/getpath.c:1358,1
    - Dst: calculate_free
      Src: /src/Python-3.8.3/Modules/getpath.c:1361,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pathconfig
    - config
    argTypes:
    - _PyPathConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1363
    functionName: _PyPathConfig_Calculate
    functionSourceFile: /src/Python-3.8.3/Modules/getpath.c
    functionUses: 0
    functionsReached:
    - calculate_init
    - calculate_path
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - memset
    - calculate_free
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig
      *config)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:93,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:93,1
    - Dst: mkseq
      Src: /src/Python-3.8.3/Modules/parsermodule.c:96,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:96,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:96,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/parsermodule.c:100,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:100,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:103,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:105,1
    - Dst: node2tuple
      Src: /src/Python-3.8.3/Modules/parsermodule.c:106,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:106,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:109,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:112,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:113,1
    - Dst: STR
      Src: /src/Python-3.8.3/Modules/parsermodule.c:113,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:116,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:119,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:119,1
    - Dst: mkseq
      Src: /src/Python-3.8.3/Modules/parsermodule.c:120,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/parsermodule.c:124,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:124,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:127,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:129,1
    - Dst: STR
      Src: /src/Python-3.8.3/Modules/parsermodule.c:129,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:132,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/parsermodule.c:135,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:138,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/parsermodule.c:142,1
    - Dst: addelem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:149,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:156,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 5
    argNames:
    - n
    - mkseq
    - addelem
    - lineno
    - col_offset
    argTypes:
    - node*
    - SeqMaker
    - SeqInserter
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 158
    functionName: node2tuple
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - NCH
    - PyUnicode_FromString
    - STR
    - ISTERMINAL
    - mkseq
    - ISNONTERMINAL
    - CHILD
    - TYPE
    - PyErr_SetString
    - node2tuple
    - Py_XDECREF
    - addelem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnode2tuple(node *n,                     /* node to convert
      \              */\n           SeqMaker mkseq,              /* create sequence
      \              */\n           SeqInserter addelem,         /* func. to add elem.
      in seq.    */\n           int lineno,                  /* include line numbers?
      \        */\n           int col_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: PyST_Object_Check
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyST_Object_Check(v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:266,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:266,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:269,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:269,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:272,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:272,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/parsermodule.c:273,1
    - Dst: STR
      Src: /src/Python-3.8.3/Modules/parsermodule.c:273,1
    - Dst: STR
      Src: /src/Python-3.8.3/Modules/parsermodule.c:273,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:275,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:275,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:278,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:278,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:281,1
    - Dst: parser_compare_nodes
      Src: /src/Python-3.8.3/Modules/parsermodule.c:282,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:282,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 288
    functionName: parser_compare_nodes
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - NCH
    - STR
    - CHILD
    - TYPE
    - parser_compare_nodes
    - strcmp
    - ISTERMINAL
    linkageType: ''
    returnType: int
    signature: int parser_compare_nodes(node *left, node *right)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/parsermodule.c:305,1
    - Dst: PyST_Object_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:310,1
    - Dst: PyST_Object_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:310,1
    - Dst: parser_compare_nodes
      Src: /src/Python-3.8.3/Modules/parsermodule.c:318,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 322
    functionName: parser_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyST_Object_Check
    - PyErr_BadInternalCall
    - parser_compare_nodes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_richcompare(PyObject *left, PyObject *right, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/parsermodule.c:334,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - st
    - type
    argTypes:
    - node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 345
    functionName: parser_newstobject
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyNode_Free
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_newstobject(node *st, int type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:356,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/parsermodule.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - PyST_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: parser_free
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - PyNode_Free
    linkageType: ''
    returnType: void
    signature: void parser_free(PyST_Object *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:365,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:365,1
    - Dst: _PyNode_SizeOf
      Src: /src/Python-3.8.3/Modules/parsermodule.c:365,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/parsermodule.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - unused
    argTypes:
    - PyST_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: parser_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    - _PyNode_SizeOf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_sizeof(PyST_Object *st, void *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:386,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:387,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:392,1
    - Dst: node2tuple
      Src: /src/Python-3.8.3/Modules/parsermodule.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 403
    functionName: parser_st2tuple
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyModule_Check
    - node2tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_st2tuple(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:422,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:423,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:427,1
    - Dst: node2tuple
      Src: /src/Python-3.8.3/Modules/parsermodule.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 438
    functionName: parser_st2list
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyModule_Check
    - node2tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_st2list(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:458,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:459,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:463,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:469,1
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Modules/parsermodule.c:474,1
    - Dst: PyAST_FromNodeObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:478,1
    - Dst: PyAST_CompileObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:483,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:486,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:488,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 490
    functionName: parser_compilest
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyUnicode_FromString
    - PyArena_New
    - PyArena_Free
    - PyAST_FromNodeObject
    - PyArg_ParseTupleAndKeywords
    - PyAST_CompileObject
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_compilest(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:508,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:509,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:512,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 520
    functionName: parser_isexpr
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyModule_Check
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_isexpr(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:531,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:532,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:535,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 543
    functionName: parser_issuite
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyModule_Check
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_issuite(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 555
    functionName: err_string
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void err_string(const char *message)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:574,1
    - Dst: PyParser_ParseStringFlagsFilenameEx
      Src: /src/Python-3.8.3/Modules/parsermodule.c:575,1
    - Dst: parser_newstobject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:582,1
    - Dst: PyParser_SetError
      Src: /src/Python-3.8.3/Modules/parsermodule.c:589,1
    - Dst: PyParser_ClearError
      Src: /src/Python-3.8.3/Modules/parsermodule.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - args
    - kw
    - argspec
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 594
    functionName: parser_do_parse
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - parser_newstobject
    - PyParser_SetError
    - PyArg_ParseTupleAndKeywords
    - PyParser_ParseStringFlagsFilenameEx
    - PyParser_ClearError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_do_parse(PyObject *args, PyObject *kw, const char *argspec, int type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_do_parse
      Src: /src/Python-3.8.3/Modules/parsermodule.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: parser_expr
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - parser_do_parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_expr(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_do_parse
      Src: /src/Python-3.8.3/Modules/parsermodule.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: parser_suite
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - parser_do_parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_suite(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:644,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:645,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/parsermodule.c:649,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:649,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:652,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:652,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Modules/parsermodule.c:656,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:661,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:662,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:664,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:667,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:670,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/parsermodule.c:678,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/parsermodule.c:683,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:686,1
    - Dst: validate_node
      Src: /src/Python-3.8.3/Modules/parsermodule.c:686,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:703,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:704,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:706,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:710,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:714,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:731,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 1
    argNames:
    - tree
    argTypes:
    - node*
    assertStmts:
    - condition: (ISNONTERMINAL(type))
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
    - condition: (a_label < _PyParser_Grammar.g_ll.ll_nlabels)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
    constantsTouched: []
    func_position:
      end: 734
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 734
    functionName: validate_node
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - NCH
    - ISNONTERMINAL
    - REQ
    - CHILD
    - TYPE
    - PyErr_Format
    - validate_node
    - assert
    - strcmp
    - ISTERMINAL
    linkageType: ''
    returnType: int
    signature: int validate_node(node *tree)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/parsermodule.c:759,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:762,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:763,1
    - Dst: build_node_tree
      Src: /src/Python-3.8.3/Modules/parsermodule.c:770,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:774,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Modules/parsermodule.c:782,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:784,1
    - Dst: err_string
      Src: /src/Python-3.8.3/Modules/parsermodule.c:787,1
    - Dst: err_string
      Src: /src/Python-3.8.3/Modules/parsermodule.c:797,1
    - Dst: validate_node
      Src: /src/Python-3.8.3/Modules/parsermodule.c:800,1
    - Dst: parser_newstobject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:801,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:803,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/parsermodule.c:808,1
    - Dst: err_string
      Src: /src/Python-3.8.3/Modules/parsermodule.c:809,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyST_Object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 812
    functionName: parser_tuple2st
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - parser_newstobject
    - PySequence_Check
    - NCH
    - PyNode_Free
    - PyErr_Occurred
    - CHILD
    - TYPE
    - build_node_tree
    - validate_node
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - err_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser_tuple2st(PyST_Object *self, PyObject *args, PyObject *kw)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Modules/parsermodule.c:826,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:835,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:841,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:843,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:847,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/parsermodule.c:849,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/parsermodule.c:850,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:852,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:856,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:860,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:862,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:863,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:864,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:867,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Modules/parsermodule.c:868,1
    - Dst: err_string
      Src: /src/Python-3.8.3/Modules/parsermodule.c:873,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:874,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:877,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:879,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:882,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:883,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:887,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:888,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:892,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:895,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:898,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/parsermodule.c:899,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/parsermodule.c:900,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:903,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:909,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:912,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:914,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:918,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/parsermodule.c:920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:922,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:923,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Modules/parsermodule.c:926,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:928,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:929,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/parsermodule.c:930,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/parsermodule.c:933,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:934,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:936,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:941,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:942,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:944,1
    - Dst: PyNode_AddChild
      Src: /src/Python-3.8.3/Modules/parsermodule.c:947,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:949,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:950,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/parsermodule.c:951,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:955,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:956,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:957,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:962,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Modules/parsermodule.c:963,1
    - Dst: build_node_children
      Src: /src/Python-3.8.3/Modules/parsermodule.c:965,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:973,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 115
    argCount: 3
    argNames:
    - tuple
    - root
    - line_num
    argTypes:
    - PyObject*
    - node*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 976
    functionName: build_node_children
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - PyObject_Size
    - ISNONTERMINAL
    - PyObject_FREE
    - err_string
    - PyObject_MALLOC
    - PySequence_Check
    - PyErr_Occurred
    - PyErr_Format
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - build_node_children
    - CHILD
    - PyErr_SetObject
    - Py_TYPE
    - Py_BuildValue
    - memcpy
    - PySequence_GetItem
    - PyErr_NoMemory
    - PyNode_AddChild
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - ISTERMINAL
    - _PyLong_AsInt
    linkageType: ''
    returnType: node
    signature: 'node *

      build_node_children(PyObject *tuple, node *root, int *line_num)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:983,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/parsermodule.c:987,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:988,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:989,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:994,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:996,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:997,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Modules/parsermodule.c:999,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1007,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1009,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1012,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1013,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1015,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1016,1
    - Dst: PySequence_GetSlice
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1020,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1022,1
    - Dst: PyNode_New
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1026,1
    - Dst: build_node_children
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1028,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1029,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1035,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1038,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1039,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1042,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1045,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1046,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1047,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1054,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1055,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1063,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1065,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1066,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 979
    functionDepth: 3
    functionLinenumber: 979
    functionLinenumberEnd: 1070
    functionName: build_node_tree
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLong
    - ISNONTERMINAL
    - PyObject_MALLOC
    - PySequence_GetSlice
    - PyErr_Format
    - PyNode_New
    - Py_XDECREF
    - PyNode_Free
    - Py_DECREF
    - build_node_children
    - PyErr_SetObject
    - Py_TYPE
    - Py_BuildValue
    - memcpy
    - PySequence_GetItem
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - ISTERMINAL
    linkageType: ''
    returnType: node
    signature: 'node *

      build_node_tree(PyObject *tuple)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1085,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1089,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1091,1
    - Dst: parser_st2tuple
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1093,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1095,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1096,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1098,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1104
    functionName: parser__pickler
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - parser_st2tuple
    - Py_BuildValue
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parser__pickler(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1161,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1163,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1168,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1178,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1179,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1182,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1183,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1185,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1187,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1189,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1196,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1199,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1200,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1201,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1203,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1204,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1205,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1206,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1211,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1213,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1215,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1216,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1217,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/parsermodule.c:1218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1221
    functionName: PyInit_parser
    functionSourceFile: /src/Python-3.8.3/Modules/parsermodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_DECREF
    - Py_INCREF
    - PyErr_NewException
    - _PyObject_GetAttrId
    - PyModule_Create
    - PyImport_ImportModuleNoBlock
    - Py_XDECREF
    - _Py_IDENTIFIER
    - PyModule_AddObject
    - PyObject_CallFunctionObjArgs
    - PyType_Ready
    - Py_XINCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_parser(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HAS_ARG
      Src: /src/Python-3.8.3/Modules/_opcode.c:32,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_opcode.c:34,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_opcode.c:38,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_opcode.c:39,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_opcode.c:43,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_opcode.c:57,1
    - Dst: PyCompile_OpcodeStackEffectWithJump
      Src: /src/Python-3.8.3/Modules/_opcode.c:61,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_opcode.c:63,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - module
    - opcode
    - oparg
    - jump
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 68
    functionName: _opcode_stack_effect_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - HAS_ARG
    - PyCompile_OpcodeStackEffectWithJump
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int _opcode_stack_effect_impl(PyObject *module, int opcode, PyObject
      *oparg,\n                          PyObject *jump)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_opcode.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: PyInit__opcode
    functionSourceFile: /src/Python-3.8.3/Modules/_opcode.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__opcode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_gitversion
      Src: /src/Python-3.8.3/Modules/getbuildinfo.c:40,1
    - Dst: _Py_gitidentifier
      Src: /src/Python-3.8.3/Modules/getbuildinfo.c:42,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/getbuildinfo.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: Py_GetBuildInfo
    functionSourceFile: /src/Python-3.8.3/Modules/getbuildinfo.c
    functionUses: 0
    functionsReached:
    - _Py_gitidentifier
    - PyOS_snprintf
    - _Py_gitversion
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetBuildInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: _Py_gitversion
    functionSourceFile: /src/Python-3.8.3/Modules/getbuildinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_gitversion(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/getbuildinfo.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: _Py_gitidentifier
    functionSourceFile: /src/Python-3.8.3/Modules/getbuildinfo.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_gitidentifier(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TV
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: doubletime
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: doubletime(TV)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrusage
      Src: /src/Python-3.8.3/Modules/resource.c:84,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:86,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/resource.c:90,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/resource.c:94,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:98,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/resource.c:99,1
    - Dst: doubletime
      Src: /src/Python-3.8.3/Modules/resource.c:99,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:100,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/resource.c:101,1
    - Dst: doubletime
      Src: /src/Python-3.8.3/Modules/resource.c:101,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:102,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:102,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:103,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:103,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:104,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:104,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:105,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:105,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:106,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:106,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:107,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:107,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:108,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:108,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:109,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:109,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:110,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:110,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:111,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:111,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:112,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:112,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:113,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:113,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:114,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:114,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:115,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:115,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/resource.c:117,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/resource.c:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - module
    - who
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 123
    functionName: resource_getrusage_impl
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - getrusage
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyErr_SetFromErrno
    - PyStructSequence_New
    - doubletime
    - PyErr_SetString
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrusage_impl(PyObject *module, int who)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/resource.c:129,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/resource.c:134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:135,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:139,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/resource.c:140,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/resource.c:142,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/resource.c:143,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/resource.c:145,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/resource.c:146,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/resource.c:150,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/resource.c:151,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/resource.c:153,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/resource.c:154,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/resource.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/resource.c:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 2
    argNames:
    - limits
    - rl_out
    argTypes:
    - PyObject*
    - struct rlimit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 166
    functionName: py2rlimit
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PySequence_Tuple
    - PyLong_AsLongLong
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int py2rlimit(PyObject *limits, struct rlimit *rl_out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/resource.c:172,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/resource.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rl
    argTypes:
    - struct rlimit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: rlimit2py
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlimit2py(struct rlimit rl)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:194,1
    - Dst: getrlimit
      Src: /src/Python-3.8.3/Modules/resource.c:199,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/resource.c:200,1
    - Dst: rlimit2py
      Src: /src/Python-3.8.3/Modules/resource.c:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - resource
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: resource_getrlimit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - rlimit2py
    - PyErr_SetFromErrno
    - PyErr_SetString
    - getrlimit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrlimit_impl(PyObject *module, int resource)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:222,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/resource.c:227,1
    - Dst: py2rlimit
      Src: /src/Python-3.8.3/Modules/resource.c:232,1
    - Dst: setrlimit
      Src: /src/Python-3.8.3/Modules/resource.c:236,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:238,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:241,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/resource.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - resource
    - limits
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 248
    functionName: resource_setrlimit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - py2rlimit
    - setrlimit
    - PyErr_SetFromErrno
    - PyErr_SetString
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_setrlimit_impl(PyObject *module, int resource, PyObject *limits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:272,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/resource.c:277,1
    - Dst: py2rlimit
      Src: /src/Python-3.8.3/Modules/resource.c:283,1
    - Dst: prlimit
      Src: /src/Python-3.8.3/Modules/resource.c:286,1
    - Dst: prlimit
      Src: /src/Python-3.8.3/Modules/resource.c:289,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/resource.c:294,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/resource.c:297,1
    - Dst: rlimit2py
      Src: /src/Python-3.8.3/Modules/resource.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - module
    - pid
    - resource
    - group_right_1
    - limits
    argTypes:
    - PyObject*
    - pid_t
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 302
    functionName: resource_prlimit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - py2rlimit
    - PyErr_SetFromErrno
    - prlimit
    - PyErr_SetString
    - rlimit2py
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nresource_prlimit_impl(PyObject *module, pid_t pid, int
      resource,\n                      int group_right_1, PyObject *limits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/Python-3.8.3/Modules/resource.c:315,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/resource.c:318,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/resource.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: resource_getpagesize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - sysconf
    - getpagesize
    linkageType: ''
    returnType: int
    signature: int resource_getpagesize_impl(PyObject *module)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/resource.c:361,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/resource.c:366,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/resource.c:367,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/resource.c:369,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/resource.c:374,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/resource.c:375,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:380,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:384,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:388,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:392,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:396,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:400,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:404,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:408,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:412,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:416,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:420,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:424,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:428,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:433,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:437,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:441,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:445,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:449,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:454,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:458,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:462,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:466,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:472,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:476,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/resource.c:480,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/resource.c:484,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/resource.c:487,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/resource.c:490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 494
    functionName: PyInit_resource
    functionSourceFile: /src/Python-3.8.3/Modules/resource.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_InitType2
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyLong_FromLongLong
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_resource(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/socketmodule.c:376,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:382,1
    - Dst: VER_SET_CONDITION
      Src: /src/Python-3.8.3/Modules/socketmodule.c:389,1
    - Dst: VER_SET_CONDITION
      Src: /src/Python-3.8.3/Modules/socketmodule.c:390,1
    - Dst: VER_SET_CONDITION
      Src: /src/Python-3.8.3/Modules/socketmodule.c:391,1
    - Dst: VerifyVersionInfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:397,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:404,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:408,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/socketmodule.c:412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 417
    functionName: remove_unusable_flags
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - PyModule_GetDict
    - VER_SET_CONDITION
    - VerifyVersionInfo
    - PyErr_Clear
    - PyDict_GetItemString
    - memset
    linkageType: ''
    returnType: void
    signature: void remove_unusable_flags(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_L2_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_RC_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_HCI_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_L2_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_RC_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_HCI_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    functionName: _BT_SCO_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_SCO_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    functionName: _BT_L2_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_L2_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: _BT_RC_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_RC_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    functionName: _BT_HCI_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_HCI_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sa
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    functionName: _BT_SCO_MEMB
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _BT_SCO_MEMB(sa, memb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: SAS2SA
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAS2SA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 579
    functionName: IS_SELECTABLE
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SELECTABLE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: IS_SELECTABLE
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SELECTABLE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: select_error
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_error(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: CHECK_ERRNO
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERRNO(expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: CHECK_ERRNO
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ERRNO(expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 607
    functionName: SET_SOCK_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SOCK_ERROR(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 612
    functionName: SET_SOCK_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SOCK_ERROR(err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/socketmodule.c:634,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:639,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: set_error
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    - PyErr_SetFromErrno
    - WSAGetLastError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:652,1
    - Dst: hstrerror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:652,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:654,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:657,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h_error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 662
    functionName: set_herror
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_DECREF
    - Py_BuildValue
    - hstrerror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_herror(int h_error)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:673,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:677,1
    - Dst: gai_strerror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:677,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:679,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 687
    functionName: set_gaierror
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - gai_strerror
    - Py_BuildValue
    - Py_DECREF
    - set_error
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_gaierror(int error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:707,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:710,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:718,1
    - Dst: ioctlsocket
      Src: /src/Python-3.8.3/Modules/socketmodule.c:723,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:734,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:736,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/socketmodule.c:736,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 2
    argNames:
    - s
    - block
    argTypes:
    - PySocketSockObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: internal_setblocking
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ioctl
    - WSAGetLastError
    - PyErr_SetFromErrno
    - fcntl
    - PyErr_SetExcFromWindowsErr
    - ioctlsocket
    linkageType: ''
    returnType: int
    signature: int internal_setblocking(PySocketSockObject *s, int block)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:757,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:757,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:760,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/socketmodule.c:780,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:781,1
    - Dst: poll
      Src: /src/Python-3.8.3/Modules/socketmodule.c:795,1
    - Dst: _PyTime_AsTimeval_noraise
      Src: /src/Python-3.8.3/Modules/socketmodule.c:799,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:805,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/socketmodule.c:806,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:807,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/socketmodule.c:813,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/socketmodule.c:819,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/socketmodule.c:819,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/socketmodule.c:822,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/socketmodule.c:822,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - s
    - writing
    - interval
    - connect
    argTypes:
    - PySocketSockObject*
    - int
    - _PyTime_t
    - int
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - condition: (ms <= INT_MAX)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - condition: (!(connect && !writing))
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 832
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 832
    functionName: internal_select
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - select
    - Py_SAFE_DOWNCAST
    - FD_ZERO
    - poll
    - FD_SET
    - _PyTime_AsTimeval_noraise
    - PyGILState_Check
    - _PyTime_AsMilliseconds
    - assert
    linkageType: ''
    returnType: int
    signature: "int internal_select(PySocketSockObject *s, int writing, _PyTime_t
      interval,\n                int connect)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:868,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:868,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:881,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:885,1
    - Dst: internal_select
      Src: /src/Python-3.8.3/Modules/socketmodule.c:890,1
    - Dst: internal_select
      Src: /src/Python-3.8.3/Modules/socketmodule.c:895,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:902,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/socketmodule.c:904,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:915,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:923,1
    - Dst: sock_func
      Src: /src/Python-3.8.3/Modules/socketmodule.c:934,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:947,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/socketmodule.c:951,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:961,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:961,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:974,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 61
    argCount: 6
    argNames:
    - s
    - writing
    - data
    - connect
    - err
    - timeout
    argTypes:
    - PySocketSockObject*
    - int
    - void*
    - int
    - int*
    - _PyTime_t
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 867
        line_start: 867
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 978
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 978
    functionName: sock_call_ex
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_ERRNO
    - internal_select
    - PyErr_CheckSignals
    - _PyTime_GetMonotonicClock
    - PyGILState_Check
    - sock_func
    - PySocketSockObject*::errorhandler
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: "int sock_call_ex(PySocketSockObject *s,\n             int writing,\n
      \            int (*sock_func) (PySocketSockObject *s, void *data),\n             void
      *data,\n             int connect,\n             int *err,\n             _PyTime_t
      timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 942
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sock_call_ex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - writing
    - data
    argTypes:
    - PySocketSockObject*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 987
    functionName: sock_call
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_call_ex
    linkageType: ''
    returnType: int
    signature: "int sock_call(PySocketSockObject *s,\n          int writing,\n          int
      (*func) (PySocketSockObject *s, void *data),\n          void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: internal_setblocking
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - s
    - fd
    - family
    - type
    - proto
    argTypes:
    - PySocketSockObject*
    - SOCKET_T
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1034
    functionName: init_sockobject
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - internal_setblocking
    linkageType: ''
    returnType: int
    signature: "int init_sockobject(PySocketSockObject *s,\n                SOCKET_T
      fd, int family, int type, int proto)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1047,1
    - Dst: init_sockobject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - family
    - type
    - proto
    argTypes:
    - SOCKET_T
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1055
    functionName: new_sockobject
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyType_GenericNew
    - init_sockobject
    - Py_DECREF
    linkageType: ''
    returnType: PySocketSockObject
    signature: 'PySocketSockObject *

      new_sockobject(SOCKET_T fd, int family, int type, int proto)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1077,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1080,1
    - Dst: getaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1086,1
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1094,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1107,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1108,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1114,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1120,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1121,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1126,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1130,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1135,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1149,1
    - Dst: inet_pton
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1150,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1162,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1164,1
    - Dst: inet_pton
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1165,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1178,1
    - Dst: inet_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1179,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1190,1
    - Dst: getaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1194,1
    - Dst: getaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1200,1
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1206,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1211,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1212,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1221,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 4
    argNames:
    - name
    - addr_ret
    - addr_ret_size
    - af
    argTypes:
    - char*
    - struct sockaddr*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1224
    functionName: setipaddr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - freeaddrinfo
    - memcpy
    - inet_pton
    - PyErr_SetString
    - set_gaierror
    - strchr
    - inet_addr
    - strcmp
    - memset
    - getaddrinfo
    linkageType: ''
    returnType: int
    signature: int setipaddr(const char *name, struct sockaddr *addr_ret, size_t addr_ret_size,
      int af)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1087
    functionDepth: 2
    functionLinenumber: 1087
    functionLinenumberEnd: 1096
    functionName: RELEASE_GETADDRINFO_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: "Py_END_ALLOW_THREADS RELEASE_GETADDRINFO_LOCK\n        if (error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1208
    functionName: RELEASE_GETADDRINFO_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: "Py_END_ALLOW_THREADS RELEASE_GETADDRINFO_LOCK  /* see comment in setipaddr()
      */\n    if (error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1233,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1234,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1238
    functionName: make_ipv4_addr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 1
    functionsReached:
    - inet_ntop
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ipv4_addr(const struct sockaddr_in *addr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1247,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1248,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_in6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1252
    functionName: make_ipv6_addr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 1
    functionsReached:
    - inet_ntop
    - PyUnicode_FromString
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ipv6_addr(const struct sockaddr_in6 *addr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1267,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - name
    - bdaddr
    argTypes:
    - char*
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1281
    functionName: setbdaddr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - sscanf
    linkageType: ''
    returnType: int
    signature: int setbdaddr(const char *name, bdaddr_t *bdaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1292,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bdaddr
    argTypes:
    - bdaddr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1296
    functionName: makebdaddr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makebdaddr(bdaddr_t *bdaddr)'
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: make_ipv4_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1319,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1322,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1322,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1323,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1335,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1341,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1350,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1358,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1366,1
    - Dst: make_ipv6_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1374,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1377,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1379,1
    - Dst: ntohl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1382,1
    - Dst: makebdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1395,1
    - Dst: _BT_L2_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1395,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1398,1
    - Dst: _BT_L2_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1400,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1401,1
    - Dst: makebdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1409,1
    - Dst: _BT_RC_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1409,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1412,1
    - Dst: _BT_RC_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1415,1
    - Dst: makebdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1424,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1424,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1427,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1427,1
    - Dst: makebdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1436,1
    - Dst: _BT_SCO_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1436,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1441,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1456,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1459,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1461,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1474,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1481,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1488,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1495,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1511,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1519,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1527,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1541,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1545,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1555,1
    - Dst: strnlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1557,1
    - Dst: strnlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1560,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1572,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 4
    argNames:
    - sockfd
    - addr
    - addrlen
    - proto
    argTypes:
    - SOCKET_T
    - struct sockaddr*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1578
    functionName: makesockaddr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ntohl
    - Py_BuildValue
    - _BT_HCI_MEMB
    - Py_DECREF
    - ntohs
    - PyUnicode_DecodeFSDefault
    - ioctl
    - make_ipv4_addr
    - _BT_RC_MEMB
    - strnlen
    - _BT_L2_MEMB
    - PyErr_SetString
    - makebdaddr
    - make_ipv6_addr
    - _BT_SCO_MEMB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct maybe_idna*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1591
    functionName: idna_cleanup
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void idna_cleanup(struct maybe_idna *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: idna_cleanup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1599,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1604,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1605,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1606,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1608,1
    - Dst: PyByteArray_AsString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1609,1
    - Dst: PyByteArray_Size
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1610,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1612,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1613,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1616,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1617,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1618,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1623,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1626,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1626,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1628,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1629,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1633,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1637,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1638,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - struct maybe_idna*
    assertStmts:
    - condition: (PyBytes_Check(obj2))
      pos:
        line_end: 1625
        line_start: 1625
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 1643
      start: 1593
    functionDepth: 2
    functionLinenumber: 1593
    functionLinenumberEnd: 1643
    functionName: idna_converter
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_CLEAR
    - PyByteArray_Size
    - PyByteArray_AsString
    - PyBytes_Size
    - strlen
    - idna_cleanup
    - PyErr_Format
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - PyBytes_AsString
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - PyUnicode_IS_COMPACT_ASCII
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int idna_converter(PyObject *obj, struct maybe_idna *data)
  - BBCount: 88
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1665,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1666,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1670,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1671,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1672,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1675,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1682,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1692,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1699,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1704,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1715,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1716,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1719,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1722,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1743,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1744,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1748,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1751,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1767,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1768,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1769,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1773,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1776,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1797,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1798,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1801,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1804,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1809,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1809,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1810,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1811,1
    - Dst: setipaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1817,1
    - Dst: idna_cleanup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1823,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1829,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1842,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1843,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1846,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1849,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1855,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1855,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1856,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1857,1
    - Dst: setipaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1863,1
    - Dst: idna_cleanup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1865,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1869,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1875,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1881,1
    - Dst: htonl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1882,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1899,1
    - Dst: _BT_L2_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1900,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1901,1
    - Dst: _BT_L2_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1902,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1903,1
    - Dst: setbdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1907,1
    - Dst: _BT_L2_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1907,1
    - Dst: _BT_RC_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1919,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1920,1
    - Dst: _BT_RC_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1921,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1922,1
    - Dst: setbdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1926,1
    - Dst: _BT_RC_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1926,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1937,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1938,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1939,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1943,1
    - Dst: setbdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1944,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1944,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1947,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1948,1
    - Dst: _BT_HCI_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1948,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1949,1
    - Dst: _BT_SCO_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1964,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1965,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1966,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1970,1
    - Dst: setbdaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1971,1
    - Dst: _BT_SCO_MEMB
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1971,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1979,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1997,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:1998,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2001,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2007,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2013,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2013,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2014,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2015,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2020,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2022,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2023,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2024,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2028,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2030,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2034,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2037,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2042,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2047,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2053,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2065,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2066,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2069,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2073,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2082,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2100,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2128,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2129,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2131,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2134,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2142,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2147,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2147,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2149,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2157,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2165,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2181,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2187,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2192,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2192,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2194,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2196,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2212,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2217,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2235,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2239,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2244,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2247,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2250,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2250,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2252,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2254,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2255,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2262,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2264,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2275,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2288,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2291,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2292,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2294,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2297,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2307,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2308,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2311,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2312,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2313,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2316,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2326,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 411
    argCount: 5
    argNames:
    - s
    - args
    - addr_ret
    - len_ret
    - caller
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - struct sockaddr*
    - int*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1808
        line_start: 1808
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2012
        line_start: 2012
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - condition: (path.len >= 0)
      pos:
        line_end: 1674
        line_start: 1674
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1854
        line_start: 1854
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 2330
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 2330
    functionName: getsockaddrarg
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _BT_HCI_MEMB
    - _BT_RC_MEMB
    - _BT_SCO_MEMB
    - htons
    - PyErr_Occurred
    - Py_INCREF
    - PyTuple_Check
    - idna_cleanup
    - strlen
    - PyErr_Format
    - PyErr_ExceptionMatches
    - setbdaddr
    - assert
    - PyArg_ParseTuple
    - memset
    - setipaddr
    - htonl
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyUnicode_EncodeFSDefault
    - memcpy
    - ioctl
    - strncpy
    - _BT_L2_MEMB
    - PyBytes_Check
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - PySocketSockObject*::errorhandler
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: "int getsockaddrarg(PySocketSockObject *s, PyObject *args,\n               struct
      sockaddr *addr_ret, int *len_ret, const char *caller)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2455,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 75
    argCount: 2
    argNames:
    - s
    - len_ret
    argTypes:
    - PySocketSockObject*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2337
    functionDepth: 1
    functionLinenumber: 2337
    functionLinenumberEnd: 2475
    functionName: getsockaddrlen
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2494,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2489
    functionDepth: 0
    functionLinenumber: 2489
    functionLinenumberEnd: 2501
    functionName: get_CMSG_LEN
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    linkageType: ''
    returnType: int
    signature: int get_CMSG_LEN(size_t length, size_t *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2513,1
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - length
    - result
    argTypes:
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2520
    functionName: get_CMSG_SPACE
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_SPACE
    linkageType: ''
    returnType: int
    signature: int get_CMSG_SPACE(size_t length, size_t *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - cmsgh
    - space
    argTypes:
    - struct msghdr*
    - struct cmsghdr*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2562
    functionName: cmsg_min_space
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmsg_min_space(struct msghdr *msg, struct cmsghdr *cmsgh, size_t
      space)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - msg
    - cmsgh
    - space
    argTypes:
    - struct msghdr*
    - struct cmsghdr*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2568
    functionDepth: 0
    functionLinenumber: 2568
    functionLinenumberEnd: 2581
    functionName: get_cmsg_data_space
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_DATA
    linkageType: ''
    returnType: int
    signature: int get_cmsg_data_space(struct msghdr *msg, struct cmsghdr *cmsgh,
      size_t *space)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cmsg_min_space
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2595,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2595,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2596,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2598,1
    - Dst: get_cmsg_data_space
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - msg
    - cmsgh
    - data_len
    argTypes:
    - struct msghdr*
    - struct cmsghdr*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2607
    functionName: get_cmsg_data_len
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - cmsg_min_space
    - CMSG_LEN
    - get_cmsg_data_space
    linkageType: ''
    returnType: int
    signature: int get_cmsg_data_len(struct msghdr *msg, struct cmsghdr *cmsgh, size_t
      *data_len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2626,1
    - Dst: accept4
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2640,1
    - Dst: accept
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2648,1
    - Dst: accept
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2622
    functionDepth: 1
    functionLinenumber: 2622
    functionLinenumberEnd: 2658
    functionName: sock_accept_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - accept4
    - accept
    - SAS2SA
    linkageType: ''
    returnType: int
    signature: int sock_accept_impl(PySocketSockObject *s, void *data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2673,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2675,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2677,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2678,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2682,1
    - Dst: SetHandleInformation
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2687,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2688,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2689,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2698,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2699,1
    - Dst: PyLong_FromSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2705,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2707,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2711,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2711,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2716,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2720,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2662
    functionDepth: 4
    functionLinenumber: 2662
    functionLinenumberEnd: 2722
    functionName: sock_accept
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - SOCKETCLOSE
    - _Py_set_inheritable
    - sock_call
    - makesockaddr
    - PyTuple_Pack
    - select_error
    - IS_SELECTABLE
    - SetHandleInformation
    - PyLong_FromSocket_t
    - PyErr_SetFromWindowsErr
    - Py_XDECREF
    - getsockaddrlen
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_accept(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2741,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2742,1
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2745,1
    - Dst: internal_setblocking
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2736
    functionDepth: 2
    functionLinenumber: 2736
    functionLinenumberEnd: 2750
    functionName: sock_setblocking
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - internal_setblocking
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_setblocking(PySocketSockObject *s, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2763
    functionDepth: 0
    functionLinenumber: 2763
    functionLinenumberEnd: 2772
    functionName: sock_getblocking
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getblocking(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2792,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2796,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2801,1
    - Dst: _PyTime_AsTimeval
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2806,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2809,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - timeout
    - timeout_obj
    argTypes:
    - _PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2780
    functionDepth: 1
    functionLinenumber: 2780
    functionLinenumberEnd: 2819
    functionName: socket_parse_timeout
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - _PyTime_AsTimeval
    - PyErr_SetString
    - _PyTime_AsMilliseconds
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: int
    signature: int socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: socket_parse_timeout
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2832,1
    - Dst: internal_setblocking
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2827
    functionDepth: 2
    functionLinenumber: 2827
    functionLinenumberEnd: 2863
    functionName: sock_settimeout
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - internal_setblocking
    - socket_parse_timeout
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_settimeout(PySocketSockObject *s, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2882,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2885
    functionName: sock_gettimeout
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyTime_AsSecondsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_gettimeout(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2917,1
    - Dst: setsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2920,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2929,1
    - Dst: setsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2931,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2936,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2938,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2939,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2940,1
    - Dst: setsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2941,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2946,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2948,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2954,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2955,1
    - Dst: setsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2960,1
    - Dst: setsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2963,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2965,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:2969,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts:
    - condition: (sizeof(socklen_t) >= sizeof(unsigned int))
      pos:
        line_end: 2939
        line_start: 2939
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 2973
      start: 2902
    functionDepth: 1
    functionLinenumber: 2902
    functionLinenumberEnd: 2973
    functionName: sock_setsockopt
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - setsockopt
    - PyBuffer_Release
    - PyErr_Format
    - PySocketSockObject*::errorhandler
    - assert
    - PyErr_Clear
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_setsockopt(PySocketSockObject *s, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3001,1
    - Dst: getsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3010,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3013,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3014,1
    - Dst: getsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3018,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3021,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3022,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3026,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3032,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3036,1
    - Dst: getsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3039,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3042,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3043,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3045,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 2990
    functionDepth: 1
    functionLinenumber: 2990
    functionLinenumberEnd: 3047
    functionName: sock_getsockopt
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - getsockopt
    - _PyBytes_Resize
    - PySocketSockObject*::errorhandler
    - PyLong_FromUnsignedLong
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getsockopt(PySocketSockObject *s, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrarg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3066,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3066,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3070,1
    - Dst: bind
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3075,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3075,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - s
    - addro
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3080
      start: 3059
    functionDepth: 4
    functionLinenumber: 3059
    functionLinenumberEnd: 3080
    functionName: sock_bind
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - bind
    - SAS2SA
    - getsockaddrarg
    - PySocketSockObject*::errorhandler
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_bind(PySocketSockObject *s, PyObject *addro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3109,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3118
      start: 3094
    functionDepth: 0
    functionLinenumber: 3094
    functionLinenumberEnd: 3118
    functionName: sock_close
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SOCKETCLOSE
    - PySocketSockObject*::errorhandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_close(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3125
    functionDepth: 1
    functionLinenumber: 3125
    functionLinenumberEnd: 3131
    functionName: sock_detach
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_detach(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3146,1
    - Dst: SET_SOCK_ERROR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(data)
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3140
    functionDepth: 1
    functionLinenumber: 3140
    functionLinenumberEnd: 3159
    functionName: sock_connect_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - SET_SOCK_ERROR
    linkageType: ''
    returnType: int
    signature: int sock_connect_impl(PySocketSockObject *s, void* Py_UNUSED(data))
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3168,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3180,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3181,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3194,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3198,1
    - Dst: SET_SOCK_ERROR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3204,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3205,1
    - Dst: sock_call_ex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3214,1
    - Dst: sock_call_ex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3220,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - s
    - addr
    - addrlen
    - raise
    argTypes:
    - PySocketSockObject*
    - struct sockaddr*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3161
    functionDepth: 3
    functionLinenumber: 3161
    functionLinenumberEnd: 3225
    functionName: internal_connect
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_ERRNO
    - PyErr_CheckSignals
    - connect
    - IS_SELECTABLE
    - sock_call_ex
    - PySocketSockObject*::errorhandler
    - SET_SOCK_ERROR
    linkageType: ''
    returnType: int
    signature: "int internal_connect(PySocketSockObject *s, struct sockaddr *addr,
      int addrlen,\n                 int raise)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrarg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3236,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3236,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3240,1
    - Dst: internal_connect
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3244,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - addro
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3229
    functionDepth: 4
    functionLinenumber: 3229
    functionLinenumberEnd: 3249
    functionName: sock_connect
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getsockaddrarg
    - PySys_Audit
    - SAS2SA
    - internal_connect
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_connect(PySocketSockObject *s, PyObject *addro)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrarg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3267,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3267,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3271,1
    - Dst: internal_connect
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3275,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3275,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - addro
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3260
    functionDepth: 4
    functionLinenumber: 3260
    functionLinenumberEnd: 3280
    functionName: sock_connect_ex
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SAS2SA
    - getsockaddrarg
    - PySys_Audit
    - internal_connect
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_connect_ex(PySocketSockObject *s, PyObject *addro)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3291
    functionDepth: 1
    functionLinenumber: 3291
    functionLinenumberEnd: 3295
    functionName: sock_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_fileno(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3312,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3314,1
    - Dst: getsockname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3316,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3316,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3319,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3320,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3305
    functionDepth: 3
    functionLinenumber: 3305
    functionLinenumberEnd: 3322
    functionName: sock_getsockname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - makesockaddr
    - PySocketSockObject*::errorhandler
    - getsockname
    - getsockaddrlen
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getsockname(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3341,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3343,1
    - Dst: getpeername
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3345,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3345,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3348,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3349,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - Py_UNUSED(ignored)
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3334
    functionDepth: 3
    functionLinenumber: 3334
    functionLinenumberEnd: 3351
    functionName: sock_getpeername
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - makesockaddr
    - PySocketSockObject*::errorhandler
    - getpeername
    - getsockaddrlen
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_getpeername(PySocketSockObject *s, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3369,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3372,1
    - Dst: listen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3380,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3364
    functionDepth: 1
    functionLinenumber: 3364
    functionLinenumberEnd: 3385
    functionName: sock_listen
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PySocketSockObject*::errorhandler
    - Py_MIN
    - PyArg_ParseTuple
    - listen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_listen(PySocketSockObject *s, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3410,1
    - Dst: recv
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3402
    functionDepth: 0
    functionLinenumber: 3402
    functionLinenumberEnd: 3415
    functionName: sock_recv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - recv
    linkageType: ''
    returnType: int
    signature: int sock_recv_impl(PySocketSockObject *s, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3432,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3433,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - s
    - cbuf
    - len
    - flags
    argTypes:
    - PySocketSockObject*
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3427
    functionDepth: 4
    functionLinenumber: 3427
    functionLinenumberEnd: 3448
    functionName: sock_recv_guts
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - select_error
    - IS_SELECTABLE
    - sock_call
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sock_recv_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t
      len, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3464,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3470,1
    - Dst: sock_recv_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3475,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3479,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3453
    functionDepth: 5
    functionLinenumber: 3453
    functionLinenumberEnd: 3489
    functionName: sock_recv
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyBytes_Resize
    - PyErr_SetString
    - PyBytes_AS_STRING
    - sock_recv_guts
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recv(PySocketSockObject *s, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3513,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3521,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3532,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3533,1
    - Dst: sock_recv_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3539,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3542,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3546,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - s
    - args
    - kwds
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3550
      start: 3502
    functionDepth: 5
    functionLinenumber: 3502
    functionLinenumberEnd: 3550
    functionName: sock_recv_into
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyLong_FromSsize_t
    - sock_recv_guts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recv_into(PySocketSockObject *s, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3575,1
    - Dst: recvfrom
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3580,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3581,1
    - Dst: recvfrom
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3583,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3570
    functionDepth: 1
    functionLinenumber: 3570
    functionLinenumberEnd: 3587
    functionName: sock_recvfrom_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - memset
    - recvfrom
    linkageType: ''
    returnType: int
    signature: int sock_recvfrom_impl(PySocketSockObject *s, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3611,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3614,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3615,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3624,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3627,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - s
    - cbuf
    - len
    - flags
    - addr
    argTypes:
    - PySocketSockObject*
    - char*
    - Py_ssize_t
    - int
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3601
    functionDepth: 4
    functionLinenumber: 3601
    functionLinenumberEnd: 3633
    functionName: sock_recvfrom_guts
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - sock_call
    - makesockaddr
    - select_error
    - IS_SELECTABLE
    - getsockaddrlen
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t sock_recvfrom_guts(PySocketSockObject *s, char* cbuf, Py_ssize_t
      len, int flags,\n                   PyObject** addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3646,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3650,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3655,1
    - Dst: sock_recvfrom_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3659,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3659,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3668,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3673,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3676,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3637
    functionDepth: 5
    functionLinenumber: 3637
    functionLinenumberEnd: 3679
    functionName: sock_recvfrom
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyTuple_Pack
    - _PyBytes_Resize
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - Py_XDECREF
    - sock_recvfrom_guts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvfrom(PySocketSockObject *s, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3701,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3709,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3710,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3718,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3719,1
    - Dst: sock_recvfrom_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3724,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3726,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3728,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3732,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3735,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - s
    - args
    - kwds
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3689
    functionDepth: 5
    functionLinenumber: 3689
    functionLinenumberEnd: 3736
    functionName: sock_recvfrom_into
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - sock_recvfrom_guts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvfrom_into(PySocketSockObject *s, PyObject *args, PyObject* kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recvmsg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3752
    functionDepth: 0
    functionLinenumber: 3752
    functionLinenumberEnd: 3759
    functionName: sock_recvmsg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - recvmsg
    linkageType: ''
    returnType: int
    signature: int sock_recvmsg_impl(PySocketSockObject *s, void *data)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getsockaddrlen
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3792,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3794,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3795,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3798,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3802,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3803,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3806,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3807,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3811,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3820,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3824,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3828,1
    - Dst: CMSG_NXTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3829,1
    - Dst: get_cmsg_data_len
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3833,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3835,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3843,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3847,1
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3847,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3849,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3853,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3854,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3862,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3866,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3866,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3874,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3875,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3881,1
    - Dst: CMSG_NXTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3882,1
    - Dst: get_cmsg_data_len
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3883,1
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3892,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3894,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 7
    argNames:
    - s
    - iov
    - iovlen
    - flags
    - controllen
    - (*makeval)(ssize_t, void *)
    - makeval_data
    argTypes:
    - PySocketSockObject*
    - struct iovec*
    - int
    - int
    - Py_ssize_t
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3771
    functionDepth: 4
    functionLinenumber: 3771
    functionLinenumberEnd: 3901
    functionName: sock_recvmsg_guts
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - PyList_New
    - PyBytes_FromStringAndSize
    - CMSG_NXTHDR
    - close
    - CMSG_FIRSTHDR
    - Py_XDECREF
    - memset
    - Py_DECREF
    - CMSG_DATA
    - select_error
    - PyMem_Free
    - get_cmsg_data_len
    - PyErr_WarnEx
    - getsockaddrlen
    - Py_BuildValue
    - sock_call
    - PyErr_NoMemory
    - makesockaddr
    - IS_SELECTABLE
    - PyList_Append
    - PyErr_SetString
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsock_recvmsg_guts(PySocketSockObject *s, struct iovec
      *iov, int iovlen,\n                  int flags, Py_ssize_t controllen,\n                  PyObject
      *(*makeval)(ssize_t, void *), void *makeval_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3909,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3910,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3904
    functionDepth: 1
    functionLinenumber: 3904
    functionLinenumberEnd: 3913
    functionName: makeval_recvmsg
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makeval_recvmsg(ssize_t received, void *data)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3925,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3929,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3932,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3934,1
    - Dst: sock_recvmsg_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3940,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3917
    functionDepth: 5
    functionLinenumber: 3917
    functionLinenumberEnd: 3944
    functionName: sock_recvmsg
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - sock_recvmsg_guts
    - PyErr_SetString
    - PyBytes_AS_STRING
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvmsg(PySocketSockObject *s, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - received
    - data
    argTypes:
    - ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3980
      start: 3976
    functionDepth: 0
    functionLinenumber: 3976
    functionLinenumberEnd: 3980
    functionName: makeval_recvmsg_into
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makeval_recvmsg_into(ssize_t received, void *data)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3994,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/socketmodule.c:3998,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4002,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4004,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4010,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4011,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4012,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4016,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4016,1
    - Dst: sock_recvmsg_guts
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4025,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4029,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4030,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4031,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4032,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4034
      start: 3984
    functionDepth: 5
    functionLinenumber: 3984
    functionLinenumberEnd: 4034
    functionName: sock_recvmsg_into
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    - PyErr_NoMemory
    - sock_recvmsg_guts
    - PyArg_Parse
    - PyBuffer_Release
    - PySequence_Fast
    - PyErr_SetString
    - PyMem_Free
    - PyArg_ParseTuple
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_recvmsg_into(PySocketSockObject *s, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4086,1
    - Dst: send
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4091
      start: 4078
    functionDepth: 0
    functionLinenumber: 4078
    functionLinenumberEnd: 4091
    functionName: sock_send_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: int
    signature: int sock_send_impl(PySocketSockObject *s, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4102,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4105,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4106,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4107,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4112,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4113,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4116,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4119
      start: 4095
    functionDepth: 4
    functionLinenumber: 4095
    functionLinenumberEnd: 4119
    functionName: sock_send
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sock_call
    - select_error
    - IS_SELECTABLE
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_send(PySocketSockObject *s, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4145,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4150,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4151,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4152,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4159,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4167,1
    - Dst: sock_call_ex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4175,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4178,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4186,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4189,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4191,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 4177
        line_start: 4177
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 4197
      start: 4131
    functionDepth: 3
    functionLinenumber: 4131
    functionLinenumberEnd: 4197
    functionName: sock_sendall
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_CheckSignals
    - _PyTime_GetMonotonicClock
    - select_error
    - IS_SELECTABLE
    - sock_call_ex
    - PyBuffer_Release
    - PyErr_SetString
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendall(PySocketSockObject *s, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sendto
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4225,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4226,1
    - Dst: sendto
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4228,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4232
    functionName: sock_sendto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - sendto
    linkageType: ''
    returnType: int
    signature: int sock_sendto_impl(PySocketSockObject *s, void *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4247,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4250,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4255,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4261,1
    - Dst: IS_SELECTABLE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4267,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4268,1
    - Dst: select_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4269,1
    - Dst: getsockaddrarg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4272,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4272,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4273,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4277,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4286,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4287,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4290,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4293
      start: 4236
    functionDepth: 4
    functionLinenumber: 4236
    functionLinenumberEnd: 4293
    functionName: sock_sendto
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - SAS2SA
    - sock_call
    - select_error
    - IS_SELECTABLE
    - getsockaddrarg
    - PyLong_FromSsize_t
    - PyErr_Format
    - PyBuffer_Release
    - PyTuple_Size
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendto(PySocketSockObject *s, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4323,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4330,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4332,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4338,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4340,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4345,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4347,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4352,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4352,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4364,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - s
    - data_arg
    - msg
    - databufsout
    - ndatabufsout
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - struct msghdr*
    - Py_buffer**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4366
      start: 4311
    functionDepth: 1
    functionLinenumber: 4311
    functionLinenumberEnd: 4366
    functionName: sock_sendmsg_iovec
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PySequence_Fast_GET_ITEM
    - PyErr_NoMemory
    - PyArg_Parse
    - PySequence_Fast
    - PyErr_SetString
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int sock_sendmsg_iovec(PySocketSockObject *s, PyObject *data_arg,\n
      \                  struct msghdr *msg,\n                   Py_buffer **databufsout,
      Py_ssize_t *ndatabufsout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sendmsg
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - PySocketSockObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4375
      start: 4368
    functionDepth: 0
    functionLinenumber: 4368
    functionLinenumberEnd: 4375
    functionName: sock_sendmsg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sendmsg
    linkageType: ''
    returnType: int
    signature: int sock_sendmsg_impl(PySocketSockObject *s, void *data)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4612,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4617,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4625,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4629,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4633,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4639,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4640,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4644,1
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4650,1
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4652,1
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4655,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4658,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4660,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4663,1
    - Dst: sock_sendmsg_iovec
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4671,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4677,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4679,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4685,1
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4686,1
    - Dst: CMSG_NXTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4691,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4693,1
    - Dst: CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4699,1
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4700,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4702,1
    - Dst: CMSG_NXTHDR
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4707,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4709,1
    - Dst: CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4715,1
    - Dst: CMSG_DATA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4716,1
    - Dst: sock_call
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4722,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4726,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4729,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4731,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4733,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4735,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4737,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 108
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PySocketSockObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4739
      start: 4583
    functionDepth: 4
    functionLinenumber: 4583
    functionLinenumberEnd: 4739
    functionName: sock_sendmsg_afalg
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - CMSG_LEN
    - PyErr_Occurred
    - PyMem_Malloc
    - CMSG_NXTHDR
    - memcpy
    - sock_call
    - PyErr_NoMemory
    - CMSG_DATA
    - sock_sendmsg_iovec
    - PyLong_FromSsize_t
    - PyMem_Free
    - PyErr_SetString
    - PyBuffer_Release
    - PyArg_ParseTupleAndKeywords
    - CMSG_FIRSTHDR
    - memset
    - _PyLong_AsInt
    - CMSG_SPACE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_sendmsg_afalg(PySocketSockObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4756,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4757,1
    - Dst: shutdown
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4760,1
    - Dst: PySocketSockObject*::errorhandler
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4765
      start: 4750
    functionDepth: 1
    functionLinenumber: 4750
    functionLinenumberEnd: 4765
    functionName: sock_shutdown
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - shutdown
    - PySocketSockObject*::errorhandler
    - PyErr_Occurred
    - _PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_shutdown(PySocketSockObject *s, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4781,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4787,1
    - Dst: WSAIoctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4789,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4791,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4793,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4796,1
    - Dst: WSAIoctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4799,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4801,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4803,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4807,1
    - Dst: WSAIoctl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4809,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4811,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4813,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4819
      start: 4774
    functionDepth: 1
    functionLinenumber: 4774
    functionLinenumberEnd: 4819
    functionName: sock_ioctl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_error
    - PyErr_Format
    - PyLong_FromUnsignedLong
    - WSAIoctl
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_ioctl(PySocketSockObject *s, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4837,1
    - Dst: WSADuplicateSocketW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4841,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4844,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PySocketSockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4846
      start: 4830
    functionDepth: 1
    functionLinenumber: 4830
    functionLinenumberEnd: 4846
    functionName: sock_share
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - WSADuplicateSocketW
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_share(PySocketSockObject *s, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4987,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:4990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4991
      start: 4984
    functionDepth: 1
    functionLinenumber: 4984
    functionLinenumberEnd: 4991
    functionName: sock_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sock_dealloc(PySocketSockObject *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5007,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - PySocketSockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5020
      start: 4994
    functionDepth: 1
    functionLinenumber: 4994
    functionLinenumberEnd: 5020
    functionName: sock_repr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_repr(PySocketSockObject *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type::type
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5030,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5030,1
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5037
      start: 5025
    functionDepth: 1
    functionLinenumber: 5025
    functionLinenumberEnd: 5037
    functionName: sock_new
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - type::type
    - tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WSASocketW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5210,1
    - Dst: socket
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5208
    functionDepth: 0
    functionLinenumber: 5208
    functionLinenumberEnd: 5218
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socket
    - WSASocketW
    linkageType: ''
    returnType: Py_BEGIN_ALLOW_THREADS
    signature: Py_BEGIN_ALLOW_THREADS if (support_wsa_no_inherit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5341,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5350,1
    - Dst: GetComputerNameExW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5354,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5355,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5357,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5358,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5361,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5365,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5367,1
    - Dst: GetComputerNameExW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5370,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5374,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5375,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5378,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5379,1
    - Dst: gethostname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5385,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5388,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5392
      start: 5338
    functionDepth: 1
    functionLinenumber: 5338
    functionLinenumberEnd: 5392
    functionName: socket_gethostname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyMem_New
    - Py_ARRAY_LENGTH
    - gethostname
    - set_error
    - PyUnicode_DecodeFSDefault
    - PyErr_NoMemory
    - GetComputerNameExW
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostname(PyObject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5416,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5417,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5418,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5424,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5428,1
    - Dst: sethostname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5430,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5434,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5436,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5438
      start: 5404
    functionDepth: 1
    functionLinenumber: 5404
    functionLinenumberEnd: 5438
    functionName: socket_sethostname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - sethostname
    - Py_DECREF
    - set_error
    - PySys_Audit
    - PyBuffer_Release
    - PyErr_Clear
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_sethostname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5451,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5453,1
    - Dst: setipaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5456,1
    - Dst: make_ipv4_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5458,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5460,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5462
      start: 5444
    functionDepth: 3
    functionLinenumber: 5444
    functionLinenumberEnd: 5462
    functionName: socket_gethostbyname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - setipaddr
    - make_ipv4_addr
    - PyMem_Free
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5476,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5481
      start: 5470
    functionDepth: 1
    functionLinenumber: 5470
    functionLinenumberEnd: 5481
    functionName: sock_decode_hostname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sock_decode_hostname(const char *name)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: set_herror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5497,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5504,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5524,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5527,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5534,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5539,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5554,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5559,1
    - Dst: make_ipv4_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5560,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5563,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5571,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5576,1
    - Dst: make_ipv6_addr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5577,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5580,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5586,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5595,1
    - Dst: sock_decode_hostname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5601,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5604,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5607,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5608,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 84
    argCount: 4
    argNames:
    - h
    - addr
    - alen
    - af
    argTypes:
    - struct hostent*
    - struct sockaddr*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5610
      start: 5485
    functionDepth: 2
    functionLinenumber: 5485
    functionLinenumberEnd: 5610
    functionName: gethost_common
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_BuildValue
    - memcpy
    - Py_DECREF
    - set_herror
    - make_ipv4_addr
    - Py_XDECREF
    - PyErr_SetFromErrno
    - sock_decode_hostname
    - PyList_Append
    - PyErr_SetString
    - PyList_New
    - make_ipv6_addr
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gethost_common(struct hostent *h, struct sockaddr *addr, size_t alen, int af)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5638,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5640,1
    - Dst: setipaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5643,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5643,1
    - Dst: gethostbyname_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5648,1
    - Dst: gethostbyname_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5651,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5653,1
    - Dst: gethostbyname_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5654,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5659,1
    - Dst: gethostbyname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5662,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5669,1
    - Dst: gethost_common
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5670,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5670,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5673,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5676,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5616
    functionDepth: 3
    functionLinenumber: 5616
    functionLinenumberEnd: 5678
    functionName: socket_gethostbyname_ex
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - setipaddr
    - SAS2SA
    - gethostbyname
    - memset
    - gethost_common
    - PyThread_acquire_lock
    - PyMem_Free
    - PyThread_release_lock
    - PySys_Audit
    - PyArg_ParseTuple
    - gethostbyname_r
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyname_ex(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5694,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5719,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5721,1
    - Dst: setipaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5742,1
    - Dst: gethostbyaddr_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5748,1
    - Dst: gethostbyaddr_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5752,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5755,1
    - Dst: gethostbyaddr_r
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5756,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5761,1
    - Dst: gethostbyaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5764,1
    - Dst: gethost_common
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5767,1
    - Dst: SAS2SA
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5767,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5769,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5772,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5774
      start: 5690
    functionDepth: 3
    functionLinenumber: 5690
    functionLinenumberEnd: 5774
    functionName: socket_gethostbyaddr
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - setipaddr
    - SAS2SA
    - gethostbyaddr
    - gethost_common
    - gethostbyaddr_r
    - PyThread_acquire_lock
    - PyMem_Free
    - PyErr_SetString
    - PyThread_release_lock
    - PySys_Audit
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_gethostbyaddr(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5793,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5796,1
    - Dst: getservbyname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5801,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5804,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5807,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5808
      start: 5788
    functionDepth: 1
    functionLinenumber: 5788
    functionLinenumberEnd: 5808
    functionName: socket_getservbyname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ntohs
    - getservbyname
    - PyErr_SetString
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyname(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5829,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5832,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5838,1
    - Dst: getservbyport
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5843,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5843,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5846,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5850
      start: 5823
    functionDepth: 1
    functionLinenumber: 5823
    functionLinenumberEnd: 5850
    functionName: socket_getservbyport
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - getservbyport
    - PyUnicode_FromString
    - PyErr_SetString
    - PySys_Audit
    - PyArg_ParseTuple
    - htons
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getservbyport(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5869,1
    - Dst: getprotobyname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5872,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5875,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5879
      start: 5864
    functionDepth: 1
    functionLinenumber: 5864
    functionLinenumberEnd: 5879
    functionName: socket_getprotobyname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - getprotobyname
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getprotobyname(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5892,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5893,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5896,1
    - Dst: CHECK_ERRNO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5900,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5904
      start: 5886
    functionDepth: 1
    functionLinenumber: 5886
    functionLinenumberEnd: 5904
    functionName: socket_close
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - CHECK_ERRNO
    - set_error
    - SOCKETCLOSE
    - PyLong_AsSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_close(PyObject *self, PyObject *fdobj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5924,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5925,1
    - Dst: WSADuplicateSocketW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5929,1
    - Dst: GetCurrentProcessId
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5929,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5930,1
    - Dst: WSASocketW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5932,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5936,1
    - Dst: SetHandleInformation
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5938,1
    - Dst: closesocket
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5939,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5940,1
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5945,1
    - Dst: PyLong_FromSocket_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5950,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5952,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - fdobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5954
      start: 5915
    functionDepth: 1
    functionLinenumber: 5915
    functionLinenumberEnd: 5954
    functionName: socket_dup
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - WSADuplicateSocketW
    - closesocket
    - PyErr_Occurred
    - set_error
    - WSASocketW
    - PyLong_FromSocket_t
    - SetHandleInformation
    - GetCurrentProcessId
    - PyLong_AsSocket_t
    - PyErr_SetFromWindowsErr
    - _Py_dup
    - SOCKETCLOSE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_dup(PyObject *self, PyObject *fdobj)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5989,1
    - Dst: socketpair
      Src: /src/Python-3.8.3/Modules/socketmodule.c:5997,1
    - Dst: socketpair
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6005,1
    - Dst: socketpair
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6012,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6017,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6019,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6021,1
    - Dst: new_sockobject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6024,1
    - Dst: new_sockobject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6027,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6030,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6035,1
    - Dst: SOCKETCLOSE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6037,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6039,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6040,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6042
      start: 5970
    functionDepth: 4
    functionLinenumber: 5970
    functionLinenumberEnd: 6042
    functionName: socket_socketpair
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socketpair
    - set_error
    - _Py_set_inheritable
    - new_sockobject
    - PyTuple_Pack
    - SOCKETCLOSE
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_socketpair(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6060,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6064,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6070,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6078,1
    - Dst: ntohs
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6055
    functionDepth: 1
    functionLinenumber: 6055
    functionLinenumberEnd: 6079
    functionName: socket_ntohs
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - ntohs
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_ntohs(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6097,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6098,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6099,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6107,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6114,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6116,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6117,1
    - Dst: ntohl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6118
      start: 6092
    functionDepth: 1
    functionLinenumber: 6092
    functionLinenumberEnd: 6118
    functionName: socket_ntohl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - ntohl
    - PyErr_Occurred
    - PyErr_Format
    - Py_TYPE
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_ntohl(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6131,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6135,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6141,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6149,1
    - Dst: htons
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6150
      start: 6126
    functionDepth: 1
    functionLinenumber: 6126
    functionLinenumberEnd: 6150
    functionName: socket_htons
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    - PyErr_WarnEx
    - htons
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_htons(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6168,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6169,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6170,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6178,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6185,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6187,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6188,1
    - Dst: htonl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6189
      start: 6163
    functionDepth: 1
    functionLinenumber: 6163
    functionLinenumberEnd: 6189
    functionName: socket_htonl
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - htonl
    - PyErr_Occurred
    - PyErr_Format
    - Py_TYPE
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_htonl(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6281,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6286,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6288,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6292,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6297
      start: 6275
    functionDepth: 1
    functionLinenumber: 6275
    functionLinenumberEnd: 6297
    functionName: socket_inet_ntoa
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyArg_ParseTuple
    - PyErr_SetString
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_inet_ntoa(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6314,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6318,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6324,1
    - Dst: inet_pton
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6330,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6332,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6335,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6339,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6343,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6350
      start: 6307
    functionDepth: 1
    functionLinenumber: 6307
    functionLinenumberEnd: 6350
    functionName: socket_inet_pton
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - inet_pton
    - PyErr_SetFromErrno
    - Py_MAX
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_inet_pton(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6364,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6369,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6375,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6377,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6383,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6385,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6390,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6392,1
    - Dst: inet_ntop
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6397,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6398,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6400,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6405
      start: 6357
    functionDepth: 1
    functionLinenumber: 6357
    functionLinenumberEnd: 6405
    functionName: socket_inet_ntop
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_MAX
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - inet_ntop
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_inet_ntop(PyObject *self, PyObject *args)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6430,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6437,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6438,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6441,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6441,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6442,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6443,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6444,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6446,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6450,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6451,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6452,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6454,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6456,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6457,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6460,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6461,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6465,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6478,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6483,1
    - Dst: getaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6490,1
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6494,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6498,1
    - Dst: makesockaddr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6504,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6511,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6519,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6521,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6523,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6526,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6527,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6529,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 91
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(idna))
      pos:
        line_end: 6440
        line_start: 6440
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    constantsTouched: []
    func_position:
      end: 6531
      start: 6412
    functionDepth: 3
    functionLinenumber: 6412
    functionLinenumberEnd: 6531
    functionName: socket_getaddrinfo
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyUnicode_AsUTF8
    - PyList_New
    - PyArg_ParseTupleAndKeywords
    - PyErr_Occurred
    - set_gaierror
    - assert
    - Py_XDECREF
    - memset
    - freeaddrinfo
    - PyOS_snprintf
    - Py_DECREF
    - PyBytes_AsString
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - Py_BuildValue
    - makesockaddr
    - PyBytes_Check
    - PyLong_CheckExact
    - PyList_Append
    - PyErr_SetString
    - PyUnicode_Check
    - PySys_Audit
    - getaddrinfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6496
      start: 6491
    functionDepth: 2
    functionLinenumber: 6491
    functionLinenumberEnd: 6496
    functionName: RELEASE_GETADDRINFO_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: "Py_END_ALLOW_THREADS RELEASE_GETADDRINFO_LOCK  /* see comment in setipaddr()
      */\n    if (error)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6557,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6559,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6560,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6564,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6570,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6575,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6579,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6580,1
    - Dst: getaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6586,1
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6594,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6601,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6602,1
    - Dst: htonl
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6613,1
    - Dst: getnameinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6619,1
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6622,1
    - Dst: sock_decode_hostname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6626,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6629,1
    - Dst: freeaddrinfo
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6633,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6635
      start: 6542
    functionDepth: 2
    functionLinenumber: 6542
    functionLinenumberEnd: 6635
    functionName: socket_getnameinfo
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - htonl
    - Py_BuildValue
    - PyOS_snprintf
    - freeaddrinfo
    - PyTuple_GET_SIZE
    - getnameinfo
    - sock_decode_hostname
    - PyTuple_Check
    - PyErr_SetString
    - set_gaierror
    - PySys_Audit
    - getaddrinfo
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getnameinfo(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_gaierror
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6592
      start: 6587
    functionDepth: 2
    functionLinenumber: 6587
    functionLinenumberEnd: 6592
    functionName: RELEASE_GETADDRINFO_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - set_gaierror
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: "Py_END_ALLOW_THREADS RELEASE_GETADDRINFO_LOCK  /* see comment in setipaddr()
      */\n    if (error)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6652,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6655
      start: 6645
    functionDepth: 1
    functionLinenumber: 6645
    functionLinenumberEnd: 6655
    functionName: socket_getdefaulttimeout
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyTime_AsSecondsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_getdefaulttimeout(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: socket_parse_timeout
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6675
      start: 6664
    functionDepth: 2
    functionLinenumber: 6664
    functionLinenumberEnd: 6675
    functionName: socket_setdefaulttimeout
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - socket_parse_timeout
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_setdefaulttimeout(PyObject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6690,1
    - Dst: GetIfTable2Ex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6697,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6698,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6700,1
    - Dst: ConvertInterfaceLuidToNameW
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6705,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6706,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6707,1
    - Dst: FreeMibTable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6708,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6710,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6712,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6713,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6715,1
    - Dst: FreeMibTable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6716,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6719,1
    - Dst: FreeMibTable
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6721,1
    - Dst: if_nameindex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6727,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6729,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6730,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6735,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6736,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6741,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6747,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6751,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6754,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6755,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6756,1
    - Dst: if_freenameindex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6757,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6760,1
    - Dst: if_freenameindex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6763,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6766
      start: 6687
    functionDepth: 1
    functionLinenumber: 6687
    functionLinenumberEnd: 6766
    functionName: socket_if_nameindex
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - Py_BuildValue
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - ConvertInterfaceLuidToNameW
    - PyErr_SetFromErrno
    - PyList_Append
    - if_nameindex
    - FreeMibTable
    - if_freenameindex
    - PyList_New
    - Py_XDECREF
    - PyErr_SetFromWindowsErr
    - GetIfTable2Ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_if_nameindex(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6782,1
    - Dst: if_nametoindex
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6786,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6787,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6790,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6795
      start: 6773
    functionDepth: 1
    functionLinenumber: 6773
    functionLinenumberEnd: 6795
    functionName: socket_if_nametoindex
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    - Py_DECREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    - if_nametoindex
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_if_nametoindex(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6812,1
    - Dst: if_indextoname
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6816,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6817,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6821,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6802
    functionDepth: 1
    functionLinenumber: 6802
    functionLinenumberEnd: 6822
    functionName: socket_if_indextoname
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyLong_AsUnsignedLong
    - if_indextoname
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_if_indextoname(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6841,1
    - Dst: get_CMSG_LEN
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6843,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6844,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6848
      start: 6835
    functionDepth: 1
    functionLinenumber: 6835
    functionLinenumberEnd: 6848
    functionName: socket_CMSG_LEN
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - get_CMSG_LEN
    - PyErr_Format
    - PyArg_ParseTuple
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_CMSG_LEN(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6871,1
    - Dst: get_CMSG_SPACE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6873,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6874,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6879
      start: 6865
    functionDepth: 1
    functionLinenumber: 6865
    functionLinenumberEnd: 6879
    functionName: socket_CMSG_SPACE
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - get_CMSG_SPACE
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      socket_CMSG_SPACE(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WSACleanup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6980
      start: 6976
    functionDepth: 0
    functionLinenumber: 6976
    functionLinenumberEnd: 6980
    functionName: os_cleanup
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - WSACleanup
    linkageType: ''
    returnType: void
    signature: void os_cleanup(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WSAStartup
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6987,1
    - Dst: Py_AtExit
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6990,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6993,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/socketmodule.c:6998,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7007
      start: 6982
    functionDepth: 1
    functionLinenumber: 6982
    functionLinenumberEnd: 7007
    functionName: os_init
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - WSAStartup
    - Py_AtExit
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int os_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7018
      start: 7014
    functionDepth: 0
    functionLinenumber: 7014
    functionLinenumberEnd: 7018
    functionName: os_init
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int os_init(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: os_init
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7065,1
    - Dst: IsWindows7SP1OrGreater
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7070,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7074,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7075,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7079,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7081,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7082,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7083,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7087,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7088,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7089,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7093,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7094,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7095,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7100,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7101,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7102,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7103,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7106,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7107,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7116,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7117,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7120,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7121,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7127,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7129,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7131,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7135,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7138,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7142,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7146,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7150,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7154,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7158,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7161,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7165,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7168,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7172,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7176,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7180,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7184,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7188,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7192,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7193,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7195,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7198,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7200,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7201,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7203,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7206,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7209,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7212,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7215,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7217,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7219,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7222,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7225,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7231,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7235,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7236,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7237,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7238,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7239,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7240,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7241,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7242,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7243,1
    - Dst: _IO
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7243,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7248,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7251,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7255,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7259,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7263,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7267,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7271,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7275,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7279,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7283,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7287,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7288,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7289,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7290,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7292,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7296,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7298,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7299,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7301,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7302,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7303,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7308,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7312,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7317,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7320,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7325,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7328,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7332,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7335,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7338,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7341,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7344,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7347,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7350,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7353,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7356,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7360,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7363,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7364,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7365,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7367,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7368,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7369,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7372,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7373,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7374,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7375,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7376,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7378,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7379,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7380,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7381,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7384,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7385,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7388,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7390,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7391,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7392,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7393,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7394,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7395,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7400,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7401,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7402,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7403,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7404,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7405,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7408,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7409,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7410,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7411,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7415,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7416,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7420,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7422,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7424,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7427,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7430,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7434,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7437,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7440,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7443,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7447,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7450,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7453,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7456,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7459,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7462,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7466,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7470,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7473,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7476,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7479,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7482,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7485,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7488,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7491,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7494,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7497,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7500,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7503,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7506,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7509,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7512,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7515,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7518,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7521,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7524,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7529,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7531,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7536,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7539,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7542,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7547,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7550,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7553,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7556,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7559,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7562,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7565,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7568,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7571,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7574,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7577,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7580,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7583,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7586,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7589,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7592,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7595,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7598,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7601,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7604,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7609,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7612,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7614,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7617,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7620,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7623,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7626,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7629,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7632,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7634,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7637,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7639,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7642,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7645,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7646,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7649,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7650,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7651,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7653,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7654,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7655,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7657,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7661,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7662,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7663,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7664,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7667,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7670,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7673,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7674,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7675,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7676,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7677,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7678,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7679,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7680,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7681,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7682,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7683,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7684,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7687,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7688,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7689,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7690,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7691,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7692,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7693,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7694,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7695,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7696,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7697,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7700,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7704,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7707,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7710,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7713,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7716,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7719,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7722,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7725,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7728,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7730,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7733,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7736,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7738,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7741,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7744,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7747,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7750,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7753,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7756,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7758,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7761,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7764,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7767,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7769,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7772,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7775,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7778,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7781,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7784,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7787,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7790,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7793,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7796,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7799,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7802,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7805,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7808,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7811,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7814,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7817,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7820,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7823,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7826,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7829,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7832,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7836,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7838,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7841,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7845,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7846,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7847,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7848,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7849,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7850,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7851,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7852,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7856,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7861,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7863,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7866,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7868,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7873,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7875,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7878,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7880,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7883,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7885,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7888,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7890,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7893,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7896,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7899,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7901,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7904,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7906,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7911,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7914,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7917,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7920,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7923,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7926,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7929,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7932,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7935,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7938,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7941,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7944,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7947,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7950,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7953,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7956,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7959,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7964,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7967,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7970,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7973,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7976,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7979,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7983,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7987,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7990,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7993,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7996,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:7999,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8002,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8005,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8008,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8011,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8014,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8017,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8020,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8023,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8026,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8029,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8032,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8035,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8038,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8041,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8044,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8049,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8052,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8055,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8058,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8061,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8064,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8067,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8070,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8073,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8076,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8079,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8082,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8085,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8088,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8091,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8094,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8099,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8104,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8107,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8110,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8113,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8116,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8119,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8122,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8125,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8128,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8131,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8134,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8137,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8142,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8145,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8148,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8151,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8154,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8157,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8160,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8163,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8166,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8169,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8172,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8175,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8178,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8181,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8184,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8187,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8190,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8193,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8196,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8199,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8202,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8205,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8208,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8211,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8214,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8217,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8220,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8223,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8226,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8229,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8232,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8235,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8240,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8242,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8244,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8247,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8249,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8251,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8254,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8256,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8258,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8274,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8276,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8279,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8282,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8283,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8284,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8286,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8289,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8295,1
    - Dst: remove_unusable_flags
      Src: /src/Python-3.8.3/Modules/socketmodule.c:8300,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 474
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8304
      start: 7060
    functionDepth: 2
    functionLinenumber: 7060
    functionLinenumberEnd: 8304
    functionName: PyInit__socket
    functionSourceFile: /src/Python-3.8.3/Modules/socketmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - remove_unusable_flags
    - _IO
    - IsWindows7SP1OrGreater
    - Py_INCREF
    - PyErr_NewException
    - Py_ARRAY_LENGTH
    - PyModule_Create
    - PyModule_AddObject
    - PyCapsule_New
    - os_init
    - Py_TYPE
    - PyThread_allocate_lock
    - PyLong_FromUnsignedLong
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__socket(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - link
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: MARK_END
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARK_END(link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - link
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: CHECK_END
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_END(link)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - link
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: CHECK_NOT_END
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOT_END(link)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:136,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: newblock
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: block
    signature: 'block *

      newblock(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: freeblock
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void freeblock(block *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:162,1
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:168,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:171,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:172,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (BLOCKLEN >= 2)
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 185
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 185
    functionName: deque_new
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - MARK_END
    - newblock
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(deque)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:193,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:194,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:199,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:203,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:205,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:206,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:207,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:208,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:212,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - deque
    - unused
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock != deque->rightblock)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 220
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 220
    functionName: deque_pop
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - MARK_END
    - CHECK_NOT_END
    - PyErr_SetString
    - assert
    - freeblock
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_pop(dequeobject *deque, PyObject *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:230,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:231,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:234,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:237,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:242,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:244,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:245,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:246,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:250,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - deque
    - unused
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock != NULL)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftblock != deque->rightblock)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 258
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 258
    functionName: deque_popleft
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - MARK_END
    - CHECK_NOT_END
    - PyErr_SetString
    - assert
    - freeblock
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_popleft(dequeobject *deque, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - deque
    - ','
    - maxlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: NEEDS_TRIM
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_TRIM(deque, maxlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:280,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:284,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:287,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:290,1
    - Dst: NEEDS_TRIM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:293,1
    - Dst: deque_popleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 300
    functionName: deque_append_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - MARK_END
    - deque_popleft
    - CHECK_END
    - NEEDS_TRIM
    - newblock
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int deque_append_internal(dequeobject *deque, PyObject *item, Py_ssize_t
      maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:305,1
    - Dst: deque_append_internal
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: deque_append
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append_internal
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_append(dequeobject *deque, PyObject *item)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:317,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:321,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:324,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:327,1
    - Dst: NEEDS_TRIM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:330,1
    - Dst: deque_pop
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - deque
    - item
    - maxlen
    argTypes:
    - dequeobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 337
    functionName: deque_appendleft_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - deque_pop
    - MARK_END
    - CHECK_END
    - NEEDS_TRIM
    - newblock
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int deque_appendleft_internal(dequeobject *deque, PyObject *item, Py_ssize_t
      maxlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:342,1
    - Dst: deque_appendleft_internal
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - deque
    - item
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 346
    functionName: deque_appendleft
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_appendleft_internal
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_appendleft(dequeobject *deque, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:353,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:354,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:355,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: finalize_iterator
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      finalize_iterator(PyObject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:373,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:375,1
    - Dst: finalize_iterator
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 378
    functionName: consume_iterator
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - iternext
    - Py_TYPE
    - Py_DECREF
    - finalize_iterator
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consume_iterator(PyObject *it)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:390,1
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:393,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:394,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:398,1
    - Dst: consume_iterator
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:403,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:406,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:407,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:408,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:413,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:414,1
    - Dst: deque_append_internal
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:416,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:417,1
    - Dst: finalize_iterator
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:421,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 406
        line_start: 406
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 422
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 422
    functionName: deque_extend
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - consume_iterator
    - deque_extend
    - finalize_iterator
    - iternext
    - Py_TYPE
    - Py_SIZE
    - assert
    - PyObject_GetIter
    - deque_append_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extend(dequeobject *deque, PyObject *iterable)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:437,1
    - Dst: deque_extendleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:441,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:445,1
    - Dst: consume_iterator
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:450,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:453,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:454,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:455,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:460,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:461,1
    - Dst: deque_appendleft_internal
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:462,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:463,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:464,1
    - Dst: finalize_iterator
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - deque
    - iterable
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (deque->leftblock == deque->rightblock)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (deque->leftindex == deque->rightindex+1)
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 469
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 469
    functionName: deque_extendleft
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - deque_appendleft_internal
    - consume_iterator
    - finalize_iterator
    - iternext
    - Py_TYPE
    - Py_SIZE
    - assert
    - PyObject_GetIter
    - deque_extendleft
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_extendleft(dequeobject *deque, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:479,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - deque
    - other
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 485
    functionName: deque_inplace_concat
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - deque_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_concat(dequeobject *deque, PyObject *other)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:492,1
    - Dst: deque_new
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:496,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:501,1
    - Dst: deque_append
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:503,1
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:511,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:515,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:515,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:518,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:518,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:520,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:521,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:523,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:523,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:524,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 487
    functionDepth: 5
    functionLinenumber: 487
    functionLinenumberEnd: 528
    functionName: deque_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append
    - Py_DECREF
    - PyObject_TypeCheck
    - deque_extend
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyObject_CallFunction
    - PyErr_Format
    - deque_new
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_copy(PyObject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:538,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:541,1
    - Dst: deque_copy
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:548,1
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - deque
    - other
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 532
    functionDepth: 6
    functionLinenumber: 532
    functionLinenumberEnd: 558
    functionName: deque_concat
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_copy
    - PyObject_IsInstance
    - Py_DECREF
    - deque_extend
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_concat(dequeobject *deque, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:571,1
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:587,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:589,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:594,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:599,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:600,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:619,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:629,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:631,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:632,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:636,1
    - Dst: deque_pop
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:637,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (item != NULL)
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 642
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 642
    functionName: deque_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - deque_pop
    - MARK_END
    - CHECK_END
    - CHECK_NOT_END
    - newblock
    - Py_SIZE
    - assert
    - freeblock
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int deque_clear(dequeobject *deque)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 601
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(deque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deque_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 649
    functionName: deque_clearmethod
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_clearmethod(dequeobject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:660,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:662,1
    - Dst: deque_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:667,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:668,1
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:682,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:684,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:688,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:691,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:700,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:704,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:705,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:710,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:713,1
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:722,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:724,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:727,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:730,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 653
    functionDepth: 5
    functionLinenumber: 653
    functionLinenumberEnd: 732
    functionName: deque_inplace_repeat
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - deque_clear
    - Py_INCREF
    - PyErr_NoMemory
    - deque_extend
    - MARK_END
    - CHECK_END
    - newblock
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_inplace_repeat(dequeobject *deque, Py_ssize_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deque_copy
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:740,1
    - Dst: deque_inplace_repeat
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 734
    functionDepth: 6
    functionLinenumber: 734
    functionLinenumberEnd: 746
    functionName: deque_repeat
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_copy
    - Py_DECREF
    - deque_inplace_repeat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_repeat(dequeobject *deque, Py_ssize_t n)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:781,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:793,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:794,1
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:800,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:805,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:808,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:812,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:821,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:832,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:833,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:835,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:837,1
    - Dst: newblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:844,1
    - Dst: CHECK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:849,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:852,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:856,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:865,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:876,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:877,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:879,1
    - Dst: MARK_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:881,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:888,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 105
    argCount: 2
    argNames:
    - deque
    - n
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts:
    - condition: (-halflen <= n && n <= halflen)
      pos:
        line_end: 793
        line_start: 793
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (leftindex > 0)
      pos:
        line_end: 811
        line_start: 811
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 831
        line_start: 831
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (len > 1)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (rightindex < BLOCKLEN - 1)
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (leftblock != rightblock)
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (b == NULL)
      pos:
        line_end: 876
        line_start: 876
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (m > 0 && m <= len)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 895
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 895
    functionName: _deque_rotate
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - MARK_END
    - CHECK_END
    - CHECK_NOT_END
    - newblock
    - assert
    - freeblock
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int _deque_rotate(dequeobject *deque, Py_ssize_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:902,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - dequeobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 909
    functionName: deque_rotate
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 1
    functionsReached:
    - _PyArg_ParseStack
    - _deque_rotate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_rotate(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:921,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:926,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:927,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:928,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - deque
    - unused
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (leftblock != rightblock || leftindex < rightindex)
      pos:
        line_end: 925
        line_start: 925
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 950
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 950
    functionName: deque_reverse
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - CHECK_NOT_END
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reverse(dequeobject *deque, PyObject *unused)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:960,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:967,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:969,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:970,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:971,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:977,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 990
    functionName: deque_count
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyLong_FromSsize_t
    - CHECK_NOT_END
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_count(dequeobject *deque, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1000,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1006,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1008,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1010,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - deque
    - v
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1026
    functionName: deque_contains
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - CHECK_NOT_END
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int deque_contains(dequeobject *deque, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1032
    functionName: deque_len
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t deque_len(dequeobject *deque)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1037,1
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1044,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1051,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1056,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1060,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1061,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1064,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1064,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1079,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1081,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1083,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1087,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1097,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - dequeobject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start && start <= stop && stop <= Py_SIZE(deque))
      pos:
        line_end: 1063
        line_start: 1063
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1099
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1099
    functionName: deque_index
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyLong_FromSsize_t
    - CHECK_NOT_END
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyErr_Format
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_index(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1117,1
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1121,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1125,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1126,1
    - Dst: deque_append
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1130,1
    - Dst: deque_appendleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1132,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1133,1
    - Dst: deque_append
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1136,1
    - Dst: deque_appendleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1138,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1141,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - deque
    - args
    - nargs
    argTypes:
    - dequeobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1113
    functionDepth: 5
    functionLinenumber: 1113
    functionLinenumberEnd: 1145
    functionName: deque_insert
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_append
    - deque_appendleft
    - Py_DECREF
    - _deque_rotate
    - _PyArg_ParseStack
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_insert(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1153,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1157,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1159,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1160,1
    - Dst: deque_popleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1166,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1169,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1173,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1176,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - deque
    - value
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts:
    - condition: (tgt != NULL)
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1180
      start: 1150
    functionDepth: 3
    functionLinenumber: 1150
    functionLinenumberEnd: 1180
    functionName: deque_remove
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _deque_rotate
    - deque_popleft
    - PyObject_RichCompareBool
    - PyErr_SetString
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_remove(dequeobject *deque, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - limit
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    functionName: valid_index
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_index(Py_ssize_t i, Py_ssize_t limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1200,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1200,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1201,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1208,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1215,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1221,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - deque
    - i
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1231
    functionName: deque_item
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - valid_index
    - Py_INCREF
    - Py_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_item(dequeobject *deque, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1239,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1239,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1240,1
    - Dst: deque_popleft
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1242,1
    - Dst: _deque_rotate
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1243,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - deque
    - i
    argTypes:
    - dequeobject*
    - Py_ssize_t
    assertStmts:
    - condition: (i >= 0 && i < Py_SIZE(deque))
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - condition: (item != NULL)
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1247
      start: 1233
    functionDepth: 3
    functionLinenumber: 1233
    functionLinenumberEnd: 1247
    functionName: deque_del_item
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _deque_rotate
    - deque_popleft
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int deque_del_item(dequeobject *deque, Py_ssize_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1254,1
    - Dst: valid_index
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1256,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1257,1
    - Dst: deque_del_item
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1261,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1272,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - deque
    - i
    - v
    argTypes:
    - dequeobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1249
    functionDepth: 4
    functionLinenumber: 1249
    functionLinenumberEnd: 1283
    functionName: deque_ass_item
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - valid_index
    - PyErr_SetString
    - Py_SIZE
    - deque_del_item
    linkageType: ''
    returnType: int
    signature: int deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1288,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1290,1
    - Dst: deque_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1292,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1293,1
    - Dst: freeblock
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1294,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts:
    - condition: (deque->leftblock != NULL)
      pos:
        line_end: 1292
        line_start: 1292
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1299
      start: 1285
    functionDepth: 4
    functionLinenumber: 1285
    functionLinenumberEnd: 1299
    functionName: deque_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - deque_clear
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - assert
    - freeblock
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void deque_dealloc(dequeobject *deque)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1313,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - deque
    - visit
    - arg
    argTypes:
    - dequeobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1323
    functionName: deque_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int deque_traverse(dequeobject *deque, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1329,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1331,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1336,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1339,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1341,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1346,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1346,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1349,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1351
    functionName: deque_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reduce(dequeobject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1361,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1365,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1368,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1370,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1374,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1375,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1375,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1378,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1379,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1379,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - deque
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1383
    functionName: deque_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_repr(PyObject *deque)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1392,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1393,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1398,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1399,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1414,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1417,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1421,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1422,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1424,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1427,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1430,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1435,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1440,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1441,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1442,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1454,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1455,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1461
    functionName: deque_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_TypeCheck
    - PyIter_Next
    - PyObject_RichCompareBool
    - Py_SIZE
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1471,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1472,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1473,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1475,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1476,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1479,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1485,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1488,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1493,1
    - Dst: deque_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1494,1
    - Dst: deque_extend
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1496,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1499,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - deque
    - args
    - kwdargs
    argTypes:
    - dequeobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1463
    functionDepth: 5
    functionLinenumber: 1463
    functionLinenumberEnd: 1502
    functionName: deque_init
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - deque_clear
    - PyLong_AsSsize_t
    - deque_extend
    - PyErr_SetString
    - Py_SIZE
    - PyArg_ParseTupleAndKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1510,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1510,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1511,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1512,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1512,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - deque
    - unused
    argTypes:
    - dequeobject*
    - void*
    assertStmts:
    - condition: "(deque->leftindex + Py_SIZE(deque) - 1 ==\n           (blocks -
        1) * BLOCKLEN + deque->rightindex)"
      pos:
        line_end: 1512
        line_start: 1511
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1516
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1516
    functionName: deque_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - Py_TYPE
    - Py_SIZE
    - assert
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_sizeof(dequeobject *deque, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1525
    functionName: deque_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int deque_bool(dequeobject *deque)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - dequeobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1533
    functionName: deque_get_maxlen
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_get_maxlen(dequeobject *deque, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1683,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1688,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1691,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - deque
    argTypes:
    - dequeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1694
    functionName: deque_iter
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_SIZE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_iter(dequeobject *deque)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dio
    - visit
    - arg
    argTypes:
    - dequeiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1701
    functionName: dequeiter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dequeiter_traverse(dequeiterobject *dio, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1707,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1708,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dio
    argTypes:
    - dequeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1703
    functionDepth: 1
    functionLinenumber: 1703
    functionLinenumberEnd: 1710
    functionName: dequeiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void dequeiter_dealloc(dequeiterobject *dio)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1719,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1725,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1732,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - it
    argTypes:
    - dequeiterobject*
    assertStmts:
    - condition: "(!(it->b == it->deque->rightblock &&\n              it->index >
        it->deque->rightindex))"
      pos:
        line_end: 1725
        line_start: 1724
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1738
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1738
    functionName: dequeiter_next
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_NOT_END
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_next(dequeiterobject *it)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1746,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1748,1
    - Dst: deque_iter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1750,1
    - Dst: dequeiter_next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1755,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1757,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == &dequeiter_type)
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1767
      start: 1740
    functionDepth: 2
    functionLinenumber: 1740
    functionLinenumberEnd: 1767
    functionName: dequeiter_new
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequeiter_next
    - Py_DECREF
    - deque_iter
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - dequeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1769
    functionDepth: 0
    functionLinenumber: 1769
    functionLinenumberEnd: 1773
    functionName: dequeiter_len
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_len(dequeiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1780,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1780,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - dequeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1781
    functionName: dequeiter_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequeiter_reduce(dequeiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1841,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1846,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1849,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - deque
    - Py_UNUSED(ignored)
    argTypes:
    - dequeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1836
    functionDepth: 1
    functionLinenumber: 1836
    functionLinenumberEnd: 1852
    functionName: deque_reviter
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_New
    - Py_SIZE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      deque_reviter(dequeobject *deque, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1863,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1867,1
    - Dst: CHECK_NOT_END
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1874,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - it
    argTypes:
    - dequeiterobject*
    assertStmts:
    - condition: "(!(it->b == it->deque->leftblock &&\n              it->index < it->deque->leftindex))"
      pos:
        line_end: 1867
        line_start: 1866
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1880
      start: 1854
    functionDepth: 1
    functionLinenumber: 1854
    functionLinenumberEnd: 1880
    functionName: dequereviter_next
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_NOT_END
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequereviter_next(dequeiterobject *it)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1888,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1890,1
    - Dst: deque_reviter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1892,1
    - Dst: dequereviter_next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1902,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == &dequereviter_type)
      pos:
        line_end: 1889
        line_start: 1889
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    constantsTouched: []
    func_position:
      end: 1909
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1909
    functionName: dequereviter_new
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - dequereviter_next
    - Py_DECREF
    - deque_reviter
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dequereviter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1978,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1980,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1981,1
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1984,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1987,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:1988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - dd
    - key
    argTypes:
    - defdictobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1970
    functionDepth: 1
    functionLinenumber: 1970
    functionLinenumberEnd: 1992
    functionName: defdict_missing
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyEval_CallObject
    - PyTuple_Pack
    - PyErr_SetObject
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_missing(defdictobject *dd, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2005,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2005,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2006,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dd
    - Py_UNUSED(ignored)
    argTypes:
    - defdictobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2008
    functionName: defdict_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_copy(defdictobject *dd, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2039,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2042,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2044,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2047,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2049,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2052,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2054,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2055,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2058,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2058,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2060,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2061,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2062,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - dd
    - Py_UNUSED(ignored)
    argTypes:
    - defdictobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2010
    functionDepth: 1
    functionLinenumber: 2010
    functionLinenumberEnd: 2064
    functionName: defdict_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyTuple_Pack
    - Py_TYPE
    - PyObject_GetIter
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_reduce(defdictobject *dd, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2089,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2090,1
    - Dst: tp_dealloc
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dd
    argTypes:
    - defdictobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2092
    functionName: defdict_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - tp_dealloc
    linkageType: ''
    returnType: void
    signature: void defdict_dealloc(defdictobject *dd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tp_repr
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2100,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2104,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2110,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2113,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2116,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2117,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2120,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2123,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2124,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - dd
    argTypes:
    - defdictobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2129
    functionName: defdict_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - tp_repr
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyObject_Repr
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      defdict_repr(defdictobject *dd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2134,1
    - Dst: tp_traverse
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2136
    functionName: defdict_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - tp_traverse
    linkageType: ''
    returnType: int
    signature: int defdict_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2141,1
    - Dst: tp_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dd
    argTypes:
    - defdictobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2138
    functionDepth: 1
    functionLinenumber: 2138
    functionLinenumberEnd: 2143
    functionName: defdict_tp_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tp_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int defdict_tp_clear(defdictobject *dd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2153,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2154,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2156,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2158,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2159,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2160,1
    - Dst: PySequence_GetSlice
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2165,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2169,1
    - Dst: tp_init
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2172,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2145
    functionDepth: 1
    functionLinenumber: 2145
    functionLinenumberEnd: 2175
    functionName: defdict_init
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCallable_Check
    - PyTuple_GET_SIZE
    - PySequence_GetSlice
    - Py_XDECREF
    - Py_XINCREF
    - tp_init
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    linkageType: ''
    returnType: int
    signature: int defdict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ADDR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2188
    functionDepth: 0
    functionLinenumber: 2188
    functionLinenumberEnd: 2189
    functionName: DEFERRED_ADDRESS
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFERRED_ADDRESS(ADDR)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2251,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2252,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2262,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2269,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2269,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2270,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2271,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2271,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2272,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2276,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2291,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2295,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2298,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2303,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2305,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2307,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2310,1
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2313,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2315,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2317,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2320,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2325,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2328,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2332,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2335,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2337,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2343,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2344,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2345,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2346,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2347,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 72
    argCount: 3
    argNames:
    - module
    - mapping
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2246
    functionDepth: 1
    functionLinenumber: 2246
    functionLinenumberEnd: 2350
    functionName: _collections__count_elements_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _PyDict_SetItem_KnownHash
    - PyErr_Occurred
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyDict_GetItem_KnownHash
    - _Py_IDENTIFIER
    - PyDict_Check
    - PyIter_Next
    - Py_TYPE
    - PyObject_CallFunctionObjArgs
    - PyNumber_Add
    - _PyType_LookupId
    - PyObject_GetIter
    - Py_XDECREF
    - PyObject_SetItem
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_collections__count_elements_impl(PyObject *module, PyObject
      *mapping,\n                                  PyObject *iterable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2374,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - index
    - doc
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2382
    functionName: tuplegetter_new_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_new_impl(PyTypeObject *type, Py_ssize_t index, PyObject *doc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2391,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2394,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2396,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2399,1
    - Dst: valid_index
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2407,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2407,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2408,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2412,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2415
    functionName: tuplegetter_descr_get
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_Check
    - PyErr_Format
    - PyErr_SetString
    - valid_index
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2421,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2426
    functionName: tuplegetter_descr_set
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int tuplegetter_descr_set(PyObject *self, PyObject *obj, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2434
    functionName: tuplegetter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tuplegetter_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2436
    functionDepth: 1
    functionLinenumber: 2436
    functionLinenumberEnd: 2442
    functionName: tuplegetter_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tuplegetter_clear(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2447,1
    - Dst: tuplegetter_clear
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2448,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - _tuplegetterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2444
    functionDepth: 2
    functionLinenumber: 2444
    functionLinenumberEnd: 2450
    functionName: tuplegetter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - tuplegetter_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void tuplegetter_dealloc(_tuplegetterobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2455,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - _tuplegetterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2456
    functionName: tuplegetter_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_reduce(_tuplegetterobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2543,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2547,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2549,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2550,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2553,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2555,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2556,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2558,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2559,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2561,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2563,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2564,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2566,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2568,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2569,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2571,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2573,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_collectionsmodule.c:2574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2577
    functionName: PyInit__collections
    functionSourceFile: /src/Python-3.8.3/Modules/_collectionsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__collections(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: raiseTestError
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raiseTestError(const char* test_name, const char* msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - fatname
    - typname
    - expected
    - got
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: sizeof_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsizeof_error(const char* fatname, const char* typname,\n
      \   int expected, int got)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SIZEOF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:71,1
    - Dst: CHECK_SIZEOF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:73,1
    - Dst: CHECK_SIZEOF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: test_config
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - CHECK_SIZEOF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_config(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FATNAME
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZEOF(FATNAME, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - EXPECTED
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: CHECK_SIZEOF
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZEOF(TYPE, EXPECTED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: IS_SIGNED
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SIGNED(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - SIGNED
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: CHECK_SIGNNESS
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIGNNESS(TYPE, SIGNED)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:343,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:345,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:346,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:353,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:356,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:360,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:361,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:363,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:366,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:379,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 389
    functionName: test_lazy_hash_inheritance
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetString
    - PyObject_Hash
    - PyErr_Clear
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_lazy_hash_inheritance(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    functionName: UNBIND
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNBIND(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: raise_test_long_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_test_long_error(const char* msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTNAME
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 428
    functionName: test_long_api
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - TESTNAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_api(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: raise_test_longlong_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_test_longlong_error(const char* msg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTNAME
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: test_longlong_api
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - TESTNAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_longlong_api(PyObject* self, PyObject *args)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:479,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:485,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:488,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:491,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:495,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:500,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:503,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:504,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:505,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:510,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:511,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:512,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:515,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:518,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:523,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:528,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:529,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:532,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:535,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:539,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:544,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:549,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:554,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:555,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:556,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:559,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:562,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:566,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:571,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:572,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:575,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:578,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:581,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:586,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:587,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:590,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:593,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:596,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:601,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:602,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:605,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:608,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:611,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:615,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:616,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:617,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:620,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:623,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 627
    functionName: test_long_and_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsLongAndOverflow
    - PyLong_FromString
    - PyNumber_Add
    - PyNumber_Subtract
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_and_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:643,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:647,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:648,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:649,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:652,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:655,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:659,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:664,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:669,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:674,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:675,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:676,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:679,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:682,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:687,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:691,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:692,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:693,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:696,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:699,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:703,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:706,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:708,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:713,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:718,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:719,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:720,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:723,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:726,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:730,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:735,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:736,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:739,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:742,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:745,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:749,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:751,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:754,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:757,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:760,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:764,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:765,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:766,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:769,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:772,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:775,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:780,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:781,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:784,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:787,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 120
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 791
    functionName: test_long_long_and_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - Py_DECREF
    - PyNumber_Add
    - PyLong_FromString
    - PyLong_FromLongLong
    - PyNumber_Subtract
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_long_and_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:804,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:806,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:807,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:808,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:810,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:811,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:814,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:816,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:817,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:818,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:820,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:821,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 828
    functionName: test_long_as_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - PyLong_AsSize_t
    - PyLong_AsSsize_t
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_as_size_t(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:834,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:836,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:837,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:841,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:842,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 848
    functionName: test_long_as_unsigned_long_long_mask
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_long_as_unsigned_long_long_mask(PyObject *self,\n
      \                                    PyObject *Py_UNUSED(ignored))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:859,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:861,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:862,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:863,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:865,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:866,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 873
    functionName: test_long_as_double
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - PyLong_AsDouble
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_as_double(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:885,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:889,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:893,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:896,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:900,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:903,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:904,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:908,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:911,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:918,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 920
    functionName: test_L_code
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PyTuple_New
    - PyArg_ParseTuple
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_L_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: return_none
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      return_none(void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 933
    functionName: raise_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_error(void *unused)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:940,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:945,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:950,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:951,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:952,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:958,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:959,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:960,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:961,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:965,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:966,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 974
    functionName: test_buildvalue_N_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyErr_Format
    - PyList_New
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int test_buildvalue_N_error(const char *fmt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:981,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:985,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:986,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:991,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:994,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:995,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:998,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:999,1
    - Dst: test_buildvalue_N_error
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1001,1
    - Dst: test_buildvalue_N_error
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1003,1
    - Dst: test_buildvalue_N_error
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1005,1
    - Dst: test_buildvalue_N_error
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1007,1
    - Dst: test_buildvalue_N_error
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1009,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1013
    functionName: test_buildvalue_N
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - test_buildvalue_N_error
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyList_New
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_buildvalue_N(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1024
    functionName: get_args
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_args(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1034
    functionName: get_kwargs
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_kwargs(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1041,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1044
    functionName: getargs_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_tuple(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1054,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1061
    functionName: getargs_keywords
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_keywords(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1072,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1076
    functionName: getargs_keyword_only
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_keyword_only(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1087,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1091
    functionName: getargs_positional_only_and_keywords
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_positional_only_and_keywords(PyObject *self, PyObject *args, PyObject
      *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1100,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1103
    functionName: getargs_b
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_b(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1109,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1112
    functionName: getargs_B
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_B(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1118,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1121
    functionName: getargs_h
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_h(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1127,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1130
    functionName: getargs_H
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_H(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1136,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1139
    functionName: getargs_I
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_I(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1145,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1148
    functionName: getargs_k
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_k(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1154,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1157
    functionName: getargs_i
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_i(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1163,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1166
    functionName: getargs_l
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_l(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1172,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1175
    functionName: getargs_n
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_n(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1181,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1184
    functionName: getargs_p
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_p(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1190,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1193
    functionName: getargs_L
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_L(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1199,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1202
    functionName: getargs_K
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_K(PyObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1212,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1217,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1221,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1223,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1226,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1229,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1236,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1237,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1241,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1243,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1247,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1250,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1257,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1259
    functionName: test_k_code
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArg_ParseTuple
    - PyLong_FromString
    - PyLong_AsUnsignedLongMask
    - PyTuple_New
    - PyTuple_SET_ITEM
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_k_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1265,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1268
    functionName: getargs_f
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_f(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1274,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1277
    functionName: getargs_d
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_d(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1283,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1286
    functionName: getargs_D
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_D(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1292,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1296
    functionName: getargs_S
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_S(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1302,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1306
    functionName: getargs_Y
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_Y(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1312,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1316
    functionName: getargs_U
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_U(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1322,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1325
    functionName: getargs_c
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_c(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1331,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1334
    functionName: getargs_C
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_C(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1340,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1343
    functionName: getargs_s
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_s(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1350,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1352,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1355
    functionName: getargs_s_star
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_s_star(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1362,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1365
    functionName: getargs_s_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_s_hash(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1371,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1377
    functionName: getargs_z
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_z(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1384,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1387,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1389,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1394
    functionName: getargs_z_star
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - PyBuffer_Release
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_z_star(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1401,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1407
    functionName: getargs_z_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_z_hash(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1413,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1416
    functionName: getargs_y
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_y(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1423,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1425,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1428
    functionName: getargs_y_star
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_y_star(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1435,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1438
    functionName: getargs_y_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_y_hash(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1444,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1447
    functionName: getargs_u
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_u(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1454,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1457
    functionName: getargs_u_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_u_hash(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1463,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1469
    functionName: getargs_Z
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_Z(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1476,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1482
    functionName: getargs_Z_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_Z_hash(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1491,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1493,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1495,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1498
    functionName: getargs_es
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyBytes_FromString
    - PyArg_Parse
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_es(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1507,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1509,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1511,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1514
    functionName: getargs_et
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyBytes_FromString
    - PyArg_Parse
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_et(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1525,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1528,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1529,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1531,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1533,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1537
    functionName: getargs_es_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_Parse
    - PyByteArray_GET_SIZE
    - PyMem_Free
    - PyArg_ParseTuple
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_es_hash(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1548,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1551,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1552,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1554,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1556,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1560
    functionName: getargs_et_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_Parse
    - PyByteArray_GET_SIZE
    - PyMem_Free
    - PyArg_ParseTuple
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_et_hash(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1571,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1575,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1575,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1580,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1585,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1589,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1595
    functionName: test_s_code
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - Py_DECREF
    - strlen
    - PyTuple_New
    - PyArg_ParseTuple
    - PyUnicode_Decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_s_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1615,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1620,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1620,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1621,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1626,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1627,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1628,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1632,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1638,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1639,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1640,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1644,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1647,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1654,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1660,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1663
    functionName: parse_tuple_and_keywords
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - Py_XDECREF
    - PyErr_Format
    - PyErr_SetString
    - PyTuple_CheckExact
    - PyBytes_AS_STRING
    - PyList_CheckExact
    - PyArg_ParseTuple
    - PyUnicode_FSConverter
    - memset
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parse_tuple_and_keywords(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1679,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1681,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1685,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1685,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1690,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1693,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1696,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1697,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1700,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1703,1
    - Dst: PyUnicode_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1704,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1708,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1710
    functionName: test_u_code
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - raiseTestError
    - Py_UNICODE_ISSPACE
    - PyUnicode_AS_UNICODE
    - Py_DECREF
    - strlen
    - PyUnicode_GET_SIZE
    - PyArg_ParseTuple
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyUnicode_Decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_u_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1720,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1724,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1725,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1726,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1727,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1731,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1734,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1737,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1738,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1741,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1745,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1750,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1755,1
    - Dst: PyUnicode_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1756,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1757,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1761,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1764,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1713
    functionDepth: 2
    functionLinenumber: 1713
    functionLinenumberEnd: 1766
    functionName: test_Z_code
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_AS_UNICODE
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_GET_SIZE
    - PyArg_ParseTuple
    - PyTuple_New
    - PyTuple_SET_ITEM
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_Z_code(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1781,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1787,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1791,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1791,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1793,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1794,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1799,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1800,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1801,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1803,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1809,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1812,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1814,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1816,1
    - Dst: PyUnicode_FromUnicode
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1819,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1821,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1823,1
    - Dst: PyUnicode_FromUnicode
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1826,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1829,1
    - Dst: _PyUnicode_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1830,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1831,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1835,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1836,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1842
    functionName: test_widechar
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_AS_UNICODE
    - PyUnicode_FromUnicode
    - PyUnicode_FromWideChar
    - _PyUnicode_Ready
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - raiseTestError
    - PyUnicode_Compare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_widechar(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1851,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1853,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1855,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1857,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1859,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1867,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1868,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1844
    functionDepth: 1
    functionLinenumber: 1844
    functionLinenumberEnd: 1873
    functionName: unicode_aswidechar
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_BuildValue
    - PyErr_NoMemory
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyUnicode_AsWideChar
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidechar(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1882,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1885,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1889,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1890,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1893,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1894
    functionName: unicode_aswidecharstring
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicode_AsWideCharString
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_aswidecharstring(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1904,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1909,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1911,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1913,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1916,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1917,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1921,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1924
    functionName: unicode_asucs4
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - PyErr_NoMemory
    - PyMem_NEW
    - PyUnicode_AsUCS4
    - PyMem_FREE
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_asucs4(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1935,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1940,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1944,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1945
    functionName: unicode_findchar
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FindChar
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_findchar(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1953,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1958,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1958,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1959,1
    - Dst: PyUnicode_Fill
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1962,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1962,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1963,1
    - Dst: PyUnicode_CopyCharacters
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1969,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1947
    functionDepth: 1
    functionLinenumber: 1947
    functionLinenumberEnd: 1974
    functionName: unicode_copycharacters
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_CopyCharacters
    - PyUnicode_Fill
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_copycharacters(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1986,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1990,1
    - Dst: PyUnicode_EncodeDecimal
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1994,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1995,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:1998,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2002,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2002,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2003,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (new_length <= decimal_length)
      pos:
        line_end: 2002
        line_start: 2002
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2009
      start: 1976
    functionDepth: 1
    functionLinenumber: 1976
    functionLinenumberEnd: 2009
    functionName: unicode_encodedecimal
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_EncodeDecimal
    - Py_DECREF
    - _PyBytes_Resize
    - strlen
    - PyBytes_AS_STRING
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encodedecimal(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2016,1
    - Dst: PyUnicode_TransformDecimalToASCII
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2011
    functionDepth: 1
    functionLinenumber: 2011
    functionLinenumberEnd: 2019
    functionName: unicode_transformdecimaltoascii
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_TransformDecimalToASCII
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_transformdecimaltoascii(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2028,1
    - Dst: PyUnicode_FromUnicode
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2031,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2035,1
    - Dst: PyUnicode_AS_UNICODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2035,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2038,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyUnicode_IS_READY(u))
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 2042
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2042
    functionName: unicode_legacy_string
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - memcpy
    - PyUnicode_AS_UNICODE
    - PyUnicode_FromUnicode
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_legacy_string(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2051,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2060,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2061,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2063
    functionName: getargs_w_star
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getargs_w_star(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2073,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2076,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2079,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2082,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2084,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2085,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2092
    functionName: test_empty_argparse
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - PyArg_ParseTupleAndKeywords
    - PyTuple_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_empty_argparse(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2098,1
    - Dst: PyCodec_IncrementalEncoder
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2102
    functionName: codec_incrementalencoder
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_IncrementalEncoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_incrementalencoder(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2108,1
    - Dst: PyCodec_IncrementalDecoder
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2112
    functionName: codec_incrementaldecoder
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCodec_IncrementalDecoder
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codec_incrementaldecoder(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2140,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2145,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2148,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2151,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2153,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2116
    functionDepth: 2
    functionLinenumber: 2116
    functionLinenumberEnd: 2160
    functionName: test_long_numbits
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_Sign
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - _PyLong_NumBits
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_long_numbits(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2167,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2167,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2168,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2169,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2164
    functionDepth: 1
    functionLinenumber: 2164
    functionLinenumberEnd: 2172
    functionName: test_null_strings
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - Py_XDECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_null_strings(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2181,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2185,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2191,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2194,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2196,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2199
    functionName: raise_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyErr_SetObject
    - PyArg_ParseTuple
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_exception(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2211
    functionName: set_errno
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_errno(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2219,1
    - Dst: PyErr_GetExcInfo
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2223,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2225,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2226,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2227,1
    - Dst: PyErr_SetExcInfo
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2228,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2230,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2231,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2232,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2213
    functionDepth: 1
    functionLinenumber: 2213
    functionLinenumberEnd: 2235
    functionName: test_set_exc_info
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_Pack
    - PyErr_SetExcInfo
    - Py_XDECREF
    - PyArg_ParseTuple
    - PyErr_GetExcInfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_set_exc_info(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2259
    functionName: test_datetime_capi
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_datetime_capi(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - check_method
    - ','
    - exact_method
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2262
    functionDepth: 0
    functionLinenumber: 2262
    functionLinenumberEnd: 2274
    functionName: MAKE_DATETIME_CHECK_FUNC
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_DATETIME_CHECK_FUNC(check_method, exact_method)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_FromDSU
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2308,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2309,1
    - Dst: TimeZone_FromTimeZone
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2311,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2312,1
    - Dst: PyTimeZone_FromOffset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2313,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2315,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2316,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2318,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2320,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2321,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2325
    functionName: make_timezones_capi
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_FromDSU
    - PyUnicode_FromString
    - TimeZone_FromTimeZone
    - PyTimeZone_FromOffset
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyTimeZone_FromOffsetAndName
    - Py_DecRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_timezones_capi(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_FromDSU
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2329,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2330,1
    - Dst: PyTimeZone_FromOffset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2333,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2334,1
    - Dst: PyTimeZone_FromOffsetAndName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2337,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2339,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2340,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2342,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2343,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2344,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2348
    functionName: get_timezones_offset_zero
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_FromDSU
    - PyUnicode_FromString
    - PyTimeZone_FromOffset
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyTimeZone_FromOffsetAndName
    - Py_DecRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_timezones_offset_zero(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2353,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2357,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2350
    functionDepth: 1
    functionLinenumber: 2350
    functionLinenumberEnd: 2363
    functionName: get_timezone_utc_capi
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_timezone_utc_capi(PyObject* self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2372,1
    - Dst: PyDate_FromDate
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2377,1
    - Dst: Date_FromDate
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2365
    functionDepth: 1
    functionLinenumber: 2365
    functionLinenumberEnd: 2385
    functionName: get_date_fromdate
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Date_FromDate
    - PyArg_ParseTuple
    - PyDate_FromDate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_date_fromdate(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2395,1
    - Dst: PyDateTime_FromDateAndTime
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2403,1
    - Dst: DateTime_FromDateAndTime
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2387
    functionDepth: 1
    functionLinenumber: 2387
    functionLinenumberEnd: 2415
    functionName: get_datetime_fromdateandtime
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - DateTime_FromDateAndTime
    - PyDateTime_FromDateAndTime
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromdateandtime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2425,1
    - Dst: PyDateTime_FromDateAndTimeAndFold
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2434,1
    - Dst: DateTime_FromDateAndTimeAndFold
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2448
    functionName: get_datetime_fromdateandtimeandfold
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - DateTime_FromDateAndTimeAndFold
    - PyDateTime_FromDateAndTimeAndFold
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromdateandtimeandfold(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2457,1
    - Dst: PyTime_FromTime
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2464,1
    - Dst: Time_FromTime
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2450
    functionDepth: 1
    functionLinenumber: 2450
    functionLinenumberEnd: 2473
    functionName: get_time_fromtime
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTime_FromTime
    - PyArg_ParseTuple
    - Time_FromTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_time_fromtime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2482,1
    - Dst: PyTime_FromTimeAndFold
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2490,1
    - Dst: Time_FromTimeAndFold
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2500
    functionName: get_time_fromtimeandfold
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Time_FromTimeAndFold
    - PyArg_ParseTuple
    - PyTime_FromTimeAndFold
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_time_fromtimeandfold(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2509,1
    - Dst: PyDelta_FromDSU
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2516,1
    - Dst: Delta_FromDelta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2502
    functionDepth: 1
    functionLinenumber: 2502
    functionLinenumberEnd: 2525
    functionName: get_delta_fromdsu
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDelta_FromDSU
    - Delta_FromDelta
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_delta_fromdsu(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2533,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2538,1
    - Dst: PyDate_FromTimestamp
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2544,1
    - Dst: Date_FromTimestamp
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2554
    functionName: get_date_fromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Date_FromTimestamp
    - Py_DECREF
    - PyTuple_Pack
    - PyDate_FromTimestamp
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_date_fromtimestamp(PyObject* self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2562,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2568,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2571,1
    - Dst: PyDateTime_FromTimestamp
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2580,1
    - Dst: DateTime_FromTimestamp
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2590
    functionName: get_datetime_fromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_FromTimestamp
    - Py_DECREF
    - PyTuple_Pack
    - PyArg_ParseTuple
    - DateTime_FromTimestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_datetime_fromtimestamp(PyObject* self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2607,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2608,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2610,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2602
    functionDepth: 1
    functionLinenumber: 2602
    functionLinenumberEnd: 2613
    functionName: _make_call
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGILState_Release
    - PyGILState_Ensure
    - Py_XDECREF
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int _make_call(void *callable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _make_call
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2621,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - callable
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2618
    functionDepth: 2
    functionLinenumber: 2618
    functionLinenumberEnd: 2623
    functionName: _make_call_from_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_release_lock
    - _make_call
    linkageType: ''
    returnType: void
    signature: void _make_call_from_thread(void *callable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2631,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2634,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2635,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2641,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2642,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2644,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2645,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2648,1
    - Dst: _make_call
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2650,1
    - Dst: _make_call
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2653,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2654,1
    - Dst: _make_call
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2663,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2664,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 2674
    functionName: test_thread_state
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_InitThreads
    - PyCallable_Check
    - PyThread_free_lock
    - PyErr_NoMemory
    - PyThread_acquire_lock
    - PyThread_start_new_thread
    - PyErr_Format
    - PyThread_allocate_lock
    - PyArg_ParseTuple
    - _make_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_thread_state(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2681,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2682,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2677
    functionDepth: 1
    functionLinenumber: 2677
    functionLinenumberEnd: 2685
    functionName: _pending_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArg
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _pending_callback(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2695,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2699,1
    - Dst: Py_AddPendingCall
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2690
    functionDepth: 1
    functionLinenumber: 2690
    functionLinenumberEnd: 2710
    functionName: pending_threadfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_AddPendingCall
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pending_threadfunc(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2729,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2730,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2732,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2735,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2736,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2737,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2740,1
    - Dst: CHECK_1_FORMAT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2741,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2746,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2750
    functionName: test_string_from_format
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - raiseTestError
    - CHECK_1_FORMAT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_string_from_format(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FORMAT
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2728
    functionName: CHECK_1_FORMAT
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_1_FORMAT(FORMAT, TYPE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2755,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2760,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2753
    functionDepth: 1
    functionLinenumber: 2753
    functionLinenumberEnd: 2767
    functionName: test_unicode_compare_with_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyUnicode_CompareWithASCIIString
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_unicode_compare_with_ascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2774
      start: 2770
    functionDepth: 0
    functionLinenumber: 2770
    functionLinenumberEnd: 2774
    functionName: test_with_docstring
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_with_docstring(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2804,1
    - Dst: CHECK_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2805,1
    - Dst: CHECK_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2806,1
    - Dst: CHECK_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2807,1
    - Dst: CHECK_STRING
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2808,1
    - Dst: CHECK_INVALID
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2810,1
    - Dst: CHECK_INVALID
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2811,1
    - Dst: CHECK_INVALID
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2812,1
    - Dst: CHECK_INVALID
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2813,1
    - Dst: CHECK_INVALID
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2814,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2777
    functionDepth: 2
    functionLinenumber: 2777
    functionLinenumberEnd: 2821
    functionName: test_string_to_double
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - CHECK_STRING
    - raiseTestError
    - CHECK_INVALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_string_to_double(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STR
    - ','
    - expected
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2782
    functionDepth: 0
    functionLinenumber: 2782
    functionLinenumberEnd: 2790
    functionName: CHECK_STRING
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STRING(STR, expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2803
    functionName: CHECK_INVALID
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INVALID(STR)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetContext
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2836,1
    - Dst: PyCapsule_GetDestructor
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2838,1
    - Dst: PyCapsule_GetName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2840,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2833
    functionDepth: 1
    functionLinenumber: 2833
    functionLinenumberEnd: 2845
    functionName: capsule_destructor
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_GetContext
    - PyCapsule_GetDestructor
    - PyCapsule_GetName
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void capsule_destructor(PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: KNOWN_CAPSULE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2861,1
    - Dst: KNOWN_CAPSULE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2862,1
    - Dst: KNOWN_CAPSULE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2863,1
    - Dst: KNOWN_CAPSULE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2864,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2880,1
    - Dst: PyCapsule_SetContext
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2881,1
    - Dst: capsule_destructor
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2882,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2884,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2887,1
    - Dst: PyCapsule_SetPointer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2888,1
    - Dst: PyCapsule_SetName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2889,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2890,1
    - Dst: PyCapsule_SetContext
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2891,1
    - Dst: capsule_destructor
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2892,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2895,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2896,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2897,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2899,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2902,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2905,1
    - Dst: PyCapsule_SetDestructor
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2909,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2910,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2912,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2929,1
    - Dst: PyCapsule_Import
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2933,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2934,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2936,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2938,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2941,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2945,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2946,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2948,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2951,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2953,1
    - Dst: FAIL
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2956,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2960,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2961,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2964,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2969,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2853
    functionDepth: 2
    functionLinenumber: 2853
    functionLinenumberEnd: 2973
    functionName: test_capsule
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_Import
    - PyErr_Clear
    - PyImport_ImportModule
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - PyCapsule_GetPointer
    - PyCapsule_New
    - PyCapsule_SetName
    - FAIL
    - PyCapsule_SetPointer
    - KNOWN_CAPSULE
    - PyCapsule_SetDestructor
    - capsule_destructor
    - raiseTestError
    - PyCapsule_SetContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_capsule(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2869
    functionDepth: 0
    functionLinenumber: 2869
    functionLinenumberEnd: 2870
    functionName: FAIL
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2921
    functionDepth: 0
    functionLinenumber: 2921
    functionLinenumberEnd: 2929
    functionName: FAIL
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - test
    - s
    - e
    argTypes:
    - int
    - struct timeval*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2986
      start: 2977
    functionDepth: 0
    functionLinenumber: 2977
    functionLinenumberEnd: 2986
    functionName: print_delta
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_delta(int test, struct timeval *s, struct timeval *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:2997,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3001,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3003,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3004,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3008,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3011,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3012,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3014,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3015,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3019,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3021,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3022,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3025,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3028,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3031,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3032,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3033,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3037,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3039,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3040,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3046,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3049,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3050,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3051,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3054,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3056,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3057,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3060,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3063,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3066,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3067,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3068,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3071,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3072,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3074,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3075,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3077,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3078,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3079,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3082,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3085,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3087,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3088,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3090,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3091,1
    - Dst: print_delta
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3092,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 2988
    functionDepth: 1
    functionLinenumber: 2988
    functionLinenumberEnd: 3095
    functionName: profile_int
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - malloc
    - Py_DECREF
    - print_delta
    - gettimeofday
    - PyErr_NoMemory
    - PyNumber_Add
    - free
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profile_int(PyObject *self, PyObject* args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3106,1
    - Dst: PyTraceBack_Print
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3099
    functionDepth: 1
    functionLinenumber: 3099
    functionLinenumberEnd: 3114
    functionName: traceback_print
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Print
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      traceback_print(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3123,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3126,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3127,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3131,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3132,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3132,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3136
      start: 3117
    functionDepth: 1
    functionLinenumber: 3117
    functionLinenumberEnd: 3136
    functionName: exception_print
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_GetTraceback
    - PyErr_Display
    - PyErr_Format
    - Py_TYPE
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exception_print(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3142
    functionDepth: 1
    functionLinenumber: 3142
    functionLinenumberEnd: 3147
    functionName: raise_memoryerror
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_memoryerror(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3155,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (str1)
      pos:
        line_end: 3154
        line_start: 3154
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 3159
      start: 3151
    functionDepth: 1
    functionLinenumber: 3151
    functionLinenumberEnd: 3159
    functionName: failing_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int failing_converter(PyObject *obj, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3165,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3172,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3173,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3160
    functionDepth: 1
    functionLinenumber: 3160
    functionLinenumberEnd: 3178
    functionName: argparsing
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_REFCNT
    - PyLong_FromSsize_t
    - PyErr_Clear
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      argparsing(PyObject *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3188,1
    - Dst: PyCode_NewEmpty
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3181
    functionDepth: 1
    functionLinenumber: 3181
    functionLinenumberEnd: 3193
    functionName: code_newempty
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCode_NewEmpty
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_newempty(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3207,1
    - Dst: PyErr_NewExceptionWithDoc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3213
      start: 3197
    functionDepth: 1
    functionLinenumber: 3197
    functionLinenumberEnd: 3213
    functionName: make_exception_with_doc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyErr_NewExceptionWithDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_exception_with_doc(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3219,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3222
    functionName: make_memoryview_from_NULL_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_memoryview_from_NULL_pointer(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FromContiguous
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3248,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3252,1
    - Dst: PyBuffer_FromContiguous
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3261,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3272
      start: 3224
    functionDepth: 1
    functionLinenumber: 3224
    functionLinenumberEnd: 3272
    functionName: test_from_contiguous
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FromContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_from_contiguous(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3286,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3287,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3287,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3288,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3293,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3299,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3300,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3300,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3301,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3311
      start: 3277
    functionDepth: 1
    functionLinenumber: 3277
    functionLinenumberEnd: 3311
    functionName: test_pep3118_obsolete_write_locks
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - PyObject_GetBuffer
    - PyErr_Occurred
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pep3118_obsolete_write_locks(PyObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3317
    functionDepth: 1
    functionLinenumber: 3317
    functionLinenumberEnd: 3324
    functionName: getbuffer_with_null_view
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getbuffer_with_null_view(PyObject* self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3328
    functionDepth: 0
    functionLinenumber: 3328
    functionLinenumberEnd: 3339
    functionName: crash_no_current_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      crash_no_current_thread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3349,1
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3353,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3355,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3357,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3363,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3366,1
    - Dst: Py_EndInterpreter
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3367,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3369,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3342
    functionDepth: 1
    functionLinenumber: 3342
    functionLinenumberEnd: 3372
    functionName: run_in_subinterp
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_NewInterpreter
    - PyThreadState_Swap
    - Py_EndInterpreter
    - PyThreadState_Get
    - PyErr_SetString
    - PyRun_SimpleString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_in_subinterp(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - round
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3374
    functionDepth: 1
    functionLinenumber: 3374
    functionLinenumberEnd: 3385
    functionName: check_time_rounding
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_time_rounding(int round)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3393,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3395,1
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3397,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3400
      start: 3387
    functionDepth: 2
    functionLinenumber: 3387
    functionLinenumberEnd: 3400
    functionName: test_pytime_object_to_time_t
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - PyArg_ParseTuple
    - _PyTime_ObjectToTime_t
    - _PyLong_FromTime_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_time_t(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3409,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3411,1
    - Dst: _PyTime_ObjectToTimeval
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3413,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3415,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3402
    functionDepth: 2
    functionLinenumber: 3402
    functionLinenumberEnd: 3416
    functionName: test_pytime_object_to_timeval
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - Py_BuildValue
    - _PyTime_ObjectToTimeval
    - _PyLong_FromTime_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_timeval(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3425,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3427,1
    - Dst: _PyTime_ObjectToTimespec
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3429,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3431,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3418
    functionDepth: 2
    functionLinenumber: 3418
    functionLinenumberEnd: 3432
    functionName: test_pytime_object_to_timespec
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - Py_BuildValue
    - _PyTime_ObjectToTimespec
    - _PyLong_FromTime_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_object_to_timespec(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3437,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3442,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3446,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3449,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3451,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3455,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3456,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3460,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3465,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3474,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3477,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3477,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3477,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3477,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3488,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self->ob_refcnt == 0)
      pos:
        line_end: 3441
        line_start: 3441
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (self->ob_refcnt > 0)
      pos:
        line_end: 3464
        line_start: 3464
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (!PyType_IS_GC(Py_TYPE(self)) || _PyObject_GC_IS_TRACKED(self))
      pos:
        line_end: 3476
        line_start: 3476
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 3491
      start: 3434
    functionDepth: 1
    functionLinenumber: 3434
    functionLinenumberEnd: 3491
    functionName: slot_tp_del
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_NewReference
    - PyErr_Fetch
    - PyErr_Restore
    - _Py_IDENTIFIER
    - PyErr_WriteUnraisable
    - _PyObject_LookupSpecial
    - Py_TYPE
    - _PyObject_GC_IS_TRACKED
    - assert
    - _PyObject_CallNoArg
    - PyType_IS_GC
    linkageType: ''
    returnType: void
    signature: void slot_tp_del(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3499,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3502,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3502,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3503,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3493
    functionDepth: 1
    functionLinenumber: 3493
    functionLinenumberEnd: 3510
    functionName: with_tp_del
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyType_Check
    - PyErr_Format
    - PyType_HasFeature
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      with_tp_del(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3514
    functionDepth: 1
    functionLinenumber: 3514
    functionLinenumberEnd: 3518
    functionName: create_cfunction
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_cfunction(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3532
      start: 3527
    functionDepth: 1
    functionLinenumber: 3527
    functionLinenumberEnd: 3532
    functionName: _test_incref
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _test_incref(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3537,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3538,1
    - Dst: _test_incref
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3539,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3534
    functionDepth: 2
    functionLinenumber: 3534
    functionLinenumberEnd: 3543
    functionName: test_xincref_doesnt_leak
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_XINCREF
    - Py_DECREF
    - _test_incref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_xincref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3548,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3549,1
    - Dst: _test_incref
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3549,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3550,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3545
    functionDepth: 2
    functionLinenumber: 3545
    functionLinenumberEnd: 3554
    functionName: test_incref_doesnt_leak
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - _test_incref
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3559,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3561
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3561
    functionName: test_xdecref_doesnt_leak
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_xdecref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3566,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3563
    functionDepth: 1
    functionLinenumber: 3563
    functionLinenumberEnd: 3568
    functionName: test_decref_doesnt_leak
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_decref_doesnt_leak(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_NewType
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3586,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3587,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3588,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3588,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3589,1
    - Dst: PyType_FastSubclass
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3589,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_FastSubclass(structseq_type, Py_TPFLAGS_TUPLE_SUBCLASS))
      pos:
        line_end: 3588
        line_start: 3588
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (PyType_Check(structseq_type))
      pos:
        line_end: 3587
        line_start: 3587
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (structseq_type != NULL)
      pos:
        line_end: 3586
        line_start: 3586
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 3593
      start: 3570
    functionDepth: 1
    functionLinenumber: 3570
    functionLinenumberEnd: 3593
    functionName: test_structseq_newtype_doesnt_leak
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_FastSubclass
    - PyType_Check
    - PyStructSequence_NewType
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntest_structseq_newtype_doesnt_leak(PyObject *Py_UNUSED(self),\n
      \                             PyObject *Py_UNUSED(args))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3598,1
    - Dst: Py_IncRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3599,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3600,1
    - Dst: Py_DecRef
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3595
    functionDepth: 1
    functionLinenumber: 3595
    functionLinenumberEnd: 3603
    functionName: test_incref_decref_API
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DecRef
    - Py_IncRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_incref_decref_API(PyObject *ob, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3610,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3612,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3615,1
    - Dst: PyMem_RawCalloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3617,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3619,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3622,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3624,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3626,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3629,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3633,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3636,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3638,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3640,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3643,1
    - Dst: PyObject_Calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3645,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3647,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3605
    functionDepth: 1
    functionLinenumber: 3605
    functionLinenumberEnd: 3653
    functionName: test_pymem_alloc0
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Calloc
    - PyObject_Malloc
    - PyMem_RawCalloc
    - PyMem_Calloc
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_RawFree
    - PyErr_SetString
    - PyMem_Malloc
    - PyObject_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_alloc0(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_hook_t*::alloc::malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3673
      start: 3667
    functionDepth: 0
    functionLinenumber: 3667
    functionLinenumberEnd: 3673
    functionName: hook_malloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - alloc_hook_t*::alloc::malloc
    linkageType: ''
    returnType: void
    signature: void * hook_malloc(void* ctx, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_hook_t*::alloc::calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3682
      start: 3675
    functionDepth: 0
    functionLinenumber: 3675
    functionLinenumberEnd: 3682
    functionName: hook_calloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - alloc_hook_t*::alloc::calloc
    linkageType: ''
    returnType: void
    signature: void * hook_calloc(void* ctx, size_t nelem, size_t elsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_hook_t*::alloc::realloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3691
      start: 3684
    functionDepth: 0
    functionLinenumber: 3684
    functionLinenumberEnd: 3691
    functionName: hook_realloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - alloc_hook_t*::alloc::realloc
    linkageType: ''
    returnType: void
    signature: void * hook_realloc(void* ctx, void* ptr, size_t new_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_hook_t*::alloc::free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3693
    functionDepth: 0
    functionLinenumber: 3693
    functionLinenumberEnd: 3699
    functionName: hook_free
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - alloc_hook_t*::alloc::free
    linkageType: ''
    returnType: void
    signature: void hook_free(void *ctx, void *ptr)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3711,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3718,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3719,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3726,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3727,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3728,1
    - Dst: CHECK_CTX
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3743,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3752,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3753,1
    - Dst: PyObject_Realloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3754,1
    - Dst: CHECK_CTX
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3762,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3771,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3772,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3773,1
    - Dst: CHECK_CTX
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3776,1
    - Dst: PyMem_RawCalloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3787,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3788,1
    - Dst: PyObject_Calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3789,1
    - Dst: CHECK_CTX
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3797,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3806,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3807,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3808,1
    - Dst: CHECK_CTX
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3811,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3817,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3822,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3825,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 135
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3701
    functionDepth: 1
    functionLinenumber: 3701
    functionLinenumberEnd: 3829
    functionName: test_setallocators
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - PyObject_Calloc
    - PyObject_Malloc
    - Py_INCREF
    - CHECK_CTX
    - PyMem_RawRealloc
    - PyMem_RawCalloc
    - PyMem_GetAllocator
    - PyMem_Calloc
    - PyMem_RawMalloc
    - PyMem_Realloc
    - PyMem_Free
    - PyMem_RawFree
    - PyObject_Free
    - PyMem_Malloc
    - PyErr_SetString
    - memset
    - PyObject_Realloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_setallocators(PyMemAllocatorDomain domain)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3738
      start: 3732
    functionDepth: 0
    functionLinenumber: 3732
    functionLinenumberEnd: 3738
    functionName: CHECK_CTX
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CTX(FUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setallocators
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3835
      start: 3831
    functionDepth: 2
    functionLinenumber: 3831
    functionLinenumberEnd: 3835
    functionName: test_pymem_setrawallocators
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - test_setallocators
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_setrawallocators(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setallocators
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3837
    functionDepth: 2
    functionLinenumber: 3837
    functionLinenumberEnd: 3841
    functionName: test_pymem_setallocators
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - test_setallocators
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_setallocators(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_setallocators
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3843
    functionDepth: 2
    functionLinenumber: 3843
    functionLinenumberEnd: 3847
    functionName: test_pyobject_setallocators
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - test_setallocators
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_setallocators(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3864
    functionDepth: 0
    functionLinenumber: 3864
    functionLinenumberEnd: 3873
    functionName: fm_nomemory
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fm_nomemory(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fm_nomemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3879,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3875
    functionDepth: 1
    functionLinenumber: 3875
    functionLinenumberEnd: 3883
    functionName: hook_fmalloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::malloc
    - fm_nomemory
    linkageType: ''
    returnType: void
    signature: 'void *

      hook_fmalloc(void *ctx, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fm_nomemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3889,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3893
      start: 3885
    functionDepth: 1
    functionLinenumber: 3885
    functionLinenumberEnd: 3893
    functionName: hook_fcalloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::calloc
    - fm_nomemory
    linkageType: ''
    returnType: void
    signature: 'void *

      hook_fcalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fm_nomemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3899,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3903
      start: 3895
    functionDepth: 1
    functionLinenumber: 3895
    functionLinenumberEnd: 3903
    functionName: hook_frealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::realloc
    - fm_nomemory
    linkageType: ''
    returnType: void
    signature: 'void *

      hook_frealloc(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMemAllocatorEx*::free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3905
    functionDepth: 0
    functionLinenumber: 3905
    functionLinenumberEnd: 3910
    functionName: hook_ffree
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::free
    linkageType: ''
    returnType: void
    signature: void hook_ffree(void *ctx, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3926,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3927,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3928,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3931,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3934,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3912
    functionDepth: 1
    functionLinenumber: 3912
    functionLinenumberEnd: 3938
    functionName: fm_setup_hooks
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - PyMem_GetAllocator
    linkageType: ''
    returnType: void
    signature: void fm_setup_hooks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3945,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3946,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3940
    functionDepth: 1
    functionLinenumber: 3940
    functionLinenumberEnd: 3949
    functionName: fm_remove_hooks
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    linkageType: ''
    returnType: void
    signature: void fm_remove_hooks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3959,1
    - Dst: fm_setup_hooks
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3951
    functionDepth: 2
    functionLinenumber: 3951
    functionLinenumberEnd: 3964
    functionName: set_nomemory
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - fm_setup_hooks
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_nomemory(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fm_remove_hooks
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:3969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3971
      start: 3966
    functionDepth: 2
    functionLinenumber: 3966
    functionLinenumberEnd: 3971
    functionName: remove_mem_hooks
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - fm_remove_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      remove_mem_hooks(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4042,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4045,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4047,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4048,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4054,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4058,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4060,1
    - Dst: PyThread_exit_thread
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4063
      start: 4035
    functionDepth: 1
    functionLinenumber: 4035
    functionLinenumberEnd: 4063
    functionName: temporary_c_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - Py_CLEAR
    - PyErr_Print
    - Py_DECREF
    - PyThread_exit_thread
    - PyGILState_Release
    - PyThread_release_lock
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: void
    signature: void temporary_c_thread(void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4072,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4074,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4075,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4078,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4082,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4085,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4086,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4088,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4090,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4091,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4092,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4096,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4097,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4101,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4108,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4110,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - self
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4114
      start: 4065
    functionDepth: 1
    functionLinenumber: 4065
    functionLinenumberEnd: 4114
    functionName: call_in_temporary_c_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyEval_InitThreads
    - Py_CLEAR
    - PyThread_free_lock
    - Py_INCREF
    - PyThread_acquire_lock
    - PyThread_start_new_thread
    - PyThread_release_lock
    - PyThread_allocate_lock
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_in_temporary_c_thread(PyObject *self, PyObject *callback)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4126,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4130,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4132,1
    - Dst: PyMarshal_WriteLongToFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4136,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4138,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4142
      start: 4118
    functionDepth: 1
    functionLinenumber: 4118
    functionLinenumberEnd: 4142
    functionName: pymarshal_write_long_to_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyMarshal_WriteLongToFile
    - PyErr_SetFromErrno
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_write_long_to_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4152,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4156,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4158,1
    - Dst: PyMarshal_WriteObjectToFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4162,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4164,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4144
    functionDepth: 1
    functionLinenumber: 4144
    functionLinenumberEnd: 4168
    functionName: pymarshal_write_object_to_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - PyMarshal_WriteObjectToFile
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_write_object_to_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4178,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4181,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4183,1
    - Dst: PyMarshal_ReadShortFromFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4187,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4188,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4190,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4191,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4194
      start: 4170
    functionDepth: 1
    functionLinenumber: 4170
    functionLinenumberEnd: 4194
    functionName: pymarshal_read_short_from_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - PyErr_Occurred
    - Py_BuildValue
    - PyErr_SetFromErrno
    - PyMarshal_ReadShortFromFile
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_short_from_file(PyObject* self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4203,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4206,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4208,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4212,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4213,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4215,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4216,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4219
      start: 4196
    functionDepth: 1
    functionLinenumber: 4196
    functionLinenumberEnd: 4219
    functionName: pymarshal_read_long_from_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMarshal_ReadLongFromFile
    - ftell
    - PyErr_Occurred
    - Py_BuildValue
    - PyErr_SetFromErrno
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_long_from_file(PyObject* self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4229,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4232,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4234,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4238,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4239,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4241,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4243
      start: 4221
    functionDepth: 1
    functionLinenumber: 4221
    functionLinenumberEnd: 4243
    functionName: pymarshal_read_last_object_from_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - ftell
    - Py_BuildValue
    - PyErr_SetFromErrno
    - PyMarshal_ReadLastObjectFromFile
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_last_object_from_file(PyObject* self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4253,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4256,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4258,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4262,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4263,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4265,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4245
    functionDepth: 1
    functionLinenumber: 4245
    functionLinenumberEnd: 4267
    functionName: pymarshal_read_object_from_file
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMarshal_ReadObjectFromFile
    - ftell
    - Py_BuildValue
    - PyErr_SetFromErrno
    - fclose
    - fopen
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymarshal_read_object_from_file(PyObject* self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4276
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4276
    functionName: return_null_without_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      return_null_without_error(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4285
      start: 4278
    functionDepth: 1
    functionLinenumber: 4278
    functionLinenumberEnd: 4285
    functionName: return_result_with_error
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      return_result_with_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4293,1
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4295,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4297
      start: 4287
    functionDepth: 1
    functionLinenumber: 4287
    functionLinenumberEnd: 4297
    functionName: test_pytime_fromseconds
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - PyArg_ParseTuple
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_fromseconds(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4306,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4308,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4310,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4299
    functionDepth: 2
    functionLinenumber: 4299
    functionLinenumberEnd: 4313
    functionName: test_pytime_fromsecondsobject
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSecondsObject
    - check_time_rounding
    - PyArg_ParseTuple
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_fromsecondsobject(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4322,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4325,1
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4328,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4330
      start: 4315
    functionDepth: 1
    functionLinenumber: 4315
    functionLinenumberEnd: 4330
    functionName: test_pytime_assecondsdouble
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyTime_FromNanosecondsObject
    - PyArg_ParseTuple
    - _PyTime_AsSecondsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pytime_assecondsdouble(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4341,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4343,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4346,1
    - Dst: _PyTime_AsTimeval
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4349,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4353,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4332
    functionDepth: 2
    functionLinenumber: 4332
    functionLinenumberEnd: 4358
    functionName: test_PyTime_AsTimeval
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - _PyTime_FromNanosecondsObject
    - Py_BuildValue
    - _PyTime_AsTimeval
    - PyLong_FromLongLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimeval(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4368,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4371,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4374,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4377,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4361
    functionDepth: 1
    functionLinenumber: 4361
    functionLinenumberEnd: 4378
    functionName: test_PyTime_AsTimespec
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimespec
    - _PyTime_FromNanosecondsObject
    - Py_BuildValue
    - _PyLong_FromTime_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsTimespec(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4388,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4391,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4394,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4397,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4381
    functionDepth: 2
    functionLinenumber: 4381
    functionLinenumberEnd: 4401
    functionName: test_PyTime_AsMilliseconds
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - _PyTime_FromNanosecondsObject
    - _PyTime_AsMilliseconds
    - PyArg_ParseTuple
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsMilliseconds(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4410,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4412,1
    - Dst: check_time_rounding
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4415,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4418,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4422
      start: 4403
    functionDepth: 2
    functionLinenumber: 4403
    functionLinenumberEnd: 4422
    functionName: test_PyTime_AsMicroseconds
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - check_time_rounding
    - _PyTime_FromNanosecondsObject
    - _PyTime_AsMicroseconds
    - PyArg_ParseTuple
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_PyTime_AsMicroseconds(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4427,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4431
      start: 4424
    functionDepth: 1
    functionLinenumber: 4424
    functionLinenumberEnd: 4431
    functionName: get_recursion_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyThreadState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_recursion_depth(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4440,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4442,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4449
      start: 4433
    functionDepth: 1
    functionLinenumber: 4433
    functionLinenumberEnd: 4449
    functionName: pymem_buffer_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_buffer_overflow(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4458,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4451
    functionDepth: 1
    functionLinenumber: 4451
    functionLinenumberEnd: 4462
    functionName: pymem_api_misuse
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyMem_RawFree
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_api_misuse(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4464
    functionDepth: 1
    functionLinenumber: 4464
    functionLinenumberEnd: 4478
    functionName: pymem_malloc_without_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pymem_malloc_without_gil(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_GetCurrentAllocatorName
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4484,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4486,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4481
    functionDepth: 1
    functionLinenumber: 4481
    functionLinenumberEnd: 4490
    functionName: test_pymem_getallocatorsname
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_GetCurrentAllocatorName
    - PyUnicode_FromString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pymem_getallocatorsname(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4496,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - test_name
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4493
    functionDepth: 2
    functionLinenumber: 4493
    functionLinenumberEnd: 4500
    functionName: test_pyobject_is_freed
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsFreed
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_is_freed(const char *test_name, PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_pyobject_is_freed
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4508
      start: 4503
    functionDepth: 3
    functionLinenumber: 4503
    functionLinenumberEnd: 4508
    functionName: check_pyobject_null_is_freed
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - test_pyobject_is_freed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_pyobject_null_is_freed(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4514,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4519,1
    - Dst: test_pyobject_is_freed
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4511
    functionDepth: 3
    functionLinenumber: 4511
    functionLinenumberEnd: 4522
    functionName: check_pyobject_uninitialized_is_freed
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - PyObject_Malloc
    - test_pyobject_is_freed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_pyobject_uninitialized_is_freed(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4529,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4534,1
    - Dst: test_pyobject_is_freed
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4525
    functionDepth: 3
    functionLinenumber: 4525
    functionLinenumberEnd: 4538
    functionName: check_pyobject_forbidden_bytes_is_freed
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - PyObject_Malloc
    - test_pyobject_is_freed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_pyobject_forbidden_bytes_is_freed(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4544,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4548,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4550,1
    - Dst: test_pyobject_is_freed
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4541
    functionDepth: 3
    functionLinenumber: 4541
    functionLinenumberEnd: 4553
    functionName: check_pyobject_freed_is_freed
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - _PyObject_CallNoArg
    - Py_TYPE
    - test_pyobject_is_freed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_pyobject_freed_is_freed(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4556
    functionDepth: 1
    functionLinenumber: 4556
    functionLinenumberEnd: 4570
    functionName: pyobject_malloc_without_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyobject_malloc_without_gil(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4582,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4584,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4585,1
    - Dst: PyTraceMalloc_Track
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4590,1
    - Dst: PyTraceMalloc_Track
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4594,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4603
      start: 4572
    functionDepth: 1
    functionLinenumber: 4572
    functionLinenumberEnd: 4603
    functionName: tracemalloc_track
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - PyTraceMalloc_Track
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_track(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4613,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4615,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4616,1
    - Dst: PyTraceMalloc_Untrack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4619,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4626
      start: 4605
    functionDepth: 1
    functionLinenumber: 4605
    functionLinenumberEnd: 4626
    functionName: tracemalloc_untrack
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTraceMalloc_Untrack
    - PyLong_AsVoidPtr
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_untrack(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4635,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4637,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4638,1
    - Dst: _PyTraceMalloc_GetTraceback
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4628
    functionDepth: 1
    functionLinenumber: 4628
    functionLinenumberEnd: 4642
    functionName: tracemalloc_get_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsVoidPtr
    - _PyTraceMalloc_GetTraceback
    - PyErr_Occurred
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tracemalloc_get_traceback(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4650,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4655,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4644
    functionDepth: 1
    functionLinenumber: 4644
    functionLinenumberEnd: 4657
    functionName: dict_get_version
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - PyArg_ParseTuple
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get_version(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4665,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4678,1
    - Dst: _PyGen_Send
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4680
    functionName: raise_SIGINT_then_send_None
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - raise
    - _PyGen_Send
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raise_SIGINT_then_send_None(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4690,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4692,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - args
    - stack
    - nargs
    argTypes:
    - PyObject*
    - PyObject***
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4699
      start: 4683
    functionDepth: 1
    functionLinenumber: 4683
    functionLinenumberEnd: 4699
    functionName: fastcall_args
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int fastcall_args(PyObject *args, PyObject ***stack, Py_ssize_t *nargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4709,1
    - Dst: fastcall_args
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4713,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4702
    functionDepth: 2
    functionLinenumber: 4702
    functionLinenumberEnd: 4717
    functionName: test_pyobject_fastcall
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - fastcall_args
    - _PyObject_FastCall
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_fastcall(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4727,1
    - Dst: fastcall_args
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4731,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4738,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4739,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4744
      start: 4720
    functionDepth: 2
    functionLinenumber: 4720
    functionLinenumberEnd: 4744
    functionName: test_pyobject_fastcalldict
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyDict_Check
    - _PyObject_FastCallDict
    - PyErr_SetString
    - fastcall_args
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_fastcalldict(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4754,1
    - Dst: fastcall_args
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4758,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4765,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4766,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4774,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4777,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4747
    functionDepth: 2
    functionLinenumber: 4747
    functionLinenumberEnd: 4778
    functionName: test_pyobject_vectorcall
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_Vectorcall
    - PyTuple_Check
    - PyErr_SetString
    - fastcall_args
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyobject_vectorcall(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4788,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4792,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4793,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4796,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4797,1
    - Dst: PyVectorcall_Call
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4781
    functionDepth: 1
    functionLinenumber: 4781
    functionLinenumberEnd: 4802
    functionName: test_pyvectorcall_call
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_Call
    - PyDict_Check
    - PyTuple_Check
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pyvectorcall_call(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4810
      start: 4805
    functionDepth: 1
    functionLinenumber: 4805
    functionLinenumberEnd: 4810
    functionName: stack_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stack_pointer(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4818,1
    - Dst: W_STOPCODE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4821,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4823
      start: 4814
    functionDepth: 1
    functionLinenumber: 4814
    functionLinenumberEnd: 4823
    functionName: py_w_stopcode
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - W_STOPCODE
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_w_stopcode(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4831
      start: 4827
    functionDepth: 1
    functionLinenumber: 4827
    functionLinenumberEnd: 4831
    functionName: get_mapping_keys
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_Keys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mapping_keys(PyObject* self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Values
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4837
      start: 4833
    functionDepth: 1
    functionLinenumber: 4833
    functionLinenumberEnd: 4837
    functionName: get_mapping_values
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_Values
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mapping_values(PyObject* self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Items
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4843
      start: 4839
    functionDepth: 1
    functionLinenumber: 4839
    functionLinenumberEnd: 4843
    functionName: get_mapping_items
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMapping_Items
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mapping_items(PyObject* self, PyObject *obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4850,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4851,1
    - Dst: PyThread_tss_create
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4855,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4856,1
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4859,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4860,1
    - Dst: PyThread_tss_create
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4864,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4865,1
    - Dst: CHECK_TSS_API
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4875,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4875,1
    - Dst: CHECK_TSS_API
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4876,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4876,1
    - Dst: PyThread_tss_delete
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4878,1
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4879,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4880,1
    - Dst: PyThread_tss_alloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4885,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4887,1
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4890,1
    - Dst: raiseTestError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4891,1
    - Dst: PyThread_tss_free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4898
      start: 4846
    functionDepth: 2
    functionLinenumber: 4846
    functionLinenumberEnd: 4898
    functionName: test_pythread_tss_key_state
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_create
    - PyThread_tss_is_created
    - PyThread_tss_set
    - PyThread_tss_delete
    - PyThread_tss_alloc
    - CHECK_TSS_API
    - PyErr_SetString
    - PyThread_tss_get
    - PyThread_tss_free
    - raiseTestError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_pythread_tss_key_state(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4875
      start: 4869
    functionDepth: 0
    functionLinenumber: 4869
    functionLinenumberEnd: 4875
    functionName: CHECK_TSS_API
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_TSS_API(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyContext_NewHamtForTests
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4905
      start: 4901
    functionDepth: 1
    functionLinenumber: 4901
    functionLinenumberEnd: 4905
    functionName: new_hamt
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _PyContext_NewHamtForTests
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_hamt(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackStack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4916,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4924,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4927
      start: 4912
    functionDepth: 1
    functionLinenumber: 4912
    functionLinenumberEnd: 4927
    functionName: bad_get
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - PyObject_CallObject
    - _PyArg_UnpackStack
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bad_get(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4939,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4942,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4946,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4951,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4954,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4958,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4959,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4962,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4965,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4969,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4930
    functionDepth: 1
    functionLinenumber: 4930
    functionLinenumberEnd: 4976
    functionName: encode_locale_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeLocaleEx
    - _Py_GetErrorHandler
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyBytes_FromString
    - PyErr_Format
    - PyMem_Free
    - PyMem_RawFree
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encode_locale_ex(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4987,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4990,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:4995,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5001,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5002,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5005,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5008,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5012,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5015,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 4979
    functionDepth: 1
    functionLinenumber: 4979
    functionLinenumberEnd: 5019
    functionName: decode_locale_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetErrorHandler
    - PyErr_NoMemory
    - _Py_DecodeLocaleEx
    - PyUnicode_FromWideChar
    - PyErr_Format
    - PyMem_RawFree
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_locale_ex(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5026,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5030,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5030,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(obj) == 1)
      pos:
        line_end: 5029
        line_start: 5029
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 5037
      start: 5023
    functionDepth: 1
    functionLinenumber: 5023
    functionLinenumberEnd: 5037
    functionName: negative_refcount
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - assert
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      negative_refcount(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 5032
    functionDepth: 0
    functionLinenumber: 5032
    functionLinenumberEnd: 5032
    functionName: Py_REFCNT
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_REFCNT(obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5045,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5051,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5060,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5060,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5061,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5063
      start: 5041
    functionDepth: 1
    functionLinenumber: 5041
    functionLinenumberEnd: 5063
    functionName: test_write_unraisable_exc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyErr_SetObject
    - Py_TYPE
    - _PyErr_WriteUnraisableMsg
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_write_unraisable_exc(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5071,1
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 5066
    functionDepth: 1
    functionLinenumber: 5066
    functionLinenumberEnd: 5076
    functionName: pynumber_tobase
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pynumber_tobase(PyObject *module, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - n
    - ','
    - f
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5330
      start: 5329
    functionDepth: 0
    functionLinenumber: 5329
    functionLinenumberEnd: 5330
    functionName: AddSym
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AddSym(d, n, f, v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5387,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5390,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5391,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5413,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5414,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5417,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5423
      start: 5374
    functionDepth: 1
    functionLinenumber: 5374
    functionLinenumberEnd: 5423
    functionName: test_structmembers_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - strcpy
    - Py_DECREF
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - memset
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_structmembers_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5429
      start: 5425
    functionDepth: 0
    functionLinenumber: 5425
    functionLinenumberEnd: 5429
    functionName: test_structmembers_free
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void test_structmembers_free(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5481
      start: 5477
    functionDepth: 1
    functionLinenumber: 5477
    functionLinenumberEnd: 5481
    functionName: matmulType_matmul
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      matmulType_matmul(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5483
    functionDepth: 1
    functionLinenumber: 5483
    functionLinenumberEnd: 5487
    functionName: matmulType_imatmul
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      matmulType_imatmul(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5493
      start: 5489
    functionDepth: 1
    functionLinenumber: 5489
    functionLinenumberEnd: 5493
    functionName: matmulType_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void matmulType_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5584
      start: 5580
    functionDepth: 1
    functionLinenumber: 5580
    functionLinenumberEnd: 5584
    functionName: ipowType_ipow
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ipowType_ipow(PyObject *self, PyObject *other, PyObject *mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5610,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5613,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5622
      start: 5604
    functionDepth: 1
    functionLinenumber: 5604
    functionLinenumberEnd: 5622
    functionName: awaitObject_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      awaitObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5628,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ao
    argTypes:
    - awaitObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5630
      start: 5625
    functionDepth: 1
    functionLinenumber: 5625
    functionLinenumberEnd: 5630
    functionName: awaitObject_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void awaitObject_dealloc(awaitObject *ao)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ao
    argTypes:
    - awaitObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5638
      start: 5633
    functionDepth: 1
    functionLinenumber: 5633
    functionLinenumberEnd: 5638
    functionName: awaitObject_await
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      awaitObject_await(awaitObject *ao)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5739,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5742
      start: 5733
    functionDepth: 1
    functionLinenumber: 5733
    functionLinenumberEnd: 5742
    functionName: recurse_infinitely_error_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int recurse_infinitely_error_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5759
      start: 5753
    functionDepth: 0
    functionLinenumber: 5753
    functionLinenumberEnd: 5759
    functionName: MyList_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - tp_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MyList_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5767,1
    - Dst: tp_dealloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - MyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5771
      start: 5761
    functionDepth: 1
    functionLinenumber: 5761
    functionLinenumberEnd: 5771
    functionName: MyList_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - tp_dealloc
    linkageType: ''
    returnType: void
    signature: void MyList_dealloc(MyListObject* op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5825,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyGenericAliasObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5827
      start: 5822
    functionDepth: 1
    functionLinenumber: 5822
    functionLinenumberEnd: 5827
    functionName: generic_alias_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void generic_alias_dealloc(PyGenericAliasObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bases
    argTypes:
    - PyGenericAliasObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5833
      start: 5829
    functionDepth: 1
    functionLinenumber: 5829
    functionLinenumberEnd: 5833
    functionName: generic_alias_mro_entries
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_alias_mro_entries(PyGenericAliasObject *self, PyObject *bases)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5853,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5860
      start: 5850
    functionDepth: 1
    functionLinenumber: 5850
    functionLinenumberEnd: 5860
    functionName: generic_alias_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_alias_new(PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generic_alias_new
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5870
      start: 5866
    functionDepth: 2
    functionLinenumber: 5866
    functionLinenumberEnd: 5870
    functionName: generic_class_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - generic_alias_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generic_class_getitem(PyObject *type, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5902
      start: 5894
    functionDepth: 1
    functionLinenumber: 5894
    functionLinenumberEnd: 5902
    functionName: MethodDescriptor_vectorcall
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nMethodDescriptor_vectorcall(PyObject *callable, PyObject
      *const *args,\n                            size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5910
      start: 5904
    functionDepth: 0
    functionLinenumber: 5904
    functionLinenumberEnd: 5910
    functionName: MethodDescriptor_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MethodDescriptor_new(PyTypeObject* type, PyObject* args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5916,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5920
      start: 5912
    functionDepth: 1
    functionLinenumber: 5912
    functionLinenumberEnd: 5920
    functionName: func_descr_get
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5927
      start: 5922
    functionDepth: 1
    functionLinenumber: 5922
    functionLinenumberEnd: 5927
    functionName: nop_descr_get
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nop_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5929
    functionDepth: 1
    functionLinenumber: 5929
    functionLinenumberEnd: 5934
    functionName: call_return_args
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_return_args(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:5970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5974
      start: 5967
    functionDepth: 1
    functionLinenumber: 5967
    functionLinenumberEnd: 5974
    functionName: MethodDescriptor2_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MethodDescriptor2_new(PyTypeObject* type, PyObject* args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 6000
    functionDepth: 0
    functionLinenumber: 6000
    functionLinenumberEnd: 6005
    functionName: heapctype_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int heapctype_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6010,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6011,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - HeapCTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6014
      start: 6007
    functionDepth: 1
    functionLinenumber: 6007
    functionLinenumberEnd: 6014
    functionName: heapgcctype_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapgcctype_dealloc(HeapCTypeObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6039,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - HeapCTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6042
      start: 6036
    functionDepth: 1
    functionLinenumber: 6036
    functionLinenumberEnd: 6042
    functionName: heapctype_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void heapctype_dealloc(HeapCTypeObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heapctype_init
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6069
    functionDepth: 1
    functionLinenumber: 6069
    functionLinenumberEnd: 6079
    functionName: heapctypesubclass_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - heapctype_init
    linkageType: ''
    returnType: int
    signature: int heapctypesubclass_init(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GetSlot
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6109,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6109,1
    - Dst: PyType_GetSlot
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6110,1
    - Dst: base_init
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6113
      start: 6106
    functionDepth: 1
    functionLinenumber: 6106
    functionLinenumberEnd: 6113
    functionName: heapctypesubclasswithfinalizer_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - base_init
    - Py_TYPE
    - PyType_GetSlot
    linkageType: ''
    returnType: int
    signature: int heapctypesubclasswithfinalizer_init(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6122,1
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6124,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6128,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6129,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6134,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6137,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6137,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6141,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6144,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6145,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6145,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6149,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6154,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6155,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6156,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6159,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6115
    functionDepth: 1
    functionLinenumber: 6115
    functionLinenumberEnd: 6160
    functionName: heapctypesubclasswithfinalizer_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_Fetch
    - Py_REFCNT
    - PyErr_Restore
    - PyLong_FromSsize_t
    - Py_XDECREF
    - PyObject_SetAttrString
    linkageType: ''
    returnType: void
    signature: void heapctypesubclasswithfinalizer_finalize(PyObject *self)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6199,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6203,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6205,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6206,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6209,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6210,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6212,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6213,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6214,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6217,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6218,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6220,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6222,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6223,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6226,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6228,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6229,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6235,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6237,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6238,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6241,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6243,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6244,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6247,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6249,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6250,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6253,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6255,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6256,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6258,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6260,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6261,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6263,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6265,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6266,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6272,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6273,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6276,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6276,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6277,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6277,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6278,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6278,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6279,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6279,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6280,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6280,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6281,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6281,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6282,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6282,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6283,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6283,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6284,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6284,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6285,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6285,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6286,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6286,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6287,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6287,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6288,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6288,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6289,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6289,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6290,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6290,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6291,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6291,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6292,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6292,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6293,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6293,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6294,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6294,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6295,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6295,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6296,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6296,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6297,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6297,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6298,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6298,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6299,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6300,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6302,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6309,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6310,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6312,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6313,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6314,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6316,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6320,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6322,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6326,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6330,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6334,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6335,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6337,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6346,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6347,1
    - Dst: PyState_AddModule
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6349,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6351
      start: 6194
    functionDepth: 1
    functionLinenumber: 6194
    functionLinenumberEnd: 6351
    functionName: PyInit__testcapi
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyModule_AddIntConstant
    - Py_DECREF
    - PyType_FromSpecWithBases
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyType_FromSpec
    - PyModule_AddObject
    - PyTuple_Pack
    - PyState_AddModule
    - PyLong_FromSsize_t
    - Py_TYPE
    - PyLong_FromUnsignedLong
    - PyType_Ready
    - PyFloat_FromDouble
    - PyLong_FromLongLong
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testcapi(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6365,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6367,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6368,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6369,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6372,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6373,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6374,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6377,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6378,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6379,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6382,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6383,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6384,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_testcapimodule.c:6388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (res == NULL)
      pos:
        line_end: 6367
        line_start: 6367
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (res == NULL)
      pos:
        line_end: 6372
        line_start: 6372
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (res == NULL)
      pos:
        line_end: 6377
        line_start: 6377
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - condition: (res == NULL)
      pos:
        line_end: 6382
        line_start: 6382
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    constantsTouched: []
    func_position:
      end: 6390
      start: 6359
    functionDepth: 1
    functionLinenumber: 6359
    functionLinenumberEnd: 6390
    functionName: test_buildvalue_issue38913
    functionSourceFile: /src/Python-3.8.3/Modules/_testcapimodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_SetNone
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_buildvalue_issue38913(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_infinity
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: m_inf
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - _Py_dg_infinity
    linkageType: ''
    returnType: double
    signature: double m_inf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_inf
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: c_infj
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - m_inf
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_infj(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_stdnan
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: m_nan
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - _Py_dg_stdnan
    linkageType: ''
    returnType: double
    signature: double m_nan(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_nan
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: c_nanj
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - m_nan
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_nanj(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:160,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:162,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:168,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:174,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - d
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 180
    functionName: special_type
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - copysign
    - Py_IS_FINITE
    - Py_IS_NAN
    linkageType: ''
    returnType: enum special_types
    signature: enum special_types special_type(double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - z
    - ','
    - table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    functionName: SPECIAL_VALUE
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIAL_VALUE(z, table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:223,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:225,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:225,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:227,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:227,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:231,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:231,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:231,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:234,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:234,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:234,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:240,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:243,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:244,1
    - Dst: m_asinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 249
    functionName: cmath_acos_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - hypot
    - SPECIAL_VALUE
    - copysign
    - fabs
    - log
    - cmath_sqrt_impl
    - m_asinh
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_acos_impl(PyObject *module, Py_complex z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:266,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:268,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:268,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:270,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:270,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:271,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:275,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:278,1
    - Dst: m_asinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:279,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 284
    functionName: cmath_acosh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - hypot
    - SPECIAL_VALUE
    - fabs
    - log
    - cmath_sqrt_impl
    - m_asinh
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_acosh_impl(PyObject *module, Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmath_asinh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: cmath_asin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cmath_asinh_impl
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_asin_impl(PyObject *module, Py_complex z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:321,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:323,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:323,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:325,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:325,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:325,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:328,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:328,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:328,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:331,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:331,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:335,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:338,1
    - Dst: m_asinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:339,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: cmath_asinh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - hypot
    - SPECIAL_VALUE
    - copysign
    - fabs
    - log
    - cmath_sqrt_impl
    - m_asinh
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_asinh_impl(PyObject *module, Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmath_atanh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: cmath_atan_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cmath_atanh_impl
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_atan_impl(PyObject *module, Py_complex z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:372,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:372,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:374,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:375,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:376,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:378,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:381,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:384,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:386,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:387,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:389,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:392,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 395
    functionName: c_atan2
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - copysign
    - Py_IS_INFINITY
    - atan2
    - Py_IS_NAN
    linkageType: ''
    returnType: double
    signature: double c_atan2(Py_complex z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:413,1
    - Dst: _Py_c_neg
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:417,1
    - Dst: cmath_atanh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:417,1
    - Dst: _Py_c_neg
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:417,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:420,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:427,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:433,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:442,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:442,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:442,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:442,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:443,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:443,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:447,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:448,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 452
    functionName: cmath_atanh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 2
    functionsReached:
    - cmath_atanh_impl
    - hypot
    - SPECIAL_VALUE
    - copysign
    - _Py_c_neg
    - fabs
    - log
    - m_log1p
    - sqrt
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_atanh_impl(PyObject *module, Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmath_cosh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: cmath_cos_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cmath_cosh_impl
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_cos_impl(PyObject *module, Py_complex z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:491,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:491,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:492,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:492,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:495,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:495,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:496,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:496,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:499,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:499,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:500,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:500,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:504,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:505,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:509,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:509,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:516,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:519,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:520,1
    - Dst: cosh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:520,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:521,1
    - Dst: sinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:521,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:523,1
    - Dst: cosh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:523,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:524,1
    - Dst: sinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:524,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:527,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:527,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 532
    functionName: cmath_cosh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - cos
    - special_type
    - sinh
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - fabs
    - cosh
    - sin
    - Py_IS_FINITE
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_cosh_impl(PyObject *module, Py_complex z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:552,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:552,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:553,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:553,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:556,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:556,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:557,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:557,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:560,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:560,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:561,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:561,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:565,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:566,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:570,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:571,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:572,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:580,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:581,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:582,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:584,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:585,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:586,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:589,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 594
    functionName: cmath_exp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cos
    - special_type
    - copysign
    - Py_IS_INFINITY
    - exp
    - sin
    - Py_IS_FINITE
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_exp_impl(PyObject *module, Py_complex z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:632,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:634,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:635,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:638,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:638,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:642,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:642,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:642,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:643,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:648,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:653,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:657,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:659,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 665
    functionName: c_log
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - hypot
    - SPECIAL_VALUE
    - fabs
    - log
    - m_log1p
    - ldexp
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_log(Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: cmath_log10_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - c_log
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_log10_impl(PyObject *module, Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmath_sinh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 708
    functionName: cmath_sin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cmath_sinh_impl
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_sin_impl(PyObject *module, Py_complex z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:729,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:729,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:730,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:730,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:733,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:733,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:734,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:734,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:737,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:737,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:738,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:738,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:742,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:743,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:747,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:747,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:754,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:755,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:756,1
    - Dst: sinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:756,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:757,1
    - Dst: cosh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:757,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:759,1
    - Dst: sinh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:759,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:760,1
    - Dst: cosh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:760,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:763,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:763,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 768
    functionName: cmath_sinh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - cos
    - special_type
    - sinh
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - fabs
    - cosh
    - sin
    - Py_IS_FINITE
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_sinh_impl(PyObject *module, Py_complex z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SPECIAL_VALUE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:814,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:822,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:823,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:827,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:828,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:828,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:828,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:828,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:832,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:832,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:838,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:841,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 845
    functionName: cmath_sqrt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 3
    functionsReached:
    - hypot
    - SPECIAL_VALUE
    - copysign
    - fabs
    - ldexp
    - sqrt
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_sqrt_impl(PyObject *module, Py_complex z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmath_tanh_impl
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 866
    functionName: cmath_tan_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cmath_tanh_impl
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_tan_impl(PyObject *module, Py_complex z)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:899,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:899,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:900,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:900,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:904,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:905,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:905,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:909,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:910,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:910,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:914,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:915,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:919,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:919,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:927,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:928,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:929,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:929,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:929,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:929,1
    - Dst: tanh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:931,1
    - Dst: tan
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:932,1
    - Dst: cosh
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:933,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 941
    functionName: cmath_tanh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - cos
    - special_type
    - tan
    - copysign
    - Py_IS_INFINITY
    - exp
    - fabs
    - tanh
    - cosh
    - sin
    - Py_IS_FINITE
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex cmath_tanh_impl(PyObject *module, Py_complex z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:963,1
    - Dst: c_log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:964,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:966,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:967,1
    - Dst: c_log
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:970,1
    - Dst: _Py_c_quot
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:971,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:973,1
    - Dst: math_error
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:975,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - module
    - x
    - y_obj
    argTypes:
    - PyObject*
    - Py_complex
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 977
    functionName: cmath_log_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_c_quot
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - math_error
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - c_log
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_log_impl(PyObject *module, Py_complex x, PyObject *y_obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:986,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:988,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 992
    functionName: math_error
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetFromErrno
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1011,1
    - Dst: c_atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1012,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1013,1
    - Dst: math_error
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1015,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1018
    functionName: cmath_phase_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - math_error
    - PyFPE_START_PROTECT
    - c_atan2
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_phase_impl(PyObject *module, Py_complex z)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1038,1
    - Dst: c_atan2
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1039,1
    - Dst: _Py_c_abs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1040,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1041,1
    - Dst: math_error
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1043,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1046
    functionName: cmath_polar_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_c_abs
    - PyFPE_END_PROTECT
    - Py_BuildValue
    - math_error
    - PyFPE_START_PROTECT
    - c_atan2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_polar_impl(PyObject *module, Py_complex z)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1077,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1080,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1080,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1084,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1084,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1087,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1087,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1088,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1088,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1091,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1091,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1092,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1092,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1096,1
    - Dst: special_type
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1097,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1101,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1101,1
    - Dst: cos
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1114,1
    - Dst: sin
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1115,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1119,1
    - Dst: math_error
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1121,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1123,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - module
    - r
    - phi
    argTypes:
    - PyObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1124
    functionName: cmath_rect_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - cos
    - special_type
    - PyFPE_END_PROTECT
    - math_error
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - PyComplex_FromCComplex
    - sin
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_rect_impl(PyObject *module, double r, double phi)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1136,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1136,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1137
    functionName: cmath_isfinite_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isfinite_impl(PyObject *module, Py_complex z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1149,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1149,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1150
    functionName: cmath_isnan_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_NAN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isnan_impl(PyObject *module, Py_complex z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1162,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1162,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - module
    - z
    argTypes:
    - PyObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1164
    functionName: cmath_isinf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_IS_INFINITY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isinf_impl(PyObject *module, Py_complex z)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1199,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1218,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1218,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1219,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1219,1
    - Dst: _Py_c_abs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1227,1
    - Dst: _Py_c_diff
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1227,1
    - Dst: _Py_c_abs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1229,1
    - Dst: _Py_c_abs
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 5
    argNames:
    - module
    - a
    - b
    - rel_tol
    - abs_tol
    argTypes:
    - PyObject*
    - Py_complex
    - Py_complex
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1232
    functionName: cmath_isclose_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - _Py_c_abs
    - Py_IS_INFINITY
    - _Py_c_diff
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int cmath_isclose_impl(PyObject *module, Py_complex a, Py_complex
      b,\n                   double rel_tol, double abs_tol)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1283,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1287,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1288,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1289,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1289,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1290,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1290,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1291,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1291,1
    - Dst: m_inf
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1291,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1292,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1292,1
    - Dst: c_infj
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1292,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1294,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1294,1
    - Dst: m_nan
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1294,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1295,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1295,1
    - Dst: c_nanj
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1295,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1303,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1304,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1305,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1306,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1307,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1308,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1309,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1310,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1313,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1314,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1315,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1316,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1317,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1318,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1319,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1320,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1323,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1324,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1325,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1326,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1327,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1328,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1329,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1330,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1333,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1334,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1335,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1336,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1337,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1338,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1339,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1340,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1343,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1344,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1345,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1346,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1347,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1348,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1349,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1350,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1353,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1354,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1355,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1356,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1357,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1358,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1359,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1360,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1363,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1364,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1365,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1366,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1367,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1368,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1369,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1370,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1373,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1374,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1375,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1376,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1377,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1378,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1379,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1380,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1383,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1384,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1385,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1386,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1387,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1388,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1389,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1390,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1393,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1394,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1395,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1396,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1397,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1398,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1399,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1400,1
    - Dst: INIT_SPECIAL_VALUES
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1403,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1404,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1405,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1406,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1407,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1408,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1409,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    - Dst: C
      Src: /src/Python-3.8.3/Modules/cmathmodule.c:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 273
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1413
    functionName: PyInit_cmath
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 0
    functionsReached:
    - C
    - INIT_SPECIAL_VALUES
    - PyModule_Create
    - c_nanj
    - PyModule_AddObject
    - c_infj
    - m_inf
    - PyComplex_FromCComplex
    - PyFloat_FromDouble
    - m_nan
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_cmath(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - BODY
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1300
    functionDepth: 0
    functionLinenumber: 1300
    functionLinenumberEnd: 1301
    functionName: INIT_SPECIAL_VALUES
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_SPECIAL_VALUES(NAME, BODY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - REAL
    - ','
    - IMAG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1302
    functionName: C
    functionSourceFile: /src/Python-3.8.3/Modules/cmathmodule.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: C(REAL, IMAG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: GET_ATEXIT_STATE
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ATEXIT_STATE(mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:41,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:42,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:43,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - modstate
    - i
    argTypes:
    - atexitmodule_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: atexit_delete_cb
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void atexit_delete_cb(atexitmodule_state *modstate, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atexit_delete_cb
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - modstate
    argTypes:
    - atexitmodule_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: atexit_cleanup
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_delete_cb
    linkageType: ''
    returnType: void
    signature: void atexit_cleanup(atexitmodule_state *modstate)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:75,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:87,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:88,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:93,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:94,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:95,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:97,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:98,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:99,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:100,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:101,1
    - Dst: atexit_cleanup
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:106,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 110
    functionName: atexit_callfuncs
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Display
    - Py_DECREF
    - atexit_cleanup
    - PyErr_Fetch
    - PySys_WriteStderr
    - PyErr_GivenExceptionMatches
    - PyErr_NormalizeException
    - GET_ATEXIT_STATE
    - PyObject_Call
    - PyErr_Restore
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void atexit_callfuncs(PyObject *module)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:133,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:138,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:141,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:146,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:151,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:153,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:158,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:160,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:162,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:162,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:164,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:169,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:170,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 176
    functionName: atexit_register
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyCallable_Check
    - Py_INCREF
    - PyErr_NoMemory
    - PyMem_Realloc
    - PyMem_Free
    - PyErr_SetString
    - GET_ATEXIT_STATE
    - PyMem_Malloc
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_register(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atexit_callfuncs
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:186,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: atexit_run_exitfuncs
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - atexit_callfuncs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_run_exitfuncs(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atexit_cleanup
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:200,1
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: atexit_clear
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_cleanup
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_clear(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:214,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: atexit_ncallbacks
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_ncallbacks(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:225,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:231,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:232,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 237
    functionName: atexit_m_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: int
    signature: int atexit_m_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:243,1
    - Dst: atexit_cleanup
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: atexit_m_clear
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_cleanup
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: int
    signature: int atexit_m_clear(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:254,1
    - Dst: atexit_cleanup
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:256,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: atexit_free
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - atexit_cleanup
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: void
    signature: void atexit_free(PyObject *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:276,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:284,1
    - Dst: atexit_delete_cb
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - func
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 291
    functionName: atexit_unregister
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - atexit_delete_cb
    - PyObject_RichCompareBool
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      atexit_unregister(PyObject *self, PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATEXIT_STATE
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:321,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:324,1
    - Dst: _Py_PyAtExit
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: atexit_exec
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - _Py_PyAtExit
    - PyMem_New
    - GET_ATEXIT_STATE
    linkageType: ''
    returnType: int
    signature: int atexit_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/atexitmodule.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: PyInit_atexit
    functionSourceFile: /src/Python-3.8.3/Modules/atexitmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_atexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ADDR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: DEFERRED_ADDRESS
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFERRED_ADDRESS(ADDR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:29,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - spamlistobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: spamlist_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_getstate(spamlistobject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:39,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - spamlistobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: spamlist_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_setstate(spamlistobject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:49,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:56,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:57,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:58,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:59,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:60,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: spamlist_specialmeth
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - PyTuple_SET_ITEM
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_specialmeth(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - spamlistobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: spamlist_init
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - tp_init
    linkageType: ''
    returnType: int
    signature: int spamlist_init(spamlistobject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - spamlistobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: spamlist_state_get
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamlist_state_get(spamlistobject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:154,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - spamdictobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: spamdict_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamdict_getstate(spamdictobject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:164,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - spamdictobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: spamdict_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spamdict_setstate(spamdictobject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - spamdictobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: spamdict_init
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - tp_init
    linkageType: ''
    returnType: int
    signature: int spamdict_init(spamdictobject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:242,1
    - Dst: clock
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:244,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:249,1
    - Dst: clock
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:251,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: spam_bench
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - clock
    - PyFloat_FromDouble
    - PyArg_ParseTuple
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spam_bench(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:268,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:272,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:275,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:277,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:280,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:281,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:285,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 290
    functionName: xxsubtype_exec
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int xxsubtype_exec(PyObject* m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/xxsubtype.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: PyInit_xxsubtype
    functionSourceFile: /src/Python-3.8.3/Modules/xxsubtype.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxsubtype(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: PyStruct_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStruct_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: PyStruct_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStruct_CheckExact(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:109,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:110,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:112,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_struct.c:113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:118,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:124,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:126,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: get_pylong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyIndex_Check
    - Py_INCREF
    - PyNumber_Index
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pylong(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:138,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:141,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:141,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_struct.c:142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:143,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:144,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: get_long
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - get_pylong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_long(PyObject *v, long *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:162,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:165,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:165,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:167,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:168,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - unsigned long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 176
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: get_ulong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - Py_DECREF
    - get_pylong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_ulong(PyObject *v, unsigned long *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:185,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:188,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:188,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:190,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:191,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:192,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - long long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: get_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsLongLong
    - get_pylong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_longlong(PyObject *v, long long *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:208,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:211,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:211,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:212,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:213,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:214,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:215,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - unsigned long long*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: get_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - get_pylong
    - PyLong_AsUnsignedLongLong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_ulonglong(PyObject *v, unsigned long long *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:231,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:234,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:234,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:236,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:237,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:238,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: get_ssize_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - get_pylong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_ssize_t(PyObject *v, Py_ssize_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:257,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:257,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:259,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:260,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:261,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - size_t*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 268
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 268
    functionName: get_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSize_t
    - get_pylong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int get_size_t(PyObject *v, size_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - flag
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: RANGE_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANGE_ERROR(x, f, flag, mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_Unpack2
      Src: /src/Python-3.8.3/Modules/_struct.c:282,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:283,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: unpack_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyFloat_Unpack2
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_halffloat(const char *p,  /* start of 2-byte string
      */\n                 int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:294,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:295,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:296,1
    - Dst: _PyFloat_Pack2
      Src: /src/Python-3.8.3/Modules/_struct.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - le
    argTypes:
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: pack_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - _PyFloat_Pack2
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int pack_halffloat(char *p,      /* start of 2-byte string */\n               PyObject
      *v,  /* value to pack */\n               int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_Unpack4
      Src: /src/Python-3.8.3/Modules/_struct.c:309,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:310,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: unpack_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - _PyFloat_Unpack4
    - PyFloat_FromDouble
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_float(const char *p,  /* start of 4-byte string
      */\n         int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Modules/_struct.c:321,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:322,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: unpack_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyErr_Occurred
    - _PyFloat_Unpack8
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_double(const char *p,  /* start of 8-byte string
      */\n          int le)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:340,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:342,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - f
    - is_unsigned
    argTypes:
    - formatdef*
    - int
    assertStmts:
    - condition: (f->size >= 1 && f->size <= SIZEOF_SIZE_T)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 356
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 356
    functionName: _range_error
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int _range_error(const formatdef *f, int is_unsigned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 383
    functionName: nu_char
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_char(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 389
    functionName: nu_byte
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_byte(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: nu_ubyte
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ubyte(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:401,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: nu_short
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_short(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:409,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: nu_ushort
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ushort(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:417,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: nu_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_int(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:425,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: nu_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_uint(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:433,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: nu_long
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_long(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:441,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 443
    functionName: nu_ulong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ulong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:449,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: nu_ssize_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ssize_t(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:457,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 459
    functionName: nu_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_size_t(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:465,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: nu_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_longlong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:473,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 475
    functionName: nu_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_ulonglong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:481,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 483
    functionName: nu_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_bool(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:490,1
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 494
    functionName: nu_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_halffloat(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:500,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: nu_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_float(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:508,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: nu_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_double(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:516,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_struct.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: nu_void_p
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nu_void_p(const char *p, const formatdef *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:524,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: np_byte
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_byte(char *p, PyObject *v, const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:539,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 548
    functionName: np_ubyte
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_ubyte(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:553,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:553,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:554,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 560
    functionName: np_char
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int np_char(char *p, PyObject *v, const formatdef *f)
  - BBCount: 146
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:567,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:570,1
    - Dst: Py_STRINGIFY
      Src: /src/Python-3.8.3/Modules/_struct.c:571,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:576,1
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:585,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:588,1
    - Dst: Py_STRINGIFY
      Src: /src/Python-3.8.3/Modules/_struct.c:590,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:594,1
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:603,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:607,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:610,1
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:619,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:624,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:626,1
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:634,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:636,1
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:644,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:646,1
    - Dst: get_ssize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:654,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:656,1
    - Dst: get_size_t
      Src: /src/Python-3.8.3/Modules/_struct.c:664,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:666,1
    - Dst: get_longlong
      Src: /src/Python-3.8.3/Modules/_struct.c:674,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:676,1
    - Dst: get_ulonglong
      Src: /src/Python-3.8.3/Modules/_struct.c:684,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:686,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_struct.c:696,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:700,1
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:708,1
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:710,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:717,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:718,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:719,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:723,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:730,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:731,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:732,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:736,1
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:745,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:748,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:748,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_struct.c:749,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:751,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:753,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:796,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:808,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:823,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:835,1
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:841,1
    - Dst: unpack_float
      Src: /src/Python-3.8.3/Modules/_struct.c:847,1
    - Dst: unpack_double
      Src: /src/Python-3.8.3/Modules/_struct.c:853,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:859,1
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:868,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:873,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:876,1
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:892,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:899,1
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:912,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:920,1
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:928,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:936,1
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:943,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:949,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:950,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:951,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_struct.c:955,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:961,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:962,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:963,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_struct.c:967,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_struct.c:974,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1017,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1029,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1044,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1056,1
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:1062,1
    - Dst: unpack_float
      Src: /src/Python-3.8.3/Modules/_struct.c:1068,1
    - Dst: unpack_double
      Src: /src/Python-3.8.3/Modules/_struct.c:1074,1
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:1083,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1088,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1091,1
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:1107,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1114,1
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:1127,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:1130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1135,1
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:1143,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:1146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1151,1
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:1158,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:1164,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1166,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_struct.c:1170,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:1176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1178,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_struct.c:1182,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1245,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1287,1
    - Dst: whichtable
      Src: /src/Python-3.8.3/Modules/_struct.c:1289,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Modules/_struct.c:1296,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_struct.c:1296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1310,1
    - Dst: getentry
      Src: /src/Python-3.8.3/Modules/_struct.c:1318,1
    - Dst: align
      Src: /src/Python-3.8.3/Modules/_struct.c:1330,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_struct.c:1342,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/_struct.c:1348,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_struct.c:1350,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_struct.c:1355,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Modules/_struct.c:1361,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_struct.c:1361,1
    - Dst: getentry
      Src: /src/Python-3.8.3/Modules/_struct.c:1371,1
    - Dst: align
      Src: /src/Python-3.8.3/Modules/_struct.c:1373,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1400,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1410,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_struct.c:1412,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1415,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1443,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_struct.c:1444,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1450,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1454,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1455,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1458,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1462,1
    - Dst: prepare_s
      Src: /src/Python-3.8.3/Modules/_struct.c:1464,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_struct.c:1472,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_struct.c:1474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1476,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1477,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_struct.c:1484,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1495,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1500,1
    - Dst: formatdef*::unpack
      Src: /src/Python-3.8.3/Modules/_struct.c:1502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_struct.c:1506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1513,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1536,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1538,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1543,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1567,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1571,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1579,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1589,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1599,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_struct.c:1617,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1618,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1619,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_struct.c:1620,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_struct.c:1626,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_struct.c:1627,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1639,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_struct.c:1655,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1656,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1659,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1660,1
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/Python-3.8.3/Modules/_struct.c:1667,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1717,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1720,1
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Modules/_struct.c:1725,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_struct.c:1729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1730,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1738,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1741,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_struct.c:1766,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1778,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1779,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1780,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1785,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1786,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1789,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1790,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:1795,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1800,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1801,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1802,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1807,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1808,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1811,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1812,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:1817,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_struct.c:1820,1
    - Dst: formatdef*::pack
      Src: /src/Python-3.8.3/Modules/_struct.c:1822,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1823,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:1823,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1824,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:1838,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1853,1
    - Dst: PyStruct_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1853,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1854,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1857,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1863,1
    - Dst: s_pack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1868,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1868,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1869,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:1876,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1893,1
    - Dst: PyStruct_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1893,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1894,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1898,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1902,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1906,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_struct.c:1914,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1916,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1919,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1920,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1921,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1929,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1933,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1939,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1943,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1952,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1953,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1955,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1963,1
    - Dst: s_pack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1968,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1969,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1973,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1980,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1980,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1981,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1987,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:1990,1
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1999,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1999,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:2002,1
    - Dst: PyVarObject_HEAD_INIT
      Src: /src/Python-3.8.3/Modules/_struct.c:2027,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2080,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_struct.c:2086,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_struct.c:2091,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2093,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:2097,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_struct.c:2101,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:2103,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Modules/_struct.c:2104,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_struct.c:2106,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_struct.c:2107,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_struct.c:2124,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:2145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:2158,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/_struct.c:2163,1
    - Dst: s_pack
      Src: /src/Python-3.8.3/Modules/_struct.c:2166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2167,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:2171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:2186,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/_struct.c:2191,1
    - Dst: s_pack_into
      Src: /src/Python-3.8.3/Modules/_struct.c:2194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2195,1
    - Dst: Struct_unpack_impl
      Src: /src/Python-3.8.3/Modules/_struct.c:2217,1
    - Dst: Struct_unpack_from_impl
      Src: /src/Python-3.8.3/Modules/_struct.c:2240,1
    - Dst: Struct_iter_unpack
      Src: /src/Python-3.8.3/Modules/_struct.c:2263,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/_struct.c:2280,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_struct.c:2328,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:2332,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_struct.c:2333,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_struct.c:2336,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_struct.c:2383,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2388,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_struct.c:2389,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2391,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_struct.c:2392,1
    CyclomaticComplexity: 207
    EdgeCount: 207
    ICount: 795
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts:
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (PyStruct_Check(self))
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (PyStruct_Check(self))
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (soself->s_size >= 0)
      pos:
        line_end: 1952
        line_start: 1952
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (self->index + self->so->s_size <= self->buf.len)
      pos:
        line_end: 1658
        line_start: 1658
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (buffer.len >= 0)
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (offset >= 0)
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 2395
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 2395
    functionName: np_short
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - s_pack
    - PyObject_ClearWeakRefs
    - getentry
    - tp_alloc
    - PyLong_FromUnsignedLong
    - s_unpack_internal
    - PyDict_Clear
    - PyDict_GetItemWithError
    - PyModule_Create
    - _PyLong_AsByteArray
    - PyErr_Clear
    - _PyObject_SIZE
    - PyByteArray_Check
    - PyType_Ready
    - PyUnicode_FromStringAndSize
    - PyErr_NoMemory
    - PyBytes_Check
    - get_ulonglong
    - PyObject_IsTrue
    - PyNumber_AsSsize_t
    - PyObject_GC_UnTrack
    - PyTuple_SET_ITEM
    - PyDoc_STRVAR
    - prepare_s
    - PyLong_AsVoidPtr
    - PyByteArray_GET_SIZE
    - PyDict_SetItem
    - PyBool_FromLong
    - Struct_unpack_impl
    - PyBytes_FromStringAndSize
    - cache_struct_converter
    - assert
    - PyMem_FREE
    - PyType_GenericAlloc
    - PyLong_Check
    - Py_DECREF
    - formatdef*::pack
    - unpack_halffloat
    - Py_SETREF
    - unpack_double
    - get_size_t
    - PyErr_SetString
    - PyObject_GC_Del
    - Py_CLEAR
    - align
    - get_ulong
    - PyLong_FromLongLong
    - PyByteArray_AS_STRING
    - Py_SAFE_DOWNCAST
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyStruct_Check
    - Py_INCREF
    - PyErr_ExceptionMatches
    - pack_halffloat
    - get_longlong
    - Py_TYPE
    - formatdef*::unpack
    - Struct_unpack_from_impl
    - Py_STRINGIFY
    - PyTuple_New
    - PyLong_FromUnsignedLongLong
    - memcpy
    - PyDict_New
    - PyUnicode_AsASCIIString
    - get_long
    - PyArg_Parse
    - PyObject_CallFunctionObjArgs
    - PyBuffer_Release
    - PyUnicode_Check
    - PyObject_GetBuffer
    - PyLong_FromSsize_t
    - RANGE_ERROR
    - s_pack_internal
    - _PyFloat_Pack4
    - PyErr_NewException
    - whichtable
    - Py_CHARMASK
    - unpack_float
    - PyVarObject_HEAD_INIT
    - PyDict_GET_SIZE
    - Py_VISIT
    - get_pylong
    - PyErr_Format
    - Py_XDECREF
    - memset
    - PyMem_MALLOC
    - _PyFloat_Pack8
    - PyBytes_GET_SIZE
    - get_ssize_t
    - PyBytes_AS_STRING
    - s_pack_into
    - Py_ISSPACE
    - Struct_iter_unpack
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int np_short(char *p, PyObject *v, const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:585,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:588,1
    - Dst: Py_STRINGIFY
      Src: /src/Python-3.8.3/Modules/_struct.c:590,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 596
    functionName: np_ushort
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_STRINGIFY
    - memcpy
    - PyErr_SetString
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_ushort(char *p, PyObject *v, const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:603,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:607,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:610,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: np_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - memcpy
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_int(char *p, PyObject *v, const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:619,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:624,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 628
    functionName: np_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - RANGE_ERROR
    - get_ulong
    linkageType: ''
    returnType: int
    signature: int np_uint(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:634,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 638
    functionName: np_long
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_long
    linkageType: ''
    returnType: int
    signature: int np_long(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:644,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: np_ulong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_ulong
    linkageType: ''
    returnType: int
    signature: int np_ulong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ssize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:654,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 658
    functionName: np_ssize_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_ssize_t
    linkageType: ''
    returnType: int
    signature: int np_ssize_t(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_size_t
      Src: /src/Python-3.8.3/Modules/_struct.c:664,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 668
    functionName: np_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_size_t
    linkageType: ''
    returnType: int
    signature: int np_size_t(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_longlong
      Src: /src/Python-3.8.3/Modules/_struct.c:674,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 678
    functionName: np_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_longlong
    - memcpy
    linkageType: ''
    returnType: int
    signature: int np_longlong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulonglong
      Src: /src/Python-3.8.3/Modules/_struct.c:684,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: np_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_ulonglong
    linkageType: ''
    returnType: int
    signature: int np_ulonglong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_struct.c:696,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 702
    functionName: np_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - memcpy
    linkageType: ''
    returnType: int
    signature: int np_bool(char *p, PyObject *v, const formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:708,1
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 712
    functionName: np_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int np_halffloat(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:717,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:718,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:719,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 725
    functionName: np_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int np_float(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:730,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:731,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:732,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 738
    functionName: np_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int np_double(char *p, PyObject *v, const formatdef *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:745,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:748,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:748,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_struct.c:749,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:751,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 747
        line_start: 747
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 755
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 755
    functionName: np_void_p
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - memcpy
    - PyLong_AsVoidPtr
    - get_pylong
    - assert
    linkageType: ''
    returnType: int
    signature: int np_void_p(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 797
    functionName: bu_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_int(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: bu_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_uint(const char *p, const formatdef *f)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 824
    functionName: bu_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_longlong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 836
    functionName: bu_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_ulonglong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 842
    functionName: bu_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_halffloat(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_float
      Src: /src/Python-3.8.3/Modules/_struct.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 2
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: bu_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_float(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_double
      Src: /src/Python-3.8.3/Modules/_struct.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: bu_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_double
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_double(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: bu_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bu_bool(const char *p, const formatdef *f)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:868,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:873,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:876,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 862
    functionDepth: 1
    functionLinenumber: 862
    functionLinenumberEnd: 884
    functionName: bp_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int bp_int(char *p, PyObject *v, const formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:892,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 906
    functionName: bp_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    linkageType: ''
    returnType: int
    signature: int bp_uint(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:912,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 922
    functionName: bp_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - Py_DECREF
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: int
    signature: int bp_longlong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:928,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 938
    functionName: bp_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - Py_DECREF
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: int
    signature: int bp_ulonglong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: bp_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int bp_halffloat(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:949,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:950,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:951,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_struct.c:955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 956
    functionName: bp_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _PyFloat_Pack4
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bp_float(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:961,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:962,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:963,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_struct.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 968
    functionName: bp_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - _PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int bp_double(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_struct.c:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 979
    functionName: bp_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int bp_bool(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1018
    functionName: lu_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_int(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1030
    functionName: lu_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_uint(const char *p, const formatdef *f)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1045
    functionName: lu_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_longlong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_struct.c:1056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    functionName: lu_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_ulonglong(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1059
    functionDepth: 2
    functionLinenumber: 1059
    functionLinenumberEnd: 1063
    functionName: lu_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_halffloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_halffloat(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_float
      Src: /src/Python-3.8.3/Modules/_struct.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1065
    functionDepth: 2
    functionLinenumber: 1065
    functionLinenumberEnd: 1069
    functionName: lu_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_float(const char *p, const formatdef *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_double
      Src: /src/Python-3.8.3/Modules/_struct.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - f
    argTypes:
    - char*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 2
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: lu_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - unpack_double
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lu_double(const char *p, const formatdef *f)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_struct.c:1083,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1088,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1091,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1099
    functionName: lp_int
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_long
    linkageType: ''
    returnType: int
    signature: int lp_int(char *p, PyObject *v, const formatdef *f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_struct.c:1107,1
    - Dst: RANGE_ERROR
      Src: /src/Python-3.8.3/Modules/_struct.c:1114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1121
    functionName: lp_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - RANGE_ERROR
    - get_ulong
    linkageType: ''
    returnType: int
    signature: int lp_uint(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:1127,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:1130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1137
    functionName: lp_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - Py_DECREF
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: int
    signature: int lp_longlong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pylong
      Src: /src/Python-3.8.3/Modules/_struct.c:1143,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_struct.c:1146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1153
    functionName: lp_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - get_pylong
    - Py_DECREF
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: int
    signature: int lp_ulonglong(char *p, PyObject *v, const formatdef *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pack_halffloat
      Src: /src/Python-3.8.3/Modules/_struct.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 2
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: lp_halffloat
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - pack_halffloat
    linkageType: ''
    returnType: int
    signature: int lp_halffloat(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:1164,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1166,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_struct.c:1170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1171
    functionName: lp_float
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _PyFloat_Pack4
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int lp_float(char *p, PyObject *v, const formatdef *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_struct.c:1176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1178,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_struct.c:1182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - v
    - f
    argTypes:
    - char*
    - PyObject*
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1173
    functionDepth: 1
    functionLinenumber: 1173
    functionLinenumberEnd: 1183
    functionName: lp_double
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyErr_SetString
    - _PyFloat_Pack8
    linkageType: ''
    returnType: int
    signature: int lp_double(char *p, PyObject *v, const formatdef *f)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - pfmt
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1232
    functionName: whichtable
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      whichtable(const char **pfmt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - f
    argTypes:
    - int
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1247
    functionName: getentry
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: formatdef
    signature: 'formatdef *

      getentry(int c, const formatdef *f)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - size
    - c
    - e
    argTypes:
    - Py_ssize_t
    - char
    - formatdef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1266
    functionName: align
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t align(Py_ssize_t size, char c, const formatdef *e)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1287,1
    - Dst: whichtable
      Src: /src/Python-3.8.3/Modules/_struct.c:1289,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Modules/_struct.c:1296,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_struct.c:1296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1310,1
    - Dst: getentry
      Src: /src/Python-3.8.3/Modules/_struct.c:1318,1
    - Dst: align
      Src: /src/Python-3.8.3/Modules/_struct.c:1330,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_struct.c:1342,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/_struct.c:1348,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_struct.c:1350,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_struct.c:1355,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Modules/_struct.c:1361,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_struct.c:1361,1
    - Dst: getentry
      Src: /src/Python-3.8.3/Modules/_struct.c:1371,1
    - Dst: align
      Src: /src/Python-3.8.3/Modules/_struct.c:1373,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1400,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 107
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStructObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1403
    functionName: prepare_s
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Py_ISSPACE
    - PyMem_MALLOC
    - PyErr_NoMemory
    - align
    - getentry
    - PyErr_SetString
    - PyBytes_AS_STRING
    - whichtable
    - PyMem_FREE
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int prepare_s(PyStructObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1410,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_struct.c:1412,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 1409
        line_start: 1409
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1422
      start: 1405
    functionDepth: 1
    functionLinenumber: 1405
    functionLinenumberEnd: 1422
    functionName: s_new
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 3
    functionsReached:
    - assert
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1443,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_struct.c:1444,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1450,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1454,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1455,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1458,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1462,1
    - Dst: prepare_s
      Src: /src/Python-3.8.3/Modules/_struct.c:1464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - format
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1437
    functionDepth: 3
    functionLinenumber: 1437
    functionLinenumberEnd: 1466
    functionName: Struct___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - prepare_s
    - Py_INCREF
    - PyUnicode_AsASCIIString
    - PyBytes_Check
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int Struct___init___impl(PyStructObject *self, PyObject *format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_struct.c:1472,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_struct.c:1474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1476,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyStructObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1478
    functionName: s_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyMem_FREE
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void s_dealloc(PyStructObject *s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_struct.c:1484,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1495,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1500,1
    - Dst: formatdef*::unpack
      Src: /src/Python-3.8.3/Modules/_struct.c:1502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_struct.c:1506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - soself
    - startfrom
    argTypes:
    - PyStructObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1515
    functionName: s_unpack_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - formatdef*::unpack
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_unpack_internal(PyStructObject *soself, const char *startfrom)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1536,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1538,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyStructObject*
    - Py_buffer*
    assertStmts:
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1544
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1544
    functionName: Struct_unpack_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - assert
    - PyErr_Format
    - s_unpack_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack_impl(PyStructObject *self, Py_buffer *buffer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1567,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1571,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1579,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1589,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - buffer
    - offset
    argTypes:
    - PyStructObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts:
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1600
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1600
    functionName: Struct_unpack_from_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - assert
    - PyErr_Format
    - s_unpack_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nStruct_unpack_from_impl(PyStructObject *self, Py_buffer
      *buffer,\n                        Py_ssize_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_struct.c:1617,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1618,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1619,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_struct.c:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - unpackiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1621
    functionName: unpackiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void unpackiter_dealloc(unpackiterobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_struct.c:1626,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_struct.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - unpackiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1629
    functionName: unpackiter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int unpackiter_traverse(unpackiterobject *self, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - unpackiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1640
    functionName: unpackiter_len
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpackiter_len(unpackiterobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_struct.c:1655,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1656,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1659,1
    - Dst: s_unpack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - unpackiterobject*
    assertStmts:
    - condition: (self->index + self->so->s_size <= self->buf.len)
      pos:
        line_end: 1658
        line_start: 1658
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1664
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1664
    functionName: unpackiter_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - assert
    - s_unpack_internal
    - Py_CLEAR
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpackiter_iternext(unpackiterobject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1717,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1720,1
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Modules/_struct.c:1725,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_struct.c:1729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1730,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1738,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts:
    - condition: (self->s_codes != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1745
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1745
    functionName: Struct_iter_unpack
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyErr_Format
    - assert
    - PyObject_GetBuffer
    - PyType_GenericAlloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_iter_unpack(PyStructObject *self, PyObject *buffer)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_struct.c:1766,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1778,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1779,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1780,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1785,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1786,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1789,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1790,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:1795,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1800,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1801,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1802,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1807,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1808,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1811,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1812,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_struct.c:1817,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_struct.c:1820,1
    - Dst: formatdef*::pack
      Src: /src/Python-3.8.3/Modules/_struct.c:1822,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1823,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_struct.c:1823,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:1824,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 4
    argNames:
    - soself
    - args
    - offset
    - buf
    argTypes:
    - PyStructObject*
    - PyObject**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1835
    functionName: s_pack_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyLong_Check
    - memcpy
    - formatdef*::pack
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyBytes_AS_STRING
    - memset
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int s_pack_internal(PyStructObject *soself, PyObject *const *args,
      int offset, char* buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1853,1
    - Dst: PyStruct_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1853,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1854,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1857,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1863,1
    - Dst: s_pack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1868,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1868,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:1869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (PyStruct_Check(self))
      pos:
        line_end: 1852
        line_start: 1852
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1874
      start: 1845
    functionDepth: 2
    functionLinenumber: 1845
    functionLinenumberEnd: 1874
    functionName: s_pack
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - s_pack_internal
    - PyStruct_Check
    - Py_DECREF
    - PyErr_Format
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1893,1
    - Dst: PyStruct_Check
      Src: /src/Python-3.8.3/Modules/_struct.c:1893,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1894,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1898,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1902,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1906,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_struct.c:1914,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1916,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1919,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:1920,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1921,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1929,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1933,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1939,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1943,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1952,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_struct.c:1953,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_struct.c:1955,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1963,1
    - Dst: s_pack_internal
      Src: /src/Python-3.8.3/Modules/_struct.c:1968,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1969,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_struct.c:1973,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (soself->s_codes != NULL)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (soself->s_size >= 0)
      pos:
        line_end: 1952
        line_start: 1952
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (buffer.len >= 0)
      pos:
        line_end: 1915
        line_start: 1915
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (PyStruct_Check(self))
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - condition: (offset >= 0)
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/Python-3.8.3/Modules/_struct.c
    constantsTouched: []
    func_position:
      end: 1975
      start: 1884
    functionDepth: 2
    functionLinenumber: 1884
    functionLinenumberEnd: 1975
    functionName: s_pack_into
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - PyStruct_Check
    - s_pack_internal
    - PyArg_Parse
    - PyErr_Format
    - PyBuffer_Release
    - assert
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_struct.c:1980,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_struct.c:1980,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyStructObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 1982
    functionName: s_get_format
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_get_format(PyStructObject *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyStructObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 1988
    functionName: s_get_size
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_get_size(PyStructObject *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:1999,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:1999,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_struct.c:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyStructObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1993
    functionDepth: 1
    functionLinenumber: 1993
    functionLinenumberEnd: 2003
    functionName: s_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_sizeof(PyStructObject *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2018
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2080,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_struct.c:2086,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_struct.c:2091,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2093,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_struct.c:2097,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_struct.c:2101,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_struct.c:2103,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Modules/_struct.c:2104,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_struct.c:2106,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_struct.c:2107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - fmt
    - ptr
    argTypes:
    - PyObject*
    - PyStructObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2112
    functionName: cache_struct_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyDict_New
    - PyObject_CallFunctionObjArgs
    - PyDict_SetItem
    - PyErr_Clear
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int cache_struct_converter(PyObject *fmt, PyStructObject **ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_struct.c:2124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2126
    functionName: _clearcache_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _clearcache_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - s_object
    argTypes:
    - PyObject*
    - PyStructObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2138
    functionDepth: 0
    functionLinenumber: 2138
    functionLinenumberEnd: 2143
    functionName: calcsize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t calcsize_impl(PyObject *module, PyStructObject *s_object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:2158,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/_struct.c:2163,1
    - Dst: s_pack
      Src: /src/Python-3.8.3/Modules/_struct.c:2166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2151
    functionDepth: 3
    functionLinenumber: 2151
    functionLinenumberEnd: 2169
    functionName: pack
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 4
    functionsReached:
    - s_pack
    - cache_struct_converter
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_struct.c:2186,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/_struct.c:2191,1
    - Dst: s_pack_into
      Src: /src/Python-3.8.3/Modules/_struct.c:2194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2179
    functionDepth: 3
    functionLinenumber: 2179
    functionLinenumberEnd: 2197
    functionName: pack_into
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - cache_struct_converter
    - s_pack_into
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pack_into(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_unpack_impl
      Src: /src/Python-3.8.3/Modules/_struct.c:2217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2213
    functionDepth: 3
    functionLinenumber: 2213
    functionLinenumberEnd: 2218
    functionName: unpack_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 2
    functionsReached:
    - Struct_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_impl(PyObject *module, PyStructObject *s_object, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_unpack_from_impl
      Src: /src/Python-3.8.3/Modules/_struct.c:2240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - s_object
    - buffer
    - offset
    argTypes:
    - PyObject*
    - PyStructObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2235
    functionDepth: 3
    functionLinenumber: 2235
    functionLinenumberEnd: 2241
    functionName: unpack_from_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 2
    functionsReached:
    - Struct_unpack_from_impl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_from_impl(PyObject *module, PyStructObject *s_object,\n
      \                Py_buffer *buffer, Py_ssize_t offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Struct_iter_unpack
      Src: /src/Python-3.8.3/Modules/_struct.c:2263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - s_object
    - buffer
    argTypes:
    - PyObject*
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2258
    functionDepth: 2
    functionLinenumber: 2258
    functionLinenumberEnd: 2264
    functionName: iter_unpack_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Struct_iter_unpack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\niter_unpack_impl(PyObject *module, PyStructObject *s_object,\n
      \                PyObject *buffer)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_struct.c:2328,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_struct.c:2332,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_struct.c:2333,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_struct.c:2336,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_struct.c:2383,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2388,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_struct.c:2389,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_struct.c:2391,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_struct.c:2392,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2395
    functionName: PyInit__struct
    functionSourceFile: /src/Python-3.8.3/Modules/_struct.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__struct(void)
  - 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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: ROLc
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROLc(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: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: STORE32L
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE32L(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: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: LOAD32L
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD32L(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: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: STORE64L
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64L(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: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: F
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 902
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: G
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 328
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: H
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: I
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - M
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: FF
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF(a,b,c,d,M,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - M
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: GG
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG(a,b,c,d,M,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - M
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: HH
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HH(a,b,c,d,M,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - M
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: II
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: II(a,b,c,d,M,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:126,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:127,1
    - Dst: LOAD32L
      Src: /src/Python-3.8.3/Modules/md5module.c:131,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:140,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:141,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:142,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:143,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:144,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:145,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:146,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:147,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:148,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:149,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:150,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:151,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:152,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:153,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:154,1
    - Dst: FF
      Src: /src/Python-3.8.3/Modules/md5module.c:155,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:156,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:157,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:158,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:159,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:160,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:161,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:162,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:163,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:164,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:165,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:166,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:167,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:168,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:169,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:170,1
    - Dst: GG
      Src: /src/Python-3.8.3/Modules/md5module.c:171,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:172,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:173,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:174,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:175,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:176,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:177,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:178,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:179,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:180,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:181,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:182,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:183,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:184,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:185,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:186,1
    - Dst: HH
      Src: /src/Python-3.8.3/Modules/md5module.c:187,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:188,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:189,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:190,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:191,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:192,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:193,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:194,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:195,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:196,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:197,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:198,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:199,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:200,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:201,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:202,1
    - Dst: II
      Src: /src/Python-3.8.3/Modules/md5module.c:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 77
    argCount: 2
    argNames:
    - md5
    - buf
    argTypes:
    - struct md5_state*
    - unsigned char*
    assertStmts:
    - condition: (buf != NULL)
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - condition: (md5 != NULL)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 209
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 209
    functionName: md5_compress
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - LOAD32L
    - GG
    - HH
    - II
    - assert
    - FF
    linkageType: ''
    returnType: void
    signature: void md5_compress(struct md5_state *md5, const unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - md5
    argTypes:
    - struct md5_state*
    assertStmts:
    - condition: (md5 != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/Python-3.8.3/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: md5_init
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void md5_init(struct md5_state *md5)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:239,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:240,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:241,1
    - Dst: md5_compress
      Src: /src/Python-3.8.3/Modules/md5module.c:245,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/md5module.c:250,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/md5module.c:251,1
    - Dst: md5_compress
      Src: /src/Python-3.8.3/Modules/md5module.c:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - md5
    - in
    - inlen
    argTypes:
    - struct md5_state*
    - unsigned char*
    - Py_ssize_t
    assertStmts:
    - condition: (md5 != NULL)
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - condition: (in != NULL)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - condition: (md5->curlen <= sizeof(md5->buf))
      pos:
        line_end: 240
        line_start: 240
        source_file: /src/Python-3.8.3/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 262
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 262
    functionName: md5_process
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - md5_compress
    - Py_MIN
    linkageType: ''
    returnType: void
    signature: void md5_process(struct md5_state *md5, const unsigned char *in, Py_ssize_t
      inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:274,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:275,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/md5module.c:276,1
    - Dst: md5_compress
      Src: /src/Python-3.8.3/Modules/md5module.c:292,1
    - Dst: STORE64L
      Src: /src/Python-3.8.3/Modules/md5module.c:302,1
    - Dst: md5_compress
      Src: /src/Python-3.8.3/Modules/md5module.c:303,1
    - Dst: STORE32L
      Src: /src/Python-3.8.3/Modules/md5module.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - md5
    - out
    argTypes:
    - struct md5_state*
    - unsigned char*
    assertStmts:
    - condition: (md5 != NULL)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - condition: (md5->curlen < sizeof(md5->buf))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - condition: (out != NULL)
      pos:
        line_end: 274
        line_start: 274
        source_file: /src/Python-3.8.3/Modules/md5module.c
    constantsTouched: []
    func_position:
      end: 309
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 309
    functionName: md5_done
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - STORE32L
    - assert
    - md5_compress
    - STORE64L
    linkageType: ''
    returnType: void
    signature: void md5_done(struct md5_state *md5, unsigned char *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/md5module.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: newMD5object
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: MD5object
    signature: 'MD5object *

      newMD5object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/md5module.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: MD5_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void MD5_dealloc(PyObject *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newMD5object
      Src: /src/Python-3.8.3/Modules/md5module.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 359
    functionName: MD5Type_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - newMD5object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_copy_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_done
      Src: /src/Python-3.8.3/Modules/md5module.c:375,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/md5module.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 377
    functionName: MD5Type_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - md5_done
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_digest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: md5_done
      Src: /src/Python-3.8.3/Modules/md5module.c:394,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/md5module.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - MD5object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: MD5Type_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - md5_done
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_hexdigest_impl(MD5object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/md5module.c:414,1
    - Dst: md5_process
      Src: /src/Python-3.8.3/Modules/md5module.c:416,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/md5module.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 408
    functionDepth: 3
    functionLinenumber: 408
    functionLinenumberEnd: 420
    functionName: MD5Type_update
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - md5_process
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_update(MD5object *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/md5module.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: MD5_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5_get_block_size(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/md5module.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: MD5_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5_get_name(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/md5module.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: md5_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      md5_get_digest_size(PyObject *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/md5module.c:518,1
    - Dst: newMD5object::newMD5object
      Src: /src/Python-3.8.3/Modules/md5module.c:520,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/md5module.c:522,1
    - Dst: md5_init
      Src: /src/Python-3.8.3/Modules/md5module.c:526,1
    - Dst: hash_state::hash_state
      Src: /src/Python-3.8.3/Modules/md5module.c:526,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/md5module.c:528,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/md5module.c:531,1
    - Dst: md5_process
      Src: /src/Python-3.8.3/Modules/md5module.c:535,1
    - Dst: hash_state::hash_state
      Src: /src/Python-3.8.3/Modules/md5module.c:535,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/md5module.c:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 540
    functionName: _md5_md5_impl
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - hash_state::hash_state
    - md5_init
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - newMD5object::newMD5object
    - md5_process
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _md5_md5_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: insint
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insint(n,v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/md5module.c:573,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/md5module.c:574,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/md5module.c:577,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/md5module.c:581,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/md5module.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 584
    functionName: PyInit__md5
    functionSourceFile: /src/Python-3.8.3/Modules/md5module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__md5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - buffer
    - byteCount
    argTypes:
    - SHA_INT64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: longReverse
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longReverse(SHA_INT64 *buffer, int byteCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:91,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHAobject*
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: SHAcopy
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHAcopy(SHAobject *src, SHAobject *dest)
  - 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: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: ROR64
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR64(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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: Ch
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: Maj
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - 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: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: S
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: R
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 359
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(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: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: Sigma0
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: Sigma1
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: Gamma0
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: Gamma1
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:140,1
    - Dst: longReverse
      Src: /src/Python-3.8.3/Modules/sha512module.c:142,1
    - Dst: Gamma1
      Src: /src/Python-3.8.3/Modules/sha512module.c:146,1
    - Dst: Gamma0
      Src: /src/Python-3.8.3/Modules/sha512module.c:146,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:159,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:160,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:161,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:162,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:163,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:164,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:165,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:166,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:167,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:168,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:169,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:170,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:171,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:172,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:173,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:174,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:175,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:176,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:177,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:178,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:179,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:180,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:181,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:182,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:183,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:184,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:185,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:186,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:187,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:188,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:189,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:190,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:191,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:192,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:193,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:194,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:195,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:196,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:197,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:198,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:199,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:200,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:201,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:202,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:203,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:204,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:205,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:206,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:207,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:208,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:209,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:210,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:211,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:212,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:213,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:214,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:215,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:216,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:217,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:218,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:219,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:220,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:221,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:222,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:223,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:224,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:225,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:226,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:227,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:228,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:229,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:230,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:231,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:232,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:233,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:234,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:235,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:236,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:237,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha512module.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 92
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 247
    functionName: sha512_transform
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - longReverse
    - memcpy
    - RND
    - Gamma0
    - Gamma1
    linkageType: ''
    returnType: void
    signature: void sha512_transform(SHAobject *sha_info)
  - 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: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: RND
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i,ki)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:256,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:257,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:258,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:259,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:260,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:261,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:262,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 268
    functionName: sha512_init
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - Py_ULL
    linkageType: ''
    returnType: void
    signature: void sha512_init(SHAobject *sha_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:273,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:274,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:275,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:276,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:277,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:278,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:279,1
    - Dst: Py_ULL
      Src: /src/Python-3.8.3/Modules/sha512module.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: sha384_init
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - Py_ULL
    linkageType: ''
    returnType: void
    signature: void sha384_init(SHAobject *sha_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:307,1
    - Dst: sha512_transform
      Src: /src/Python-3.8.3/Modules/sha512module.c:312,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:319,1
    - Dst: sha512_transform
      Src: /src/Python-3.8.3/Modules/sha512module.c:322,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha512module.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - sha_info
    - buffer
    - count
    argTypes:
    - SHAobject*
    - SHA_BYTE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 326
    functionName: sha512_update
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - sha512_transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha512_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha512module.c:341,1
    - Dst: sha512_transform
      Src: /src/Python-3.8.3/Modules/sha512module.c:343,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha512module.c:344,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha512module.c:347,1
    - Dst: sha512_transform
      Src: /src/Python-3.8.3/Modules/sha512module.c:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 93
    argCount: 2
    argNames:
    - digest
    - sha_info
    argTypes:
    - unsigned char[]
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 434
    functionName: sha512_final
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - sha512_transform
    - memset
    linkageType: ''
    returnType: void
    signature: void sha512_final(unsigned char digest[SHA_DIGESTSIZE], SHAobject *sha_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/sha512module.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: newSHA384object
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHAobject
    signature: 'SHAobject *

      newSHA384object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/sha512module.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: newSHA512object
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHAobject
    signature: 'SHAobject *

      newSHA512object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/sha512module.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: SHA512_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void SHA512_dealloc(PyObject *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: newSHA512object
      Src: /src/Python-3.8.3/Modules/sha512module.c:482,1
    - Dst: newSHA384object
      Src: /src/Python-3.8.3/Modules/sha512module.c:485,1
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha512module.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 491
    functionName: SHA512Type_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - newSHA512object
    - SHAcopy
    - newSHA384object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_copy_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha512module.c:506,1
    - Dst: sha512_final
      Src: /src/Python-3.8.3/Modules/sha512module.c:507,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha512module.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: SHA512Type_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - SHAcopy
    - sha512_final
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_digest_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha512module.c:525,1
    - Dst: sha512_final
      Src: /src/Python-3.8.3/Modules/sha512module.c:526,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/sha512module.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 529
    functionName: SHA512Type_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - SHAcopy
    - sha512_final
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_hexdigest_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha512module.c:546,1
    - Dst: sha512_update
      Src: /src/Python-3.8.3/Modules/sha512module.c:548,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 552
    functionName: SHA512Type_update
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - sha512_update
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_update(SHAobject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/sha512module.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: SHA512_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512_get_block_size(PyObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha512module.c:572,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha512module.c:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: SHA512_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512_get_name(PyObject *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha512module.c:681,1
    - Dst: newSHA512object::newSHA512object
      Src: /src/Python-3.8.3/Modules/sha512module.c:683,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:685,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/sha512module.c:691,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:694,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:699,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 703
    functionName: _sha512_sha512_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA512object::newSHA512object
    - PyErr_Occurred
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha512_sha512_impl(PyObject *module, PyObject *string)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha512module.c:721,1
    - Dst: newSHA384object::newSHA384object
      Src: /src/Python-3.8.3/Modules/sha512module.c:723,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:725,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/sha512module.c:731,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:734,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha512module.c:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 743
    functionName: _sha512_sha384_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA384object::newSHA384object
    - PyBuffer_Release
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha512_sha384_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 758
    functionName: insint
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insint(n,v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha512module.c:777,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/sha512module.c:778,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha512module.c:780,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/sha512module.c:781,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/sha512module.c:784,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/sha512module.c:788,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/sha512module.c:789,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/sha512module.c:790,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/sha512module.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 793
    functionName: PyInit__sha512
    functionSourceFile: /src/Python-3.8.3/Modules/sha512module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PyDate_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PyDate_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyDateTime_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PyDateTime_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: PyTime_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PyTime_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: PyDelta_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PyDelta_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: PyTZInfo_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTZInfo_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PyTZInfo_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTZInfo_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: PyTimezone_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTimezone_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: SET_YEAR
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_YEAR(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: SET_MONTH
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_MONTH(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: SET_DAY
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DAY(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: DATE_SET_HOUR
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_SET_HOUR(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: DATE_SET_MINUTE
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_SET_MINUTE(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: DATE_SET_SECOND
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_SET_SECOND(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: DATE_SET_MICROSECOND
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_SET_MICROSECOND(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: DATE_SET_FOLD
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATE_SET_FOLD(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: TIME_SET_HOUR
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SET_HOUR(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: TIME_SET_MINUTE
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SET_MINUTE(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: TIME_SET_SECOND
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SET_SECOND(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: TIME_SET_MICROSECOND
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SET_MICROSECOND(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: TIME_SET_FOLD
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_SET_FOLD(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: GET_TD_DAYS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_TD_DAYS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: GET_TD_SECONDS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_TD_SECONDS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: GET_TD_MICROSECONDS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_TD_MICROSECONDS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: SET_TD_DAYS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TD_DAYS(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: SET_TD_SECONDS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TD_SECONDS(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: SET_TD_MICROSECONDS
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TD_MICROSECONDS(o, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: HASTZINFO
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASTZINFO(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: GET_TIME_TZINFO
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_TIME_TZINFO(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: GET_DT_TZINFO
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DT_TZINFO(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: MONTH_IS_SANE
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MONTH_IS_SANE(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - RESULT
    - ','
    - I
    - ','
    - J
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: SIGNED_ADD_OVERFLOWED
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNED_ADD_OVERFLOWED(RESULT, I, J)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:170,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - x
    - y
    - r
    argTypes:
    - int
    - int
    - int*
    assertStmts:
    - condition: (y > 0)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (0 <= *r && *r < y)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: divmod
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int divmod(int x, int y, int *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_DivmodNear
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:190,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:193,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: divide_nearest
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_ITEM
    - Py_INCREF
    - _PyLong_DivmodNear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      divide_nearest(PyObject *m, PyObject *n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: is_leap
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_leap(int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:235,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:236,1
    - Dst: is_leap
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: days_in_month
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - is_leap
    linkageType: ''
    returnType: int
    signature: int days_in_month(int year, int month)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:249,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:250,1
    - Dst: is_leap
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts:
    - condition: (month >= 1)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (month <= 12)
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 255
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 255
    functionName: days_before_month
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - is_leap
    linkageType: ''
    returnType: int
    signature: int days_before_month(int year, int month)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts:
    - condition: (year >= 1)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 270
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 270
    functionName: days_before_year
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int days_before_year(int year)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:307,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:336,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:348,1
    - Dst: is_leap
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:348,1
    - Dst: days_in_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:354,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:357,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:358,1
    - Dst: days_in_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - ordinal
    - year
    - month
    - day
    argTypes:
    - int
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (ordinal >= 1)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (n == 0)
      pos:
        line_end: 335
        line_start: 335
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (leapyear == is_leap(*year))
      pos:
        line_end: 347
        line_start: 347
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (0 <= n)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (n < days_in_month(*year, *month))
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 361
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 361
    functionName: ord_to_ymd
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - days_in_month
    - is_leap
    linkageType: ''
    returnType: void
    signature: void ord_to_ymd(int ordinal, int *year, int *month, int *day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: days_before_year
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:367,1
    - Dst: days_before_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: ymd_to_ord
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_before_month
    - days_before_year
    linkageType: ''
    returnType: int
    signature: int ymd_to_ord(int year, int month, int day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: weekday
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    linkageType: ''
    returnType: int
    signature: int weekday(int year, int month, int day)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - year
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: iso_week1_monday
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ymd_to_ord
    linkageType: ''
    returnType: int
    signature: int iso_week1_monday(int year)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - days
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 410
    functionName: check_delta_day_range
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_delta_day_range(int days)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:424,1
    - Dst: days_in_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:428,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 434
    functionName: check_date_args
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - days_in_month
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_date_args(int year, int month, int day)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:443,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:448,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:453,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:458,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:463,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - h
    - m
    - s
    - us
    - fold
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 468
    functionName: check_time_args
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_time_args(int h, int m, int s, int us, int fold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:483,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:484,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:486,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:488,1
    - Dst: SIGNED_ADD_OVERFLOWED
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:488,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - hi
    - lo
    - factor
    argTypes:
    - int*
    - int*
    - int
    assertStmts:
    - condition: (factor > 0)
      pos:
        line_end: 482
        line_start: 482
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (! SIGNED_ADD_OVERFLOWED(new_hi, *hi, num_hi))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (lo != hi)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (0 <= *lo && *lo < factor)
      pos:
        line_end: 490
        line_start: 490
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 492
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 492
    functionName: normalize_pair
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - SIGNED_ADD_OVERFLOWED
    - divmod
    linkageType: ''
    returnType: void
    signature: void normalize_pair(int *hi, int *lo, int factor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:504,1
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:511,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:517,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 3
    argNames:
    - d
    - s
    - us
    argTypes:
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (0 <= *s && *s < 24*3600)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (0 <= *us && *us < 1000000)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 519
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 519
    functionName: normalize_d_s_us
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - assert
    - normalize_pair
    linkageType: ''
    returnType: void
    signature: void normalize_d_s_us(int *d, int *s, int *us)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:536,1
    - Dst: days_in_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:543,1
    - Dst: days_in_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:552,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:569,1
    - Dst: ord_to_ymd
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:574,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:579,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:580,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:584,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (1 <= *m && *m <= 12)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (*m > 0)
      pos:
        line_end: 578
        line_start: 578
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (*d > 0)
      pos:
        line_end: 579
        line_start: 579
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 588
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 588
    functionName: normalize_y_m_d
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ord_to_ymd
    - ymd_to_ord
    - days_in_month
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int normalize_y_m_d(int *y, int *m, int *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize_y_m_d
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: normalize_date
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_y_m_d
    linkageType: ''
    returnType: int
    signature: int normalize_date(int *year, int *month, int *day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:608,1
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:609,1
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:610,1
    - Dst: normalize_pair
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:611,1
    - Dst: normalize_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - microsecond
    argTypes:
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 613
    functionName: normalize_datetime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_date
    - normalize_pair
    linkageType: ''
    returnType: int
    signature: "int normalize_datetime(int *year, int *month, int *day,\n                   int
      *hour, int *minute, int *second,\n                   int *microsecond)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:642,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:646,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 649
    functionName: time_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_alloc(PyTypeObject *type, Py_ssize_t aware)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:657,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:661,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - aware
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: datetime_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_alloc(PyTypeObject *type, Py_ssize_t aware)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:676,1
    - Dst: SET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:677,1
    - Dst: SET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - self
    - y
    - m
    - d
    argTypes:
    - PyDateTime_Date*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: set_date_fields
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - SET_DAY
    - SET_YEAR
    - SET_MONTH
    linkageType: ''
    returnType: void
    signature: void set_date_fields(PyDateTime_Date *self, int y, int m, int d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - var
    - num_digits
    argTypes:
    - char*
    - int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 698
    functionName: parse_digits
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      parse_digits(const char *ptr, int *var, size_t num_digits)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:711,1
    - Dst: parse_digits
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:720,1
    - Dst: parse_digits
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:729,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - dtstr
    - year
    - month
    - day
    argTypes:
    - char*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 735
    functionName: parse_isoformat_date
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_digits
    linkageType: ''
    returnType: int
    signature: int parse_isoformat_date(const char *dtstr, int *year, int *month,
      int *day)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: parse_digits
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:747,1
    - Dst: parse_digits
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:773,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 6
    argNames:
    - tstr
    - tstr_end
    - hour
    - minute
    - second
    - microsecond
    argTypes:
    - char*
    - char*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 784
    functionName: parse_hh_mm_ss_ff
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_digits
    linkageType: ''
    returnType: int
    signature: "int parse_hh_mm_ss_ff(const char *tstr, const char *tstr_end, int
      *hour,\n                  int *minute, int *second, int *microsecond)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_hh_mm_ss_ff
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:810,1
    - Dst: parse_hh_mm_ss_ff
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:840,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 8
    argNames:
    - dtstr
    - dtlen
    - hour
    - minute
    - second
    - microsecond
    - tzoffset
    - tzmicrosecond
    argTypes:
    - char*
    - size_t
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 847
    functionName: parse_isoformat_time
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - parse_hh_mm_ss_ff
    linkageType: ''
    returnType: int
    signature: "int parse_isoformat_time(const char *dtstr, size_t dtlen, int *hour,
      int *minute,\n                     int *second, int *microsecond, int *tzoffset,\n
      \                    int *tzmicrosecond)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_date_args
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:859,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:863,1
    - Dst: set_date_fields
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - year
    - month
    - day
    - type
    argTypes:
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 867
    functionName: new_date_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - set_date_fields
    - check_date_args
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_date_ex(int year, int month, int day, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - year
    - ','
    - month
    - ','
    - day
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: new_date
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_date(year, month, day)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: new_date_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:883,1
    - Dst: new_datetime_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:886,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - year
    - month
    - day
    - cls
    argTypes:
    - int
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 877
    functionDepth: 4
    functionLinenumber: 877
    functionLinenumberEnd: 894
    functionName: new_date_subclass_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_datetime_ex
    - new_date_ex
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_date_subclass_ex(int year, int month, int day, PyObject *cls)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_date_args
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:904,1
    - Dst: check_time_args
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:907,1
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:910,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:914,1
    - Dst: set_date_fields
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:917,1
    - Dst: DATE_SET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:918,1
    - Dst: DATE_SET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:919,1
    - Dst: DATE_SET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:920,1
    - Dst: DATE_SET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:921,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:923,1
    - Dst: DATE_SET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:926,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 10
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - fold
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 929
    functionName: new_datetime_ex2
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_SET_SECOND
    - set_date_fields
    - check_tzinfo_subclass
    - DATE_SET_FOLD
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - DATE_SET_MICROSECOND
    - check_time_args
    - check_date_args
    - DATE_SET_HOUR
    - DATE_SET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_datetime_ex2(int year, int month, int day, int hour,
      int minute,\n                 int second, int usecond, PyObject *tzinfo, int
      fold, PyTypeObject *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 937
    functionName: new_datetime_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - new_datetime_ex2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_datetime_ex(int year, int month, int day, int hour,
      int minute,\n                int second, int usecond, PyObject *tzinfo, PyTypeObject
      *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - y
    - ','
    - m
    - ','
    - d
    - ','
    - hh
    - ','
    - mm
    - ','
    - ss
    - ','
    - us
    - ','
    - tzinfo
    - ','
    - fold
    - )
    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: 942
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: new_datetime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_datetime(y, m, d, hh, mm, ss, us, tzinfo, fold)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:950,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 10
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - fold
    - cls
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 966
    functionName: new_datetime_subclass_fold_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_datetime
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_datetime_subclass_fold_ex(int year, int month, int
      day, int hour, int minute,\n                              int second, int usecond,
      PyObject *tzinfo,\n                              int fold, PyObject *cls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - cls
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: new_datetime_subclass_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_datetime_subclass_fold_ex
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_datetime_subclass_ex(int year, int month, int day,
      int hour, int minute,\n                              int second, int usecond,
      PyObject *tzinfo,\n                              PyObject *cls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_time_args
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:985,1
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:988,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:992,1
    - Dst: TIME_SET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:996,1
    - Dst: TIME_SET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:997,1
    - Dst: TIME_SET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:998,1
    - Dst: TIME_SET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:999,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1001,1
    - Dst: TIME_SET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 7
    argNames:
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - fold
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1007
    functionName: new_time_ex2
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - PyTypeObject*::tp_alloc
    - TIME_SET_SECOND
    - Py_INCREF
    - check_time_args
    - TIME_SET_MINUTE
    - TIME_SET_FOLD
    - TIME_SET_MICROSECOND
    - TIME_SET_HOUR
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_time_ex2(int hour, int minute, int second, int usecond,\n
      \            PyObject *tzinfo, int fold, PyTypeObject *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_time_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hour
    - minute
    - second
    - usecond
    - tzinfo
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1014
    functionName: new_time_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time_ex2
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_time_ex(int hour, int minute, int second, int usecond,\n
      \           PyObject *tzinfo, PyTypeObject *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - hh
    - ','
    - mm
    - ','
    - ss
    - ','
    - us
    - ','
    - tzinfo
    - ','
    - fold
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    functionName: new_time
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_time(hh, mm, ss, us, tzinfo, fold)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: normalize_d_s_us
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1032,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1033,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1034,1
    - Dst: check_delta_day_range
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1036,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1039,1
    - Dst: SET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1042,1
    - Dst: SET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1043,1
    - Dst: SET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - days
    - seconds
    - microseconds
    - normalize
    - type
    argTypes:
    - int
    - int
    - int
    - int
    - PyTypeObject*
    assertStmts:
    - condition: (0 <= microseconds && microseconds < 1000000)
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (0 <= seconds && seconds < 24*3600)
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1047
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1047
    functionName: new_delta_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - SET_TD_MICROSECONDS
    - PyTypeObject*::tp_alloc
    - SET_TD_SECONDS
    - SET_TD_DAYS
    - normalize_d_s_us
    - check_delta_day_range
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnew_delta_ex(int days, int seconds, int microseconds,
      int normalize,\n             PyTypeObject *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - us
    - ','
    - normalize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    functionName: new_delta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_delta(d, s, us, normalize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1075,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1076,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1076,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1077,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1077,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1079,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1083,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset != NULL)
      pos:
        line_end: 1074
        line_start: 1074
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1076
        line_start: 1076
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1075
        line_start: 1075
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1088
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1088
    functionName: create_timezone
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyDelta_Check
    - PyUnicode_Check
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1095,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1096,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1096,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1097,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1097,1
    - Dst: delta_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1099,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1100,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1103,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1104,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1105,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1106,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1106,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1107,1
    - Dst: create_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - offset
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (offset != NULL)
      pos:
        line_end: 1094
        line_start: 1094
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (name == NULL || PyUnicode_Check(name))
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyDelta_Check(offset))
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1115
      start: 1092
    functionDepth: 2
    functionLinenumber: 1092
    functionLinenumberEnd: 1115
    functionName: new_timezone
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - Py_INCREF
    - GET_TD_SECONDS
    - create_timezone
    - GET_TD_DAYS
    - delta_bool
    - PyDelta_Check
    - PyErr_Format
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_timezone(PyObject *offset, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTZInfo_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1127,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1129,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1134
    functionName: check_tzinfo_subclass
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - PyTZInfo_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int check_tzinfo_subclass(PyObject *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1145,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1145,1
    - Dst: PyTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1147,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1151
    functionName: get_tzinfo_member
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - PyTime_Check
    - HASTZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_tzinfo_member(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1166,1
    - Dst: PyTZInfo_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1166,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1167,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1171,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1174,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1175,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1176,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1177,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1178,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1179,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1180,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1187,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - tzinfo
    - name
    - tzinfoarg
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts:
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1164
        line_start: 1164
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyTZInfo_Check(tzinfo) || tzinfo == Py_None)
      pos:
        line_end: 1165
        line_start: 1165
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1196
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1196
    functionName: call_tzinfo_method
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - Py_DECREF
    - GET_TD_SECONDS
    - PyTZInfo_Check
    - GET_TD_DAYS
    - PyDelta_Check
    - PyErr_Format
    - Py_TYPE
    - assert
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_tzinfo_method(PyObject *tzinfo, const char *name, PyObject *tzinfoarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_tzinfo_method
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1210
    functionName: call_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzinfo_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_utcoffset(PyObject *tzinfo, PyObject *tzinfoarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_tzinfo_method
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1224
    functionName: call_dst
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzinfo_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_dst(PyObject *tzinfo, PyObject *tzinfoarg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1236,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1238,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1239,1
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1239,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1240,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1245,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1251,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1252,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tzinfo
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (check_tzinfo_subclass(tzinfo) >= 0)
      pos:
        line_end: 1238
        line_start: 1238
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (tzinfo != NULL)
      pos:
        line_end: 1237
        line_start: 1237
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1239
        line_start: 1239
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1260
      start: 1232
    functionDepth: 2
    functionLinenumber: 1232
    functionLinenumberEnd: 1260
    functionName: call_tzname
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_tzname(PyObject *tzinfo, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1272,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1272,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1273,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1277,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1277,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1277,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1278,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1279,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - repr
    - tzinfo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1276
        line_start: 1276
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (tzinfo)
      pos:
        line_end: 1272
        line_start: 1272
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1285
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1285
    functionName: append_keyword_tzinfo
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_Substring
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - assert
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_keyword_tzinfo(PyObject *repr, PyObject *tzinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1297,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1297,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1301,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1301,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1301,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1302,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1303,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - repr
    - fold
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(repr))
      pos:
        line_end: 1296
        line_start: 1296
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyUnicode_READ_CHAR(repr, PyUnicode_GET_LENGTH(repr)-1) == ')')
      pos:
        line_end: 1300
        line_start: 1300
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1309
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1309
    functionName: append_keyword_fold
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_Substring
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - assert
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_keyword_fold(PyObject *repr, int fold)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1318,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1322,1
    - Dst: new_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1327,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - rv
    - tzoffset
    - tz_useconds
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1335
    functionName: tzinfo_from_isoformat_results
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - Py_DECREF
    - new_timezone
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_from_isoformat_results(int rv, int tzoffset, int tz_useconds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1352,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1352,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1352,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1352,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1354,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1355,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1356,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - date
    - hours
    - minutes
    - seconds
    argTypes:
    - PyDateTime_Date*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1358
    functionName: format_ctime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - weekday
    - GET_MONTH
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      format_ctime(PyDateTime_Date *date, int hours, int minutes, int seconds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1380,1
    - Dst: call_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1386,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1391,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1393,1
    - Dst: delta_negative
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1393,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1401,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1402,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1403,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1404,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1405,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1407,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1412,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 5
    argNames:
    - buf
    - buflen
    - sep
    - tzinfo
    - tzinfoarg
    argTypes:
    - char*
    - size_t
    - char*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (buflen >= 1)
      pos:
        line_end: 1379
        line_start: 1379
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1418
      start: 1372
    functionDepth: 3
    functionLinenumber: 1372
    functionLinenumberEnd: 1418
    functionName: format_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - PyOS_snprintf
    - Py_DECREF
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - delta_negative
    - call_utcoffset
    - GET_TD_DAYS
    - assert
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: "int format_utcoffset(char *buf, size_t buflen, const char *sep,\n
      \               PyObject *tzinfo, PyObject *tzinfoarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_tzinfo_member
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1424,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1425,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1426,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1433,1
    - Dst: call_tzname
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1438,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1442,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1447,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1448,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1449,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - object
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(temp))
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1462
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1462
    functionName: make_Zreplacement
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - call_tzname
    - get_tzinfo_member
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_Zreplacement(PyObject *object, PyObject *tzinfoarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1468,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1469,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1469,1
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1470,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1471,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1471,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1473,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1475,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1476
    functionName: make_freplacement
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyDateTime_Check
    - strlen
    - TIME_GET_MICROSECOND
    - DATE_GET_MICROSECOND
    - PyTime_Check
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_freplacement(PyObject *object)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1508,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1509,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1509,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1511,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1520,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1525,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1527,1
    - Dst: get_tzinfo_member
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1549,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1550,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1553,1
    - Dst: format_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1554,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1560,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1562,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1563,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1568,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1569,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1570,1
    - Dst: make_Zreplacement
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1575,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1580,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1581,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1581,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1582,1
    - Dst: make_freplacement
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1590,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1594,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1595,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1595,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1596,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1597,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1610,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1611,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1614,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1618,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1620,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1622,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1625,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1628,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1632,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1636,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1636,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1642,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1646,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1647,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1648,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 120
    argCount: 4
    argNames:
    - object
    - format
    - timetuple
    - tzinfoarg
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (freplacement != NULL)
      pos:
        line_end: 1593
        line_start: 1593
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyBytes_Check(freplacement))
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (object && format && timetuple)
      pos:
        line_end: 1507
        line_start: 1507
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (tzinfoarg != NULL)
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (Zreplacement != NULL)
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (zreplacement != NULL)
      pos:
        line_end: 1567
        line_start: 1567
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(Zreplacement))
      pos:
        line_end: 1580
        line_start: 1580
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (ntoappend > 0)
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (PyUnicode_Check(format))
      pos:
        line_end: 1508
        line_start: 1508
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (ptoappend != NULL)
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (usednew <= totalnew)
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1650
      start: 1485
    functionDepth: 4
    functionLinenumber: 1485
    functionLinenumberEnd: 1650
    functionName: wrap_strftime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_FromStringAndSize
    - strlen
    - assert
    - Py_XDECREF
    - format_utcoffset
    - PyUnicode_FromString
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyImport_ImportModuleNoBlock
    - PyBytes_AsString
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - get_tzinfo_member
    - memcpy
    - make_freplacement
    - PyErr_NoMemory
    - PyBytes_Check
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - make_Zreplacement
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwrap_strftime(PyObject *object, PyObject *format, PyObject
      *timetuple,\n              PyObject *tzinfoarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1662,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1665,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1671
    functionName: time_time
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModuleNoBlock
    - _Py_IDENTIFIER
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1681,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1685,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1690,1
    - Dst: weekday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1693,1
    - Dst: days_before_month
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1694,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1697,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1701,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - y
    - m
    - d
    - hh
    - mm
    - ss
    - dstflag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1706
    functionName: build_struct_time
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - days_before_month
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyImport_ImportModuleNoBlock
    - _Py_IDENTIFIER
    - weekday
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - diff
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1719
    functionName: diff_to_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      diff_to_bool(int diff, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1725,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1727,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1729
    functionName: cmperror
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmperror(PyObject *a, PyObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1766,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1766,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1772,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1776,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1776,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1782,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1783,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1787,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1790,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1794,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1794,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1797,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1798,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1798,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1801,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1802,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1803,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts:
    - condition: (result == NULL || PyLong_CheckExact(result))
      pos:
        line_end: 1797
        line_start: 1797
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1805
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1805
    functionName: delta_to_microseconds
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    - Py_DECREF
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - GET_TD_DAYS
    - PyLong_CheckExact
    - PyNumber_Add
    - PyNumber_Multiply
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_to_microseconds(PyDateTime_Delta *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1810,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1812,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1816,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1820,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1828
    functionName: checked_divmod
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyNumber_Divmod
    - PyTuple_Check
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      checked_divmod(PyObject *a, PyObject *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: checked_divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1843,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1848,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1849,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1851,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1858,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1859,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1860,1
    - Dst: checked_divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1862,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1865,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1867,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1868,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1870,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1877,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1878,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1879,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1880,1
    - Dst: new_delta_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1883,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1886,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1887,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1891,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 2
    argNames:
    - pyus
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1832
    functionDepth: 5
    functionLinenumber: 1832
    functionLinenumberEnd: 1894
    functionName: microseconds_to_delta_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - checked_divmod
    - new_delta_ex
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - _PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      microseconds_to_delta_ex(PyObject *pyus, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pymicros
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1896
    functionDepth: 0
    functionLinenumber: 1896
    functionLinenumberEnd: 1898
    functionName: microseconds_to_delta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: microseconds_to_delta(pymicros)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1906,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1911,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - intobj
    - delta
    argTypes:
    - PyObject*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1899
    functionDepth: 2
    functionLinenumber: 1899
    functionLinenumberEnd: 1918
    functionName: multiply_int_timedelta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - PyNumber_Multiply
    - microseconds_to_delta
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiply_int_timedelta(PyObject *intobj, PyDateTime_Delta *delta)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1925,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1925,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1926,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1930,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1931,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1935,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1938,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - floatobj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (floatobj && PyFloat_Check(floatobj))
      pos:
        line_end: 1924
        line_start: 1924
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 1945
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1945
    functionName: get_float_as_integer_ratio
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - PyTuple_Size
    - PyErr_SetString
    - assert
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_float_as_integer_ratio(PyObject *floatobj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1955,1
    - Dst: get_float_as_integer_ratio
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1958,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1962,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1962,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1963,1
    - Dst: divide_nearest
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1967,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1968,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1972,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1974,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - delta
    - floatobj
    - op
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1978
    functionName: multiply_truedivide_timedelta_float
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_float_as_integer_ratio
    - delta_to_microseconds
    - divide_nearest
    - PyNumber_Multiply
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - microseconds_to_delta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiply_truedivide_timedelta_float(PyDateTime_Delta *delta, PyObject *floatobj,
      int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1987,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1992,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1996,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - intobj
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 1999
    functionName: divide_timedelta_int
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - PyNumber_FloorDivide
    - microseconds_to_delta
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      divide_timedelta_int(PyDateTime_Delta *delta, PyObject *intobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2008,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2014,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2018,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2022
    functionName: divide_timedelta_timedelta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - PyNumber_FloorDivide
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      divide_timedelta_timedelta(PyDateTime_Delta *left, PyDateTime_Delta *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2031,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2037,1
    - Dst: PyNumber_TrueDivide
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2041,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2042,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyDateTime_Delta*
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2045
    functionName: truedivide_timedelta_timedelta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - Py_DECREF
    - PyNumber_TrueDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      truedivide_timedelta_timedelta(PyDateTime_Delta *left, PyDateTime_Delta *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2052,1
    - Dst: divide_nearest
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2056,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2059,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - delta
    - i
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2063
    functionName: truedivide_timedelta_int
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - divide_nearest
    - microseconds_to_delta
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      truedivide_timedelta_int(PyDateTime_Delta *delta, PyObject *i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2070,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2070,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2075,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2075,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2076,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2076,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2077,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2078,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2079,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2065
    functionDepth: 1
    functionLinenumber: 2065
    functionLinenumberEnd: 2085
    functionName: delta_add
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - Py_INCREF
    - GET_TD_DAYS
    - PyDelta_Check
    - new_delta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_add(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2090,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2090,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2091,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2094
    functionName: delta_negative
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - new_delta
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_negative(PyDateTime_Delta *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2102,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2102,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2103,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2096
    functionDepth: 1
    functionLinenumber: 2096
    functionLinenumberEnd: 2106
    functionName: delta_positive
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_delta
    - GET_TD_SECONDS
    - GET_TD_MICROSECONDS
    - GET_TD_DAYS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_positive(PyDateTime_Delta *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2113,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2113,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2114,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2114,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2116,1
    - Dst: delta_negative
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2117,1
    - Dst: delta_positive
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts:
    - condition: (GET_TD_MICROSECONDS(self) >= 0)
      pos:
        line_end: 2112
        line_start: 2112
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (GET_TD_SECONDS(self) >= 0)
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2122
      start: 2108
    functionDepth: 2
    functionLinenumber: 2108
    functionLinenumberEnd: 2122
    functionName: delta_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - delta_negative
    - GET_TD_DAYS
    - assert
    - delta_positive
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_abs(PyDateTime_Delta *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2129,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2129,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2134,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2134,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2135,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2135,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2136,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2137,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2138,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2124
    functionDepth: 1
    functionLinenumber: 2124
    functionLinenumberEnd: 2144
    functionName: delta_subtract
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - Py_INCREF
    - GET_TD_DAYS
    - PyDelta_Check
    - new_delta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_subtract(PyObject *left, PyObject *right)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2149,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2149,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2151,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2151,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2153,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2157
    functionName: delta_cmp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_DAYS
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    linkageType: ''
    returnType: int
    signature: int delta_cmp(PyObject *self, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2162,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2163,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2159
    functionDepth: 2
    functionLinenumber: 2159
    functionLinenumberEnd: 2169
    functionName: delta_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_cmp
    - PyDelta_Check
    - diff_to_bool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delta_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2177,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2184
    functionName: delta_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_getstate
    - PyObject_Hash
    - Py_DECREF
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t delta_hash(PyDateTime_Delta *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2191,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2193,1
    - Dst: multiply_int_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2194,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2196,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2197,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2200,1
    - Dst: multiply_int_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2201,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2203,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2204,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2186
    functionDepth: 3
    functionLinenumber: 2186
    functionLinenumberEnd: 2210
    functionName: delta_multiply
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - multiply_truedivide_timedelta_float
    - multiply_int_timedelta
    - Py_INCREF
    - PyDelta_Check
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_multiply(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2217,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2219,1
    - Dst: divide_timedelta_int
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2220,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2223,1
    - Dst: divide_timedelta_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2224,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2232
    functionName: delta_divide
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - divide_timedelta_timedelta
    - Py_INCREF
    - divide_timedelta_int
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2239,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2240,1
    - Dst: truedivide_timedelta_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2241,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2244,1
    - Dst: multiply_truedivide_timedelta_float
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2245,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2247,1
    - Dst: truedivide_timedelta_int
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2248,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2234
    functionDepth: 3
    functionLinenumber: 2234
    functionLinenumberEnd: 2255
    functionName: delta_truedivide
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - multiply_truedivide_timedelta_float
    - truedivide_timedelta_timedelta
    - Py_INCREF
    - truedivide_timedelta_int
    - PyDelta_Check
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_truedivide(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2265,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2265,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2268,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2274,1
    - Dst: PyNumber_Remainder
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2280,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2290
    functionName: delta_remainder
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyNumber_Remainder
    - delta_to_microseconds
    - PyDelta_Check
    - microseconds_to_delta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_remainder(PyObject *left, PyObject *right)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2301,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2301,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2304,1
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2310,1
    - Dst: checked_divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2314,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2315,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2316,1
    - Dst: microseconds_to_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2322,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2325,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2325,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2292
    functionDepth: 2
    functionLinenumber: 2292
    functionLinenumberEnd: 2329
    functionName: delta_divmod
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_Pack
    - checked_divmod
    - delta_to_microseconds
    - PyDelta_Check
    - PyTuple_GET_ITEM
    - microseconds_to_delta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_divmod(PyObject *left, PyObject *right)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2347,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2349,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2350,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2353,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2354,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2358,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2373,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2374,1
    - Dst: modf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2376,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2377,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2382,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2387,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2397,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2397,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2398,1
    - Dst: modf
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2401,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2402,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2404,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2409,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2410,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2415,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2417,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - tag
    - sofar
    - num
    - factor
    - leftover
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    - PyObject*
    - double*
    assertStmts:
    - condition: (PyLong_CheckExact(factor))
      pos:
        line_end: 2396
        line_start: 2396
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (num != NULL)
      pos:
        line_end: 2346
        line_start: 2346
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 2419
      start: 2340
    functionDepth: 1
    functionLinenumber: 2340
    functionLinenumberEnd: 2419
    functionName: accum
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_DECREF
    - PyNumber_Multiply
    - PyLong_FromDouble
    - PyLong_AsDouble
    - PyLong_CheckExact
    - PyErr_Format
    - Py_TYPE
    - PyNumber_Add
    - assert
    - modf
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naccum(const char* tag, PyObject *sofar, PyObject *num,
      PyObject *factor,\n      double *leftover)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2444,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2450,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2461,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2465,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2469,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2473,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2477,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2481,1
    - Dst: accum
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2485,1
    - Dst: round
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2490,1
    - Dst: round
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2494,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2495,1
    - Dst: PyNumber_And
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2503,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2509,1
    - Dst: round
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2512,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2518,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2521,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2522,1
    - Dst: microseconds_to_delta_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2526,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2527,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2421
    functionDepth: 6
    functionLinenumber: 2421
    functionLinenumberEnd: 2532
    functionName: delta_new
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyNumber_Add
    - fabs
    - microseconds_to_delta_ex
    - accum
    - round
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    - PyNumber_And
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2537,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2538,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2540
    functionName: delta_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_DAYS
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    linkageType: ''
    returnType: int
    signature: int delta_bool(PyDateTime_Delta *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2545,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2553,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2554,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2554,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2554,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2561,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2562,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2562,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2563,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2570,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2571,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2571,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2572,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2578,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2579,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2579,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2585,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2587,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2542
    functionDepth: 1
    functionLinenumber: 2542
    functionLinenumberEnd: 2589
    functionName: delta_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - GET_TD_MICROSECONDS
    - Py_DECREF
    - GET_TD_SECONDS
    - PyUnicode_FromFormat
    - GET_TD_DAYS
    - Py_TYPE
    - PyUnicode_GET_LENGTH
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_repr(PyDateTime_Delta *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2594,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2595,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2596,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2597,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2598,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2602,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2606,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2611,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2614,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2591
    functionDepth: 2
    functionLinenumber: 2591
    functionLinenumberEnd: 2618
    functionName: delta_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - PyUnicode_FromFormat
    - GET_TD_DAYS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_str(PyDateTime_Delta *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2626,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2626,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2627,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Delta*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2623
    functionDepth: 1
    functionLinenumber: 2623
    functionLinenumberEnd: 2629
    functionName: delta_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_TD_DAYS
    - Py_BuildValue
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_getstate(PyDateTime_Delta *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: delta_to_microseconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2637,1
    - Dst: PyNumber_TrueDivide
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2631
    functionDepth: 2
    functionLinenumber: 2631
    functionLinenumberEnd: 2645
    functionName: delta_total_seconds
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_to_microseconds
    - Py_DECREF
    - PyNumber_TrueDivide
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_total_seconds(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2650,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2650,1
    - Dst: delta_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Delta*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2647
    functionDepth: 2
    functionLinenumber: 2647
    functionLinenumberEnd: 2651
    functionName: delta_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_getstate
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      delta_reduce(PyDateTime_Delta* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2653
    functionDepth: 0
    functionLinenumber: 2653
    functionLinenumberEnd: 2654
    functionName: OFFSET
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2772,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2769
    functionDepth: 0
    functionLinenumber: 2769
    functionLinenumberEnd: 2773
    functionName: date_year
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_YEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_year(PyDateTime_Date *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2778,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2775
    functionDepth: 0
    functionLinenumber: 2775
    functionLinenumberEnd: 2779
    functionName: date_month
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_MONTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_month(PyDateTime_Date *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2784,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2781
    functionDepth: 0
    functionLinenumber: 2781
    functionLinenumberEnd: 2785
    functionName: date_day
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_day(PyDateTime_Date *self, void *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2803,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2805,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - state
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2798
    functionDepth: 1
    functionLinenumber: 2798
    functionLinenumberEnd: 2810
    functionName: date_from_pickle
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyBytes_AS_STRING
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_from_pickle(PyTypeObject *type, PyObject *state)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2821,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2822,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2823,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2824,1
    - Dst: MONTH_IS_SANE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2825,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2825,1
    - Dst: date_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2827,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2830,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2831,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2834,1
    - Dst: MONTH_IS_SANE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2835,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2835,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2837,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2839,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2841,1
    - Dst: date_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2848,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2849,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2855,1
    - Dst: new_date_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2857,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2812
    functionDepth: 4
    functionLinenumber: 2812
    functionLinenumberEnd: 2860
    functionName: date_new
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - new_date_ex
    - MONTH_IS_SANE
    - PyUnicode_READY
    - PyTuple_GET_SIZE
    - Py_DECREF
    - date_from_pickle
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsLatin1String
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyTuple_GET_ITEM
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2868,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2871,1
    - Dst: new_date_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cls
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2862
    functionDepth: 5
    functionLinenumber: 2862
    functionLinenumberEnd: 2878
    functionName: date_fromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_localtime
    - new_date_subclass_ex
    - _PyTime_ObjectToTime_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromtimestamp(PyObject *cls, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2890,1
    - Dst: time_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2892,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cls
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2906
    functionName: date_today
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - time_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_today(PyObject *cls, PyObject *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: date_fromtimestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - timestamp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2921
    functionDepth: 6
    functionLinenumber: 2921
    functionLinenumberEnd: 2926
    functionName: datetime_date_fromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - date_fromtimestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromtimestamp(PyTypeObject *type, PyObject *timestamp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2938,1
    - Dst: date_fromtimestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2932
    functionDepth: 6
    functionLinenumber: 2932
    functionLinenumberEnd: 2943
    functionName: datetime_date_fromtimestamp_capi
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - date_fromtimestamp
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_date_fromtimestamp_capi(PyObject *cls, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2954,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2960,1
    - Dst: ord_to_ymd
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2963,1
    - Dst: new_date_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2948
    functionDepth: 5
    functionLinenumber: 2948
    functionLinenumberEnd: 2968
    functionName: date_fromordinal
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_date_subclass_ex
    - ord_to_ymd
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromordinal(PyObject *cls, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2974,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2976,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2977,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2984,1
    - Dst: parse_isoformat_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:2993,1
    - Dst: new_date_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3003,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - cls
    - dtstr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dtstr != NULL)
      pos:
        line_end: 2973
        line_start: 2973
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 3008
      start: 2971
    functionDepth: 5
    functionLinenumber: 2971
    functionLinenumberEnd: 3008
    functionName: date_fromisoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - PyErr_Format
    - new_date_subclass_ex
    - parse_isoformat_date
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromisoformat(PyObject *cls, PyObject *dtstr)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3019,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3022,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3023,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3032,1
    - Dst: weekday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3041,1
    - Dst: is_leap
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3042,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3048,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3054,1
    - Dst: iso_week1_monday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3060,1
    - Dst: ord_to_ymd
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3065,1
    - Dst: new_date_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3067,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - cls
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3011
    functionDepth: 5
    functionLinenumber: 3011
    functionLinenumberEnd: 3068
    functionName: date_fromisocalendar
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - ord_to_ymd
    - is_leap
    - iso_week1_monday
    - weekday
    - PyErr_Format
    - PyErr_ExceptionMatches
    - new_date_subclass_ex
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_fromisocalendar(PyObject *cls, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3082,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3083,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3084,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3086,1
    - Dst: normalize_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3088,1
    - Dst: new_date_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3089,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - date
    - delta
    - negate
    argTypes:
    - PyDateTime_Date*
    - PyDateTime_Delta*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3078
    functionDepth: 5
    functionLinenumber: 3078
    functionLinenumberEnd: 3092
    functionName: add_date_timedelta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - normalize_date
    - GET_TD_DAYS
    - GET_MONTH
    - Py_TYPE
    - new_date_subclass_ex
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      add_date_timedelta(PyDateTime_Date *date, PyDateTime_Delta *delta, int negate)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3097,1
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3097,1
    - Dst: PyDate_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3100,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3102,1
    - Dst: add_date_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3104,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3112,1
    - Dst: add_date_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3094
    functionDepth: 6
    functionLinenumber: 3094
    functionLinenumberEnd: 3119
    functionName: date_add
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - add_date_timedelta
    - PyDate_Check
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_add(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3124,1
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3124,1
    - Dst: PyDate_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3127,1
    - Dst: PyDate_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3128,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3130,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3130,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3131,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3132,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3133,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3133,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3134,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3135,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3136,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3138,1
    - Dst: add_date_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3121
    functionDepth: 6
    functionLinenumber: 3121
    functionLinenumberEnd: 3146
    functionName: date_subtract
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - add_date_timedelta
    - PyDate_Check
    - GET_MONTH
    - PyDelta_Check
    - ymd_to_ord
    - new_delta
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_subtract(PyObject *left, PyObject *right)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3154,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3155,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3156,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3156,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3151
    functionDepth: 1
    functionLinenumber: 3151
    functionLinenumberEnd: 3157
    functionName: date_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    - GET_MONTH
    - Py_TYPE
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_repr(PyDateTime_Date *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3162,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3163,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3163,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3159
    functionDepth: 1
    functionLinenumber: 3159
    functionLinenumberEnd: 3164
    functionName: date_isoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_YEAR
    - GET_DAY
    - GET_MONTH
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isoformat(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3167
    functionDepth: 1
    functionLinenumber: 3167
    functionLinenumberEnd: 3171
    functionName: date_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_str(PyDateTime_Date *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_ctime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3178
      start: 3174
    functionDepth: 2
    functionLinenumber: 3174
    functionLinenumberEnd: 3178
    functionName: date_ctime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - format_ctime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_ctime(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3189,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3192,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3196,1
    - Dst: wrap_strftime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3180
    functionDepth: 5
    functionLinenumber: 3180
    functionLinenumberEnd: 3203
    functionName: date_strftime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyArg_ParseTupleAndKeywords
    - wrap_strftime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3210,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3214,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3215,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3219
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3219
    functionName: date_format
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GetLength
    - _PyObject_CallMethodIdObjArgs
    - PyArg_ParseTuple
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_format(PyDateTime_Date *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3226,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3226,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3226,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3226,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3223
    functionDepth: 0
    functionLinenumber: 3223
    functionLinenumberEnd: 3229
    functionName: date_isoweekday
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - weekday
    - GET_MONTH
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isoweekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3234,1
    - Dst: iso_week1_monday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3235,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3236,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3236,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3236,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3240,1
    - Dst: iso_week1_monday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3243,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3244,1
    - Dst: iso_week1_monday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3246,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3231
    functionDepth: 2
    functionLinenumber: 3231
    functionLinenumberEnd: 3251
    functionName: date_isocalendar
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - Py_BuildValue
    - iso_week1_monday
    - GET_MONTH
    - ymd_to_ord
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_isocalendar(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDate_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3258,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3259,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3255
    functionDepth: 2
    functionLinenumber: 3255
    functionLinenumberEnd: 3266
    functionName: date_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDate_Check
    - diff_to_bool
    - memcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_struct_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3271,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3271,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3272,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3268
    functionDepth: 0
    functionLinenumber: 3268
    functionLinenumberEnd: 3275
    functionName: date_timetuple
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_YEAR
    - GET_DAY
    - GET_MONTH
    - build_struct_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_timetuple(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3282,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3283,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3284,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3286,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3289,1
    - Dst: date_new
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3292,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3277
    functionDepth: 5
    functionLinenumber: 3277
    functionLinenumberEnd: 3295
    functionName: date_replace
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - date_new
    - GET_MONTH
    - Py_TYPE
    - PyArg_ParseTupleAndKeywords
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_replace(PyDateTime_Date *self, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3297
    functionDepth: 1
    functionLinenumber: 3297
    functionLinenumberEnd: 3301
    functionName: generic_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _Py_HashBytes
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t generic_hash(unsigned char *data, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generic_hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3306
    functionDepth: 2
    functionLinenumber: 3306
    functionLinenumberEnd: 3315
    functionName: date_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - generic_hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t date_hash(PyDateTime_Date *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3320,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3320,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3320,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3320,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3317
    functionDepth: 0
    functionLinenumber: 3317
    functionLinenumberEnd: 3322
    functionName: date_toordinal
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_MONTH
    - ymd_to_ord
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_toordinal(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: weekday
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3327,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3327,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3327,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3327,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3324
    functionDepth: 0
    functionLinenumber: 3324
    functionLinenumberEnd: 3330
    functionName: date_weekday
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - weekday
    - GET_MONTH
    - GET_YEAR
    - GET_DAY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_weekday(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3339,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Date*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3335
    functionDepth: 1
    functionLinenumber: 3335
    functionLinenumberEnd: 3342
    functionName: date_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_getstate(PyDateTime_Date *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3347,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3347,1
    - Dst: date_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyDateTime_Date*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3344
    functionDepth: 2
    functionLinenumber: 3344
    functionLinenumberEnd: 3348
    functionName: date_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - date_getstate
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      date_reduce(PyDateTime_Date *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - methodname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3498
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3498
    functionName: tzinfo_nogo
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_nogo(const char* methodname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzinfo_nogo
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TZInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3506
      start: 3502
    functionDepth: 2
    functionLinenumber: 3502
    functionLinenumberEnd: 3506
    functionName: tzinfo_tzname
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_tzname(PyDateTime_TZInfo *self, PyObject *dt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzinfo_nogo
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TZInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3508
    functionDepth: 2
    functionLinenumber: 3508
    functionLinenumberEnd: 3512
    functionName: tzinfo_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_utcoffset(PyDateTime_TZInfo *self, PyObject *dt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tzinfo_nogo
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TZInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3514
    functionDepth: 2
    functionLinenumber: 3514
    functionLinenumberEnd: 3518
    functionName: tzinfo_dst
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - tzinfo_nogo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_dst(PyDateTime_TZInfo *self, PyObject *dt)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3535,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3539,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3540,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3545,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3549,1
    - Dst: datetime_dst
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3554,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3558,1
    - Dst: delta_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3563,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3566,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3570,1
    - Dst: call_dst
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3571,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3571,1
    - Dst: delta_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3576,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3577,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3584,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3588,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3593,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3594,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3595,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3596,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TZInfo*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3598
      start: 3527
    functionDepth: 3
    functionLinenumber: 3527
    functionLinenumberEnd: 3598
    functionName: tzinfo_fromutc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_dst
    - delta_subtract
    - Py_DECREF
    - PyDateTime_Check
    - delta_bool
    - call_dst
    - GET_DT_TZINFO
    - PyErr_SetString
    - datetime_utcoffset
    - Py_XDECREF
    - Py_SETREF
    - add_datetime_timedelta
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_fromutc(PyDateTime_TZInfo *self, PyObject *dt)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3610,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3611,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3613,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3617,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3618,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3621,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3628,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3632,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3633,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3635,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3642,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3643,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3646,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3650,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3651,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3651,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3654,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3654,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3605
    functionDepth: 1
    functionLinenumber: 3605
    functionLinenumberEnd: 3655
    functionName: tzinfo_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyDict_GET_SIZE
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _PyObject_GetDictPtr
    - Py_TYPE
    - _PyObject_CallNoArg
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tzinfo_reduce(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3730,1
    - Dst: new_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3735
      start: 3725
    functionDepth: 3
    functionLinenumber: 3725
    functionLinenumberEnd: 3735
    functionName: timezone_new
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - new_timezone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3740,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3741,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_TimeZone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3737
    functionDepth: 1
    functionLinenumber: 3737
    functionLinenumberEnd: 3743
    functionName: timezone_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void timezone_dealloc(PyDateTime_TimeZone *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTimezone_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3751,1
    - Dst: delta_richcompare
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyDateTime_TimeZone*
    - PyDateTime_TimeZone*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3745
    functionDepth: 3
    functionLinenumber: 3745
    functionLinenumberEnd: 3755
    functionName: timezone_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_richcompare
    - PyTimezone_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntimezone_richcompare(PyDateTime_TimeZone *self,\n                     PyDateTime_TimeZone
      *other, int op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: delta_hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_TimeZone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3757
    functionDepth: 2
    functionLinenumber: 3757
    functionLinenumberEnd: 3761
    functionName: timezone_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t timezone_hash(PyDateTime_TimeZone *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3770,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3772,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dt
    - meth
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3767
    functionDepth: 1
    functionLinenumber: 3767
    functionLinenumberEnd: 3775
    functionName: _timezone_check_argument
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _timezone_check_argument(PyObject *dt, const char *meth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3782,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3785,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3788,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_TimeZone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3777
    functionDepth: 1
    functionLinenumber: 3777
    functionLinenumberEnd: 3792
    functionName: timezone_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_repr(PyDateTime_TimeZone *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3803,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3807,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3808,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3809,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3810,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3812,1
    - Dst: delta_negative
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3814,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3821,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3824,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3826,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3827,1
    - Dst: divmod
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3828,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3830,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3835,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3838,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_TimeZone*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3795
    functionDepth: 2
    functionLinenumber: 3795
    functionLinenumberEnd: 3839
    functionName: timezone_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divmod
    - PyUnicode_FromString
    - GET_TD_MICROSECONDS
    - Py_DECREF
    - GET_TD_SECONDS
    - Py_INCREF
    - delta_negative
    - PyUnicode_FromFormat
    - GET_TD_DAYS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_str(PyDateTime_TimeZone *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3844,1
    - Dst: timezone_str
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TimeZone*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3841
    functionDepth: 3
    functionLinenumber: 3841
    functionLinenumberEnd: 3848
    functionName: timezone_tzname
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - timezone_str
    - _timezone_check_argument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_tzname(PyDateTime_TimeZone *self, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3853,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TimeZone*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3858
      start: 3850
    functionDepth: 2
    functionLinenumber: 3850
    functionLinenumberEnd: 3858
    functionName: timezone_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _timezone_check_argument
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_utcoffset(PyDateTime_TimeZone *self, PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _timezone_check_argument
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3867
      start: 3860
    functionDepth: 2
    functionLinenumber: 3860
    functionLinenumberEnd: 3867
    functionName: timezone_dst
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _timezone_check_argument
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_dst(PyObject *self, PyObject *dt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3872,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3873,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3877,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3878,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3883,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - dt
    argTypes:
    - PyDateTime_TimeZone*
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3884
      start: 3869
    functionDepth: 1
    functionLinenumber: 3869
    functionLinenumberEnd: 3884
    functionName: timezone_fromutc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - HASTZINFO
    - add_datetime_timedelta
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_fromutc(PyDateTime_TimeZone *self, PyDateTime_DateTime *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3890,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_TimeZone*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3886
    functionDepth: 1
    functionLinenumber: 3886
    functionLinenumberEnd: 3892
    functionName: timezone_getinitargs
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      timezone_getinitargs(PyDateTime_TimeZone *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3968,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3969
      start: 3965
    functionDepth: 0
    functionLinenumber: 3965
    functionLinenumberEnd: 3969
    functionName: time_hour
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_HOUR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_hour(PyDateTime_Time *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3974,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3971
    functionDepth: 0
    functionLinenumber: 3971
    functionLinenumberEnd: 3975
    functionName: time_minute
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_minute(PyDateTime_Time *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3981,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3982
      start: 3978
    functionDepth: 0
    functionLinenumber: 3978
    functionLinenumberEnd: 3982
    functionName: py_time_second
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_SECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_time_second(PyDateTime_Time *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3987,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3988
      start: 3984
    functionDepth: 0
    functionLinenumber: 3984
    functionLinenumberEnd: 3988
    functionName: time_microsecond
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_MICROSECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_microsecond(PyDateTime_Time *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3993,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:3994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3996
      start: 3990
    functionDepth: 1
    functionLinenumber: 3990
    functionLinenumberEnd: 3996
    functionName: time_tzinfo
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzinfo(PyDateTime_Time *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4001,1
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 4002
    functionName: time_fold
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - TIME_GET_FOLD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_fold(PyDateTime_Time *self, void *unused)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4027,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4028,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4032,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4034,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4036,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4021
    functionDepth: 2
    functionLinenumber: 4021
    functionLinenumberEnd: 4052
    functionName: time_from_pickle
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - memcpy
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_from_pickle(PyTypeObject *type, PyObject *state, PyObject *tzinfo)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4066,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4066,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4067,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4068,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4069,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4071,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4072,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4073,1
    - Dst: time_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4075,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4078,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4079,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4082,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4083,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4085,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4087,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4089,1
    - Dst: time_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4096,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4097,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4104,1
    - Dst: new_time_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4107,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4054
    functionDepth: 3
    functionLinenumber: 4054
    functionLinenumberEnd: 4111
    functionName: time_new
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyUnicode_READY
    - Py_DECREF
    - PyTuple_GET_SIZE
    - time_from_pickle
    - new_time_ex2
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsLatin1String
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyTuple_GET_ITEM
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4120,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4121,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4124
      start: 4117
    functionDepth: 1
    functionLinenumber: 4117
    functionLinenumberEnd: 4124
    functionName: time_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void time_dealloc(PyDateTime_Time *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4133,1
    - Dst: GET_TIME_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4131
    functionDepth: 3
    functionLinenumber: 4131
    functionLinenumberEnd: 4134
    functionName: time_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_utcoffset
    - GET_TIME_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_utcoffset(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_dst
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4138,1
    - Dst: GET_TIME_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4139
      start: 4136
    functionDepth: 3
    functionLinenumber: 4136
    functionLinenumberEnd: 4139
    functionName: time_dst
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_dst
    - GET_TIME_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_dst(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_tzname
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4143,1
    - Dst: GET_TIME_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4144
      start: 4141
    functionDepth: 3
    functionLinenumber: 4141
    functionLinenumberEnd: 4144
    functionName: time_tzname
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzname
    - GET_TIME_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzname(PyDateTime_Time *self, PyObject *unused)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4153,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4154,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4155,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4156,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4157,1
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4158,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4162,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4165,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4168,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4169,1
    - Dst: append_keyword_tzinfo
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4170,1
    - Dst: append_keyword_fold
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4150
    functionDepth: 2
    functionLinenumber: 4150
    functionLinenumberEnd: 4174
    functionName: time_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - append_keyword_tzinfo
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - TIME_GET_SECOND
    - TIME_GET_FOLD
    - PyUnicode_FromFormat
    - HASTZINFO
    - TIME_GET_MICROSECOND
    - Py_TYPE
    - append_keyword_fold
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_repr(PyDateTime_Time *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4176
    functionDepth: 1
    functionLinenumber: 4176
    functionLinenumberEnd: 4180
    functionName: time_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_str(PyDateTime_Time *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4189,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4199,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4202,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4213,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4214,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4224,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4225,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4229,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4230,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4230,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4231,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4234,1
    - Dst: format_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4240,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4243,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4243,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4182
    functionDepth: 4
    functionLinenumber: 4182
    functionLinenumberEnd: 4245
    functionName: time_isoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - format_utcoffset
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyUnicode_AppendAndDel
    - PyUnicode_FromString
    - TIME_GET_SECOND
    - PyUnicode_FromFormat
    - HASTZINFO
    - PyErr_Format
    - TIME_GET_MICROSECOND
    - PyArg_ParseTupleAndKeywords
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_isoformat(PyDateTime_Time *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4255,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4263,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4265,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4266,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4267,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4271,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4271,1
    - Dst: wrap_strftime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Size(tuple) == 9)
      pos:
        line_end: 4270
        line_start: 4270
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4276
      start: 4247
    functionDepth: 5
    functionLinenumber: 4247
    functionLinenumberEnd: 4276
    functionName: time_strftime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_MINUTE
    - Py_BuildValue
    - TIME_GET_HOUR
    - Py_DECREF
    - TIME_GET_SECOND
    - PyTuple_Size
    - PyArg_ParseTupleAndKeywords
    - assert
    - wrap_strftime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strftime(PyDateTime_Time *self, PyObject *args, PyObject *kw)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4289,1
    - Dst: GET_TIME_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4292,1
    - Dst: GET_TIME_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4292,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4293,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4296,1
    - Dst: time_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4298,1
    - Dst: time_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4301,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4309,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4309,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4310,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4311,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4314,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4319,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4320,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4321,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4322,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4323,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4324,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4325,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4326,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4327,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4328,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4329,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4332,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4333,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4334,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4338,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4342,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4345,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4350,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4351,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 4318
        line_start: 4318
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4353
      start: 4282
    functionDepth: 4
    functionLinenumber: 4282
    functionLinenumberEnd: 4353
    functionName: time_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_cmp
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - Py_DECREF
    - GET_TD_SECONDS
    - Py_INCREF
    - TIME_GET_SECOND
    - GET_TIME_TZINFO
    - GET_TD_DAYS
    - diff_to_bool
    - PyDelta_Check
    - TIME_GET_MICROSECOND
    - PyErr_SetString
    - PyTime_Check
    - assert
    - memcmp
    - Py_XDECREF
    - time_utcoffset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4360,1
    - Dst: new_time_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4361,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4361,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4362,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4363,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4364,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4365,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4366,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4372,1
    - Dst: time_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4375,1
    - Dst: generic_hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4382,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4387,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4387,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4388,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4389,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4390,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4391,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4392,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4394,1
    - Dst: delta_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4400,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4403,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_Time*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 4386
        line_start: 4386
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4409
      start: 4355
    functionDepth: 4
    functionLinenumber: 4355
    functionLinenumberEnd: 4409
    functionName: time_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - delta_subtract
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - Py_DECREF
    - Py_INCREF
    - TIME_GET_FOLD
    - TIME_GET_SECOND
    - new_time_ex2
    - HASTZINFO
    - TIME_GET_MICROSECOND
    - Py_TYPE
    - new_delta
    - assert
    - generic_hash
    - time_utcoffset
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t time_hash(PyDateTime_Time *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4416,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4417,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4418,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4419,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4420,1
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4421,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4423,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4428,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4432,1
    - Dst: time_new
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4435,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4435,1
    - Dst: TIME_SET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4441
      start: 4411
    functionDepth: 4
    functionLinenumber: 4411
    functionLinenumberEnd: 4441
    functionName: time_replace
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_new
    - TIME_GET_MINUTE
    - TIME_GET_HOUR
    - Py_BuildValue
    - Py_DECREF
    - TIME_GET_SECOND
    - TIME_GET_FOLD
    - TIME_SET_FOLD
    - HASTZINFO
    - TIME_GET_MICROSECOND
    - Py_TYPE
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_replace(PyDateTime_Time *self, PyObject *args, PyObject *kw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4445,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4447,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4448,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4453,1
    - Dst: parse_isoformat_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4461,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4469,1
    - Dst: new_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4478,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4480,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4484,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - cls
    - tstr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tstr != NULL)
      pos:
        line_end: 4444
        line_start: 4444
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4490
      start: 4443
    functionDepth: 4
    functionLinenumber: 4443
    functionLinenumberEnd: 4490
    functionName: time_fromisoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time
    - Py_DECREF
    - parse_isoformat_time
    - PyUnicode_AsUTF8AndSize
    - PyObject_CallFunction
    - PyErr_Format
    - PyErr_SetString
    - tzinfo_from_isoformat_results
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_fromisoformat(PyObject *cls, PyObject *tstr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4506,1
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4509,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4511,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4512,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4513,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_Time*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4519
      start: 4500
    functionDepth: 1
    functionLinenumber: 4500
    functionLinenumberEnd: 4519
    functionName: time_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - TIME_GET_FOLD
    - PyTuple_Pack
    - HASTZINFO
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_getstate(PyDateTime_Time *self, int proto)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4525,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4528,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4528,1
    - Dst: time_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4529
      start: 4521
    functionDepth: 2
    functionLinenumber: 4521
    functionLinenumberEnd: 4529
    functionName: time_reduce_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_BuildValue
    - Py_TYPE
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_reduce_ex(PyDateTime_Time *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4534,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4534,1
    - Dst: time_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyDateTime_Time*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4535
      start: 4531
    functionDepth: 2
    functionLinenumber: 4531
    functionLinenumberEnd: 4535
    functionName: time_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - time_getstate
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_reduce(PyDateTime_Time *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4633,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4634
      start: 4630
    functionDepth: 0
    functionLinenumber: 4630
    functionLinenumberEnd: 4634
    functionName: datetime_hour
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - DATE_GET_HOUR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_hour(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4639,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4636
    functionDepth: 0
    functionLinenumber: 4636
    functionLinenumberEnd: 4640
    functionName: datetime_minute
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_minute(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4645,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4646
      start: 4642
    functionDepth: 0
    functionLinenumber: 4642
    functionLinenumberEnd: 4646
    functionName: datetime_second
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - DATE_GET_SECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_second(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4651,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4652
      start: 4648
    functionDepth: 0
    functionLinenumber: 4648
    functionLinenumberEnd: 4652
    functionName: datetime_microsecond
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - DATE_GET_MICROSECOND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_microsecond(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4657,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4660
      start: 4654
    functionDepth: 1
    functionLinenumber: 4654
    functionLinenumberEnd: 4660
    functionName: datetime_tzinfo
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_tzinfo(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4665,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyDateTime_DateTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4666
      start: 4662
    functionDepth: 0
    functionLinenumber: 4662
    functionLinenumberEnd: 4666
    functionName: datetime_fold
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - DATE_GET_FOLD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_fold(PyDateTime_DateTime *self, void *unused)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4693,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4694,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4698,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4700,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4702,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - type
    - state
    - tzinfo
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4687
    functionDepth: 2
    functionLinenumber: 4687
    functionLinenumberEnd: 4718
    functionName: datetime_from_pickle
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - memcpy
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_from_pickle(PyTypeObject *type, PyObject *state, PyObject *tzinfo)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4735,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4735,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4736,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4737,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4738,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4740,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4741,1
    - Dst: MONTH_IS_SANE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4742,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4742,1
    - Dst: datetime_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4744,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4747,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4748,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4751,1
    - Dst: MONTH_IS_SANE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4752,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4752,1
    - Dst: PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4754,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4756,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4758,1
    - Dst: datetime_from_pickle
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4765,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4766,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4773,1
    - Dst: new_datetime_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4776,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4720
    functionDepth: 4
    functionLinenumber: 4720
    functionLinenumberEnd: 4781
    functionName: datetime_new
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - MONTH_IS_SANE
    - PyUnicode_READY
    - PyTuple_GET_SIZE
    - Py_DECREF
    - datetime_from_pickle
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsLatin1String
    - PyErr_ExceptionMatches
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyTuple_GET_ITEM
    - PyUnicode_GET_LENGTH
    - new_datetime_ex2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4801,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4807
      start: 4793
    functionDepth: 1
    functionLinenumber: 4793
    functionLinenumberEnd: 4807
    functionName: utc_to_seconds
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - ymd_to_ord
    linkageType: ''
    returnType: long long
    signature: "long long utc_to_seconds(int year, int month, int day,\n               int
      hour, int minute, int second)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4817,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4821,1
    - Dst: utc_to_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - u
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4829
      start: 4809
    functionDepth: 2
    functionLinenumber: 4809
    functionLinenumberEnd: 4829
    functionName: local
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_localtime
    - utc_to_seconds
    - PyErr_SetString
    linkageType: ''
    returnType: long long
    signature: long long local(long long u)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4842,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4856,1
    - Dst: utc_to_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4877,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4880,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4885,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4892,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - cls
    - f
    - timet
    - us
    - tzinfo
    argTypes:
    - PyObject*
    - TM_FUNC
    - time_t
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4894
      start: 4835
    functionDepth: 3
    functionLinenumber: 4835
    functionLinenumberEnd: 4894
    functionName: datetime_from_timet_and_us
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - local
    - utc_to_seconds
    - f
    - Py_MIN
    - new_datetime_subclass_fold_ex
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_from_timet_and_us(PyObject *cls, TM_FUNC f, time_t
      timet, int us,\n                           PyObject *tzinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToTimeval
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4910,1
    - Dst: datetime_from_timet_and_us
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - cls
    - f
    - timestamp
    - tzinfo
    argTypes:
    - PyObject*
    - TM_FUNC
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4903
    functionDepth: 4
    functionLinenumber: 4903
    functionLinenumberEnd: 4915
    functionName: datetime_from_timestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_ObjectToTimeval
    - datetime_from_timet_and_us
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndatetime_from_timestamp(PyObject *cls, TM_FUNC f, PyObject
      *timestamp,\n                        PyObject *tzinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetSystemClock
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4924,1
    - Dst: _PyTime_AsTimevalTime_t
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4928,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4930,1
    - Dst: datetime_from_timet_and_us
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cls
    - f
    - tzinfo
    argTypes:
    - PyObject*
    - TM_FUNC
    - PyObject*
    assertStmts:
    - condition: (0 <= us && us <= 999999)
      pos:
        line_end: 4929
        line_start: 4929
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 4933
      start: 4921
    functionDepth: 4
    functionLinenumber: 4921
    functionLinenumberEnd: 4933
    functionName: datetime_best_possible
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimevalTime_t
    - assert
    - _PyTime_GetSystemClock
    - datetime_from_timet_and_us
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_best_possible(PyObject *cls, TM_FUNC f, PyObject *tzinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4957,1
    - Dst: datetime_best_possible
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4960,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - type
    - tz
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4969
      start: 4948
    functionDepth: 5
    functionLinenumber: 4948
    functionLinenumberEnd: 4969
    functionName: datetime_datetime_now_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - _PyObject_CallMethodId
    - datetime_best_possible
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_now_impl(PyTypeObject *type, PyObject *tz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: datetime_best_possible
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4978
      start: 4974
    functionDepth: 5
    functionLinenumber: 4974
    functionLinenumberEnd: 4978
    functionName: datetime_utcnow
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_best_possible
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utcnow(PyObject *cls, PyObject *dummy)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4989,1
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4992,1
    - Dst: datetime_from_timestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:4995,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - cls
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5005
      start: 4981
    functionDepth: 5
    functionLinenumber: 4981
    functionLinenumberEnd: 5005
    functionName: datetime_fromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - check_tzinfo_subclass
    - _PyObject_CallMethodId
    - datetime_from_timestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_fromtimestamp(PyObject *cls, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5014,1
    - Dst: datetime_from_timestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5018
      start: 5008
    functionDepth: 5
    functionLinenumber: 5008
    functionLinenumberEnd: 5018
    functionName: datetime_utcfromtimestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - datetime_from_timestamp
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utcfromtimestamp(PyObject *cls, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5026,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5028,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5032,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5021
    functionDepth: 1
    functionLinenumber: 5021
    functionLinenumberEnd: 5038
    functionName: datetime_strptime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - PyArg_ParseTuple
    - _Py_IDENTIFIER
    - PyImport_ImportModuleNoBlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_strptime(PyObject *cls, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5050,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5054,1
    - Dst: new_datetime_subclass_fold_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5059,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5059,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5060,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5061,1
    - Dst: TIME_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5062,1
    - Dst: TIME_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5063,1
    - Dst: TIME_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5064,1
    - Dst: TIME_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5065,1
    - Dst: TIME_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5067,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - cls
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5071
      start: 5041
    functionDepth: 2
    functionLinenumber: 5041
    functionLinenumberEnd: 5071
    functionName: datetime_combine
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - TIME_GET_HOUR
    - TIME_GET_MINUTE
    - TIME_GET_SECOND
    - TIME_GET_FOLD
    - HASTZINFO
    - GET_MONTH
    - TIME_GET_MICROSECOND
    - PyArg_ParseTupleAndKeywords
    - GET_YEAR
    - GET_DAY
    - new_datetime_subclass_fold_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_combine(PyObject *cls, PyObject *args, PyObject *kw)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5082,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5088,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5088,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5089,1
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5093,1
    - Dst: PyUnicode_WriteChar
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5098,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - dtstr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5104
      start: 5073
    functionDepth: 1
    functionLinenumber: 5073
    functionLinenumberEnd: 5104
    functionName: _sanitize_isoformat_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_WriteChar
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_GetLength
    - _PyUnicode_Copy
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sanitize_isoformat_str(PyObject *dtstr)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5109,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5111,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5112,1
    - Dst: _sanitize_isoformat_str
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5117,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5123,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5126,1
    - Dst: parse_isoformat_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5142,1
    - Dst: parse_isoformat_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5164,1
    - Dst: tzinfo_from_isoformat_results
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5171,1
    - Dst: new_datetime_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5180,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5184,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5187,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - cls
    - dtstr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dtstr != NULL)
      pos:
        line_end: 5108
        line_start: 5108
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5190
      start: 5106
    functionDepth: 4
    functionLinenumber: 5106
    functionLinenumberEnd: 5190
    functionName: datetime_fromisoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - parse_isoformat_time
    - PyUnicode_AsUTF8AndSize
    - new_datetime_subclass_ex
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - parse_isoformat_date
    - PyUnicode_Check
    - assert
    - tzinfo_from_isoformat_results
    - Py_XDECREF
    - _sanitize_isoformat_str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_fromisoformat(PyObject *cls, PyObject *dtstr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5199,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5200,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5196
    functionDepth: 1
    functionLinenumber: 5196
    functionLinenumberEnd: 5203
    functionName: datetime_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - HASTZINFO
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void datetime_dealloc(PyDateTime_DateTime *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5212,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5213
      start: 5210
    functionDepth: 3
    functionLinenumber: 5210
    functionLinenumberEnd: 5213
    functionName: datetime_utcoffset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - GET_DT_TZINFO
    - call_utcoffset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utcoffset(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_dst
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5217,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5215
    functionDepth: 3
    functionLinenumber: 5215
    functionLinenumberEnd: 5218
    functionName: datetime_dst
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - call_dst
    - GET_DT_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_dst(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_tzname
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5222,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5223
      start: 5220
    functionDepth: 3
    functionLinenumber: 5220
    functionLinenumberEnd: 5223
    functionName: datetime_tzname
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - call_tzname
    - GET_DT_TZINFO
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_tzname(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5239,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5240,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5241,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5241,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5242,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5243,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5244,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5244,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5245,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5246,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5248,1
    - Dst: normalize_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5249,1
    - Dst: new_datetime_subclass_ex
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5254,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5256,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - date
    - delta
    - factor
    argTypes:
    - PyDateTime_DateTime*
    - PyDateTime_Delta*
    - int
    assertStmts:
    - condition: (factor == 1 || factor == -1)
      pos:
        line_end: 5247
        line_start: 5247
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5258
      start: 5232
    functionDepth: 4
    functionLinenumber: 5232
    functionLinenumberEnd: 5258
    functionName: add_datetime_timedelta
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 2
    functionsReached:
    - assert
    - GET_TD_MICROSECONDS
    - GET_TD_SECONDS
    - DATE_GET_HOUR
    - GET_TD_DAYS
    - new_datetime_subclass_ex
    - GET_MONTH
    - HASTZINFO
    - normalize_datetime
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - Py_TYPE
    - GET_YEAR
    - GET_DAY
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nadd_datetime_timedelta(PyDateTime_DateTime *date, PyDateTime_Delta
      *delta,\n                       int factor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5263,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5265,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5267,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5272,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5260
    functionDepth: 5
    functionLinenumber: 5260
    functionLinenumberEnd: 5279
    functionName: datetime_add
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - add_datetime_timedelta
    - PyDelta_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_add(PyObject *left, PyObject *right)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5286,1
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5288,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5293,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5293,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5295,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5296,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5299,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5304,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5312,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5317,1
    - Dst: delta_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5318,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5321,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5325,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5326,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5327,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5327,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5328,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5329,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5330,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5330,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5331,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5332,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5337,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5338,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5339,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5340,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5341,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5342,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5343,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5344,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5345,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5350,1
    - Dst: delta_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5350,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5351,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5354,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5356,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5364,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5366
      start: 5281
    functionDepth: 5
    functionLinenumber: 5281
    functionLinenumberEnd: 5366
    functionName: datetime_subtract
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyDateTime_Check
    - DATE_GET_HOUR
    - GET_MONTH
    - GET_DT_TZINFO
    - ymd_to_ord
    - new_delta
    - GET_DAY
    - Py_INCREF
    - DATE_GET_MICROSECOND
    - datetime_utcoffset
    - delta_subtract
    - Py_DECREF
    - PyDelta_Check
    - DATE_GET_SECOND
    - add_datetime_timedelta
    - Py_SETREF
    - PyErr_SetString
    - GET_YEAR
    - delta_cmp
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_subtract(PyObject *left, PyObject *right)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5373,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5376,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5377,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5380,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5380,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5380,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5381,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5381,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5382,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5383,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5385,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5386,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5389,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5389,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5389,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5390,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5390,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5391,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5394,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5397,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5397,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5397,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5398,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5398,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5400,1
    - Dst: append_keyword_fold
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5401,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5401,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5402,1
    - Dst: append_keyword_tzinfo
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5370
    functionDepth: 2
    functionLinenumber: 5370
    functionLinenumberEnd: 5405
    functionName: datetime_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - append_keyword_tzinfo
    - DATE_GET_FOLD
    - PyUnicode_FromFormat
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - Py_TYPE
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - append_keyword_fold
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_repr(PyDateTime_DateTime *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5407
    functionDepth: 1
    functionLinenumber: 5407
    functionLinenumberEnd: 5411
    functionName: datetime_str
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_str(PyDateTime_DateTime *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5421,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5431,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5434,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5445,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5446,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5455,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5456,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5460,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5461,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5461,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5462,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5463,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5463,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5464,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5467,1
    - Dst: format_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5471,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5473,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5476,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5476,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5478
      start: 5413
    functionDepth: 4
    functionLinenumber: 5413
    functionLinenumberEnd: 5478
    functionName: datetime_isoformat
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - format_utcoffset
    - PyUnicode_FromString
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyUnicode_AppendAndDel
    - PyUnicode_FromFormat
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - PyErr_Format
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - PyArg_ParseTupleAndKeywords
    - GET_YEAR
    - GET_DAY
    - strcmp
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_isoformat(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format_ctime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5483,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5484,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5485,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5480
    functionDepth: 2
    functionLinenumber: 5480
    functionLinenumberEnd: 5487
    functionName: datetime_ctime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    - format_ctime
    - DATE_GET_HOUR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_ctime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_datetime_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5494,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5494,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5495,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5496,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5497,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5498,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5499,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5500,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5501,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5503,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5505
      start: 5491
    functionDepth: 4
    functionLinenumber: 5491
    functionLinenumberEnd: 5505
    functionName: flip_fold
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_FOLD
    - DATE_GET_MINUTE
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - Py_TYPE
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - new_datetime_ex2
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flip_fold(PyObject *dt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flip_fold
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5512,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - dt
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5518
      start: 5507
    functionDepth: 5
    functionLinenumber: 5507
    functionLinenumberEnd: 5518
    functionName: get_flip_fold_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - flip_fold
    - datetime_utcoffset
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_flip_fold_offset(PyObject *dt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_flip_fold_offset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5533,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5537,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5542,1
    - Dst: get_flip_fold_offset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5544,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5551,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - self
    - other
    - offset_self
    - offset_other
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5553
      start: 5526
    functionDepth: 6
    functionLinenumber: 5526
    functionLinenumberEnd: 5553
    functionName: pep495_eq_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - get_flip_fold_offset
    - delta_cmp
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int pep495_eq_exception(PyObject *self, PyObject *other,\n                    PyObject
      *offset_self, PyObject *offset_other)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyDateTime_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5562,1
    - Dst: PyDate_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5563,1
    - Dst: cmperror
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5575,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5580,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5580,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5581,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5584,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5586,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5589,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5597,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5597,1
    - Dst: delta_cmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5598,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5599,1
    - Dst: pep495_eq_exception
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5603,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5609,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5614,1
    - Dst: datetime_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5615,1
    - Dst: GET_TD_DAYS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5619,1
    - Dst: GET_TD_SECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5621,1
    - Dst: GET_TD_MICROSECONDS
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5623,1
    - Dst: pep495_eq_exception
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5625,1
    - Dst: diff_to_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5631,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5635,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5647,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5648,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (offset1 != offset2)
      pos:
        line_end: 5613
        line_start: 5613
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5650
      start: 5555
    functionDepth: 7
    functionLinenumber: 5555
    functionLinenumberEnd: 5650
    functionName: datetime_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_TD_MICROSECONDS
    - PyDateTime_Check
    - PyDate_Check
    - GET_DT_TZINFO
    - Py_INCREF
    - assert
    - datetime_utcoffset
    - Py_XDECREF
    - Py_DECREF
    - GET_TD_SECONDS
    - datetime_subtract
    - memcmp
    - diff_to_bool
    - PyDelta_Check
    - cmperror
    - GET_TD_DAYS
    - PyErr_SetString
    - delta_cmp
    - pep495_eq_exception
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5657,1
    - Dst: new_datetime_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5658,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5658,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5659,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5660,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5661,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5662,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5663,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5664,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5665,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5666,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5672,1
    - Dst: datetime_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5674,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5675,1
    - Dst: generic_hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5682,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5688,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5688,1
    - Dst: ymd_to_ord
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5689,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5689,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5690,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5691,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5692,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5693,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5694,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5695,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5699,1
    - Dst: delta_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5705,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5708,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5709,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5711,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDateTime_DateTime*
    assertStmts:
    - condition: (HASTZINFO(self))
      pos:
        line_end: 5687
        line_start: 5687
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 5714
      start: 5652
    functionDepth: 4
    functionLinenumber: 5652
    functionLinenumberEnd: 5714
    functionName: datetime_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - ymd_to_ord
    - new_delta
    - GET_DAY
    - Py_INCREF
    - DATE_GET_MICROSECOND
    - assert
    - datetime_utcoffset
    - new_datetime_ex2
    - delta_subtract
    - Py_DECREF
    - DATE_GET_FOLD
    - Py_TYPE
    - DATE_GET_SECOND
    - generic_hash
    - PyObject_Hash
    - GET_YEAR
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t datetime_hash(PyDateTime_DateTime *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5721,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5722,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5723,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5724,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5725,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5726,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5727,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5728,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5729,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5731,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5737,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5741,1
    - Dst: datetime_new
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5744,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5744,1
    - Dst: DATE_SET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5750
      start: 5716
    functionDepth: 5
    functionLinenumber: 5716
    functionLinenumberEnd: 5750
    functionName: datetime_replace
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - DATE_SET_FOLD
    - Py_DECREF
    - DATE_GET_FOLD
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - Py_TYPE
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - PyArg_ParseTupleAndKeywords
    - GET_YEAR
    - GET_DAY
    - PyErr_SetString
    - datetime_new
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_replace(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5761,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5765,1
    - Dst: strftime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5771,1
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5773,1
    - Dst: _PyTime_gmtime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5782,1
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5784,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5791,1
    - Dst: datetime_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5794,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5795,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5796,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5803,1
    - Dst: new_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5807,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5810,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5752
    functionDepth: 6
    functionLinenumber: 5752
    functionLinenumberEnd: 5812
    functionName: local_timezone_from_timestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strftime
    - _PyTime_localtime
    - new_datetime
    - datetime_subtract
    - _PyTime_gmtime
    - PyUnicode_DecodeLocale
    - new_delta
    - Py_XDECREF
    - new_timezone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone_from_timestamp(time_t timestamp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: datetime_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5822,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5827,1
    - Dst: divide_timedelta_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5830,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5833,1
    - Dst: _PyLong_AsTime_t
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5837,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5838,1
    - Dst: local_timezone_from_timestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - utc_time
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5841
      start: 5814
    functionDepth: 7
    functionLinenumber: 5814
    functionLinenumberEnd: 5841
    functionName: local_timezone
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - divide_timedelta_timedelta
    - PyErr_Occurred
    - Py_DECREF
    - datetime_subtract
    - _PyLong_AsTime_t
    - new_delta
    - local_timezone_from_timestamp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone(PyDateTime_DateTime *utc_time)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: local_to_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5852,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5852,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5853,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5854,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5855,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5856,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5857,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5858,1
    - Dst: local_timezone_from_timestamp
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - local_dt
    argTypes:
    - PyDateTime_DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5864
      start: 5847
    functionDepth: 7
    functionLinenumber: 5847
    functionLinenumberEnd: 5864
    functionName: local_timezone_from_local
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - DATE_GET_FOLD
    - local_to_seconds
    - DATE_GET_HOUR
    - GET_MONTH
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - local_timezone_from_timestamp
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_timezone_from_local(PyDateTime_DateTime *local_dt)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5876,1
    - Dst: check_tzinfo_subclass
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5880,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5883,1
    - Dst: local_timezone_from_local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5885,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5895,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5896,1
    - Dst: call_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5906,1
    - Dst: PyDelta_Check
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5909,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5910,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5911,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5912,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5916,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5918,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5923,1
    - Dst: new_datetime_ex2
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5926,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5926,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5927,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5928,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5929,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5930,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5931,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5932,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5934,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5936,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5945,1
    - Dst: local_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5951,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5953,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5960,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5965,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5968
      start: 5866
    functionDepth: 8
    functionLinenumber: 5866
    functionLinenumberEnd: 5968
    functionName: datetime_astimezone
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - check_tzinfo_subclass
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - PyArg_ParseTupleAndKeywords
    - GET_DAY
    - call_utcoffset
    - local_timezone
    - Py_INCREF
    - PyErr_Format
    - DATE_GET_MICROSECOND
    - new_datetime_ex2
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - DATE_GET_FOLD
    - local_timezone_from_local
    - PyDelta_Check
    - Py_TYPE
    - DATE_GET_SECOND
    - add_datetime_timedelta
    - GET_YEAR
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyDateTime_DateTime
    signature: 'PyDateTime_DateTime *

      datetime_astimezone(PyDateTime_DateTime *self, PyObject *args, PyObject *kw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5975,1
    - Dst: call_dst
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5978,1
    - Dst: delta_bool
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5984,1
    - Dst: build_struct_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5986,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5986,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5987,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5988,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5989,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5990,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:5991,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5970
    functionDepth: 3
    functionLinenumber: 5970
    functionLinenumberEnd: 5993
    functionName: datetime_timetuple
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - DATE_GET_HOUR
    - delta_bool
    - HASTZINFO
    - call_dst
    - GET_MONTH
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - build_struct_time
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_timetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: utc_to_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6000,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6002,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6007,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6018,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6027,1
    - Dst: local
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6030,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6039,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6039,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 7
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    - fold
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (a != b)
      pos:
        line_end: 6026
        line_start: 6026
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6040
      start: 5995
    functionDepth: 3
    functionLinenumber: 5995
    functionLinenumberEnd: 6040
    functionName: local_to_seconds
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 1
    functionsReached:
    - assert
    - local
    - Py_MAX
    - utc_to_seconds
    - Py_MIN
    linkageType: ''
    returnType: long long
    signature: "long long local_to_seconds(int year, int month, int day,\n                 int
      hour, int minute, int second, int fold)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6050,1
    - Dst: datetime_subtract
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6052,1
    - Dst: delta_total_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6056,1
    - Dst: local_to_seconds
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6060,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6060,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6061,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6062,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6063,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6064,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6065,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6066,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6069,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6073
      start: 6045
    functionDepth: 6
    functionLinenumber: 6045
    functionLinenumberEnd: 6073
    functionName: datetime_timestamp
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - delta_total_seconds
    - Py_DECREF
    - datetime_subtract
    - DATE_GET_FOLD
    - local_to_seconds
    - DATE_GET_HOUR
    - HASTZINFO
    - GET_MONTH
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - PyFloat_FromDouble
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_timestamp(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6078,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6078,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6079,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6081
      start: 6075
    functionDepth: 1
    functionLinenumber: 6075
    functionLinenumberEnd: 6081
    functionName: datetime_getdate
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - GET_YEAR
    - GET_DAY
    - new_date
    - GET_MONTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_getdate(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6086,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6086,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6087,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6088,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6089,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6092
      start: 6083
    functionDepth: 1
    functionLinenumber: 6083
    functionLinenumberEnd: 6092
    functionName: datetime_gettime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time
    - DATE_GET_FOLD
    - DATE_GET_HOUR
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_gettime(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6097,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6097,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6098,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6099,1
    - Dst: DATE_GET_MICROSECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6100,1
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6101,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6103
      start: 6094
    functionDepth: 1
    functionLinenumber: 6094
    functionLinenumberEnd: 6103
    functionName: datetime_gettimetz
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - new_time
    - DATE_GET_FOLD
    - DATE_GET_HOUR
    - GET_DT_TZINFO
    - DATE_GET_MICROSECOND
    - DATE_GET_SECOND
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_gettimetz(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_DT_TZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6112,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6115,1
    - Dst: call_utcoffset
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6119,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6123,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6125,1
    - Dst: add_datetime_timedelta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6130,1
    - Dst: GET_YEAR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6135,1
    - Dst: GET_MONTH
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6136,1
    - Dst: GET_DAY
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6137,1
    - Dst: DATE_GET_HOUR
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6138,1
    - Dst: DATE_GET_MINUTE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6139,1
    - Dst: DATE_GET_SECOND
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6142,1
    - Dst: build_struct_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6144
      start: 6105
    functionDepth: 5
    functionLinenumber: 6105
    functionLinenumberEnd: 6144
    functionName: datetime_utctimetuple
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - DATE_GET_HOUR
    - GET_MONTH
    - GET_DT_TZINFO
    - DATE_GET_SECOND
    - GET_YEAR
    - GET_DAY
    - add_datetime_timedelta
    - build_struct_time
    - call_utcoffset
    - DATE_GET_MINUTE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_utctimetuple(PyDateTime_DateTime *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6159,1
    - Dst: DATE_GET_FOLD
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6162,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6164,1
    - Dst: HASTZINFO
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6165,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6166,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6168,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyDateTime_DateTime*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6172
      start: 6153
    functionDepth: 1
    functionLinenumber: 6153
    functionLinenumberEnd: 6172
    functionName: datetime_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - DATE_GET_FOLD
    - PyTuple_Pack
    - HASTZINFO
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_getstate(PyDateTime_DateTime *self, int proto)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6178,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6181,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6181,1
    - Dst: datetime_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6182
      start: 6174
    functionDepth: 2
    functionLinenumber: 6174
    functionLinenumberEnd: 6182
    functionName: datetime_reduce_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - PyArg_ParseTuple
    - datetime_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_reduce_ex(PyDateTime_DateTime *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6187,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6187,1
    - Dst: datetime_getstate
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyDateTime_DateTime*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6184
    functionDepth: 2
    functionLinenumber: 6184
    functionLinenumberEnd: 6188
    functionName: datetime_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    - datetime_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_reduce(PyDateTime_DateTime *self, PyObject *arg)'
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6389,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6393,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6395,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6397,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6399,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6401,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6403,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6409,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6410,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6412,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6414,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6417,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6419,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6422,1
    - Dst: new_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6427,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6428,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6430,1
    - Dst: new_date
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6432,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6433,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6435,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6437,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6440,1
    - Dst: new_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6445,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6446,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6448,1
    - Dst: new_time
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6450,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6453,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6455,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6456,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6458,1
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6463,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6466,1
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6468,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6469,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6471,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6473,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6476,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6481,1
    - Dst: create_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6484,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6485,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6486,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6494,1
    - Dst: create_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6498,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6501,1
    - Dst: new_delta
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6503,1
    - Dst: create_timezone
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6507,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6510,1
    - Dst: new_datetime
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6513,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6519,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6520,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6522,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6523,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6525,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6526,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6529,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6530,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6532,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6533,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6535,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6536,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6538,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6539,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6541,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6544,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6549,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6550,1
    - Dst: days_before_year
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6550,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6555,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6556,1
    - Dst: days_before_year
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6556,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6561,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6562,1
    - Dst: days_before_year
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6562,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6564,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6565,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6566,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6567,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6575,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6576,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Modules/_datetimemodule.c:6577,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (DI400Y == days_before_year(400+1))
      pos:
        line_end: 6555
        line_start: 6555
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (DI100Y == days_before_year(100+1))
      pos:
        line_end: 6561
        line_start: 6561
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    - condition: (DI4Y == days_before_year(4+1))
      pos:
        line_end: 6549
        line_start: 6549
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    constantsTouched: []
    func_position:
      end: 6581
      start: 6381
    functionDepth: 2
    functionLinenumber: 6381
    functionLinenumberEnd: 6581
    functionName: PyInit__datetime
    functionSourceFile: /src/Python-3.8.3/Modules/_datetimemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    - Py_BUILD_ASSERT
    - PyType_Ready
    - Py_DECREF
    - new_time
    - new_datetime
    - Py_INCREF
    - PyModule_Create
    - new_date
    - create_timezone
    - PyLong_FromDouble
    - PyModule_AddObject
    - PyCapsule_New
    - days_before_year
    - new_delta
    - PyDict_SetItemString
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__datetime(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/errnomodule.c:52,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/errnomodule.c:53,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/errnomodule.c:61,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/errnomodule.c:63,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/errnomodule.c:65,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/errnomodule.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - d
    - de
    - name
    - code
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: _inscode
    functionSourceFile: /src/Python-3.8.3/Modules/errnomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - PyDict_SetItem
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _inscode(PyObject *d, PyObject *de, const char *name, int code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/errnomodule.c:99,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/errnomodule.c:102,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/errnomodule.c:103,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/errnomodule.c:104,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:119,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:122,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:125,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:128,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:132,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:135,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:138,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:141,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:144,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:147,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:150,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:153,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:156,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:159,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:163,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:166,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:169,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:172,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:176,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:179,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:183,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:186,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:190,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:193,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:197,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:200,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:203,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:207,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:210,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:213,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:216,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:220,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:223,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:226,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:229,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:232,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:236,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:239,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:243,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:246,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:249,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:253,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:256,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:260,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:263,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:267,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:270,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:273,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:277,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:280,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:283,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:286,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:290,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:293,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:296,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:300,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:303,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:306,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:309,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:312,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:315,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:319,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:322,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:325,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:328,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:331,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:335,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:338,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:341,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:344,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:348,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:351,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:355,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:358,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:361,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:365,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:368,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:371,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:374,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:377,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:380,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:383,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:386,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:389,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:393,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:396,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:399,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:403,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:406,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:409,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:413,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:416,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:419,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:422,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:425,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:428,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:431,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:434,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:437,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:440,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:443,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:446,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:450,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:453,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:457,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:460,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:463,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:466,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:470,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:473,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:476,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:479,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:482,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:485,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:489,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:492,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:495,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:498,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:502,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:505,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:509,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:512,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:515,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:518,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:521,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:525,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:528,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:532,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:535,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:539,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:542,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:545,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:548,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:552,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:555,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:558,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:561,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:564,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:567,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:570,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:574,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:577,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:581,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:584,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:588,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:591,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:594,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:597,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:601,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:604,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:607,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:610,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:614,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:617,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:620,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:623,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:626,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:630,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:633,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:637,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:640,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:643,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:647,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:650,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:653,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:656,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:659,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:662,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:665,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:668,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:671,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:674,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:677,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:680,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:683,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:686,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:689,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:692,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:695,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:698,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:701,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:704,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:707,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:710,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:713,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:716,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:719,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:722,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:725,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:728,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:731,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:734,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:737,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:740,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:743,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:746,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:749,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:752,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:755,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:758,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:761,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:764,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:767,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:770,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:773,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:776,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:779,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:782,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:785,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:788,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:791,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:794,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:797,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:800,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:803,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:806,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:809,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:812,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:815,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:818,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:821,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:824,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:827,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:830,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:833,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:836,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:839,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:842,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:845,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:848,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:851,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:854,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:857,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:862,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:865,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:868,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:871,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:874,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:877,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:882,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:885,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:888,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:891,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:894,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:897,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:900,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:903,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:906,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:909,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:912,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:915,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:918,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:921,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:924,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:927,1
    - Dst: inscode
      Src: /src/Python-3.8.3/Modules/errnomodule.c:930,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/errnomodule.c:933,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 266
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 935
    functionName: PyInit_errno
    functionSourceFile: /src/Python-3.8.3/Modules/errnomodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - inscode
    - PyModule_GetDict
    - PyModule_Create
    - PyDict_New
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_errno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - d
    - ','
    - ds
    - ','
    - de
    - ','
    - name
    - ','
    - code
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: inscode
    functionSourceFile: /src/Python-3.8.3/Modules/errnomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inscode(d, ds, de, name, code, comment)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR_peek_last_error
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:73,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:75,1
    - Dst: ERR_clear_error
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:78,1
    - Dst: ERR_lib_error_string
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:80,1
    - Dst: ERR_func_error_string
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:81,1
    - Dst: ERR_reason_error_string
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:82,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:85,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:88,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: _setException
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - ERR_reason_error_string
    - ERR_clear_error
    - ERR_lib_error_string
    - PyErr_Format
    - PyErr_SetString
    - ERR_func_error_string
    - ERR_peek_last_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _setException(PyObject *exc)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_nid
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:100,1
    - Dst: OBJ_nid2ln
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:169,1
    - Dst: OBJ_nid2sn
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:171,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:175,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 1
    argNames:
    - md
    argTypes:
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 176
    functionName: py_digest_name
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - OBJ_nid2sn
    - EVP_MD_nid
    - OBJ_nid2ln
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_digest_name(const EVP_MD *md)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:181,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:188,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:188,1
    - Dst: EVP_sha512_224
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:189,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:191,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:191,1
    - Dst: EVP_sha512_256
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:192,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:197,1
    - Dst: EVP_sha3_224
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:198,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:200,1
    - Dst: EVP_sha3_256
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:201,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:203,1
    - Dst: EVP_sha3_384
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:204,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:206,1
    - Dst: EVP_sha3_512
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:207,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:211,1
    - Dst: EVP_shake128
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:212,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:214,1
    - Dst: EVP_shake256
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:215,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:219,1
    - Dst: EVP_blake2s256
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:220,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:222,1
    - Dst: EVP_blake2b512
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 229
    functionName: py_digest_by_name
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha3_384
    - EVP_sha512_256
    - EVP_sha512_224
    - EVP_shake256
    - EVP_shake128
    - EVP_sha3_224
    - EVP_blake2s256
    - EVP_blake2b512
    - EVP_get_digestbyname
    - EVP_sha3_256
    - strcmp
    - EVP_sha3_512
    linkageType: ''
    returnType: EVP_MD
    signature: 'EVP_MD *

      py_digest_by_name(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:234,1
    - Dst: EVP_MD_CTX_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:243,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 249
    functionName: newEVPobject
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_new
    - PyErr_NoMemory
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: EVPobject
    signature: 'EVPobject *

      newEVPobject(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:260,1
    - Dst: EVP_DigestUpdate
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:261,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - vp
    - len
    argTypes:
    - EVPobject*
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 269
    functionName: EVP_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - _setException
    - EVP_DigestUpdate
    linkageType: ''
    returnType: int
    signature: int EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:277,1
    - Dst: EVP_MD_CTX_free
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:278,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: EVP_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - PyObject_Del
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void EVP_dealloc(EVPobject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:286,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:287,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - new_ctx_p
    - self
    argTypes:
    - EVP_MD_CTX*
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: locked_EVP_MD_CTX_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_copy
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: int
    signature: int locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: newEVPobject
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:306,1
    - Dst: locked_EVP_MD_CTX_copy
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:310,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: EVP_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - locked_EVP_MD_CTX_copy
    - Py_DECREF
    - newEVPobject
    - _setException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_copy_impl(EVPobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:331,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:333,1
    - Dst: locked_EVP_MD_CTX_copy
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:337,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:338,1
    - Dst: EVP_MD_CTX_size
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:340,1
    - Dst: EVP_DigestFinal
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:341,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:342,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:346,1
    - Dst: EVP_MD_CTX_free
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: EVP_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - EVP_MD_CTX_size
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - _setException
    - EVP_DigestFinal
    - locked_EVP_MD_CTX_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_digest_impl(EVPobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:365,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:367,1
    - Dst: locked_EVP_MD_CTX_copy
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:372,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:373,1
    - Dst: EVP_MD_CTX_size
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:375,1
    - Dst: EVP_DigestFinal
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:376,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:377,1
    - Dst: EVP_MD_CTX_free
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:381,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 384
    functionName: EVP_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - PyErr_NoMemory
    - EVP_MD_CTX_size
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - _setException
    - EVP_DigestFinal
    - locked_EVP_MD_CTX_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_hexdigest_impl(EVPobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:402,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:405,1
    - Dst: EVP_hash
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:412,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:413,1
    - Dst: EVP_hash
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:416,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - EVPobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: EVP_update
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_hash
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - PyThread_allocate_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_update(EVPobject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_block_size
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:438,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - EVPobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: EVP_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - EVP_MD_CTX_block_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_get_block_size(EVPobject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_size
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:446,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - EVPobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: EVP_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - EVP_MD_CTX_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_get_digest_size(EVPobject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: py_digest_name
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:453,1
    - Dst: EVP_MD_CTX_md
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - EVPobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: EVP_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_digest_name
    - EVP_MD_CTX_md
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_get_name(EVPobject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py_digest_name
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:477,1
    - Dst: EVP_MD_CTX_md
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:477,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - EVPobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 484
    functionName: EVP_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_digest_name
    - EVP_MD_CTX_md
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_repr(EVPobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:552,1
    - Dst: newEVPobject
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:556,1
    - Dst: EVP_DigestInit_ex
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:559,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:560,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:561,1
    - Dst: EVP_hash
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:568,1
    - Dst: EVP_hash
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:574,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - digest
    - cp
    - len
    argTypes:
    - EVP_MD*
    - unsigned char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 580
    functionName: EVPnew
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - newEVPobject
    - EVP_DigestInit_ex
    - EVP_hash
    - _setException
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nEVPnew(const EVP_MD *digest,\n       const unsigned char
      *cp, Py_ssize_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:608,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:609,1
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:614,1
    - Dst: py_digest_by_name
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:616,1
    - Dst: EVPnew
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:618,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - module
    - name_obj
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 623
    functionName: EVP_new_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_digest_by_name
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - EVPnew
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_new_impl(PyObject *module, PyObject *name_obj, PyObject *data_obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:632,1
    - Dst: EVPnew
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:634,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - data_obj
    - digest
    argTypes:
    - PyObject*
    - PyObject*
    - EVP_MD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: EVP_fast_new
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - EVPnew
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_fast_new(PyObject *module, PyObject *data_obj, const EVP_MD *digest)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:655,1
    - Dst: EVP_md5
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 5
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: _hashlib_openssl_md5_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_fast_new
    - EVP_md5
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_md5_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:672,1
    - Dst: EVP_sha1
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 668
    functionDepth: 5
    functionLinenumber: 668
    functionLinenumberEnd: 673
    functionName: _hashlib_openssl_sha1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_fast_new
    - EVP_sha1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha1_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:689,1
    - Dst: EVP_sha224
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 5
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: _hashlib_openssl_sha224_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha224
    - EVP_fast_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha224_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:706,1
    - Dst: EVP_sha256
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: _hashlib_openssl_sha256_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha256
    - EVP_fast_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha256_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:723,1
    - Dst: EVP_sha384
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: _hashlib_openssl_sha384_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_sha384
    - EVP_fast_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha384_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_fast_new
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:740,1
    - Dst: EVP_sha512
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - data_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 5
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: _hashlib_openssl_sha512_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_fast_new
    - EVP_sha512
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha512_impl(PyObject *module, PyObject *data_obj)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:770,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:775,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:787,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:792,1
    - Dst: EVP_MD_size
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:798,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:800,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:801,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:806,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:812,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:817,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:821,1
    - Dst: PKCS5_PBKDF2_HMAC
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:824,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:831,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:832,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 6
    argNames:
    - module
    - hash_name
    - password
    - salt
    - iterations
    - dklen_obj
    argTypes:
    - PyObject*
    - char*
    - Py_buffer*
    - Py_buffer*
    - long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 838
    functionName: pbkdf2_hmac_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_size
    - PyBytes_FromStringAndSize
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_CLEAR
    - PKCS5_PBKDF2_HMAC
    - _setException
    - PyErr_SetString
    - PyBytes_AS_STRING
    - EVP_get_digestbyname
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npbkdf2_hmac_impl(PyObject *module, const char *hash_name,\n
      \                Py_buffer *password, Py_buffer *salt, long iterations,\n                 PyObject
      *dklen_obj)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:875,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:881,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:886,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:891,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:892,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:893,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:898,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:903,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:904,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:905,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:910,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:911,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:912,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:920,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:927,1
    - Dst: EVP_PBE_scrypt
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:934,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:937,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:942,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:946,1
    - Dst: EVP_PBE_scrypt
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:949,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:958,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:959,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 8
    argNames:
    - module
    - password
    - salt
    - n_obj
    - r_obj
    - p_obj
    - maxmem
    - dklen
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - PyObject*
    - PyObject*
    - PyObject*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 963
    functionName: _hashlib_scrypt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_CLEAR
    - _setException
    - PyErr_Format
    - PyErr_SetString
    - EVP_PBE_scrypt
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_scrypt_impl(PyObject *module, Py_buffer *password,
      Py_buffer *salt,\n                     PyObject *n_obj, PyObject *r_obj, PyObject
      *p_obj,\n                     long maxmem, long dklen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_digestbyname
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:989,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:995,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1000,1
    - Dst: HMAC
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1006,1
    - Dst: _setException
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1015,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - module
    - key
    - msg
    - digest
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1019
    functionName: _hashlib_hmac_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _setException
    - PyErr_SetString
    - EVP_get_digestbyname
    - HMAC
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_hashlib_hmac_digest_impl(PyObject *module, Py_buffer
      *key, Py_buffer *msg,\n                          const char *digest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1036,1
    - Dst: py_digest_name
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1040,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - md
    - from
    - to
    - arg
    argTypes:
    - EVP_MD*
    - char*
    - char*
    - void*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 1035
        line_start: 1035
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
    constantsTouched: []
    func_position:
      end: 1049
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1049
    functionName: _openssl_hash_name_mapper
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - py_digest_name
    - assert
    - Py_DECREF
    - PySet_Add
    linkageType: ''
    returnType: void
    signature: "void _openssl_hash_name_mapper(const EVP_MD *md, const char *from,\n
      \                         const char *to, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1057,1
    - Dst: EVP_MD_do_all
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1062,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1069
    functionName: generate_hash_name_list
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - EVP_MD_do_all
    - Py_DECREF
    - PyFrozenSet_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      generate_hash_name_list(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_add_all_algorithms_noconf
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1110,1
    - Dst: ERR_load_crypto_strings
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1111,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1119,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1120,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1123,1
    - Dst: generate_hash_name_list
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1127,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1129,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1132,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1133,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1137,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_hashopenssl.c:1138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1141
    functionName: PyInit__hashlib
    functionSourceFile: /src/Python-3.8.3/Modules/_hashopenssl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - generate_hash_name_list
    - Py_INCREF
    - OPENSSL_add_all_algorithms_noconf
    - PyModule_Create
    - ERR_load_crypto_strings
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__hashlib(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_statisticsmodule.c:40,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_statisticsmodule.c:69,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_statisticsmodule.c:69,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_statisticsmodule.c:119,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - module
    - p
    - mu
    - sigma
    argTypes:
    - PyObject*
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 121
    functionName: _statistics__normal_dist_inv_cdf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_statisticsmodule.c
    functionUses: 0
    functionsReached:
    - fabs
    - sqrt
    - log
    - PyErr_SetString
    linkageType: ''
    returnType: double
    signature: "double _statistics__normal_dist_inv_cdf_impl(PyObject *module, double
      p, double mu,\n                                      double sigma)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_statisticsmodule.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: PyInit__statistics
    functionSourceFile: /src/Python-3.8.3/Modules/_statisticsmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__statistics(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:19,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:23,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:32,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:35,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:36,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - list
    - item
    - lo
    - hi
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 45
    functionName: internal_bisect_right
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Size
    - PySequence_GetItem
    - PyObject_RichCompareBool
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t
      lo, Py_ssize_t hi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:56,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:57,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:58,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:61,1
    - Dst: internal_bisect_right
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:65,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: bisect_right
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyLong_FromSsize_t
    - PyArg_ParseTupleAndKeywords
    - PyTuple_GET_ITEM
    - internal_bisect_right
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bisect_right(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:92,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:93,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:94,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:97,1
    - Dst: internal_bisect_right
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:101,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:104,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:105,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 116
    functionName: insort_right
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Insert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_CallMethodId
    - PyArg_ParseTupleAndKeywords
    - PyList_CheckExact
    - PyTuple_GET_ITEM
    - internal_bisect_right
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      insort_right(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:136,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:140,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:149,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - list
    - item
    - lo
    - hi
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: internal_bisect_left
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Size
    - PySequence_GetItem
    - PyObject_RichCompareBool
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t internal_bisect_left(PyObject *list, PyObject *item, Py_ssize_t
      lo, Py_ssize_t hi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:173,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:174,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:175,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:178,1
    - Dst: internal_bisect_left
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:182,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: bisect_left
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - internal_bisect_left
    - PyLong_FromSsize_t
    - PyArg_ParseTupleAndKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bisect_left(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:209,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:210,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:211,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:213,1
    - Dst: internal_bisect_left
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:217,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:220,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:221,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:224,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 231
    functionName: insort_left
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Insert
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_CallMethodId
    - internal_bisect_left
    - PyArg_ParseTupleAndKeywords
    - PyList_CheckExact
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      insort_left(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_bisectmodule.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: PyInit__bisect
    functionSourceFile: /src/Python-3.8.3/Modules/_bisectmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__bisect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: PyProfiler_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyProfiler_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PyProfiler_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyProfiler_CheckExact(op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_lsprof.c:63,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_lsprof.c:65,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/_lsprof.c:74,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/_lsprof.c:80,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:82,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_lsprof.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: CallExternalTimer
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromNanosecondsObject
    - Py_DECREF
    - PyErr_WriteUnraisable
    - _PyTime_FromSecondsObject
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t CallExternalTimer(ProfilerObject *pObj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CallExternalTimer
      Src: /src/Python-3.8.3/Modules/_lsprof.c:94,1
    - Dst: _PyTime_GetPerfCounter
      Src: /src/Python-3.8.3/Modules/_lsprof.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: call_timer
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetPerfCounter
    - CallExternalTimer
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t call_timer(ProfilerObject *pObj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:108,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:109,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:122,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:124,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:126,1
    - Dst: PyModule_GetNameObject
      Src: /src/Python-3.8.3/Modules/_lsprof.c:127,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_lsprof.c:129,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_lsprof.c:133,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_lsprof.c:135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:137,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:140,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_lsprof.c:142,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_lsprof.c:149,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Modules/_lsprof.c:153,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_lsprof.c:153,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:154,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:155,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/_lsprof.c:157,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:158,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_lsprof.c:164,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:165,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_lsprof.c:166,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_lsprof.c:169,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 172
    functionName: normalizeUserObj
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - _PyUnicode_EqualToASCIIString
    - PyModule_GetNameObject
    - PyUnicode_FromString
    - Py_DECREF
    - _PyType_Lookup
    - Py_INCREF
    - PyUnicode_FromFormat
    - PyCFunction_Check
    - Py_TYPE
    - PyUnicode_Check
    - PyObject_Repr
    - PyErr_Clear
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalizeUserObj(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lsprof.c:178,1
    - Dst: normalizeUserObj
      Src: /src/Python-3.8.3/Modules/_lsprof.c:183,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_lsprof.c:185,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:186,1
    - Dst: RotatingTree_Add
      Src: /src/Python-3.8.3/Modules/_lsprof.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - pObj
    - key
    - userObj
    argTypes:
    - ProfilerObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 200
    functionName: newProfilerEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - normalizeUserObj
    - RotatingTree_Add
    - PyMem_Free
    - PyMem_Malloc
    - PyErr_Clear
    linkageType: ''
    returnType: ProfilerEntry
    signature: 'ProfilerEntry *

      newProfilerEntry(ProfilerObject *pObj, void *key, PyObject *userObj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Get
      Src: /src/Python-3.8.3/Modules/_lsprof.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pObj
    - key
    argTypes:
    - ProfilerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: getEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - RotatingTree_Get
    linkageType: ''
    returnType: ProfilerEntry
    signature: 'ProfilerEntry *

      getEntry(ProfilerObject *pObj, void *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Get
      Src: /src/Python-3.8.3/Modules/_lsprof.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pObj
    - caller
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerEntry*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: getSubEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - RotatingTree_Get
    linkageType: ''
    returnType: ProfilerSubEntry
    signature: 'ProfilerSubEntry *

      getSubEntry(ProfilerObject *pObj, ProfilerEntry *caller, ProfilerEntry* entry)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lsprof.c:219,1
    - Dst: RotatingTree_Add
      Src: /src/Python-3.8.3/Modules/_lsprof.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - pObj
    - caller
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerEntry*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: newSubEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - RotatingTree_Add
    linkageType: ''
    returnType: ProfilerSubEntry
    signature: 'ProfilerSubEntry *

      newSubEntry(ProfilerObject *pObj,  ProfilerEntry *caller, ProfilerEntry* entry)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - header
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: freeSubEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int freeSubEntry(rotating_node_t *header, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/Python-3.8.3/Modules/_lsprof.c:244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:245,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - header
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: freeEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Py_DECREF
    - RotatingTree_Enum
    linkageType: ''
    returnType: int
    signature: int freeEntry(rotating_node_t *header, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/Python-3.8.3/Modules/_lsprof.c:252,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:256,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 265
    functionName: clearEntries
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - RotatingTree_Enum
    linkageType: ''
    returnType: void
    signature: void clearEntries(ProfilerObject *pObj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getSubEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:278,1
    - Dst: newSubEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:280,1
    - Dst: call_timer
      Src: /src/Python-3.8.3/Modules/_lsprof.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 285
    functionName: initContext
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - newSubEntry
    - call_timer
    - getSubEntry
    linkageType: ''
    returnType: void
    signature: void initContext(ProfilerObject *pObj, ProfilerContext *self, ProfilerEntry
      *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: call_timer
      Src: /src/Python-3.8.3/Modules/_lsprof.c:290,1
    - Dst: getSubEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - pObj
    - self
    - entry
    argTypes:
    - ProfilerObject*
    - ProfilerContext*
    - ProfilerEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 314
    functionName: Stop
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - getSubEntry
    - call_timer
    linkageType: ''
    returnType: void
    signature: void Stop(ProfilerObject *pObj, ProfilerContext *self, ProfilerEntry
      *entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_lsprof.c:332,1
    - Dst: getEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:334,1
    - Dst: newProfilerEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:336,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_lsprof.c:348,1
    - Dst: initContext
      Src: /src/Python-3.8.3/Modules/_lsprof.c:354,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_lsprof.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - self
    - key
    - userObj
    argTypes:
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 358
    functionName: ptrace_enter_call
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - initContext
    - getEntry
    - newProfilerEntry
    - PyMem_Malloc
    - PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void ptrace_enter_call(PyObject *self, void *key, PyObject *userObj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getEntry
      Src: /src/Python-3.8.3/Modules/_lsprof.c:371,1
    - Dst: Stop
      Src: /src/Python-3.8.3/Modules/_lsprof.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 381
    functionName: ptrace_leave_call
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - getEntry
    - Stop
    linkageType: ''
    returnType: void
    signature: void ptrace_leave_call(PyObject *self, void *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ptrace_enter_call
      Src: /src/Python-3.8.3/Modules/_lsprof.c:391,1
    - Dst: ptrace_leave_call
      Src: /src/Python-3.8.3/Modules/_lsprof.c:398,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:410,1
    - Dst: ptrace_enter_call
      Src: /src/Python-3.8.3/Modules/_lsprof.c:411,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Modules/_lsprof.c:422,1
    - Dst: ptrace_leave_call
      Src: /src/Python-3.8.3/Modules/_lsprof.c:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - self
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 432
    functionName: profiler_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - ptrace_leave_call
    - PyCFunction_Check
    - ptrace_enter_call
    linkageType: ''
    returnType: int
    signature: "int profiler_callback(PyObject *self, PyFrameObject *frame, int what,\n
      \                 PyObject *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_lsprof.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: pending_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int pending_exception(ProfilerObject *pObj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_lsprof.c:499,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_lsprof.c:508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 511
    functionName: statsForSubEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - PyObject_CallFunction
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int statsForSubEntry(rotating_node_t *node, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_lsprof.c:523,1
    - Dst: RotatingTree_Enum
      Src: /src/Python-3.8.3/Modules/_lsprof.c:526,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:528,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:533,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_lsprof.c:537,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:545,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_lsprof.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - node
    - arg
    argTypes:
    - rotating_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 551
    functionName: statsForEntry
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_Append
    - PyObject_CallFunction
    - PyList_New
    - RotatingTree_Enum
    linkageType: ''
    returnType: int
    signature: int statsForEntry(rotating_node_t *node, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pending_exception
      Src: /src/Python-3.8.3/Modules/_lsprof.c:581,1
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/_lsprof.c:584,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_lsprof.c:591,1
    - Dst: RotatingTree_Enum
      Src: /src/Python-3.8.3/Modules/_lsprof.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - pObj
    - noarg
    argTypes:
    - ProfilerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 577
    functionDepth: 2
    functionLinenumber: 577
    functionLinenumberEnd: 600
    functionName: profiler_getstats
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - Py_DECREF
    - pending_exception
    - PyList_New
    - RotatingTree_Enum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profiler_getstats(ProfilerObject *pObj, PyObject* noarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pObj
    - nvalue
    argTypes:
    - ProfilerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 610
    functionName: setSubcalls
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setSubcalls(ProfilerObject *pObj, int nvalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pObj
    - nvalue
    argTypes:
    - ProfilerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 621
    functionName: setBuiltins
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int setBuiltins(ProfilerObject *pObj, int nvalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lsprof.c:639,1
    - Dst: setSubcalls
      Src: /src/Python-3.8.3/Modules/_lsprof.c:642,1
    - Dst: setBuiltins
      Src: /src/Python-3.8.3/Modules/_lsprof.c:642,1
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Modules/_lsprof.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: profiler_enable
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyEval_SetProfile
    - setSubcalls
    - setBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profiler_enable(ProfilerObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Stop
      Src: /src/Python-3.8.3/Modules/_lsprof.c:656,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_lsprof.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pObj
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 663
    functionName: flush_unmatched
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - Stop
    linkageType: ''
    returnType: void
    signature: void flush_unmatched(ProfilerObject *pObj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Modules/_lsprof.c:675,1
    - Dst: flush_unmatched
      Src: /src/Python-3.8.3/Modules/_lsprof.c:676,1
    - Dst: pending_exception
      Src: /src/Python-3.8.3/Modules/_lsprof.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - ProfilerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 671
    functionDepth: 5
    functionLinenumber: 671
    functionLinenumberEnd: 680
    functionName: profiler_disable
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - flush_unmatched
    - pending_exception
    - PyEval_SetProfile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profiler_disable(ProfilerObject *self, PyObject* noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clearEntries
      Src: /src/Python-3.8.3/Modules/_lsprof.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pObj
    - noarg
    argTypes:
    - ProfilerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 693
    functionName: profiler_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - clearEntries
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      profiler_clear(ProfilerObject *pObj, PyObject* noarg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Modules/_lsprof.c:699,1
    - Dst: flush_unmatched
      Src: /src/Python-3.8.3/Modules/_lsprof.c:700,1
    - Dst: clearEntries
      Src: /src/Python-3.8.3/Modules/_lsprof.c:701,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:702,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_lsprof.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - ProfilerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 695
    functionDepth: 5
    functionLinenumber: 695
    functionLinenumberEnd: 704
    functionName: profiler_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - flush_unmatched
    - PyEval_SetProfile
    - Py_TYPE
    - clearEntries
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void profiler_dealloc(ProfilerObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_lsprof.c:716,1
    - Dst: setSubcalls
      Src: /src/Python-3.8.3/Modules/_lsprof.c:721,1
    - Dst: setBuiltins
      Src: /src/Python-3.8.3/Modules/_lsprof.c:721,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:724,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pObj
    - args
    - kw
    argTypes:
    - ProfilerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 727
    functionName: profiler_init
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - setSubcalls
    - setBuiltins
    - PyArg_ParseTupleAndKeywords
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int profiler_init(ProfilerObject *pObj, PyObject *args, PyObject *kw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_lsprof.c:814,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_lsprof.c:817,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_lsprof.c:818,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_lsprof.c:820,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/_lsprof.c:823,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/_lsprof.c:826,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:830,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_lsprof.c:831,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lsprof.c:832,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_lsprof.c:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 838
    functionName: PyInit__lsprof
    functionSourceFile: /src/Python-3.8.3/Modules/_lsprof.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_InitType2
    - PyType_Ready
    - PyModule_GetDict
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__lsprof(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: XxoObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/xxmodule.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: newXxoObject
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:46,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/xxmodule.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - XxoObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: Xxo_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void Xxo_dealloc(XxoObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxmodule.c:53,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XxoObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: Xxo_demo
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_demo(XxoObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/xxmodule.c:69,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:71,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/xxmodule.c:74,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Modules/xxmodule.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - XxoObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: Xxo_getattro
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(XxoObject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/xxmodule.c:85,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Modules/xxmodule.c:90,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/xxmodule.c:91,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/xxmodule.c:92,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/xxmodule.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - name
    - v
    argTypes:
    - XxoObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: Xxo_setattr
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - PyDict_New
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int Xxo_setattr(XxoObject *self, const char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxmodule.c:159,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxmodule.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: xx_foo
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_foo(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxmodule.c:173,1
    - Dst: newXxoObject
      Src: /src/Python-3.8.3/Modules/xxmodule.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 179
    functionName: xx_new
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - newXxoObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_new(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxmodule.c:188,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/xxmodule.c:191,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/xxmodule.c:193,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxmodule.c:193,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Modules/xxmodule.c:194,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/xxmodule.c:195,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: xx_bug
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_INCREF
    - PyList_SetItem
    - PyList_GetItem
    - printf
    - PyObject_Print
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_bug(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxmodule.c:209,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: xx_roj
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_roj(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: null_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxmodule.c:361,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/xxmodule.c:366,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:370,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxmodule.c:371,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxmodule.c:374,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxmodule.c:376,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/xxmodule.c:379,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxmodule.c:381,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/xxmodule.c:384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 386
    functionName: xx_exec
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NewException
    - PyModule_AddObject
    - PyType_Ready
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int xx_exec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/xxmodule.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: PyInit_xx
    functionSourceFile: /src/Python-3.8.3/Modules/xxmodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key1
    - ','
    - key2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 4
    functionName: KEY_LOWER_THAN
    functionSourceFile: /src/Python-3.8.3/Modules/rotatingtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_LOWER_THAN(key1, key2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: randombits
    functionSourceFile: /src/Python-3.8.3/Modules/rotatingtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int randombits(int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KEY_LOWER_THAN
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - root
    - node
    argTypes:
    - rotating_node_t**
    - rotating_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: RotatingTree_Add
    functionSourceFile: /src/Python-3.8.3/Modules/rotatingtree.c
    functionUses: 2
    functionsReached:
    - KEY_LOWER_THAN
    linkageType: ''
    returnType: void
    signature: void RotatingTree_Add(rotating_node_t **root, rotating_node_t *node)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: randombits
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:50,1
    - Dst: KEY_LOWER_THAN
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:56,1
    - Dst: randombits
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:73,1
    - Dst: KEY_LOWER_THAN
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:74,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - rotating_node_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 101
    functionName: RotatingTree_Get
    functionSourceFile: /src/Python-3.8.3/Modules/rotatingtree.c
    functionUses: 2
    functionsReached:
    - KEY_LOWER_THAN
    - randombits
    linkageType: ''
    returnType: rotating_node_t
    signature: 'rotating_node_t *

      RotatingTree_Get(rotating_node_t **root, void *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RotatingTree_Enum
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:113,1
    - Dst: enumfn
      Src: /src/Python-3.8.3/Modules/rotatingtree.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - root
    - enumfn
    - arg
    argTypes:
    - rotating_node_t*
    - rotating_tree_enum_fn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: RotatingTree_Enum
    functionSourceFile: /src/Python-3.8.3/Modules/rotatingtree.c
    functionUses: 5
    functionsReached:
    - enumfn
    - RotatingTree_Enum
    linkageType: ''
    returnType: int
    signature: "int RotatingTree_Enum(rotating_node_t *root, rotating_tree_enum_fn
      enumfn,\n                  void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PUTS
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Modules/faulthandler.c:152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:154,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:158,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/faulthandler.c:162,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/faulthandler.c:163,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/faulthandler.c:164,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:167,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/faulthandler.c:175,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/faulthandler.c:180,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/faulthandler.c:181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:185,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:188,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/faulthandler.c:193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:195,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/faulthandler.c:198,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - file_ptr
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 202
    functionName: faulthandler_get_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - _PySys_GetObjectId
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyErr_SetString
    - PyErr_Clear
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int faulthandler_get_fileno(PyObject **file_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_UncheckedGet
      Src: /src/Python-3.8.3/Modules/faulthandler.c:209,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 217
    functionName: get_thread_state
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_UncheckedGet
    - PyErr_SetString
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      get_thread_state(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Modules/faulthandler.c:239,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/Python-3.8.3/Modules/faulthandler.c:242,1
    - Dst: _Py_DumpTraceback
      Src: /src/Python-3.8.3/Modules/faulthandler.c:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - all_threads
    - interp
    argTypes:
    - int
    - int
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: faulthandler_dump_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _Py_DumpTraceback
    - PyGILState_GetThisThreadState
    - _Py_DumpTracebackThreads
    linkageType: ''
    returnType: void
    signature: "void faulthandler_dump_traceback(int fd, int all_threads,\n                            PyInterpreterState
      *interp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/faulthandler.c:263,1
    - Dst: faulthandler_get_fileno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:268,1
    - Dst: get_thread_state
      Src: /src/Python-3.8.3/Modules/faulthandler.c:272,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/Python-3.8.3/Modules/faulthandler.c:277,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:279,1
    - Dst: _Py_DumpTraceback
      Src: /src/Python-3.8.3/Modules/faulthandler.c:284,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/faulthandler.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 291
    functionName: faulthandler_dump_traceback_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - get_thread_state
    - _Py_DumpTracebackThreads
    - _Py_DumpTraceback
    - PyErr_CheckSignals
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - faulthandler_get_fileno
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_py(PyObject *self,\n                               PyObject
      *args, PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/Python-3.8.3/Modules/faulthandler.c:300,1
    - Dst: signal
      Src: /src/Python-3.8.3/Modules/faulthandler.c:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handler
    argTypes:
    - fault_handler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: faulthandler_disable_fatal_handler
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigaction
    - signal
    linkageType: ''
    returnType: void
    signature: void faulthandler_disable_fatal_handler(fault_handler_t *handler)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/Python-3.8.3/Modules/faulthandler.c:342,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:344,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:345,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:346,1
    - Dst: faulthandler_dump_traceback
      Src: /src/Python-3.8.3/Modules/faulthandler.c:348,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:361,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 362
    functionName: faulthandler_fatal_error
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - faulthandler_dump_traceback
    - faulthandler_disable_fatal_handler
    - PUTS
    linkageType: ''
    returnType: void
    signature: void faulthandler_fatal_error(int signum)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 380
    functionName: faulthandler_ignore_exception
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int faulthandler_ignore_exception(DWORD code)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_ignore_exception
      Src: /src/Python-3.8.3/Modules/faulthandler.c:389,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:394,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:398,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:399,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:400,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:401,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:402,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:403,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:404,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:406,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/Python-3.8.3/Modules/faulthandler.c:407,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/faulthandler.c:409,1
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/Python-3.8.3/Modules/faulthandler.c:416,1
    - Dst: faulthandler_dump_traceback
      Src: /src/Python-3.8.3/Modules/faulthandler.c:422,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 1
    argNames:
    - exc_info
    argTypes:
    - struct _EXCEPTION_POINTERS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 427
    functionName: faulthandler_exc_handler
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable_fatal_handler
    - faulthandler_ignore_exception
    - faulthandler_dump_traceback
    - PUTS
    - _Py_DumpHexadecimal
    linkageType: ''
    returnType: LONG
    signature: LONG faulthandler_exc_handler(struct _EXCEPTION_POINTERS *exc_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/faulthandler.c:448,1
    - Dst: sigemptyset
      Src: /src/Python-3.8.3/Modules/faulthandler.c:451,1
    - Dst: sigaction
      Src: /src/Python-3.8.3/Modules/faulthandler.c:462,1
    - Dst: signal
      Src: /src/Python-3.8.3/Modules/faulthandler.c:464,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:469,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/faulthandler.c:477,1
    - Dst: AddVectoredExceptionHandler
      Src: /src/Python-3.8.3/Modules/faulthandler.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!handler->enabled)
      pos:
        line_end: 447
        line_start: 447
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    - condition: (fatal_error.exc_handler == NULL)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 481
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 481
    functionName: faulthandler_enable
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    - PyErr_SetFromErrno
    - signal
    - AddVectoredExceptionHandler
    - assert
    linkageType: ''
    returnType: int
    signature: int faulthandler_enable(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/faulthandler.c:492,1
    - Dst: faulthandler_get_fileno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:496,1
    - Dst: get_thread_state
      Src: /src/Python-3.8.3/Modules/faulthandler.c:500,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:504,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:505,1
    - Dst: faulthandler_enable
      Src: /src/Python-3.8.3/Modules/faulthandler.c:510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 515
    functionName: faulthandler_py_enable
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_get_fileno
    - get_thread_state
    - Py_XSETREF
    - faulthandler_enable
    - PyArg_ParseTupleAndKeywords
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_py_enable(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable_fatal_handler
      Src: /src/Python-3.8.3/Modules/faulthandler.c:525,1
    - Dst: RemoveVectoredExceptionHandler
      Src: /src/Python-3.8.3/Modules/faulthandler.c:530,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 535
    functionName: faulthandler_disable
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - RemoveVectoredExceptionHandler
    - faulthandler_disable_fatal_handler
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void faulthandler_disable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_disable
      Src: /src/Python-3.8.3/Modules/faulthandler.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 545
    functionName: faulthandler_disable_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_disable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_disable_py(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/faulthandler.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: faulthandler_is_enabled
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_is_enabled(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/Python-3.8.3/Modules/faulthandler.c:565,1
    - Dst: pthread_sigmask
      Src: /src/Python-3.8.3/Modules/faulthandler.c:566,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/faulthandler.c:570,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:573,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/faulthandler.c:577,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:579,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/Python-3.8.3/Modules/faulthandler.c:581,1
    - Dst: _exit
      Src: /src/Python-3.8.3/Modules/faulthandler.c:585,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:589,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts:
    - condition: (st == PY_LOCK_FAILURE)
      pos:
        line_end: 576
        line_start: 576
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    constantsTouched: []
    func_position:
      end: 590
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 590
    functionName: faulthandler_thread
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - pthread_sigmask
    - PyThread_acquire_lock_timed
    - _Py_DumpTracebackThreads
    - _exit
    - _Py_write_noraise
    - PyThread_release_lock
    - assert
    - sigfillset
    linkageType: ''
    returnType: void
    signature: void faulthandler_thread(void *unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:596,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:599,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:600,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:603,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:605,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/faulthandler.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 610
    functionName: cancel_dump_traceback_later
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - Py_CLEAR
    - PyMem_Free
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void cancel_dump_traceback_later(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/faulthandler.c:630,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/faulthandler.c:635,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/faulthandler.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - us
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 640
    functionName: format_timeout
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - _PyMem_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      format_timeout(_PyTime_t us)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/faulthandler.c:657,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/faulthandler.c:662,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/faulthandler.c:666,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:668,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:673,1
    - Dst: get_thread_state
      Src: /src/Python-3.8.3/Modules/faulthandler.c:678,1
    - Dst: faulthandler_get_fileno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:682,1
    - Dst: format_timeout
      Src: /src/Python-3.8.3/Modules/faulthandler.c:687,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/faulthandler.c:689,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/faulthandler.c:690,1
    - Dst: cancel_dump_traceback_later
      Src: /src/Python-3.8.3/Modules/faulthandler.c:693,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:695,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:696,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:707,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Modules/faulthandler.c:709,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:710,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:711,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/faulthandler.c:712,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:714,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 720
    functionName: faulthandler_dump_traceback_later
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - format_timeout
    - get_thread_state
    - cancel_dump_traceback_later
    - Py_CLEAR
    - Py_XSETREF
    - PyErr_NoMemory
    - Py_XINCREF
    - PyThread_acquire_lock
    - strlen
    - PyThread_start_new_thread
    - _PyTime_AsMicroseconds
    - PyErr_SetString
    - PyThread_release_lock
    - PyArg_ParseTupleAndKeywords
    - PyMem_Free
    - _PyTime_FromSecondsObject
    - faulthandler_get_fileno
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_dump_traceback_later(PyObject *self,\n                                   PyObject
      *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/Python-3.8.3/Modules/faulthandler.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: faulthandler_cancel_dump_traceback_later_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - cancel_dump_traceback_later
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_cancel_dump_traceback_later_py(PyObject *self,\n
      \                                           PyObject *Py_UNUSED(ignored))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/Python-3.8.3/Modules/faulthandler.c:738,1
    - Dst: sigaction
      Src: /src/Python-3.8.3/Modules/faulthandler.c:755,1
    - Dst: signal
      Src: /src/Python-3.8.3/Modules/faulthandler.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - signum
    - chain
    - p_previous
    argTypes:
    - int
    - int
    - _Py_sighandler_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 763
    functionName: faulthandler_register
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - sigaction
    - signal
    linkageType: ''
    returnType: int
    signature: int faulthandler_register(int signum, int chain, _Py_sighandler_t *p_previous)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_dump_traceback
      Src: /src/Python-3.8.3/Modules/faulthandler.c:782,1
    - Dst: sigaction
      Src: /src/Python-3.8.3/Modules/faulthandler.c:786,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:790,1
    - Dst: faulthandler_register
      Src: /src/Python-3.8.3/Modules/faulthandler.c:793,1
    - Dst: user_signal_t*::previous
      Src: /src/Python-3.8.3/Modules/faulthandler.c:800,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 803
    functionName: faulthandler_user
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - sigaction
    - faulthandler_register
    - faulthandler_dump_traceback
    - user_signal_t*::previous
    linkageType: ''
    returnType: void
    signature: void faulthandler_user(int signum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/faulthandler.c:810,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 822
    functionName: check_signum
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_signum(int signum)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/faulthandler.c:839,1
    - Dst: check_signum
      Src: /src/Python-3.8.3/Modules/faulthandler.c:844,1
    - Dst: get_thread_state
      Src: /src/Python-3.8.3/Modules/faulthandler.c:847,1
    - Dst: faulthandler_get_fileno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:851,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/faulthandler.c:856,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/faulthandler.c:858,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/faulthandler.c:859,1
    - Dst: faulthandler_register
      Src: /src/Python-3.8.3/Modules/faulthandler.c:864,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/faulthandler.c:866,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:873,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:874,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 882
    functionName: faulthandler_register_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - get_thread_state
    - Py_XSETREF
    - PyErr_NoMemory
    - Py_XINCREF
    - faulthandler_register
    - PyErr_SetFromErrno
    - PyArg_ParseTupleAndKeywords
    - faulthandler_get_fileno
    - memset
    - check_signum
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfaulthandler_register_py(PyObject *self,\n                         PyObject
      *args, PyObject *kwargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/Python-3.8.3/Modules/faulthandler.c:891,1
    - Dst: signal
      Src: /src/Python-3.8.3/Modules/faulthandler.c:893,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - user
    - signum
    argTypes:
    - user_signal_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 898
    functionName: faulthandler_unregister
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - sigaction
    - Py_CLEAR
    - signal
    linkageType: ''
    returnType: int
    signature: int faulthandler_unregister(user_signal_t *user, int signum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/faulthandler.c:907,1
    - Dst: check_signum
      Src: /src/Python-3.8.3/Modules/faulthandler.c:910,1
    - Dst: faulthandler_unregister
      Src: /src/Python-3.8.3/Modules/faulthandler.c:917,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/faulthandler.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 919
    functionName: faulthandler_unregister_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - faulthandler_unregister
    - PyArg_ParseTuple
    - check_signum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_unregister_py(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Modules/faulthandler.c:930,1
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Modules/faulthandler.c:931,1
    - Dst: getrlimit
      Src: /src/Python-3.8.3/Modules/faulthandler.c:938,1
    - Dst: setrlimit
      Src: /src/Python-3.8.3/Modules/faulthandler.c:940,1
    - Dst: _set_abort_behavior
      Src: /src/Python-3.8.3/Modules/faulthandler.c:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 949
    functionName: faulthandler_suppress_crash_report
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - _set_abort_behavior
    - setrlimit
    - getrlimit
    - SetErrorMode
    linkageType: ''
    returnType: void
    signature: void faulthandler_suppress_crash_report(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:957,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/faulthandler.c:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: faulthandler_read_null
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - faulthandler_suppress_crash_report
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_read_null(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:967,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:981,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 985
    functionName: faulthandler_raise_sigsegv
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - faulthandler_suppress_crash_report
    linkageType: ''
    returnType: void
    signature: void faulthandler_raise_sigsegv(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/faulthandler.c:991,1
    - Dst: faulthandler_raise_sigsegv
      Src: /src/Python-3.8.3/Modules/faulthandler.c:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: faulthandler_sigsegv
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_raise_sigsegv
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_sigsegv(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1011,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - plock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1022
    functionName: faulthandler_fatal_error_thread
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void faulthandler_fatal_error_thread(void *plock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1030,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1032,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1034,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1036,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1038,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1040,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1041,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1047,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1048,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1052
    functionName: faulthandler_fatal_error_c_thread
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - PyErr_NoMemory
    - PyThread_acquire_lock
    - faulthandler_suppress_crash_report
    - PyThread_start_new_thread
    - PyThread_release_lock
    - PyThread_allocate_lock
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_fatal_error_c_thread(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1060,1
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1064,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1068
    functionName: faulthandler_sigfpe
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - raise
    - faulthandler_suppress_crash_report
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_sigfpe(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1073,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1076
    functionName: faulthandler_sigabrt
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - abort
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_sigabrt(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1083,1
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1085,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1095
    functionName: faulthandler_fatal_error_py
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - Py_FatalError
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_fatal_error_py(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stack_overflow
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - min_sp
    - max_sp
    - depth
    argTypes:
    - uintptr_t
    - uintptr_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1115
    functionName: stack_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 1
    functionsReached:
    - stack_overflow
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t stack_overflow(uintptr_t min_sp, uintptr_t max_sp, size_t
      *depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1124,1
    - Dst: stack_overflow
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1141,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1151
    functionName: faulthandler_stack_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - stack_overflow
    - faulthandler_suppress_crash_report
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_stack_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1159,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1164,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1169
    functionName: faulthandler_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int faulthandler_traverse(PyObject *module, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1176,1
    - Dst: faulthandler_suppress_crash_report
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1178,1
    - Dst: RaiseException
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1181
    functionName: faulthandler_raise_exception
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_suppress_crash_report
    - RaiseException
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      faulthandler_raise_exception(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1267,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1274,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1278,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1282,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1288,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1302,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1305
    functionName: PyInit_faulthandler
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    - Py_DECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_faulthandler(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1310,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1315,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1316,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1323
    functionName: faulthandler_init_enable
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - _PyObject_CallMethodId
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int faulthandler_init_enable(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1340,1
    - Dst: sigaltstack
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1342,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1344,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1351,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1352,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1354,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1356,1
    - Dst: faulthandler_init_enable
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1360,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1361,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1325
    functionDepth: 2
    functionLinenumber: 1325
    functionLinenumberEnd: 1365
    functionName: _PyFaulthandler_Init
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - faulthandler_init_enable
    - _PyStatus_ERR
    - PyThread_acquire_lock
    - PyMem_Free
    - PyThread_allocate_lock
    - PyMem_Malloc
    - sigaltstack
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyFaulthandler_Init(int enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cancel_dump_traceback_later
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1372,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1373,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1374,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1378,1
    - Dst: faulthandler_unregister
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1387,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1389,1
    - Dst: faulthandler_disable
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1395,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1400,1
    - Dst: sigaltstack
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1401,1
    - Dst: sigaltstack
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1406,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/faulthandler.c:1413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1367
    functionDepth: 2
    functionLinenumber: 1367
    functionLinenumberEnd: 1417
    functionName: _PyFaulthandler_Fini
    functionSourceFile: /src/Python-3.8.3/Modules/faulthandler.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - cancel_dump_traceback_later
    - faulthandler_unregister
    - PyMem_Free
    - PyThread_release_lock
    - sigaltstack
    - faulthandler_disable
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyFaulthandler_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - ExampleObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: Example_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Example_traverse(ExampleObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ExampleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Example_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void Example_finalize(ExampleObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:36,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:38,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - ExampleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: Example_demo
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Example_demo(ExampleObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:56,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:58,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:61,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - ExampleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: Example_getattro
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Example_getattro(ExampleObject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:72,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:77,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:78,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:79,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - name
    - v
    argTypes:
    - ExampleObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 85
    functionName: Example_setattr
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - PyDict_New
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int Example_setattr(ExampleObject *self, const char *name, PyObject
      *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:117,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: testexport_foo
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      testexport_foo(PyObject *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:134,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:138,1
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:142,1
    - Dst: PyState_AddModule
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:148,1
    - Dst: PyState_RemoveModule
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:154,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - mod
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 161
    functionName: call_state_registration_func
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - PyModule_GetDef
    - PyState_RemoveModule
    - PyState_AddModule
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_state_registration_func(PyObject *mod, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:195,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:198,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:202,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:205,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:209,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:212,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:215,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:218,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 224
    functionName: execfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - PyErr_NewException
    - PyModule_AddObject
    - PyType_FromSpec
    linkageType: ''
    returnType: int
    signature: int execfunc(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - slots
    - ','
    - methods
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: TEST_MODULE_DEF
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_MODULE_DEF(name, slots, methods)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: PyInit__testmultiphase
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase(PyObject *spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:268,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:272,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:278,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:281,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:282,1
    - Dst: _PyNamespace_New
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 287
    functionName: createfunc_nonmodule
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyDict_New
    - PyErr_SetString
    - PyDict_SetItemString
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_nonmodule(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: PyInit__testmultiphase_nonmodule
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule(PyObject *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:313,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: nonmodule_bar
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nonmodule_bar(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: PyInit__testmultiphase_nonmodule_with_methods
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule_with_methods(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: PyInitU__testmultiphase_zkouka_naten_evc07gi8e
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInitU__testmultiphase_zkouka_naten_evc07gi8e(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: PyInitU_eckzbwbhc6jpgzcx415x
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInitU_eckzbwbhc6jpgzcx415x(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: PyInit_x
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_x(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: PyInit__testmultiphase_null_slots
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_null_slots(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: PyInit__testmultiphase_bad_slot_large
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_bad_slot_large(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: PyInit__testmultiphase_bad_slot_negative
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_bad_slot_negative(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: PyInit__testmultiphase_create_int_with_state
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_int_with_state(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: PyInit__testmultiphase_negative_size
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_negative_size(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: PyInit__testmultiphase_export_uninitialized
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_uninitialized(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: PyInit__testmultiphase_export_null
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_null(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 477
    functionName: PyInit__testmultiphase_export_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_raise(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:482,1
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: PyInit__testmultiphase_export_unreported_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    - PyErr_SetString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_export_unreported_exception(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: createfunc_null
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_null(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: PyInit__testmultiphase_create_null
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_null(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: createfunc_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_raise(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: PyInit__testmultiphase_create_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_raise(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:530,1
    - Dst: PyModule_New
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - spec
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: createfunc_unreported_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModule_New
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createfunc_unreported_exception(PyObject *spec, PyModuleDef *def)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: PyInit__testmultiphase_create_unreported_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_create_unreported_exception(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: PyInit__testmultiphase_nonmodule_with_exec_slots
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_nonmodule_with_exec_slots(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: execfunc_err
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int execfunc_err(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: PyInit__testmultiphase_exec_err
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_err(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 588
    functionName: execfunc_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int execfunc_raise(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: PyInit__testmultiphase_exec_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_raise(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 609
    functionName: execfunc_unreported_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int execfunc_unreported_exception(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: PyInit__testmultiphase_exec_unreported_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_exec_unreported_exception(PyObject
      *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:629,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:637,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (m_state != NULL)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/Python-3.8.3/Modules/_testmultiphase.c
    constantsTouched: []
    func_position:
      end: 640
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 640
    functionName: bad_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_VISIT
    - PyModule_GetState
    linkageType: ''
    returnType: int
    signature: int bad_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:646,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:651,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 655
    functionName: execfunc_with_bad_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyModule_GetState
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int execfunc_with_bad_traverse(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 669
    functionName: PyInit__testmultiphase_with_bad_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testmultiphase_with_bad_traverse(PyObject *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/_testmultiphase.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 679
    functionName: PyInit_imp_dummy
    functionSourceFile: /src/Python-3.8.3/Modules/_testmultiphase.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_imp_dummy(PyObject *spec)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/_math.c:52,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/_math.c:64,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:68,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:76,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_math.c:76,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/_math.c:80,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_math.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: _Py_acosh
    functionSourceFile: /src/Python-3.8.3/Modules/_math.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - Py_IS_INFINITY
    - m_log1p
    - log
    - sqrt
    linkageType: ''
    returnType: double
    signature: double _Py_acosh(double x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_math.c:102,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/_math.c:104,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/_math.c:104,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:111,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:114,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_math.c:114,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/_math.c:118,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_math.c:118,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/_math.c:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 122
    functionName: _Py_asinh
    functionSourceFile: /src/Python-3.8.3/Modules/_math.c
    functionUses: 0
    functionsReached:
    - Py_IS_NAN
    - Py_IS_INFINITY
    - copysign
    - fabs
    - log
    - m_log1p
    - sqrt
    linkageType: ''
    returnType: double
    signature: double _Py_asinh(double x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/_math.c:150,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_math.c:153,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/_math.c:167,1
    - Dst: m_log1p
      Src: /src/Python-3.8.3/Modules/_math.c:170,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/_math.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 173
    functionName: _Py_atanh
    functionSourceFile: /src/Python-3.8.3/Modules/_math.c
    functionUses: 0
    functionsReached:
    - fabs
    - copysign
    - m_log1p
    - Py_IS_NAN
    linkageType: ''
    returnType: double
    signature: double _Py_atanh(double x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_math.c:192,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/_math.c:194,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:198,1
    - Dst: exp
      Src: /src/Python-3.8.3/Modules/_math.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: _Py_expm1
    functionSourceFile: /src/Python-3.8.3/Modules/_math.c
    functionUses: 0
    functionsReached:
    - fabs
    - log
    - exp
    linkageType: ''
    returnType: double
    signature: double _Py_expm1(double x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log1p
      Src: /src/Python-3.8.3/Modules/_math.c:224,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Modules/_math.c:248,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:258,1
    - Dst: log
      Src: /src/Python-3.8.3/Modules/_math.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 265
    functionName: _Py_log1p
    functionSourceFile: /src/Python-3.8.3/Modules/_math.c
    functionUses: 0
    functionsReached:
    - fabs
    - log
    - log1p
    linkageType: ''
    returnType: double
    signature: double _Py_log1p(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: is_dbmobject
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_dbmobject(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: check_dbmobject_open
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: check_dbmobject_open(v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:71,1
    - Dst: gdbm_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:76,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:78,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:80,1
    - Dst: gdbm_strerror
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:80,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - file
    - flags
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: newdbmobject
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_SetFromErrnoWithFilename
    - gdbm_open
    - PyErr_SetString
    - gdbm_strerror
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newdbmobject(const char *file, int flags, int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_close
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:93,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dp
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: dbm_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - gdbm_close
    linkageType: ''
    returnType: void
    signature: void dbm_dealloc(dbmobject *dp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:101,1
    - Dst: gdbm_firstkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:111,1
    - Dst: gdbm_nextkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:112,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - dp
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 120
    functionName: dbm_length
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - free
    - gdbm_firstkey
    - PyErr_SetString
    - gdbm_nextkey
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dbm_length(dbmobject *dp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:129,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:131,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - o
    - d
    - failmsg
    argTypes:
    - PyObject*
    - datum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: parse_datum
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int parse_datum(PyObject *o, datum *d, const char *failmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_datum
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:149,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:153,1
    - Dst: gdbm_fetch
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:157,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:159,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:162,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - dp
    - key
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: dbm_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - parse_datum
    - PyBytes_FromStringAndSize
    - gdbm_fetch
    - PyErr_SetObject
    - PyErr_SetString
    - free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm_subscript(dbmobject *dp, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbm_subscript
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:183,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:184,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:185,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - dbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: _gdbm_gdbm_get_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - dbm_subscript
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_get_impl(dbmobject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_datum
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:202,1
    - Dst: gdbm_delete
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:208,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:210,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:213,1
    - Dst: gdbm_strerror
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:213,1
    - Dst: parse_datum
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:219,1
    - Dst: gdbm_store
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:223,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:225,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:227,1
    - Dst: gdbm_strerror
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - dp
    - v
    - w
    argTypes:
    - dbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 233
    functionName: dbm_ass_sub
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - parse_datum
    - gdbm_store
    - gdbm_delete
    - PyErr_SetFromErrno
    - PyErr_SetObject
    - PyErr_SetString
    - gdbm_strerror
    linkageType: ''
    returnType: int
    signature: int dbm_ass_sub(dbmobject *dp, PyObject *v, PyObject *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbm_subscript
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:252,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:253,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:254,1
    - Dst: dbm_ass_sub
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:255,1
    - Dst: dbm_subscript
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - dbmobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: _gdbm_gdbm_setdefault_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - dbm_ass_sub
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - dbm_subscript
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gdbm_gdbm_setdefault_impl(dbmobject *self, PyObject *key,\n
      \                          PyObject *default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gdbm_close
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: _gdbm_gdbm_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - gdbm_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_close_impl(dbmobject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_dbmobject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:299,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:300,1
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:303,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:305,1
    - Dst: gdbm_firstkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:309,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:311,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:313,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:314,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:318,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:321,1
    - Dst: gdbm_nextkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:324,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 329
    functionName: _gdbm_gdbm_keys_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - check_dbmobject_open
    - Py_DECREF
    - gdbm_firstkey
    - PyErr_BadInternalCall
    - PyList_Append
    - gdbm_nextkey
    - PyList_New
    - is_dbmobject
    - free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_keys_impl(dbmobject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:339,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:343,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:344,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:349,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:350,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:356,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:357,1
    - Dst: gdbm_exists
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 360
    functionName: dbm_contains
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - gdbm_exists
    - PyErr_Format
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int dbm_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:392,1
    - Dst: gdbm_firstkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:393,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:395,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 402
    functionName: _gdbm_gdbm_firstkey_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - gdbm_firstkey
    - check_dbmobject_open
    - free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_firstkey_impl(dbmobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:431,1
    - Dst: gdbm_nextkey
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:432,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:434,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - self
    - key
    - key_length
    argTypes:
    - dbmobject*
    - char*
    - Py_ssize_clean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 441
    functionName: _gdbm_gdbm_nextkey_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - gdbm_nextkey
    - check_dbmobject_open
    - free
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gdbm_gdbm_nextkey_impl(dbmobject *self, const char *key,\n
      \                       Py_ssize_clean_t key_length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:459,1
    - Dst: gdbm_reorganize
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:461,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:463,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:465,1
    - Dst: gdbm_strerror
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 469
    functionName: _gdbm_gdbm_reorganize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_dbmobject_open
    - PyErr_SetFromErrno
    - gdbm_reorganize
    - PyErr_SetString
    - gdbm_strerror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_reorganize_impl(dbmobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_dbmobject_open
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:484,1
    - Dst: gdbm_sync
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - dbmobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 487
    functionName: _gdbm_gdbm_sync_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - check_dbmobject_open
    - gdbm_sync
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_sync_impl(dbmobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 494
    functionName: dbm__enter__
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__enter__(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:499,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: dbm__exit__
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbm__exit__(PyObject *self, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:602,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:625,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:627,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:632,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:636,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:637,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:637,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:638,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:639,1
    - Dst: newdbmobject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:643,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - module
    - filename
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 645
    functionName: dbmopen_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - PyOS_snprintf
    - Py_DECREF
    - strlen
    - PyBytes_GET_SIZE
    - newdbmobject
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndbmopen_impl(PyObject *module, PyObject *filename, const
      char *flags,\n             int mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:681,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:683,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:688,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:692,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:694,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:698,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:705,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:710,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_gdbmmodule.c:719,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 721
    functionName: PyInit__gdbm
    functionSourceFile: /src/Python-3.8.3/Modules/_gdbmmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__gdbm(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: XxoObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XxoObject_Check(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/xxlimited.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: newXxoObject
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    linkageType: ''
    returnType: XxoObject
    signature: 'XxoObject *

      newXxoObject(PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/xxlimited.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - XxoObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: Xxo_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Xxo_traverse(XxoObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/xxlimited.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - XxoObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Xxo_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void Xxo_finalize(XxoObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxlimited.c:60,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/xxlimited.c:63,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:64,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - XxoObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: Xxo_demo
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_demo(XxoObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/xxlimited.c:81,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:83,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/xxlimited.c:86,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Modules/xxlimited.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - XxoObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Xxo_getattro
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericGetAttr
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Xxo_getattro(XxoObject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/xxlimited.c:97,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Modules/xxlimited.c:102,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/xxlimited.c:103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/xxlimited.c:104,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/xxlimited.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - name
    - v
    argTypes:
    - XxoObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: Xxo_setattr
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - PyDict_New
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int Xxo_setattr(XxoObject *self, const char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxlimited.c:144,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/xxlimited.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: xx_foo
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_foo(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxlimited.c:158,1
    - Dst: newXxoObject
      Src: /src/Python-3.8.3/Modules/xxlimited.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: xx_new
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - newXxoObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_new(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/xxlimited.c:173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: xx_roj
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xx_roj(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: null_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/xxlimited.c:247,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/xxlimited.c:253,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:257,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxlimited.c:258,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/xxlimited.c:261,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxlimited.c:264,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/xxlimited.c:267,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxlimited.c:270,1
    - Dst: PyType_FromSpec
      Src: /src/Python-3.8.3/Modules/xxlimited.c:273,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/xxlimited.c:276,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/xxlimited.c:279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 281
    functionName: xx_modexec
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - Py_INCREF
    - PyModule_AddObject
    - PyType_FromSpec
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int xx_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/xxlimited.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: PyInit_xxlimited
    functionSourceFile: /src/Python-3.8.3/Modules/xxlimited.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_xxlimited(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:59,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:60,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:63,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - v
    - i
    - val
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: sets
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyStructSequence_SET_ITEM
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: void
    signature: void sets(PyObject *v, int i, const char* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:72,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:79,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:81,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:83,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:85,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:85,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:86,1
    - Dst: _PyLong_FromGid
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:86,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:88,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:90,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:92,1
    - Dst: SETS
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:93,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:98,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 104
    functionName: mkpwent
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyStructSequence_SET_ITEM
    - _PyLong_FromUid
    - SETS
    - _PyLong_FromGid
    - PyStructSequence_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mkpwent(struct passwd *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: SETI
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETI(i,val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SETS
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETS(i,val)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:127,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:128,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:129,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:140,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:146,1
    - Dst: getpwuid_r
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:153,1
    - Dst: getpwuid
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:169,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:172,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:174,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:176,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:181,1
    - Dst: mkpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:184,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:186,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 2
    argNames:
    - module
    - uidobj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 189
    functionName: pwd_getpwuid
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - getpwuid_r
    - _Py_Uid_Converter
    - getpwuid
    - Py_DECREF
    - PyMem_RawRealloc
    - _PyLong_FromUid
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyMem_RawFree
    - mkpwent
    - sysconf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwuid(PyObject *module, PyObject *uidobj)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:211,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:214,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:223,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:229,1
    - Dst: getpwnam_r
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:236,1
    - Dst: getpwnam
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:252,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:256,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:259,1
    - Dst: mkpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:264,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:267,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 269
    functionName: pwd_getpwnam_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - getpwnam_r
    - Py_DECREF
    - PyMem_RawRealloc
    - PyErr_NoMemory
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - PyMem_RawFree
    - mkpwent
    - getpwnam
    - sysconf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwnam_impl(PyObject *module, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:286,1
    - Dst: setpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:288,1
    - Dst: getpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:289,1
    - Dst: mkpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:290,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:291,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:293,1
    - Dst: endpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:297,1
    - Dst: endpwent
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: pwd_getpwall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - setpwent
    - Py_DECREF
    - endpwent
    - mkpwent
    - PyList_Append
    - PyList_New
    - Py_XDECREF
    - getpwent
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwall_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:330,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:335,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:340,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pwdmodule.c:341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: PyInit_pwd
    functionSourceFile: /src/Python-3.8.3/Modules/pwdmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyStructSequence_InitType2
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_pwd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_cryptmodule.c:40,1
    - Dst: crypt_r
      Src: /src/Python-3.8.3/Modules/_cryptmodule.c:41,1
    - Dst: crypt
      Src: /src/Python-3.8.3/Modules/_cryptmodule.c:43,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cryptmodule.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - word
    - salt
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: crypt_crypt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cryptmodule.c
    functionUses: 0
    functionsReached:
    - crypt
    - Py_BuildValue
    - crypt_r
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      crypt_crypt_impl(PyObject *module, const char *word, const char *salt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_cryptmodule.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: PyInit__crypt
    functionSourceFile: /src/Python-3.8.3/Modules/_cryptmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__crypt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:85,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:92,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:93,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - type
    - it
    - keyfunc
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: itertools_groupby_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_groupby_impl(PyTypeObject *type, PyObject *it, PyObject *keyfunc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:104,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:105,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:106,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:107,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:108,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:109,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - gbo
    argTypes:
    - groupbyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: groupby_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void groupby_dealloc(groupbyobject *gbo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:116,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:117,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:118,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:119,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - gbo
    - visit
    - arg
    argTypes:
    - groupbyobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 122
    functionName: groupby_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int groupby_traverse(groupbyobject *gbo, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:129,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:135,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:137,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:139,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:146,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - gbo
    argTypes:
    - groupbyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 149
    functionName: groupby_step
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - PyObject_CallFunctionObjArgs
    - PyIter_Next
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void groupby_step(groupbyobject *gbo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:166,1
    - Dst: groupby_step
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:176,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:177,1
    - Dst: _grouper_create
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:179,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - gbo
    argTypes:
    - groupbyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 186
    functionName: groupby_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _grouper_create
    - Py_DECREF
    - groupby_step
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Pack
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      groupby_next(groupbyobject *gbo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:196,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:196,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:199,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - groupbyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: groupby_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      groupby_reduce(groupbyobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:211,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:212,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:215,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:218,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:219,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:220,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:221,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:222,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - groupbyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: groupby_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Check
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      groupby_setstate(groupbyobject *lz, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _grouper_create
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - parent
    - tgtkey
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: itertools__grouper_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _grouper_create
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools__grouper_impl(PyTypeObject *type, PyObject *parent,\n
      \                       PyObject *tgtkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:312,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:316,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:318,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - parent
    - tgtkey
    argTypes:
    - groupbyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: _grouper_create
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_create(groupbyobject *parent, PyObject *tgtkey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:328,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:330,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - igo
    argTypes:
    - _grouperobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: _grouper_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _grouper_dealloc(_grouperobject *igo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:337,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - igo
    - visit
    - arg
    argTypes:
    - _grouperobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: _grouper_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int _grouper_traverse(_grouperobject *igo, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: groupby_step
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:352,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:356,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:357,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - igo
    argTypes:
    - _grouperobject*
    assertStmts:
    - condition: (gbo->currkey != NULL)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 367
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 367
    functionName: _grouper_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_RichCompareBool
    - Py_CLEAR
    - groupby_step
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_next(_grouperobject *igo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:372,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:374,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:374,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:376,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - _grouperobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: _grouper_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - Py_TYPE
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _grouper_reduce(_grouperobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:465,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:472,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 476
    functionName: teedataobject_newinternal
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_newinternal(PyObject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_newinternal
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:482,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tdo
    argTypes:
    - teedataobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 485
    functionName: teedataobject_jumplink
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_newinternal
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_jumplink(teedataobject *tdo)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:492,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:497,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:499,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:504,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - tdo
    - i
    argTypes:
    - teedataobject*
    - int
    assertStmts:
    - condition: (i < LINKCELLS)
      pos:
        line_end: 491
        line_start: 491
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (i == tdo->numread)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 513
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 513
    functionName: teedataobject_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyIter_Next
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_getitem(teedataobject *tdo, int i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:520,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:522,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tdo
    - visit
    - arg
    argTypes:
    - teedataobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: teedataobject_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int teedataobject_traverse(teedataobject *tdo, visitproc visit, void
      * arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:530,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:531,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:534,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 538
    functionName: teedataobject_safe_decref
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - Py_XDECREF
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void teedataobject_safe_decref(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:546,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:548,1
    - Dst: teedataobject_safe_decref
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tdo
    argTypes:
    - teedataobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 553
    functionName: teedataobject_clear
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - teedataobject_safe_decref
    linkageType: ''
    returnType: int
    signature: int teedataobject_clear(teedataobject *tdo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:558,1
    - Dst: teedataobject_clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:559,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tdo
    argTypes:
    - teedataobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 561
    functionName: teedataobject_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - teedataobject_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void teedataobject_dealloc(teedataobject *tdo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:568,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:573,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:574,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:576,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - tdo
    - Py_UNUSED(ignored)
    argTypes:
    - teedataobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 579
    functionName: teedataobject_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_INCREF
    - PyList_SET_ITEM
    - Py_TYPE
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      teedataobject_reduce(teedataobject *tdo, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:599,1
    - Dst: teedataobject_newinternal
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:601,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:605,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:609,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:610,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:613,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:617,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:619,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:620,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:630,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - type
    - it
    - values
    - next
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type == &teedataobject_type)
      pos:
        line_end: 598
        line_start: 598
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (tdo->nextlink == NULL)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 633
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 633
    functionName: itertools_teedataobject_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - Py_INCREF
    - teedataobject_newinternal
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - Py_TYPE
    - PyErr_SetString
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_teedataobject_impl(PyTypeObject *type, PyObject
      *it,\n                             PyObject *values, PyObject *next)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: teedataobject_jumplink
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:693,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:696,1
    - Dst: teedataobject_getitem
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - to
    argTypes:
    - teeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: tee_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - teedataobject_getitem
    - teedataobject_jumplink
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_next(teeobject *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - to
    - visit
    - arg
    argTypes:
    - teeobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: tee_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tee_traverse(teeobject *to, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:718,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:721,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - to
    - Py_UNUSED(ignored)
    argTypes:
    - teeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 727
    functionName: tee_copy
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_copy(teeobject *to, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:737,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:740,1
    - Dst: tee_copy
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:741,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:745,1
    - Dst: teedataobject_newinternal
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:748,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:750,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:757,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 761
    functionName: tee_fromiterable
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_Track
    - teedataobject_newinternal
    - PyObject_TypeCheck
    - PyObject_GC_New
    - tee_copy
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_fromiterable(PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tee_fromiterable
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 776
    functionName: itertools__tee_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - tee_fromiterable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__tee_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:782,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - to
    argTypes:
    - teeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 785
    functionName: tee_clear
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tee_clear(teeobject *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:790,1
    - Dst: tee_clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:791,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - to
    argTypes:
    - teeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: tee_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - tee_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void tee_dealloc(teeobject *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:798,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - Py_UNUSED(ignored)
    argTypes:
    - teeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: tee_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_reduce(teeobject *to, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:806,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:807,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:810,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:814,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:817,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - to
    - state
    argTypes:
    - teeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 821
    functionName: tee_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Check
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tee_setstate(teeobject *to, PyObject *state)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:887,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:890,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:893,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:898,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:900,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:905,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:906,1
    - Dst: tee_fromiterable
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:914,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:916,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:919,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:922,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:927,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:929,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:932,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:937,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - module
    - iterable
    - n
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 939
    functionName: itertools_tee_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_SetString
    - tee_fromiterable
    - PyObject_GetIter
    - PyTuple_New
    - PyTuple_SET_ITEM
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_tee_impl(PyObject *module, PyObject *iterable, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:971,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:975,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:977,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:984,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 994
    functionName: itertools_cycle_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_cycle_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:999,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1000,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1001,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - cycleobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1003
    functionName: cycle_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cycle_dealloc(cycleobject *lz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1009,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - cycleobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1012
    functionName: cycle_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cycle_traverse(cycleobject *lz, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1020,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1024,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1025,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1031,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1033,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1035,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1037,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1039,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1041,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - lz
    argTypes:
    - cycleobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1043
    functionName: cycle_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Append
    - PyIter_Next
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cycle_next(cycleobject *lz)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1050,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1054,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1058,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1061,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1063,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1063,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1065,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - cycleobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1067
    functionName: cycle_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1074,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1075,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1078,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1081,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - cycleobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1086
    functionName: cycle_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Check
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cycle_setstate(cycleobject *lz, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1171,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1178,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1187
    functionName: itertools_dropwhile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_dropwhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1192,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1193,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1194,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - dropwhileobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1196
    functionName: dropwhile_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void dropwhile_dealloc(dropwhileobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1201,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - dropwhileobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1204
    functionName: dropwhile_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dropwhile_traverse(dropwhileobject *lz, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1214,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1216,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1224,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - lz
    argTypes:
    - dropwhileobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1237
    functionName: dropwhile_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - iternext
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dropwhile_next(dropwhileobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1242,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - dropwhileobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1243
    functionName: dropwhile_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dropwhile_reduce(dropwhileobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - dropwhileobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1253
    functionName: dropwhile_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dropwhile_setstate(dropwhileobject *lz, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1336,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1343,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1328
    functionDepth: 1
    functionLinenumber: 1328
    functionLinenumberEnd: 1352
    functionName: itertools_takewhile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_takewhile_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1357,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1358,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1359,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - takewhileobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1361
    functionName: takewhile_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void takewhile_dealloc(takewhileobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1366,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - takewhileobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1369
    functionName: takewhile_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int takewhile_traverse(takewhileobject *lz, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1381,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1387,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1391,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - lz
    argTypes:
    - takewhileobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1398
    functionName: takewhile_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      takewhile_next(takewhileobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1403,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - takewhileobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1404
    functionName: takewhile_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      takewhile_reduce(takewhileobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - takewhileobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1415
    functionName: takewhile_reduce_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      takewhile_reduce_setstate(takewhileobject *lz, PyObject *state)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1492,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1495,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1498,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1501,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1503,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1504,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1505,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1513,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1514,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1515,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1517,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1519,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1521,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1529,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1537,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1538,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1539,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1542,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1548,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1555,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1565
    functionName: islice_new
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _PyArg_NoKeywords
    - PyObject_GetIter
    - PyTuple_Size
    - PyArg_UnpackTuple
    - PyErr_SetString
    - PyErr_Clear
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1570,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1571,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lz
    argTypes:
    - isliceobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1573
    functionName: islice_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void islice_dealloc(isliceobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - isliceobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1575
    functionDepth: 1
    functionLinenumber: 1575
    functionLinenumberEnd: 1580
    functionName: islice_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int islice_traverse(isliceobject *lz, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1594,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1596,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1599,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1604,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1617,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - lz
    argTypes:
    - isliceobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1582
    functionDepth: 1
    functionLinenumber: 1582
    functionLinenumberEnd: 1619
    functionName: islice_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - iternext
    - Py_CLEAR
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_next(isliceobject *lz)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1632,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1635,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1636,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1639,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1639,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1643,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1645,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1649,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - isliceobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1621
    functionDepth: 1
    functionLinenumber: 1621
    functionLinenumberEnd: 1652
    functionName: islice_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyLong_FromSsize_t
    - Py_TYPE
    - PyList_New
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_reduce(isliceobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1657,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - isliceobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1663
    functionName: islice_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      islice_setstate(isliceobject *lz, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1756,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1761,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1763,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1771
    functionName: itertools_starmap_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_starmap_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1776,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1777,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1778,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - starmapobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1780
    functionName: starmap_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void starmap_dealloc(starmapobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1785,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - starmapobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1788
    functionName: starmap_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int starmap_traverse(starmapobject *lz, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1797,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1800,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1802,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1807,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lz
    argTypes:
    - starmapobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1790
    functionDepth: 1
    functionLinenumber: 1790
    functionLinenumberEnd: 1810
    functionName: starmap_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Tuple
    - Py_TYPE
    - PyTuple_CheckExact
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      starmap_next(starmapobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1816,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - starmapobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1817
    functionName: starmap_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      starmap_reduce(starmapobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - type
    - source
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1894
    functionName: chain_new_internal
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_new_internal(PyTypeObject *type, PyObject *source)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1901,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1904,1
    - Dst: chain_new_internal
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1896
    functionDepth: 2
    functionLinenumber: 1896
    functionLinenumberEnd: 1909
    functionName: chain_new
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyObject_GetIter
    - chain_new_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1925,1
    - Dst: chain_new_internal
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1919
    functionDepth: 2
    functionLinenumber: 1919
    functionLinenumberEnd: 1930
    functionName: itertools_chain_from_iterable
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - chain_new_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_chain_from_iterable(PyTypeObject *type, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1935,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1936,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1937,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - chainobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1939
    functionName: chain_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void chain_dealloc(chainobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1944,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - chainobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1947
    functionName: chain_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int chain_traverse(chainobject *lz, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1959,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1961,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1965,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1967,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1971,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1974,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1975,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1976,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1981,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - lz
    argTypes:
    - chainobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1985
    functionName: chain_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PyErr_Occurred
    - PyIter_Next
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_next(chainobject *lz)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1996,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1996,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1998,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:1998,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2001,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - chainobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2004
    functionName: chain_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_reduce(chainobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2011,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2012,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2015,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2018,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2018,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2019,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2023,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2024,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2025,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - chainobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2028
    functionName: chain_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyIter_Check
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Check
    - PyErr_SetString
    - Py_XINCREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      chain_setstate(chainobject *lz, PyObject *state)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2114,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2117,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2119,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2122,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2124,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2130,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2130,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2136,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2142,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2144,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2148,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2153,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2154,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2157,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2161,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2162,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2163,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2168,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2181,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2182,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(args))
      pos:
        line_end: 2129
        line_start: 2129
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2184
      start: 2103
    functionDepth: 1
    functionLinenumber: 2103
    functionLinenumberEnd: 2184
    functionName: product_new
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - PySequence_Tuple
    - PyErr_NoMemory
    - Py_XDECREF
    - PyMem_Free
    - PyErr_SetString
    - PyTuple_CheckExact
    - PyArg_ParseTupleAndKeywords
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2189,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2190,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2191,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2193,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - lz
    argTypes:
    - productobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2186
    functionDepth: 1
    functionLinenumber: 2186
    functionLinenumberEnd: 2195
    functionName: product_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void product_dealloc(productobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2202,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2202,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2203,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lz
    - unused
    argTypes:
    - productobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2205
    functionName: product_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_sizeof(productobject *lz, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2212,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - productobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2215
    functionName: product_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int product_traverse(productobject *lz, visitproc visit, void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2225,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2234,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2239,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2240,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2242,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2243,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2244,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2250,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2252,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2256,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2259,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2259,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2264,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2266,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2270,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2271,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2273,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2276,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2277,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2278,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2280,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2291,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - lz
    argTypes:
    - productobject*
    assertStmts:
    - condition: (npools==0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2258
        line_start: 2258
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2297
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2297
    functionName: product_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_REFCNT
    - _PyTuple_ITEMS
    - _PyTuple_FromArray
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_next(productobject *lz)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2303,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2303,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2305,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2305,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2313,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2314,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2318,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2320,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2323,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2325,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2325,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - productobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2299
    functionDepth: 1
    functionLinenumber: 2299
    functionLinenumberEnd: 2327
    functionName: product_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_TYPE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_reduce(productobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2335,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2336,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2336,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2337,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2342,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2343,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2346,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2348,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2349,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2362,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2366,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2367,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2368,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2369,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - productobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2329
    functionDepth: 1
    functionLinenumber: 2329
    functionLinenumberEnd: 2373
    functionName: product_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      product_setstate(productobject *lz, PyObject *state)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2479,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2482,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2484,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2488,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2490,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2498,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2512,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2513,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2468
    functionDepth: 1
    functionLinenumber: 2468
    functionLinenumberEnd: 2515
    functionName: itertools_combinations_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_combinations_impl(PyTypeObject *type, PyObject
      *iterable,\n                            Py_ssize_t r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2520,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2521,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2522,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2524,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - co
    argTypes:
    - combinationsobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2517
    functionDepth: 1
    functionLinenumber: 2517
    functionLinenumberEnd: 2526
    functionName: combinations_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void combinations_dealloc(combinationsobject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2533,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2533,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - co
    - unused
    argTypes:
    - combinationsobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2528
    functionDepth: 1
    functionLinenumber: 2528
    functionLinenumberEnd: 2536
    functionName: combinations_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_sizeof(combinationsobject *co, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2541,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - co
    - visit
    - arg
    argTypes:
    - combinationsobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2544
    functionName: combinations_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int combinations_traverse(combinationsobject *co, visitproc visit,
      void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2554,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2563,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2569,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2570,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2571,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2575,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2577,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2581,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2587,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2587,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2611,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2612,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2613,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2614,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2615,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2619,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - co
    argTypes:
    - combinationsobject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2586
        line_start: 2586
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2625
      start: 2546
    functionDepth: 1
    functionLinenumber: 2546
    functionLinenumberEnd: 2625
    functionName: combinations_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_REFCNT
    - _PyTuple_ITEMS
    - _PyTuple_FromArray
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_next(combinationsobject *co)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2631,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2631,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2633,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2633,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2639,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2644,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2646,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2649,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2652,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - combinationsobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2654
    functionName: combinations_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_TYPE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_reduce(combinationsobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2661,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2663,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2663,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2664,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2670,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2671,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2673,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2684,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2688,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2689,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2690,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2693,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - combinationsobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2656
    functionDepth: 1
    functionLinenumber: 2656
    functionLinenumberEnd: 2695
    functionName: combinations_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      combinations_setstate(combinationsobject *lz, PyObject *state)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2813,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2816,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2818,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2822,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2824,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2832,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2846,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2847,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - type
    - iterable
    - r
    argTypes:
    - PyTypeObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2849
    functionName: itertools_combinations_with_replacement_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_combinations_with_replacement_impl(PyTypeObject
      *type,\n                                             PyObject *iterable,\n                                             Py_ssize_t
      r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2854,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2855,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2856,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2858,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - co
    argTypes:
    - cwrobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2860
    functionName: cwr_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cwr_dealloc(cwrobject *co)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2867,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2867,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - co
    - unused
    argTypes:
    - cwrobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2862
    functionDepth: 1
    functionLinenumber: 2862
    functionLinenumberEnd: 2870
    functionName: cwr_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_sizeof(cwrobject *co, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2875,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - co
    - visit
    - arg
    argTypes:
    - cwrobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2878
    functionName: cwr_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cwr_traverse(cwrobject *co, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2888,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2897,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2902,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2904,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2905,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2906,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2911,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2913,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2917,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2921,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2921,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2936,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2937,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2940,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2941,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2942,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2943,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2947,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - co
    argTypes:
    - cwrobject*
    assertStmts:
    - condition: (indices[i] == 0)
      pos:
        line_end: 2903
        line_start: 2903
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 2920
        line_start: 2920
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (index < n)
      pos:
        line_end: 2935
        line_start: 2935
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 2953
      start: 2880
    functionDepth: 1
    functionLinenumber: 2880
    functionLinenumberEnd: 2953
    functionName: cwr_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_REFCNT
    - _PyTuple_ITEMS
    - _PyTuple_FromArray
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_next(cwrobject *co)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2959,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2959,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2961,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2961,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2967,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2973,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2976,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2979,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - cwrobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2955
    functionDepth: 1
    functionLinenumber: 2955
    functionLinenumberEnd: 2981
    functionName: cwr_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_TYPE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_reduce(cwrobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2989,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2989,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2991,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2995,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2997,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:2998,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3000,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3009,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3013,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3014,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3015,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3017,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - cwrobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 2983
    functionDepth: 1
    functionLinenumber: 2983
    functionLinenumberEnd: 3019
    functionName: cwr_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cwr_setstate(cwrobject *lz, PyObject *state)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3136,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3139,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3143,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3144,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3147,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3148,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3152,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3156,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3157,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3159,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3169,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3184,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3186,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3187,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - type
    - iterable
    - robj
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3189
      start: 3123
    functionDepth: 1
    functionLinenumber: 3123
    functionLinenumberEnd: 3189
    functionName: itertools_permutations_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyMem_New
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyTypeObject*::tp_alloc
    - PySequence_Tuple
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    - PyMem_Free
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_permutations_impl(PyTypeObject *type, PyObject
      *iterable,\n                            PyObject *robj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3194,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3195,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3196,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3197,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3198,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - po
    argTypes:
    - permutationsobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3191
    functionDepth: 1
    functionLinenumber: 3191
    functionLinenumberEnd: 3200
    functionName: permutations_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void permutations_dealloc(permutationsobject *po)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3207,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3207,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3208,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - po
    - unused
    argTypes:
    - permutationsobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3202
    functionDepth: 1
    functionLinenumber: 3202
    functionLinenumberEnd: 3211
    functionName: permutations_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_sizeof(permutationsobject *po, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3216,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - po
    - visit
    - arg
    argTypes:
    - permutationsobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3219
      start: 3213
    functionDepth: 1
    functionLinenumber: 3213
    functionLinenumberEnd: 3219
    functionName: permutations_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int permutations_traverse(permutationsobject *po, visitproc visit,
      void *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3230,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3239,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3245,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3246,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3247,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3254,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3256,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3260,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3263,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3263,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3285,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3286,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3287,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3289,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3299,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - po
    argTypes:
    - permutationsobject*
    assertStmts:
    - condition: (r == 0 || Py_REFCNT(result) == 1)
      pos:
        line_end: 3262
        line_start: 3262
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3305
      start: 3221
    functionDepth: 1
    functionLinenumber: 3221
    functionLinenumberEnd: 3305
    functionName: permutations_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_REFCNT
    - _PyTuple_ITEMS
    - _PyTuple_FromArray
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_next(permutationsobject *po)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3311,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3311,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3313,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3313,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3319,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3320,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3324,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3327,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3330,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3334,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3337,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3339,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3339,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3343,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3344,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - po
    - Py_UNUSED(ignored)
    argTypes:
    - permutationsobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3347
      start: 3307
    functionDepth: 1
    functionLinenumber: 3307
    functionLinenumberEnd: 3347
    functionName: permutations_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyTuple_GET_SIZE
    - Py_XDECREF
    - Py_TYPE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_reduce(permutationsobject *po, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3355,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3356,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3359,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3365,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3366,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3366,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3367,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3372,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3373,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3374,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3385,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3386,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3387,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3395,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3399,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3400,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3401,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - po
    - state
    argTypes:
    - permutationsobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3405
      start: 3349
    functionDepth: 1
    functionLinenumber: 3349
    functionLinenumberEnd: 3405
    functionName: permutations_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_SET_ITEM
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      permutations_setstate(permutationsobject *po, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3493,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3500,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3505,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - type
    - iterable
    - binop
    - initial
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3513
      start: 3484
    functionDepth: 1
    functionLinenumber: 3484
    functionLinenumberEnd: 3513
    functionName: itertools_accumulate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_XINCREF
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_accumulate_impl(PyTypeObject *type, PyObject
      *iterable,\n                          PyObject *binop, PyObject *initial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3518,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3519,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3520,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3521,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3522,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - lz
    argTypes:
    - accumulateobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3524
      start: 3515
    functionDepth: 1
    functionLinenumber: 3515
    functionLinenumberEnd: 3524
    functionName: accumulate_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void accumulate_dealloc(accumulateobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3529,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3530,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3531,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - accumulateobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3526
    functionDepth: 1
    functionLinenumber: 3526
    functionLinenumberEnd: 3534
    functionName: accumulate_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int accumulate_traverse(accumulateobject *lz, visitproc visit, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3543,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3545,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3548,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3553,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3559,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3561,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3562,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3566,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - lz
    argTypes:
    - accumulateobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3536
    functionDepth: 1
    functionLinenumber: 3536
    functionLinenumberEnd: 3569
    functionName: accumulate_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyNumber_Add
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      accumulate_next(accumulateobject *lz)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3577,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3578,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3580,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3584,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3584,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3590,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3592,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3594,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3598,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3598,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3602,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3604,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3604,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - accumulateobject*
    - PyObject*
    assertStmts:
    - condition: (lz->total == NULL)
      pos:
        line_end: 3576
        line_start: 3576
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 3607
      start: 3571
    functionDepth: 1
    functionLinenumber: 3571
    functionLinenumberEnd: 3607
    functionName: accumulate_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyObject_CallFunction
    - Py_TYPE
    - assert
    - PyType_Ready
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      accumulate_reduce(accumulateobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3612,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - accumulateobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3609
    functionDepth: 1
    functionLinenumber: 3609
    functionLinenumberEnd: 3615
    functionName: accumulate_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      accumulate_setstate(accumulateobject *lz, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3705,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3708,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3713,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3721,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - type
    - seq1
    - seq2
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3698
    functionDepth: 1
    functionLinenumber: 3698
    functionLinenumberEnd: 3724
    functionName: itertools_compress_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_XDECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_compress_impl(PyTypeObject *type, PyObject *seq1, PyObject *seq2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3729,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3730,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3731,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - compressobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3726
    functionDepth: 1
    functionLinenumber: 3726
    functionLinenumberEnd: 3733
    functionName: compress_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void compress_dealloc(compressobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3738,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - compressobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3741
      start: 3735
    functionDepth: 1
    functionLinenumber: 3735
    functionLinenumberEnd: 3741
    functionName: compress_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int compress_traverse(compressobject *lz, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3748,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3749,1
    - Dst: datanext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3759,1
    - Dst: selectornext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3763,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3765,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - lz
    argTypes:
    - compressobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3777
      start: 3743
    functionDepth: 1
    functionLinenumber: 3743
    functionLinenumberEnd: 3777
    functionName: compress_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - selectornext
    - Py_TYPE
    - PyObject_IsTrue
    - datanext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress_next(compressobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3782,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - compressobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3779
    functionDepth: 1
    functionLinenumber: 3779
    functionLinenumberEnd: 3784
    functionName: compress_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compress_reduce(compressobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3866,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3873,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - func
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3858
    functionDepth: 1
    functionLinenumber: 3858
    functionLinenumberEnd: 3881
    functionName: itertools_filterfalse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_filterfalse_impl(PyTypeObject *type, PyObject *func, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3886,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3887,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3888,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - filterfalseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3890
      start: 3883
    functionDepth: 1
    functionLinenumber: 3883
    functionLinenumberEnd: 3890
    functionName: filterfalse_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void filterfalse_dealloc(filterfalseobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3895,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - filterfalseobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3898
      start: 3892
    functionDepth: 1
    functionLinenumber: 3892
    functionLinenumberEnd: 3898
    functionName: filterfalse_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int filterfalse_traverse(filterfalseobject *lz, visitproc visit, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3908,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3910,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3915,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3918,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3920,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3923,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3924,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3928,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - lz
    argTypes:
    - filterfalseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3932
      start: 3900
    functionDepth: 1
    functionLinenumber: 3900
    functionLinenumberEnd: 3932
    functionName: filterfalse_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - iternext
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filterfalse_next(filterfalseobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3937,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:3937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - filterfalseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3934
    functionDepth: 1
    functionLinenumber: 3934
    functionLinenumberEnd: 3938
    functionName: filterfalse_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filterfalse_reduce(filterfalseobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4044,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4045,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4046,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4050,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4051,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4056,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4056,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4057,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4058,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4059,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4067,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4072,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4074,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4078,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4078,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4079,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4082,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4083,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4088,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4092,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4094,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4095,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4095,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4098,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4101,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 3
    argNames:
    - type
    - long_cnt
    - long_step
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(long_cnt))
      pos:
        line_end: 4055
        line_start: 4055
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (long_cnt != NULL && long_step != NULL)
      pos:
        line_end: 4073
        line_start: 4073
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: "((cnt != PY_SSIZE_T_MAX && long_cnt == NULL && fast_mode) ||\n           (cnt
        == PY_SSIZE_T_MAX && long_cnt != NULL && !fast_mode))"
      pos:
        line_end: 4092
        line_start: 4091
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: (PyLong_Check(long_step))
      pos:
        line_end: 4077
        line_start: 4077
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - condition: "(!fast_mode ||\n           (PyLong_Check(long_step) && PyLong_AS_LONG(long_step)
        == 1))"
      pos:
        line_end: 4094
        line_start: 4093
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 4109
      start: 4034
    functionDepth: 1
    functionLinenumber: 4034
    functionLinenumberEnd: 4109
    functionName: itertools_count_impl
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyNumber_Check
    - Py_CLEAR
    - Py_INCREF
    - PyLong_AS_LONG
    - PyTypeObject*::tp_alloc
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyErr_SetString
    - assert
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nitertools_count_impl(PyTypeObject *type, PyObject *long_cnt,\n
      \                    PyObject *long_step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4114,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4115,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4116,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - countobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4118
      start: 4111
    functionDepth: 1
    functionLinenumber: 4111
    functionLinenumberEnd: 4118
    functionName: count_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void count_dealloc(countobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4123,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - countobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4120
    functionDepth: 1
    functionLinenumber: 4120
    functionLinenumberEnd: 4126
    functionName: count_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int count_traverse(countobject *lz, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4137,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4141,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - lz
    argTypes:
    - countobject*
    assertStmts:
    - condition: (lz->cnt == PY_SSIZE_T_MAX && long_cnt != NULL)
      pos:
        line_end: 4140
        line_start: 4140
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 4148
      start: 4128
    functionDepth: 1
    functionLinenumber: 4128
    functionLinenumberEnd: 4148
    functionName: count_nextlong
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyLong_FromSsize_t
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_nextlong(countobject *lz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count_nextlong
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4154,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lz
    argTypes:
    - countobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4150
    functionDepth: 2
    functionLinenumber: 4150
    functionLinenumberEnd: 4156
    functionName: count_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - count_nextlong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_next(countobject *lz)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4162,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4163,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4163,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4165,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4166,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4167,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4168,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4172,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4173,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4173,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4177,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4178,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - lz
    argTypes:
    - countobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4180
      start: 4158
    functionDepth: 1
    functionLinenumber: 4158
    functionLinenumberEnd: 4180
    functionName: count_repr
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyErr_Clear
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_repr(countobject *lz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4186,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4186,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4187,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - countobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4182
    functionDepth: 1
    functionLinenumber: 4182
    functionLinenumberEnd: 4188
    functionName: count_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      count_reduce(countobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4259,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4264,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4266,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4276
      start: 4251
    functionDepth: 1
    functionLinenumber: 4251
    functionLinenumberEnd: 4276
    functionName: repeat_new
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyTuple_Size
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4281,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4282,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ro
    argTypes:
    - repeatobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4278
    functionDepth: 1
    functionLinenumber: 4278
    functionLinenumberEnd: 4284
    functionName: repeat_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void repeat_dealloc(repeatobject *ro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ro
    - visit
    - arg
    argTypes:
    - repeatobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4291
      start: 4286
    functionDepth: 1
    functionLinenumber: 4286
    functionLinenumberEnd: 4291
    functionName: repeat_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int repeat_traverse(repeatobject *ro, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ro
    argTypes:
    - repeatobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4302
      start: 4293
    functionDepth: 1
    functionLinenumber: 4293
    functionLinenumberEnd: 4302
    functionName: repeat_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_next(repeatobject *ro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4308,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4309,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4309,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4311,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4312,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ro
    argTypes:
    - repeatobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4314
      start: 4304
    functionDepth: 1
    functionLinenumber: 4304
    functionLinenumberEnd: 4314
    functionName: repeat_repr
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_repr(repeatobject *ro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4320,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ro
    - Py_UNUSED(ignored)
    argTypes:
    - repeatobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4324
      start: 4316
    functionDepth: 1
    functionLinenumber: 4316
    functionLinenumberEnd: 4324
    functionName: repeat_len
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_len(repeatobject *ro, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4335,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4335,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4337,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ro
    - Py_UNUSED(ignored)
    argTypes:
    - repeatobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4338
    functionName: repeat_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      repeat_reduce(repeatobject *ro, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4412,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4420,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4420,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4422,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4423,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4426,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4427,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4435,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4435,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4436,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4439,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4443,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4446,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4449,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4455,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4459,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4460,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4466,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4467,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4474,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 4434
        line_start: 4434
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    constantsTouched: []
    func_position:
      end: 4477
      start: 4409
    functionDepth: 1
    functionLinenumber: 4409
    functionLinenumberEnd: 4477
    functionName: zip_longest_new
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - PyDict_GET_SIZE
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyObject_GetIter
    - PyTuple_Check
    - PyErr_SetString
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4482,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4483,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4484,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4485,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lz
    argTypes:
    - ziplongestobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4479
    functionDepth: 1
    functionLinenumber: 4479
    functionLinenumberEnd: 4487
    functionName: zip_longest_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void zip_longest_dealloc(ziplongestobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4492,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4493,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - ziplongestobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4496
      start: 4489
    functionDepth: 1
    functionLinenumber: 4489
    functionLinenumberEnd: 4496
    functionName: zip_longest_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int zip_longest_traverse(ziplongestobject *lz, visitproc visit, void
      *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4512,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4513,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4515,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4517,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4520,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4523,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4525,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4528,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4531,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4535,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4537,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4540,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4544,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4546,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4549,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4552,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4554,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4557,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4559,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4560,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 1
    argNames:
    - lz
    argTypes:
    - ziplongestobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4498
    functionDepth: 1
    functionLinenumber: 4498
    functionLinenumberEnd: 4568
    functionName: zip_longest_next
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyIter_Next
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_next(ziplongestobject *lz)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4578,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4578,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4582,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4583,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4587,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4591,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4592,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4594,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4594,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - ziplongestobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4595
      start: 4570
    functionDepth: 1
    functionLinenumber: 4570
    functionLinenumberEnd: 4595
    functionName: zip_longest_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_reduce(ziplongestobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4600,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lz
    - state
    argTypes:
    - ziplongestobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4603
      start: 4597
    functionDepth: 1
    functionLinenumber: 4597
    functionLinenumberEnd: 4603
    functionName: zip_longest_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_longest_setstate(ziplongestobject *lz, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4750,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4751,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4756,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4758,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4759,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/itertoolsmodule.c:4760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4764
      start: 4720
    functionDepth: 1
    functionLinenumber: 4720
    functionLinenumberEnd: 4764
    functionName: PyInit_itertools
    functionSourceFile: /src/Python-3.8.3/Modules/itertoolsmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    - _PyType_Name
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_itertools(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/audioop.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - val
    - minval
    - maxval
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: fbound
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: int
    signature: int fbound(double val, double minval, double maxval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - val
    - table
    - size
    argTypes:
    - int16_t
    - int16_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: search
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t search(int16_t val, const int16_t *table, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: st_ulaw2linear16
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: st_ulaw2linear16(uc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - uc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: st_alaw2linear16
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: st_alaw2linear16(uc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: search
      Src: /src/Python-3.8.3/Modules/audioop.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pcm_val
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 184
    functionName: st_14linear2ulaw
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - search
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char st_14linear2ulaw(int16_t pcm_val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: search
      Src: /src/Python-3.8.3/Modules/audioop.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pcm_val
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 276
    functionName: st_linear2alaw
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - search
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char st_linear2alaw(int16_t pcm_val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: GETINTX
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINTX(T, cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - T
    - ','
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: SETINTX
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINTX(T, cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: GETINT8
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINT8(cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: GETINT16
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINT16(cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: GETINT32
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINT32(cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 312
    functionName: GETINT24
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINT24(cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: GETINT24
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETINT24(cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: SETINT8
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINT8(cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: SETINT16
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINT16(cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: SETINT32
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINT32(cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: SETINT24
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINT24(cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: SETINT24
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETINT24(cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - size
    - ','
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: GETRAWSAMPLE
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETRAWSAMPLE(size, cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - size
    - ','
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: SETRAWSAMPLE
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETRAWSAMPLE(size, cp, i, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - size
    - ','
    - cp
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 362
    functionName: GETSAMPLE32
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETSAMPLE32(size, cp, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - size
    - ','
    - cp
    - ','
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 373
    functionName: SETSAMPLE32
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETSAMPLE32(size, cp, i, val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: audioop_check_size
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int audioop_check_size(int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:391,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - len
    - size
    argTypes:
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: audioop_check_parameters
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - audioop_check_size
    linkageType: ''
    returnType: int
    signature: int audioop_check_parameters(Py_ssize_t len, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:423,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:426,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:429,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/audioop.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - index
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: audioop_getsample_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - PyLong_FromLong
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_getsample_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                       Py_ssize_t index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:450,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:453,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/audioop.c:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: audioop_max_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_max_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:482,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:485,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: audioop_minmax_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_minmax_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:510,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:513,1
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/audioop.c:517,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/audioop.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 519
    functionName: audioop_avg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - floor
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_avg_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:539,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:542,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/audioop.c:548,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/audioop.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 531
    functionDepth: 3
    functionLinenumber: 531
    functionLinenumberEnd: 550
    functionName: audioop_rms_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - sqrt
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_rms_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - int16_t*
    - int16_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: _sum2
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _sum2(const int16_t *a, const int16_t *b, Py_ssize_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:617,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:626,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:629,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:630,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:631,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:643,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:655,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - module
    - fragment
    - reference
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 658
    functionName: audioop_findfit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - _sum2
    - Py_BuildValue
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_findfit_impl(PyObject *module, Py_buffer *fragment,\n
      \                    Py_buffer *reference)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:684,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:688,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:694,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:695,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/audioop.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - module
    - fragment
    - reference
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 700
    functionName: audioop_findfactor_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - _sum2
    - PyFloat_FromDouble
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_findfactor_impl(PyObject *module, Py_buffer *fragment,\n
      \                       Py_buffer *reference)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:728,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:735,1
    - Dst: _sum2
      Src: /src/Python-3.8.3/Modules/audioop.c:739,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/audioop.c:757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - module
    - fragment
    - length
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 758
    functionName: audioop_findmax_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - _sum2
    - PyLong_FromSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_findmax_impl(PyObject *module, Py_buffer *fragment,\n
      \                    Py_ssize_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:780,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/audioop.c:783,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:784,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:787,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/audioop.c:814,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 815
    functionName: audioop_avgpp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - audioop_check_parameters
    - GETRAWSAMPLE
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_avgpp_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:836,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/audioop.c:839,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:840,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:843,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/audioop.c:867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 868
    functionName: audioop_maxpp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - audioop_check_parameters
    - GETRAWSAMPLE
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_maxpp_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:888,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:893,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/audioop.c:897,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 898
    functionName: audioop_cross_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - GETRAWSAMPLE
    - audioop_check_parameters
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_cross_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:921,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:927,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:930,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:933,1
    - Dst: fbound
      Src: /src/Python-3.8.3/Modules/audioop.c:934,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - factor
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 911
    functionDepth: 3
    functionLinenumber: 911
    functionLinenumberEnd: 938
    functionName: audioop_mul_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - fbound
    - SETRAWSAMPLE
    - PyBytes_AsString
    - GETRAWSAMPLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_mul_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                 double factor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:964,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:967,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:974,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:977,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:980,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:981,1
    - Dst: fbound
      Src: /src/Python-3.8.3/Modules/audioop.c:983,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - module
    - fragment
    - width
    - lfactor
    - rfactor
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 987
    functionName: audioop_tomono_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - fbound
    - SETRAWSAMPLE
    - PyBytes_AsString
    - PyErr_SetString
    - GETRAWSAMPLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_tomono_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                    double lfactor, double rfactor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1011,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1018,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1023,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1026,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1029,1
    - Dst: fbound
      Src: /src/Python-3.8.3/Modules/audioop.c:1030,1
    - Dst: fbound
      Src: /src/Python-3.8.3/Modules/audioop.c:1031,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1032,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - module
    - fragment
    - width
    - lfactor
    - rfactor
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1036
    functionName: audioop_tostereo_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - fbound
    - SETRAWSAMPLE
    - PyBytes_AsString
    - PyErr_SetString
    - GETRAWSAMPLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_tostereo_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                      double lfactor, double rfactor)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1059,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1062,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1069,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1072,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1075,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1076,1
    - Dst: fbound
      Src: /src/Python-3.8.3/Modules/audioop.c:1089,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1092,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - module
    - fragment1
    - fragment2
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1049
    functionDepth: 3
    functionLinenumber: 1049
    functionLinenumberEnd: 1095
    functionName: audioop_add_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - fbound
    - SETRAWSAMPLE
    - PyBytes_AsString
    - PyErr_SetString
    - GETRAWSAMPLE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_add_impl(PyObject *module, Py_buffer *fragment1,\n
      \                Py_buffer *fragment2, int width)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1117,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1120,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1123,1
    - Dst: GETINTX
      Src: /src/Python-3.8.3/Modules/audioop.c:1129,1
    - Dst: GETINTX
      Src: /src/Python-3.8.3/Modules/audioop.c:1131,1
    - Dst: GETINT24
      Src: /src/Python-3.8.3/Modules/audioop.c:1133,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/audioop.c:1135,1
    - Dst: GETINTX
      Src: /src/Python-3.8.3/Modules/audioop.c:1136,1
    - Dst: SETINTX
      Src: /src/Python-3.8.3/Modules/audioop.c:1144,1
    - Dst: SETINTX
      Src: /src/Python-3.8.3/Modules/audioop.c:1146,1
    - Dst: SETINT24
      Src: /src/Python-3.8.3/Modules/audioop.c:1148,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/audioop.c:1150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - bias
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    assertStmts:
    - condition: (width == 4)
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/Python-3.8.3/Modules/audioop.c
    - condition: (width == 4)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/Python-3.8.3/Modules/audioop.c
    constantsTouched: []
    func_position:
      end: 1155
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1155
    functionName: audioop_bias_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - SETINT24
    - GETINT24
    - PyBytes_AsString
    - GETINTX
    - SETINTX
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_bias_impl(PyObject *module, Py_buffer *fragment, int width, int bias)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1175,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1178,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1181,1
    - Dst: GETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1184,1
    - Dst: SETRAWSAMPLE
      Src: /src/Python-3.8.3/Modules/audioop.c:1185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1167
    functionDepth: 3
    functionLinenumber: 1167
    functionLinenumberEnd: 1188
    functionName: audioop_reverse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - SETRAWSAMPLE
    - PyBytes_AsString
    - GETRAWSAMPLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_reverse_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1208,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1211,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1222
    functionName: audioop_byteswap_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_byteswap_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1244,1
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:1246,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1250,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1254,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1257,1
    - Dst: GETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1260,1
    - Dst: SETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - newwidth
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1264
    functionName: audioop_lin2lin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - GETSAMPLE32
    - PyErr_SetString
    - SETSAMPLE32
    - audioop_check_size
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_lin2lin_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                     int newwidth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1275
    functionName: gcd
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gcd(int a, int b)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:1305,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1308,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1321,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/audioop.c:1325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1327,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1331,1
    - Dst: gcd
      Src: /src/Python-3.8.3/Modules/audioop.c:1335,1
    - Dst: gcd
      Src: /src/Python-3.8.3/Modules/audioop.c:1339,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1344,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/audioop.c:1348,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/audioop.c:1349,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/audioop.c:1351,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/audioop.c:1363,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1364,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/audioop.c:1367,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/audioop.c:1371,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1372,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/audioop.c:1377,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/audioop.c:1378,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1379,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/audioop.c:1383,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1394,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1408,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1412,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1416,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/audioop.c:1422,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/audioop.c:1426,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:1427,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/audioop.c:1430,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1434,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1435,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/audioop.c:1437,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:1441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/audioop.c:1442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/audioop.c:1443,1
    - Dst: GETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1448,1
    - Dst: SETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1464,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/audioop.c:1471,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/audioop.c:1472,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 135
    argCount: 9
    argNames:
    - module
    - fragment
    - width
    - nchannels
    - inrate
    - outrate
    - state
    - weightA
    - weightB
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - int
    - int
    - int
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (fragment->len >= 0)
      pos:
        line_end: 1324
        line_start: 1324
        source_file: /src/Python-3.8.3/Modules/audioop.c
    constantsTouched: []
    func_position:
      end: 1474
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1474
    functionName: audioop_ratecv_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - PyTuple_Check
    - gcd
    - assert
    - PyArg_ParseTuple
    - Py_DECREF
    - PyBytes_AsString
    - GETSAMPLE32
    - PyMem_Free
    - PyTuple_SetItem
    - PyTuple_New
    - Py_BuildValue
    - PyErr_NoMemory
    - PyErr_SetString
    - PyTuple_Size
    - PyMem_Malloc
    - SETSAMPLE32
    - audioop_check_size
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_ratecv_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                    int nchannels, int inrate, int outrate, PyObject
      *state,\n                    int weightA, int weightB)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1494,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1497,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1500,1
    - Dst: GETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1503,1
    - Dst: st_14linear2ulaw
      Src: /src/Python-3.8.3/Modules/audioop.c:1504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1486
    functionDepth: 3
    functionLinenumber: 1486
    functionLinenumberEnd: 1507
    functionName: audioop_lin2ulaw_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - GETSAMPLE32
    - st_14linear2ulaw
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2ulaw_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:1528,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1532,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1536,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1539,1
    - Dst: st_ulaw2linear16
      Src: /src/Python-3.8.3/Modules/audioop.c:1543,1
    - Dst: SETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1547
    functionName: audioop_ulaw2lin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - PyErr_SetString
    - SETSAMPLE32
    - st_ulaw2linear16
    - audioop_check_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_ulaw2lin_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1567,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1570,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1573,1
    - Dst: GETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1576,1
    - Dst: st_linear2alaw
      Src: /src/Python-3.8.3/Modules/audioop.c:1577,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1559
    functionDepth: 3
    functionLinenumber: 1559
    functionLinenumberEnd: 1580
    functionName: audioop_lin2alaw_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - st_linear2alaw
    - GETSAMPLE32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2alaw_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:1602,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1606,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1610,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1613,1
    - Dst: st_alaw2linear16
      Src: /src/Python-3.8.3/Modules/audioop.c:1617,1
    - Dst: SETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - fragment
    - width
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1621
    functionName: audioop_alaw2lin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyBytes_AsString
    - st_alaw2linear16
    - PyErr_SetString
    - SETSAMPLE32
    - audioop_check_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_alaw2lin_impl(PyObject *module, Py_buffer *fragment, int width)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_parameters
      Src: /src/Python-3.8.3/Modules/audioop.c:1646,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/audioop.c:1655,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1656,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/audioop.c:1659,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/audioop.c:1665,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1666,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1670,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1673,1
    - Dst: GETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1679,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:1748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/audioop.c:1749,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - state
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1751
    functionName: audioop_lin2adpcm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - audioop_check_parameters
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyBytes_AsString
    - PyTuple_Check
    - GETSAMPLE32
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_lin2adpcm_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                       PyObject *state)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: audioop_check_size
      Src: /src/Python-3.8.3/Modules/audioop.c:1776,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/audioop.c:1785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1786,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/audioop.c:1789,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/audioop.c:1795,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1796,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/audioop.c:1801,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/audioop.c:1806,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/audioop.c:1809,1
    - Dst: SETSAMPLE32
      Src: /src/Python-3.8.3/Modules/audioop.c:1860,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/audioop.c:1863,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/audioop.c:1864,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - module
    - fragment
    - width
    - state
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1866
    functionName: audioop_adpcm2lin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyBytes_AsString
    - PyTuple_Check
    - PyErr_SetString
    - SETSAMPLE32
    - PyArg_ParseTuple
    - audioop_check_size
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\naudioop_adpcm2lin_impl(PyObject *module, Py_buffer *fragment,
      int width,\n                       PyObject *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/audioop.c:1917,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/audioop.c:1920,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/audioop.c:1923,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/audioop.c:1925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1927
    functionName: PyInit_audioop
    functionSourceFile: /src/Python-3.8.3/Modules/audioop.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_Create
    - PyDict_SetItemString
    - PyModule_GetDict
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_audioop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: AS_GC
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_GC(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: FROM_GC
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_GC(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: gc_is_collecting
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_is_collecting(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: gc_clear_collecting
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_clear_collecting(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: gc_get_refs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_get_refs(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - g
    - refs
    argTypes:
    - PyGC_Head*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: gc_set_refs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_set_refs(PyGC_Head *g, Py_ssize_t refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - g
    - refs
    argTypes:
    - PyGC_Head*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: gc_reset_refs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_reset_refs(PyGC_Head *g, Py_ssize_t refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:108,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:108,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: gc_decref
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT_WITH_MSG
    - FROM_GC
    - gc_get_refs
    linkageType: ''
    returnType: void
    signature: void gc_decref(PyGC_Head *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - state
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: GEN_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_HEAD(state, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:136,1
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:136,1
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:137,1
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:137,1
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:138,1
    - Dst: _GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:138,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _gc_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: _PyGC_Initialize
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - _GEN_HEAD
    linkageType: ''
    returnType: void
    signature: void _PyGC_Initialize(struct _gc_runtime_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: _GEN_HEAD
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _GEN_HEAD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: gc_list_init
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gc_list_init(PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: gc_list_is_empty
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_list_is_empty(PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:226,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:227,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: gc_list_append
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - _PyGCHead_SET_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_append(PyGC_Head *node, PyGC_Head *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:238,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:239,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:241,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: gc_list_remove
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - _PyGCHead_SET_NEXT
    - GC_PREV
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_remove(PyGC_Head *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:255,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:256,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:257,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:258,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:263,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:264,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - node
    - list
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 267
    functionName: gc_list_move
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_SET_PREV
    - _PyGCHead_SET_NEXT
    - GC_PREV
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_move(PyGC_Head *node, PyGC_Head *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:273,1
    - Dst: gc_list_is_empty
      Src: /src/Python-3.8.3/Modules/gcmodule.c:274,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:275,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:276,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:277,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:278,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:279,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:281,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:282,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:284,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:285,1
    - Dst: gc_list_init
      Src: /src/Python-3.8.3/Modules/gcmodule.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (from != to)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (from_head != from)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (from_tail != from)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 288
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 288
    functionName: gc_list_merge
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_is_empty
    - GC_PREV
    - gc_list_init
    - _PyGCHead_SET_PREV
    - assert
    - GC_NEXT
    - _PyGCHead_SET_NEXT
    linkageType: ''
    returnType: void
    signature: void gc_list_merge(PyGC_Head *from, PyGC_Head *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:295,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 299
    functionName: gc_list_size
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GC_NEXT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_list_size(PyGC_Head *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:308,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:308,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:309,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - py_list
    - gc_list
    argTypes:
    - PyObject*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 317
    functionName: append_objects
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - PyList_Append
    - GC_NEXT
    linkageType: ''
    returnType: int
    signature: int append_objects(PyObject *py_list, PyGC_Head *gc_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:326,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:328,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:328,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:329,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:329,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:330,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:332,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:334,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - head
    - expected_mask
    argTypes:
    - PyGC_Head*
    - uintptr_t
    assertStmts:
    - condition: (GC_NEXT(gc) != NULL)
      pos:
        line_end: 327
        line_start: 327
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (GC_PREV(gc) == prev)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: ((gc->_gc_prev & PREV_MASK_COLLECTING) == expected_mask)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (prev == GC_PREV(head))
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: validate_list
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - GC_PREV
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void validate_list(PyGC_Head *head, uintptr_t expected_mask)
  - 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: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: validate_list
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: validate_list(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:349,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:350,1
    - Dst: gc_reset_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:351,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:351,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:351,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:370,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:370,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: update_refs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - Py_REFCNT
    - _PyObject_ASSERT
    - gc_get_refs
    - gc_reset_refs
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void update_refs(PyGC_Head *containers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:378,1
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Modules/gcmodule.c:378,1
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Modules/gcmodule.c:378,1
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:380,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:381,1
    - Dst: gc_is_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:386,1
    - Dst: gc_decref
      Src: /src/Python-3.8.3/Modules/gcmodule.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - parent
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 391
    functionName: visit_decref
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsFreed
    - AS_GC
    - gc_is_collecting
    - _PyObject_ASSERT
    - PyObject_IS_GC
    - gc_decref
    - _PyObject_CAST
    linkageType: ''
    returnType: int
    signature: int visit_decref(PyObject *op, void *parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:402,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:403,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:404,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:405,1
    - Dst: traverse
      Src: /src/Python-3.8.3/Modules/gcmodule.c:406,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - containers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: subtract_refs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - Py_TYPE
    - traverse
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void subtract_refs(PyGC_Head *containers)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:416,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:420,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:421,1
    - Dst: gc_is_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:424,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:436,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:438,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:438,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:440,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:440,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:443,1
    - Dst: gc_list_append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:445,1
    - Dst: gc_set_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:446,1
    - Dst: gc_set_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:454,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - op
    - reachable
    argTypes:
    - PyObject*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 464
    functionName: visit_reachable
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - AS_GC
    - GC_PREV
    - gc_is_collecting
    - gc_get_refs
    - _PyObject_ASSERT
    - PyObject_IS_GC
    - _PyGCHead_SET_PREV
    - gc_set_refs
    - gc_list_append
    - _PyObject_ASSERT_WITH_MSG
    - FROM_GC
    linkageType: ''
    returnType: int
    signature: int visit_reachable(PyObject *op, PyGC_Head *reachable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:483,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:495,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:504,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:505,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:506,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:506,1
    - Dst: traverse
      Src: /src/Python-3.8.3/Modules/gcmodule.c:510,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:514,1
    - Dst: gc_clear_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:516,1
    - Dst: GC_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:533,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - young
    - unreachable
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 547
    functionName: move_unreachable
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GC_PREV
    - gc_get_refs
    - _PyGCHead_SET_PREV
    - Py_TYPE
    - GC_NEXT
    - _PyObject_ASSERT_WITH_MSG
    - gc_clear_collecting
    - traverse
    - FROM_GC
    linkageType: ''
    returnType: void
    signature: void move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:552,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:554,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:555,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/gcmodule.c:556,1
    - Dst: _PyTuple_MaybeUntrack
      Src: /src/Python-3.8.3/Modules/gcmodule.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 561
    functionName: untrack_tuples
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - _PyTuple_MaybeUntrack
    - GC_NEXT
    - PyTuple_CheckExact
    linkageType: ''
    returnType: void
    signature: void untrack_tuples(PyGC_Head *head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:567,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:569,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:570,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/gcmodule.c:571,1
    - Dst: _PyDict_MaybeUntrack
      Src: /src/Python-3.8.3/Modules/gcmodule.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 576
    functionName: untrack_dicts
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - _PyDict_MaybeUntrack
    - GC_NEXT
    - PyDict_CheckExact
    linkageType: ''
    returnType: void
    signature: void untrack_dicts(PyGC_Head *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: has_legacy_finalizer
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int has_legacy_finalizer(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:599,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:600,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:602,1
    - Dst: has_legacy_finalizer
      Src: /src/Python-3.8.3/Modules/gcmodule.c:606,1
    - Dst: gc_clear_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:607,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - unreachable
    - finalizers
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: move_legacy_finalizers
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - has_legacy_finalizer
    - _PyObject_ASSERT
    - gc_list_move
    - GC_NEXT
    - gc_clear_collecting
    - FROM_GC
    linkageType: ''
    returnType: void
    signature: void move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:617,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:618,1
    - Dst: gc_is_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:619,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:620,1
    - Dst: gc_clear_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - tolist
    argTypes:
    - PyObject*
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 625
    functionName: visit_move
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - AS_GC
    - gc_is_collecting
    - PyObject_IS_GC
    - gc_list_move
    - gc_clear_collecting
    linkageType: ''
    returnType: int
    signature: int visit_move(PyObject *op, PyGC_Head *tolist)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:634,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:635,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:637,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:637,1
    - Dst: traverse
      Src: /src/Python-3.8.3/Modules/gcmodule.c:638,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - finalizers
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: move_legacy_finalizer_reachable
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - FROM_GC
    - Py_TYPE
    - traverse
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void move_legacy_finalizer_reachable(PyGC_Head *finalizers)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/Python-3.8.3/Modules/gcmodule.c:665,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:675,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:678,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:679,1
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Modules/gcmodule.c:681,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/Python-3.8.3/Modules/gcmodule.c:693,1
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Modules/gcmodule.c:696,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:696,1
    - Dst: PyObject_GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Modules/gcmodule.c:701,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:714,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/Python-3.8.3/Modules/gcmodule.c:715,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:716,1
    - Dst: gc_is_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:750,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:750,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:752,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:759,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:762,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:763,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:766,1
    - Dst: gc_list_is_empty
      Src: /src/Python-3.8.3/Modules/gcmodule.c:773,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:778,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:779,1
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Modules/gcmodule.c:779,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:782,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:785,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:787,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:802,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:805,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - unreachable
    - old
    argTypes:
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (wr->wr_object == Py_None)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (wrasgc != next)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 813
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 813
    functionName: handle_weakrefs
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_is_empty
    - Py_DECREF
    - Py_INCREF
    - FROM_GC
    - AS_GC
    - PyWeakref_Check
    - gc_is_collecting
    - PyErr_WriteUnraisable
    - gc_list_init
    - _PyObject_ASSERT
    - gc_list_move
    - _PyWeakref_ClearRef
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - assert
    - PyObject_GET_WEAKREFS_LISTPTR
    - GC_NEXT
    linkageType: ''
    returnType: int
    signature: int handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:818,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - op
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 820
    functionName: debug_cycle
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void debug_cycle(const char *msg, PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:833,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:833,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:835,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:837,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/gcmodule.c:839,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:841,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:842,1
    - Dst: has_legacy_finalizer
      Src: /src/Python-3.8.3/Modules/gcmodule.c:844,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:845,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/gcmodule.c:846,1
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:852,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - state
    - finalizers
    - old
    argTypes:
    - struct _gc_runtime_state*
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 853
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 853
    functionName: handle_legacy_finalizers
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - FROM_GC
    - has_legacy_finalizer
    - Py_FatalError
    - PyList_Append
    - gc_list_merge
    - PyList_New
    - assert
    - PyErr_Clear
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: "void handle_legacy_finalizers(struct _gc_runtime_state *state,\n                         PyGC_Head
      *finalizers, PyGC_Head *old)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_init
      Src: /src/Python-3.8.3/Modules/gcmodule.c:873,1
    - Dst: gc_list_is_empty
      Src: /src/Python-3.8.3/Modules/gcmodule.c:875,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:876,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:877,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:878,1
    - Dst: _PyGCHead_FINALIZED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:879,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:880,1
    - Dst: _PyGCHead_SET_FINALIZED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:881,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:882,1
    - Dst: finalize
      Src: /src/Python-3.8.3/Modules/gcmodule.c:883,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:884,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:884,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:885,1
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:888,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - collectable
    argTypes:
    - PyGC_Head*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 889
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 889
    functionName: finalize_garbage
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_is_empty
    - finalize
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - FROM_GC
    - _PyGCHead_FINALIZED
    - gc_list_init
    - gc_list_move
    - _PyGCHead_SET_FINALIZED
    - Py_TYPE
    - gc_list_merge
    - assert
    - GC_NEXT
    linkageType: ''
    returnType: void
    signature: void finalize_garbage(PyGC_Head *collectable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:899,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:899,1
    - Dst: gc_set_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:901,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:901,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:901,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:902,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:902,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:902,1
    - Dst: subtract_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:904,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:906,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:906,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:907,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:907,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:908,1
    - Dst: gc_get_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:910,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Modules/gcmodule.c:914,1
    - Dst: gc_clear_collecting
      Src: /src/Python-3.8.3/Modules/gcmodule.c:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - collectable
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 919
    functionName: check_garbage
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_REFCNT
    - subtract_refs
    - _PyObject_ASSERT
    - gc_get_refs
    - _PyGCHead_SET_PREV
    - gc_set_refs
    - GC_NEXT
    - _PyObject_ASSERT_WITH_MSG
    - gc_clear_collecting
    - FROM_GC
    linkageType: ''
    returnType: int
    signature: int check_garbage(PyGC_Head *collectable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:929,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:929,1
    - Dst: gc_list_is_empty
      Src: /src/Python-3.8.3/Modules/gcmodule.c:931,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:932,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:933,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:935,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:935,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:939,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:940,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/gcmodule.c:941,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:946,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:947,1
    - Dst: clear
      Src: /src/Python-3.8.3/Modules/gcmodule.c:948,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:949,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Modules/gcmodule.c:950,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:951,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:953,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:956,1
    - Dst: gc_list_move
      Src: /src/Python-3.8.3/Modules/gcmodule.c:958,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - state
    - collectable
    - old
    argTypes:
    - struct _gc_runtime_state*
    - PyGC_Head*
    - PyGC_Head*
    assertStmts:
    - condition: (state->garbage != NULL)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 961
      start: 925
    functionDepth: 2
    functionLinenumber: 925
    functionLinenumberEnd: 961
    functionName: delete_garbage
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_is_empty
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - _PyErr_WriteUnraisableMsg
    - PyList_Append
    - clear
    - gc_list_move
    - Py_TYPE
    - GC_NEXT
    - assert
    - _PyObject_ASSERT_WITH_MSG
    - PyErr_Clear
    - FROM_GC
    linkageType: ''
    returnType: void
    signature: "void delete_garbage(struct _gc_runtime_state *state,\n               PyGC_Head
      *collectable, PyGC_Head *old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:971,1
    - Dst: PyFrame_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:972,1
    - Dst: PyCFunction_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:973,1
    - Dst: PyTuple_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:974,1
    - Dst: PyUnicode_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:975,1
    - Dst: PyFloat_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:976,1
    - Dst: PyList_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:977,1
    - Dst: PyDict_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:978,1
    - Dst: PySet_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:979,1
    - Dst: PyAsyncGen_ClearFreeLists
      Src: /src/Python-3.8.3/Modules/gcmodule.c:980,1
    - Dst: PyContext_ClearFreeList
      Src: /src/Python-3.8.3/Modules/gcmodule.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 982
    functionName: clear_freelists
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyContext_ClearFreeList
    - PyMethod_ClearFreeList
    - PyCFunction_ClearFreeList
    - PyAsyncGen_ClearFreeLists
    - PyList_ClearFreeList
    - PyTuple_ClearFreeList
    - PyFloat_ClearFreeList
    - PyDict_ClearFreeList
    - PyUnicode_ClearFreeList
    - PySet_ClearFreeList
    - PyFrame_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void clear_freelists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/gcmodule.c:992,1
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:994,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:994,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:997,1
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _gc_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1001
    functionName: show_stats_each_generations
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_size
    - GEN_HEAD
    - PyOS_snprintf
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void show_stats_each_generations(struct _gc_runtime_state *state)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1020,1
    - Dst: show_stats_each_generations
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1021,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1022,1
    - Dst: PyDTrace_GC_START_ENABLED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1025,1
    - Dst: PyDTrace_GC_START
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1026,1
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1036,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1036,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1036,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1040,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1042,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1046,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1047,1
    - Dst: update_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1053,1
    - Dst: subtract_refs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1054,1
    - Dst: gc_list_init
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1062,1
    - Dst: move_unreachable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1063,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1064,1
    - Dst: untrack_tuples
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1066,1
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1070,1
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1072,1
    - Dst: untrack_dicts
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1077,1
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1079,1
    - Dst: gc_list_init
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1085,1
    - Dst: move_legacy_finalizers
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1088,1
    - Dst: move_legacy_finalizer_reachable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1093,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1095,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1096,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1100,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1100,1
    - Dst: debug_cycle
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1101,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1101,1
    - Dst: handle_weakrefs
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1106,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1108,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1109,1
    - Dst: finalize_garbage
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1112,1
    - Dst: check_garbage
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1114,1
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1115,1
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1122,1
    - Dst: delete_garbage
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1123,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1128,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1128,1
    - Dst: debug_cycle
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1131,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1131,1
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1134,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1134,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1135,1
    - Dst: handle_legacy_finalizers
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1145,1
    - Dst: validate_list
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1146,1
    - Dst: clear_freelists
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1151,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1154,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1156,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1160,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1161,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1162,1
    - Dst: PyDTrace_GC_DONE_ENABLED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1179,1
    - Dst: PyDTrace_GC_DONE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1180,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1183,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1183,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 94
    argCount: 5
    argNames:
    - state
    - generation
    - n_collected
    - n_uncollectable
    - nofail
    argTypes:
    - struct _gc_runtime_state*
    - int
    - Py_ssize_t*
    - Py_ssize_t*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1182
        line_start: 1182
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 1185
      start: 1005
    functionDepth: 3
    functionLinenumber: 1005
    functionLinenumberEnd: 1185
    functionName: collect
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - show_stats_each_generations
    - gc_list_init
    - handle_legacy_finalizers
    - validate_list
    - update_refs
    - untrack_dicts
    - PyErr_Occurred
    - clear_freelists
    - PyDTrace_GC_DONE
    - _PyTime_GetMonotonicClock
    - gc_list_merge
    - move_legacy_finalizers
    - assert
    - PyErr_Clear
    - GC_NEXT
    - FROM_GC
    - check_garbage
    - delete_garbage
    - PyUnicode_FromString
    - handle_weakrefs
    - debug_cycle
    - PyErr_WriteUnraisable
    - untrack_tuples
    - PyDTrace_GC_START
    - finalize_garbage
    - Py_FatalError
    - move_legacy_finalizer_reachable
    - PyDTrace_GC_DONE_ENABLED
    - gc_list_size
    - PySys_WriteStderr
    - subtract_refs
    - move_unreachable
    - _PyTime_AsSecondsDouble
    - PyDTrace_GC_START_ENABLED
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t collect(struct _gc_runtime_state *state, int generation,\n
      \       Py_ssize_t *n_collected, Py_ssize_t *n_uncollectable, int nofail)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1195,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1195,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1203,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1203,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1205,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1206,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1211,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1215,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1216,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1217,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1218,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1225,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1227,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1228,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - state
    - phase
    - generation
    - collected
    - uncollectable
    argTypes:
    - struct _gc_runtime_state*
    - char*
    - int
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1194
        line_start: 1194
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (PyList_CheckExact(state->callbacks))
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1227
        line_start: 1227
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 1229
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1229
    functionName: invoke_gc_callback
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyErr_WriteUnraisable
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyObject_CallFunction
    - PyList_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void invoke_gc_callback(struct _gc_runtime_state *state, const char
      *phase,\n                   int generation, Py_ssize_t collected,\n                   Py_ssize_t
      uncollectable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1237,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1237,1
    - Dst: invoke_gc_callback
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1239,1
    - Dst: collect
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1240,1
    - Dst: invoke_gc_callback
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1242,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - state
    - generation
    argTypes:
    - struct _gc_runtime_state*
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1236
        line_start: 1236
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 1244
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1244
    functionName: collect_with_callback
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - collect
    - assert
    - PyErr_Occurred
    - invoke_gc_callback
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t collect_with_callback(struct _gc_runtime_state *state, int
      generation)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: collect_with_callback
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _gc_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1246
    functionDepth: 5
    functionLinenumber: 1246
    functionLinenumberEnd: 1267
    functionName: collect_generations
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - collect_with_callback
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t collect_generations(struct _gc_runtime_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1283
    functionName: gc_enable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_enable_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    functionName: gc_disable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_disable_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: gc_isenabled_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_isenabled_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1332,1
    - Dst: collect_with_callback
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1326
    functionDepth: 5
    functionLinenumber: 1326
    functionLinenumberEnd: 1348
    functionName: gc_collect_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - collect_with_callback
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_collect_impl(PyObject *module, int generation)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flags
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1375
    functionName: gc_set_debug_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_debug_impl(PyObject *module, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1388
    functionName: gc_get_debug_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gc_get_debug_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1410
    functionName: gc_set_threshold
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_threshold(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1427
    functionName: gc_get_threshold_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_threshold_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1444
    functionName: gc_get_count_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_count_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1450,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - objs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1446
    functionDepth: 1
    functionLinenumber: 1446
    functionLinenumberEnd: 1454
    functionName: referrersvisit
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int referrersvisit(PyObject* obj, PyObject *objs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1462,1
    - Dst: GC_NEXT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1462,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1463,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1464,1
    - Dst: traverse
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1467,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - objs
    - list
    - resultlist
    argTypes:
    - PyObject*
    - PyGC_Head*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1473
    functionName: gc_referrers_for
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_TYPE
    - GC_NEXT
    - traverse
    - FROM_GC
    linkageType: ''
    returnType: int
    signature: int gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1483,1
    - Dst: gc_referrers_for
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1488,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1479
    functionDepth: 2
    functionLinenumber: 1479
    functionLinenumberEnd: 1494
    functionName: gc_get_referrers
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - GEN_HEAD
    - gc_referrers_for
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referrers(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - list
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1501
    functionName: referentsvisit
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int referentsvisit(PyObject *obj, PyObject *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1511,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1516,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1518,1
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1520,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1522,1
    - Dst: traverse
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1525,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1526,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1531
    functionName: gc_get_referents
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyObject_IS_GC
    - Py_TYPE
    - PyList_New
    - PyTuple_GET_ITEM
    - traverse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_referents(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1552,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1560,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1568,1
    - Dst: append_objects
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1573,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1573,1
    - Dst: append_objects
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1582,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - module
    - generation
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1544
    functionDepth: 2
    functionLinenumber: 1544
    functionLinenumberEnd: 1591
    functionName: gc_get_objects_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - Py_DECREF
    - PyErr_Format
    - PyErr_SetString
    - PyList_New
    - append_objects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_objects_impl(PyObject *module, Py_ssize_t generation)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1613,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1620,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1631,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1636,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1638
    functionName: gc_get_stats_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyList_Append
    - PyList_New
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_stats_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1658,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1658,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1664
    functionName: gc_is_tracked
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_IS_GC
    - Py_INCREF
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_is_tracked(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1682,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1686
    functionName: gc_freeze_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - gc_list_merge
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_freeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_merge
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1701,1
    - Dst: GEN_HEAD
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1703
    functionName: gc_unfreeze_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - GEN_HEAD
    - gc_list_merge
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_unfreeze_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_list_size
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1716
    functionName: gc_get_freeze_count_impl
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - gc_list_size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gc_get_freeze_count_impl(PyObject *module)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1780,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1788,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1792,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1793,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1797,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1801,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1802,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1806,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1807,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1808,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1809,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1813
    functionName: PyInit_gc
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - ADD_INT
    - PyList_New
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_gc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1806
    functionName: ADD_INT
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(NAME)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1832,1
    - Dst: collect_with_callback
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1833,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1816
    functionDepth: 5
    functionLinenumber: 1816
    functionLinenumberEnd: 1839
    functionName: PyGC_Collect
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - collect_with_callback
    - PyErr_Restore
    - PyErr_Fetch
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyGC_Collect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGC_Collect
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1841
    functionDepth: 6
    functionLinenumber: 1841
    functionLinenumberEnd: 1845
    functionName: _PyGC_CollectIfEnabled
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyGC_Collect
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_CollectIfEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1850,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1850,1
    - Dst: collect
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 1870
      start: 1847
    functionDepth: 4
    functionLinenumber: 1847
    functionLinenumberEnd: 1870
    functionName: _PyGC_CollectNoFail
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - collect
    - assert
    - PyErr_Occurred
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyGC_CollectNoFail(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1877,1
    - Dst: PyErr_WarnExplicitFormat
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1888,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1890,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1891,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1894,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1895,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1896,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1898,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1900,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1903,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1904,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1872
    functionDepth: 1
    functionLinenumber: 1872
    functionLinenumberEnd: 1907
    functionName: _PyGC_DumpShutdownStats
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnExplicitFormat
    - PyUnicode_EncodeFSDefault
    - PySys_WriteStderr
    - PyObject_Repr
    - PyErr_WriteUnraisable
    - PyBytes_AS_STRING
    - PyList_GET_SIZE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _PyGC_DumpShutdownStats(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1913,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 1
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: _PyGC_Fini
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyGC_Fini(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1921,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - PyGC_Head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1918
    functionDepth: 1
    functionLinenumber: 1918
    functionLinenumberEnd: 1922
    functionName: _PyGC_Dump
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_Dump
    - FROM_GC
    linkageType: ''
    returnType: void
    signature: void _PyGC_Dump(PyGC_Head *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1930,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1931,1
    - Dst: _PyObject_ASSERT_FAILED_MSG
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1932,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1927
    functionDepth: 1
    functionLinenumber: 1927
    functionLinenumberEnd: 1937
    functionName: PyObject_GC_Track
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 15
    functionsReached:
    - _PyObject_ASSERT_FAILED_MSG
    - _PyObject_GC_TRACK
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Track(void *op_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1942,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1946,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1949
    functionName: PyObject_GC_UnTrack
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 44
    functionsReached:
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - _PyObject_CAST
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_UnTrack(void *op_raw)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1959,1
    - Dst: PyObject_Calloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1962,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1964,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1966,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1967,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1975,1
    - Dst: collect_generations
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1977,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1980,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - use_calloc
    - basicsize
    argTypes:
    - int
    - size_t
    assertStmts:
    - condition: (((uintptr_t)g & 3) == 0)
      pos:
        line_end: 1966
        line_start: 1966
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
    constantsTouched: []
    func_position:
      end: 1982
      start: 1951
    functionDepth: 6
    functionLinenumber: 1951
    functionLinenumberEnd: 1982
    functionName: _PyObject_GC_Alloc
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Calloc
    - PyErr_Occurred
    - PyObject_Malloc
    - PyErr_NoMemory
    - assert
    - collect_generations
    - FROM_GC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_Alloc(int use_calloc, size_t basicsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_Alloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - basicsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1984
    functionDepth: 7
    functionLinenumber: 1984
    functionLinenumberEnd: 1988
    functionName: _PyObject_GC_Malloc
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_Alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_Malloc(size_t basicsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_Alloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - basicsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1990
    functionDepth: 7
    functionLinenumber: 1990
    functionLinenumberEnd: 1994
    functionName: _PyObject_GC_Calloc
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_Alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_Calloc(size_t basicsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_Malloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1999,1
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:1999,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1996
    functionDepth: 8
    functionLinenumber: 1996
    functionLinenumberEnd: 2003
    functionName: _PyObject_GC_New
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_Malloc
    - PyObject_INIT
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GC_New(PyTypeObject *tp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2012,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2015,1
    - Dst: _PyObject_GC_Malloc
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2016,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2005
    functionDepth: 8
    functionLinenumber: 2005
    functionLinenumberEnd: 2020
    functionName: _PyObject_GC_NewVar
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_Malloc
    - _PyObject_VAR_SIZE
    - PyErr_BadInternalCall
    - PyObject_INIT_VAR
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_NewVar(PyTypeObject *tp, Py_ssize_t nitems)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2025,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2025,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2026,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2026,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2028,1
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2031,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2032,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2034,1
    - Dst: FROM_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2035,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - op
    - nitems
    argTypes:
    - PyVarObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2038
    functionName: _PyObject_GC_Resize
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 0
    functionsReached:
    - AS_GC
    - PyErr_NoMemory
    - _PyObject_ASSERT
    - PyObject_REALLOC
    - Py_TYPE
    - _PyObject_GC_IS_TRACKED
    - _PyObject_VAR_SIZE
    - Py_SIZE
    - FROM_GC
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_GC_Resize(PyVarObject *op, Py_ssize_t nitems)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AS_GC
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2043,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2044,1
    - Dst: gc_list_remove
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2045,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Modules/gcmodule.c:2051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2040
    functionDepth: 2
    functionLinenumber: 2040
    functionLinenumberEnd: 2052
    functionName: PyObject_GC_Del
    functionSourceFile: /src/Python-3.8.3/Modules/gcmodule.c
    functionUses: 16
    functionsReached:
    - AS_GC
    - gc_list_remove
    - PyObject_FREE
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: void
    signature: void PyObject_GC_Del(void *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - object
    - target
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: conv_descriptor
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_AsFileDescriptor
    linkageType: ''
    returnType: int
    signature: int conv_descriptor(PyObject *object, int *target)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:69,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:76,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:78,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:82,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:85,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:87,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:89,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:91,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:94,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:95,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:106,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:108,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:110,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:112,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - module
    - fd
    - code
    - arg
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 113
    functionName: fcntl_fcntl_impl
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - memcpy
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - fcntl
    - PyArg_Parse
    - PyErr_SetString
    - PyErr_Clear
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_fcntl_impl(PyObject *module, int fd, int code, PyObject *arg)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:178,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:184,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:191,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:201,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:202,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:207,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:214,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:218,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:221,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:223,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:225,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:229,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:232,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:236,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:237,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:241,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:242,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:246,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:249,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:252,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:253,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:256,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:257,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:260,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:261,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:270,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:273,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:276,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 72
    argCount: 5
    argNames:
    - module
    - fd
    - code
    - ob_arg
    - mutate_arg
    argTypes:
    - PyObject*
    - int
    - unsigned int
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 278
    functionName: fcntl_ioctl_impl
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - memcpy
    - ioctl
    - PyErr_SetFromErrno
    - PyArg_Parse
    - PyBuffer_Release
    - PyErr_SetString
    - PyErr_Clear
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfcntl_ioctl_impl(PyObject *module, int fd, unsigned int
      code,\n                 PyObject *ob_arg, int mutate_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:300,1
    - Dst: flock
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:307,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:309,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:327,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:334,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:336,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:340,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - module
    - fd
    - code
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 343
    functionName: fcntl_flock_impl
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - fcntl
    - PyErr_SetString
    - flock
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_flock_impl(PyObject *module, int fd, int code)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:388,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:408,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:415,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:417,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:418,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:419,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:421,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:426,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:428,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:429,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:430,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:432,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:438,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:440,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:443,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 6
    argNames:
    - module
    - fd
    - code
    - lenobj
    - startobj
    - whence
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 446
    functionName: fcntl_lockf_impl
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PyLong_AsLongLong
    - fcntl
    - PyErr_SetString
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfcntl_lockf_impl(PyObject *module, int fd, int code, PyObject
      *lenobj,\n                 PyObject *startobj, int whence)"
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:471,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:472,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:473,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:474,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:477,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:480,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:483,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:486,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:490,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:493,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:496,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:499,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:502,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:505,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:508,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:511,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:514,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:517,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:520,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:523,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:526,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:529,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:532,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:535,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:539,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:542,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:545,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:549,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:552,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:555,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:558,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:562,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:565,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:570,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:573,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:578,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:583,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:586,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:589,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:592,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:595,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:598,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:601,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:606,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:607,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:608,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:609,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:610,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:611,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:612,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:613,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:614,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:615,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:616,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:617,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:618,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:619,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:620,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:623,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:625,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:626,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:627,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:628,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:629,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:630,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:631,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:632,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:634,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:636,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:637,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:638,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:639,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:643,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:644,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:645,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:646,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:647,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:648,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 158
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 651
    functionName: all_ins
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 1
    functionsReached:
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: int
    signature: int all_ins(PyObject* m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:672,1
    - Dst: all_ins
      Src: /src/Python-3.8.3/Modules/fcntlmodule.c:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 681
    functionName: PyInit_fcntl
    functionSourceFile: /src/Python-3.8.3/Modules/fcntlmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - all_ins
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_fcntl(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: _Pickle_GetState
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyModule_GetState
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_GetState(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:193,1
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: _Pickle_GetGlobalState
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - _Pickle_GetState
    linkageType: ''
    returnType: PickleState
    signature: 'PickleState *

      _Pickle_GetGlobalState(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:200,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:201,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:202,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:203,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:204,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:205,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:206,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:207,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:208,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:209,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:210,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:211,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:212,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: _Pickle_ClearState
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Pickle_ClearState(PickleState *st)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:224,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Modules/_pickle.c:226,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:230,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:233,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:236,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:237,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:239,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:243,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:246,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:247,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:249,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:253,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:256,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:257,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:259,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:262,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:265,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:266,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:268,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:271,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:274,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:278,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:281,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:282,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:284,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:288,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:291,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:292,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:294,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:299,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:302,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:303,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:305,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:309,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:312,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:313,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:315,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:318,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:320,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:323,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:327,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:328,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:330,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:333,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:335,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_pickle.c:338,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:341,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:346,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:347,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:348,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:349,1
    - Dst: _Pickle_ClearState
      Src: /src/Python-3.8.3/Modules/_pickle.c:350,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 121
    argCount: 1
    argNames:
    - st
    argTypes:
    - PickleState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 352
    functionName: _Pickle_InitState
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_CLEAR
    - PyObject_GetAttrString
    - PyCallable_Check
    - _Pickle_ClearState
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _Pickle_InitState(PickleState *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:362,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - func
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: _Pickle_FastCall
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Pickle_FastCall(PyObject *func, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:380,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:383,1
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:387,1
    - Dst: PyMethod_GET_SELF
      Src: /src/Python-3.8.3/Modules/_pickle.c:387,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Modules/_pickle.c:389,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:390,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:392,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:393,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - self
    - name
    - method_func
    - method_self
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 401
    functionName: init_method_ref
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMethod_GET_FUNCTION
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - _PyObject_LookupAttrId
    - PyMethod_Check
    - PyMethod_GET_SELF
    linkageType: ''
    returnType: int
    signature: "int init_method_ref(PyObject *self, _Py_Identifier *name,\n                PyObject
      **method_func, PyObject **method_self)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:408,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - func
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 414
    functionName: reconstruct_method
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reconstruct_method(PyObject *func, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:420,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - func
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: call_method
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_method(PyObject *func, PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:443,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:445,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: Pdata_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_SIZE
    - Py_DECREF
    - PyMem_FREE
    linkageType: ''
    returnType: void
    signature: void Pdata_dealloc(Pdata *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:462,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/_pickle.c:468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:471,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 473
    functionName: Pdata_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_DECREF
    - PyMem_MALLOC
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 464
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:484,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:489,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - clearto
    argTypes:
    - Pdata*
    - Py_ssize_t
    assertStmts:
    - condition: (clearto >= self->fence)
      pos:
        line_end: 483
        line_start: 483
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 493
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: Pdata_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int Pdata_clear(Pdata *self, Py_ssize_t clearto)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 518
    functionName: Pdata_grow
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int Pdata_grow(Pdata *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 529
    functionName: Pdata_stack_underflow
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetGlobalState
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int Pdata_stack_underflow(Pdata *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:538,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:539,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - Pdata*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: Pdata_pop
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Pdata_stack_underflow
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_pop(Pdata *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: PDATA_POP
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDATA_POP(D, V)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:549,1
    - Dst: Pdata_grow
      Src: /src/Python-3.8.3/Modules/_pickle.c:549,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - Pdata*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 554
    functionName: Pdata_push
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_grow
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int Pdata_push(Pdata *self, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - O
    - ','
    - ER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: PDATA_PUSH
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDATA_PUSH(D, O, ER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - O
    - ','
    - ER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: PDATA_APPEND
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PDATA_APPEND(D, O, ER)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:572,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:575,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:576,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:580,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:582,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 584
    functionName: Pdata_poptuple
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PyTuple_New
    - PyTuple_SET_ITEM
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_poptuple(Pdata *self, Py_ssize_t start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:592,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:593,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:597,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - Pdata*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 601
    functionName: Pdata_poplist
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_SIZE
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pdata_poplist(Pdata *self, Py_ssize_t start)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/_pickle.c:727,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:729,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Modules/_pickle.c:736,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:738,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:739,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_pickle.c:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 745
    functionName: PyMemoTable_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_FREE
    - memset
    - PyMem_MALLOC
    linkageType: ''
    returnType: PyMemoTable
    signature: 'PyMemoTable *

      PyMemoTable_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:750,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:759,1
    - Dst: mt_table::mt_table
      Src: /src/Python-3.8.3/Modules/_pickle.c:759,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_pickle.c:760,1
    - Dst: mt_table::mt_table
      Src: /src/Python-3.8.3/Modules/_pickle.c:761,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:763,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:767,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_pickle.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 773
    functionName: PyMemoTable_Copy
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_New
    - memcpy
    - PyErr_NoMemory
    - PyMem_NEW
    - mt_table::mt_table
    - PyMem_FREE
    - Py_XINCREF
    linkageType: ''
    returnType: PyMemoTable
    signature: 'PyMemoTable *

      PyMemoTable_Copy(PyMemoTable *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 779
    functionName: PyMemoTable_Size
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyMemoTable_Size(PyMemoTable *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:787,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_pickle.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 792
    functionName: PyMemoTable_Clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: int
    signature: int PyMemoTable_Clear(PyMemoTable *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:799,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:801,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 803
    functionName: PyMemoTable_Del
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - PyMemoTable_Clear
    linkageType: ''
    returnType: void
    signature: void PyMemoTable_Del(PyMemoTable *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/_pickle.c:828,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyMemoTable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 829
    functionName: _PyMemoTable_Lookup
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: PyMemoEntry
    signature: 'PyMemoEntry *

      _PyMemoTable_Lookup(PyMemoTable *self, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:840,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:843,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:852,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_pickle.c:856,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:859,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_pickle.c:864,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/Python-3.8.3/Modules/_pickle.c:874,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - self
    - min_size
    argTypes:
    - PyMemoTable*
    - size_t
    assertStmts:
    - condition: (min_size > 0)
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - condition: ((new_size & (new_size - 1)) == 0)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 883
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 883
    functionName: _PyMemoTable_ResizeTable
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyMemoTable_Lookup
    - PyErr_NoMemory
    - PyMem_NEW
    - assert
    - PyMem_FREE
    - memset
    linkageType: ''
    returnType: int
    signature: int _PyMemoTable_ResizeTable(PyMemoTable *self, size_t min_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMemoTable_Lookup
      Src: /src/Python-3.8.3/Modules/_pickle.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyMemoTable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: PyMemoTable_Get
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyMemoTable_Lookup
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t *

      PyMemoTable_Get(PyMemoTable *self, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:901,1
    - Dst: _PyMemoTable_Lookup
      Src: /src/Python-3.8.3/Modules/_pickle.c:903,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:908,1
    - Dst: _PyMemoTable_ResizeTable
      Src: /src/Python-3.8.3/Modules/_pickle.c:928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyMemoTable*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 929
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 929
    functionName: PyMemoTable_Set
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyMemoTable_ResizeTable
    - _PyMemoTable_Lookup
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int PyMemoTable_Set(PyMemoTable *self, PyObject *key, Py_ssize_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:940,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 947
    functionName: _Pickler_ClearBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: int
    signature: int _Pickler_ClearBuffer(PicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_pickle.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - value
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 962
    functionName: _write_size64
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    linkageType: ''
    returnType: void
    signature: void _write_size64(char *out, size_t value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:973,1
    - Dst: _write_size64
      Src: /src/Python-3.8.3/Modules/_pickle.c:976,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_pickle.c:979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 984
    functionName: _Pickler_CommitFrame
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memmove
    - _write_size64
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int _Pickler_CommitFrame(PicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:991,1
    - Dst: _Pickler_CommitFrame
      Src: /src/Python-3.8.3/Modules/_pickle.c:993,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_pickle.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->output_buffer != NULL)
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1001
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1001
    functionName: _Pickler_GetString
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - assert
    - _Pickler_CommitFrame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Pickler_GetString(PicklerObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1008,1
    - Dst: _Pickler_GetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1011,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:1015,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts:
    - condition: (self->write != NULL)
      pos:
        line_end: 1007
        line_start: 1007
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1018
      start: 1003
    functionDepth: 4
    functionLinenumber: 1003
    functionLinenumberEnd: 1018
    functionName: _Pickler_FlushToFile
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _Pickle_FastCall
    - Py_XDECREF
    - _Pickler_GetString
    linkageType: ''
    returnType: int
    signature: int _Pickler_FlushToFile(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_CommitFrame
      Src: /src/Python-3.8.3/Modules/_pickle.c:1030,1
    - Dst: _Pickler_FlushToFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:1041,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:1044,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1020
    functionDepth: 5
    functionLinenumber: 1020
    functionLinenumberEnd: 1050
    functionName: _Pickler_OpcodeBoundary
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_FlushToFile
    - _Pickler_CommitFrame
    - _Pickler_ClearBuffer
    linkageType: ''
    returnType: int
    signature: int _Pickler_OpcodeBoundary(PicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1059,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1071,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_pickle.c:1075,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:1078,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_pickle.c:1096,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - self
    - s
    - data_len
    argTypes:
    - PicklerObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 1058
        line_start: 1058
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1100
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1100
    functionName: _Pickler_Write
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Pickler_Write(PicklerObject *self, const char *s, Py_ssize_t
      data_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:1107,1
    - Dst: PyMemoTable_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:1127,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:1128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1132,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_pickle.c:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1138
    functionName: _Pickler_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyMemoTable_New
    - Py_DECREF
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PicklerObject
    signature: 'PicklerObject *

      _Pickler_New(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:1149,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1151,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:1156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - protocol
    - fix_imports
    argTypes:
    - PicklerObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1165
    functionName: _Pickler_SetProtocol
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetProtocol(PicklerObject *self, PyObject *protocol, int
      fix_imports)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1172,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1173,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1174,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (file != NULL)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1184
      start: 1169
    functionDepth: 1
    functionLinenumber: 1169
    functionLinenumberEnd: 1184
    functionName: _Pickler_SetOutputStream
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetOutputStream(PicklerObject *self, PyObject *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1193,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1201
    functionName: _Pickler_SetBufferCallback
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _Pickler_SetBufferCallback(PicklerObject *self, PyObject *buffer_callback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_pickle.c:1209,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:1210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1217
    functionName: _Unpickler_SetStringInput
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - PyBuffer_Release
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_SetStringInput(UnpicklerObject *self, PyObject
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:1222,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1219
    functionDepth: 3
    functionLinenumber: 1219
    functionLinenumberEnd: 1225
    functionName: bad_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetGlobalState
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bad_readline(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1238,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_pickle.c:1240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts:
    - condition: (self->peek)
      pos:
        line_end: 1237
        line_start: 1237
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1247
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1247
    functionName: _Unpickler_SkipConsumed
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_CallFunction
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SkipConsumed(UnpicklerObject *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1271,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/Python-3.8.3/Modules/_pickle.c:1273,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_pickle.c:1277,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:1283,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:1286,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:1288,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:1291,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1292,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/Python-3.8.3/Modules/_pickle.c:1295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1296,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:1302,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:1305,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/Python-3.8.3/Modules/_pickle.c:1310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->read != NULL)
      pos:
        line_end: 1270
        line_start: 1270
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1313
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1313
    functionName: _Unpickler_ReadFromFile
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_CLEAR
    - Py_DECREF
    - _Pickle_FastCall
    - _Unpickler_SetStringInput
    - PyErr_ExceptionMatches
    - assert
    - _Unpickler_SkipConsumed
    - PyLong_FromSsize_t
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadFromFile(UnpicklerObject *self, Py_ssize_t
      n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:1323,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1324,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1330,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1333,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:1336,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - s
    - n
    argTypes:
    - UnpicklerObject*
    - char**
    - Py_ssize_t
    assertStmts:
    - condition: (self->next_read_idx + n > self->input_len)
      pos:
        line_end: 1329
        line_start: 1329
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1344
      start: 1316
    functionDepth: 4
    functionLinenumber: 1316
    functionLinenumberEnd: 1344
    functionName: _Unpickler_ReadImpl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _Unpickler_ReadFromFile
    - PyErr_SetString
    - _Pickle_GetGlobalState
    - bad_readline
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadImpl(UnpicklerObject *self, char **s, Py_ssize_t
      n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1357,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_pickle.c:1362,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_pickle.c:1363,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1376,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/Python-3.8.3/Modules/_pickle.c:1378,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:1385,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:1389,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:1393,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:1394,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:1396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1397,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:1400,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1402,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1403,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_pickle.c:1405,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:1405,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1406,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1411,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:1415,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:1419,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1420,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1423,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1424,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1430,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 3
    argNames:
    - self
    - buf
    - n
    argTypes:
    - UnpicklerObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (n != READ_WHOLE_LINE)
      pos:
        line_end: 1356
        line_start: 1356
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1433
      start: 1354
    functionDepth: 4
    functionLinenumber: 1354
    functionLinenumberEnd: 1433
    functionName: _Unpickler_ReadInto
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyErr_Occurred
    - _Pickle_FastCall
    - PyLong_AsSsize_t
    - PyMemoryView_FromMemory
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyLong_FromSsize_t
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyErr_SetString
    - assert
    - bad_readline
    - _Unpickler_SkipConsumed
    - Py_MIN
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_ReadInto(UnpicklerObject *self, char *buf, Py_ssize_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - self
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1454
    functionName: _Unpickler_Read
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Unpickler_Read(self, s, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_pickle.c:1459,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1461,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_pickle.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - self
    - line
    - len
    - result
    argTypes:
    - UnpicklerObject*
    - char*
    - Py_ssize_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1455
    functionDepth: 1
    functionLinenumber: 1455
    functionLinenumberEnd: 1470
    functionName: _Unpickler_CopyLine
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - memcpy
    - PyMem_Realloc
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Unpickler_CopyLine(UnpicklerObject *self, char *line,
      Py_ssize_t len,\n                    char **result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_CopyLine
      Src: /src/Python-3.8.3/Modules/_pickle.c:1486,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1490,1
    - Dst: _Unpickler_ReadFromFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:1492,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:1496,1
    - Dst: _Unpickler_CopyLine
      Src: /src/Python-3.8.3/Modules/_pickle.c:1498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - result
    argTypes:
    - UnpicklerObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1476
    functionDepth: 4
    functionLinenumber: 1476
    functionLinenumberEnd: 1499
    functionName: _Unpickler_Readline
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - bad_readline
    - _Unpickler_ReadFromFile
    - _Unpickler_CopyLine
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Unpickler_Readline(UnpicklerObject *self, char **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1508,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - new_size
    argTypes:
    - UnpicklerObject*
    - size_t
    assertStmts:
    - condition: (new_size > self->memo_size)
      pos:
        line_end: 1507
        line_start: 1507
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1521
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1521
    functionName: _Unpickler_ResizeMemoList
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int _Unpickler_ResizeMemoList(UnpicklerObject *self, size_t new_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - UnpicklerObject*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1531
    functionName: _Unpickler_MemoGet
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Unpickler_MemoGet(UnpicklerObject *self, size_t idx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_ResizeMemoList
      Src: /src/Python-3.8.3/Modules/_pickle.c:1541,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1543,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1545,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - idx
    - value
    argTypes:
    - UnpicklerObject*
    - size_t
    - PyObject*
    assertStmts:
    - condition: (idx < self->memo_size)
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1555
      start: 1535
    functionDepth: 2
    functionLinenumber: 1535
    functionLinenumberEnd: 1555
    functionName: _Unpickler_MemoPut
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _Unpickler_ResizeMemoList
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int _Unpickler_MemoPut(UnpicklerObject *self, size_t idx, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_pickle.c:1560,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1562,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_pickle.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1567
    functionName: _Unpickler_NewMemo
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _Unpickler_NewMemo(Py_ssize_t new_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1581,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1584
    functionName: _Unpickler_MemoCleanup
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _Unpickler_MemoCleanup(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:1591,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_pickle.c:1613,1
    - Dst: _Unpickler_NewMemo
      Src: /src/Python-3.8.3/Modules/_pickle.c:1616,1
    - Dst: Pdata_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:1617,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1620,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_pickle.c:1624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1586
    functionDepth: 2
    functionLinenumber: 1586
    functionLinenumberEnd: 1626
    functionName: _Unpickler_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_NewMemo
    - Py_DECREF
    - Pdata_New
    - PyObject_GC_New
    - PyObject_GC_Track
    - memset
    linkageType: ''
    returnType: UnpicklerObject
    signature: 'UnpicklerObject *

      _Unpickler_New(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1633,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1634,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1635,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1636,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1639,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1642,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1645,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1646,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1648,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1649,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1652,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1653,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1654,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1659
    functionName: _Unpickler_SetInputStream
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SetInputStream(UnpicklerObject *self, PyObject *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/_pickle.c:1673,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/_pickle.c:1674,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:1676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - UnpicklerObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1680
    functionName: _Unpickler_SetInputEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PyMem_Strdup
    linkageType: ''
    returnType: int
    signature: "int _Unpickler_SetInputEncoding(UnpicklerObject *self,\n                            const
      char *encoding,\n                            const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_pickle.c:1691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1697
    functionName: _Unpickler_SetBuffers
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: int _Unpickler_SetBuffers(UnpicklerObject *self, PyObject *buffers)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:1707,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:1709,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_pickle.c:1715,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:1717,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:1734,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1735,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:1741,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1700
    functionDepth: 3
    functionLinenumber: 1700
    functionLinenumberEnd: 1745
    functionName: memo_get
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyOS_snprintf
    - PyMemoTable_Get
    - PyErr_SetObject
    - strlen
    - PyErr_SetString
    - _Pickle_GetGlobalState
    linkageType: ''
    returnType: int
    signature: int memo_get(PicklerObject *self, PyObject *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:1761,1
    - Dst: PyMemoTable_Set
      Src: /src/Python-3.8.3/Modules/_pickle.c:1762,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:1766,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_pickle.c:1772,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:1774,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:1791,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1792,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:1797,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1749
    functionDepth: 4
    functionLinenumber: 1749
    functionLinenumberEnd: 1801
    functionName: memo_put
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyOS_snprintf
    - strlen
    - PyErr_SetString
    - PyMemoTable_Size
    - _Pickle_GetGlobalState
    - PyMemoTable_Set
    linkageType: ''
    returnType: int
    signature: int memo_put(PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_static_string
      Src: /src/Python-3.8.3/Modules/_pickle.c:1806,1
    - Dst: PyUnicode_Split
      Src: /src/Python-3.8.3/Modules/_pickle.c:1810,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1810,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:1813,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1814,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:1816,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1817,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:1819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:1822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1824,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (n >= 1)
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1829
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1829
    functionName: get_dotted_path
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Split
    - _PyUnicode_EqualToASCIIString
    - assert
    - Py_DECREF
    - _PyUnicode_FromId
    - _Py_static_string
    - PyList_GET_ITEM
    - PyErr_Format
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dotted_path(PyObject *obj, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1837,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:1837,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1838,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:1839,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:1841,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1842,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_pickle.c:1844,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1846,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - obj
    - names
    - pparent
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyList_CheckExact(names))
      pos:
        line_end: 1836
        line_start: 1836
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1855
      start: 1831
    functionDepth: 1
    functionLinenumber: 1831
    functionLinenumberEnd: 1855
    functionName: get_deep_attribute
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XDECREF
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - _PyObject_LookupAttr
    - assert
    - PyList_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_deep_attribute(PyObject *obj, PyObject *names, PyObject **pparent)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_dotted_path
      Src: /src/Python-3.8.3/Modules/_pickle.c:1864,1
    - Dst: get_deep_attribute
      Src: /src/Python-3.8.3/Modules/_pickle.c:1867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1868,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_pickle.c:1871,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1873,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:1874,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - obj
    - name
    - allow_qualname
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1858
    functionDepth: 2
    functionLinenumber: 1858
    functionLinenumberEnd: 1878
    functionName: getattribute
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - get_dotted_path
    - PyErr_Format
    - _PyObject_LookupAttr
    - get_deep_attribute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getattribute(PyObject *obj, PyObject *name, int allow_qualname)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:1887,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1888,1
    - Dst: get_deep_attribute
      Src: /src/Python-3.8.3/Modules/_pickle.c:1892,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1900,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - module_name
    - module
    - global
    - dotted_path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1880
    functionDepth: 2
    functionLinenumber: 1880
    functionLinenumberEnd: 1902
    functionName: _checkmodule
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EqualToASCIIString
    - get_deep_attribute
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int _checkmodule(PyObject *module_name, PyObject *module,\n             PyObject
      *global, PyObject *dotted_path)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1911,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1912,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:1913,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1915,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:1924,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:1926,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1929,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:1931,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:1934,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:1936,1
    - Dst: _checkmodule
      Src: /src/Python-3.8.3/Modules/_pickle.c:1937,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1938,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1941,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_pickle.c:1947,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:1951,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:1952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1954,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1955,1
    - Dst: _checkmodule
      Src: /src/Python-3.8.3/Modules/_pickle.c:1958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1959,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1960,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1963,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1964,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:1965,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1970,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_pickle.c:1974,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:1975,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - global
    - dotted_path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (module_name == NULL)
      pos:
        line_end: 1925
        line_start: 1925
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 1977
      start: 1904
    functionDepth: 3
    functionLinenumber: 1904
    functionLinenumberEnd: 1977
    functionName: whichmodule
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PySys_GetObjectId
    - PyDict_Next
    - _checkmodule
    - Py_INCREF
    - PyErr_Occurred
    - _PyObject_LookupAttrId
    - Py_DECREF
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - PyObject_GetItem
    - PyDict_CheckExact
    - PyIter_Next
    - PyErr_SetString
    - assert
    - PyObject_GetIter
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      whichmodule(PyObject *global, PyObject *dotted_path)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:1994,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_pickle.c:2000,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:2005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2006,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:2007,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2014,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2015,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:2019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2020,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 2027
    functionName: fast_save_enter
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_New
    - PyErr_Format
    - PyDict_SetItem
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: int
    signature: int fast_save_enter(PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_pickle.c:2033,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:2036,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2029
    functionDepth: 1
    functionLinenumber: 2029
    functionLinenumberEnd: 2043
    functionName: fast_save_leave
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_DelItem
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: int
    signature: int fast_save_leave(PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2053
    functionName: save_none
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    linkageType: ''
    returnType: int
    signature: int save_none(PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2060,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2070,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:2070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2074
    functionName: save_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - strlen
    linkageType: ''
    returnType: int
    signature: int save_bool(PicklerObject *self, PyObject *obj)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:2085,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_pickle.c:2121,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:2122,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2124,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2129,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2129,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/_pickle.c:2138,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2143,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Modules/_pickle.c:2147,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2148,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2166,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:2170,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2173,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_pickle.c:2174,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2204,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2205,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Modules/_pickle.c:2216,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:2220,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2224,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2225,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2226,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2234,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 95
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2128
        line_start: 2128
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2237
      start: 2076
    functionDepth: 2
    functionLinenumber: 2076
    functionLinenumberEnd: 2237
    functionName: save_long
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyBytes_FromStringAndSize
    - _PyLong_Sign
    - PyErr_Occurred
    - _PyLong_AsByteArray
    - Py_XDECREF
    - PyObject_Repr
    - strlen
    - PyUnicode_AsUTF8AndSize
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    - PyBytes_AS_STRING
    - assert
    - _PyLong_NumBits
    - sprintf
    linkageType: ''
    returnType: int
    signature: int save_long(PicklerObject *self, PyObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2242,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_pickle.c:2247,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2249,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2257,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Modules/_pickle.c:2260,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:2262,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2266,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:2266,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2269,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:2274,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2239
    functionDepth: 2
    functionLinenumber: 2239
    functionLinenumberEnd: 2279
    functionName: save_float
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - _PyFloat_Pack8
    - PyFloat_AS_DOUBLE
    - PyErr_NoMemory
    - PyOS_double_to_string
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int save_float(PicklerObject *self, PyObject *obj)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2298,1
    - Dst: _Pickler_CommitFrame
      Src: /src/Python-3.8.3/Modules/_pickle.c:2300,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2307,1
    - Dst: _Pickler_FlushToFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:2316,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:2325,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:2330,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2335,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:2338,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2343,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - self
    - header
    - header_size
    - data
    - data_size
    - payload
    argTypes:
    - PicklerObject*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (self->output_buffer != NULL)
      pos:
        line_end: 2297
        line_start: 2297
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2352
      start: 2288
    functionDepth: 5
    functionLinenumber: 2288
    functionLinenumberEnd: 2352
    functionName: _Pickler_write_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyBytes_FromStringAndSize
    - _Pickler_ClearBuffer
    - Py_DECREF
    - _Pickler_CommitFrame
    - _Pickler_FlushToFile
    - PyObject_CallFunctionObjArgs
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _Pickler_write_bytes(PicklerObject *self,\n                     const
      char *header, Py_ssize_t header_size,\n                     const char *data,
      Py_ssize_t data_size,\n                     PyObject *payload)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2358,1
    - Dst: _write_size64
      Src: /src/Python-3.8.3/Modules/_pickle.c:2381,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2385,1
    - Dst: _Pickler_write_bytes
      Src: /src/Python-3.8.3/Modules/_pickle.c:2391,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:2395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - self
    - obj
    - data
    - size
    argTypes:
    - PicklerObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (self->proto >= 3)
      pos:
        line_end: 2357
        line_start: 2357
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2400
      start: 2354
    functionDepth: 6
    functionLinenumber: 2354
    functionLinenumberEnd: 2400
    functionName: _save_bytes_data
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - memo_put
    - _Pickler_write_bytes
    - PyErr_SetString
    - assert
    - _write_size64
    linkageType: ''
    returnType: int
    signature: "int _save_bytes_data(PicklerObject *self, PyObject *obj, const char
      *data,\n                 Py_ssize_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2420,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:2421,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:2424,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/Python-3.8.3/Modules/_pickle.c:2426,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2426,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2427,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:2429,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:2433,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_pickle.c:2435,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2436,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:2443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2444,1
    - Dst: _save_bytes_data
      Src: /src/Python-3.8.3/Modules/_pickle.c:2448,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2448,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2402
    functionDepth: 7
    functionLinenumber: 2402
    functionLinenumberEnd: 2451
    functionName: save_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _save_bytes_data
    - Py_BuildValue
    - Py_DECREF
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - PyBytes_GET_SIZE
    - PyUnicode_DecodeLatin1
    - PyBytes_AS_STRING
    - _Pickle_GetGlobalState
    - save_reduce
    linkageType: ''
    returnType: int
    signature: int save_bytes(PicklerObject *self, PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2457,1
    - Dst: _write_size64
      Src: /src/Python-3.8.3/Modules/_pickle.c:2466,1
    - Dst: _Pickler_write_bytes
      Src: /src/Python-3.8.3/Modules/_pickle.c:2469,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:2473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - self
    - obj
    - data
    - size
    argTypes:
    - PicklerObject*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (self->proto >= 5)
      pos:
        line_end: 2456
        line_start: 2456
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2478
      start: 2453
    functionDepth: 6
    functionLinenumber: 2453
    functionLinenumberEnd: 2478
    functionName: _save_bytearray_data
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - _write_size64
    - _Pickler_write_bytes
    - memo_put
    linkageType: ''
    returnType: int
    signature: "int _save_bytearray_data(PicklerObject *self, PyObject *obj, const
      char *data,\n                     Py_ssize_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2489,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:2490,1
    - Dst: PyBytes_FromObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:2494,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:2496,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2499,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:2506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2507,1
    - Dst: _save_bytearray_data
      Src: /src/Python-3.8.3/Modules/_pickle.c:2511,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2511,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2480
    functionDepth: 7
    functionLinenumber: 2480
    functionLinenumberEnd: 2514
    functionName: save_bytearray
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _save_bytearray_data
    - Py_BuildValue
    - Py_DECREF
    - PyByteArray_AS_STRING
    - PyByteArray_GET_SIZE
    - PyBytes_FromObject
    - save_reduce
    linkageType: ''
    returnType: int
    signature: int save_bytearray(PicklerObject *self, PyObject *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:2520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2521,1
    - Dst: PyPickleBuffer_GetBuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:2525,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_pickle.c:2529,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:2530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2531,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:2538,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_pickle.c:2543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2544,1
    - Dst: _save_bytes_data
      Src: /src/Python-3.8.3/Modules/_pickle.c:2552,1
    - Dst: _save_bytearray_data
      Src: /src/Python-3.8.3/Modules/_pickle.c:2556,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2563,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2568,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2516
    functionDepth: 7
    functionLinenumber: 2516
    functionLinenumberEnd: 2574
    functionName: save_picklebuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - _save_bytes_data
    - _save_bytearray_data
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyObject_IsTrue
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - _Pickle_GetGlobalState
    - PyPickleBuffer_GetBuffer
    linkageType: ''
    returnType: int
    signature: int save_picklebuffer(PicklerObject *self, PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_pickle.c:2587,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Modules/_pickle.c:2590,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_pickle.c:2592,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_pickle.c:2593,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_pickle.c:2594,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Modules/_pickle.c:2596,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_pickle.c:2602,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Modules/_pickle.c:2606,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Modules/_pickle.c:2627,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Modules/_pickle.c:2643,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/_pickle.c:2646,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2578
    functionDepth: 1
    functionLinenumber: 2578
    functionLinenumberEnd: 2648
    functionName: raw_unicode_escape
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyUnicode_READY
    - PyUnicode_READ
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Prepare
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      raw_unicode_escape(PyObject *obj)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_pickle.c:2659,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:2662,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:2666,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2667,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2671,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2672,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2675,1
    - Dst: _write_size64
      Src: /src/Python-3.8.3/Modules/_pickle.c:2691,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:2695,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2698,1
    - Dst: _Pickler_write_bytes
      Src: /src/Python-3.8.3/Modules/_pickle.c:2702,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2703,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2706,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 2674
        line_start: 2674
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2708
      start: 2650
    functionDepth: 6
    functionLinenumber: 2650
    functionLinenumberEnd: 2708
    functionName: write_unicode_binary
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - Py_XDECREF
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - _Pickler_write_bytes
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyErr_Clear
    - _write_size64
    linkageType: ''
    returnType: int
    signature: int write_unicode_binary(PicklerObject *self, PyObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: write_unicode_binary
      Src: /src/Python-3.8.3/Modules/_pickle.c:2714,1
    - Dst: raw_unicode_escape
      Src: /src/Python-3.8.3/Modules/_pickle.c:2722,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2726,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2727,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:2731,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2732,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:2732,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2733,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2736,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2738,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:2741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2710
    functionDepth: 7
    functionLinenumber: 2710
    functionLinenumberEnd: 2745
    functionName: save_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - Py_DECREF
    - memo_put
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - write_unicode_binary
    - raw_unicode_escape
    linkageType: ''
    returnType: int
    signature: int save_unicode(PicklerObject *self, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2753,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:2753,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:2756,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:2760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - t
    - len
    argTypes:
    - PicklerObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Size(t) == len)
      pos:
        line_end: 2752
        line_start: 2752
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2765
      start: 2748
    functionDepth: 1
    functionLinenumber: 2748
    functionLinenumberEnd: 2765
    functionName: store_tuple_elements
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_Size
    linkageType: ''
    returnType: int
    signature: int store_tuple_elements(PicklerObject *self, PyObject *t, Py_ssize_t
      len)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:2784,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2799,1
    - Dst: store_tuple_elements
      Src: /src/Python-3.8.3/Modules/_pickle.c:2811,1
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:2814,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2817,1
    - Dst: memo_get
      Src: /src/Python-3.8.3/Modules/_pickle.c:2820,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2826,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2835,1
    - Dst: store_tuple_elements
      Src: /src/Python-3.8.3/Modules/_pickle.c:2838,1
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:2841,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2844,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2852,1
    - Dst: memo_get
      Src: /src/Python-3.8.3/Modules/_pickle.c:2856,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2862,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:2867,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2773
    functionDepth: 5
    functionLinenumber: 2773
    functionLinenumberEnd: 2871
    functionName: save_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyMemoTable_Get
    - memo_put
    - PyTuple_Size
    - store_tuple_elements
    - memo_get
    linkageType: ''
    returnType: int
    signature: int save_tuple(PicklerObject *self, PyObject *obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:2890,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:2900,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2902,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:2906,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2907,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2910,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:2919,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2921,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:2929,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2931,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:2935,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2937,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:2939,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2946,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:2949,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:2951,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:2956,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:2958,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:2964,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:2966,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:2972,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2979,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:2980,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 75
    argCount: 2
    argNames:
    - self
    - iter
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 2889
        line_start: 2889
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 2982
      start: 2879
    functionDepth: 2
    functionLinenumber: 2879
    functionLinenumberEnd: 2982
    functionName: batch_list
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyErr_Occurred
    - Py_DECREF
    - Py_CLEAR
    - save
    - PyIter_Next
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int batch_list(PicklerObject *self, PyObject *iter)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3005,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3006,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3007,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3007,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3009,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3010,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3011,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3013,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3022,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3024,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3025,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3026,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3032,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3035,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 3004
        line_start: 3004
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - condition: (self->proto > 0)
      pos:
        line_end: 3005
        line_start: 3005
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - condition: (PyList_CheckExact(obj))
      pos:
        line_end: 3006
        line_start: 3006
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3038
      start: 2995
    functionDepth: 2
    functionLinenumber: 2995
    functionLinenumberEnd: 3038
    functionName: batch_list_exact
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - save
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - assert
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: int batch_list_exact(PicklerObject *self, PyObject *obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fast_save_enter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3047,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3061,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:3065,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:3068,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3073,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3074,1
    - Dst: batch_list_exact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3076,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3077,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3079,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3083,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3084,1
    - Dst: batch_list
      Src: /src/Python-3.8.3/Modules/_pickle.c:3087,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3089,1
    - Dst: fast_save_leave
      Src: /src/Python-3.8.3/Modules/_pickle.c:3097,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3040
    functionDepth: 5
    functionLinenumber: 3040
    functionLinenumberEnd: 3101
    functionName: save_list
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - Py_DECREF
    - batch_list
    - memo_put
    - Py_LeaveRecursiveCall
    - PyList_Size
    - batch_list_exact
    - fast_save_leave
    - Py_EnterRecursiveCall
    - fast_save_enter
    - PyObject_GetIter
    - PyList_CheckExact
    linkageType: ''
    returnType: int
    signature: int save_list(PicklerObject *self, PyObject *obj)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3125,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3130,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3132,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3136,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:3136,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3137,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3141,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3141,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3143,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3143,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3144,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3147,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3158,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3164,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:3164,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3165,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3171,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3173,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3177,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3177,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3179,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3179,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3181,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3183,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3190,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3193,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3193,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3195,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3195,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3197,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3202,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:3202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3203,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3207,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3207,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3208,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3208,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3210,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3216,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3218,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3224,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3231,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3232,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 97
    argCount: 2
    argNames:
    - self
    - iter
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (iter != NULL)
      pos:
        line_end: 3124
        line_start: 3124
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3234
      start: 3114
    functionDepth: 2
    functionLinenumber: 3114
    functionLinenumberEnd: 3234
    functionName: batch_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyErr_Occurred
    - Py_DECREF
    - Py_CLEAR
    - save
    - PyTuple_Check
    - PyIter_Next
    - PyTuple_Size
    - PyErr_SetString
    - assert
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int batch_dict(PicklerObject *self, PyObject *iter)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3256,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3256,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3257,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3259,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3263,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3264,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3266,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3268,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3276,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3278,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3279,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3281,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3286,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3288,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3289,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (obj != NULL && PyDict_CheckExact(obj))
      pos:
        line_end: 3255
        line_start: 3255
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - condition: (self->proto > 0)
      pos:
        line_end: 3256
        line_start: 3256
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3297
      start: 3245
    functionDepth: 2
    functionLinenumber: 3245
    functionLinenumberEnd: 3297
    functionName: batch_dict_exact
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PyDict_Next
    - save
    - PyDict_GET_SIZE
    - PyDict_CheckExact
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int batch_dict_exact(PicklerObject *self, PyObject *obj)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:3306,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3306,1
    - Dst: fast_save_enter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3308,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3322,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:3325,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3328,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3330,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3333,1
    - Dst: batch_dict_exact
      Src: /src/Python-3.8.3/Modules/_pickle.c:3335,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3336,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:3338,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_pickle.c:3340,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3343,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3344,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3347,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3348,1
    - Dst: batch_dict
      Src: /src/Python-3.8.3/Modules/_pickle.c:3351,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:3352,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3353,1
    - Dst: fast_save_leave
      Src: /src/Python-3.8.3/Modules/_pickle.c:3362,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(obj))
      pos:
        line_end: 3305
        line_start: 3305
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 3366
      start: 3299
    functionDepth: 5
    functionLinenumber: 3299
    functionLinenumberEnd: 3366
    functionName: save_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - Py_DECREF
    - PyDict_GET_SIZE
    - _PyObject_CallMethodId
    - memo_put
    - PyDict_Check
    - Py_LeaveRecursiveCall
    - PyDict_CheckExact
    - _Py_IDENTIFIER
    - PyObject_GetIter
    - batch_dict_exact
    - Py_EnterRecursiveCall
    - fast_save_leave
    - assert
    - batch_dict
    - fast_save_enter
    linkageType: ''
    returnType: int
    signature: int save_dict(PicklerObject *self, PyObject *obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_pickle.c:3385,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:3389,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3390,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:3395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3396,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3400,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:3403,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3406,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3413,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Modules/_pickle.c:3415,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3416,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3421,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3423,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3424,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3368
    functionDepth: 5
    functionLinenumber: 3368
    functionLinenumberEnd: 3432
    functionName: save_set
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - PySequence_List
    - Py_BuildValue
    - Py_DECREF
    - save
    - memo_put
    - PyErr_Format
    - _PySet_NextEntry
    - PySet_GET_SIZE
    - save_reduce
    linkageType: ''
    returnType: int
    signature: int save_set(PicklerObject *self, PyObject *obj)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fast_save_enter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3442,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Modules/_pickle.c:3450,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:3454,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3456,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:3461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3462,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3466,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_pickle.c:3469,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:3476,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3479,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3484,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3491,1
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:3496,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3499,1
    - Dst: memo_get
      Src: /src/Python-3.8.3/Modules/_pickle.c:3501,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3506,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:3508,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3434
    functionDepth: 5
    functionLinenumber: 3434
    functionLinenumberEnd: 3512
    functionName: save_frozenset
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - _Pickler_Write
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - PyMemoTable_Get
    - save
    - memo_put
    - PyIter_Next
    - fast_save_enter
    - PyObject_GetIter
    - memo_get
    - save_reduce
    linkageType: ''
    returnType: int
    signature: int save_frozenset(PicklerObject *self, PyObject *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:3519,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_pickle.c:3521,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:3524,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3525,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3530,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3530,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3531,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3534,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3537,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3538,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3539,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3540,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3541,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3544,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3545,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3549,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3550,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3551,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3552,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3557,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:3561,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3563,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3564,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3567,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3570,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3571,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3573,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - module_name
    - global_name
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3514
    functionDepth: 3
    functionLinenumber: 3514
    functionLinenumberEnd: 3578
    functionName: fix_imports
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_CLEAR
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_Occurred
    - Py_XSETREF
    - PyTuple_Pack
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - _Pickle_GetGlobalState
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int fix_imports(PyObject **module_name, PyObject **global_name)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:3590,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:3592,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:3593,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3598,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:3602,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:3605,1
    - Dst: get_dotted_path
      Src: /src/Python-3.8.3/Modules/_pickle.c:3611,1
    - Dst: whichmodule
      Src: /src/Python-3.8.3/Modules/_pickle.c:3614,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Modules/_pickle.c:3626,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3628,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:3633,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3633,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3634,1
    - Dst: get_deep_attribute
      Src: /src/Python-3.8.3/Modules/_pickle.c:3635,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:3636,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3644,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3645,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3650,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_pickle.c:3662,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:3666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3668,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3672,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3683,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3684,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Modules/_pickle.c:3689,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:3691,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3692,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3718,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3724,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3725,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3731,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3733,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3736,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:3740,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:3741,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:3745,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3746,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3757,1
    - Dst: fix_imports
      Src: /src/Python-3.8.3/Modules/_pickle.c:3763,1
    - Dst: unicode_encoder
      Src: /src/Python-3.8.3/Modules/_pickle.c:3779,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:3781,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3782,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3788,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:3788,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3793,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3794,1
    - Dst: unicode_encoder
      Src: /src/Python-3.8.3/Modules/_pickle.c:3798,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:3800,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3801,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3807,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:3807,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3809,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3812,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3813,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:3817,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3825,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3826,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3827,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3828,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3829,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3830,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 188
    argCount: 3
    argNames:
    - self
    - obj
    - name
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3580
    functionDepth: 5
    functionLinenumber: 3580
    functionLinenumberEnd: 3833
    functionName: save_global
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - whichmodule
    - get_dotted_path
    - unicode_encoder
    - PyImport_Import
    - _Pickle_GetGlobalState
    - get_deep_attribute
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - PyList_GET_ITEM
    - PyTuple_Pack
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_XDECREF
    - save_reduce
    - PyLong_Check
    - _Pickler_Write
    - Py_DECREF
    - save
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyLong_AS_LONG
    - Py_BuildValue
    - memo_put
    - PyList_GET_SIZE
    - fix_imports
    linkageType: ''
    returnType: int
    signature: int save_global(PicklerObject *self, PyObject *obj, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:3841,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:3845,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - self
    - obj
    - singleton
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3848
    functionName: save_singleton_type
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - save_reduce
    linkageType: ''
    returnType: int
    signature: int save_singleton_type(PicklerObject *self, PyObject *obj, PyObject
      *singleton)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: save_singleton_type
      Src: /src/Python-3.8.3/Modules/_pickle.c:3854,1
    - Dst: save_singleton_type
      Src: /src/Python-3.8.3/Modules/_pickle.c:3857,1
    - Dst: save_singleton_type
      Src: /src/Python-3.8.3/Modules/_pickle.c:3860,1
    - Dst: save_global
      Src: /src/Python-3.8.3/Modules/_pickle.c:3862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3850
    functionDepth: 6
    functionLinenumber: 3850
    functionLinenumberEnd: 3863
    functionName: save_type
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - save_singleton_type
    - save_global
    linkageType: ''
    returnType: int
    signature: int save_type(PicklerObject *self, PyObject *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: call_method
      Src: /src/Python-3.8.3/Modules/_pickle.c:3874,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:3880,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3881,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_pickle.c:3887,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_pickle.c:3893,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3894,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:3894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3897,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3901,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3902,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_pickle.c:3902,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_pickle.c:3903,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:3904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3905,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3908,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3917,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3865
    functionDepth: 3
    functionLinenumber: 3865
    functionLinenumberEnd: 3920
    functionName: save_pers
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - Py_DECREF
    - save
    - Py_XDECREF
    - PyObject_Str
    - PyUnicode_IS_ASCII
    - PyErr_SetString
    - PyUnicode_DATA
    - _Pickle_GetGlobalState
    - call_method
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int save_pers(PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:3926,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:3928,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3929,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:3930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3933
      start: 3922
    functionDepth: 1
    functionLinenumber: 3922
    functionLinenumberEnd: 3933
    functionName: get_class
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupAttrId
    - Py_TYPE
    - _Py_IDENTIFIER
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_class(PyObject *obj)'
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:3947,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:3956,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3958,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:3963,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3968,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3969,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3973,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:3974,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3984,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3985,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3987,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:3993,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:3994,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:3996,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4002,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4003,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4005,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4011,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4013,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4016,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4017,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4018,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4021,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4022,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4025,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4033,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4034,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4036,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4040,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4041,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4042,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4044,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4047,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4048,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4049,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4051,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4054,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4055,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4056,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4058,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4063,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4064,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4065,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4066,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4074,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4076,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4076,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4082,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4085,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4086,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4087,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4088,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4089,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4090,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4091,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_pickle.c:4094,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4095,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4099,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4101,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4105,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4106,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4112,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4113,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4123,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4124,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4128,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4129,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4130,1
    - Dst: get_class
      Src: /src/Python-3.8.3/Modules/_pickle.c:4136,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4141,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4143,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4176,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/_pickle.c:4179,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4179,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4184,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4189,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4193,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4194,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4195,1
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:4207,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4210,1
    - Dst: memo_get
      Src: /src/Python-3.8.3/Modules/_pickle.c:4212,1
    - Dst: memo_put
      Src: /src/Python-3.8.3/Modules/_pickle.c:4217,1
    - Dst: batch_list
      Src: /src/Python-3.8.3/Modules/_pickle.c:4221,1
    - Dst: batch_dict
      Src: /src/Python-3.8.3/Modules/_pickle.c:4224,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4229,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4230,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4246,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4247,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4247,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4248,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4249,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4250,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 172
    argCount: 3
    argNames:
    - self
    - args
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4255
      start: 3938
    functionDepth: 5
    functionLinenumber: 3938
    functionLinenumberEnd: 4255
    functionName: save_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 6
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _Pickle_GetGlobalState
    - batch_dict
    - Py_INCREF
    - PyTuple_Check
    - PyErr_Format
    - PyArg_UnpackTuple
    - Py_XDECREF
    - PyTuple_GetSlice
    - memo_get
    - _Pickler_Write
    - Py_DECREF
    - save
    - batch_list
    - PyDict_Check
    - Py_TYPE
    - _PyUnicode_EqualToASCIIId
    - get_class
    - PyObject_Call
    - PyTuple_New
    - PyIter_Check
    - PyCallable_Check
    - PyMemoTable_Get
    - memo_put
    - PyType_Check
    - PyTuple_Size
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: int save_reduce(PicklerObject *self, PyObject *args, PyObject *obj)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_OpcodeBoundary
      Src: /src/Python-3.8.3/Modules/_pickle.c:4265,1
    - Dst: save_pers
      Src: /src/Python-3.8.3/Modules/_pickle.c:4276,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4280,1
    - Dst: save_none
      Src: /src/Python-3.8.3/Modules/_pickle.c:4290,1
    - Dst: save_bool
      Src: /src/Python-3.8.3/Modules/_pickle.c:4293,1
    - Dst: save_long
      Src: /src/Python-3.8.3/Modules/_pickle.c:4296,1
    - Dst: save_float
      Src: /src/Python-3.8.3/Modules/_pickle.c:4299,1
    - Dst: PyMemoTable_Get
      Src: /src/Python-3.8.3/Modules/_pickle.c:4305,1
    - Dst: memo_get
      Src: /src/Python-3.8.3/Modules/_pickle.c:4306,1
    - Dst: save_bytes
      Src: /src/Python-3.8.3/Modules/_pickle.c:4310,1
    - Dst: save_unicode
      Src: /src/Python-3.8.3/Modules/_pickle.c:4313,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:4318,1
    - Dst: save_dict
      Src: /src/Python-3.8.3/Modules/_pickle.c:4323,1
    - Dst: save_set
      Src: /src/Python-3.8.3/Modules/_pickle.c:4327,1
    - Dst: save_frozenset
      Src: /src/Python-3.8.3/Modules/_pickle.c:4331,1
    - Dst: save_list
      Src: /src/Python-3.8.3/Modules/_pickle.c:4335,1
    - Dst: save_tuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:4339,1
    - Dst: save_bytearray
      Src: /src/Python-3.8.3/Modules/_pickle.c:4343,1
    - Dst: save_picklebuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:4347,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:4356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4364,1
    - Dst: save_type
      Src: /src/Python-3.8.3/Modules/_pickle.c:4369,1
    - Dst: save_global
      Src: /src/Python-3.8.3/Modules/_pickle.c:4373,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:4384,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:4385,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:4388,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4395,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:4398,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:4401,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:4402,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4408,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:4409,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Modules/_pickle.c:4411,1
    - Dst: save_global
      Src: /src/Python-3.8.3/Modules/_pickle.c:4412,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4416,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4417,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4428,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:4433,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:4435,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4440,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_pickle.c:4444,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:4447,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4448,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4460,1
    - Dst: save_global
      Src: /src/Python-3.8.3/Modules/_pickle.c:4461,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4465,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:4466,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4467,1
    - Dst: save_reduce
      Src: /src/Python-3.8.3/Modules/_pickle.c:4472,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:4480,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4481,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4482,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 170
    argCount: 3
    argNames:
    - self
    - obj
    - pers_save
    argTypes:
    - PicklerObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4257
    functionDepth: 8
    functionLinenumber: 4257
    functionLinenumberEnd: 4485
    functionName: save
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 10
    functionsReached:
    - PyLong_FromLong
    - save_frozenset
    - _PyObject_LookupAttrId
    - _Pickler_OpcodeBoundary
    - save_long
    - _Py_IDENTIFIER
    - PyType_IsSubtype
    - save_type
    - _Pickle_GetGlobalState
    - save_unicode
    - save_pers
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - save_bytearray
    - Py_LeaveRecursiveCall
    - PyObject_GetItem
    - save_dict
    - PyTuple_Check
    - Py_EnterRecursiveCall
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    - save_tuple
    - save_list
    - memo_get
    - save_reduce
    - save_set
    - save_bool
    - save_picklebuffer
    - Py_DECREF
    - _Pickle_FastCall
    - save_global
    - Py_TYPE
    - _PyObject_CallNoArg
    - save_bytes
    - PyMemoTable_Get
    - save_none
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyUnicode_Check
    - save_float
    linkageType: ''
    returnType: int
    signature: int save(PicklerObject *self, PyObject *obj, int pers_save)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4493,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4495,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4501,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4504,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:4511,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4513,1
    - Dst: save
      Src: /src/Python-3.8.3/Modules/_pickle.c:4519,1
    - Dst: _Pickler_Write
      Src: /src/Python-3.8.3/Modules/_pickle.c:4520,1
    - Dst: _Pickler_CommitFrame
      Src: /src/Python-3.8.3/Modules/_pickle.c:4521,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4536,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts:
    - condition: (self->proto >= 0 && self->proto < 256)
      pos:
        line_end: 4510
        line_start: 4510
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 4538
      start: 4487
    functionDepth: 9
    functionLinenumber: 4487
    functionLinenumberEnd: 4538
    functionName: dump
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickler_Write
    - Py_CLEAR
    - Py_XSETREF
    - save
    - _PyObject_LookupAttrId
    - _Pickler_CommitFrame
    - _Py_IDENTIFIER
    - assert
    linkageType: ''
    returnType: int
    signature: int dump(PicklerObject *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:4557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4560
      start: 4552
    functionDepth: 2
    functionLinenumber: 4552
    functionLinenumberEnd: 4560
    functionName: _pickle_Pickler_clear_memo_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler_clear_memo_impl(PicklerObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:4580,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:4581,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4583,1
    - Dst: _Pickler_ClearBuffer
      Src: /src/Python-3.8.3/Modules/_pickle.c:4587,1
    - Dst: dump
      Src: /src/Python-3.8.3/Modules/_pickle.c:4590,1
    - Dst: _Pickler_FlushToFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:4593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4572
    functionDepth: 10
    functionLinenumber: 4572
    functionLinenumberEnd: 4597
    functionName: _pickle_Pickler_dump
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - dump
    - _Pickler_ClearBuffer
    - _Pickler_FlushToFile
    - PyErr_Format
    - Py_TYPE
    - _Pickle_GetGlobalState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler_dump(PicklerObject *self, PyObject *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4612,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4612,1
    - Dst: _PySys_GetSizeOf
      Src: /src/Python-3.8.3/Modules/_pickle.c:4618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4606
    functionDepth: 1
    functionLinenumber: 4606
    functionLinenumberEnd: 4624
    functionName: _pickle_Pickler___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PySys_GetSizeOf
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _pickle_Pickler___sizeof___impl(PicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_pickle.c:4636,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4638,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4639,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4640,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4641,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4642,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4643,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4644,1
    - Dst: PyMemoTable_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:4646,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4649
      start: 4633
    functionDepth: 3
    functionLinenumber: 4633
    functionLinenumberEnd: 4649
    functionName: Pickler_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMemoTable_Del
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void Pickler_dealloc(PicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4654,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4655,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4656,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4657,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4658,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PicklerObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4661
      start: 4651
    functionDepth: 1
    functionLinenumber: 4651
    functionLinenumberEnd: 4661
    functionName: Pickler_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Pickler_traverse(PicklerObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4666,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4667,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4668,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4669,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4670,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4671,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4672,1
    - Dst: PyMemoTable_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:4677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4680
      start: 4663
    functionDepth: 3
    functionLinenumber: 4663
    functionLinenumberEnd: 4680
    functionName: Pickler_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyMemoTable_Del
    linkageType: ''
    returnType: int
    signature: int Pickler_clear(PicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4731,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:4732,1
    - Dst: Pickler_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:4736,1
    - Dst: _Pickler_SetProtocol
      Src: /src/Python-3.8.3/Modules/_pickle.c:4738,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/Python-3.8.3/Modules/_pickle.c:4741,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/Python-3.8.3/Modules/_pickle.c:4744,1
    - Dst: PyMemoTable_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4749,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:4756,1
    - Dst: init_method_ref
      Src: /src/Python-3.8.3/Modules/_pickle.c:4766,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:4772,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - self
    - file
    - protocol
    - fix_imports
    - buffer_callback
    argTypes:
    - PicklerObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4725
    functionDepth: 4
    functionLinenumber: 4725
    functionLinenumberEnd: 4778
    functionName: _pickle_Pickler___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyMemoTable_New
    - Pickler_clear
    - _PyObject_LookupAttrId
    - init_method_ref
    - _Py_IDENTIFIER
    - _Pickler_SetProtocol
    - _Pickler_SetOutputStream
    - _Pickler_SetBufferCallback
    linkageType: ''
    returnType: int
    signature: "int _pickle_Pickler___init___impl(PicklerObject *self, PyObject *file,\n
      \                             PyObject *protocol, int fix_imports,\n                              PyObject
      *buffer_callback)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoTable_Clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:4802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4804
      start: 4797
    functionDepth: 2
    functionLinenumber: 4797
    functionLinenumberEnd: 4804
    functionName: _pickle_PicklerMemoProxy_clear_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_clear_impl(PicklerMemoProxyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4817,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_pickle.c:4828,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_pickle.c:4829,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4832,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4833,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:4836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4837,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4838,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4846,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4812
    functionDepth: 1
    functionLinenumber: 4812
    functionLinenumberEnd: 4848
    functionName: _pickle_PicklerMemoProxy_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyDict_New
    - PyDict_SetItem
    - Py_XDECREF
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_copy_impl(PicklerMemoProxyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_copy_impl
      Src: /src/Python-3.8.3/Modules/_pickle.c:4861,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4865,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4867,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4870,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4872,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4873,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4876,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4877,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4878,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:4879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4881
      start: 4856
    functionDepth: 2
    functionLinenumber: 4856
    functionLinenumberEnd: 4881
    functionName: _pickle_PicklerMemoProxy___reduce___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _pickle_PicklerMemoProxy_copy_impl
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy___reduce___impl(PicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_pickle.c:4893,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4894,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:4895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4890
    functionDepth: 3
    functionLinenumber: 4890
    functionLinenumberEnd: 4896
    functionName: PicklerMemoProxy_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void PicklerMemoProxy_dealloc(PicklerMemoProxyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:4902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PicklerMemoProxyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4904
      start: 4898
    functionDepth: 1
    functionLinenumber: 4898
    functionLinenumberEnd: 4904
    functionName: PicklerMemoProxy_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int PicklerMemoProxy_traverse(PicklerMemoProxyObject *self,\n                          visitproc
      visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:4909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4911
      start: 4906
    functionDepth: 1
    functionLinenumber: 4906
    functionLinenumberEnd: 4911
    functionName: PicklerMemoProxy_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PicklerMemoProxy_clear(PicklerMemoProxyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4949,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:4952,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_pickle.c:4954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pickler
    argTypes:
    - PicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4956
      start: 4944
    functionDepth: 2
    functionLinenumber: 4944
    functionLinenumberEnd: 4956
    functionName: PicklerMemoProxy_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PicklerMemoProxy_New(PicklerObject *pickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PicklerMemoProxy_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4964
      start: 4960
    functionDepth: 3
    functionLinenumber: 4960
    functionLinenumberEnd: 4964
    functionName: Pickler_get_memo
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PicklerMemoProxy_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pickler_get_memo(PicklerObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4972,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4977,1
    - Dst: PyMemoTable_Copy
      Src: /src/Python-3.8.3/Modules/_pickle.c:4981,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4985,1
    - Dst: PyMemoTable_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:4989,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:4993,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:4997,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:4997,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:4998,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:5002,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:5002,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:5003,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:5005,1
    - Dst: PyMemoTable_Set
      Src: /src/Python-3.8.3/Modules/_pickle.c:5006,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5011,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5013,1
    - Dst: PyMemoTable_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:5017,1
    - Dst: PyMemoTable_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:5024,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - self
    - obj
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5026
      start: 4966
    functionDepth: 4
    functionLinenumber: 4966
    functionLinenumberEnd: 5026
    functionName: Pickler_set_memo
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoTable_New
    - PyDict_Next
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - PyDict_Check
    - PyMemoTable_Copy
    - PyLong_AsSsize_t
    - PyTuple_Check
    - Py_TYPE
    - PyErr_Format
    - PyErr_SetString
    - PyMemoTable_Del
    - PyTuple_GET_ITEM
    - PyMemoTable_Set
    linkageType: ''
    returnType: int
    signature: int Pickler_set_memo(PicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5032,1
    - Dst: reconstruct_method
      Src: /src/Python-3.8.3/Modules/_pickle.c:5035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5036
      start: 5028
    functionDepth: 2
    functionLinenumber: 5028
    functionLinenumberEnd: 5036
    functionName: Pickler_get_persid
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - reconstruct_method
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pickler_get_persid(PicklerObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5042,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5046,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5047,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5053,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5057
      start: 5038
    functionDepth: 1
    functionLinenumber: 5038
    functionLinenumberEnd: 5057
    functionName: Pickler_set_persid
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Pickler_set_persid(PicklerObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:5127,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:5129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - module_name
    - global_name
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5124
    functionDepth: 1
    functionLinenumber: 5124
    functionLinenumberEnd: 5131
    functionName: find_class
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_class(UnpicklerObject *self, PyObject *module_name, PyObject *global_name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5139,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5149
      start: 5133
    functionDepth: 3
    functionLinenumber: 5133
    functionLinenumberEnd: 5149
    functionName: marker
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 1
    functionsReached:
    - _Pickle_GetGlobalState
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t marker(UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:5154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5151
    functionDepth: 1
    functionLinenumber: 5151
    functionLinenumberEnd: 5156
    functionName: load_none
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    linkageType: ''
    returnType: int
    signature: int load_none(UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5166,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5169,1
    - Dst: strtol
      Src: /src/Python-3.8.3/Modules/_pickle.c:5174,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5181,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5183,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:5190,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:5194,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5201
      start: 5158
    functionDepth: 5
    functionLinenumber: 5158
    functionLinenumberEnd: 5201
    functionName: load_int
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - strtol
    - PDATA_PUSH
    - _Unpickler_Readline
    - PyErr_SetString
    - PyLong_FromString
    - PyBool_FromLong
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_int(UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:5206,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:5207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - boolean
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts:
    - condition: (boolean == Py_True || boolean == Py_False)
      pos:
        line_end: 5205
        line_start: 5205
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5209
      start: 5203
    functionDepth: 1
    functionLinenumber: 5203
    functionLinenumberEnd: 5209
    functionName: load_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - PDATA_APPEND
    linkageType: ''
    returnType: int
    signature: int load_bool(UnpicklerObject *self, PyObject *boolean)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - bytes
    - nbytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5239
      start: 5214
    functionDepth: 0
    functionLinenumber: 5214
    functionLinenumberEnd: 5239
    functionName: calc_binsize
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t calc_binsize(char *bytes, int nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bytes
    - nbytes
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5266
      start: 5246
    functionDepth: 0
    functionLinenumber: 5246
    functionLinenumberEnd: 5266
    functionName: calc_binint
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long calc_binint(char *bytes, int nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calc_binint
      Src: /src/Python-3.8.3/Modules/_pickle.c:5274,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:5276,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - s
    - size
    argTypes:
    - UnpicklerObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5281
      start: 5268
    functionDepth: 1
    functionLinenumber: 5268
    functionLinenumberEnd: 5281
    functionName: load_binintx
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - calc_binint
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_binintx(UnpicklerObject *self, char *s, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5288,1
    - Dst: load_binintx
      Src: /src/Python-3.8.3/Modules/_pickle.c:5291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5283
    functionDepth: 2
    functionLinenumber: 5283
    functionLinenumberEnd: 5292
    functionName: load_binint
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5299,1
    - Dst: load_binintx
      Src: /src/Python-3.8.3/Modules/_pickle.c:5302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5294
    functionDepth: 2
    functionLinenumber: 5294
    functionLinenumberEnd: 5303
    functionName: load_binint1
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint1(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5310,1
    - Dst: load_binintx
      Src: /src/Python-3.8.3/Modules/_pickle.c:5313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5314
      start: 5305
    functionDepth: 2
    functionLinenumber: 5305
    functionLinenumberEnd: 5314
    functionName: load_binint2
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_binintx
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_binint2(UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5323,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5326,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5335,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5341
      start: 5316
    functionDepth: 5
    functionLinenumber: 5316
    functionLinenumberEnd: 5341
    functionName: load_long
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - bad_readline
    - PDATA_PUSH
    - PyLong_FromString
    - _Unpickler_Readline
    linkageType: ''
    returnType: int
    signature: int load_long(UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:5353,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5354,1
    - Dst: calc_binint
      Src: /src/Python-3.8.3/Modules/_pickle.c:5357,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5361,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:5367,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5370,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_pickle.c:5372,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5377,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - UnpicklerObject*
    - int
    assertStmts:
    - condition: (size == 1 || size == 4)
      pos:
        line_end: 5352
        line_start: 5352
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5379
      start: 5346
    functionDepth: 3
    functionLinenumber: 5346
    functionLinenumberEnd: 5379
    functionName: load_counted_long
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _Pickle_GetGlobalState
    - _PyLong_FromByteArray
    - calc_binint
    - _Unpickler_Read
    - PDATA_PUSH
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int load_counted_long(UnpicklerObject *self, int size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5389,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5392,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Modules/_pickle.c:5395,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:5396,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5399,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_pickle.c:5402,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5381
    functionDepth: 5
    functionLinenumber: 5381
    functionLinenumberEnd: 5408
    functionName: load_float
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyOS_string_to_double
    - PDATA_PUSH
    - PyErr_SetString
    - _Unpickler_Readline
    - bad_readline
    - PyFloat_FromDouble
    linkageType: ''
    returnType: int
    signature: int load_float(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5417,1
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Modules/_pickle.c:5420,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:5421,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_pickle.c:5424,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5429
      start: 5410
    functionDepth: 1
    functionLinenumber: 5410
    functionLinenumberEnd: 5429
    functionName: load_binfloat
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _Unpickler_Read
    - PDATA_PUSH
    - _PyFloat_Unpack8
    - PyFloat_FromDouble
    linkageType: ''
    returnType: int
    signature: int load_binfloat(UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5439,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5449,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5450,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:5454,1
    - Dst: PyBytes_DecodeEscape
      Src: /src/Python-3.8.3/Modules/_pickle.c:5458,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_pickle.c:5464,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:5468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5469,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 5453
        line_start: 5453
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5477
      start: 5431
    functionDepth: 5
    functionLinenumber: 5431
    functionLinenumberEnd: 5477
    functionName: load_string
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - PyUnicode_FromEncodedObject
    - PDATA_PUSH
    - PyErr_SetString
    - _Unpickler_Readline
    - _Pickle_GetGlobalState
    - strcmp
    - PyBytes_DecodeEscape
    linkageType: ''
    returnType: int
    signature: int load_string(UnpicklerObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5486,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5489,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5491,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5492,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5498,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_pickle.c:5503,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5504,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_pickle.c:5507,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - nbytes
    argTypes:
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5515
      start: 5479
    functionDepth: 3
    functionLinenumber: 5479
    functionLinenumberEnd: 5515
    functionName: load_counted_binstring
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - calc_binsize
    - _Unpickler_Read
    - PDATA_PUSH
    - PyErr_Format
    - _Pickle_GetGlobalState
    - strcmp
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: int load_counted_binstring(UnpicklerObject *self, int nbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5524,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5527,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5529,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5535,1
    - Dst: _Unpickler_ReadInto
      Src: /src/Python-3.8.3/Modules/_pickle.c:5538,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:5538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5539,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - nbytes
    argTypes:
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5517
    functionDepth: 5
    functionLinenumber: 5517
    functionLinenumberEnd: 5545
    functionName: load_counted_binbytes
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - calc_binsize
    - _Unpickler_Read
    - PDATA_PUSH
    - PyErr_Format
    - PyBytes_AS_STRING
    - _Unpickler_ReadInto
    linkageType: ''
    returnType: int
    signature: int load_counted_binbytes(UnpicklerObject *self, int nbytes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5554,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5558,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5560,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5566,1
    - Dst: _Unpickler_ReadInto
      Src: /src/Python-3.8.3/Modules/_pickle.c:5570,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_pickle.c:5570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5571,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5577
      start: 5547
    functionDepth: 5
    functionLinenumber: 5547
    functionLinenumberEnd: 5577
    functionName: load_counted_bytearray
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - calc_binsize
    - _Unpickler_Read
    - PyByteArray_AS_STRING
    - PDATA_PUSH
    - PyErr_Format
    - PyByteArray_FromStringAndSize
    - _Unpickler_ReadInto
    linkageType: ''
    returnType: int
    signature: int load_counted_bytearray(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5583,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5584,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:5589,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:5591,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5592,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5593,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5601
      start: 5579
    functionDepth: 3
    functionLinenumber: 5579
    functionLinenumberEnd: 5601
    functionName: load_next_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PDATA_PUSH
    - PyIter_Next
    - PyErr_SetString
    - _Pickle_GetGlobalState
    linkageType: ''
    returnType: int
    signature: int load_next_buffer(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5606,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:5608,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:5612,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/Python-3.8.3/Modules/_pickle.c:5616,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/Python-3.8.3/Modules/_pickle.c:5618,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5620,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5627
      start: 5603
    functionDepth: 4
    functionLinenumber: 5603
    functionLinenumberEnd: 5627
    functionName: load_readonly_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_GET_BUFFER
    - Py_DECREF
    - Pdata_stack_underflow
    - Py_SIZE
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: int
    signature: int load_readonly_buffer(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5636,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5639,1
    - Dst: PyUnicode_DecodeRawUnicodeEscape
      Src: /src/Python-3.8.3/Modules/_pickle.c:5641,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5647
      start: 5629
    functionDepth: 5
    functionLinenumber: 5629
    functionLinenumberEnd: 5647
    functionName: load_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - bad_readline
    - PyUnicode_DecodeRawUnicodeEscape
    - PDATA_PUSH
    - _Unpickler_Readline
    linkageType: ''
    returnType: int
    signature: int load_unicode(UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5656,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:5659,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5661,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:5667,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_pickle.c:5670,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - nbytes
    argTypes:
    - UnpicklerObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5676
      start: 5649
    functionDepth: 1
    functionLinenumber: 5649
    functionLinenumberEnd: 5676
    functionName: load_counted_binunicode
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binsize
    - _Unpickler_Read
    - PDATA_PUSH
    - PyErr_Format
    - PyUnicode_DecodeUTF8
    linkageType: ''
    returnType: int
    signature: int load_counted_binunicode(UnpicklerObject *self, int nbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5683,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:5684,1
    - Dst: Pdata_poptuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:5686,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5686,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5691
      start: 5678
    functionDepth: 5
    functionLinenumber: 5678
    functionLinenumberEnd: 5691
    functionName: load_counted_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Pdata_stack_underflow
    - Pdata_poptuple
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_counted_tuple(UnpicklerObject *self, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5698,1
    - Dst: load_counted_tuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:5701,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5702
      start: 5693
    functionDepth: 6
    functionLinenumber: 5693
    functionLinenumberEnd: 5702
    functionName: load_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - load_counted_tuple
    - Py_SIZE
    - marker
    linkageType: ''
    returnType: int
    signature: int load_tuple(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:5709,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5713
      start: 5704
    functionDepth: 1
    functionLinenumber: 5704
    functionLinenumberEnd: 5713
    functionName: load_empty_list
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_empty_list(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:5720,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5724
      start: 5715
    functionDepth: 1
    functionLinenumber: 5715
    functionLinenumberEnd: 5724
    functionName: load_empty_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_empty_dict(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:5731,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5735
      start: 5726
    functionDepth: 1
    functionLinenumber: 5726
    functionLinenumberEnd: 5735
    functionName: load_empty_set
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PySet_New
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_empty_set(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5743,1
    - Dst: Pdata_poplist
      Src: /src/Python-3.8.3/Modules/_pickle.c:5746,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5751
      start: 5737
    functionDepth: 4
    functionLinenumber: 5737
    functionLinenumberEnd: 5751
    functionName: load_list
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_poplist
    - marker
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_list(UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5759,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5761,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:5763,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5767,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5768,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5769,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:5776,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5777,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:5781,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5784
      start: 5753
    functionDepth: 4
    functionLinenumber: 5753
    functionLinenumberEnd: 5784
    functionName: load_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - PDATA_PUSH
    - marker
    - PyDict_SetItem
    - PyErr_SetString
    - Pdata_clear
    - _Pickle_GetGlobalState
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_dict(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5793,1
    - Dst: Pdata_poptuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:5796,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:5800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5801,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5807
      start: 5786
    functionDepth: 5
    functionLinenumber: 5786
    functionLinenumberEnd: 5807
    functionName: load_frozenset
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyFrozenSet_New
    - PDATA_PUSH
    - marker
    - Pdata_poptuple
    linkageType: ''
    returnType: int
    signature: int load_frozenset(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:5815,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5815,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5816,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5816,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:5817,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:5818,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:5820,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_pickle.c:5824,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5826,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:5828,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 5814
        line_start: 5814
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 5829
      start: 5809
    functionDepth: 1
    functionLinenumber: 5809
    functionLinenumberEnd: 5829
    functionName: instantiate
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_CallMethodIdObjArgs
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyTuple_Check
    - PyType_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instantiate(PyObject *cls, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5837,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5840,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:5841,1
    - Dst: Pdata_poptuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:5843,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5847,1
    - Dst: instantiate
      Src: /src/Python-3.8.3/Modules/_pickle.c:5849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5850,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5852,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5856,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5858
      start: 5831
    functionDepth: 5
    functionLinenumber: 5831
    functionLinenumberEnd: 5858
    functionName: load_obj
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - instantiate
    - PDATA_POP
    - Py_DECREF
    - PDATA_PUSH
    - marker
    - Pdata_stack_underflow
    - Py_SIZE
    - Pdata_poptuple
    linkageType: ''
    returnType: int
    signature: int load_obj(UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:5872,1
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5874,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5877,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/_pickle.c:5882,1
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5888,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:5889,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/_pickle.c:5891,1
    - Dst: find_class
      Src: /src/Python-3.8.3/Modules/_pickle.c:5893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5897,1
    - Dst: Pdata_poptuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:5902,1
    - Dst: instantiate
      Src: /src/Python-3.8.3/Modules/_pickle.c:5903,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5906,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5911,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5913
      start: 5860
    functionDepth: 5
    functionLinenumber: 5860
    functionLinenumberEnd: 5913
    functionName: load_inst
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - instantiate
    - Py_DECREF
    - PDATA_PUSH
    - marker
    - _Unpickler_Readline
    - PyUnicode_DecodeASCII
    - bad_readline
    - find_class
    - Pdata_poptuple
    linkageType: ''
    returnType: int
    signature: int load_inst(UnpicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5922,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5927,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5930,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5931,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5936,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5940,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5941,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:5946,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/Python-3.8.3/Modules/_pickle.c:5952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5956,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5957,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:5958,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5962,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5963,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5915
    functionDepth: 3
    functionLinenumber: 5915
    functionLinenumberEnd: 5965
    functionName: load_newobj
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_POP
    - Py_DECREF
    - PDATA_PUSH
    - PyTuple_Check
    - PyTypeObject*::tp_new
    - PyType_Check
    - PyErr_SetString
    - _Pickle_GetGlobalState
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int load_newobj(UnpicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:5972,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5974,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5978,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5980,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:5983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5985,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5986,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:5990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5992,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:5993,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:5995,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:5996,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6001,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6002,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6003,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6004,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_pickle.c:6008,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6010,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6011,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6017
      start: 5967
    functionDepth: 3
    functionLinenumber: 5967
    functionLinenumberEnd: 6017
    functionName: load_newobj_ex
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_POP
    - PDATA_PUSH
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - tp_new
    - _Pickle_GetGlobalState
    linkageType: ''
    returnType: int
    signature: int load_newobj_ex(UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6028,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6031,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_pickle.c:6032,1
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6036,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6038,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6039,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_pickle.c:6041,1
    - Dst: find_class
      Src: /src/Python-3.8.3/Modules/_pickle.c:6043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6047,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6051,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6053
      start: 6019
    functionDepth: 5
    functionLinenumber: 6019
    functionLinenumberEnd: 6053
    functionName: load_global
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_PUSH
    - PyUnicode_DecodeUTF8
    - _Unpickler_Readline
    - bad_readline
    - find_class
    linkageType: ''
    returnType: int
    signature: int load_global(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6062,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6063,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:6064,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:6065,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6066,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6067,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6068,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6069,1
    - Dst: find_class
      Src: /src/Python-3.8.3/Modules/_pickle.c:6072,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6073,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6074,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6055
    functionDepth: 3
    functionLinenumber: 6055
    functionLinenumberEnd: 6079
    functionName: load_stack_global
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_POP
    - Py_DECREF
    - PDATA_PUSH
    - PyErr_SetString
    - _Pickle_GetGlobalState
    - find_class
    - Py_XDECREF
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int load_stack_global(UnpicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6089,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6092,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/_pickle.c:6094,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:6096,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6097,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6097,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Modules/_pickle.c:6104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6105,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6109,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6081
    functionDepth: 5
    functionLinenumber: 6081
    functionLinenumberEnd: 6119
    functionName: load_persid
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_PUSH
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _Unpickler_Readline
    - PyUnicode_DecodeASCII
    - _Pickle_GetGlobalState
    - bad_readline
    - call_method
    linkageType: ''
    returnType: int
    signature: int load_persid(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6127,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Modules/_pickle.c:6131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6132,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6136,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6121
    functionDepth: 3
    functionLinenumber: 6121
    functionLinenumberEnd: 6146
    functionName: load_binpersid
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PDATA_POP
    - PDATA_PUSH
    - PyErr_SetString
    - _Pickle_GetGlobalState
    - call_method
    linkageType: ''
    returnType: int
    signature: int load_binpersid(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6151,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6169,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6173
      start: 6148
    functionDepth: 4
    functionLinenumber: 6148
    functionLinenumberEnd: 6173
    functionName: load_pop
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_pop(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:6180,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:6183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6175
    functionDepth: 4
    functionLinenumber: 6175
    functionLinenumberEnd: 6186
    functionName: load_pop_mark
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_clear
    - marker
    linkageType: ''
    returnType: int
    signature: int load_pop_mark(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6192,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6195,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:6197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6199
      start: 6188
    functionDepth: 4
    functionLinenumber: 6188
    functionLinenumberEnd: 6199
    functionName: load_dup
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PDATA_APPEND
    - Py_SIZE
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_dup(UnpicklerObject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6209,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6212,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6214,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:6217,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6219,1
    - Dst: _Unpickler_MemoGet
      Src: /src/Python-3.8.3/Modules/_pickle.c:6223,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6225,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:6226,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6230,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:6232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6234
      start: 6201
    functionDepth: 5
    functionLinenumber: 6201
    functionLinenumberEnd: 6234
    functionName: load_get
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_MemoGet
    - PyErr_Occurred
    - Py_DECREF
    - PDATA_APPEND
    - PyLong_AsSsize_t
    - PyErr_SetObject
    - PyLong_FromString
    - _Unpickler_Readline
    - bad_readline
    linkageType: ''
    returnType: int
    signature: int load_get(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6243,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_pickle.c:6246,1
    - Dst: _Unpickler_MemoGet
      Src: /src/Python-3.8.3/Modules/_pickle.c:6248,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:6250,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:6252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6253,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:6258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6260
      start: 6236
    functionDepth: 1
    functionLinenumber: 6236
    functionLinenumberEnd: 6260
    functionName: load_binget
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_MemoGet
    - Py_DECREF
    - _Unpickler_Read
    - PDATA_APPEND
    - PyErr_SetObject
    - PyLong_FromSsize_t
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int load_binget(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6269,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:6272,1
    - Dst: _Unpickler_MemoGet
      Src: /src/Python-3.8.3/Modules/_pickle.c:6274,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:6276,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:6278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6279,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:6284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6286
      start: 6262
    functionDepth: 1
    functionLinenumber: 6262
    functionLinenumberEnd: 6286
    functionName: load_long_binget
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_MemoGet
    - Py_DECREF
    - calc_binsize
    - _Unpickler_Read
    - PDATA_APPEND
    - PyErr_SetObject
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: int
    signature: int load_long_binget(UnpicklerObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6300,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_pickle.c:6302,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6303,1
    - Dst: calc_binint
      Src: /src/Python-3.8.3/Modules/_pickle.c:6305,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6308,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_pickle.c:6313,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:6316,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6319,1
    - Dst: PDATA_APPEND
      Src: /src/Python-3.8.3/Modules/_pickle.c:6320,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6324,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:6329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6331,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6332,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6333,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6341,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_pickle.c:6341,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:6345,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6346,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:6350,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6351,1
    - Dst: find_class
      Src: /src/Python-3.8.3/Modules/_pickle.c:6356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6358,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:6362,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6363,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6365,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6368,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6372,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6373,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - self
    - nbytes
    argTypes:
    - UnpicklerObject*
    - int
    assertStmts:
    - condition: (nbytes == 1 || nbytes == 2 || nbytes == 4)
      pos:
        line_end: 6301
        line_start: 6301
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    constantsTouched: []
    func_position:
      end: 6376
      start: 6291
    functionDepth: 3
    functionLinenumber: 6291
    functionLinenumberEnd: 6376
    functionName: load_extension
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyErr_Occurred
    - calc_binint
    - _Unpickler_Read
    - PDATA_APPEND
    - PDATA_PUSH
    - PyTuple_Check
    - PyErr_Format
    - PyDict_SetItem
    - PyErr_SetString
    - PyTuple_Size
    - PyUnicode_Check
    - _Pickle_GetGlobalState
    - PyTuple_GET_ITEM
    - find_class
    linkageType: ''
    returnType: int
    signature: int load_extension(UnpicklerObject *self, int nbytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6386,1
    - Dst: bad_readline
      Src: /src/Python-3.8.3/Modules/_pickle.c:6389,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6390,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6391,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6392,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6394,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:6397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6398,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6400,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6401,1
    - Dst: _Unpickler_MemoPut
      Src: /src/Python-3.8.3/Modules/_pickle.c:6406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6407
      start: 6378
    functionDepth: 5
    functionLinenumber: 6378
    functionLinenumberEnd: 6407
    functionName: load_put
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - _Unpickler_MemoPut
    - Pdata_stack_underflow
    - PyLong_FromString
    - _Unpickler_Readline
    - PyErr_SetString
    - bad_readline
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_put(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6416,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6419,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6420,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6421,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/_pickle.c:6423,1
    - Dst: _Unpickler_MemoPut
      Src: /src/Python-3.8.3/Modules/_pickle.c:6425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6426
      start: 6409
    functionDepth: 4
    functionLinenumber: 6409
    functionLinenumberEnd: 6426
    functionName: load_binput
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_Read
    - _Unpickler_MemoPut
    - Py_SIZE
    - Pdata_stack_underflow
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int load_binput(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6435,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6438,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6439,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6440,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:6442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6444,1
    - Dst: _Unpickler_MemoPut
      Src: /src/Python-3.8.3/Modules/_pickle.c:6449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6450
      start: 6428
    functionDepth: 4
    functionLinenumber: 6428
    functionLinenumberEnd: 6450
    functionName: load_long_binput
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binsize
    - _Unpickler_Read
    - _Unpickler_MemoPut
    - Py_SIZE
    - PyErr_SetString
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_long_binput(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6457,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6458,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6459,1
    - Dst: _Unpickler_MemoPut
      Src: /src/Python-3.8.3/Modules/_pickle.c:6461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6462
      start: 6452
    functionDepth: 4
    functionLinenumber: 6452
    functionLinenumberEnd: 6462
    functionName: load_memoize
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_MemoPut
    - Py_SIZE
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_memoize(UnpicklerObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6473,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6475,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:6481,1
    - Dst: Pdata_poplist
      Src: /src/Python-3.8.3/Modules/_pickle.c:6485,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6488,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Modules/_pickle.c:6489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6490,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:6495,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:6497,1
    - Dst: Pdata_poplist
      Src: /src/Python-3.8.3/Modules/_pickle.c:6501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6503,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:6506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6510,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:6514,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:6519,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:6524,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:6526,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6528,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6531,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6533,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6534,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6539
      start: 6464
    functionDepth: 4
    functionLinenumber: 6464
    functionLinenumberEnd: 6539
    functionName: do_append
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Pickle_FastCall
    - _Py_IDENTIFIER
    - PyList_GET_SIZE
    - Pdata_stack_underflow
    - Pdata_clear
    - PyList_CheckExact
    - Py_SIZE
    - Pdata_poplist
    linkageType: ''
    returnType: int
    signature: int do_append(UnpicklerObject *self, Py_ssize_t x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6544,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6545,1
    - Dst: do_append
      Src: /src/Python-3.8.3/Modules/_pickle.c:6546,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6547
      start: 6541
    functionDepth: 5
    functionLinenumber: 6541
    functionLinenumberEnd: 6547
    functionName: load_append
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - do_append
    - Pdata_stack_underflow
    linkageType: ''
    returnType: int
    signature: int load_append(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:6552,1
    - Dst: do_append
      Src: /src/Python-3.8.3/Modules/_pickle.c:6555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6556
      start: 6549
    functionDepth: 5
    functionLinenumber: 6549
    functionLinenumberEnd: 6556
    functionName: load_appends
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - marker
    - do_append
    linkageType: ''
    returnType: int
    signature: int load_appends(UnpicklerObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6566,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6568,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6572,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6574,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:6586,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:6592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - x
    argTypes:
    - UnpicklerObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6594
      start: 6558
    functionDepth: 4
    functionLinenumber: 6558
    functionLinenumberEnd: 6594
    functionName: do_setitems
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Pdata_stack_underflow
    - PyErr_SetString
    - Pdata_clear
    - _Pickle_GetGlobalState
    - Py_SIZE
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int do_setitems(UnpicklerObject *self, Py_ssize_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_setitems
      Src: /src/Python-3.8.3/Modules/_pickle.c:6599,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6600
      start: 6596
    functionDepth: 5
    functionLinenumber: 6596
    functionLinenumberEnd: 6600
    functionName: load_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - do_setitems
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int load_setitem(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:6605,1
    - Dst: do_setitems
      Src: /src/Python-3.8.3/Modules/_pickle.c:6608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6609
      start: 6602
    functionDepth: 5
    functionLinenumber: 6602
    functionLinenumberEnd: 6609
    functionName: load_setitems
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - do_setitems
    - marker
    linkageType: ''
    returnType: int
    signature: int load_setitems(UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: marker
      Src: /src/Python-3.8.3/Modules/_pickle.c:6617,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6620,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6622,1
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6628,1
    - Dst: Pdata_poptuple
      Src: /src/Python-3.8.3/Modules/_pickle.c:6632,1
    - Dst: _PySet_Update
      Src: /src/Python-3.8.3/Modules/_pickle.c:6636,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6637,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:6642,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:6644,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:6652,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:6654,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6658,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6660,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6664
      start: 6611
    functionDepth: 5
    functionLinenumber: 6611
    functionLinenumberEnd: 6664
    functionName: load_additems
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - Py_DECREF
    - _PyObject_GetAttrId
    - _Pickle_FastCall
    - _PySet_Update
    - _Py_IDENTIFIER
    - marker
    - Pdata_stack_underflow
    - Pdata_clear
    - Py_SIZE
    - Pdata_poptuple
    linkageType: ''
    returnType: int
    signature: int load_additems(UnpicklerObject *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:6672,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6677,1
    - Dst: Pdata_stack_underflow
      Src: /src/Python-3.8.3/Modules/_pickle.c:6678,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6680,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6684,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:6686,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6687,1
    - Dst: _Pickle_FastCall
      Src: /src/Python-3.8.3/Modules/_pickle.c:6694,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6695,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6698,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6705,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6705,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:6708,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:6709,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6710,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6712,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:6722,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6724,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6726,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_pickle.c:6729,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:6734,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6737,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_pickle.c:6738,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_pickle.c:6739,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:6740,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6741,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6744,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6746,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:6754,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6755,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:6756,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:6761,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Modules/_pickle.c:6762,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6772,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6773,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6775
      start: 6666
    functionDepth: 4
    functionLinenumber: 6666
    functionLinenumberEnd: 6775
    functionName: load_build
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyTuple_GET_SIZE
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _Pickle_GetGlobalState
    - PyUnicode_CheckExact
    - PDATA_POP
    - Py_INCREF
    - PyTuple_Check
    - Pdata_stack_underflow
    - Py_XDECREF
    - PyDict_Next
    - Py_DECREF
    - _Pickle_FastCall
    - PyDict_Check
    - Py_SIZE
    - PyObject_SetItem
    - PyUnicode_InternInPlace
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int load_build(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RESIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6789,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_pickle.c:6791,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6802
      start: 6777
    functionDepth: 1
    functionLinenumber: 6777
    functionLinenumberEnd: 6802
    functionName: load_mark
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_SIZE
    - PyMem_RESIZE
    linkageType: ''
    returnType: int
    signature: int load_mark(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6811,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6814,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:6816,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6817,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:6819,1
    - Dst: PDATA_PUSH
      Src: /src/Python-3.8.3/Modules/_pickle.c:6824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6826
      start: 6804
    functionDepth: 1
    functionLinenumber: 6804
    functionLinenumberEnd: 6826
    functionName: load_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallObject
    - PDATA_POP
    - PDATA_PUSH
    linkageType: ''
    returnType: int
    signature: int load_reduce(UnpicklerObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6837,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6848
      start: 6831
    functionDepth: 1
    functionLinenumber: 6831
    functionLinenumberEnd: 6848
    functionName: load_proto
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_proto(UnpicklerObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6856,1
    - Dst: calc_binsize
      Src: /src/Python-3.8.3/Modules/_pickle.c:6859,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6861,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6873
      start: 6850
    functionDepth: 1
    functionLinenumber: 6850
    functionLinenumberEnd: 6873
    functionName: load_frame
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - calc_binsize
    - PyErr_Format
    - _Unpickler_Read
    linkageType: ''
    returnType: int
    signature: int load_frame(UnpicklerObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:6885,1
    - Dst: Pdata_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:6886,1
    - Dst: _Unpickler_Read
      Src: /src/Python-3.8.3/Modules/_pickle.c:6896,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6897,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_pickle.c:6898,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6899,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6905,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6906,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6907,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6908,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6909,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6910,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6911,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6912,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6913,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6914,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6915,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6916,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6917,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6918,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6919,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6920,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6921,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6922,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6923,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6924,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6925,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6926,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6927,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6928,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6929,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6930,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6931,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6932,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6933,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6934,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6935,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6936,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6937,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6938,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6939,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6940,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6941,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6942,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6943,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6944,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6945,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6946,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6947,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6948,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6949,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6950,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6951,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6952,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6953,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6954,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6955,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6956,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6957,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6958,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6959,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6960,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6961,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6962,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6963,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6964,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6965,1
    - Dst: OP
      Src: /src/Python-3.8.3/Modules/_pickle.c:6966,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6967,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6968,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6969,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6970,1
    - Dst: OP_ARG
      Src: /src/Python-3.8.3/Modules/_pickle.c:6971,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:6978,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6981,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:6985,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:6995,1
    - Dst: _Unpickler_SkipConsumed
      Src: /src/Python-3.8.3/Modules/_pickle.c:6999,1
    - Dst: PDATA_POP
      Src: /src/Python-3.8.3/Modules/_pickle.c:7002,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 102
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7004
      start: 6875
    functionDepth: 3
    functionLinenumber: 6875
    functionLinenumberEnd: 7004
    functionName: load
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PDATA_POP
    - OP
    - _Unpickler_Read
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Pdata_clear
    - _Pickle_GetGlobalState
    - _Unpickler_SkipConsumed
    - Py_SIZE
    - OP_ARG
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      load(UnpicklerObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opcode
    - ','
    - load_func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6891
      start: 6889
    functionDepth: 0
    functionLinenumber: 6889
    functionLinenumberEnd: 6891
    functionName: OP
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP(opcode, load_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - opcode
    - ','
    - load_func
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6894
      start: 6892
    functionDepth: 0
    functionLinenumber: 6892
    functionLinenumberEnd: 6894
    functionName: OP_ARG
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_ARG(opcode, load_func, arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7028,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:7029,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7031,1
    - Dst: load
      Src: /src/Python-3.8.3/Modules/_pickle.c:7035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7036
      start: 7017
    functionDepth: 4
    functionLinenumber: 7017
    functionLinenumberEnd: 7036
    functionName: _pickle_Unpickler_load_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetGlobalState
    - load
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_load_impl(UnpicklerObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_pickle.c:7069,1
    - Dst: _Pickle_GetGlobalState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7080,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_pickle.c:7084,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:7087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7088,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7090,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7090,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:7091,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7093,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:7096,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:7097,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7098,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7099,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:7100,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7103,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7104,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:7108,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_pickle.c:7113,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7115,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:7116,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7118,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:7123,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Modules/_pickle.c:7133,1
    - Dst: getattribute
      Src: /src/Python-3.8.3/Modules/_pickle.c:7137,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7138,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - self
    - module_name
    - global_name
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7140
      start: 7060
    functionDepth: 3
    functionLinenumber: 7060
    functionLinenumberEnd: 7140
    functionName: _pickle_Unpickler_find_class_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_Pack
    - PyTuple_Check
    - PyImport_Import
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - _Pickle_GetGlobalState
    - PySys_Audit
    - getattribute
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_Unpickler_find_class_impl(UnpicklerObject *self,\n
      \                                 PyObject *module_name,\n                                  PyObject
      *global_name)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7155,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7155,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:7161,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:7163,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_pickle.c:7165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7167
      start: 7149
    functionDepth: 1
    functionLinenumber: 7149
    functionLinenumberEnd: 7167
    functionName: _pickle_Unpickler___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - strlen
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _pickle_Unpickler___sizeof___impl(UnpicklerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_pickle.c:7179,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7180,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7181,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7182,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7183,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7184,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7185,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7186,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_pickle.c:7188,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/Python-3.8.3/Modules/_pickle.c:7192,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7193,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7194,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7195,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7196,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7199
      start: 7176
    functionDepth: 2
    functionLinenumber: 7176
    functionLinenumberEnd: 7199
    functionName: Unpickler_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - _Unpickler_MemoCleanup
    - Py_TYPE
    - PyMem_Free
    - PyBuffer_Release
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void Unpickler_dealloc(UnpicklerObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7204,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7205,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7206,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7207,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7208,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7209,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - UnpicklerObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7212
      start: 7201
    functionDepth: 1
    functionLinenumber: 7201
    functionLinenumberEnd: 7212
    functionName: Unpickler_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int Unpickler_traverse(UnpicklerObject *self, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7217,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7218,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7219,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7220,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7221,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7222,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7223,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_pickle.c:7225,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/Python-3.8.3/Modules/_pickle.c:7229,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7230,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7232,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7234,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_pickle.c:7236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7240
      start: 7214
    functionDepth: 2
    functionLinenumber: 7214
    functionLinenumberEnd: 7240
    functionName: Unpickler_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - _Unpickler_MemoCleanup
    - Py_CLEAR
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int Unpickler_clear(UnpicklerObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_pickle.c:7281,1
    - Dst: Unpickler_clear
      Src: /src/Python-3.8.3/Modules/_pickle.c:7285,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/Python-3.8.3/Modules/_pickle.c:7287,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/Python-3.8.3/Modules/_pickle.c:7290,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/Python-3.8.3/Modules/_pickle.c:7293,1
    - Dst: init_method_ref
      Src: /src/Python-3.8.3/Modules/_pickle.c:7298,1
    - Dst: Pdata_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7304,1
    - Dst: _Unpickler_NewMemo
      Src: /src/Python-3.8.3/Modules/_pickle.c:7309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - self
    - file
    - fix_imports
    - encoding
    - errors
    - buffers
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - int
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7316
      start: 7275
    functionDepth: 3
    functionLinenumber: 7275
    functionLinenumberEnd: 7316
    functionName: _pickle_Unpickler___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_NewMemo
    - _Unpickler_SetBuffers
    - Pdata_New
    - init_method_ref
    - _Py_IDENTIFIER
    - _Unpickler_SetInputEncoding
    - _Unpickler_SetInputStream
    - Unpickler_clear
    linkageType: ''
    returnType: int
    signature: "int _pickle_Unpickler___init___impl(UnpicklerObject *self, PyObject
      *file,\n                                int fix_imports, const char *encoding,\n
      \                               const char *errors, PyObject *buffers)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_MemoCleanup
      Src: /src/Python-3.8.3/Modules/_pickle.c:7342,1
    - Dst: _Unpickler_NewMemo
      Src: /src/Python-3.8.3/Modules/_pickle.c:7343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7347
      start: 7338
    functionDepth: 2
    functionLinenumber: 7338
    functionLinenumberEnd: 7347
    functionName: _pickle_UnpicklerMemoProxy_clear_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_MemoCleanup
    - _Unpickler_NewMemo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_clear_impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7360,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:7372,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_pickle.c:7375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7385
      start: 7355
    functionDepth: 1
    functionLinenumber: 7355
    functionLinenumberEnd: 7385
    functionName: _pickle_UnpicklerMemoProxy_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PyLong_FromSsize_t
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_copy_impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_copy_impl
      Src: /src/Python-3.8.3/Modules/_pickle.c:7399,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7403,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7405,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7410,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7411,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:7414,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7415,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:7416,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_pickle.c:7417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7419
      start: 7393
    functionDepth: 2
    functionLinenumber: 7393
    functionLinenumberEnd: 7419
    functionName: _pickle_UnpicklerMemoProxy___reduce___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyTuple_New
    - _pickle_UnpicklerMemoProxy_copy_impl
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy___reduce___impl(UnpicklerMemoProxyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_pickle.c:7431,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7432,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_pickle.c:7433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7434
      start: 7428
    functionDepth: 3
    functionLinenumber: 7428
    functionLinenumberEnd: 7434
    functionName: UnpicklerMemoProxy_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void UnpicklerMemoProxy_dealloc(UnpicklerMemoProxyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - UnpicklerMemoProxyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7442
      start: 7436
    functionDepth: 1
    functionLinenumber: 7436
    functionLinenumberEnd: 7442
    functionName: UnpicklerMemoProxy_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int UnpicklerMemoProxy_traverse(UnpicklerMemoProxyObject *self,\n
      \                           visitproc visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_pickle.c:7447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - UnpicklerMemoProxyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7449
      start: 7444
    functionDepth: 1
    functionLinenumber: 7444
    functionLinenumberEnd: 7449
    functionName: UnpicklerMemoProxy_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int UnpicklerMemoProxy_clear(UnpicklerMemoProxyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7487,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7491,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_pickle.c:7493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - unpickler
    argTypes:
    - UnpicklerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7495
      start: 7482
    functionDepth: 2
    functionLinenumber: 7482
    functionLinenumberEnd: 7495
    functionName: UnpicklerMemoProxy_New
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnpicklerMemoProxy_New(UnpicklerObject *unpickler)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnpicklerMemoProxy_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7500
    functionDepth: 3
    functionLinenumber: 7500
    functionLinenumberEnd: 7504
    functionName: Unpickler_get_memo
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - UnpicklerMemoProxy_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Unpickler_get_memo(UnpicklerObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7513,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7518,1
    - Dst: _Unpickler_NewMemo
      Src: /src/Python-3.8.3/Modules/_pickle.c:7523,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7528,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7532,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7536,1
    - Dst: _Unpickler_NewMemo
      Src: /src/Python-3.8.3/Modules/_pickle.c:7537,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_pickle.c:7541,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7543,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7544,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_pickle.c:7548,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_pickle.c:7549,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7552,1
    - Dst: _Unpickler_MemoPut
      Src: /src/Python-3.8.3/Modules/_pickle.c:7556,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_pickle.c:7561,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7563,1
    - Dst: _Unpickler_MemoCleanup
      Src: /src/Python-3.8.3/Modules/_pickle.c:7567,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7576,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/_pickle.c:7578,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - self
    - obj
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7581
      start: 7506
    functionDepth: 3
    functionLinenumber: 7506
    functionLinenumberEnd: 7581
    functionName: Unpickler_set_memo
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _Unpickler_NewMemo
    - _Unpickler_MemoCleanup
    - PyDict_Next
    - PyErr_Occurred
    - PyDict_GET_SIZE
    - Py_XDECREF
    - PyDict_Check
    - PyLong_AsSsize_t
    - _Unpickler_MemoPut
    - Py_TYPE
    - PyErr_Format
    - PyErr_SetString
    - PyMem_FREE
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int Unpickler_set_memo(UnpicklerObject *self, PyObject *obj, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7587,1
    - Dst: reconstruct_method
      Src: /src/Python-3.8.3/Modules/_pickle.c:7590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 7583
    functionDepth: 2
    functionLinenumber: 7583
    functionLinenumberEnd: 7591
    functionName: Unpickler_get_persload
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - reconstruct_method
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Unpickler_get_persload(UnpicklerObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7597,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_pickle.c:7601,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7602,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7609,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7613
      start: 7593
    functionDepth: 1
    functionLinenumber: 7593
    functionLinenumberEnd: 7613
    functionName: Unpickler_set_persload
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int Unpickler_set_persload(UnpicklerObject *self, PyObject *value,
      void *Py_UNUSED(ignored))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7711,1
    - Dst: _Pickler_SetProtocol
      Src: /src/Python-3.8.3/Modules/_pickle.c:7716,1
    - Dst: _Pickler_SetOutputStream
      Src: /src/Python-3.8.3/Modules/_pickle.c:7719,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/Python-3.8.3/Modules/_pickle.c:7722,1
    - Dst: dump
      Src: /src/Python-3.8.3/Modules/_pickle.c:7725,1
    - Dst: _Pickler_FlushToFile
      Src: /src/Python-3.8.3/Modules/_pickle.c:7728,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7731,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7735,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 6
    argNames:
    - module
    - obj
    - file
    - protocol
    - fix_imports
    - buffer_callback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7737
      start: 7705
    functionDepth: 10
    functionLinenumber: 7705
    functionLinenumberEnd: 7737
    functionName: _pickle_dump_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - dump
    - Py_DECREF
    - _Pickler_New
    - _Pickler_SetProtocol
    - _Pickler_SetOutputStream
    - _Pickler_FlushToFile
    - _Pickler_SetBufferCallback
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_dump_impl(PyObject *module, PyObject *obj, PyObject
      *file,\n                  PyObject *protocol, int fix_imports,\n                  PyObject
      *buffer_callback)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Pickler_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7776,1
    - Dst: _Pickler_SetProtocol
      Src: /src/Python-3.8.3/Modules/_pickle.c:7781,1
    - Dst: _Pickler_SetBufferCallback
      Src: /src/Python-3.8.3/Modules/_pickle.c:7784,1
    - Dst: dump
      Src: /src/Python-3.8.3/Modules/_pickle.c:7787,1
    - Dst: _Pickler_GetString
      Src: /src/Python-3.8.3/Modules/_pickle.c:7790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7791,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7795,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - module
    - obj
    - protocol
    - fix_imports
    - buffer_callback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7797
      start: 7770
    functionDepth: 10
    functionLinenumber: 7770
    functionLinenumberEnd: 7797
    functionName: _pickle_dumps_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - dump
    - Py_DECREF
    - _Pickler_New
    - _Pickler_SetProtocol
    - _Pickler_SetBufferCallback
    - Py_XDECREF
    - _Pickler_GetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_dumps_impl(PyObject *module, PyObject *obj, PyObject
      *protocol,\n                   int fix_imports, PyObject *buffer_callback)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7842,1
    - Dst: _Unpickler_SetInputStream
      Src: /src/Python-3.8.3/Modules/_pickle.c:7847,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/Python-3.8.3/Modules/_pickle.c:7850,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/Python-3.8.3/Modules/_pickle.c:7853,1
    - Dst: load
      Src: /src/Python-3.8.3/Modules/_pickle.c:7858,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7859,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - module
    - file
    - fix_imports
    - encoding
    - errors
    - buffers
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7865
      start: 7835
    functionDepth: 4
    functionLinenumber: 7835
    functionLinenumberEnd: 7865
    functionName: _pickle_load_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetBuffers
    - _Unpickler_New
    - Py_DECREF
    - load
    - _Unpickler_SetInputEncoding
    - _Unpickler_SetInputStream
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_load_impl(PyObject *module, PyObject *file, int
      fix_imports,\n                  const char *encoding, const char *errors,\n
      \                 PyObject *buffers)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Unpickler_New
      Src: /src/Python-3.8.3/Modules/_pickle.c:7901,1
    - Dst: _Unpickler_SetStringInput
      Src: /src/Python-3.8.3/Modules/_pickle.c:7906,1
    - Dst: _Unpickler_SetInputEncoding
      Src: /src/Python-3.8.3/Modules/_pickle.c:7909,1
    - Dst: _Unpickler_SetBuffers
      Src: /src/Python-3.8.3/Modules/_pickle.c:7912,1
    - Dst: load
      Src: /src/Python-3.8.3/Modules/_pickle.c:7917,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7918,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - module
    - data
    - fix_imports
    - encoding
    - errors
    - buffers
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7924
      start: 7894
    functionDepth: 4
    functionLinenumber: 7894
    functionLinenumberEnd: 7924
    functionName: _pickle_loads_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Unpickler_SetBuffers
    - _Unpickler_New
    - Py_DECREF
    - load
    - _Unpickler_SetStringInput
    - _Unpickler_SetInputEncoding
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_pickle_loads_impl(PyObject *module, PyObject *data, int
      fix_imports,\n                   const char *encoding, const char *errors,\n
      \                  PyObject *buffers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_ClearState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7937,1
    - Dst: _Pickle_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7939
      start: 7934
    functionDepth: 2
    functionLinenumber: 7934
    functionLinenumberEnd: 7939
    functionName: pickle_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - _Pickle_ClearState
    linkageType: ''
    returnType: int
    signature: int pickle_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_ClearState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7944,1
    - Dst: _Pickle_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7945
      start: 7941
    functionDepth: 2
    functionLinenumber: 7941
    functionLinenumberEnd: 7945
    functionName: pickle_free
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - _Pickle_GetState
    - _Pickle_ClearState
    linkageType: ''
    returnType: void
    signature: void pickle_free(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Pickle_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:7950,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7951,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7952,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7953,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7954,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7955,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7956,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7957,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7958,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7959,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7960,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7961,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7962,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7963,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_pickle.c:7964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7966
      start: 7947
    functionDepth: 2
    functionLinenumber: 7947
    functionLinenumberEnd: 7966
    functionName: pickle_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _Pickle_GetState
    linkageType: ''
    returnType: int
    signature: int pickle_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_pickle.c:7986,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:7988,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_pickle.c:7992,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_pickle.c:7994,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_pickle.c:7996,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_pickle.c:7998,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_pickle.c:8000,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_pickle.c:8004,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8009,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8010,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8012,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8013,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8015,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8016,1
    - Dst: _Pickle_GetState
      Src: /src/Python-3.8.3/Modules/_pickle.c:8020,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_pickle.c:8023,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_pickle.c:8027,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_pickle.c:8031,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8035,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8036,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8038,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8039,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_pickle.c:8041,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_pickle.c:8042,1
    - Dst: _Pickle_InitState
      Src: /src/Python-3.8.3/Modules/_pickle.c:8045,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8049
      start: 7980
    functionDepth: 3
    functionLinenumber: 7980
    functionLinenumberEnd: 8049
    functionName: PyInit__pickle
    functionSourceFile: /src/Python-3.8.3/Modules/_pickle.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - _Pickle_InitState
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - _Pickle_GetState
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__pickle(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PyArrayIter_Check
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyArrayIter_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: array_Check
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: array_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: array_CheckExact(op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:118,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:129,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:131,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:136,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:155,1
    - Dst: PyMem_RESIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:160,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:164,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 171
    functionName: array_resize
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_FREE
    - PyMem_RESIZE
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int array_resize(arrayobject *self, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: b_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      b_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:201,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: b_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int b_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: BB_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BB_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: BB_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int BB_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/arraymodule.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: u_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: u_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int u_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: h_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      h_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: h_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int h_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: HH_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      HH_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:293,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 308
    functionName: HH_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int HH_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: i_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      i_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: i_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int i_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: II_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      II_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:338,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:339,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Modules/arraymodule.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 344
    functionName: get_int_unless_float
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_int_unless_float(PyObject *v)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:352,1
    - Dst: get_int_unless_float
      Src: /src/Python-3.8.3/Modules/arraymodule.c:353,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:359,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:360,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:367,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:370,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:378,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 381
    functionName: II_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetString
    - get_int_unless_float
    linkageType: ''
    returnType: int
    signature: int II_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: l_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      l_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 398
    functionName: l_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int l_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: LL_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      LL_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:412,1
    - Dst: get_int_unless_float
      Src: /src/Python-3.8.3/Modules/arraymodule.c:413,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:419,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:422,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 433
    functionName: LL_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - Py_DECREF
    - get_int_unless_float
    linkageType: ''
    returnType: int
    signature: int LL_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: q_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      q_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: q_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int q_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: QQ_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      QQ_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:465,1
    - Dst: get_int_unless_float
      Src: /src/Python-3.8.3/Modules/arraymodule.c:466,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:472,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:473,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 486
    functionName: QQ_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsUnsignedLongLong
    - get_int_unless_float
    linkageType: ''
    returnType: int
    signature: int QQ_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/arraymodule.c:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: f_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 503
    functionName: f_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int f_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/arraymodule.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ap
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: d_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_getitem(arrayobject *ap, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/arraymodule.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ap
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 520
    functionName: d_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    linkageType: ''
    returnType: int
    signature: int d_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: DEFINE_COMPAREITEMS
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_COMPAREITEMS(code, type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/arraymodule.c:582,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:588,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/arraymodule.c:591,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:598,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/arraymodule.c:603,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:605,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:606,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - type
    - size
    - descr
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    - struct arraydescr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 611
    functionName: newarrayobject
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - PyMem_NEW
    - PyErr_BadInternalCall
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newarrayobject(PyTypeObject *type, Py_ssize_t size, const struct arraydescr
      *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:617,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:617,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:619,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (array_Check(op))
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - condition: (i>=0 && i<Py_SIZE(ap))
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: getarrayitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getarrayitem(PyObject *op, Py_ssize_t i)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:627,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/arraymodule.c:629,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:635,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 651
    functionName: ins1
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_resize
    - Py_SIZE
    - PyErr_BadInternalCall
    - memmove
    linkageType: ''
    returnType: int
    signature: int ins1(arrayobject *self, Py_ssize_t where, PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/arraymodule.c:659,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/arraymodule.c:661,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: array_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyMem_DEL
    linkageType: ''
    returnType: void
    signature: void array_dealloc(arrayobject *op)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:674,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:674,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:680,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:680,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:686,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/arraymodule.c:693,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:693,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:693,1
    - Dst: arrayobject*::ob_descr::compareitems
      Src: /src/Python-3.8.3/Modules/arraymodule.c:694,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:710,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:717,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:717,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:718,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:721,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:722,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/arraymodule.c:725,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:728,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:729,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:737,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:738,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:745,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:746,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:755,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:761,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:765,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/arraymodule.c:770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:772,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:773,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 105
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (vs == ws)
      pos:
        line_end: 745
        line_start: 745
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - condition: (vs == ws)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 775
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 775
    functionName: array_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - arrayobject*::ob_descr::compareitems
    - Py_DECREF
    - Py_INCREF
    - getarrayitem
    - Py_XDECREF
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - assert
    - Py_SIZE
    - Py_MIN
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: array_length
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t array_length(arrayobject *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:786,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:787,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 783
    functionDepth: 2
    functionLinenumber: 783
    functionLinenumberEnd: 791
    functionName: array_item
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - getarrayitem
    - Py_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_item(arrayobject *a, Py_ssize_t i)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:799,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:800,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:805,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:806,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:807,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 793
    functionDepth: 2
    functionLinenumber: 793
    functionLinenumberEnd: 815
    functionName: array_slice
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - memcpy
    - newarrayobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_slice
      Src: /src/Python-3.8.3/Modules/arraymodule.c:828,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: array_array___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_slice
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___copy___impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___copy___impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 845
    functionName: array_array___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_array___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___deepcopy__(arrayobject *self, PyObject *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:852,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:853,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:855,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Modules/arraymodule.c:860,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:863,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:863,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:864,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:866,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:866,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:867,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:871,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:872,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:872,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:874,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:875,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:875,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:876,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - a
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 880
    functionName: array_concat
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_BadArgument
    - PyErr_NoMemory
    - Py_TYPE
    - PyErr_Format
    - newarrayobject
    - Py_SIZE
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_concat(arrayobject *a, PyObject *bb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:890,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:890,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:891,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:893,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:894,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:899,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/arraymodule.c:903,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:906,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:909,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 914
    functionName: array_repeat
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - newarrayobject
    - Py_SIZE
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_repeat(arrayobject *a, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:923,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:924,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:929,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:930,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:937,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:942,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:944,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:945,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:945,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 949
    functionName: array_del_slice
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memmove
    - Py_SIZE
    - array_resize
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int array_del_slice(arrayobject *a, Py_ssize_t ilow, Py_ssize_t ihigh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:954,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:955,1
    - Dst: array_del_slice
      Src: /src/Python-3.8.3/Modules/arraymodule.c:960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: array_ass_item
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - array_del_slice
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int array_ass_item(arrayobject *a, Py_ssize_t i, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:967,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:967,1
    - Dst: array_ass_item
      Src: /src/Python-3.8.3/Modules/arraymodule.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (array_Check(a))
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 4
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: setarrayitem
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - assert
    - array_ass_item
    - array_Check
    linkageType: ''
    returnType: int
    signature: int setarrayitem(PyObject *a, Py_ssize_t i, PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/arraymodule.c:976,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/arraymodule.c:980,1
    - Dst: ins1
      Src: /src/Python-3.8.3/Modules/arraymodule.c:981,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:981,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:986,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:988,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 992
    functionName: array_iter_extend
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - ins1
    - PyIter_Next
    - Py_SIZE
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: int array_iter_extend(arrayobject *self, PyObject *bb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:999,1
    - Dst: array_iter_extend
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1000,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1003,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1007,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1007,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1008,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1008,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1009,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1012,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1014,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1015,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1016,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1025
    functionName: array_do_extend
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyErr_SetString
    - array_resize
    - array_iter_extend
    - Py_SIZE
    - array_Check
    linkageType: ''
    returnType: int
    signature: int array_do_extend(arrayobject *self, PyObject *bb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1030,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1031,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1033,1
    - Dst: array_do_extend
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1036,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1040
    functionName: array_inplace_concat
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - array_do_extend
    - Py_TYPE
    - PyErr_Format
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_inplace_concat(arrayobject *self, PyObject *bb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1048,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1052,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1053,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1055,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1057,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1059,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1059,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1064,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1067,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1069
    functionName: array_inplace_repeat
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_INCREF
    - PyErr_NoMemory
    - array_resize
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_inplace_repeat(arrayobject *self, Py_ssize_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ins1
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1078
    functionName: ins
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 8
    functionsReached:
    - ins1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ins(arrayobject *self, Py_ssize_t where, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1096,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1100,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1104,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1111
    functionName: array_array_count
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getarrayitem
    - PyObject_RichCompareBool
    - Py_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_count(arrayobject *self, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1129,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1133,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1136,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1137,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1139,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1146
    functionName: array_array_index
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - getarrayitem
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_index(arrayobject *self, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1154,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1155,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1162
    functionName: array_contains
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - getarrayitem
    - Py_SIZE
    - PyObject_RichCompareBool
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int array_contains(arrayobject *self, PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1179,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1183,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1187,1
    - Dst: array_del_slice
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1189,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1173
    functionDepth: 3
    functionLinenumber: 1173
    functionLinenumberEnd: 1198
    functionName: array_array_remove
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getarrayitem
    - array_del_slice
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_remove(arrayobject *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1217,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1219,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1223,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1225,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1228,1
    - Dst: array_del_slice
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1231,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - arrayobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1211
    functionDepth: 3
    functionLinenumber: 1211
    functionLinenumberEnd: 1236
    functionName: array_array_pop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getarrayitem
    - array_del_slice
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_pop_impl(arrayobject *self, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: array_do_extend
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - bb
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1254
    functionName: array_array_extend
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_do_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_extend(arrayobject *self, PyObject *bb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ins
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - arrayobject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1271
    functionName: array_array_insert_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - ins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_insert_impl(arrayobject *self, Py_ssize_t i, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1288,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1294,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1297,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1299,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1299,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1301,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1307
    functionName: array_array_buffer_info_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromVoidPtr
    - Py_SIZE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_buffer_info_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ins
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1322,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1323
    functionName: array_array_append
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - ins
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_append(arrayobject *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1345,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1352,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1378,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1383
    functionName: array_array_byteswap_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_byteswap_impl(arrayobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1399,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1401,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1403,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1409,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1410,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts:
    - condition: ((size_t)itemsize <= sizeof(tmp))
      pos:
        line_end: 1398
        line_start: 1398
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1416
    functionName: array_array_reverse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_reverse_impl(arrayobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1435,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1439,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1443,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1448,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1455,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1459,1
    - Dst: array_array_frombytes
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1462,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - self
    - f
    - n
    argTypes:
    - arrayobject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1474
    functionName: array_array_fromfile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_NoMemory
    - _PyObject_CallMethodId
    - array_array_frombytes
    - _Py_IDENTIFIER
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromfile_impl(arrayobject *self, PyObject *f, Py_ssize_t n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1489,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1496,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1503,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1507,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1510,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - f
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1519
    functionName: array_array_tofile
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tofile(arrayobject *self, PyObject *f)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1536,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1537,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1540,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1543,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1544,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1547,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1549,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1550,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1553,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1554,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - list
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1562
    functionName: array_array_fromlist
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - PyList_Size
    - PyList_GET_ITEM
    - PyErr_SetString
    - array_resize
    - PyList_GET_SIZE
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromlist(arrayobject *self, PyObject *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1574,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1574,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1579,1
    - Dst: getarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1580,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1590
    functionName: array_array_tolist_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getarrayitem
    - PyList_SET_ITEM
    - PyList_New
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tolist_impl(arrayobject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1598,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1599,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1604,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1605,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1611,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1614,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1615,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1617,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1618,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1621,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1626
    functionName: frombytes
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyBuffer_Release
    - PyErr_SetString
    - array_resize
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frombytes(arrayobject *self, Py_buffer *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1643,1
    - Dst: frombytes
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1639
    functionDepth: 3
    functionLinenumber: 1639
    functionLinenumberEnd: 1647
    functionName: array_array_fromstring_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - frombytes
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromstring_impl(arrayobject *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: frombytes
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1663
    functionName: array_array_frombytes_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - frombytes
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1675,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1676,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1677,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1681
    functionName: array_array_tobytes_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tobytes_impl(arrayobject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1695,1
    - Dst: array_array_tobytes_impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1691
    functionDepth: 2
    functionLinenumber: 1691
    functionLinenumberEnd: 1699
    functionName: array_array_tostring_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_array_tobytes_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tostring_impl(arrayobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1723,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1729,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1730,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1732,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - ustr
    - ustr_length
    argTypes:
    - arrayobject*
    - Py_UNICODE*
    - Py_ssize_clean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1737
    functionName: array_array_fromunicode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - array_resize
    - Py_SIZE
    - memcpy
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray_array_fromunicode_impl(arrayobject *self, const
      Py_UNICODE *ustr,\n                             Py_ssize_clean_t ustr_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1756,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1760,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1749
    functionDepth: 1
    functionLinenumber: 1749
    functionLinenumberEnd: 1761
    functionName: array_array_tounicode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyUnicode_FromWideChar
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tounicode_impl(arrayobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1774,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1774,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1769
    functionDepth: 1
    functionLinenumber: 1769
    functionLinenumberEnd: 1776
    functionName: array_array___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___sizeof___impl(arrayobject *self)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1842,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1844,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1852,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1854,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 1
    argNames:
    - typecode
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1905
    functionName: typecode_to_mformat_code
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: enum machine_format_code
    signature: enum machine_format_code typecode_to_mformat_code(char typecode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1928,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1929,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1931,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1937,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1940,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1941,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1942,1
    - Dst: array_new
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - arraytype
    - typecode
    - items
    argTypes:
    - PyTypeObject*
    - char
    - PyObject*
    assertStmts:
    - condition: (arraytype != NULL)
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - condition: (items != NULL)
      pos:
        line_end: 1928
        line_start: 1928
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 1950
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1950
    functionName: make_array
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_FromOrdinal
    - assert
    - array_new
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_array(PyTypeObject *arraytype, char typecode, PyObject *items)'
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1979,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1980,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1982,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1985,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1986,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:1996,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2002,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2006,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2007,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2009,1
    - Dst: typecode_to_mformat_code
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2014,1
    - Dst: make_array
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2016,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2024,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2025,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2034,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2036,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2038,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2042,1
    - Dst: _PyFloat_Unpack4
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2045,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2048,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2056,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2058,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2060,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2064,1
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2065,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2067,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2070,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2077,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2078,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2078,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2087,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2088,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2088,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2112,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2114,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2134,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2146,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2149,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2158,1
    - Dst: make_array
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2163,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 5
    argNames:
    - module
    - arraytype
    - typecode
    - mformat_code
    - items
    argTypes:
    - PyObject*
    - PyTypeObject*
    - int
    - enum machine_format_code
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 1968
    functionDepth: 2
    functionLinenumber: 1968
    functionLinenumberEnd: 2165
    functionName: array__array_reconstructor_impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - PyType_IsSubtype
    - PyList_New
    - PyList_SET_ITEM
    - PyUnicode_DecodeUTF32
    - PyErr_Format
    - _PyFloat_Unpack8
    - PyFloat_FromDouble
    - Py_DECREF
    - PyErr_BadArgument
    - Py_TYPE
    - PyBytes_AS_STRING
    - Py_SIZE
    - PyUnicode_DecodeUTF16
    - PyBytes_Check
    - make_array
    - PyType_Check
    - _PyFloat_Unpack4
    - PyErr_SetString
    - typecode_to_mformat_code
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\narray__array_reconstructor_impl(PyObject *module, PyTypeObject
      *arraytype,\n                                int typecode,\n                                enum
      machine_format_code mformat_code,\n                                PyObject
      *items)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2187,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2188,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2191,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2197,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2203,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2207,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2208,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2211,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2216,1
    - Dst: typecode_to_mformat_code
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2219,1
    - Dst: array_array_tolist_impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2235,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2238,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2239,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2241,1
    - Dst: array_array_tobytes_impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2247,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2250,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2253,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2176
    functionDepth: 3
    functionLinenumber: 2176
    functionLinenumberEnd: 2255
    functionName: array_array___reduce_ex__
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyImport_ImportModule
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - Py_BuildValue
    - Py_INCREF
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - array_array_tobytes_impl
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyErr_SetString
    - array_array_tolist_impl
    - typecode_to_mformat_code
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___reduce_ex__(arrayobject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - closure
    argTypes:
    - arrayobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2257
    functionDepth: 1
    functionLinenumber: 2257
    functionLinenumberEnd: 2262
    functionName: array_get_typecode
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_get_typecode(arrayobject *a, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - closure
    argTypes:
    - arrayobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2268
    functionName: array_get_itemsize
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_get_itemsize(arrayobject *a, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2313,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2316,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2317,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2317,1
    - Dst: array_array_tounicode_impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2320,1
    - Dst: array_array_tolist_impl
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2322,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2327,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2328,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2328,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - a
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2306
    functionDepth: 3
    functionLinenumber: 2306
    functionLinenumberEnd: 2331
    functionName: array_repr
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - array_array_tounicode_impl
    - PyUnicode_FromFormat
    - Py_TYPE
    - Py_SIZE
    - array_array_tolist_impl
    - _PyType_Name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_repr(arrayobject *a)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2336,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2337,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2338,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2342,1
    - Dst: array_item
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2343,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2345,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2352,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2355,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2355,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2359,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2362,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2366,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2372,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2379,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2333
    functionDepth: 3
    functionLinenumber: 2333
    functionLinenumberEnd: 2392
    functionName: array_subscr
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - memcpy
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - array_item
    - newarrayobject
    - PyErr_SetString
    - Py_SIZE
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_subscr(arrayobject* self, PyObject* item)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2401,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2402,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2404,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2407,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2408,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2409,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2423,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2424,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2427,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2431,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2439,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2441,1
    - Dst: array_slice
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2445,1
    - Dst: array_ass_subscr
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2448,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2449,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2453,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2458,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2473,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2480,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2482,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2483,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2483,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2488,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2488,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2491,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2493,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2496,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2514,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2515,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2516,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2521,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2522,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2524,1
    - Dst: array_resize
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2526,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2526,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2535,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2543,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - arrayobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2394
    functionDepth: 3
    functionLinenumber: 2394
    functionLinenumberEnd: 2549
    functionName: array_ass_subscr
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - Py_DECREF
    - memcpy
    - PySlice_Check
    - PyErr_BadArgument
    - array_ass_subscr
    - PySlice_AdjustIndices
    - array_resize
    - PySlice_Unpack
    - array_slice
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - memmove
    - Py_SIZE
    - PyNumber_AsSsize_t
    - array_Check
    linkageType: ''
    returnType: int
    signature: int array_ass_subscr(arrayobject* self, PyObject* item, PyObject* value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2564,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2571,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2574,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - arrayobject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2560
    functionDepth: 1
    functionLinenumber: 2560
    functionLinenumberEnd: 2599
    functionName: array_buffer_getbuf
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int array_buffer_getbuf(arrayobject *self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - arrayobject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2605
    functionName: array_buffer_relbuf
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void array_buffer_relbuf(arrayobject *self, Py_buffer *view)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2632,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2635,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2638,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2644,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2645,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2649,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2651,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2657,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2658,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2659,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2660,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2661,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2662,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2664,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2681,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2682,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2683,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2683,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2684,1
    - Dst: newarrayobject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2688,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2692,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2698,1
    - Dst: setarrayitem
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2701,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2706,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2709,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2710,1
    - Dst: array_array_frombytes
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2715,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2718,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2720,1
    - Dst: PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2724,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2726,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2727,1
    - Dst: PyUnicode_GET_DATA_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2731,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2735,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2737,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2738,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2742,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2743,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2744,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2747,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2750,1
    - Dst: array_iter_extend
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2753,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2754,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2755,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2758,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2763,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 95
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2625
    functionDepth: 5
    functionLinenumber: 2625
    functionLinenumberEnd: 2766
    functionName: array_new
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 1
    functionsReached:
    - PyUnicode_GET_DATA_SIZE
    - PyMem_Realloc
    - array_iter_extend
    - PyObject_GetIter
    - array_array_frombytes
    - _PyArg_NoKeywords
    - PyTuple_Check
    - PyErr_Format
    - newarrayobject
    - PyArg_ParseTuple
    - Py_DECREF
    - PyList_Check
    - PyByteArray_Check
    - Py_SIZE
    - array_Check
    - memcpy
    - PySequence_GetItem
    - PyErr_NoMemory
    - PyUnicode_AsUnicode
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyList_GET_SIZE
    - PySys_Audit
    - setarrayitem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2891,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2892,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2896,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2900,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ao
    argTypes:
    - arrayobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2886
    functionDepth: 2
    functionLinenumber: 2886
    functionLinenumberEnd: 2906
    functionName: array_iter
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyObject_GC_New
    - PyObject_GC_Track
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_iter(arrayobject *ao)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2913,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2914,1
    - Dst: PyArrayIter_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2914,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2919,1
    - Dst: array_Check
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2919,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - it
    argTypes:
    - arrayiterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 2912
        line_start: 2912
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - condition: (PyArrayIter_Check(it))
      pos:
        line_end: 2913
        line_start: 2913
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - condition: (array_Check(ao))
      pos:
        line_end: 2918
        line_start: 2918
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    constantsTouched: []
    func_position:
      end: 2926
      start: 2908
    functionDepth: 1
    functionLinenumber: 2908
    functionLinenumberEnd: 2926
    functionName: arrayiter_next
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyArrayIter_Check
    - assert
    - Py_SIZE
    - array_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      arrayiter_next(arrayiterobject *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2931,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2932,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - arrayiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2934
      start: 2928
    functionDepth: 3
    functionLinenumber: 2928
    functionLinenumberEnd: 2934
    functionName: arrayiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void arrayiter_dealloc(arrayiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - arrayiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2936
    functionDepth: 1
    functionLinenumber: 2936
    functionLinenumberEnd: 2941
    functionName: arrayiter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int arrayiter_traverse(arrayiterobject *it, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2953,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2954,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2956,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - arrayiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2949
    functionDepth: 1
    functionLinenumber: 2949
    functionLinenumberEnd: 2959
    functionName: array_arrayiterator___reduce___impl
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___reduce___impl(arrayiterobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2974,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2975,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2979,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:2980,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - arrayiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2983
    functionName: array_arrayiterator___setstate__
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___setstate__(arrayiterobject *self, PyObject *state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3035,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3040,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3042,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3044,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3045,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3046,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3049,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3051,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3063,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3064,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3070
    functionName: array_modexec
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - Py_INCREF
    - PyModule_AddObject
    - Py_TYPE
    - PyUnicode_DecodeASCII
    - PyType_Ready
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int array_modexec(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Modules/arraymodule.c:3094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3091
    functionDepth: 1
    functionLinenumber: 3091
    functionLinenumberEnd: 3095
    functionName: PyInit_array
    functionSourceFile: /src/Python-3.8.3/Modules/arraymodule.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_array(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - byteCount
    argTypes:
    - SHA_INT32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: longReverse
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longReverse(SHA_INT32 *buffer, int byteCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:82,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SHAobject*
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: SHAcopy
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHAcopy(SHAobject *src, SHAobject *dest)
  - 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: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: ROR
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 172
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR(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: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: Ch
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: Maj
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x,y,z)
  - 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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: S
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(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: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: R
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 472
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(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: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Sigma0
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: Sigma1
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: Gamma0
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(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: Gamma1
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:131,1
    - Dst: longReverse
      Src: /src/Python-3.8.3/Modules/sha256module.c:133,1
    - Dst: Gamma1
      Src: /src/Python-3.8.3/Modules/sha256module.c:137,1
    - Dst: Gamma0
      Src: /src/Python-3.8.3/Modules/sha256module.c:137,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:150,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:151,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:152,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:153,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:154,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:155,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:156,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:157,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:158,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:159,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:160,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:161,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:162,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:163,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:164,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:165,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:166,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:167,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:168,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:169,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:170,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:171,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:172,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:173,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:174,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:175,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:176,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:177,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:178,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:179,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:180,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:181,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:182,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:183,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:184,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:185,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:186,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:187,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:188,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:189,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:190,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:191,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:192,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:193,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:194,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:195,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:196,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:197,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:198,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:199,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:200,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:201,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:202,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:203,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:204,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:205,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:206,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:207,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:208,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:209,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:210,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:211,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:212,1
    - Dst: RND
      Src: /src/Python-3.8.3/Modules/sha256module.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 76
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 222
    functionName: sha_transform
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - longReverse
    - memcpy
    - RND
    - Gamma0
    - Gamma1
    linkageType: ''
    returnType: void
    signature: void sha_transform(SHAobject *sha_info)
  - 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: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: RND
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RND(a,b,c,d,e,f,g,h,i,ki)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: sha_init
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha_init(SHAobject *sha_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - sha_info
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: sha224_init
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sha224_init(SHAobject *sha_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:282,1
    - Dst: sha_transform
      Src: /src/Python-3.8.3/Modules/sha256module.c:287,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:294,1
    - Dst: sha_transform
      Src: /src/Python-3.8.3/Modules/sha256module.c:297,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/sha256module.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - sha_info
    - buffer
    - count
    argTypes:
    - SHAobject*
    - SHA_BYTE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 301
    functionName: sha_update
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - sha_transform
    - memcpy
    linkageType: ''
    returnType: void
    signature: void sha_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha256module.c:316,1
    - Dst: sha_transform
      Src: /src/Python-3.8.3/Modules/sha256module.c:318,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha256module.c:319,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/sha256module.c:322,1
    - Dst: sha_transform
      Src: /src/Python-3.8.3/Modules/sha256module.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 2
    argNames:
    - digest
    - sha_info
    argTypes:
    - unsigned char[]
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 369
    functionName: sha_final
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - sha_transform
    - memset
    linkageType: ''
    returnType: void
    signature: void sha_final(unsigned char digest[SHA_DIGESTSIZE], SHAobject *sha_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/sha256module.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: newSHA224object
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHAobject
    signature: 'SHAobject *

      newSHA224object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/sha256module.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: newSHA256object
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHAobject
    signature: 'SHAobject *

      newSHA256object(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/sha256module.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: SHA_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void SHA_dealloc(PyObject *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha256module.c:416,1
    - Dst: newSHA256object
      Src: /src/Python-3.8.3/Modules/sha256module.c:417,1
    - Dst: newSHA224object
      Src: /src/Python-3.8.3/Modules/sha256module.c:420,1
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha256module.c:424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 426
    functionName: SHA256Type_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - SHAcopy
    - Py_TYPE
    - newSHA224object
    - newSHA256object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_copy_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha256module.c:441,1
    - Dst: sha_final
      Src: /src/Python-3.8.3/Modules/sha256module.c:442,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha256module.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: SHA256Type_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - sha_final
    - SHAcopy
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_digest_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAcopy
      Src: /src/Python-3.8.3/Modules/sha256module.c:460,1
    - Dst: sha_final
      Src: /src/Python-3.8.3/Modules/sha256module.c:461,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/sha256module.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHAobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 464
    functionName: SHA256Type_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - sha_final
    - SHAcopy
    - _Py_strhex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_hexdigest_impl(SHAobject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha256module.c:481,1
    - Dst: sha_update
      Src: /src/Python-3.8.3/Modules/sha256module.c:483,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 3
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: SHA256Type_update
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - sha_update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_update(SHAobject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/sha256module.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 501
    functionName: SHA256_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256_get_block_size(PyObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha256module.c:507,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/sha256module.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: SHA256_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256_get_name(PyObject *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha256module.c:616,1
    - Dst: newSHA256object::newSHA256object
      Src: /src/Python-3.8.3/Modules/sha256module.c:618,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:620,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/sha256module.c:626,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:629,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 638
    functionName: _sha256_sha256_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyErr_Occurred
    - PyBuffer_Release
    - newSHA256object::newSHA256object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha256_sha256_impl(PyObject *module, PyObject *string)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/sha256module.c:656,1
    - Dst: newSHA224object::newSHA224object
      Src: /src/Python-3.8.3/Modules/sha256module.c:658,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:660,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/sha256module.c:666,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:669,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/sha256module.c:674,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 678
    functionName: _sha256_sha224_impl
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - newSHA224object::newSHA224object
    - PyErr_Occurred
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha256_sha224_impl(PyObject *module, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 693
    functionName: insint
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: insint(n,v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha256module.c:712,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/sha256module.c:713,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/sha256module.c:715,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/sha256module.c:716,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/sha256module.c:719,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/sha256module.c:723,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/sha256module.c:724,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/sha256module.c:725,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/sha256module.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 729
    functionName: PyInit__sha256
    functionSourceFile: /src/Python-3.8.3/Modules/sha256module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetConfigsAsDict
      Src: /src/Python-3.8.3/Modules/_testinternalcapi.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(args)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: get_configs
    functionSourceFile: /src/Python-3.8.3/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - _Py_GetConfigsAsDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_configs(PyObject *self, PyObject *Py_UNUSED(args))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testinternalcapi.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: PyInit__testinternalcapi
    functionSourceFile: /src/Python-3.8.3/Modules/_testinternalcapi.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testinternalcapi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:60,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: _PyFloat_FromPyTime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyTime_AsSecondsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyFloat_FromPyTime(_PyTime_t t)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetSystemClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:68,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: time_time
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - _PyTime_GetSystemClock
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetSystemClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:82,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: time_time_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetSystemClock
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_time_ns(PyObject *self, PyObject *unused)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:113,1
    - Dst: clock
      Src: /src/Python-3.8.3/Modules/timemodule.c:126,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:128,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Modules/timemodule.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 135
    functionName: _PyTime_GetClockWithInfo
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_MulDiv
    - clock
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetClockWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetPerfCounterWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:142,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: perf_counter
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetPerfCounterWithInfo
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      perf_counter(_Py_clock_info_t *info)'
  - BBCount: 131
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:157,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:160,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:165,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:167,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:170,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:173,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:186,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:190,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:192,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:195,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:198,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:201,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:217,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:220,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:223,1
    - Dst: clock_settime
      Src: /src/Python-3.8.3/Modules/timemodule.c:226,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:228,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:234,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:248,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:252,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:255,1
    - Dst: clock_settime
      Src: /src/Python-3.8.3/Modules/timemodule.c:259,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:261,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:267,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:281,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:284,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:286,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:290,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:293,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:306,1
    - Dst: pthread_getcpuclockid
      Src: /src/Python-3.8.3/Modules/timemodule.c:309,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:312,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/timemodule.c:316,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:318,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:321,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:331,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:334,1
    - Dst: pysleep
      Src: /src/Python-3.8.3/Modules/timemodule.c:338,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:343,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/timemodule.c:388,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:394,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:395,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:396,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:397,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:398,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:399,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:400,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:401,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:402,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:404,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:405,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:406,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:408,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:409,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:410,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/timemodule.c:410,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:414,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:431,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:434,1
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/Python-3.8.3/Modules/timemodule.c:437,1
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:450,1
    - Dst: _PyTime_gmtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:454,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:457,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:459,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:476,1
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:492,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:494,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:497,1
    - Dst: strftime
      Src: /src/Python-3.8.3/Modules/timemodule.c:503,1
    - Dst: timegm
      Src: /src/Python-3.8.3/Modules/timemodule.c:504,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:505,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:514,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/timemodule.c:529,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/timemodule.c:531,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:532,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:544,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/timemodule.c:553,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:555,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/timemodule.c:557,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:565,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:568,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:571,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:576,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:579,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:627,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:635,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:645,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:651,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/timemodule.c:710,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:715,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:719,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:720,1
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:723,1
    - Dst: checktm
      Src: /src/Python-3.8.3/Modules/timemodule.c:725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:732,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/timemodule.c:747,1
    - Dst: PyUnicode_EncodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:753,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/timemodule.c:756,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/timemodule.c:761,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/timemodule.c:763,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:772,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/timemodule.c:777,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/timemodule.c:779,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:786,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:788,1
    - Dst: time_strlen
      Src: /src/Python-3.8.3/Modules/timemodule.c:794,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/timemodule.c:800,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/timemodule.c:802,1
    - Dst: format_time
      Src: /src/Python-3.8.3/Modules/timemodule.c:809,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:814,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:815,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/timemodule.c:826,1
    - Dst: PyUnicode_DecodeLocaleAndSize
      Src: /src/Python-3.8.3/Modules/timemodule.c:828,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:830,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:833,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:838,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:845,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/timemodule.c:858,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/timemodule.c:860,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/timemodule.c:864,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:865,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/timemodule.c:870,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:871,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:876,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/timemodule.c:896,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:911,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:914,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:915,1
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:918,1
    - Dst: checktm
      Src: /src/Python-3.8.3/Modules/timemodule.c:920,1
    - Dst: _asctime
      Src: /src/Python-3.8.3/Modules/timemodule.c:924,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:927,1
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:939,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:941,1
    - Dst: _asctime
      Src: /src/Python-3.8.3/Modules/timemodule.c:943,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:946,1
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:960,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:974,1
    - Dst: mktime
      Src: /src/Python-3.8.3/Modules/timemodule.c:996,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1005,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:1020,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1023,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1040,1
    - Dst: tzset
      Src: /src/Python-3.8.3/Modules/timemodule.c:1045,1
    - Dst: init_timezone
      Src: /src/Python-3.8.3/Modules/timemodule.c:1048,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1051,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:1052,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1058,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1075,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1076,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1079,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1087,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1088,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1091,1
    - Dst: perf_counter
      Src: /src/Python-3.8.3/Modules/timemodule.c:1099,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1102,1
    - Dst: _PyTime_GetPerfCounter
      Src: /src/Python-3.8.3/Modules/timemodule.c:1110,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1111,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1114,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/timemodule.c:1129,1
    - Dst: GetProcessTimes
      Src: /src/Python-3.8.3/Modules/timemodule.c:1130,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/timemodule.c:1133,1
    - Dst: _PyTime_FromNanoseconds
      Src: /src/Python-3.8.3/Modules/timemodule.c:1153,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1170,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:1176,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1177,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:1183,1
    - Dst: getrusage
      Src: /src/Python-3.8.3/Modules/timemodule.c:1194,1
    - Dst: _PyTime_FromTimeval
      Src: /src/Python-3.8.3/Modules/timemodule.c:1204,1
    - Dst: _PyTime_FromTimeval
      Src: /src/Python-3.8.3/Modules/timemodule.c:1207,1
    - Dst: times
      Src: /src/Python-3.8.3/Modules/timemodule.c:1221,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/timemodule.c:1227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1242,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Modules/timemodule.c:1261,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Modules/timemodule.c:1262,1
    - Dst: _PyTime_GetClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1271,1
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1279,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1282,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1285,1
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1294,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1297,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1300,1
    - Dst: GetCurrentThread
      Src: /src/Python-3.8.3/Modules/timemodule.c:1318,1
    - Dst: GetThreadTimes
      Src: /src/Python-3.8.3/Modules/timemodule.c:1319,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/timemodule.c:1322,1
    - Dst: _PyTime_FromNanoseconds
      Src: /src/Python-3.8.3/Modules/timemodule.c:1342,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1356,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1357,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:1365,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1366,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:1372,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1384,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1387,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1390,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1399,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1402,1
    - Dst: PyDoc_STRVAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1405,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:1421,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1437,1
    - Dst: _PyTime_GetSystemClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1438,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1442,1
    - Dst: _PyTime_GetMonotonicClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1443,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1447,1
    - Dst: _PyTime_GetPerfCounterWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1448,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1452,1
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1453,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1458,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1459,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1465,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/timemodule.c:1469,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1474,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1475,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1479,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1484,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:1485,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1489,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1492,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1494,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:1495,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1499,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1502,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1504,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1505,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:1506,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1510,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/timemodule.c:1513,1
    - Dst: _PyNamespace_New
      Src: /src/Python-3.8.3/Modules/timemodule.c:1515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1520,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1521,1
    CyclomaticComplexity: 187
    EdgeCount: 187
    ICount: 627
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (info.resolution > 0.0)
      pos:
        line_end: 1503
        line_start: 1503
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    - condition: (info.implementation != NULL)
      pos:
        line_end: 1473
        line_start: 1473
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    - condition: (info.monotonic != -1)
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    - condition: (info.adjustable != -1)
      pos:
        line_end: 1493
        line_start: 1493
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    - condition: (info.resolution <= 1.0)
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 1523
      start: 149
    functionDepth: 3
    functionLinenumber: 149
    functionLinenumberEnd: 1523
    functionName: time_clock_gettime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - time_strlen
    - _Py_IDENTIFIER
    - pthread_getcpuclockid
    - _PyTime_FromTimespec
    - _asctime
    - pysleep
    - PyUnicode_AsWideCharString
    - PyStructSequence_SET_ITEM
    - _PyTime_gmtime
    - _PyTime_GetProcessTimeWithInfo
    - clock_settime
    - PyErr_NoMemory
    - _PyTime_GetPerfCounterWithInfo
    - PyDoc_STRVAR
    - _PyTime_FromTimeval
    - _PyObject_GetAttrId
    - PyUnicode_AsUTF8
    - wcschr
    - _PyTime_FromNanoseconds
    - PyBool_FromLong
    - _PyTime_AsTimespec
    - _PyTime_FromNanosecondsObject
    - strftime
    - _PyTime_GetThreadTimeWithInfo
    - parse_time_t_args
    - clock_getres
    - _PyTime_GetMonotonicClock
    - PyTuple_Check
    - PyUnicode_DecodeLocaleAndSize
    - PyArg_UnpackTuple
    - assert
    - PyUnicode_FromString
    - Py_DECREF
    - GetThreadTimes
    - PyImport_ImportModuleNoBlock
    - PyMem_Free
    - _PyTime_MulDiv
    - GetCurrentProcess
    - SET
    - PyUnicode_DecodeLocale
    - PyErr_SetString
    - format_time
    - checktm
    - PyDict_SetItemString
    - _PyNamespace_New
    - PyStructSequence_GET_ITEM
    - PyLong_AsLong
    - Py_CLEAR
    - perf_counter
    - PyStructSequence_New
    - timegm
    - tzset
    - PyErr_Occurred
    - PyUnicode_FromWideChar
    - _PyTime_ObjectToTime_t
    - mktime
    - _PyTime_FromSecondsObject
    - PyFloat_FromDouble
    - _PyTime_GetClockWithInfo
    - PyArg_ParseTuple
    - PyErr_SetFromWindowsErr
    - _PyTime_localtime
    - Py_TYPE
    - __msan_unpoison
    - _PyTime_GetMonotonicClockWithInfo
    - getrusage
    - init_timezone
    - PyDict_New
    - _PyTime_GetPerfCounter
    - GetCurrentThread
    - PyMem_Malloc
    - strcmp
    - time
    - PyUnicode_EncodeLocale
    - PyUnicode_FromFormat
    - _PyLong_FromTime_t
    - _PyTime_GetSystemClockWithInfo
    - clock_gettime
    - Py_XDECREF
    - memset
    - PyErr_SetFromErrno
    - GetProcessTimes
    - PyBytes_AS_STRING
    - PyObject_Call
    - strchr
    - sysconf
    - times
    - _PyTime_AsNanosecondsObject
    - gettmarg
    - _PyFloat_FromPyTime
    - tmtotuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:186,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:190,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:192,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:195,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 199
    functionName: time_clock_gettime_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - PyErr_SetFromErrno
    - _PyTime_FromTimespec
    - PyArg_ParseTuple
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_gettime_ns(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:217,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:220,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:223,1
    - Dst: clock_settime
      Src: /src/Python-3.8.3/Modules/timemodule.c:226,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 232
    functionName: time_clock_settime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimespec
    - clock_settime
    - PyErr_SetFromErrno
    - _PyTime_FromSecondsObject
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_settime(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:248,1
    - Dst: _PyTime_FromNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:252,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:255,1
    - Dst: clock_settime
      Src: /src/Python-3.8.3/Modules/timemodule.c:259,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 265
    functionName: time_clock_settime_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimespec
    - _PyTime_FromNanosecondsObject
    - clock_settime
    - PyErr_SetFromErrno
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_settime_ns(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:281,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:284,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:286,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: time_clock_getres
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyFloat_FromDouble
    - PyArg_ParseTuple
    - clock_getres
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_clock_getres(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:306,1
    - Dst: pthread_getcpuclockid
      Src: /src/Python-3.8.3/Modules/timemodule.c:309,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:312,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/timemodule.c:316,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: time_pthread_getcpuclockid
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - __msan_unpoison
    - PyErr_SetFromErrno
    - pthread_getcpuclockid
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_pthread_getcpuclockid(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:331,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:334,1
    - Dst: pysleep
      Src: /src/Python-3.8.3/Modules/timemodule.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: time_sleep
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSecondsObject
    - PyErr_SetString
    - pysleep
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_sleep(PyObject *self, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/timemodule.c:388,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:394,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:395,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:396,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:397,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:398,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:399,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:400,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:401,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:402,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:404,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:405,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/timemodule.c:406,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:408,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:409,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:410,1
    - Dst: _PyLong_FromTime_t
      Src: /src/Python-3.8.3/Modules/timemodule.c:410,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - p
    - zone
    - gmtoff
    argTypes:
    - struct tm*
    - char*
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 419
    functionName: tmtotuple
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - SET
    - PyUnicode_DecodeLocale
    - _PyLong_FromTime_t
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntmtotuple(struct tm *p\n#ifndef HAVE_STRUCT_TM_TM_ZONE\n
      \       , const char *zone, time_t gmtoff\n#endif\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: SET
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(i,val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:431,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:434,1
    - Dst: _PyTime_ObjectToTime_t
      Src: /src/Python-3.8.3/Modules/timemodule.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - args
    - format
    - pwhen
    argTypes:
    - PyObject*
    - char*
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 442
    functionName: parse_time_t_args
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - _PyTime_ObjectToTime_t
    - PyArg_ParseTuple
    - time
    linkageType: ''
    returnType: int
    signature: int parse_time_t_args(PyObject *args, const char *format, time_t *pwhen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:450,1
    - Dst: _PyTime_gmtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:454,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:457,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 461
    functionName: time_gmtime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - tmtotuple
    - _PyTime_gmtime
    - parse_time_t_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_gmtime(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: timegm
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t timegm(struct tm *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:492,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:494,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:497,1
    - Dst: strftime
      Src: /src/Python-3.8.3/Modules/timemodule.c:503,1
    - Dst: timegm
      Src: /src/Python-3.8.3/Modules/timemodule.c:504,1
    - Dst: tmtotuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 508
    functionName: time_localtime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - strftime
    - _PyTime_localtime
    - parse_time_t_args
    - tmtotuple
    - timegm
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_localtime(PyObject *self, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/timemodule.c:529,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/timemodule.c:531,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:532,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:544,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/timemodule.c:553,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:555,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/timemodule.c:557,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:565,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:568,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:571,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/timemodule.c:576,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/timemodule.c:578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:579,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - args
    - p
    - format
    argTypes:
    - PyObject*
    - struct tm*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 585
    functionName: gettmarg
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyUnicode_AsUTF8
    - PyTuple_Check
    - Py_TYPE
    - PyErr_SetString
    - strcmp
    - PyArg_ParseTuple
    - PyStructSequence_GET_ITEM
    - memset
    linkageType: ''
    returnType: int
    signature: int gettmarg(PyObject *args, struct tm *p, const char *format)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:627,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:635,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:645,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:651,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 655
    functionName: checktm
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int checktm(struct tm* buf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/timemodule.c:710,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:715,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:719,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:720,1
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:723,1
    - Dst: checktm
      Src: /src/Python-3.8.3/Modules/timemodule.c:725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:732,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/timemodule.c:747,1
    - Dst: PyUnicode_EncodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:753,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/timemodule.c:756,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/timemodule.c:761,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/timemodule.c:763,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:772,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/timemodule.c:777,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Modules/timemodule.c:779,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:786,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:788,1
    - Dst: time_strlen
      Src: /src/Python-3.8.3/Modules/timemodule.c:794,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/timemodule.c:800,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/timemodule.c:802,1
    - Dst: format_time
      Src: /src/Python-3.8.3/Modules/timemodule.c:809,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:814,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:815,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/timemodule.c:826,1
    - Dst: PyUnicode_DecodeLocaleAndSize
      Src: /src/Python-3.8.3/Modules/timemodule.c:828,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:830,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:833,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/timemodule.c:836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:838,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 71
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 841
    functionName: time_strftime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - time_strlen
    - time
    - PyUnicode_EncodeLocale
    - wcschr
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocaleAndSize
    - PyArg_ParseTuple
    - memset
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - _PyTime_localtime
    - checktm
    - PyMem_Free
    - PyBytes_AS_STRING
    - strchr
    - gettmarg
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    - format_time
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strftime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/timemodule.c:858,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/timemodule.c:860,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/timemodule.c:864,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:865,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/timemodule.c:870,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 873
    functionName: time_strptime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyImport_ImportModuleNoBlock
    - _Py_IDENTIFIER
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_strptime(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/timemodule.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeptr
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 903
    functionName: _asctime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asctime(struct tm *timeptr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:911,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:914,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:915,1
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:918,1
    - Dst: checktm
      Src: /src/Python-3.8.3/Modules/timemodule.c:920,1
    - Dst: _asctime
      Src: /src/Python-3.8.3/Modules/timemodule.c:924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 925
    functionName: time_asctime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - gettmarg
    - time
    - _PyTime_localtime
    - PyArg_UnpackTuple
    - checktm
    - _asctime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_asctime(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_time_t_args
      Src: /src/Python-3.8.3/Modules/timemodule.c:939,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:941,1
    - Dst: _asctime
      Src: /src/Python-3.8.3/Modules/timemodule.c:943,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 944
    functionName: time_ctime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_localtime
    - _asctime
    - parse_time_t_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_ctime(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gettmarg
      Src: /src/Python-3.8.3/Modules/timemodule.c:960,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:974,1
    - Dst: mktime
      Src: /src/Python-3.8.3/Modules/timemodule.c:996,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1005,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/timemodule.c:1020,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - tm_tuple
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 1021
    functionName: time_mktime
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - gettmarg
    - PyFloat_FromDouble
    - PyErr_SetString
    - mktime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_mktime(PyObject *self, PyObject *tm_tuple)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1040,1
    - Dst: tzset
      Src: /src/Python-3.8.3/Modules/timemodule.c:1045,1
    - Dst: init_timezone
      Src: /src/Python-3.8.3/Modules/timemodule.c:1048,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1051,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1056
    functionName: time_tzset
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - tzset
    - PyErr_Occurred
    - Py_DECREF
    - init_timezone
    - PyImport_ImportModuleNoBlock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_tzset(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1075,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    functionName: time_monotonic
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FromPyTime
    - _PyTime_GetMonotonicClock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_monotonic(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1087,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1089
    functionName: time_monotonic_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetMonotonicClock
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_monotonic_ns(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perf_counter
      Src: /src/Python-3.8.3/Modules/timemodule.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1096
    functionDepth: 3
    functionLinenumber: 1096
    functionLinenumberEnd: 1100
    functionName: time_perf_counter
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - perf_counter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_perf_counter(PyObject *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetPerfCounter
      Src: /src/Python-3.8.3/Modules/timemodule.c:1110,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1112
    functionName: time_perf_counter_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetPerfCounter
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_perf_counter_ns(PyObject *self, PyObject *unused)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/timemodule.c:1129,1
    - Dst: GetProcessTimes
      Src: /src/Python-3.8.3/Modules/timemodule.c:1130,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/timemodule.c:1133,1
    - Dst: _PyTime_FromNanoseconds
      Src: /src/Python-3.8.3/Modules/timemodule.c:1153,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1170,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:1176,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1177,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:1183,1
    - Dst: getrusage
      Src: /src/Python-3.8.3/Modules/timemodule.c:1194,1
    - Dst: _PyTime_FromTimeval
      Src: /src/Python-3.8.3/Modules/timemodule.c:1204,1
    - Dst: _PyTime_FromTimeval
      Src: /src/Python-3.8.3/Modules/timemodule.c:1207,1
    - Dst: times
      Src: /src/Python-3.8.3/Modules/timemodule.c:1221,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/timemodule.c:1227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1242,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Modules/timemodule.c:1261,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Modules/timemodule.c:1262,1
    - Dst: _PyTime_GetClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1271,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 84
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1273
    functionName: _PyTime_GetProcessTimeWithInfo
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - times
    - _PyTime_MulDiv
    - clock_gettime
    - getrusage
    - _PyTime_FromTimeval
    - PyErr_SetFromErrno
    - clock_getres
    - GetCurrentProcess
    - _PyTime_FromNanoseconds
    - GetProcessTimes
    - PyErr_SetString
    - _PyTime_GetClockWithInfo
    - _PyTime_FromTimespec
    - sysconf
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetProcessTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t
      *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1279,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1275
    functionDepth: 3
    functionLinenumber: 1275
    functionLinenumberEnd: 1283
    functionName: time_process_time
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetProcessTimeWithInfo
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_process_time(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1294,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1290
    functionDepth: 3
    functionLinenumber: 1290
    functionLinenumberEnd: 1298
    functionName: time_process_time_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetProcessTimeWithInfo
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_process_time_ns(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThread
      Src: /src/Python-3.8.3/Modules/timemodule.c:1318,1
    - Dst: GetThreadTimes
      Src: /src/Python-3.8.3/Modules/timemodule.c:1319,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/timemodule.c:1322,1
    - Dst: _PyTime_FromNanoseconds
      Src: /src/Python-3.8.3/Modules/timemodule.c:1342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1345
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - _PyTime_FromNanoseconds
    - GetCurrentThread
    - PyErr_SetFromWindowsErr
    - GetThreadTimes
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1356,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1357,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Modules/timemodule.c:1365,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1366,1
    - Dst: _PyTime_FromTimespec
      Src: /src/Python-3.8.3/Modules/timemodule.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1376
    functionName: _PyTime_GetThreadTimeWithInfo
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 1
    functionsReached:
    - clock_gettime
    - _PyTime_FromTimespec
    - PyErr_SetFromErrno
    - clock_getres
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1384,1
    - Dst: _PyFloat_FromPyTime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1380
    functionDepth: 2
    functionLinenumber: 1380
    functionLinenumberEnd: 1388
    functionName: time_thread_time
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetThreadTimeWithInfo
    - _PyFloat_FromPyTime
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_thread_time(PyObject *self, PyObject *unused)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1399,1
    - Dst: _PyTime_AsNanosecondsObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1403
    functionName: time_thread_time_ns
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetThreadTimeWithInfo
    - _PyTime_AsNanosecondsObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_thread_time_ns(PyObject *self, PyObject *unused)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/timemodule.c:1421,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1437,1
    - Dst: _PyTime_GetSystemClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1438,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1442,1
    - Dst: _PyTime_GetMonotonicClockWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1443,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1447,1
    - Dst: _PyTime_GetPerfCounterWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1448,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1452,1
    - Dst: _PyTime_GetProcessTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1453,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/timemodule.c:1458,1
    - Dst: _PyTime_GetThreadTimeWithInfo
      Src: /src/Python-3.8.3/Modules/timemodule.c:1459,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1465,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1413
    functionDepth: 3
    functionLinenumber: 1413
    functionLinenumberEnd: 1467
    functionName: time_get_clock_info
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetMonotonicClockWithInfo
    - _PyTime_GetPerfCounterWithInfo
    - _PyTime_GetThreadTimeWithInfo
    - _PyTime_GetProcessTimeWithInfo
    - PyErr_SetString
    - _PyTime_GetSystemClockWithInfo
    - strcmp
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      time_get_clock_info(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/timemodule.c:1535,1
    - Dst: tzset
      Src: /src/Python-3.8.3/Modules/timemodule.c:1537,1
    - Dst: strftime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - zone
    - n
    - p
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1540
    functionName: get_zone
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - tzset
    - strftime
    - strncpy
    linkageType: ''
    returnType: void
    signature: void get_zone(char *zone, int n, struct tm *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: timegm
      Src: /src/Python-3.8.3/Modules/timemodule.c:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1550
    functionName: get_gmtoff
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - timegm
    linkageType: ''
    returnType: time_t
    signature: time_t get_gmtoff(time_t t, struct tm *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/timemodule.c:1556,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:1556,1
    - Dst: tzset
      Src: /src/Python-3.8.3/Modules/timemodule.c:1576,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1577,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1579,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1581,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1583,1
    - Dst: GetTimeZoneInformation
      Src: /src/Python-3.8.3/Modules/timemodule.c:1586,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/timemodule.c:1587,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/timemodule.c:1591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1593,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:1597,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/timemodule.c:1601,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1603,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/timemodule.c:1607,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1611,1
    - Dst: time
      Src: /src/Python-3.8.3/Modules/timemodule.c:1618,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1619,1
    - Dst: get_zone
      Src: /src/Python-3.8.3/Modules/timemodule.c:1620,1
    - Dst: get_gmtoff
      Src: /src/Python-3.8.3/Modules/timemodule.c:1621,1
    - Dst: _PyTime_localtime
      Src: /src/Python-3.8.3/Modules/timemodule.c:1624,1
    - Dst: get_zone
      Src: /src/Python-3.8.3/Modules/timemodule.c:1625,1
    - Dst: get_gmtoff
      Src: /src/Python-3.8.3/Modules/timemodule.c:1626,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1635,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1644,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1645,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1646,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/timemodule.c:1647,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1649,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1650,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1651,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/timemodule.c:1652,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1657,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:1660,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 63
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1555
        line_start: 1555
        source_file: /src/Python-3.8.3/Modules/timemodule.c
    constantsTouched: []
    func_position:
      end: 1664
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1664
    functionName: init_timezone
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 2
    functionsReached:
    - get_gmtoff
    - PyModule_AddIntConstant
    - tzset
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - time
    - get_zone
    - _PyTime_localtime
    - PyModule_AddObject
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocale
    - PyErr_SetString
    - assert
    - GetTimeZoneInformation
    linkageType: ''
    returnType: int
    signature: int init_timezone(PyObject *m)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/timemodule.c:1756,1
    - Dst: init_timezone
      Src: /src/Python-3.8.3/Modules/timemodule.c:1761,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1768,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1771,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1774,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1777,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1780,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1783,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1786,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1789,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1792,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/timemodule.c:1795,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/timemodule.c:1801,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/timemodule.c:1805,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/timemodule.c:1806,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/timemodule.c:1807,1
    - Dst: gmtime_r
      Src: /src/Python-3.8.3/Modules/timemodule.c:1813,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/timemodule.c:1817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1752
    functionDepth: 3
    functionLinenumber: 1752
    functionLinenumberEnd: 1821
    functionName: PyInit_time
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - gmtime_r
    - PyStructSequence_InitType2
    - PyErr_Occurred
    - Py_INCREF
    - init_timezone
    - PyModule_Create
    - PyModule_AddObject
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_time(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1841,1
    - Dst: _PyTime_AsTimeval
      Src: /src/Python-3.8.3/Modules/timemodule.c:1845,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/timemodule.c:1849,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/timemodule.c:1856,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/timemodule.c:1860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/timemodule.c:1862,1
    - Dst: _PyOS_IsMainThread
      Src: /src/Python-3.8.3/Modules/timemodule.c:1871,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Modules/timemodule.c:1878,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/timemodule.c:1879,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Modules/timemodule.c:1882,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/timemodule.c:1890,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/timemodule.c:1893,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - secs
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1901
    functionName: pysleep
    functionSourceFile: /src/Python-3.8.3/Modules/timemodule.c
    functionUses: 2
    functionsReached:
    - select
    - WaitForSingleObjectEx
    - _PyTime_AsTimeval
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _PyTime_GetMonotonicClock
    - ResetEvent
    - PyErr_SetString
    - _PyOS_IsMainThread
    - _PyTime_AsMilliseconds
    - _PyOS_SigintEvent
    linkageType: ''
    returnType: int
    signature: int pysleep(_PyTime_t secs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sl
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: RESTORE_LOCALE
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESTORE_LOCALE(sl)
  - 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: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: completion_matches
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: completion_matches(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: readline_state
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: readline_state(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_state
      Src: /src/Python-3.8.3/Modules/readline.c:95,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:96,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:97,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:98,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:99,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:100,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: readline_clear
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - readline_state
    linkageType: ''
    returnType: int
    signature: int readline_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_state
      Src: /src/Python-3.8.3/Modules/readline.c:108,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:109,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:110,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:111,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:112,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:113,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/readline.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: readline_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - readline_state
    linkageType: ''
    returnType: int
    signature: int readline_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readline_clear
      Src: /src/Python-3.8.3/Modules/readline.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: readline_free
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - readline_clear
    linkageType: ''
    returnType: void
    signature: void readline_free(void *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeLocale
      Src: /src/Python-3.8.3/Modules/readline.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: encode
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 8
    functionsReached:
    - PyUnicode_EncodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encode(PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Modules/readline.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: decode
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 3
    functionsReached:
    - PyUnicode_DecodeLocale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode(const char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:150,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/readline.c:156,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/readline.c:156,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:158,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/readline.c:159,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/readline.c:161,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:162,1
    - Dst: rl_parse_and_bind
      Src: /src/Python-3.8.3/Modules/readline.c:163,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/readline.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: parse_and_bind
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 1
    functionsReached:
    - strcpy
    - encode
    - Py_DECREF
    - PyErr_NoMemory
    - PyBytes_GET_SIZE
    - rl_parse_and_bind
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parse_and_bind(PyObject *self, PyObject *string)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:179,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/readline.c:182,1
    - Dst: rl_read_init_file
      Src: /src/Python-3.8.3/Modules/readline.c:184,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/readline.c:184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:185,1
    - Dst: rl_read_init_file
      Src: /src/Python-3.8.3/Modules/readline.c:187,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/readline.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 191
    functionName: read_init_file
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - rl_read_init_file
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - PyArg_ParseTuple
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_init_file(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:205,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/readline.c:208,1
    - Dst: read_history
      Src: /src/Python-3.8.3/Modules/readline.c:210,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/readline.c:210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:211,1
    - Dst: read_history
      Src: /src/Python-3.8.3/Modules/readline.c:213,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/readline.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: read_history_file
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - PyArg_ParseTuple
    - read_history
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_history_file(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:234,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/readline.c:237,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/readline.c:239,1
    - Dst: write_history
      Src: /src/Python-3.8.3/Modules/readline.c:244,1
    - Dst: history_truncate_file
      Src: /src/Python-3.8.3/Modules/readline.c:246,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:247,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/readline.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 252
    functionName: write_history_file
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - write_history
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - history_truncate_file
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      write_history_file(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:270,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/readline.c:273,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/readline.c:275,1
    - Dst: append_history
      Src: /src/Python-3.8.3/Modules/readline.c:280,1
    - Dst: history_truncate_file
      Src: /src/Python-3.8.3/Modules/readline.c:282,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:283,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/readline.c:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 288
    functionName: append_history_file
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyBytes_AsString
    - append_history
    - history_truncate_file
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      append_history_file(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: set_history_length
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_history_length(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: get_history_length
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_history_length(PyObject *self, PyObject *noarg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/readline.c:337,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:338,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:341,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/readline.c:343,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/readline.c:344,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/readline.c:345,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/readline.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - funcname
    - hook_var
    - args
    argTypes:
    - char*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 354
    functionName: set_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyOS_snprintf
    - PyCallable_Check
    - Py_INCREF
    - Py_XSETREF
    - PyErr_Format
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_hook(const char *funcname, PyObject **hook_var, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hook
      Src: /src/Python-3.8.3/Modules/readline.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 375
    functionName: set_completion_display_matches_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_completion_display_matches_hook(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hook
      Src: /src/Python-3.8.3/Modules/readline.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: set_startup_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_startup_hook(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hook
      Src: /src/Python-3.8.3/Modules/readline.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: set_pre_input_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_pre_input_hook(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 422
    functionName: get_completion_type
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_completion_type(PyObject *self, PyObject *noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/readline.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: get_begidx
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_begidx(PyObject *self, PyObject *noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/readline.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: get_endidx
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_endidx(PyObject *self, PyObject *noarg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:463,1
    - Dst: strdup
      Src: /src/Python-3.8.3/Modules/readline.c:470,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:470,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:471,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:473,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/readline.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: set_completer_delims
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - strdup
    - encode
    - Py_DECREF
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    - free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_completer_delims(PyObject *self, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_history_entry
      Src: /src/Python-3.8.3/Modules/readline.c:498,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: _py_free_history_entry
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    - free_history_entry
    linkageType: ''
    returnType: void
    signature: void _py_free_history_entry(HIST_ENTRY *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:510,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:512,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - entry
    argTypes:
    - HIST_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 514
    functionName: _py_free_history_entry
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _py_free_history_entry(HIST_ENTRY *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:524,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/readline.c:527,1
    - Dst: remove_history
      Src: /src/Python-3.8.3/Modules/readline.c:531,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/readline.c:533,1
    - Dst: _py_free_history_entry
      Src: /src/Python-3.8.3/Modules/readline.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 541
    functionName: py_remove_history
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - _py_free_history_entry
    - remove_history
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_remove_history(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:555,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/readline.c:560,1
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:564,1
    - Dst: replace_history_entry
      Src: /src/Python-3.8.3/Modules/readline.c:568,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:568,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:569,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/readline.c:571,1
    - Dst: _py_free_history_entry
      Src: /src/Python-3.8.3/Modules/readline.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 579
    functionName: py_replace_history
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - encode
    - Py_DECREF
    - _py_free_history_entry
    - replace_history_entry
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_replace_history(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:590,1
    - Dst: add_history
      Src: /src/Python-3.8.3/Modules/readline.c:594,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 597
    functionName: py_add_history
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - add_history
    - encode
    - Py_DECREF
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_add_history(PyObject *self, PyObject *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 615
    functionName: py_set_auto_history
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_set_auto_history(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: get_completer_delims
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_completer_delims(PyObject *self, PyObject *noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_hook
      Src: /src/Python-3.8.3/Modules/readline.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: set_completer
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - set_hook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_completer(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/readline.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - noargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: get_completer
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_completer(PyObject *self, PyObject *noargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: history_get_history_state
      Src: /src/Python-3.8.3/Modules/readline.c:674,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: _py_get_history_length
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - free
    - history_get_history_state
    linkageType: ''
    returnType: int
    signature: int _py_get_history_length(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/readline.c:693,1
    - Dst: _py_get_history_length
      Src: /src/Python-3.8.3/Modules/readline.c:700,1
    - Dst: history_get
      Src: /src/Python-3.8.3/Modules/readline.c:714,1
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 719
    functionName: get_history_item
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - _py_get_history_length
    - history_get
    - decode
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_history_item(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:731,1
    - Dst: _py_get_history_length
      Src: /src/Python-3.8.3/Modules/readline.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 732
    functionName: get_current_history_length
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _py_get_history_length
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_current_history_length(PyObject *self, PyObject *noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: get_line_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_line_buffer(PyObject *self, PyObject *noarg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_history
      Src: /src/Python-3.8.3/Modules/readline.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: py_clear_history
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - clear_history
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_clear_history(PyObject *self, PyObject *noarg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:774,1
    - Dst: rl_insert_text
      Src: /src/Python-3.8.3/Modules/readline.c:778,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:778,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 781
    functionName: insert_text
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 1
    functionsReached:
    - encode
    - Py_DECREF
    - PyBytes_AS_STRING
    - rl_insert_text
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      insert_text(PyObject *self, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl_redisplay
      Src: /src/Python-3.8.3/Modules/readline.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - noarg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 795
    functionName: redisplay
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 1
    functionsReached:
    - rl_redisplay
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      redisplay(PyObject *self, PyObject *noarg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/readline.c:867,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/readline.c:873,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/readline.c:874,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:877,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/readline.c:880,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:881,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 886
    functionName: on_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyLong_AsInt
    - PyErr_Clear
    - Py_XDECREF
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int on_hook(PyObject *func)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/readline.c:928,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/readline.c:929,1
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:933,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/readline.c:936,1
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:938,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/readline.c:939,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/readline.c:945,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/readline.c:945,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/readline.c:948,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/readline.c:952,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:953,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:954,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/readline.c:956,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - matches
    - num_matches
    - max_length
    argTypes:
    - char**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 957
    functionName: on_completion_display_matches_hook
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_CLEAR
    - decode
    - PyGILState_Release
    - PyList_SET_ITEM
    - PyObject_CallFunction
    - PyList_New
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void on_completion_display_matches_hook(char **matches,\n                                   int
      num_matches, int max_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigwinch_ohandler
      Src: /src/Python-3.8.3/Modules/readline.c:971,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/readline.c:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - signum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: readline_sigwinch_handler
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - sigwinch_ohandler
    - PyOS_setsig
    linkageType: ''
    returnType: void
    signature: void readline_sigwinch_handler(int signum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/readline.c:989,1
    - Dst: decode
      Src: /src/Python-3.8.3/Modules/readline.c:991,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/readline.c:992,1
    - Dst: encode
      Src: /src/Python-3.8.3/Modules/readline.c:999,1
    - Dst: strdup
      Src: /src/Python-3.8.3/Modules/readline.c:1002,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/readline.c:1002,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1003,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1005,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/readline.c:1008,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1009,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/readline.c:1011,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - text
    - state
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1015
    functionName: on_completion
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - strdup
    - PyGILState_Ensure
    - encode
    - Py_DECREF
    - decode
    - PyGILState_Release
    - PyObject_CallFunction
    - PyBytes_AS_STRING
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: char
    signature: 'char *

      on_completion(const char *text, int state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/readline.c:1028,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/readline.c:1038,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/readline.c:1043,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/readline.c:1046,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/readline.c:1051,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1056,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1057,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:1058,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:1059,1
    - Dst: completion_matches
      Src: /src/Python-3.8.3/Modules/readline.c:1060,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/readline.c:1061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1063
    functionName: flex_complete
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyGILState_Ensure
    - completion_matches
    - PyGILState_Release
    - Py_DecodeLocale
    - PyMem_RawFree
    - Py_XDECREF
    linkageType: ''
    returnType: char
    signature: 'char **

      flex_complete(const char *text, int start, int end)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/Python-3.8.3/Modules/readline.c:1072,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/readline.c:1072,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/readline.c:1074,1
    - Dst: rl_initialize
      Src: /src/Python-3.8.3/Modules/readline.c:1084,1
    - Dst: add_history
      Src: /src/Python-3.8.3/Modules/readline.c:1089,1
    - Dst: history_get
      Src: /src/Python-3.8.3/Modules/readline.c:1090,1
    - Dst: clear_history
      Src: /src/Python-3.8.3/Modules/readline.c:1095,1
    - Dst: using_history
      Src: /src/Python-3.8.3/Modules/readline.c:1097,1
    - Dst: rl_bind_key
      Src: /src/Python-3.8.3/Modules/readline.c:1100,1
    - Dst: rl_bind_key_in_map
      Src: /src/Python-3.8.3/Modules/readline.c:1102,1
    - Dst: rl_bind_key_in_map
      Src: /src/Python-3.8.3/Modules/readline.c:1103,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/readline.c:1106,1
    - Dst: strdup
      Src: /src/Python-3.8.3/Modules/readline.c:1118,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:1121,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/readline.c:1122,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Modules/readline.c:1126,1
    - Dst: rl_variable_bind
      Src: /src/Python-3.8.3/Modules/readline.c:1135,1
    - Dst: rl_read_init_file
      Src: /src/Python-3.8.3/Modules/readline.c:1145,1
    - Dst: rl_initialize
      Src: /src/Python-3.8.3/Modules/readline.c:1147,1
    - Dst: RESTORE_LOCALE
      Src: /src/Python-3.8.3/Modules/readline.c:1149,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - mod_state
    argTypes:
    - readlinestate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1150
    functionName: setup_readline
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - strdup
    - history_get
    - PyLong_FromLong
    - RESTORE_LOCALE
    - rl_variable_bind
    - rl_read_init_file
    - setlocale
    - using_history
    - rl_initialize
    - rl_bind_key_in_map
    - isatty
    - Py_FatalError
    - PyOS_setsig
    - add_history
    - rl_bind_key
    - clear_history
    linkageType: ''
    returnType: void
    signature: void setup_readline(readlinestate *mod_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rl_callback_handler_remove
      Src: /src/Python-3.8.3/Modules/readline.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1160
    functionName: rlhandler
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - rl_callback_handler_remove
    linkageType: ''
    returnType: void
    signature: void rlhandler(char *text)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rl_callback_handler_install
      Src: /src/Python-3.8.3/Modules/readline.c:1173,1
    - Dst: FD_ZERO
      Src: /src/Python-3.8.3/Modules/readline.c:1174,1
    - Dst: rl_resize_terminal
      Src: /src/Python-3.8.3/Modules/readline.c:1193,1
    - Dst: FD_SET
      Src: /src/Python-3.8.3/Modules/readline.c:1196,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/readline.c:1196,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/readline.c:1198,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/readline.c:1198,1
    - Dst: PyOS_InputHook
      Src: /src/Python-3.8.3/Modules/readline.c:1201,1
    - Dst: rl_callback_read_char
      Src: /src/Python-3.8.3/Modules/readline.c:1205,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Modules/readline.c:1209,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/readline.c:1210,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Modules/readline.c:1211,1
    - Dst: rl_free_line_state
      Src: /src/Python-3.8.3/Modules/readline.c:1213,1
    - Dst: rl_callback_sigcleanup
      Src: /src/Python-3.8.3/Modules/readline.c:1215,1
    - Dst: rl_cleanup_after_signal
      Src: /src/Python-3.8.3/Modules/readline.c:1217,1
    - Dst: rl_callback_handler_remove
      Src: /src/Python-3.8.3/Modules/readline.c:1218,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - prompt
    - signal
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1226
    functionName: readline_until_enter_or_signal
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - select
    - rl_callback_read_char
    - FD_ZERO
    - PyEval_RestoreThread
    - rl_cleanup_after_signal
    - FD_SET
    - PyErr_CheckSignals
    - rl_callback_sigcleanup
    - PyOS_InputHook
    - PyEval_SaveThread
    - rl_resize_terminal
    - rl_callback_handler_install
    - fileno
    - rl_free_line_state
    - rl_callback_handler_remove
    linkageType: ''
    returnType: char
    signature: 'char *

      readline_until_enter_or_signal(const char *prompt, int *signal)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/Python-3.8.3/Modules/readline.c:1237,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Modules/readline.c:1237,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/readline.c:1239,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Modules/readline.c:1240,1
    - Dst: rl_prep_terminal
      Src: /src/Python-3.8.3/Modules/readline.c:1247,1
    - Dst: readline_until_enter_or_signal
      Src: /src/Python-3.8.3/Modules/readline.c:1251,1
    - Dst: RESTORE_LOCALE
      Src: /src/Python-3.8.3/Modules/readline.c:1255,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/readline.c:1261,1
    - Dst: RESTORE_LOCALE
      Src: /src/Python-3.8.3/Modules/readline.c:1264,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/readline.c:1269,1
    - Dst: _py_get_history_length
      Src: /src/Python-3.8.3/Modules/readline.c:1272,1
    - Dst: history_get
      Src: /src/Python-3.8.3/Modules/readline.c:1277,1
    - Dst: history_get
      Src: /src/Python-3.8.3/Modules/readline.c:1279,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/readline.c:1283,1
    - Dst: add_history
      Src: /src/Python-3.8.3/Modules/readline.c:1284,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/readline.c:1289,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/readline.c:1291,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/readline.c:1295,1
    - Dst: RESTORE_LOCALE
      Src: /src/Python-3.8.3/Modules/readline.c:1296,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1298
    functionName: call_readline
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - strdup
    - RESTORE_LOCALE
    - history_get
    - add_history
    - memcpy
    - setlocale
    - rl_prep_terminal
    - PyMem_RawMalloc
    - Py_FatalError
    - strlen
    - readline_until_enter_or_signal
    - _py_get_history_length
    - free
    - strcmp
    - _Py_SetLocaleFromEnv
    linkageType: ''
    returnType: char
    signature: 'char *

      call_readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/Python-3.8.3/Modules/readline.c:1328,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/readline.c:1328,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/readline.c:1336,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/readline.c:1341,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/readline.c:1345,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/readline.c:1349,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Modules/readline.c:1355,1
    - Dst: setup_readline
      Src: /src/Python-3.8.3/Modules/readline.c:1357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/readline.c:1362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1322
    functionDepth: 2
    functionLinenumber: 1322
    functionLinenumberEnd: 1364
    functionName: PyInit_readline
    functionSourceFile: /src/Python-3.8.3/Modules/readline.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - Py_DECREF
    - PyModule_Create
    - strlen
    - PyModule_GetState
    - setup_readline
    - strncmp
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_readline(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - viewp
    - ','
    - erraction
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 29
    functionName: GET_BUFFER_VIEW_OR_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/hashlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BUFFER_VIEW_OR_ERROR(obj, viewp, erraction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - viewp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: GET_BUFFER_VIEW_OR_ERROUT
    functionSourceFile: /src/Python-3.8.3/Modules/hashlib.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BUFFER_VIEW_OR_ERROUT(obj, viewp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: ENTER_HASHLIB
    functionSourceFile: /src/Python-3.8.3/Modules/hashlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_HASHLIB(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: LEAVE_HASHLIB
    functionSourceFile: /src/Python-3.8.3/Modules/hashlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_HASHLIB(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PatternObject_GetCode
    functionSourceFile: /src/Python-3.8.3/Modules/sre.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PatternObject_GetCode(o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:30,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:34,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:35,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: lock_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_Del
    - PyThread_free_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void lock_dealloc(lockobject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:54,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:57,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:60,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:63,1
    - Dst: Py_MakePendingCalls
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:71,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - lock
    - timeout
    argTypes:
    - PyThread_type_lock
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 90
    functionName: acquire_timed
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_MakePendingCalls
    - _PyTime_AsMicroseconds
    - _PyTime_GetMonotonicClock
    - PyThread_acquire_lock_timed
    linkageType: ''
    returnType: PyLockStatus
    signature: PyLockStatus acquire_timed(PyThread_type_lock lock, _PyTime_t timeout)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSeconds
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:99,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:103,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:108,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:118,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - args
    - kwds
    - timeout
    argTypes:
    - PyObject*
    - PyObject*
    - _PyTime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 135
    functionName: lock_acquire_parse_args
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSeconds
    - _PyTime_AsMicroseconds
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: int
    signature: "int lock_acquire_parse_args(PyObject *args, PyObject *kwds,\n                        _PyTime_t
      *timeout)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lock_acquire_parse_args
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:143,1
    - Dst: acquire_timed
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:146,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - lockobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: lock_PyThread_acquire_lock
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - acquire_timed
    - PyBool_FromLong
    - lock_acquire_parse_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_PyThread_acquire_lock(lockobject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:172,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - lockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: lock_PyThread_release_lock
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_PyThread_release_lock(lockobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - lockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: lock_locked_lock
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_locked_lock(lockobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:204,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - lockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: lock_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lock_repr(lockobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:274,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:280,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:282,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 285
    functionName: rlock_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyThread_free_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void rlock_dealloc(rlockobject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lock_acquire_parse_args
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:294,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:297,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:301,1
    - Dst: acquire_timed
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:308,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:310,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - rlockobject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (self->rlock_count == 0)
      pos:
        line_end: 309
        line_start: 309
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 319
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 319
    functionName: rlock_acquire
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - acquire_timed
    - lock_acquire_parse_args
    - PyThread_get_thread_ident
    - PyErr_SetString
    - PyBool_FromLong
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:340,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:343,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 352
    functionName: rlock_release
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:373,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:376,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:378,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:382,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts:
    - condition: (self->rlock_count == 0)
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 389
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 389
    functionName: rlock_acquire_restore
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock
    - assert
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_acquire_restore(rlockobject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:403,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:412,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 414
    functionName: rlock_release_save
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_SetString
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_release_save(rlockobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rlockobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: rlock_is_owned
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_is_owned(rlockobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:443,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:449,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:451,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: rlock_new
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyThread_allocate_lock
    - PyTypeObject*::tp_alloc
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:463,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rlockobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: rlock_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rlock_repr(rlockobject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:535,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:542,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: newlockobject
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_DECREF
    - PyThread_allocate_lock
    - PyObject_New
    linkageType: ''
    returnType: lockobject
    signature: 'lockobject *

      newlockobject(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:602,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - localdummyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: localdummy_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void localdummy_dealloc(localdummyobject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:660,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:662,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:667,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:670,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:674,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:680,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:683,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:684,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:687,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:689,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:693,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:694,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:695,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 697
    functionName: _local_create_dummy
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PyDict_New
    - Py_XDECREF
    - tp_alloc
    - PyDict_SetItem
    - PyErr_SetString
    - PyThreadState_GetDict
    - PyWeakref_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _local_create_dummy(localobject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:711,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:713,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:716,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:722,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:726,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:728,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:730,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:734,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:740,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:744,1
    - Dst: _local_create_dummy
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:754,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 756
    functionName: local_new
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyDict_New
    - _local_create_dummy
    - PyUnicode_FromFormat
    - PyCFunction_NewEx
    - PyErr_SetString
    - PyObject_IsTrue
    - Py_XINCREF
    - PyWeakref_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:761,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:762,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - localobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 765
    functionName: local_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int local_traverse(localobject *self, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:771,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:772,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:773,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:774,1
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:777,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:779,1
    - Dst: PyThreadState_Next
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:781,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:782,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:783,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 789
    functionName: local_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItem
    - Py_CLEAR
    - PyDict_DelItem
    - PyThreadState_Get
    - PyThreadState_Next
    - PyErr_Clear
    - PyInterpreterState_ThreadHead
    linkageType: ''
    returnType: int
    signature: int local_clear(localobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:797,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:799,1
    - Dst: local_clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:801,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:802,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 804
    functionName: local_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - local_clear
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void local_dealloc(localobject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:812,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:814,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:819,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:821,1
    - Dst: _local_create_dummy
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:824,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:828,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:829,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:834,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:839,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - localobject*
    assertStmts:
    - condition: (Py_TYPE(dummy) == &localdummytype)
      pos:
        line_end: 838
        line_start: 838
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 844
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 844
    functionName: _ldict
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyDict_DelItem
    - _local_create_dummy
    - Py_TYPE
    - PyErr_SetString
    - assert
    - PyThreadState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ldict(localobject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _ldict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:852,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:856,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:858,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:860,1
    - Dst: _PyObject_GenericSetAttrWithDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:866,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - name
    - v
    argTypes:
    - localobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 867
    functionName: local_setattro
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GenericSetAttrWithDict
    - PyErr_Format
    - PyObject_RichCompareBool
    - _ldict
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int local_setattro(localobject *self, PyObject *name, PyObject *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _ldict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:921,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:925,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:927,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:933,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:935,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:939,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:941,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:944,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:948,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - localobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 950
    functionName: local_getattro
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GenericGetAttrWithDict
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - Py_TYPE
    - PyObject_RichCompareBool
    - _ldict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      local_getattro(localobject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:958,1
    - Dst: PyWeakref_CheckRef
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:958,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:959,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:962,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:963,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:963,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:969,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:971,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:973,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:974,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - localweakref
    - dummyweakref
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyWeakref_CheckRef(localweakref))
      pos:
        line_end: 957
        line_start: 957
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    - condition: (PyObject_TypeCheck(obj, &localtype))
      pos:
        line_end: 962
        line_start: 962
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 978
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 978
    functionName: _localdummy_destroyed
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - PyDict_DelItem
    - PyErr_WriteUnraisable
    - PyObject_TypeCheck
    - assert
    - PyWeakref_CheckRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _localdummy_destroyed(PyObject *localweakref, PyObject *dummyweakref)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:998,1
    - Dst: _PyThreadState_Init
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:999,1
    - Dst: PyEval_AcquireThread
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1000,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1002,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1004,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1006,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1008,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1014,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1015,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1016,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1017,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1019,1
    - Dst: PyThreadState_DeleteCurrent
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1020,1
    - Dst: PyThread_exit_thread
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - boot_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1022
    functionName: t_bootstrap
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyEval_AcquireThread
    - PyMem_DEL
    - PyThread_exit_thread
    - PyThreadState_Clear
    - _PyThreadState_Init
    - PyThreadState_DeleteCurrent
    - PyErr_ExceptionMatches
    - PyThread_get_thread_ident
    - PyObject_Call
    - _PyErr_WriteUnraisableMsg
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void t_bootstrap(void *boot_raw)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1031,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1034,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1035,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1039,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1040,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1044,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1045,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1049,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1051,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1052,1
    - Dst: _PyThreadState_Prealloc
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1056,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1058,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1059,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1061,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1062,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1063,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1064,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1065,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1067,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1068,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1069,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1070,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1071,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1072,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - self
    - fargs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1076
    functionName: thread_PyThread_start_new_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyEval_InitThreads
    - _PyInterpreterState_Get
    - PyLong_FromUnsignedLong
    - Py_DECREF
    - PyCallable_Check
    - PyMem_DEL
    - Py_INCREF
    - PyErr_NoMemory
    - PyMem_NEW
    - Py_XDECREF
    - PyDict_Check
    - _PyThreadState_Prealloc
    - PyTuple_Check
    - PyThread_start_new_thread
    - PyErr_SetString
    - PyArg_UnpackTuple
    - PyThreadState_Clear
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1094
    functionName: thread_PyThread_exit_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetInterrupt
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1108
    functionName: thread_PyThread_interrupt_main
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetInterrupt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_interrupt_main(PyObject * self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newlockobject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1123
    functionName: thread_PyThread_allocate_lock
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - newlockobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_PyThread_allocate_lock(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1137,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1141
    functionName: thread_get_ident
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_ident
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_get_ident(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_native_id
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1158,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1160
    functionName: thread_get_native_id
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyThread_get_thread_native_id
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_get_native_id(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1173,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1175
    functionName: thread__count
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1192,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1196,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1199,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1199,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - wr_raw
    argTypes:
    - void*
    assertStmts:
    - condition: (Py_TYPE(obj) == &Locktype)
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1209
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1209
    functionName: release_sentinel
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_TYPE
    - _PyObject_CAST
    - PyThread_release_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void release_sentinel(void *wr_raw)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1215,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1225,1
    - Dst: newlockobject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1227,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (tstate->on_delete == &release_sentinel)
      pos:
        line_end: 1220
        line_start: 1220
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    constantsTouched: []
    func_position:
      end: 1240
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1240
    functionName: thread__set_sentinel
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - newlockobject
    - Py_DECREF
    - PyThreadState_Get
    - assert
    - PyWeakref_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread__set_sentinel(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1257,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1261,1
    - Dst: PyThread_get_stacksize
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1266,1
    - Dst: PyThread_set_stacksize
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1268,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1270,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1276,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1282
    functionName: thread_stack_size
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyThread_set_stacksize
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    - PyThread_get_stacksize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_stack_size(PyObject *self, PyObject *args)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1308,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1310,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1316,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1321,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1322,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1325,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1328,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1329,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1332,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1335,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1338,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1340,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1346,1
    - Dst: _PyErr_Display
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1351,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1354,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1358,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - file
    - exc_type
    - exc_value
    - exc_traceback
    - thread
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1361
    functionName: thread_excepthook_file
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_Display
    - PyFile_WriteString
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyFile_WriteObject
    - PyThread_get_thread_ident
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int thread_excepthook_file(PyObject *file, PyObject *exc_type, PyObject
      *exc_value,\n                       PyObject *exc_traceback, PyObject *thread)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1390,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1391,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1398,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1405,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1406,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1407,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1409,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1416,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1421,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1428,1
    - Dst: thread_excepthook_file
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1433,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1439
    functionName: thread_excepthook
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_GetObjectId
    - PyObject_GetAttrString
    - Py_DECREF
    - Py_INCREF
    - Py_TYPE
    - PyErr_SetString
    - thread_excepthook_file
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      thread_excepthook(PyObject *self, PyObject *args)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1516,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1519,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1521,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1523,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1525,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1528,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1535,1
    - Dst: _PyTime_AsSecondsDouble
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1540,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1541,1
    - Dst: floor
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1543,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1545,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1548,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1552,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1554,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1556,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1558,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1559,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1561,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1562,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1565,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1566,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1569,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1570,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1576,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Modules/_threadmodule.c:1581,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1583
    functionName: PyInit__thread
    functionSourceFile: /src/Python-3.8.3/Modules/_threadmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PyStructSequence_InitType2
    - PyModule_GetDict
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyDict_SetItemString
    - PyThread_init_thread
    - floor
    - _PyTime_AsSecondsDouble
    - PyType_Ready
    - PyFloat_FromDouble
    - Py_MIN
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__thread(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:25,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:25,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:26,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:28,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:34,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:39,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:40,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:41,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:42,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:43,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:46,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:47,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - heap
    - startpos
    - pos
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyList_Check(heap))
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 61
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 61
    functionName: siftdown
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyList_ITEMS
    - PyList_Check
    - PyList_GET_SIZE
    - PyObject_RichCompareBool
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int siftdown(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:70,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:70,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:71,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:74,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:79,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:87,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:88,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:89,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:90,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:91,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:95,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:96,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:97,1
    - Dst: siftdown
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - heap
    - pos
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyList_Check(heap))
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 111
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 111
    functionName: siftup
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - siftdown
    - _PyList_ITEMS
    - PyList_Check
    - PyList_GET_SIZE
    - PyObject_RichCompareBool
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int siftup(PyListObject *heap, Py_ssize_t pos)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:128,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:132,1
    - Dst: siftdown
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:135,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: _heapq_heappush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - siftdown
    - PyList_Check
    - PyList_Append
    - PyErr_SetString
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:146,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:147,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:154,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:159,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:161,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:168,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:169,1
    - Dst: siftup_func
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:170,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: heappop_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Check
    - PyList_SET_ITEM
    - PyErr_SetString
    - PyList_GET_SIZE
    - siftup_func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heappop_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heappop_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: _heapq_heappop
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heappop_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappop(PyObject *module, PyObject *heap)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:199,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:203,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:204,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:208,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:209,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:210,1
    - Dst: siftup_func
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:211,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - heap
    - item
    - siftup_func
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 216
    functionName: heapreplace_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Check
    - PyList_SET_ITEM
    - PyErr_SetString
    - PyList_GET_SIZE
    - siftup_func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heapreplace_internal(PyObject *heap, PyObject *item, int siftup_func(PyListObject
      *, Py_ssize_t))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapreplace_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: _heapq_heapreplace_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapreplace_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:264,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:265,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:270,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:274,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:275,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:277,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:281,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:285,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:286,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:290,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:291,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:292,1
    - Dst: siftup
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 298
    functionName: _heapq_heappushpop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Check
    - PyList_SET_ITEM
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyList_GET_SIZE
    - siftup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappushpop_impl(PyObject *module, PyObject *heap, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: keep_top_bit
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t keep_top_bit(Py_ssize_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:337,1
    - Dst: keep_top_bit
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:338,1
    - Dst: siftup_func
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:344,1
    - Dst: siftup_func
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:355,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 363
    functionName: cache_friendly_heapify
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - siftup_func
    - keep_top_bit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cache_friendly_heapify(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:370,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:371,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:379,1
    - Dst: cache_friendly_heapify
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:381,1
    - Dst: siftup_func
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - heap
    - siftup_func
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 394
    functionName: heapify_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - cache_friendly_heapify
    - PyList_Check
    - PyErr_SetString
    - PyList_GET_SIZE
    - siftup_func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      heapify_internal(PyObject *heap, int siftup_func(PyListObject *, Py_ssize_t))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapify_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 410
    functionName: _heapq_heapify
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapify_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapify(PyObject *module, PyObject *heap)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:419,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:419,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:422,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:428,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:433,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:434,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:435,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:437,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:440,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:441,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - heap
    - startpos
    - pos
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyList_Check(heap))
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/Python-3.8.3/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 455
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 455
    functionName: siftdown_max
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyList_ITEMS
    - PyList_Check
    - PyList_GET_SIZE
    - PyObject_RichCompareBool
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int siftdown_max(PyListObject *heap, Py_ssize_t startpos, Py_ssize_t
      pos)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:464,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:464,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:465,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:468,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:473,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:481,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:482,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:484,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:485,1
    - Dst: _PyList_ITEMS
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:489,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:490,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:491,1
    - Dst: siftdown_max
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - heap
    - pos
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyList_Check(heap))
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/Python-3.8.3/Modules/_heapqmodule.c
    constantsTouched: []
    func_position:
      end: 505
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 505
    functionName: siftup_max
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyList_ITEMS
    - PyList_Check
    - PyList_GET_SIZE
    - siftdown_max
    - PyObject_RichCompareBool
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int siftup_max(PyListObject *heap, Py_ssize_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heappop_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: _heapq__heappop_max
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heappop_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq__heappop_max(PyObject *module, PyObject *heap)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapreplace_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - heap
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: _heapq__heapreplace_max_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapreplace_internal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_heapq__heapreplace_max_impl(PyObject *module, PyObject
      *heap,\n                             PyObject *item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heapify_internal
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - heap
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 551
    functionDepth: 3
    functionLinenumber: 551
    functionLinenumberEnd: 556
    functionName: _heapq__heapify_max
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - heapify_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq__heapify_max(PyObject *module, PyObject *heap)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:714,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:717,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:717,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_heapqmodule.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 720
    functionName: PyInit__heapq
    functionSourceFile: /src/Python-3.8.3/Modules/_heapqmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyModule_Create
    - PyUnicode_DecodeUTF8
    - PyModule_AddObject
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__heapq(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:44,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:45,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:46,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_abc.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - _abc_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: abc_data_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void abc_data_dealloc(_abc_data *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_abc.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: abc_data_new
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      abc_data_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:81,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_abc.c:85,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:86,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: _get_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 1
    functionsReached:
    - _PyObject_GetAttrId
    - Py_TYPE
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: _abc_data
    signature: '_abc_data *

      _get_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:96,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_abc.c:99,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_abc.c:101,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_abc.c:102,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Modules/_abc.c:107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - set
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: _in_weak_set
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySet_GET_SIZE
    - PyErr_ExceptionMatches
    - PySet_Contains
    - PyErr_Clear
    - PyWeakref_NewRef
    linkageType: ''
    returnType: int
    signature: int _in_weak_set(PyObject *set, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_abc.c:116,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:120,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Modules/_abc.c:121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:122,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - setweakref
    - objweakref
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: _destroy
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 23
    functionsReached:
    - Py_DECREF
    - PySet_Discard
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _destroy(PyObject *setweakref, PyObject *objweakref)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_abc.c:137,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_abc.c:146,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Modules/_abc.c:150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:152,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_abc.c:155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:156,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:158,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_abc.c:161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - pset
    - obj
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 165
    functionName: _add_to_weak_set
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCFunction_NewEx
    - PyWeakref_NewRef
    - PySet_New
    - PySet_Add
    linkageType: ''
    returnType: int
    signature: int _add_to_weak_set(PyObject **pset, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:182,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Modules/_abc.c:186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: _abc__reset_registry
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _get_impl
    - Py_DECREF
    - PySet_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__reset_registry(PyObject *module, PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:209,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Modules/_abc.c:213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:214,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Modules/_abc.c:219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 225
    functionName: _abc__reset_caches
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _get_impl
    - Py_DECREF
    - PySet_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__reset_caches(PyObject *module, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:244,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_abc.c:248,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_abc.c:249,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_abc.c:250,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/_abc.c:251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 255
    functionName: _abc__get_dump
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _get_impl
    - Py_BuildValue
    - PySet_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__get_dump(PyObject *module, PyObject *self)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Modules/_abc.c:262,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:270,1
    - Dst: PyMapping_Items
      Src: /src/Python-3.8.3/Modules/_abc.c:277,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_abc.c:281,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:281,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:282,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_abc.c:283,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:284,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:289,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:290,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:292,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:297,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:298,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:301,1
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Modules/_abc.c:302,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_abc.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:310,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:314,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:318,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:319,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:323,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:324,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:327,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_abc.c:334,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:335,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:338,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_abc.c:340,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_abc.c:341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:342,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:343,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:347,1
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Modules/_abc.c:351,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:352,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/_abc.c:354,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:360,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:362,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_abc.c:363,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:368,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:374,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:375,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:377,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(items))
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/Python-3.8.3/Modules/_abc.c
    constantsTouched: []
    func_position:
      end: 379
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 379
    functionName: compute_abstract_methods
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - PyIter_Next
    - PySequence_Fast
    - PyObject_GetIter
    - PyErr_Occurred
    - PyFrozenSet_New
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyList_GET_ITEM
    - PyTuple_Check
    - assert
    - Py_XDECREF
    - PySet_Add
    - PySequence_Fast_GET_SIZE
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyList_Check
    - _PyObject_LookupAttr
    - _PyObject_IsAbstract
    - PyMapping_Items
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int compute_abstract_methods(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compute_abstract_methods
      Src: /src/Python-3.8.3/Modules/_abc.c:395,1
    - Dst: abc_data_new
      Src: /src/Python-3.8.3/Modules/_abc.c:400,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:405,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - module
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 410
    functionName: _abc__abc_init
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - compute_abstract_methods
    - Py_DECREF
    - abc_data_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_init(PyObject *module, PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:426,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:427,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Modules/_abc.c:430,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:432,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Modules/_abc.c:440,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:443,1
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:449,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:454,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:457,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:462,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - module
    - self
    - subclass
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 464
    functionName: _abc__abc_register_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _add_to_weak_set
    - Py_DECREF
    - Py_INCREF
    - PyObject_IsSubclass
    - _get_impl
    - PyType_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_register_impl(PyObject *module, PyObject *self, PyObject *subclass)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:483,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_abc.c:488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:490,1
    - Dst: _in_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:494,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:500,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_abc.c:503,1
    - Dst: _in_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:506,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:512,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_abc.c:517,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_abc.c:521,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_abc.c:527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:529,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:533,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_abc.c:534,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/_abc.c:540,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:544,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:545,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - module
    - self
    - instance
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 547
    functionName: _abc__abc_instancecheck_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyObject_GetAttrId
    - _PyObject_CallMethodIdObjArgs
    - _in_weak_set
    - Py_UNREACHABLE
    - _get_impl
    - Py_TYPE
    - PyObject_IsTrue
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_abc__abc_instancecheck_impl(PyObject *module, PyObject
      *self,\n                             PyObject *instance)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:572,1
    - Dst: _get_impl
      Src: /src/Python-3.8.3/Modules/_abc.c:579,1
    - Dst: _in_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:585,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Modules/_abc.c:598,1
    - Dst: _in_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:605,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_abc.c:616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:622,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:630,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:631,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:638,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:639,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:643,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_abc.c:647,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:647,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:648,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:649,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_abc.c:650,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:652,1
    - Dst: subclasscheck_check_registry
      Src: /src/Python-3.8.3/Modules/_abc.c:661,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_abc.c:667,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_abc.c:671,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_abc.c:672,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_abc.c:675,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_abc.c:676,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:677,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Modules/_abc.c:678,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:679,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:681,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:699,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:700,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:701,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 123
    argCount: 3
    argNames:
    - module
    - self
    - subclass
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mro_item != NULL)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/Python-3.8.3/Modules/_abc.c
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/Python-3.8.3/Modules/_abc.c
    constantsTouched: []
    func_position:
      end: 703
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 703
    functionName: _abc__abc_subclasscheck_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - _add_to_weak_set
    - PyTuple_GET_SIZE
    - _in_weak_set
    - PyObject_IsSubclass
    - Py_INCREF
    - PyList_GET_ITEM
    - PyTuple_Check
    - _get_impl
    - subclasscheck_check_registry
    - assert
    - Py_XDECREF
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - Py_XINCREF
    - PyList_Check
    - PySet_Clear
    - PyType_Check
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_abc__abc_subclasscheck_impl(PyObject *module, PyObject
      *self,\n                             PyObject *subclass)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _in_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:711,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Modules/_abc.c:724,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_abc.c:730,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_abc.c:732,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Modules/_abc.c:740,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:741,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_abc.c:744,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_abc.c:747,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_abc.c:756,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Modules/_abc.c:757,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:758,1
    - Dst: _add_to_weak_set
      Src: /src/Python-3.8.3/Modules/_abc.c:764,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_abc.c:775,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_abc.c:777,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 3
    argNames:
    - impl
    - subclass
    - result
    argTypes:
    - _abc_data*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (i == registry_size)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/Python-3.8.3/Modules/_abc.c
    constantsTouched: []
    func_position:
      end: 779
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 779
    functionName: subclasscheck_check_registry
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 1
    functionsReached:
    - _add_to_weak_set
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - _in_weak_set
    - PyObject_IsSubclass
    - PySet_Size
    - PyWeakref_GetObject
    - PyMem_Free
    - _PySet_NextEntry
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: "int subclasscheck_check_registry(_abc_data *impl, PyObject *subclass,\n
      \                            PyObject **result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_abc.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: _abc_get_cache_token_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc_get_cache_token_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_abc.c:826,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_abc.c:831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 832
    functionName: PyInit__abc
    functionSourceFile: /src/Python-3.8.3/Modules/_abc.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__abc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: SIMPLE_FORMAT
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIMPLE_FORMAT(fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fmt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: FIX_FORMAT
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX_FORMAT(fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: NDArray_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NDArray_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: CHECK_LIST_OR_TUPLE
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_LIST_OR_TUPLE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: PyMem_XFree
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_XFree(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - suboffsets
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: HAVE_PTR
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_PTR(suboffsets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - suboffsets
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: ADJUST_PTR
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_PTR(ptr, suboffsets)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: ND_IS_CONSUMER
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ND_IS_CONSUMER(nd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: ND_C_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ND_C_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: ND_FORTRAN_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ND_FORTRAN_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: ND_ANY_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ND_ANY_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: REQ_INDIRECT
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_INDIRECT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: REQ_C_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_C_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: REQ_F_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_F_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: REQ_ANY_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_ANY_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: REQ_STRIDES
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_STRIDES(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: REQ_SHAPE
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_SHAPE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: REQ_WRITABLE
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_WRITABLE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: REQ_FORMAT
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_FORMAT(flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:122,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:126,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:128,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:137,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:139,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 4
    argNames:
    - nitems
    - itemsize
    - offset
    - flags
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 161
    functionName: ndbuf_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    linkageType: ''
    returnType: ndbuf_t
    signature: 'ndbuf_t *

      ndbuf_new(Py_ssize_t nitems, Py_ssize_t itemsize, Py_ssize_t offset, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:168,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:169,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:170,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:171,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:172,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ndbuf
    argTypes:
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: ndbuf_free
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_XFree
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void ndbuf_free(ndbuf_t *ndbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nd
    - elt
    argTypes:
    - NDArrayObject*
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: ndbuf_push
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ndbuf_push(NDArrayObject *nd, ndbuf_t *elt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ndbuf_free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nd
    - elt
    argTypes:
    - NDArrayObject*
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: ndbuf_delete
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndbuf_free
    linkageType: ''
    returnType: void
    signature: void ndbuf_delete(NDArrayObject *nd, ndbuf_t *elt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ndbuf_delete
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nd
    argTypes:
    - NDArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: ndbuf_pop
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndbuf_delete
    linkageType: ''
    returnType: void
    signature: void ndbuf_pop(NDArrayObject *nd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: ndarray_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:225,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:228,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:229,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:230,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:232,1
    - Dst: ndbuf_pop
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:236,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - NDArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 240
    functionName: ndarray_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndbuf_pop
    - ND_IS_CONSUMER
    - PyMem_XFree
    - PyBuffer_Release
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void ndarray_dealloc(NDArrayObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - exporter
    - nd
    - flags
    argTypes:
    - PyObject*
    - NDArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: ndarray_init_staticbuf
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int ndarray_init_staticbuf(PyObject *exporter, NDArrayObject *nd, int
      flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:271,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ndbuf
    argTypes:
    - ndbuf_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: init_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: void
    signature: void init_flags(ndbuf_t *ndbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: get_nmemb
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_nmemb(PyObject *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:312,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:312,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:313,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:313,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:313,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:315,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:319,1
    - Dst: get_nmemb
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:320,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:321,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:325,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:330,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:332,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:333,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:340,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:342,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:344,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:345,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:350,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:352,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:353,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:353,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:354,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:355,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:357,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:357,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:358,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:360,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:361,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:365,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:376,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:379,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:382,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:383,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:387,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:388,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 4
    argNames:
    - obj
    - items
    - format
    - itemsize
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (nmemb >= 1)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (PyObject_CheckBuffer(obj))
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (PyList_Check(items) || PyTuple_Check(items))
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 391
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 391
    functionName: pack_from_list
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyObject_CheckBuffer
    - PyFloat_Check
    - PyTuple_GET_ITEM
    - PyObject_GetAttrString
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - get_nmemb
    - PyTuple_Check
    - assert
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - PyLong_Check
    - Py_DECREF
    - PyList_Check
    - PyTuple_New
    - PySequence_Length
    - PyBytes_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyLong_FromSsize_t
    - Py_XINCREF
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: "int pack_from_list(PyObject *obj, PyObject *items, PyObject *format,\n
      \              Py_ssize_t itemsize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:405,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:409,1
    - Dst: get_nmemb
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:413,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:414,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:416,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:420,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:424,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:428,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:432,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:433,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:435,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:435,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:436,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:437,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:439,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:439,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:440,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:442,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:443,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:447,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:454,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:461,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:461,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:462,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:464,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:465,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:466,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:467,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 4
    argNames:
    - ptr
    - item
    - fmt
    - itemsize
    argTypes:
    - char*
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (nmemb >= 1)
      pos:
        line_end: 413
        line_start: 413
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 470
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 470
    functionName: pack_single
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_CallObject
    - PyFloat_Check
    - PyObject_GetAttrString
    - PySequence_Fast_GET_ITEM
    - get_nmemb
    - PyMemoryView_FromMemory
    - PyTuple_Check
    - assert
    - Py_XDECREF
    - PyLong_Check
    - PyUnicode_FromString
    - Py_DECREF
    - PyList_Check
    - PyTuple_New
    - PySequence_Length
    - PyBytes_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: int pack_single(char *ptr, PyObject *item, const char *fmt, Py_ssize_t
      itemsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:480,1
    - Dst: HAVE_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:483,1
    - Dst: HAVE_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:483,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:485,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:489,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:491,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:492,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:495,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:496,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:503,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:504,1
    - Dst: copy_rec
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 10
    argNames:
    - shape
    - ndim
    - itemsize
    - dptr
    - dstrides
    - dsuboffsets
    - sptr
    - sstrides
    - ssuboffsets
    - mem
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts:
    - condition: (ndim >= 1)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (mem != NULL)
      pos:
        line_end: 488
        line_start: 488
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 511
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 511
    functionName: copy_rec
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - HAVE_PTR
    - ADJUST_PTR
    - memcpy
    - copy_rec
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: "void copy_rec(const Py_ssize_t *shape, Py_ssize_t ndim, Py_ssize_t
      itemsize,\n         char *dptr, const Py_ssize_t *dstrides, const Py_ssize_t
      *dsuboffsets,\n         char *sptr, const Py_ssize_t *sstrides, const Py_ssize_t
      *ssuboffsets,\n         char *mem)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:518,1
    - Dst: FIX_FORMAT
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:518,1
    - Dst: FIX_FORMAT
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 531
    functionName: cmp_structure
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - FIX_FORMAT
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cmp_structure(Py_buffer *dest, Py_buffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:541,1
    - Dst: cmp_structure
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:543,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:544,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:553,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:555,1
    - Dst: copy_rec
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:560,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:565,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->ndim > 0)
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 567
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 567
    functionName: copy_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - copy_rec
    - cmp_structure
    - PyMem_XFree
    - PyErr_SetString
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int copy_buffer(Py_buffer *dest, Py_buffer *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:581,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:587,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:592,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:593,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:597,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:598,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:599,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - ptr
    - fmt
    - itemsize
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 605
    functionName: unpack_single
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyMemoryView_FromMemory
    - PyObject_CallFunction
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_single(char *ptr, const char *fmt, Py_ssize_t itemsize)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:617,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:618,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:619,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:622,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:623,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:626,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:627,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:629,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:635,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:640,1
    - Dst: unpack_rec
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:646,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:650,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 9
    argNames:
    - unpack_from
    - ptr
    - mview
    - item
    - shape
    - strides
    - suboffsets
    - ndim
    - itemsize
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ndim >= 0)
      pos:
        line_end: 616
        line_start: 616
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (strides != NULL)
      pos:
        line_end: 618
        line_start: 618
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (shape != NULL)
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 654
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 654
    functionName: unpack_rec
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - ADJUST_PTR
    - unpack_rec
    - PyList_SET_ITEM
    - PyObject_CallFunctionObjArgs
    - PyList_New
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunpack_rec(PyObject *unpack_from, char *ptr, PyObject
      *mview, char *item,\n           const Py_ssize_t *shape, const Py_ssize_t *strides,\n
      \          const Py_ssize_t *suboffsets, Py_ssize_t ndim, Py_ssize_t itemsize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:674,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:680,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:680,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:681,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:682,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:689,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:689,1
    - Dst: strides_from_shape
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:690,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:695,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:699,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:700,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:704,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:708,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:710,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:714,1
    - Dst: unpack_rec
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:718,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:723,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:724,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:725,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:726,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:728,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - nd
    argTypes:
    - NDArrayObject*
    assertStmts:
    - condition: (ND_C_CONTIGUOUS(nd->head->flags))
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (base->strides == NULL)
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (ND_C_CONTIGUOUS(nd->head->flags))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (base->ndim <= 1)
      pos:
        line_end: 681
        line_start: 681
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 731
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 731
    functionName: ndarray_as_list
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - PyUnicode_FromString
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_NoMemory
    - unpack_rec
    - strides_from_shape
    - PyMemoryView_FromMemory
    - PyMem_XFree
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyMem_Malloc
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_as_list(NDArrayObject *nd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:791,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:794,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 798
    functionName: get_itemsize
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_itemsize(PyObject *format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:806,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:809,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:809,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:811,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:812,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:815,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:815,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 819
    functionName: get_format
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - strcpy
    - Py_DECREF
    - PyErr_NoMemory
    - PyUnicode_AsASCIIString
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyMem_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      get_format(PyObject *format)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:829,1
    - Dst: pack_from_list
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:834,1
    - Dst: get_format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ndbuf
    - items
    - format
    - itemsize
    argTypes:
    - ndbuf_t*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 845
    functionName: init_simple
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_FromBuffer
    - pack_from_list
    - Py_DECREF
    - get_format
    linkageType: ''
    returnType: int
    signature: "int init_simple(ndbuf_t *ndbuf, PyObject *items, PyObject *format,\n
      \           Py_ssize_t itemsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:854,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:856,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:861,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:862,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:863,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:866,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:869,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:870,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:871,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:875,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - seq
    - len
    - is_shape
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 884
    functionName: seq_as_ssize_array
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyMem_New
    - PyErr_Occurred
    - PySequence_Fast_GET_ITEM
    - PyErr_NoMemory
    - PyLong_AsSsize_t
    - PyErr_Format
    - PyMem_Free
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t *

      seq_as_ssize_array(PyObject *seq, Py_ssize_t len, int is_shape)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:892,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:894,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ndbuf
    - flags
    argTypes:
    - ndbuf_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 910
    functionName: strides_from_shape
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 1
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t *

      strides_from_shape(const ndbuf_t *ndbuf, int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:936,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:943,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:966,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 6
    argNames:
    - len
    - itemsize
    - offset
    - shape
    - strides
    - ndim
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts:
    - condition: (ndim >= 0)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 969
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 969
    functionName: verify_structure
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int verify_structure(Py_ssize_t len, Py_ssize_t itemsize, Py_ssize_t
      offset,\n                 const Py_ssize_t *shape, const Py_ssize_t *strides,\n
      \                Py_ssize_t ndim)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1039,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1040,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1048,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1050,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1054,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1056,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1083,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1085,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - ndbuf
    argTypes:
    - ndbuf_t*
    assertStmts:
    - condition: (base->ndim > 0)
      pos:
        line_end: 1038
        line_start: 1038
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (base->suboffsets == NULL)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 1106
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1106
    functionName: init_suboffsets
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int init_suboffsets(ndbuf_t *ndbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - base
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1117
    functionName: init_len
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_len(Py_buffer *base)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1128,1
    - Dst: seq_as_ssize_array
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1137,1
    - Dst: seq_as_ssize_array
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1143,1
    - Dst: strides_from_shape
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1146,1
    - Dst: verify_structure
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1150,1
    - Dst: init_len
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1158,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1161,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1163,1
    - Dst: init_suboffsets
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1170,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - ndbuf
    - shape
    - strides
    - ndim
    argTypes:
    - ndbuf_t*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1174
    functionName: init_structure
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - seq_as_ssize_array
    - verify_structure
    - init_suboffsets
    - init_len
    - strides_from_shape
    - PyBuffer_IsContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int init_structure(ndbuf_t *ndbuf, PyObject *shape, PyObject *strides,\n
      \              Py_ssize_t ndim)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1186,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1187,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1189,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1196,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1200,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1205,1
    - Dst: get_itemsize
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1212,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1215,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1223,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1228,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1229,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1233,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1237,1
    - Dst: ndbuf_new
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1243,1
    - Dst: init_simple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1248,1
    - Dst: init_structure
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1250,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1257,1
    - Dst: ndbuf_free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 6
    argNames:
    - items
    - shape
    - strides
    - offset
    - format
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1260
    functionName: init_ndbuf
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - get_itemsize
    - Py_INCREF
    - init_simple
    - ndbuf_new
    - PyErr_Format
    - PyErr_SetString
    - init_structure
    - CHECK_LIST_OR_TUPLE
    - PySequence_Fast_GET_SIZE
    - ndbuf_free
    linkageType: ''
    returnType: ndbuf_t
    signature: "ndbuf_t *\ninit_ndbuf(PyObject *items, PyObject *shape, PyObject *strides,\n
      \          Py_ssize_t offset, PyObject *format, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_ndbuf
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1270,1
    - Dst: ndbuf_push
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - nd
    - items
    - shape
    - strides
    - offset
    - format
    - flags
    argTypes:
    - NDArrayObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1263
    functionDepth: 4
    functionLinenumber: 1263
    functionLinenumberEnd: 1276
    functionName: ndarray_push_base
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - init_ndbuf
    - ndbuf_push
    linkageType: ''
    returnType: int
    signature: "int ndarray_push_base(NDArrayObject *nd, PyObject *items,\n                  PyObject
      *shape, PyObject *strides,\n                  Py_ssize_t offset, PyObject *format,
      int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1296,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1301,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1304,1
    - Dst: ndarray_init_staticbuf
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1312,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1323,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1329,1
    - Dst: ndarray_push_base
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1341,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1279
    functionDepth: 5
    functionLinenumber: 1279
    functionLinenumberEnd: 1342
    functionName: ndarray_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_CheckBuffer
    - ndarray_push_base
    - ndarray_init_staticbuf
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - init_flags
    linkageType: ''
    returnType: int
    signature: int ndarray_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1364,1
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1368,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1369,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1374,1
    - Dst: ndarray_push_base
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1345
    functionDepth: 5
    functionLinenumber: 1345
    functionLinenumberEnd: 1384
    functionName: ndarray_push
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndarray_push_base
    - ND_IS_CONSUMER
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_push(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1391,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1392,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1397,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1403,1
    - Dst: ndbuf_pop
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1387
    functionDepth: 4
    functionLinenumber: 1387
    functionLinenumberEnd: 1410
    functionName: ndarray_pop
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndbuf_pop
    - ND_IS_CONSUMER
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_pop(PyObject *self, PyObject *dummy)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1425,1
    - Dst: REQ_SHAPE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1437,1
    - Dst: REQ_STRIDES
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1438,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1448,1
    - Dst: REQ_WRITABLE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1455,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1456,1
    - Dst: REQ_FORMAT
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1460,1
    - Dst: REQ_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1469,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1469,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1470,1
    - Dst: REQ_F_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1474,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1474,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1475,1
    - Dst: REQ_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1479,1
    - Dst: ND_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1480,1
    - Dst: REQ_INDIRECT
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1484,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1485,1
    - Dst: REQ_STRIDES
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1489,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1490,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1491,1
    - Dst: REQ_SHAPE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1497,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1503,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1515,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1515,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1518,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1518,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1521,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1522,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1528,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 64
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - NDArrayObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1416
    functionDepth: 1
    functionLinenumber: 1416
    functionLinenumberEnd: 1532
    functionName: ndarray_getbuf
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_C_CONTIGUOUS
    - REQ_SHAPE
    - REQ_ANY_CONTIGUOUS
    - ND_ANY_CONTIGUOUS
    - Py_INCREF
    - REQ_C_CONTIGUOUS
    - REQ_INDIRECT
    - PyBuffer_IsContiguous
    - REQ_STRIDES
    - PyErr_Format
    - PyErr_SetString
    - REQ_FORMAT
    - REQ_WRITABLE
    - ND_FORTRAN_CONTIGUOUS
    - PyObject_GetBuffer
    - REQ_F_CONTIGUOUS
    linkageType: ''
    returnType: int
    signature: int ndarray_getbuf(NDArrayObject *self, Py_buffer *view, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1537,1
    - Dst: ndbuf_delete
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - NDArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1534
    functionDepth: 3
    functionLinenumber: 1534
    functionLinenumberEnd: 1542
    functionName: ndarray_releasebuf
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_IS_CONSUMER
    - ndbuf_delete
    linkageType: ''
    returnType: void
    signature: void ndarray_releasebuf(NDArrayObject *self, Py_buffer *view)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1563,1
    - Dst: SIMPLE_FORMAT
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1563,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1571,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - base
    - index
    argTypes:
    - Py_buffer*
    - Py_ssize_t
    assertStmts:
    - condition: (base->ndim == 1 && SIMPLE_FORMAT(base->format))
      pos:
        line_end: 1562
        line_start: 1562
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 1585
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1585
    functionName: ptr_from_index
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - SIMPLE_FORMAT
    - assert
    - ADJUST_PTR
    - PyErr_SetString
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_index(Py_buffer *base, Py_ssize_t index)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1595,1
    - Dst: ptr_from_index
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1599,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1604,1
    - Dst: ndarray_new
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1610,1
    - Dst: ndarray_init_staticbuf
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1614,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1615,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1629,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - NDArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1633
    functionName: ndarray_item
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - init_flags
    - Py_DECREF
    - unpack_single
    - ndarray_init_staticbuf
    - PyErr_SetString
    - ptr_from_index
    - ndarray_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_item(NDArrayObject *self, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1716,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1719,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - key
    - dim
    argTypes:
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1738
    functionName: init_slice
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PySlice_AdjustIndices
    - PySlice_Unpack
    linkageType: ''
    returnType: int
    signature: int init_slice(Py_buffer *base, PyObject *key, int dim)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1746,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1747,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1753,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1772,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1773,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1774,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - base
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1777
    functionName: copy_structure
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyMem_XFree
    linkageType: ''
    returnType: int
    signature: int copy_structure(Py_buffer *base)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1787,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1787,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1788,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1791,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1795,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1799,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1800,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1801,1
    - Dst: ndarray_item
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1803,1
    - Dst: ndarray_new
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1806,1
    - Dst: ndarray_init_staticbuf
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1811,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1812,1
    - Dst: copy_structure
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1819,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1820,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1825,1
    - Dst: init_slice
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1827,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1830,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1835,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1837,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1838,1
    - Dst: init_slice
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1840,1
    - Dst: init_len
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1848,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1849,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1855,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1859,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - NDArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1861
    functionName: ndarray_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyTuple_GET_SIZE
    - init_len
    - init_flags
    - init_slice
    - PyErr_Occurred
    - Py_INCREF
    - PySlice_Check
    - PyLong_AsSsize_t
    - ndarray_init_staticbuf
    - PyTuple_Check
    - PyErr_Format
    - Py_DECREF
    - unpack_single
    - ndarray_item
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - copy_structure
    - ndarray_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_subscript(NDArrayObject *self, PyObject *key)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1875,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1879,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1884,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1884,1
    - Dst: pack_single
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1886,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1889,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1893,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1895,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1896,1
    - Dst: ptr_from_index
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1899,1
    - Dst: pack_single
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1903,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1907,1
    - Dst: ndarray_subscript
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1910,1
    - Dst: copy_buffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1914,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1917,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - NDArrayObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1864
    functionDepth: 4
    functionLinenumber: 1864
    functionLinenumberEnd: 1919
    functionName: ndarray_ass_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - PyIndex_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyTuple_Check
    - ndarray_subscript
    - PyBuffer_Release
    - PyErr_SetString
    - ptr_from_index
    - pack_single
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int ndarray_ass_subscript(NDArrayObject *self, PyObject *key, PyObject
      *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1928,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1931,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1932,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1936,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1939,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1941,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1946,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1949,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1957
    functionName: slice_indices
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - Py_DECREF
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_indices(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1985,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1987,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1994,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:1997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - array
    - len
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 2001
    functionName: ssize_array_as_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ssize_array_as_tuple(Py_ssize_t *array, Py_ssize_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 2003
    functionDepth: 0
    functionLinenumber: 2003
    functionLinenumberEnd: 2007
    functionName: ndarray_get_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_flags(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2009
    functionDepth: 0
    functionLinenumber: 2009
    functionLinenumberEnd: 2014
    functionName: ndarray_get_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_offset(NDArrayObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2026
    functionName: ndarray_get_obj
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_obj(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2033
    functionName: ndarray_get_nbytes
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_nbytes(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2035
    functionDepth: 1
    functionLinenumber: 2035
    functionLinenumberEnd: 2040
    functionName: ndarray_get_readonly
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_readonly(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2042
    functionDepth: 0
    functionLinenumber: 2042
    functionLinenumberEnd: 2047
    functionName: ndarray_get_itemsize
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_itemsize(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2049
    functionDepth: 1
    functionLinenumber: 2049
    functionLinenumberEnd: 2055
    functionName: ndarray_get_format
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_format(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2062
    functionName: ndarray_get_ndim
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_ndim(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2064
    functionDepth: 2
    functionLinenumber: 2064
    functionLinenumberEnd: 2069
    functionName: ndarray_get_shape
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_shape(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2071
    functionDepth: 2
    functionLinenumber: 2071
    functionLinenumberEnd: 2076
    functionName: ndarray_get_strides
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_strides(NDArrayObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssize_array_as_tuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - NDArrayObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2078
    functionDepth: 2
    functionLinenumber: 2078
    functionLinenumberEnd: 2083
    functionName: ndarray_get_suboffsets
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ssize_array_as_tuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_get_suboffsets(NDArrayObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2089,1
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2091,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2092,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2085
    functionDepth: 1
    functionLinenumber: 2085
    functionLinenumberEnd: 2097
    functionName: ndarray_c_contig
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - ND_C_CONTIGUOUS
    - PyBuffer_IsContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_c_contig(PyObject *self, PyObject *dummy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2103,1
    - Dst: ND_FORTRAN_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2105,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2106,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2111
    functionName: ndarray_fortran_contig
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - ND_FORTRAN_CONTIGUOUS
    - PyBuffer_IsContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_fortran_contig(PyObject *self, PyObject *dummy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2117,1
    - Dst: ND_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2119,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2120,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2125
    functionName: ndarray_contig
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ND_ANY_CONTIGUOUS
    - PyBool_FromLong
    - PyBuffer_IsContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_contig(PyObject *self, PyObject *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ndarray_as_list
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2153
    functionName: ndarray_tolist
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - ndarray_as_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_tolist(PyObject *self, PyObject *dummy)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ND_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2164,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2167,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2168,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2169,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2171,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2173,1
    - Dst: strides_from_shape
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2180,1
    - Dst: copy_buffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2183,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2186,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2189,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (src->shape != NULL)
      pos:
        line_end: 2166
        line_start: 2166
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (src->strides != NULL)
      pos:
        line_end: 2167
        line_start: 2167
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - condition: (src->ndim > 0)
      pos:
        line_end: 2168
        line_start: 2168
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    constantsTouched: []
    func_position:
      end: 2192
      start: 2155
    functionDepth: 2
    functionLinenumber: 2155
    functionLinenumberEnd: 2192
    functionName: ndarray_tobytes
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - PyBytes_FromStringAndSize
    - ND_C_CONTIGUOUS
    - PyErr_NoMemory
    - strides_from_shape
    - PyMem_XFree
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_tobytes(PyObject *self, PyObject *dummy)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2203,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2208,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2213,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2225
    functionName: ndarray_add_suboffsets
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_add_suboffsets(PyObject *self, PyObject *dummy)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2244,1
    - Dst: NDArray_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2246,1
    - Dst: ND_IS_CONSUMER
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2246,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2250,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2257,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2259,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2260,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2268,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2272,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2273,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2278,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2282,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2287,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2291,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2295,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2299,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2300
    functionName: ndarray_memoryview_from_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - strcpy
    - memcpy
    - NDArray_Check
    - ND_IS_CONSUMER
    - PyErr_NoMemory
    - PyMem_Realloc
    - strlen
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyMemoryView_FromBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ndarray_memoryview_from_buffer(PyObject *self, PyObject *dummy)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2314,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2318,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2319,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2323,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2327,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2328,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2334,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2335,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2336,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2339,1
    - Dst: PyBuffer_GetPointer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2346,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2347,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2350,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2305
    functionDepth: 1
    functionLinenumber: 2305
    functionLinenumberEnd: 2352
    functionName: get_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyBuffer_GetPointer
    - PySequence_Fast_GET_ITEM
    - unpack_single
    - PyLong_AsSsize_t
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - CHECK_LIST_OR_TUPLE
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_pointer(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2354
    functionDepth: 1
    functionLinenumber: 2354
    functionLinenumberEnd: 2358
    functionName: get_sizeof_void_p
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_sizeof_void_p(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2366,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2367,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2372,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2377,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2378,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - order
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2387
    functionName: get_ascii_order
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsASCIIString
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: char
    signature: char get_ascii_order(PyObject *order)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2399,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2403,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2404,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2409,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2410,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2414,1
    - Dst: get_ascii_order
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2419,1
    - Dst: PyMemoryView_GetContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2390
    functionDepth: 2
    functionLinenumber: 2390
    functionLinenumberEnd: 2424
    functionName: get_contiguous
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyMemoryView_GetContiguous
    - PyLong_AsLong
    - PyErr_Occurred
    - get_ascii_order
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2438,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2442,1
    - Dst: get_ascii_order
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2446,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2451,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2453,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2457,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2461,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2464,1
    - Dst: PyMem_XFree
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2427
    functionDepth: 2
    functionLinenumber: 2427
    functionLinenumberEnd: 2467
    functionName: py_buffer_to_contiguous
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - get_ascii_order
    - PyErr_NoMemory
    - PyMem_XFree
    - PyBuffer_ToContiguous
    - PyBuffer_Release
    - PyMem_Malloc
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_buffer_to_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2473,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2476,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - fmt1
    - fmt2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2479
    functionName: fmtcmp
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fmtcmp(const char *fmt1, const char *fmt2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - a1
    - a2
    - shape
    - ndim
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2499
      start: 2481
    functionDepth: 0
    functionLinenumber: 2481
    functionLinenumberEnd: 2499
    functionName: arraycmp
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int arraycmp(const Py_ssize_t *a1, const Py_ssize_t *a2, const Py_ssize_t
      *shape,\n         Py_ssize_t ndim)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2510,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2514,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2515,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2521,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2524,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2528,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2528,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2529,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2529,1
    - Dst: fmtcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2537,1
    - Dst: arraycmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2544,1
    - Dst: arraycmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2545,1
    - Dst: arraycmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2546,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2551,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2558,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2559,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2562,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2502
    functionDepth: 1
    functionLinenumber: 2502
    functionLinenumberEnd: 2564
    functionName: cmp_contig
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - fmtcmp
    - Py_INCREF
    - arraycmp
    - PyBuffer_IsContiguous
    - memcmp
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmp_contig(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2575,1
    - Dst: get_ascii_order
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2579,1
    - Dst: NDArray_Check
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2584,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2587,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2591,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2596,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2597,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2600,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2602
    functionName: is_contiguous
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - get_ascii_order
    - NDArray_Check
    - Py_INCREF
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_contiguous(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2613,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2617,1
    - Dst: ndarray_tobytes
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2621,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2604
    functionDepth: 3
    functionLinenumber: 2604
    functionLinenumberEnd: 2629
    functionName: ndarray_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - ndarray_tobytes
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t ndarray_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2712
    functionDepth: 1
    functionLinenumber: 2712
    functionLinenumberEnd: 2716
    functionName: staticarray_new
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      staticarray_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2732
    functionName: staticarray_init
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: int
    signature: int staticarray_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - StaticArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2738
    functionName: staticarray_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void staticarray_dealloc(StaticArrayObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - StaticArrayObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2742
    functionDepth: 1
    functionLinenumber: 2742
    functionLinenumberEnd: 2756
    functionName: staticarray_getbuf
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int staticarray_getbuf(StaticArrayObject *self, Py_buffer *view, int
      flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2834,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2838,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2839,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2840,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2842,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2843,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2844,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2846,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2850,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2851,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2855,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2859,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2860,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2861,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2862,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2863,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2864,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2865,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2866,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2867,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2869,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2870,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2871,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2872,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2873,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2874,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2875,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2876,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2877,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2878,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2879,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2880,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2881,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2882,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2883,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2884,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2885,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2887,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_testbuffer.c:2888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2829
    functionDepth: 1
    functionLinenumber: 2829
    functionLinenumberEnd: 2891
    functionName: PyInit__testbuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_testbuffer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyUnicode_FromString
    - PyObject_GetAttrString
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_TYPE
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testbuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: TABLES_LOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLES_LOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: TABLES_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TABLES_UNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NFRAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: TRACEBACK_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACEBACK_SIZE(NFRAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:137,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:138,1
    - Dst: vfprintf
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:139,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:140,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:141,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: tracemalloc_error
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - va_start
    - fflush
    - fprintf
    - vfprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void tracemalloc_error(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:160,1
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:160,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:161,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyThread_tss_is_created(&tracemalloc_reentrant_key))
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (ptr == REENTRANT)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: get_reentrant
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - PyThread_tss_is_created
    - PyThread_tss_get
    linkageType: ''
    returnType: int
    signature: int get_reentrant(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:173,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:174,1
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:174,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:177,1
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:177,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:178,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:181,1
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:181,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reentrant
    argTypes:
    - int
    assertStmts:
    - condition: (reentrant == 0 || reentrant == 1)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (!get_reentrant())
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (PyThread_tss_is_created(&tracemalloc_reentrant_key))
      pos:
        line_end: 173
        line_start: 173
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (get_reentrant())
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 184
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 184
    functionName: set_reentrant
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - PyThread_tss_set
    - PyThread_tss_is_created
    - get_reentrant
    linkageType: ''
    returnType: void
    signature: void set_reentrant(int reentrant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: get_reentrant
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_reentrant(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reentrant
    argTypes:
    - int
    assertStmts:
    - condition: (reentrant != tracemalloc_reentrant)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: set_reentrant
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void set_reentrant(int reentrant)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:211,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ht
    - pkey
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: hashtable_hash_pyobject
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _Py_HASHTABLE_READ_KEY
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_pyobject(_Py_hashtable_t *ht, const void
      *pkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:222,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:223,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ht
    - pkey
    - entry
    argTypes:
    - _Py_hashtable_t*
    - void*
    - _Py_hashtable_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: hashtable_compare_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - _Py_HASHTABLE_READ_KEY
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: "int hashtable_compare_unicode(_Py_hashtable_t *ht, const void *pkey,\n
      \                         const _Py_hashtable_entry_t *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:238,1
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ht
    - pkey
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 243
    functionName: hashtable_hash_pointer_t
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointer
    - _Py_HASHTABLE_READ_KEY
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_pointer_t(_Py_hashtable_t *ht, const void
      *pkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:252,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ht
    - pkey
    - entry
    argTypes:
    - _Py_hashtable_t*
    - void*
    - _Py_hashtable_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 259
    functionName: hashtable_compare_pointer_t
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - _Py_HASHTABLE_READ_KEY
    linkageType: ''
    returnType: int
    signature: "int hashtable_compare_pointer_t(_Py_hashtable_t *ht, const void *pkey,\n
      \                           const _Py_hashtable_entry_t *entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new_full
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key_size
    - data_size
    - hash_func
    - compare_func
    argTypes:
    - size_t
    - size_t
    - _Py_hashtable_hash_func
    - _Py_hashtable_compare_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: hashtable_new
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_new_full
    linkageType: ''
    returnType: _Py_hashtable_t
    signature: "_Py_hashtable_t *\nhashtable_new(size_t key_size, size_t data_size,\n
      \             _Py_hashtable_hash_func hash_func,\n              _Py_hashtable_compare_func
      compare_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw::malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: raw_malloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw::malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      raw_malloc(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw::free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: raw_free
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - raw::free
    linkageType: ''
    returnType: void
    signature: void raw_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ht
    - pkey
    argTypes:
    - _Py_hashtable_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 294
    functionName: hashtable_hash_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_READ_KEY
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t hashtable_hash_traceback(_Py_hashtable_t *ht, const void
      *pkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:305,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:306,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:319,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ht
    - pkey
    - entry
    argTypes:
    - _Py_hashtable_t*
    - void*
    - _Py_hashtable_entry_t*
    assertStmts:
    - condition: (PyUnicode_Compare(frame1->filename, frame2->filename) != 0)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 324
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 324
    functionName: hashtable_compare_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - _Py_HASHTABLE_READ_KEY
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: "int hashtable_compare_traceback(_Py_hashtable_t *ht, const void *pkey,\n
      \                           const _Py_hashtable_entry_t *entry)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:336,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:344,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:351,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:357,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:361,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:363,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:367,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:371,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:377,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:379,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:384,1
    - Dst: _Py_HASHTABLE_SET_NODATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:386,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:388,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - pyframe
    - frame
    argTypes:
    - PyFrameObject*
    - frame_t*
    assertStmts:
    - condition: (filename != NULL)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 396
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 396
    functionName: tracemalloc_get_frame
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - tracemalloc_error
    - Py_DECREF
    - Py_INCREF
    - _Py_HASHTABLE_SET_NODATA
    - PyFrame_GetLineNumber
    - PyUnicode_Check
    - assert
    - _Py_HASHTABLE_GET_ENTRY
    - _Py_HASHTABLE_ENTRY_READ_KEY
    linkageType: ''
    returnType: void
    signature: void tracemalloc_get_frame(PyFrameObject *pyframe, frame_t *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 421
    functionName: traceback_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t traceback_hash(traceback_t *traceback)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:430,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:433,1
    - Dst: tracemalloc_get_frame
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:439,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - traceback
    argTypes:
    - traceback_t*
    assertStmts:
    - condition: (traceback->frames[traceback->nframe].filename != NULL)
      pos:
        line_end: 439
        line_start: 439
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 445
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 445
    functionName: traceback_get_frames
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - tracemalloc_error
    - PyGILState_GetThisThreadState
    - tracemalloc_get_frame
    linkageType: ''
    returnType: void
    signature: void traceback_get_frames(traceback_t *traceback)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:454,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:454,1
    - Dst: traceback_get_frames
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:459,1
    - Dst: traceback_hash
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:462,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:465,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:467,1
    - Dst: TRACEBACK_SIZE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:473,1
    - Dst: raw_malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:475,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:478,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:482,1
    - Dst: _Py_HASHTABLE_SET_NODATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:484,1
    - Dst: raw_free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:485,1
    - Dst: tracemalloc_error
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 494
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 494
    functionName: traceback_new
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - traceback_get_frames
    - raw_malloc
    - tracemalloc_error
    - memcpy
    - _Py_HASHTABLE_SET_NODATA
    - traceback_hash
    - PyGILState_Check
    - raw_free
    - assert
    - _Py_HASHTABLE_GET_ENTRY
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - TRACEBACK_SIZE
    linkageType: ''
    returnType: traceback_t
    signature: 'traceback_t *

      traceback_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_PDATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:504,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:506,1
    - Dst: _Py_hashtable_set
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - old_traces
    - entry
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 513
    functionName: tracemalloc_use_domain_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_PDATA
    - _Py_hashtable_set
    - _Py_HASHTABLE_ENTRY_READ_KEY
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_use_domain_cb(_Py_hashtable_t *old_traces,\n                           _Py_hashtable_entry_t
      *entry, void *user_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:523,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:525,1
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:533,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:536,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!_Py_tracemalloc_config.use_domain)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 546
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 546
    functionName: tracemalloc_use_domain
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - hashtable_new
    - _Py_hashtable_foreach
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: int
    signature: int tracemalloc_use_domain(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:555,1
    - Dst: _Py_HASHTABLE_POP
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:559,1
    - Dst: _Py_HASHTABLE_POP
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:562,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts:
    - condition: (_Py_tracemalloc_config.tracing)
      pos:
        line_end: 554
        line_start: 554
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace.size)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 570
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 570
    functionName: tracemalloc_remove_trace
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_HASHTABLE_POP
    linkageType: ''
    returnType: void
    signature: void tracemalloc_remove_trace(unsigned int domain, uintptr_t ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 574
    functionName: REMOVE_TRACE
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMOVE_TRACE(ptr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:586,1
    - Dst: traceback_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:588,1
    - Dst: tracemalloc_use_domain
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:596,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:602,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:605,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:610,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:611,1
    - Dst: _Py_HASHTABLE_ENTRY_WRITE_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:616,1
    - Dst: _Py_HASHTABLE_SET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:623,1
    - Dst: _Py_HASHTABLE_SET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:626,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:633,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - domain
    - ptr
    - size
    argTypes:
    - unsigned int
    - uintptr_t
    - size_t
    assertStmts:
    - condition: (_Py_tracemalloc_config.tracing)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (tracemalloc_traced_memory >= trace.size)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (tracemalloc_traced_memory <= SIZE_MAX - size)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 638
      start: 576
    functionDepth: 4
    functionLinenumber: 576
    functionLinenumberEnd: 638
    functionName: tracemalloc_add_trace
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_use_domain
    - _Py_HASHTABLE_SET
    - traceback_new
    - _Py_HASHTABLE_ENTRY_WRITE_DATA
    - _Py_HASHTABLE_ENTRY_READ_DATA
    - assert
    - _Py_HASHTABLE_GET_ENTRY
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_add_trace(unsigned int domain, uintptr_t ptr,\n                      size_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 642
    functionName: ADD_TRACE
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TRACE(ptr, size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:650,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:653,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:655,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:659,1
    - Dst: ADD_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:660,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:662,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:663,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - use_calloc
    - ctx
    - nelem
    - elsize
    argTypes:
    - int
    - void*
    - size_t
    - size_t
    assertStmts:
    - condition: (elsize == 0 || nelem <= SIZE_MAX / elsize)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 668
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 668
    functionName: tracemalloc_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - ADD_TRACE
    - PyMemAllocatorEx*::calloc
    - PyMemAllocatorEx*::free
    - TABLES_UNLOCK
    - PyMemAllocatorEx*::malloc
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:677,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:684,1
    - Dst: REMOVE_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:689,1
    - Dst: ADD_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:692,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:702,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:704,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:709,1
    - Dst: ADD_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:710,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:712,1
    - Dst: PyMemAllocatorEx*::free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:713,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:716,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 719
    functionName: tracemalloc_realloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - ADD_TRACE
    - PyMemAllocatorEx*::realloc
    - PyMemAllocatorEx*::free
    - Py_UNREACHABLE
    - TABLES_UNLOCK
    - REMOVE_TRACE
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_realloc(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMemAllocatorEx*::free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:733,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:735,1
    - Dst: REMOVE_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:736,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 738
    functionName: tracemalloc_free
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    - PyMemAllocatorEx*::free
    - REMOVE_TRACE
    linkageType: ''
    returnType: void
    signature: void tracemalloc_free(void *ctx, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:746,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:749,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:751,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:757,1
    - Dst: tracemalloc_alloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:759,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - use_calloc
    - ctx
    - nelem
    - elsize
    argTypes:
    - int
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 763
    functionName: tracemalloc_alloc_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyMemAllocatorEx*::calloc
    - tracemalloc_alloc
    - set_reentrant
    - get_reentrant
    - PyMemAllocatorEx*::malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_alloc_gil(int use_calloc, void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc_gil
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 4
    functionLinenumber: 766
    functionLinenumberEnd: 770
    functionName: tracemalloc_malloc_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc_gil
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_malloc_gil(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_alloc_gil
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 4
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: tracemalloc_calloc_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_alloc_gil
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_calloc_gil(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:785,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:792,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:794,1
    - Dst: REMOVE_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:795,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:796,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:804,1
    - Dst: tracemalloc_realloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:806,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 810
    functionName: tracemalloc_realloc_gil
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - PyMemAllocatorEx*::realloc
    - tracemalloc_realloc
    - set_reentrant
    - get_reentrant
    - TABLES_UNLOCK
    - REMOVE_TRACE
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_realloc_gil(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:820,1
    - Dst: PyMemAllocatorEx*::calloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:823,1
    - Dst: PyMemAllocatorEx*::malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:825,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:831,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:833,1
    - Dst: tracemalloc_alloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:834,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:835,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - use_calloc
    - ctx
    - nelem
    - elsize
    argTypes:
    - int
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 839
    functionName: tracemalloc_raw_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyMemAllocatorEx*::calloc
    - tracemalloc_alloc
    - PyGILState_Release
    - set_reentrant
    - get_reentrant
    - PyMemAllocatorEx*::malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_raw_alloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 846
    functionName: tracemalloc_raw_malloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_raw_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_malloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_raw_alloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 4
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: tracemalloc_raw_calloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_raw_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_calloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:862,1
    - Dst: PyMemAllocatorEx*::realloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:866,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:869,1
    - Dst: REMOVE_TRACE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:870,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:871,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:879,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:881,1
    - Dst: tracemalloc_realloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:882,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:883,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ctx
    - ptr
    - new_size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 887
    functionName: tracemalloc_raw_realloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - PyGILState_Ensure
    - PyMemAllocatorEx*::realloc
    - tracemalloc_realloc
    - PyGILState_Release
    - set_reentrant
    - get_reentrant
    - TABLES_UNLOCK
    - REMOVE_TRACE
    linkageType: ''
    returnType: void
    signature: 'void *

      tracemalloc_raw_realloc(void *ctx, void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ht
    - entry
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 900
    functionName: tracemalloc_clear_filename
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_clear_filename(_Py_hashtable_t *ht, _Py_hashtable_entry_t
      *entry,\n                           void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:909,1
    - Dst: raw_free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ht
    - entry
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 912
    functionName: traceback_free_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_READ_KEY
    - raw_free
    linkageType: ''
    returnType: int
    signature: "int traceback_free_traceback(_Py_hashtable_t *ht, _Py_hashtable_entry_t
      *entry,\n                         void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:920,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:920,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:922,1
    - Dst: _Py_hashtable_clear
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:923,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:926,1
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:928,1
    - Dst: _Py_hashtable_clear
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:929,1
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:931,1
    - Dst: _Py_hashtable_clear
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 919
        line_start: 919
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 933
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 933
    functionName: tracemalloc_clear_traces
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - TABLES_UNLOCK
    - _Py_hashtable_foreach
    - PyGILState_Check
    - assert
    - _Py_hashtable_clear
    linkageType: ''
    returnType: void
    signature: void tracemalloc_clear_traces(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:940,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:948,1
    - Dst: PyThread_tss_create
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:951,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:953,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:955,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:963,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:965,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:971,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:975,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:980,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:986,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:994,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:998,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1001,1
    - Dst: traceback_hash
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1007,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 1011
    functionName: tracemalloc_init
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_create
    - PyUnicode_FromString
    - PyUnicode_InternInPlace
    - PyErr_NoMemory
    - PyMem_GetAllocator
    - traceback_hash
    - PyErr_SetFromErrno
    - hashtable_new
    - PyErr_SetString
    - PyThread_allocate_lock
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int tracemalloc_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_stop
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1021,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1024,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1025,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1026,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1030,1
    - Dst: PyThread_tss_delete
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1036,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1040
    functionName: tracemalloc_deinit
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_stop
    - PyThread_free_lock
    - PyThread_tss_delete
    - _Py_hashtable_destroy
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void tracemalloc_deinit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1050,1
    - Dst: tracemalloc_init
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1056,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1065,1
    - Dst: TRACEBACK_SIZE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1069,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1070,1
    - Dst: raw_malloc
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1071,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1073,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1084,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1085,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1094,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1095,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1098,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - max_nframe
    argTypes:
    - int
    assertStmts:
    - condition: (tracemalloc_traceback == NULL)
      pos:
        line_end: 1069
        line_start: 1069
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - condition: (1 <= max_nframe && max_nframe <= MAX_NFRAME)
      pos:
        line_end: 1064
        line_start: 1064
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 1105
      start: 1043
    functionDepth: 4
    functionLinenumber: 1043
    functionLinenumberEnd: 1105
    functionName: tracemalloc_start
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - PyErr_NoMemory
    - PyMem_GetAllocator
    - tracemalloc_init
    - PyErr_Format
    - assert
    - raw_malloc
    - TRACEBACK_SIZE
    linkageType: ''
    returnType: int
    signature: int tracemalloc_start(int max_nframe)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1119,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1121,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1122,1
    - Dst: tracemalloc_clear_traces
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1124,1
    - Dst: raw_free
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1108
    functionDepth: 4
    functionLinenumber: 1108
    functionLinenumberEnd: 1129
    functionName: tracemalloc_stop
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - raw_free
    - tracemalloc_clear_traces
    linkageType: ''
    returnType: void
    signature: void tracemalloc_stop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1139
    functionDepth: 1
    functionLinenumber: 1139
    functionLinenumberEnd: 1144
    functionName: _tracemalloc_is_tracing_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_is_tracing_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1160,1
    - Dst: tracemalloc_clear_traces
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1161,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1153
    functionDepth: 4
    functionLinenumber: 1153
    functionLinenumberEnd: 1165
    functionName: _tracemalloc_clear_traces_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_clear_traces
    - set_reentrant
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_clear_traces_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1177,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1178,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1180,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1182,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - frame
    argTypes:
    - frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1188
    functionName: frame_to_pyobject
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyLong_FromUnsignedLong
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_to_pyobject(frame_t *frame)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_GET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1198,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1199,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1204,1
    - Dst: frame_to_pyobject
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1211,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1214,1
    - Dst: _Py_HASHTABLE_SET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1219,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1220,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - traceback
    - intern_table
    argTypes:
    - traceback_t*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1227
    functionName: traceback_to_pyobject
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_SET
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - frame_to_pyobject
    - _Py_HASHTABLE_GET
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      traceback_to_pyobject(traceback_t *traceback, _Py_hashtable_t *intern_table)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1237,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1243,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1246,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1250,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1253,1
    - Dst: traceback_to_pyobject
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1255,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1257,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - domain
    - trace
    - intern_tracebacks
    argTypes:
    - unsigned int
    - trace_t*
    - _Py_hashtable_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1230
    functionDepth: 3
    functionLinenumber: 1230
    functionLinenumberEnd: 1263
    functionName: trace_to_pyobject
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyLong_FromSize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    - traceback_to_pyobject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntrace_to_pyobject(unsigned int domain, trace_t *trace,\n
      \                 _Py_hashtable_t *intern_tracebacks)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1284,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1290,1
    - Dst: trace_to_pyobject
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1292,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1296,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - traces
    - entry
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1272
    functionDepth: 4
    functionLinenumber: 1272
    functionLinenumberEnd: 1302
    functionName: tracemalloc_get_traces_fill
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_HASHTABLE_ENTRY_READ_DATA
    - trace_to_pyobject
    - PyList_Append
    - _Py_HASHTABLE_ENTRY_READ_KEY
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_get_traces_fill(_Py_hashtable_t *traces, _Py_hashtable_entry_t
      *entry,\n                            void *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_READ_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tracebacks
    - entry
    - user_data
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1314
    functionName: tracemalloc_pyobject_decref_cb
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_HASHTABLE_ENTRY_READ_DATA
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int tracemalloc_pyobject_decref_cb(_Py_hashtable_t *tracebacks,\n
      \                              _Py_hashtable_entry_t *entry,\n                               void
      *user_data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1338,1
    - Dst: hashtable_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1347,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1352,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1356,1
    - Dst: _Py_hashtable_copy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1357,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1358,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1361,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1365,1
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1366,1
    - Dst: set_reentrant
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1368,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1375,1
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1379,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1381,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1384,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1329
    functionDepth: 4
    functionLinenumber: 1329
    functionLinenumberEnd: 1388
    functionName: _tracemalloc__get_traces_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - _Py_hashtable_copy
    - Py_CLEAR
    - PyErr_NoMemory
    - _Py_hashtable_foreach
    - set_reentrant
    - hashtable_new
    - _Py_hashtable_destroy
    - PyList_New
    - TABLES_UNLOCK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc__get_traces_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1400,1
    - Dst: _Py_HASHTABLE_GET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1403,1
    - Dst: _Py_HASHTABLE_GET
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1406,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1414
    functionName: tracemalloc_get_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - _Py_HASHTABLE_GET
    linkageType: ''
    returnType: traceback_t
    signature: 'traceback_t *

      tracemalloc_get_traceback(unsigned int domain, uintptr_t ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1439,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1440,1
    - Dst: tracemalloc_get_traceback
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1447,1
    - Dst: traceback_to_pyobject
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1452
    functionName: _tracemalloc__get_object_traceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_traceback
    - Py_TYPE
    - PyType_IS_GC
    - traceback_to_pyobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc__get_object_traceback(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1456
    functionName: PUTS
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1460,1
    - Dst: _Py_DumpASCII
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1461,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1462,1
    - Dst: _Py_DumpDecimal
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1463,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - frame_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1465
    functionName: _PyMem_DumpFrame
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - _Py_DumpASCII
    - PUTS
    - _Py_DumpDecimal
    linkageType: ''
    returnType: void
    signature: void _PyMem_DumpFrame(int fd, frame_t * frame)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1476,1
    - Dst: tracemalloc_get_traceback
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1481,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1485,1
    - Dst: _PyMem_DumpFrame
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1487,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - ptr
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1469
    functionDepth: 2
    functionLinenumber: 1469
    functionLinenumberEnd: 1490
    functionName: _PyMem_DumpTraceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_get_traceback
    - PUTS
    - _PyMem_DumpFrame
    linkageType: ''
    returnType: void
    signature: void _PyMem_DumpTraceback(int fd, const void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_start
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - nframe
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1508
    functionDepth: 5
    functionLinenumber: 1508
    functionLinenumberEnd: 1516
    functionName: _tracemalloc_start_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_start_impl(PyObject *module, int nframe)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_stop
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1527
    functionDepth: 5
    functionLinenumber: 1527
    functionLinenumberEnd: 1533
    functionName: _tracemalloc_stop_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_stop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_stop_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1550
    functionName: _tracemalloc_get_traceback_limit_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traceback_limit_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_size
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1568,1
    - Dst: _Py_hashtable_size
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1569,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1571,1
    - Dst: _Py_hashtable_size
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1572,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1573,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1576
    functionName: _tracemalloc_get_tracemalloc_memory_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - PyLong_FromSize_t
    - _Py_hashtable_size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_tracemalloc_memory_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1595,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1597,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1600,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1603
    functionName: _tracemalloc_get_traced_memory_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traced_memory_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1636,1
    - Dst: tracemalloc_init
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1632
    functionDepth: 4
    functionLinenumber: 1632
    functionLinenumberEnd: 1646
    functionName: PyInit__tracemalloc
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - tracemalloc_init
    - Py_DECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__tracemalloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1652,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1652,1
    - Dst: tracemalloc_start
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nframe
    argTypes:
    - int
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1651
        line_start: 1651
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 1657
      start: 1649
    functionDepth: 5
    functionLinenumber: 1649
    functionLinenumberEnd: 1657
    functionName: _PyTraceMalloc_Init
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - tracemalloc_start
    - assert
    - PyGILState_Check
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_Init(int nframe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1663,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1663,1
    - Dst: tracemalloc_deinit
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1662
        line_start: 1662
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 1665
      start: 1660
    functionDepth: 2
    functionLinenumber: 1660
    functionLinenumberEnd: 1665
    functionName: _PyTraceMalloc_Fini
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - tracemalloc_deinit
    - PyGILState_Check
    linkageType: ''
    returnType: void
    signature: void _PyTraceMalloc_Fini(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1679,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1681,1
    - Dst: tracemalloc_add_trace
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1682,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1683,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - domain
    - ptr
    - size
    argTypes:
    - unsigned int
    - uintptr_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1667
    functionDepth: 5
    functionLinenumber: 1667
    functionLinenumberEnd: 1687
    functionName: PyTraceMalloc_Track
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_LOCK
    - PyGILState_Ensure
    - PyGILState_Release
    - TABLES_UNLOCK
    - tracemalloc_add_trace
    linkageType: ''
    returnType: int
    signature: "int PyTraceMalloc_Track(unsigned int domain, uintptr_t ptr,\n                    size_t
      size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1698,1
    - Dst: tracemalloc_remove_trace
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1699,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1690
    functionDepth: 2
    functionLinenumber: 1690
    functionLinenumberEnd: 1703
    functionName: PyTraceMalloc_Untrack
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 1
    functionsReached:
    - TABLES_UNLOCK
    - TABLES_LOCK
    - tracemalloc_remove_trace
    linkageType: ''
    returnType: int
    signature: int PyTraceMalloc_Untrack(unsigned int domain, uintptr_t ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1714,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1714,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1722,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1723,1
    - Dst: TABLES_LOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1733,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1736,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1739,1
    - Dst: traceback_new
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1744,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1747,1
    - Dst: _Py_HASHTABLE_ENTRY_WRITE_DATA
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1749,1
    - Dst: TABLES_UNLOCK
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1713
        line_start: 1713
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    constantsTouched: []
    func_position:
      end: 1757
      start: 1711
    functionDepth: 4
    functionLinenumber: 1711
    functionLinenumberEnd: 1757
    functionName: _PyTraceMalloc_NewReference
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 0
    functionsReached:
    - TABLES_LOCK
    - traceback_new
    - _Py_HASHTABLE_ENTRY_WRITE_DATA
    - _Py_HASHTABLE_ENTRY_READ_DATA
    - TABLES_UNLOCK
    - PyGILState_Check
    - Py_TYPE
    - assert
    - _Py_HASHTABLE_GET_ENTRY
    - PyType_IS_GC
    linkageType: ''
    returnType: int
    signature: int _PyTraceMalloc_NewReference(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tracemalloc_get_traceback
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1765,1
    - Dst: traceback_to_pyobject
      Src: /src/Python-3.8.3/Modules/_tracemalloc.c:1769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - domain
    - ptr
    argTypes:
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1760
    functionDepth: 3
    functionLinenumber: 1760
    functionLinenumberEnd: 1770
    functionName: _PyTraceMalloc_GetTraceback
    functionSourceFile: /src/Python-3.8.3/Modules/_tracemalloc.c
    functionUses: 1
    functionsReached:
    - tracemalloc_get_traceback
    - traceback_to_pyobject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceMalloc_GetTraceback(unsigned int domain, uintptr_t ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:96,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:98,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:99,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - err
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: set_error_attr
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_XDECREF
    - Py_DECREF
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int set_error_attr(PyObject *err, const char *name, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetErrorLineNumber
      Src: /src/Python-3.8.3/Modules/pyexpat.c:115,1
    - Dst: XML_GetErrorColumnNumber
      Src: /src/Python-3.8.3/Modules/pyexpat.c:116,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/pyexpat.c:118,1
    - Dst: XML_ErrorString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:119,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/pyexpat.c:122,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:123,1
    - Dst: set_error_attr
      Src: /src/Python-3.8.3/Modules/pyexpat.c:125,1
    - Dst: set_error_attr
      Src: /src/Python-3.8.3/Modules/pyexpat.c:126,1
    - Dst: set_error_attr
      Src: /src/Python-3.8.3/Modules/pyexpat.c:127,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:128,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - self
    - code
    argTypes:
    - xmlparseobject*
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: set_error
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 8
    functionsReached:
    - XML_ErrorString
    - Py_DECREF
    - XML_GetErrorColumnNumber
    - PyUnicode_FromFormat
    - PyErr_SetObject
    - PyObject_CallFunctionObjArgs
    - XML_GetErrorLineNumber
    - Py_XDECREF
    - set_error_attr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error(xmlparseobject *self, enum XML_Error code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: have_handler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int have_handler(xmlparseobject *self, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/pyexpat.c:153,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/pyexpat.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: conv_string_to_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_DecodeUTF8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      conv_string_to_unicode(const XML_Char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/pyexpat.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: conv_string_len_to_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      conv_string_len_to_unicode(const XML_Char *str, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - parser
    - context
    - base
    - systemId
    - publicId
    argTypes:
    - XML_Parser
    - XML_Char*
    - XML_Char*
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: error_external_entity_ref_handler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int error_external_entity_ref_handler(XML_Parser parser,\n                                  const
      XML_Char *context,\n                                  const XML_Char *base,\n
      \                                 const XML_Char *systemId,\n                                  const
      XML_Char *publicId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - userData
    - data
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: noop_character_data_handler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void noop_character_data_handler(void *userData, const XML_Char *data,
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_handlers
      Src: /src/Python-3.8.3/Modules/pyexpat.c:200,1
    - Dst: XML_SetExternalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: flag_error
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - clear_handlers
    - XML_SetExternalEntityRefHandler
    linkageType: ''
    returnType: void
    signature: void flag_error(xmlparseobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:211,1
    - Dst: _PyTraceback_Add
      Src: /src/Python-3.8.3/Modules/pyexpat.c:213,1
    - Dst: XML_StopParser
      Src: /src/Python-3.8.3/Modules/pyexpat.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - funcname
    - lineno
    - func
    - args
    - self
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: call_with_frame
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - _PyTraceback_Add
    - PyEval_CallObject
    - XML_StopParser
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_with_frame(const char *funcname, int lineno, PyObject*
      func, PyObject* args,\n                xmlparseobject *self)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: conv_string_to_unicode
      Src: /src/Python-3.8.3/Modules/pyexpat.c:222,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/pyexpat.c:229,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:231,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/pyexpat.c:232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:237,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - str
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: string_intern
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDict_SetItem
    - conv_string_to_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      string_intern(xmlparseobject *self, const char* str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: have_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:255,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:258,1
    - Dst: conv_string_len_to_unicode
      Src: /src/Python-3.8.3/Modules/pyexpat.c:261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:263,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:264,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:265,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pyexpat.c:269,1
    - Dst: call_with_frame
      Src: /src/Python-3.8.3/Modules/pyexpat.c:272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:276,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:278,1
    - Dst: XML_SetCharacterDataHandler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - self
    - buffer
    - len
    argTypes:
    - xmlparseobject*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: call_character_handler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - have_handler
    - call_with_frame
    - flag_error
    - conv_string_len_to_unicode
    - XML_SetCharacterDataHandler
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: int call_character_handler(xmlparseobject *self, const XML_Char *buffer,
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: call_character_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 296
    functionName: flush_character_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - call_character_handler
    linkageType: ''
    returnType: int
    signature: int flush_character_buffer(xmlparseobject *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:303,1
    - Dst: call_character_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:307,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:310,1
    - Dst: have_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:315,1
    - Dst: call_character_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:319,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/pyexpat.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - userData
    - data
    - len
    argTypes:
    - void*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 298
    functionDepth: 4
    functionLinenumber: 298
    functionLinenumberEnd: 328
    functionName: my_CharacterDataHandler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_Occurred
    - have_handler
    - flush_character_buffer
    - call_character_handler
    linkageType: ''
    returnType: void
    signature: void my_CharacterDataHandler(void *userData, const XML_Char *data,
      int len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: have_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:336,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:340,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:343,1
    - Dst: XML_GetSpecifiedAttributeCount
      Src: /src/Python-3.8.3/Modules/pyexpat.c:349,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:358,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:360,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:362,1
    - Dst: string_intern
      Src: /src/Python-3.8.3/Modules/pyexpat.c:366,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:370,1
    - Dst: conv_string_to_unicode
      Src: /src/Python-3.8.3/Modules/pyexpat.c:373,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:377,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pyexpat.c:381,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pyexpat.c:382,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/pyexpat.c:384,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:387,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:388,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:392,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:393,1
    - Dst: string_intern
      Src: /src/Python-3.8.3/Modules/pyexpat.c:396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:398,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:401,1
    - Dst: call_with_frame
      Src: /src/Python-3.8.3/Modules/pyexpat.c:407,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:410,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:415,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 67
    argCount: 3
    argNames:
    - userData
    - name
    - atts
    argTypes:
    - void*
    - XML_Char*
    - XML_Char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 417
    functionName: my_StartElementHandler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetSpecifiedAttributeCount
    - Py_BuildValue
    - PyErr_Occurred
    - have_handler
    - Py_DECREF
    - flush_character_buffer
    - PyDict_New
    - PyList_SET_ITEM
    - call_with_frame
    - flag_error
    - conv_string_to_unicode
    - PyDict_SetItem
    - PyList_New
    - string_intern
    linkageType: ''
    returnType: void
    signature: "void my_StartElementHandler(void *userData,\n                       const
      XML_Char *name, const XML_Char *atts[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - RC
    - ','
    - NAME
    - ','
    - PARAMS
    - ','
    - INIT
    - ','
    - PARAM_FORMAT
    - ','
    - CONVERSION
    - ','
    - RETURN
    - ','
    - GETUSERDATA
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 449
    functionName: RC_HANDLER
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "RC_HANDLER(RC, NAME, PARAMS, INIT, PARAM_FORMAT, CONVERSION, \\\n
      \               RETURN, GETUSERDATA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - PARAMS
    - ','
    - PARAM_FORMAT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: VOID_HANDLER
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VOID_HANDLER(NAME, PARAMS, PARAM_FORMAT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - PARAMS
    - ','
    - PARAM_FORMAT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: INT_HANDLER
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_HANDLER(NAME, PARAMS, PARAM_FORMAT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:512,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/pyexpat.c:516,1
    - Dst: conv_content_model
      Src: /src/Python-3.8.3/Modules/pyexpat.c:518,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:521,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/pyexpat.c:524,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - model
    - (*conv_string)(const XML_Char *)
    argTypes:
    - XML_Content*
    - PyObject*
    assertStmts:
    - condition: (model->numchildren < INT_MAX)
      pos:
        line_end: 515
        line_start: 515
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 531
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 531
    functionName: conv_content_model
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 1
    functionsReached:
    - Py_BuildValue
    - Py_XDECREF
    - assert
    - conv_content_model
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nconv_content_model(XML_Content * const model,\n                   PyObject
      *(*conv_string)(const XML_Char *))"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: have_handler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:541,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:545,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:548,1
    - Dst: conv_content_model
      Src: /src/Python-3.8.3/Modules/pyexpat.c:550,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:552,1
    - Dst: string_intern
      Src: /src/Python-3.8.3/Modules/pyexpat.c:555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:557,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:558,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:561,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:563,1
    - Dst: call_with_frame
      Src: /src/Python-3.8.3/Modules/pyexpat.c:567,1
    - Dst: flag_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:574,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:577,1
    - Dst: XML_FreeContentModel
      Src: /src/Python-3.8.3/Modules/pyexpat.c:578,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - userData
    - name
    - model
    argTypes:
    - void*
    - XML_Char*
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 580
    functionName: my_ElementDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - have_handler
    - Py_DECREF
    - flush_character_buffer
    - call_with_frame
    - flag_error
    - XML_FreeContentModel
    - conv_content_model
    - Py_XDECREF
    - string_intern
    linkageType: ''
    returnType: void
    signature: "void my_ElementDeclHandler(void *userData,\n                      const
      XML_Char *name,\n                      XML_Content *model)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:685,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:689,1
    - Dst: XML_GetErrorCode
      Src: /src/Python-3.8.3/Modules/pyexpat.c:689,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:691,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - rv
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 695
    functionName: get_parse_result
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - set_error
    - flush_character_buffer
    - XML_GetErrorCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_parse_result(xmlparseobject *self, int rv)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/pyexpat.c:721,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/pyexpat.c:723,1
    - Dst: XML_SetEncoding
      Src: /src/Python-3.8.3/Modules/pyexpat.c:727,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:730,1
    - Dst: XML_Parse
      Src: /src/Python-3.8.3/Modules/pyexpat.c:737,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/pyexpat.c:743,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/pyexpat.c:744,1
    - Dst: XML_Parse
      Src: /src/Python-3.8.3/Modules/pyexpat.c:745,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/pyexpat.c:749,1
    - Dst: get_parse_result
      Src: /src/Python-3.8.3/Modules/pyexpat.c:750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - self
    - data
    - isfinal
    argTypes:
    - xmlparseobject*
    - PyObject*
    - int
    assertStmts:
    - condition: (slen <= INT_MAX)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 751
      start: 711
    functionDepth: 5
    functionLinenumber: 711
    functionLinenumberEnd: 751
    functionName: pyexpat_xmlparser_Parse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_BUILD_ASSERT
    - get_parse_result
    - XML_SetEncoding
    - PyBuffer_Release
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - XML_Parse
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_Parse_impl(xmlparseobject *self, PyObject
      *data,\n                             int isfinal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/pyexpat.c:764,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/pyexpat.c:768,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/pyexpat.c:769,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/pyexpat.c:770,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/pyexpat.c:771,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/pyexpat.c:773,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/pyexpat.c:775,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/pyexpat.c:778,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/pyexpat.c:780,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/pyexpat.c:786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:787,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:792,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - buf
    - buf_size
    - meth
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 794
    functionName: readinst
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyByteArray_Check
    - PyBytes_Check
    - PyObject_CallFunction
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_TYPE
    - Py_SIZE
    - Py_XDECREF
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int readinst(char *buf, int buf_size, PyObject *meth)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/pyexpat.c:811,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/pyexpat.c:813,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:817,1
    - Dst: XML_GetBuffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:823,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:825,1
    - Dst: get_parse_result
      Src: /src/Python-3.8.3/Modules/pyexpat.c:826,1
    - Dst: readinst
      Src: /src/Python-3.8.3/Modules/pyexpat.c:829,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:831,1
    - Dst: XML_ParseBuffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:834,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:835,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:836,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:843,1
    - Dst: get_parse_result
      Src: /src/Python-3.8.3/Modules/pyexpat.c:844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - xmlparseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 845
    functionName: pyexpat_xmlparser_ParseFile
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - readinst
    - PyErr_Occurred
    - Py_DECREF
    - XML_ParseBuffer
    - XML_GetBuffer
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - get_parse_result
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_ParseFile(xmlparseobject *self, PyObject *file)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetBase
      Src: /src/Python-3.8.3/Modules/pyexpat.c:860,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - base
    argTypes:
    - xmlparseobject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 864
    functionName: pyexpat_xmlparser_SetBase_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetBase
    - PyErr_NoMemory
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetBase_impl(xmlparseobject *self, const char *base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:876,1
    - Dst: XML_GetBase
      Src: /src/Python-3.8.3/Modules/pyexpat.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 877
    functionName: pyexpat_xmlparser_GetBase_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetBase
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetBase_impl(xmlparseobject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_GetInputContext
      Src: /src/Python-3.8.3/Modules/pyexpat.c:895,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/pyexpat.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 905
    functionName: pyexpat_xmlparser_GetInputContext_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_GetInputContext
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetInputContext_impl(xmlparseobject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:926,1
    - Dst: XML_ExternalEntityParserCreate
      Src: /src/Python-3.8.3/Modules/pyexpat.c:936,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:940,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/pyexpat.c:941,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/pyexpat.c:944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:946,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:947,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:951,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:952,1
    - Dst: XML_SetUserData
      Src: /src/Python-3.8.3/Modules/pyexpat.c:955,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:961,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:963,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:964,1
    - Dst: clear_handlers
      Src: /src/Python-3.8.3/Modules/pyexpat.c:966,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:972,1
    - Dst: setter
      Src: /src/Python-3.8.3/Modules/pyexpat.c:974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 3
    argNames:
    - self
    - context
    - encoding
    argTypes:
    - xmlparseobject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 979
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetUserData
    - PyMem_New
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - setter
    - PyObject_GC_New
    - clear_handlers
    - PyMem_Malloc
    - PyObject_GC_Track
    - Py_XINCREF
    - XML_ExternalEntityParserCreate
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_xmlparser_ExternalEntityParserCreate_impl(xmlparseobject
      *self,\n                                                  const char *context,\n
      \                                                 const char *encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetParamEntityParsing
      Src: /src/Python-3.8.3/Modules/pyexpat.c:999,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1001
    functionName: pyexpat_xmlparser_SetParamEntityParsing_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - XML_SetParamEntityParsing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetParamEntityParsing_impl(xmlparseobject *self, int flag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_UseForeignDTD
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1024,1
    - Dst: set_error
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - flag
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1029
    functionName: pyexpat_xmlparser_UseForeignDTD_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_UseForeignDTD
    - set_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_UseForeignDTD_impl(xmlparseobject *self, int flag)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1065,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1073,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1074,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1075,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1079,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1080,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1081,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1086,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1087,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1099,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - encodingHandlerData
    - name
    - info
    argTypes:
    - void*
    - XML_Char*
    - XML_Encoding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1102
    functionName: PyUnknownEncodingHandler
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_READ
    - PyUnicode_GET_LENGTH
    - PyErr_SetString
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_XDECREF
    - PyUnicode_Decode
    linkageType: ''
    returnType: int
    signature: "int PyUnknownEncodingHandler(void *encodingHandlerData,\n                         const
      XML_Char *name,\n                         XML_Encoding *info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1111,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1124,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1125,1
    - Dst: XML_ParserCreate_MM
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1128,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1133,1
    - Dst: XML_SetHashSalt
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1138,1
    - Dst: XML_SetUserData
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1141,1
    - Dst: XML_SetUnknownEncodingHandler
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1142,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1148,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1150,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1151,1
    - Dst: clear_handlers
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - encoding
    - namespace_separator
    - intern
    argTypes:
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1156
    functionName: newxmlparseobject
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_SetHashSalt
    - XML_SetUserData
    - PyMem_New
    - Py_DECREF
    - PyErr_NoMemory
    - XML_SetUnknownEncodingHandler
    - PyObject_GC_New
    - clear_handlers
    - PyErr_SetString
    - XML_ParserCreate_MM
    - PyObject_GC_Track
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      newxmlparseobject(const char *encoding, const char *namespace_separator, PyObject
      *intern)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1163,1
    - Dst: XML_ParserFree
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1165,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1170,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1171,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1175,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1178,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1159
    functionDepth: 3
    functionLinenumber: 1159
    functionLinenumberEnd: 1180
    functionName: xmlparse_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyObject_GC_Del
    - Py_CLEAR
    - XML_ParserFree
    - PyMem_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void xmlparse_dealloc(xmlparseobject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1186,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1186,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - hi
    argTypes:
    - xmlparseobject*
    - struct HandlerInfo*
    assertStmts:
    - condition: ((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info))
      pos:
        line_end: 1185
        line_start: 1185
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1193
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1193
    functionName: xmlparse_handler_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_ARRAY_LENGTH
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_handler_getter(xmlparseobject *self, struct HandlerInfo *hi)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1198,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1201,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1210,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1232,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1235,1
    - Dst: setter
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - self
    - v
    - hi
    argTypes:
    - xmlparseobject*
    - PyObject*
    - struct HandlerInfo*
    assertStmts:
    - condition: ((hi - handler_info) < (Py_ssize_t)Py_ARRAY_LENGTH(handler_info))
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1238
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1238
    functionName: xmlparse_handler_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - Py_INCREF
    - Py_XSETREF
    - flush_character_buffer
    - setter
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int xmlparse_handler_setter(xmlparseobject *self, PyObject *v, struct
      HandlerInfo *hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1246
    functionName: INT_GETTER
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_GETTER(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1260
    functionName: xmlparse_buffer_text_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_text_getter(xmlparseobject *self, void *closure)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1266,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1269,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1274,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1276,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1283,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - v
    - closure
    argTypes:
    - xmlparseobject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1262
    functionDepth: 4
    functionLinenumber: 1262
    functionLinenumberEnd: 1289
    functionName: xmlparse_buffer_text_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - flush_character_buffer
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int xmlparse_buffer_text_setter(xmlparseobject *self, PyObject *v,
      void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    functionName: xmlparse_buffer_size_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_size_getter(xmlparseobject *self, void *closure)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1301,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1305,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1306,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1310,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1312,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1313,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1326,1
    - Dst: flush_character_buffer
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1333,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1338,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1340,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1342,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - self
    - v
    - closure
    argTypes:
    - xmlparseobject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1297
    functionDepth: 4
    functionLinenumber: 1297
    functionLinenumberEnd: 1347
    functionName: xmlparse_buffer_size_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - flush_character_buffer
    - PyErr_NoMemory
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - sprintf
    linkageType: ''
    returnType: int
    signature: int xmlparse_buffer_size_setter(xmlparseobject *self, PyObject *v,
      void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1353
    functionName: xmlparse_buffer_used_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_buffer_used_getter(xmlparseobject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1359
    functionName: xmlparse_namespace_prefixes_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_namespace_prefixes_getter(xmlparseobject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1365,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1368,1
    - Dst: XML_SetReturnNSTriplet
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - v
    - closure
    argTypes:
    - xmlparseobject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1374
    functionName: xmlparse_namespace_prefixes_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - XML_SetReturnNSTriplet
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int xmlparse_namespace_prefixes_setter(xmlparseobject *self, PyObject
      *v, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1380
    functionName: xmlparse_ordered_attributes_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_ordered_attributes_getter(xmlparseobject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1386,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - v
    - closure
    argTypes:
    - xmlparseobject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1394
    functionName: xmlparse_ordered_attributes_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int xmlparse_ordered_attributes_setter(xmlparseobject *self, PyObject
      *v, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - xmlparseobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1400
    functionName: xmlparse_specified_attributes_getter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparse_specified_attributes_getter(xmlparseobject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1406,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - v
    - closure
    argTypes:
    - xmlparseobject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1414
    functionName: xmlparse_specified_attributes_setter
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int xmlparse_specified_attributes_setter(xmlparseobject *self, PyObject
      *v, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1423
    functionName: XMLPARSE_GETTER_DEF
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLPARSE_GETTER_DEF(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    functionName: XMLPARSE_GETTER_SETTER_DEF
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLPARSE_GETTER_SETTER_DEF(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - xmlparseobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1454
    functionName: xmlparse_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int xmlparse_traverse(xmlparseobject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_handlers
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1459,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - xmlparseobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1462
    functionName: xmlparse_clear
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - clear_handlers
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int xmlparse_clear(xmlparseobject *op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1522,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1523,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1533,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1538,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1539,1
    - Dst: newxmlparseobject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - module
    - encoding
    - namespace_separator
    - intern
    argTypes:
    - PyObject*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1548
    functionName: pyexpat_ParserCreate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - newxmlparseobject
    - Py_DECREF
    - PyDict_New
    - PyDict_Check
    - strlen
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npyexpat_ParserCreate_impl(PyObject *module, const char
      *encoding,\n                          const char *namespace_separator, PyObject
      *intern)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1563,1
    - Dst: XML_ErrorString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - code
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1564
    functionName: pyexpat_ErrorString_impl
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - XML_ErrorString
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ErrorString_impl(PyObject *module, long code)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1604,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1604,1
    - Dst: PyDescr_NewGetSet
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1612,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1616,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1617,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1620,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1621,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1624,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1625,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyType_HasFeature(&Xmlparsetype, Py_TPFLAGS_VALID_VERSION_TAG))
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    constantsTouched: []
    func_position:
      end: 1631
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1631
    functionName: init_handler_descrs
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDescr_NAME
    - PyDescr_NewGetSet
    - PyDict_SetItem
    - assert
    - PyType_HasFeature
    linkageType: ''
    returnType: int
    signature: int init_handler_descrs(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1637,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1650,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1654,1
    - Dst: init_handler_descrs
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1654,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1658,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1664,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1669,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1670,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1671,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1672,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1673,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1674,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1676,1
    - Dst: XML_ExpatVersion
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1677,1
    - Dst: XML_ExpatVersionInfo
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1679,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1680,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1681,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1688,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1690,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1692,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1695,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1696,1
    - Dst: PyModule_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1697,1
    - Dst: _PyImport_SetModule
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1699,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1701,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1704,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1705,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1706,1
    - Dst: PyModule_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1707,1
    - Dst: _PyImport_SetModule
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1709,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1717,1
    - Dst: XML_GetFeatureList
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1723,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1724,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1727,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1732,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1735,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1740,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1742,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1747,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1752,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1753,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1755,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1756,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1776,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1777,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1778,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1779,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1780,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1781,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1782,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1783,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1784,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1785,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1786,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1787,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1788,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1789,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1790,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1791,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1792,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1793,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1794,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1795,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1796,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1797,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1798,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1799,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1800,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1801,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1803,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1805,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1806,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1807,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1808,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1809,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1810,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1811,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1812,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1813,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1814,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1816,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1821,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1823,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1829,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1830,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1831,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1835,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1838,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1839,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1840,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1841,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1842,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1843,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1845,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1846,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1847,1
    - Dst: MYCONST
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1848,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1882,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1884,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 165
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1886
    functionName: MODULE_INITFUNC
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 0
    functionsReached:
    - PyErr_NewException
    - PyModule_GetDict
    - XML_GetFeatureList
    - PyList_New
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - PyModule_Create
    - XML_ExpatVersion
    - PyCapsule_New
    - init_handler_descrs
    - _PyImport_SetModule
    - PyErr_Clear
    - Py_XDECREF
    - PyModule_AddStringConstant
    - PyUnicode_FromString
    - Py_DECREF
    - MYCONST
    - PyType_Ready
    - Py_BuildValue
    - XML_ExpatVersionInfo
    - PyDict_New
    - PyModule_AddObject
    - PyList_Append
    - PyModule_New
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC MODULE_INITFUNC(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1776
    functionName: MYCONST
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MYCONST(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1829
    functionName: MYCONST
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MYCONST(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1835
    functionName: MYCONST
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MYCONST(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1897,1
    - Dst: setter
      Src: /src/Python-3.8.3/Modules/pyexpat.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - initial
    argTypes:
    - xmlparseobject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1888
    functionDepth: 1
    functionLinenumber: 1888
    functionLinenumberEnd: 1901
    functionName: clear_handlers
    functionSourceFile: /src/Python-3.8.3/Modules/pyexpat.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    - setter
    linkageType: ''
    returnType: void
    signature: void clear_handlers(xmlparseobject *self, int initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PyScanner_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyScanner_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyScanner_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyScanner_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyEncoder_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyEncoder_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PyEncoder_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyEncoder_CheckExact(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_json.c:82,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_json.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - lst
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: join_list_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyUnicode_Join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      join_list_unicode(PyObject *lst)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: S_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_CHAR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: IS_WHITESPACE
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_WHITESPACE(c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Modules/_json.c:148,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Modules/_json.c:154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - c
    - output
    - chars
    argTypes:
    - Py_UCS4
    - unsigned char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 164
    functionName: ascii_escape_unichar
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_HIGH_SURROGATE
    - Py_UNICODE_LOW_SURROGATE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ascii_escape_unichar(Py_UCS4 c, unsigned char *output, Py_ssize_t
      chars)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:179,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:182,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:183,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:184,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:188,1
    - Dst: S_CHAR
      Src: /src/Python-3.8.3/Modules/_json.c:190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:203,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_json.c:209,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:213,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:217,1
    - Dst: S_CHAR
      Src: /src/Python-3.8.3/Modules/_json.c:218,1
    - Dst: ascii_escape_unichar
      Src: /src/Python-3.8.3/Modules/_json.c:222,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:227,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Modules/_json.c:227,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(rval, 1))
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 230
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 230
    functionName: ascii_escape_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - S_CHAR
    - ascii_escape_unichar
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_escape_unicode(PyObject *pystr)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:245,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Modules/_json.c:248,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:249,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:250,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:251,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:269,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_json.c:275,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:279,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:311,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:314,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:317,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:318,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:324,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Modules/_json.c:324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 1
    argNames:
    - pystr
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(rval, 1))
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/Python-3.8.3/Modules/_json.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 327
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 327
    functionName: escape_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_unicode(PyObject *pystr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_json.c:336,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:339,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:340,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_json.c:344,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_json.c:346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - msg
    - s
    - end
    argTypes:
    - char*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: raise_errmsg
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_SetObject
    - PyObject_CallFunction
    linkageType: ''
    returnType: void
    signature: void raise_errmsg(const char *msg, PyObject *s, Py_ssize_t end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_json.c:354,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_json.c:356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: raise_stop_iteration
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyLong_FromSsize_t
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void raise_stop_iteration(Py_ssize_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_json.c:372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:374,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_json.c:377,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:379,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:380,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_json.c:383,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_json.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - rval
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 386
    functionName: _build_rval_index_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _build_rval_index_tuple(PyObject *rval, Py_ssize_t idx)'
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:423,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:426,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:427,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:428,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:431,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:438,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:443,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:448,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_json.c:454,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:468,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:471,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:487,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:496,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:501,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:514,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Modules/_json.c:519,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:520,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:521,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:526,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:539,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Modules/_json.c:543,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Modules/_json.c:544,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_json.c:550,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_json.c:560,1
    - Dst: join_list_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:564,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:568,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:575,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:576,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 191
    argCount: 4
    argNames:
    - pystr
    - end
    - strict
    - next_end_ptr
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 578
    functionName: scanstring_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_CLEAR
    - PyUnicode_FromStringAndSize
    - Py_XDECREF
    - raise_errmsg
    - Py_UNICODE_IS_HIGH_SURROGATE
    - PyErr_SetString
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - Py_UNICODE_JOIN_SURROGATES
    - join_list_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next_end_ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_json.c:601,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:604,1
    - Dst: scanstring_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:605,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:608,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:610,1
    - Dst: _build_rval_index_tuple
      Src: /src/Python-3.8.3/Modules/_json.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - UNUSED
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 614
    functionName: py_scanstring
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _build_rval_index_tuple
    - scanstring_unicode
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_scanstring(PyObject* self UNUSED, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:628,1
    - Dst: ascii_escape_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:629,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:632,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - UNUSED
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 638
    functionName: py_encode_basestring_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - ascii_escape_unicode
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring_ascii(PyObject* self UNUSED, PyObject *pystr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:653,1
    - Dst: escape_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:654,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:657,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - UNUSED
    - pystr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 663
    functionName: py_encode_basestring
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - escape_unicode
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_encode_basestring(PyObject* self UNUSED, PyObject *pystr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_json.c:669,1
    - Dst: scanner_clear
      Src: /src/Python-3.8.3/Modules/_json.c:670,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: scanner_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - scanner_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void scanner_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:678,1
    - Dst: PyScanner_Check
      Src: /src/Python-3.8.3/Modules/_json.c:678,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:680,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:681,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:682,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:683,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (PyScanner_Check(self))
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 686
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 686
    functionName: scanner_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyScanner_Check
    - assert
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int scanner_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:692,1
    - Dst: PyScanner_Check
      Src: /src/Python-3.8.3/Modules/_json.c:692,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:694,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:695,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:696,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:697,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:698,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyScanner_Check(self))
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 701
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 701
    functionName: scanner_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 1
    functionsReached:
    - PyScanner_Check
    - assert
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int scanner_clear(PyObject *self)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:722,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:725,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:726,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:727,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_json.c:730,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_json.c:732,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:737,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:737,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:740,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:745,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:746,1
    - Dst: scanstring_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:749,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_json.c:752,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:754,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:755,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_json.c:758,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_json.c:762,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:768,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:768,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:769,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:770,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:774,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:774,1
    - Dst: scan_once_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:777,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_json.c:782,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:785,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:786,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_json.c:787,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:788,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:791,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_json.c:794,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:796,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:797,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:802,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:802,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:805,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:807,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:808,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:814,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:814,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:821,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:822,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:828,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:829,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:834,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:835,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:836,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 105
    argCount: 4
    argNames:
    - s
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 838
    functionName: _parse_object_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_CLEAR
    - PyDict_SetItem
    - PyList_New
    - PyUnicode_KIND
    - scan_once_unicode
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - raise_errmsg
    - PyTuple_Pack
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - Py_DECREF
    - IS_WHITESPACE
    - PyDict_New
    - scanstring_unicode
    - PyList_Append
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:856,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_json.c:859,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:863,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:864,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:865,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:868,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:868,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:871,1
    - Dst: scan_once_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:875,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_json.c:879,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:882,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:886,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:886,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:889,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:891,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:892,1
    - Dst: IS_WHITESPACE
      Src: /src/Python-3.8.3/Modules/_json.c:898,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:898,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:903,1
    - Dst: raise_errmsg
      Src: /src/Python-3.8.3/Modules/_json.c:904,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:911,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 48
    argCount: 4
    argNames:
    - s
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 913
    functionName: _parse_array_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_CLEAR
    - Py_DECREF
    - PyUnicode_DATA
    - Py_XDECREF
    - raise_errmsg
    - PyList_Append
    - PyList_New
    - PyUnicode_KIND
    - IS_WHITESPACE
    - scan_once_unicode
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:929,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:934,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - s
    - constant
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 939
    functionName: _parse_constant
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _parse_constant(PyScannerObject *s, const char *constant, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:961,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:964,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:965,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:966,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:969,1
    - Dst: raise_stop_iteration
      Src: /src/Python-3.8.3/Modules/_json.c:972,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:978,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:978,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:980,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:980,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:983,1
    - Dst: raise_stop_iteration
      Src: /src/Python-3.8.3/Modules/_json.c:988,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:993,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:993,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:993,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:996,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:996,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1000,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1000,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1005,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1005,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1008,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1008,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1011,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1011,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_json.c:1028,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:1033,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_json.c:1041,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_json.c:1044,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1046,1
    - Dst: PyFloat_FromString
      Src: /src/Python-3.8.3/Modules/_json.c:1049,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Modules/_json.c:1051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1053,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 68
    argCount: 4
    argNames:
    - s
    - pystr
    - start
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 1056
    functionName: _match_number_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - PyBytes_FromStringAndSize
    - PyUnicode_READY
    - PyUnicode_READ
    - PyFloat_FromString
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - raise_stop_iteration
    - PyBytes_AS_STRING
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyLong_FromString
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _match_number_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t start,
      Py_ssize_t *next_idx_ptr)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_json.c:1073,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_json.c:1076,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_json.c:1077,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_json.c:1078,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1081,1
    - Dst: raise_stop_iteration
      Src: /src/Python-3.8.3/Modules/_json.c:1085,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1089,1
    - Dst: scanstring_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:1092,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1095,1
    - Dst: _parse_object_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:1098,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1099,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1103,1
    - Dst: _parse_array_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:1106,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1107,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1111,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1111,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1111,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1118,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1118,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1118,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1125,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1126,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1127,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1128,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1135,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1136,1
    - Dst: _parse_constant
      Src: /src/Python-3.8.3/Modules/_json.c:1137,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1142,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1143,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1144,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1145,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1146,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1147,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1148,1
    - Dst: _parse_constant
      Src: /src/Python-3.8.3/Modules/_json.c:1149,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1154,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1155,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1156,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1157,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1158,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1159,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1160,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_json.c:1161,1
    - Dst: _parse_constant
      Src: /src/Python-3.8.3/Modules/_json.c:1162,1
    - Dst: _match_number_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:1167,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 64
    argCount: 4
    argNames:
    - s
    - pystr
    - idx
    - next_idx_ptr
    argTypes:
    - PyScannerObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1168
    functionName: scan_once_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - _parse_array_unicode
    - _match_number_unicode
    - Py_LeaveRecursiveCall
    - scanstring_unicode
    - Py_EnterRecursiveCall
    - PyErr_SetString
    - raise_stop_iteration
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _parse_constant
    - _parse_object_unicode
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scan_once_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssize_t
      *next_idx_ptr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:1180,1
    - Dst: PyScanner_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1180,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_json.c:1182,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1185,1
    - Dst: scan_once_unicode
      Src: /src/Python-3.8.3/Modules/_json.c:1186,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:1189,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:1191,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Modules/_json.c:1194,1
    - Dst: _build_rval_index_tuple
      Src: /src/Python-3.8.3/Modules/_json.c:1197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyScanner_Check(self))
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1198
      start: 1170
    functionDepth: 5
    functionLinenumber: 1170
    functionLinenumberEnd: 1198
    functionName: scanner_call
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyScanner_Check
    - _build_rval_index_tuple
    - PyUnicode_Check
    - PyErr_Format
    - Py_TYPE
    - PyArg_ParseTupleAndKeywords
    - assert
    - scan_once_unicode
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanner_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_json.c:1208,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_json.c:1211,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_json.c:1216,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1221,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_json.c:1224,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1225,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1228,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1231,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1234,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1237,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_json.c:1240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1247,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1249
    functionName: scanner_new
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTypeObject*::tp_alloc
    - PyDict_New
    - PyArg_ParseTupleAndKeywords
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      scanner_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_json.c:1306,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1312,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:1313,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:1315,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_json.c:1319,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1333,1
    - Dst: PyCFunction_GetFunction
      Src: /src/Python-3.8.3/Modules/_json.c:1334,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1341,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1342,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1343,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1344,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1345,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1348
    functionName: encoder_new
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyDict_Check
    - PyCFunction_Check
    - PyErr_Format
    - Py_TYPE
    - PyArg_ParseTupleAndKeywords
    - PyCFunction_GetFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:1360,1
    - Dst: PyEncoder_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1360,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_json.c:1362,1
    - Dst: _PyAccu_Init
      Src: /src/Python-3.8.3/Modules/_json.c:1365,1
    - Dst: encoder_listencode_obj
      Src: /src/Python-3.8.3/Modules/_json.c:1367,1
    - Dst: _PyAccu_Destroy
      Src: /src/Python-3.8.3/Modules/_json.c:1368,1
    - Dst: _PyAccu_FinishAsList
      Src: /src/Python-3.8.3/Modules/_json.c:1371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyEncoder_Check(self))
      pos:
        line_end: 1359
        line_start: 1359
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1372
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1372
    functionName: encoder_call
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _PyAccu_FinishAsList
    - PyEncoder_Check
    - encoder_listencode_obj
    - _PyAccu_Destroy
    - PyArg_ParseTupleAndKeywords
    - assert
    - _PyAccu_Init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1381,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1383,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1389,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1391,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1397,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1399,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1406
    functionName: _encoded_const
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyErr_SetString
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _encoded_const(PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/_json.c:1412,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Modules/_json.c:1413,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1415,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_json.c:1422,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_json.c:1425,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_json.c:1428,1
    - Dst: tp_repr
      Src: /src/Python-3.8.3/Modules/_json.c:1431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - s
    - obj
    argTypes:
    - PyEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1432
    functionName: encoder_encode_float
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyFloat_AS_DOUBLE
    - tp_repr
    - PyErr_SetString
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_encode_float(PyEncoderObject *s, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyEncoderObject*::fast_encode
      Src: /src/Python-3.8.3/Modules/_json.c:1441,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:1443,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1444,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:1445,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:1447,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - obj
    argTypes:
    - PyEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1452
    functionName: encoder_encode_string
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyEncoderObject*::fast_encode
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoder_encode_string(PyEncoderObject *s, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1458,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - acc
    - stolen
    argTypes:
    - _PyAccu*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1461
    functionName: _steal_accumulate
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - _PyAccu_Accumulate
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _steal_accumulate(_PyAccu *acc, PyObject *stolen)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _encoded_const
      Src: /src/Python-3.8.3/Modules/_json.c:1472,1
    - Dst: _steal_accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1475,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1477,1
    - Dst: encoder_encode_string
      Src: /src/Python-3.8.3/Modules/_json.c:1479,1
    - Dst: _steal_accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1482,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1484,1
    - Dst: tp_repr
      Src: /src/Python-3.8.3/Modules/_json.c:1485,1
    - Dst: _steal_accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1488,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1490,1
    - Dst: encoder_encode_float
      Src: /src/Python-3.8.3/Modules/_json.c:1491,1
    - Dst: _steal_accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1494,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1496,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1496,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1497,1
    - Dst: encoder_listencode_list
      Src: /src/Python-3.8.3/Modules/_json.c:1499,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1500,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1503,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1504,1
    - Dst: encoder_listencode_dict
      Src: /src/Python-3.8.3/Modules/_json.c:1506,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1507,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_json.c:1514,1
    - Dst: PyDict_Contains
      Src: /src/Python-3.8.3/Modules/_json.c:1517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1521,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_json.c:1524,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1525,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_json.c:1529,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1531,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1536,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1537,1
    - Dst: encoder_listencode_obj
      Src: /src/Python-3.8.3/Modules/_json.c:1540,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_json.c:1541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1543,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1545,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_json.c:1549,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1550,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1553,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - s
    - acc
    - obj
    - indent_level
    argTypes:
    - PyEncoderObject*
    - _PyAccu*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1557
    functionName: encoder_listencode_obj
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 2
    functionsReached:
    - encoder_encode_float
    - PyDict_DelItem
    - encoder_listencode_obj
    - PyDict_SetItem
    - _encoded_const
    - PyLong_FromVoidPtr
    - PyFloat_Check
    - tp_repr
    - encoder_listencode_list
    - Py_LeaveRecursiveCall
    - PyTuple_Check
    - Py_EnterRecursiveCall
    - _steal_accumulate
    - Py_XDECREF
    - encoder_listencode_dict
    - PyLong_Check
    - Py_DECREF
    - PyDict_Check
    - PyList_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyDict_Contains
    - PyUnicode_Check
    - encoder_encode_string
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_obj(PyEncoderObject *s, _PyAccu *acc,\n                       PyObject
      *obj, Py_ssize_t indent_level)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1575,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1576,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1577,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_json.c:1581,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1582,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_json.c:1586,1
    - Dst: PyDict_Contains
      Src: /src/Python-3.8.3/Modules/_json.c:1589,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1592,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_json.c:1595,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1600,1
    - Dst: PyMapping_Items
      Src: /src/Python-3.8.3/Modules/_json.c:1613,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Modules/_json.c:1616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1617,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_json.c:1620,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1621,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_json.c:1625,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1627,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_json.c:1627,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1628,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_json.c:1631,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1632,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1633,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1636,1
    - Dst: encoder_encode_float
      Src: /src/Python-3.8.3/Modules/_json.c:1637,1
    - Dst: _encoded_const
      Src: /src/Python-3.8.3/Modules/_json.c:1644,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1648,1
    - Dst: tp_repr
      Src: /src/Python-3.8.3/Modules/_json.c:1649,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1655,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_json.c:1659,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1666,1
    - Dst: encoder_encode_string
      Src: /src/Python-3.8.3/Modules/_json.c:1670,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1671,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1674,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1675,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1678,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1679,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_json.c:1682,1
    - Dst: encoder_listencode_obj
      Src: /src/Python-3.8.3/Modules/_json.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1686,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_json.c:1688,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1690,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_json.c:1693,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1695,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1703,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1708,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1709,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1710,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1711,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 133
    argCount: 4
    argNames:
    - s
    - acc
    - dct
    - indent_level
    argTypes:
    - PyEncoderObject*
    - _PyAccu*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1559
    functionDepth: 3
    functionLinenumber: 1559
    functionLinenumberEnd: 1713
    functionName: encoder_listencode_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 1
    functionsReached:
    - encoder_encode_float
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - PyDict_DelItem
    - _PyAccu_Accumulate
    - encoder_listencode_obj
    - PyIter_Next
    - PyDict_SetItem
    - PyUnicode_InternFromString
    - PyObject_GetIter
    - _encoded_const
    - PyLong_FromVoidPtr
    - PyFloat_Check
    - PyErr_Occurred
    - Py_INCREF
    - PyDict_GET_SIZE
    - tp_repr
    - PyTuple_Check
    - PyErr_Format
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - PyList_Sort
    - PyMapping_Items
    - PyErr_SetString
    - PyDict_Contains
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - encoder_encode_string
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_dict(PyEncoderObject *s, _PyAccu *acc,\n                        PyObject
      *dct, Py_ssize_t indent_level)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1729,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1730,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_json.c:1731,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_json.c:1736,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_json.c:1739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1740,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1741,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_json.c:1746,1
    - Dst: PyDict_Contains
      Src: /src/Python-3.8.3/Modules/_json.c:1749,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_json.c:1752,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_json.c:1755,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1760,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_json.c:1771,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_json.c:1772,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1774,1
    - Dst: encoder_listencode_obj
      Src: /src/Python-3.8.3/Modules/_json.c:1777,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_json.c:1781,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1783,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_json.c:1792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1794,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1799,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 4
    argNames:
    - s
    - acc
    - seq
    - indent_level
    argTypes:
    - PyEncoderObject*
    - _PyAccu*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1716
    functionDepth: 3
    functionLinenumber: 1716
    functionLinenumberEnd: 1801
    functionName: encoder_listencode_list
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    - PyDict_DelItem
    - PyDict_Contains
    - encoder_listencode_obj
    - PyDict_SetItem
    - PySequence_Fast
    - PyUnicode_InternFromString
    - _PyAccu_Accumulate
    - PyErr_SetString
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int encoder_listencode_list(PyEncoderObject *s, _PyAccu *acc,\n                        PyObject
      *seq, Py_ssize_t indent_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_json.c:1807,1
    - Dst: encoder_clear
      Src: /src/Python-3.8.3/Modules/_json.c:1808,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_json.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1803
    functionDepth: 2
    functionLinenumber: 1803
    functionLinenumberEnd: 1810
    functionName: encoder_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - encoder_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void encoder_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:1816,1
    - Dst: PyEncoder_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1816,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1818,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1819,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1820,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1821,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1822,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_json.c:1823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (PyEncoder_Check(self))
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1825
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1825
    functionName: encoder_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - assert
    - PyEncoder_Check
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int encoder_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_json.c:1832,1
    - Dst: PyEncoder_Check
      Src: /src/Python-3.8.3/Modules/_json.c:1832,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1834,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1835,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1836,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1837,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1838,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_json.c:1839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyEncoder_Check(self))
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/Python-3.8.3/Modules/_json.c
    constantsTouched: []
    func_position:
      end: 1841
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1841
    functionName: encoder_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 1
    functionsReached:
    - assert
    - PyEncoder_Check
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int encoder_clear(PyObject *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_json.c:1922,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_json.c:1925,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_json.c:1927,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1929,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_json.c:1930,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1931,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_json.c:1934,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_json.c:1935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1936,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_json.c:1941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1943
    functionName: PyInit__json
    functionSourceFile: /src/Python-3.8.3/Modules/_json.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__json(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color_number
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: color_pair_to_attr
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int color_pair_to_attr(short color_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: attr_to_color_pair
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: short
    signature: short attr_to_color_pair(int attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:204,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - code
    - fname
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 210
    functionName: PyCursesCheckERR
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 6
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesCheckERR(int code, const char *fname)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:223,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:223,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:224,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:226,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:227,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:228,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:231,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:234,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:242,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:245,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:249,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:254,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:256,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:261,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:263,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:272,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - win
    - obj
    - ch
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - chtype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 275
    functionName: PyCurses_ConvertToChtype
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_Size
    - PyBytes_AsString
    - PyBytes_Check
    - PyUnicode_GetLength
    - PyUnicode_AsEncodedString
    - PyErr_Format
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyLong_CheckExact
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyLong_AsLongAndOverflow
    - Py_TYPE
    - PyUnicode_GET_LENGTH
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCurses_ConvertToChtype(PyCursesWindowObject *win, PyObject *obj,
      chtype *ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:301,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:303,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:304,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:307,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:313,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:316,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:316,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:317,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:319,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:321,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:323,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:329,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:331,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - win
    - obj
    - ch
    - wch
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - chtype*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 342
    functionName: PyCurses_ConvertToCchar_t
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - PyBytes_Size
    - PyBytes_AsString
    - PyBytes_Check
    - PyLong_CheckExact
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int PyCurses_ConvertToCchar_t(PyCursesWindowObject *win, PyObject
      *obj,\n                          chtype *ch\n#ifdef HAVE_NCURSESW\n                          ,
      wchar_t *wch\n#endif\n                          )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:355,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:357,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:359,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:364,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:365,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:369,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:375,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:376,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:379,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:385,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - win
    - obj
    - bytes
    - wstr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - PyObject**
    - wchar_t**
    assertStmts:
    - condition: (wstr != NULL)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
    - condition: (wstr == NULL)
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
    constantsTouched: []
    func_position:
      end: 388
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 388
    functionName: PyCurses_ConvertToString
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideCharString
    - Py_INCREF
    - PyBytes_Check
    - PyUnicode_AsEncodedString
    - PyErr_Format
    - PyBytes_AsStringAndSize
    - Py_TYPE
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: "int PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj,\n
      \                        PyObject **bytes, wchar_t **wstr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: func_PyCursesSetupTermCalled
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int func_PyCursesSetupTermCalled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: func_PyCursesInitialised
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int func_PyCursesInitialised(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: func_PyCursesInitialisedColor
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int func_PyCursesInitialisedColor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: Window_NoArgNoReturnFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_NoArgNoReturnFunction(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 437
    functionName: Window_NoArgTrueFalseFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_NoArgTrueFalseFunction(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: Window_NoArgNoReturnVoidFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_NoArgNoReturnVoidFunction(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - TYPE
    - ','
    - ERGSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: Window_NoArg2TupleReturnFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_NoArg2TupleReturnFunction(X, TYPE, ERGSTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - TYPE
    - ','
    - PARSESTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 458
    functionName: Window_OneArgNoReturnVoidFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_OneArgNoReturnVoidFunction(X, TYPE, PARSESTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - TYPE
    - ','
    - PARSESTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 466
    functionName: Window_OneArgNoReturnFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_OneArgNoReturnFunction(X, TYPE, PARSESTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - TYPE
    - ','
    - PARSESTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 474
    functionName: Window_TwoArgNoReturnFunction
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Window_TwoArgNoReturnFunction(X, TYPE, PARSESTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleOutputCP
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:536,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:538,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:542,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:550,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:555,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:556,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - win
    - encoding
    argTypes:
    - WINDOW*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 560
    functionName: PyCursesWindow_New
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - _PyMem_Strdup
    - Py_DECREF
    - PyErr_NoMemory
    - nl_langinfo
    - PyObject_NEW
    - GetConsoleOutputCP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_New(WINDOW *win, const char *encoding)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: delwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:565,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:567,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - wo
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 569
    functionName: PyCursesWindow_Dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - delwin
    - PyObject_DEL
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PyCursesWindow_Dealloc(PyCursesWindowObject *wo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToCchar_t
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:617,1
    - Dst: setcchar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:621,1
    - Dst: attr_to_color_pair
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:621,1
    - Dst: mvwadd_wch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:623,1
    - Dst: wadd_wch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:625,1
    - Dst: PyCurses_ConvertToCchar_t
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:630,1
    - Dst: mvwaddch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:635,1
    - Dst: waddch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:637,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 7
    argNames:
    - self
    - group_left_1
    - y
    - x
    - ch
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 644
    functionName: _curses_window_addch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToCchar_t
    - attr_to_color_pair
    - waddch
    - mvwaddch
    - PyCursesCheckERR
    - wadd_wch
    - mvwadd_wch
    - setcchar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_addch_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      group_right_1,\n                          long attr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:690,1
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:692,1
    - Dst: getattrs
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:697,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:698,1
    - Dst: mvwaddwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:704,1
    - Dst: waddwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:706,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:707,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:712,1
    - Dst: mvwaddstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:715,1
    - Dst: waddstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:717,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:718,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:721,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:722,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - self
    - group_left_1
    - y
    - x
    - str
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 723
    functionName: _curses_window_addstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - mvwaddwstr
    - Py_DECREF
    - mvwaddstr
    - PyCursesCheckERR
    - PyCurses_ConvertToString
    - PyMem_Free
    - getattrs
    - PyBytes_AS_STRING
    - waddwstr
    - waddstr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_addstr_impl(PyCursesWindowObject *self,
      int group_left_1,\n                           int y, int x, PyObject *str, int
      group_right_1,\n                           long attr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:772,1
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:774,1
    - Dst: getattrs
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:780,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:781,1
    - Dst: mvwaddnwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:787,1
    - Dst: waddnwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:789,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:790,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:795,1
    - Dst: mvwaddnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:798,1
    - Dst: waddnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:801,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:804,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 8
    argNames:
    - self
    - group_left_1
    - y
    - x
    - str
    - n
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 806
    functionName: _curses_window_addnstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - waddnstr
    - Py_DECREF
    - PyCursesCheckERR
    - PyCurses_ConvertToString
    - mvwaddnstr
    - PyMem_Free
    - getattrs
    - PyBytes_AS_STRING
    - mvwaddnwstr
    - waddnwstr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_addnstr_impl(PyCursesWindowObject *self,
      int group_left_1,\n                            int y, int x, PyObject *str,
      int n,\n                            int group_right_1, long attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:826,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:829,1
    - Dst: wbkgd
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 830
    functionName: _curses_window_bkgd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wbkgd
    - PyCursesCheckERR
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgd_impl(PyCursesWindowObject *self, PyObject *ch, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:845,1
    - Dst: wattroff
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 846
    functionName: _curses_window_attroff_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wattroff
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attroff_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:861,1
    - Dst: wattron
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: _curses_window_attron_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wattron
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attron_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:877,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - attr
    argTypes:
    - PyCursesWindowObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 878
    functionName: _curses_window_attrset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wattrset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attrset_impl(PyCursesWindowObject *self, long attr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:899,1
    - Dst: wbkgdset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:902,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 904
    functionName: _curses_window_bkgdset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wbkgdset
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_bkgdset_impl(PyCursesWindowObject *self,
      PyObject *ch,\n                            long attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:953,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:954,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:955,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:956,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:957,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:958,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:959,1
    - Dst: CONVERTTOCHTYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:960,1
    - Dst: wborder
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 9
    argNames:
    - self
    - ls
    - rs
    - ts
    - bs
    - tl
    - tr
    - bl
    - br
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 968
    functionName: _curses_window_border_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wborder
    - CONVERTTOCHTYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_border_impl(PyCursesWindowObject *self,
      PyObject *ls,\n                           PyObject *rs, PyObject *ts, PyObject
      *bs,\n                           PyObject *tl, PyObject *tr, PyObject *bl,\n
      \                          PyObject *br)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: CONVERTTOCHTYPE
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERTTOCHTYPE(obj, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:994,1
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:997,1
    - Dst: box
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - self
    - group_right_1
    - verch
    - horch
    argTypes:
    - PyCursesWindowObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 1003
    functionName: _curses_window_box_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - box
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_box_impl(PyCursesWindowObject *self, int
      group_right_1,\n                        PyObject *verch, PyObject *horch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mvwdelch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - y
    - x
    argTypes:
    - WINDOW*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1014
    functionName: py_mvwdelch
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwdelch
    linkageType: ''
    returnType: int
    signature: int py_mvwdelch(WINDOW *w, int y, int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - win
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: py_is_pad
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: py_is_pad(win)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - win
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1021
    functionName: py_is_pad
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: py_is_pad(win)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1062,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1064,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1069,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1074,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1080,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1086,1
    - Dst: mvwchgat
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1094,1
    - Dst: touchline
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1095,1
    - Dst: getyx
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1097,1
    - Dst: wchgat
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1098,1
    - Dst: touchline
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1099,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1102
    functionName: PyCursesWindow_ChgAt
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wchgat
    - getyx
    - PyCursesCheckERR
    - mvwchgat
    - touchline
    - PyTuple_Size
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_ChgAt(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1125,1
    - Dst: wdelch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1125,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1128,1
    - Dst: py_mvwdelch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1130
    functionName: _curses_window_delch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - py_mvwdelch
    - wdelch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_delch_impl(PyCursesWindowObject *self,
      int group_right_1,\n                          int y, int x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: derwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1161,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1164,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - self
    - group_left_1
    - nlines
    - ncols
    - begin_y
    - begin_x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1154
    functionDepth: 2
    functionLinenumber: 1154
    functionLinenumberEnd: 1169
    functionName: _curses_window_derwin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - derwin
    - PyCursesWindow_New
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_derwin_impl(PyCursesWindowObject *self,
      int group_left_1,\n                           int nlines, int ncols, int begin_y,
      int begin_x)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1191,1
    - Dst: py_is_pad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1195,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1196,1
    - Dst: pechochar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1196,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1201,1
    - Dst: wechochar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - ch
    - attr
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1203
    functionName: _curses_window_echochar_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCurses_ConvertToChtype
    - PyCursesCheckERR
    - py_is_pad
    - pechochar
    - wechochar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_echochar_impl(PyCursesWindowObject *self,
      PyObject *ch,\n                             long attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wenclose
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1223
    functionName: _curses_window_enclose_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wenclose
    linkageType: ''
    returnType: long
    signature: long _curses_window_enclose_impl(PyCursesWindowObject *self, int y,
      int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getbkgd
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1237
    functionName: _curses_window_getbkgd_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getbkgd
    linkageType: ''
    returnType: long
    signature: long _curses_window_getbkgd_impl(PyCursesWindowObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wgetch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1266,1
    - Dst: mvwgetch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1270
    functionName: _curses_window_getch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wgetch
    - mvwgetch
    linkageType: ''
    returnType: int
    signature: "int _curses_window_getch_impl(PyCursesWindowObject *self, int group_right_1,\n
      \                         int y, int x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wgetch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1303,1
    - Dst: mvwgetch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1307
    functionName: _curses_window_getkey_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wgetch
    - mvwgetch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_getkey_impl(PyCursesWindowObject *self,
      int group_right_1,\n                           int y, int x)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wget_wch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1360,1
    - Dst: mvwget_wch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1364
    functionName: _curses_window_get_wch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wget_wch
    - mvwget_wch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_get_wch_impl(PyCursesWindowObject *self,
      int group_right_1,\n                            int y, int x)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1405,1
    - Dst: wgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1408,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1412,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1415,1
    - Dst: wgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1419,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1419,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1423,1
    - Dst: wmove
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1427,1
    - Dst: wgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1427,1
    - Dst: mvwgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1429,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1437,1
    - Dst: wmove
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1442,1
    - Dst: wgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1443,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1443,1
    - Dst: mvwgetnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1447,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1447,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1452,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1458
    functionName: PyCursesWindow_GetStr
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wgetnstr
    - mvwgetnstr
    - PyBytes_FromString
    - PyTuple_Size
    - PyErr_SetString
    - Py_MIN
    - PyArg_ParseTuple
    - wmove
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_GetStr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1492,1
    - Dst: wmove
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1495,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1496,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1499,1
    - Dst: whline
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 8
    argNames:
    - self
    - group_left_1
    - y
    - x
    - ch
    - n
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1484
    functionDepth: 2
    functionLinenumber: 1484
    functionLinenumberEnd: 1500
    functionName: _curses_window_hline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - whline
    - PyCurses_ConvertToChtype
    - wmove
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_hline_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      n,\n                          int group_right_1, long attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1536,1
    - Dst: winsch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1540,1
    - Dst: mvwinsch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1543,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - self
    - group_left_1
    - y
    - x
    - ch
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1527
    functionDepth: 2
    functionLinenumber: 1527
    functionLinenumberEnd: 1547
    functionName: _curses_window_insch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - winsch
    - PyCurses_ConvertToChtype
    - mvwinsch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_insch_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      group_right_1,\n                          long attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1573,1
    - Dst: mvwinch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - self
    - group_right_1
    - y
    - x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1580
    functionName: _curses_window_inch_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mvwinch
    - winch
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long _curses_window_inch_impl(PyCursesWindowObject *self,
      int group_right_1,\n                         int y, int x)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1609,1
    - Dst: winnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1611,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1614,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1617,1
    - Dst: winnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1620,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1620,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1623,1
    - Dst: mvwinnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1625,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1628,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1631,1
    - Dst: mvwinnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1634,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1634,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1637,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1642,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1643
    functionName: PyCursesWindow_InStr
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - winnstr
    - mvwinnstr
    - PyBytes_FromString
    - PyTuple_Size
    - PyErr_SetString
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_InStr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1690,1
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1692,1
    - Dst: getattrs
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1698,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1699,1
    - Dst: mvwins_wstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1705,1
    - Dst: wins_wstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1707,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1708,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1713,1
    - Dst: mvwinsstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1716,1
    - Dst: winsstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1718,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1719,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1722,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1723,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - self
    - group_left_1
    - y
    - x
    - str
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1673
    functionDepth: 2
    functionLinenumber: 1673
    functionLinenumberEnd: 1724
    functionName: _curses_window_insstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - winsstr
    - Py_DECREF
    - PyCursesCheckERR
    - PyCurses_ConvertToString
    - mvwinsstr
    - PyMem_Free
    - getattrs
    - wins_wstr
    - PyBytes_AS_STRING
    - mvwins_wstr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_insstr_impl(PyCursesWindowObject *self,
      int group_left_1,\n                           int y, int x, PyObject *str, int
      group_right_1,\n                           long attr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1775,1
    - Dst: PyCurses_ConvertToString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1777,1
    - Dst: getattrs
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1783,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1784,1
    - Dst: mvwins_nwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1790,1
    - Dst: wins_nwstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1792,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1793,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1798,1
    - Dst: mvwinsnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1801,1
    - Dst: winsnstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1803,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1804,1
    - Dst: wattrset
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1807,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 8
    argNames:
    - self
    - group_left_1
    - y
    - x
    - str
    - n
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1758
    functionDepth: 2
    functionLinenumber: 1758
    functionLinenumberEnd: 1809
    functionName: _curses_window_insnstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wattrset
    - Py_DECREF
    - PyCursesCheckERR
    - PyCurses_ConvertToString
    - winsnstr
    - wins_nwstr
    - mvwinsnstr
    - PyMem_Free
    - getattrs
    - PyBytes_AS_STRING
    - mvwins_nwstr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_insnstr_impl(PyCursesWindowObject *self,
      int group_left_1,\n                            int y, int x, PyObject *str,
      int n,\n                            int group_right_1, long attr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_linetouched
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1828,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1830,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - line
    argTypes:
    - PyCursesWindowObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1823
    functionDepth: 1
    functionLinenumber: 1823
    functionLinenumberEnd: 1835
    functionName: _curses_window_is_linetouched_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - is_linetouched
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_is_linetouched_impl(PyCursesWindowObject *self, int line)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py_is_pad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1883,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1885,1
    - Dst: pnoutrefresh
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1891,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1897,1
    - Dst: wnoutrefresh
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCursesWindowObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1875
    functionDepth: 1
    functionLinenumber: 1875
    functionLinenumberEnd: 1906
    functionName: _curses_window_noutrefresh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wnoutrefresh
    - py_is_pad
    - pnoutrefresh
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh_impl(PyCursesWindowObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copywin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1945,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1947,1
    - Dst: overlay
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1950,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - self
    - destwin
    - group_right_1
    - sminrow
    - smincol
    - dminrow
    - dmincol
    - dmaxrow
    - dmaxcol
    argTypes:
    - PyCursesWindowObject*
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1953
    functionName: _curses_window_overlay_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - copywin
    - overlay
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_overlay_impl(PyCursesWindowObject *self,\n
      \                           PyCursesWindowObject *destwin, int group_right_1,\n
      \                           int sminrow, int smincol, int dminrow,\n                            int
      dmincol, int dmaxrow, int dmaxcol)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copywin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1993,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1995,1
    - Dst: overwrite
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1998,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:1999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 9
    argNames:
    - self
    - destwin
    - group_right_1
    - sminrow
    - smincol
    - dminrow
    - dmincol
    - dmaxrow
    - dmaxcol
    argTypes:
    - PyCursesWindowObject*
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 2001
    functionName: _curses_window_overwrite_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - copywin
    - overwrite
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_overwrite_impl(PyCursesWindowObject *self,\n
      \                             PyCursesWindowObject *destwin,\n                              int
      group_right_1, int sminrow, int smincol,\n                              int
      dminrow, int dmincol, int dmaxrow,\n                              int dmaxcol)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tmpfile
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2023,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2025,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2026,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2026,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2028,1
    - Dst: putwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2028,1
    - Dst: fseek
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2031,1
    - Dst: fread
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2034,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2039,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2040,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2046,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2014
    functionDepth: 1
    functionLinenumber: 2014
    functionLinenumberEnd: 2048
    functionName: _curses_window_putwin
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - putwin
    - fread
    - _Py_set_inheritable
    - Py_DECREF
    - PyCursesCheckERR
    - _PyObject_CallMethodId
    - PyErr_SetFromErrno
    - _Py_IDENTIFIER
    - tmpfile
    - fclose
    - fseek
    - fileno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_putwin(PyCursesWindowObject *self, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2068,1
    - Dst: wredrawln
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - beg
    - num
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2069
    functionName: _curses_window_redrawln_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wredrawln
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_redrawln_impl(PyCursesWindowObject *self, int beg, int num)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: py_is_pad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2108,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2110,1
    - Dst: prefresh
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2122,1
    - Dst: wrefresh
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 8
    argNames:
    - self
    - group_right_1
    - pminrow
    - pmincol
    - sminrow
    - smincol
    - smaxrow
    - smaxcol
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2130
    functionName: _curses_window_refresh_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - py_is_pad
    - prefresh
    - wrefresh
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_refresh_impl(PyCursesWindowObject *self,
      int group_right_1,\n                            int pminrow, int pmincol, int
      sminrow,\n                            int smincol, int smaxrow, int smaxcol)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2151,1
    - Dst: wsetscrreg
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - top
    - bottom
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2152
    functionName: _curses_window_setscrreg_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wsetscrreg
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_setscrreg_impl(PyCursesWindowObject *self,
      int top,\n                              int bottom)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py_is_pad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2184,1
    - Dst: subpad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2185,1
    - Dst: subwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2189,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2192,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - self
    - group_left_1
    - nlines
    - ncols
    - begin_y
    - begin_x
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2175
    functionDepth: 2
    functionLinenumber: 2175
    functionLinenumberEnd: 2197
    functionName: _curses_window_subwin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - subpad
    - py_is_pad
    - PyCursesWindow_New
    - PyErr_SetString
    - subwin
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_subwin_impl(PyCursesWindowObject *self,
      int group_left_1,\n                           int nlines, int ncols, int begin_y,
      int begin_x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2219,1
    - Dst: scroll
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2219,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2222,1
    - Dst: wscrl
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - group_right_1
    - lines
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2224
    functionName: _curses_window_scroll_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - scroll
    - PyCursesCheckERR
    - wscrl
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_scroll_impl(PyCursesWindowObject *self,
      int group_right_1,\n                           int lines)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2248,1
    - Dst: touchline
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2248,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2251,1
    - Dst: wtouchln
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - start
    - count
    - group_right_1
    - changed
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2242
    functionDepth: 0
    functionLinenumber: 2242
    functionLinenumberEnd: 2253
    functionName: _curses_window_touchline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - wtouchln
    - PyCursesCheckERR
    - touchline
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_touchline_impl(PyCursesWindowObject *self,
      int start,\n                              int count, int group_right_1, int
      changed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2287,1
    - Dst: wmove
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2290,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2291,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2293,1
    - Dst: wvline
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 8
    argNames:
    - self
    - group_left_1
    - y
    - x
    - ch
    - n
    - group_right_1
    - attr
    argTypes:
    - PyCursesWindowObject*
    - int
    - int
    - int
    - PyObject*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2279
    functionDepth: 2
    functionLinenumber: 2279
    functionLinenumberEnd: 2294
    functionName: _curses_window_vline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - wvline
    - PyCurses_ConvertToChtype
    - wmove
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_window_vline_impl(PyCursesWindowObject *self,
      int group_left_1,\n                          int y, int x, PyObject *ch, int
      n,\n                          int group_right_1, long attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyCursesWindowObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2296
    functionDepth: 1
    functionLinenumber: 2296
    functionLinenumberEnd: 2300
    functionName: PyCursesWindow_get_encoding
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCursesWindow_get_encoding(PyCursesWindowObject *self, void *closure)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2310,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2316,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2320,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2323,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2324,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2326,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2302
    functionDepth: 1
    functionLinenumber: 2302
    functionLinenumberEnd: 2332
    functionName: PyCursesWindow_set_encoding
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - Py_DECREF
    - PyErr_NoMemory
    - PyUnicode_AsASCIIString
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyCursesWindow_set_encoding(PyCursesWindowObject *self, PyObject
      *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2474
    functionDepth: 0
    functionLinenumber: 2474
    functionLinenumberEnd: 2478
    functionName: NoArgNoReturnFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgNoReturnFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2479
    functionDepth: 0
    functionLinenumber: 2479
    functionLinenumberEnd: 2487
    functionName: NoArgOrFlagNoReturnFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgOrFlagNoReturnFunctionBody(X, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2488
    functionDepth: 0
    functionLinenumber: 2488
    functionLinenumberEnd: 2492
    functionName: NoArgReturnIntFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgReturnIntFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2498
    functionName: NoArgReturnStringFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgReturnStringFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2499
    functionDepth: 0
    functionLinenumber: 2499
    functionLinenumberEnd: 2503
    functionName: NoArgTrueFalseFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgTrueFalseFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2504
    functionDepth: 0
    functionLinenumber: 2504
    functionLinenumberEnd: 2509
    functionName: NoArgNoReturnVoidFunctionBody
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NoArgNoReturnVoidFunctionBody(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filter
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2528
    functionName: _curses_filter_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - filter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_filter_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: color_content
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2607,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2608,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - color_number
    argTypes:
    - PyObject*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2598
    functionDepth: 1
    functionLinenumber: 2598
    functionLinenumberEnd: 2614
    functionName: _curses_color_content_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - color_content
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_content_impl(PyObject *module, short color_number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2636,1
    - Dst: color_pair_to_attr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - color_number
    argTypes:
    - PyObject*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2629
    functionDepth: 1
    functionLinenumber: 2629
    functionLinenumberEnd: 2637
    functionName: _curses_color_pair_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - color_pair_to_attr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_pair_impl(PyObject *module, short color_number)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: curs_set
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2662,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2663,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - visibility
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2666
    functionName: _curses_curs_set_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyCursesCheckERR
    - curs_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_curs_set_impl(PyObject *module, int visibility)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2714,1
    - Dst: delay_output
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2715
    functionName: _curses_delay_output_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - delay_output
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_delay_output_impl(PyObject *module, int ms)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erasechar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2770,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2762
    functionDepth: 1
    functionLinenumber: 2762
    functionLinenumberEnd: 2773
    functionName: _curses_erasechar_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - erasechar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_erasechar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getsyx
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2820,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2823
      start: 2811
    functionDepth: 1
    functionLinenumber: 2811
    functionLinenumberEnd: 2823
    functionName: _curses_getsyx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getsyx
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getsyx_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getmouse
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2845,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2847,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2836
    functionDepth: 1
    functionLinenumber: 2836
    functionLinenumberEnd: 2854
    functionName: _curses_getmouse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - getmouse
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getmouse_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2885,1
    - Dst: ungetmouse
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - module
    - id
    - x
    - y
    - z
    - bstate
    argTypes:
    - PyObject*
    - short
    - int
    - int
    - int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2871
    functionDepth: 0
    functionLinenumber: 2871
    functionLinenumberEnd: 2886
    functionName: _curses_ungetmouse_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - ungetmouse
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_ungetmouse_impl(PyObject *module, short id, int
      x, int y, int z,\n                        unsigned long bstate)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2909,1
    - Dst: tmpfile
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2914,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2916,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2918,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2918,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2921,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2924,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2925,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2928,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2931,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2932,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2933,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2937,1
    - Dst: fseek
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2939,1
    - Dst: getwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2940,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2942,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2945,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2948,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2901
    functionDepth: 2
    functionLinenumber: 2901
    functionLinenumberEnd: 2950
    functionName: _curses_getwin
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - getwin
    - _Py_set_inheritable
    - Py_DECREF
    - fwrite
    - _PyObject_CallMethodId
    - PyErr_SetFromErrno
    - _Py_IDENTIFIER
    - tmpfile
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyCursesWindow_New
    - PyBytes_AS_STRING
    - fseek
    - PyErr_SetString
    - fclose
    - fileno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getwin(PyObject *module, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2970,1
    - Dst: halfdelay
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:2970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - tenths
    argTypes:
    - PyObject*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2964
    functionDepth: 0
    functionLinenumber: 2964
    functionLinenumberEnd: 2971
    functionName: _curses_halfdelay_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - halfdelay
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_halfdelay_impl(PyObject *module, unsigned char tenths)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3023,1
    - Dst: has_key
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3024
      start: 3017
    functionDepth: 1
    functionLinenumber: 3017
    functionLinenumberEnd: 3024
    functionName: _curses_has_key_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - has_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_key_impl(PyObject *module, int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3055,1
    - Dst: init_color
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - module
    - color_number
    - r
    - g
    - b
    argTypes:
    - PyObject*
    - short
    - short
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3047
    functionDepth: 0
    functionLinenumber: 3047
    functionLinenumberEnd: 3056
    functionName: _curses_init_color_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - init_color
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_init_color_impl(PyObject *module, short color_number,
      short r,\n                        short g, short b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3083,1
    - Dst: init_pair
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - module
    - pair_number
    - fg
    - bg
    argTypes:
    - PyObject*
    - short
    - short
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3075
    functionDepth: 0
    functionLinenumber: 3075
    functionLinenumberEnd: 3084
    functionName: _curses_init_pair_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - init_pair
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_init_pair_impl(PyObject *module, short pair_number,
      short fg,\n                       short bg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wrefresh
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3104,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3105,1
    - Dst: initscr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3108,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3111,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3128,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3129,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3130,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3131,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3132,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3133,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3134,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3135,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3136,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3137,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3138,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3144,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3145,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3146,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3147,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3148,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3149,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3150,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3151,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3152,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3153,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3154,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3155,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3156,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3157,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3159,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3160,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3161,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3162,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3163,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3164,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3165,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3166,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3167,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3168,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3169,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3173,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3176,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3179,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3182,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3185,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3188,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3191,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3194,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3195,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3096
    functionDepth: 2
    functionLinenumber: 3096
    functionLinenumberEnd: 3200
    functionName: _curses_initscr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesWindow_New
    - wrefresh
    - PyErr_SetString
    - SetDictInt
    - initscr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_initscr_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3119
    functionDepth: 0
    functionLinenumber: 3119
    functionLinenumberEnd: 3126
    functionName: SetDictInt
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDictInt(string,ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3227,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3233,1
    - Dst: setupterm
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3240,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3249,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - module
    - term
    - fd
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3215
    functionDepth: 1
    functionLinenumber: 3215
    functionLinenumberEnd: 3256
    functionName: _curses_setupterm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - setupterm
    - PyObject_AsFileDescriptor
    - PySys_GetObject
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setupterm_impl(PyObject *module, const char *term, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3272,1
    - Dst: intrflush
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3266
    functionDepth: 0
    functionLinenumber: 3266
    functionLinenumberEnd: 3273
    functionName: _curses_intrflush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - intrflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_intrflush_impl(PyObject *module, int flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3305,1
    - Dst: is_term_resized
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3299
    functionDepth: 1
    functionLinenumber: 3299
    functionLinenumberEnd: 3306
    functionName: _curses_is_term_resized_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - is_term_resized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_is_term_resized_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3328,1
    - Dst: keyname
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3331,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3319
    functionDepth: 1
    functionLinenumber: 3319
    functionLinenumberEnd: 3334
    functionName: _curses_keyname_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - keyname
    - PyBytes_FromString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_keyname_impl(PyObject *module, int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: killchar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3348,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3342
    functionDepth: 1
    functionLinenumber: 3342
    functionLinenumberEnd: 3351
    functionName: _curses_killchar_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - killchar
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_killchar_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3385,1
    - Dst: meta
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - 'yes'
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3386
      start: 3379
    functionDepth: 0
    functionLinenumber: 3379
    functionLinenumberEnd: 3386
    functionName: _curses_meta_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - meta
    - PyCursesCheckERR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_meta_impl(PyObject *module, int yes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3409,1
    - Dst: mouseinterval
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - interval
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3410
      start: 3403
    functionDepth: 0
    functionLinenumber: 3403
    functionLinenumberEnd: 3410
    functionName: _curses_mouseinterval_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - mouseinterval
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mouseinterval_impl(PyObject *module, int interval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mousemask
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3433,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - newmask
    argTypes:
    - PyObject*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3426
    functionDepth: 1
    functionLinenumber: 3426
    functionLinenumberEnd: 3436
    functionName: _curses_mousemask_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - mousemask
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mousemask_impl(PyObject *module, unsigned long newmask)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3455,1
    - Dst: napms
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - ms
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3449
    functionDepth: 1
    functionLinenumber: 3449
    functionLinenumberEnd: 3456
    functionName: _curses_napms_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - napms
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_napms_impl(PyObject *module, int ms)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newpad
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3482,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3487
      start: 3471
    functionDepth: 2
    functionLinenumber: 3471
    functionLinenumberEnd: 3487
    functionName: _curses_newpad_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesWindow_New
    - newpad
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_newpad_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newwin
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3519,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3521,1
    - Dst: PyCursesWindow_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - module
    - nlines
    - ncols
    - group_right_1
    - begin_y
    - begin_x
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3510
    functionDepth: 2
    functionLinenumber: 3510
    functionLinenumberEnd: 3526
    functionName: _curses_newwin_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - newwin
    - PyCursesWindow_New
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_newwin_impl(PyObject *module, int nlines, int
      ncols,\n                    int group_right_1, int begin_y, int begin_x)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pair_content
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3632,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3633,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - pair_number
    argTypes:
    - PyObject*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3639
      start: 3623
    functionDepth: 1
    functionLinenumber: 3623
    functionLinenumberEnd: 3639
    functionName: _curses_pair_content_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - pair_content
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_content_impl(PyObject *module, short pair_number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3659,1
    - Dst: attr_to_color_pair
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - attr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3652
    functionDepth: 1
    functionLinenumber: 3652
    functionLinenumberEnd: 3660
    functionName: _curses_pair_number_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - attr_to_color_pair
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_number_impl(PyObject *module, int attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3677,1
    - Dst: putp
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3678
      start: 3673
    functionDepth: 0
    functionLinenumber: 3673
    functionLinenumberEnd: 3678
    functionName: _curses_putp_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - putp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_putp_impl(PyObject *module, const char *string)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qiflush
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3700,1
    - Dst: noqiflush
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3693
    functionDepth: 0
    functionLinenumber: 3693
    functionLinenumberEnd: 3706
    functionName: _curses_qiflush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - qiflush
    - noqiflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_qiflush_impl(PyObject *module, int flag)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3715,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3716,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3717,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3722,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3724,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3727,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3728,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3729,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3733,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3735,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3738,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3741,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3744,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3745,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3746,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3749,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3750,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3754,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3711
    functionDepth: 1
    functionLinenumber: 3711
    functionLinenumberEnd: 3757
    functionName: update_lines_cols
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyImport_ImportModuleNoBlock
    - _Py_IDENTIFIER
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int update_lines_cols(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_lines_cols
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3764
    functionDepth: 2
    functionLinenumber: 3764
    functionLinenumberEnd: 3769
    functionName: _curses_update_lines_cols_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - update_lines_cols
    linkageType: ''
    returnType: int
    signature: int _curses_update_lines_cols_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3849,1
    - Dst: resizeterm
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3849,1
    - Dst: update_lines_cols
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3855
      start: 3841
    functionDepth: 2
    functionLinenumber: 3841
    functionLinenumberEnd: 3855
    functionName: _curses_resizeterm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - update_lines_cols
    - resizeterm
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resizeterm_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3886,1
    - Dst: resize_term
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3886,1
    - Dst: update_lines_cols
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - nlines
    - ncols
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3878
    functionDepth: 2
    functionLinenumber: 3878
    functionLinenumberEnd: 3892
    functionName: _curses_resize_term_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - resize_term
    - PyCursesCheckERR
    - update_lines_cols
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resize_term_impl(PyObject *module, int nlines, int ncols)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsyx
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - module
    - y
    - x
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3921
    functionDepth: 0
    functionLinenumber: 3921
    functionLinenumberEnd: 3930
    functionName: _curses_setsyx_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - setsyx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setsyx_impl(PyObject *module, int y, int x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: start_color
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3955,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3958,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3961,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3962,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3963,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3967,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:3970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3946
    functionDepth: 1
    functionLinenumber: 3946
    functionLinenumberEnd: 3973
    functionName: _curses_start_color_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - start_color
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_start_color_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4016,1
    - Dst: tigetflag
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 4010
    functionDepth: 0
    functionLinenumber: 4010
    functionLinenumberEnd: 4017
    functionName: _curses_tigetflag_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - tigetflag
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetflag_impl(PyObject *module, const char *capname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4038,1
    - Dst: tigetnum
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4032
    functionDepth: 0
    functionLinenumber: 4032
    functionLinenumberEnd: 4039
    functionName: _curses_tigetnum_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - tigetnum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetnum_impl(PyObject *module, const char *capname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tigetstr
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4060,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - capname
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4054
    functionDepth: 1
    functionLinenumber: 4054
    functionLinenumberEnd: 4065
    functionName: _curses_tigetstr_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - tigetstr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetstr_impl(PyObject *module, const char *capname)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tparm
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4095,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4097,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 11
    argNames:
    - module
    - str
    - i1
    - i2
    - i3
    - i4
    - i5
    - i6
    - i7
    - i8
    - i9
    argTypes:
    - PyObject*
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4102
      start: 4086
    functionDepth: 1
    functionLinenumber: 4086
    functionLinenumberEnd: 4102
    functionName: _curses_tparm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - PyErr_SetString
    - tparm
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_curses_tparm_impl(PyObject *module, const char *str,
      int i1, int i2, int i3,\n                   int i4, int i5, int i6, int i7,
      int i8, int i9)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4123,1
    - Dst: typeahead
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4124
      start: 4117
    functionDepth: 0
    functionLinenumber: 4117
    functionLinenumberEnd: 4124
    functionName: _curses_typeahead_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - typeahead
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_typeahead_impl(PyObject *module, int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4147,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4150,1
    - Dst: unctrl
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4151
      start: 4139
    functionDepth: 2
    functionLinenumber: 4139
    functionLinenumberEnd: 4151
    functionName: _curses_unctrl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromString
    - unctrl
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_unctrl(PyObject *module, PyObject *ch)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToChtype
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4170,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4173,1
    - Dst: ungetch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4162
    functionDepth: 2
    functionLinenumber: 4162
    functionLinenumberEnd: 4174
    functionName: _curses_ungetch
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - ungetch
    - PyCursesCheckERR
    - PyCurses_ConvertToChtype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_ungetch(PyObject *module, PyObject *ch)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4187,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4189,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4190,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4193,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4199,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4204,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4210,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4217,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - wch
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4183
    functionDepth: 1
    functionLinenumber: 4183
    functionLinenumberEnd: 4222
    functionName: PyCurses_ConvertToWchar_t
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - PyLong_AsLongAndOverflow
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int PyCurses_ConvertToWchar_t(PyObject *obj,\n                          wchar_t
      *wch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCurses_ConvertToWchar_t
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4241,1
    - Dst: PyCursesCheckERR
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4243,1
    - Dst: unget_wch
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ch
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4244
      start: 4233
    functionDepth: 2
    functionLinenumber: 4233
    functionLinenumberEnd: 4244
    functionName: _curses_unget_wch
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyCursesCheckERR
    - unget_wch
    - PyCurses_ConvertToWchar_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_unget_wch(PyObject *module, PyObject *ch)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: use_env
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4272
      start: 4266
    functionDepth: 0
    functionLinenumber: 4266
    functionLinenumberEnd: 4272
    functionName: _curses_use_env_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - use_env
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_env_impl(PyObject *module, int flag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: use_default_colors
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4294,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4285
    functionDepth: 1
    functionLinenumber: 4285
    functionLinenumberEnd: 4301
    functionName: _curses_use_default_colors_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - use_default_colors
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_default_colors_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4334,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4346,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4347,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4328
    functionDepth: 1
    functionLinenumber: 4328
    functionLinenumberEnd: 4352
    functionName: make_ncurses_version
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - SetIntItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_ncurses_version(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4339
    functionDepth: 0
    functionLinenumber: 4339
    functionLinenumberEnd: 4345
    functionName: SetIntItem
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetIntItem(flag)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4459,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4469,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4474,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4480,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4482,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4485,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4486,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4489,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4490,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4491,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4492,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4497,1
    - Dst: make_ncurses_version
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4501,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4506,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4511,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4512,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4514,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4518,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4519,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4523,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4524,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4525,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4526,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4527,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4528,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4529,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4530,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4531,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4532,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4533,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4534,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4535,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4539,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4542,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4545,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4548,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4551,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4554,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4559,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4562,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4563,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4564,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4565,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4566,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4567,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4568,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4569,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4573,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4574,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4575,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4576,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4577,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4579,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4580,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4581,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4582,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4583,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4585,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4586,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4587,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4588,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4589,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4591,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4592,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4593,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4594,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4595,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4597,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4598,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4599,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4601,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4602,1
    - Dst: keyname
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4610,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4611,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4613,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4615,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4615,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4617,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4632,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4634,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4636,1
    - Dst: SetDictInt
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4637,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4640,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_cursesmodule.c:4641,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 125
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4452
    functionDepth: 2
    functionLinenumber: 4452
    functionLinenumberEnd: 4643
    functionName: PyInit__curses
    functionSourceFile: /src/Python-3.8.3/Modules/_cursesmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDict
    - PyErr_NewException
    - Py_INCREF
    - PyModule_Create
    - PyCapsule_New
    - strlen
    - PyBytes_FromString
    - make_ncurses_version
    - PyErr_ExceptionMatches
    - keyname
    - PyErr_Clear
    - strncmp
    - PyDict_DelItemString
    - PyStructSequence_InitType2
    - Py_DECREF
    - PyMem_Free
    - SetDictInt
    - PyType_Ready
    - PyErr_NoMemory
    - PyModule_AddObject
    - PyMem_Malloc
    - PyDict_SetItemString
    - strcmp
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__curses(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: my_getpagesize
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int my_getpagesize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: my_getallocationgranularity
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetSystemInfo
    linkageType: ''
    returnType: int
    signature: int my_getallocationgranularity (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: my_getpagesize
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: int
    signature: int my_getpagesize(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:123,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:125,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:127,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:130,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:136,1
    - Dst: munmap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:138,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:144,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - m_obj
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: mmap_object_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - UnmapViewOfFile
    - munmap
    - close
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyMem_Free
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void mmap_object_dealloc(mmap_object *m_obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:152,1
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:172,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:175,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:178,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:190,1
    - Dst: munmap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 198
    functionName: mmap_close_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - UnmapViewOfFile
    - munmap
    - close
    - PyErr_SetString
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_close_method(mmap_object *self, PyObject *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: CHECK_VALID
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: CHECK_VALID
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_VALID(err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:226,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: mmap_read_byte_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_SetString
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_read_byte_method(mmap_object *self,\n                      PyObject
      *unused)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:240,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:244,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:246,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 254
    functionName: mmap_read_line_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - memchr
    - PyBytes_FromString
    - PyBytes_FromStringAndSize
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_read_line_method(mmap_object *self,\n                      PyObject
      *unused)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:263,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:264,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 274
    functionName: mmap_read_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyArg_ParseTuple
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_read_method(mmap_object *self,\n                 PyObject
      *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:285,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:286,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:318,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:319,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:322,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:323,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - reverse
    argTypes:
    - mmap_object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 325
    functionName: mmap_gfind
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - CHECK_VALID
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_gfind(mmap_object *self,\n           PyObject *args,\n
      \          int reverse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_gfind
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: mmap_find_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_gfind
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_find_method(mmap_object *self,\n                 PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mmap_gfind
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: mmap_rfind_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - mmap_gfind
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_rfind_method(mmap_object *self,\n                 PyObject
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: is_writable
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int is_writable(mmap_object *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:354,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: is_resizeable
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int is_resizeable(mmap_object *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:372,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:373,1
    - Dst: is_writable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:376,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:377,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:382,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:383,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:387,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:389,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 391
    functionName: mmap_write_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CHECK_VALID
    - PyBuffer_Release
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyArg_ParseTuple
    - is_writable
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_write_method(mmap_object *self,\n                  PyObject
      *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:399,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:400,1
    - Dst: is_writable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:403,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 414
    functionName: mmap_write_byte_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_ParseTuple
    - is_writable
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_write_byte_method(mmap_object *self,\n                       PyObject
      *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:420,1
    - Dst: GetFileSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:426,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:430,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:432,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:435,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:437,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:439,1
    - Dst: _Py_fstat
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:446,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:449,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:451,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 455
    functionName: mmap_size_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GetLastError
    - CHECK_VALID
    - _Py_fstat
    - GetFileSize
    - PyLong_FromLongLong
    - PyLong_FromSsize_t
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_size_method(mmap_object *self,\n                 PyObject
      *unused)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:471,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:472,1
    - Dst: is_resizeable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:477,1
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:486,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:489,1
    - Dst: SetFilePointer
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:496,1
    - Dst: SetEndOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:499,1
    - Dst: CreateFileMapping
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:501,1
    - Dst: MapViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:509,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:518,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:519,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:523,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:525,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:531,1
    - Dst: ftruncate
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:537,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:538,1
    - Dst: mremap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:543,1
    - Dst: mremap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:546,1
    - Dst: mremap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:548,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:553,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 562
    functionName: mmap_resize_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - UnmapViewOfFile
    - GetLastError
    - CreateFileMapping
    - ftruncate
    - SetEndOfFile
    - PyErr_SetFromErrno
    - CHECK_VALID
    - mremap
    - SetFilePointer
    - MapViewOfFile
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - is_resizeable
    - PyArg_ParseTuple
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmmap_resize_method(mmap_object *self,\n                   PyObject
      *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:567,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: mmap_tell_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_tell_method(mmap_object *self, PyObject *unused)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:576,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:577,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:580,1
    - Dst: FlushViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:588,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:589,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:589,1
    - Dst: msync
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:595,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:596,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 604
    functionName: mmap_flush_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - msync
    - PyErr_SetFromErrno
    - CHECK_VALID
    - PyErr_SetString
    - PyArg_ParseTuple
    - FlushViewOfFile
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_flush_method(mmap_object *self, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:611,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:612,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:641,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 643
    functionName: mmap_seek_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyErr_SetString
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_seek_method(mmap_object *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:649,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:650,1
    - Dst: is_writable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:651,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:660,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:665,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 669
    functionName: mmap_move_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    - PyErr_SetString
    - memmove
    - PyArg_ParseTuple
    - is_writable
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_move_method(mmap_object *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:675,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - mmap_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 679
    functionName: mmap_closed_get
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_closed_get(mmap_object *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:684,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: mmap__enter__method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__enter__method(mmap_object *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:693,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: mmap__exit__method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__exit__method(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:704,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:704,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:706,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - mmap_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 708
    functionName: mmap__sizeof__method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap__sizeof__method(mmap_object *self, void *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:718,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:721,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:726,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:730,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:734,1
    - Dst: madvise
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:742,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:743,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 748
    functionName: mmap_madvise_method
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - madvise
    - PyErr_SetFromErrno
    - CHECK_VALID
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_madvise_method(mmap_object *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:788,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - mmap_object*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 794
    functionName: mmap_buffer_getbuf
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - CHECK_VALID
    linkageType: ''
    returnType: int
    signature: int mmap_buffer_getbuf(mmap_object *self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - mmap_object*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mmap_buffer_releasebuf
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mmap_buffer_releasebuf(mmap_object *self, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - mmap_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 807
    functionName: mmap_length
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - CHECK_VALID
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t mmap_length(mmap_object *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:812,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:814,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - mmap_object*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: mmap_item
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_SetString
    - CHECK_VALID
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_item(mmap_object *self, Py_ssize_t i)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:823,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:824,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:825,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:826,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:831,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:835,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:835,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:837,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:840,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:843,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:846,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:848,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:851,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:857,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:862,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:864,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:869,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - mmap_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 873
    functionName: mmap_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyIndex_Check
    - PyErr_Occurred
    - PySlice_Check
    - PyErr_NoMemory
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - CHECK_VALID
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - PyNumber_AsSsize_t
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mmap_subscript(mmap_object *self, PyObject *item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:880,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:882,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:886,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:890,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:890,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:891,1
    - Dst: is_writable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:895,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - i
    - v
    argTypes:
    - mmap_object*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 900
    functionName: mmap_ass_item
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_Size
    - PyBytes_AsString
    - CHECK_VALID
    - PyBytes_Check
    - PyErr_SetString
    - is_writable
    linkageType: ''
    returnType: int
    signature: int mmap_ass_item(mmap_object *self, Py_ssize_t i, PyObject *v)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_VALID
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:905,1
    - Dst: is_writable
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:907,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:910,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:911,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:914,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:919,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:924,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:928,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:929,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:933,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:934,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:937,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:945,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:949,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:952,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:954,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:958,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:961,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:963,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:970,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:983,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:987,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - mmap_object*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 991
    functionName: mmap_ass_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - memcpy
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - CHECK_VALID
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyNumber_AsSsize_t
    - is_writable
    linkageType: ''
    returnType: int
    signature: int mmap_ass_subscript(mmap_object *self, PyObject *item, PyObject
      *value)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1107,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1112,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1117,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1124,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1152,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1156,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1165,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1170,1
    - Dst: S_ISREG
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1174,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1182,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1187,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1193,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1198,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1224,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1226,1
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1234,1
    - Dst: mmap
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1239,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1249,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1250,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 105
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1255
    functionName: new_mmap_object
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - _Py_open
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - mmap
    - PyErr_SetFromErrno
    - fcntl
    - close
    - _Py_fstat_noraise
    - PyErr_Format
    - S_ISREG
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PySys_Audit
    - _Py_dup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1285,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1291,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1310,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1320,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1337,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1340,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1344,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1347,1
    - Dst: DuplicateHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1361,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1362,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1364,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1370,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1371,1
    - Dst: GetFileSize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1376,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1381,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1382,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1387,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1389,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1393,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1395,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1399,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1401,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1422,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1422,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1424,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1425,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1428,1
    - Dst: CreateFileMapping
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1440,1
    - Dst: MapViewOfFile
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1447,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1455,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1456,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1460,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1461,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1462,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 116
    argCount: 3
    argNames:
    - type
    - args
    - kwdict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1464
    functionName: new_mmap_object
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - lseek
    - PyArg_ParseTupleAndKeywords
    - CloseHandle
    - GetLastError
    - PyTypeObject*::tp_alloc
    - strlen
    - PyErr_Format
    - PyErr_SetFromWindowsErr
    - CreateFileMapping
    - Py_DECREF
    - PyErr_SetFromErrno
    - GetFileSize
    - strcpy
    - _get_osfhandle
    - PyErr_NoMemory
    - GetCurrentProcess
    - DuplicateHandle
    - MapViewOfFile
    - PyErr_SetString
    - PyMem_Malloc
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1470,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1472,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - d
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1475
    functionName: setint
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItemString
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void setint(PyObject *d, const char *name, long value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1495,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1498,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1501,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1504,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1505,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1507,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1510,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1513,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1517,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1520,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1523,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1526,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1529,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1530,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1533,1
    - Dst: my_getpagesize
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1533,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1535,1
    - Dst: my_getallocationgranularity
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1535,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1537,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1538,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1539,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1540,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1545,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1548,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1551,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1554,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1557,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1562,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1565,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1568,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1571,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1574,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1577,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1580,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1583,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1586,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1589,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1592,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1595,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1600,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1603,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1606,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1609,1
    - Dst: setint
      Src: /src/Python-3.8.3/Modules/mmapmodule.c:1612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1617
    functionName: PyInit_mmap
    functionSourceFile: /src/Python-3.8.3/Modules/mmapmodule.c
    functionUses: 0
    functionsReached:
    - my_getpagesize
    - PyType_Ready
    - PyModule_GetDict
    - my_getallocationgranularity
    - PyModule_Create
    - setint
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_mmap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: HANDLE_TO_PYNUM
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_TO_PYNUM(handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: PYNUM_TO_HANDLE
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYNUM_TO_HANDLE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: HANDLE_TO_PYNUM
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_TO_PYNUM(handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: PYNUM_TO_HANDLE
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PYNUM_TO_HANDLE(obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:73,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_winapi.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: check_CancelIoEx
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetModuleHandle
    - GetProcAddress
    linkageType: ''
    returnType: int
    signature: int check_CancelIoEx()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:106,1
    - Dst: check_CancelIoEx
      Src: /src/Python-3.8.3/Modules/_winapi.c:109,1
    - Dst: Py_CancelIoEx
      Src: /src/Python-3.8.3/Modules/_winapi.c:110,1
    - Dst: GetOverlappedResult
      Src: /src/Python-3.8.3/Modules/_winapi.c:111,1
    - Dst: _Py_IsFinalizing
      Src: /src/Python-3.8.3/Modules/_winapi.c:115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:119,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_winapi.c:122,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:132,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:133,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:138,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:139,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_winapi.c:141,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_winapi.c:142,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_winapi.c:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 144
    functionName: overlapped_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_CLEAR
    - SetLastError
    - PyErr_WriteUnraisable
    - _Py_IsFinalizing
    - check_CancelIoEx
    - PyBuffer_Release
    - PyErr_SetString
    - Py_CancelIoEx
    - PyObject_Del
    - GetOverlappedResult
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void overlapped_dealloc(OverlappedObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetOverlappedResult
      Src: /src/Python-3.8.3/Modules/_winapi.c:220,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:224,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:236,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:239,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_winapi.c:239,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_winapi.c:240,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_winapi.c:241,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - self
    - wait
    argTypes:
    - OverlappedObject*
    - int
    assertStmts:
    - condition: (PyBytes_CheckExact(self->read_buffer))
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 245
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 245
    functionName: _winapi_Overlapped_GetOverlappedResult_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_BuildValue
    - PyBytes_CheckExact
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_SetExcFromWindowsErr
    - assert
    - GetOverlappedResult
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_GetOverlappedResult_impl(OverlappedObject *self, int wait)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:257,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: _winapi_Overlapped_getbuffer_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_getbuffer_impl(OverlappedObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_CancelIoEx
      Src: /src/Python-3.8.3/Modules/_winapi.c:279,1
    - Dst: Py_CancelIoEx
      Src: /src/Python-3.8.3/Modules/_winapi.c:280,1
    - Dst: CancelIo
      Src: /src/Python-3.8.3/Modules/_winapi.c:282,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:287,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - OverlappedObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: _winapi_Overlapped_cancel_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    - GetLastError
    - check_CancelIoEx
    - Py_CancelIoEx
    - CancelIo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_cancel_impl(OverlappedObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_winapi.c:353,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_winapi.c:360,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_winapi.c:361,1
    - Dst: CreateEvent
      Src: /src/Python-3.8.3/Modules/_winapi.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 365
    functionName: new_overlapped
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateEvent
    - memset
    - PyObject_New
    linkageType: ''
    returnType: OverlappedObject
    signature: 'OverlappedObject *

      new_overlapped(HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:386,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: _winapi_CloseHandle_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - CloseHandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CloseHandle_impl(PyObject *module, HANDLE handle)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: new_overlapped
      Src: /src/Python-3.8.3/Modules/_winapi.c:411,1
    - Dst: ConnectNamedPipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:417,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:422,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:424,1
    - Dst: SetEvent
      Src: /src/Python-3.8.3/Modules/_winapi.c:428,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:430,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:431,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - module
    - handle
    - use_overlapped
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts:
    - condition: (success == 0)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 439
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 439
    functionName: _winapi_ConnectNamedPipe_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - assert
    - Py_DECREF
    - new_overlapped
    - ConnectNamedPipe
    - SetEvent
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_ConnectNamedPipe_impl(PyObject *module, HANDLE
      handle,\n                              int use_overlapped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:422,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:424,1
    - Dst: SetEvent
      Src: /src/Python-3.8.3/Modules/_winapi.c:428,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:430,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (success == 0)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_DECREF
    - assert
    - SetEvent
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (overlapped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:464,1
    - Dst: CreateFile
      Src: /src/Python-3.8.3/Modules/_winapi.c:471,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - module
    - file_name
    - desired_access
    - share_mode
    - security_attributes
    - creation_disposition
    - flags_and_attributes
    - template_file
    argTypes:
    - PyObject*
    - LPCTSTR
    - DWORD
    - DWORD
    - LPSECURITY_ATTRIBUTES
    - DWORD
    - DWORD
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 481
    functionName: _winapi_CreateFile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateFile
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateFile_impl(PyObject *module, LPCTSTR file_name,\n
      \                       DWORD desired_access, DWORD share_mode,\n                        LPSECURITY_ATTRIBUTES
      security_attributes,\n                        DWORD creation_disposition,\n
      \                       DWORD flags_and_attributes, HANDLE template_file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateFileMappingW
      Src: /src/Python-3.8.3/Modules/_winapi.c:505,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:511,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_winapi.c:512,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - module
    - file_handle
    - security_attributes
    - protect
    - max_size_high
    - max_size_low
    - name
    argTypes:
    - PyObject*
    - HANDLE
    - LPSECURITY_ATTRIBUTES
    - DWORD
    - DWORD
    - DWORD
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 518
    functionName: _winapi_CreateFileMapping_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - CreateFileMappingW
    - PyUnicode_FromWideChar
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle,\n
      \                              LPSECURITY_ATTRIBUTES security_attributes,\n
      \                              DWORD protect, DWORD max_size_high,\n                               DWORD
      max_size_low, LPCWSTR name)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:548,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/Modules/_winapi.c:550,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:551,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:553,1
    - Dst: OpenProcessToken
      Src: /src/Python-3.8.3/Modules/_winapi.c:559,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:559,1
    - Dst: LookupPrivilegeValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:562,1
    - Dst: AdjustTokenPrivileges
      Src: /src/Python-3.8.3/Modules/_winapi.c:567,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/Modules/_winapi.c:571,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/_winapi.c:575,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_winapi.c:606,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_winapi.c:610,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/_winapi.c:622,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/_winapi.c:623,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/Modules/_winapi.c:629,1
    - Dst: CreateDirectoryW
      Src: /src/Python-3.8.3/Modules/_winapi.c:634,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/_winapi.c:637,1
    - Dst: DeviceIoControl
      Src: /src/Python-3.8.3/Modules/_winapi.c:644,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:649,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:651,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:652,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Modules/_winapi.c:653,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:656,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - module
    - src_path
    - dst_path
    argTypes:
    - PyObject*
    - LPWSTR
    - LPWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 659
    functionName: _winapi_CreateJunction_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - OpenProcessToken
    - LookupPrivilegeValue
    - AdjustTokenPrivileges
    - GetLastError
    - DeviceIoControl
    - CreateDirectoryW
    - GetFileAttributesW
    - CloseHandle
    - PyMem_RawMalloc
    - GetCurrentProcess
    - CreateFileW
    - GetFullPathNameW
    - PyMem_RawFree
    - wcscpy
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_CreateJunction_impl(PyObject *module, LPWSTR src_path,\n
      \                           LPWSTR dst_path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:685,1
    - Dst: CreateNamedPipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:691,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - module
    - name
    - open_mode
    - pipe_mode
    - max_instances
    - out_buffer_size
    - in_buffer_size
    - default_timeout
    - security_attributes
    argTypes:
    - PyObject*
    - LPCTSTR
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - LPSECURITY_ATTRIBUTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 701
    functionName: _winapi_CreateNamedPipe_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - CreateNamedPipe
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_CreateNamedPipe_impl(PyObject *module, LPCTSTR name,
      DWORD open_mode,\n                             DWORD pipe_mode, DWORD max_instances,\n
      \                            DWORD out_buffer_size, DWORD in_buffer_size,\n
      \                            DWORD default_timeout,\n                             LPSECURITY_ATTRIBUTES
      security_attributes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:724,1
    - Dst: CreatePipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:729,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:733,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:733,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:735,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/_winapi.c:736,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/_winapi.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - pipe_attrs
    - size
    argTypes:
    - PyObject*
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 737
    functionName: _winapi_CreatePipe_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - Py_BuildValue
    - CreatePipe
    - HANDLE_TO_PYNUM
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreatePipe_impl(PyObject *module, PyObject *pipe_attrs, DWORD size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_winapi.c:747,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_winapi.c:749,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_winapi.c:752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 755
    functionName: getulong
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyErr_Clear
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getulong(PyObject* obj, const char* name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_winapi.c:763,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_winapi.c:765,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/Python-3.8.3/Modules/_winapi.c:771,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 774
    functionName: gethandle
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PYNUM_TO_HANDLE
    - PyErr_Clear
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE gethandle(PyObject* obj, const char* name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:784,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:785,1
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Modules/_winapi.c:790,1
    - Dst: PyMapping_Values
      Src: /src/Python-3.8.3/Modules/_winapi.c:794,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_winapi.c:799,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_winapi.c:800,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:801,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_winapi.c:808,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_winapi.c:809,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:812,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:812,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:813,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:817,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_winapi.c:817,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:818,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_winapi.c:818,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:820,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_winapi.c:825,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:826,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_winapi.c:826,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:828,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:832,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:833,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:835,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:840,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:841,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:843,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Modules/_winapi.c:849,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_winapi.c:851,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_winapi.c:858,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_winapi.c:859,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:860,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:861,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:864,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:865,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:871,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:874,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:875,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 1
    argNames:
    - environment
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    - condition: (0 <= size && size < end - p)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    - condition: (size > 1)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    - condition: (p == end)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    - condition: (1 <= size && size < end - p)
      pos:
        line_end: 860
        line_start: 860
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 877
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 877
    functionName: getenvironment
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyMapping_Keys
    - PyMapping_Values
    - assert
    - PyMapping_Check
    - PyUnicode_FindChar
    - PyErr_NoMemory
    - PyMem_NEW
    - Py_XDECREF
    - PyList_GET_ITEM
    - PyErr_SetString
    - PyUnicode_AsWideChar
    - PyUnicode_Check
    - PyList_GET_SIZE
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      getenvironment(PyObject* environment)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetItemString
      Src: /src/Python-3.8.3/Modules/_winapi.c:887,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_winapi.c:889,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_winapi.c:897,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_winapi.c:901,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_winapi.c:908,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_winapi.c:912,1
    - Dst: PYNUM_TO_HANDLE
      Src: /src/Python-3.8.3/Modules/_winapi.c:913,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_winapi.c:913,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_winapi.c:914,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:922,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:923,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - mapping
    - name
    - size
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 925
    functionName: gethandlelist
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyMapping_GetItemString
    - PySequence_Fast_GET_ITEM
    - PYNUM_TO_HANDLE
    - PyMem_Free
    - PySequence_Fast
    - PyMem_Malloc
    - PyErr_Clear
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: LPHANDLE
    signature: LPHANDLE gethandlelist(PyObject *mapping, const char *name, Py_ssize_t
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteProcThreadAttributeList
      Src: /src/Python-3.8.3/Modules/_winapi.c:936,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:937,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:940,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_winapi.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attribute_list
    argTypes:
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 943
    functionName: freeattributelist
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - DeleteProcThreadAttributeList
    - PyMem_Free
    - memset
    linkageType: ''
    returnType: void
    signature: void freeattributelist(AttributeList *attribute_list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_winapi.c:956,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_winapi.c:958,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:967,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_winapi.c:969,1
    - Dst: gethandlelist
      Src: /src/Python-3.8.3/Modules/_winapi.c:973,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_winapi.c:974,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/Python-3.8.3/Modules/_winapi.c:983,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:984,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:986,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:986,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_winapi.c:990,1
    - Dst: InitializeProcThreadAttributeList
      Src: /src/Python-3.8.3/Modules/_winapi.c:996,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1002,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:1005,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1009,1
    - Dst: UpdateProcThreadAttribute
      Src: /src/Python-3.8.3/Modules/_winapi.c:1014,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1024,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1024,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1030,1
    - Dst: freeattributelist
      Src: /src/Python-3.8.3/Modules/_winapi.c:1033,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - obj
    - name
    - attribute_list
    argTypes:
    - PyObject*
    - char*
    - AttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 1036
    functionName: getattributelist
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyMapping_Check
    - PyErr_Occurred
    - PyObject_GetAttrString
    - UpdateProcThreadAttribute
    - Py_DECREF
    - freeattributelist
    - PyErr_Format
    - PyMem_Free
    - PyMem_Malloc
    - gethandlelist
    - PyErr_Clear
    - InitializeProcThreadAttributeList
    linkageType: ''
    returnType: int
    signature: int getattributelist(PyObject *obj, const char *name, AttributeList
      *attribute_list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:1079,1
    - Dst: ZeroMemory
      Src: /src/Python-3.8.3/Modules/_winapi.c:1084,1
    - Dst: getulong
      Src: /src/Python-3.8.3/Modules/_winapi.c:1088,1
    - Dst: getulong
      Src: /src/Python-3.8.3/Modules/_winapi.c:1089,1
    - Dst: gethandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:1090,1
    - Dst: gethandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:1091,1
    - Dst: gethandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:1092,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_winapi.c:1093,1
    - Dst: getenvironment
      Src: /src/Python-3.8.3/Modules/_winapi.c:1097,1
    - Dst: getattributelist
      Src: /src/Python-3.8.3/Modules/_winapi.c:1103,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:1107,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_winapi.c:1108,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_winapi.c:1114,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_winapi.c:1116,1
    - Dst: CreateProcessW
      Src: /src/Python-3.8.3/Modules/_winapi.c:1122,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1136,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1136,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1140,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/_winapi.c:1141,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/_winapi.c:1142,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:1147,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_winapi.c:1148,1
    - Dst: freeattributelist
      Src: /src/Python-3.8.3/Modules/_winapi.c:1149,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 10
    argNames:
    - module
    - application_name
    - command_line
    - proc_attrs
    - thread_attrs
    - inherit_handles
    - creation_flags
    - env_mapping
    - current_directory
    - startup_info
    argTypes:
    - PyObject*
    - Py_UNICODE*
    - PyObject*
    - PyObject*
    - PyObject*
    - BOOL
    - DWORD
    - PyObject*
    - Py_UNICODE*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1061
    functionDepth: 3
    functionLinenumber: 1061
    functionLinenumberEnd: 1152
    functionName: _winapi_CreateProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyErr_Occurred
    - Py_BuildValue
    - PyUnicode_AsWideCharString
    - freeattributelist
    - ZeroMemory
    - getulong
    - HANDLE_TO_PYNUM
    - CreateProcessW
    - PyErr_Format
    - Py_TYPE
    - PyMem_Free
    - PyUnicode_Check
    - getattributelist
    - PySys_Audit
    - gethandle
    - getenvironment
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_CreateProcess_impl(PyObject *module,\n                           const
      Py_UNICODE *application_name,\n                           PyObject *command_line,
      PyObject *proc_attrs,\n                           PyObject *thread_attrs, BOOL
      inherit_handles,\n                           DWORD creation_flags, PyObject
      *env_mapping,\n                           const Py_UNICODE *current_directory,\n
      \                          PyObject *startup_info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DuplicateHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:1184,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1196,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 7
    argNames:
    - module
    - source_process_handle
    - source_handle
    - target_process_handle
    - desired_access
    - inherit_handle
    - options
    argTypes:
    - PyObject*
    - HANDLE
    - HANDLE
    - HANDLE
    - DWORD
    - BOOL
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1201
    functionName: _winapi_DuplicateHandle_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - DuplicateHandle
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_DuplicateHandle_impl(PyObject *module, HANDLE source_process_handle,\n
      \                            HANDLE source_handle,\n                             HANDLE
      target_process_handle,\n                             DWORD desired_access, BOOL
      inherit_handle,\n                             DWORD options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Modules/_winapi.c:1216,1
    - Dst: _CrtSetReportMode
      Src: /src/Python-3.8.3/Modules/_winapi.c:1218,1
    - Dst: ExitProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - ExitCode
    argTypes:
    - PyObject*
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1224
    functionName: _winapi_ExitProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - ExitProcess
    - _CrtSetReportMode
    - SetErrorMode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ExitProcess_impl(PyObject *module, UINT ExitCode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1237
    functionName: _winapi_GetCurrentProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetCurrentProcess
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE _winapi_GetCurrentProcess_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetExitCodeProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:1255,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1258,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - process
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1263
    functionName: _winapi_GetExitCodeProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetExitCodeProcess
    - PyErr_SetFromWindowsErr
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetExitCodeProcess_impl(PyObject *module, HANDLE process)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1274
    functionName: _winapi_GetLastError_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetLastError_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/Modules/_winapi.c:1300,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1305,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1305,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:1307,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_winapi.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - module_handle
    argTypes:
    - PyObject*
    - HMODULE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1292
    functionDepth: 1
    functionLinenumber: 1292
    functionLinenumberEnd: 1308
    functionName: _winapi_GetModuleFileName_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - GetModuleFileNameW
    - PyUnicode_FromWideChar
    - PyErr_SetFromWindowsErr
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetModuleFileName_impl(PyObject *module, HMODULE module_handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/Modules/_winapi.c:1329,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1333,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - std_handle
    argTypes:
    - PyObject*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1336
    functionName: _winapi_GetStdHandle_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - GetStdHandle
    linkageType: ''
    returnType: HANDLE
    signature: HANDLE _winapi_GetStdHandle_impl(PyObject *module, DWORD std_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MapViewOfFile
      Src: /src/Python-3.8.3/Modules/_winapi.c:1379,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - module
    - file_map
    - desired_access
    - file_offset_high
    - file_offset_low
    - number_bytes
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    - DWORD
    - DWORD
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1370
    functionDepth: 1
    functionLinenumber: 1370
    functionLinenumberEnd: 1387
    functionName: _winapi_MapViewOfFile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - MapViewOfFile
    linkageType: ''
    returnType: LPVOID
    signature: "LPVOID _winapi_MapViewOfFile_impl(PyObject *module, HANDLE file_map,\n
      \                          DWORD desired_access, DWORD file_offset_high,\n                           DWORD
      file_offset_low, size_t number_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpenFileMappingW
      Src: /src/Python-3.8.3/Modules/_winapi.c:1406,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_winapi.c:1410,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_winapi.c:1411,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - module
    - desired_access
    - inherit_handle
    - name
    argTypes:
    - PyObject*
    - DWORD
    - BOOL
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1398
    functionDepth: 1
    functionLinenumber: 1398
    functionLinenumberEnd: 1417
    functionName: _winapi_OpenFileMapping_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - OpenFileMappingW
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access,\n
      \                            BOOL inherit_handle, LPCWSTR name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:1435,1
    - Dst: OpenProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:1441,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1444,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - module
    - desired_access
    - inherit_handle
    - process_id
    argTypes:
    - PyObject*
    - DWORD
    - BOOL
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1449
    functionName: _winapi_OpenProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - OpenProcess
    - GetLastError
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: HANDLE
    signature: "HANDLE _winapi_OpenProcess_impl(PyObject *module, DWORD desired_access,\n
      \                        BOOL inherit_handle, DWORD process_id)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_winapi.c:1468,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_winapi.c:1473,1
    - Dst: PeekNamedPipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:1477,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_winapi.c:1477,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1481,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1482,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_winapi.c:1484,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1486,1
    - Dst: PeekNamedPipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:1490,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1493,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - module
    - handle
    - size
    argTypes:
    - PyObject*
    - HANDLE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1497
    functionName: _winapi_PeekNamedPipe_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - Py_DECREF
    - PeekNamedPipe
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_PeekNamedPipe_impl(PyObject *module, HANDLE handle, int size)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_winapi.c:1518,1
    - Dst: new_overlapped
      Src: /src/Python-3.8.3/Modules/_winapi.c:1522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1524,1
    - Dst: ReadFile
      Src: /src/Python-3.8.3/Modules/_winapi.c:1532,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_winapi.c:1532,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1543,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1544,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1551,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1552,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_winapi.c:1554,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1556,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - module
    - handle
    - size
    - use_overlapped
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1557
    functionName: _winapi_ReadFile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - GetLastError
    - Py_BuildValue
    - Py_DECREF
    - _PyBytes_Resize
    - new_overlapped
    - PyBytes_AS_STRING
    - PyErr_SetExcFromWindowsErr
    - ReadFile
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_ReadFile_impl(PyObject *module, HANDLE handle,
      DWORD size,\n                      int use_overlapped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_winapi.c:1583,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_winapi.c:1584,1
    - Dst: SetNamedPipeHandleState
      Src: /src/Python-3.8.3/Modules/_winapi.c:1591,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - module
    - named_pipe
    - mode
    - max_collection_count
    - collect_data_timeout
    argTypes:
    - PyObject*
    - HANDLE
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1598
    functionName: _winapi_SetNamedPipeHandleState_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - SetNamedPipeHandleState
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_SetNamedPipeHandleState_impl(PyObject *module,
      HANDLE named_pipe,\n                                     PyObject *mode,\n                                     PyObject
      *max_collection_count,\n                                     PyObject *collect_data_timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_winapi.c:1618,1
    - Dst: TerminateProcess
      Src: /src/Python-3.8.3/Modules/_winapi.c:1623,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1626,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - handle
    - exit_code
    argTypes:
    - PyObject*
    - HANDLE
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1629
    functionName: _winapi_TerminateProcess_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PySys_Audit
    - PyErr_SetFromWindowsErr
    - TerminateProcess
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_TerminateProcess_impl(PyObject *module, HANDLE
      handle,\n                              UINT exit_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualQuery
      Src: /src/Python-3.8.3/Modules/_winapi.c:1647,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - address
    argTypes:
    - PyObject*
    - LPCVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1638
    functionDepth: 1
    functionLinenumber: 1638
    functionLinenumberEnd: 1655
    functionName: _winapi_VirtualQuerySize_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - VirtualQuery
    linkageType: ''
    returnType: size_t
    signature: size_t _winapi_VirtualQuerySize_impl(PyObject *module, LPCVOID address)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitNamedPipe
      Src: /src/Python-3.8.3/Modules/_winapi.c:1672,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - name
    - timeout
    argTypes:
    - PyObject*
    - LPCTSTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1665
    functionDepth: 1
    functionLinenumber: 1665
    functionLinenumberEnd: 1679
    functionName: _winapi_WaitNamedPipe_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - WaitNamedPipe
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitNamedPipe_impl(PyObject *module, LPCTSTR name, DWORD timeout)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/_winapi.c:1700,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_winapi.c:1701,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_winapi.c:1703,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_winapi.c:1706,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_winapi.c:1710,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_winapi.c:1717,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_winapi.c:1720,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1721,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1725,1
    - Dst: _PyOS_IsMainThread
      Src: /src/Python-3.8.3/Modules/_winapi.c:1729,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Modules/_winapi.c:1730,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_winapi.c:1731,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/_winapi.c:1737,1
    - Dst: WaitForMultipleObjects
      Src: /src/Python-3.8.3/Modules/_winapi.c:1738,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1743,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_winapi.c:1746,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_winapi.c:1749,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - module
    - handle_seq
    - wait_flag
    - milliseconds
    argTypes:
    - PyObject*
    - PyObject*
    - BOOL
    - DWORD
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    constantsTouched: []
    func_position:
      end: 1750
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1750
    functionName: _winapi_WaitForMultipleObjects_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PySequence_Check
    - PySequence_Length
    - Py_DECREF
    - PySequence_GetItem
    - PyErr_SetFromErrno
    - ResetEvent
    - PyArg_Parse
    - PyErr_Format
    - Py_TYPE
    - WaitForMultipleObjects
    - _PyOS_IsMainThread
    - PyErr_SetExcFromWindowsErr
    - assert
    - _PyOS_SigintEvent
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_WaitForMultipleObjects_impl(PyObject *module,
      PyObject *handle_seq,\n                                    BOOL wait_flag, DWORD
      milliseconds)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObject
      Src: /src/Python-3.8.3/Modules/_winapi.c:1774,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1778,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - module
    - handle
    - milliseconds
    argTypes:
    - PyObject*
    - HANDLE
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1766
    functionDepth: 1
    functionLinenumber: 1766
    functionLinenumberEnd: 1783
    functionName: _winapi_WaitForSingleObject_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WaitForSingleObject
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: long
    signature: "long _winapi_WaitForSingleObject_impl(PyObject *module, HANDLE handle,\n
      \                                DWORD milliseconds)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: new_overlapped
      Src: /src/Python-3.8.3/Modules/_winapi.c:1805,1
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/_winapi.c:1813,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1814,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_winapi.c:1819,1
    - Dst: WriteFile
      Src: /src/Python-3.8.3/Modules/_winapi.c:1820,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1824,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_winapi.c:1831,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1832,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1835,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_winapi.c:1838,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1840,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_winapi.c:1841,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - module
    - handle
    - buffer
    - use_overlapped
    argTypes:
    - PyObject*
    - HANDLE
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1842
    functionName: _winapi_WriteFile_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WriteFile
    - Py_BuildValue
    - Py_DECREF
    - Py_MIN
    - PyArg_Parse
    - new_overlapped
    - PyBuffer_Release
    - PyErr_SetExcFromWindowsErr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_winapi_WriteFile_impl(PyObject *module, HANDLE handle,
      PyObject *buffer,\n                       int use_overlapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_winapi.c:1854,1
    - Dst: GetACP
      Src: /src/Python-3.8.3/Modules/_winapi.c:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1850
    functionDepth: 1
    functionLinenumber: 1850
    functionLinenumberEnd: 1855
    functionName: _winapi_GetACP_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetACP
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetACP_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFileType
      Src: /src/Python-3.8.3/Modules/_winapi.c:1870,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_winapi.c:1873,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_winapi.c:1874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - handle
    argTypes:
    - PyObject*
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1863
    functionDepth: 1
    functionLinenumber: 1863
    functionLinenumberEnd: 1879
    functionName: _winapi_GetFileType_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - GetFileType
    linkageType: ''
    returnType: DWORD
    signature: DWORD _winapi_GetFileType_impl(PyObject *module, HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - con
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1930
    functionName: WINAPI_CONSTANT
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINAPI_CONSTANT(fmt, con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_winapi.c:1937,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_winapi.c:1940,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_winapi.c:1943,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_winapi.c:1945,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1948,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1949,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1950,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1951,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1952,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1953,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1954,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1955,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1956,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1957,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1958,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1959,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1960,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1961,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1962,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1963,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1964,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1965,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1966,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1967,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1968,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1969,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1970,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1971,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1972,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1973,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1974,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1975,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1976,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1977,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1978,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1979,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1980,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1981,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1982,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1983,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1984,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1985,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1986,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1987,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1988,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1989,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1990,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1991,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1992,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1993,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1994,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1995,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1996,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1997,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1998,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:1999,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2000,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2001,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2002,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2003,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2004,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2005,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2006,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2007,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2008,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2009,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2010,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2011,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2012,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2013,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2014,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2015,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2016,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2017,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2018,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2019,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2020,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2021,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2022,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2024,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2025,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2026,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2027,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2028,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2029,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2031,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2032,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2033,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2034,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2036,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2037,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2038,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2039,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2040,1
    - Dst: WINAPI_CONSTANT
      Src: /src/Python-3.8.3/Modules/_winapi.c:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 1931
    functionDepth: 1
    functionLinenumber: 1931
    functionLinenumberEnd: 2045
    functionName: PyInit__winapi
    functionSourceFile: /src/Python-3.8.3/Modules/_winapi.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - PyModule_GetDict
    - PyModule_Create
    - WINAPI_CONSTANT
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__winapi(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uuid_generate_time_safe
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:23,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:24,1
    - Dst: uuid_create
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:27,1
    - Dst: uuid_enc_be
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:30,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:31,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:33,1
    - Dst: uuid_generate_time
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:36,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - Py_UNUSED(context)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: py_uuid_generate_time_safe
    functionSourceFile: /src/Python-3.8.3/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - uuid_generate_time
    - uuid_enc_be
    - uuid_create
    - uuid_generate_time_safe
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_uuid_generate_time_safe(PyObject *Py_UNUSED(context),\n
      \                          PyObject *Py_UNUSED(ignored))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:58,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:64,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:68,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_uuidmodule.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sizeof(uuid_t) == 16)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/_uuidmodule.c
    constantsTouched: []
    func_position:
      end: 75
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 75
    functionName: PyInit__uuid
    functionSourceFile: /src/Python-3.8.3/Modules/_uuidmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - assert
    - PyModule_Create
    - Py_DECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__uuid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: ALLOC
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC(size, comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - comment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: RELEASE
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RELEASE(size, comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: LOCAL
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: LOCAL
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: JOIN_GET
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN_GET(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: JOIN_SET
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN_SET(p, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: JOIN_OBJ
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN_OBJ(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:68,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - new_joined_ptr
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: _set_joined_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - JOIN_OBJ
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _set_joined_ptr(PyObject **p, PyObject *new_joined_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: _clear_joined_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _set_joined_ptr
    linkageType: ''
    returnType: void
    signature: void _clear_joined_ptr(PyObject **p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: ET_STATE
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ET_STATE(mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ET_STATE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:115,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:116,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:117,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:118,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:119,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: elementtree_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - ET_STATE
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int elementtree_clear(PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ET_STATE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:127,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:128,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:129,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:130,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:131,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: elementtree_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - ET_STATE
    linkageType: ''
    returnType: int
    signature: int elementtree_traverse(PyObject *m, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elementtree_clear
      Src: /src/Python-3.8.3/Modules/_elementtree.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: elementtree_free
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - elementtree_clear
    linkageType: ''
    returnType: void
    signature: void elementtree_free(void *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:151,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_elementtree.c:154,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: list_join
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyUnicode_Join
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void list_join(PyObject* list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:164,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: is_empty_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int is_empty_dict(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: Element_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Element_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: Element_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Element_Check(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:222,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_elementtree.c:224,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - attrib
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 239
    functionName: create_extra
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_Malloc
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void create_extra(ElementObject* self, PyObject* attrib)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:252,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_elementtree.c:255,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Modules/_elementtree.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - extra
    argTypes:
    - ElementObjectExtra*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 258
    functionName: dealloc_extra
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void dealloc_extra(ElementObjectExtra *extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dealloc_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: clear_extra
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - dealloc_extra
    linkageType: ''
    returnType: void
    signature: void clear_extra(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:284,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:289,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:292,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:295,1
    - Dst: ALLOC
      Src: /src/Python-3.8.3/Modules/_elementtree.c:300,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_elementtree.c:301,1
    - Dst: is_empty_dict
      Src: /src/Python-3.8.3/Modules/_elementtree.c:303,1
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - tag
    - attrib
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 311
    functionName: create_new_element
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - ALLOC
    - Py_DECREF
    - Py_INCREF
    - create_extra
    - PyObject_GC_New
    - PyObject_GC_Track
    - is_empty_dict
    linkageType: ''
    returnType: void
    signature: void create_new_element(PyObject* tag, PyObject* attrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:316,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:318,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:321,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 331
    functionName: element_new
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:344,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_elementtree.c:348,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:354,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:355,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:356,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:357,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:360,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:362,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:366,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:367,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:370,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_elementtree.c:372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:373,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 377
    functionName: get_attrib_from_keywords
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_DelItem
    - PyDict_New
    - PyDict_Check
    - PyErr_Format
    - Py_TYPE
    - PyDict_Copy
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_attrib_from_keywords(PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_elementtree.c:394,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:399,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_elementtree.c:403,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:404,1
    - Dst: get_attrib_from_keywords
      Src: /src/Python-3.8.3/Modules/_elementtree.c:410,1
    - Dst: is_empty_dict
      Src: /src/Python-3.8.3/Modules/_elementtree.c:417,1
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:419,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:428,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:429,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:431,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:432,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:434,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 438
    functionName: element_init
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - get_attrib_from_keywords
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - create_extra
    - _set_joined_ptr
    - PyDict_Copy
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyDict_Update
    - is_empty_dict
    linkageType: ''
    returnType: int
    signature: int element_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:446,1
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:451,1
    - Dst: PyObject_Realloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:473,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:478,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:482,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_elementtree.c:492,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - self
    - extra
    argTypes:
    - ElementObject*
    - Py_ssize_t
    assertStmts:
    - condition: (extra >= 0)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 494
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 494
    functionName: element_resize
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyObject_Malloc
    - create_extra
    - PyErr_NoMemory
    - assert
    - PyObject_Realloc
    linkageType: ''
    returnType: void
    signature: void element_resize(ElementObject* self, Py_ssize_t extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:499,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - element
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: raise_type_error
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void raise_type_error(PyObject *element)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:509,1
    - Dst: raise_type_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:510,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:514,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - element
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 523
    functionName: element_add_subelement
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - raise_type_error
    - element_resize
    - Element_Check
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void element_add_subelement(ElementObject* self, PyObject* element)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 543
    functionName: element_get_attrib
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void element_get_attrib(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_GET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:552,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:553,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:554,1
    - Dst: list_join
      Src: /src/Python-3.8.3/Modules/_elementtree.c:555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 565
    functionName: element_get_text
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - list_join
    - JOIN_OBJ
    - JOIN_GET
    - PyList_CheckExact
    linkageType: ''
    returnType: void
    signature: void element_get_text(ElementObject* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JOIN_GET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:574,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:575,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:576,1
    - Dst: list_join
      Src: /src/Python-3.8.3/Modules/_elementtree.c:577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 587
    functionName: element_get_tail
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - list_join
    - JOIN_OBJ
    - JOIN_GET
    - PyList_CheckExact
    linkageType: ''
    returnType: void
    signature: void element_get_tail(ElementObject* self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_elementtree.c:597,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:605,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_elementtree.c:608,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:609,1
    - Dst: get_attrib_from_keywords
      Src: /src/Python-3.8.3/Modules/_elementtree.c:614,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:619,1
    - Dst: create_new_element
      Src: /src/Python-3.8.3/Modules/_elementtree.c:623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:624,1
    - Dst: element_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:629,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 589
    functionDepth: 4
    functionLinenumber: 589
    functionLinenumberEnd: 634
    functionName: subelement
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - create_new_element
    - get_attrib_from_keywords
    - Py_DECREF
    - Py_INCREF
    - element_add_subelement
    - PyDict_Copy
    - PyArg_ParseTuple
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subelement(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:639,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:640,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:640,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:641,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:641,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:645,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - ElementObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 651
    functionName: element_gc_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - JOIN_OBJ
    linkageType: ''
    returnType: int
    signature: int element_gc_traverse(ElementObject *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:656,1
    - Dst: _clear_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:657,1
    - Dst: _clear_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:658,1
    - Dst: clear_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 665
    functionName: element_gc_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - clear_extra
    - _clear_joined_ptr
    linkageType: ''
    returnType: int
    signature: int element_gc_clear(ElementObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:671,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Modules/_elementtree.c:672,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:675,1
    - Dst: element_gc_clear
      Src: /src/Python-3.8.3/Modules/_elementtree.c:679,1
    - Dst: RELEASE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:681,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 684
    functionName: element_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_gc_clear
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - RELEASE
    - PyObject_GC_UnTrack
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void element_dealloc(ElementObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: element_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - subelement
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 696
    functionDepth: 4
    functionLinenumber: 696
    functionLinenumberEnd: 704
    functionName: _elementtree_Element_append_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_add_subelement
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_append_impl(ElementObject *self, PyObject *subelement)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:715,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:717,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:718,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:720,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 724
    functionName: _elementtree_Element_clear_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _set_joined_ptr
    - clear_extra
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_clear_impl(ElementObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_new_element
      Src: /src/Python-3.8.3/Modules/_elementtree.c:738,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:743,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:743,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:744,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:746,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:746,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:747,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:749,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:752,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:757,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts:
    - condition: (!element->extra || !element->extra->length)
      pos:
        line_end: 748
        line_start: 748
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: _elementtree_Element___copy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_new_element
    - Py_DECREF
    - Py_INCREF
    - JOIN_OBJ
    - element_resize
    - assert
    - _set_joined_ptr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___copy___impl(ElementObject *self)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: deepcopy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:791,1
    - Dst: deepcopy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:796,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:798,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:802,1
    - Dst: create_new_element
      Src: /src/Python-3.8.3/Modules/_elementtree.c:806,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:809,1
    - Dst: deepcopy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:814,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:814,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:817,1
    - Dst: JOIN_SET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:817,1
    - Dst: JOIN_GET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:817,1
    - Dst: deepcopy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:819,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:819,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:822,1
    - Dst: JOIN_SET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:822,1
    - Dst: JOIN_GET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:822,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:824,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:826,1
    - Dst: deepcopy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:830,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:831,1
    - Dst: raise_type_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:834,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:842,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_elementtree.c:847,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:853,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:861,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - self
    - memo
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts:
    - condition: (!element->extra || !element->extra->length)
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (!element->extra->length)
      pos:
        line_end: 841
        line_start: 841
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 863
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 863
    functionName: _elementtree_Element___deepcopy___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_new_element
    - assert
    - Py_DECREF
    - Py_INCREF
    - deepcopy
    - JOIN_OBJ
    - JOIN_GET
    - element_resize
    - PyLong_FromSsize_t
    - PyDict_SetItem
    - raise_type_error
    - JOIN_SET
    - Element_Check
    - _set_joined_ptr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___deepcopy___impl(ElementObject *self, PyObject *memo)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:873,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:874,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:878,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:879,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_elementtree.c:883,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:884,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:884,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:890,1
    - Dst: Element_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:893,1
    - Dst: _elementtree_Element___deepcopy___impl
      Src: /src/Python-3.8.3/Modules/_elementtree.c:894,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:902,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:909,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - object
    - memo
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 910
    functionName: deepcopy
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 1
    functionsReached:
    - PyDict_Next
    - Py_INCREF
    - Py_REFCNT
    - Element_CheckExact
    - PyDict_CheckExact
    - _PyObject_FastCall
    - _elementtree_Element___deepcopy___impl
    - PyErr_SetString
    - PyDict_Copy
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: void
    signature: void deepcopy(PyObject *object, PyObject *memo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:922,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 929
    functionName: _elementtree_Element___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _elementtree_Element___sizeof___impl(ElementObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:957,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:960,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:962,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:963,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:968,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:973,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_elementtree.c:978,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:982,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:983,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 984
    functionName: _elementtree_Element___getstate___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyDict_New
    - JOIN_OBJ
    - PyList_SET_ITEM
    - PyList_New
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___getstate___impl(ElementObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:998,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1002,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1003,1
    - Dst: JOIN_SET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1005,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1005,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1006,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1006,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1007,1
    - Dst: JOIN_SET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1009,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1009,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1010,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1010,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1011,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1020,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1021,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1024,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1031,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1032,1
    - Dst: clear_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1033,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1037,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1038,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1040,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1047,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1048,1
    - Dst: raise_type_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1049,1
    - Dst: dealloc_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1051,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1054,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1058,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1062,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1069,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1070,1
    - Dst: dealloc_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1072,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 6
    argNames:
    - self
    - tag
    - attrib
    - text
    - tail
    - children
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!self->extra->length)
      pos:
        line_end: 1057
        line_start: 1057
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (!self->extra || !self->extra->length)
      pos:
        line_end: 1031
        line_start: 1031
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (self->extra->allocated >= nchildren)
      pos:
        line_end: 1037
        line_start: 1037
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (self->extra->attrib == Py_None)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - condition: (self->extra)
      pos:
        line_end: 1036
        line_start: 1036
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1075
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1075
    functionName: element_setstate_from_attributes
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - assert
    - dealloc_extra
    - Py_INCREF
    - Py_XSETREF
    - JOIN_OBJ
    - clear_extra
    - PyList_Check
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - element_resize
    - PyErr_SetString
    - raise_type_error
    - JOIN_SET
    - Element_Check
    - _set_joined_ptr
    - PyList_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nelement_setstate_from_attributes(ElementObject *self,\n
      \                                PyObject *tag,\n                                 PyObject
      *attrib,\n                                 PyObject *text,\n                                 PyObject
      *tail,\n                                 PyObject *children)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1091,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1095,1
    - Dst: element_setstate_from_attributes
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1097,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1104
    functionName: element_setstate_from_Python
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - element_setstate_from_attributes
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_setstate_from_Python(ElementObject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1118,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1119,1
    - Dst: element_setstate_from_Python
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1114
    functionDepth: 5
    functionLinenumber: 1114
    functionLinenumberEnd: 1126
    functionName: _elementtree_Element___setstate__
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_setstate_from_Python
    - PyErr_Format
    - PyDict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___setstate__(ElementObject *self, PyObject *state)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1139,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1140,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1141,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1142,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1143,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1144,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1145,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1146,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1151,1
    - Dst: PATHCHAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1156,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1161,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1162,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1163,1
    - Dst: PATHCHAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1174,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 30
    argCount: 1
    argNames:
    - tag
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1181
    functionName: checkpath
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - PATHCHAR
    - PyUnicode_DATA
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: void checkpath(PyObject* tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1138
    functionName: PATHCHAR
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PATHCHAR(ch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1198,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1200,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1202,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1207,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1208,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1209,1
    - Dst: element_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1211,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1212,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - elements
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1191
    functionDepth: 4
    functionLinenumber: 1191
    functionLinenumberEnd: 1221
    functionName: _elementtree_Element_extend
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - Py_TYPE
    - PySequence_Fast
    - element_add_subelement
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_extend(ElementObject *self, PyObject *elements)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: checkpath
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1239,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1240,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1252,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1252,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1253,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - self
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(item))
      pos:
        line_end: 1251
        line_start: 1251
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1263
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1263
    functionName: _elementtree_Element_find_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - checkpath
    - PyObject_RichCompareBool
    - assert
    - Element_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_find_impl(ElementObject *self, PyObject
      *path,\n                               PyObject *namespaces)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1281,1
    - Dst: checkpath
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1284,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1285,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1291,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1298,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1298,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1299,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1300,1
    - Dst: element_get_text
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1304,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1305,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1307,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1311,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1316,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - self
    - path
    - default_value
    - namespaces
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(item))
      pos:
        line_end: 1297
        line_start: 1297
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1318
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1318
    functionName: _elementtree_Element_findtext_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - checkpath
    - PyObject_RichCompareBool
    - assert
    - element_get_text
    - Element_Check
    - Py_XINCREF
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_findtext_impl(ElementObject *self,
      PyObject *path,\n                                   PyObject *default_value,\n
      \                                  PyObject *namespaces)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: checkpath
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1337,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1338,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1339,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1344,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1354,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1354,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1355,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1356,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1358,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1359,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1362,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - self
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (Element_Check(item))
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 1366
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1366
    functionName: _elementtree_Element_findall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - checkpath
    - PyList_Append
    - PyObject_RichCompareBool
    - PyList_New
    - assert
    - Element_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_findall_impl(ElementObject *self,
      PyObject *path,\n                                  PyObject *namespaces)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1382,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - path
    - namespaces
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1387
    functionName: _elementtree_Element_iterfind_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_iterfind_impl(ElementObject *self,
      PyObject *path,\n                                   PyObject *namespaces)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1407,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1409,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1418
    functionName: _elementtree_Element_get_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_get_impl(ElementObject *self, PyObject
      *key,\n                              PyObject *default_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1432,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1440,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1442,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1448,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1449,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1453
    functionName: _elementtree_Element_getchildren_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyErr_WarnEx
    - PyList_SET_ITEM
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_getchildren_impl(ElementObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1471,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1472,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1474,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1474,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1477,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1478,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1478,1
    - Dst: create_elementiter
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1483
    functionName: _elementtree_Element_iter_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - create_elementiter
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_iter_impl(ElementObject *self, PyObject *tag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1497,1
    - Dst: _elementtree_Element_iter_impl
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1504
    functionName: _elementtree_Element_getiterator_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _elementtree_Element_iter_impl
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_getiterator_impl(ElementObject *self, PyObject *tag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_elementiter
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1517
    functionName: _elementtree_Element_itertext_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_elementiter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_itertext_impl(ElementObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1526,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self_
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1535
    functionName: element_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_getitem(PyObject* self_, Py_ssize_t index)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1554,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1566,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - index
    - subelement
    argTypes:
    - ElementObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1578
    functionName: _elementtree_Element_insert_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_resize
    - create_extra
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_insert_impl(ElementObject *self,
      Py_ssize_t index,\n                                 PyObject *subelement)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1590,1
    - Dst: PyDict_Items
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1593
    functionName: _elementtree_Element_items_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyDict_Items
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_items_impl(ElementObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1605,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1600
    functionDepth: 1
    functionLinenumber: 1600
    functionLinenumberEnd: 1608
    functionName: _elementtree_Element_keys_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyDict_Keys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_keys_impl(ElementObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1617
    functionName: element_length
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t element_length(ElementObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1635,1
    - Dst: create_new_element
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1639,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - tag
    - attrib
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1628
    functionDepth: 3
    functionLinenumber: 1628
    functionLinenumberEnd: 1644
    functionName: _elementtree_Element_makeelement_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_new_element
    - PyDict_Copy
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_makeelement_impl(ElementObject *self,
      PyObject *tag,\n                                      PyObject *attrib)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1664,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1674,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - self
    - subelement
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1698
    functionName: _elementtree_Element_remove_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_remove_impl(ElementObject *self, PyObject *subelement)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1706,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1708,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1711,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1712,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1716,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1718,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1700
    functionDepth: 1
    functionLinenumber: 1700
    functionLinenumberEnd: 1720
    functionName: element_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_repr(ElementObject* self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1739,1
    - Dst: element_get_attrib
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1743,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - ElementObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1731
    functionDepth: 2
    functionLinenumber: 1731
    functionLinenumberEnd: 1751
    functionName: _elementtree_Element_set_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_extra
    - element_get_attrib
    - PyDict_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_Element_set_impl(ElementObject *self, PyObject
      *key,\n                              PyObject *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1761,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1770,1
    - Dst: raise_type_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1771,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1774,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1782,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self_
    - index
    - item
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1753
    functionDepth: 2
    functionLinenumber: 1753
    functionLinenumberEnd: 1785
    functionName: element_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyErr_SetString
    - raise_type_error
    - Element_Check
    linkageType: ''
    returnType: int
    signature: int element_setitem(PyObject* self_, Py_ssize_t index, PyObject* item)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1792,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1793,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1795,1
    - Dst: element_getitem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1800,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1802,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1808,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1810,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1813,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1817,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1819,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1826,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1827,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1834,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - self_
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1838
    functionName: element_subscr
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - element_getitem
    - Py_INCREF
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyList_SET_ITEM
    - PyErr_SetString
    - PyList_New
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_subscr(PyObject* self_, PyObject* item)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1845,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1846,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1848,1
    - Dst: element_setitem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1853,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1855,1
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1863,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1867,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1870,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1890,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1895,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1915,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1917,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1926,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1935,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1940,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1942,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1944,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1948,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1952,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1953,1
    - Dst: element_resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1963,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1964,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1970,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1971,1
    - Dst: raise_type_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1972,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1973,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1984,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:1989,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2005,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2006,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2012,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2015,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2020,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 3
    argNames:
    - self_
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((size_t)slicelen <= SIZE_MAX / sizeof(PyObject *))
      pos:
        line_end: 1889
        line_start: 1889
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2024
      start: 1840
    functionDepth: 3
    functionLinenumber: 1840
    functionLinenumberEnd: 2024
    functionName: element_ass_subscr
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PySlice_Unpack
    - PySequence_Fast
    - PyList_New
    - PyErr_Occurred
    - Py_INCREF
    - PySlice_Check
    - create_extra
    - PySequence_Fast_GET_ITEM
    - PySlice_AdjustIndices
    - PyList_SET_ITEM
    - element_resize
    - PyErr_Format
    - memmove
    - assert
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    - element_setitem
    - Py_DECREF
    - Py_TYPE
    - raise_type_error
    - Element_Check
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int element_ass_subscr(PyObject* self_, PyObject* item, PyObject* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - ElementObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2026
    functionDepth: 1
    functionLinenumber: 2026
    functionLinenumberEnd: 2032
    functionName: element_tag_getter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_tag_getter(ElementObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element_get_text
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2037,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - ElementObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2034
    functionDepth: 3
    functionLinenumber: 2034
    functionLinenumberEnd: 2040
    functionName: element_text_getter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - element_get_text
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_text_getter(ElementObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: element_get_tail
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2045,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - ElementObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2042
    functionDepth: 3
    functionLinenumber: 2042
    functionLinenumberEnd: 2048
    functionName: element_tail_getter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - element_get_tail
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_tail_getter(ElementObject *self, void *closure)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2055,1
    - Dst: element_get_attrib
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2058,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - ElementObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2050
    functionDepth: 2
    functionLinenumber: 2050
    functionLinenumberEnd: 2061
    functionName: element_attrib_getter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_extra
    - element_get_attrib
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      element_attrib_getter(ElementObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2071
    functionName: _VALIDATE_ATTR_VALUE
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _VALIDATE_ATTR_VALUE(V)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2075,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2076,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - ElementObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2079
    functionName: element_tag_setter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - Py_INCREF
    - _VALIDATE_ATTR_VALUE
    linkageType: ''
    returnType: int
    signature: int element_tag_setter(ElementObject *self, PyObject *value, void *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2084,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2085,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - ElementObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2081
    functionDepth: 2
    functionLinenumber: 2081
    functionLinenumberEnd: 2088
    functionName: element_text_setter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _set_joined_ptr
    - Py_INCREF
    - _VALIDATE_ATTR_VALUE
    linkageType: ''
    returnType: int
    signature: int element_text_setter(ElementObject *self, PyObject *value, void
      *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2093,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2094,1
    - Dst: _set_joined_ptr
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - ElementObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2090
    functionDepth: 2
    functionLinenumber: 2090
    functionLinenumberEnd: 2097
    functionName: element_tail_setter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _set_joined_ptr
    - Py_INCREF
    - _VALIDATE_ATTR_VALUE
    linkageType: ''
    returnType: int
    signature: int element_tail_setter(ElementObject *self, PyObject *value, void
      *closure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _VALIDATE_ATTR_VALUE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2102,1
    - Dst: create_extra
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2104,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2107,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - ElementObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2099
    functionDepth: 2
    functionLinenumber: 2099
    functionLinenumberEnd: 2110
    functionName: element_attrib_setter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_SETREF
    - create_extra
    - Py_INCREF
    - _VALIDATE_ATTR_VALUE
    linkageType: ''
    returnType: int
    signature: int element_attrib_setter(ElementObject *self, PyObject *value, void
      *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2154,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2156,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2157,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2159,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2160,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - it
    argTypes:
    - ElementIterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2148
    functionDepth: 3
    functionLinenumber: 2148
    functionLinenumberEnd: 2163
    functionName: elementiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void elementiter_dealloc(ElementIterObject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2170,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2172,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - ElementIterObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2175
    functionName: elementiter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int elementiter_traverse(ElementIterObject *it, visitproc visit, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2187,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - it
    - parent
    argTypes:
    - ElementIterObject*
    - ElementObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2198
    functionName: parent_stack_push_new
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyMem_Resize
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int parent_stack_push_new(ElementIterObject *it, ElementObject *parent)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2225,1
    - Dst: element_get_tail
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2255,1
    - Dst: Element_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2255,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2258,1
    - Dst: parent_stack_push_new
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2262,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2263,1
    - Dst: element_get_text
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2267,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2289,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2293,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2297,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 1
    argNames:
    - it
    argTypes:
    - ElementIterObject*
    assertStmts:
    - condition: (Element_Check(extra->children[child_index]))
      pos:
        line_end: 2254
        line_start: 2254
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 2304
      start: 2200
    functionDepth: 3
    functionLinenumber: 2200
    functionLinenumberEnd: 2304
    functionName: elementiter_next
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - element_get_tail
    - PyErr_SetNone
    - Py_INCREF
    - PyErr_NoMemory
    - parent_stack_push_new
    - PyObject_IsTrue
    - PyObject_RichCompareBool
    - assert
    - element_get_text
    - Element_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      elementiter_next(ElementIterObject *it)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2358,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2362,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2365,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2368,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2370,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2372,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - self
    - tag
    - gettext
    argTypes:
    - ElementObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2353
    functionDepth: 2
    functionLinenumber: 2353
    functionLinenumberEnd: 2380
    functionName: create_elementiter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 2
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_elementiter(ElementObject *self, PyObject *tag, int gettext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2418
    functionName: TreeBuilder_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TreeBuilder_CheckExact(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2429,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2431,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2422
    functionDepth: 1
    functionLinenumber: 2422
    functionLinenumberEnd: 2454
    functionName: treebuilder_new
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      treebuilder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2477,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2478,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2480,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2488,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2489,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2492,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2501,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2502,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2505,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - self
    - element_factory
    - comment_factory
    - pi_factory
    - insert_comments
    - insert_pis
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2468
    functionDepth: 1
    functionLinenumber: 2468
    functionLinenumberEnd: 2510
    functionName: _elementtree_TreeBuilder___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_CLEAR
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: "int _elementtree_TreeBuilder___init___impl(TreeBuilderObject *self,\n
      \                                      PyObject *element_factory,\n                                       PyObject
      *comment_factory,\n                                       PyObject *pi_factory,\n
      \                                      int insert_comments, int insert_pis)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2515,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2516,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2517,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2518,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2519,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2520,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2521,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2522,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2523,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2524,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2525,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2526,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2527,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2528,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2529,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - TreeBuilderObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2532
    functionName: treebuilder_gc_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int treebuilder_gc_traverse(TreeBuilderObject *self, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2537,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2538,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2539,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2540,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2541,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2542,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2543,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2544,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2545,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2546,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2547,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2548,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2549,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2550,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2551,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2534
    functionDepth: 1
    functionLinenumber: 2534
    functionLinenumberEnd: 2554
    functionName: treebuilder_gc_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int treebuilder_gc_clear(TreeBuilderObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2559,1
    - Dst: treebuilder_gc_clear
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2560,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2562
      start: 2556
    functionDepth: 2
    functionLinenumber: 2556
    functionLinenumberEnd: 2562
    functionName: treebuilder_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_UnTrack
    - treebuilder_gc_clear
    linkageType: ''
    returnType: void
    signature: void treebuilder_dealloc(TreeBuilderObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2587,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2588,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2589,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2592,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2593,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2594,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2598,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2603,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2605,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2606,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2609,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2611,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - module
    - comment_factory
    - pi_factory
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2616
    functionName: _elementtree__set_factories_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyCallable_Check
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Pack
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree__set_factories_impl(PyObject *module, PyObject
      *comment_factory,\n                                 PyObject *pi_factory)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Element_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2623,1
    - Dst: JOIN_OBJ
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2624,1
    - Dst: JOIN_SET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2626,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2628,1
    - Dst: JOIN_GET
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2631,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2632,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2635,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2644,1
    - Dst: list_join
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2647,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2649,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2653,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2654,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2660,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2663,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2664,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - element
    - data
    - dest
    - name
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2618
    functionDepth: 2
    functionLinenumber: 2618
    functionLinenumberEnd: 2670
    functionName: treebuilder_extend_element_text_or_tail
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - PyList_SetSlice
    - Py_CLEAR
    - Py_DECREF
    - list_join
    - _PyObject_GetAttrId
    - JOIN_OBJ
    - JOIN_GET
    - PyNumber_Add
    - PyList_CheckExact
    - JOIN_SET
    - Element_CheckExact
    linkageType: ''
    returnType: int
    signature: "int treebuilder_extend_element_text_or_tail(PyObject *element, PyObject
      **data,\n                                        PyObject **dest, _Py_Identifier
      *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2681,1
    - Dst: treebuilder_extend_element_text_or_tail
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2682,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2688,1
    - Dst: treebuilder_extend_element_text_or_tail
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2673
    functionDepth: 3
    functionLinenumber: 2673
    functionLinenumberEnd: 2693
    functionName: treebuilder_flush_data
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _Py_IDENTIFIER
    - treebuilder_extend_element_text_or_tail
    linkageType: ''
    returnType: void
    signature: void treebuilder_flush_data(TreeBuilderObject* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2698,1
    - Dst: Element_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2699,1
    - Dst: element_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2701,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - element
    - child
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2695
    functionDepth: 4
    functionLinenumber: 2695
    functionLinenumberEnd: 2711
    functionName: treebuilder_add_subelement
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - element_add_subelement
    - Element_CheckExact
    linkageType: ''
    returnType: int
    signature: int treebuilder_add_subelement(PyObject *element, PyObject *child)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2719,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2722,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2723,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - action
    - node
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2714
    functionDepth: 1
    functionLinenumber: 2714
    functionLinenumberEnd: 2729
    functionName: treebuilder_append_event
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _PyObject_FastCall
    - Py_DECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: void
    signature: "void treebuilder_append_event(TreeBuilderObject *self, PyObject *action,\n
      \                        PyObject *node)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2742,1
    - Dst: create_new_element
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2747,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2749,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2754,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2757,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2765,1
    - Dst: treebuilder_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2772,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2778,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2782,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2783,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2785,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2787,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2792,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2793,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2794,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2795,1
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2797,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2803,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - self
    - tag
    - attrib
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2735
    functionDepth: 5
    functionLinenumber: 2735
    functionLinenumberEnd: 2805
    functionName: treebuilder_handle_start
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - create_new_element
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - PyDict_New
    - PyList_SetItem
    - treebuilder_append_event
    - treebuilder_flush_data
    - PyList_Append
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyList_GET_SIZE
    - treebuilder_add_subelement
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: "void treebuilder_handle_start(TreeBuilderObject* self, PyObject* tag,\n
      \                        PyObject* attrib)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2816,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2819,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2819,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2820,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2820,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2824,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2825,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2827,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2827,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2828,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2829,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2832,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2835,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2836,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2836,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2842
    functionName: treebuilder_handle_data
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_REFCNT
    - PyBytes_CheckExact
    - PyList_SET_ITEM
    - _PyBytes_Resize
    - PyList_Append
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyList_New
    - PyList_CheckExact
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_data(TreeBuilderObject* self, PyObject* data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2849,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2854,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2863,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2864,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2866,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2868,1
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2870,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2845
    functionDepth: 4
    functionLinenumber: 2845
    functionLinenumberEnd: 2875
    functionName: treebuilder_handle_end
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - PyList_GET_ITEM
    - treebuilder_append_event
    - treebuilder_flush_data
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_end(TreeBuilderObject* self, PyObject* tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2883,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2888,1
    - Dst: treebuilder_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2894,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2896,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2897,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2900,1
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2905,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2912,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2878
    functionDepth: 5
    functionLinenumber: 2878
    functionLinenumberEnd: 2914
    functionName: treebuilder_handle_comment
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - treebuilder_append_event
    - treebuilder_flush_data
    - _PyObject_FastCall
    - treebuilder_add_subelement
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_comment(TreeBuilderObject* self, PyObject*
      text)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_flush_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2923,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2928,1
    - Dst: treebuilder_add_subelement
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2935,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2937,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2938,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2941,1
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2948,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2955,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2917
    functionDepth: 5
    functionLinenumber: 2917
    functionLinenumberEnd: 2957
    functionName: treebuilder_handle_pi
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_Pack
    - treebuilder_append_event
    - treebuilder_flush_data
    - _PyObject_FastCall
    - treebuilder_add_subelement
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_pi(TreeBuilderObject* self, PyObject* target,
      PyObject* text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2965,1
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2970,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - prefix
    - uri
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2960
    functionDepth: 2
    functionLinenumber: 2960
    functionLinenumberEnd: 2978
    functionName: treebuilder_handle_start_ns
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_append_event
    - Py_DECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_start_ns(TreeBuilderObject* self, PyObject*
      prefix, PyObject* uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_append_event
      Src: /src/Python-3.8.3/Modules/_elementtree.c:2984,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - self
    - prefix
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2981
    functionDepth: 2
    functionLinenumber: 2981
    functionLinenumberEnd: 2990
    functionName: treebuilder_handle_end_ns
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_append_event
    linkageType: ''
    returnType: void
    signature: void treebuilder_handle_end_ns(TreeBuilderObject* self, PyObject* prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 3003
    functionDepth: 2
    functionLinenumber: 3003
    functionLinenumberEnd: 3008
    functionName: _elementtree_TreeBuilder_data
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_data
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_data(TreeBuilderObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_end
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - tag
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3018
    functionDepth: 5
    functionLinenumber: 3018
    functionLinenumberEnd: 3023
    functionName: _elementtree_TreeBuilder_end
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_end(TreeBuilderObject *self, PyObject *tag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_comment
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3033
    functionDepth: 6
    functionLinenumber: 3033
    functionLinenumberEnd: 3038
    functionName: _elementtree_TreeBuilder_comment
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_comment
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_comment(TreeBuilderObject *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_pi
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - target
    - text
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3049
    functionDepth: 6
    functionLinenumber: 3049
    functionLinenumberEnd: 3055
    functionName: _elementtree_TreeBuilder_pi_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_pi
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_TreeBuilder_pi_impl(TreeBuilderObject *self,
      PyObject *target,\n                                 PyObject *text)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3058
    functionDepth: 1
    functionLinenumber: 3058
    functionLinenumberEnd: 3071
    functionName: treebuilder_done
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void treebuilder_done(TreeBuilderObject* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_done
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - TreeBuilderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3078
    functionDepth: 2
    functionLinenumber: 3078
    functionLinenumberEnd: 3083
    functionName: _elementtree_TreeBuilder_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_done
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_close_impl(TreeBuilderObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treebuilder_handle_start
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - tag
    - attrs
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3094
    functionDepth: 6
    functionLinenumber: 3094
    functionLinenumberEnd: 3100
    functionName: _elementtree_TreeBuilder_start_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_start
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_TreeBuilder_start_impl(TreeBuilderObject
      *self, PyObject *tag,\n                                    PyObject *attrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3112
    functionDepth: 0
    functionLinenumber: 3112
    functionLinenumberEnd: 3113
    functionName: EXPAT
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT(func)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3149,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3154,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3161,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3163,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3177,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3179,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3182,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3184,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3188,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3193,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3197,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - self
    - string
    argTypes:
    - XMLParserObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3144
    functionDepth: 1
    functionLinenumber: 3144
    functionLinenumberEnd: 3211
    functionName: makeuniversal
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - memcpy
    - Py_INCREF
    - strlen
    - PyDict_SetItem
    - PyUnicode_DecodeUTF8
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void makeuniversal(XMLParserObject* self, const char* string)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3224,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3225,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3231,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3238,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3242,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3243,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3246,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3250,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3255,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3258,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3260,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - error_code
    - line
    - column
    - message
    argTypes:
    - enum XML_Error
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3262
      start: 3217
    functionDepth: 1
    functionLinenumber: 3217
    functionLinenumberEnd: 3262
    functionName: expat_set_error
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyObject_SetAttrString
    - PyErr_SetObject
    - _PyObject_FastCall
    - EXPAT
    linkageType: ''
    returnType: void
    signature: "void expat_set_error(enum XML_Error error_code, Py_ssize_t line, Py_ssize_t
      column,\n                const char *message)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3278,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3281,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3285,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3288,1
    - Dst: treebuilder_handle_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3289,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3293,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3296,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3297,1
    - Dst: strncat
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3300,1
    - Dst: expat_set_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3301,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3303,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3309,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - self
    - data_in
    - data_len
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3267
    functionDepth: 2
    functionLinenumber: 3267
    functionLinenumberEnd: 3310
    functionName: expat_default_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - strncat
    - Py_DECREF
    - expat_set_error
    - treebuilder_handle_data
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    - EXPAT
    linkageType: ''
    returnType: void
    signature: "void expat_default_handler(XMLParserObject* self, const XML_Char*
      data_in,\n                      int data_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3321,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3325,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3333,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3337,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3338,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3338,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3340,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3342,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3343,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3347,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3350,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3351,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3357,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3361,1
    - Dst: treebuilder_handle_start
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3363,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3368,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3371,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3381,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - self
    - tag_in
    - attrib_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - XML_Char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3312
    functionDepth: 6
    functionLinenumber: 3312
    functionLinenumberEnd: 3384
    functionName: expat_start_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - treebuilder_handle_start
    - PyErr_Occurred
    - Py_DECREF
    - makeuniversal
    - Py_INCREF
    - PyDict_New
    - strlen
    - PyObject_CallFunctionObjArgs
    - PyDict_SetItem
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void expat_start_handler(XMLParserObject* self, const XML_Char* tag_in,\n
      \                   const XML_Char **attrib_in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3393,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3396,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3400,1
    - Dst: treebuilder_handle_data
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3402,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3408,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - self
    - data_in
    - data_len
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3386
    functionDepth: 2
    functionLinenumber: 3386
    functionLinenumberEnd: 3411
    functionName: expat_data_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - treebuilder_handle_data
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void expat_data_handler(XMLParserObject* self, const XML_Char* data_in,\n
      \                  int data_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3419,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3422,1
    - Dst: treebuilder_handle_end
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3425,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3429,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3432,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - tag_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3413
    functionDepth: 5
    functionLinenumber: 3413
    functionLinenumberEnd: 3437
    functionName: expat_end_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - makeuniversal
    - Py_XDECREF
    - _PyObject_FastCall
    - TreeBuilder_CheckExact
    - treebuilder_handle_end
    linkageType: ''
    returnType: void
    signature: void expat_end_handler(XMLParserObject* self, const XML_Char* tag_in)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3448,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3456,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3461,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3461,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3464,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3466,1
    - Dst: treebuilder_handle_start_ns
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3470,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3471,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3472,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3475,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3475,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3478,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3480,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3487,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3488,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3491,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - self
    - prefix_in
    - uri_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3439
    functionDepth: 3
    functionLinenumber: 3439
    functionLinenumberEnd: 3492
    functionName: expat_start_ns_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - treebuilder_handle_start_ns
    - strlen
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void expat_start_ns_handler(XMLParserObject* self, const XML_Char*
      prefix_in,\n                       const XML_Char *uri_in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3500,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3506,1
    - Dst: treebuilder_handle_end_ns
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3511,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3514,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3514,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3518,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3519,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - prefix_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3494
    functionDepth: 3
    functionLinenumber: 3494
    functionLinenumberEnd: 3523
    functionName: expat_end_ns_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - strlen
    - treebuilder_handle_end_ns
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void expat_end_ns_handler(XMLParserObject* self, const XML_Char* prefix_in)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3531,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3534,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3538,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3538,1
    - Dst: treebuilder_handle_comment
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3542,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3544,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3546,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3546,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3550,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3552,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - comment_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3525
    functionDepth: 6
    functionLinenumber: 3525
    functionLinenumberEnd: 3554
    functionName: expat_comment_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - treebuilder_handle_comment
    - strlen
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void expat_comment_handler(XMLParserObject* self, const XML_Char* comment_in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3563,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3567,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3570,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3575,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3577,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3581,1
    - Dst: makeuniversal
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3586,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3588,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3589,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3593,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3599,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3602,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3604,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3605,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3609,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3613,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3614,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - self
    - doctype_name
    - sysid
    - pubid
    - has_internal_subset
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - XML_Char*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3556
    functionDepth: 2
    functionLinenumber: 3556
    functionLinenumberEnd: 3615
    functionName: expat_start_doctype_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - makeuniversal
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyObject_CallFunctionObjArgs
    - Py_XDECREF
    - PyErr_WarnEx
    linkageType: ''
    returnType: void
    signature: "void expat_start_doctype_handler(XMLParserObject *self,\n                            const
      XML_Char *doctype_name,\n                            const XML_Char *sysid,\n
      \                           const XML_Char *pubid,\n                            int
      has_internal_subset)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3626,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3629,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3634,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3634,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3637,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3637,1
    - Dst: treebuilder_handle_pi
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3640,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3643,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3646,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3646,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3649,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3649,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3655,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3657,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3658,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3664,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - self
    - target_in
    - data_in
    argTypes:
    - XMLParserObject*
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3617
    functionDepth: 6
    functionLinenumber: 3617
    functionLinenumberEnd: 3666
    functionName: expat_pi_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - treebuilder_handle_pi
    - strlen
    - _PyObject_FastCall
    - PyUnicode_DecodeUTF8
    - TreeBuilder_CheckExact
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void expat_pi_handler(XMLParserObject* self, const XML_Char* target_in,\n
      \                const XML_Char* data_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3683
      start: 3670
    functionDepth: 0
    functionLinenumber: 3670
    functionLinenumberEnd: 3683
    functionName: xmlparser_new
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparser_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3689,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3692,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3695
      start: 3685
    functionDepth: 1
    functionLinenumber: 3685
    functionLinenumberEnd: 3695
    functionName: ignore_attribute_error
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int ignore_attribute_error(PyObject *value)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3711,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3715,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3717,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3721,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3723,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3724,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3725,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3729,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3730,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3735,1
    - Dst: treebuilder_new
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3737,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3739,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3740,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3746,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3747,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3750,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3751,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3754,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3755,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3758,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3759,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3762,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3763,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3766,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3767,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3770,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3771,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3774,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3775,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3778,1
    - Dst: ignore_attribute_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3779,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3784,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3786,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3791,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3796,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3800,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3805,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3810,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3814,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3818,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3820,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 79
    argCount: 3
    argNames:
    - self
    - target
    - encoding
    argTypes:
    - XMLParserObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3824
      start: 3706
    functionDepth: 2
    functionLinenumber: 3706
    functionLinenumberEnd: 3824
    functionName: _elementtree_XMLParser___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyObject_GetAttrString
    - Py_INCREF
    - PyDict_New
    - PyErr_NoMemory
    - ignore_attribute_error
    - treebuilder_new
    - EXPAT
    linkageType: ''
    returnType: int
    signature: "int _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject
      *target,\n                                     const char *encoding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3829,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3830,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3831,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3832,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3833,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3834,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3835,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3836,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3837,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3839,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3840,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - XMLParserObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3826
    functionDepth: 1
    functionLinenumber: 3826
    functionLinenumberEnd: 3844
    functionName: xmlparser_gc_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int xmlparser_gc_traverse(XMLParserObject *self, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3852,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3855,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3856,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3857,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3858,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3859,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3860,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3861,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3862,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3863,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3865,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3866,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3870
      start: 3846
    functionDepth: 1
    functionLinenumber: 3846
    functionLinenumberEnd: 3870
    functionName: xmlparser_gc_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - EXPAT
    linkageType: ''
    returnType: int
    signature: int xmlparser_gc_clear(XMLParserObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3875,1
    - Dst: xmlparser_gc_clear
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3876,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3878
      start: 3872
    functionDepth: 2
    functionLinenumber: 3872
    functionLinenumberEnd: 3878
    functionName: xmlparser_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyObject_GC_UnTrack
    - xmlparser_gc_clear
    linkageType: ''
    returnType: void
    signature: void xmlparser_dealloc(XMLParserObject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3881
    functionDepth: 1
    functionLinenumber: 3881
    functionLinenumberEnd: 3889
    functionName: _check_xmlparser
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void _check_xmlparser(XMLParserObject* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3896,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3896,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3897,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3899,1
    - Dst: expat_set_error
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3903,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3904,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3905,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - data
    - data_len
    - final
    argTypes:
    - XMLParserObject*
    - char*
    - int
    - int
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3895
        line_start: 3895
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 3913
      start: 3892
    functionDepth: 2
    functionLinenumber: 3892
    functionLinenumberEnd: 3913
    functionName: expat_parse
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - expat_set_error
    - EXPAT
    linkageType: ''
    returnType: void
    signature: void expat_parse(XMLParserObject* self, const char* data, int data_len,
      int final)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3928,1
    - Dst: expat_parse
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3931,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3935,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3936,1
    - Dst: treebuilder_done
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3937,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3940,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - XMLParserObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3946
      start: 3920
    functionDepth: 3
    functionLinenumber: 3920
    functionLinenumberEnd: 3946
    functionName: _elementtree_XMLParser_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _check_xmlparser
    - expat_parse
    - treebuilder_done
    - TreeBuilder_CheckExact
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_close_impl(XMLParserObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3962,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3965,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3967,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3971,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3975,1
    - Dst: expat_parse
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3976,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3981,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3984,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3985,1
    - Dst: expat_parse
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3988,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_elementtree.c:3989,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3956
    functionDepth: 3
    functionLinenumber: 3956
    functionLinenumberEnd: 3992
    functionName: _elementtree_XMLParser_feed
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - _check_xmlparser
    - expat_parse
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - EXPAT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_feed(XMLParserObject *self, PyObject *data)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4012,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4015,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4022,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4026,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4030,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4032,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4033,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4036,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4040,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4045,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4045,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4046,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4052,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4053,1
    - Dst: expat_parse
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4056,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4057,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4060,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4063,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4070,1
    - Dst: expat_parse
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4072,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4074,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4075,1
    - Dst: treebuilder_done
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4076,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - self
    - file
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4080
      start: 4002
    functionDepth: 3
    functionLinenumber: 4002
    functionLinenumberEnd: 4080
    functionName: _elementtree_XMLParser__parse_whole
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - _check_xmlparser
    - PyBytes_CheckExact
    - expat_parse
    - treebuilder_done
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - PyObject_CallFunction
    - PyErr_SetString
    - PyBytes_AS_STRING
    - TreeBuilder_CheckExact
    - PyUnicode_GET_LENGTH
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser__parse_whole(XMLParserObject *self, PyObject *file)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _check_xmlparser
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4102,1
    - Dst: TreeBuilder_CheckExact
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4105,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4106,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4116,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4119,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4122,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4123,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4124,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4125,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4126,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4127,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4131,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4135,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4140,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4141,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4143,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4144,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4145,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4149,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4150,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4154,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4155,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4156,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4157,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4158,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4159,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4160,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4161,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4166,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4167,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4168,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4173,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4174,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4175,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4179,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4180,1
    - Dst: EXPAT
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4187,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4188,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4193,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 3
    argNames:
    - self
    - events_queue
    - events_to_report
    argTypes:
    - XMLParserObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4091
    functionDepth: 2
    functionLinenumber: 4091
    functionLinenumberEnd: 4195
    functionName: _elementtree_XMLParser__setevents_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_XSETREF
    - PyUnicode_AsUTF8
    - PySequence_Fast
    - PyObject_GetAttrString
    - Py_INCREF
    - _check_xmlparser
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - PySequence_Fast_GET_SIZE
    - EXPAT
    - PyUnicode_FromString
    - Py_DECREF
    - PyBytes_AS_STRING
    - TreeBuilder_CheckExact
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_elementtree_XMLParser__setevents_impl(XMLParserObject
      *self,\n                                       PyObject *events_queue,\n                                       PyObject
      *events_to_report)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - XMLParserObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4209
      start: 4203
    functionDepth: 1
    functionLinenumber: 4203
    functionLinenumberEnd: 4209
    functionName: xmlparser_version_getter
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      xmlparser_version_getter(XMLParserObject *self, void *closure)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4453,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4455,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4460,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4462,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4464,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4466,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4469,1
    - Dst: ET_STATE
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4472,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4474,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4476,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4483,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4483,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4484,1
    - Dst: PyCapsule_Import
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4488,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4491,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4496,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4504,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4507,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4508,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4510,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4511,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4513,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4514,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4516,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_elementtree.c:4517,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 4482
        line_start: 4482
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    constantsTouched: []
    func_position:
      end: 4520
      start: 4447
    functionDepth: 1
    functionLinenumber: 4447
    functionLinenumberEnd: 4520
    functionName: PyInit__elementtree
    functionSourceFile: /src/Python-3.8.3/Modules/_elementtree.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - PyImport_ImportModule
    - PyCapsule_Import
    - PyErr_Occurred
    - PyObject_GetAttrString
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - ET_STATE
    - PyModule_AddObject
    - PyErr_SetString
    - assert
    - PyType_Ready
    - strcmp
    - Py_XDECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__elementtree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 6
    functionName: GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WEAKREFS_LISTPTR(o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Modules/_weakref.c:30,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_weakref.c:30,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Modules/_weakref.c:33,1
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/Python-3.8.3/Modules/_weakref.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: _weakref_getweakrefcount_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyType_SUPPORTS_WEAKREFS
    - _PyWeakref_GetWeakrefCount
    - Py_TYPE
    - GET_WEAKREFS_LISTPTR
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _weakref_getweakrefcount_impl(PyObject *module, PyObject
      *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Modules/_weakref.c:41,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_weakref.c:42,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_weakref.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: is_dead_weakref
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyWeakref_Check
    - PyErr_SetString
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: int
    signature: int is_dead_weakref(PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_DelItemIf
      Src: /src/Python-3.8.3/Modules/_weakref.c:64,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_weakref.c:65,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_weakref.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - module
    - dct
    - key
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 75
    functionName: _weakref__remove_dead_weakref_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - _PyDict_DelItemIf
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_weakref__remove_dead_weakref_impl(PyObject *module, PyObject
      *dct,\n                                   PyObject *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Modules/_weakref.c:87,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_weakref.c:87,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Modules/_weakref.c:88,1
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/Python-3.8.3/Modules/_weakref.c:89,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_weakref.c:91,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_weakref.c:96,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_weakref.c:97,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_weakref.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 106
    functionName: weakref_getweakrefs
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - GET_WEAKREFS_LISTPTR
    - Py_INCREF
    - PyList_SET_ITEM
    - _PyWeakref_GetWeakrefCount
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_getweakrefs(PyObject *self, PyObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_weakref.c:121,1
    - Dst: PyWeakref_NewProxy
      Src: /src/Python-3.8.3/Modules/_weakref.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: weakref_proxy
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewProxy
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_proxy(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_weakref.c:157,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_weakref.c:160,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_weakref.c:161,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_weakref.c:163,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_weakref.c:164,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_weakref.c:166,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_weakref.c:167,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_weakref.c:169,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_weakref.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: PyInit__weakref
    functionSourceFile: /src/Python-3.8.3/Modules/_weakref.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    - PyModule_AddObject
    - Py_INCREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__weakref(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/signalmodule.c:150,1
    - Dst: _PyTime_AsTimeval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - tv
    argTypes:
    - PyObject*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 154
    functionName: timeval_from_double
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_FromSecondsObject
    - _PyTime_AsTimeval
    linkageType: ''
    returnType: int
    signature: int timeval_from_double(PyObject *obj, struct timeval *tv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tv
    argTypes:
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: double_from_timeval
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void double_from_timeval(struct timeval *tv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/signalmodule.c:167,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/signalmodule.c:171,1
    - Dst: double_from_timeval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:172,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:176,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/signalmodule.c:178,1
    - Dst: double_from_timeval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:179,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - iv
    argTypes:
    - struct itimerval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: itimer_retval
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - double_from_timeval
    - PyFloat_FromDouble
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itimer_retval(struct itimerval *iv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/signalmodule.c:192,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Modules/signalmodule.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: is_main
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyRuntimeState_GetThreadState
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: int
    signature: int is_main(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/signalmodule.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: signal_default_int_handler
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_default_int_handler(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/signalmodule.c:218,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:219,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:220,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/signalmodule.c:222,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/signalmodule.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 226
    functionName: report_wakeup_write_error
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - PySys_WriteStderr
    - PyErr_WriteUnraisable
    - PyErr_SetFromErrno
    - PyErr_Restore
    linkageType: ''
    returnType: int
    signature: int report_wakeup_write_error(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/signalmodule.c:233,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:237,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:238,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/signalmodule.c:240,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/signalmodule.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: report_wakeup_send_error
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - PySys_WriteStderr
    - PyErr_WriteUnraisable
    - PyErr_SetExcFromWindowsErr
    - PyErr_Restore
    linkageType: ''
    returnType: int
    signature: int report_wakeup_send_error(void* data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:253,1
    - Dst: _Py_atomic_store
      Src: /src/Python-3.8.3/Modules/signalmodule.c:257,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Modules/signalmodule.c:261,1
    - Dst: _PyEval_SignalReceived
      Src: /src/Python-3.8.3/Modules/signalmodule.c:262,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/signalmodule.c:284,1
    - Dst: send
      Src: /src/Python-3.8.3/Modules/signalmodule.c:293,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/signalmodule.c:296,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/Python-3.8.3/Modules/signalmodule.c:302,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Modules/signalmodule.c:313,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/Python-3.8.3/Modules/signalmodule.c:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 328
    functionName: trip_signal
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - GetLastError
    - _PyEval_SignalReceived
    - send
    - _PyEval_AddPendingCall
    - _PyRuntimeState_GetThreadState
    - _Py_atomic_store
    - _Py_atomic_store_relaxed
    - _Py_write_noraise
    linkageType: ''
    returnType: void
    signature: void trip_signal(int sig_num)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trip_signal
      Src: /src/Python-3.8.3/Modules/signalmodule.c:335,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/signalmodule.c:348,1
    - Dst: SetEvent
      Src: /src/Python-3.8.3/Modules/signalmodule.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 359
    functionName: signal_handler
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyOS_setsig
    - trip_signal
    - SetEvent
    linkageType: ''
    returnType: void
    signature: void signal_handler(int sig_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alarm
      Src: /src/Python-3.8.3/Modules/signalmodule.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - seconds
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: signal_alarm_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - alarm
    linkageType: ''
    returnType: long
    signature: long signal_alarm_impl(PyObject *module, int seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pause
      Src: /src/Python-3.8.3/Modules/signalmodule.c:396,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: signal_pause_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - pause
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pause_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/Python-3.8.3/Modules/signalmodule.c:425,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: signal_raise_signal_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - raise
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_raise_signal_impl(PyObject *module, int signalnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: Py_END_ALLOW_THREADS
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: "_Py_END_SUPPRESS_IPH Py_END_ALLOW_THREADS\n\n    if (err)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:473,1
    - Dst: is_main
      Src: /src/Python-3.8.3/Modules/signalmodule.c:479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:480,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:485,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/signalmodule.c:493,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:494,1
    - Dst: _PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:501,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/signalmodule.c:504,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:505,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:509,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - module
    - signalnum
    - handler
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 515
    functionName: signal_signal_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - Py_INCREF
    - PyErr_SetFromErrno
    - is_main
    - PyOS_setsig
    - PyErr_SetString
    - _PyErr_CheckSignals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_signal_impl(PyObject *module, int signalnum, PyObject *handler)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:539,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 551
    functionName: signal_getsignal_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getsignal_impl(PyObject *module, int signalnum)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:573,1
    - Dst: strsignal
      Src: /src/Python-3.8.3/Modules/signalmodule.c:622,1
    - Dst: strstr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:624,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/signalmodule.c:628,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - module
    - signalnum
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 629
    functionName: signal_strsignal_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - strsignal
    - Py_BuildValue
    - strstr
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_strsignal_impl(PyObject *module, int signalnum)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:651,1
    - Dst: siginterrupt
      Src: /src/Python-3.8.3/Modules/signalmodule.c:655,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - module
    - signalnum
    - flag
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 660
    functionName: signal_siginterrupt_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - siginterrupt
    - PyErr_SetFromErrno
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_siginterrupt_impl(PyObject *module, int signalnum, int flag)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/signalmodule.c:681,1
    - Dst: PyLong_AsSocket_t
      Src: /src/Python-3.8.3/Modules/signalmodule.c:685,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/signalmodule.c:686,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/signalmodule.c:691,1
    - Dst: is_main
      Src: /src/Python-3.8.3/Modules/signalmodule.c:697,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:698,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/signalmodule.c:707,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:710,1
    - Dst: getsockopt
      Src: /src/Python-3.8.3/Modules/signalmodule.c:713,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/signalmodule.c:717,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:719,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:725,1
    - Dst: _Py_fstat
      Src: /src/Python-3.8.3/Modules/signalmodule.c:729,1
    - Dst: PyLong_FromSocket_t
      Src: /src/Python-3.8.3/Modules/signalmodule.c:748,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:750,1
    - Dst: _Py_fstat
      Src: /src/Python-3.8.3/Modules/signalmodule.c:755,1
    - Dst: _Py_get_blocking
      Src: /src/Python-3.8.3/Modules/signalmodule.c:758,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/signalmodule.c:762,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:773,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 775
    functionName: signal_set_wakeup_fd
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - WSAGetLastError
    - PyImport_ImportModuleNoBlock
    - getsockopt
    - is_main
    - _Py_fstat
    - PyErr_Format
    - PyErr_SetString
    - _Py_get_blocking
    - PyArg_ParseTupleAndKeywords
    - PyLong_AsSocket_t
    - PyLong_FromSocket_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_set_wakeup_fd(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/signalmodule.c:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 802
    functionName: PySignal_SetWakeupFd
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    linkageType: ''
    returnType: int
    signature: int PySignal_SetWakeupFd(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: timeval_from_double
      Src: /src/Python-3.8.3/Modules/signalmodule.c:830,1
    - Dst: it_value::it_value
      Src: /src/Python-3.8.3/Modules/signalmodule.c:830,1
    - Dst: timeval_from_double
      Src: /src/Python-3.8.3/Modules/signalmodule.c:833,1
    - Dst: it_interval::it_interval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:833,1
    - Dst: setitimer
      Src: /src/Python-3.8.3/Modules/signalmodule.c:838,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:839,1
    - Dst: itimer_retval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - module
    - which
    - seconds
    - interval
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 844
    functionName: signal_setitimer_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - timeval_from_double
    - PyErr_SetFromErrno
    - it_interval::it_interval
    - it_value::it_value
    - setitimer
    - itimer_retval
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_setitimer_impl(PyObject *module, int which, PyObject
      *seconds,\n                      PyObject *interval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getitimer
      Src: /src/Python-3.8.3/Modules/signalmodule.c:866,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:867,1
    - Dst: itimer_retval
      Src: /src/Python-3.8.3/Modules/signalmodule.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - which
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 872
    functionName: signal_getitimer_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - getitimer
    - PyErr_SetFromErrno
    - itimer_retval
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getitimer_impl(PyObject *module, int which)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/signalmodule.c:883,1
    - Dst: sigismember
      Src: /src/Python-3.8.3/Modules/signalmodule.c:888,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:898,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Modules/signalmodule.c:901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:903,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mask
    argTypes:
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 909
    functionName: sigset_to_set
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - sigismember
    - PySet_New
    - PySet_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sigset_to_set(sigset_t mask)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_sigmask
      Src: /src/Python-3.8.3/Modules/signalmodule.c:931,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:934,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:939,1
    - Dst: sigset_to_set
      Src: /src/Python-3.8.3/Modules/signalmodule.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - module
    - how
    - mask
    argTypes:
    - PyObject*
    - int
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 943
    functionName: signal_pthread_sigmask_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - PyErr_CheckSignals
    - sigset_to_set
    - pthread_sigmask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pthread_sigmask_impl(PyObject *module, int how, sigset_t mask)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigpending
      Src: /src/Python-3.8.3/Modules/signalmodule.c:965,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:967,1
    - Dst: sigset_to_set
      Src: /src/Python-3.8.3/Modules/signalmodule.c:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 969
    functionName: signal_sigpending_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigset_to_set
    - sigpending
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigpending_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigwait
      Src: /src/Python-3.8.3/Modules/signalmodule.c:996,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1000,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1004
    functionName: signal_sigwait_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - sigwait
    - PyLong_FromLong
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwait_impl(PyObject *module, sigset_t sigset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1026,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1029,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1036,1
    - Dst: sigemptyset
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1040,1
    - Dst: sigfillset
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1040,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1041,1
    - Dst: sigset_to_set
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1045
    functionName: signal_valid_signals_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - sigemptyset
    - PyErr_SetFromErrno
    - PySet_New
    - sigset_to_set
    - sigfillset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_valid_signals_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1081,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1085,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1085,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1086,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1086,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1088,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1088,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1089,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1089,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1090,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1090,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1091,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1091,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1093,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1093,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1094,1
    - Dst: PyLong_FromPid
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1094,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1095,1
    - Dst: _PyLong_FromUid
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1095,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1096,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1097,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1100,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1100,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1102,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1102,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - si
    argTypes:
    - siginfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1110
    functionName: fill_siginfo
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - _PyLong_FromUid
    - PyStructSequence_New
    - PyLong_FromPid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fill_siginfo(siginfo_t *si)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigwaitinfo
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1136,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1139,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1141,1
    - Dst: fill_siginfo
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - module
    - sigset
    argTypes:
    - PyObject*
    - sigset_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1126
    functionDepth: 3
    functionLinenumber: 1126
    functionLinenumberEnd: 1144
    functionName: signal_sigwaitinfo_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - sigwaitinfo
    - PyErr_SetFromErrno
    - fill_siginfo
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwaitinfo_impl(PyObject *module, sigset_t sigset)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1172,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1177,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1181,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1184,1
    - Dst: sigtimedwait
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1188,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1198,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1202,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1205,1
    - Dst: fill_siginfo
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - module
    - sigset
    - timeout_obj
    argTypes:
    - PyObject*
    - sigset_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1162
    functionDepth: 3
    functionLinenumber: 1162
    functionLinenumberEnd: 1212
    functionName: signal_sigtimedwait_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _PyTime_AsTimespec
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - _PyTime_GetMonotonicClock
    - fill_siginfo
    - sigtimedwait
    - PyErr_SetString
    - _PyTime_FromSecondsObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_sigtimedwait_impl(PyObject *module, sigset_t sigset,\n
      \                        PyObject *timeout_obj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1236,1
    - Dst: pthread_kill
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1240,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1243,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - module
    - thread_id
    - signalnum
    argTypes:
    - PyObject*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1252
    functionName: signal_pthread_kill_impl
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - PySys_Audit
    - PyErr_SetFromErrno
    - pthread_kill
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsignal_pthread_kill_impl(PyObject *module, unsigned long
      thread_id,\n                         int signalnum)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1340,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1346,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1349,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1350,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1355,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1357,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1359,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1363,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1365,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1369,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1373,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1377,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1381,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1385,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1388,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1390,1
    - Dst: PyOS_getsig
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1393,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1394,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1401,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1405,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1406,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1407,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1411,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1415,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1419,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1423,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1427,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1431,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1435,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1439,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1443,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1447,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1451,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1455,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1459,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1463,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1467,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1471,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1475,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1479,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1483,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1487,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1491,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1495,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1499,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1503,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1507,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1511,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1515,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1519,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1523,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1527,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1531,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1535,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1539,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1543,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1547,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1551,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1555,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1559,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1564,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1568,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1572,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1577,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1580,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1586,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1591,1
    - Dst: CreateEvent
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1597,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1601,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 197
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1607
    functionName: PyInit__signal
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_InitType2
    - PyErr_Occurred
    - Py_DECREF
    - PyModule_GetDict
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - CreateEvent
    - PyModule_AddObject
    - _Py_atomic_store_relaxed
    - PyOS_setsig
    - PyDict_GetItemString
    - Py_SETREF
    - PyOS_getsig
    - PyDict_SetItemString
    - PyModule_AddIntMacro
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__signal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1617,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1621,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1622,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1625,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1626,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1627,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1631
    functionName: finisignal
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_relaxed
    - Py_CLEAR
    - Py_XDECREF
    - PyOS_setsig
    linkageType: ''
    returnType: void
    signature: void finisignal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_main
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1639,1
    - Dst: _PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1644
    functionName: PyErr_CheckSignals
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 54
    functionsReached:
    - _PyErr_CheckSignals
    - is_main
    linkageType: ''
    returnType: int
    signature: int PyErr_CheckSignals(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1654,1
    - Dst: _Py_atomic_store
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1671,1
    - Dst: PyEval_GetFrame
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1673,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1677,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1679,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1680,1
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1685,1
    - Dst: _Py_atomic_store
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1688,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1697
    functionName: _PyErr_CheckSignals
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 2
    functionsReached:
    - _Py_atomic_load_relaxed
    - Py_BuildValue
    - Py_DECREF
    - _Py_atomic_load
    - PyEval_CallObject
    - PyEval_GetFrame
    - _Py_atomic_store
    - _Py_atomic_store_relaxed
    linkageType: ''
    returnType: int
    signature: int _PyErr_CheckSignals(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: trip_signal
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1705
    functionDepth: 2
    functionLinenumber: 1705
    functionLinenumberEnd: 1712
    functionName: PyErr_SetInterrupt
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - trip_signal
    linkageType: ''
    returnType: void
    signature: void PyErr_SetInterrupt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1717,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1721
    functionName: PyOS_InitInterrupts
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PyOS_InitInterrupts(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finisignal
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1727
    functionName: PyOS_FiniInterrupts
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - finisignal
    linkageType: ''
    returnType: void
    signature: void PyOS_FiniInterrupts(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1732,1
    - Dst: is_main
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1734,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1729
    functionDepth: 2
    functionLinenumber: 1729
    functionLinenumberEnd: 1741
    functionName: PyOS_InterruptOccurred
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_relaxed
    - _Py_atomic_load_relaxed
    - is_main
    linkageType: ''
    returnType: int
    signature: int PyOS_InterruptOccurred(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1747,1
    - Dst: _Py_atomic_store
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1749,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1753
    functionName: _clear_pending_signals
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_store_relaxed
    - _Py_atomic_load
    - _Py_atomic_store
    linkageType: ''
    returnType: void
    signature: void _clear_pending_signals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clear_pending_signals
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1762
    functionName: _PySignal_AfterFork
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 1
    functionsReached:
    - _clear_pending_signals
    linkageType: ''
    returnType: void
    signature: void _PySignal_AfterFork(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_main
      Src: /src/Python-3.8.3/Modules/signalmodule.c:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1769
    functionName: _PyOS_IsMainThread
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 2
    functionsReached:
    - is_main
    linkageType: ''
    returnType: int
    signature: int _PyOS_IsMainThread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1780
    functionName: _PyOS_SigintEvent
    functionSourceFile: /src/Python-3.8.3/Modules/signalmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *_PyOS_SigintEvent(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: BLAKE2_LOCAL_INLINE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_LOCAL_INLINE(type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: new_BLAKE2sObject
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: BLAKE2sObject
    signature: 'BLAKE2sObject *

      new_BLAKE2sObject(PyTypeObject *type)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: new_BLAKE2sObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:99,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:105,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:109,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:119,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:124,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:130,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:147,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:154,1
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:163,1
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:166,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:173,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:180,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:190,1
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:200,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:211,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:212,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:213,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:214,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:219,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:226,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:235,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 101
    argCount: 13
    argNames:
    - type
    - data
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    - last_node
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 238
    functionName: py_blake2s_new_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - store32
    - store48
    - new_BLAKE2sObject
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - secure_zero_memory
    - GET_BUFFER_VIEW_OR_ERROR
    - blake2s_init_param
    - store64
    - memset
    - blake2s_update
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_blake2s_new_impl(PyTypeObject *type, PyObject *data,
      int digest_size,\n                    Py_buffer *key, Py_buffer *salt, Py_buffer
      *person,\n                    int fanout, int depth, unsigned long leaf_size,\n
      \                   unsigned long long node_offset, int node_depth,\n                    int
      inner_size, int last_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_BLAKE2sObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:252,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:252,1
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:255,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2sObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: _blake2_blake2s_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - new_BLAKE2sObject
    - Py_TYPE
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_copy_impl(BLAKE2sObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:277,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:280,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:285,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:286,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:289,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - BLAKE2sObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 294
    functionName: _blake2_blake2s_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - PyThread_allocate_lock
    - PyThread_release_lock
    - blake2s_update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_update(BLAKE2sObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:309,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:311,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:312,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2sObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 315
    functionName: _blake2_blake2s_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - blake2s_final
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_digest_impl(BLAKE2sObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:330,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:332,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:333,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2sObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: _blake2_blake2s_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - blake2s_final
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_hexdigest_impl(BLAKE2sObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2sObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: py_blake2s_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2s_get_name(BLAKE2sObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2sObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: py_blake2s_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2s_get_block_size(BLAKE2sObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2sObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: py_blake2s_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2s_get_digest_size(BLAKE2sObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:388,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:389,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:391,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: py_blake2s_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - PyThread_free_lock
    - secure_zero_memory
    linkageType: ''
    returnType: void
    signature: void py_blake2s_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: BLAKE2_LOCAL_INLINE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_LOCAL_INLINE(type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: new_BLAKE2bObject
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: BLAKE2bObject
    signature: 'BLAKE2bObject *

      new_BLAKE2bObject(PyTypeObject *type)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: new_BLAKE2bObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:99,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:105,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:109,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:119,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:124,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:130,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:147,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:154,1
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:163,1
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:166,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:173,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:180,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:190,1
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:200,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:211,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:212,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:213,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:214,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:219,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:226,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:235,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 101
    argCount: 13
    argNames:
    - type
    - data
    - digest_size
    - key
    - salt
    - person
    - fanout
    - depth
    - leaf_size
    - node_offset
    - node_depth
    - inner_size
    - last_node
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int
    - Py_buffer*
    - Py_buffer*
    - Py_buffer*
    - int
    - int
    - unsigned long
    - unsigned long long
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 238
    functionName: py_blake2b_new_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - store32
    - blake2b_init_param
    - store48
    - secure_zero_memory
    - new_BLAKE2bObject
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - blake2b_update
    - GET_BUFFER_VIEW_OR_ERROR
    - store64
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npy_blake2b_new_impl(PyTypeObject *type, PyObject *data,
      int digest_size,\n                    Py_buffer *key, Py_buffer *salt, Py_buffer
      *person,\n                    int fanout, int depth, unsigned long leaf_size,\n
      \                   unsigned long long node_offset, int node_depth,\n                    int
      inner_size, int last_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_BLAKE2bObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:252,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:252,1
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:255,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2bObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: _blake2_blake2b_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - new_BLAKE2bObject
    - Py_TYPE
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_copy_impl(BLAKE2bObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:277,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:280,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:285,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:286,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:289,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - BLAKE2bObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 294
    functionName: _blake2_blake2b_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - blake2b_update
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - PyThread_allocate_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_update(BLAKE2bObject *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:309,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:311,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:312,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2bObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 315
    functionName: _blake2_blake2b_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - blake2b_final
    - PyBytes_FromStringAndSize
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_digest_impl(BLAKE2bObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:330,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:332,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:333,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - BLAKE2bObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 335
    functionName: _blake2_blake2b_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - blake2b_final
    - _Py_strhex
    - ENTER_HASHLIB
    - LEAVE_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_hexdigest_impl(BLAKE2bObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2bObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: py_blake2b_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_name(BLAKE2bObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2bObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: py_blake2b_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_block_size(BLAKE2bObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - BLAKE2bObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: py_blake2b_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_get_digest_size(BLAKE2bObject *self, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:388,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:389,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:391,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: py_blake2b_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - PyThread_free_lock
    - secure_zero_memory
    linkageType: ''
    returnType: void
    signature: void py_blake2b_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: ADD_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(d, name, value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:60,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:65,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:66,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:70,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:71,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:74,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:75,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:76,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:77,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:79,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:80,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:81,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:82,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:85,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:86,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:90,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:91,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:94,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:95,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:96,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:97,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:99,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:100,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:101,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_blake2/blake2module.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 105
    functionName: PyInit__blake2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/blake2module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - ADD_INT
    - Py_TYPE
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__blake2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: LOAD_MSG_0_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: LOAD_MSG_0_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: LOAD_MSG_0_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: LOAD_MSG_0_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: LOAD_MSG_1_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: LOAD_MSG_1_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: LOAD_MSG_1_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: LOAD_MSG_1_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: LOAD_MSG_2_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: LOAD_MSG_2_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: LOAD_MSG_2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: LOAD_MSG_2_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: LOAD_MSG_3_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: LOAD_MSG_3_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: LOAD_MSG_3_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: LOAD_MSG_3_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: LOAD_MSG_4_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: LOAD_MSG_4_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: LOAD_MSG_4_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: LOAD_MSG_4_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: LOAD_MSG_5_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: LOAD_MSG_5_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: LOAD_MSG_5_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    functionName: LOAD_MSG_5_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: LOAD_MSG_6_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 223
    functionName: LOAD_MSG_6_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: LOAD_MSG_6_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: LOAD_MSG_6_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: LOAD_MSG_7_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: LOAD_MSG_7_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: LOAD_MSG_7_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: LOAD_MSG_7_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    functionName: LOAD_MSG_8_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: LOAD_MSG_8_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: LOAD_MSG_8_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 303
    functionName: LOAD_MSG_8_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: LOAD_MSG_9_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: LOAD_MSG_9_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: LOAD_MSG_9_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: LOAD_MSG_9_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: LOAD_MSG_10_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: LOAD_MSG_10_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: LOAD_MSG_10_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: LOAD_MSG_10_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: LOAD_MSG_11_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 383
    functionName: LOAD_MSG_11_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    functionName: LOAD_MSG_11_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 399
    functionName: LOAD_MSG_11_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_4(b0, b1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c:32,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c:33,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c:35,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c
    functionUses: 14
    functionsReached:
    - blake2s
    - puts
    - memcmp
    linkageType: ''
    returnType: int
    signature: int main( int argc, 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: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: TOB
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: LOAD_MSG_0_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: LOAD_MSG_0_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: LOAD_MSG_0_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: LOAD_MSG_0_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: LOAD_MSG_1_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: LOAD_MSG_1_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: LOAD_MSG_1_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: LOAD_MSG_1_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: LOAD_MSG_2_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: LOAD_MSG_2_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: LOAD_MSG_2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: LOAD_MSG_2_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: LOAD_MSG_3_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: LOAD_MSG_3_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: LOAD_MSG_3_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: LOAD_MSG_3_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: LOAD_MSG_4_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: LOAD_MSG_4_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: LOAD_MSG_4_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: LOAD_MSG_4_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: LOAD_MSG_5_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: LOAD_MSG_5_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: LOAD_MSG_5_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: LOAD_MSG_5_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: LOAD_MSG_6_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: LOAD_MSG_6_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: LOAD_MSG_6_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: LOAD_MSG_6_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: LOAD_MSG_7_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: LOAD_MSG_7_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: LOAD_MSG_7_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: LOAD_MSG_7_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: LOAD_MSG_8_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: LOAD_MSG_8_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: LOAD_MSG_8_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: LOAD_MSG_8_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: LOAD_MSG_9_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: LOAD_MSG_9_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: LOAD_MSG_9_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: LOAD_MSG_9_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: blake2s_set_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_set_lastnode( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: blake2s_clear_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_clear_lastnode( blake2s_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_set_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: blake2s_set_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - blake2s_set_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2s_set_lastblock( blake2s_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_clear_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: blake2s_clear_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - blake2s_clear_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2s_clear_lastblock( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2s_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: blake2s_increment_counter
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_increment_counter( blake2s_state *S, const uint32_t inc
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - digest_length
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: blake2s_param_set_digest_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t
      digest_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - fanout
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: blake2s_param_set_fanout
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - depth
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: blake2s_param_set_max_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - leaf_length
    argTypes:
    - blake2s_param*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: blake2s_param_set_leaf_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - store32
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t
      leaf_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_offset
    argTypes:
    - blake2s_param*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: blake2s_param_set_node_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - store48
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t
      node_offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_depth
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: blake2s_param_set_node_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - inner_length
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: blake2s_param_set_inner_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t
      inner_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - salt
    argTypes:
    - blake2s_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: blake2s_param_set_salt
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - personal
    argTypes:
    - blake2s_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: blake2s_param_set_personal
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: blake2s_init0
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_init0( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init0
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:157,1
    - Dst: load32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2s_state*
    - blake2s_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: blake2s_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 1
    functionsReached:
    - load32
    - blake2s_init0
    linkageType: ''
    returnType: int
    signature: int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:181,1
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:182,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:186,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:187,1
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2s_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 189
    functionName: blake2s_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - store32
    - blake2s_init_param
    - store48
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_init( blake2s_state *S, size_t outlen )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:203,1
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:204,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:208,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:209,1
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:211,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:215,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:216,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:217,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2s_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 221
    functionName: blake2s_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    - store32
    - store48
    - secure_zero_memory
    - blake2s_init_param
    - memset
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key,
      size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:229,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:264,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:265,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:266,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:267,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:268,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:269,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:270,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:271,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:272,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2s_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 281
    functionName: blake2s_compress
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 0
    functionsReached:
    - ROUND
    - load32
    linkageType: ''
    returnType: int
    signature: int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 253
    functionName: G
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 391
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(r,i,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: ROUND
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:293,1
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:295,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:296,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:297,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: blake2s_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 3
    functionsReached:
    - blake2s_compress
    - memcpy
    - blake2s_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:323,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:324,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:326,1
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:329,1
    - Dst: blake2s_set_lastblock
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:330,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:331,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:332,1
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:335,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: blake2s_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 2
    functionsReached:
    - memcpy
    - blake2s_increment_counter
    - store32
    - blake2s_compress
    - blake2s_set_lastblock
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_key
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:358,1
    - Dst: blake2s_init
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:362,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:365,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c:366,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 367
    functionName: blake2s
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
    functionUses: 1
    functionsReached:
    - blake2s_final
    - blake2s_init_key
    - blake2s_init
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2s( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - 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: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: BLAKE2_IMPL_CAT
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_IMPL_CAT(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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: BLAKE2_IMPL_EVAL
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_IMPL_EVAL(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fun
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: BLAKE2_IMPL_NAME
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAKE2_IMPL_NAME(fun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: load32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load32( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 63
    functionName: load64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load64( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: store32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 6
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store32( void *dst, uint32_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: store64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store64( void *dst, uint64_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - src
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: load48
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load48( const void *src )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - w
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: store48
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store48( void *dst, uint64_t w )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: rotl32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotl32( const uint32_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: rotl64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotl64( const uint64_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint32_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: rotr32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rotr32( const uint32_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - c
    argTypes:
    - uint64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: rotr64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rotr64( const uint64_t w, const unsigned c )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SecureZeroMemory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:142,1
    - Dst: memset_v
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:145,1
    - Dst: memset_s
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:149,1
    - Dst: explicit_bzero
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:151,1
    - Dst: explicit_memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:153,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 159
    functionName: secure_zero_memory
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
    functionUses: 5
    functionsReached:
    - memset_s
    - memset_v
    - explicit_memset
    - explicit_bzero
    - SecureZeroMemory
    - memset
    linkageType: ''
    returnType: void
    signature: void secure_zero_memory(void *v, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - u1
    - u0
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: _mm_set_epi64x
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 1
    functionsReached:
    - _mm_set_epi32
    linkageType: ''
    returnType: __m128i
    signature: __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: blake2b_set_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_set_lastnode( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: blake2b_clear_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_clear_lastnode( blake2b_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_set_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: blake2b_set_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_set_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2b_set_lastblock( blake2b_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_clear_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: blake2b_clear_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_clear_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2b_clear_lastblock( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2b_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: blake2b_increment_counter
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_increment_counter( blake2b_state *S, const uint64_t inc
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - digest_length
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: blake2b_param_set_digest_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t
      digest_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - fanout
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: blake2b_param_set_fanout
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - depth
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: blake2b_param_set_max_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - leaf_length
    argTypes:
    - blake2b_param*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: blake2b_param_set_leaf_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t
      leaf_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_offset
    argTypes:
    - blake2b_param*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: blake2b_param_set_node_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t
      node_offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_depth
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: blake2b_param_set_node_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - inner_length
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: blake2b_param_set_inner_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t
      inner_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - salt
    argTypes:
    - blake2b_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: blake2b_param_set_salt
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - personal
    argTypes:
    - blake2b_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: blake2b_param_set_personal
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: blake2b_init0
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init0( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2b_state*
    - blake2b_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: blake2b_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2b_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: blake2b_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_init_param
    linkageType: ''
    returnType: int
    signature: int blake2b_init( blake2b_state *S, size_t outlen )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:267,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:272,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:273,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:274,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2b_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 278
    functionName: blake2b_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blake2b_init_param
    - blake2b_update
    - secure_zero_memory
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key,
      size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setr_epi8
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:289,1
    - Dst: _mm_setr_epi8
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:290,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:293,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:294,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:295,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:296,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:297,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:298,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:299,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:300,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:319,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:320,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:321,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:322,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:323,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:324,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:325,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:325,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:325,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:326,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:326,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:326,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:327,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:328,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:329,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:330,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:331,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:332,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:333,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:334,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:335,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:336,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:337,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:338,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:339,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:340,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:341,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:341,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:341,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:342,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:342,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:342,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:343,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:344,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:345,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:345,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:345,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:346,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:346,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2b_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 348
    functionName: blake2b_compress
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - ROUND
    - _mm_xor_si128
    - STOREU
    - LOADU
    - _mm_setr_epi8
    linkageType: ''
    returnType: int
    signature: int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES]
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:360,1
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:362,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:363,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:364,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 379
    functionName: blake2b_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 3
    functionsReached:
    - memcpy
    - blake2b_compress
    - blake2b_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:388,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:389,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:391,1
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:394,1
    - Dst: blake2b_set_lastblock
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:395,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:396,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:397,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 400
    functionName: blake2b_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 2
    functionsReached:
    - memcpy
    - blake2b_compress
    - blake2b_set_lastblock
    - memset
    - blake2b_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_key
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:420,1
    - Dst: blake2b_init
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:424,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:427,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:428,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 429
    functionName: blake2b
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_final
    - blake2b_init
    - blake2b_update
    - blake2b_init_key
    linkageType: ''
    returnType: int
    signature: int blake2b( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: crypto_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b
    linkageType: ''
    returnType: int
    signature: int crypto_hash( unsigned char *out, unsigned char *in, unsigned long
      long inlen )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2sp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c:32,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c:33,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c:35,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c
    functionUses: 14
    functionsReached:
    - puts
    - blake2sp
    - memcmp
    linkageType: ''
    returnType: int
    signature: int main( int argc, char **argv )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LOAD_MSG_0_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: LOAD_MSG_0_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: LOAD_MSG_0_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LOAD_MSG_0_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: LOAD_MSG_1_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: LOAD_MSG_1_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: LOAD_MSG_1_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: LOAD_MSG_1_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: LOAD_MSG_2_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LOAD_MSG_2_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: LOAD_MSG_2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: LOAD_MSG_2_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: LOAD_MSG_3_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: LOAD_MSG_3_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: LOAD_MSG_3_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: LOAD_MSG_3_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: LOAD_MSG_4_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: LOAD_MSG_4_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: LOAD_MSG_4_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: LOAD_MSG_4_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LOAD_MSG_5_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: LOAD_MSG_5_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: LOAD_MSG_5_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: LOAD_MSG_5_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: LOAD_MSG_6_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: LOAD_MSG_6_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: LOAD_MSG_6_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: LOAD_MSG_6_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: LOAD_MSG_7_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: LOAD_MSG_7_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: LOAD_MSG_7_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: LOAD_MSG_7_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: LOAD_MSG_8_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: LOAD_MSG_8_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: LOAD_MSG_8_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: LOAD_MSG_8_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: LOAD_MSG_9_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: LOAD_MSG_9_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: LOAD_MSG_9_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: LOAD_MSG_9_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: LOAD_MSG_10_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: LOAD_MSG_10_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: LOAD_MSG_10_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: LOAD_MSG_10_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_10_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: LOAD_MSG_11_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_1(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: LOAD_MSG_11_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_2(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: LOAD_MSG_11_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_3(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b0
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: LOAD_MSG_11_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_11_4(b0, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xcr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: xgetbv
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t xgetbv(uint32_t xcr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: cpuid
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 4
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: void
    signature: void cpuid( uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:448,1
    - Dst: blake2b_init_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2b_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: blake2b_init_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_init_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_init_dispatch( blake2b_state *S, size_t outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:454,1
    - Dst: blake2b_init_key_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2b_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: blake2b_init_key_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_init_key_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_init_key_dispatch( blake2b_state *S, size_t outlen, const
      void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:460,1
    - Dst: blake2b_init_param_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2b_state*
    - blake2b_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: blake2b_init_param_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_init_param_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_init_param_dispatch( blake2b_state *S, const blake2b_param
      *P )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:466,1
    - Dst: blake2b_update_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: blake2b_update_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_update_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_update_dispatch( blake2b_state *S, const uint8_t *in, size_t
      inlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:472,1
    - Dst: blake2b_final_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: blake2b_final_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_final_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_final_dispatch( blake2b_state *S, uint8_t *out, size_t
      outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:478,1
    - Dst: blake2b_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: blake2b_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2b_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2b_dispatch( uint8_t *out, const void *in, const void *key,
      size_t outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2b_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: blake2b_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2b_init_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b_init( blake2b_state *S, size_t outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_key_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2b_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: blake2b_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2b_init_key_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b_init_key( blake2b_state *S, size_t outlen, const
      void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_param_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2b_state*
    - blake2b_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: blake2b_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 3
    functionsReached:
    - blake2b_init_param_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b_init_param( blake2b_state *S, const blake2b_param
      *P )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_update_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: blake2b_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 4
    functionsReached:
    - blake2b_update_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b_update( blake2b_state *S, const uint8_t *in, size_t
      inlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_final_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: blake2b_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 3
    functionsReached:
    - blake2b_final_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: blake2b
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2b_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2b( uint8_t *out, const void *in, const void *key,
      size_t outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:514,1
    - Dst: blake2s_init_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2s_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: blake2s_init_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2s_init_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2s_init_dispatch( blake2s_state *S, size_t outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:520,1
    - Dst: blake2s_init_key_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2s_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: blake2s_init_key_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2s_init_key_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2s_init_key_dispatch( blake2s_state *S, size_t outlen, const
      void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:526,1
    - Dst: blake2s_init_param_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2s_state*
    - blake2s_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: blake2s_init_param_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2s_init_param_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2s_init_param_dispatch( blake2s_state *S, const blake2s_param
      *P )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:532,1
    - Dst: blake2s_update_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 534
    functionName: blake2s_update_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - get_cpu_features
    - blake2s_update_ptr
    linkageType: ''
    returnType: int
    signature: int blake2s_update_dispatch( blake2s_state *S, const uint8_t *in, size_t
      inlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:538,1
    - Dst: blake2s_final_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: blake2s_final_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2s_final_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2s_final_dispatch( blake2s_state *S, uint8_t *out, size_t
      outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_cpu_features
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:544,1
    - Dst: blake2s_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: blake2s_dispatch
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 0
    functionsReached:
    - blake2s_ptr
    - get_cpu_features
    linkageType: ''
    returnType: int
    signature: int blake2s_dispatch( uint8_t *out, const void *in, const void *key,
      size_t outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2s_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 551
    functionName: blake2s_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2s_init_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s_init( blake2s_state *S, size_t outlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_key_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2s_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    functionName: blake2s_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2s_init_key_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s_init_key( blake2s_state *S, size_t outlen, const
      void *key, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_param_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2s_state*
    - blake2s_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: blake2s_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 3
    functionsReached:
    - blake2s_init_param_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s_init_param( blake2s_state *S, const blake2s_param
      *P )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_update_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 566
    functionName: blake2s_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 4
    functionsReached:
    - blake2s_update_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s_update( blake2s_state *S, const uint8_t *in, size_t
      inlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_final_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 571
    functionName: blake2s_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 3
    functionsReached:
    - blake2s_final_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_ptr
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: blake2s
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
    functionUses: 1
    functionsReached:
    - blake2s_ptr
    linkageType: ''
    returnType: BLAKE2_API
    signature: BLAKE2_API blake2s( uint8_t *out, const void *in, const void *key,
      size_t outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - u1
    - u0
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: _mm_set_epi64x
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - _mm_set_epi32
    linkageType: ''
    returnType: __m128i
    signature: __m128i _mm_set_epi64x( const uint64_t u1, const uint64_t u0 )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: blake2s_set_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_set_lastnode( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: blake2s_clear_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_clear_lastnode( blake2s_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_set_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: blake2s_set_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_set_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2s_set_lastblock( blake2s_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_clear_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: blake2s_clear_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached:
    - blake2s_clear_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2s_clear_lastblock( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2s_state*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: blake2s_increment_counter
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_increment_counter( blake2s_state *S, const uint32_t inc
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - digest_length
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: blake2s_param_set_digest_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_digest_length( blake2s_param *P, const uint8_t
      digest_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - fanout
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: blake2s_param_set_fanout
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_fanout( blake2s_param *P, const uint8_t fanout
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - depth
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: blake2s_param_set_max_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_max_depth( blake2s_param *P, const uint8_t depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - leaf_length
    argTypes:
    - blake2s_param*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: blake2s_param_set_leaf_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_leaf_length( blake2s_param *P, const uint32_t
      leaf_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_offset
    argTypes:
    - blake2s_param*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: blake2s_param_set_node_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached:
    - store48
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_node_offset( blake2s_param *P, const uint64_t
      node_offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_depth
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: blake2s_param_set_node_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_node_depth( blake2s_param *P, const uint8_t node_depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - inner_length
    argTypes:
    - blake2s_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: blake2s_param_set_inner_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_inner_length( blake2s_param *P, const uint8_t
      inner_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - salt
    argTypes:
    - blake2s_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: blake2s_param_set_salt
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_salt( blake2s_param *P, const uint8_t salt[BLAKE2S_SALTBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - personal
    argTypes:
    - blake2s_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: blake2s_param_set_personal
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2s_param_set_personal( blake2s_param *P, const uint8_t personal[BLAKE2S_PERSONALBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2s_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: blake2s_init0
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_init0( blake2s_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2s_state*
    - blake2s_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 207
    functionName: blake2s_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2s_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: blake2s_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_init_param
    linkageType: ''
    returnType: int
    signature: int blake2s_init( blake2s_state *S, size_t outlen )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:252,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:257,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:258,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:259,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2s_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 263
    functionName: blake2s_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - memcpy
    - secure_zero_memory
    - blake2s_init_param
    - memset
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key,
      size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:278,1
    - Dst: _mm_set_epi8
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:279,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:282,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:283,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:284,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:285,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:304,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:305,1
    - Dst: _mm_setr_epi32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:306,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:307,1
    - Dst: _mm_setr_epi32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:307,1
    - Dst: LOADU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:307,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:308,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:309,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:310,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:311,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:312,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:313,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:314,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:315,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:316,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:317,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:318,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:318,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:318,1
    - Dst: STOREU
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:319,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:319,1
    - Dst: _mm_xor_si128
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2s_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 321
    functionName: blake2s_compress
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 2
    functionsReached:
    - _mm_set_epi8
    - _mm_setr_epi32
    - ROUND
    - _mm_xor_si128
    - STOREU
    - LOADU
    linkageType: ''
    returnType: int
    signature: int blake2s_compress( blake2s_state *S, const uint8_t block[BLAKE2S_BLOCKBYTES]
      )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:333,1
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:335,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:336,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:337,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 352
    functionName: blake2s_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 5
    functionsReached:
    - blake2s_compress
    - memcpy
    - blake2s_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:363,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:364,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:366,1
    - Dst: blake2s_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:369,1
    - Dst: blake2s_set_lastblock
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:370,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:371,1
    - Dst: blake2s_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:372,1
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:375,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2s_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 379
    functionName: blake2s_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 3
    functionsReached:
    - memcpy
    - blake2s_increment_counter
    - store32
    - blake2s_compress
    - blake2s_set_lastblock
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_init_key
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:398,1
    - Dst: blake2s_init
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:402,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:405,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:406,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 407
    functionName: blake2s
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 1
    functionsReached:
    - blake2s_final
    - blake2s_init_key
    - blake2s_init
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2s( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2s
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - in
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: crypto_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
    functionUses: 0
    functionsReached:
    - blake2s
    linkageType: ''
    returnType: int
    signature: int crypto_hash( unsigned char *out, unsigned char *in, unsigned long
      long inlen )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LOAD
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: STORE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(p,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LOADU
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADU(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: STOREU
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STOREU(p,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: TOF
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOF(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: TOI
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOI(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LIKELY
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: _mm_roti_epi64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mm_roti_epi64(x, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: _mm_roti_epi64
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mm_roti_epi64(r, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - ','
    - b0
    - ','
    - b1
    - )
    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: 66
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 66
    functionName: G1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - ','
    - b0
    - ','
    - b1
    - )
    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: 85
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: G2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: DIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: UNDIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: DIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - row1l
    - ','
    - row2l
    - ','
    - row3l
    - ','
    - row4l
    - ','
    - row1h
    - ','
    - row2h
    - ','
    - row3h
    - ','
    - row4h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: UNDIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: ROUND
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c:32,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c:33,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c:35,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c
    functionUses: 14
    functionsReached:
    - puts
    - memcmp
    - blake2b
    linkageType: ''
    returnType: int
    signature: int main( int argc, char **argv )
  - 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: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: LOAD_MSG_0_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: LOAD_MSG_0_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: LOAD_MSG_0_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: LOAD_MSG_0_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: LOAD_MSG_1_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: LOAD_MSG_1_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: LOAD_MSG_1_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: LOAD_MSG_1_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: LOAD_MSG_2_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: LOAD_MSG_2_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: LOAD_MSG_2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: LOAD_MSG_2_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: LOAD_MSG_3_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: LOAD_MSG_3_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: LOAD_MSG_3_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: LOAD_MSG_3_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: LOAD_MSG_4_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: LOAD_MSG_4_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: LOAD_MSG_4_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: LOAD_MSG_4_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: LOAD_MSG_5_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: LOAD_MSG_5_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: LOAD_MSG_5_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: LOAD_MSG_5_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: LOAD_MSG_6_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: LOAD_MSG_6_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: LOAD_MSG_6_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: LOAD_MSG_6_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: LOAD_MSG_7_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: LOAD_MSG_7_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: LOAD_MSG_7_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: LOAD_MSG_7_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: LOAD_MSG_8_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: LOAD_MSG_8_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: LOAD_MSG_8_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 204
    functionName: LOAD_MSG_8_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: LOAD_MSG_9_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: LOAD_MSG_9_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: LOAD_MSG_9_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: LOAD_MSG_9_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: blake2b_set_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_set_lastnode( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: blake2b_clear_lastnode
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_clear_lastnode( blake2b_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_set_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: blake2b_set_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 1
    functionsReached:
    - blake2b_set_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2b_set_lastblock( blake2b_state *S )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_clear_lastnode
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: blake2b_clear_lastblock
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - blake2b_clear_lastnode
    linkageType: ''
    returnType: int
    signature: int blake2b_clear_lastblock( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - S
    - inc
    argTypes:
    - blake2b_state*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: blake2b_increment_counter
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_increment_counter( blake2b_state *S, const uint64_t inc
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - digest_length
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: blake2b_param_set_digest_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_digest_length( blake2b_param *P, const uint8_t
      digest_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - fanout
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: blake2b_param_set_fanout
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_fanout( blake2b_param *P, const uint8_t fanout
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - depth
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: blake2b_param_set_max_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_max_depth( blake2b_param *P, const uint8_t depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - leaf_length
    argTypes:
    - blake2b_param*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: blake2b_param_set_leaf_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - store32
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_leaf_length( blake2b_param *P, const uint32_t
      leaf_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_offset
    argTypes:
    - blake2b_param*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: blake2b_param_set_node_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - store64
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_node_offset( blake2b_param *P, const uint64_t
      node_offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - node_depth
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: blake2b_param_set_node_depth
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_node_depth( blake2b_param *P, const uint8_t node_depth
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - inner_length
    argTypes:
    - blake2b_param*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: blake2b_param_set_inner_length
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_inner_length( blake2b_param *P, const uint8_t
      inner_length )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - salt
    argTypes:
    - blake2b_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: blake2b_param_set_salt
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_salt( blake2b_param *P, const uint8_t salt[BLAKE2B_SALTBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - P
    - personal
    argTypes:
    - blake2b_param*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: blake2b_param_set_personal
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int blake2b_param_set_personal( blake2b_param *P, const uint8_t personal[BLAKE2B_PERSONALBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - S
    argTypes:
    - blake2b_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: blake2b_init0
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init0( blake2b_state *S )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init0
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:164,1
    - Dst: load64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - S
    - P
    argTypes:
    - blake2b_state*
    - blake2b_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 173
    functionName: blake2b_init_param
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 3
    functionsReached:
    - load64
    - blake2b_init0
    linkageType: ''
    returnType: int
    signature: int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:187,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:188,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:191,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:192,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:193,1
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2b_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: blake2b_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 1
    functionsReached:
    - store32
    - store64
    - memset
    - blake2b_init_param
    linkageType: ''
    returnType: int
    signature: int blake2b_init( blake2b_state *S, size_t outlen )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:210,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:211,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:214,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:215,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:216,1
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:218,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:222,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:223,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:224,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2b_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 228
    functionName: blake2b_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 1
    functionsReached:
    - memcpy
    - store32
    - blake2b_init_param
    - secure_zero_memory
    - blake2b_update
    - store64
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key,
      size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:237,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:272,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:273,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:274,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:275,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:276,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:277,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:278,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:279,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:280,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:281,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:282,1
    - Dst: ROUND
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - S
    - block
    argTypes:
    - blake2b_state*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 291
    functionName: blake2b_compress
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 2
    functionsReached:
    - ROUND
    - load64
    linkageType: ''
    returnType: int
    signature: int blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES]
      )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - r
    - ','
    - i
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: G
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 391
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(r,i,a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: ROUND
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:303,1
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:305,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:306,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:307,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 322
    functionName: blake2b_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 5
    functionsReached:
    - memcpy
    - blake2b_compress
    - blake2b_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:333,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:334,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:336,1
    - Dst: blake2b_increment_counter
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:339,1
    - Dst: blake2b_set_lastblock
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:340,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:341,1
    - Dst: blake2b_compress
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:342,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:345,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2b_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 349
    functionName: blake2b_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 3
    functionsReached:
    - memcpy
    - blake2b_compress
    - blake2b_set_lastblock
    - store64
    - memset
    - blake2b_increment_counter
    linkageType: ''
    returnType: int
    signature: int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_init_key
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:368,1
    - Dst: blake2b_init
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:372,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:375,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c:376,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 377
    functionName: blake2b
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
    functionUses: 2
    functionsReached:
    - blake2b_final
    - blake2b_init
    - blake2b_update
    - blake2b_init_key
    linkageType: ''
    returnType: int
    signature: int blake2b( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:35,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:38,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:39,1
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - S
    - outlen
    - keylen
    - offset
    argTypes:
    - blake2s_state*
    - uint8_t
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: blake2sp_init_leaf
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - blake2s_init_param
    - store48
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2sp_init_leaf( blake2s_state *S, uint8_t outlen, uint8_t keylen,
      uint64_t offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store48
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:53,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:56,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:57,1
    - Dst: blake2s_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - S
    - outlen
    - keylen
    argTypes:
    - blake2s_state*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: blake2sp_init_root
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - blake2s_init_param
    - store48
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2sp_init_root( blake2s_state *S, uint8_t outlen, uint8_t keylen
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:68,1
    - Dst: blake2sp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:71,1
    - Dst: blake2sp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2sp_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 81
    functionName: blake2sp_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - blake2sp_init_leaf
    - blake2sp_init_root
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2sp_init( blake2sp_state *S, size_t outlen )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:89,1
    - Dst: blake2sp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:92,1
    - Dst: blake2sp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:96,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:104,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:105,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:108,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2sp_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 113
    functionName: blake2sp_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blake2sp_init_root
    - blake2sp_init_leaf
    - secure_zero_memory
    - memset
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void
      *key, size_t keylen )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:123,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:126,1
    - Dst: omp_set_num_threads
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:134,1
    - Dst: omp_get_thread_num
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:141,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:149,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2sp_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 163
    functionName: blake2sp_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - omp_get_thread_num
    - memcpy
    - omp_set_num_threads
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2sp_update( blake2sp_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:180,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:183,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:187,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2sp_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 191
    functionName: blake2sp_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 0
    functionsReached:
    - blake2s_final
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen
      )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2sp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:212,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:220,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:221,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:224,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:226,1
    - Dst: omp_set_num_threads
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:230,1
    - Dst: omp_get_thread_num
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:238,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:246,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:255,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:258,1
    - Dst: blake2sp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:261,1
    - Dst: blake2s_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:267,1
    - Dst: blake2s_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c:269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 270
    functionName: blake2sp
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
    functionUses: 1
    functionsReached:
    - omp_get_thread_num
    - memcpy
    - omp_set_num_threads
    - blake2sp_init_root
    - blake2sp_init_leaf
    - blake2s_final
    - secure_zero_memory
    - memset
    - blake2s_update
    linkageType: ''
    returnType: int
    signature: int blake2sp( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blake2bp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c:33,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c:34,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c:36,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c
    functionUses: 14
    functionsReached:
    - puts
    - memcmp
    - blake2bp
    linkageType: ''
    returnType: int
    signature: int main( int argc, char **argv )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LOAD
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: STORE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(p,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LOADU
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOADU(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: STOREU
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STOREU(p,r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: TOF
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOF(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: TOI
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOI(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LIKELY
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKELY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: _mm_roti_epi32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mm_roti_epi32(r, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _mm_roti_epi32
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _mm_roti_epi32(r, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - row1
    - ','
    - row2
    - ','
    - row3
    - ','
    - row4
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: G1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G1(row1,row2,row3,row4,buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - row1
    - ','
    - row2
    - ','
    - row3
    - ','
    - row4
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: G2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G2(row1,row2,row3,row4,buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - row1
    - ','
    - row2
    - ','
    - row3
    - ','
    - row4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: DIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAGONALIZE(row1,row2,row3,row4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - row1
    - ','
    - row2
    - ','
    - row3
    - ','
    - row4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: UNDIAGONALIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNDIAGONALIZE(row1,row2,row3,row4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: ROUND
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:35,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:36,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:39,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:40,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:41,1
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - S
    - outlen
    - keylen
    - offset
    argTypes:
    - blake2b_state*
    - uint8_t
    - uint8_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: blake2bp_init_leaf
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - store32
    - store64
    - memset
    - blake2b_init_param
    linkageType: ''
    returnType: int
    signature: int blake2bp_init_leaf( blake2b_state *S, uint8_t outlen, uint8_t keylen,
      uint64_t offset )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store32
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:54,1
    - Dst: store64
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:55,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:58,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:59,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:60,1
    - Dst: blake2b_init_param
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - S
    - outlen
    - keylen
    argTypes:
    - blake2b_state*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: blake2bp_init_root
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - store32
    - store64
    - memset
    - blake2b_init_param
    linkageType: ''
    returnType: int
    signature: int blake2bp_init_root( blake2b_state *S, uint8_t outlen, uint8_t keylen
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:71,1
    - Dst: blake2bp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:74,1
    - Dst: blake2bp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - S
    - outlen
    argTypes:
    - blake2bp_state*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 84
    functionName: blake2bp_init
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - blake2bp_init_leaf
    - blake2bp_init_root
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2bp_init( blake2bp_state *S, size_t outlen )
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:92,1
    - Dst: blake2bp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:95,1
    - Dst: blake2bp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:99,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:107,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:108,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:111,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - S
    - outlen
    - key
    - keylen
    argTypes:
    - blake2bp_state*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 116
    functionName: blake2bp_init_key
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blake2bp_init_root
    - blake2bp_init_leaf
    - secure_zero_memory
    - blake2b_update
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void
      *key, size_t keylen )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:126,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:129,1
    - Dst: omp_set_num_threads
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:137,1
    - Dst: omp_get_thread_num
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:144,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:152,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - S
    - in
    - inlen
    argTypes:
    - blake2bp_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 166
    functionName: blake2bp_update
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - omp_get_thread_num
    - memcpy
    - omp_set_num_threads
    - blake2b_update
    linkageType: ''
    returnType: int
    signature: int blake2bp_update( blake2bp_state *S, const uint8_t *in, size_t inlen
      )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:184,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:187,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:191,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - S
    - out
    - outlen
    argTypes:
    - blake2bp_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: blake2bp_final
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 0
    functionsReached:
    - blake2b_final
    - blake2b_update
    linkageType: ''
    returnType: int
    signature: int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen
      )
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: blake2bp_init_leaf
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:214,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:222,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:223,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:226,1
    - Dst: secure_zero_memory
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:228,1
    - Dst: omp_set_num_threads
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:232,1
    - Dst: omp_get_thread_num
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:239,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:247,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:256,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:259,1
    - Dst: blake2bp_init_root
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:262,1
    - Dst: blake2b_update
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:268,1
    - Dst: blake2b_final
      Src: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c:270,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 6
    argNames:
    - out
    - in
    - key
    - outlen
    - inlen
    - keylen
    argTypes:
    - uint8_t*
    - void*
    - void*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 271
    functionName: blake2bp
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
    functionUses: 1
    functionsReached:
    - omp_get_thread_num
    - memcpy
    - omp_set_num_threads
    - blake2bp_init_root
    - blake2b_final
    - blake2bp_init_leaf
    - blake2b_update
    - secure_zero_memory
    - memset
    linkageType: ''
    returnType: int
    signature: int blake2bp( uint8_t *out, const void *in, const void *key, size_t
      outlen, size_t inlen, size_t keylen )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: LOAD_MSG_0_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_1(buf)
  - 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: LOAD_MSG_0_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: LOAD_MSG_0_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LOAD_MSG_0_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_0_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: LOAD_MSG_1_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: LOAD_MSG_1_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: LOAD_MSG_1_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: LOAD_MSG_1_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_1_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: LOAD_MSG_2_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LOAD_MSG_2_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: LOAD_MSG_2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: LOAD_MSG_2_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_2_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: LOAD_MSG_3_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: LOAD_MSG_3_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: LOAD_MSG_3_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: LOAD_MSG_3_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_3_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: LOAD_MSG_4_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: LOAD_MSG_4_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: LOAD_MSG_4_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: LOAD_MSG_4_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_4_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LOAD_MSG_5_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: LOAD_MSG_5_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: LOAD_MSG_5_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: LOAD_MSG_5_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_5_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: LOAD_MSG_6_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: LOAD_MSG_6_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: LOAD_MSG_6_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: LOAD_MSG_6_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_6_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: LOAD_MSG_7_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: LOAD_MSG_7_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: LOAD_MSG_7_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: LOAD_MSG_7_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_7_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: LOAD_MSG_8_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: LOAD_MSG_8_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: LOAD_MSG_8_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: LOAD_MSG_8_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_8_4(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: LOAD_MSG_9_1
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_1(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: LOAD_MSG_9_2
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_2(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: LOAD_MSG_9_3
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_3(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: LOAD_MSG_9_4
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_MSG_9_4(buf)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:28,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:29,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:43,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:43,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:57,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:58,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:62,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:63,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:71,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:74,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:75,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:83,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:86,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:87,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:95,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:98,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:99,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:107,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:108,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:112,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:113,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:122,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:126,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:127,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:135,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:143,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:152,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:157,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:166,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:170,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:171,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:178,1
    - Dst: py_blake2b_new_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:183,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:188,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:192,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:196,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 183
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 200
    functionName: py_blake2b_new
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyLong_UnsignedLong_Converter
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - py_blake2b_new_impl
    - PyBuffer_IsContiguous
    - _PyLong_UnsignedLongLong_Converter
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_copy_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2bObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: _blake2_blake2b_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_copy(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_digest_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2bObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: _blake2_blake2b_digest
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_digest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2b_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2bObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: _blake2_blake2b_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2b_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2b_hexdigest(BLAKE2bObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:28,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:29,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:43,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:43,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:57,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:58,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:62,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:63,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:71,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:74,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:75,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:83,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:86,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:87,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:95,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:98,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:99,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:107,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:108,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:112,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:113,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:122,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:126,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:127,1
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:135,1
    - Dst: _PyLong_UnsignedLongLong_Converter
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:143,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:152,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:157,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:166,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:170,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:171,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:178,1
    - Dst: py_blake2s_new_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:183,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:188,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:192,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:196,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 183
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 200
    functionName: py_blake2s_new
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyLong_UnsignedLong_Converter
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _PyLong_UnsignedLongLong_Converter
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_IsTrue
    - PyObject_GetBuffer
    - py_blake2s_new_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2s_copy_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2sObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: _blake2_blake2s_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2s_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_copy(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2s_digest_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2sObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: _blake2_blake2s_digest
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2s_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_digest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _blake2_blake2s_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BLAKE2sObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: _blake2_blake2s_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
    functionUses: 0
    functionsReached:
    - _blake2_blake2s_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _blake2_blake2s_hexdigest(BLAKE2sObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:21,1
    - Dst: SSL_get_app_data
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:23,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:24,1
    - Dst: PySSLSocket_Check
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:24,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:30,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:32,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:35,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:69,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:76,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:78,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:80,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 7
    argNames:
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    - arg
    argTypes:
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    - void*
    assertStmts:
    - condition: (PySSLSocket_Check(ssl_obj))
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 83
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 83
    functionName: _PySSL_msg_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - Py_DECREF
    - Py_INCREF
    - PyErr_Fetch
    - PyGILState_Release
    - PySSLSocket_Check
    - PyWeakref_GetObject
    - PyObject_CallFunction
    - assert
    - SSL_get_app_data
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void _PySSL_msg_callback(int write_p, int version, int content_type,\n
      \                   const void *buf, size_t len, SSL *ssl, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: _PySSLContext_get_msg_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSLContext_get_msg_callback(PySSLContext *self, void *c)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:98,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:100,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:103,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:105,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:109,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: _PySSLContext_set_msg_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyCallable_Check
    - Py_INCREF
    - SSL_CTX_set_msg_callback
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PySSLContext_set_msg_callback(PySSLContext *self, PyObject *arg,
      void *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:126,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:137,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:138,1
    - Dst: SSL_get_app_data
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:144,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:145,1
    - Dst: PySSLSocket_Check
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:145,1
    - Dst: BIO_printf
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:152,1
    - Dst: BIO_flush
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:154,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:155,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:160,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:162,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts:
    - condition: (PySSLSocket_Check(ssl_obj))
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    constantsTouched: []
    func_position:
      end: 165
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 165
    functionName: _PySSL_keylog_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - BIO_flush
    - PyErr_Fetch
    - PyGILState_Release
    - PyThread_release_lock
    - PySSLSocket_Check
    - PyThread_allocate_lock
    - PyErr_SetString
    - BIO_printf
    - assert
    - SSL_get_app_data
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: void
    signature: void _PySSL_keylog_callback(const SSL *ssl, const char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - c
    argTypes:
    - PySSLContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: _PySSLContext_get_keylog_filename
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySSLContext_get_keylog_filename(PySSLContext *self, void *c)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:181,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:182,1
    - Dst: _Py_fopen_obj
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:197,1
    - Dst: BIO_new_fp
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:201,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:203,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:207,1
    - Dst: BIO_tell
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:212,1
    - Dst: BIO_puts
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:213,1
    - Dst: BIO_flush
      Src: /src/Python-3.8.3/Modules/_ssl/debughelpers.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - self
    - arg
    - c
    argTypes:
    - PySSLContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 220
    functionName: _PySSLContext_set_keylog_filename
    functionSourceFile: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _Py_fopen_obj
    - SSL_CTX_set_keylog_callback
    - Py_INCREF
    - BIO_flush
    - BIO_puts
    - PyErr_SetString
    - BIO_new_fp
    - BIO_tell
    linkageType: ''
    returnType: int
    signature: int _PySSLContext_set_keylog_filename(PySSLContext *self, PyObject
      *arg, void *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: PyWindowsConsoleIO_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWindowsConsoleIO_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: IO_MOD_STATE
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_MOD_STATE(mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: IO_STATE
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IO_STATE()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetConsoleMode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:54,1
    - Dst: GetNumberOfConsoleInputEvents
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: _get_console_type
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - GetConsoleMode
    - GetNumberOfConsoleInputEvents
    linkageType: ''
    returnType: char
    signature: char _get_console_type(HANDLE handle)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:64,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:65,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:69,1
    - Dst: _get_console_type
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:73,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:79,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:80,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:83,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:84,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:86,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:91,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:93,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:95,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:99,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:106,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:108,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:110,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:114,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:123,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:125,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:127,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:133,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 1
    argNames:
    - path_or_fd
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 135
    functionName: _PyIO_get_console_type
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyLong_AsLong
    - Py_CLEAR
    - PyUnicode_FSDecoder
    - _get_osfhandle
    - _get_console_type
    - PyUnicode_AsWideCharString
    - GetFullPathNameW
    - PyMem_Free
    - _wcsicmp
    - PyErr_Clear
    linkageType: ''
    returnType: char
    signature: char _PyIO_get_console_type(PyObject *path_or_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: _PyWindowsConsoleIO_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyWindowsConsoleIO_closed(PyObject *self)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:206,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:207,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:214,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:215,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:217,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:219,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:228,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:230,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:273,1
    - Dst: PyWindowsConsoleIO_Check
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:273,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:277,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:284,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:285,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:290,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:292,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:293,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:297,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:304,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:308,1
    - Dst: _PyIO_get_console_type
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:309,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:310,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:340,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:351,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:359,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:372,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:375,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:380,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:380,1
    - Dst: _get_console_type
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:386,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:389,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:394,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:400,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:402,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:408,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:412,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:416,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:423,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:430,1
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:438,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:440,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:442,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:443,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:444,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:450,1
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:457,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:459,1
    - Dst: _open_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:481,1
    - Dst: _open_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:483,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:487,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:488,1
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:502,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:503,1
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:517,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:518,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:550,1
    - Dst: min
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:561,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:562,1
    - Dst: ReadConsoleW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:563,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:566,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:569,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:573,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:577,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:578,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:580,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:582,1
    - Dst: GetStringTypeW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:601,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:606,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:626,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:631,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:632,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:643,1
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:652,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:656,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:662,1
    - Dst: _copyfrombuf
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:677,1
    - Dst: read_console_w
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:687,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:691,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:700,1
    - Dst: _copyfrombuf
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:703,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:705,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:713,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:718,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:727,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:733,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 318
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    - condition: (PyWindowsConsoleIO_Check(self))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 738
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 738
    functionName: internal_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 7
    functionsReached:
    - PyLong_FromLong
    - Py_CLEAR
    - PyUnicode_FSDecoder
    - _Py_IDENTIFIER
    - PyMem_Realloc
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - tp_alloc
    - read_console_w
    - WideCharToMultiByte
    - PyBool_FromLong
    - PyFloat_Check
    - GetLastError
    - WaitForSingleObjectEx
    - PyErr_Occurred
    - _get_console_type
    - PyErr_CheckSignals
    - _copyfrombuf
    - ResetEvent
    - Py_VISIT
    - min
    - PyErr_Format
    - internal_close
    - assert
    - err_closed
    - PyErr_Clear
    - ReadConsoleW
    - memset
    - _open_osfhandle
    - PyErr_SetFromWindowsErr
    - _PyObject_SetAttrId
    - PyWindowsConsoleIO_Check
    - PyUnicode_AsWideCharString
    - IO_STATE
    - _PyObject_CallMethodIdObjArgs
    - _PyErr_ChainExceptions
    - err_mode
    - CreateFileW
    - _PyIOBase_finalize
    - Py_TYPE
    - PyMem_Free
    - _PyOS_SigintEvent
    - GetStringTypeW
    - _get_osfhandle
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - SetLastError
    - PyErr_Fetch
    - PyErr_SetString
    - PyMem_Malloc
    - _PyIO_get_console_type
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int internal_close(winconsoleio *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:206,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:207,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:214,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:215,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:217,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 221
    functionName: _io__WindowsConsoleIO_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyObject_CallMethodIdObjArgs
    - PyErr_Fetch
    - _PyErr_ChainExceptions
    - _Py_IDENTIFIER
    - internal_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_close_impl(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:228,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: winconsoleio_new
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winconsoleio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:273,1
    - Dst: PyWindowsConsoleIO_Check
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:273,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:277,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:284,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:285,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:290,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:292,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:293,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:297,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:304,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:308,1
    - Dst: _PyIO_get_console_type
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:309,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:310,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:340,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:351,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:359,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:372,1
    - Dst: CreateFileW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:375,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:380,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:380,1
    - Dst: _get_console_type
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:386,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:389,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:394,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:400,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:402,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:408,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:412,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:416,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 114
    argCount: 5
    argNames:
    - self
    - nameobj
    - mode
    - closefd
    - opener
    argTypes:
    - winconsoleio*
    - PyObject*
    - char*
    - int
    - PyObject*
    assertStmts:
    - condition: (PyWindowsConsoleIO_Check(self))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 418
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 418
    functionName: _io__WindowsConsoleIO___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyUnicode_FSDecoder
    - PyFloat_Check
    - GetLastError
    - PyErr_Occurred
    - _get_console_type
    - PyErr_Format
    - internal_close
    - assert
    - PyErr_Clear
    - memset
    - _PyObject_SetAttrId
    - PyWindowsConsoleIO_Check
    - PyUnicode_AsWideCharString
    - CreateFileW
    - PyMem_Free
    - _get_osfhandle
    - PyErr_SetExcFromWindowsErrWithFilenameObject
    - PyErr_SetString
    - _PyIO_get_console_type
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: "int _io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject
      *nameobj,\n                                    const char *mode, int closefd,\n
      \                                   PyObject *opener)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - winconsoleio*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: winconsoleio_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int winconsoleio_traverse(winconsoleio *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: winconsoleio_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int winconsoleio_clear(winconsoleio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:438,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:440,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:442,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:443,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: winconsoleio_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyIOBase_finalize
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void winconsoleio_dealloc(winconsoleio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: err_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 11
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_closed(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:457,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: err_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 1
    functionsReached:
    - IO_STATE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_mode(const char *action)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _open_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:481,1
    - Dst: _open_osfhandle
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:483,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:487,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 489
    functionName: _io__WindowsConsoleIO_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - err_mode
    - _open_osfhandle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_fileno_impl(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:502,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 504
    functionName: _io__WindowsConsoleIO_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readable_impl(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:517,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 519
    functionName: _io__WindowsConsoleIO_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_writable_impl(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 529
    functionName: _buflen
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD _buflen(winconsoleio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - buf
    - len
    argTypes:
    - winconsoleio*
    - char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 544
    functionName: _copyfrombuf
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD _copyfrombuf(winconsoleio *self, char *buf, DWORD len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:550,1
    - Dst: min
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:561,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:562,1
    - Dst: ReadConsoleW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:563,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:566,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:569,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:573,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:577,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:578,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:580,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:582,1
    - Dst: GetStringTypeW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:601,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:606,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:626,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:631,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:632,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:643,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 61
    argCount: 3
    argNames:
    - handle
    - maxlen
    - readlen
    argTypes:
    - HANDLE
    - DWORD
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 546
    functionDepth: 3
    functionLinenumber: 546
    functionLinenumberEnd: 645
    functionName: read_console_w
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 1
    functionsReached:
    - GetLastError
    - WaitForSingleObjectEx
    - GetStringTypeW
    - _PyOS_SigintEvent
    - SetLastError
    - PyErr_CheckSignals
    - ResetEvent
    - PyMem_Realloc
    - min
    - PyMem_Free
    - PyMem_Malloc
    - ReadConsoleW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      read_console_w(HANDLE handle, DWORD maxlen, DWORD *readlen)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:652,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:656,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:662,1
    - Dst: _copyfrombuf
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:677,1
    - Dst: read_console_w
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:687,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:691,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:700,1
    - Dst: _copyfrombuf
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:703,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:705,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - self
    - buf
    - len
    argTypes:
    - winconsoleio*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 707
    functionName: readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - _copyfrombuf
    - err_mode
    - PyErr_Format
    - read_console_w
    - PyMem_Free
    - WideCharToMultiByte
    - err_closed
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t readinto(winconsoleio *self, char *buf, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readinto
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:752,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - winconsoleio*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 748
    functionDepth: 5
    functionLinenumber: 748
    functionLinenumberEnd: 757
    functionName: _io__WindowsConsoleIO_readinto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - readinto
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readinto_impl(winconsoleio *self, Py_buffer *buffer)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - currentsize
    argTypes:
    - winconsoleio*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 775
    functionName: new_buffersize
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD new_buffersize(winconsoleio *self, DWORD currentsize)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:795,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:799,1
    - Dst: new_buffersize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:807,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:811,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:814,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:819,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:822,1
    - Dst: read_console_w
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:828,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:831,1
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:836,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:838,1
    - Dst: _buflen
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:847,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:849,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:850,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:855,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:860,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:861,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:862,1
    - Dst: _buflen
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:868,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:869,1
    - Dst: _copyfrombuf
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:870,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:870,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:874,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:875,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:879,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:880,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:881,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:882,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:889,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:890,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:891,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:892,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 897
    functionName: _io__WindowsConsoleIO_readall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - GetLastError
    - Py_CLEAR
    - new_buffersize
    - _copyfrombuf
    - wcsncpy_s
    - PyMem_Realloc
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - read_console_w
    - PyMem_Free
    - PyErr_SetString
    - WideCharToMultiByte
    - PyMem_Malloc
    - err_closed
    - _buflen
    - PyBytes_AS_STRING
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readall_impl(winconsoleio *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:919,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:921,1
    - Dst: _io__WindowsConsoleIO_readall_impl
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:924,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:926,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:930,1
    - Dst: readinto
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:934,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:934,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:934,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:936,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:940,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:941,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - winconsoleio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 911
    functionDepth: 5
    functionLinenumber: 911
    functionLinenumberEnd: 948
    functionName: _io__WindowsConsoleIO_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - readinto
    - Py_CLEAR
    - err_mode
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - err_closed
    - _io__WindowsConsoleIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_read_impl(winconsoleio *self, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:970,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:972,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:975,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:983,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:992,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:997,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:999,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1002,1
    - Dst: WriteConsoleW
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1004,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1011,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1014,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1016,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1024,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1025,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1026,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1029,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1030,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - winconsoleio*
    - Py_buffer*
    assertStmts:
    - condition: (wlen == len)
      pos:
        line_end: 1015
        line_start: 1015
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    constantsTouched: []
    func_position:
      end: 1031
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 1031
    functionName: _io__WindowsConsoleIO_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GetLastError
    - assert
    - err_mode
    - MultiByteToWideChar
    - WriteConsoleW
    - PyMem_Free
    - WideCharToMultiByte
    - PyMem_Malloc
    - err_closed
    - PyLong_FromSsize_t
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_write_impl(winconsoleio *self, Py_buffer *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1037,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1040,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1043,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1048
    functionName: winconsoleio_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winconsoleio_repr(winconsoleio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - winconsoleio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1064
    functionName: _io__WindowsConsoleIO_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_isatty_impl(winconsoleio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - winconsoleio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    functionName: get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closed(winconsoleio *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - winconsoleio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1093
    functionName: get_closefd
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closefd(winconsoleio *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/winconsoleio.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - winconsoleio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1099
    functionName: get_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mode(winconsoleio *self, void *closure)'
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:249,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:250,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:251,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:252,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:254,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:258,1
    - Dst: PyOS_FSPath
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:260,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:267,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:268,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:269,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:274,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:308,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:310,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:327,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:331,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:338,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:344,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:350,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:356,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:362,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:368,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:380,1
    - Dst: _PyIO_get_console_type
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:381,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:394,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:397,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:403,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:406,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:407,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:408,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:421,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:424,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:425,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:426,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:430,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:443,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:458,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:463,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:473,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:486,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:490,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:496,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:497,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:498,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:500,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:502,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:503,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 213
    argCount: 9
    argNames:
    - module
    - file
    - mode
    - buffering
    - encoding
    - errors
    - newline
    - closefd
    - opener
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 505
    functionName: _io_open_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyNumber_Check
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyErr_Occurred
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - strlen
    - PyErr_Format
    - PyObject_CallFunction
    - Py_XDECREF
    - _PyObject_SetAttrId
    - PyUnicode_FromString
    - Py_DECREF
    - PyOS_FSPath
    - _PyErr_ChainExceptions
    - strchr
    - PyErr_WarnEx
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - _PyIO_get_console_type
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io_open_impl(PyObject *module, PyObject *file, const
      char *mode,\n              int buffering, const char *encoding, const char *errors,\n
      \             const char *newline, int closefd, PyObject *opener)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_OpenCodeObject
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 524
    functionName: _io_open_code_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyFile_OpenCodeObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_open_code_impl(PyObject *module, PyObject *path)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:535,1
    - Dst: PyLong_AsOff_t
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:540,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:541,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:545,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:548,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:553,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:553,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:557,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 552
        line_start: 552
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.c
    constantsTouched: []
    func_position:
      end: 572
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 572
    functionName: PyNumber_AsOff_t
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _PyLong_Sign
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsOff_t
    - PyNumber_Index
    - PyErr_GivenExceptionMatches
    - PyErr_Format
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t PyNumber_AsOff_t(PyObject *item, PyObject *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyState_FindModule
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:578,1
    - Dst: IO_MOD_STATE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:580,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: _PyIO_get_module_state
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyState_FindModule
    - PyErr_SetString
    - IO_MOD_STATE
    linkageType: ''
    returnType: _PyIO_State
    signature: '_PyIO_State *

      _PyIO_get_module_state(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:594,1
    - Dst: PyWeakref_CheckRef
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:594,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:595,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:597,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:600,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:602,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:605,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - state
    argTypes:
    - _PyIO_State*
    assertStmts:
    - condition: (PyWeakref_CheckRef(state->locale_module))
      pos:
        line_end: 593
        line_start: 593
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.c
    constantsTouched: []
    func_position:
      end: 611
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 611
    functionName: _PyIO_get_locale_module
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - assert
    - PyWeakref_CheckRef
    - PyWeakref_NewRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIO_get_locale_module(_PyIO_State *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IO_MOD_STATE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:616,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:620,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mod
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 624
    functionName: iomodule_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - IO_MOD_STATE
    linkageType: ''
    returnType: int
    signature: int iomodule_traverse(PyObject *mod, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IO_MOD_STATE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:629,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:633,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: iomodule_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - IO_MOD_STATE
    linkageType: ''
    returnType: int
    signature: int iomodule_clear(PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iomodule_clear
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: iomodule_free
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - iomodule_clear
    linkageType: ''
    returnType: void
    signature: void iomodule_free(PyObject *mod)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:671,1
    - Dst: IO_MOD_STATE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:675,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:688,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:692,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:697,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:698,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:703,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:704,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:711,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:712,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:713,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:714,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:719,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:723,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:724,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:729,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:734,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:739,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:743,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:747,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:751,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:755,1
    - Dst: ADD_TYPE
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:758,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:766,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:767,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:768,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:769,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:770,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:771,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:772,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:773,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:774,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:775,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:776,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:777,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:778,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:779,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:780,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:781,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:782,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:783,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:784,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:785,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:786,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:787,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:788,1
    - Dst: ADD_INTERNED
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:789,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:792,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:796,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:799,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:807,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/_iomodule.c:808,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 810
    functionName: PyInit__io
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - ADD_TYPE
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - PyModule_Create
    - Py_XDECREF
    - PyModule_AddObject
    - PyObject_CallFunction
    - ADD_INTERNED
    - PyUnicode_InternFromString
    - PyType_Ready
    - PyModule_AddIntMacro
    - IO_MOD_STATE
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__io(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 686
    functionName: ADD_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TYPE(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 765
    functionName: ADD_INTERNED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/_iomodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INTERNED(name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:69,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:75,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:76,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:77,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:81,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:83,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:87,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:90,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:90,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:92,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - buffer
    - readinto1
    argTypes:
    - PyObject*
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: _bufferediobase_readinto_generic
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferediobase_readinto_generic(PyObject *self, Py_buffer *buffer, char readinto1)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bufferediobase_readinto_generic
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: _io__BufferedIOBase_readinto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _bufferediobase_readinto_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto_impl(PyObject *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bufferediobase_readinto_generic
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: _io__BufferedIOBase_readinto1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _bufferediobase_readinto_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto1_impl(PyObject *self, Py_buffer *buffer)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:126,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: bufferediobase_unsupported
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - IO_STATE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferediobase_unsupported(const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferediobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: _io__BufferedIOBase_detach_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_detach_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferediobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: bufferediobase_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferediobase_read(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferediobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: bufferediobase_read1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferediobase_read1(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bufferediobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: bufferediobase_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - bufferediobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferediobase_write(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:275,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:276,1
    - Dst: _Py_IsFinalizing
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:280,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:283,1
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 292
    functionName: _enter_buffered_busy
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyThread_acquire_lock_timed
    - PyThread_acquire_lock
    - _Py_IsFinalizing
    - PyErr_Format
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: int
    signature: int _enter_buffered_busy(buffered *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: ENTER_BUFFERED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTER_BUFFERED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: LEAVE_BUFFERED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAVE_BUFFERED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 327
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INITIALIZED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 339
    functionName: CHECK_INITIALIZED_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INITIALIZED_INT(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: IS_CLOSED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CLOSED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - error_msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: CHECK_CLOSED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CLOSED(self, error_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 355
    functionName: VALID_READ_BUFFER
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_READ_BUFFER(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: VALID_WRITE_BUFFER
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_WRITE_BUFFER(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - _new_pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: ADJUST_POSITION
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_POSITION(self, _new_pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: READAHEAD
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READAHEAD(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: RAW_OFFSET
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAW_OFFSET(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 376
    functionName: RAW_TELL
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RAW_TELL(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - self
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: MINUS_LAST_BLOCK
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINUS_LAST_BLOCK(self, size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:387,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:389,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:392,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:393,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:395,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:399,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:402,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 404
    functionName: buffered_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyThread_free_lock
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyIOBase_finalize
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void buffered_dealloc(buffered *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:411,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:411,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: buffered_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_sizeof(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:420,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - buffered*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 423
    functionName: buffered_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int buffered_traverse(buffered *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:429,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 432
    functionName: buffered_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int buffered_clear(buffered *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:445,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - source
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 450
    functionName: buffered_dealloc_warn
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - PyErr_Clear
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_dealloc_warn(buffered *self, PyObject *source)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:463,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: buffered_simple_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_simple_flush(buffered *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED_INT
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:472,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:473,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:476,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 479
    functionName: buffered_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_IsTrue
    - PyObject_GetAttr
    - CHECK_INITIALIZED_INT
    linkageType: ''
    returnType: int
    signature: int buffered_closed(buffered *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:484,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - buffered*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 486
    functionName: buffered_closed_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_closed_get(buffered *self, void *context)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:494,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:495,1
    - Dst: buffered_closed
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:498,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:503,1
    - Dst: buffered_dealloc_warn
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:510,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:512,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:515,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:516,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:517,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:522,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:524,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:527,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:532,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:533,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:537,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 539
    functionName: buffered_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_CLEAR
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - Py_INCREF
    - PyErr_Fetch
    - _PyErr_ChainExceptions
    - buffered_dealloc_warn
    - buffered_closed
    - PyMem_Free
    - LEAVE_BUFFERED
    - PyErr_Clear
    - ENTER_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_close(buffered *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:547,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 557
    functionName: buffered_detach
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:564,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: buffered_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_seekable(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:571,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 573
    functionName: buffered_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_readable(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:578,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: buffered_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:585,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - buffered*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: buffered_name_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - CHECK_INITIALIZED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_name_get(buffered *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:592,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - buffered*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: buffered_mode_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - CHECK_INITIALIZED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_mode_get(buffered *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:601,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: buffered_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_fileno(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:608,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: buffered_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_isatty(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:641,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:642,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - written
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 647
    functionName: _set_BlockingIOError
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - Py_XDECREF
    - PyErr_Clear
    - PyObject_CallFunction
    linkageType: ''
    returnType: void
    signature: void _set_BlockingIOError(const char *msg, Py_ssize_t written)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:657,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:658,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:659,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 666
    functionName: _buffered_check_blocking_error
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_Restore
    - PyErr_Fetch
    - PyErr_GivenExceptionMatches
    linkageType: ''
    returnType: Py_ssize_t
    signature: 'Py_ssize_t *

      _buffered_check_blocking_error(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:673,1
    - Dst: PyNumber_AsOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:676,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:677,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:679,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: _buffered_raw_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyNumber_AsOff_t
    - PyErr_Format
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t _buffered_raw_tell(buffered *self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:695,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:698,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:700,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:706,1
    - Dst: PyNumber_AsOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:709,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:710,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:712,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:713,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - target
    - whence
    argTypes:
    - buffered*
    - Py_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 720
    functionName: _buffered_raw_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - PyNumber_AsOff_t
    - PyErr_Format
    - PyLong_FromOff_t
    linkageType: ''
    returnType: Py_off_t
    signature: Py_off_t _buffered_raw_seek(buffered *self, Py_off_t target, int whence)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:727,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:732,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:733,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:735,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:739,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:740,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:742,1
    - Dst: _buffered_raw_tell
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:754,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:755,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 757
    functionName: _buffered_init
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - PyErr_NoMemory
    - _buffered_raw_tell
    - PyMem_Free
    - PyErr_SetString
    - PyThread_allocate_lock
    - PyMem_Malloc
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _buffered_init(buffered *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:771,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:772,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:774,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:776,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:777,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:779,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:781,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:782,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:783,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:784,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (eintr_int != NULL)
      pos:
        line_end: 771
        line_start: 771
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    - condition: (env_err != NULL)
      pos:
        line_end: 778
        line_start: 778
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 790
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 790
    functionName: _PyIO_trap_eintr
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyErr_Fetch
    - PyErr_Restore
    - PyErr_NormalizeException
    - PyObject_RichCompareBool
    - PyErr_ExceptionMatches
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _PyIO_trap_eintr(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:804,1
    - Dst: _buffered_raw_seek
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:810,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:810,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 796
    functionDepth: 3
    functionLinenumber: 796
    functionLinenumberEnd: 816
    functionName: buffered_flush_and_rewind_unlocked
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _bufferedwriter_flush_unlocked
    - RAW_OFFSET
    - _bufferedreader_reset_buf
    - _buffered_raw_seek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_flush_and_rewind_unlocked(buffered *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:823,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:824,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:826,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:828,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 818
    functionDepth: 4
    functionLinenumber: 818
    functionLinenumberEnd: 832
    functionName: buffered_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - buffered_flush_and_rewind_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_flush(buffered *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:847,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:848,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:850,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:854,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:857,1
    - Dst: _bufferedreader_peek_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:859,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 864
    functionName: _io__Buffered_peek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - Py_CLEAR
    - _bufferedreader_peek_unlocked
    - ENTER_BUFFERED
    - LEAVE_BUFFERED
    - buffered_flush_and_rewind_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_peek_impl(buffered *self, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:878,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:880,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:885,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:889,1
    - Dst: _bufferedreader_read_all
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:891,1
    - Dst: _bufferedreader_read_fast
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:897,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:898,1
    - Dst: _bufferedreader_read_generic
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:900,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 905
    functionName: _io__Buffered_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _bufferedreader_read_all
    - _bufferedreader_read_fast
    - CHECK_CLOSED
    - Py_DECREF
    - _bufferedreader_read_generic
    - PyErr_SetString
    - LEAVE_BUFFERED
    - ENTER_BUFFERED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read_impl(buffered *self, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:920,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:925,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:928,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:933,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:933,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:935,1
    - Dst: _bufferedreader_read_fast
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:936,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:937,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:940,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:944,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:947,1
    - Dst: _bufferedreader_raw_read
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:948,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:948,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:949,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:951,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:957,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts:
    - condition: (res != Py_None)
      pos:
        line_end: 936
        line_start: 936
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 959
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 959
    functionName: _io__Buffered_read1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - CHECK_INITIALIZED
    - PyBytes_FromStringAndSize
    - CHECK_CLOSED
    - Py_DECREF
    - ENTER_BUFFERED
    - _PyBytes_Resize
    - _bufferedreader_raw_read
    - _bufferedreader_reset_buf
    - PyBytes_AS_STRING
    - LEAVE_BUFFERED
    - assert
    - _bufferedreader_read_fast
    - Py_MIN
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read1_impl(buffered *self, Py_ssize_t n)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:967,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:968,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:970,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:970,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:973,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:975,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:977,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:982,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:986,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:989,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:992,1
    - Dst: _bufferedreader_raw_read
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1001,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1008,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1012,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1025,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1037,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1040,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - self
    - buffer
    - readinto1
    argTypes:
    - buffered*
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 961
    functionDepth: 4
    functionLinenumber: 961
    functionLinenumberEnd: 1042
    functionName: _buffered_readinto_generic
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - CHECK_INITIALIZED
    - memcpy
    - CHECK_CLOSED
    - Py_CLEAR
    - _bufferedreader_fill_buffer
    - Py_INCREF
    - ENTER_BUFFERED
    - buffered_flush_and_rewind_unlocked
    - _bufferedreader_raw_read
    - _bufferedreader_reset_buf
    - LEAVE_BUFFERED
    - PyLong_FromSsize_t
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _buffered_readinto_generic(buffered *self, Py_buffer *buffer, char readinto1)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _buffered_readinto_generic
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1050
    functionDepth: 5
    functionLinenumber: 1050
    functionLinenumberEnd: 1055
    functionName: _io__Buffered_readinto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _buffered_readinto_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto_impl(buffered *self, Py_buffer *buffer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _buffered_readinto_generic
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 5
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    functionName: _io__Buffered_readinto1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _buffered_readinto_generic
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto1_impl(buffered *self, Py_buffer *buffer)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1079,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1084,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1084,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1088,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1090,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1096,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1102,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1106,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1110,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1113,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1114,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1117,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1127,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1131,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1132,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1144,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1151,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1158,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1159,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1162,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1168,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1169,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1172,1
    - Dst: _PyBytes_Join
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1172,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1175,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1177,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 106
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1179
    functionName: _buffered_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - CHECK_CLOSED
    - Py_CLEAR
    - Py_DECREF
    - _bufferedreader_fill_buffer
    - Py_XSETREF
    - LEAVE_BUFFERED
    - memchr
    - buffered_flush_and_rewind_unlocked
    - PyList_Append
    - _bufferedreader_reset_buf
    - PyList_New
    - _PyBytes_Join
    - ENTER_BUFFERED
    - Py_XDECREF
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _buffered_readline(buffered *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1191,1
    - Dst: _buffered_readline
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1187
    functionDepth: 5
    functionLinenumber: 1187
    functionLinenumberEnd: 1193
    functionName: _io__Buffered_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - _buffered_readline
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readline_impl(buffered *self, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1201,1
    - Dst: _buffered_raw_tell
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1202,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1205,1
    - Dst: PyLong_FromOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1196
    functionDepth: 3
    functionLinenumber: 1196
    functionLinenumberEnd: 1208
    functionName: buffered_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - RAW_OFFSET
    - _buffered_raw_tell
    - PyLong_FromOff_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_tell(buffered *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1224,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1237,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1242,1
    - Dst: _PyIOBase_check_seekable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1244,1
    - Dst: PyNumber_AsOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1247,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1248,1
    - Dst: RAW_TELL
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1263,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1264,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1268,1
    - Dst: PyLong_FromOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1273,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1278,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1283,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1286,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1291,1
    - Dst: _buffered_raw_seek
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1292,1
    - Dst: PyLong_FromOff_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1296,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1298,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1301,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 47
    argCount: 3
    argNames:
    - self
    - targetobj
    - whence
    argTypes:
    - buffered*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1217
    functionDepth: 3
    functionLinenumber: 1217
    functionLinenumberEnd: 1303
    functionName: _io__Buffered_seek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - RAW_TELL
    - CHECK_CLOSED
    - PyErr_Occurred
    - Py_CLEAR
    - _bufferedwriter_flush_unlocked
    - LEAVE_BUFFERED
    - RAW_OFFSET
    - PyNumber_AsOff_t
    - _PyIOBase_check_seekable
    - PyErr_Format
    - _bufferedreader_reset_buf
    - _buffered_raw_seek
    - ENTER_BUFFERED
    - PyLong_FromOff_t
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seek_impl(buffered *self, PyObject *targetobj, int whence)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1317,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1318,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1322,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1325,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1327,1
    - Dst: _buffered_raw_tell
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1331,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1332,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1311
    functionDepth: 4
    functionLinenumber: 1311
    functionLinenumberEnd: 1337
    functionName: _io__Buffered_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    - ENTER_BUFFERED
    - _buffered_raw_tell
    - LEAVE_BUFFERED
    - PyErr_Clear
    - buffered_flush_and_rewind_unlocked
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_truncate_impl(buffered *self, PyObject *pos)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1345,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1347,1
    - Dst: _buffered_readline
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1351,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1354,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1356,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1357,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1359,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1360,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1368,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1339
    functionDepth: 5
    functionLinenumber: 1339
    functionLinenumberEnd: 1375
    functionName: buffered_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - _buffered_readline
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_iternext(buffered *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1382,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1383,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1387,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1390,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1390,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1393,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1396,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1397,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1398,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1401,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1403,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1408
    functionName: buffered_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_ReprLeave
    - Py_DECREF
    - _PyObject_LookupAttrId
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyErr_Format
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffered_repr(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1417
    functionName: _bufferedreader_reset_buf
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _bufferedreader_reset_buf(buffered *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_check_readable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1435,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1438,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1439,1
    - Dst: _buffered_init
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1444,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1446,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1448,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - raw
    - buffer_size
    argTypes:
    - buffered*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1427
    functionDepth: 4
    functionLinenumber: 1427
    functionLinenumberEnd: 1453
    functionName: _io_BufferedReader___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - _buffered_init
    - _PyIOBase_check_readable
    - Py_TYPE
    - _bufferedreader_reset_buf
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedReader___init___impl(buffered *self, PyObject *raw,\n
      \                                Py_ssize_t buffer_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1462,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1464,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1473,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1480,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1484,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1486,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1494
    functionName: _bufferedreader_raw_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - PyBuffer_FillInfo
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyErr_Format
    - PyMemoryView_FromBuffer
    - PyNumber_AsSsize_t
    - _PyIO_trap_eintr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _bufferedreader_raw_read(buffered *self, char *start, Py_ssize_t
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VALID_READ_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1500,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1501,1
    - Dst: _bufferedreader_raw_read
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1496
    functionDepth: 3
    functionLinenumber: 1496
    functionLinenumberEnd: 1511
    functionName: _bufferedreader_fill_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - Py_SAFE_DOWNCAST
    - VALID_READ_BUFFER
    - _bufferedreader_raw_read
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _bufferedreader_fill_buffer(buffered *self)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1520,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1520,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1522,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1530,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1533,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1535,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1537,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1542,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1545,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1546,1
    - Dst: PyBytes_Concat
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1553,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1560,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1566,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1568,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1572,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1575,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1576,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1579,1
    - Dst: _PyBytes_Join
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1585,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1590,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1592,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1596,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1597,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1598,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1599,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1513
    functionDepth: 4
    functionLinenumber: 1513
    functionLinenumberEnd: 1601
    functionName: _bufferedreader_read_all
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - PyList_New
    - PyBytes_Concat
    - buffered_flush_and_rewind_unlocked
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - _bufferedreader_reset_buf
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyBytes_GET_SIZE
    - _PyObject_LookupAttr
    - _PyObject_CallNoArg
    - PyBytes_Check
    - PyList_Append
    - PyErr_SetString
    - _PyBytes_Join
    - Py_XINCREF
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_all(buffered *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1610,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1610,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1619
    functionName: _bufferedreader_read_fast
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_fast(buffered *self, Py_ssize_t n)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1631,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1631,1
    - Dst: _bufferedreader_read_fast
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1633,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1635,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1638,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1642,1
    - Dst: buffered_flush_and_rewind_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1649,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1652,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1654,1
    - Dst: MINUS_LAST_BLOCK
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1658,1
    - Dst: _bufferedreader_raw_read
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1661,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1671,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1677,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1685,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1691,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1695,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1699,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1705,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1717,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 82
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - buffered*
    - Py_ssize_t
    assertStmts:
    - condition: (remaining <= self->buffer_size)
      pos:
        line_end: 1676
        line_start: 1676
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 1719
      start: 1624
    functionDepth: 4
    functionLinenumber: 1624
    functionLinenumberEnd: 1719
    functionName: _bufferedreader_read_generic
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - MINUS_LAST_BLOCK
    - _bufferedreader_fill_buffer
    - buffered_flush_and_rewind_unlocked
    - _PyBytes_Resize
    - _bufferedreader_raw_read
    - _bufferedreader_reset_buf
    - PyBytes_AS_STRING
    - assert
    - _bufferedreader_read_fast
    - Py_XDECREF
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_read_generic(buffered *self, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1726,1
    - Dst: READAHEAD
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1726,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1734,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1738,1
    - Dst: _bufferedreader_fill_buffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1739,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1721
    functionDepth: 4
    functionLinenumber: 1721
    functionLinenumberEnd: 1746
    functionName: _bufferedreader_peek_unlocked
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - _bufferedreader_fill_buffer
    - _bufferedreader_reset_buf
    - READAHEAD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedreader_peek_unlocked(buffered *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1758
    functionName: _bufferedwriter_reset_buf
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _bufferedwriter_reset_buf(buffered *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_check_writable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1780,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1783,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1784,1
    - Dst: _buffered_init
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1789,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1791,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1794,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - self
    - raw
    - buffer_size
    argTypes:
    - buffered*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1772
    functionDepth: 4
    functionLinenumber: 1772
    functionLinenumberEnd: 1799
    functionName: _io_BufferedWriter___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIOBase_check_writable
    - Py_INCREF
    - Py_XSETREF
    - _buffered_init
    - Py_TYPE
    - _bufferedwriter_reset_buf
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedWriter___init___impl(buffered *self, PyObject *raw,\n
      \                                Py_ssize_t buffer_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1809,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1811,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1821,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1824,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1831,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1835,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1836,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1838,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - start
    - len
    argTypes:
    - buffered*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1801
    functionDepth: 2
    functionLinenumber: 1801
    functionLinenumberEnd: 1846
    functionName: _bufferedwriter_raw_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyErr_Format
    - PyMemoryView_FromBuffer
    - PyNumber_AsSsize_t
    - _PyIO_trap_eintr
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _bufferedwriter_raw_write(buffered *self, char *start, Py_ssize_t
      len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VALID_WRITE_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1854,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1857,1
    - Dst: _buffered_raw_seek
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1859,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1866,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1868,1
    - Dst: _set_BlockingIOError
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1874,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1880,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1884,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1899,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - self
    argTypes:
    - buffered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1904
    functionName: _bufferedwriter_flush_unlocked
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 2
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyErr_CheckSignals
    - VALID_WRITE_BUFFER
    - RAW_OFFSET
    - _bufferedwriter_raw_write
    - _bufferedwriter_reset_buf
    - _buffered_raw_seek
    - _set_BlockingIOError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bufferedwriter_flush_unlocked(buffered *self)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1920,1
    - Dst: ENTER_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1922,1
    - Dst: IS_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1927,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1928,1
    - Dst: VALID_READ_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1933,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1933,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1937,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1939,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1940,1
    - Dst: ADJUST_POSITION
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1943,1
    - Dst: _bufferedwriter_flush_unlocked
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1951,1
    - Dst: _buffered_check_blocking_error
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1953,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1957,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1959,1
    - Dst: VALID_WRITE_BUFFER
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1959,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1960,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1961,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1967,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1971,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1972,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1979,1
    - Dst: _set_BlockingIOError
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1985,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1989,1
    - Dst: RAW_OFFSET
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1997,1
    - Dst: _buffered_raw_seek
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:1999,1
    - Dst: _bufferedwriter_raw_write
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2008,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2016,1
    - Dst: ADJUST_POSITION
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2019,1
    - Dst: _set_BlockingIOError
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2022,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2026,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2034,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2038,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2040,1
    - Dst: ADJUST_POSITION
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2046,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2050,1
    - Dst: LEAVE_BUFFERED
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2053,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 108
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - buffered*
    - Py_buffer*
    assertStmts:
    - condition: (VALID_WRITE_BUFFER(self))
      pos:
        line_end: 1958
        line_start: 1958
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    constantsTouched: []
    func_position:
      end: 2055
      start: 1912
    functionDepth: 4
    functionLinenumber: 1912
    functionLinenumberEnd: 2055
    functionName: _io_BufferedWriter_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - RAW_OFFSET
    - ADJUST_POSITION
    - VALID_READ_BUFFER
    - _buffered_raw_seek
    - LEAVE_BUFFERED
    - _set_BlockingIOError
    - ENTER_BUFFERED
    - Py_SAFE_DOWNCAST
    - CHECK_INITIALIZED
    - PyErr_CheckSignals
    - _bufferedwriter_raw_write
    - _bufferedreader_reset_buf
    - memmove
    - assert
    - PyErr_Clear
    - VALID_WRITE_BUFFER
    - _buffered_check_blocking_error
    - memcpy
    - _bufferedwriter_flush_unlocked
    - PyErr_SetString
    - PyLong_FromSsize_t
    - IS_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BufferedWriter_write_impl(buffered *self, Py_buffer *buffer)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_check_readable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2098,1
    - Dst: _PyIOBase_check_writable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2100,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2103,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2108,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - reader
    - writer
    - buffer_size
    argTypes:
    - rwpair*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2093
    functionDepth: 1
    functionLinenumber: 2093
    functionLinenumberEnd: 2116
    functionName: _io_BufferedRWPair___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIOBase_check_readable
    - PyObject_CallFunction
    - _PyIOBase_check_writable
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedRWPair___init___impl(rwpair *self, PyObject *reader,\n
      \                                PyObject *writer, Py_ssize_t buffer_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - rwpair*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2123
    functionName: bufferedrwpair_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bufferedrwpair_traverse(rwpair *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2128,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2129,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - rwpair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2132
    functionName: bufferedrwpair_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int bufferedrwpair_clear(rwpair *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2137,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2139,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2140,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2141,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2142,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - rwpair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2144
    functionName: bufferedrwpair_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bufferedrwpair_dealloc(rwpair *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2151,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2158,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - name
    - args
    argTypes:
    - buffered*
    - _Py_Identifier*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2165
    functionName: _forward_call
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - PyObject_CallObject
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _forward_call(buffered *self, _Py_Identifier *name, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2171
    functionName: bufferedrwpair_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_read(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2173
    functionDepth: 2
    functionLinenumber: 2173
    functionLinenumberEnd: 2177
    functionName: bufferedrwpair_peek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_peek(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2179
    functionDepth: 2
    functionLinenumber: 2179
    functionLinenumberEnd: 2183
    functionName: bufferedrwpair_read1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_read1(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2185
    functionDepth: 2
    functionLinenumber: 2185
    functionLinenumberEnd: 2189
    functionName: bufferedrwpair_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readinto(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2191
    functionDepth: 2
    functionLinenumber: 2191
    functionLinenumberEnd: 2195
    functionName: bufferedrwpair_readinto1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readinto1(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2197
    functionDepth: 2
    functionLinenumber: 2197
    functionLinenumberEnd: 2201
    functionName: bufferedrwpair_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_write(rwpair *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2207
    functionName: bufferedrwpair_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_flush(rwpair *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2209
    functionDepth: 2
    functionLinenumber: 2209
    functionLinenumberEnd: 2213
    functionName: bufferedrwpair_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_readable(rwpair *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2215
    functionDepth: 2
    functionLinenumber: 2215
    functionLinenumberEnd: 2219
    functionName: bufferedrwpair_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_writable(rwpair *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2225,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2229,1
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2230,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2232,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2221
    functionDepth: 2
    functionLinenumber: 2221
    functionLinenumberEnd: 2236
    functionName: bufferedrwpair_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - _PyErr_ChainExceptions
    - PyErr_Fetch
    - _forward_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_close(rwpair *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2247,1
    - Dst: _forward_call
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - rwpair*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2238
    functionDepth: 2
    functionLinenumber: 2238
    functionLinenumberEnd: 2250
    functionName: bufferedrwpair_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _forward_call
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_isatty(rwpair *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2256,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - rwpair*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2252
    functionDepth: 1
    functionLinenumber: 2252
    functionLinenumberEnd: 2261
    functionName: bufferedrwpair_closed_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bufferedrwpair_closed_get(rwpair *self, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_check_seekable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2289,1
    - Dst: _PyIOBase_check_readable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2291,1
    - Dst: _PyIOBase_check_writable
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2293,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2296,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2297,1
    - Dst: _buffered_init
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2302,1
    - Dst: _bufferedreader_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2304,1
    - Dst: _bufferedwriter_reset_buf
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2305,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2308,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bufferedio.c:2309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - raw
    - buffer_size
    argTypes:
    - buffered*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2281
    functionDepth: 4
    functionLinenumber: 2281
    functionLinenumberEnd: 2313
    functionName: _io_BufferedRandom___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bufferedio.c
    functionUses: 0
    functionsReached:
    - _PyIOBase_check_writable
    - Py_INCREF
    - Py_XSETREF
    - _buffered_init
    - _PyIOBase_check_seekable
    - _PyIOBase_check_readable
    - Py_TYPE
    - _bufferedreader_reset_buf
    - _bufferedwriter_reset_buf
    linkageType: ''
    returnType: int
    signature: "int _io_BufferedRandom___init___impl(buffered *self, PyObject *raw,\n
      \                                Py_ssize_t buffer_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:79,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: iobase_unsupported
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 4
    functionsReached:
    - IO_STATE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_unsupported(const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: iobase_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_seek(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:116,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: _io__IOBase_tell_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_tell_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: iobase_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_truncate(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:140,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: iobase_is_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupAttrId
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int iobase_is_closed(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:160,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: _io__IOBase_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_is_closed
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_flush_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:174,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 179
    functionName: iobase_closed_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - iobase_is_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_closed_get(PyObject *self, void *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:188,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:191,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 198
    functionName: iobase_check_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_IsTrue
    - _PyObject_LookupAttr
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int iobase_check_closed(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: _PyIOBase_check_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_closed(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: iobase_is_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:229,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:238,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:240,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:241,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:242,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 252
    functionName: _io__IOBase_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - _PyErr_ChainExceptions
    - iobase_is_closed
    - PyErr_Fetch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_close_impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:262,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:265,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:269,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:270,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:275,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:277,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:282,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:283,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:284,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:291,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:293,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:296,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:299,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:303,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 309
    functionName: iobase_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - PyErr_Fetch
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_Restore
    - _Py_IDENTIFIER
    - PyErr_WriteUnraisable
    - _PyObject_LookupAttr
    - PyObject_IsTrue
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void iobase_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:318,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:320,1
    - Dst: PyObject_CallFinalizer
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: _PyIOBase_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 3
    functionsReached:
    - Py_REFCNT
    - PyObject_CallFinalizerFromDealloc
    - PyObject_CallFinalizer
    linkageType: ''
    returnType: int
    signature: int _PyIOBase_finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - iobase*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: iobase_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iobase_traverse(iobase *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - iobase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 339
    functionName: iobase_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int iobase_clear(iobase *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:351,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:354,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:354,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:355,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:355,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:358,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:360,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:361,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - iobase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 363
    functionName: iobase_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_INCREF
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyIOBase_finalize
    - Py_TYPE
    - PyType_HasFeature
    linkageType: ''
    returnType: void
    signature: void iobase_dealloc(iobase *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: _io__IOBase_seekable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_seekable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:386,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:390,1
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:391,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: _PyIOBase_check_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - iobase_unsupported
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_seekable(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: _io__IOBase_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:419,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:423,1
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:424,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 431
    functionName: _PyIOBase_check_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - iobase_unsupported
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_readable(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: _io__IOBase_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_writable_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:452,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:456,1
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 464
    functionName: _PyIOBase_check_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - iobase_unsupported
    - Py_CLEAR
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyIOBase_check_writable(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:471,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: iobase_enter
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_enter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: iobase_exit
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_exit(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iobase_unsupported
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 501
    functionName: _io__IOBase_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_fileno_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: _io__IOBase_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_isatty_impl(PyObject *self)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:545,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:549,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:551,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:555,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:560,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:564,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:569,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:570,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:572,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:573,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:576,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:578,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:581,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:589,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:597,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:600,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:604,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:609,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:610,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:613,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:617,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:621,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:622,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:623,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:626,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:626,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:627,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:629,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:631,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:631,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:635,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:635,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:636,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:637,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:638,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:642,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 82
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 644
    functionName: _io__IOBase_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - PyByteArray_GET_SIZE
    - _PyObject_LookupAttr
    - PyErr_Format
    - Py_TYPE
    - PyByteArray_FromStringAndSize
    - PyBytes_AS_STRING
    - PyByteArray_Resize
    - Py_XDECREF
    - _PyIO_trap_eintr
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readline_impl(PyObject *self, Py_ssize_t limit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:649,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 654
    functionName: iobase_iter
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - iobase_check_closed
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iter(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:659,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:664,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 671
    functionName: iobase_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_Size
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iobase_iternext(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:692,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:700,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:701,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:707,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:711,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:718,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:720,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:727,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:728,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:731,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:732,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:741,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:745,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - self
    - hint
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 748
    functionName: _io__IOBase_readlines_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyList_Append
    - PyIter_Next
    - PyList_New
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readlines_impl(PyObject *self, Py_ssize_t hint)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: iobase_check_closed
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:767,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:770,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:775,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:777,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:778,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:787,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:788,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:791,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:794,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:796,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 798
    functionName: _io__IOBase_writelines
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - iobase_check_closed
    - PyIter_Next
    - PyObject_GetIter
    - _PyIO_trap_eintr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_writelines(PyObject *self, PyObject *lines)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:922,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:924,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:929,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:933,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:935,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:940,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:941,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:942,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:946,1
    - Dst: PyByteArray_AsString
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:947,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 949
    functionName: _io__RawIOBase_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AsString
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyByteArray_FromStringAndSize
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:963,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:970,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:975,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:978,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:986,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:989,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:992,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:995,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:997,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1001,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1003,1
    - Dst: _PyBytes_Join
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1007,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1008,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1010
    functionName: _io__RawIOBase_readall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyBytes_Join
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyList_Append
    - PyErr_SetString
    - PyList_New
    - PyList_GET_SIZE
    - _PyIO_trap_eintr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_readall_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: rawiobase_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rawiobase_readinto(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_io/iobase.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1024
    functionName: rawiobase_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/iobase.c
    functionUses: 0
    functionsReached:
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rawiobase_write(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:56,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: _unsupported
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 10
    functionsReached:
    - IO_STATE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _unsupported(const char *message)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: textiobase_detach
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: textiobase_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_read(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: textiobase_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_readline(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: textiobase_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _unsupported
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_write(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: textiobase_encoding_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_encoding_get(PyObject *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: textiobase_newlines_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_newlines_get(PyObject *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: textiobase_errors_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiobase_errors_get(PyObject *self, void *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:252,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:255,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - self
    - decoder
    - translate
    - errors
    argTypes:
    - nldecoder_object*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: _io_IncrementalNewlineDecoder___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: "int _io_IncrementalNewlineDecoder___init___impl(nldecoder_object *self,\n
      \                                           PyObject *decoder, int translate,\n
      \                                           PyObject *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:274,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:275,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: incrementalnewlinedecoder_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void incrementalnewlinedecoder_dealloc(nldecoder_object *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:284,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:285,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:288,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/textio.c:291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - decoded
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: check_decoded
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int check_decoded(PyObject *decoded)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:312,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:319,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:324,1
    - Dst: check_decoded
      Src: /src/Python-3.8.3/Modules/_io/textio.c:327,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:330,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_io/textio.c:337,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:338,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:341,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:342,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:343,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:343,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:344,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:344,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:345,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:356,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_io/textio.c:358,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:361,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:376,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:377,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:378,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:387,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:395,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:403,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:405,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:426,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:428,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:432,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:449,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:450,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/textio.c:458,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_io/textio.c:460,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:467,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:468,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:470,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:475,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:481,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:488,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_io/textio.c:489,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/textio.c:490,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:500,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 131
    argCount: 3
    argNames:
    - myself
    - input
    - final
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 502
    functionName: _PyIncrementalNewlineDecoder_decode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - PyUnicode_KIND
    - Py_INCREF
    - PyUnicode_Substring
    - check_decoded
    - PyUnicode_DATA
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - memchr
    - PyMem_Free
    - PyUnicode_FromKindAndData
    - memcpy
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyIncrementalNewlineDecoder_decode(PyObject *myself,\n
      \                                   PyObject *input, int final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - nldecoder_object*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 516
    functionName: _io_IncrementalNewlineDecoder_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyIncrementalNewlineDecoder_decode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io_IncrementalNewlineDecoder_decode_impl(nldecoder_object
      *self,\n                                          PyObject *input, int final)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:530,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:537,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_io/textio.c:540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:543,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:546,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:547,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:550,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 557
    functionName: _io_IncrementalNewlineDecoder_getstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - Py_INCREF
    - PyTuple_Check
    - PyBytes_FromString
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:574,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_io/textio.c:577,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - nldecoder_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 591
    functionName: _io_IncrementalNewlineDecoder_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - _PyObject_CallMethodId
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io_IncrementalNewlineDecoder_setstate(nldecoder_object
      *self,\n                                       PyObject *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - nldecoder_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 607
    functionName: _io_IncrementalNewlineDecoder_reset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:614,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:616,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:618,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:620,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:622,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:624,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - nldecoder_object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 631
    functionName: incrementalnewlinedecoder_newlines_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      incrementalnewlinedecoder_newlines_get(nldecoder_object *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:706,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: ascii_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_AsASCIIString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_io/textio.c:712,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: utf16be_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16be_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_io/textio.c:719,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 721
    functionName: utf16le_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16le_encode(textio *self, PyObject *text)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf16be_encode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:729,1
    - Dst: utf16le_encode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:731,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Modules/_io/textio.c:734,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 736
    functionName: utf16_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - utf16be_encode
    - _PyUnicode_EncodeUTF16
    - utf16le_encode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf16_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_io/textio.c:741,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: utf32be_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32be_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_io/textio.c:748,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 750
    functionName: utf32le_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32le_encode(textio *self, PyObject *text)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utf32be_encode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:758,1
    - Dst: utf32le_encode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:760,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Modules/_io/textio.c:763,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 765
    functionName: utf32_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - utf32le_encode
    - utf32be_encode
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf32_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_io/textio.c:770,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 771
    functionName: utf8_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_AsUTF8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      utf8_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Modules/_io/textio.c:776,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: latin1_encode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyUnicode_AsLatin1String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      latin1_encode(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - encodefunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: is_asciicompat_encoding
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_asciicompat_encoding(encodefunc_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:815,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - newline
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 820
    functionName: validate_newline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_newline(const char *newline)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:830,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:841,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:841,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:842,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_io/textio.c:843,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - self
    - newline
    argTypes:
    - textio*
    - char*
    assertStmts:
    - condition: (PyUnicode_KIND(self->readnl) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 840
        line_start: 840
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 856
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 856
    functionName: set_newline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - assert
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - strcmp
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int set_newline(textio *self, const char *newline)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:865,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:869,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:870,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:877,1
    - Dst: _PyCodecInfo_GetIncrementalDecoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:878,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/textio.c:883,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 893
    functionName: _textiowrapper_set_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyCodecInfo_GetIncrementalDecoder
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyObject_CallFunction
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: "int _textiowrapper_set_decoder(textio *self, PyObject *codec_info,\n
      \                          const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:900,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:901,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:903,1
    - Dst: check_decoded
      Src: /src/Python-3.8.3/Modules/_io/textio.c:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - decoder
    - bytes
    - eof
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 911
    functionName: _textiowrapper_decode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyIncrementalNewlineDecoder_decode
    - Py_TYPE
    - PyObject_CallMethodObjArgs
    - check_decoded
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _textiowrapper_decode(PyObject *decoder, PyObject *bytes, int eof)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:920,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:924,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:925,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:932,1
    - Dst: _PyCodecInfo_GetIncrementalEncoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:934,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:939,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:942,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:952,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - codec_info
    - errors
    argTypes:
    - textio*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 955
    functionName: _textiowrapper_set_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _PyObject_CallMethodId
    - _PyCodecInfo_GetIncrementalEncoder
    - PyUnicode_Check
    - PyObject_IsTrue
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _textiowrapper_set_encoder(textio *self, PyObject *codec_info,\n
      \                          const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:966,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:972,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:973,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:980,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 989
    functionName: _textiowrapper_fix_encoder_state
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_fix_encoder_state(textio *self)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1046,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1051,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1054,1
    - Dst: validate_newline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1061,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1065,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1066,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1067,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1068,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1069,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1070,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1071,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1072,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1073,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1074,1
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1083,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1086,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1089,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1090,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1091,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1098,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1099,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1100,1
    - Dst: _Py_device_encoding
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1104,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1107,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1108,1
    - Dst: _PyIO_get_locale_module
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1112,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1115,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1117,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1126,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1127,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1128,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1133,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1134,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1137,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1147,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1153,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1155,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1163,1
    - Dst: set_newline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1168,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1173,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1176,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1176,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1180,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1180,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1184,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1186,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1187,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1188,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1190,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1197,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1201,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1205,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1214,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1218,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1226,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 154
    argCount: 7
    argNames:
    - self
    - buffer
    - encoding
    - errors
    - newline
    - line_buffering
    - write_through
    argTypes:
    - textio*
    - PyObject*
    - char*
    - PyObject*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1228
    functionName: _io_TextIOWrapper___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _textiowrapper_set_decoder
    - _PyUnicode_FromId
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - _textiowrapper_fix_encoder_state
    - _PyIO_get_locale_module
    - PyErr_Occurred
    - Py_INCREF
    - _PyCodec_LookupTextEncoding
    - _textiowrapper_set_encoder
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    - PyUnicode_FromString
    - Py_DECREF
    - IO_STATE
    - _PyObject_CallMethodIdObjArgs
    - Py_TYPE
    - _PyObject_LookupAttr
    - set_newline
    - _PyObject_CallMethodId
    - validate_newline
    - _Py_device_encoding
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: "int _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,\n
      \                               const char *encoding, PyObject *errors,\n                                const
      char *newline, int line_buffering,\n                                int write_through)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1241,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - obj
    - default_value
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1246
    functionName: convert_optional_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int convert_optional_bool(PyObject *obj, int default_value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1264,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1270,1
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1276,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1277,1
    - Dst: _textiowrapper_set_decoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1281,1
    - Dst: _textiowrapper_set_encoder
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1286,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1288,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1289,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1290,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1291,1
    - Dst: _textiowrapper_fix_encoder_state
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1293,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - self
    - encoding
    - errors
    - newline_changed
    argTypes:
    - textio*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1294
    functionName: textiowrapper_change_encoding
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _textiowrapper_set_decoder
    - Py_DECREF
    - _PyUnicode_FromId
    - Py_INCREF
    - PyUnicode_AsUTF8
    - _PyCodec_LookupTextEncoding
    - _textiowrapper_set_encoder
    - _textiowrapper_fix_encoder_state
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: "int textiowrapper_change_encoding(textio *self, PyObject *encoding,\n
      \                             PyObject *errors, int newline_changed)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1325,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1332,1
    - Dst: validate_newline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1333,1
    - Dst: convert_optional_bool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1338,1
    - Dst: convert_optional_bool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1340,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1350,1
    - Dst: set_newline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1353,1
    - Dst: textiowrapper_change_encoding
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 6
    argNames:
    - self
    - encoding
    - errors
    - newline_obj
    - line_buffering_obj
    - write_through_obj
    argTypes:
    - textio*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1311
    functionDepth: 3
    functionLinenumber: 1311
    functionLinenumberEnd: 1365
    functionName: _io_TextIOWrapper_reconfigure_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - PyUnicode_AsUTF8
    - validate_newline
    - textiowrapper_change_encoding
    - _unsupported
    - convert_optional_bool
    - set_newline
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_io_TextIOWrapper_reconfigure_impl(textio *self, PyObject
      *encoding,\n                                   PyObject *errors, PyObject *newline_obj,\n
      \                                  PyObject *line_buffering_obj,\n                                   PyObject
      *write_through_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1371,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1372,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1373,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1374,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1375,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1376,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1377,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1378,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1379,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1380,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1384
    functionName: textiowrapper_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int textiowrapper_clear(textio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1390,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1393,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1395,1
    - Dst: textiowrapper_clear
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1396,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1398
    functionName: textiowrapper_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyIOBase_finalize
    - Py_TYPE
    - textiowrapper_clear
    linkageType: ''
    returnType: void
    signature: void textiowrapper_dealloc(textio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1403,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1404,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1405,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1406,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1407,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1408,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1409,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1410,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1411,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1412,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - textio*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1416
    functionName: textiowrapper_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int textiowrapper_traverse(textio *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1447
    functionName: CHECK_CLOSED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CLOSED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1454
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INITIALIZED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1462
    functionName: CHECK_ATTACHED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ATTACHED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1473
    functionName: CHECK_ATTACHED_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_ATTACHED_INT(self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1484,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1493
    functionName: _io_TextIOWrapper_detach_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_detach_impl(textio *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1506,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1508,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1510,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1511,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1511,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1512,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1512,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1513,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1514,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1514,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1520,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1520,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1521,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1526,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1529,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1530,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1533,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1534,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1534,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1535,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1536,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1539,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1539,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1541,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1545,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1553,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1557,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1559,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1560,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1563,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(obj))
      pos:
        line_end: 1533
        line_start: 1533
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (PyUnicode_IS_ASCII(pending))
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (PyList_Check(pending))
      pos:
        line_end: 1519
        line_start: 1519
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (pos == self->pending_bytes_count)
      pos:
        line_end: 1547
        line_start: 1547
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (PyBytes_Check(obj))
      pos:
        line_end: 1538
        line_start: 1538
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (PyUnicode_GET_LENGTH(pending) == self->pending_bytes_count)
      pos:
        line_end: 1511
        line_start: 1511
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1565
      start: 1497
    functionDepth: 2
    functionLinenumber: 1497
    functionLinenumberEnd: 1565
    functionName: _textiowrapper_writeflush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - Py_INCREF
    - PyUnicode_DATA
    - PyList_Check
    - PyBytes_AsString
    - PyList_GET_ITEM
    - PyBytes_Check
    - PyList_GET_SIZE
    - PyUnicode_IS_ASCII
    - PyBytes_AsStringAndSize
    - PyUnicode_Check
    - assert
    - PyUnicode_GET_LENGTH
    - _PyIO_trap_eintr
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_writeflush(textio *self)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1583,1
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1586,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1587,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1590,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1592,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1594,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1597,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1597,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1601,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1603,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1613,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1613,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1618,1
    - Dst: is_asciicompat_encoding
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1618,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1620,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1631,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1634,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1635,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1637,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1638,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1644,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1647,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1654,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1657,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1660,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1661,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1665,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1669,1
    - Dst: _textiowrapper_writeflush
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1675,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1680,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1683,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1686,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1687,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1690,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1693,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1696,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 84
    argCount: 2
    argNames:
    - self
    - text
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1697
    functionName: _io_TextIOWrapper_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_CLEAR
    - PyList_New
    - Py_INCREF
    - PyList_SET_ITEM
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - CHECK_CLOSED
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - _textiowrapper_writeflush
    - PyUnicode_FindChar
    - is_asciicompat_encoding
    - textiowrapper_set_decoded_chars
    - PyBytes_GET_SIZE
    - Py_TYPE
    - _unsupported
    - PyList_CheckExact
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyList_Append
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_write_impl(textio *self, PyObject *text)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1706
    functionName: textiowrapper_set_decoded_chars
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 1
    functionsReached:
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void textiowrapper_set_decoded_chars(textio *self, PyObject *chars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1715,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1718,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1721,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1727,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1735,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1740
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1740
    functionName: textiowrapper_get_decoded_chars
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - PyUnicode_Substring
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_get_decoded_chars(textio *self, Py_ssize_t n)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1762,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1771,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1778,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1781,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1784,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1787,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1791,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1792,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1795,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1796,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1799,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1801,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1806,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1808,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1808,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1812,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1815,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1820,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1823,1
    - Dst: _textiowrapper_decode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1830,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1831,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1835,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1836,1
    - Dst: PyBytes_Concat
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1849,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1854,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1859,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1861,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1866,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1867,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1868,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 2
    argNames:
    - self
    - size_hint
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1744
    functionDepth: 4
    functionLinenumber: 1744
    functionLinenumberEnd: 1870
    functionName: textiowrapper_read_chunk
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyBytes_Concat
    - Py_INCREF
    - Py_MAX
    - PyTuple_Check
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    - Py_XDECREF
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - _textiowrapper_decode
    - textiowrapper_set_decoded_chars
    - Py_TYPE
    - _unsupported
    - Py_BuildValue
    - PyBytes_Check
    - PyLong_FromSsize_t
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: int textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1884,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1885,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1888,1
    - Dst: _textiowrapper_writeflush
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1890,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1895,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1900,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1901,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1906,1
    - Dst: check_decoded
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1907,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1913,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1917,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1921,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1922,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1929,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1932,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1934,1
    - Dst: textiowrapper_read_chunk
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1938,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1942,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1950,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1954,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1955,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1957,1
    - Dst: textiowrapper_get_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1958,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1961,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1964,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1966,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1966,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1969,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1974,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1975,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 83
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1878
    functionDepth: 5
    functionLinenumber: 1878
    functionLinenumberEnd: 1977
    functionName: _io_TextIOWrapper_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyUnicode_READY
    - Py_XSETREF
    - _PyIncrementalNewlineDecoder_decode
    - PyList_New
    - _PyIO_trap_eintr
    - textiowrapper_read_chunk
    - check_decoded
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - CHECK_CLOSED
    - _textiowrapper_writeflush
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - textiowrapper_set_decoded_chars
    - textiowrapper_get_decoded_chars
    - Py_TYPE
    - _unsupported
    - CHECK_ATTACHED
    - PyUnicode_Join
    - PyUnicode_AppendAndDel
    - _PyObject_CallMethodId
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1987,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1988,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1991,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:1993,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - kind
    - s
    - end
    - ch
    argTypes:
    - int
    - char*
    - char*
    - Py_UCS4
    assertStmts:
    - condition: (ch < 256)
      pos:
        line_end: 1986
        line_start: 1986
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 1999
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 1999
    functionName: find_control_char
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - assert
    - memchr
    - PyUnicode_READ
    linkageType: ''
    returnType: char
    signature: 'char *

      find_control_char(int kind, const char *s, const char *end, Py_UCS4 ch)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: find_control_char
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2010,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2027,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2033,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2038,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2047,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2048,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2050,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2050,1
    - Dst: find_control_char
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2052,1
    - Dst: find_control_char
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2066,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2070,1
    - Dst: find_control_char
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2077,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 7
    argNames:
    - translated
    - universal
    - readnl
    - kind
    - start
    - end
    - consumed
    argTypes:
    - int
    - int
    - PyObject*
    - int
    - char*
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (PyUnicode_KIND(readnl) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2049
        line_start: 2049
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2085
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2085
    functionName: _PyIO_find_line_ending
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - PyUnicode_KIND
    - PyUnicode_1BYTE_DATA
    - assert
    - find_control_char
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _PyIO_find_line_ending(\n    int translated, int universal,
      PyObject *readnl,\n    int kind, const char *start, const char *end, Py_ssize_t
      *consumed)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2094,1
    - Dst: _textiowrapper_writeflush
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2110,1
    - Dst: textiowrapper_read_chunk
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2111,1
    - Dst: _PyIO_trap_eintr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2115,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2125,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2126,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2135,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2138,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2139,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2141,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2142,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2145,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2149,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2150,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2151,1
    - Dst: _PyIO_find_line_ending
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2153,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2178,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2182,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2185,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2186,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2190,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2195,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2199,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2201,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2207,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2208,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2209,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2217,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2221,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2223,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2229,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2231,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2234,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2237,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2244,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2245,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2246,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 132
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->decoded_chars_used == 0)
      pos:
        line_end: 2137
        line_start: 2137
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2248
      start: 2087
    functionDepth: 5
    functionLinenumber: 2087
    functionLinenumberEnd: 2248
    functionName: _textiowrapper_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Concat
    - Py_CLEAR
    - PyUnicode_READY
    - PyList_New
    - PyUnicode_KIND
    - _PyIO_trap_eintr
    - Py_INCREF
    - _PyIO_find_line_ending
    - PyUnicode_Substring
    - textiowrapper_read_chunk
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - CHECK_CLOSED
    - _textiowrapper_writeflush
    - Py_DECREF
    - textiowrapper_set_decoded_chars
    - PyUnicode_Join
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _textiowrapper_readline(textio *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2260,1
    - Dst: _textiowrapper_readline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - textio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2256
    functionDepth: 6
    functionLinenumber: 2256
    functionLinenumberEnd: 2262
    functionName: _io_TextIOWrapper_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _textiowrapper_readline
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readline_impl(textio *self, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Long
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2310,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2314,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2316,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2319,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2321,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2322,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2323,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2324,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - cookie
    - cookieObj
    argTypes:
    - cookie_type*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2306
    functionDepth: 1
    functionLinenumber: 2306
    functionLinenumberEnd: 2328
    functionName: textiowrapper_parse_cookie
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyNumber_Long
    - memcpy
    - Py_DECREF
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: int
    signature: int textiowrapper_parse_cookie(cookie_type *cookie, PyObject *cookieObj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2335,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2336,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2337,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2338,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2339,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2343
    functionName: textiowrapper_build_cookie
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_build_cookie(cookie_type *cookie)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2356,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2358,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2345
    functionDepth: 1
    functionLinenumber: 2345
    functionLinenumberEnd: 2364
    functionName: _textiowrapper_decoder_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_decoder_setstate(textio *self, cookie_type *cookie)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2371,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - self
    - start_of_stream
    argTypes:
    - textio*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2366
    functionDepth: 1
    functionLinenumber: 2366
    functionLinenumberEnd: 2383
    functionName: _textiowrapper_encoder_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_encoder_reset(textio *self, int start_of_stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _textiowrapper_encoder_reset
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - self
    - cookie
    argTypes:
    - textio*
    - cookie_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2385
    functionDepth: 2
    functionLinenumber: 2385
    functionLinenumberEnd: 2391
    functionName: _textiowrapper_encoder_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - _textiowrapper_encoder_reset
    linkageType: ''
    returnType: int
    signature: int _textiowrapper_encoder_setstate(textio *self, cookie_type *cookie)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2410,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2411,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2413,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2416,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2423,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2428,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2435,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2436,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2443,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2448,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2455,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2457,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2458,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2460,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2463,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2466,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2467,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2472,1
    - Dst: _textiowrapper_encoder_reset
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2473,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2474,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2484,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2490,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2495,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2500,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2503,1
    - Dst: textiowrapper_parse_cookie
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2508,1
    - Dst: PyLong_FromOff_t
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2512,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2515,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2517,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2520,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2522,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2523,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2527,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2533,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2540,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2541,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2545,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2549,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2553,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2555,1
    - Dst: check_decoded
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2558,1
    - Dst: textiowrapper_set_decoded_chars
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2561,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2564,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2565,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2571,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2574,1
    - Dst: _textiowrapper_encoder_setstate
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2579,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2584,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 149
    argCount: 3
    argNames:
    - self
    - cookieObj
    - whence
    argTypes:
    - textio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2400
    functionDepth: 3
    functionLinenumber: 2400
    functionLinenumberEnd: 2587
    functionName: _io_TextIOWrapper_seek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_XSETREF
    - PyUnicode_GetLength
    - textiowrapper_parse_cookie
    - _textiowrapper_decoder_setstate
    - _textiowrapper_encoder_setstate
    - Py_INCREF
    - check_decoded
    - PyErr_Format
    - Py_XDECREF
    - CHECK_CLOSED
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - textiowrapper_set_decoded_chars
    - Py_TYPE
    - _unsupported
    - CHECK_ATTACHED
    - Py_BuildValue
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyObject_RichCompareBool
    - _textiowrapper_encoder_reset
    - PyErr_SetString
    - PyLong_FromOff_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2608,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2609,1
    - Dst: _unsupported
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2612,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2616,1
    - Dst: _textiowrapper_writeflush
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2621,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2626,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2628,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2633,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2633,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2638,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2642,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2643,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2647,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2647,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2648,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2651,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2651,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2653,1
    - Dst: textiowrapper_build_cookie
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2658,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2664,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2712,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2712,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2713,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2716,1
    - Dst: DECODER_DECODE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2718,1
    - Dst: DECODER_GETSTATE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2720,1
    - Dst: _textiowrapper_decoder_setstate
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2739,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2745,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2756,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2757,1
    - Dst: DECODER_DECODE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2762,1
    - Dst: DECODER_GETSTATE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2766,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2782,1
    - Dst: check_decoded
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2784,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2787,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2791,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2799,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2802,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2805,1
    - Dst: textiowrapper_build_cookie
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2806,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2811,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2812,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2814,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2815,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 134
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts:
    - condition: (PyTuple_Check(self->snapshot))
      pos:
        line_end: 2646
        line_start: 2646
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (skip_back <= PyBytes_GET_SIZE(next_input))
      pos:
        line_end: 2711
        line_start: 2711
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (self->decoded_chars == NULL || PyUnicode_GetLength(self->decoded_chars)
        == 0)
      pos:
        line_end: 2632
        line_start: 2632
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - condition: (PyBytes_Check(next_input))
      pos:
        line_end: 2650
        line_start: 2650
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    constantsTouched: []
    func_position:
      end: 2818
      start: 2593
    functionDepth: 3
    functionLinenumber: 2593
    functionLinenumberEnd: 2818
    functionName: _io_TextIOWrapper_tell_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - textiowrapper_build_cookie
    - DECODER_GETSTATE
    - PyUnicode_GetLength
    - _textiowrapper_decoder_setstate
    - Py_SAFE_DOWNCAST
    - PyErr_Occurred
    - PyLong_AsLongLong
    - PyTuple_Check
    - check_decoded
    - assert
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    - Py_XDECREF
    - CHECK_CLOSED
    - _textiowrapper_writeflush
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    - _PyObject_CallMethodIdObjArgs
    - _PyErr_ChainExceptions
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _unsupported
    - CHECK_ATTACHED
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - PyBytes_Check
    - DECODER_DECODE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_tell_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2669
    functionDepth: 0
    functionLinenumber: 2669
    functionLinenumberEnd: 2698
    functionName: DECODER_GETSTATE
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER_GETSTATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - len
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2699
    functionDepth: 0
    functionLinenumber: 2699
    functionLinenumberEnd: 2707
    functionName: DECODER_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER_DECODE(start, len, res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2832,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2834,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2837,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - pos
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2826
    functionDepth: 1
    functionLinenumber: 2826
    functionLinenumberEnd: 2840
    functionName: _io_TextIOWrapper_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - Py_DECREF
    - PyObject_CallMethodObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2848,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2850,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2854,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2857,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2859,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2863,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2864,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2868,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2872,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2875,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2879,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2883,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2884,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2887,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2891,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2893,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2895,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2900,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2902,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2842
    functionDepth: 1
    functionLinenumber: 2842
    functionLinenumberEnd: 2905
    functionName: textiowrapper_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - _PyObject_LookupAttrId
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_repr(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2918,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2914
    functionDepth: 1
    functionLinenumber: 2914
    functionLinenumberEnd: 2920
    functionName: _io_TextIOWrapper_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_fileno_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2930,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2926
    functionDepth: 1
    functionLinenumber: 2926
    functionLinenumberEnd: 2932
    functionName: _io_TextIOWrapper_seekable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seekable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2942,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2944
      start: 2938
    functionDepth: 1
    functionLinenumber: 2938
    functionLinenumberEnd: 2944
    functionName: _io_TextIOWrapper_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2954,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2950
    functionDepth: 1
    functionLinenumber: 2950
    functionLinenumberEnd: 2956
    functionName: _io_TextIOWrapper_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_writable_impl(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2966,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2968
    functionName: _io_TextIOWrapper_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_isatty_impl(textio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2978,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2979,1
    - Dst: _textiowrapper_writeflush
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2981,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2974
    functionDepth: 3
    functionLinenumber: 2974
    functionLinenumberEnd: 2984
    functionName: _io_TextIOWrapper_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_CallMethodId
    - CHECK_CLOSED
    - _textiowrapper_writeflush
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_flush_impl(textio *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2996,1
    - Dst: textiowrapper_closed_get
      Src: /src/Python-3.8.3/Modules/_io/textio.c:2998,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3001,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3002,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3016,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3018,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3020,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3022,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3024,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3026,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3028,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3029,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 2990
    functionDepth: 1
    functionLinenumber: 2990
    functionLinenumberEnd: 3033
    functionName: _io_TextIOWrapper_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - textiowrapper_closed_get
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - _PyErr_ChainExceptions
    - PyObject_IsTrue
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_close_impl(textio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3040,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3043,1
    - Dst: _textiowrapper_readline
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3045,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3048,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3050,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3051,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3053,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3054,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3059,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3062,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3064,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - self
    argTypes:
    - textio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3071
      start: 3035
    functionDepth: 6
    functionLinenumber: 3035
    functionLinenumberEnd: 3071
    functionName: textiowrapper_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - PyUnicode_READY
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - Py_CLEAR
    - _textiowrapper_readline
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_iternext(textio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3076,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - textio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3073
    functionDepth: 1
    functionLinenumber: 3073
    functionLinenumberEnd: 3078
    functionName: textiowrapper_name_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_GetAttrId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_name_get(textio *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3083,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - textio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3085
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3085
    functionName: textiowrapper_closed_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 1
    functionsReached:
    - CHECK_ATTACHED
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_closed_get(textio *self, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3091,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - textio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 3087
    functionDepth: 1
    functionLinenumber: 3087
    functionLinenumberEnd: 3098
    functionName: textiowrapper_newlines_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - _PyObject_LookupAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_newlines_get(textio *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3103,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - textio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3100
    functionDepth: 1
    functionLinenumber: 3100
    functionLinenumberEnd: 3106
    functionName: textiowrapper_errors_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_errors_get(textio *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3111,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - textio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3113
    functionName: textiowrapper_chunk_size_get
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - CHECK_ATTACHED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      textiowrapper_chunk_size_get(textio *self, void *context)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_ATTACHED_INT
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3119,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3121,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3124,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3125,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/textio.c:3128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - arg
    - context
    argTypes:
    - textio*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3115
    functionDepth: 1
    functionLinenumber: 3115
    functionLinenumberEnd: 3134
    functionName: textiowrapper_chunk_size_set
    functionSourceFile: /src/Python-3.8.3/Modules/_io/textio.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - PyErr_SetString
    - CHECK_ATTACHED_INT
    linkageType: ''
    returnType: int
    signature: int textiowrapper_chunk_size_set(textio *self, PyObject *arg, void
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: CHECK_CLOSED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CLOSED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: CHECK_EXPORTS
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_EXPORTS(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SHARED_BUF
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHARED_BUF(self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:60,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:61,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:72,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:73,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:79,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (self->pos >= 0)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (len >= 0)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (self->pos < PY_SSIZE_T_MAX - len)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 83
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 83
    functionName: scan_eol
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - assert
    - memchr
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t scan_eol(bytesio *self, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:92,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:92,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:93,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:94,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:95,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:98,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:98,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:98,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - size_t
    assertStmts:
    - condition: (SHARED_BUF(self))
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (size >= (size_t)self->string_size)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (self->exports == 0)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: unshare_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - SHARED_BUF
    - PyBytes_AS_STRING
    - assert
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int unshare_buffer(bytesio *self, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:112,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:114,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:141,1
    - Dst: unshare_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:142,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:146,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:153,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - size_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 156
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 156
    functionName: resize_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - unshare_buffer
    - SHARED_BUF
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int resize_buffer(bytesio *self, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:164,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:166,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:169,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:170,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:173,1
    - Dst: unshare_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:174,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:174,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:187,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:187,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:193,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:193,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - self
    - bytes
    - len
    argTypes:
    - bytesio*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (self->pos >= 0)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (len >= 0)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 202
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 202
    functionName: write_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 3
    functionsReached:
    - unshare_buffer
    - SHARED_BUF
    - memcpy
    - resize_buffer
    - Py_MAX
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    - memset
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t write_bytes(bytesio *self, const char *bytes, Py_ssize_t
      len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: bytesio_get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_get_closed(bytesio *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: _io_BytesIO_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readable_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: _io_BytesIO_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writable_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: _io_BytesIO_seekable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seekable_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: _io_BytesIO_flush_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_flush_impl(bytesio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:285,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:290,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 295
    functionName: _io_BytesIO_getbuffer_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getbuffer_impl(bytesio *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:307,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:309,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:309,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:312,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:313,1
    - Dst: unshare_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:314,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:318,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: _io_BytesIO_getvalue_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - CHECK_CLOSED
    - SHARED_BUF
    - unshare_buffer
    - Py_INCREF
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getvalue_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: _io_BytesIO_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_isatty_impl(bytesio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:352,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: _io_BytesIO_tell_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_tell_impl(bytesio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:361,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:362,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:364,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:367,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:371,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (size <= self->string_size)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 374
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 374
    functionName: read_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_bytes(bytesio *self, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:393,1
    - Dst: read_bytes
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: _io_BytesIO_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - read_bytes
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read_impl(bytesio *self, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_read_impl
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 3
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: _io_BytesIO_read1_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - _io_BytesIO_read_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read1_impl(bytesio *self, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:443,1
    - Dst: scan_eol
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:445,1
    - Dst: read_bytes
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 448
    functionName: _io_BytesIO_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - read_bytes
    - CHECK_CLOSED
    - scan_eol
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readline_impl(bytesio *self, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:470,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:472,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:473,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:474,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:482,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:483,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:488,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:492,1
    - Dst: scan_eol
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:493,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:495,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:502,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:511,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 513
    functionName: _io_BytesIO_readlines_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyBytes_FromStringAndSize
    - CHECK_CLOSED
    - PyErr_Occurred
    - Py_DECREF
    - scan_eol
    - PyLong_AsSsize_t
    - PyList_Append
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readlines_impl(bytesio *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:532,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:543,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:543,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:544,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:545,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - bytesio*
    - Py_buffer*
    assertStmts:
    - condition: (self->pos + len < PY_SSIZE_T_MAX)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - condition: (len >= 0)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 549
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 549
    functionName: _io_BytesIO_readinto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CHECK_CLOSED
    - PyBytes_AS_STRING
    - assert
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readinto_impl(bytesio *self, Py_buffer *buffer)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:566,1
    - Dst: CHECK_EXPORTS
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:567,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:570,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:577,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - bytesio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 582
    functionName: _io_BytesIO_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - resize_buffer
    - CHECK_EXPORTS
    - PyErr_Format
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_truncate_impl(bytesio *self, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:589,1
    - Dst: scan_eol
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:591,1
    - Dst: read_bytes
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 597
    functionName: bytesio_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - read_bytes
    - CHECK_CLOSED
    - scan_eol
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_iternext(bytesio *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:618,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:639,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:646,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:655,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - bytesio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 656
    functionName: _io_BytesIO_seek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyLong_FromSsize_t
    - CHECK_CLOSED
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seek_impl(bytesio *self, Py_ssize_t pos, int whence)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:675,1
    - Dst: CHECK_EXPORTS
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:676,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:678,1
    - Dst: write_bytes
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:682,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:684,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 686
    functionName: _io_BytesIO_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - write_bytes
    - PyLong_FromSsize_t
    - CHECK_EXPORTS
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_write(bytesio *self, PyObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:707,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:709,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:713,1
    - Dst: _io_BytesIO_write
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:715,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:717,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:720,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:722,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 729
    functionName: _io_BytesIO_writelines
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_CLOSED
    - Py_DECREF
    - PyErr_Occurred
    - _io_BytesIO_write
    - PyIter_Next
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writelines(bytesio *self, PyObject *lines)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_EXPORTS
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:741,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 744
    functionName: _io_BytesIO_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - CHECK_EXPORTS
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_close_impl(bytesio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_getvalue_impl
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:764,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:771,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:775,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:777,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:782,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 761
    functionDepth: 3
    functionLinenumber: 761
    functionLinenumberEnd: 785
    functionName: bytesio_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyDict_Copy
    - _io_BytesIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_getstate(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:795,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:800,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:800,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:801,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:803,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:803,1
    - Dst: CHECK_EXPORTS
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:806,1
    - Dst: _io_BytesIO_write
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:814,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:814,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:817,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:822,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:823,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:824,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:826,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:829,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:830,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:833,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:840,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:842,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:843,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:845,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:851,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:855,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 861
      start: 787
    functionDepth: 4
    functionLinenumber: 787
    functionLinenumberEnd: 861
    functionName: bytesio_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_Check
    - PyLong_AsSsize_t
    - PyTuple_Check
    - _io_BytesIO_write
    - PyErr_Format
    - Py_TYPE
    - CHECK_EXPORTS
    - PyErr_SetString
    - assert
    - PyTuple_GET_ITEM
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_setstate(bytesio *self, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:866,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:868,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:870,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:872,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:873,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:875,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: bytesio_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void bytesio_dealloc(bytesio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:884,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:885,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:892,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:894,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    constantsTouched: []
    func_position:
      end: 899
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 899
    functionName: bytesio_new
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:917,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:922,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:923,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:924,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:925,1
    - Dst: _io_BytesIO_write
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:929,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:932,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - initvalue
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 908
    functionDepth: 4
    functionLinenumber: 908
    functionLinenumberEnd: 938
    functionName: _io_BytesIO___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - PyBytes_CheckExact
    - PyBytes_GET_SIZE
    - _io_BytesIO_write
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _io_BytesIO___init___impl(bytesio *self, PyObject *initvalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:945,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:945,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:946,1
    - Dst: _PySys_GetSizeOf
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:947,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - bytesio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 954
    functionName: bytesio_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - SHARED_BUF
    - _PyObject_SIZE
    - _PySys_GetSizeOf
    - Py_TYPE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytesio_sizeof(bytesio *self, void *unused)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - bytesio*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 961
    functionName: bytesio_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytesio_traverse(bytesio *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 968
    functionName: bytesio_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int bytesio_clear(bytesio *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1059,1
    - Dst: SHARED_BUF
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1063,1
    - Dst: unshare_buffer
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1064,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1069,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - view
    - flags
    argTypes:
    - bytesiobuf*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1074
    functionName: bytesiobuf_getbuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - unshare_buffer
    - SHARED_BUF
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int bytesiobuf_getbuffer(bytesiobuf *obj, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - view
    argTypes:
    - bytesiobuf*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1081
    functionName: bytesiobuf_releasebuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytesiobuf_releasebuffer(bytesiobuf *obj, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - bytesiobuf*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1088
    functionName: bytesiobuf_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytesiobuf_traverse(bytesiobuf *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1094,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1095,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/bytesio.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - bytesiobuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1097
    functionName: bytesiobuf_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/bytesio.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bytesiobuf_dealloc(bytesiobuf *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: PyFileIO_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFileIO_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: _PyFileIO_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyFileIO_closed(PyObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:95,1
    - Dst: PyErr_ResourceWarning
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:96,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:98,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:99,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - source
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: fileio_dealloc_warn
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyErr_Fetch
    - PyErr_WriteUnraisable
    - PyErr_ExceptionMatches
    - PyErr_Restore
    - PyErr_ResourceWarning
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_dealloc_warn(fileio *self, PyObject *source)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:118,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 130
    functionName: internal_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 9
    functionsReached:
    - close
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int internal_close(fileio *self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:148,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:149,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:156,1
    - Dst: fileio_dealloc_warn
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:160,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:162,1
    - Dst: internal_close
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:164,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:166,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: _io_FileIO_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyErr_Fetch
    - fileio_dealloc_warn
    - _PyErr_ChainExceptions
    - _Py_IDENTIFIER
    - internal_close
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_close_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:177,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: fileio_new
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - fileio*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 509
    functionName: fileio_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int fileio_traverse(fileio *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: fileio_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int fileio_clear(fileio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyIOBase_finalize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:522,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:524,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:526,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:527,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 529
    functionName: fileio_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyIOBase_finalize
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void fileio_dealloc(fileio *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: err_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 18
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_closed(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IO_STATE
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:541,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - action
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: err_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 5
    functionsReached:
    - IO_STATE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_mode(const char *action)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:559,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: _io_FileIO_fileno_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_fileno_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:574,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 576
    functionName: _io_FileIO_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readable_impl(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:589,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 591
    functionName: _io_FileIO_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_writable_impl(fileio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:604,1
    - Dst: portable_lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:607,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:608,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:610,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:613,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts:
    - condition: (self->seekable >= 0)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 617
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 617
    functionName: _io_FileIO_seekable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - portable_lseek
    - PyBool_FromLong
    - err_closed
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seekable_impl(fileio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:635,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:637,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:639,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:645,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - buffer
    argTypes:
    - fileio*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 652
    functionName: _io_FileIO_readinto_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_mode
    - _Py_read
    - PyLong_FromSsize_t
    - err_closed
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readinto_impl(fileio *self, Py_buffer *buffer)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - currentsize
    argTypes:
    - fileio*
    - size_t
    assertStmts:
    - condition: (currentsize <= PY_SSIZE_T_MAX)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
    constantsTouched: []
    func_position:
      end: 671
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 671
    functionName: new_buffersize
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t new_buffersize(fileio *self, size_t currentsize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:695,1
    - Dst: _lseeki64
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:700,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:702,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:705,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:723,1
    - Dst: new_buffersize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:729,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:731,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:734,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:738,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:739,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:744,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:745,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:755,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:758,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:765,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:766,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 770
    functionName: _io_FileIO_readall_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - new_buffersize
    - lseek
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - _Py_fstat_noraise
    - _lseeki64
    - _Py_read
    - PyErr_SetString
    - PyBytes_AS_STRING
    - err_closed
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall_impl(fileio *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:793,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:795,1
    - Dst: _io_FileIO_readall_impl
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:798,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:804,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:807,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:809,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:813,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:815,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:822,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:823,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - fileio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 829
    functionName: _io_FileIO_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_CLEAR
    - Py_DECREF
    - err_mode
    - _PyBytes_Resize
    - _Py_read
    - _io_FileIO_readall_impl
    - PyBytes_AS_STRING
    - err_closed
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_read_impl(fileio *self, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:851,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:853,1
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:855,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:861,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - b
    argTypes:
    - fileio*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 868
    functionName: _io_FileIO_write_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_mode
    - PyLong_FromSsize_t
    - err_closed
    - PyErr_Clear
    - _Py_write
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_write_impl(fileio *self, Py_buffer *b)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:898,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:899,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:903,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:905,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:907,1
    - Dst: _lseeki64
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:914,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:916,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:929,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:934,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:936,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - self
    - posobj
    - whence
    - suppress_pipe_error
    argTypes:
    - fileio*
    - PyObject*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 938
    functionName: portable_lseek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - PyLong_AsLongLong
    - lseek
    - _lseeki64
    - PyErr_SetString
    - PyLong_FromLongLong
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      portable_lseek(fileio *self, PyObject *posobj, int whence, bool suppress_pipe_error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:962,1
    - Dst: portable_lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - fileio*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 965
    functionName: _io_FileIO_seek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - portable_lseek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seek_impl(fileio *self, PyObject *pos, int whence)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:980,1
    - Dst: portable_lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 983
    functionName: _io_FileIO_tell_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - err_closed
    - portable_lseek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_tell_impl(fileio *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1007,1
    - Dst: err_mode
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1009,1
    - Dst: portable_lseek
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1013,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1018,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1022,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1024,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1026,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1027,1
    - Dst: _chsize_s
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1035,1
    - Dst: ftruncate
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1043,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - posobj
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1049
    functionName: _io_FileIO_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - err_mode
    - ftruncate
    - _chsize_s
    - PyErr_SetFromErrno
    - PyLong_AsLongLong
    - err_closed
    - portable_lseek
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_truncate_impl(fileio *self, PyObject *posobj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1075
    functionName: mode_string
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      mode_string(fileio *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1083,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1085,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1089,1
    - Dst: mode_string
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1091,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1094,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1097,1
    - Dst: mode_string
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1099,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1100,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1103,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1110
    functionName: fileio_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - mode_string
    - Py_ReprLeave
    - Py_DECREF
    - _PyObject_LookupAttrId
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fileio_repr(fileio *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: err_closed
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1125,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - fileio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: _io_FileIO_isatty_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - isatty
    - err_closed
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_isatty_impl(fileio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - fileio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1160
    functionName: get_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closed(fileio *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - fileio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1166
    functionName: get_closefd
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closefd(fileio *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1171,1
    - Dst: mode_string
      Src: /src/Python-3.8.3/Modules/_io/fileio.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - fileio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1172
    functionName: get_mode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/fileio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - mode_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mode(fileio *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: CHECK_INITIALIZED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INITIALIZED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: CHECK_CLOSED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_CLOSED(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: ENSURE_REALIZED
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_REALIZED(self)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:82,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:110,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:112,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - size_t
    assertStmts:
    - condition: (self->buf != NULL)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 124
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 124
    functionName: resize_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 2
    functionsReached:
    - assert
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Realloc
    linkageType: ''
    returnType: int
    signature: int resize_buffer(stringio *self, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyAccu_Finish
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:129,1
    - Dst: _PyAccu_Init
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:133,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:134,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: make_intermediate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - _PyAccu_Accumulate
    - Py_DECREF
    - _PyAccu_Init
    - _PyAccu_Finish
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_intermediate(stringio *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:150,1
    - Dst: _PyAccu_Finish
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:153,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:160,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:162,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts:
    - condition: (self->state == STATE_ACCUMULATING)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 172
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 172
    functionName: realize
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - resize_buffer
    - PyUnicode_AsUCS4
    - _PyAccu_Finish
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int realize(stringio *self)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:182,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:183,1
    - Dst: _PyIncrementalNewlineDecoder_decode
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:186,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:191,1
    - Dst: PyUnicode_Replace
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:196,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:202,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:202,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:204,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:207,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:208,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:214,1
    - Dst: _PyAccu_Accumulate
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:221,1
    - Dst: realize
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:225,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:230,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:244,1
    - Dst: PyUnicode_AsUCS4
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:250,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:262,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:266,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - stringio*
    - PyObject*
    assertStmts:
    - condition: (self->pos >= 0)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    - condition: (self->buf != NULL)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    - condition: (PyUnicode_Check(decoded))
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    - condition: (len >= 0)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 268
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 268
    functionName: write_str
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - PyUnicode_Replace
    - Py_INCREF
    - Py_XDECREF
    - _PyIncrementalNewlineDecoder_decode
    - resize_buffer
    - _PyAccu_Accumulate
    - PyUnicode_AsUCS4
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - realize
    - PyUnicode_GET_LENGTH
    - memset
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t write_str(stringio *self, PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:280,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:281,1
    - Dst: make_intermediate
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:283,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: _io_StringIO_getvalue_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - make_intermediate
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyUnicode_FromKindAndData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_getvalue_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:298,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:299,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: _io_StringIO_tell_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - PyLong_FromSsize_t
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_tell_impl(stringio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:321,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:322,1
    - Dst: make_intermediate
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:334,1
    - Dst: ENSURE_REALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:339,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 343
    functionName: _io_StringIO_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - make_intermediate
    - CHECK_INITIALIZED
    - PyUnicode_FromKindAndData
    - CHECK_CLOSED
    - ENSURE_REALIZED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_read_impl(stringio *self, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:354,1
    - Dst: _PyIO_find_line_ending
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:363,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - limit
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 373
    functionName: _stringio_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - _PyIO_find_line_ending
    - PyUnicode_FromKindAndData
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _stringio_readline(stringio *self, Py_ssize_t limit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:389,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:390,1
    - Dst: ENSURE_REALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:391,1
    - Dst: _stringio_readline
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: _io_StringIO_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - ENSURE_REALIZED
    - CHECK_INITIALIZED
    - _stringio_readline
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readline_impl(stringio *self, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:401,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:402,1
    - Dst: ENSURE_REALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:403,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:405,1
    - Dst: _stringio_readline
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:407,1
    - Dst: PyObject_CallMethodObjArgs
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:411,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:413,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:414,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:416,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:417,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:425,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:427,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 432
    functionName: stringio_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyObject_CallMethodObjArgs
    - Py_DECREF
    - ENSURE_REALIZED
    - _stringio_readline
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_iternext(stringio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:450,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:451,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:454,1
    - Dst: ENSURE_REALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:460,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:461,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - stringio*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 467
    functionName: _io_StringIO_truncate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - ENSURE_REALIZED
    - resize_buffer
    - PyErr_Format
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_truncate_impl(stringio *self, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:488,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:489,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:492,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:497,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:502,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:519,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - self
    - pos
    - whence
    argTypes:
    - stringio*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 520
    functionName: _io_StringIO_seek_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyErr_Format
    - PyErr_SetString
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seek_impl(stringio *self, Py_ssize_t pos, int whence)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:539,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:540,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:541,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:542,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:545,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:547,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:548,1
    - Dst: write_str
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:550,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 554
    functionName: _io_StringIO_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - write_str
    - PyUnicode_READY
    - CHECK_CLOSED
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_write(stringio *self, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:573,1
    - Dst: _PyAccu_Destroy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:575,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:576,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:577,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 580
    functionName: _io_StringIO_close_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - resize_buffer
    - Py_CLEAR
    - _PyAccu_Destroy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_close_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - stringio*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: stringio_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int stringio_traverse(stringio *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 594
    functionName: stringio_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int stringio_clear(stringio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:599,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:602,1
    - Dst: _PyAccu_Destroy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:605,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:606,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:607,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:608,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:609,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:611,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 613
    functionName: stringio_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyMem_Free
    - _PyAccu_Destroy
    linkageType: ''
    returnType: void
    signature: void stringio_dealloc(stringio *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:620,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:621,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:630,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 619
        line_start: 619
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 635
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 635
    functionName: stringio_new
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_NoMemory
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:662,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:663,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:665,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:668,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:677,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:681,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:682,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:684,1
    - Dst: _PyAccu_Destroy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:690,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:691,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:692,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:693,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:695,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:699,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:713,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:717,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:728,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:734,1
    - Dst: write_str
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:738,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:743,1
    - Dst: _PyAccu_Init
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:745,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 65
    argCount: 3
    argNames:
    - self
    - value
    - newline_obj
    argTypes:
    - stringio*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: "((newline != NULL && newline_obj != Py_None) ||\n           (newline
        == NULL && newline_obj == Py_None))"
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 754
      start: 648
    functionDepth: 4
    functionLinenumber: 648
    functionLinenumberEnd: 754
    functionName: _io_StringIO___init___impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - write_str
    - PyUnicode_FromString
    - Py_CLEAR
    - Py_INCREF
    - PyUnicode_AsUTF8
    - resize_buffer
    - PyUnicode_GetLength
    - PyErr_Format
    - Py_TYPE
    - PyObject_CallFunction
    - _PyAccu_Destroy
    - PyUnicode_Check
    - assert
    - _PyAccu_Init
    linkageType: ''
    returnType: int
    signature: "int _io_StringIO___init___impl(stringio *self, PyObject *value,\n
      \                          PyObject *newline_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:768,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: _io_StringIO_readable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readable_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:783,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: _io_StringIO_writable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_writable_impl(stringio *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:798,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - stringio*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: _io_StringIO_seekable_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seekable_impl(stringio *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_getvalue_impl
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:818,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:825,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:829,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:831,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 841
    functionName: stringio_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyDict_Copy
    - _io_StringIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_getstate(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:851,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:852,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:857,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:857,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:858,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:860,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:860,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:865,1
    - Dst: _io_StringIO___init__
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:868,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:869,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:872,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:885,1
    - Dst: PyUnicode_AsUCS4Copy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:886,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:889,1
    - Dst: resize_buffer
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:891,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:892,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:895,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:896,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:903,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:904,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:905,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:907,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:910,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:911,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:914,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:921,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:923,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:924,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:926,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:932,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:936,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - stringio*
    - PyObject*
    assertStmts:
    - condition: (state != NULL)
      pos:
        line_end: 850
        line_start: 850
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    constantsTouched: []
    func_position:
      end: 942
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 942
    functionName: stringio_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyUnicode_AsUCS4Copy
    - PyErr_Occurred
    - Py_INCREF
    - PyLong_AsSsize_t
    - _io_StringIO___init__
    - PyTuple_Check
    - PyErr_Format
    - assert
    - PyUnicode_GET_LENGTH
    - PyTuple_GetSlice
    - PyLong_Check
    - CHECK_CLOSED
    - Py_DECREF
    - resize_buffer
    - PyDict_Check
    - Py_TYPE
    - PyMem_Free
    - PyDict_Update
    - memcpy
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_setstate(stringio *self, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:948,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - stringio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 950
    functionName: stringio_closed
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - CHECK_INITIALIZED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_closed(stringio *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:955,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - stringio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 958
    functionName: stringio_line_buffering
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_line_buffering(stringio *self, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INITIALIZED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:963,1
    - Dst: CHECK_CLOSED
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:964,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_io/stringio.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - stringio*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 968
    functionName: stringio_newlines
    functionSourceFile: /src/Python-3.8.3/Modules/_io/stringio.c
    functionUses: 0
    functionsReached:
    - CHECK_INITIALIZED
    - CHECK_CLOSED
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringio_newlines(stringio *self, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_tell_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _io__IOBase_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_tell(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_flush_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: _io__IOBase_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_flush(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: _io__IOBase_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_close(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_seekable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: _io__IOBase_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_seekable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: _io__IOBase_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: _io__IOBase_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_writable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_fileno_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: _io__IOBase_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_fileno(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__IOBase_isatty_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: _io__IOBase_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__IOBase_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:188,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:194,1
    - Dst: _io__IOBase_readline_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: _io__IOBase_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io__IOBase_readline_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readline(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:226,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:232,1
    - Dst: _io__IOBase_readlines_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: _io__IOBase_readlines
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io__IOBase_readlines_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__IOBase_readlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:271,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:277,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:278,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:284,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:286,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:287,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:289,1
    - Dst: _io__RawIOBase_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 299
    functionName: _io__RawIOBase_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _io__RawIOBase_read_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_read(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__RawIOBase_readall_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: _io__RawIOBase_readall
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
    functionUses: 0
    functionsReached:
    - _io__RawIOBase_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__RawIOBase_readall(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:31,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:32,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:37,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:37,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:42,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:43,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:47,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:48,1
    - Dst: _io_IncrementalNewlineDecoder___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:56,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 60
    functionName: _io_IncrementalNewlineDecoder___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _io_IncrementalNewlineDecoder___init___impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject
      *args, PyObject *kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:81,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:85,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:93,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:94,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:98,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:99,1
    - Dst: _io_IncrementalNewlineDecoder_decode_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:103,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - nldecoder_object*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 107
    functionName: _io_IncrementalNewlineDecoder_decode
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io_IncrementalNewlineDecoder_decode_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_decode(nldecoder_object *self, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_IncrementalNewlineDecoder_getstate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - nldecoder_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: _io_IncrementalNewlineDecoder_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_getstate(nldecoder_object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_IncrementalNewlineDecoder_reset_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - nldecoder_object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: _io_IncrementalNewlineDecoder_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_IncrementalNewlineDecoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_IncrementalNewlineDecoder_reset(nldecoder_object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:199,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:200,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:208,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:208,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:220,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:222,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:227,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:232,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:249,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:251,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:256,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:261,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:269,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:270,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:274,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:275,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:282,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:283,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:287,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:288,1
    - Dst: _io_TextIOWrapper___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:292,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 296
    functionName: _io_TextIOWrapper___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper___init___impl
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:323,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:330,1
    - Dst: _io_TextIOWrapper_reconfigure_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:363,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - textio*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 316
    functionDepth: 4
    functionLinenumber: 316
    functionLinenumberEnd: 367
    functionName: _io_TextIOWrapper_reconfigure
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_reconfigure_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_reconfigure(textio *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_detach_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: _io_TextIOWrapper_detach
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_detach_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_detach(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:403,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:404,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:407,1
    - Dst: _io_TextIOWrapper_write_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:411,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 415
    functionName: _io_TextIOWrapper_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - _io_TextIOWrapper_write_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_write(textio *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:434,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:440,1
    - Dst: _io_TextIOWrapper_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - textio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 428
    functionDepth: 6
    functionLinenumber: 428
    functionLinenumberEnd: 448
    functionName: _io_TextIOWrapper_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_TextIOWrapper_read_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_read(textio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:467,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:474,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:480,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:483,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:485,1
    - Dst: _io_TextIOWrapper_readline_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:491,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - textio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 495
    functionName: _io_TextIOWrapper_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_readline_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readline(textio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:515,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:522,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:523,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:527,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:528,1
    - Dst: _io_TextIOWrapper_seek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - textio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 536
    functionName: _io_TextIOWrapper_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _io_TextIOWrapper_seek_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seek(textio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_tell_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 4
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: _io_TextIOWrapper_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_tell(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:572,1
    - Dst: _io_TextIOWrapper_truncate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - textio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 584
    functionName: _io_TextIOWrapper_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_TextIOWrapper_truncate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_truncate(textio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_fileno_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: _io_TextIOWrapper_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_fileno(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_seekable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: _io_TextIOWrapper_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_seekable(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: _io_TextIOWrapper_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_readable(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: _io_TextIOWrapper_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_writable(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_isatty_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: _io_TextIOWrapper_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_isatty(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_flush_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: _io_TextIOWrapper_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_flush(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_TextIOWrapper_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - textio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: _io_TextIOWrapper_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
    functionUses: 0
    functionsReached:
    - _io_TextIOWrapper_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_TextIOWrapper_close(textio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:144,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:154,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:163,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:164,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:168,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:172,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:173,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:181,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:182,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:186,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:187,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:198,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:200,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:205,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:210,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:221,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:223,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:228,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:233,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:244,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:246,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:250,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:251,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:256,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:264,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:265,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:269,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:270,1
    - Dst: _io_open_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:279,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 146
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 283
    functionName: _io_open
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _io_open_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:309,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:313,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:314,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:317,1
    - Dst: _io_open_code_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: _io_open_code
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h
    functionUses: 0
    functionsReached:
    - _io_open_code_impl
    - PyUnicode_READY
    - _PyArg_BadArgument
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _io_BytesIO_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readable(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _io_BytesIO_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_writable(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_seekable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: _io_BytesIO_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seekable(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_flush_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: _io_BytesIO_flush
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_flush(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_getbuffer_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: _io_BytesIO_getbuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_getbuffer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getbuffer(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_getvalue_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: _io_BytesIO_getvalue
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_getvalue(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_isatty_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: _io_BytesIO_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_isatty(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_tell_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: _io_BytesIO_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_tell(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:172,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:178,1
    - Dst: _io_BytesIO_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 186
    functionName: _io_BytesIO_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_read_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:209,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:215,1
    - Dst: _io_BytesIO_read1_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: _io_BytesIO_read1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_BytesIO_read1_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_read1(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:247,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:253,1
    - Dst: _io_BytesIO_readline_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 261
    functionName: _io_BytesIO_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_readline_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readline(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:285,1
    - Dst: _io_BytesIO_readlines_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: _io_BytesIO_readlines
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_readlines_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readlines(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:320,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:321,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:322,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:325,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:326,1
    - Dst: _io_BytesIO_readinto_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:329,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 338
    functionName: _io_BytesIO_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - _io_BytesIO_readinto_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_readinto(bytesio *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:361,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:367,1
    - Dst: _io_BytesIO_truncate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 375
    functionName: _io_BytesIO_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_BytesIO_truncate_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_truncate(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:402,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:405,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:406,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:412,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:415,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:417,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:425,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:426,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:430,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:431,1
    - Dst: _io_BytesIO_seek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:435,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - bytesio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 439
    functionName: _io_BytesIO_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_seek_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_seek(bytesio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_BytesIO_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - bytesio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 481
    functionName: _io_BytesIO_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _io_BytesIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BytesIO_close(bytesio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:500,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:501,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:504,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:504,1
    - Dst: _io_BytesIO___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h:513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 517
    functionName: _io_BytesIO___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _io_BytesIO___init___impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: int
    signature: int _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_getvalue_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _io_StringIO_getvalue
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_getvalue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_getvalue(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_tell_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _io_StringIO_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_tell(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:62,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:68,1
    - Dst: _io_StringIO_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - stringio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: _io_StringIO_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_StringIO_read_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_read(stringio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:98,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:104,1
    - Dst: _io_StringIO_readline_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - stringio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 112
    functionName: _io_StringIO_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_StringIO_readline_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readline(stringio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:136,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:142,1
    - Dst: _io_StringIO_truncate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - stringio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: _io_StringIO_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_StringIO_truncate_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_truncate(stringio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:177,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:180,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:181,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:187,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:190,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:192,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:200,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:201,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:205,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:206,1
    - Dst: _io_StringIO_seek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:210,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - stringio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 214
    functionName: _io_StringIO_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _io_StringIO_seek_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seek(stringio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 249
    functionName: _io_StringIO_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_close(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:272,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:273,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:277,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:277,1
    - Dst: _io_StringIO___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:292,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 296
    functionName: _io_StringIO___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _io_StringIO___init___impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: int
    signature: int _io_StringIO___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: _io_StringIO_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_readable(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: _io_StringIO_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_writable(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_StringIO_seekable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - stringio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: _io_StringIO_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
    functionUses: 0
    functionsReached:
    - _io_StringIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_StringIO_seekable(stringio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: _io_FileIO_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_close(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:56,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:57,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:63,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:63,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:72,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:73,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:77,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:81,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:82,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:90,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:91,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:96,1
    - Dst: _io_FileIO___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:105,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 109
    functionName: _io_FileIO___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _io_FileIO___init___impl
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_fileno_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: _io_FileIO_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_fileno(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: _io_FileIO_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readable(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: _io_FileIO_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_writable(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_seekable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: _io_FileIO_seekable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_seekable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seekable(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:201,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:202,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:203,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:206,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:207,1
    - Dst: _io_FileIO_readinto_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:210,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: _io_FileIO_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _io_FileIO_readinto_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readinto(fileio *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_readall_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: _io_FileIO_readall
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_readall(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:264,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:270,1
    - Dst: _io_FileIO_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - fileio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 278
    functionName: _io_FileIO_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_FileIO_read_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_read(fileio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:302,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:305,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:306,1
    - Dst: _io_FileIO_write_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:309,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: _io_FileIO_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _io_FileIO_write_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_write(fileio *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:347,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:354,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:355,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:359,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:360,1
    - Dst: _io_FileIO_seek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - fileio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 368
    functionName: _io_FileIO_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _io_FileIO_seek_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_seek(fileio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_tell_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: _io_FileIO_tell
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_tell_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_tell(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:413,1
    - Dst: _io_FileIO_truncate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - fileio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: _io_FileIO_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io_FileIO_truncate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_truncate(fileio *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io_FileIO_isatty_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - fileio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 445
    functionName: _io_FileIO_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
    functionUses: 0
    functionsReached:
    - _io_FileIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_FileIO_isatty(fileio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:22,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:23,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:24,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:27,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:28,1
    - Dst: _io__BufferedIOBase_readinto_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:31,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:36,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: _io__BufferedIOBase_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__BufferedIOBase_readinto_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:59,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:60,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:61,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:64,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:65,1
    - Dst: _io__BufferedIOBase_readinto1_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:68,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 77
    functionName: _io__BufferedIOBase_readinto1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__BufferedIOBase_readinto1_impl
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_readinto1(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__BufferedIOBase_detach_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: _io__BufferedIOBase_detach
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__BufferedIOBase_detach_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__BufferedIOBase_detach(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:117,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:123,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:124,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:130,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:132,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:133,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:135,1
    - Dst: _io__Buffered_peek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:141,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: _io__Buffered_peek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _io__Buffered_peek_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_peek(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:164,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:170,1
    - Dst: _io__Buffered_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: _io__Buffered_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__Buffered_read_impl
    - _PyArg_CheckPositional
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:197,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:203,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:204,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:210,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:212,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:213,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:215,1
    - Dst: _io__Buffered_read1_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:221,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 225
    functionName: _io__Buffered_read1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _io__Buffered_read1_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_read1(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:244,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:245,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:246,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:249,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:250,1
    - Dst: _io__Buffered_readinto_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:253,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 262
    functionName: _io__Buffered_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _io__Buffered_readinto_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto(buffered *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:281,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:282,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:283,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:286,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:287,1
    - Dst: _io__Buffered_readinto1_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:290,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: _io__Buffered_readinto1
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _io__Buffered_readinto1_impl
    - PyBuffer_Release
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readinto1(buffered *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:318,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:324,1
    - Dst: _io__Buffered_readline_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 332
    functionName: _io__Buffered_readline
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io__Buffered_readline_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_readline(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:352,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:360,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:364,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:365,1
    - Dst: _io__Buffered_seek_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 373
    functionName: _io__Buffered_seek
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _io__Buffered_seek_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_seek(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:392,1
    - Dst: _io__Buffered_truncate_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - buffered*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 404
    functionName: _io__Buffered_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io__Buffered_truncate_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__Buffered_truncate(buffered *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:424,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:425,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:429,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:429,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:437,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:438,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:444,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:446,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:447,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:449,1
    - Dst: _io_BufferedReader___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 459
    functionName: _io_BufferedReader___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _io_BufferedReader___init___impl
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:483,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:484,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:488,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:488,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:497,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:503,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:506,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:508,1
    - Dst: _io_BufferedWriter___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:514,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 518
    functionName: _io_BufferedWriter___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io_BufferedWriter___init___impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:537,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:540,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:541,1
    - Dst: _io_BufferedWriter_write_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:544,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - buffered*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 531
    functionDepth: 5
    functionLinenumber: 531
    functionLinenumberEnd: 553
    functionName: _io_BufferedWriter_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - _io_BufferedWriter_write_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io_BufferedWriter_write(buffered *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:581,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:582,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:585,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:585,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:588,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:589,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:590,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:593,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:593,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:594,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:600,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:600,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:603,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:605,1
    - Dst: _io_BufferedRWPair___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:611,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 615
    functionName: _io_BufferedRWPair___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _io_BufferedRWPair___init___impl
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - _PyArg_NoKeywords
    - PyNumber_Index
    - Py_TYPE
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_BufferedRWPair___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:639,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:640,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:644,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:644,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:652,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:653,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:659,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:662,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:664,1
    - Dst: _io_BufferedRandom___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h:670,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 631
    functionDepth: 5
    functionLinenumber: 631
    functionLinenumberEnd: 674
    functionName: _io_BufferedRandom___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyLong_AsSsize_t
    - _io_BufferedRandom___init___impl
    - PyNumber_Index
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_close_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: _io__WindowsConsoleIO_close
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_close(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:55,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:62,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:62,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:71,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:72,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:76,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:80,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:81,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:89,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:90,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:94,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:95,1
    - Dst: _io__WindowsConsoleIO___init___impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:104,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 108
    functionName: _io__WindowsConsoleIO___init__
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _io__WindowsConsoleIO___init___impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_fileno_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: _io__WindowsConsoleIO_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_fileno(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_readable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: _io__WindowsConsoleIO_readable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_readable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readable(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_writable_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: _io__WindowsConsoleIO_writable
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_writable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_writable(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:201,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:202,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:203,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:206,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:207,1
    - Dst: _io__WindowsConsoleIO_readinto_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:210,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 6
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: _io__WindowsConsoleIO_readinto
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_Clear
    - _io__WindowsConsoleIO_readinto_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readinto(winconsoleio *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_readall_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 5
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: _io__WindowsConsoleIO_readall
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_readall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_readall(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:271,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:277,1
    - Dst: _io__WindowsConsoleIO_read_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - winconsoleio*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: _io__WindowsConsoleIO_read
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _io__WindowsConsoleIO_read_impl
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_read(winconsoleio *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:312,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:315,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:316,1
    - Dst: _io__WindowsConsoleIO_write_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:319,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: _io__WindowsConsoleIO_write
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _io__WindowsConsoleIO_write_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_write(winconsoleio *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _io__WindowsConsoleIO_isatty_impl
      Src: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - winconsoleio*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: _io__WindowsConsoleIO_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
    functionUses: 0
    functionsReached:
    - _io__WindowsConsoleIO_isatty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _io__WindowsConsoleIO_isatty(winconsoleio *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c:11,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c:14,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c:15,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: _fuzz_run
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - LLVMFuzzerTestOneInput
    - PyErr_Occurred
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _fuzz_run(PyObject* self, PyObject* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: PyInit__xxtestfuzz
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__xxtestfuzz(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:19,1
    - Dst: PyFloat_FromString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:21,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:22,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:22,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:23,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:26,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: fuzz_builtin_float
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_DECREF
    - PyFloat_FromString
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_float(const char* data, size_t size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:43,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:55,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:57,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:58,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:62,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:63,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:64,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:66,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:67,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:68,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 70
    functionName: fuzz_builtin_int
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    - _Py_HashBytes
    - PyLong_FromUnicodeObject
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_int(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:74,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:75,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:76,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: fuzz_builtin_unicode
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyErr_Clear
    - Py_XDECREF
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int fuzz_builtin_unicode(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:88,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: init_json_loads
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_json_loads()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:103,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:107,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:111,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:114,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:116,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:121,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 124
    functionName: fuzz_json_loads
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_json_loads(const char* data, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:134,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:138,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:143,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:147,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:151,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: init_sre_compile
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyLong_AsLong
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_sre_compile()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:174,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:180,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:185,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:189,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:190,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:194,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:195,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:196,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:198,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:201,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:205,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:206,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:207,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 209
    functionName: fuzz_sre_compile
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - PyLong_FromUnsignedLong
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_sre_compile(const char* data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:224,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:228,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:231,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: init_sre_match
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyErr_NoMemory
    - PyObject_CallMethod
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: int init_sre_match()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:258,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:264,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:266,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:268,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 272
    functionName: fuzz_sre_match
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_CallFunctionObjArgs
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int fuzz_sre_match(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:280,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: init_csv_reader
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_csv_reader()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:294,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:298,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:301,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:308,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:312,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:316,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:317,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:323,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:324,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 330
    functionName: fuzz_csv_reader
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - memchr
    - Py_XDECREF
    - PyIter_Next
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - PyObject_CallMethod
    linkageType: ''
    returnType: int
    signature: int fuzz_csv_reader(const char* data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:334,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:335,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:338,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: _run_fuzz
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached:
    - fuzzer
    - PyErr_Print
    - PyErr_Occurred
    - abort
    linkageType: ''
    returnType: int
    signature: int _run_fuzz(const uint8_t *data, size_t size, int(*fuzzer)(const
      char* , size_t))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: __lsan_is_turned_off
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __lsan_is_turned_off(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:350,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 1
    functionsReached:
    - Py_DecodeLocale
    - Py_SetProgramName
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:363,1
    - Dst: Py_InitializeEx
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:367,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:373,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:376,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:379,1
    - Dst: init_json_loads
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:383,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:384,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:385,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:390,1
    - Dst: init_sre_compile
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:394,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:395,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:396,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:401,1
    - Dst: init_sre_match
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:405,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:406,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:407,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:412,1
    - Dst: init_csv_reader
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:416,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:417,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:418,1
    - Dst: _run_fuzz
      Src: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c:423,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 426
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
    functionUses: 2
    functionsReached:
    - init_json_loads
    - PyErr_Print
    - init_sre_match
    - _run_fuzz
    - Py_IsInitialized
    - init_csv_reader
    - abort
    - init_sre_compile
    - Py_InitializeEx
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:14,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: pymem_destructor
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void pymem_destructor(PyObject *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: PyCField_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:63,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:67,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:69,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:71,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:112,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:113,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:116,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:120,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:123,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:124,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:129,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:130,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:142,1
    - Dst: min
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:155,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 10
    argNames:
    - desc
    - index
    - pfield_size
    - bitsize
    - pbitofs
    - psize
    - poffset
    - palign
    - pack
    - big_endian
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    - int
    - int*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 201
    functionName: PyCField_FromDesc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyObject_CallObject
    - Py_DECREF
    - Py_INCREF
    - min
    - PyErr_SetString
    - PyCArrayTypeObject_Check
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCField_FromDesc(PyObject *desc, Py_ssize_t index,\n
      \               Py_ssize_t *pfield_size, int bitsize, int *pbitofs,\n                Py_ssize_t
      *psize, Py_ssize_t *poffset, Py_ssize_t *palign,\n                int pack,
      int big_endian)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:208,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:209,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:216,1
    - Dst: PyCData_set
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - inst
    - value
    argTypes:
    - CFieldObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 222
    functionName: PyCField_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - CDataObject_Check
    - PyErr_SetString
    - PyCData_set
    linkageType: ''
    returnType: int
    signature: int PyCField_set(CFieldObject *self, PyObject *inst, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:229,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:232,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:233,1
    - Dst: PyCData_get
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - inst
    - type
    argTypes:
    - CFieldObject*
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: PyCField_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyCData_get
    - CDataObject_Check
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get(CFieldObject *self, PyObject *inst, PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: PyCField_get_offset
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get_offset(PyObject *self, void *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: PyCField_get_size
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_get_size(PyObject *self, void *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - CFieldObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: PyCField_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyCField_traverse(CFieldObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - CFieldObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: PyCField_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PyCField_clear(CFieldObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCField_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:277,1
    - Dst: PyObject*::ob_type::tp_free
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: PyCField_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyCField_clear
    - PyObject*::ob_type::tp_free
    linkageType: ''
    returnType: void
    signature: void PyCField_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:292,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - CFieldObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 300
    functionName: PyCField_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCField_repr(CFieldObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:360,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:364,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: get_long
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 8
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int get_long(PyObject *v, long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:378,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:379,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:383,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 388
    functionName: get_ulong
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 5
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int get_ulong(PyObject *v, unsigned long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:396,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:397,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:401,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: get_longlong
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 2
    functionsReached:
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int get_longlong(PyObject *v, long long *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:415,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:419,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 424
    functionName: get_ulonglong
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 2
    functionsReached:
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int get_ulonglong(PyObject *v, unsigned long long *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: LOW_BIT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOW_BIT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: NUM_BITS
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUM_BITS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: BIT_MASK
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT_MASK(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: GET_BITFIELD
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_BITFIELD(v, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - x
    - ','
    - v
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: SET
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET(type, x, v, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 456
    functionName: SWAP_2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 462
    functionName: SWAP_4
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_4(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: SWAP_8
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_8(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: SWAP_8
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_8(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: _RET
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: _RET
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _RET(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:520,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:522,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: b_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SET
    - _RET
    - get_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      b_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:531,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: b_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      b_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:539,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:541,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: B_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SET
    - get_ulong
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      B_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:550,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: B_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      B_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:559,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:561,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:562,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:563,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: h_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SET
    - memcpy
    - _RET
    - get_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      h_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:573,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:575,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:576,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:577,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:578,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:579,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: h_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - get_long
    - SWAP_2
    - SET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      h_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:587,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:588,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 590
    functionName: h_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      h_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:596,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:597,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:598,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 600
    functionName: h_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SWAP_2
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      h_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:607,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:609,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:610,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:611,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 613
    functionName: H_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SET
    - get_ulong
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      H_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:620,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:622,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:623,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:624,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:625,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:626,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 628
    functionName: H_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - SWAP_2
    - SET
    - get_ulong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      H_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:635,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:636,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 638
    functionName: H_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      H_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:644,1
    - Dst: SWAP_2
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:645,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:646,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: H_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SWAP_2
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      H_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:655,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:657,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:658,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:659,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: i_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SET
    - memcpy
    - _RET
    - get_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      i_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:668,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:670,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:671,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:672,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:673,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:674,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 676
    functionName: i_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - get_long
    - SWAP_INT
    - SET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      i_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:683,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:684,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: i_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      i_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:692,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:693,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:694,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: i_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_INT
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      i_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:703,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:708,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 713
    functionName: vBOOL_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      vBOOL_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: vBOOL_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      vBOOL_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:725,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:730,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 735
    functionName: bool_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: bool_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:748,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:750,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:751,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:752,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 754
    functionName: I_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SET
    - get_ulong
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      I_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:761,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:763,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:764,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:765,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:766,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:767,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 769
    functionName: I_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - SWAP_INT
    - SET
    - get_ulong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      I_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:776,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:777,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 779
    functionName: I_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      I_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:785,1
    - Dst: SWAP_INT
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:786,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:787,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 789
    functionName: I_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_INT
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      I_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:796,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:798,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:799,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:800,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 802
    functionName: l_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SET
    - memcpy
    - _RET
    - get_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      l_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_long
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:809,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:811,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:812,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:813,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:814,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:815,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 817
    functionName: l_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - get_long
    - SET
    - SWAP_LONG
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      l_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:824,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:825,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 827
    functionName: l_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      l_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:833,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:834,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:835,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 837
    functionName: l_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_LONG
    - PyLong_FromLong
    - memcpy
    - GET_BITFIELD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      l_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:844,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:846,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:847,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:848,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: L_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SET
    - get_ulong
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      L_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:857,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:859,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:860,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:861,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:862,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:863,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 865
    functionName: L_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _RET
    - SET
    - get_ulong
    - SWAP_LONG
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      L_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:872,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:873,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 875
    functionName: L_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      L_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:881,1
    - Dst: SWAP_LONG
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:882,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:883,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 885
    functionName: L_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_LONG
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      L_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_longlong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:892,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:894,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:895,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:896,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 898
    functionName: q_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - get_longlong
    - SET
    - memcpy
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      q_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_longlong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:905,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:907,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:908,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:909,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:910,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:911,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 913
    functionName: q_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SWAP_8
    - _RET
    - get_longlong
    - SET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      q_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:919,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:920,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 922
    functionName: q_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GET_BITFIELD
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      q_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:928,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:929,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:930,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 932
    functionName: q_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_8
    - memcpy
    - GET_BITFIELD
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      q_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulonglong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:939,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:941,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:942,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:943,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 945
    functionName: Q_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SET
    - get_ulonglong
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Q_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ulonglong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:952,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:954,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:955,1
    - Dst: SET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:956,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:957,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:958,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 960
    functionName: Q_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SWAP_8
    - _RET
    - SET
    - get_ulonglong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Q_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:966,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:967,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 969
    functionName: Q_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Q_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:975,1
    - Dst: SWAP_8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:976,1
    - Dst: GET_BITFIELD
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:977,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 979
    functionName: Q_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - SWAP_8
    - memcpy
    - GET_BITFIELD
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Q_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:991,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:992,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:994,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 996
    functionName: g_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      g_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1002,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1004
    functionName: g_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      g_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1011,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1012,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1014,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1016
    functionName: d_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1022,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1024
    functionName: d_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 1
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1031,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1032,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1035,1
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1038,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1042
    functionName: d_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _RET
    - _PyFloat_Pack8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1048,1
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1048,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1050,1
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1052
    functionName: d_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - _PyFloat_Unpack8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      d_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1059,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1060,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1062,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1064
    functionName: f_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _RET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1070,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1072
    functionName: f_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - memcpy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1079,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1080,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1083,1
    - Dst: _PyFloat_Pack4
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1086,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1090
    functionName: f_set_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - _RET
    - PyErr_Occurred
    - _PyFloat_Pack4
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_set_sw(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1096,1
    - Dst: _PyFloat_Unpack4
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1096,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1098,1
    - Dst: _PyFloat_Unpack4
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1100
    functionName: f_get_sw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - _PyFloat_Unpack4
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      f_get_sw(void *ptr, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1119,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1125
    functionName: O_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      O_get(void *ptr, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1134
    functionName: O_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      O_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1140,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1140,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1141,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1142,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1144,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1144,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1145,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1146,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1148,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1150,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1154,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1157,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1160
    functionName: c_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - _RET
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1167
    functionName: c_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_get(void *ptr, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1176,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1177,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1182,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1186,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1193,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1196
    functionName: u_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _RET
    - PyErr_Format
    - PyUnicode_AsWideChar
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1203
    functionName: u_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      u_get(void *ptr, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1227
    functionName: U_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      U_get(void *ptr, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1235,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1236,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1242,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1249,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1251,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1259,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - ptr
    - value
    - length
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 1248
        line_start: 1248
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    constantsTouched: []
    func_position:
      end: 1265
      start: 1229
    functionDepth: 1
    functionLinenumber: 1229
    functionLinenumberEnd: 1265
    functionName: U_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_Format
    - PyUnicode_AsWideChar
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      U_set(void *ptr, PyObject *value, Py_ssize_t length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1282
    functionName: s_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 3
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1290,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1291,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1297,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1298,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1305,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1311,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ptr
    - value
    - length
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1314
    functionName: s_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 4
    functionsReached:
    - memcpy
    - _RET
    - PyBytes_Check
    - strlen
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      s_set(void *ptr, PyObject *value, Py_ssize_t length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1321,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1324,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1325,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1326,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1328,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1330,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1332,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1334,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1340
    functionName: z_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLongLongMask
    - Py_INCREF
    - _RET
    - PyBytes_AsString
    - PyBytes_Check
    - PyErr_Format
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      z_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1347,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1352
    functionName: z_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      z_get(void *ptr, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1363,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1366,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1368,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1370,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1374,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1375,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1383,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1386,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1393
    functionName: Z_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLongLongMask
    - PyUnicode_AsWideCharString
    - Py_INCREF
    - PyCapsule_New
    - PyErr_Format
    - PyMem_Free
    - PyUnicode_Check
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Z_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1401,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1405
    functionName: Z_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Z_get(void *ptr, Py_ssize_t size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1417,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1418,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1432,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1433,1
    - Dst: SysAllocStringLen
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1436,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1437,1
    - Dst: SysFreeString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1443,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1449,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1450
    functionName: BSTR_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideCharString
    - _RET
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - PyUnicode_Check
    - SysFreeString
    - SysAllocStringLen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BSTR_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1459,1
    - Dst: SysStringLen
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1466
    functionName: BSTR_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - SysStringLen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BSTR_get(void *ptr, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1475,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1479,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1485,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1490,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1493,1
    - Dst: _RET
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - value
    - size
    argTypes:
    - void*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1498
    functionName: P_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLongLongMask
    - PyErr_Occurred
    - _RET
    - PyErr_SetString
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      P_set(void *ptr, PyObject *value, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1507
    functionName: P_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      P_get(void *ptr, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1579,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1581,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/cfield.c:1583,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1592
    functionName: _ctypes_get_fielddesc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    functionUses: 2
    functionsReached:
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: struct fielddesc
    signature: 'struct fielddesc *

      _ctypes_get_fielddesc(const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: EXPORT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPORT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: EXPORT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPORT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: _testfunc_cbk_reg_int
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: "void _testfunc_cbk_reg_int(int a, int b, int c, int d, int e,\n                      int
      (*func)(int, int, int, int, int))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: _testfunc_cbk_reg_double
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: "void _testfunc_cbk_reg_double(double a, double b, double c, double
      d, double e,\n                         double (*func)(double, double, double,
      double, double))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: _testfunc_cbk_large_struct
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: void _testfunc_cbk_large_struct(Test in, void (*func)(Test))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: _testfunc_large_struct_update_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_large_struct_update_value(Test in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - TestReg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: _testfunc_reg_struct_update_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_reg_struct_update_value(TestReg in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: _testfunc_array_in_struct1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct1(Test2 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test3
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: _testfunc_array_in_struct2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct2(Test3 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test3B
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 136
    functionName: _testfunc_array_in_struct2a
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_array_in_struct2a(Test3B in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 164
    functionName: _testfunc_union_by_value1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_union_by_value1(Test4 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test5
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: _testfunc_union_by_value2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_union_by_value2(Test5 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: _testfunc_union_by_reference1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_union_by_reference1(Test4 *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: _testfunc_union_by_reference2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_union_by_reference2(Test4 *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test5*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    functionName: _testfunc_union_by_reference3
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_union_by_reference3(Test5 *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test6
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: _testfunc_bitfield_by_value1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_value1(Test6 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test6*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: _testfunc_bitfield_by_reference1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_reference1(Test6 *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test7*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: _testfunc_bitfield_by_reference2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_reference2(Test7 *in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - Test8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: _testfunc_bitfield_by_value2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _testfunc_bitfield_by_value2(Test8 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - values
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: testfunc_array
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testfunc_array(int values[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:263,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: testfunc_Ddd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testfunc_Ddd(double a, double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:271,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - long double
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: testfunc_DDD
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testfunc_DDD(long double a, long double b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: testfunc_iii
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testfunc_iii(int a, int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:287,1
    - Dst: vprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:288,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: myprintf
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - va_start
    - vprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void myprintf(char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strtok
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - token
    - delim
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 296
    functionName: my_strtok
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - strtok
    linkageType: ''
    returnType: void
    signature: void my_strtok(char *token, const char *delim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 301
    functionName: my_strchr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: void
    signature: void my_strchr(const char *s, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: my_sqrt
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: void
    signature: void my_sqrt(double a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - base
    - num
    - width
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: my_qsort
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void my_qsort(void *base, size_t num, size_t width, int(*compare)(const
      void*, const void*))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: _testfunc_ai8
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_ai8(int a[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - presult
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: _testfunc_v
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_v(int a, int b, int *presult)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: _testfunc_i_bhilfd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_i_bhilfd(signed char b, short h, int i, long l, float
      f, double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: _testfunc_f_bhilfd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_f_bhilfd(signed char b, short h, int i, long l, float
      f, double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: _testfunc_d_bhilfd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_d_bhilfd(signed char b, short h, int i, long l, float
      f, double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: _testfunc_D_bhilfD
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_D_bhilfD(signed char b, short h, int i, long l, float
      f, long double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: _testfunc_p_p
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_p_p(void *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argcp
    - argv
    argTypes:
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 364
    functionName: _testfunc_c_p_p
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_c_p_p(int *argcp, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: get_strchr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_strchr(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:373,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:373,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: my_strdup
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - strlen
    - malloc
    - strcpy
    linkageType: ''
    returnType: void
    signature: void my_strdup(char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: my_free
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void my_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:388,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:389,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: my_wcsdup
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - wcslen
    linkageType: ''
    returnType: void
    signature: void my_wcsdup(wchar_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: my_wcslen
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: void
    signature: void my_wcslen(wchar_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCS*::c
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:415,1
    - Dst: FUNCS*::s
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FUNCS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: _testfunc_callfuncp
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - FUNCS*::s
    - FUNCS*::c
    linkageType: ''
    returnType: void
    signature: void _testfunc_callfuncp(FUNCS *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pi
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: _testfunc_deref_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_deref_pointer(int *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:428,1
    - Dst: IUnknown*::lpVtbl::Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piunk
    argTypes:
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: _testfunc_piunk
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - IUnknown*::lpVtbl::AddRef
    - IUnknown*::lpVtbl::Release
    linkageType: ''
    returnType: void
    signature: void _testfunc_piunk(IUnknown FAR *piunk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: _testfunc_callback_with_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_callback_with_pointer(int (*func)(int *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    - q
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - double
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: _testfunc_q_bhilfdq
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _testfunc_q_bhilfdq(signed char b, short h, int i, long l, float
      f,\n                                      double d, long long q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - b
    - h
    - i
    - l
    - f
    - d
    argTypes:
    - signed char
    - short
    - int
    - long
    - float
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: _testfunc_q_bhilfd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_q_bhilfd(signed char b, short h, int i, long l, float
      f, double d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 459
    functionName: _testfunc_callback_i_if
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: void _testfunc_callback_i_if(int value, int (*func)(int))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: _testfunc_callback_q_qf
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: void
    signature: "void _testfunc_callback_q_qf(long long value,\n                                          long
      long (*func)(long long))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eggs
    argTypes:
    - EGG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: getSPAMANDEGGS
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void getSPAMANDEGGS(EGG **eggs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - in
    - pout
    argTypes:
    - point
    - point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 511
    functionName: _testfunc_byval
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _testfunc_byval(point in, point *pout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 518
    functionName: get_an_integer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_an_integer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - nstep
    argTypes:
    - double
    - double
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: integrate
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: void
    signature: void integrate(double a, double b, double (*f)(double), long nstep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:537,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:538,1
    - Dst: Xalloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:539,1
    - Dst: Xfree
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:540,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - (*Xalloc)(int)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: _xxx_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - Xfree
    - printf
    - Xalloc
    linkageType: ''
    returnType: void
    signature: void _xxx_init(void *(*Xalloc)(int), void (*Xfree)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SysAllocString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pbstr
    argTypes:
    - BSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: GetString
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 4
    functionsReached:
    - SysAllocString
    linkageType: ''
    returnType: void
    signature: void GetString(BSTR *pbstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: py_func_si
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_func_si(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 575
    functionName: _py_func_si
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _py_func_si(char *s, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 580
    functionName: py_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_func(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: _py_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _py_func(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 586
    functionName: EXPORT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EXPORT(long long)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 587
    functionName: EXPORT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EXPORT(unsigned long long)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 3
    argNames:
    - bits
    - name
    - value
    argTypes:
    - struct BITS*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 623
    functionName: set_bitfields
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_bitfields(struct BITS *bits, char name, int value)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - bits
    - name
    argTypes:
    - struct BITS*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 649
    functionName: unpack_bitfields
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unpack_bitfields(struct BITS *bits, char name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 663
    functionName: tf_b
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_b(signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: tf_B
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_B(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 665
    functionName: tf_h
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_h(short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 666
    functionName: tf_H
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_H(unsigned short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 667
    functionName: tf_i
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_i(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 668
    functionName: tf_I
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_I(unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: tf_l
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_l(long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 670
    functionName: tf_L
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_L(unsigned long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 671
    functionName: tf_q
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_q(long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 672
    functionName: tf_Q
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_Q(unsigned long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 673
    functionName: tf_f
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_f(float c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 674
    functionName: tf_d
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_d(double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 675
    functionName: tf_D
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_D(long double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 678
    functionName: s_tf_b
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_b(signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    functionName: s_tf_B
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_B(unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 680
    functionName: s_tf_h
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_h(short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 681
    functionName: s_tf_H
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_H(unsigned short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 682
    functionName: s_tf_i
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_i(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 683
    functionName: s_tf_I
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_I(unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 684
    functionName: s_tf_l
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_l(long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 685
    functionName: s_tf_L
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_L(unsigned long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 686
    functionName: s_tf_q
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_q(long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 687
    functionName: s_tf_Q
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_Q(unsigned long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 688
    functionName: s_tf_f
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_f(float c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    functionName: s_tf_d
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_d(double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 690
    functionName: s_tf_D
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_D(long double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: tf_bb
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bb(signed char x, signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    functionName: tf_bB
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bB(signed char x, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 696
    functionName: tf_bh
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bh(signed char x, short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 697
    functionName: tf_bH
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bH(signed char x, unsigned short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 698
    functionName: tf_bi
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bi(signed char x, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    functionName: tf_bI
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bI(signed char x, unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 700
    functionName: tf_bl
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bl(signed char x, long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 701
    functionName: tf_bL
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bL(signed char x, unsigned long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: tf_bq
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bq(signed char x, long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 703
    functionName: tf_bQ
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bQ(signed char x, unsigned long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 704
    functionName: tf_bf
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bf(signed char x, float c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: tf_bd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bd(signed char x, double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    functionName: tf_bD
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tf_bD(signed char x, long double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 707
    functionName: tv_i
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void tv_i(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - signed char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    functionName: s_tf_bb
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bb(signed char x, signed char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 711
    functionName: s_tf_bB
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bB(signed char x, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 712
    functionName: s_tf_bh
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bh(signed char x, short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 713
    functionName: s_tf_bH
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bH(signed char x, unsigned short c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 714
    functionName: s_tf_bi
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bi(signed char x, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 715
    functionName: s_tf_bI
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bI(signed char x, unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    functionName: s_tf_bl
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bl(signed char x, long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 717
    functionName: s_tf_bL
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bL(signed char x, unsigned long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 718
    functionName: s_tf_bq
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bq(signed char x, long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: s_tf_bQ
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bQ(signed char x, unsigned long long c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 720
    functionName: s_tf_bf
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bf(signed char x, float c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: s_tf_bd
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bd(signed char x, double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - c
    argTypes:
    - signed char
    - long double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 722
    functionName: s_tf_bD
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tf_bD(signed char x, long double c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 723
    functionName: s_tv_i
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_tv_i(int c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - prc
    - pt
    argTypes:
    - RECT*
    - POINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 755
    functionName: PointInRect
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PointInRect(RECT *prc, POINT pt)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 8
    argNames:
    - i
    - ar
    - br
    - cp
    - dr
    - er
    - fp
    - gr
    argTypes:
    - int
    - RECT
    - RECT*
    - POINT
    - RECT
    - RECT*
    - POINT
    - RECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 798
    functionName: ReturnRect
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReturnRect(int i, RECT ar, RECT* br, POINT cp, RECT dr,\n                        RECT
      *er, POINT fp, RECT gr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inp
    argTypes:
    - S2H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 810
    functionName: ret_2h_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ret_2h_func(S2H inp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - inp
    argTypes:
    - S8I
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 827
    functionName: ret_8i_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ret_8i_func(S8I inp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - flag
    - prect
    argTypes:
    - int
    - RECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 838
    functionName: GetRectangle
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetRectangle(int flag, RECT *prect)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - pi
    - b
    - pj
    argTypes:
    - int
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: TwoOutArgs
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TwoOutArgs(int a, int *pi, int b, int *pj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 937
    functionName: TestSize1
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: TestSize2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 952
    functionName: TestSize3
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize3()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 961
    functionName: TestSize4
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize4()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 971
    functionName: TestSize5
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize5()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 982
    functionName: TestSize6
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize6()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 994
    functionName: TestSize7
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize7()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1007
    functionName: TestSize8
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize8()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1021
    functionName: TestSize9
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize9()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1036
    functionName: TestSize10
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestSize10()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_2h_func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inp
    argTypes:
    - S2H
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1041
    functionName: s_ret_2h_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - ret_2h_func
    linkageType: ''
    returnType: void
    signature: void s_ret_2h_func(S2H inp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_8i_func
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1042
    functionName: (S8I inp)
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - ret_8i_func
    linkageType: ''
    returnType: s_ret_8i_func
    signature: s_ret_8i_func (S8I inp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:1054,1
    - Dst: IUnknown*::lpVtbl::Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - punk
    argTypes:
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1059
    functionName: KeepObject
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - IUnknown*::lpVtbl::AddRef
    - IUnknown*::lpVtbl::Release
    linkageType: ''
    returnType: void
    signature: void KeepObject(IUnknown *punk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: PyInit__ctypes_test
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ctypes_test(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:93,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: pymem_destructor
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyCapsule_GetPointer
    linkageType: ''
    returnType: void
    signature: void pymem_destructor(PyObject *ptr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:136,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:140,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:145,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:149,1
    - Dst: PyCapsule_IsValid
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:152,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:158,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:159,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:162,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:163,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:165,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:168,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:170,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:177,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - pspace
    argTypes:
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 179
    functionName: _ctypes_get_errobj
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyCapsule_IsValid
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyCapsule_GetPointer
    - PyCapsule_New
    - PyDict_SetItem
    - PyMem_Free
    - PyErr_SetString
    - PyUnicode_InternFromString
    - PyMem_Malloc
    - PyThreadState_GetDict
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ctypes_get_errobj(int **pspace)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_get_errobj
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:185,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - index
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: get_error_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _ctypes_get_errobj
    - PyLong_FromLong
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_error_internal(PyObject *self, PyObject *args, int index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:202,1
    - Dst: _ctypes_get_errobj
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:205,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:210,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - index
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: set_error_internal
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _ctypes_get_errobj
    - Py_DECREF
    - PyArg_ParseTuple
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_error_internal(PyObject *self, PyObject *args, int index)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:217,1
    - Dst: get_error_internal
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: get_errno
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_error_internal
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_errno(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:226,1
    - Dst: set_error_internal
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: set_errno
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - set_error_internal
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_errno(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:237,1
    - Dst: get_error_internal
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: get_last_error
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - get_error_internal
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_last_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:246,1
    - Dst: set_error_internal
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: set_last_error
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - set_error_internal
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_last_error(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:258,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:263,1
    - Dst: iswspace
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 273
    functionName: FormatError
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - iswspace
    - MAKELANGID
    - FormatMessageW
    linkageType: ''
    returnType: WCHAR
    signature: WCHAR *FormatError(DWORD code)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:278,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:293,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:297,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:304,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:314,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:321,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:329,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:338,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:345,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:352,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:367,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:381,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:389,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:396,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:403,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:411,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:418,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:423,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - code
    - pr
    argTypes:
    - DWORD
    - EXCEPTION_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 426
    functionName: SetException
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_Format
    - PyErr_SetFromWindowsErr
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void SetException(DWORD code, EXCEPTION_RECORD *pr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptrs
    - pdw
    - record
    argTypes:
    - EXCEPTION_POINTERS*
    - DWORD*
    - EXCEPTION_RECORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 439
    functionName: HandleException
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: "DWORD HandleException(EXCEPTION_POINTERS *ptrs,\n                             DWORD
      *pdw, EXCEPTION_RECORD *record)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:446,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:448,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:449,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: check_hresult
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - FAILED
    - PyErr_SetFromWindowsErr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      check_hresult(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:461,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: PyCArgObject_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - memset
    - PyObject_New
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCArgObject_new(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:474,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCArgObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 476
    functionName: PyCArg_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyCArg_dealloc(PyCArgObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_IsPrintable
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: is_literal_char
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsPrintable
    linkageType: ''
    returnType: int
    signature: int is_literal_char(unsigned char c)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:491,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:496,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:501,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:506,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:512,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:521,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:525,1
    - Dst: is_literal_char
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:530,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:531,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:535,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:547,1
    - Dst: is_literal_char
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:552,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:553,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:557,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:562,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCArgObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 563
    functionName: PyCArg_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - is_literal_char
    - PyUnicode_FromString
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArg_repr(PyCArgObject *self)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:660,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:663,1
    - Dst: StgDictObject*::paramfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:665,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:669,1
    - Dst: PyCArg_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:674,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:677,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:679,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:690,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:692,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:693,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:694,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:695,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:696,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:697,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:705,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:707,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:708,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:714,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:716,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:719,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:721,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:729,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:731,1
    - Dst: ConvParam
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:741,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:742,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:745,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:747,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 3
    argNames:
    - obj
    - index
    - pa
    argTypes:
    - PyObject*
    - Py_ssize_t
    - struct argument*
    assertStmts:
    - condition: (dict->paramfunc)
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    constantsTouched: []
    func_position:
      end: 750
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 750
    functionName: ConvParam
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 1
    functionsReached:
    - PyObject_stgdict
    - PyLong_AsLong
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - ConvParam
    - StgDictObject*::paramfunc
    - Py_SAFE_DOWNCAST
    - PyLong_AsUnsignedLong
    - PyErr_Occurred
    - PyCArg_CheckExact
    - Py_INCREF
    - PyCapsule_New
    - PyErr_Format
    - assert
    - PyErr_Clear
    - PyLong_Check
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyBytes_AsString
    - PyMem_Free
    - memcpy
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 761
    functionName: can_return_struct_as_int
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int can_return_struct_as_int(size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 771
    functionName: can_return_struct_as_sint64
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int can_return_struct_as_sint64(size_t s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:780,1
    - Dst: can_return_struct_as_int
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:788,1
    - Dst: can_return_struct_as_sint64
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:790,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 795
    functionName: _ctypes_get_ffi_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - can_return_struct_as_sint64
    - can_return_struct_as_int
    linkageType: ''
    returnType: ffi_type
    signature: ffi_type *_ctypes_get_ffi_type(PyObject *obj)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:923,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:929,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:931,1
    - Dst: _ctypes_simple_instance
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:933,1
    - Dst: StgDictObject*::getfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:934,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:940,1
    - Dst: PyCData_FromBaseObj
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:943,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:948,1
    - Dst: _PyTraceback_Add
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - restype
    - result
    - checker
    argTypes:
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 953
    functionName: GetResult
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyType_stgdict
    - Py_DECREF
    - _ctypes_simple_instance
    - PyObject_CallFunctionObjArgs
    - PyObject_CallFunction
    - StgDictObject*::getfunc
    - _PyTraceback_Add
    - PyCData_FromBaseObj
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: PyObject *GetResult(PyObject *restype, void *result, PyObject *checker)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:964,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:965,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:966,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:970,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:971,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:972,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:974,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:975,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:975,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:979,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:980,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:982,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:984,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:985,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:985,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:989,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:991,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:992,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:993,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:994,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - exc_class
    - fmt
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 995
    functionName: _ctypes_extend_error
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - va_start
    - PyUnicode_FromString
    - PyUnicode_AppendAndDel
    - PyErr_Fetch
    - Py_XDECREF
    - PyErr_SetObject
    - PyObject_Str
    - PyErr_NormalizeException
    - PyUnicode_FromFormatV
    - PyErr_Clear
    - va_end
    linkageType: ''
    returnType: void
    signature: void _ctypes_extend_error(PyObject *exc_class, const char *fmt, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IUnknown*::lpVtbl::QueryInterface
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1018,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1019,1
    - Dst: ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1022,1
    - Dst: ISupportErrorInfo*::lpVtbl::Release
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1023,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1024,1
    - Dst: GetErrorInfo
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1027,1
    - Dst: IErrorInfo*::lpVtbl::GetDescription
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1031,1
    - Dst: IErrorInfo*::lpVtbl::GetGUID
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1032,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpContext
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1033,1
    - Dst: IErrorInfo*::lpVtbl::GetHelpFile
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1034,1
    - Dst: IErrorInfo*::lpVtbl::GetSource
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1035,1
    - Dst: IErrorInfo*::lpVtbl::Release
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1037,1
    - Dst: ProgIDFromCLSID
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1043,1
    - Dst: FormatError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1045,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1046,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1053,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1054,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1056,1
    - Dst: SysFreeString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1059,1
    - Dst: SysFreeString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1061,1
    - Dst: SysFreeString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1063,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - errcode
    - riid
    - pIunk
    argTypes:
    - HRESULT
    - GUID*
    - IUnknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1066
    functionName: GetComError
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - IErrorInfo*::lpVtbl::Release
    - Py_BuildValue
    - ProgIDFromCLSID
    - Py_DECREF
    - SysFreeString
    - ISupportErrorInfo*::lpVtbl::Release
    - IErrorInfo*::lpVtbl::GetGUID
    - IErrorInfo*::lpVtbl::GetHelpFile
    - IErrorInfo*::lpVtbl::GetSource
    - FormatError
    - LocalFree
    - PyErr_SetObject
    - ISupportErrorInfo*::lpVtbl::InterfaceSupportsErrorInfo
    - GetErrorInfo
    - IErrorInfo*::lpVtbl::GetHelpContext
    - IErrorInfo*::lpVtbl::GetDescription
    - FAILED
    - IUnknown*::lpVtbl::QueryInterface
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1073
    functionName: POW2
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POW2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1074
    functionName: IS_PASS_BY_REF
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PASS_BY_REF(x)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1104,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1111,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1113,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1116,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1117,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1133,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1140,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1141,1
    - Dst: _ctypes_extend_error
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1143,1
    - Dst: ConvParam
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1147,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1148,1
    - Dst: _ctypes_extend_error
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1150,1
    - Dst: ConvParam
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1154,1
    - Dst: _ctypes_extend_error
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1156,1
    - Dst: _ctypes_get_ffi_type
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1162,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1163,1
    - Dst: max
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1163,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1169,1
    - Dst: max
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1169,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1172,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1173,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1175,1
    - Dst: IS_PASS_BY_REF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1182,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1183,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1185,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1187,1
    - Dst: _call_function_pointer
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1199,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1201,1
    - Dst: GetComError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1226,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1228,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1231,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1233,1
    - Dst: GetResult
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1236,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1239,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 88
    argCount: 8
    argNames:
    - pProc
    - argtuple
    - pIunk
    - iid
    - flags
    - argtypes
    - restype
    - checker
    argTypes:
    - PPROC
    - PyObject*
    - MS_WIN32*
    - GUID*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1241
    functionName: _ctypes_callproc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - GetComError
    - PyTuple_GET_SIZE
    - GetResult
    - ConvParam
    - Py_SAFE_DOWNCAST
    - IS_PASS_BY_REF
    - max
    - alloca
    - Py_XDECREF
    - PyErr_SetFromWindowsErr
    - memset
    - Py_DECREF
    - _call_function_pointer
    - _ctypes_get_ffi_type
    - _ctypes_extend_error
    - __msan_unpoison
    - memcpy
    - PyErr_NoMemory
    - PyObject_CallFunctionObjArgs
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_ctypes_callproc(PPROC pProc,\n                    PyObject
      *argtuple,\n#ifdef MS_WIN32\n                    IUnknown *pIunk,\n                    GUID
      *iid,\n#endif\n                    int flags,\n                    PyObject
      *argtypes, /* misleading name: This is a tuple of\n                                           methods,
      not types: the .from_param\n                                           class
      methods of the types */\n            PyObject *restype,\n            PyObject
      *checker)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - address
    argTypes:
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1250
    functionName: _parse_voidp
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: int
    signature: int _parse_voidp(PyObject *obj, void **address)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1264,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1267,1
    - Dst: FormatError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1268,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1270,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1270,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1271,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1276
    functionName: format_error
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyUnicode_FromString
    - FormatError
    - LocalFree
    - PyUnicode_FromWideChar
    - PyArg_ParseTuple
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: PyObject *format_error(PyObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1293,1
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1296,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1300,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1308,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1309,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1313,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1320,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1323,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1327
    functionName: load_library
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - LoadLibraryExW
    - PyErr_SetFromWindowsErr
    - Py_BuildValue
    - _PyUnicode_AsUnicode
    - PyLong_FromVoidPtr
    - PyErr_Format
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *load_library(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1319
    functionDepth: 1
    functionLinenumber: 1319
    functionLinenumberEnd: 1321
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: else
    signature: else if (err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1338,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1342,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1343,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1350
    functionName: free_library
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - PyErr_SetFromWindowsErr
    - PyArg_ParseTuple
    - FreeLibrary
    linkageType: ''
    returnType: PyObject
    signature: PyObject *free_library(PyObject *self, PyObject *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1361,1
    - Dst: ConvParam
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1365,1
    - Dst: ConvParam
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1365,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1371,1
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1374,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1379,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1355
    functionDepth: 2
    functionLinenumber: 1355
    functionLinenumberEnd: 1382
    functionName: copy_com_pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ConvParam
    - IUnknown*::lpVtbl::AddRef
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      copy_com_pointer(PyObject *self, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1396,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1400,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1402,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1403,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1405,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1410,1
    - Dst: ctypes_dlopen
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1414,1
    - Dst: ctypes_dlerror
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1416,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1419,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1424
    functionName: py_dl_open
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - ctypes_dlerror
    - ctypes_dlopen
    - PyLong_FromVoidPtr
    - PyBytes_Check
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyUnicode_FSConverter
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_open(PyObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1430,1
    - Dst: dlclose
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1432,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1433,1
    - Dst: ctypes_dlerror
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1438
    functionName: py_dl_close
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - ctypes_dlerror
    - dlclose
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_close(PyObject *self, PyObject *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1446,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1449,1
    - Dst: ctypes_dlsym
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1454,1
    - Dst: ctypes_dlerror
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1455,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1459
    functionName: py_dl_sym
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - ctypes_dlerror
    - PyLong_FromVoidPtr
    - ctypes_dlsym
    - PyErr_SetString
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject *py_dl_sym(PyObject *self, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1474,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1479,1
    - Dst: _ctypes_callproc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1467
    functionDepth: 4
    functionLinenumber: 1467
    functionLinenumberEnd: 1495
    functionName: call_function
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyArg_ParseTuple
    - _ctypes_callproc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_function(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1509,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1514,1
    - Dst: _ctypes_callproc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1530
    functionName: call_cdeclfunction
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyArg_ParseTuple
    - _ctypes_callproc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_cdeclfunction(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1545,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1547,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1549,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1550,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1540
    functionDepth: 1
    functionLinenumber: 1540
    functionLinenumberEnd: 1554
    functionName: sizeof_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyLong_FromSsize_t
    - CDataObject_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sizeof_func(PyObject *self, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1566,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1568,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1570,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1572,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1561
    functionDepth: 1
    functionLinenumber: 1561
    functionLinenumberEnd: 1577
    functionName: align_func
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyLong_FromSsize_t
    - PyObject_stgdict
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      align_func(PyObject *self, PyObject *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1596,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1600,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1601,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1604,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1605,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1607,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1611,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1617,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1621
    functionName: byref
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - PyErr_Format
    - Py_TYPE
    - PyCArgObject_new
    - PyArg_UnpackTuple
    - PyNumber_AsSsize_t
    - CDataObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      byref(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1630,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1631,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1635,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1639
    functionName: addressof
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    - PySys_Audit
    - CDataObject_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      addressof(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - obj
    - address
    argTypes:
    - PyObject*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1646
    functionName: converter
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 11
    functionsReached:
    - PyLong_AsVoidPtr
    linkageType: ''
    returnType: int
    signature: int converter(PyObject *obj, void **address)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1652,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1655,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1660
    functionName: My_PyObj_FromPtr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_PyObj_FromPtr(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1665,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1668
    functionName: My_Py_INCREF
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_Py_INCREF(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1673,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1676
    functionName: My_Py_DECREF
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      My_Py_DECREF(PyObject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1685,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1690,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1692,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1697,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1703,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1712,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1715,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1717,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1718,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1719,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1723,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1731
    functionName: resize
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 25
    functionsReached:
    - PyObject_stgdict
    - _CDataObject_HasExternalBuffer
    - PyErr_NoMemory
    - PyMem_Realloc
    - PyErr_Format
    - PyErr_SetString
    - memmove
    - PyMem_Malloc
    - PyArg_ParseTuple
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resize(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1737,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1738,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1740,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1742,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1746,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1756,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1763
    functionName: unpickle
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyObject_Call
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpickle(PyObject *self, PyObject *args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1773,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1775,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1778,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1781,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1782,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1785,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1785,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1787,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1788,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1789,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1789,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1793,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1796,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1798,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1801,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1803,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1803,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1805,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1806,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1807,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1807,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1812,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1815,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1818,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1821,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1826,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - self
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1828
    functionName: POINTER
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 1
    functionsReached:
    - sprintf
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_AsUTF8
    - PyErr_NoMemory
    - strlen
    - PyType_Check
    - PyObject_CallFunction
    - Py_TYPE
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - PyDict_SetItem
    - PyLong_FromVoidPtr
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      POINTER(PyObject *self, PyObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1836,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1836,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1838,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1840,1
    - Dst: POINTER
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1843,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1843,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1846,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1830
    functionDepth: 2
    functionLinenumber: 1830
    functionLinenumberEnd: 1849
    functionName: pointer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 3
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - POINTER
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pointer(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1854,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1859,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1861,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1865,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1869,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1869,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1872,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ctypes/callproc.c:1875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1876
    functionName: buffer_info
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyObject_stgdict
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      buffer_info(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemInfo
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:42,1
    - Dst: sysconf
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:48,1
    - Dst: getpagesize
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:50,1
    - Dst: VirtualAlloc
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:60,1
    - Dst: mmap
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:67,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 87
    functionName: more_core
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
    functionUses: 0
    functionsReached:
    - mmap
    - getpagesize
    - printf
    - GetSystemInfo
    - VirtualAlloc
    - sysconf
    linkageType: ''
    returnType: void
    signature: void more_core(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: ffi_closure_free
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ffi_closure_free(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: more_core
      Src: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ignored
    - codeloc
    argTypes:
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 116
    functionName: ffi_closure_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
    functionUses: 0
    functionsReached:
    - more_core
    linkageType: ''
    returnType: void
    signature: void *ffi_closure_alloc(size_t ignored, void** codeloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_init
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - StgDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: PyCStgDict_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - tp_init
    linkageType: ''
    returnType: int
    signature: int PyCStgDict_init(StgDictObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:33,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:34,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:35,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:36,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - StgDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: PyCStgDict_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PyCStgDict_clear(StgDictObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCStgDict_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:44,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:45,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:46,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:47,1
    - Dst: tp_dealloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - StgDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: PyCStgDict_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - PyCStgDict_clear
    - PyMem_Free
    - tp_dealloc
    linkageType: ''
    returnType: void
    signature: void PyCStgDict_dealloc(StgDictObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_SizeOf
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:56,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:59,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - StgDictObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: PyCStgDict_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyLong_FromSsize_t
    - _PyDict_SizeOf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCStgDict_sizeof(StgDictObject *self, void *unused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCStgDict_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:72,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:73,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:74,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:76,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:82,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:86,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:87,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:88,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:89,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:90,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:93,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:93,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:95,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:98,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:101,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:103,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:106,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:113,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:115,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - StgDictObject*
    - StgDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 122
    functionName: PyCStgDict_clone
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - strcpy
    - memcpy
    - PyErr_NoMemory
    - strlen
    - PyCStgDict_clear
    - PyMem_Free
    - PyMem_Malloc
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int PyCStgDict_clone(StgDictObject *dst, StgDictObject *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:177,1
    - Dst: PyCStgDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: PyType_stgdict
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 6
    functionsReached:
    - PyCStgDict_CheckExact
    - PyType_Check
    linkageType: ''
    returnType: StgDictObject
    signature: 'StgDictObject *

      PyType_stgdict(PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCStgDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: PyObject_stgdict
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 4
    functionsReached:
    - PyCStgDict_CheckExact
    linkageType: ''
    returnType: StgDictObject
    signature: 'StgDictObject *

      PyObject_stgdict(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:211,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:215,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:219,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:220,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:226,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:231,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:234,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:237,1
    - Dst: MakeFields
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:241,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:246,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:257,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:257,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:266,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:268,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:275,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 4
    argNames:
    - type
    - descr
    - index
    - offset
    argTypes:
    - PyObject*
    - CFieldObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (Py_TYPE(new_descr) == &PyCField_Type)
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    constantsTouched: []
    func_position:
      end: 277
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 277
    functionName: MakeFields
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 1
    functionsReached:
    - MakeFields
    - Py_DECREF
    - PyObject_GetAttrString
    - PyObject_SetAttr
    - PySequence_Fast_GET_ITEM
    - PyObject_GetAttr
    - Py_TYPE
    - PySequence_Fast
    - PyErr_SetString
    - assert
    - _PyObject_CallNoArg
    - Py_XINCREF
    - PyArg_ParseTuple
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: "int MakeFields(PyObject *type, CFieldObject *descr,\n           Py_ssize_t
      index, Py_ssize_t offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:284,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:289,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:296,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:300,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:301,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:304,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:307,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:313,1
    - Dst: MakeFields
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:319,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:322,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 331
    functionName: MakeAnonFields
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - MakeFields
    - Py_DECREF
    - PySequence_Fast_GET_ITEM
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyErr_Format
    - PySequence_Fast
    - PyObject_GetAttr
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int MakeAnonFields(PyObject *type)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:340,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:341,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:342,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:370,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:377,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:383,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:390,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:396,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:398,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:399,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:400,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:402,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:413,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:415,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:416,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:422,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:429,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:435,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:440,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:442,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:456,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:458,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:461,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:464,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:476,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:478,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:481,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:486,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:488,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:493,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:501,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:506,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:507,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:509,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:512,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:516,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:517,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:527,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:540,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:542,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:551,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:557,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:565,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:572,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:576,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:576,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:580,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:581,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:584,1
    - Dst: _ctypes_alloc_format_string_with_shape
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:588,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:591,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:593,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:597,1
    - Dst: PyCField_FromDesc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:603,1
    - Dst: PyCField_FromDesc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:611,1
    - Dst: max
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:615,1
    - Dst: max
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:617,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:620,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:625,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:629,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:635,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:636,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:647,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:724,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:731,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:732,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:734,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:737,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:739,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:740,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:745,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:754,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:756,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:757,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:770,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:783,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:786,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:801,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:804,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:813,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:818,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:827,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:828,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:830,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:831,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:834,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:837,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:838,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:839,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:844,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:845,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:853,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:855,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:856,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:857,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:870,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:874,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:877,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:885,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:886,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:893,1
    - Dst: MakeAnonFields
      Src: /src/Python-3.8.3/Modules/_ctypes/stgdict.c:899,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 316
    argCount: 3
    argNames:
    - type
    - fields
    - isStruct
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (stgdict->ffi_type_pointer.elements)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    - condition: (dummy_index < (num_ffi_type_pointers))
      pos:
        line_end: 873
        line_start: 873
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    - condition: (element_index < (ffi_ofs + len))
      pos:
        line_end: 843
        line_start: 843
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    - condition: (stgdict->format == NULL)
      pos:
        line_end: 485
        line_start: 485
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    - condition: (dummy_index < (num_ffi_type_pointers))
      pos:
        line_end: 869
        line_start: 869
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    constantsTouched: []
    func_position:
      end: 900
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 900
    functionName: PyCStructUnionType_update_stgdict
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - sprintf
    - PyObject_SetAttr
    - PyCField_FromDesc
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _ctypes_get_fielddesc
    - Py_SAFE_DOWNCAST
    - PyErr_Occurred
    - _ctypes_alloc_format_string
    - strlen
    - PyErr_Format
    - PyErr_ExceptionMatches
    - max
    - assert
    - Py_XDECREF
    - PyArg_ParseTuple
    - memset
    - PyType_stgdict
    - Py_DECREF
    - PySequence_Size
    - PyMem_Free
    - MakeAnonFields
    - PyCArrayTypeObject_Check
    - memcpy
    - _ctypes_alloc_format_string_with_shape
    - PyErr_NoMemory
    - PySequence_GetItem
    - PyErr_SetString
    - PyTuple_Size
    - PyMem_Malloc
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields,
      int isStruct)
  - 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: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: max
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: min
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: CThunk_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CThunk_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: PyCStgDict_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCStgDict_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: PyCStgDict_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCStgDict_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: CDataObject_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDataObject_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: CDataObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CDataObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: _CDataObject_HasExternalBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _CDataObject_HasExternalBuffer(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: PyCSimpleTypeObject_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCSimpleTypeObject_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: PyCSimpleTypeObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCSimpleTypeObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: PyCArrayTypeObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCArrayTypeObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: ArrayObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ArrayObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: PointerObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PointerObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: PyCPointerTypeObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCPointerTypeObject_Check(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: PyCFuncPtrObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFuncPtrObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: PyCFuncPtrTypeObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFuncPtrTypeObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: PyCStructTypeObject_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCStructTypeObject_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: PyCArg_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCArg_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: IS_INTRESOURCE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INTRESOURCE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:143,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:144,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: _DictRemover_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _DictRemover_dealloc(PyObject *myself)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:153,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:154,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:156,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - myself
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: _DictRemover_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - _PyErr_WriteUnraisableMsg
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _DictRemover_call(PyObject *myself, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:213,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:218,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:219,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:220,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:222,1
    - Dst: PyWeakref_NewProxy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:226,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - dict
    - key
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (remover->dict == NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (remover->key == NULL)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: PyDict_SetItemProxy
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyWeakref_NewProxy
    - Py_DECREF
    - Py_INCREF
    - PyDict_SetItem
    - assert
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItemProxy(PyObject *dict, PyObject *key, PyObject *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:239,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:243,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dict
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: PyDict_GetItemProxy
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckProxy
    - PyDict_GetItemWithError
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemProxy(PyObject *dict, PyObject *key)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:307,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:309,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 2
    argNames:
    - code
    - big_endian
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 317
    functionName: _ctypes_alloc_format_string_for_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_alloc_format_string_for_type(char code, int big_endian)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:332,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:332,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:335,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:337,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:338,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:340,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:344,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - prefix
    - suffix
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: _ctypes_alloc_format_string
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - strcpy
    - PyErr_Occurred
    - PyErr_NoMemory
    - strcat
    - strlen
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: char
    signature: 'char *

      _ctypes_alloc_format_string(const char *prefix, const char *suffix)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:369,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:370,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:372,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:377,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:380,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:383,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:385,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:387,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:390,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:391,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - ndim
    - shape
    - prefix
    - suffix
    argTypes:
    - int
    - Py_ssize_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 393
    functionName: _ctypes_alloc_format_string_with_shape
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - strcpy
    - _ctypes_alloc_format_string
    - PyErr_NoMemory
    - strcat
    - strlen
    - PyMem_Free
    - PyMem_Malloc
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\n_ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t
      *shape,\n                                       const char *prefix, const char
      *suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:410,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: StructParam_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void StructParam_dealloc(PyObject *myself)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:440,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:444,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:449,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:451,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:460,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:463,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:465,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:470,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 470
        line_start: 470
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 477
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 477
    functionName: StructUnionType_paramfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - memcpy
    - Py_DECREF
    - Py_INCREF
    - tp_alloc
    - PyMem_Free
    - PyCArgObject_new
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      StructUnionType_paramfunc(CDataObject *self)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:485,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:486,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:490,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:495,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:498,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:502,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:504,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:512,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:514,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:517,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:518,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:520,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:526,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:528,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:529,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:534,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:535,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:539,1
    - Dst: PyCStgDict_clone
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:545,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 4
    argNames:
    - type
    - args
    - kwds
    - isStruct
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 552
    functionName: StructUnionType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - _PyObject_SetAttrId
    - PyType_stgdict
    - PyErr_Occurred
    - Py_DECREF
    - PyCStgDict_clone
    - _ctypes_alloc_format_string
    - _Py_IDENTIFIER
    - tp_new
    - Py_SETREF
    - _PyObject_CallNoArg
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      StructUnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds, int
      isStruct)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StructUnionType_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 558
    functionName: PyCStructType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - StructUnionType_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCStructType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StructUnionType_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: UnionType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 2
    functionsReached:
    - StructUnionType_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnionType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:574,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:579,1
    - Dst: PyCData_AtAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 582
    functionName: CDataType_from_address
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyCData_AtAddress
    - PyLong_AsVoidPtr
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_address(PyObject *type, PyObject *value)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:599,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:601,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:605,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:608,1
    - Dst: PyMemoryView_GET_BUFFER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:612,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:615,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:617,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:624,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:629,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:631,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:636,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:640,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:644,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:646,1
    - Dst: PyCData_AtAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:652,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:657,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 662
    functionName: CDataType_from_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyMemoryView_GET_BUFFER
    - Py_DECREF
    - PyBuffer_IsContiguous
    - PyCData_AtAddress
    - PyErr_Format
    - PyErr_SetString
    - KeepRef
    - PySys_Audit
    - PyMemoryView_FromObject
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_buffer(PyObject *type, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:676,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:678,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:682,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:686,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:688,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:693,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:696,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:700,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:702,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:706,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:708,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 713
    functionName: CDataType_from_buffer_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - memcpy
    - PyErr_Format
    - PyBuffer_Release
    - PyErr_SetString
    - GenericPyCData_new
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_buffer_copy(PyObject *type, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:727,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:729,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:733,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:736,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:737,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:739,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:742,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:743,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:744,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:745,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:752,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:755,1
    - Dst: ctypes_dlsym
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:761,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:769,1
    - Dst: ctypes_dlerror
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:769,1
    - Dst: PyCData_AtAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 775
    functionName: CDataType_in_dll
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - GetProcAddress
    - ctypes_dlerror
    - PyCData_AtAddress
    - PyLong_AsVoidPtr
    - ctypes_dlsym
    - PyErr_Format
    - PyErr_SetString
    - PySys_Audit
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_in_dll(PyObject *type, PyObject *args)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:783,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:785,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:789,1
    - Dst: PyCArg_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:792,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:797,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:802,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:806,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:810,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:811,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:817,1
    - Dst: CDataType_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:821,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:822,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:825,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:828,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 830
    functionName: CDataType_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - PyObject_IsInstance
    - CDataType_from_param
    - Py_DECREF
    - PyCArg_CheckExact
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_from_param(PyObject *type, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:845,1
    - Dst: PyCArrayType_from_ctype
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: CDataType_repeat
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCArrayType_from_ctype
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CDataType_repeat(PyObject *self, Py_ssize_t length)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:868,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:870,1
    - Dst: tp_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 872
    functionName: CDataType_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - tp_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int CDataType_clear(PyTypeObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:877,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:879,1
    - Dst: tp_traverse
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:880,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyTypeObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 881
    functionName: CDataType_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - Py_VISIT
    - tp_traverse
    linkageType: ''
    returnType: int
    signature: int CDataType_traverse(PyTypeObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tp_setattro
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:887,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:890,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:891,1
    - Dst: PyCStructUnionType_update_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:892,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 883
    functionDepth: 4
    functionLinenumber: 883
    functionLinenumberEnd: 894
    functionName: PyCStructType_setattro
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyCStructUnionType_update_stgdict
    - _PyUnicode_EqualToASCIIString
    - tp_setattro
    linkageType: ''
    returnType: int
    signature: int PyCStructType_setattro(PyObject *self, PyObject *key, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GenericSetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:901,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:904,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:905,1
    - Dst: PyCStructUnionType_update_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 897
    functionDepth: 4
    functionLinenumber: 897
    functionLinenumberEnd: 908
    functionName: UnionType_setattro
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyCStructUnionType_update_stgdict
    - _PyUnicode_EqualToASCIIString
    - PyObject_GenericSetAttr
    linkageType: ''
    returnType: int
    signature: int UnionType_setattro(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1015,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1016,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1020,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1021,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1025,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - stgdict
    - proto
    argTypes:
    - StgDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1028
    functionName: PyCPointerType_SetProto
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - Py_INCREF
    - Py_XSETREF
    - PyType_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCPointerType_SetProto(StgDictObject *stgdict, PyObject *proto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1035,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1045
    functionName: PyCPointerType_paramfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCArgObject_new
    - Py_INCREF
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCPointerType_paramfunc(CDataObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1054,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1056,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1063,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1068,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1074,1
    - Dst: PyCPointerType_SetProto
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1078,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1079,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1082,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1084,1
    - Dst: _ctypes_alloc_format_string_with_shape
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1093,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1096,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1099,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1104,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1110,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1112,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1117,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1119,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (itemdict)
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1125
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1125
    functionName: PyCPointerType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyType_stgdict
    - PyObject_CallObject
    - assert
    - PyErr_Occurred
    - Py_DECREF
    - _ctypes_alloc_format_string_with_shape
    - _ctypes_alloc_format_string
    - _Py_IDENTIFIER
    - PyCPointerType_SetProto
    - tp_new
    - Py_SETREF
    - PyTuple_GetItem
    - PyDict_Update
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCPointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1132,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1136,1
    - Dst: PyCPointerType_SetProto
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1141,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - type
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1128
    functionDepth: 3
    functionLinenumber: 1128
    functionLinenumberEnd: 1148
    functionName: PyCPointerType_set_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyCPointerType_SetProto
    - _PyDict_SetItemId
    - _Py_IDENTIFIER
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCPointerType_set_type(PyTypeObject *self, PyObject *type)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1159,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1165,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1175,1
    - Dst: _byref
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1176,1
    - Dst: PointerObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1183,1
    - Dst: ArrayObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1183,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1187,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1188,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1189,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1194,1
    - Dst: CDataType_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (v)
      pos:
        line_end: 1187
        line_start: 1187
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1199
      start: 1152
    functionDepth: 3
    functionLinenumber: 1152
    functionLinenumberEnd: 1199
    functionName: PyCPointerType_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PointerObject_Check
    - PyObject_IsInstance
    - PyObject_stgdict
    - CDataType_from_param
    - ArrayObject_Check
    - Py_INCREF
    - _byref
    - PyObject_IsSubclass
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCPointerType_from_param(PyObject *type, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1271,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1279,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1284,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1286,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1263
    functionDepth: 1
    functionLinenumber: 1263
    functionLinenumberEnd: 1291
    functionName: CharArray_set_raw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - memcpy
    - PyBuffer_Release
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int CharArray_set_raw(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: CharArray_get_raw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CharArray_get_raw(CDataObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1308
    functionName: CharArray_get_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      CharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1317,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1322,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1323,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1325,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1328,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1329,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1333,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1337,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1344
    functionName: CharArray_set_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - Py_INCREF
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int CharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1364
    functionName: WCharArray_get_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      WCharArray_get_value(CDataObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1372,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1376,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1377,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1379,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1382,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1384,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1391,1
    - Dst: PyUnicode_AsWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1404
    functionName: WCharArray_set_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_AsWideChar
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int WCharArray_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_NewGetSet
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1464,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - type
    - gsp
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1474
    functionName: add_getset
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyDescr_NewGetSet
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int add_getset(PyTypeObject *type, PyGetSetDef *gsp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1479,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1476
    functionDepth: 2
    functionLinenumber: 1476
    functionLinenumberEnd: 1488
    functionName: PyCArrayType_paramfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCArgObject_new
    - Py_INCREF
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCArrayType_paramfunc(CDataObject *self)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1493,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1494,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1504,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1513,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1517,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1524,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1529,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1531,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1537,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1538,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1539,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1540,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1546,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1550,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1555,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1560,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1562,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1567,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1568,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1572,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1574,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1579,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1585,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1607,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1609,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1615,1
    - Dst: add_getset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1616,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1619,1
    - Dst: add_getset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1620,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1627,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1629,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 111
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (itemdict->format)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1631
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1631
    functionName: PyCArrayType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - _PyLong_Sign
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _ctypes_get_fielddesc
    - add_getset
    - PyErr_Occurred
    - _ctypes_alloc_format_string
    - PyLong_AsSsize_t
    - PyErr_ExceptionMatches
    - tp_new
    - memmove
    - assert
    - Py_XDECREF
    - PyLong_Check
    - PyType_stgdict
    - Py_DECREF
    - Py_SETREF
    - PyDict_Update
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArrayType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1692,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1698,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1700,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1702,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1707,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1709,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1714,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1718,1
    - Dst: ArrayObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1721,1
    - Dst: PointerObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1721,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1723,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1725,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1726,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1727,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1728,1
    - Dst: PyCArg_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1732,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1735,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1736,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1737,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1742,1
    - Dst: c_wchar_p_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1747,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1751,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dt)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1754
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1754
    functionName: c_wchar_p_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PointerObject_Check
    - PyObject_stgdict
    - PyObject_IsInstance
    - PyType_stgdict
    - Py_DECREF
    - ArrayObject_Check
    - Py_INCREF
    - PyCArg_CheckExact
    - _PyObject_LookupAttrId
    - struct fielddesc*::setfunc
    - _Py_IDENTIFIER
    - c_wchar_p_from_param
    - PyCArgObject_new
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_wchar_p_from_param(PyObject *type, PyObject *value)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1759,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1765,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1767,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1769,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1774,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1776,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1781,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1785,1
    - Dst: ArrayObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1788,1
    - Dst: PointerObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1788,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1790,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1792,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1793,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1794,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1795,1
    - Dst: PyCArg_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1799,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1802,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1803,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1804,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1809,1
    - Dst: c_char_p_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1814,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1818,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dt)
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 1821
      start: 1756
    functionDepth: 2
    functionLinenumber: 1756
    functionLinenumberEnd: 1821
    functionName: c_char_p_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PointerObject_Check
    - PyObject_stgdict
    - PyObject_IsInstance
    - PyType_stgdict
    - Py_DECREF
    - ArrayObject_Check
    - Py_INCREF
    - PyCArg_CheckExact
    - _PyObject_LookupAttrId
    - struct fielddesc*::setfunc
    - _Py_IDENTIFIER
    - PyBytes_Check
    - c_char_p_from_param
    - PyCArgObject_new
    - PyErr_SetString
    - assert
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_char_p_from_param(PyObject *type, PyObject *value)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1826,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1837,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1839,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1841,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1846,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1848,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1855,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1857,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1859,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1864,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1866,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1872,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1874,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1876,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1883,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1889,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1894,1
    - Dst: ArrayObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1898,1
    - Dst: PointerObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1898,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1900,1
    - Dst: PyCArg_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1904,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1908,1
    - Dst: PyCFuncPtrObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1913,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1917,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1922,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1928,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1929,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1929,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1932,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1935,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1940,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1948,1
    - Dst: c_void_p_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1953,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1957,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 99
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1823
    functionDepth: 2
    functionLinenumber: 1823
    functionLinenumberEnd: 1960
    functionName: c_void_p_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PointerObject_Check
    - PyObject_stgdict
    - PyObject_IsInstance
    - ArrayObject_Check
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyCArgObject_new
    - _ctypes_get_fielddesc
    - PyCArg_CheckExact
    - Py_INCREF
    - PyCFuncPtrObject_Check
    - PyLong_Check
    - Py_DECREF
    - struct fielddesc*::setfunc
    - c_void_p_from_param
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - CDataObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      c_void_p_from_param(PyObject *type, PyObject *value)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1971,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1977,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1977,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1983,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1985,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1988,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1994,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1998,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:1999,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2000,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2001,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2002,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2007,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2008,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2015,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2026,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2030,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2031,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2032,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2035,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 5
    argNames:
    - type
    - args
    - kwds
    - proto
    - fmt
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - struct fielddesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 2038
    functionName: CreateSwappedType
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Concat
    - tp_new
    - PyObject_CallObject
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_Update
    - PyUnicode_InternFromString
    - Py_SETREF
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *CreateSwappedType(PyTypeObject *type, PyObject *args, PyObject
      *kwds,\n                                   PyObject *proto, struct fielddesc
      *fmt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2048,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2049,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2050,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2051,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2053,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2054,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2056,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2062,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (fmt)
      pos:
        line_end: 2050
        line_start: 2050
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (fd)
      pos:
        line_end: 2053
        line_start: 2053
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2066
      start: 2040
    functionDepth: 2
    functionLinenumber: 2040
    functionLinenumberEnd: 2066
    functionName: PyCSimpleType_paramfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - memcpy
    - Py_INCREF
    - PyUnicode_AsUTF8
    - PyCArgObject_new
    - assert
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCSimpleType_paramfunc(CDataObject *self)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2071,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2082,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2086,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2090,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2093,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2094,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2097,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2098,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2107,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2112,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2113,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2119,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2121,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2126,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2138,1
    - Dst: _ctypes_alloc_format_string_for_type
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2143,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2144,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2145,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2163,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2166,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2201,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2209,1
    - Dst: CreateSwappedType
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2216,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2220,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2223,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2225,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2226,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2227,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2228,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2230,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2232,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2233,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2234,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2235,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2237,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2239,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2241,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 130
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2068
    functionDepth: 2
    functionLinenumber: 2068
    functionLinenumberEnd: 2247
    functionName: PyCSimpleType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyDescr_NewClassMethod
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _ctypes_alloc_format_string_for_type
    - _ctypes_get_fielddesc
    - PyErr_Occurred
    - _ctypes_alloc_format_string
    - CreateSwappedType
    - PyErr_Format
    - tp_new
    - Py_XDECREF
    - PyType_stgdict
    - Py_DECREF
    - strchr
    - Py_SETREF
    - PyDict_Update
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyDict_SetItemString
    - PyObject_SetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2256,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2266,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2270,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2276,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2282,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2283,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2285,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2286,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2288,1
    - Dst: struct fielddesc*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2294,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2298,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2300,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2305,1
    - Dst: PyCSimpleType_from_param
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2308,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2310,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (fmt)
      pos:
        line_end: 2282
        line_start: 2282
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (fd)
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 2316
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2316
    functionName: PyCSimpleType_from_param
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - PyObject_IsInstance
    - Py_DECREF
    - PyCSimpleType_from_param
    - Py_INCREF
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - struct fielddesc*::setfunc
    - _Py_IDENTIFIER
    - Py_LeaveRecursiveCall
    - Py_EnterRecursiveCall
    - PyErr_SetString
    - PyCArgObject_new
    - assert
    - PyErr_Clear
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCSimpleType_from_param(PyObject *type, PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2377,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2382,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2384,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2389,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2392,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2403,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2452,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2453,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2454,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2460,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2464
    functionName: converters_from_argtypes
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PySequence_Tuple
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_Format
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      converters_from_argtypes(PyObject *ob)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2471,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2472,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2473,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2474,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2476,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2483,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2485,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2486,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2491,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2494,1
    - Dst: converters_from_argtypes
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2496,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2499,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2503,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2507,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2509,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2509,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2510,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2514,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2516,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2522,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - stgdict
    argTypes:
    - StgDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2466
    functionDepth: 2
    functionLinenumber: 2466
    functionLinenumberEnd: 2541
    functionName: make_funcptrtype_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyLong_Check
    - PyType_stgdict
    - PyErr_Occurred
    - PyCallable_Check
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_SetString
    - converters_from_argtypes
    - PyLong_AsUnsignedLongMask
    - _ctypes_get_fielddesc
    linkageType: ''
    returnType: int
    signature: int make_funcptrtype_dict(StgDictObject *stgdict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2548,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2543
    functionDepth: 2
    functionLinenumber: 2543
    functionLinenumberEnd: 2558
    functionName: PyCFuncPtrType_paramfunc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCArgObject_new
    - Py_INCREF
    linkageType: ''
    returnType: PyCArgObject
    signature: 'PyCArgObject *

      PyCFuncPtrType_paramfunc(CDataObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2566,1
    - Dst: _ctypes_alloc_format_string
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2580,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2587,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2589,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2595,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2596,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2599,1
    - Dst: make_funcptrtype_dict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2601,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2560
    functionDepth: 3
    functionLinenumber: 2560
    functionLinenumberEnd: 2607
    functionName: PyCFuncPtrType_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - make_funcptrtype_dict
    - Py_DECREF
    - _ctypes_alloc_format_string
    - tp_new
    - Py_SETREF
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtrType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2656
    functionDepth: 1
    functionLinenumber: 2656
    functionLinenumberEnd: 2672
    functionName: PyCData_GetContainer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_INCREF
    linkageType: ''
    returnType: CDataObject
    signature: 'CDataObject *

      PyCData_GetContainer(CDataObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCData_GetContainer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - target
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2674
    functionDepth: 2
    functionLinenumber: 2674
    functionLinenumberEnd: 2682
    functionName: GetKeepedObjects
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_GetContainer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GetKeepedObjects(CDataObject *target)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2691,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2692,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2692,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2697,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2701,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2701,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - target
    - index
    argTypes:
    - CDataObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2684
    functionDepth: 1
    functionLinenumber: 2684
    functionLinenumberEnd: 2705
    functionName: unique_key
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - Py_BUILD_ASSERT
    - PyUnicode_FromStringAndSize
    - PyErr_SetString
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unique_key(CDataObject *target, Py_ssize_t index)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2734,1
    - Dst: PyCData_GetContainer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2737,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2739,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2742,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2743,1
    - Dst: unique_key
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2748,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - target
    - index
    - keep
    argTypes:
    - CDataObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2725
    functionDepth: 2
    functionLinenumber: 2725
    functionLinenumberEnd: 2755
    functionName: KeepRef
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - unique_key
    - Py_DECREF
    - Py_XSETREF
    - PyDict_CheckExact
    - PyDict_SetItem
    - PyCData_GetContainer
    linkageType: ''
    returnType: int
    signature: int KeepRef(CDataObject *target, Py_ssize_t index, PyObject *keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2764,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - CDataObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2761
    functionDepth: 1
    functionLinenumber: 2761
    functionLinenumberEnd: 2767
    functionName: PyCData_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int PyCData_traverse(CDataObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2772,1
    - Dst: _CDataObject_HasExternalBuffer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2774,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2775,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2769
    functionDepth: 1
    functionLinenumber: 2769
    functionLinenumberEnd: 2779
    functionName: PyCData_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - _CDataObject_HasExternalBuffer
    - Py_CLEAR
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: int PyCData_clear(CDataObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCData_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2784,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2781
    functionDepth: 2
    functionLinenumber: 2781
    functionLinenumberEnd: 2786
    functionName: PyCData_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCData_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2804,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - myself
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2801
    functionDepth: 2
    functionLinenumber: 2801
    functionLinenumberEnd: 2828
    functionName: PyCData_NewGetBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int PyCData_NewGetBuffer(PyObject *myself, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2843
    functionName: PyCData_nohash
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyCData_nohash(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2850,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2851,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2855,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2859,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2859,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - myself
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2845
    functionDepth: 2
    functionLinenumber: 2845
    functionLinenumberEnd: 2861
    functionName: PyCData_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyBytes_FromStringAndSize
    - Py_BuildValue
    - PyObject_GetAttrString
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_reduce(PyObject *myself, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2871,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2878,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2879,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2883,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2884,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2886,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2887,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - myself
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2895
    functionName: PyCData_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyDict_Check
    - PyDict_Update
    - PyErr_Format
    - Py_TYPE
    - memmove
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_setstate(PyObject *myself, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2905
      start: 2900
    functionDepth: 1
    functionLinenumber: 2900
    functionLinenumberEnd: 2905
    functionName: PyCData_from_outparam
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_from_outparam(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2972,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2974,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - dict
    argTypes:
    - CDataObject*
    - StgDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2956
    functionDepth: 1
    functionLinenumber: 2956
    functionLinenumberEnd: 2982
    functionName: PyCData_MallocBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - memset
    linkageType: ''
    returnType: int
    signature: int PyCData_MallocBuffer(CDataObject *obj, StgDictObject *dict)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2990,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2990,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2993,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:2998,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3001,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3001,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3006,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3006,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3009,1
    - Dst: PyCData_MallocBuffer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3013,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3014,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3017,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 4
    argNames:
    - type
    - base
    - index
    - adr
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 2989
        line_start: 2989
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(cmem))
      pos:
        line_end: 3000
        line_start: 3000
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(base))
      pos:
        line_end: 3005
        line_start: 3005
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3021
      start: 2984
    functionDepth: 2
    functionLinenumber: 2984
    functionLinenumberEnd: 3021
    functionName: PyCData_FromBaseObj
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - memcpy
    - Py_DECREF
    - Py_INCREF
    - PyType_Check
    - tp_alloc
    - PyErr_SetString
    - PyCData_MallocBuffer
    - assert
    - CDataObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_FromBaseObj(PyObject *type, PyObject *base, Py_ssize_t index, char *adr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3032,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3036,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3036,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3037,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3039,1
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3045,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3048,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - buf
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyType_Check(type))
      pos:
        line_end: 3035
        line_start: 3035
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (CDataObject_Check(pd))
      pos:
        line_end: 3047
        line_start: 3047
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3053
      start: 3026
    functionDepth: 2
    functionLinenumber: 3026
    functionLinenumberEnd: 3053
    functionName: PyCData_AtAddress
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - PyType_stgdict
    - PyType_Check
    - tp_alloc
    - PyErr_SetString
    - assert
    - PySys_Audit
    - CDataObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCData_AtAddress(PyObject *type, void *buf)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCSimpleTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3067
      start: 3060
    functionDepth: 1
    functionLinenumber: 3060
    functionLinenumberEnd: 3067
    functionName: _ctypes_simple_instance
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyCSimpleTypeObject_Check
    linkageType: ''
    returnType: int
    signature: int _ctypes_simple_instance(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3075,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3076,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3077,1
    - Dst: _ctypes_simple_instance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3078,1
    - Dst: StgDictObject*::getfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3079,1
    - Dst: PyCData_FromBaseObj
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - type
    - getfunc
    - src
    - index
    - size
    - adr
    argTypes:
    - PyObject*
    - GETFUNC
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (type)
      pos:
        line_end: 3075
        line_start: 3075
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3081
      start: 3069
    functionDepth: 3
    functionLinenumber: 3069
    functionLinenumberEnd: 3081
    functionName: PyCData_get
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - _ctypes_simple_instance
    - StgDictObject*::getfunc
    - assert
    - PyCData_FromBaseObj
    - getfunc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCData_get(PyObject *type, GETFUNC getfunc, PyObject
      *src,\n          Py_ssize_t index, Py_ssize_t size, char *adr)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3094,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3096,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3097,1
    - Dst: StgDictObject*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3099,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3104,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3104,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3105,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3108,1
    - Dst: _ctypes_extend_error
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3110,1
    - Dst: _PyCData_set
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3114,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3116,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3118,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3122,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3125,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3131,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3135,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3139,1
    - Dst: GetKeepedObjects
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3143,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3147,1
    - Dst: PyCPointerTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3151,1
    - Dst: ArrayObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3152,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3155,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3156,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3157,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3158,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3161,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3163,1
    - Dst: GetKeepedObjects
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3169,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3181,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3183,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3185,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 6
    argNames:
    - dst
    - type
    - setfunc
    - value
    - size
    - ptr
    argTypes:
    - CDataObject*
    - PyObject*
    - SETFUNC
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (p1)
      pos:
        line_end: 3155
        line_start: 3155
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (PyType_Check(type))
      pos:
        line_end: 3103
        line_start: 3103
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (p2)
      pos:
        line_end: 3157
        line_start: 3157
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3188
      start: 3086
    functionDepth: 3
    functionLinenumber: 3086
    functionLinenumberEnd: 3188
    functionName: _PyCData_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyObject_stgdict
    - PyObject_CallObject
    - PyObject_IsInstance
    - ArrayObject_Check
    - StgDictObject*::setfunc
    - Py_INCREF
    - PyTuple_Pack
    - PyTuple_Check
    - PyErr_Format
    - assert
    - PyType_stgdict
    - Py_DECREF
    - setfunc
    - Py_TYPE
    - _ctypes_extend_error
    - memcpy
    - GetKeepedObjects
    - PyType_Check
    - CDataObject_Check
    - _PyCData_set
    - PyCPointerTypeObject_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCData_set(CDataObject *dst, PyObject *type, SETFUNC
      setfunc, PyObject *value,\n           Py_ssize_t size, char *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3201,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3202,1
    - Dst: _PyCData_set
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3207,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 7
    argNames:
    - dst
    - type
    - setfunc
    - value
    - index
    - size
    - ptr
    argTypes:
    - PyObject*
    - PyObject*
    - SETFUNC
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3194
    functionDepth: 4
    functionLinenumber: 3194
    functionLinenumberEnd: 3216
    functionName: PyCData_set
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 3
    functionsReached:
    - _PyCData_set
    - KeepRef
    - CDataObject_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PyCData_set(PyObject *dst, PyObject *type, SETFUNC setfunc, PyObject
      *value,\n          Py_ssize_t index, Py_ssize_t size, char *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3228,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3234,1
    - Dst: PyCData_MallocBuffer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3243,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3220
    functionDepth: 2
    functionLinenumber: 3220
    functionLinenumberEnd: 3248
    functionName: GenericPyCData_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyErr_SetString
    - PyCData_MallocBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      GenericPyCData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3257,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3258,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3262,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3254
    functionDepth: 1
    functionLinenumber: 3254
    functionLinenumberEnd: 3265
    functionName: PyCFuncPtr_set_errcheck
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XINCREF
    - PyCallable_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_set_errcheck(PyCFuncPtrObject *self, PyObject *ob, void
      *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3267
    functionDepth: 1
    functionLinenumber: 3267
    functionLinenumberEnd: 3275
    functionName: PyCFuncPtr_get_errcheck
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_get_errcheck(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3280,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3285,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3286,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3289,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3289,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3290,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3294,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3299,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3300,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - self
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3303
      start: 3277
    functionDepth: 2
    functionLinenumber: 3277
    functionLinenumberEnd: 3303
    functionName: PyCFuncPtr_set_restype
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - Py_CLEAR
    - PyCallable_Check
    - Py_INCREF
    - Py_XSETREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_set_restype(PyCFuncPtrObject *self, PyObject *ob, void
      *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3310,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3313,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3314,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - void*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 3313
        line_start: 3313
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3321
      start: 3305
    functionDepth: 2
    functionLinenumber: 3305
    functionLinenumberEnd: 3321
    functionName: PyCFuncPtr_get_restype
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3329,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3330,1
    - Dst: converters_from_argtypes
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3332,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3335,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3336,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - ob
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3323
    functionDepth: 2
    functionLinenumber: 3323
    functionLinenumberEnd: 3340
    functionName: PyCFuncPtr_set_argtypes
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - converters_from_argtypes
    - Py_CLEAR
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void
      *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3347,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3350,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3351,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFuncPtrObject*
    - void*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 3350
        line_start: 3350
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 3358
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3358
    functionName: PyCFuncPtr_get_argtypes
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_get_argtypes(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3380,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3389,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3397,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3406,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3406,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3410,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - handle
    - name
    - type
    argTypes:
    - void*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3372
    functionDepth: 2
    functionLinenumber: 3372
    functionLinenumberEnd: 3419
    functionName: FindAddress
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - GetProcAddress
    - strlen
    - alloca
    - sprintf
    linkageType: ''
    returnType: PPROC
    signature: PPROC FindAddress(void *handle, const char *name, PyObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCPointerTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3428,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3431,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3434,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3437,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3439,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3439,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3443,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3445,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3446,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3450
      start: 3423
    functionDepth: 2
    functionLinenumber: 3423
    functionLinenumberEnd: 3450
    functionName: _check_outarg_type
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - Py_SAFE_DOWNCAST
    - PyUnicode_AsUTF8
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyCArrayTypeObject_Check
    - strchr
    - PyCPointerTypeObject_Check
    linkageType: ''
    returnType: int
    signature: int _check_outarg_type(PyObject *arg, Py_ssize_t index)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3462,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3471,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3472,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3477,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3479,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3485,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3490,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3491,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3495,1
    - Dst: _check_outarg_type
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3503,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3507,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - type
    - paramflags
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3453
    functionDepth: 3
    functionLinenumber: 3453
    functionLinenumberEnd: 3514
    functionName: _validate_paramflags
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyTuple_GET_SIZE
    - _check_outarg_type
    - PyTuple_Check
    - PyErr_Format
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int _validate_paramflags(PyTypeObject *type, PyObject *paramflags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3520,1
    - Dst: MAKEINTRESOURCEA
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3524,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3524,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3528,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3529,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3532,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3533,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - pname
    argTypes:
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3516
    functionDepth: 1
    functionLinenumber: 3516
    functionLinenumberEnd: 3539
    functionName: _get_name
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 2
    functionsReached:
    - PyLong_Check
    - PyUnicode_AsUTF8
    - PyBytes_Check
    - MAKEINTRESOURCEA
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: int
    signature: int _get_name(PyObject *obj, const char **pname)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3554,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3559,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3567,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3572,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3575,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3579,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3580,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3587,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3593,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3594,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3597,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3598,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3599,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3602,1
    - Dst: FindAddress
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3607,1
    - Dst: IS_INTRESOURCE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3609,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3610,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3614,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3617,1
    - Dst: ctypes_dlsym
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3621,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3625,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3629,1
    - Dst: ctypes_dlerror
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3629,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3631,1
    - Dst: _validate_paramflags
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3635,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3636,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3642,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3646,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3651,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3652,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3653,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3657,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3660
      start: 3542
    functionDepth: 4
    functionLinenumber: 3542
    functionLinenumberEnd: 3660
    functionName: PyCFuncPtr_FromDll
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - ctypes_dlerror
    - PyLong_AsVoidPtr
    - _validate_paramflags
    - PyErr_Occurred
    - IS_INTRESOURCE
    - PyObject_GetAttrString
    - Py_INCREF
    - ctypes_dlsym
    - FindAddress
    - PyErr_Format
    - KeepRef
    - PyArg_ParseTuple
    - PyLong_Check
    - Py_DECREF
    - PySequence_Tuple
    - PyErr_SetString
    - GenericPyCData_new
    - PySys_Audit
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3673,1
    - Dst: _validate_paramflags
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3678,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3681,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3663
    functionDepth: 4
    functionLinenumber: 3663
    functionLinenumberEnd: 3688
    functionName: PyCFuncPtr_FromVtblIndex
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - GenericPyCData_new
    - Py_XINCREF
    - _validate_paramflags
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_FromVtblIndex(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3712,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3713,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3715,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3715,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3715,1
    - Dst: PyCFuncPtr_FromDll
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3716,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3719,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3719,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3719,1
    - Dst: PyCFuncPtr_FromVtblIndex
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3720,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3723,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3724,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3724,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3726,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3726,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3727,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3729,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3736,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3738,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3739,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3760,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3763,1
    - Dst: _ctypes_alloc_callback
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3769,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3776,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3778,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3782,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3788,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3790,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3794
      start: 3704
    functionDepth: 5
    functionLinenumber: 3704
    functionLinenumberEnd: 3794
    functionName: PyCFuncPtr_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyType_stgdict
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyCallable_Check
    - Py_INCREF
    - PyCFuncPtr_FromDll
    - PyTuple_Check
    - PyLong_AsVoidPtr
    - PyCFuncPtr_FromVtblIndex
    - _ctypes_alloc_callback
    - KeepRef
    - PyErr_SetString
    - GenericPyCData_new
    - PyTuple_GET_ITEM
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3804,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3805,1
    - Dst: PyCArgObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3810,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3800
    functionDepth: 2
    functionLinenumber: 3800
    functionLinenumberEnd: 3821
    functionName: _byref
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyCArgObject_new
    - CDataObject_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _byref(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3828,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3829,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3831,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3835,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3838,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3841,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3846,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3851,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3854,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - pindex
    - name
    - defval
    - inargs
    - kwds
    argTypes:
    - int*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3823
    functionDepth: 1
    functionLinenumber: 3823
    functionLinenumberEnd: 3857
    functionName: _get_arg
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_Format
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _get_arg(int *pindex, PyObject *name, PyObject *defval, PyObject *inargs, PyObject
      *kwds)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3897,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3900,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3900,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3902,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3906,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3907,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3918,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3927,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3928,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3928,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3929,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3930,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3938,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3939,1
    - Dst: _get_arg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3948,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3951,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3965,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3966,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3971,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3972,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3976,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3980,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3981,1
    - Dst: PyCArrayTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3987,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3988,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:3991,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4002,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4007,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4018,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4018,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4023,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4034,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 7
    argNames:
    - self
    - argtypes
    - inargs
    - kwds
    - poutmask
    - pinoutmask
    - pnumretvals
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int*
    - int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 3877
    functionDepth: 2
    functionLinenumber: 3877
    functionLinenumberEnd: 4036
    functionName: _build_callargs
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - PyLong_AsUnsignedLongMask
    - PyTuple_SET_ITEM
    - PyTuple_GET_SIZE
    - Py_INCREF
    - _get_arg
    - PyDict_GET_SIZE
    - Py_DECREF
    - PyErr_Format
    - PyUnicode_Check
    - PyCArrayTypeObject_Check
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_GetSlice
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_build_callargs(PyCFuncPtrObject *self, PyObject *argtypes,\n
      \               PyObject *inargs, PyObject *kwds,\n                int *poutmask,
      int *pinoutmask, unsigned int *pnumretvals)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4060,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4065,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4067,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4076,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4077,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4079,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4082,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4085,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4087,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4090,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4093,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4100,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - result
    - callargs
    - outmask
    - inoutmask
    - numretvals
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4102
      start: 4046
    functionDepth: 1
    functionLinenumber: 4046
    functionLinenumberEnd: 4102
    functionName: _build_result
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_build_result(PyObject *result, PyObject *callargs,\n
      \             int outmask, int inoutmask, unsigned int numretvals)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4111,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4124,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4138,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4140,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4144,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4158,1
    - Dst: _build_callargs
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4165,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4172,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4172,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4174,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4174,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4182,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4191,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4192,1
    - Dst: _ctypes_callproc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4201,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4226,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4229,1
    - Dst: _build_result
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4232,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 3
    argNames:
    - self
    - inargs
    - kwds
    argTypes:
    - PyCFuncPtrObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 4123
        line_start: 4123
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4234
      start: 4104
    functionDepth: 4
    functionLinenumber: 4104
    functionLinenumberEnd: 4234
    functionName: PyCFuncPtr_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - Py_SAFE_DOWNCAST
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_GetItem
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - PyErr_SetString
    - _ctypes_callproc
    - assert
    - _build_callargs
    - _build_result
    - CDataObject_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_call(PyCFuncPtrObject *self, PyObject *inargs, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4239,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4240,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4241,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4242,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4243,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4244,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4245,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4246,1
    - Dst: PyCData_traverse
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyCFuncPtrObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4236
    functionDepth: 2
    functionLinenumber: 4236
    functionLinenumberEnd: 4248
    functionName: PyCFuncPtr_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyCData_traverse
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_traverse(PyCFuncPtrObject *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4253,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4254,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4255,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4256,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4257,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4258,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4259,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4260,1
    - Dst: PyCData_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4262
      start: 4250
    functionDepth: 2
    functionLinenumber: 4250
    functionLinenumberEnd: 4262
    functionName: PyCFuncPtr_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCData_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_clear(PyCFuncPtrObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFuncPtr_clear
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4267,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4269
      start: 4264
    functionDepth: 3
    functionLinenumber: 4264
    functionLinenumberEnd: 4269
    functionName: PyCFuncPtr_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCFuncPtr_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void PyCFuncPtr_dealloc(PyCFuncPtrObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4276,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4278,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4281,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4284
      start: 4271
    functionDepth: 1
    functionLinenumber: 4271
    functionLinenumberEnd: 4284
    functionName: PyCFuncPtr_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFuncPtr_repr(PyCFuncPtrObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyCFuncPtrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4294
      start: 4286
    functionDepth: 0
    functionLinenumber: 4286
    functionLinenumberEnd: 4294
    functionName: PyCFuncPtr_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyCFuncPtr_bool(PyCFuncPtrObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4371,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4373,1
    - Dst: _init_pos_args
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4374,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4381,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4382,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4384,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4391,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4393,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4400,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4403,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4405,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4406,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4409,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4410,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4413,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4415,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4421,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 5
    argNames:
    - self
    - type
    - args
    - kwds
    - index
    argTypes:
    - PyObject*
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4427
      start: 4363
    functionDepth: 2
    functionLinenumber: 4363
    functionLinenumberEnd: 4427
    functionName: _init_pos_args
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - _PyDict_GetItemIdWithError
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyObject_SetAttr
    - PySequence_GetItem
    - _Py_IDENTIFIER
    - _init_pos_args
    - PyErr_Format
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _init_pos_args(PyObject *self, PyTypeObject *type,\n               PyObject
      *args, PyObject *kwds,\n               Py_ssize_t index)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4435,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4436,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4440,1
    - Dst: _init_pos_args
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4441,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4441,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4445,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4446,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4455,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4461
      start: 4429
    functionDepth: 3
    functionLinenumber: 4429
    functionLinenumberEnd: 4461
    functionName: Struct_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyDict_Next
    - PyObject_SetAttr
    - PyTuple_GET_SIZE
    - _init_pos_args
    - PyTuple_Check
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int Struct_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4559,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4563,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4566,1
    - Dst: PySequence_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - CDataObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4552
    functionDepth: 1
    functionLinenumber: 4552
    functionLinenumberEnd: 4571
    functionName: Array_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PySequence_SetItem
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int Array_init(CDataObject *self, PyObject *args, PyObject *kw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4582,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4587,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4588,1
    - Dst: PyCData_get
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 4587
        line_start: 4587
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4597
      start: 4573
    functionDepth: 4
    functionLinenumber: 4573
    functionLinenumberEnd: 4597
    functionName: Array_item
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - PyErr_SetString
    - PyCData_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_item(PyObject *myself, Py_ssize_t index)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4604,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4605,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4607,1
    - Dst: Array_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4611,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4613,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4620,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4623,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4625,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4626,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4628,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4629,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4632,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4637,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4639,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4642,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4645,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4652,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4653,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4657,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4662,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4664,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4668,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4670,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4679,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4680,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4685,1
    - Dst: Array_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4691,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4693,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4696,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4701,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 4625
        line_start: 4625
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (itemdict)
      pos:
        line_end: 4628
        line_start: 4628
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4706
      start: 4599
    functionDepth: 5
    functionLinenumber: 4599
    functionLinenumberEnd: 4706
    functionName: Array_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyMem_New
    - PyIndex_Check
    - PySlice_Unpack
    - PyList_New
    - _ctypes_get_fielddesc
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyList_SET_ITEM
    - PyUnicode_FromWideChar
    - assert
    - PyUnicode_New
    - PyType_stgdict
    - Py_DECREF
    - PyMem_Free
    - Array_item
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Array_subscript(PyObject *myself, PyObject *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4717,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4722,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4723,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4725,1
    - Dst: PyCData_set
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 4722
        line_start: 4722
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4735
      start: 4708
    functionDepth: 5
    functionLinenumber: 4708
    functionLinenumberEnd: 4735
    functionName: Array_ass_item
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - PyCData_set
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int Array_ass_item(PyObject *myself, Py_ssize_t index, PyObject *value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4743,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4748,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4749,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4751,1
    - Dst: Array_ass_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4755,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4757,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4761,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4764,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4769,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4771,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4776,1
    - Dst: Array_ass_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4780,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4788,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - myself
    - item
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4737
    functionDepth: 6
    functionLinenumber: 4737
    functionLinenumberEnd: 4792
    functionName: Array_ass_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Array_ass_item
    - PyIndex_Check
    - PyErr_Occurred
    - PySequence_Length
    - Py_DECREF
    - PySlice_Check
    - PySequence_GetItem
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int Array_ass_subscript(PyObject *myself, PyObject *item, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4799
      start: 4794
    functionDepth: 0
    functionLinenumber: 4794
    functionLinenumberEnd: 4799
    functionName: Array_length
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t Array_length(PyObject *myself)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4873,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4877,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4880,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4881,1
    - Dst: PyDict_GetItemProxy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4884,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4887,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4891,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4895,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4898,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4902,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4905,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4909,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4919,1
    - Dst: PyDict_SetItemProxy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4922,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4923,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4924,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4927,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 2
    argNames:
    - itemtype
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4929
      start: 4863
    functionDepth: 2
    functionLinenumber: 4863
    functionLinenumberEnd: 4929
    functionName: PyCArrayType_from_ctype
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDict_New
    - PyDict_GetItemProxy
    - PyTuple_Pack
    - PyDict_SetItemProxy
    - PyType_Check
    - PyObject_CallFunction
    - PyErr_SetString
    - PyLong_FromSsize_t
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4941,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4944,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4948,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4949,1
    - Dst: StgDictObject*::setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4950,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (dict->setfunc)
      pos:
        line_end: 4948
        line_start: 4948
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (dict)
      pos:
        line_end: 4947
        line_start: 4947
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4956
      start: 4937
    functionDepth: 3
    functionLinenumber: 4937
    functionLinenumberEnd: 4956
    functionName: Simple_set_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - StgDictObject*::setfunc
    - PyErr_SetString
    - assert
    - KeepRef
    linkageType: ''
    returnType: int
    signature: int Simple_set_value(CDataObject *self, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4962,1
    - Dst: Simple_set_value
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - CDataObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4967
      start: 4958
    functionDepth: 4
    functionLinenumber: 4958
    functionLinenumberEnd: 4967
    functionName: Simple_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Simple_set_value
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int Simple_init(CDataObject *self, PyObject *args, PyObject *kw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4973,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4974,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4975,1
    - Dst: StgDictObject*::getfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - CDataObject*
    - void*
    assertStmts:
    - condition: (dict)
      pos:
        line_end: 4973
        line_start: 4973
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (dict->getfunc)
      pos:
        line_end: 4974
        line_start: 4974
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 4977
      start: 4969
    functionDepth: 2
    functionLinenumber: 4969
    functionLinenumberEnd: 4977
    functionName: Simple_get_value
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - StgDictObject*::getfunc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_get_value(CDataObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ctypes_simple_instance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4988,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4988,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4989,1
    - Dst: Simple_get_value
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:4993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4994
      start: 4985
    functionDepth: 3
    functionLinenumber: 4985
    functionLinenumberEnd: 4994
    functionName: Simple_from_outparm
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Simple_get_value
    - Py_TYPE
    - Py_INCREF
    - _ctypes_simple_instance
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_from_outparm(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5004
      start: 5001
    functionDepth: 0
    functionLinenumber: 5001
    functionLinenumberEnd: 5004
    functionName: Simple_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int Simple_bool(CDataObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5025,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5026,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5027,1
    - Dst: Simple_get_value
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5030,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5034,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5038
      start: 5020
    functionDepth: 3
    functionLinenumber: 5020
    functionLinenumberEnd: 5038
    functionName: Simple_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Simple_get_value
    - Py_TYPE
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Simple_repr(CDataObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5096,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5101,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5102,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5105,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5106,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5107,1
    - Dst: PyCData_get
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - myself
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 5101
        line_start: 5101
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5104
        line_start: 5104
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (itemdict)
      pos:
        line_end: 5106
        line_start: 5106
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5115
      start: 5086
    functionDepth: 4
    functionLinenumber: 5086
    functionLinenumberEnd: 5115
    functionName: Pointer_item
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyType_stgdict
    - PyCData_get
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_item(PyObject *myself, Py_ssize_t index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5133,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5138,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5139,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5142,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5144,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5145,1
    - Dst: PyCData_set
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - myself
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (proto)
      pos:
        line_end: 5141
        line_start: 5141
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (stgdict)
      pos:
        line_end: 5138
        line_start: 5138
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (itemdict)
      pos:
        line_end: 5144
        line_start: 5144
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5153
      start: 5117
    functionDepth: 5
    functionLinenumber: 5117
    functionLinenumberEnd: 5153
    functionName: Pointer_ass_item
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyType_stgdict
    - PyCData_set
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int Pointer_ass_item(PyObject *myself, Py_ssize_t index, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5161,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5166,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5167,1
    - Dst: PyCData_FromBaseObj
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - CDataObject*
    - void*
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 5166
        line_start: 5166
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5171
      start: 5155
    functionDepth: 3
    functionLinenumber: 5155
    functionLinenumberEnd: 5171
    functionName: Pointer_get_contents
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - assert
    - PyCData_FromBaseObj
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_get_contents(CDataObject *self, void *closure)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5181,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5185,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5186,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5187,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5188,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5189,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5193,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5196,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5209,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5210,1
    - Dst: GetKeepedObjects
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5213,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5217,1
    - Dst: KeepRef
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - CDataObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (stgdict)
      pos:
        line_end: 5185
        line_start: 5185
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (stgdict->proto)
      pos:
        line_end: 5186
        line_start: 5186
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5219
      start: 5173
    functionDepth: 3
    functionLinenumber: 5173
    functionLinenumberEnd: 5219
    functionName: Pointer_set_contents
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyObject_IsInstance
    - GetKeepedObjects
    - Py_INCREF
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - assert
    - KeepRef
    - CDataObject_Check
    linkageType: ''
    returnType: int
    signature: int Pointer_set_contents(CDataObject *self, PyObject *value, void *closure)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5233,1
    - Dst: Pointer_set_contents
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - CDataObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5238
      start: 5228
    functionDepth: 4
    functionLinenumber: 5228
    functionLinenumberEnd: 5238
    functionName: Pointer_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Pointer_set_contents
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int Pointer_init(CDataObject *self, PyObject *args, PyObject *kw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5243,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5245,1
    - Dst: GenericPyCData_new
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5240
    functionDepth: 3
    functionLinenumber: 5240
    functionLinenumberEnd: 5250
    functionName: Pointer_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_stgdict
    - GenericPyCData_new
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5256,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5257,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5258,1
    - Dst: Pointer_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5260,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5262,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5277,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5282,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5289,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5297,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5299,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5303,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5307,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5309,1
    - Dst: PyObject_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5319,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5320,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5322,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5323,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5324,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5325,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5330,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5332,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5335,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5337,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5341,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5342,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5346,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5351,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5353,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5356,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5358,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5362,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5363,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5368,1
    - Dst: Pointer_item
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5373,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5379,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 2
    argNames:
    - myself
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (itemdict)
      pos:
        line_end: 5323
        line_start: 5323
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (stgdict)
      pos:
        line_end: 5319
        line_start: 5319
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - condition: (proto)
      pos:
        line_end: 5321
        line_start: 5321
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    constantsTouched: []
    func_position:
      end: 5383
      start: 5252
    functionDepth: 5
    functionLinenumber: 5252
    functionLinenumberEnd: 5383
    functionName: Pointer_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyObject_stgdict
    - PyMem_New
    - PyIndex_Check
    - PyList_New
    - _ctypes_get_fielddesc
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - PySlice_Check
    - PyList_SET_ITEM
    - PyUnicode_FromWideChar
    - assert
    - Pointer_item
    - PyUnicode_New
    - PyType_stgdict
    - PyMem_Free
    - PyErr_NoMemory
    - PyErr_SetString
    - PyMem_Malloc
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Pointer_subscript(PyObject *myself, PyObject *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5404
    functionDepth: 0
    functionLinenumber: 5404
    functionLinenumberEnd: 5408
    functionName: Pointer_bool
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Pointer_bool(CDataObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5485,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5485,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5488,1
    - Dst: PySequence_GetSlice
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5491,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5491,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5494,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5495,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5499,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5502,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5505,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5508,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5478
    functionDepth: 1
    functionLinenumber: 5478
    functionLinenumberEnd: 5512
    functionName: comerror_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PySequence_GetSlice
    - _PyArg_NoKeywords
    - Py_TYPE
    - Py_SETREF
    - PyArg_ParseTuple
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int comerror_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5560,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5565
      start: 5556
    functionDepth: 1
    functionLinenumber: 5556
    functionLinenumberEnd: 5565
    functionName: create_comerror
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int create_comerror(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5572,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5576,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5576,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5578
      start: 5569
    functionDepth: 1
    functionLinenumber: 5569
    functionLinenumberEnd: 5578
    functionName: string_at
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PySys_Audit
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      string_at(const char *ptr, int size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCPointerTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5585,1
    - Dst: PyCFuncPtrTypeObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5587,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5589,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5591,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5592,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5592,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5597,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5599,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5601,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5603
      start: 5580
    functionDepth: 2
    functionLinenumber: 5580
    functionLinenumberEnd: 5603
    functionName: cast_check_pointertype
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyCFuncPtrTypeObject_Check
    - PyType_stgdict
    - PyUnicode_AsUTF8
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - strchr
    - PyCPointerTypeObject_Check
    linkageType: ''
    returnType: int
    signature: int cast_check_pointertype(PyObject *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cast_check_pointertype
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5609,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5611,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5621,1
    - Dst: PyCData_GetContainer
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5633,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5634,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5638,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5640,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5643,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5646,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5647,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5653,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5657,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - ptr
    - src
    - ctype
    argTypes:
    - void*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5659
      start: 5605
    functionDepth: 3
    functionLinenumber: 5605
    functionLinenumberEnd: 5659
    functionName: cast
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 5
    functionsReached:
    - cast_check_pointertype
    - memcpy
    - Py_DECREF
    - PyDict_New
    - PyLong_FromVoidPtr
    - PyDict_CheckExact
    - PyDict_SetItem
    - _PyObject_CallNoArg
    - Py_XINCREF
    - CDataObject_Check
    - PyCData_GetContainer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cast(void *ptr, PyObject *src, PyObject *ctype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5666,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5670,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5672
      start: 5662
    functionDepth: 1
    functionLinenumber: 5662
    functionLinenumberEnd: 5672
    functionName: wstring_at
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PySys_Audit
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wstring_at(const wchar_t *ptr, int size)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5697,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5698,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5702,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5706,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5708,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5712,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5715,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5720,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5729,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5733,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5737,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5741,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5745,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5749,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5757,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5760,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5762,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5764,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5765,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5767,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5769,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5771,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5772,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5774,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5776,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5778,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5779,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5781,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5783,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5785,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5786,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5788,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5790,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5792,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5793,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5795,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5797,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5799,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5800,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5808,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5817,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5820,1
    - Dst: create_comerror
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5825,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5827,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5829,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5829,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5830,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5830,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5832,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5832,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5833,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5833,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5834,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5834,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5835,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5835,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5836,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5838,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5838,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5839,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5839,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5840,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5840,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5841,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5841,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5843,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5843,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5858,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5858,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5859,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5859,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5861,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5863,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c:5864,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5867
      start: 5688
    functionDepth: 2
    functionLinenumber: 5688
    functionLinenumberEnd: 5867
    functionName: PyInit__ctypes
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyEval_InitThreads
    - create_comerror
    - PyModule_AddStringConstant
    - PyObject_GetAttrString
    - Py_INCREF
    - PyErr_NewException
    - PyModule_Create
    - PyDict_New
    - PyModule_AddObject
    - Py_TYPE
    - PyType_Ready
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ctypes(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:16,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:17,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:18,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:19,1
    - Dst: ffi_closure_free
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:21,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: CThunkObject_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - ffi_closure_free
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void CThunkObject_dealloc(PyObject *myself)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:29,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:30,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - myself
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: CThunkObject_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int CThunkObject_traverse(PyObject *myself, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:39,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:40,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - myself
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: CThunkObject_clear
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int CThunkObject_clear(PyObject *myself)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:83,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:86,1
    - Dst: vsnprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:87,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:88,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:90,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: PrintError
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - va_start
    - PyFile_WriteString
    - PyErr_Print
    - vsnprintf
    - PySys_GetObject
    - va_end
    linkageType: ''
    returnType: void
    signature: void PrintError(const char *msg, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:110,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:112,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:113,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:114,1
    - Dst: IUnknown*::lpVtbl::AddRef
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dict
    - obj
    argTypes:
    - StgDictObject*
    - CDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: TryAddRef
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - _Py_IDENTIFIER
    - IUnknown*::lpVtbl::AddRef
    - PrintError
    linkageType: ''
    returnType: void
    signature: void TryAddRef(StgDictObject *dict, CDataObject *obj)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:145,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:147,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:152,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:156,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:158,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:163,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:166,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:168,1
    - Dst: _ctypes_simple_instance
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:172,1
    - Dst: StgDictObject*::getfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:173,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:175,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:176,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:179,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:187,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:190,1
    - Dst: CDataObject_Check
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:195,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:196,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:199,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:200,1
    - Dst: TryAddRef
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:205,1
    - Dst: PrintError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:208,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:211,1
    - Dst: _ctypes_get_errobj
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:220,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:231,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:232,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:237,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:238,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:243,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:244,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:252,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:256,1
    - Dst: setfunc
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:262,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:263,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:276,1
    - Dst: _ctypes_get_fielddesc
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:277,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:278,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:281,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:284,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:286,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:287,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 7
    argNames:
    - mem
    - restype
    - setfunc
    - callable
    - converters
    - flags
    - pArgs
    argTypes:
    - void*
    - ffi_type*
    - SETFUNC
    - PyObject*
    - PyObject*
    - int
    - void**
    assertStmts:
    - condition: (setfunc)
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    constantsTouched: []
    func_position:
      end: 288
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 288
    functionName: _CallPythonObject
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyTuple_SET_ITEM
    - _ctypes_simple_instance
    - _ctypes_get_fielddesc
    - GetLastError
    - PyGILState_Ensure
    - _ctypes_get_errobj
    - assert
    - PrintError
    - Py_XDECREF
    - PyType_stgdict
    - Py_DECREF
    - TryAddRef
    - PyGILState_Release
    - setfunc
    - PyErr_WriteUnraisable
    - StgDictObject*::getfunc
    - _PyObject_CallNoArg
    - PyTuple_New
    - PyErr_WarnEx
    - PySequence_Length
    - memcpy
    - CHECK
    - SetLastError
    - PySequence_GetItem
    - PyErr_SetString
    - CDataObject_Check
    linkageType: ''
    returnType: void
    signature: "void _CallPythonObject(void *mem,\n                              ffi_type
      *restype,\n                              SETFUNC setfunc,\n                              PyObject
      *callable,\n                              PyObject *converters,\n                              int
      flags,\n                              void **pArgs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - what
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: CHECK
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(what, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CallPythonObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cif
    - resp
    - args
    - userdata
    argTypes:
    - ffi_cif*
    - void*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 304
    functionName: closure_fcn
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - _CallPythonObject
    linkageType: ''
    returnType: void
    signature: "void closure_fcn(ffi_cif *cif,\n                        void *resp,\n
      \                       void **args,\n                        void *userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:311,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:318,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - nArgs
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 330
    functionName: CThunkObject_new
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Track
    - PyObject_GC_NewVar
    - memset
    linkageType: ''
    returnType: CThunkObject
    signature: CThunkObject * CThunkObject_new(Py_ssize_t nArgs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:342,1
    - Dst: CThunkObject_new
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:343,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:347,1
    - Dst: CThunk_CheckExact
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:347,1
    - Dst: ffi_closure_alloc
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:349,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:352,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:358,1
    - Dst: _ctypes_get_ffi_type
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:362,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:366,1
    - Dst: PyType_stgdict
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:372,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:374,1
    - Dst: ffi_prep_cif
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:387,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:388,1
    - Dst: _ctypes_get_ffi_type
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:389,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:392,1
    - Dst: ffi_prep_closure
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:397,1
    - Dst: ffi_prep_closure_loc
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:399,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:404,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:409,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:411,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:416,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 4
    argNames:
    - callable
    - converters
    - restype
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (CThunk_CheckExact((PyObject *)p))
      pos:
        line_end: 346
        line_start: 346
        source_file: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    constantsTouched: []
    func_position:
      end: 418
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 418
    functionName: _ctypes_alloc_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 1
    functionsReached:
    - PyType_stgdict
    - Py_SAFE_DOWNCAST
    - Py_DECREF
    - PySequence_Size
    - CThunk_CheckExact
    - _ctypes_get_ffi_type
    - Py_INCREF
    - PyErr_NoMemory
    - PySequence_GetItem
    - ffi_prep_closure_loc
    - CThunkObject_new
    - ffi_prep_closure
    - PyErr_Format
    - PyErr_SetString
    - ffi_prep_cif
    - assert
    - Py_XDECREF
    - ffi_closure_alloc
    linkageType: ''
    returnType: CThunkObject
    signature: "CThunkObject *_ctypes_alloc_callback(PyObject *callable,\n                                    PyObject
      *converters,\n                                    PyObject *restype,\n                                    int
      flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:424,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:425,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: LoadPython
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyEval_InitThreads
    - Py_Initialize
    - Py_IsInitialized
    linkageType: ''
    returnType: void
    signature: void LoadPython(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:439,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:441,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:443,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:448,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:449,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:451,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:456,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:457,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:458,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:460,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:461,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:462,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:463,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:464,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:472,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:473,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:476,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:478,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:482,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:483,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:484,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - rclsid
    - riid
    - ppv
    argTypes:
    - REFCLSID
    - REFIID
    - LPVOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 489
    functionName: Call_GetClassObject
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModuleNoBlock
    - PyErr_WriteUnraisable
    - PyObject_CallFunctionObjArgs
    - PyUnicode_InternFromString
    - Py_XDECREF
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: long
    signature: long Call_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadPython
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:498,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:499,1
    - Dst: Call_GetClassObject
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:500,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rclsid
    - riid
    - ppv
    argTypes:
    - REFCLSID
    - REFIID
    - LPVOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: DllGetClassObject
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - LoadPython
    - PyGILState_Ensure
    - PyGILState_Release
    - Call_GetClassObject
    linkageType: ''
    returnType: STDAPI
    signature: "STDAPI DllGetClassObject(REFCLSID rclsid,\n                         REFIID
      riid,\n                         LPVOID *ppv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:512,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:514,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:519,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:523,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:524,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:526,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:531,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:533,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:537,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:538,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:539,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:542,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 544
    functionName: Call_CanUnloadNow
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_ImportModuleNoBlock
    - PyErr_WriteUnraisable
    - PyUnicode_InternFromString
    - PyErr_Clear
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: long
    signature: long Call_CanUnloadNow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:553,1
    - Dst: Call_CanUnloadNow
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:554,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 557
    functionName: DllCanUnloadNow
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - Call_CanUnloadNow
    - PyGILState_Release
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllCanUnloadNow(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DisableThreadLibraryCalls
      Src: /src/Python-3.8.3/Modules/_ctypes/callbacks.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpvRes
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
    functionUses: 0
    functionsReached:
    - DisableThreadLibraryCalls
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvRes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - s
    - ','
    - a
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: FFI_INTEGRAL_TYPEDEF
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_INTEGRAL_TYPEDEF(n, s, a, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: FFI_AGGREGATE_TYPEDEF
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/types.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_AGGREGATE_TYPEDEF(n, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: STACK_ARG_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_ARG_SIZE(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: initialize_aggregate
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:51,1
    - Dst: FFI_ASSERT_VALID_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:55,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:66,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:71,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:87,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - ffi_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 95
    functionName: initialize_aggregate
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c
    functionUses: 1
    functionsReached:
    - FFI_ASSERT_VALID_TYPE
    - ALIGN
    - initialize_aggregate
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status initialize_aggregate(\n/*@out@*/\tffi_type*\targ)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: struct_on_stack
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool struct_on_stack(\n\tint\tsize)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: initialize_aggregate
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:157,1
    - Dst: FFI_ASSERT_VALID_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:162,1
    - Dst: struct_on_stack
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:172,1
    - Dst: STACK_ARG_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:175,1
    - Dst: initialize_aggregate
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:181,1
    - Dst: FFI_ASSERT_VALID_TYPE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:189,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:199,1
    - Dst: STACK_ARG_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:201,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:215,1
    - Dst: STACK_ARG_SIZE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:217,1
    - Dst: ffi_prep_cif_machdep
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c:225,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 36
    argCount: 5
    argNames:
    - cif
    - abi
    - nargs
    - rtype
    - atypes
    argTypes:
    - ffi_cif*
    - ffi_abi
    - unsigned int
    - ffi_type*
    - ffi_type**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 226
    functionName: ffi_prep_cif
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c
    functionUses: 1
    functionsReached:
    - ffi_prep_cif_machdep
    - STACK_ARG_SIZE
    - ALIGN
    - FFI_ASSERT_VALID_TYPE
    - struct_on_stack
    - initialize_aggregate
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_cif(\n/*@out@*/ /*@partial@*/\tffi_cif*\t\tcif,
      \n\t\t\t\t\t\tffi_abi\t\t\tabi,\n\t\t\t\t\t\tunsigned int\tnargs, \n/*@dependent@*/
      /*@out@*/ /*@partial@*/ ffi_type*\trtype, \n/*@dependent@*/\t\t\tffi_type**\t\tatypes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:65,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:102,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:107,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - stack
    - ecif
    argTypes:
    - char*
    - extended_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 114
    functionName: ffi_prep_args
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - ALIGN
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ffi_prep_args(char *stack, extended_cif *ecif)
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - cif
    argTypes:
    - ffi_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 177
    functionName: ffi_prep_cif_machdep
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ffi_status
    signature: ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:201,1
    - Dst: ffi_call_SYSV
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:210,1
    - Dst: ffi_call_STDCALL
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:215,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cif
    - rvalue
    - avalue
    argTypes:
    - ffi_cif*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 223
    functionName: ffi_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - alloca
    - ffi_call_STDCALL
    - ffi_call_SYSV
    linkageType: ''
    returnType: void
    signature: void ffi_call(ffi_cif *cif, void (*fn)(), void *rvalue, void **avalue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - stack
    - rvalue
    - avalue
    - cif
    argTypes:
    - char*
    - void**
    - void**
    - ffi_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 303
    functionName: ffi_prep_incoming_args_SYSV
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - ALIGN
    linkageType: ''
    returnType: void
    signature: "void ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void
      **avalue,\n                            ffi_cif *cif)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TRAMP
    - ','
    - FUN
    - ','
    - CTX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: FFI_INIT_TRAMPOLINE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_INIT_TRAMPOLINE(TRAMP,FUN,CTX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FFI_INIT_TRAMPOLINE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - closure
    - cif
    - user_data
    argTypes:
    - ffi_closure*
    - ffi_cif*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 338
    functionName: ffi_prep_closure
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 1
    functionsReached:
    - FFI_INIT_TRAMPOLINE
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_closure (ffi_closure* closure,\n                  ffi_cif*
      cif,\n                  void (*fun)(ffi_cif*,void*,void**,void*),\n                  void
      *user_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:353,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:362,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:363,1
    - Dst: FFI_INIT_TRAMPOLINE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - closure
    - cif
    - user_data
    - codeloc
    argTypes:
    - ffi_raw_closure*
    - ffi_cif*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 375
    functionName: ffi_prep_raw_closure_loc
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - FFI_INIT_TRAMPOLINE
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_raw_closure_loc (ffi_raw_closure* closure,\n                          ffi_cif*
      cif,\n                          void (*fun)(ffi_cif*,void*,ffi_raw*,void*),\n
      \                         void *user_data,\n                          void *codeloc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stack
    - ecif
    argTypes:
    - char*
    - extended_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: ffi_prep_args_raw
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ffi_prep_args_raw(char *stack, extended_cif *ecif)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:413,1
    - Dst: ffi_call_SYSV
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:422,1
    - Dst: ffi_call_STDCALL
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:427,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cif
    - rvalue
    - fake_avalue
    argTypes:
    - ffi_cif*
    - void*
    - ffi_raw*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 435
    functionName: ffi_raw_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - alloca
    - ffi_call_STDCALL
    - ffi_call_SYSV
    linkageType: ''
    returnType: void
    signature: void ffi_raw_call(ffi_cif *cif, void (*fn)(), void *rvalue, ffi_raw
      *fake_avalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SSE_CLASS_P
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSE_CLASS_P(X)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 16
    argCount: 2
    argNames:
    - class1
    - class2
    argTypes:
    - enum x86_64_reg_class
    - enum x86_64_reg_class
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 128
    functionName: merge_classes
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum x86_64_reg_class
    signature: "enum x86_64_reg_class merge_classes(\n\tenum x86_64_reg_class\tclass1,\n\tenum
      x86_64_reg_class\tclass2)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:188,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:230,1
    - Dst: classify_argument
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:232,1
    - Dst: merge_classes
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:242,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:277,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:285,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:294,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 3
    argNames:
    - type
    - classes
    - byte_offset
    argTypes:
    - ffi_type*
    - enum x86_64_reg_class[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 298
    functionName: classify_argument
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 1
    functionsReached:
    - merge_classes
    - FFI_ASSERT
    - ALIGN
    - classify_argument
    linkageType: ''
    returnType: int
    signature: "int classify_argument(\n\tffi_type*\t\t\t\ttype,\n\tenum x86_64_reg_class\tclasses[],\n\tsize_t\t\t\t\t\tbyte_offset)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: classify_argument
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:311,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:344,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - type
    - classes
    - in_return
    - pngpr
    - pnsse
    argTypes:
    - ffi_type*
    - enum x86_64_reg_class[]
    - _Bool
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 352
    functionName: examine_argument
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 0
    functionsReached:
    - abort
    - classify_argument
    linkageType: ''
    returnType: int
    signature: "int examine_argument(\n\tffi_type*\t\t\t\ttype,\n\tenum x86_64_reg_class\tclasses[MAX_CLASSES],\n\t_Bool\t\t\t\t\tin_return,\n\tint*\t\t\t\t\tpngpr,\n\tint*\t\t\t\t\tpnsse)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: examine_argument
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:368,1
    - Dst: SSE_CLASS_P
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:382,1
    - Dst: SSE_CLASS_P
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:383,1
    - Dst: examine_argument
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:402,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:411,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:426,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - cif
    argTypes:
    - ffi_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 429
    functionName: ffi_prep_cif_machdep
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 1
    functionsReached:
    - SSE_CLASS_P
    - ALIGN
    - examine_argument
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_cif_machdep(\n\tffi_cif*\tcif)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:447,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:456,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:459,1
    - Dst: examine_argument
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:478,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:491,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:492,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:521,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:529,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:546,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:554,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:575,1
    - Dst: ffi_call_unix64
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c:581,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 3
    argNames:
    - cif
    - rvalue
    - avalue
    argTypes:
    - ffi_cif*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 583
    functionName: ffi_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FFI_ASSERT
    - examine_argument
    - ALIGN
    - abort
    - ffi_call_unix64
    - alloca
    linkageType: ''
    returnType: void
    signature: "void ffi_call(\n\tffi_cif*\tcif,\n\tvoid\t\t(*fn)(void),\n\tvoid*\t\trvalue,\n\tvoid**\t\tavalue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - closure
    - cif
    - user_data
    argTypes:
    - ffi_closure*
    - ffi_cif*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 616
    functionName: ffi_prep_closure
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_closure(\n\tffi_closure*\tclosure,\n\tffi_cif*\t\tcif,\n\tvoid\t\t\t(*fun)(ffi_cif*,
      void*, void**, void*),\n\tvoid*\t\t\tuser_data)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:142,1
    - Dst: SF_ROUND
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:142,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:143,1
    - Dst: SF_ROUND
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:143,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:144,1
    - Dst: SF_ROUND
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:144,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:172,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:184,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:186,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:207,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:208,1
    - Dst: ffi64_struct_to_reg_form
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:252,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:268,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:276,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 94
    argCount: 2
    argNames:
    - inEcif
    - stack
    argTypes:
    - extended_cif*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 303
    functionName: ffi_prep_args
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - memcpy
    - SF_ROUND
    - ffi64_struct_to_reg_form
    - MODE_CHOICE
    - ALIGN
    linkageType: ''
    returnType: void
    signature: "void ffi_prep_args(\n\textended_cif*\tinEcif,\n\tunsigned *const\tstack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ffi64_struct_contains_fp
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - inType
    argTypes:
    - ffi_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: ffi64_struct_contains_fp
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 1
    functionsReached:
    - ffi64_struct_contains_fp
    linkageType: ''
    returnType: bool
    signature: "bool ffi64_struct_contains_fp(\n\tconst ffi_type*\tinType)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ffi64_stret_needs_ptr
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:387,1
    - Dst: ffi64_struct_contains_fp
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:397,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:472,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:481,1
    - Dst: SF_ROUND
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:550,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 95
    argCount: 1
    argNames:
    - cif
    argTypes:
    - ffi_cif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 556
    functionName: ffi_prep_cif_machdep
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 1
    functionsReached:
    - SF_ROUND
    - ffi64_stret_needs_ptr
    - MODE_CHOICE
    - ALIGN
    - ffi64_struct_contains_fp
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_cif_machdep(\n\tffi_cif*\tcif)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:598,1
    - Dst: ffi_call_AIX
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:608,1
    - Dst: ffi_call_DARWIN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:615,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - cif
    - rvalue
    - avalue
    argTypes:
    - ffi_cif*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 624
    functionName: ffi_call
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - FFI_ASSERT
    - alloca
    - ffi_call_DARWIN
    - ffi_call_AIX
    linkageType: ''
    returnType: void
    signature: "void ffi_call(\n/*@dependent@*/\tffi_cif*\tcif,\n\t\t\t\tvoid\t\t(*fn)(void),\n/*@out@*/\t\tvoid*\t\trvalue,\n/*@dependent@*/\tvoid**\t\tavalue)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 696
    functionName: flush_icache
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void flush_icache(\n\tchar*\taddr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flush_icache
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:706,1
    - Dst: flush_icache
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - addr
    - size
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 709
    functionName: flush_range
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - flush_icache
    linkageType: ''
    returnType: void
    signature: "void flush_range(\n\tchar*\taddr,\n\tint\t\tsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:724,1
    - Dst: sys_icache_invalidate
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:760,1
    - Dst: flush_range
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:762,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - closure
    - cif
    - user_data
    argTypes:
    - ffi_closure*
    - ffi_cif*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 790
    functionName: ffi_prep_closure
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 1
    functionsReached:
    - sys_icache_invalidate
    - FFI_ASSERT
    - flush_range
    linkageType: ''
    returnType: ffi_status
    signature: "ffi_status ffi_prep_closure(\n\tffi_closure*\tclosure,\n\tffi_cif*\t\tcif,\n\tvoid\t\t\t(*fun)(ffi_cif*,
      void*, void**, void*),\n\tvoid*\t\t\tuser_data)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:834,1
    - Dst: ffi64_stret_needs_ptr
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:841,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:860,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:867,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:877,1
    - Dst: alloca
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:891,1
    - Dst: ffi64_struct_to_ram_form
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:892,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:907,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:910,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:930,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:931,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:965,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:966,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:992,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:993,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1003,1
    - Dst: MODE_CHOICE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1004,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1011,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 100
    argCount: 4
    argNames:
    - closure
    - rvalue
    - pgr
    - pfr
    argTypes:
    - ffi_closure*
    - void*
    - unsigned long*
    - ffi_dblfl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 1020
    functionName: ffi_closure_helper_DARWIN
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - memcpy
    - FFI_ASSERT
    - ffi64_stret_needs_ptr
    - MODE_CHOICE
    - ALIGN
    - ffi64_struct_to_ram_form
    - alloca
    linkageType: ''
    returnType: int
    signature: "int ffi_closure_helper_DARWIN(\n\tffi_closure*\tclosure,\n\tvoid*\t\t\trvalue,\n\tunsigned
      long*\tpgr,\n\tffi_dblfl*\t\tpfr)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1085,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1086,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1087,1
    - Dst: FFI_TYPE_1_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1107,1
    - Dst: FFI_TYPE_2_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1108,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1109,1
    - Dst: FFI_TYPE_4_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1110,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1111,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1112,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1118,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1119,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1136,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1141,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1145,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1146,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1154,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1155,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1164,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1183,1
    - Dst: FFI_TYPE_1_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1198,1
    - Dst: FFI_TYPE_2_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1199,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1200,1
    - Dst: FFI_TYPE_4_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1201,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1202,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1203,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1212,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1213,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1225,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1226,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1238,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1239,1
    - Dst: ffi64_struct_to_ram_form
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1250,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1257,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1262,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1274,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1283,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 145
    argCount: 8
    argNames:
    - inType
    - inGPRs
    - ioGPRMarker
    - inFPRs
    - ioFPRMarker
    - ioFPRsUsed
    - outStruct
    - ioStructMarker
    argTypes:
    - ffi_type*
    - char*
    - unsigned int*
    - char*
    - unsigned int*
    - unsigned int*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1284
    functionName: ffi64_struct_to_ram_form
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 2
    functionsReached:
    - memcpy
    - FFI_ASSERT
    - ALIGN
    - FFI_TYPE_1_BYTE
    - ffi64_struct_to_ram_form
    - FFI_TYPE_2_BYTE
    - FFI_TYPE_4_BYTE
    linkageType: ''
    returnType: void
    signature: "void ffi64_struct_to_ram_form(\n\tconst ffi_type*\tinType,\n\tconst
      char*\t\tinGPRs,\n\tunsigned int*\tioGPRMarker,\n\tconst char*\t\tinFPRs,\n\tunsigned
      int*\tioFPRMarker,\n\tunsigned int*\tioFPRsUsed,\n\tchar*\t\t\toutStruct,\t//
      caller-allocated\n\tunsigned int*\tioStructMarker)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1350,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1351,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1352,1
    - Dst: FFI_TYPE_1_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1375,1
    - Dst: FFI_TYPE_2_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1376,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1377,1
    - Dst: FFI_TYPE_4_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1378,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1379,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1380,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1386,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1387,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1407,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1412,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1416,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1417,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1432,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1441,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1479,1
    - Dst: FFI_TYPE_1_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1500,1
    - Dst: FFI_TYPE_2_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1501,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1502,1
    - Dst: FFI_TYPE_4_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1503,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1504,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1505,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1513,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1514,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1524,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1531,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1532,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1546,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1547,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1557,1
    - Dst: ffi64_struct_to_reg_form
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1563,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1570,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1575,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1589,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1595,1
    - Dst: ALIGN
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1598,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 174
    argCount: 8
    argNames:
    - inType
    - inStruct
    - ioStructMarker
    - ioFPRsUsed
    - outGPRs
    - ioGPRSize
    - outFPRs
    - ioFPRSize
    argTypes:
    - ffi_type*
    - char*
    - unsigned int*
    - unsigned int*
    - char*
    - unsigned int*
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1599
    functionName: ffi64_struct_to_reg_form
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 2
    functionsReached:
    - memcpy
    - FFI_ASSERT
    - ffi64_struct_to_reg_form
    - ALIGN
    - FFI_TYPE_1_BYTE
    - FFI_TYPE_2_BYTE
    - FFI_TYPE_4_BYTE
    linkageType: ''
    returnType: void
    signature: "void ffi64_struct_to_reg_form(\n\tconst ffi_type*\tinType,\n\tconst
      char*\t\tinStruct,\n\tunsigned int*\tioStructMarker,\n\tunsigned int*\tioFPRsUsed,\n\tchar*\t\t\toutGPRs,\t//
      caller-allocated\n\tunsigned int*\tioGPRSize,\n\tchar*\t\t\toutFPRs,\t// caller-allocated\n\tunsigned
      int*\tioFPRSize)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: FFI_TYPE_1_BYTE
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1673,1
    - Dst: ffi64_stret_needs_ptr
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1698,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1704,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - inType
    - ioGPRCount
    - ioFPRCount
    argTypes:
    - ffi_type*
    - unsigned short*
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1716
    functionName: ffi64_stret_needs_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 3
    functionsReached:
    - ffi64_stret_needs_ptr
    - FFI_ASSERT
    - FFI_TYPE_1_BYTE
    linkageType: ''
    returnType: bool
    signature: "bool ffi64_stret_needs_ptr(\n\tconst ffi_type*\tinType,\n\tunsigned
      short*\tioGPRCount,\n\tunsigned short*\tioFPRCount)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ffi64_struct_to_reg_form
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1760,1
    - Dst: FFI_ASSERT
      Src: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c:1768,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - inType
    argTypes:
    - ffi_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1773
    functionName: ffi64_data_size
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    functionUses: 0
    functionsReached:
    - ffi64_struct_to_reg_form
    - FFI_ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int ffi64_data_size(\n\tconst ffi_type*\tinType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: L
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L(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: FFI_TYPE_1_BYTE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_TYPE_1_BYTE(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: FFI_TYPE_2_BYTE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_TYPE_2_BYTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: FFI_TYPE_4_BYTE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_TYPE_4_BYTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: FFI_HIDDEN
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_HIDDEN(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - d
    - ','
    - s
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: memcpy
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 340
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcpy(d, s, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: FFI_ASSERT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - f
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: FFI_ASSERT_AT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_ASSERT_AT(x, f, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: FFI_ASSERT_VALID_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_ASSERT_VALID_TYPE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: FFI_ASSERT
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: ALIGN
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(v, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: FFI_FN
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_FN(f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:90,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:91,1
    - Dst: vsnprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:92,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - setget
    - str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 106
    functionName: error
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 265
    functionsReached:
    - vsnprintf
    - va_start
    - va_end
    - strncpy
    linkageType: ''
    returnType: char
    signature: char *error(int setget, const char *str, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSCreateObjectFileImageFromFile
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:121,1
    - Dst: NSLinkModule
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:126,1
    - Dst: NSDestroyObjectFileImage
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:130,1
    - Dst: NSAddImage
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:134,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:138,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 145
    functionName: darwin_dlopen
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached:
    - NSLinkModule
    - error
    - NSCreateObjectFileImageFromFile
    - NSDestroyObjectFileImage
    - NSAddImage
    linkageType: ''
    returnType: void
    signature: void *darwin_dlopen(const char *path, int mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSIsSymbolNameDefined
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:155,1
    - Dst: NSLookupAndBindSymbol
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:157,1
    - Dst: NSIsSymbolNameDefinedInImage
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:169,1
    - Dst: NSLookupSymbolInImage
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:171,1
    - Dst: NSLookupSymbolInModule
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:180,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:185,1
    - Dst: NSAddressOfSymbol
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - handle
    - symbol
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 189
    functionName: dlsymIntern
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached:
    - NSIsSymbolNameDefined
    - NSAddressOfSymbol
    - NSIsSymbolNameDefinedInImage
    - error
    - NSLookupAndBindSymbol
    - NSLookupSymbolInModule
    - NSLookupSymbolInImage
    linkageType: ''
    returnType: void
    signature: void *dlsymIntern(void *handle, const char *symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 194
    functionName: darwin_dlerror
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached:
    - error
    linkageType: ''
    returnType: char
    signature: char *darwin_dlerror(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:201,1
    - Dst: NSUnLinkModule
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:204,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:206,1
    - Dst: NSNameOfModule
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 210
    functionName: darwin_dlclose
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached:
    - NSNameOfModule
    - NSUnLinkModule
    - error
    linkageType: ''
    returnType: int
    signature: int darwin_dlclose(void *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:217,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:223,1
    - Dst: dlsymIntern
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:224,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:228,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:231,1
    - Dst: dlsymIntern
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:232,1
    - Dst: free
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:233,1
    - Dst: error
      Src: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - handle
    - symbol
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 241
    functionName: darwin_dlsym
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached:
    - malloc
    - snprintf
    - error
    - strlen
    - free
    - dlsymIntern
    - sprintf
    linkageType: ''
    returnType: void
    signature: void *darwin_dlsym(void *handle, const char *symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - info
    argTypes:
    - void*
    - Dl_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: darwin_dladdr
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int darwin_dladdr(const void *handle, Dl_info *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 270
    functionName: ctypes_dlfcn_init
    functionSourceFile: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ctypes_dlfcn_init(void)
  - 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: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: SHA3_copystate
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_copystate(dest, src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: newSHA3object
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: SHA3object
    signature: 'SHA3object *

      newSHA3object(PyTypeObject *type)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:181,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:181,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:184,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:184,1
    - Dst: newSHA3object
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:188,1
    - Dst: Keccak_HashInitialize_SHA3_224
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:194,1
    - Dst: Keccak_HashInitialize_SHA3_256
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:196,1
    - Dst: Keccak_HashInitialize_SHA3_384
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:198,1
    - Dst: Keccak_HashInitialize_SHA3_512
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:200,1
    - Dst: Keccak_HashInitialize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:203,1
    - Dst: Keccak_HashInitialize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:205,1
    - Dst: Keccak_HashInitialize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:207,1
    - Dst: Keccak_HashInitialize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:209,1
    - Dst: Keccak_HashInitialize_SHAKE128
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:212,1
    - Dst: Keccak_HashInitialize_SHAKE256
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:214,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:216,1
    - Dst: GET_BUFFER_VIEW_OR_ERROR
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:221,1
    - Dst: SHA3_process
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:227,1
    - Dst: SHA3_process
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:231,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:234,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:245,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:248,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 251
    functionName: py_sha3_new
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - Keccak_HashInitialize_SHA3_224
    - newSHA3object
    - Keccak_HashInitialize
    - Py_DECREF
    - Keccak_HashInitialize_SHA3_512
    - Keccak_HashInitialize_SHA3_256
    - Keccak_HashInitialize_SHAKE256
    - PyErr_BadInternalCall
    - _PyArg_NoKeywords
    - Keccak_HashInitialize_SHA3_384
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_UnpackTuple
    - SHA3_process
    - _PyType_Name
    - Keccak_HashInitialize_SHAKE128
    - GET_BUFFER_VIEW_OR_ERROR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:260,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: SHA3_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void SHA3_dealloc(SHA3object *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: newSHA3object
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:281,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:281,1
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:284,1
    - Dst: SHA3_copystate
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:285,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: _sha3_sha3_224_copy_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - newSHA3object
    - LEAVE_HASHLIB
    - SHA3_copystate
    - Py_TYPE
    - ENTER_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_copy_impl(SHA3object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:305,1
    - Dst: SHA3_copystate
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:306,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:307,1
    - Dst: SHA3_done
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:308,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:310,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 315
    functionName: _sha3_sha3_224_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - LEAVE_HASHLIB
    - SHA3_copystate
    - PyErr_SetString
    - SHA3_done
    - ENTER_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_digest_impl(SHA3object *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:333,1
    - Dst: SHA3_copystate
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:334,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:335,1
    - Dst: SHA3_done
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:336,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:338,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - SHA3object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 343
    functionName: _sha3_sha3_224_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - LEAVE_HASHLIB
    - SHA3_copystate
    - PyErr_SetString
    - SHA3_done
    - ENTER_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_hexdigest_impl(SHA3object *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_BUFFER_VIEW_OR_ERROUT
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:362,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:366,1
    - Dst: SHA3_process
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:375,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:376,1
    - Dst: SHA3_process
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:380,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:384,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:385,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - self
    - data
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 392
    functionName: _sha3_sha3_224_update
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - GET_BUFFER_VIEW_OR_ERROUT
    - PyBuffer_Release
    - PyThread_allocate_lock
    - PyThread_release_lock
    - SHA3_process
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_update(SHA3object *self, PyObject *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: SHA3_get_block_size
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_block_size(SHA3object *self, void *closure)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:415,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:417,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:419,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:421,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:423,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:426,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:428,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:430,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:432,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:435,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:437,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:439,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 442
    functionName: SHA3_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyUnicode_FromString
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_name(SHA3object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: SHA3_get_digest_size
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_digest_size(SHA3object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: SHA3_get_capacity_bits
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_capacity_bits(SHA3object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: SHA3_get_rate_bits
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_rate_bits(SHA3object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - SHA3object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 474
    functionName: SHA3_get_suffix
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA3_get_suffix(SHA3object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type_obj
    - ','
    - type_name
    - ','
    - type_doc
    - ','
    - type_methods
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    functionName: SHA3_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_TYPE(type_obj, type_name, type_doc, type_methods)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:593,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:599,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:601,1
    - Dst: ENTER_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:605,1
    - Dst: SHA3_copystate
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:606,1
    - Dst: LEAVE_HASHLIB
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:607,1
    - Dst: SHA3_done
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:608,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:610,1
    - Dst: SHA3_squeeze
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:613,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:615,1
    - Dst: _Py_strhex
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:619,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:621,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - self
    - digestlen
    - hex
    argTypes:
    - SHA3object*
    - unsigned long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 629
    functionName: _SHAKE_digest
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - _Py_strhex
    - PyBytes_FromStringAndSize
    - LEAVE_HASHLIB
    - PyErr_NoMemory
    - SHA3_copystate
    - SHA3_squeeze
    - PyMem_Free
    - PyErr_SetString
    - SHA3_done
    - PyMem_Malloc
    - ENTER_HASHLIB
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _SHAKE_digest(SHA3object *self, unsigned long digestlen, int hex)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHAKE_digest
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: _sha3_shake_128_digest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHAKE_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_digest_impl(SHA3object *self, unsigned long length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SHAKE_digest
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - length
    argTypes:
    - SHA3object*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: _sha3_shake_128_hexdigest_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - _SHAKE_digest
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:707,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:723,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:724,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:725,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:726,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:728,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:729,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:730,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:731,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:733,1
    - Dst: init_sha3type
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:734,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:738,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:741,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sha3/sha3module.c:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 750
    functionName: PyInit__sha3
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - Py_DECREF
    - init_sha3type
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sha3(void)
  - 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: 722
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 722
    functionName: init_sha3type
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: init_sha3type(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_copy_impl
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _sha3_sha3_224_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_copy(SHA3object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_digest_impl
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _sha3_sha3_224_digest
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_digest(SHA3object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sha3_sha3_224_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: _sha3_sha3_224_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_sha3_224_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_sha3_224_hexdigest(SHA3object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:86,1
    - Dst: _sha3_shake_128_digest_impl
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: _sha3_shake_128_digest
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_shake_128_digest_impl
    - _PyLong_UnsignedLong_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_digest(SHA3object *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_UnsignedLong_Converter
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:113,1
    - Dst: _sha3_shake_128_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - SHA3object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 120
    functionName: _sha3_shake_128_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
    functionUses: 0
    functionsReached:
    - _sha3_shake_128_hexdigest_impl
    - _PyLong_UnsignedLong_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha3_shake_128_hexdigest(SHA3object *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: Keccak_HashInitialize_SHAKE128
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHAKE128(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Keccak_HashInitialize_SHAKE256
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHAKE256(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Keccak_HashInitialize_SHA3_224
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHA3_224(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: Keccak_HashInitialize_SHA3_256
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHA3_256(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: Keccak_HashInitialize_SHA3_384
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHA3_384(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashInstance
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: Keccak_HashInitialize_SHA3_512
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Keccak_HashInitialize_SHA3_512(hashInstance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ROL64
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL64(a, offset)
  - 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: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: ROL64
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL64(x,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ROL64
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL64(a, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: KeccakP1600_Initialize
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Initialize(void *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: KeccakP1600_AddBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddBytesInLane(void *state, unsigned int lanePosition,
      const unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 175
    functionName: KeccakP1600_AddLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddLanes(void *state, const unsigned char *data, unsigned
      int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - byte
    - offset
    argTypes:
    - void*
    - unsigned char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: KeccakP1600_AddByte
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddByte(void *state, unsigned char byte, unsigned
      int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_AddBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: KeccakP1600_AddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - SnP_AddBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned
      int offset, unsigned int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: KeccakP1600_OverwriteBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteBytesInLane(void *state, unsigned int lanePosition,
      const unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 235
    functionName: KeccakP1600_OverwriteLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteLanes(void *state, const unsigned char *data,
      unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_OverwriteBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: KeccakP1600_OverwriteBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - SnP_OverwriteBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data,
      unsigned int offset, unsigned int length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:260,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:262,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:265,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 12
    argCount: 2
    argNames:
    - state
    - byteCount
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 270
    functionName: KeccakP1600_OverwriteWithZeroes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyFromState
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: KeccakP1600_Permute_24rounds
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - copyFromState
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Permute_24rounds(void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyFromState
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: KeccakP1600_Permute_12rounds
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - copyFromState
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Permute_12rounds(void *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 325
    functionName: KeccakP1600_ExtractBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractBytesInLane(const void *state, unsigned int
      lanePosition, unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - word
    argTypes:
    - UINT8*
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: fromWordToBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fromWordToBytes(UINT8 *bytes, const UINT64 word)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:342,1
    - Dst: fromWordToBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 369
    functionName: KeccakP1600_ExtractLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fromWordToBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractLanes(const void *state, unsigned char *data,
      unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_ExtractBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: KeccakP1600_ExtractBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - SnP_ExtractBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractBytes(const void *state, unsigned char *data,
      unsigned int offset, unsigned int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 6
    argNames:
    - state
    - lanePosition
    - input
    - output
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 403
    functionName: KeccakP1600_ExtractAndAddBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddBytesInLane(const void *state, unsigned
      int lanePosition, const unsigned char *input, unsigned char *output, unsigned
      int offset, unsigned int length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fromWordToBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:419,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - state
    - input
    - output
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 444
    functionName: KeccakP1600_ExtractAndAddLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - fromWordToBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddLanes(const void *state, const unsigned
      char *input, unsigned char *output, unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_ExtractAndAddBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - state
    - input
    - output
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 451
    functionName: KeccakP1600_ExtractAndAddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - SnP_ExtractAndAddBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned
      char *input, unsigned char *output, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copyFromState
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:465,1
    - Dst: addInput
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:467,1
    - Dst: copyToState
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - state
    - laneCount
    - data
    - dataByteLen
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 474
    functionName: KeccakF1600_FastLoop_Absorb
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
    functionUses: 0
    functionsReached:
    - copyToState
    - addInput
    - copyFromState
    linkageType: ''
    returnType: size_t
    signature: size_t KeccakF1600_FastLoop_Absorb(void *state, unsigned int laneCount,
      const unsigned char *data, size_t dataByteLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ROL32
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL32(a, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: prepareToBitInterleaving
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prepareToBitInterleaving(low, high, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - even
    - ','
    - odd
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: toBitInterleavingAndXOR
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toBitInterleavingAndXOR(low, high, even, odd, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - even
    - ','
    - odd
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: toBitInterleavingAndAND
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toBitInterleavingAndAND(low, high, even, odd, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - low
    - ','
    - high
    - ','
    - even
    - ','
    - odd
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - 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: toBitInterleavingAndSet
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toBitInterleavingAndSet(low, high, even, odd, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - even
    - ','
    - odd
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: prepareFromBitInterleaving
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prepareFromBitInterleaving(even, odd, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - even
    - ','
    - odd
    - ','
    - low
    - ','
    - high
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: fromBitInterleaving
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fromBitInterleaving(even, odd, low, high, temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - even
    - ','
    - odd
    - ','
    - lowIn
    - ','
    - highIn
    - ','
    - lowOut
    - ','
    - highOut
    - ','
    - temp
    - ','
    - temp0
    - ','
    - temp1
    - )
    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: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: fromBitInterleavingAndXOR
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fromBitInterleavingAndXOR(even, odd, lowIn, highIn, lowOut, highOut,
      temp, temp0, temp1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:93,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:94,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:95,1
    - Dst: toBitInterleavingAndAND
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - state
    - lanePosition
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 110
    functionName: KeccakP1600_SetBytesInLaneToZero
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memset
    - toBitInterleavingAndAND
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_SetBytesInLaneToZero(void *state, unsigned int lanePosition,
      unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: KeccakP1600_Initialize
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Initialize(void *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - state
    - byte
    - offset
    argTypes:
    - void*
    - unsigned char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: KeccakP1600_AddByte
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - toBitInterleavingAndXOR
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddByte(void *state, unsigned char byte, unsigned
      int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:149,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:150,1
    - Dst: toBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: KeccakP1600_AddBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - toBitInterleavingAndXOR
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddBytesInLane(void *state, unsigned int lanePosition,
      const unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:180,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:181,1
    - Dst: toBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:182,1
    - Dst: toBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:184,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:193,1
    - Dst: toBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: KeccakP1600_AddLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memcpy
    - toBitInterleavingAndXOR
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddLanes(void *state, const unsigned char *data, unsigned
      int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_AddBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: KeccakP1600_AddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - SnP_AddBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned
      int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakP1600_SetBytesInLaneToZero
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:219,1
    - Dst: KeccakP1600_AddBytesInLane
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: KeccakP1600_OverwriteBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - KeccakP1600_AddBytesInLane
    - KeccakP1600_SetBytesInLaneToZero
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteBytesInLane(void *state, unsigned int lanePosition,
      const unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:236,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:237,1
    - Dst: toBitInterleavingAndSet
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:238,1
    - Dst: toBitInterleavingAndSet
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:240,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:249,1
    - Dst: toBitInterleavingAndSet
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 262
    functionName: KeccakP1600_OverwriteLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memcpy
    - toBitInterleavingAndSet
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteLanes(void *state, const unsigned char *data,
      unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_OverwriteBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: KeccakP1600_OverwriteBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - SnP_OverwriteBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data,
      unsigned int offset, unsigned int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeccakP1600_SetBytesInLaneToZero
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - state
    - byteCount
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: KeccakP1600_OverwriteWithZeroes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - KeccakP1600_SetBytesInLaneToZero
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:294,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - state
    - lanePosition
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 309
    functionName: KeccakP1600_ExtractBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fromBitInterleaving
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractBytesInLane(const void *state, unsigned int
      lanePosition, unsigned char *data, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:324,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:325,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:326,1
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:328,1
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:337,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - state
    - data
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 349
    functionName: KeccakP1600_ExtractLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fromBitInterleaving
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractLanes(const void *state, unsigned char *data,
      unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_ExtractBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - state
    - data
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 356
    functionName: KeccakP1600_ExtractBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - SnP_ExtractBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractBytes(const void *state, unsigned char *data,
      unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - state
    - lanePosition
    - input
    - output
    - offset
    - length
    argTypes:
    - void*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 383
    functionName: KeccakP1600_ExtractAndAddBytesInLane
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - fromBitInterleaving
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddBytesInLane(const void *state, unsigned
      int lanePosition, const unsigned char *input, unsigned char *output, unsigned
      int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:399,1
    - Dst: fromBitInterleavingAndXOR
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:403,1
    - Dst: fromBitInterleaving
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - state
    - input
    - output
    - laneCount
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 425
    functionName: KeccakP1600_ExtractAndAddLanes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - fromBitInterleavingAndXOR
    - fromBitInterleaving
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddLanes(const void *state, const unsigned
      char *input, unsigned char *output, unsigned int laneCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SnP_ExtractAndAddBytes
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - state
    - input
    - output
    - offset
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 431
    functionName: KeccakP1600_ExtractAndAddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - SnP_ExtractAndAddBytes
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned
      char *input, unsigned char *output, unsigned int offset, unsigned int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 490
    functionName: KeccakAtoD_round0
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KeccakAtoD_round0()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 516
    functionName: KeccakAtoD_round1
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KeccakAtoD_round1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 542
    functionName: KeccakAtoD_round2
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KeccakAtoD_round2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 568
    functionName: KeccakAtoD_round3
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KeccakAtoD_round3()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakAtoD_round0
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:639,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:642,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:643,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:644,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:645,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:654,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:655,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:656,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:657,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:665,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:666,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:667,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:668,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:669,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:676,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:677,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:678,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:679,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:680,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:687,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:688,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:689,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:690,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:691,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:698,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:700,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:701,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:702,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:709,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:710,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:711,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:712,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:713,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:720,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:721,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:722,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:723,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:724,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:731,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:732,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:733,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:734,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:735,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:742,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:743,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:744,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:745,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:746,1
    - Dst: KeccakAtoD_round1
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:753,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:756,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:757,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:758,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:759,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:768,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:769,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:770,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:771,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:779,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:780,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:781,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:782,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:783,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:790,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:791,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:792,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:793,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:794,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:801,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:802,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:803,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:804,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:805,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:812,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:814,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:815,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:816,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:823,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:824,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:825,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:826,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:827,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:834,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:835,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:836,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:837,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:838,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:845,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:846,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:847,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:848,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:849,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:856,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:857,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:858,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:859,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:860,1
    - Dst: KeccakAtoD_round2
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:867,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:870,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:871,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:872,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:873,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:882,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:883,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:884,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:885,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:893,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:894,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:895,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:896,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:897,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:904,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:905,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:906,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:907,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:908,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:915,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:916,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:917,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:918,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:919,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:926,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:928,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:929,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:930,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:937,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:938,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:939,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:940,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:941,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:948,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:949,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:950,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:951,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:952,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:959,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:960,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:961,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:962,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:963,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:970,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:971,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:972,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:973,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:974,1
    - Dst: KeccakAtoD_round3
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:981,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:984,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:985,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:986,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:987,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:996,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:997,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:998,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:999,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1007,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1008,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1009,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1010,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1011,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1018,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1019,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1020,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1021,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1022,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1029,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1030,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1031,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1032,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1033,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1040,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1042,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1043,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1044,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1051,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1052,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1053,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1054,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1055,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1062,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1063,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1064,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1065,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1066,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1073,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1074,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1075,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1076,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1077,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1084,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1085,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1086,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1087,1
    - Dst: ROL32
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 416
    argCount: 2
    argNames:
    - state
    - nRounds
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 1148
    functionName: KeccakP1600_Permute_Nrounds
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - KeccakAtoD_round1
    - KeccakAtoD_round2
    - ROL32
    - KeccakAtoD_round3
    - KeccakAtoD_round0
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Permute_Nrounds(void *state, unsigned int nRounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakP1600_Permute_Nrounds
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1155
    functionName: KeccakP1600_Permute_12rounds
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - KeccakP1600_Permute_Nrounds
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Permute_12rounds(void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakP1600_Permute_Nrounds
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1162
    functionName: KeccakP1600_Permute_24rounds
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
    functionUses: 0
    functionsReached:
    - KeccakP1600_Permute_Nrounds
    linkageType: ''
    returnType: void
    signature: void KeccakP1600_Permute_24rounds(void *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - prefix
    - ','
    - size
    - ','
    - alignment
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: KCP_DeclareSpongeStructure
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KCP_DeclareSpongeStructure(prefix, size, alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: KCP_DeclareSpongeFunctions
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KCP_DeclareSpongeFunctions(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: ALIGN
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/align.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(x)
  - 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: ALIGN
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/align.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(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: ALIGN
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/align.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - state
    - ','
    - data
    - ','
    - offset
    - ','
    - length
    - ','
    - SnP_AddLanes
    - ','
    - SnP_AddBytesInLane
    - ','
    - SnP_laneLengthInBytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: SnP_AddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/SnP-Relaned.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SnP_AddBytes(state, data, offset, length, SnP_AddLanes, SnP_AddBytesInLane,
      SnP_laneLengthInBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - state
    - ','
    - data
    - ','
    - offset
    - ','
    - length
    - ','
    - SnP_OverwriteLanes
    - ','
    - SnP_OverwriteBytesInLane
    - ','
    - SnP_laneLengthInBytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 74
    functionName: SnP_OverwriteBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/SnP-Relaned.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SnP_OverwriteBytes(state, data, offset, length, SnP_OverwriteLanes,
      SnP_OverwriteBytesInLane, SnP_laneLengthInBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - state
    - ','
    - data
    - ','
    - offset
    - ','
    - length
    - ','
    - SnP_ExtractLanes
    - ','
    - SnP_ExtractBytesInLane
    - ','
    - SnP_laneLengthInBytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: SnP_ExtractBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/SnP-Relaned.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SnP_ExtractBytes(state, data, offset, length, SnP_ExtractLanes, SnP_ExtractBytesInLane,
      SnP_laneLengthInBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - state
    - ','
    - input
    - ','
    - output
    - ','
    - offset
    - ','
    - length
    - ','
    - SnP_ExtractAndAddLanes
    - ','
    - SnP_ExtractAndAddBytesInLane
    - ','
    - SnP_laneLengthInBytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: SnP_ExtractAndAddBytes
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/SnP-Relaned.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SnP_ExtractAndAddBytes(state, input, output, offset, length, SnP_ExtractAndAddLanes,
      SnP_ExtractAndAddBytesInLane, SnP_laneLengthInBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KeccakWidth1600_SpongeInitialize
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - instance
    - rate
    - capacity
    - hashbitlen
    - delimitedSuffix
    argTypes:
    - Keccak_HashInstance*
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 33
    functionName: Keccak_HashInitialize
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c
    functionUses: 1
    functionsReached:
    - KeccakWidth1600_SpongeInitialize
    linkageType: ''
    returnType: HashReturn
    signature: HashReturn Keccak_HashInitialize(Keccak_HashInstance *instance, unsigned
      int rate, unsigned int capacity, unsigned int hashbitlen, unsigned char delimitedSuffix)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: KeccakWidth1600_SpongeAbsorb
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:40,1
    - Dst: KeccakWidth1600_SpongeAbsorb
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:42,1
    - Dst: KeccakWidth1600_SpongeAbsorb
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - instance
    - data
    - databitlen
    argTypes:
    - Keccak_HashInstance*
    - BitSequence*
    - DataLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 62
    functionName: Keccak_HashUpdate
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c
    functionUses: 0
    functionsReached:
    - KeccakWidth1600_SpongeAbsorb
    linkageType: ''
    returnType: HashReturn
    signature: HashReturn Keccak_HashUpdate(Keccak_HashInstance *instance, const BitSequence
      *data, DataLength databitlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeccakWidth1600_SpongeAbsorbLastFewBits
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:68,1
    - Dst: KeccakWidth1600_SpongeSqueeze
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - instance
    - hashval
    argTypes:
    - Keccak_HashInstance*
    - BitSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: Keccak_HashFinal
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c
    functionUses: 0
    functionsReached:
    - KeccakWidth1600_SpongeSqueeze
    - KeccakWidth1600_SpongeAbsorbLastFewBits
    linkageType: ''
    returnType: HashReturn
    signature: HashReturn Keccak_HashFinal(Keccak_HashInstance *instance, BitSequence
      *hashval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeccakWidth1600_SpongeSqueeze
      Src: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - data
    - databitlen
    argTypes:
    - Keccak_HashInstance*
    - BitSequence*
    - DataLength
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: Keccak_HashSqueeze
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c
    functionUses: 0
    functionsReached:
    - KeccakWidth1600_SpongeSqueeze
    linkageType: ''
    returnType: HashReturn
    signature: HashReturn Keccak_HashSqueeze(Keccak_HashInstance *instance, BitSequence
      *data, DataLength databitlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - state
    - ','
    - byte
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: KeccakP1600_AddByte
    functionSourceFile: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KeccakP1600_AddByte(state, byte, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 0
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf8InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ns
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:43,1
    - Dst: ns
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:45,1
    - Dst: ns
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:48,1
    - Dst: ns
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 0
    functionsReached:
    - ns
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(XmlGetUtf16InternalEncoding)(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initScan
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:63,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 1
    functionsReached:
    - NS
    - initScan
    linkageType: ''
    returnType: int
    signature: "int NS(initScanProlog)(const ENCODING *enc, const char *ptr, const
      char *end,\n                   const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initScan
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:70,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 2
    functionsReached:
    - NS
    - initScan
    linkageType: ''
    returnType: int
    signature: "int NS(initScanContent)(const ENCODING *enc, const char *ptr, const
      char *end,\n                    const char **nextTokPtr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getEncodingIndex
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:77,1
    - Dst: SET_INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:80,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:81,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - encPtr
    - name
    argTypes:
    - INIT_ENCODING*
    - ENCODING**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 3
    functionsReached:
    - NS
    - SET_INIT_ENC_INDEX
    - getEncodingIndex
    linkageType: ''
    returnType: int
    signature: "int NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr,\n
      \                   const char *name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XmlUtf8Convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:95,1
    - Dst: streqci
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:99,1
    - Dst: getEncodingIndex
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:101,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 4
    functionsReached:
    - NS
    - XmlUtf8Convert
    - streqci
    - getEncodingIndex
    linkageType: ''
    returnType: ENCODING
    signature: 'ENCODING *

      NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: doParseXmlDecl
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:113,1
    - Dst: NS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_ns.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - isGeneralTextEntity
    - enc
    - ptr
    - end
    - badPtr
    - versionPtr
    - versionEndPtr
    - encodingName
    - encoding
    - standalone
    argTypes:
    - int
    - ENCODING*
    - char*
    - char*
    - char**
    - char**
    - char**
    - char**
    - ENCODING**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
    functionUses: 5
    functionsReached:
    - doParseXmlDecl
    - NS
    linkageType: ''
    returnType: int
    signature: "int NS(XmlParseXmlDecl)(int isGeneralTextEntity, const ENCODING *enc,\n
      \                   const char *ptr, const char *end, const char **badPtr,\n
      \                   const char **versionPtr, const char **versionEndPtr,\n                    const
      char **encodingName, const ENCODING **encoding,\n                    int *standalone)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - state
    - ','
    - tok
    - ','
    - ptr
    - ','
    - end
    - ','
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: XmlTokenRole
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlTokenRole(state, tok, ptr, end, enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pages
    - ','
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: UCS2_GET_NAMING
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UCS2_GET_NAMING(pages, hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pages
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: UTF8_GET_NAMING2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_GET_NAMING2(pages, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pages
    - ','
    - byte
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: UTF8_GET_NAMING3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_GET_NAMING3(pages, byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pages
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: UTF8_GET_NAMING
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_GET_NAMING(pages, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: UTF8_INVALID2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_INVALID2(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: UTF8_INVALID3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_INVALID3(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: UTF8_INVALID4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UTF8_INVALID4(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:135,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: PTRFASTCALL::isNever
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      isNever(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:142,1
    - Dst: UTF8_GET_NAMING2
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: PTRFASTCALL::utf8_isName2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_GET_NAMING2
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isName2(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:148,1
    - Dst: UTF8_GET_NAMING3
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: PTRFASTCALL::utf8_isName3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_GET_NAMING3
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isName3(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:156,1
    - Dst: UTF8_GET_NAMING2
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: PTRFASTCALL::utf8_isNmstrt2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_GET_NAMING2
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isNmstrt2(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:162,1
    - Dst: UTF8_GET_NAMING3
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: PTRFASTCALL::utf8_isNmstrt3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_GET_NAMING3
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isNmstrt3(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:170,1
    - Dst: UTF8_INVALID2
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: PTRFASTCALL::utf8_isInvalid2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_INVALID2
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isInvalid2(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:176,1
    - Dst: UTF8_INVALID3
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: PTRFASTCALL::utf8_isInvalid3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UTF8_INVALID3
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isInvalid3(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:182,1
    - Dst: UTF8_INVALID4
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: PTRFASTCALL::utf8_isInvalid4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - UTF8_INVALID4
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      utf8_isInvalid4(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: AS_NORMAL_ENCODING
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_NORMAL_ENCODING(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: STANDARD_VTABLE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STANDARD_VTABLE(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: NORMAL_VTABLE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NORMAL_VTABLE(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - int
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: checkCharRefNumber
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkCharRefNumber(int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINBPC(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINBPC(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: SB_BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SB_BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SB_BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: PTRFASTCALL::sb_byteType
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - SB_BYTE_TYPE
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      sb_byteType(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TO_ASCII(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: PTRFASTCALL::sb_byteToAscii
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      sb_byteToAscii(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 268
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TO_ASCII(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: IS_NAME_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: IS_NMSTRT_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: IS_INVALID_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INVALID_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 282
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_MATCHES(enc, p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enc
    - p
    - c
    argTypes:
    - ENCODING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: sb_charMatches
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: int sb_charMatches(const ENCODING *enc, const char *p, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_MATCHES(enc, p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ident
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFIX(ident)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - from
    - fromLimRef
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 357
    functionName: _INTERNAL_trim_to_complete_utf8_characters
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _INTERNAL_trim_to_complete_utf8_characters(const char *from,\n
      \                                          const char **fromLimRef)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:368,1
    - Dst: _INTERNAL_trim_to_complete_utf8_characters
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:377,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 396
    functionName: utf8_toUtf8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - memcpy
    - _INTERNAL_trim_to_complete_utf8_characters
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result utf8_toUtf8(const ENCODING *enc, const char
      **fromP, const char *fromLim,\n            char **toP, const char *toLim)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - unsigned short**
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 452
    functionName: utf8_toUtf16
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result utf8_toUtf16(const ENCODING *enc, const char
      **fromP, const char *fromLim,\n             unsigned short **toP, const unsigned
      short *toLim)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: latin1_toUtf8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result latin1_toUtf8(const ENCODING *enc, const char
      **fromP, const char *fromLim,\n              char **toP, const char *toLim)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - unsigned short**
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: latin1_toUtf16
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result latin1_toUtf16(const ENCODING *enc, const
      char **fromP, const char *fromLim,\n               unsigned short **toP, const
      unsigned short *toLim)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 565
    functionName: ascii_toUtf8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result ascii_toUtf8(const ENCODING *enc, const char
      **fromP, const char *fromLim,\n             char **toP, const char *toLim)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 613
    functionName: PTRFASTCALL::unicode_byte_type
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unicode_byte_type(char hi, char lo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: DEFINE_UTF16_TO_UTF8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_UTF16_TO_UTF8(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 699
    functionName: DEFINE_UTF16_TO_UTF16
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_UTF16_TO_UTF16(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 714
    functionName: SET2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET2(ptr, ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 715
    functionName: GET_LO
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LO(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 716
    functionName: GET_HI
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_HI(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 725
    functionName: SET2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET2(ptr, ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 726
    functionName: GET_LO
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_LO(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 727
    functionName: GET_HI
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_HI(ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 738
    functionName: LITTLE2_BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LITTLE2_BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 739
    functionName: LITTLE2_BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LITTLE2_BYTE_TO_ASCII(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 740
    functionName: LITTLE2_CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LITTLE2_CHAR_MATCHES(p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 742
    functionName: LITTLE2_IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LITTLE2_IS_NAME_CHAR_MINBPC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: LITTLE2_IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LITTLE2_IS_NMSTRT_CHAR_MINBPC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LITTLE2_BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 750
    functionName: PTRFASTCALL::little2_byteType
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - LITTLE2_BYTE_TYPE
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_byteType(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:754,1
    - Dst: LITTLE2_BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: PTRFASTCALL::little2_byteToAscii
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - LITTLE2_BYTE_TO_ASCII
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_byteToAscii(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:760,1
    - Dst: LITTLE2_CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enc
    - p
    - c
    argTypes:
    - ENCODING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 762
    functionName: little2_charMatches
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - LITTLE2_CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: int little2_charMatches(const ENCODING *enc, const char *p, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:766,1
    - Dst: LITTLE2_IS_NAME_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 768
    functionName: PTRFASTCALL::little2_isNameMin
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - LITTLE2_IS_NAME_CHAR_MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_isNameMin(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:772,1
    - Dst: LITTLE2_IS_NMSTRT_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: PTRFASTCALL::little2_isNmstrtMin
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - LITTLE2_IS_NMSTRT_CHAR_MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      little2_isNmstrtMin(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ident
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFIX(ident)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    functionName: MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINBPC(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    functionName: BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TO_ASCII(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    functionName: CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_MATCHES(enc, p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 789
    functionName: IS_NAME_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 790
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 791
    functionName: IS_NMSTRT_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 792
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 873
    functionName: BIG2_BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG2_BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 874
    functionName: BIG2_BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG2_BYTE_TO_ASCII(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 875
    functionName: BIG2_CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG2_CHAR_MATCHES(p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: BIG2_IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG2_IS_NAME_CHAR_MINBPC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 879
    functionName: BIG2_IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG2_IS_NMSTRT_CHAR_MINBPC(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIG2_BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 885
    functionName: PTRFASTCALL::big2_byteType
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - BIG2_BYTE_TYPE
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      big2_byteType(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:889,1
    - Dst: BIG2_BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 891
    functionName: PTRFASTCALL::big2_byteToAscii
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - BIG2_BYTE_TO_ASCII
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      big2_byteToAscii(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:895,1
    - Dst: BIG2_CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - enc
    - p
    - c
    argTypes:
    - ENCODING*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 897
    functionName: big2_charMatches
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - BIG2_CHAR_MATCHES
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: int big2_charMatches(const ENCODING *enc, const char *p, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:901,1
    - Dst: BIG2_IS_NAME_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 903
    functionName: PTRFASTCALL::big2_isNameMin
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - BIG2_IS_NAME_CHAR_MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      big2_isNameMin(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:907,1
    - Dst: BIG2_IS_NMSTRT_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: PTRFASTCALL::big2_isNmstrtMin
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    - BIG2_IS_NMSTRT_CHAR_MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      big2_isNmstrtMin(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ident
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 918
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFIX(ident)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MINBPC(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    functionName: BYTE_TYPE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TYPE(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 922
    functionName: BYTE_TO_ASCII
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_TO_ASCII(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    functionName: CHAR_MATCHES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR_MATCHES(enc, p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 924
    functionName: IS_NAME_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 925
    functionName: IS_NAME_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NAME_CHAR_MINBPC(enc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 926
    functionName: IS_NMSTRT_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR(enc, p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 927
    functionName: IS_NMSTRT_CHAR_MINBPC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NMSTRT_CHAR_MINBPC(enc, p)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    functionName: streqci
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int streqci(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1030,1
    - Dst: normal_updatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - pos
    argTypes:
    - ENCODING*
    - char*
    - char*
    - POSITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: initUpdatePosition
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - normal_updatePosition
    - UNUSED_P
    linkageType: ''
    returnType: void
    signature: "void initUpdatePosition(const ENCODING *enc, const char *ptr, const
      char *end,\n                   POSITION *pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XmlUtf8Convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1043
    functionName: toAscii
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - XmlUtf8Convert
    linkageType: ''
    returnType: int
    signature: int toAscii(const ENCODING *enc, const char *ptr, const char *end)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1055
    functionName: isSpace
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isSpace(int c)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1070,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1070,1
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1076,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1076,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1083,1
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1092,1
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1096,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1096,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1110,1
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1111,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1113,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1123,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 68
    argCount: 7
    argNames:
    - enc
    - ptr
    - end
    - namePtr
    - nameEndPtr
    - valPtr
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1135
    functionName: parsePseudoAttribute
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - toAscii
    - isSpace
    linkageType: ''
    returnType: int
    signature: "int parsePseudoAttribute(const ENCODING *enc, const char *ptr, const
      char *end,\n                     const char **namePtr, const char **nameEndPtr,\n
      \                    const char **valPtr, const char **nextTokPtr)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: parsePseudoAttribute
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1163,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1168,1
    - Dst: parsePseudoAttribute
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1178,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1191,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1192,1
    - Dst: encodingFinder
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1200,1
    - Dst: parsePseudoAttribute
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1201,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1208,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1213,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1216,1
    - Dst: isSpace
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1223,1
    - Dst: toAscii
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1223,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 11
    argNames:
    - "(*encodingFinder)(const ENCODING *, const char *,\n                                                 const
      char *)"
    - isGeneralTextEntity
    - enc
    - ptr
    - end
    - badPtr
    - versionPtr
    - versionEndPtr
    - encodingName
    - encoding
    - standalone
    argTypes:
    - ENCODING*
    - int
    - ENCODING*
    - char*
    - char*
    - char**
    - char**
    - char**
    - char**
    - ENCODING**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1151
    functionDepth: 3
    functionLinenumber: 1151
    functionLinenumberEnd: 1230
    functionName: doParseXmlDecl
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached:
    - toAscii
    - encodingFinder
    - parsePseudoAttribute
    - XmlNameMatchesAscii
    - isSpace
    linkageType: ''
    returnType: int
    signature: "int doParseXmlDecl(const ENCODING *(*encodingFinder)(const ENCODING
      *, const char *,\n                                                 const char
      *),\n               int isGeneralTextEntity, const ENCODING *enc, const char
      *ptr,\n               const char *end, const char **badPtr, const char **versionPtr,\n
      \              const char **versionEndPtr, const char **encodingName,\n               const
      ENCODING **encoding, int *standalone)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - result
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1254
    functionName: checkCharRefNumber
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int checkCharRefNumber(int result)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - c
    - buf
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1290
    functionName: XmlUtf8Encode
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XmlUtf8Encode(int c, char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - charNum
    - buf
    argTypes:
    - int
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1307
    functionName: XmlUtf16Encode
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XmlUtf16Encode(int charNum, unsigned short *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1318
    functionName: AS_UNKNOWN_ENCODING
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AS_UNKNOWN_ENCODING(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1322
    functionName: XmlSizeOfUnknownEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XmlSizeOfUnknownEncoding(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1326,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1327,1
    - Dst: UCS2_GET_NAMING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1331
    functionName: PTRFASTCALL::unknown_isName
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - AS_UNKNOWN_ENCODING
    - struct unknown_encoding*::convert
    - UCS2_GET_NAMING
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isName(const ENCODING *enc, const char *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1335,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1336,1
    - Dst: UCS2_GET_NAMING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1340
    functionName: PTRFASTCALL::unknown_isNmstrt
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - AS_UNKNOWN_ENCODING
    - struct unknown_encoding*::convert
    - UCS2_GET_NAMING
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isNmstrt(const ENCODING *enc, const char *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1344,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1345,1
    - Dst: checkCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - enc
    - p
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1347
    functionName: PTRFASTCALL::unknown_isInvalid
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - AS_UNKNOWN_ENCODING
    - struct unknown_encoding*::convert
    - checkCharRefNumber
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      unknown_isInvalid(const ENCODING *enc, const char *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1352,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1362,1
    - Dst: XmlUtf8Encode
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1363,1
    - Dst: AS_NORMAL_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1367,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1377
    functionName: unknown_toUtf8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - memcpy
    - AS_NORMAL_ENCODING
    - XmlUtf8Encode
    - struct unknown_encoding*::convert
    - AS_UNKNOWN_ENCODING
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result unknown_toUtf8(const ENCODING *enc, const
      char **fromP, const char *fromLim,\n               char **toP, const char *toLim)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AS_UNKNOWN_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1382,1
    - Dst: struct unknown_encoding*::convert
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1386,1
    - Dst: AS_NORMAL_ENCODING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1387,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 5
    argNames:
    - enc
    - fromP
    - fromLim
    - toP
    - toLim
    argTypes:
    - ENCODING*
    - char**
    - char*
    - unsigned short**
    - unsigned short*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1398
    functionName: unknown_toUtf16
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - AS_UNKNOWN_ENCODING
    - struct unknown_encoding*::convert
    - AS_NORMAL_ENCODING
    linkageType: ''
    returnType: enum XML_Convert_Result
    signature: "enum XML_Convert_Result unknown_toUtf16(const ENCODING *enc, const
      char **fromP, const char *fromLim,\n                unsigned short **toP, const
      unsigned short *toLim)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1405,1
    - Dst: checkCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1435,1
    - Dst: UCS2_GET_NAMING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1444,1
    - Dst: UCS2_GET_NAMING
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1446,1
    - Dst: XmlUtf8Encode
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1450,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 4
    argNames:
    - mem
    - table
    - convert
    - userData
    argTypes:
    - void*
    - int*
    - CONVERTER
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1470
    functionName: XmlInitUnknownEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - UCS2_GET_NAMING
    - memcpy
    - checkCharRefNumber
    - XmlUtf8Encode
    linkageType: ''
    returnType: ENCODING
    signature: "ENCODING *\nXmlInitUnknownEncoding(void *mem, int *table, CONVERTER
      convert,\n                       void *userData)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: streqci
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1503
    functionDepth: 1
    functionLinenumber: 1503
    functionLinenumberEnd: 1515
    functionName: getEncodingIndex
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached:
    - streqci
    linkageType: ''
    returnType: int
    signature: int getEncodingIndex(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1522
    functionName: INIT_ENC_INDEX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_ENC_INDEX(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1523
    functionName: SET_INIT_ENC_INDEX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_INIT_ENC_INDEX(enc, i)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1548,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1558,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1568,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1575,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1576,1
    - Dst: XmlTok
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1580,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1582,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1596,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1617,1
    - Dst: XmlTok
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1620,1
    - Dst: XmlTok
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1634,1
    - Dst: INIT_ENC_INDEX
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1639,1
    - Dst: XmlTok
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1640,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 73
    argCount: 6
    argNames:
    - encodingTable
    - enc
    - state
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING**
    - INIT_ENCODING*
    - int
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1641
    functionName: initScan
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 2
    functionsReached:
    - XmlTok
    - INIT_ENC_INDEX
    linkageType: ''
    returnType: int
    signature: "int initScan(const ENCODING *const *encodingTable, const INIT_ENCODING
      *enc,\n         int state, const char *ptr, const char *end, const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1644
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1645
    functionName: ns
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ns(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1653
    functionDepth: 0
    functionLinenumber: 1653
    functionLinenumberEnd: 1654
    functionName: NS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1655
    functionName: ns
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ns(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XmlInitUnknownEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmltok.c:1666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - mem
    - table
    - convert
    - userData
    argTypes:
    - void*
    - int*
    - CONVERTER
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1670
    functionName: XmlInitUnknownEncodingNS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.c
    functionUses: 0
    functionsReached:
    - XmlInitUnknownEncoding
    linkageType: ''
    returnType: ENCODING
    signature: "ENCODING *\nXmlInitUnknownEncodingNS(void *mem, int *table, CONVERTER
      convert,\n                         void *userData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: UNUSED_P
    functionSourceFile: /src/Python-3.8.3/Modules/expat/internal.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_P(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: IS_INVALID_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_INVALID_CHAR(enc, ptr, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - n
    - ','
    - ptr
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 49
    functionName: INVALID_LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INVALID_LEAD_CASE(n, ptr, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: INVALID_CASES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INVALID_CASES(ptr, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: CHECK_NAME_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NAME_CASE(n, enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: CHECK_NAME_CASES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: CHECK_NMSTRT_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NMSTRT_CASE(n, enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 106
    functionName: CHECK_NMSTRT_CASES
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ident
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREFIX(ident)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: HAS_CHARS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_CHARS(enc, ptr, end, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: HAS_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_CHAR(enc, ptr, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: REQUIRE_CHARS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_CHARS(enc, ptr, end, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: REQUIRE_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_CHAR(enc, ptr, end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:137,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:138,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:142,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:143,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:144,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:145,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:147,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:148,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:149,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:150,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:151,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:152,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:156,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 3
    functionsReached:
    - BYTE_TYPE
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanComment)(const ENCODING *enc, const char *ptr, const
      char *end,\n                    const char **nextTokPtr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:174,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:175,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:177,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:177,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:179,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:183,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:189,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:190,1
    - Dst: REQUIRE_CHARS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:192,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:194,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:194,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 218
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 4
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - REQUIRE_CHARS
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanDecl)(const ENCODING *enc, const char *ptr, const char
      *end,\n                 const char **nextTokPtr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:224,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:226,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:228,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:237,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:238,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:247,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - tokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 261
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 4
    functionsReached:
    - UNUSED_P
    - BYTE_TO_ASCII
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(checkPiTarget)(const ENCODING *enc, const char *ptr, const
      char *end,\n                      int *tokPtr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:270,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:271,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:272,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:277,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:278,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:279,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:283,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:287,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:288,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:289,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:290,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:292,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:293,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:294,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:295,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:300,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:306,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:310,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:311,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:312,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:313,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 323
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanPi)(const ENCODING *enc, const char *ptr, const char
      *end,\n               const char **nextTokPtr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:331,1
    - Dst: REQUIRE_CHARS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:333,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:334,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 342
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - REQUIRE_CHARS
    - UNUSED_P
    - CHAR_MATCHES
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanCdataSection)(const ENCODING *enc, const char *ptr,
      const char *end,\n                         const char **nextTokPtr)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:349,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:351,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:352,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:358,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:360,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:361,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:362,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:364,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:365,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:366,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:367,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:370,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:373,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:374,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:375,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:376,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:380,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:382,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:384,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:387,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:388,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:397,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:398,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:399,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:410,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 416
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - LEAD_CASE
    - BYTE_TYPE
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr,
      const char *end,\n                        const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:423,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:424,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:425,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:430,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:431,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:432,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:436,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:436,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:436,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:437,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:443,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:455,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 467
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanEndTag)(const ENCODING *enc, const char *ptr, const
      char *end,\n                   const char **nextTokPtr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:474,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:475,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:483,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:483,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:483,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:484,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:489,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 498
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached:
    - HAS_CHAR
    - BYTE_TYPE
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr, const
      char *end,\n                       const char **nextTokPtr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:505,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:506,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:507,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:507,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:508,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:515,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:515,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:515,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:516,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:520,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 529
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 6
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - MINBPC
    - HAS_CHAR
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr, const
      char *end,\n                    const char **nextTokPtr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:536,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:537,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:538,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:540,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:540,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:545,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:546,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:547,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanRef)(const ENCODING *enc, const char *ptr, const char
      *end,\n                const char **nextTokPtr)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:567,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:568,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:569,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:577,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:578,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:579,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:580,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:593,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:594,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:595,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:615,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:616,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:617,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:630,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:634,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:635,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:639,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:641,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:641,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:653,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:657,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:658,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:659,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:674,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:675,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:676,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:677,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:684,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:688,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:689,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:690,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:694,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 136
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 710
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 8
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char
      *end,\n                 const char **nextTokPtr)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:720,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:721,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:722,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:724,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:725,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:726,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:728,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:728,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:730,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:730,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:735,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:735,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:737,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:737,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:746,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:747,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:748,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:756,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:757,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:758,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:759,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:769,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:770,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:771,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:772,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:780,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:786,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:792,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:796,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:797,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:798,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:802,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 810
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 9
    functionsReached:
    - PREFIX
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char
      *end,\n               const char **nextTokPtr)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:817,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:819,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:820,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:826,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:828,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:828,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:830,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:830,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:832,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:833,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:835,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:836,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:840,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:843,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:844,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:846,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:848,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:849,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:851,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:852,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:857,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:859,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:862,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:863,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:872,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:873,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:874,1
    - Dst: HAS_CHARS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:877,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:878,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:878,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:879,1
    - Dst: HAS_CHARS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:882,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:883,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:883,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:884,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:887,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:902,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 908
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - PREFIX
    - LEAD_CASE
    - BYTE_TYPE
    - HAS_CHARS
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const
      char *end,\n                   const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 872
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:915,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:916,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:917,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:928,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:929,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:930,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 940
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const
      char *end,\n                    const char **nextTokPtr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:945,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:946,1
    - Dst: CHECK_NMSTRT_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:947,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:952,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:953,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 970
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - CHECK_NMSTRT_CASES
    - REQUIRE_CHAR
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const
      char *end,\n                      const char **nextTokPtr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:975,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:976,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:978,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:981,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:984,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:987,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:999,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - open
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - int
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1004
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 10
    functionsReached:
    - HAS_CHAR
    - BYTE_TYPE
    - INVALID_CASES
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(scanLit)(int open, const ENCODING *enc, const char *ptr,
      const char *end,\n                const char **nextTokPtr)"
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1012,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1014,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1015,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1021,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1023,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1023,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1025,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1025,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1027,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1028,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1029,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1031,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1031,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1033,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1033,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1040,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1047,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1056,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1057,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1059,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1065,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1076,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1076,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1078,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1081,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1084,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1085,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1087,1
    - Dst: REQUIRE_CHARS
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1088,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1089,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1089,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1090,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1097,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1100,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1101,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1103,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1105,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1108,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1111,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1126,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1129,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1132,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1132,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1149,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1150,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1151,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1156,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1165,1
    - Dst: IS_NMSTRT_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1168,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1169,1
    - Dst: IS_NAME_CHAR_MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1173,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1174,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1183,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1184,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1185,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1199,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1202,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1204,1
    - Dst: CHECK_NAME_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1205,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1222,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1229,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1236,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 208
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1244
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 11
    functionsReached:
    - PREFIX
    - LEAD_CASE
    - BYTE_TYPE
    - CHECK_NAME_CASES
    - REQUIRE_CHARS
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - IS_NMSTRT_CHAR_MINBPC
    - IS_NAME_CHAR_MINBPC
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const
      char *end,\n                  const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1149
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1252,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1261,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1262,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1267,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1268,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1269,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1273,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1273,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1282,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1289,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1290,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1292,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1293,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1301,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1307,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1313
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 12
    functionsReached:
    - PREFIX
    - LEAD_CASE
    - BYTE_TYPE
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr,
      const char *end,\n                          const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1267
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1321,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1330,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1331,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1336,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1337,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1338,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1342,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1342,1
    - Dst: PREFIX
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1347,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1347,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1354,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1361,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1362,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1364,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1365,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1378
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - PREFIX
    - LEAD_CASE
    - BYTE_TYPE
    - MINBPC
    - HAS_CHAR
    linkageType: ''
    returnType: int
    signature: "int PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr, const
      char *end,\n                       const char **nextTokPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1336
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1386,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1388,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1389,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1393,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1394,1
    - Dst: INVALID_CASES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1395,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1397,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1398,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1399,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1400,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1401,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1402,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1404,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1409,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1410,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1411,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1412,1
    - Dst: REQUIRE_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1413,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1414,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1415,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1425,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - nextTokPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1430
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - BYTE_TYPE
    - REQUIRE_CHAR
    - MINBPC
    - HAS_CHAR
    - INVALID_CASES
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr,
      const char *end,\n                         const char **nextTokPtr)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1437,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1438,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1439,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1439,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1440,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1464,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1471,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - badPtr
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1487
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - BYTE_TYPE
    - MINBPC
    - HAS_CHAR
    - BYTE_TO_ASCII
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: "int PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const
      char *end,\n                   const char **badPtr)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1502,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1502,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1503,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1516,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1517,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1518,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1529,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1542,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1561,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1562,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1562,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1563,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1563,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 4
    argNames:
    - enc
    - ptr
    - attsMax
    - atts
    argTypes:
    - ENCODING*
    - char*
    - int
    - ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1585
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - LEAD_CASE
    - BYTE_TYPE
    - BYTE_TO_ASCII
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(getAtts)(const ENCODING *enc, const char *ptr, int attsMax,\n
      \               ATTRIBUTE *atts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1516
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1591,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1592,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1593,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1594,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1594,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1595,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1596,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1634,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1634,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1635,1
    - Dst: checkCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1587
    functionDepth: 1
    functionLinenumber: 1587
    functionLinenumberEnd: 1643
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - checkCharRefNumber
    - UNUSED_P
    - MINBPC
    - BYTE_TO_ASCII
    - CHAR_MATCHES
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      PREFIX(charRefNumber)(const ENCODING *enc, const char *ptr)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1648,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1649,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1651,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1651,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1652,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1661,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1662,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1663,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1664,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1665,1
    - Dst: BYTE_TO_ASCII
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1671,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1673,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1674,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1675,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1676,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1677,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1678,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1684,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1685,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1686,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1687,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1688,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1689,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - enc
    - ptr
    - end
    argTypes:
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1697
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - UNUSED_P
    - CHAR_MATCHES
    - BYTE_TO_ASCII
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(predefinedEntityName)(const ENCODING *enc, const char *ptr,\n
      \                            const char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1702,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1703,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1704,1
    - Dst: CHAR_MATCHES
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - enc
    - ptr1
    - end1
    - ptr2
    argTypes:
    - ENCODING*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1716
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - UNUSED_P
    - CHAR_MATCHES
    - MINBPC
    linkageType: ''
    returnType: int
    signature: "int PREFIX(nameMatchesAscii)(const ENCODING *enc, const char *ptr1,\n
      \                        const char *end1, const char *ptr2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1722,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1727,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1728,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1729,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1746
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - LEAD_CASE
    - BYTE_TYPE
    - MINBPC
    linkageType: ''
    returnType: int
    signature: 'int PTRFASTCALL

      PREFIX(nameLength)(const ENCODING *enc, const char *ptr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1727
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1751,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - enc
    - ptr
    argTypes:
    - ENCODING*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1761
    functionName: PTRFASTCALL::PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 0
    functionsReached:
    - BYTE_TYPE
    - MINBPC
    linkageType: ''
    returnType: char
    signature: 'char *PTRFASTCALL

      PREFIX(skipS)(const ENCODING *enc, const char *ptr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1766,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1767,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1772,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1773,1
    - Dst: LEAD_CASE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1774,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1779,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1783,1
    - Dst: HAS_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1784,1
    - Dst: BYTE_TYPE
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1784,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1785,1
    - Dst: MINBPC
      Src: /src/Python-3.8.3/Modules/expat/xmltok_impl.c:1789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - enc
    - ptr
    - end
    - pos
    argTypes:
    - ENCODING*
    - char*
    - char*
    - POSITION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1763
    functionDepth: 1
    functionLinenumber: 1763
    functionLinenumberEnd: 1794
    functionName: PREFIX
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 13
    functionsReached:
    - HAS_CHAR
    - LEAD_CASE
    - BYTE_TYPE
    - MINBPC
    linkageType: ''
    returnType: void
    signature: "void PREFIX(updatePosition)(const ENCODING *enc, const char *ptr,
      const char *end,\n                       POSITION *pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1772
    functionName: LEAD_CASE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEAD_CASE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: MIN_BYTES_PER_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN_BYTES_PER_CHAR(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: setTopLevel
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setTopLevel(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: setTopLevel
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setTopLevel(state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:153,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:153,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: prolog0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - MIN_BYTES_PER_CHAR
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int prolog0(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:185,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:185,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 195
    functionName: prolog1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - MIN_BYTES_PER_CHAR
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int prolog1(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:200,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:201,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:202,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 215
    functionName: prolog2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int prolog2(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:220,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:221,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:222,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: doctype0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int doctype0(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:247,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:251,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 258
    functionName: doctype1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int doctype1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:263,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:264,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:265,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: doctype2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int doctype2(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:279,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:280,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:281,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: doctype3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int doctype3(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:295,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:296,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:297,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 309
    functionName: doctype4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int doctype4(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:314,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:315,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:316,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: doctype5
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int doctype5(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:334,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:334,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:339,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:339,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:344,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:344,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:349,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:349,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 368
    functionName: internalSubset
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - MIN_BYTES_PER_CHAR
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int internalSubset(PROLOG_STATE *state, int tok, const char *ptr,
      const char *end,\n               const ENCODING *enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: externalSubset1
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 379
    functionName: externalSubset0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - externalSubset1
    linkageType: ''
    returnType: int
    signature: "int externalSubset0(PROLOG_STATE *state, int tok, const char *ptr,
      const char *end,\n                const ENCODING *enc)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: internalSubset
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:402,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 405
    functionName: externalSubset1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 1
    functionsReached:
    - common
    - internalSubset
    linkageType: ''
    returnType: int
    signature: "int externalSubset1(PROLOG_STATE *state, int tok, const char *ptr,
      const char *end,\n                const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:412,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:413,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:414,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: entity0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity0(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:431,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:432,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:433,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: entity1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity1(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:451,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:455,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 466
    functionName: entity2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int entity2(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:471,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:472,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:473,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 482
    functionName: entity3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity3(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:487,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:488,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:489,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: entity4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity4(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setTopLevel
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:507,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:510,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:516,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 517
    functionName: entity5
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - XmlNameMatchesAscii
    - common
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int entity5(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:522,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:523,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:524,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 534
    functionName: entity6
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity6(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:543,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:547,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 558
    functionName: entity7
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int entity7(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:563,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:564,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:565,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: entity8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity8(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:579,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:580,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:581,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 590
    functionName: entity9
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int entity9(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n        const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:595,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:596,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:597,1
    - Dst: setTopLevel
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:602,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 606
    functionName: entity10
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int entity10(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:611,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:612,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:613,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 622
    functionName: notation0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int notation0(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:631,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:635,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 642
    functionName: notation1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int notation1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:647,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:648,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:649,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 658
    functionName: notation2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int notation2(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:663,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:664,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:665,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: notation3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int notation3(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:680,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:681,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:682,1
    - Dst: setTopLevel
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:691,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: notation4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int notation4(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:700,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:701,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:702,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: attlist0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist0(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:717,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:718,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:719,1
    - Dst: setTopLevel
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:724,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 732
    functionName: attlist1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int attlist1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:747,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:752,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 762
    functionName: attlist2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int attlist2(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:767,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:768,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:769,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 780
    functionName: attlist3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist3(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:785,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:786,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:787,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 799
    functionName: attlist4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist4(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:804,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:805,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:806,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 815
    functionName: attlist5
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist5(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:820,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:821,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:822,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 831
    functionName: attlist6
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist6(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:836,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:837,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:838,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 850
    functionName: attlist7
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist7(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:860,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:860,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:865,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:865,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:870,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:870,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:880,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 881
    functionName: attlist8
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - MIN_BYTES_PER_CHAR
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int attlist8(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:886,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:887,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:888,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 897
    functionName: attlist9
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int attlist9(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:902,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:903,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:904,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 914
    functionName: element0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element0(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:923,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:928,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:939,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 940
    functionName: element1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int element1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:949,1
    - Dst: MIN_BYTES_PER_CHAR
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:949,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 974
    functionName: element2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - MIN_BYTES_PER_CHAR
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int element2(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:979,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:980,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:981,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 998
    functionName: element3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element3(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1003,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1004,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1005,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1015
    functionName: element4
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element4(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1020,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1021,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1022,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1035
    functionName: element5
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element5(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1040,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1041,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1042,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1064
    functionName: element6
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element6(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1069,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1070,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1071,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1111
    functionName: element7
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int element7(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n         const ENCODING *enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1122,1
    - Dst: XmlNameMatchesAscii
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1126,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1133
    functionName: condSect0
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - XmlNameMatchesAscii
    linkageType: ''
    returnType: int
    signature: "int condSect0(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1138,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1139,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1140,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1150
    functionName: condSect1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int condSect1(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1155,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1156,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1157,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1166
    functionName: condSect2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int condSect2(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1173,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1174,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1175,1
    - Dst: setTopLevel
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1180,1
    - Dst: common
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1184
    functionName: declClose
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached:
    - common
    - UNUSED_P
    - setTopLevel
    linkageType: ''
    returnType: int
    signature: "int declClose(PROLOG_STATE *state, int tok, const char *ptr, const
      char *end,\n          const ENCODING *enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1209,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1210,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1211,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1212,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlrole.c:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - state
    - tok
    - ptr
    - end
    - enc
    argTypes:
    - PROLOG_STATE*
    - int
    - char*
    - char*
    - ENCODING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1215
    functionName: error
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 270
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: int
    signature: "int error(PROLOG_STATE *state, int tok, const char *ptr, const char
      *end,\n      const ENCODING *enc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - state
    - tok
    argTypes:
    - PROLOG_STATE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1226
    functionName: common
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int common(PROLOG_STATE *state, int tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - PROLOG_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1236
    functionName: XmlPrologStateInit
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlPrologStateInit(PROLOG_STATE *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - PROLOG_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: XmlPrologStateInitExternalEntity
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XmlPrologStateInitExternalEntity(PROLOG_STATE *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - high
    - ','
    - low
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: _SIP_ULL
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _SIP_ULL(high, low)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: SIP_ROTL
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIP_ROTL(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: SIP_U32TO8_LE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIP_U32TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: SIP_U64TO8_LE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIP_U64TO8_LE(p, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: SIP_U8TO64_LE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIP_U8TO64_LE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: sip_keyof
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_keyof(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIP_U8TO64_LE
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:154,1
    - Dst: SIP_U8TO64_LE
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - key
    - src
    argTypes:
    - struct sipkey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: sip_tokey
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - SIP_U8TO64_LE
    linkageType: ''
    returnType: struct sipkey
    signature: 'struct sipkey *

      sip_tokey(struct sipkey *key, const void *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: sip_binof
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_binof(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIP_U64TO8_LE
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - u64
    argTypes:
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: sip_tobin
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - SIP_U64TO8_LE
    linkageType: ''
    returnType: void
    signature: 'void *

      sip_tobin(void *dst, uint64_t u64)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:177,1
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:179,1
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:182,1
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:186,1
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:190,1
    - Dst: SIP_ROTL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - H
    - rounds
    argTypes:
    - struct siphash*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 194
    functionName: sip_round
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - SIP_ROTL
    linkageType: ''
    returnType: void
    signature: void sip_round(struct siphash *H, const int rounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SIP_ULL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:198,1
    - Dst: _SIP_ULL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:199,1
    - Dst: _SIP_ULL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:200,1
    - Dst: _SIP_ULL
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - H
    - key
    argTypes:
    - struct siphash*
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: sip24_init
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - _SIP_ULL
    linkageType: ''
    returnType: struct siphash
    signature: 'struct siphash *

      sip24_init(struct siphash *H, const struct sipkey *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: sip_endof
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sip_endof(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sip_endof
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:217,1
    - Dst: sip_endof
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:220,1
    - Dst: SIP_U8TO64_LE
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:223,1
    - Dst: sip_round
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - H
    - src
    - len
    argTypes:
    - struct siphash*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 233
    functionName: sip24_update
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - SIP_U8TO64_LE
    - sip_round
    - sip_endof
    linkageType: ''
    returnType: struct siphash
    signature: 'struct siphash *

      sip24_update(struct siphash *H, const void *src, size_t len)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sip_round
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:267,1
    - Dst: sip_round
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - H
    argTypes:
    - struct siphash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 273
    functionName: sip24_final
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - sip_round
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t sip24_final(struct siphash *H)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sip24_final
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:278,1
    - Dst: sip24_update
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:278,1
    - Dst: sip24_init
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src
    - len
    - key
    argTypes:
    - void*
    - size_t
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: siphash24
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - sip24_update
    - sip24_init
    - sip24_final
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t siphash24(const void *src, size_t len, const struct sipkey
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sip_tokey
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:367,1
    - Dst: siphash24
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:373,1
    - Dst: SIP_U8TO64_LE
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 378
    functionName: sip24_valid
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 0
    functionsReached:
    - siphash24
    - sip_tokey
    - SIP_U8TO64_LE
    linkageType: ''
    returnType: int
    signature: int sip24_valid(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sip24_valid
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:386,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:389,1
    - Dst: puts
      Src: /src/Python-3.8.3/Modules/expat/siphash.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Modules/expat/siphash.h
    functionUses: 14
    functionsReached:
    - puts
    - sip24_valid
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - enc
    - ','
    - state
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: XmlTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlTok(enc, state, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: XmlPrologTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlPrologTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: XmlContentTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlContentTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: XmlCdataSectionTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlCdataSectionTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: XmlIgnoreSectionTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlIgnoreSectionTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - enc
    - ','
    - literalType
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: XmlLiteralTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: XmlAttributeValueTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlAttributeValueTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - nextTokPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: XmlEntityValueTok
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlEntityValueTok(enc, ptr, end, nextTokPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr1
    - ','
    - end1
    - ','
    - ptr2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: XmlNameMatchesAscii
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlNameMatchesAscii(enc, ptr1, end1, ptr2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: XmlNameLength
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlNameLength(enc, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: XmlSkipS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlSkipS(enc, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - attsMax
    - ','
    - atts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: XmlGetAttributes
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlGetAttributes(enc, ptr, attsMax, atts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: XmlCharRefNumber
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlCharRefNumber(enc, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: XmlPredefinedEntityName
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlPredefinedEntityName(enc, ptr, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - pos
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: XmlUpdatePosition
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlUpdatePosition(enc, ptr, end, pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - enc
    - ','
    - ptr
    - ','
    - end
    - ','
    - badPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: XmlIsPublicId
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlIsPublicId(enc, ptr, end, badPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - enc
    - ','
    - fromP
    - ','
    - fromLim
    - ','
    - toP
    - ','
    - toLim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: XmlUtf8Convert
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlUtf8Convert(enc, fromP, fromLim, toP, toLim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - enc
    - ','
    - fromP
    - ','
    - fromLim
    - ','
    - toP
    - ','
    - toLim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: XmlUtf16Convert
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmltok.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XmlUtf16Convert(enc, fromP, fromLim, toP, toLim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: MUST_CONVERT
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUST_CONVERT(enc, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - enc
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: MUST_CONVERT
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUST_CONVERT(enc, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: XML_T
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_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: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: XML_L
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_L(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: XML_T
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: XML_L
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_L(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: XML_T
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_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: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: XML_L
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_L(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: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: ROUND_UP
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND_UP(n, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: EXPAT_SAFE_PTR_DIFF
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAT_SAFE_PTR_DIFF(p, q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hash
    - ','
    - mask
    - ','
    - power
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: SECOND_HASH
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECOND_HASH(hash, mask, power)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hash
    - ','
    - mask
    - ','
    - power
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: PROBE_STEP
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PROBE_STEP(hash, mask, power)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: poolStart
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolStart(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 506
    functionName: poolEnd
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolEnd(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: poolLength
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolLength(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    functionName: poolChop
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolChop(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    functionName: poolLastChar
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolLastChar(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: poolDiscard
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolDiscard(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pool
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: poolFinish
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolFinish(pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pool
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: poolAppendChar
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: poolAppendChar(pool, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parser
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 620
    functionName: MALLOC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MALLOC(parser, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - parser
    - ','
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: REALLOC
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REALLOC(parser, p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - parser
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 622
    functionName: FREE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE(parser, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserCreate_MM
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encodingName
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 626
    functionName: XML_ParserCreate
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_ParserCreate_MM
    linkageType: ''
    returnType: XML_Parser
    signature: XML_Parser XML_ParserCreate(const XML_Char *encodingName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_ParserCreate_MM
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - encodingName
    - nsSep
    argTypes:
    - XML_Char*
    - XML_Char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 633
    functionName: XML_ParserCreateNS
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_ParserCreate_MM
    linkageType: ''
    returnType: XML_Parser
    signature: XML_Parser XML_ParserCreateNS(const XML_Char *encodingName, XML_Char
      nsSep)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getrandom
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:664,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 677
    functionName: writeRandomBytes_getrandom_nonblock
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - getrandom
    - syscall
    linkageType: ''
    returnType: int
    signature: int writeRandomBytes_getrandom_nonblock(void *target, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:689,1
    - Dst: read
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:698,1
    - Dst: close
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 709
    functionName: writeRandomBytes_dev_urandom
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - close
    - open
    - read
    linkageType: ''
    returnType: int
    signature: int writeRandomBytes_dev_urandom(void *target, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arc4random
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: writeRandomBytes_arc4random
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - arc4random
    linkageType: ''
    returnType: void
    signature: void writeRandomBytes_arc4random(void *target, size_t count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rand_s
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - target
    - count
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 759
    functionName: writeRandomBytes_rand_s
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - rand_s
    linkageType: ''
    returnType: int
    signature: int writeRandomBytes_rand_s(void *target, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:769,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:775,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gettimeofday_res == 0)
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 786
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 786
    functionName: gather_time_entropy
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - assert
    - gettimeofday
    - GetSystemTimeAsFileTime
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long gather_time_entropy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:792,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:793,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - label
    - entropy
    argTypes:
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 798
    functionName: ENTROPY_DEBUG
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fprintf
    - getenv
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long ENTROPY_DEBUG(const char *label, unsigned long entropy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: arc4random_buf
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:807,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:808,1
    - Dst: writeRandomBytes_arc4random
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:810,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:811,1
    - Dst: writeRandomBytes_rand_s
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:815,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:816,1
    - Dst: writeRandomBytes_getrandom_nonblock
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:819,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:820,1
    - Dst: writeRandomBytes_dev_urandom
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:824,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:825,1
    - Dst: gather_time_entropy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:831,1
    - Dst: getpid
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:831,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:835,1
    - Dst: ENTROPY_DEBUG
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 841
    functionName: generate_hash_secret_salt
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - arc4random_buf
    - writeRandomBytes_dev_urandom
    - ENTROPY_DEBUG
    - getpid
    - gather_time_entropy
    - writeRandomBytes_rand_s
    - writeRandomBytes_getrandom_nonblock
    - writeRandomBytes_arc4random
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long generate_hash_secret_salt(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_hash_secret_salt
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 848
    functionName: get_hash_secret_salt
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - get_hash_secret_salt
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_hash_secret_salt(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generate_hash_secret_salt
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:854,1
    - Dst: setContext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 862
    functionName: startParsing
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - setContext
    - generate_hash_secret_salt
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool startParsing(XML_Parser parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parserCreate
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encodingName
    - memsuite
    - nameSep
    argTypes:
    - XML_Char*
    - XML_Memory_Handling_Suite*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: XML_ParserCreate_MM
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - parserCreate
    linkageType: ''
    returnType: XML_Parser
    signature: "XML_Parser XML_ParserCreate_MM(const XML_Char *encodingName,\n                    const
      XML_Memory_Handling_Suite *memsuite,\n                    const XML_Char *nameSep)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:879,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:888,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:905,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:907,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:911,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:914,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:915,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:920,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:922,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:924,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:926,1
    - Dst: dtdCreate
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:934,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:936,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:937,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:939,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:941,1
    - Dst: poolInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:966,1
    - Dst: poolInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:967,1
    - Dst: parserInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:968,1
    - Dst: XML_ParserFree
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:971,1
    - Dst: XmlGetInternalEncodingNS
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:977,1
    - Dst: XmlGetInternalEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:980,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 82
    argCount: 4
    argNames:
    - encodingName
    - memsuite
    - nameSep
    - dtd
    argTypes:
    - XML_Char*
    - XML_Memory_Handling_Suite*
    - XML_Char*
    - DTD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 984
    functionName: parserCreate
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - malloc
    - dtdCreate
    - parserInit
    - XmlGetInternalEncodingNS
    - XML_Memory_Handling_Suite*::malloc_fcn
    - XML_ParserFree
    - poolInit
    - XmlGetInternalEncoding
    - MALLOC
    - FREE
    linkageType: ''
    returnType: XML_Parser
    signature: "XML_Parser parserCreate(const XML_Char *encodingName,\n             const
      XML_Memory_Handling_Suite *memsuite, const XML_Char *nameSep,\n             DTD
      *dtd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologStateInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:989,1
    - Dst: copyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:991,1
    - Dst: XmlInitEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:994,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1056
    functionName: parserInit
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlInitEncoding
    - copyString
    - memset
    - XmlPrologStateInit
    linkageType: ''
    returnType: void
    signature: void parserInit(XML_Parser parser, const XML_Char *encodingName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - bindings
    argTypes:
    - XML_Parser
    - BINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1067
    functionName: moveToFreeBindingList
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void moveToFreeBindingList(XML_Parser parser, BINDING *bindings)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: moveToFreeBindingList
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1085,1
    - Dst: moveToFreeBindingList
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1097,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1098,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1100,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1101,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1102,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1103,1
    - Dst: parserInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1105,1
    - Dst: dtdReset
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1108
    functionName: XML_ParserReset
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - moveToFreeBindingList
    - parserInit
    - dtdReset
    - XML_Parser::m_unknownEncodingRelease
    - FREE
    - poolClear
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool XML_ParserReset(XML_Parser parser, const XML_Char *encodingName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1123,1
    - Dst: copyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1135
    functionName: XML_SetEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - FREE
    - copyString
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_SetEncoding(XML_Parser parser, const XML_Char *encodingName)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parserCreate
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1238,1
    - Dst: parserCreate
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1240,1
    - Dst: dtdCopy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1283,1
    - Dst: setContext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1284,1
    - Dst: XML_ParserFree
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1285,1
    - Dst: XmlPrologStateInitExternalEntity
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 3
    argNames:
    - oldParser
    - context
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1304
    functionName: XML_ExternalEntityParserCreate
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - setContext
    - parserCreate
    - XML_ParserFree
    - dtdCopy
    - XmlPrologStateInitExternalEntity
    linkageType: ''
    returnType: XML_Parser
    signature: "XML_Parser XML_ExternalEntityParserCreate(XML_Parser oldParser, const
      XML_Char *context,\n                               const XML_Char *encodingName)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1313,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - bindings
    - parser
    argTypes:
    - BINDING*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1316
    functionName: destroyBindings
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void destroyBindings(BINDING *bindings, XML_Parser parser)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1336,1
    - Dst: destroyBindings
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1337,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1338,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1352,1
    - Dst: destroyBindings
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1355,1
    - Dst: destroyBindings
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1356,1
    - Dst: poolDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1357,1
    - Dst: poolDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1358,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1359,1
    - Dst: dtdDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1368,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1370,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1372,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1374,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1375,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1376,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1377,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1378,1
    - Dst: XML_Parser::m_unknownEncodingRelease
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1380,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1381,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1382
    functionName: XML_ParserFree
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - dtdDestroy
    - poolDestroy
    - XML_Parser::m_unknownEncodingRelease
    - FREE
    - destroyBindings
    linkageType: ''
    returnType: void
    signature: void XML_ParserFree(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1388
    functionName: XML_UseParserAsHandlerArg
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_UseParserAsHandlerArg(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - parser
    - useDTD
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1404
    functionName: XML_UseForeignDTD
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - do_nst
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1415
    functionName: XML_SetReturnNSTriplet
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetReturnNSTriplet(XML_Parser parser, int do_nst)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - p
    argTypes:
    - XML_Parser
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1425
    functionName: XML_SetUserData
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetUserData(XML_Parser parser, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - p
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1439
    functionName: XML_SetBase
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolCopyString
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_SetBase(XML_Parser parser, const XML_Char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1446
    functionName: XML_GetBase
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *XMLCALL

      XML_GetBase(XML_Parser parser)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1453
    functionName: XML_GetSpecifiedAttributeCount
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XML_GetSpecifiedAttributeCount(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1460
    functionName: XML_GetIdAttributeIndex
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XML_GetIdAttributeIndex(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1468
    functionName: XML_GetAttributeInfo
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_AttrInfo
    signature: 'XML_AttrInfo *XMLCALL

      XML_GetAttributeInfo(XML_Parser parser)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - start
    - end
    argTypes:
    - XML_Parser
    - XML_StartElementHandler
    - XML_EndElementHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1478
    functionName: XML_SetElementHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler
      start,\n                      XML_EndElementHandler end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - start
    argTypes:
    - XML_Parser
    - XML_StartElementHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1484
    functionName: XML_SetStartElementHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler
      start)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - end
    argTypes:
    - XML_Parser
    - XML_EndElementHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1490
    functionName: XML_SetEndElementHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler
      end)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_CharacterDataHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1492
    functionDepth: 0
    functionLinenumber: 1492
    functionLinenumberEnd: 1497
    functionName: XML_SetCharacterDataHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetCharacterDataHandler(XML_Parser parser,\n                            XML_CharacterDataHandler
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_ProcessingInstructionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1504
    functionName: XML_SetProcessingInstructionHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetProcessingInstructionHandler(XML_Parser parser,\n                                    XML_ProcessingInstructionHandler
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_CommentHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1510
    functionName: XML_SetCommentHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - start
    - end
    argTypes:
    - XML_Parser
    - XML_StartCdataSectionHandler
    - XML_EndCdataSectionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1520
    functionName: XML_SetCdataSectionHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetCdataSectionHandler(XML_Parser parser,\n                           XML_StartCdataSectionHandler
      start,\n                           XML_EndCdataSectionHandler end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - start
    argTypes:
    - XML_Parser
    - XML_StartCdataSectionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1527
    functionName: XML_SetStartCdataSectionHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetStartCdataSectionHandler(XML_Parser parser,\n                                XML_StartCdataSectionHandler
      start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - end
    argTypes:
    - XML_Parser
    - XML_EndCdataSectionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1529
    functionDepth: 0
    functionLinenumber: 1529
    functionLinenumberEnd: 1534
    functionName: XML_SetEndCdataSectionHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetEndCdataSectionHandler(XML_Parser parser,\n                              XML_EndCdataSectionHandler
      end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_DefaultHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1542
    functionName: XML_SetDefaultHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_DefaultHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1550
    functionName: XML_SetDefaultHandlerExpand
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler
      handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - start
    - end
    argTypes:
    - XML_Parser
    - XML_StartDoctypeDeclHandler
    - XML_EndDoctypeDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1559
    functionName: XML_SetDoctypeDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler
      start,\n                          XML_EndDoctypeDeclHandler end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - start
    argTypes:
    - XML_Parser
    - XML_StartDoctypeDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1566
    functionName: XML_SetStartDoctypeDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetStartDoctypeDeclHandler(XML_Parser parser,\n                               XML_StartDoctypeDeclHandler
      start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - end
    argTypes:
    - XML_Parser
    - XML_EndDoctypeDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1572
    functionName: XML_SetEndDoctypeDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler
      end)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_UnparsedEntityDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1579
    functionName: XML_SetUnparsedEntityDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetUnparsedEntityDeclHandler(XML_Parser parser,\n                                 XML_UnparsedEntityDeclHandler
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_NotationDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1585
    functionName: XML_SetNotationDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler
      handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - start
    - end
    argTypes:
    - XML_Parser
    - XML_StartNamespaceDeclHandler
    - XML_EndNamespaceDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1595
    functionName: XML_SetNamespaceDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetNamespaceDeclHandler(XML_Parser parser,\n                            XML_StartNamespaceDeclHandler
      start,\n                            XML_EndNamespaceDeclHandler end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - start
    argTypes:
    - XML_Parser
    - XML_StartNamespaceDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1602
    functionName: XML_SetStartNamespaceDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetStartNamespaceDeclHandler(XML_Parser parser,\n                                 XML_StartNamespaceDeclHandler
      start)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - end
    argTypes:
    - XML_Parser
    - XML_EndNamespaceDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1609
    functionName: XML_SetEndNamespaceDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetEndNamespaceDeclHandler(XML_Parser parser,\n                               XML_EndNamespaceDeclHandler
      end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_NotStandaloneHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1611
    functionDepth: 0
    functionLinenumber: 1611
    functionLinenumberEnd: 1616
    functionName: XML_SetNotStandaloneHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetNotStandaloneHandler(XML_Parser parser,\n                            XML_NotStandaloneHandler
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_ExternalEntityRefHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1623
    functionName: XML_SetExternalEntityRefHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetExternalEntityRefHandler(XML_Parser parser,\n                                XML_ExternalEntityRefHandler
      handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - arg
    argTypes:
    - XML_Parser
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1625
    functionDepth: 0
    functionLinenumber: 1625
    functionLinenumberEnd: 1633
    functionName: XML_SetExternalEntityRefHandlerArg
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_SkippedEntityHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1640
    functionName: XML_SetSkippedEntityHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetSkippedEntityHandler(XML_Parser parser,\n                            XML_SkippedEntityHandler
      handler)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - parser
    - handler
    - data
    argTypes:
    - XML_Parser
    - XML_UnknownEncodingHandler
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1649
    functionName: XML_SetUnknownEncodingHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void XML_SetUnknownEncodingHandler(XML_Parser parser,\n                              XML_UnknownEncodingHandler
      handler, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - eldecl
    argTypes:
    - XML_Parser
    - XML_ElementDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1655
    functionName: XML_SetElementDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler
      eldecl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - attdecl
    argTypes:
    - XML_Parser
    - XML_AttlistDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1661
    functionName: XML_SetAttlistDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler
      attdecl)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_EntityDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 0
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    functionName: XML_SetEntityDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler
      handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - handler
    argTypes:
    - XML_Parser
    - XML_XmlDeclHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1673
    functionName: XML_SetXmlDeclHandler
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler handler)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - parser
    - peParsing
    argTypes:
    - XML_Parser
    - enum XML_ParamEntityParsing
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1690
    functionName: XML_SetParamEntityParsing
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int XML_SetParamEntityParsing(XML_Parser parser,\n                          enum
      XML_ParamEntityParsing peParsing)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XML_SetHashSalt
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - hash_salt
    argTypes:
    - XML_Parser
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1704
    functionName: XML_SetHashSalt
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_SetHashSalt
    linkageType: ''
    returnType: int
    signature: int XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: startParsing
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1721,1
    - Dst: XML_Parser::m_processor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1742,1
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1760,1
    - Dst: XML_Parser::m_processor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1794,1
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1817,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1827,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1838,1
    - Dst: XML_GetBuffer
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1850,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1854,1
    - Dst: XML_ParseBuffer
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1855,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 106
    argCount: 4
    argNames:
    - parser
    - s
    - len
    - isFinal
    argTypes:
    - XML_Parser
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1706
    functionDepth: 4
    functionLinenumber: 1706
    functionLinenumberEnd: 1857
    functionName: XML_Parse
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlUpdatePosition
    - memcpy
    - XML_ParseBuffer
    - XML_Parser::m_processor
    - XML_GetBuffer
    - REALLOC
    - startParsing
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_Parse(XML_Parser parser, const char *s, int len,
      int isFinal)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: startParsing
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1875,1
    - Dst: XML_Parser::m_processor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1891,1
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1913,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 3
    argNames:
    - parser
    - len
    - isFinal
    argTypes:
    - XML_Parser
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1860
    functionDepth: 4
    functionLinenumber: 1860
    functionLinenumberEnd: 1917
    functionName: XML_ParseBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlUpdatePosition
    - startParsing
    - XML_Parser::m_processor
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_ParseBuffer(XML_Parser parser, int len, int isFinal)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1937,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1943,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1950,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1956,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1958,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1960,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1964,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1971,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1972,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1975,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1982,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:1993,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2001,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2002,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2004,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2008,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2018,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2019,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2020,1
    - Dst: EXPAT_SAFE_PTR_DIFF
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2023,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 2
    argNames:
    - parser
    - len
    argTypes:
    - XML_Parser
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 2035
    functionName: XML_GetBuffer
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - memcpy
    - EXPAT_SAFE_PTR_DIFF
    - MALLOC
    - memmove
    - FREE
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_GetBuffer(XML_Parser parser, int len)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - parser
    - resumable
    argTypes:
    - XML_Parser
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2065
    functionName: XML_StopParser
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_StopParser(XML_Parser parser, XML_Bool resumable)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_processor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2079,1
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2067
    functionDepth: 1
    functionLinenumber: 2067
    functionLinenumberEnd: 2105
    functionName: XML_ResumeParser
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XmlUpdatePosition
    - XML_Parser::m_processor
    linkageType: ''
    returnType: enum XML_Status
    signature: enum XML_Status XML_ResumeParser(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - parser
    - status
    argTypes:
    - XML_Parser
    - XML_ParsingStatus*
    assertStmts:
    - condition: (status != NULL)
      pos:
        line_end: 2110
        line_start: 2110
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 2113
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2113
    functionName: XML_GetParsingStatus
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2120
    functionName: XML_GetErrorCode
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error XML_GetErrorCode(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2122
    functionDepth: 0
    functionLinenumber: 2122
    functionLinenumberEnd: 2130
    functionName: XML_GetCurrentByteIndex
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Index
    signature: XML_Index XML_GetCurrentByteIndex(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2139
    functionName: XML_GetCurrentByteCount
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int XML_GetCurrentByteCount(XML_Parser parser)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - parser
    - offset
    - size
    argTypes:
    - XML_Parser
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2159
    functionName: XML_GetInputContext
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *XMLCALL

      XML_GetInputContext(XML_Parser parser, int *offset, int *size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2171
    functionName: XML_GetCurrentLineNumber
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XmlUpdatePosition
    linkageType: ''
    returnType: XML_Size
    signature: XML_Size XML_GetCurrentLineNumber(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XmlUpdatePosition
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2183
    functionName: XML_GetCurrentColumnNumber
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XmlUpdatePosition
    linkageType: ''
    returnType: XML_Size
    signature: XML_Size XML_GetCurrentColumnNumber(XML_Parser parser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - model
    argTypes:
    - XML_Parser
    - XML_Content*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2189
    functionName: XML_FreeContentModel
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void XML_FreeContentModel(XML_Parser parser, XML_Content *model)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - parser
    - size
    argTypes:
    - XML_Parser
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2191
    functionDepth: 1
    functionLinenumber: 2191
    functionLinenumberEnd: 2196
    functionName: XML_MemMalloc
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - MALLOC
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_MemMalloc(XML_Parser parser, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - parser
    - ptr
    - size
    argTypes:
    - XML_Parser
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2198
    functionDepth: 1
    functionLinenumber: 2198
    functionLinenumberEnd: 2203
    functionName: XML_MemRealloc
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - REALLOC
    linkageType: ''
    returnType: void
    signature: 'void *XMLCALL

      XML_MemRealloc(XML_Parser parser, void *ptr, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - ptr
    argTypes:
    - XML_Parser
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2209
    functionName: XML_MemFree
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void XML_MemFree(XML_Parser parser, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2217,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2224
    functionName: XML_DefaultCurrent
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - reportDefault
    linkageType: ''
    returnType: void
    signature: void XML_DefaultCurrent(XML_Parser parser)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2232,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2234,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2236,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2238,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2240,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2242,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2244,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2246,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2248,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2250,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2252,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2254,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2256,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2258,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2260,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2262,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2264,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2266,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2268,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2270,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2272,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2274,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2276,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2278,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2280,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2282,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2285,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2288,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2290,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2292,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2294,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2296,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2298,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2300,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2302,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2304,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2306,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2309,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2312,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2314,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 88
    argCount: 1
    argNames:
    - code
    argTypes:
    - enum XML_Error
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2321
    functionName: XML_ErrorString
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_L
    linkageType: ''
    returnType: XML_LChar
    signature: 'XML_LChar *XMLCALL

      XML_ErrorString(enum XML_Error code)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: V2
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2340
    functionName: XML_ExpatVersion
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - V2
    linkageType: ''
    returnType: XML_LChar
    signature: 'XML_LChar *XMLCALL

      XML_ExpatVersion(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: 2334
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2334
    functionName: V1
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V1(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: 2335
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2335
    functionName: V2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V2(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2351
    functionName: XML_ExpatVersionInfo
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XML_Expat_Version
    signature: XML_Expat_Version XML_ExpatVersionInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2356,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2358,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2361,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2364,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2367,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2370,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2374,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2377,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2380,1
    - Dst: XML_L
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2353
    functionDepth: 1
    functionLinenumber: 2353
    functionLinenumberEnd: 2388
    functionName: XML_GetFeatureList
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_L
    linkageType: ''
    returnType: XML_Feature
    signature: 'XML_Feature *XMLCALL

      XML_GetFeatureList(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ROUND_UP
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2412,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2414,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2432,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2395
    functionDepth: 1
    functionLinenumber: 2395
    functionLinenumberEnd: 2437
    functionName: storeRawNames
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - ROUND_UP
    - REALLOC
    - memcpy
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool storeRawNames(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doContent
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2443,1
    - Dst: storeRawNames
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2439
    functionDepth: 2
    functionLinenumber: 2439
    functionLinenumberEnd: 2450
    functionName: contentProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - doContent
    - storeRawNames
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error contentProcessor(XML_Parser parser, const char *start,
      const char *end,\n                 const char **endPtr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initializeEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2455,1
    - Dst: externalEntityInitProcessor2
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2452
    functionDepth: 1
    functionLinenumber: 2452
    functionLinenumberEnd: 2460
    functionName: externalEntityInitProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - initializeEncoding
    - externalEntityInitProcessor2
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityInitProcessor(XML_Parser parser, const
      char *start,\n                            const char *end, const char **endPtr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2466,1
    - Dst: externalEntityInitProcessor3
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2462
    functionDepth: 1
    functionLinenumber: 2462
    functionLinenumberEnd: 2497
    functionName: externalEntityInitProcessor2
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlContentTok
    - externalEntityInitProcessor3
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityInitProcessor2(XML_Parser parser, const
      char *start,\n                             const char *end, const char **endPtr)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2505,1
    - Dst: processXmlDecl
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2511,1
    - Dst: externalEntityContentProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2540
    functionName: externalEntityInitProcessor3
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - processXmlDecl
    - XmlContentTok
    - externalEntityContentProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityInitProcessor3(XML_Parser parser, const
      char *start,\n                             const char *end, const char **endPtr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doContent
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2546,1
    - Dst: storeRawNames
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2542
    functionDepth: 2
    functionLinenumber: 2542
    functionLinenumberEnd: 2553
    functionName: externalEntityContentProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - doContent
    - storeRawNames
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalEntityContentProcessor(XML_Parser parser, const
      char *start,\n                               const char *end, const char **endPtr)"
  - BBCount: 104
    BranchProfiles: []
    Callsites:
    - Dst: XmlContentTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2575,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2586,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2588,1
    - Dst: XmlPredefinedEntityName
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2628,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2632,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2634,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2637,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2641,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2642,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2654,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2656,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2667,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2670,1
    - Dst: processInternalEntity
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2673,1
    - Dst: getContext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2679,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2683,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2687,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2689,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2702,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2705,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2707,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2718,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2728,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2738,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2748,1
    - Dst: storeAtts
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2749,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2753,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2756,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2757,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2768,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2769,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2772,1
    - Dst: storeAtts
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2773,1
    - Dst: freeBindings
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2775,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2778,1
    - Dst: XML_Parser::m_startElementHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2780,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2787,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2791,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2792,1
    - Dst: freeBindings
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2793,1
    - Dst: epilogProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2800,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2814,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2816,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2841,1
    - Dst: XML_Parser::m_endElementHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2843,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2845,1
    - Dst: XML_Parser::m_endNamespaceDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2849,1
    - Dst: epilogProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2861,1
    - Dst: XmlCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2866,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2871,1
    - Dst: XmlEncode
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2872,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2874,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2881,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2883,1
    - Dst: XML_Parser::m_startCdataSectionHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2888,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2903,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2907,1
    - Dst: doCdataSection
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2908,1
    - Dst: MUST_CONVERT
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2922,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2924,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2925,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2929,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2933,1
    - Dst: MUST_CONVERT
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2950,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2953,1
    - Dst: charDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2956,1
    - Dst: charDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2964,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2967,1
    - Dst: reportProcessingInstruction
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2970,1
    - Dst: reportComment
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2974,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:2986,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 343
    argCount: 7
    argNames:
    - parser
    - startTagLevel
    - enc
    - s
    - end
    - nextPtr
    - haveMore
    argTypes:
    - XML_Parser
    - int
    - ENCODING*
    - char*
    - char*
    - char**
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2555
    functionDepth: 1
    functionLinenumber: 2555
    functionLinenumberEnd: 3001
    functionName: doContent
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - processInternalEntity
    - getContext
    - reportDefault
    - charDataHandler
    - epilogProcessor
    - XmlCharRefNumber
    - poolDiscard
    - XmlContentTok
    - lookup
    - storeAtts
    - freeBindings
    - doCdataSection
    - XML_Parser::m_characterDataHandler
    - MALLOC
    - XML_T
    - MUST_CONVERT
    - FREE
    - REALLOC
    - poolClear
    - XML_Parser::m_endNamespaceDeclHandler
    - XmlEncode
    - XML_Parser::m_endElementHandler
    - XML_Parser::m_skippedEntityHandler
    - XML_Parser::m_startElementHandler
    - memcmp
    - poolStoreString
    - XML_Parser::m_startCdataSectionHandler
    - XML_Parser::m_externalEntityRefHandler
    - XmlConvert
    - reportProcessingInstruction
    - XmlNameLength
    - XmlPredefinedEntityName
    - poolFinish
    - reportComment
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error doContent(XML_Parser parser, int startTagLevel, const
      ENCODING *enc,\n          const char *s, const char *end, const char **nextPtr,\n
      \         XML_Bool haveMore)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_endNamespaceDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - bindings
    argTypes:
    - XML_Parser
    - BINDING*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3007
    functionDepth: 0
    functionLinenumber: 3007
    functionLinenumberEnd: 3023
    functionName: freeBindings
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_Parser::m_endNamespaceDeclHandler
    linkageType: ''
    returnType: void
    signature: void freeBindings(XML_Parser parser, BINDING *bindings)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3053,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3055,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3058,1
    - Dst: setElementTypePrefix
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3062,1
    - Dst: XmlGetAttributes
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3068,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3076,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3084,1
    - Dst: XmlGetAttributes
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3093,1
    - Dst: getAttributeId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3104,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3105,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3112,1
    - Dst: storeAttributeValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3145,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3150,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3151,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3154,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3159,1
    - Dst: addBinding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3165,1
    - Dst: addBinding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3197,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3234,1
    - Dst: copy_salt_to_sipkey
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3262,1
    - Dst: sip24_init
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3263,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3266,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3290,1
    - Dst: sip24_update
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3294,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3296,1
    - Dst: sip24_update
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3299,1
    - Dst: keylen
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3299,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3302,1
    - Dst: sip24_final
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3306,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3317,1
    - Dst: PROBE_STEP
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3326,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3335,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3341,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3342,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3373,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3394,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3398,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3402,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3407,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3412,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 241
    argCount: 5
    argNames:
    - parser
    - enc
    - attStr
    - tagNamePtr
    - bindingsPtr
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - TAG_NAME*
    - BINDING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3035
    functionDepth: 3
    functionLinenumber: 3035
    functionLinenumberEnd: 3416
    functionName: storeAtts
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - sip24_final
    - storeAttributeValue
    - poolAppendChar
    - copy_salt_to_sipkey
    - lookup
    - addBinding
    - XML_T
    - MALLOC
    - keylen
    - REALLOC
    - FREE
    - poolCopyString
    - setElementTypePrefix
    - getAttributeId
    - XmlGetAttributes
    - sip24_init
    - poolStoreString
    - memcpy
    - sip24_update
    - poolStart
    - PROBE_STEP
    - XmlNameLength
    - poolFinish
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error storeAtts(XML_Parser parser, const ENCODING *enc, const
      char *attStr,\n          TAG_NAME *tagNamePtr, BINDING **bindingsPtr)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3451,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3454,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3455,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3456,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3458,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3458,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3459,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3462,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3489,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3498,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3502,1
    - Dst: FREE
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3504,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3510,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3517,1
    - Dst: XML_Parser::m_startNamespaceDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3525,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 58
    argCount: 5
    argNames:
    - parser
    - prefix
    - attId
    - uri
    - bindingsPtr
    argTypes:
    - XML_Parser
    - PREFIX*
    - ATTRIBUTE_ID*
    - XML_Char*
    - BINDING**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3528
      start: 3421
    functionDepth: 1
    functionLinenumber: 3421
    functionLinenumberEnd: 3528
    functionName: addBinding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - memcpy
    - XML_T
    - MALLOC
    - FREE
    - REALLOC
    - XML_Parser::m_startNamespaceDeclHandler
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix, const
      ATTRIBUTE_ID *attId,\n           const XML_Char *uri, BINDING **bindingsPtr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: doCdataSection
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3537,1
    - Dst: externalEntityContentProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3544,1
    - Dst: contentProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3551
      start: 3533
    functionDepth: 3
    functionLinenumber: 3533
    functionLinenumberEnd: 3551
    functionName: cdataSectionProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - contentProcessor
    - doCdataSection
    - externalEntityContentProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error cdataSectionProcessor(XML_Parser parser, const char
      *start, const char *end,\n                      const char **endPtr)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: XmlCdataSectionTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3575,1
    - Dst: XML_Parser::m_endCdataSectionHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3580,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3584,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3588,1
    - Dst: XML_Parser::m_characterDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3598,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3600,1
    - Dst: MUST_CONVERT
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3605,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3608,1
    - Dst: charDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3611,1
    - Dst: charDataHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3619,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3622,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 6
    argNames:
    - parser
    - enc
    - startPtr
    - end
    - nextPtr
    - haveMore
    argTypes:
    - XML_Parser
    - ENCODING*
    - char**
    - char*
    - char**
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3664
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3664
    functionName: doCdataSection
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlCdataSectionTok
    - XML_Parser::m_endCdataSectionHandler
    - XmlConvert
    - reportDefault
    - XML_Parser::m_characterDataHandler
    - charDataHandler
    - MUST_CONVERT
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *enc,
      const char **startPtr,\n               const char *end, const char **nextPtr,
      XML_Bool haveMore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: doIgnoreSection
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3675,1
    - Dst: prologProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - parser
    - start
    - end
    - endPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3671
    functionDepth: 1
    functionLinenumber: 3671
    functionLinenumberEnd: 3684
    functionName: ignoreSectionProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - prologProcessor
    - doIgnoreSection
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error ignoreSectionProcessor(XML_Parser parser, const char
      *start, const char *end,\n                       const char **endPtr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: XmlIgnoreSectionTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3719,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 6
    argNames:
    - parser
    - enc
    - startPtr
    - end
    - nextPtr
    - haveMore
    argTypes:
    - XML_Parser
    - ENCODING*
    - char**
    - char*
    - char**
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3689
    functionDepth: 1
    functionLinenumber: 3689
    functionLinenumberEnd: 3760
    functionName: doIgnoreSection
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlIgnoreSectionTok
    - reportDefault
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *enc,
      const char **startPtr,\n                const char *end, const char **nextPtr,
      XML_Bool haveMore)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: handleUnknownEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3764
    functionDepth: 1
    functionLinenumber: 3764
    functionLinenumberEnd: 3792
    functionName: initializeEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - handleUnknownEncoding
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error initializeEncoding(XML_Parser parser)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3822,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3824,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3827,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3831,1
    - Dst: XML_Parser::m_xmlDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3836,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3839,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3857,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3859,1
    - Dst: handleUnknownEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3863,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3864,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3872,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 4
    argNames:
    - parser
    - isGeneralTextEntity
    - s
    - next
    argTypes:
    - XML_Parser
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3875
      start: 3794
    functionDepth: 1
    functionLinenumber: 3794
    functionLinenumberEnd: 3875
    functionName: processXmlDecl
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_Parser::m_xmlDeclHandler
    - reportDefault
    - poolStoreString
    - poolClear
    - XmlNameLength
    - handleUnknownEncoding
    - poolFinish
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
      const char *s,\n               const char *next)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XML_Parser::m_unknownEncodingHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3887,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3890,1
    - Dst: XmlSizeOfUnknownEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3890,1
    - Dst: XML_Encoding::release
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3893,1
    - Dst: XML_Encoding::release
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3906,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - parser
    - encodingName
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3877
    functionDepth: 1
    functionLinenumber: 3877
    functionLinenumberEnd: 3909
    functionName: handleUnknownEncoding
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XML_Parser::m_unknownEncodingHandler
    - XmlSizeOfUnknownEncoding
    - XML_Encoding::release
    - MALLOC
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error handleUnknownEncoding(XML_Parser parser, const XML_Char
      *encodingName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initializeEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3914,1
    - Dst: prologProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3919
      start: 3911
    functionDepth: 2
    functionLinenumber: 3911
    functionLinenumberEnd: 3919
    functionName: prologInitProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - initializeEncoding
    - prologProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error prologInitProcessor(XML_Parser parser, const char *s,
      const char *end,\n                    const char **nextPtr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: initializeEncoding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3926,1
    - Dst: entityValueInitProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3936,1
    - Dst: externalParEntProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3941
      start: 3923
    functionDepth: 2
    functionLinenumber: 3923
    functionLinenumberEnd: 3941
    functionName: externalParEntInitProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - entityValueInitProcessor
    - initializeEncoding
    - externalParEntProcessor
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalParEntInitProcessor(XML_Parser parser, const
      char *s, const char *end,\n                            const char **nextPtr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3952,1
    - Dst: storeEntityValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3971,1
    - Dst: processXmlDecl
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3974,1
    - Dst: entityValueProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:3987,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4012
      start: 3943
    functionDepth: 2
    functionLinenumber: 3943
    functionLinenumberEnd: 4012
    functionName: entityValueInitProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologTok
    - storeEntityValue
    - entityValueProcessor
    - processXmlDecl
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error entityValueInitProcessor(XML_Parser parser, const char
      *s, const char *end,\n                         const char **nextPtr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4020,1
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4044,1
    - Dst: doProlog
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4048,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4050
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4050
    functionName: externalParEntProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologTok
    - doProlog
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error externalParEntProcessor(XML_Parser parser, const char
      *s, const char *end,\n                        const char **nextPtr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4061,1
    - Dst: storeEntityValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4079,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4083
    functionName: entityValueProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologTok
    - storeEntityValue
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error entityValueProcessor(XML_Parser parser, const char
      *s, const char *end,\n                     const char **nextPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4091,1
    - Dst: doProlog
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4094
      start: 4087
    functionDepth: 1
    functionLinenumber: 4087
    functionLinenumberEnd: 4094
    functionName: prologProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlPrologTok
    - doProlog
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error prologProcessor(XML_Parser parser, const char *s, const
      char *end,\n                const char **nextPtr)"
  - BBCount: 221
    BranchProfiles: []
    Callsites:
    - Dst: XmlTokenRole
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4175,1
    - Dst: XmlTokenRole
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4189,1
    - Dst: processXmlDecl
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4192,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4201,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4204,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4212,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4216,1
    - Dst: processXmlDecl
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4222,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4232,1
    - Dst: XmlIsPublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4240,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4242,1
    - Dst: normalizePublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4247,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4248,1
    - Dst: XmlIsPublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4255,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4260,1
    - Dst: normalizePublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4264,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4266,1
    - Dst: XML_Parser::m_startDoctypeDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4281,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4284,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4297,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4310,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4316,1
    - Dst: XML_Parser::m_endDoctypeDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4330,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4344,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4350,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4356,1
    - Dst: contentProcessor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4369,1
    - Dst: getElementType
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4371,1
    - Dst: getAttributeId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4376,1
    - Dst: poolAppendString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4422,1
    - Dst: poolAppend
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4424,1
    - Dst: defineAttribute
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4433,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4439,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4440,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4441,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4443,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4443,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4444,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4444,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4447,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4450,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4454,1
    - Dst: storeAttributeValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4463,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4468,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4469,1
    - Dst: defineAttribute
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4471,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4476,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4477,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4478,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4480,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4480,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4481,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4481,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4484,1
    - Dst: XML_Parser::m_attlistDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4487,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4491,1
    - Dst: storeEntityValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4498,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4501,1
    - Dst: poolLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4503,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4504,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4507,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4514,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4525,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4530,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4544,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4550,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4561,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4566,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4578,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4588,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4591,1
    - Dst: XML_Parser::m_unparsedEntityDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4594,1
    - Dst: XML_Parser::m_entityDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4601,1
    - Dst: XmlPredefinedEntityName
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4610,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4615,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4618,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4623,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4626,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4638,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4645,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4648,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4653,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4656,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4668,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4680,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4683,1
    - Dst: XmlIsPublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4688,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4692,1
    - Dst: normalizePublicId
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4697,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4699,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4705,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4711,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4716,1
    - Dst: XML_Parser::m_notationDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4721,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4726,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4743,1
    - Dst: doIgnoreSection
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4745,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4758,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4768,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4776,1
    - Dst: nextScaffoldPart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4785,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4788,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4826,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4830,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4831,1
    - Dst: XML_Parser::m_skippedEntityHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4869,1
    - Dst: processInternalEntity
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4880,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4889,1
    - Dst: XML_Parser::m_notStandaloneHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4908,1
    - Dst: getElementType
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4916,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4931,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4941,1
    - Dst: nextScaffoldPart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4976,1
    - Dst: getElementType
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:4981,1
    - Dst: build_model
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5014,1
    - Dst: XML_Parser::m_elementDeclHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5018,1
    - Dst: reportProcessingInstruction
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5029,1
    - Dst: reportComment
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5034,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5068,1
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5078,1
    CyclomaticComplexity: 259
    EdgeCount: 259
    ICount: 724
    argCount: 9
    argNames:
    - parser
    - enc
    - s
    - end
    - tok
    - next
    - nextPtr
    - haveMore
    - allowClosingDoctype
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    - int
    - char*
    - char**
    - XML_Bool
    - XML_Bool
    assertStmts:
    - condition: (dtd->scaffIndex != NULL)
      pos:
        line_end: 4787
        line_start: 4787
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    constantsTouched: []
    func_position:
      end: 5082
      start: 4096
    functionDepth: 3
    functionLinenumber: 4096
    functionLinenumberEnd: 5082
    functionName: doProlog
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - storeEntityValue
    - build_model
    - processInternalEntity
    - storeAttributeValue
    - reportDefault
    - XML_Parser::m_notationDeclHandler
    - poolAppendChar
    - poolAppend
    - contentProcessor
    - poolDiscard
    - poolAppendString
    - XmlPrologTok
    - lookup
    - XmlIsPublicId
    - poolLength
    - defineAttribute
    - XML_Parser::m_unparsedEntityDeclHandler
    - XML_T
    - MALLOC
    - assert
    - REALLOC
    - poolClear
    - normalizePublicId
    - doIgnoreSection
    - getAttributeId
    - XML_Parser::m_skippedEntityHandler
    - XML_Parser::m_startDoctypeDeclHandler
    - poolStoreString
    - XmlTokenRole
    - XML_Parser::m_notStandaloneHandler
    - processXmlDecl
    - nextScaffoldPart
    - XML_Parser::m_attlistDeclHandler
    - XML_Parser::m_elementDeclHandler
    - XML_Parser::m_externalEntityRefHandler
    - getElementType
    - reportProcessingInstruction
    - XML_Parser::m_entityDeclHandler
    - poolStart
    - XML_Parser::m_endDoctypeDeclHandler
    - XmlPredefinedEntityName
    - poolFinish
    - reportComment
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error doProlog(XML_Parser parser, const ENCODING *enc, const
      char *s, const char *end,\n         int tok, const char *next, const char **nextPtr,
      XML_Bool haveMore,\n         XML_Bool allowClosingDoctype)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5091,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5097,1
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5108,1
    - Dst: reportProcessingInstruction
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5111,1
    - Dst: reportComment
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5146
      start: 5084
    functionDepth: 1
    functionLinenumber: 5084
    functionLinenumberEnd: 5146
    functionName: epilogProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XmlPrologTok
    - reportDefault
    - reportProcessingInstruction
    - reportComment
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error epilogProcessor(XML_Parser parser, const char *s, const
      char *end,\n                const char **nextPtr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5160,1
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5181,1
    - Dst: doProlog
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5182,1
    - Dst: doContent
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 3
    argNames:
    - parser
    - entity
    - betweenDecl
    argTypes:
    - XML_Parser
    - ENTITY*
    - XML_Bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5202
      start: 5148
    functionDepth: 4
    functionLinenumber: 5148
    functionLinenumberEnd: 5202
    functionName: processInternalEntity
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlPrologTok
    - doContent
    - doProlog
    - MALLOC
    linkageType: ''
    returnType: enum XML_Error
    signature: enum XML_Error processInternalEntity(XML_Parser parser, ENTITY *entity,
      XML_Bool betweenDecl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5224,1
    - Dst: doProlog
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5225,1
    - Dst: doContent
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5229,1
    - Dst: XmlPrologTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5251,1
    - Dst: doProlog
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5252,1
    - Dst: doContent
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5263
      start: 5204
    functionDepth: 4
    functionLinenumber: 5204
    functionLinenumberEnd: 5263
    functionName: internalEntityProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XmlPrologTok
    - doContent
    - doProlog
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error internalEntityProcessor(XML_Parser parser, const char
      *s, const char *end,\n                        const char **nextPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5268,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5269,1
    - Dst: UNUSED_P
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - parser
    - s
    - end
    - nextPtr
    argTypes:
    - XML_Parser
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5272
      start: 5265
    functionDepth: 1
    functionLinenumber: 5265
    functionLinenumberEnd: 5272
    functionName: errorProcessor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - UNUSED_P
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error errorProcessor(XML_Parser parser, const char *s, const
      char *end,\n               const char **nextPtr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appendAttributeValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5278,1
    - Dst: poolLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5281,1
    - Dst: poolLastChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5281,1
    - Dst: poolChop
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5282,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5283,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 6
    argNames:
    - parser
    - enc
    - isCdata
    - ptr
    - end
    - pool
    argTypes:
    - XML_Parser
    - ENCODING*
    - XML_Bool
    - char*
    - char*
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5274
    functionDepth: 1
    functionLinenumber: 5274
    functionLinenumberEnd: 5286
    functionName: storeAttributeValue
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolLastChar
    - poolLength
    - poolAppendChar
    - XML_T
    - poolChop
    - appendAttributeValue
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error storeAttributeValue(XML_Parser parser, const ENCODING
      *enc, XML_Bool isCdata,\n                    const char *ptr, const char *end,
      STRING_POOL *pool)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: XmlAttributeValueTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5294,1
    - Dst: XmlCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5309,1
    - Dst: poolLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5316,1
    - Dst: poolLastChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5316,1
    - Dst: XmlEncode
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5318,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5329,1
    - Dst: poolAppend
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5334,1
    - Dst: poolLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5342,1
    - Dst: poolLastChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5342,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5344,1
    - Dst: XmlPredefinedEntityName
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5351,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5354,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5358,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5363,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5364,1
    - Dst: appendAttributeValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5431,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 95
    argCount: 6
    argNames:
    - parser
    - enc
    - isCdata
    - ptr
    - end
    - pool
    argTypes:
    - XML_Parser
    - ENCODING*
    - XML_Bool
    - char*
    - char*
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5459
      start: 5288
    functionDepth: 1
    functionLinenumber: 5288
    functionLinenumberEnd: 5459
    functionName: appendAttributeValue
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - XmlCharRefNumber
    - poolDiscard
    - XmlAttributeValueTok
    - lookup
    - poolLastChar
    - poolLength
    - poolAppendChar
    - poolStoreString
    - appendAttributeValue
    - XmlPredefinedEntityName
    - poolAppend
    - XmlEncode
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error appendAttributeValue(XML_Parser parser, const ENCODING
      *enc, XML_Bool isCdata,\n                     const char *ptr, const char *end,
      STRING_POOL *pool)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5475,1
    - Dst: XmlEntityValueTok
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5481,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5488,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5495,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5496,1
    - Dst: XML_Parser::m_externalEntityRefHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5517,1
    - Dst: storeEntityValue
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5531,1
    - Dst: poolAppend
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5551,1
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5560,1
    - Dst: XmlCharRefNumber
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5569,1
    - Dst: XmlEncode
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5576,1
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5587,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 126
    argCount: 4
    argNames:
    - parser
    - enc
    - entityTextPtr
    - entityTextEnd
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5461
    functionDepth: 1
    functionLinenumber: 5461
    functionLinenumberEnd: 5625
    functionName: storeEntityValue
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - storeEntityValue
    - XmlCharRefNumber
    - XML_Parser::m_externalEntityRefHandler
    - poolDiscard
    - lookup
    - XmlEntityValueTok
    - poolGrow
    - poolStoreString
    - poolAppend
    - XmlEncode
    linkageType: ''
    returnType: enum XML_Error
    signature: "enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING
      *enc,\n                 const char *entityTextPtr, const char *entityTextEnd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5631,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5646
      start: 5627
    functionDepth: 1
    functionLinenumber: 5627
    functionLinenumberEnd: 5646
    functionName: normalizeLines
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached:
    - XML_T
    linkageType: ''
    returnType: void
    signature: void normalizeLines(XML_Char *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5656,1
    - Dst: XmlNameLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5660,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5661,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5664,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5665,1
    - Dst: XmlSkipS
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5665,1
    - Dst: normalizeLines
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5669,1
    - Dst: XML_Parser::m_processingInstructionHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5670,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - parser
    - enc
    - start
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5673
      start: 5648
    functionDepth: 2
    functionLinenumber: 5648
    functionLinenumberEnd: 5673
    functionName: reportProcessingInstruction
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - XmlSkipS
    - XML_Parser::m_processingInstructionHandler
    - reportDefault
    - poolClear
    - poolStoreString
    - normalizeLines
    - XmlNameLength
    - poolFinish
    linkageType: ''
    returnType: int
    signature: "int reportProcessingInstruction(XML_Parser parser, const ENCODING
      *enc,\n                            const char *start, const char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reportDefault
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5681,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5684,1
    - Dst: normalizeLines
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5689,1
    - Dst: XML_Parser::m_commentHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5690,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - parser
    - enc
    - start
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5693
      start: 5675
    functionDepth: 2
    functionLinenumber: 5675
    functionLinenumberEnd: 5693
    functionName: reportComment
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - reportDefault
    - poolStoreString
    - normalizeLines
    - XML_Parser::m_commentHandler
    - poolClear
    linkageType: ''
    returnType: int
    signature: "int reportComment(XML_Parser parser, const ENCODING *enc, const char
      *start,\n              const char *end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MUST_CONVERT
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5698,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5729,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5731,1
    - Dst: XML_Parser::m_defaultHandler
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - parser
    - enc
    - s
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5739
      start: 5695
    functionDepth: 1
    functionLinenumber: 5695
    functionLinenumberEnd: 5739
    functionName: reportDefault
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 9
    functionsReached:
    - MUST_CONVERT
    - XML_Parser::m_defaultHandler
    - XmlConvert
    linkageType: ''
    returnType: void
    signature: "void reportDefault(XML_Parser parser, const ENCODING *enc, const char
      *s,\n              const char *end)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5758,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5767,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 6
    argNames:
    - type
    - attId
    - isCdata
    - isId
    - value
    - parser
    argTypes:
    - ELEMENT_TYPE*
    - ATTRIBUTE_ID*
    - XML_Bool
    - XML_Bool
    - XML_Char*
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5783
      start: 5741
    functionDepth: 1
    functionLinenumber: 5741
    functionLinenumberEnd: 5783
    functionName: defineAttribute
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - REALLOC
    - MALLOC
    linkageType: ''
    returnType: int
    signature: "int defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool
      isCdata,\n                XML_Bool isId, const XML_Char *value, XML_Parser parser)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5790,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5794,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5797,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5797,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5799,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5799,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5803,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5804,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5806,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - parser
    - elementType
    argTypes:
    - XML_Parser
    - ELEMENT_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5812
      start: 5785
    functionDepth: 1
    functionLinenumber: 5785
    functionLinenumberEnd: 5812
    functionName: setElementTypePrefix
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolDiscard
    - lookup
    - poolStart
    - poolAppendChar
    - XML_T
    - poolFinish
    linkageType: ''
    returnType: int
    signature: int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5820,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5820,1
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5822,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5827,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5832,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5834,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5837,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5837,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5838,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5838,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5839,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5840,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5840,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5841,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5844,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5851,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5854,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5857,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5857,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5859,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5860,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5863,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5864,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5866,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 41
    argCount: 4
    argNames:
    - parser
    - enc
    - start
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5873
      start: 5814
    functionDepth: 1
    functionLinenumber: 5814
    functionLinenumberEnd: 5873
    functionName: getAttributeId
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolDiscard
    - lookup
    - poolStart
    - poolStoreString
    - poolAppendChar
    - XML_T
    - poolFinish
    linkageType: ''
    returnType: ATTRIBUTE_ID
    signature: "ATTRIBUTE_ID *\ngetAttributeId(XML_Parser parser, const ENCODING *enc,
      const char *start,\n               const char *end)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5886,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5886,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5892,1
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5919,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5924,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5936,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5939,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5941,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5941,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5947,1
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5952,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5955,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5960,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5963,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5968,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5968,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 52
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5877
    functionDepth: 1
    functionLinenumber: 5877
    functionLinenumberEnd: 5971
    functionName: getContext
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterInit
    - hashTableIterNext
    - poolAppendChar
    - XML_T
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *

      getContext(XML_Parser parser)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5978,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5979,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5981,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5981,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5983,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5984,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5987,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5990,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5991,1
    - Dst: poolLength
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5993,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5996,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5996,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:5999,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6000,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6003,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6004,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6008,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6010,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6012,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6014,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6014,1
    - Dst: addBinding
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6016,1
    - Dst: poolStart
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6016,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6020,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6021,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6025,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - parser
    - context
    argTypes:
    - XML_Parser
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6031
      start: 5973
    functionDepth: 2
    functionLinenumber: 5973
    functionLinenumberEnd: 6031
    functionName: setContext
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - poolDiscard
    - lookup
    - poolStart
    - poolLength
    - addBinding
    - poolAppendChar
    - XML_T
    - poolCopyString
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool setContext(XML_Parser parser, const XML_Char *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6051,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - publicId
    argTypes:
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6052
      start: 6033
    functionDepth: 1
    functionLinenumber: 6033
    functionLinenumberEnd: 6052
    functionName: normalizePublicId
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - XML_T
    linkageType: ''
    returnType: void
    signature: void normalizePublicId(XML_Char *publicId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6056,1
    - Dst: poolInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6059,1
    - Dst: poolInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6060,1
    - Dst: hashTableInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6061,1
    - Dst: hashTableInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6062,1
    - Dst: hashTableInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6063,1
    - Dst: hashTableInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6064,1
    - Dst: hashTableInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ms
    argTypes:
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6084
      start: 6054
    functionDepth: 1
    functionLinenumber: 6054
    functionLinenumberEnd: 6084
    functionName: dtdCreate
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableInit
    - poolInit
    - XML_Memory_Handling_Suite*::malloc_fcn
    linkageType: ''
    returnType: DTD
    signature: 'DTD *

      dtdCreate(const XML_Memory_Handling_Suite *ms)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6089,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6091,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6095,1
    - Dst: hashTableClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6097,1
    - Dst: hashTableClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6100,1
    - Dst: hashTableClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6102,1
    - Dst: hashTableClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6103,1
    - Dst: hashTableClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6104,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6105,1
    - Dst: poolClear
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6106,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6112,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - p
    - ms
    argTypes:
    - DTD*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6125
      start: 6086
    functionDepth: 1
    functionLinenumber: 6086
    functionLinenumberEnd: 6125
    functionName: dtdReset
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - XML_Memory_Handling_Suite*::free_fcn
    - hashTableIterInit
    - hashTableClear
    - poolClear
    linkageType: ''
    returnType: void
    signature: void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6130,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6132,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6136,1
    - Dst: hashTableDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6138,1
    - Dst: hashTableDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6140,1
    - Dst: hashTableDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6142,1
    - Dst: hashTableDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6143,1
    - Dst: hashTableDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6144,1
    - Dst: poolDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6145,1
    - Dst: poolDestroy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6146,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6148,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6149,1
    - Dst: XML_Memory_Handling_Suite*::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - p
    - isDocEntity
    - ms
    argTypes:
    - DTD*
    - XML_Bool
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6152
      start: 6127
    functionDepth: 1
    functionLinenumber: 6127
    functionLinenumberEnd: 6152
    functionName: dtdDestroy
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - hashTableDestroy
    - XML_Memory_Handling_Suite*::free_fcn
    - hashTableIterInit
    - poolDestroy
    linkageType: ''
    returnType: void
    signature: void dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite
      *ms)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6164,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6167,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6170,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6173,1
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6177,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6184,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6189,1
    - Dst: XML_T
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6189,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6191,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6195,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6205,1
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6212,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6218,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6221,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6224,1
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6229,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6236,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6240,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6243,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6248,1
    - Dst: copyEntityTable
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6257,1
    - Dst: copyEntityTable
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6262,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 4
    argNames:
    - oldParser
    - newDtd
    - oldDtd
    - ms
    argTypes:
    - XML_Parser
    - DTD*
    - DTD*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6281
      start: 6157
    functionDepth: 1
    functionLinenumber: 6157
    functionLinenumberEnd: 6281
    functionName: dtdCopy
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - copyEntityTable
    - hashTableIterInit
    - lookup
    - XML_Memory_Handling_Suite*::malloc_fcn
    - poolAppendChar
    - XML_T
    - poolCopyString
    linkageType: ''
    returnType: int
    signature: "int dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd,\n
      \       const XML_Memory_Handling_Suite *ms)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: hashTableIterInit
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6290,1
    - Dst: hashTableIterNext
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6295,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6298,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6301,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6305,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6314,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6321,1
    - Dst: poolCopyStringN
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6328,1
    - Dst: poolCopyString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6335,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - oldParser
    - newTable
    - newPool
    - oldTable
    argTypes:
    - XML_Parser
    - HASH_TABLE*
    - STRING_POOL*
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6344
      start: 6283
    functionDepth: 1
    functionLinenumber: 6283
    functionLinenumberEnd: 6344
    functionName: copyEntityTable
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - hashTableIterNext
    - hashTableIterInit
    - lookup
    - poolCopyStringN
    - poolCopyString
    linkageType: ''
    returnType: int
    signature: "int copyEntityTable(XML_Parser oldParser, HASH_TABLE *newTable,\n
      \               STRING_POOL *newPool, const HASH_TABLE *oldTable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - KEY
    - KEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6354
      start: 6348
    functionDepth: 0
    functionLinenumber: 6348
    functionLinenumberEnd: 6354
    functionName: keyeq
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool keyeq(KEY s1, KEY s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - KEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6356
    functionDepth: 0
    functionLinenumber: 6356
    functionLinenumberEnd: 6362
    functionName: keylen
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t keylen(KEY s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_hash_secret_salt
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parser
    - key
    argTypes:
    - XML_Parser
    - struct sipkey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6368
      start: 6364
    functionDepth: 2
    functionLinenumber: 6364
    functionLinenumberEnd: 6368
    functionName: copy_salt_to_sipkey
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - get_hash_secret_salt
    linkageType: ''
    returnType: void
    signature: void copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_salt_to_sipkey
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6375,1
    - Dst: sip24_init
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6376,1
    - Dst: sip24_update
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6377,1
    - Dst: keylen
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6377,1
    - Dst: sip24_final
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - s
    argTypes:
    - XML_Parser
    - KEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6379
      start: 6370
    functionDepth: 3
    functionLinenumber: 6370
    functionLinenumberEnd: 6379
    functionName: hash
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 15
    functionsReached:
    - sip24_update
    - sip24_final
    - sip24_init
    - keylen
    - copy_salt_to_sipkey
    linkageType: ''
    returnType: unsigned long FASTCALL
    signature: unsigned long FASTCALL hash(XML_Parser parser, KEY s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6392,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6397,1
    - Dst: hash
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6398,1
    - Dst: hash
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6400,1
    - Dst: keyeq
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6405,1
    - Dst: PROBE_STEP
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6408,1
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6420,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6423,1
    - Dst: hash
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6426,1
    - Dst: PROBE_STEP
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6431,1
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6436,1
    - Dst: PROBE_STEP
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6444,1
    - Dst: HASH_TABLE*::mem::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6449,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6452,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - parser
    - table
    - name
    - createSize
    argTypes:
    - XML_Parser
    - HASH_TABLE*
    - KEY
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6456
      start: 6381
    functionDepth: 4
    functionLinenumber: 6381
    functionLinenumberEnd: 6456
    functionName: lookup
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 13
    functionsReached:
    - hash
    - HASH_TABLE*::mem::malloc_fcn
    - keyeq
    - HASH_TABLE*::mem::free_fcn
    - PROBE_STEP
    - memset
    linkageType: ''
    returnType: NAMED
    signature: 'NAMED *

      lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6466
      start: 6458
    functionDepth: 0
    functionLinenumber: 6458
    functionLinenumberEnd: 6466
    functionName: hashTableClear
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - HASH_TABLE*::mem::free_fcn
    linkageType: ''
    returnType: void
    signature: void hashTableClear(HASH_TABLE *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6472,1
    - Dst: HASH_TABLE*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - table
    argTypes:
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6474
      start: 6468
    functionDepth: 0
    functionLinenumber: 6468
    functionLinenumberEnd: 6474
    functionName: hashTableDestroy
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - HASH_TABLE*::mem::free_fcn
    linkageType: ''
    returnType: void
    signature: void hashTableDestroy(HASH_TABLE *table)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - ms
    argTypes:
    - HASH_TABLE*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6483
      start: 6476
    functionDepth: 0
    functionLinenumber: 6476
    functionLinenumberEnd: 6483
    functionName: hashTableInit
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashTableInit(HASH_TABLE *p, const XML_Memory_Handling_Suite *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - iter
    - table
    argTypes:
    - HASH_TABLE_ITER*
    - HASH_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6489
      start: 6485
    functionDepth: 0
    functionLinenumber: 6485
    functionLinenumberEnd: 6489
    functionName: hashTableIterInit
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - iter
    argTypes:
    - HASH_TABLE_ITER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6499
      start: 6491
    functionDepth: 0
    functionLinenumber: 6491
    functionLinenumberEnd: 6499
    functionName: hashTableIterNext
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: NAMED
    signature: 'NAMED *FASTCALL

      hashTableIterNext(HASH_TABLE_ITER *iter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - ms
    argTypes:
    - STRING_POOL*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6509
      start: 6501
    functionDepth: 0
    functionLinenumber: 6501
    functionLinenumberEnd: 6509
    functionName: poolInit
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poolInit(STRING_POOL *pool, const XML_Memory_Handling_Suite *ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6528
      start: 6511
    functionDepth: 0
    functionLinenumber: 6511
    functionLinenumberEnd: 6528
    functionName: poolClear
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poolClear(STRING_POOL *pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_POOL*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6535,1
    - Dst: STRING_POOL*::mem::free_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6544
      start: 6530
    functionDepth: 0
    functionLinenumber: 6530
    functionLinenumberEnd: 6544
    functionName: poolDestroy
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - STRING_POOL*::mem::free_fcn
    linkageType: ''
    returnType: void
    signature: void poolDestroy(STRING_POOL *pool)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6549,1
    - Dst: XmlConvert
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6552,1
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6557,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - pool
    - enc
    - ptr
    - end
    argTypes:
    - STRING_POOL*
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6546
    functionDepth: 1
    functionLinenumber: 6546
    functionLinenumberEnd: 6561
    functionName: poolAppend
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 3
    functionsReached:
    - XmlConvert
    - poolGrow
    linkageType: ''
    returnType: XML_Char
    signature: "XML_Char *\npoolAppend(STRING_POOL *pool, const ENCODING *enc, const
      char *ptr,\n           const char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6566,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6563
    functionDepth: 1
    functionLinenumber: 6563
    functionLinenumberEnd: 6572
    functionName: poolCopyString
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 5
    functionsReached:
    - poolAppendChar
    - poolFinish
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *FASTCALL

      poolCopyString(STRING_POOL *pool, const XML_Char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6576,1
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6591,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - s
    - n
    argTypes:
    - STRING_POOL*
    - XML_Char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6597
      start: 6574
    functionDepth: 1
    functionLinenumber: 6574
    functionLinenumberEnd: 6597
    functionName: poolCopyStringN
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    - poolFinish
    - poolGrow
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *

      poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: poolAppendChar
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - s
    argTypes:
    - STRING_POOL*
    - XML_Char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6607
      start: 6599
    functionDepth: 1
    functionLinenumber: 6599
    functionLinenumberEnd: 6607
    functionName: poolAppendString
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolAppendChar
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *FASTCALL

      poolAppendString(STRING_POOL *pool, const XML_Char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: poolAppend
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6612,1
    - Dst: poolGrow
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - pool
    - enc
    - ptr
    - end
    argTypes:
    - STRING_POOL*
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6618
      start: 6609
    functionDepth: 2
    functionLinenumber: 6609
    functionLinenumberEnd: 6618
    functionName: poolStoreString
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 9
    functionsReached:
    - poolAppend
    - poolGrow
    linkageType: ''
    returnType: XML_Char
    signature: "XML_Char *\npoolStoreString(STRING_POOL *pool, const ENCODING *enc,
      const char *ptr,\n                const char *end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - blockSize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6646
      start: 6620
    functionDepth: 0
    functionLinenumber: 6620
    functionLinenumberEnd: 6646
    functionName: poolBytesToAllocateFor
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t poolBytesToAllocateFor(int blockSize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6665,1
    - Dst: poolBytesToAllocateFor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6692,1
    - Dst: STRING_POOL*::mem::realloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6696,1
    - Dst: poolBytesToAllocateFor
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6733,1
    - Dst: STRING_POOL*::mem::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6737,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6744,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 1
    argNames:
    - pool
    argTypes:
    - STRING_POOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6750
      start: 6648
    functionDepth: 1
    functionLinenumber: 6648
    functionLinenumberEnd: 6750
    functionName: poolGrow
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 4
    functionsReached:
    - STRING_POOL*::mem::realloc_fcn
    - poolBytesToAllocateFor
    - memcpy
    - STRING_POOL*::mem::malloc_fcn
    linkageType: ''
    returnType: XML_Bool
    signature: XML_Bool poolGrow(STRING_POOL *pool)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6759,1
    - Dst: REALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6768,1
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6797
      start: 6752
    functionDepth: 1
    functionLinenumber: 6752
    functionLinenumberEnd: 6797
    functionName: nextScaffoldPart
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - REALLOC
    - MALLOC
    linkageType: ''
    returnType: int
    signature: int nextScaffoldPart(XML_Parser parser)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_node
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6825,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - parser
    - src_node
    - dest
    - contpos
    - strpos
    argTypes:
    - XML_Parser
    - int
    - XML_Content*
    - XML_Content**
    - XML_Char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6829
      start: 6799
    functionDepth: 1
    functionLinenumber: 6799
    functionLinenumberEnd: 6829
    functionName: build_node
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - build_node
    linkageType: ''
    returnType: void
    signature: "void build_node(XML_Parser parser, int src_node, XML_Content *dest,\n
      \          XML_Content **contpos, XML_Char **strpos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6840,1
    - Dst: build_node
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - parser
    argTypes:
    - XML_Parser
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6849
      start: 6831
    functionDepth: 2
    functionLinenumber: 6831
    functionLinenumberEnd: 6849
    functionName: build_model
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - build_node
    - MALLOC
    linkageType: ''
    returnType: XML_Content
    signature: 'XML_Content *

      build_model(XML_Parser parser)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: poolStoreString
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6855,1
    - Dst: lookup
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6860,1
    - Dst: poolDiscard
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6865,1
    - Dst: poolFinish
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6867,1
    - Dst: setElementTypePrefix
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - parser
    - enc
    - ptr
    - end
    argTypes:
    - XML_Parser
    - ENCODING*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6872
      start: 6851
    functionDepth: 5
    functionLinenumber: 6851
    functionLinenumberEnd: 6872
    functionName: getElementType
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 1
    functionsReached:
    - poolDiscard
    - setElementTypePrefix
    - lookup
    - poolStoreString
    - poolFinish
    linkageType: ''
    returnType: ELEMENT_TYPE
    signature: "ELEMENT_TYPE *\ngetElementType(XML_Parser parser, const ENCODING *enc,
      const char *ptr,\n               const char *end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XML_Memory_Handling_Suite*::malloc_fcn
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6887,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/expat/xmlparse.c:6891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - memsuite
    argTypes:
    - XML_Char*
    - XML_Memory_Handling_Suite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6893
      start: 6874
    functionDepth: 1
    functionLinenumber: 6874
    functionLinenumberEnd: 6893
    functionName: copyString
    functionSourceFile: /src/Python-3.8.3/Modules/expat/xmlparse.c
    functionUses: 2
    functionsReached:
    - memcpy
    - XML_Memory_Handling_Suite*::malloc_fcn
    linkageType: ''
    returnType: XML_Char
    signature: 'XML_Char *

      copyString(const XML_Char *s, const XML_Memory_Handling_Suite *memsuite)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - parser
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 654
    functionName: XML_GetUserData
    functionSourceFile: /src/Python-3.8.3/Modules/expat/expat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_GetUserData(parser)
  - 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: XML_ATTR_ALLOC_SIZE
    functionSourceFile: /src/Python-3.8.3/Modules/expat/expat_external.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XML_ATTR_ALLOC_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: XMLPARSEAPI
    functionSourceFile: /src/Python-3.8.3/Modules/expat/expat_external.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XMLPARSEAPI(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:68,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - errmsg
    - len
    argTypes:
    - sqlite3_context*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: _sqlite3_result_error
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void _sqlite3_result_error(sqlite3_context* ctx, const char* errmsg,
      int len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:93,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:101,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:107,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:108,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:109,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:111,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:112,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:114,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:115,1
    - Dst: sqlite3_open_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:119,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:124,1
    - Dst: sqlite3_open
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:130,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:137,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:142,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:147,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:149,1
    - Dst: pysqlite_connection_set_isolation_level
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:154,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:157,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:165,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:177,1
    - Dst: sqlite3_busy_timeout
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:181,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:182,1
    - Dst: sqlite3_libversion_number
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:183,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:184,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:193,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 76
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 210
    functionName: pysqlite_connection_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - sqlite3_open_v2
    - Py_XSETREF
    - PyThread_get_thread_ident
    - PyList_New
    - PyArg_ParseTupleAndKeywords
    - PyErr_Occurred
    - _pysqlite_seterror
    - Py_INCREF
    - PyObject_CallFunction
    - sqlite3_open
    - PyUnicode_FromString
    - sqlite3_libversion_number
    - Py_DECREF
    - PyBytes_AsString
    - PyDict_New
    - PyErr_SetString
    - pysqlite_connection_set_isolation_level
    - sqlite3_busy_timeout
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args,
      PyObject* kwargs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:220,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:221,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:222,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:224,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:226,1
    - Dst: pysqlite_statement_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:230,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:235,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:236,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - action
    - reset_cursors
    argTypes:
    - pysqlite_Connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: pysqlite_do_all_statements
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - pysqlite_statement_reset
    - PyList_GetItem
    - PyList_Size
    - PyWeakref_GetObject
    - pysqlite_statement_finalize
    linkageType: ''
    returnType: void
    signature: void pysqlite_do_all_statements(pysqlite_Connection* self, int action,
      int reset_cursors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:247,1
    - Dst: SQLITE3_CLOSE
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:251,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:254,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:255,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:256,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:257,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:258,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:259,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:260,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:261,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:262,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: pysqlite_connection_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - SQLITE3_CLOSE
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pysqlite_connection_dealloc(pysqlite_Connection* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:275,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:280,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:281,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - connection
    - cursor
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: pysqlite_connection_register_cursor
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_CLEAR
    - Py_DECREF
    - PyWeakref_NewRef
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_register_cursor(pysqlite_Connection* connection,
      PyObject* cursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:298,1
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:303,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:303,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:311,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:314,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:315,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:318,1
    - Dst: _pysqlite_drop_unused_cursor_references
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:322,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:325,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 330
    functionName: pysqlite_connection_cursor
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _pysqlite_drop_unused_cursor_references
    - Py_DECREF
    - pysqlite_check_connection
    - Py_INCREF
    - Py_XSETREF
    - pysqlite_check_thread
    - PyObject_TypeCheck
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - Py_TYPE
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_cursor(pysqlite_Connection* self, PyObject*
      args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:336,1
    - Dst: pysqlite_do_all_statements
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:340,1
    - Dst: SQLITE3_CLOSE
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:343,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 354
    functionName: pysqlite_connection_close
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - _pysqlite_seterror
    - SQLITE3_CLOSE
    - pysqlite_do_all_statements
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_close(pysqlite_Connection* self, PyObject*
      args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:364,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 374
    functionName: pysqlite_check_connection
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int pysqlite_check_connection(pysqlite_Connection* con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:383,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:387,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:391,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:393,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:397,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:400,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:401,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 410
    functionName: _pysqlite_connection_begin
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _pysqlite_seterror
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - pysqlite_step
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _pysqlite_connection_begin(pysqlite_Connection* self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:418,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:418,1
    - Dst: sqlite3_get_autocommit
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:422,1
    - Dst: sqlite3_prepare_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:425,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:428,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:432,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:434,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:438,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:440,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:441,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:447,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 452
    functionName: pysqlite_connection_commit
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _pysqlite_seterror
    - pysqlite_check_connection
    - sqlite3_get_autocommit
    - pysqlite_check_thread
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - pysqlite_step
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_commit(pysqlite_Connection* self, PyObject*
      args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:460,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:460,1
    - Dst: sqlite3_get_autocommit
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:464,1
    - Dst: pysqlite_do_all_statements
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:465,1
    - Dst: sqlite3_prepare_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:468,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:471,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:475,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:477,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:481,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:483,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 495
    functionName: pysqlite_connection_rollback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pysqlite_do_all_statements
    - pysqlite_check_connection
    - _pysqlite_seterror
    - sqlite3_get_autocommit
    - pysqlite_check_thread
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - pysqlite_step
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_rollback(pysqlite_Connection* self,
      PyObject* args)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_null
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:501,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:502,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:503,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:504,1
    - Dst: sqlite3_result_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:506,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:507,1
    - Dst: sqlite3_result_double
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:508,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:508,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:509,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:510,1
    - Dst: sqlite3_result_text
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:513,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:514,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:516,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:522,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:524,1
    - Dst: sqlite3_result_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:527,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:528,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - context
    - py_val
    argTypes:
    - sqlite3_context*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 533
    functionName: _pysqlite_set_result
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyObject_CheckBuffer
    - PyUnicode_AsUTF8
    - sqlite3_result_text
    - sqlite3_result_int64
    - _pysqlite_long_as_int64
    - PyBuffer_Release
    - sqlite3_result_null
    - PyErr_SetString
    - PyUnicode_Check
    - sqlite3_result_double
    - sqlite3_result_blob
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _pysqlite_set_result(sqlite3_context* context, PyObject* py_val)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:544,1
    - Dst: sqlite3_value_type
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:551,1
    - Dst: _pysqlite_long_from_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:553,1
    - Dst: sqlite3_value_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:553,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:556,1
    - Dst: sqlite3_value_double
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:556,1
    - Dst: sqlite3_value_text
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:559,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:560,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:563,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:564,1
    - Dst: sqlite3_value_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:569,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:570,1
    - Dst: sqlite3_value_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:571,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:575,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:580,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 589
    functionName: _pysqlite_build_py_params
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_FromString
    - PyTuple_SetItem
    - sqlite3_value_blob
    - Py_DECREF
    - sqlite3_value_type
    - Py_INCREF
    - _pysqlite_long_from_int64
    - sqlite3_value_int64
    - sqlite3_value_text
    - sqlite3_value_double
    - PyErr_Clear
    - PyFloat_FromDouble
    - PyTuple_New
    - sqlite3_value_bytes
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _pysqlite_build_py_params(sqlite3_context *context, int
      argc, sqlite3_value** argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:600,1
    - Dst: sqlite3_user_data
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:602,1
    - Dst: _pysqlite_build_py_params
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:604,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:606,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:607,1
    - Dst: _pysqlite_set_result
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:613,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:617,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:619,1
    - Dst: _sqlite3_result_error
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:621,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 625
    functionName: _pysqlite_func_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - PyGILState_Ensure
    - PyErr_Print
    - Py_DECREF
    - _pysqlite_build_py_params
    - PyGILState_Release
    - sqlite3_user_data
    - _pysqlite_set_result
    - _sqlite3_result_error
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _pysqlite_func_callback(sqlite3_context* context, int argc, sqlite3_value**
      argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:637,1
    - Dst: sqlite3_user_data
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:639,1
    - Dst: sqlite3_aggregate_context
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:641,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:644,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:646,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:649,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:651,1
    - Dst: _sqlite3_result_error
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:653,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:658,1
    - Dst: _pysqlite_build_py_params
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:663,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:669,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:673,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:675,1
    - Dst: _sqlite3_result_error
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:677,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:681,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:682,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 3
    argNames:
    - context
    - argc
    - params
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 685
    functionName: _pysqlite_step_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - sqlite3_aggregate_context
    - PyGILState_Ensure
    - PyErr_Occurred
    - PyErr_Print
    - PyObject_GetAttrString
    - _pysqlite_build_py_params
    - Py_DECREF
    - PyGILState_Release
    - sqlite3_user_data
    - _sqlite3_result_error
    - PyErr_Clear
    - _PyObject_CallNoArg
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _pysqlite_step_callback(sqlite3_context *context, int argc, sqlite3_value**
      params)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:691,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:698,1
    - Dst: sqlite3_aggregate_context
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:700,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:709,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:714,1
    - Dst: _pysqlite_set_result
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:718,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:719,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:723,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:725,1
    - Dst: _sqlite3_result_error
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:727,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:738,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:742,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 743
    functionName: _pysqlite_final_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - PyGILState_Ensure
    - Py_DECREF
    - PyErr_Print
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - PyGILState_Release
    - _Py_IDENTIFIER
    - _pysqlite_set_result
    - _sqlite3_result_error
    - PyErr_Restore
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _pysqlite_final_callback(sqlite3_context* context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:758,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:763,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:764,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:765,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:766,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:767,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 774
    functionName: _pysqlite_drop_unused_statement_references
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_GetItem
    - PyList_Size
    - PyList_Append
    - PyWeakref_GetObject
    - PyList_New
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void _pysqlite_drop_unused_statement_references(pysqlite_Connection*
      self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:789,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:794,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:795,1
    - Dst: PyWeakref_GetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:796,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:797,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:798,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:804,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 805
    functionName: _pysqlite_drop_unused_cursor_references
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyList_GetItem
    - PyList_Size
    - PyList_Append
    - PyWeakref_GetObject
    - PyList_New
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: _destructor
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _destructor(void* args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:823,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:823,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:827,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:835,1
    - Dst: sqlite3_libversion_number
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:839,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:840,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:847,1
    - Dst: sqlite3_create_function_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:848,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 864
    functionName: pysqlite_connection_create_function
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    - pysqlite_check_connection
    - Py_INCREF
    - pysqlite_check_thread
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_create_function(pysqlite_Connection*
      self, PyObject* args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:875,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:875,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:879,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:883,1
    - Dst: sqlite3_create_function_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:884,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 899
    functionName: pysqlite_connection_create_aggregate
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - pysqlite_check_connection
    - pysqlite_check_thread
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_create_aggregate(pysqlite_Connection*
      self, PyObject* args, PyObject* kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:907,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:909,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:913,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:915,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:920,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:921,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:922,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:924,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:926,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:933,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:936,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - user_arg
    - action
    - arg1
    - arg2
    - dbname
    - access_attempt_source
    argTypes:
    - void*
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 938
    functionName: _authorizer_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyGILState_Ensure
    - PyErr_Print
    - PyErr_Occurred
    - Py_DECREF
    - PyGILState_Release
    - PyObject_CallFunction
    - PyErr_Clear
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int _authorizer_callback(void* user_arg, int action, const char* arg1,
      const char* arg2 , const char* dbname, const char* access_attempt_source)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:946,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:947,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:951,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:953,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:959,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:960,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - user_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 965
    functionName: _progress_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyErr_Print
    - Py_DECREF
    - PyGILState_Release
    - PyObject_IsTrue
    - PyErr_Clear
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int _progress_handler(void* user_arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:974,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:975,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:976,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:978,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:979,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:983,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:986,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:988,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - user_arg
    - statement_string
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 993
    functionName: _trace_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyErr_Print
    - Py_DECREF
    - PyGILState_Release
    - strlen
    - PyObject_CallFunctionObjArgs
    - PyUnicode_DecodeUTF8
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _trace_callback(void* user_arg, const char* statement_string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1002,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1002,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1006,1
    - Dst: sqlite3_set_authorizer
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1011,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1013,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1014,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1017,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1021
    functionName: pysqlite_connection_set_authorizer
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_XSETREF
    - sqlite3_set_authorizer
    - Py_INCREF
    - pysqlite_check_thread
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_set_authorizer(pysqlite_Connection*
      self, PyObject* args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1030,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1030,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1034,1
    - Dst: sqlite3_progress_handler
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1041,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1042,1
    - Dst: sqlite3_progress_handler
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1044,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1045,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1049
    functionName: pysqlite_connection_set_progress_handler
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - Py_XSETREF
    - Py_INCREF
    - pysqlite_check_thread
    - sqlite3_progress_handler
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_set_progress_handler(pysqlite_Connection*
      self, PyObject* args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1057,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1057,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1061,1
    - Dst: sqlite3_trace
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1068,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1069,1
    - Dst: sqlite3_trace
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1071,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1072,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1077
    functionName: pysqlite_connection_set_trace_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_trace
    - pysqlite_check_connection
    - Py_XSETREF
    - Py_INCREF
    - pysqlite_check_thread
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_set_trace_callback(pysqlite_Connection*
      self, PyObject* args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1085,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1085,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1089,1
    - Dst: sqlite3_enable_load_extension
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1093,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1096,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1101
    functionName: pysqlite_enable_load_extension
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - sqlite3_enable_load_extension
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_enable_load_extension(pysqlite_Connection* self,
      PyObject* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1109,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1109,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1113,1
    - Dst: sqlite3_load_extension
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1124
    functionName: pysqlite_load_extension
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_connection
    - pysqlite_check_thread
    - sqlite3_load_extension
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_load_extension(pysqlite_Connection* self, PyObject*
      args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1130,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1131,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1140
    functionName: pysqlite_check_thread
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 11
    functionsReached:
    - PyErr_Format
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: int
    signature: int pysqlite_check_thread(pysqlite_Connection* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - pysqlite_Connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: pysqlite_connection_get_isolation_level
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_get_isolation_level(pysqlite_Connection*
      self, void* unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1150,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1153,1
    - Dst: sqlite3_total_changes
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - pysqlite_Connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1155
    functionName: pysqlite_connection_get_total_changes
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_total_changes
    - Py_BuildValue
    - pysqlite_check_connection
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_get_total_changes(pysqlite_Connection*
      self, void* unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1159,1
    - Dst: sqlite3_get_autocommit
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - pysqlite_Connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1166
    functionName: pysqlite_connection_get_in_transaction
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_get_autocommit
    - pysqlite_check_connection
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_get_in_transaction(pysqlite_Connection*
      self, void* unused)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1172,1
    - Dst: pysqlite_connection_commit
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1180,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1186,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1188,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1189,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1191,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1195,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1205,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1207,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1214,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - self
    - isolation_level
    - Py_UNUSED(ignored)
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1217
    functionName: pysqlite_connection_set_isolation_level
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyErr_Format
    - pysqlite_connection_commit
    - PyErr_SetString
    - Py_TYPE
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_set_isolation_level(pysqlite_Connection* self,
      PyObject* isolation_level, void *Py_UNUSED(ignored))
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1226,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1226,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1230,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1233,1
    - Dst: _pysqlite_drop_unused_statement_references
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1236,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1238,1
    - Dst: pysqlite_statement_create
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1252,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1254,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1255,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1257,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1258,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1263,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1275,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1277
    functionName: pysqlite_connection_call
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _pysqlite_seterror
    - pysqlite_check_connection
    - pysqlite_check_thread
    - pysqlite_statement_create
    - pysqlite_statement_reset
    - _PyArg_NoKeywords
    - PyList_Append
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _pysqlite_drop_unused_statement_references
    - PyArg_ParseTuple
    - PyWeakref_NewRef
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_call(pysqlite_Connection* self, PyObject*
      args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1285,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1290,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1292,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1296,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1298,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1302,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1303,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1306
    functionName: pysqlite_connection_execute
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_CLEAR
    - PyObject_GetAttrString
    - _PyObject_CallMethodId
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_execute(pysqlite_Connection* self, PyObject*
      args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1314,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1319,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1321,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1325,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1327,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1331,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1308
    functionDepth: 1
    functionLinenumber: 1308
    functionLinenumberEnd: 1335
    functionName: pysqlite_connection_executemany
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_CLEAR
    - PyObject_GetAttrString
    - _PyObject_CallMethodId
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_executemany(pysqlite_Connection* self,
      PyObject* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1343,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1348,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1350,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1354,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1356,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1360,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1364
    functionName: pysqlite_connection_executescript
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_CLEAR
    - PyObject_GetAttrString
    - _PyObject_CallMethodId
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_connection_executescript(pysqlite_Connection* self,
      PyObject* args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1381,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1383,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1387,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1388,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1394,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1401,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1402,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1403,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1414,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1415,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1416,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - context
    - text1_length
    - text1_data
    - text2_length
    - text2_data
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1419
    functionName: pysqlite_collation_callback
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyErr_Occurred
    - PyUnicode_FromStringAndSize
    - PyGILState_Release
    - PyObject_CallFunctionObjArgs
    - PyLong_AsLongAndOverflow
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int pysqlite_collation_callback(\n        void* context,\n        int
      text1_length, const void* text1_data,\n        int text2_length, const void*
      text2_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1426,1
    - Dst: sqlite3_interrupt
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1430,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1437
    functionName: pysqlite_connection_interrupt
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_interrupt
    - Py_INCREF
    - pysqlite_check_connection
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_interrupt(pysqlite_Connection* self, PyObject* args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1446,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1452,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1456,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1461,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1466,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1468,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1469,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1475,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1479,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1480,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1481,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1484,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1485,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1487
    functionName: pysqlite_connection_iterdump
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyImport_ImportModule
    - PyObject_CallObject
    - PyErr_Occurred
    - PyModule_GetDict
    - pysqlite_check_connection
    - Py_INCREF
    - Py_XDECREF
    - _Py_IDENTIFIER
    - PyErr_SetString
    - PyTuple_SetItem
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_iterdump(pysqlite_Connection* self, PyObject* args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1505,1
    - Dst: _PyTime_FromSecondsObject
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1513,1
    - Dst: _PyTime_AsMilliseconds
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1520,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1531,1
    - Dst: sqlite3_get_autocommit
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1538,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1539,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1544,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1545,1
    - Dst: sqlite3_backup_init
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1556,1
    - Dst: sqlite3_backup_step
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1562,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1568,1
    - Dst: sqlite3_backup_remaining
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1569,1
    - Dst: sqlite3_backup_pagecount
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1577,1
    - Dst: sqlite3_backup_finish
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1591,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1594,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1595
    functionName: pysqlite_connection_backup
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - sqlite3_backup_remaining
    - sqlite3_backup_step
    - PyCallable_Check
    - pysqlite_check_connection
    - sqlite3_backup_init
    - Py_DECREF
    - _pysqlite_seterror
    - sqlite3_get_autocommit
    - sqlite3_backup_pagecount
    - PyObject_CallFunction
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - sqlite3_backup_finish
    - _PyTime_FromSecondsObject
    - _PyTime_AsMilliseconds
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_backup(pysqlite_Connection *self, PyObject *args, PyObject
      *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_backup_step
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1562,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1568,1
    - Dst: sqlite3_backup_remaining
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1569,1
    - Dst: sqlite3_backup_pagecount
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1577,1
    - Dst: sqlite3_backup_finish
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1591,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1593
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 1
    functionsReached:
    - sqlite3_backup_remaining
    - Py_DECREF
    - sqlite3_backup_step
    - sqlite3_backup_pagecount
    - PyObject_CallFunction
    - sqlite3_backup_finish
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS if (bck_handle)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1650,1
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1656,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1656,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1660,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1665,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1671,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1673,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1674,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1675,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1677,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1684,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1689,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1693,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1694,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1699,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1702,1
    - Dst: sqlite3_create_collation
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1706,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1712,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1713,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1718,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1720,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1723,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1728
    functionName: pysqlite_connection_create_collation
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - pysqlite_check_connection
    - PyUnicode_AsUTF8
    - PyDict_DelItem
    - _Py_IDENTIFIER
    - PyDict_SetItem
    - PyUnicode_KIND
    - PyErr_Occurred
    - _pysqlite_seterror
    - Py_INCREF
    - pysqlite_check_thread
    - PyUnicode_DATA
    - Py_XDECREF
    - sqlite3_create_collation
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    - _PyObject_CallMethodIdObjArgs
    - PyCallable_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1737
    functionName: pysqlite_connection_enter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_enter(pysqlite_Connection* self, PyObject* args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1748,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1758,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1741
    functionDepth: 1
    functionLinenumber: 1741
    functionLinenumberEnd: 1765
    functionName: pysqlite_connection_exit
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallMethod
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_connection_exit(pysqlite_Connection* self, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/connection.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1888
    functionName: pysqlite_connection_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/connection.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int pysqlite_connection_setup_types(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:36,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:41,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:42,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:43,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:44,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:45,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:47,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:48,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:50,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:51,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:59,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:60,1
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:62,1
    - Dst: pysqlite_connection_register_cursor
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 73
    functionName: pysqlite_cursor_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_INCREF
    - Py_XSETREF
    - pysqlite_check_thread
    - pysqlite_connection_register_cursor
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject*
      kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:79,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:80,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:83,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:84,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:85,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:86,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:87,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:88,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:91,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: pysqlite_cursor_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - pysqlite_statement_reset
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void pysqlite_cursor_dealloc(pysqlite_Cursor* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:103,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:105,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:110,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:115,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - keystr
    - keylen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 119
    functionName: _pysqlite_get_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyUnicode_FromStringAndSize
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_get_converter(const char *keystr, Py_ssize_t keylen)'
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:134,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:134,1
    - Dst: sqlite3_column_count
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:139,1
    - Dst: sqlite3_column_name
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:143,1
    - Dst: _pysqlite_get_converter
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:151,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:152,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:153,1
    - Dst: sqlite3_column_decltype
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:163,1
    - Dst: if
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:170,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:172,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:173,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:186,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:187,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:217,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:244,1
    - Dst: sqlite3_data_count
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:249,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:252,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:259,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:261,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:268,1
    - Dst: sqlite3_column_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:271,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:274,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:278,1
    - Dst: sqlite3_column_type
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:282,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:285,1
    - Dst: _pysqlite_long_from_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:288,1
    - Dst: sqlite3_column_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:288,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:290,1
    - Dst: sqlite3_column_double
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:290,1
    - Dst: sqlite3_column_text
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:292,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:293,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:296,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:297,1
    - Dst: sqlite3_column_name
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:298,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:302,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:304,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:304,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:306,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:309,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:313,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:315,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:317,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:321,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:322,1
    - Dst: sqlite3_column_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:323,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:330,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:339,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 140
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 341
    functionName: pysqlite_build_row_cast_map
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_XSETREF
    - sqlite3_column_type
    - sqlite3_column_int64
    - PyList_New
    - PyByteArray_FromStringAndSize
    - sqlite3_column_bytes
    - if
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - sqlite3_data_count
    - Py_INCREF
    - PyList_GET_ITEM
    - strlen
    - PyObject_CallFunction
    - PyErr_ExceptionMatches
    - sqlite3_column_count
    - PyFloat_FromDouble
    - PyErr_Clear
    - sqlite3_column_blob
    - sqlite3_column_double
    - Py_DECREF
    - sqlite3_column_decltype
    - PyOS_snprintf
    - PyErr_SetObject
    - sqlite3_column_text
    - PyTuple_SetItem
    - PyTuple_New
    - PyUnicode_Decode
    - _pysqlite_get_converter
    - PyUnicode_FromStringAndSize
    - _pysqlite_long_from_int64
    - PyList_Append
    - PyErr_SetString
    - sqlite3_column_name
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int pysqlite_build_row_cast_map(pysqlite_Cursor* self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:217,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - colname
    argTypes:
    - pysqlite_Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 220
    functionName: _pysqlite_build_column_name
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyUnicode_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_build_column_name(pysqlite_Cursor *self, const char *colname)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:244,1
    - Dst: sqlite3_data_count
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:249,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:252,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:259,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:261,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:268,1
    - Dst: sqlite3_column_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:271,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:274,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:278,1
    - Dst: sqlite3_column_type
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:282,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:285,1
    - Dst: _pysqlite_long_from_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:288,1
    - Dst: sqlite3_column_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:288,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:290,1
    - Dst: sqlite3_column_double
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:290,1
    - Dst: sqlite3_column_text
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:292,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:293,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:296,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:297,1
    - Dst: sqlite3_column_name
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:298,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:302,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:304,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:304,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:306,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:309,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:313,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:315,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:317,1
    - Dst: sqlite3_column_bytes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:321,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:322,1
    - Dst: sqlite3_column_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:323,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:330,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 331
    functionName: _pysqlite_fetch_one_row
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_column_int64
    - PyByteArray_FromStringAndSize
    - sqlite3_column_bytes
    - PyBytes_FromStringAndSize
    - sqlite3_data_count
    - Py_INCREF
    - PyList_GET_ITEM
    - strlen
    - PyObject_CallFunction
    - PyErr_ExceptionMatches
    - PyFloat_FromDouble
    - PyErr_Clear
    - sqlite3_column_blob
    - sqlite3_column_double
    - Py_DECREF
    - PyOS_snprintf
    - PyErr_SetObject
    - sqlite3_column_text
    - PyTuple_SetItem
    - PyTuple_New
    - PyUnicode_Decode
    - PyUnicode_FromStringAndSize
    - _pysqlite_long_from_int64
    - PyErr_SetString
    - sqlite3_column_name
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_fetch_one_row(pysqlite_Cursor* self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:351,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:356,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:361,1
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:365,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - cur
    argTypes:
    - pysqlite_Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 366
    functionName: check_cursor
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_check_thread
    - PyErr_SetString
    - pysqlite_check_connection
    linkageType: ''
    returnType: int
    signature: int check_cursor(pysqlite_Cursor* cur)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:385,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:392,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:396,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:400,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:401,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:405,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:407,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:411,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:418,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:422,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:423,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:427,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:433,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:438,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:444,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:446,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:454,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:458,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:459,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:462,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:466,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:467,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:472,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:475,1
    - Dst: pysqlite_cache_get
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:476,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:477,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:484,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:485,1
    - Dst: pysqlite_statement_create
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:489,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:491,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:496,1
    - Dst: pysqlite_statement_mark_dirty
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:497,1
    - Dst: sqlite3_get_autocommit
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:502,1
    - Dst: _pysqlite_connection_begin
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:503,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:507,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:512,1
    - Dst: pysqlite_statement_mark_dirty
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:517,1
    - Dst: pysqlite_statement_bind_parameters
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:519,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:520,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:524,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:526,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:529,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:531,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:534,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:535,1
    - Dst: pysqlite_build_row_cast_map
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:539,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:540,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:544,1
    - Dst: sqlite3_column_count
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:546,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:549,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:549,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:554,1
    - Dst: _pysqlite_build_column_name
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:558,1
    - Dst: sqlite3_column_name
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:559,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:561,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:564,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:565,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:565,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:566,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:566,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:567,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:567,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:568,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:568,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:569,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:569,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:570,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:570,1
    - Dst: PyTuple_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:571,1
    - Dst: sqlite3_changes
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:582,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:584,1
    - Dst: _pysqlite_long_from_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:586,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:591,1
    - Dst: _pysqlite_fetch_one_row
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:595,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:599,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:600,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:604,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:606,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:610,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:611,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:612,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:616,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:620,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 219
    argCount: 3
    argNames:
    - self
    - multiple
    - args
    argTypes:
    - pysqlite_Cursor*
    - int
    - PyObject*
    assertStmts:
    - condition: (rc == SQLITE_ROW || rc == SQLITE_DONE)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 623
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 623
    functionName: _pysqlite_query_execute
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_XSETREF
    - pysqlite_statement_mark_dirty
    - _pysqlite_connection_begin
    - pysqlite_statement_create
    - pysqlite_build_row_cast_map
    - sqlite3_column_name
    - PyIter_Next
    - sqlite3_last_insert_rowid
    - _pysqlite_build_column_name
    - PyList_New
    - PyObject_GetIter
    - pysqlite_cache_get
    - pysqlite_step
    - PyObject_New
    - _pysqlite_fetch_one_row
    - PyErr_Occurred
    - _pysqlite_seterror
    - Py_INCREF
    - pysqlite_statement_reset
    - assert
    - PyErr_Clear
    - sqlite3_column_count
    - PyArg_ParseTuple
    - Py_XDECREF
    - _PyErr_FormatFromCause
    - PyErr_Print
    - Py_DECREF
    - check_cursor
    - sqlite3_get_autocommit
    - sqlite3_changes
    - PyTuple_SetItem
    - PyTuple_New
    - Py_SETREF
    - PyIter_Check
    - _pysqlite_long_from_int64
    - PyList_Append
    - pysqlite_statement_bind_parameters
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject* args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_query_execute
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 628
    functionName: pysqlite_cursor_execute
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_execute(pysqlite_Cursor* self, PyObject*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pysqlite_query_execute
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 630
    functionDepth: 4
    functionLinenumber: 630
    functionLinenumberEnd: 633
    functionName: pysqlite_cursor_executemany
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_query_execute
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_executemany(pysqlite_Cursor* self, PyObject*
      args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:645,1
    - Dst: check_cursor
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:649,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:655,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:656,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:661,1
    - Dst: pysqlite_connection_commit
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:670,1
    - Dst: sqlite3_prepare_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:674,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:681,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:688,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:689,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:690,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:696,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:697,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:701,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:703,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:713,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:715,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:718,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 721
    functionName: pysqlite_cursor_executescript
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - check_cursor
    - _pysqlite_seterror
    - Py_INCREF
    - PyUnicode_AsUTF8
    - sqlite3_finalize
    - pysqlite_connection_commit
    - PyErr_SetString
    - PyUnicode_Check
    - sqlite3_prepare_v2
    - Py_XDECREF
    - PyArg_ParseTuple
    - pysqlite_step
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_cursor_executescript(pysqlite_Cursor* self, PyObject* args)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: check_cursor
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:729,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:734,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:740,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:741,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:747,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:751,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:756,1
    - Dst: pysqlite_step
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:762,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:763,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:764,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:765,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:770,1
    - Dst: _pysqlite_seterror
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:771,1
    - Dst: _pysqlite_fetch_one_row
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:776,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:778,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cursor*
    assertStmts:
    - condition: (next_row_tuple != NULL)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    constantsTouched: []
    func_position:
      end: 785
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 785
    functionName: pysqlite_cursor_iternext
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - _pysqlite_fetch_one_row
    - Py_CLEAR
    - Py_DECREF
    - check_cursor
    - PyErr_Occurred
    - _pysqlite_seterror
    - pysqlite_statement_reset
    - PyObject_CallFunction
    - PyErr_SetString
    - assert
    - pysqlite_step
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_iternext(pysqlite_Cursor *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pysqlite_cursor_iternext
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:791,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 787
    functionDepth: 4
    functionLinenumber: 787
    functionLinenumberEnd: 797
    functionName: pysqlite_cursor_fetchone
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_iternext
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_fetchone(pysqlite_Cursor* self, PyObject*
      args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:808,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:812,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:821,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:824,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:834,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:835,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 840
    functionName: pysqlite_cursor_fetchmany
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_iternext
    - PyErr_Occurred
    - Py_DECREF
    - PyList_Append
    - PyArg_ParseTupleAndKeywords
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_fetchmany(pysqlite_Cursor* self, PyObject*
      args, PyObject* kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:847,1
    - Dst: pysqlite_cursor_iternext
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:856,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:858,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:859,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:863,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 869
    functionName: pysqlite_cursor_fetchall
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - pysqlite_cursor_iternext
    - PyErr_Occurred
    - Py_DECREF
    - PyList_Append
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_fetchall(pysqlite_Cursor* self, PyObject*
      args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 875
    functionName: pysqlite_noop
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_noop(pysqlite_Connection* self, PyObject* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:880,1
    - Dst: pysqlite_check_thread
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:884,1
    - Dst: pysqlite_check_connection
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:884,1
    - Dst: pysqlite_statement_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:889,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 896
    functionName: pysqlite_cursor_close
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - pysqlite_check_connection
    - pysqlite_statement_reset
    - pysqlite_check_thread
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cursor_close(pysqlite_Cursor* self, PyObject* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/cursor.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 980
    functionName: pysqlite_cursor_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cursor.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int pysqlite_cursor_setup_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:29,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:30,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Row*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: pysqlite_row_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pysqlite_row_dealloc(pysqlite_Row* self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:42,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:44,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:46,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:49,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:50,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:54,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:55,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:59,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:63,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_sqlite/row.c
    constantsTouched: []
    func_position:
      end: 70
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 70
    functionName: pysqlite_row_new
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - PyObject_TypeCheck
    - _PyArg_NoKeywords
    - PyTuple_Check
    - PyErr_SetString
    - assert
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_row_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:74,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - pysqlite_Row*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: pysqlite_row_item
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_row_item(pysqlite_Row* self, Py_ssize_t idx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:82,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:86,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:86,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:89,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:89,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:93,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:94,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:97,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:98,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:100,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 105
    functionName: equal_ignore_case
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - PyUnicode_IS_ASCII
    - PyObject_RichCompareBool
    - PyUnicode_1BYTE_DATA
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int equal_ignore_case(PyObject *left, PyObject *right)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:113,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:114,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:115,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:118,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:119,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:120,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:122,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:123,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:127,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:128,1
    - Dst: equal_ignore_case
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:129,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:135,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:136,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:141,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:144,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:145,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - self
    - idx
    argTypes:
    - pysqlite_Row*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 151
    functionName: pysqlite_row_subscript
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - equal_ignore_case
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PySlice_Check
    - Py_XINCREF
    - PyObject_GetItem
    - PyTuple_Size
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GetItem
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Row*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pysqlite_row_length
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t pysqlite_row_length(pysqlite_Row* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:164,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:168,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:171,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:171,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - pysqlite_Row*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: pysqlite_row_keys
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Append
    - PyTuple_Size
    - PyList_New
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_row_keys(pysqlite_Row* self, PyObject *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Row*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: pysqlite_iter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_iter(pysqlite_Row* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:187,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Row*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: pysqlite_row_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pysqlite_row_hash(pysqlite_Row *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:195,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:197,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:202,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - _other
    - opid
    argTypes:
    - pysqlite_Row*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: pysqlite_row_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_row_richcompare(pysqlite_Row *self, PyObject *_other,
      int opid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/row.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: pysqlite_row_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/row.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int pysqlite_row_setup_types(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - statement
    - connection
    argTypes:
    - sqlite3_stmt*
    - pysqlite_Connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 42
    functionName: pysqlite_step
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/util.c
    functionUses: 6
    functionsReached:
    - sqlite3_step
    linkageType: ''
    returnType: int
    signature: int pysqlite_step(sqlite3_stmt* statement, pysqlite_Connection* connection)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_errcode
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:50,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:55,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:59,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:59,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:62,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:77,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:77,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:80,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:80,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:83,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:83,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:87,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:87,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:90,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:90,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:93,1
    - Dst: sqlite3_errmsg
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - db
    - st
    argTypes:
    - sqlite3*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 98
    functionName: _pysqlite_seterror
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/util.c
    functionUses: 11
    functionsReached:
    - sqlite3_errcode
    - PyErr_NoMemory
    - PyErr_SetString
    - sqlite3_errmsg
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _pysqlite_seterror(sqlite3* db, sqlite3_stmt* st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:111,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:117,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:119,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: _pysqlite_long_from_int64
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/util.c
    functionUses: 4
    functionsReached:
    - PyLong_FromLong
    - _PyLong_FromByteArray
    - Py_SAFE_DOWNCAST
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pysqlite_long_from_int64(sqlite_int64 value)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:126,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:127,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:137,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/util.c:143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - py_val
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 146
    functionName: _pysqlite_long_as_int64
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/util.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLongLongAndOverflow
    - PyErr_SetString
    - PyErr_Occurred
    - _PyLong_AsByteArray
    linkageType: ''
    returnType: sqlite_int64
    signature: sqlite_int64 _pysqlite_long_as_int64(PyObject * py_val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:76,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:88,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 95
    functionName: module_connect
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PySys_Audit
    - PyObject_Call
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * module_connect(PyObject* self, PyObject* args, PyObject*\n
      \       kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:113,1
    - Dst: sqlite3_complete
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:118,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: module_complete
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - sqlite3_complete
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * module_complete(PyObject* self, PyObject* args, PyObject*\n
      \       kwargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:142,1
    - Dst: sqlite3_enable_shared_cache
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:147,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: module_enable_shared_cache
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - sqlite3_enable_shared_cache
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * module_enable_shared_cache(PyObject* self, PyObject* args,
      PyObject*\n        kwargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:170,1
    - Dst: pysqlite_microprotocols_add
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:181,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 186
    functionName: module_register_adapter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - pysqlite_microprotocols_add
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * module_register_adapter(PyObject* self, PyObject* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:199,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:201,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:206,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:211,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:215,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: module_register_converter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyDict_SetItem
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * module_register_converter(PyObject* self, PyObject* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: enable_callback_tracebacks
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * enable_callback_tracebacks(PyObject* self, PyObject* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:243,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 249
    functionName: converters_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: void
    signature: void converters_init(PyObject* dict)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:355,1
    - Dst: pysqlite_row_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:358,1
    - Dst: pysqlite_cursor_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:359,1
    - Dst: pysqlite_connection_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:360,1
    - Dst: pysqlite_cache_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:361,1
    - Dst: pysqlite_statement_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:362,1
    - Dst: pysqlite_prepare_protocol_setup_types
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:363,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:365,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:369,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:370,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:371,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:372,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:373,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:374,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:375,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:376,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:378,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:384,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:387,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:389,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:392,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:396,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:399,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:401,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:404,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:408,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:411,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:413,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:416,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:418,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:421,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:423,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:426,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:428,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:431,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:433,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:436,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:443,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:444,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:448,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:453,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:456,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:459,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:460,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:462,1
    - Dst: sqlite3_libversion
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:462,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:466,1
    - Dst: pysqlite_microprotocols_init
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:469,1
    - Dst: converters_init
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:472,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:475,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:477,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/module.c:478,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 482
    functionName: PyInit__sqlite3
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/module.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - pysqlite_cache_setup_types
    - PyModule_GetDict
    - pysqlite_connection_setup_types
    - PyErr_NewException
    - pysqlite_microprotocols_init
    - PyErr_Occurred
    - Py_INCREF
    - PyModule_Create
    - converters_init
    - sqlite3_libversion
    - Py_XDECREF
    - PyUnicode_FromString
    - Py_DECREF
    - pysqlite_row_setup_types
    - pysqlite_cursor_setup_types
    - PyModule_AddObject
    - pysqlite_prepare_protocol_setup_types
    - PyErr_SetString
    - pysqlite_statement_setup_types
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__sqlite3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_PrepareProtocol*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: pysqlite_prepare_protocol_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pysqlite_prepare_protocol_init(pysqlite_PrepareProtocol* self,
      PyObject* args, PyObject* kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_PrepareProtocol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: pysqlite_prepare_protocol_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pysqlite_prepare_protocol_dealloc(pysqlite_PrepareProtocol* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c:81,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: pysqlite_prepare_protocol_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int pysqlite_prepare_protocol_setup_types(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:62,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:67,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:68,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:73,1
    - Dst: PyOS_strnicmp
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:88,1
    - Dst: PyOS_strnicmp
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:89,1
    - Dst: PyOS_strnicmp
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:90,1
    - Dst: PyOS_strnicmp
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:91,1
    - Dst: sqlite3_prepare_v2
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:96,1
    - Dst: pysqlite_check_remaining_sql
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:105,1
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:106,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - self
    - connection
    - sql
    argTypes:
    - pysqlite_Statement*
    - pysqlite_Connection*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 112
    functionName: pysqlite_statement_create
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 2
    functionsReached:
    - sqlite3_prepare_v2
    - pysqlite_check_remaining_sql
    - PyOS_strnicmp
    - Py_INCREF
    - sqlite3_finalize
    - strlen
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection*
      connection, PyObject* sql)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_null
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:122,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:126,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:128,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:130,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:132,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:134,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:136,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:138,1
    - Dst: _pysqlite_long_as_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:146,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:147,1
    - Dst: sqlite3_bind_int64
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:150,1
    - Dst: sqlite3_bind_double
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:154,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:154,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:157,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:161,1
    - Dst: sqlite3_bind_text
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:165,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:170,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:174,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:176,1
    - Dst: sqlite3_bind_blob
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:179,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:180,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 3
    argNames:
    - self
    - pos
    - parameter
    argTypes:
    - pysqlite_Statement*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 189
    functionName: pysqlite_statement_bind_parameter
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int64
    - PyObject_CheckBuffer
    - _pysqlite_long_as_int64
    - sqlite3_bind_null
    - sqlite3_bind_blob
    - PyUnicode_CheckExact
    - PyFloat_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyLong_Check
    - sqlite3_bind_double
    - sqlite3_bind_text
    - PyLong_CheckExact
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - PyFloat_CheckExact
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_bind_parameter(pysqlite_Statement* self, int
      pos, PyObject* parameter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:198,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:198,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:199,1
    - Dst: PyByteArray_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: _need_adapt
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - PyFloat_CheckExact
    - PyUnicode_CheckExact
    - PyByteArray_CheckExact
    linkageType: ''
    returnType: int
    signature: int _need_adapt(PyObject* obj)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_parameter_count
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:217,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:220,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:220,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:220,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:220,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:222,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:223,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:224,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:225,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:227,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:230,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:237,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:238,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:239,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:240,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:241,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:242,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:244,1
    - Dst: _need_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:250,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:254,1
    - Dst: pysqlite_statement_bind_parameter
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:260,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:261,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:264,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:265,1
    - Dst: sqlite3_bind_parameter_name
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:275,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:278,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:283,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:287,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:288,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:289,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:293,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:295,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:296,1
    - Dst: _need_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:301,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:305,1
    - Dst: pysqlite_statement_bind_parameter
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:312,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:315,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:316,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:322,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 2
    argNames:
    - self
    - parameters
    argTypes:
    - pysqlite_Statement*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 324
    functionName: pysqlite_statement_bind_parameters
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached:
    - sqlite3_bind_parameter_name
    - PyTuple_GET_SIZE
    - PyDict_CheckExact
    - pysqlite_microprotocols_adapt
    - sqlite3_bind_parameter_count
    - PySequence_Check
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyList_GET_ITEM
    - PyObject_GetItem
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyUnicode_FromString
    - Py_DECREF
    - PySequence_Size
    - _need_adapt
    - PyDict_Check
    - pysqlite_statement_bind_parameter
    - PyTuple_CheckExact
    - PyList_CheckExact
    - PySequence_GetItem
    - PyErr_SetString
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void pysqlite_statement_bind_parameters(pysqlite_Statement* self, PyObject*
      parameters)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_parameter_name
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:275,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:278,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:283,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:287,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:288,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:289,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:293,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:295,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:296,1
    - Dst: _need_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:301,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:305,1
    - Dst: pysqlite_statement_bind_parameter
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:312,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:315,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:316,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 321
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - sqlite3_bind_parameter_name
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyErr_Occurred
    - _need_adapt
    - pysqlite_statement_bind_parameter
    - PyObject_GetItem
    - PyDict_CheckExact
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_XINCREF
    - pysqlite_microprotocols_adapt
    linkageType: ''
    returnType: else
    signature: else if (PyDict_Check(parameters))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 341
    functionName: pysqlite_statement_finalize
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached:
    - sqlite3_finalize
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_finalize(pysqlite_Statement* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 360
    functionName: pysqlite_statement_reset
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 6
    functionsReached:
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_reset(pysqlite_Statement* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: pysqlite_statement_mark_dirty
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pysqlite_statement_mark_dirty(pysqlite_Statement* self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:377,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:380,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Statement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 384
    functionName: pysqlite_statement_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void pysqlite_statement_dealloc(pysqlite_Statement* self)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 1
    argNames:
    - tail
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 454
    functionName: pysqlite_check_remaining_sql
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pysqlite_check_remaining_sql(const char* tail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/statement.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: pysqlite_statement_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/statement.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int pysqlite_statement_setup_types(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:44,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: pysqlite_microprotocols_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c
    functionUses: 1
    functionsReached:
    - PyDict_SetItemString
    - PyDict_New
    linkageType: ''
    returnType: int
    signature: int pysqlite_microprotocols_init(PyObject *dict)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:62,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:67,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - type
    - proto
    - cast
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: pysqlite_microprotocols_add
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c
    functionUses: 1
    functionsReached:
    - Py_BuildValue
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int pysqlite_microprotocols_add(PyTypeObject *type, PyObject *proto,
      PyObject *cast)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:78,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:79,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:87,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:91,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:92,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:94,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:95,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:96,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:99,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:104,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:112,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:114,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:118,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:123,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:127,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:131,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:133,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:137,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:146,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 3
    argNames:
    - obj
    - proto
    - alt
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 148
    functionName: pysqlite_microprotocols_adapt
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c
    functionUses: 2
    functionsReached:
    - PyDict_GetItemWithError
    - Py_BuildValue
    - Py_DECREF
    - PyErr_Occurred
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:158,1
    - Dst: pysqlite_microprotocols_adapt
      Src: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cursor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: pysqlite_adapt
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - pysqlite_microprotocols_adapt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pysqlite_adapt(pysqlite_Cursor *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tp_alloc
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:32,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:37,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - key
    - data
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: pysqlite_new_node
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 0
    functionsReached:
    - tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: pysqlite_Node
    signature: pysqlite_Node * pysqlite_new_node(PyObject* key, PyObject* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:51,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:52,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: pysqlite_node_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void pysqlite_node_dealloc(pysqlite_Node* self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:64,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:76,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - pysqlite_Cache*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 87
    functionName: pysqlite_cache_init
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PyArg_ParseTuple
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int pysqlite_cache_init(pysqlite_Cache* self, PyObject* args, PyObject*
      kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:110,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - pysqlite_Cache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 113
    functionName: pysqlite_cache_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void pysqlite_cache_dealloc(pysqlite_Cache* self)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:122,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:161,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:169,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:173,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:183,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:187,1
    - Dst: pysqlite_new_node
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:199,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:201,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:202,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:214,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cache*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 216
    functionName: pysqlite_cache_get
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyDict_DelItem
    - PyObject_CallFunction
    - PyDict_SetItem
    - pysqlite_new_node
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cache_get(pysqlite_Cache* self, PyObject* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:240,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - pysqlite_Cache*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: pysqlite_cache_display
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 0
    functionsReached:
    - PyObject_Print
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: PyObject * pysqlite_cache_display(pysqlite_Cache* self, PyObject* args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:353,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_sqlite/cache.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 360
    functionName: pysqlite_cache_setup_types
    functionSourceFile: /src/Python-3.8.3/Modules/_sqlite/cache.c
    functionUses: 1
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int pysqlite_cache_setup_types(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:25,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:30,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:30,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:37,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:41,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:46,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - Type
    - num
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 50
    functionName: _PyMp_SetError
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - WSAGetLastError
    - PyErr_NoMemory
    - PyErr_SetFromErrno
    - PyErr_Format
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMp_SetError(PyObject *Type, int num)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:59,1
    - Dst: closesocket
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:63,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:67,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: multiprocessing_closesocket
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyErr_SetExcFromWindowsErr
    - closesocket
    - PyArg_ParseTuple
    - WSAGetLastError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiprocessing_closesocket(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:78,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:81,1
    - Dst: recv
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:86,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:86,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:90,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:91,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:91,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: multiprocessing_recv
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - WSAGetLastError
    - _PyBytes_Resize
    - recv
    - PyBytes_AS_STRING
    - PyErr_SetExcFromWindowsErr
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiprocessing_recv(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:104,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:107,1
    - Dst: send
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:110,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:115,1
    - Dst: WSAGetLastError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:115,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: multiprocessing_send
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - WSAGetLastError
    - send
    - PyErr_SetExcFromWindowsErr
    - Py_MIN
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiprocessing_send(PyObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:161,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:168,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:170,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:179,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:181,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:184,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:187,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:191,1
    - Dst: ADD_FLAG
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:203,1
    - Dst: ADD_FLAG
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:206,1
    - Dst: ADD_FLAG
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:209,1
    - Dst: ADD_FLAG
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:212,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c:215,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 219
    functionName: PyInit__multiprocessing
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - ADD_FLAG
    - PyType_Ready
    - Py_INCREF
    - PyModule_Create
    - PyDict_New
    - PyModule_AddObject
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__multiprocessing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: ADD_FLAG
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_FLAG(name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:46,1
    - Dst: shm_open
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:52,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:54,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - module
    - path
    - flags
    - mode
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: _posixshmem_shm_open_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - shm_open
    - PyUnicode_AsUTF8
    - PyErr_SetFromErrnoWithFilenameObject
    - PyErr_CheckSignals
    linkageType: ''
    returnType: int
    signature: "int _posixshmem_shm_open_impl(PyObject *module, PyObject *path, int
      flags,\n                          int mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:85,1
    - Dst: shm_unlink
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:91,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:93,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - module
    - path
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 102
    functionName: _posixshmem_shm_unlink_impl
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyErr_SetFromErrnoWithFilenameObject
    - shm_unlink
    - PyErr_CheckSignals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_unlink_impl(PyObject *module, PyObject *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: PyInit__posixshmem
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__posixshmem(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: ISMINE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISMINE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: SEM_CLEAR_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_CLEAR_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: SEM_GET_LAST_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_GET_LAST_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - val
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: SEM_CREATE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_CREATE(name, val, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: SEM_CLOSE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_CLOSE(sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sem
    - ','
    - pval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: SEM_GETVALUE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_GETVALUE(sem, pval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: SEM_UNLINK
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_UNLINK(name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:47,1
    - Dst: ReleaseSemaphore
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - value
    argTypes:
    - HANDLE
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: _GetSemaphoreValue
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObjectEx
    - ReleaseSemaphore
    linkageType: ''
    returnType: int
    signature: int _GetSemaphoreValue(HANDLE handle, long *value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:72,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:82,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:83,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:89,1
    - Dst: ISMINE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:97,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:103,1
    - Dst: GetCurrentThreadId
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:104,1
    - Dst: _PyOS_IsMainThread
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:112,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:113,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:114,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:124,1
    - Dst: WaitForMultipleObjectsEx
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:125,1
    - Dst: GetCurrentThreadId
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:133,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:138,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:140,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - SemLockObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (sigint_event != NULL)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 147
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 147
    functionName: semlock_acquire
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - WaitForSingleObjectEx
    - PyErr_Occurred
    - PyErr_SetFromErrno
    - GetCurrentThreadId
    - ResetEvent
    - ISMINE
    - WaitForMultipleObjectsEx
    - PyErr_SetString
    - _PyOS_IsMainThread
    - PyArg_ParseTupleAndKeywords
    - assert
    - _PyOS_SigintEvent
    - PyErr_Format
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:133,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:138,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:140,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: switch
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErr
    - PyErr_Format
    - PyErr_SetFromErrno
    - GetCurrentThreadId
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: Py_END_ALLOW_THREADS switch (res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISMINE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:153,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:154,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:163,1
    - Dst: ReleaseSemaphore
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:166,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:167,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:168,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 178
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 178
    functionName: semlock_release
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - ISMINE
    - PyErr_SetString
    - assert
    - PyErr_SetFromWindowsErr
    - ReleaseSemaphore
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_release(SemLockObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: SEM_GET_LAST_ERROR
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_GET_LAST_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - val
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: SEM_CREATE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_CREATE(name, val, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: SEM_CLOSE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_CLOSE(sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sem
    - ','
    - pval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: SEM_GETVALUE
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_GETVALUE(sem, pval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: SEM_UNLINK
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEM_UNLINK(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: sem_unlink
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_unlink(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sem
    - ','
    - deadline
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: sem_timedwait
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sem_timedwait(sem,deadline)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:220,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:226,1
    - Dst: select
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:250,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - sem
    - deadline
    - _save
    argTypes:
    - sem_t*
    - struct timespec*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 263
    functionName: sem_timedwait_save
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_trywait
    - select
    - gettimeofday
    - PyErr_CheckSignals
    linkageType: ''
    returnType: int
    signature: int sem_timedwait_save(sem_t *sem, struct timespec *deadline, PyThreadState
      *_save)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_UNBLOCK_THREADS
    signature: Py_UNBLOCK_THREADS if (res)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:279,1
    - Dst: ISMINE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:283,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:289,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:290,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:295,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:296,1
    - Dst: sem_trywait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:309,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:311,1
    - Dst: sem_wait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:319,1
    - Dst: sem_timedwait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:322,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:328,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:338,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:342,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - SemLockObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 345
    functionName: semlock_acquire
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - sem_timedwait
    - PyErr_CheckSignals
    - gettimeofday
    - PyErr_SetFromErrno
    - sem_trywait
    - ISMINE
    - PyThread_get_thread_ident
    - PyArg_ParseTupleAndKeywords
    - sem_wait
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_acquire(SemLockObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ISMINE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:351,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:352,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:361,1
    - Dst: sem_trywait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:367,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:369,1
    - Dst: sem_post
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:375,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:376,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:379,1
    - Dst: sem_getvalue
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:390,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:391,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:393,1
    - Dst: sem_post
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:400,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts:
    - condition: (self->count == 1)
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    constantsTouched: []
    func_position:
      end: 405
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 405
    functionName: semlock_release
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_post
    - PyErr_SetFromErrno
    - sem_trywait
    - sem_getvalue
    - ISMINE
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_release(SemLockObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - type
    - handle
    - kind
    - maxvalue
    - name
    argTypes:
    - PyTypeObject*
    - SEM_HANDLE
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 429
    functionName: newsemlockobject
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nnewsemlockobject(PyTypeObject *type, SEM_HANDLE handle,
      int kind, int maxvalue,\n                 char *name)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:446,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:451,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:451,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:453,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:455,1
    - Dst: SEM_CLEAR_ERROR
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:458,1
    - Dst: SEM_CREATE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:459,1
    - Dst: SEM_GET_LAST_ERROR
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:461,1
    - Dst: SEM_UNLINK
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:464,1
    - Dst: newsemlockobject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:467,1
    - Dst: SEM_CLOSE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:475,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:476,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:477,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:478,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 481
    functionName: semlock_new
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyMem_Malloc
    - PyErr_Occurred
    - SEM_CLEAR_ERROR
    - PyErr_NoMemory
    - SEM_UNLINK
    - SEM_CREATE
    - _PyMp_SetError
    - strlen
    - newsemlockobject
    - SEM_CLOSE
    - PyMem_Free
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - SEM_GET_LAST_ERROR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:490,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:495,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:495,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:497,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:498,1
    - Dst: sem_open
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:503,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:505,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:506,1
    - Dst: newsemlockobject
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - type
    - args
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 512
    functionName: semlock_rebuild
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyErr_NoMemory
    - sem_open
    - PyErr_SetFromErrno
    - strlen
    - newsemlockobject
    - PyMem_Free
    - PyMem_Malloc
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_rebuild(PyTypeObject *type, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEM_CLOSE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:518,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:519,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - SemLockObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: semlock_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - SEM_CLOSE
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void semlock_dealloc(SemLockObject* self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: semlock_count
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_count(SemLockObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:533,1
    - Dst: ISMINE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: semlock_ismine
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - ISMINE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_ismine(SemLockObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:540,1
    - Dst: SEM_GETVALUE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:544,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:545,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 552
    functionName: semlock_getvalue
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyMp_SetError
    - SEM_GETVALUE
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_getvalue(SemLockObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:558,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:561,1
    - Dst: sem_post
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:563,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:564,1
    - Dst: SEM_GETVALUE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:569,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:570,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 573
    functionName: semlock_iszero
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - sem_post
    - _PyMp_SetError
    - sem_trywait
    - PyBool_FromLong
    - SEM_GETVALUE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_iszero(SemLockObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SemLockObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: semlock_afterfork
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      semlock_afterfork(SemLockObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:680,1
    - Dst: SEM_UNLINK
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:683,1
    - Dst: _PyMp_SetError
      Src: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ignore
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 689
    functionName: _PyMp_sem_unlink
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    functionUses: 0
    functionsReached:
    - SEM_UNLINK
    - PyArg_ParseTuple
    - _PyMp_SetError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyMp_sem_unlink(PyObject *ignore, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:27,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:33,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:37,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:38,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:41,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:46,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:50,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:51,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:57,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:58,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:62,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:63,1
    - Dst: _posixshmem_shm_open_impl
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:67,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:68,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:71,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 20
    functionDepth: 4
    functionLinenumber: 20
    functionLinenumberEnd: 75
    functionName: _posixshmem_shm_open
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READY
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - _posixshmem_shm_open_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:106,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:110,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:111,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:114,1
    - Dst: _posixshmem_shm_unlink_impl
      Src: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: _posixshmem_shm_unlink
    functionSourceFile: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_BadArgument
    - _posixshmem_shm_unlink_impl
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _posixshmem_shm_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:26,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:27,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:31,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:32,1
    - Dst: signal_alarm_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:35,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:36,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:39,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: signal_alarm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - signal_alarm_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_alarm(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_pause_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: signal_pause
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_pause_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pause(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:87,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:88,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:92,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:93,1
    - Dst: signal_raise_signal_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: signal_raise_signal
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - signal_raise_signal_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_raise_signal(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:128,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:131,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:132,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:136,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:137,1
    - Dst: signal_signal_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: signal_signal
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - signal_signal_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_signal(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:172,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:177,1
    - Dst: signal_getsignal_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: signal_getsignal
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_getsignal_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getsignal(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:207,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:208,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:212,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:213,1
    - Dst: signal_strsignal_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 220
    functionName: signal_strsignal
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_strsignal_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_strsignal(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:246,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:250,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:254,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:255,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:258,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:259,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:263,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:264,1
    - Dst: signal_siginterrupt_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:267,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 271
    functionName: signal_siginterrupt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - signal_siginterrupt_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_siginterrupt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:303,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:306,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:307,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:311,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:312,1
    - Dst: signal_setitimer_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 325
    functionName: signal_setitimer
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - signal_setitimer_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_setitimer(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:349,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:350,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:354,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:355,1
    - Dst: signal_getitimer_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 362
    functionName: signal_getitimer
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_getitimer_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_getitimer(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:387,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:390,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:391,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:395,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:396,1
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:399,1
    - Dst: signal_pthread_sigmask_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:402,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 406
    functionName: signal_pthread_sigmask
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _Py_Sigset_Converter
    - signal_pthread_sigmask_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pthread_sigmask(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_sigpending_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: signal_sigpending
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_sigpending_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigpending(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:459,1
    - Dst: signal_sigwait_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: signal_sigwait
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_sigwait_impl
    - _Py_Sigset_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwait(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_valid_signals_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 491
    functionName: signal_valid_signals
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_valid_signals_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_valid_signals(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:517,1
    - Dst: signal_sigwaitinfo_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 511
    functionDepth: 4
    functionLinenumber: 511
    functionLinenumberEnd: 524
    functionName: signal_sigwaitinfo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - signal_sigwaitinfo_impl
    - _Py_Sigset_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigwaitinfo(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:552,1
    - Dst: _Py_Sigset_Converter
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:555,1
    - Dst: signal_sigtimedwait_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: signal_sigtimedwait
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - signal_sigtimedwait_impl
    - _Py_Sigset_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_sigtimedwait(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:589,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:592,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:593,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:596,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:598,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:602,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:603,1
    - Dst: signal_pthread_kill_impl
      Src: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h:606,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 610
    functionName: signal_pthread_kill
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyErr_SetString
    - signal_pthread_kill_impl
    - PyLong_AsUnsignedLongMask
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signal_pthread_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:26,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:30,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:33,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:34,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:38,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:42,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:43,1
    - Dst: _symtable_symtable_impl
      Src: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h:46,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 50
    functionName: _symtable_symtable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSDecoder
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _symtable_symtable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _symtable_symtable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:22,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:23,1
    - Dst: _elementtree_Element_append_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: _elementtree_Element_append
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_append_impl
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_append(ElementObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_clear_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: _elementtree_Element_clear
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_clear(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: _elementtree_Element___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___copy__(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:84,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:85,1
    - Dst: _elementtree_Element___deepcopy___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: _elementtree_Element___deepcopy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyDict_Check
    - _elementtree_Element___deepcopy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___deepcopy__(ElementObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element___sizeof___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:112,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:113,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 120
    functionName: _elementtree_Element___sizeof__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _elementtree_Element___sizeof___impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___sizeof__(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element___getstate___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: _elementtree_Element___getstate__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element___getstate___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element___getstate__(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:174,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:178,1
    - Dst: _elementtree_Element_find_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: _elementtree_Element_find
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_find_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_find(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:214,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:219,1
    - Dst: _elementtree_Element_findtext_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 239
    functionName: _elementtree_Element_findtext
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_findtext_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_findtext(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:260,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:264,1
    - Dst: _elementtree_Element_findall_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: _elementtree_Element_findall
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_findall_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_findall(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:299,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:303,1
    - Dst: _elementtree_Element_iterfind_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 317
    functionName: _elementtree_Element_iterfind
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_iterfind_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_iterfind(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:338,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:342,1
    - Dst: _elementtree_Element_get_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 356
    functionName: _elementtree_Element_get
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_get_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_get(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_getchildren_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: _elementtree_Element_getchildren
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_getchildren_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_getchildren(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:393,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:396,1
    - Dst: _elementtree_Element_iter_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 409
    functionName: _elementtree_Element_iter
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_iter_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_iter(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:429,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:432,1
    - Dst: _elementtree_Element_getiterator_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 445
    functionName: _elementtree_Element_getiterator
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_getiterator_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_getiterator(ElementObject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_itertext_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: _elementtree_Element_itertext
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_itertext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_itertext(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:483,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:486,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:487,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:493,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:495,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:496,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:498,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:503,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:504,1
    - Dst: _elementtree_Element_insert_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:508,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 476
    functionDepth: 4
    functionLinenumber: 476
    functionLinenumberEnd: 512
    functionName: _elementtree_Element_insert
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _elementtree_Element_insert_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_insert(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_items_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: _elementtree_Element_items
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_items_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_items(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_Element_keys_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: _elementtree_Element_keys
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_keys(ElementObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:567,1
    - Dst: _elementtree_Element_makeelement_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 576
    functionName: _elementtree_Element_makeelement
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_Element_makeelement_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_makeelement(ElementObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:595,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:596,1
    - Dst: _elementtree_Element_remove_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - ElementObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 604
    functionName: _elementtree_Element_remove
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_Element_remove_impl
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_remove(ElementObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:625,1
    - Dst: _elementtree_Element_set_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - ElementObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 634
    functionName: _elementtree_Element_set
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_Element_set_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_Element_set(ElementObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:651,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:652,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:659,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:659,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:689,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:697,1
    - Dst: _elementtree_TreeBuilder___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:702,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 706
    functionName: _elementtree_TreeBuilder___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _elementtree_TreeBuilder___init___impl
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:730,1
    - Dst: _elementtree__set_factories_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 739
    functionName: _elementtree__set_factories
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree__set_factories_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree__set_factories(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:784,1
    - Dst: _elementtree_TreeBuilder_pi_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:793,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TreeBuilderObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 777
    functionDepth: 7
    functionLinenumber: 777
    functionLinenumberEnd: 797
    functionName: _elementtree_TreeBuilder_pi
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_TreeBuilder_pi_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_pi(TreeBuilderObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_TreeBuilder_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TreeBuilderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: _elementtree_TreeBuilder_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_TreeBuilder_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_close(TreeBuilderObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:835,1
    - Dst: _elementtree_TreeBuilder_start_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TreeBuilderObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 828
    functionDepth: 7
    functionLinenumber: 828
    functionLinenumberEnd: 848
    functionName: _elementtree_TreeBuilder_start
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_TreeBuilder_start_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_TreeBuilder_start(TreeBuilderObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:862,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:863,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:867,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:867,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:883,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:885,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:889,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:890,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:895,1
    - Dst: _elementtree_XMLParser___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:899,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 854
    functionDepth: 3
    functionLinenumber: 854
    functionLinenumberEnd: 903
    functionName: _elementtree_XMLParser___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser___init___impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: int
    signature: int _elementtree_XMLParser___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _elementtree_XMLParser_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - XMLParserObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 920
    functionName: _elementtree_XMLParser_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _elementtree_XMLParser_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser_close(XMLParserObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:958,1
    - Dst: _elementtree_XMLParser__setevents_impl
      Src: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h:967,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - XMLParserObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 971
    functionName: _elementtree_XMLParser__setevents
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _elementtree_XMLParser__setevents_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _elementtree_XMLParser__setevents(XMLParserObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h:36,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h:37,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h:40,1
    - Dst: pwd_getpwnam_impl
      Src: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 48
    functionName: pwd_getpwnam
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - pwd_getpwnam_impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwnam(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pwd_getpwall_impl
      Src: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: pwd_getpwall
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
    functionUses: 0
    functionsReached:
    - pwd_getpwall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pwd_getpwall(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_do_handshake_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 4
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: _ssl__SSLSocket_do_handshake
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_do_handshake_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_do_handshake(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:39,1
    - Dst: _ssl__test_decode_cert_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 9
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: _ssl__test_decode_cert
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__test_decode_cert_impl
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__test_decode_cert(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:74,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:80,1
    - Dst: _ssl__SSLSocket_getpeercert_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PySSLSocket*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: _ssl__SSLSocket_getpeercert
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _ssl__SSLSocket_getpeercert_impl
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_getpeercert(PySSLSocket *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_shared_ciphers_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: _ssl__SSLSocket_shared_ciphers
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_shared_ciphers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shared_ciphers(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_cipher_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: _ssl__SSLSocket_cipher
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_cipher_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_cipher(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_version_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: _ssl__SSLSocket_version
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_version_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_version(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_selected_npn_protocol_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: _ssl__SSLSocket_selected_npn_protocol
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_selected_npn_protocol_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_npn_protocol(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_selected_alpn_protocol_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: _ssl__SSLSocket_selected_alpn_protocol
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_selected_alpn_protocol_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_selected_alpn_protocol(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_compression_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: _ssl__SSLSocket_compression
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_compression_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_compression(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:221,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:224,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:225,1
    - Dst: _ssl__SSLSocket_write_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:228,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: _ssl__SSLSocket_write
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _ssl__SSLSocket_write_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_write(PySSLSocket *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_pending_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: _ssl__SSLSocket_pending
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_pending_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_pending(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:276,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:278,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:283,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:289,1
    - Dst: _ssl__SSLSocket_read_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:292,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:297,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 301
    functionName: _ssl__SSLSocket_read
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _ssl__SSLSocket_read_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_read(PySSLSocket *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_shutdown_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: _ssl__SSLSocket_shutdown
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_shutdown_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_shutdown(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:345,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:348,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:355,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:356,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:360,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:364,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:365,1
    - Dst: _ssl__SSLSocket_get_channel_binding_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:369,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLSocket*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 373
    functionName: _ssl__SSLSocket_get_channel_binding
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _ssl__SSLSocket_get_channel_binding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_get_channel_binding(PySSLSocket *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLSocket_verify_client_post_handshake_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLSocket*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 4
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: _ssl__SSLSocket_verify_client_post_handshake
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLSocket_verify_client_post_handshake_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLSocket_verify_client_post_handshake(PySSLSocket *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:403,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:406,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:406,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:409,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:409,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:410,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:414,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:415,1
    - Dst: _ssl__SSLContext_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 422
    functionName: _ssl__SSLContext
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _ssl__SSLContext_impl
    - _PyArg_NoKeywords
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:441,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:442,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:446,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:450,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:451,1
    - Dst: _ssl__SSLContext_set_ciphers_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:454,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 458
    functionName: _ssl__SSLContext_set_ciphers
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - _ssl__SSLContext_set_ciphers_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_ciphers(PySSLContext *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLContext_get_ciphers_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: _ssl__SSLContext_get_ciphers
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_get_ciphers_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ciphers(PySSLContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:499,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:502,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:503,1
    - Dst: _ssl__SSLContext__set_npn_protocols_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:506,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 515
    functionName: _ssl__SSLContext__set_npn_protocols
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _ssl__SSLContext__set_npn_protocols_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__set_npn_protocols(PySSLContext *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:535,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:538,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:539,1
    - Dst: _ssl__SSLContext__set_alpn_protocols_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:542,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 551
    functionName: _ssl__SSLContext__set_alpn_protocols
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _ssl__SSLContext__set_alpn_protocols_impl
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__set_alpn_protocols(PySSLContext *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:572,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:577,1
    - Dst: _ssl__SSLContext_load_cert_chain_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:593,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 597
    functionName: _ssl__SSLContext_load_cert_chain
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_load_cert_chain_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_cert_chain(PySSLContext *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:620,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:625,1
    - Dst: _ssl__SSLContext_load_verify_locations_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:646,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 613
    functionDepth: 5
    functionLinenumber: 613
    functionLinenumberEnd: 650
    functionName: _ssl__SSLContext_load_verify_locations
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_load_verify_locations_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_load_verify_locations(PySSLContext *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:681,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:688,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:692,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:693,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:697,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:698,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:702,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:703,1
    - Dst: _ssl__SSLContext__wrap_socket_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:727,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 674
    functionDepth: 6
    functionLinenumber: 674
    functionLinenumberEnd: 731
    functionName: _ssl__SSLContext__wrap_socket
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - _ssl__SSLContext__wrap_socket_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__wrap_socket(PySSLContext *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:755,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:763,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:767,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:768,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:772,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:773,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:777,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:778,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:782,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:783,1
    - Dst: _ssl__SSLContext__wrap_bio_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:807,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 748
    functionDepth: 6
    functionLinenumber: 748
    functionLinenumberEnd: 811
    functionName: _ssl__SSLContext__wrap_bio
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _ssl__SSLContext__wrap_bio_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext__wrap_bio(PySSLContext *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLContext_session_stats_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 824
    functionDepth: 2
    functionLinenumber: 824
    functionLinenumberEnd: 828
    functionName: _ssl__SSLContext_session_stats
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_session_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_session_stats(PySSLContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLContext_set_default_verify_paths_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 845
    functionName: _ssl__SSLContext_set_default_verify_paths
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_set_default_verify_paths_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_set_default_verify_paths(PySSLContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl__SSLContext_cert_store_stats_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 881
    functionName: _ssl__SSLContext_cert_store_stats
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl__SSLContext_cert_store_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_cert_store_stats(PySSLContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:908,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:911,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:918,1
    - Dst: _ssl__SSLContext_get_ca_certs_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:923,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PySSLContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 901
    functionDepth: 9
    functionLinenumber: 901
    functionLinenumberEnd: 927
    functionName: _ssl__SSLContext_get_ca_certs
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _ssl__SSLContext_get_ca_certs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl__SSLContext_get_ca_certs(PySSLContext *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:938,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:942,1
    - Dst: _ssl_MemoryBIO_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:945,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 949
    functionName: _ssl_MemoryBIO
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - _PyArg_NoPositional
    - _ssl_MemoryBIO_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:974,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:980,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:981,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:985,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:986,1
    - Dst: _ssl_MemoryBIO_read_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:990,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PySSLMemoryBIO*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 968
    functionDepth: 4
    functionLinenumber: 968
    functionLinenumberEnd: 994
    functionName: _ssl_MemoryBIO_read
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _ssl_MemoryBIO_read_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_read(PySSLMemoryBIO *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1016,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1019,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1020,1
    - Dst: _ssl_MemoryBIO_write_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1023,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PySSLMemoryBIO*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1032
    functionName: _ssl_MemoryBIO_write
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _ssl_MemoryBIO_write_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write(PySSLMemoryBIO *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl_MemoryBIO_write_eof_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySSLMemoryBIO*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1052
    functionName: _ssl_MemoryBIO_write_eof
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_MemoryBIO_write_eof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_MemoryBIO_write_eof(PySSLMemoryBIO *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1076,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1079,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1081,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1085,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1088,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1091,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1092,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1096,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1097,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1101,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1102,1
    - Dst: _ssl_RAND_add_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1106,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1111,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1115
    functionName: _ssl_RAND_add
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - _PyArg_BadArgument
    - _ssl_RAND_add_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1136,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1140,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1141,1
    - Dst: _ssl_RAND_bytes_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: _ssl_RAND_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _ssl_RAND_bytes_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_bytes(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1172,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1177,1
    - Dst: _ssl_RAND_pseudo_bytes_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1184
    functionName: _ssl_RAND_pseudo_bytes
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _ssl_RAND_pseudo_bytes_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_pseudo_bytes(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl_RAND_status_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1205
    functionName: _ssl_RAND_status
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_RAND_status_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_status(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1230,1
    - Dst: _ssl_RAND_egd_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1224
    functionDepth: 2
    functionLinenumber: 1224
    functionLinenumberEnd: 1237
    functionName: _ssl_RAND_egd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FSConverter
    - _ssl_RAND_egd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_RAND_egd(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssl_get_default_verify_paths_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1259
    functionName: _ssl_get_default_verify_paths
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_get_default_verify_paths_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_get_default_verify_paths(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1283,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1287,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1291,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1292,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1296,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1301,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1307,1
    - Dst: _ssl_txt2obj_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1312,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1276
    functionDepth: 6
    functionLinenumber: 1276
    functionLinenumberEnd: 1316
    functionName: _ssl_txt2obj
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - PyObject_IsTrue
    - _ssl_txt2obj_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1336,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1337,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1341,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1342,1
    - Dst: _ssl_nid2obj_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1330
    functionDepth: 6
    functionLinenumber: 1330
    functionLinenumberEnd: 1349
    functionName: _ssl_nid2obj
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_nid2obj_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_nid2obj(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1380,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1384,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1385,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1389,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1393,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1394,1
    - Dst: _ssl_enum_certificates_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1371
    functionDepth: 3
    functionLinenumber: 1371
    functionLinenumberEnd: 1401
    functionName: _ssl_enum_certificates
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _ssl_enum_certificates_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1433,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1437,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1438,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1442,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1446,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1447,1
    - Dst: _ssl_enum_crls_impl
      Src: /src/Python-3.8.3/Modules/clinic/_ssl.c.h:1450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1424
    functionDepth: 3
    functionLinenumber: 1424
    functionLinenumberEnd: 1454
    functionName: _ssl_enum_crls
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
    functionUses: 0
    functionsReached:
    - _ssl_enum_crls_impl
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:25,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:31,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:35,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:36,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:40,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:41,1
    - Dst: _opcode_stack_effect_impl
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:55,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:56,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_opcode.c.h:59,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 63
    functionName: _opcode_stack_effect
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_opcode.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _opcode_stack_effect_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Pickler_clear_memo_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: _pickle_Pickler_clear_memo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Pickler_clear_memo_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler_clear_memo(PicklerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Pickler___sizeof___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:55,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:56,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: _pickle_Pickler___sizeof__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Pickler___sizeof___impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Pickler___sizeof__(PicklerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:113,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:114,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:120,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:120,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:135,1
    - Dst: _pickle_Pickler___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:145,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 149
    functionName: _pickle_Pickler___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _pickle_Pickler___init___impl
    linkageType: ''
    returnType: int
    signature: int _pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_clear_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: _pickle_PicklerMemoProxy_clear
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_clear(PicklerMemoProxyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: _pickle_PicklerMemoProxy_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy_copy(PicklerMemoProxyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_PicklerMemoProxy___reduce___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: _pickle_PicklerMemoProxy___reduce__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_PicklerMemoProxy___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_PicklerMemoProxy___reduce__(PicklerMemoProxyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Unpickler_load_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: _pickle_Unpickler_load
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_Unpickler_load_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_load(UnpicklerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:255,1
    - Dst: _pickle_Unpickler_find_class_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - UnpicklerObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: _pickle_Unpickler_find_class
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _pickle_Unpickler_find_class_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler_find_class(UnpicklerObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_Unpickler___sizeof___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:284,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:285,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 292
    functionName: _pickle_Unpickler___sizeof__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _pickle_Unpickler___sizeof___impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_Unpickler___sizeof__(UnpicklerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:333,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:334,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:341,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:341,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:350,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:359,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:360,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:364,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:368,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:369,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:377,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:378,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:382,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:386,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:387,1
    - Dst: _pickle_Unpickler___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:396,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 400
    functionName: _pickle_Unpickler___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - _pickle_Unpickler___init___impl
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int _pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_clear_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 3
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: _pickle_UnpicklerMemoProxy_clear
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_clear(UnpicklerMemoProxyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: _pickle_UnpicklerMemoProxy_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy_copy(UnpicklerMemoProxyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _pickle_UnpicklerMemoProxy___reduce___impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - UnpicklerMemoProxyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: _pickle_UnpicklerMemoProxy___reduce__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_UnpicklerMemoProxy___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_UnpicklerMemoProxy___reduce__(UnpicklerMemoProxyObject *self, PyObject
      *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:503,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:510,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:530,1
    - Dst: _pickle_dump_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:540,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 496
    functionDepth: 11
    functionLinenumber: 496
    functionLinenumberEnd: 544
    functionName: _pickle_dump
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _pickle_dump_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:584,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:590,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:609,1
    - Dst: _pickle_dumps_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:619,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 577
    functionDepth: 11
    functionLinenumber: 577
    functionLinenumberEnd: 623
    functionName: _pickle_dumps
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _pickle_dumps_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:669,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:676,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:685,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:694,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:695,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:699,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:703,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:704,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:712,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:713,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:717,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:721,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:722,1
    - Dst: _pickle_load_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:731,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 735
    functionName: _pickle_load
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - _pickle_load_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:772,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:779,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:788,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:797,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:798,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:802,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:806,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:807,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:815,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:816,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:820,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:824,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:825,1
    - Dst: _pickle_loads_impl
      Src: /src/Python-3.8.3/Modules/clinic/_pickle.c.h:834,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 765
    functionDepth: 5
    functionLinenumber: 765
    functionLinenumberEnd: 838
    functionName: _pickle_loads
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - _pickle_loads_impl
    - PyUnicode_AsUTF8AndSize
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:43,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:44,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:48,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:52,1
    - Dst: FSTATAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:59,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:66,1
    - Dst: os_stat_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:71,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:75,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 78
    functionName: os_stat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - os_stat_impl
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    - FSTATAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:102,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:103,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:106,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:110,1
    - Dst: FSTATAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:116,1
    - Dst: os_lstat_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:120,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 95
    functionDepth: 7
    functionLinenumber: 95
    functionLinenumberEnd: 127
    functionName: os_lstat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - os_lstat_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - FSTATAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:175,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:176,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:183,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:187,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:191,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:195,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:196,1
    - Dst: FACCESSAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:203,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:211,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:219,1
    - Dst: os_access_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:224,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:225,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:228,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:232,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 235
    functionName: os_access
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - FACCESSAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - os_access_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyBool_FromLong
    - PyObject_IsTrue
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:260,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:261,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:265,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:266,1
    - Dst: os_ttyname_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 273
    functionName: os_ttyname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_ttyname_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ttyname(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_ctermid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: os_ctermid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_ctermid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ctermid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:322,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:324,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:328,1
    - Dst: os_chdir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:331,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 338
    functionName: os_chdir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - path_cleanup
    - _PyArg_UnpackKeywords
    - os_chdir_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:366,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:370,1
    - Dst: os_fchdir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 377
    functionName: os_fchdir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fchdir_impl
    - fildes_converter
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:421,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:422,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:427,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:431,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:435,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:439,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:440,1
    - Dst: FCHMODAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:447,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:454,1
    - Dst: os_chmod_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:459,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:463,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 466
    functionName: os_chmod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - FCHMODAT_DIR_FD_CONVERTER
    - PyTuple_GET_SIZE
    - os_chmod_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - PyObject_IsTrue
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:494,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:498,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:499,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:503,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:504,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:507,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:508,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:512,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:513,1
    - Dst: os_fchmod_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:516,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 520
    functionName: os_fchmod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_fchmod_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:548,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:551,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:555,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:559,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:563,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:564,1
    - Dst: os_lchmod_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:567,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:571,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 541
    functionDepth: 5
    functionLinenumber: 541
    functionLinenumberEnd: 574
    functionName: os_lchmod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - path_converter
    - os_lchmod_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:606,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:607,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:611,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:615,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:618,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:619,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:622,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:626,1
    - Dst: os_chflags_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:631,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:635,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 599
    functionDepth: 5
    functionLinenumber: 599
    functionLinenumberEnd: 638
    functionName: os_chflags
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    - PyLong_AsUnsignedLongMask
    - os_chflags_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:666,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:669,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:673,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:676,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:677,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:680,1
    - Dst: os_lchflags_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:681,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 688
    functionName: os_lchflags
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PATH_T_INITIALIZE
    - _PyArg_BadArgument
    - path_converter
    - os_lchflags_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:713,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:715,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:719,1
    - Dst: os_chroot_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:722,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 706
    functionDepth: 5
    functionLinenumber: 706
    functionLinenumberEnd: 729
    functionName: os_chroot
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - os_chroot_impl
    - path_cleanup
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:756,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:760,1
    - Dst: os_fsync_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 747
    functionDepth: 4
    functionLinenumber: 747
    functionLinenumberEnd: 767
    functionName: os_fsync
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fsync_impl
    - fildes_converter
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fsync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_sync_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: os_sync
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sync_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sync(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:816,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:820,1
    - Dst: os_fdatasync_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 807
    functionDepth: 4
    functionLinenumber: 807
    functionLinenumberEnd: 827
    functionName: os_fdatasync
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fdatasync_impl
    - fildes_converter
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:877,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:878,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:884,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:888,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:891,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:894,1
    - Dst: FCHOWNAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:901,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:908,1
    - Dst: os_chown_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:913,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:917,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 870
    functionDepth: 5
    functionLinenumber: 870
    functionLinenumberEnd: 920
    functionName: os_chown
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - os_chown_impl
    - _Py_Gid_Converter
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    - FCHOWNAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:951,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:955,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:956,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:960,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:961,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:964,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:967,1
    - Dst: os_fchown_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:970,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 974
    functionName: os_fchown
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - PyErr_Occurred
    - _Py_Gid_Converter
    - os_fchown_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1002,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1006,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1010,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1013,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1016,1
    - Dst: os_lchown_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1019,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1023,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 995
    functionDepth: 5
    functionLinenumber: 995
    functionLinenumberEnd: 1026
    functionName: os_lchown
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - PATH_T_INITIALIZE
    - _Py_Gid_Converter
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - os_lchown_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getcwd_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1042
    functionDepth: 4
    functionLinenumber: 1042
    functionLinenumberEnd: 1046
    functionName: os_getcwd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getcwd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getcwd(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getcwdb_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1064
    functionName: os_getcwdb
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getcwdb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getcwdb(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1099,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1100,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1101,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1106,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1110,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1113,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1120,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1128,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1135,1
    - Dst: os_link_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1140,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1144,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1146,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1149
    functionName: os_link
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - dir_fd_converter
    - PyTuple_GET_SIZE
    - os_link_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1183,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1184,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1186,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1193,1
    - Dst: os_listdir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1197,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1201,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1176
    functionDepth: 6
    functionLinenumber: 1176
    functionLinenumberEnd: 1204
    functionName: os_listdir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - os_listdir_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1223,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1225,1
    - Dst: os__getfullpathname_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1228,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1219
    functionDepth: 4
    functionLinenumber: 1219
    functionLinenumberEnd: 1235
    functionName: os__getfullpathname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_cleanup
    - path_converter
    - os__getfullpathname_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfullpathname(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1257,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1259,1
    - Dst: os__getfinalpathname_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1262,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1253
    functionDepth: 4
    functionLinenumber: 1253
    functionLinenumberEnd: 1269
    functionName: os__getfinalpathname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os__getfinalpathname_impl
    - PATH_T_INITIALIZE
    - path_cleanup
    - path_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getfinalpathname(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1294,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1296,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1300,1
    - Dst: os__getvolumepathname_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1303,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1287
    functionDepth: 4
    functionLinenumber: 1287
    functionLinenumberEnd: 1310
    functionName: os__getvolumepathname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - os__getvolumepathname_impl
    - path_converter
    - path_cleanup
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1340,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1341,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1345,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1349,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1356,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1357,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1361,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1362,1
    - Dst: MKDIRAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1373,1
    - Dst: os_mkdir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1377,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1381,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1333
    functionDepth: 5
    functionLinenumber: 1333
    functionLinenumberEnd: 1384
    functionName: os_mkdir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - MKDIRAT_DIR_FD_CONVERTER
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - path_converter
    - os_mkdir_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1406,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1407,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1411,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1412,1
    - Dst: os_nice_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1400
    functionDepth: 3
    functionLinenumber: 1400
    functionLinenumberEnd: 1419
    functionName: os_nice
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - os_nice_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_nice(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1447,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1451,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1452,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1456,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1457,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1461,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1465,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1466,1
    - Dst: os_getpriority_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1469,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1437
    functionDepth: 3
    functionLinenumber: 1437
    functionLinenumberEnd: 1473
    functionName: os_getpriority
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_getpriority_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1502,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1506,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1507,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1511,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1512,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1515,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1516,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1520,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1521,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1524,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1525,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1529,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1530,1
    - Dst: os_setpriority_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1533,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1491
    functionDepth: 3
    functionLinenumber: 1491
    functionLinenumberEnd: 1537
    functionName: os_setpriority
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_setpriority_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1567,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1568,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1569,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1573,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1577,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1580,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1587,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1594,1
    - Dst: os_rename_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1598,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1602,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1604,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1560
    functionDepth: 5
    functionLinenumber: 1560
    functionLinenumberEnd: 1607
    functionName: os_rename
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - dir_fd_converter
    - PyTuple_GET_SIZE
    - os_rename_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1635,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1636,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1637,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1641,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1645,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1648,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1655,1
    - Dst: dir_fd_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1662,1
    - Dst: os_replace_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1666,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1670,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1672,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1628
    functionDepth: 5
    functionLinenumber: 1628
    functionLinenumberEnd: 1675
    functionName: os_replace
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - dir_fd_converter
    - PyTuple_GET_SIZE
    - path_converter
    - os_replace_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1701,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1702,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1705,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1709,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1715,1
    - Dst: os_rmdir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1719,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1694
    functionDepth: 5
    functionLinenumber: 1694
    functionLinenumberEnd: 1726
    functionName: os_rmdir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - os_rmdir_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    - UNLINKAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1751,1
    - Dst: os_system_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1755,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1756,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1759,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1763
    functionName: os_system
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_system_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1791,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1795,1
    - Dst: os_system_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1798,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1799,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1802,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1781
    functionDepth: 2
    functionLinenumber: 1781
    functionLinenumberEnd: 1809
    functionName: os_system
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_system_impl
    - _PyArg_UnpackKeywords
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1832,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1836,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1837,1
    - Dst: os_umask_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1825
    functionDepth: 3
    functionLinenumber: 1825
    functionLinenumberEnd: 1844
    functionName: os_umask
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - os_umask_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_umask(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1870,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1871,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1874,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1878,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1884,1
    - Dst: os_unlink_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1888,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1892,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1863
    functionDepth: 5
    functionLinenumber: 1863
    functionLinenumberEnd: 1895
    functionName: os_unlink
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - os_unlink_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    - UNLINKAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1921,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1922,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1925,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1929,1
    - Dst: UNLINKAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1935,1
    - Dst: os_remove_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1939,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1943,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1914
    functionDepth: 6
    functionLinenumber: 1914
    functionLinenumberEnd: 1946
    functionName: os_remove
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - UNLINKAT_DIR_FD_CONVERTER
    - os_remove_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_remove(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_uname_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:1968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1965
    functionDepth: 3
    functionLinenumber: 1965
    functionLinenumberEnd: 1969
    functionName: os_uname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_uname_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_uname(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2016,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2017,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2023,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2027,1
    - Dst: FUTIMENSAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2050,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2057,1
    - Dst: os_utime_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2062,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2066,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2009
    functionDepth: 5
    functionLinenumber: 2009
    functionLinenumberEnd: 2069
    functionName: os_utime
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_utime_impl
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - FUTIMENSAT_DIR_FD_CONVERTER
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2092,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2096,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2097,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2101,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2102,1
    - Dst: os__exit_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2083
    functionDepth: 1
    functionLinenumber: 2083
    functionLinenumberEnd: 2109
    functionName: os__exit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os__exit_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2134,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2137,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2140,1
    - Dst: os_execv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2144,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2151
      start: 2130
    functionDepth: 4
    functionLinenumber: 2130
    functionLinenumberEnd: 2151
    functionName: os_execv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - _PyArg_CheckPositional
    - path_converter
    - path_cleanup
    - os_execv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2183,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2187,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2191,1
    - Dst: os_execve_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2196,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2176
    functionDepth: 4
    functionLinenumber: 2176
    functionLinenumberEnd: 2203
    functionName: os_execve
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - path_cleanup
    - _PyArg_UnpackKeywords
    - os_execve_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2255,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2256,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2267,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2271,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2292,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2293,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2297,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2298,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2306,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2307,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2311,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2312,1
    - Dst: os_posix_spawn_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2333,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2337,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 84
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2248
    functionDepth: 5
    functionLinenumber: 2248
    functionLinenumberEnd: 2340
    functionName: os_posix_spawn
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - os_posix_spawn_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2392,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2393,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2404,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2408,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2429,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2430,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2434,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2435,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2443,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2444,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2448,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2449,1
    - Dst: os_posix_spawnp_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2470,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2474,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 84
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2385
    functionDepth: 5
    functionLinenumber: 2385
    functionLinenumberEnd: 2477
    functionName: os_posix_spawnp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - os_posix_spawnp_impl
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2507,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2510,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2513,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2514,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2518,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2519,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2522,1
    - Dst: os_spawnv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2526,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2502
    functionDepth: 3
    functionLinenumber: 2502
    functionLinenumberEnd: 2533
    functionName: os_spawnv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_spawnv_impl
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - path_converter
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_spawnv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2566,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2570,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2574,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2579,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2582,1
    - Dst: os_spawnve_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2587,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2591,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2561
    functionDepth: 4
    functionLinenumber: 2561
    functionLinenumberEnd: 2594
    functionName: os_spawnve
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - path_converter
    - os_spawnve_impl
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_spawnve(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2632,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2637,1
    - Dst: os_register_at_fork_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2658,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2625
    functionDepth: 3
    functionLinenumber: 2625
    functionLinenumberEnd: 2662
    functionName: os_register_at_fork
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_register_at_fork_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_register_at_fork(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_fork1_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2682
    functionDepth: 4
    functionLinenumber: 2682
    functionLinenumberEnd: 2686
    functionName: os_fork1
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fork1_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork1(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_fork_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2706
    functionDepth: 4
    functionLinenumber: 2706
    functionLinenumberEnd: 2710
    functionName: os_fork
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fork_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fork(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2737,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2741,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2742,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2746,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2747,1
    - Dst: os_sched_get_priority_max_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2728
    functionDepth: 3
    functionLinenumber: 2728
    functionLinenumberEnd: 2754
    functionName: os_sched_get_priority_max
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_sched_get_priority_max_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2781,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2786,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2790,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2791,1
    - Dst: os_sched_get_priority_min_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2794,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2772
    functionDepth: 3
    functionLinenumber: 2772
    functionLinenumberEnd: 2798
    functionName: os_sched_get_priority_min
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - os_sched_get_priority_min_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_get_priority_min(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2824,1
    - Dst: os_sched_getscheduler_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2818
    functionDepth: 3
    functionLinenumber: 2818
    functionLinenumberEnd: 2831
    functionName: os_sched_getscheduler
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - os_sched_getscheduler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getscheduler(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2857,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2860,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2860,1
    - Dst: os_sched_param_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2849
    functionDepth: 2
    functionLinenumber: 2849
    functionLinenumberEnd: 2869
    functionName: os_sched_param
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - os_sched_param_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2899,1
    - Dst: os_sched_setscheduler_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2891
    functionDepth: 3
    functionLinenumber: 2891
    functionLinenumberEnd: 2907
    functionName: os_sched_setscheduler
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_sched_setscheduler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setscheduler(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2934,1
    - Dst: os_sched_getparam_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2928
    functionDepth: 3
    functionLinenumber: 2928
    functionLinenumberEnd: 2941
    functionName: os_sched_getparam
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_getparam_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getparam(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2970,1
    - Dst: os_sched_setparam_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:2974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2963
    functionDepth: 3
    functionLinenumber: 2963
    functionLinenumberEnd: 2978
    functionName: os_sched_setparam
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_sched_setparam_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setparam(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3005,1
    - Dst: os_sched_rr_get_interval_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3008,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3009,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3012,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2998
    functionDepth: 3
    functionLinenumber: 2998
    functionLinenumberEnd: 3016
    functionName: os_sched_rr_get_interval
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_rr_get_interval_impl
    - PyArg_Parse
    - PyErr_Occurred
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_rr_get_interval(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_sched_yield_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3034
    functionDepth: 3
    functionLinenumber: 3034
    functionLinenumberEnd: 3038
    functionName: os_sched_yield
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_yield_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_yield(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3065,1
    - Dst: os_sched_setaffinity_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3058
    functionDepth: 3
    functionLinenumber: 3058
    functionLinenumberEnd: 3073
    functionName: os_sched_setaffinity
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_sched_setaffinity_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_setaffinity(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3099,1
    - Dst: os_sched_getaffinity_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3093
    functionDepth: 3
    functionLinenumber: 3093
    functionLinenumberEnd: 3106
    functionName: os_sched_getaffinity
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_sched_getaffinity_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sched_getaffinity(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_openpty_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3127
    functionDepth: 3
    functionLinenumber: 3127
    functionLinenumberEnd: 3131
    functionName: os_openpty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_openpty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_openpty(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_forkpty_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3158
      start: 3154
    functionDepth: 4
    functionLinenumber: 3154
    functionLinenumberEnd: 3158
    functionName: os_forkpty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_forkpty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_forkpty(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getegid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3180
      start: 3176
    functionDepth: 3
    functionLinenumber: 3176
    functionLinenumberEnd: 3180
    functionName: os_getegid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getegid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getegid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_geteuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3198
    functionDepth: 3
    functionLinenumber: 3198
    functionLinenumberEnd: 3202
    functionName: os_geteuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_geteuid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_geteuid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3220
    functionDepth: 3
    functionLinenumber: 3220
    functionLinenumberEnd: 3224
    functionName: os_getgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getpid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3246
      start: 3242
    functionDepth: 1
    functionLinenumber: 3242
    functionLinenumberEnd: 3246
    functionName: os_getpid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getpid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getgroups_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3268
      start: 3264
    functionDepth: 3
    functionLinenumber: 3264
    functionLinenumberEnd: 3268
    functionName: os_getgroups
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getgroups_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getgroups(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3294,1
    - Dst: os_getpgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3302
      start: 3286
    functionDepth: 3
    functionLinenumber: 3286
    functionLinenumberEnd: 3302
    functionName: os_getpgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getpgid_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getpgrp_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3320
    functionDepth: 1
    functionLinenumber: 3320
    functionLinenumberEnd: 3324
    functionName: os_getpgrp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getpgrp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getpgrp(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_setpgrp_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3346
      start: 3342
    functionDepth: 3
    functionLinenumber: 3342
    functionLinenumberEnd: 3346
    functionName: os_setpgrp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setpgrp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgrp(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getppid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3371
      start: 3367
    functionDepth: 3
    functionLinenumber: 3367
    functionLinenumberEnd: 3371
    functionName: os_getppid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getppid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getppid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getlogin_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3389
    functionDepth: 3
    functionLinenumber: 3389
    functionLinenumberEnd: 3393
    functionName: os_getlogin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getlogin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getlogin(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3411
    functionDepth: 3
    functionLinenumber: 3411
    functionLinenumberEnd: 3415
    functionName: os_getuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getuid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getuid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3440,1
    - Dst: os_kill_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3433
    functionDepth: 3
    functionLinenumber: 3433
    functionLinenumberEnd: 3448
    functionName: os_kill
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_kill_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_kill(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3473,1
    - Dst: os_killpg_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3466
    functionDepth: 3
    functionLinenumber: 3466
    functionLinenumberEnd: 3481
    functionName: os_killpg
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_killpg_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_killpg(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3505,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3506,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3510,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3511,1
    - Dst: os_plock_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3499
    functionDepth: 3
    functionLinenumber: 3499
    functionLinenumberEnd: 3518
    functionName: os_plock
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_plock_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_plock(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3542,1
    - Dst: os_setuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3549
      start: 3536
    functionDepth: 3
    functionLinenumber: 3536
    functionLinenumberEnd: 3549
    functionName: os_setuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setuid(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3573,1
    - Dst: os_seteuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3567
    functionDepth: 3
    functionLinenumber: 3567
    functionLinenumberEnd: 3580
    functionName: os_seteuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Uid_Converter
    - os_seteuid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_seteuid(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3604,1
    - Dst: os_setegid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3611
      start: 3598
    functionDepth: 3
    functionLinenumber: 3598
    functionLinenumberEnd: 3611
    functionName: os_setegid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setegid_impl
    - _Py_Gid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setegid(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3636,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3639,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3642,1
    - Dst: os_setreuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3645,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3649
      start: 3629
    functionDepth: 3
    functionLinenumber: 3629
    functionLinenumberEnd: 3649
    functionName: os_setreuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_setreuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setreuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3674,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3677,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3680,1
    - Dst: os_setregid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3687
      start: 3667
    functionDepth: 3
    functionLinenumber: 3667
    functionLinenumberEnd: 3687
    functionName: os_setregid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setregid_impl
    - _PyArg_CheckPositional
    - _Py_Gid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setregid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3711,1
    - Dst: os_setgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3705
    functionDepth: 3
    functionLinenumber: 3705
    functionLinenumberEnd: 3718
    functionName: os_setgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Gid_Converter
    - os_setgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setgid(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3761,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3766,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3770,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3771,1
    - Dst: os_wait3_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3774,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3752
    functionDepth: 4
    functionLinenumber: 3752
    functionLinenumberEnd: 3778
    functionName: os_wait3
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_wait3_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3808,1
    - Dst: os_wait4_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3816
      start: 3799
    functionDepth: 4
    functionLinenumber: 3799
    functionLinenumberEnd: 3816
    functionName: os_wait4
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_wait4_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait4(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3853,1
    - Dst: os_waitid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3861
      start: 3845
    functionDepth: 3
    functionLinenumber: 3845
    functionLinenumberEnd: 3861
    functionName: os_waitid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_waitid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3891,1
    - Dst: os_waitpid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3899
      start: 3884
    functionDepth: 3
    functionLinenumber: 3884
    functionLinenumberEnd: 3899
    functionName: os_waitpid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_waitpid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitpid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3929,1
    - Dst: os_waitpid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3937
      start: 3922
    functionDepth: 3
    functionLinenumber: 3922
    functionLinenumberEnd: 3937
    functionName: os_waitpid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_waitpid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_waitpid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_wait_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3958
    functionDepth: 3
    functionLinenumber: 3958
    functionLinenumberEnd: 3962
    functionName: os_wait
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_wait_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_wait(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3993,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3994,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:3997,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4001,1
    - Dst: READLINKAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4007,1
    - Dst: os_readlink_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4011,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 3986
    functionDepth: 5
    functionLinenumber: 3986
    functionLinenumberEnd: 4018
    functionName: os_readlink
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - os_readlink_impl
    - path_cleanup
    - READLINKAT_DIR_FD_CONVERTER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4054,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4055,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4056,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4060,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4064,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4067,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4074,1
    - Dst: SYMLINKAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4086,1
    - Dst: os_symlink_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4090,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4094,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4096,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4099
      start: 4047
    functionDepth: 4
    functionLinenumber: 4047
    functionLinenumberEnd: 4099
    functionName: os_symlink
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - os_symlink_impl
    - SYMLINKAT_DIR_FD_CONVERTER
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_times_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4121
    functionDepth: 0
    functionLinenumber: 4121
    functionLinenumberEnd: 4125
    functionName: os_times
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_times_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_times(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4149,1
    - Dst: os_getsid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4143
    functionDepth: 3
    functionLinenumber: 4143
    functionLinenumberEnd: 4156
    functionName: os_getsid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getsid_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getsid(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_setsid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4178
      start: 4174
    functionDepth: 3
    functionLinenumber: 4174
    functionLinenumberEnd: 4178
    functionName: os_setsid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setsid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setsid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4203,1
    - Dst: os_setpgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4211
      start: 4196
    functionDepth: 3
    functionLinenumber: 4196
    functionLinenumberEnd: 4211
    functionName: os_setpgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - os_setpgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4235,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4236,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4240,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4241,1
    - Dst: os_tcgetpgrp_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4229
    functionDepth: 3
    functionLinenumber: 4229
    functionLinenumberEnd: 4248
    functionName: os_tcgetpgrp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - os_tcgetpgrp_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcgetpgrp(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4273,1
    - Dst: os_tcsetpgrp_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4266
    functionDepth: 3
    functionLinenumber: 4266
    functionLinenumberEnd: 4281
    functionName: os_tcsetpgrp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_tcsetpgrp_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_tcsetpgrp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4309,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4310,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4316,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4320,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4323,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4324,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4328,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4329,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4336,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4337,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4341,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4342,1
    - Dst: OPENAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4353,1
    - Dst: os_open_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4357,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4358,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4361,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4365,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4302
    functionDepth: 3
    functionLinenumber: 4302
    functionLinenumberEnd: 4368
    functionName: os_open
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - OPENAT_DIR_FD_CONVERTER
    - os_open_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4391,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4395,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4396,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4400,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4401,1
    - Dst: os_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4408
      start: 4382
    functionDepth: 3
    functionLinenumber: 4382
    functionLinenumberEnd: 4408
    functionName: os_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_close_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4429,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4432,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4433,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4437,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4438,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4442,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4446,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4447,1
    - Dst: os_closerange_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4422
    functionDepth: 2
    functionLinenumber: 4422
    functionLinenumberEnd: 4454
    functionName: os_closerange
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_closerange_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_closerange(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4475,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4476,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4480,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4481,1
    - Dst: os_dup_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4485,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4468
    functionDepth: 2
    functionLinenumber: 4468
    functionLinenumberEnd: 4492
    functionName: os_dup
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_dup_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_dup(PyObject *module, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4513,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4519,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4524,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4528,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4529,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4532,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4533,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4537,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4538,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4544,1
    - Dst: os_dup2_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4549,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4550,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4553,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4506
    functionDepth: 1
    functionLinenumber: 4506
    functionLinenumberEnd: 4557
    functionName: os_dup2
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_dup2_impl
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyObject_IsTrue
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4588,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4591,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4592,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4596,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4597,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4600,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4601,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4605,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4606,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4609,1
    - Dst: os_lockf_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4612,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4616
      start: 4580
    functionDepth: 3
    functionLinenumber: 4580
    functionLinenumberEnd: 4616
    functionName: os_lockf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - Py_off_t_converter
    - PyErr_SetString
    - os_lockf_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4644,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4647,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4648,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4652,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4653,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4656,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4659,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4660,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4664,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4665,1
    - Dst: os_lseek_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4668,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4669,1
    - Dst: PyLong_FromPy_off_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4672,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4676
      start: 4635
    functionDepth: 3
    functionLinenumber: 4635
    functionLinenumberEnd: 4676
    functionName: os_lseek
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromPy_off_t
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_lseek_impl
    - Py_off_t_converter
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_lseek(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4697,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4700,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4701,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4705,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4706,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4709,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4710,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4716,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4718,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4719,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4721,1
    - Dst: os_read_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4726,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4690
    functionDepth: 3
    functionLinenumber: 4690
    functionLinenumberEnd: 4730
    functionName: os_read
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_read_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4762,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4766,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4770,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4771,1
    - Dst: os_readv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4775,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4776,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4779,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4754
    functionDepth: 3
    functionLinenumber: 4754
    functionLinenumberEnd: 4783
    functionName: os_readv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_readv_impl
    - PyErr_SetString
    - PyLong_FromSsize_t
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_readv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4812,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4815,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4816,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4820,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4821,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4824,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4825,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4829,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4830,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4833,1
    - Dst: os_pread_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4836,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4804
    functionDepth: 3
    functionLinenumber: 4804
    functionLinenumberEnd: 4840
    functionName: os_pread
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_pread_impl
    - Py_off_t_converter
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pread(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4883,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4886,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4887,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4891,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4892,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4896,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4902,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4903,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4907,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4908,1
    - Dst: os_preadv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4912,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4913,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4916,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4920
      start: 4873
    functionDepth: 3
    functionLinenumber: 4873
    functionLinenumberEnd: 4920
    functionName: os_preadv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_preadv_impl
    - Py_off_t_converter
    - PyErr_SetString
    - PyLong_FromSsize_t
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_preadv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4944,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4947,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4948,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4952,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4953,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4956,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4959,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4960,1
    - Dst: os_write_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4963,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4964,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4967,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:4972,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4976
      start: 4936
    functionDepth: 2
    functionLinenumber: 4936
    functionLinenumberEnd: 4976
    functionName: os_write
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_write_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_FromSsize_t
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5000,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5003,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5004,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5008,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5009,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5012,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5013,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5017,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5018,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5021,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5022,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5026,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5027,1
    - Dst: os__fcopyfile_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5030,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 4992
    functionDepth: 3
    functionLinenumber: 4992
    functionLinenumberEnd: 5034
    functionName: os__fcopyfile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - os__fcopyfile_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__fcopyfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5062,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5066,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5067,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5071,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5072,1
    - Dst: os_fstat_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5075,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5079
      start: 5053
    functionDepth: 4
    functionLinenumber: 5053
    functionLinenumberEnd: 5079
    functionName: os_fstat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_fstat_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5104,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5109,1
    - Dst: os_isatty_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5112,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5113,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5120
      start: 5096
    functionDepth: 1
    functionLinenumber: 5096
    functionLinenumberEnd: 5120
    functionName: os_isatty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_isatty_impl
    - PyErr_SetString
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_isatty(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_pipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5143
      start: 5139
    functionDepth: 0
    functionLinenumber: 5139
    functionLinenumberEnd: 5143
    functionName: os_pipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_pipe_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pipe(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5173,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5174,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5178,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5179,1
    - Dst: os_pipe2_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5186
      start: 5167
    functionDepth: 3
    functionLinenumber: 5167
    functionLinenumberEnd: 5186
    functionName: os_pipe2
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_pipe2_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pipe2(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5215,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5218,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5219,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5223,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5224,1
    - Dst: os_writev_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5228,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5229,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5232,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5236
      start: 5207
    functionDepth: 3
    functionLinenumber: 5207
    functionLinenumberEnd: 5236
    functionName: os_writev
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_writev_impl
    - PyErr_SetString
    - PyLong_FromSsize_t
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_writev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5267,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5270,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5271,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5275,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5276,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5279,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5282,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5283,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5286,1
    - Dst: os_pwrite_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5289,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5290,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5293,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5298,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5302
      start: 5258
    functionDepth: 3
    functionLinenumber: 5258
    functionLinenumberEnd: 5302
    functionName: os_pwrite
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_pwrite_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_FromSsize_t
    - Py_off_t_converter
    - PyErr_SetString
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pwrite(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5345,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5348,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5349,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5353,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5354,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5358,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5364,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5365,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5369,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5370,1
    - Dst: os_pwritev_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5374,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5375,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5378,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5382
      start: 5335
    functionDepth: 3
    functionLinenumber: 5335
    functionLinenumberEnd: 5382
    functionName: os_pwritev
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - Py_off_t_converter
    - PyErr_SetString
    - os_pwritev_impl
    - PyLong_FromSsize_t
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pwritev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5423,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5430,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5435,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5439,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5440,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5443,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5444,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5448,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5449,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5453,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5459,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5462,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5464,1
    - Dst: os_copy_file_range_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5480,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5484
      start: 5416
    functionDepth: 3
    functionLinenumber: 5416
    functionLinenumberEnd: 5484
    functionName: os_copy_file_range
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - os_copy_file_range_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5514,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5515,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5519,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5523,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5531,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5535,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5536,1
    - Dst: MKFIFOAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5547,1
    - Dst: os_mkfifo_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5551,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5555,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5558
      start: 5507
    functionDepth: 3
    functionLinenumber: 5507
    functionLinenumberEnd: 5558
    functionName: os_mkfifo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - MKFIFOAT_DIR_FD_CONVERTER
    - path_converter
    - os_mkfifo_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5596,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5597,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5602,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5606,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5613,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5614,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5618,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5619,1
    - Dst: _Py_Dev_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5627,1
    - Dst: MKNODAT_DIR_FD_CONVERTER
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5638,1
    - Dst: os_mknod_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5642,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5646,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5589
    functionDepth: 3
    functionLinenumber: 5589
    functionLinenumberEnd: 5649
    functionName: os_mknod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_mknod_impl
    - MKNODAT_DIR_FD_CONVERTER
    - path_converter
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Dev_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5674,1
    - Dst: os_major_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5677,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5678,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5667
    functionDepth: 2
    functionLinenumber: 5667
    functionLinenumberEnd: 5685
    functionName: os_major
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _Py_Dev_Converter
    - PyErr_Occurred
    - os_major_impl
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_major(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Dev_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5710,1
    - Dst: os_minor_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5713,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5714,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5721
      start: 5703
    functionDepth: 2
    functionLinenumber: 5703
    functionLinenumberEnd: 5721
    functionName: os_minor
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_minor_impl
    - _Py_Dev_Converter
    - PyErr_Occurred
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_minor(PyObject *module, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5747,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5750,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5751,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5755,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5756,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5759,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5760,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5764,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5765,1
    - Dst: os_makedev_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5768,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5769,1
    - Dst: _PyLong_FromDev
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5772,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5776
      start: 5739
    functionDepth: 1
    functionLinenumber: 5739
    functionLinenumberEnd: 5776
    functionName: os_makedev
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_makedev_impl
    - PyErr_SetString
    - _PyLong_FromDev
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_makedev(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5801,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5804,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5805,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5809,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5810,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5813,1
    - Dst: os_ftruncate_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5816,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5820
      start: 5794
    functionDepth: 3
    functionLinenumber: 5794
    functionLinenumberEnd: 5820
    functionName: os_ftruncate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_ftruncate_impl
    - _PyArg_CheckPositional
    - Py_off_t_converter
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_ftruncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5848,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5851,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5855,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5858,1
    - Dst: os_truncate_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5861,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5865,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5868
      start: 5841
    functionDepth: 4
    functionLinenumber: 5841
    functionLinenumberEnd: 5868
    functionName: os_truncate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - os_truncate_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    - Py_off_t_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5898,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5901,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5902,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5906,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5907,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5910,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5913,1
    - Dst: os_posix_fallocate_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5916,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5920
      start: 5890
    functionDepth: 3
    functionLinenumber: 5890
    functionLinenumberEnd: 5920
    functionName: os_posix_fallocate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_posix_fallocate_impl
    - Py_off_t_converter
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_fallocate(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5956,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5959,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5960,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5964,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5965,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5968,1
    - Dst: Py_off_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5971,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5974,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5975,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5979,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5980,1
    - Dst: os_posix_fadvise_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:5983,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5987
      start: 5947
    functionDepth: 3
    functionLinenumber: 5947
    functionLinenumberEnd: 5987
    functionName: os_posix_fadvise
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_posix_fadvise_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - Py_off_t_converter
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_posix_fadvise(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6012,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6015,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6016,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6019,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6023,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6024,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6027,1
    - Dst: os_putenv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6035
      start: 6005
    functionDepth: 3
    functionLinenumber: 6005
    functionLinenumberEnd: 6035
    functionName: os_putenv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - os_putenv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6060,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6063,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6066,1
    - Dst: os_putenv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6069,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6073,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6075,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6078
      start: 6053
    functionDepth: 3
    functionLinenumber: 6053
    functionLinenumberEnd: 6078
    functionName: os_putenv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_putenv_impl
    - Py_XDECREF
    - PyUnicode_FSConverter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_putenv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6102,1
    - Dst: os_unsetenv_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6105,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6112
      start: 6096
    functionDepth: 3
    functionLinenumber: 6096
    functionLinenumberEnd: 6112
    functionName: os_unsetenv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyUnicode_FSConverter
    - os_unsetenv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_unsetenv(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6135,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6139,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6140,1
    - Dst: os_strerror_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6147
      start: 6128
    functionDepth: 2
    functionLinenumber: 6128
    functionLinenumberEnd: 6147
    functionName: os_strerror
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_strerror_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_strerror(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6170,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6171,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6175,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6176,1
    - Dst: os_WCOREDUMP_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6179,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6180,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6183,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6187
      start: 6163
    functionDepth: 2
    functionLinenumber: 6163
    functionLinenumberEnd: 6187
    functionName: os_WCOREDUMP
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - PyBool_FromLong
    - os_WCOREDUMP_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WCOREDUMP(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6218,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6222,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6223,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6227,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6228,1
    - Dst: os_WIFCONTINUED_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6231,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6232,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6235,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6239
      start: 6208
    functionDepth: 2
    functionLinenumber: 6208
    functionLinenumberEnd: 6239
    functionName: os_WIFCONTINUED
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_WIFCONTINUED_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6267,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6271,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6272,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6276,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6277,1
    - Dst: os_WIFSTOPPED_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6280,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6281,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6284,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6288
      start: 6257
    functionDepth: 2
    functionLinenumber: 6257
    functionLinenumberEnd: 6288
    functionName: os_WIFSTOPPED
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_WIFSTOPPED_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6316,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6320,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6321,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6325,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6326,1
    - Dst: os_WIFSIGNALED_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6329,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6330,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6337
      start: 6306
    functionDepth: 2
    functionLinenumber: 6306
    functionLinenumberEnd: 6337
    functionName: os_WIFSIGNALED
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - os_WIFSIGNALED_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6365,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6369,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6370,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6374,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6375,1
    - Dst: os_WIFEXITED_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6378,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6379,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6355
    functionDepth: 2
    functionLinenumber: 6355
    functionLinenumberEnd: 6386
    functionName: os_WIFEXITED
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_WIFEXITED_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6414,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6418,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6419,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6423,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6424,1
    - Dst: os_WEXITSTATUS_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6427,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6428,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6431,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6404
    functionDepth: 2
    functionLinenumber: 6404
    functionLinenumberEnd: 6435
    functionName: os_WEXITSTATUS
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - os_WEXITSTATUS_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6463,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6467,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6468,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6472,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6473,1
    - Dst: os_WTERMSIG_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6476,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6477,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6484
      start: 6453
    functionDepth: 2
    functionLinenumber: 6453
    functionLinenumberEnd: 6484
    functionName: os_WTERMSIG
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_WTERMSIG_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6512,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6516,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6517,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6521,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6522,1
    - Dst: os_WSTOPSIG_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6525,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6526,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6529,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6533
      start: 6502
    functionDepth: 2
    functionLinenumber: 6502
    functionLinenumberEnd: 6533
    functionName: os_WSTOPSIG
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - os_WSTOPSIG_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6559,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6560,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6564,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6565,1
    - Dst: os_fstatvfs_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6572
      start: 6553
    functionDepth: 3
    functionLinenumber: 6553
    functionLinenumberEnd: 6572
    functionName: os_fstatvfs
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_fstatvfs_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fstatvfs(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6601,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6603,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6607,1
    - Dst: os_statvfs_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6610,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6617
      start: 6594
    functionDepth: 5
    functionLinenumber: 6594
    functionLinenumberEnd: 6617
    functionName: os_statvfs
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - os_statvfs_impl
    - path_cleanup
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6642,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6644,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6648,1
    - Dst: os__getdiskusage_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6651,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6658
      start: 6635
    functionDepth: 3
    functionLinenumber: 6635
    functionLinenumberEnd: 6658
    functionName: os__getdiskusage
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - path_cleanup
    - _PyArg_UnpackKeywords
    - os__getdiskusage_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6686,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6689,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6690,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6694,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6695,1
    - Dst: conv_path_confname
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6698,1
    - Dst: os_fpathconf_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6701,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6702,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6705,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6709
      start: 6678
    functionDepth: 3
    functionLinenumber: 6678
    functionLinenumberEnd: 6709
    functionName: os_fpathconf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fpathconf_impl
    - PyLong_FromLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - conv_path_confname
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fpathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6738,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6742,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6746,1
    - Dst: conv_path_confname
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6749,1
    - Dst: os_pathconf_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6752,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6753,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6756,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6763
      start: 6731
    functionDepth: 5
    functionLinenumber: 6731
    functionLinenumberEnd: 6763
    functionName: os_pathconf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_pathconf_impl
    - PyLong_FromLong
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - conv_path_confname
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: conv_confstr_confname
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6787,1
    - Dst: os_confstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6794
      start: 6781
    functionDepth: 3
    functionLinenumber: 6781
    functionLinenumberEnd: 6794
    functionName: os_confstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_confstr_impl
    - conv_confstr_confname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_confstr(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conv_sysconf_confname
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6819,1
    - Dst: os_sysconf_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6822,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6823,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6830
      start: 6812
    functionDepth: 3
    functionLinenumber: 6812
    functionLinenumberEnd: 6830
    functionName: os_sysconf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - conv_sysconf_confname
    - PyLong_FromLong
    - PyErr_Occurred
    - os_sysconf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_sysconf(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_abort_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6853
      start: 6849
    functionDepth: 2
    functionLinenumber: 6849
    functionLinenumberEnd: 6853
    functionName: os_abort
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_abort_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_abort(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6891,1
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6894,1
    - Dst: os_startfile_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6898,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6905
      start: 6885
    functionDepth: 4
    functionLinenumber: 6885
    functionLinenumberEnd: 6905
    functionName: os_startfile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_startfile_impl
    - PATH_T_INITIALIZE
    - path_cleanup
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_startfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getloadavg_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6931
      start: 6927
    functionDepth: 2
    functionLinenumber: 6927
    functionLinenumberEnd: 6931
    functionName: os_getloadavg
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getloadavg_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getloadavg(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6959,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6963,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6964,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6968,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6969,1
    - Dst: os_device_encoding_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:6972,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6976
      start: 6950
    functionDepth: 2
    functionLinenumber: 6950
    functionLinenumberEnd: 6976
    functionName: os_device_encoding
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - os_device_encoding_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_device_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7000,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7003,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7006,1
    - Dst: _Py_Uid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7009,1
    - Dst: os_setresuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7012,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7016
      start: 6992
    functionDepth: 3
    functionLinenumber: 6992
    functionLinenumberEnd: 7016
    functionName: os_setresuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - os_setresuid_impl
    - _Py_Uid_Converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresuid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7042,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7045,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7048,1
    - Dst: _Py_Gid_Converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7051,1
    - Dst: os_setresgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7054,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7058
      start: 7034
    functionDepth: 3
    functionLinenumber: 7034
    functionLinenumberEnd: 7058
    functionName: os_setresgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _Py_Gid_Converter
    - os_setresgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setresgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getresuid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7080
      start: 7076
    functionDepth: 3
    functionLinenumber: 7076
    functionLinenumberEnd: 7080
    functionName: os_getresuid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getresuid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresuid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_getresgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7102
      start: 7098
    functionDepth: 3
    functionLinenumber: 7098
    functionLinenumberEnd: 7102
    functionName: os_getresgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_getresgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getresgid(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7133,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7134,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7135,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7138,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7142,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7145,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7151,1
    - Dst: os_getxattr_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7156,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7160,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7165
      start: 7126
    functionDepth: 5
    functionLinenumber: 7126
    functionLinenumberEnd: 7165
    functionName: os_getxattr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - os_getxattr_impl
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7197,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7198,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7199,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7204,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7208,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7211,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7214,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7217,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7218,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7225,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7226,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7230,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7231,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7242,1
    - Dst: os_setxattr_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7247,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7251,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7253,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7256,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 65
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7260
      start: 7190
    functionDepth: 5
    functionLinenumber: 7190
    functionLinenumberEnd: 7260
    functionName: os_setxattr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_setxattr_impl
    - PATH_T_INITIALIZE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - path_converter
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - path_cleanup
    - PyObject_IsTrue
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7291,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7292,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7293,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7296,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7300,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7303,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7309,1
    - Dst: os_removexattr_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7314,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7318,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7320,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7323
      start: 7284
    functionDepth: 5
    functionLinenumber: 7284
    functionLinenumberEnd: 7323
    functionName: os_removexattr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    - os_removexattr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7354,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7355,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7358,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7366,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7377,1
    - Dst: os_listxattr_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7382,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7386,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7389
      start: 7347
    functionDepth: 5
    functionLinenumber: 7347
    functionLinenumberEnd: 7389
    functionName: os_listxattr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - os_listxattr_impl
    - _PyArg_UnpackKeywords
    - path_cleanup
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7411,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7412,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7418,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7421,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7423,1
    - Dst: os_urandom_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7432
      start: 7405
    functionDepth: 2
    functionLinenumber: 7405
    functionLinenumberEnd: 7432
    functionName: os_urandom
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyNumber_Index
    - os_urandom_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_urandom(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7454,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7458,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7462,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7468,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7469,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7473,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7474,1
    - Dst: os_memfd_create_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7478,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7485
      start: 7447
    functionDepth: 2
    functionLinenumber: 7447
    functionLinenumberEnd: 7485
    functionName: os_memfd_create
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_memfd_create_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyLong_AsUnsignedLongMask
    - Py_XDECREF
    - PyUnicode_FSConverter
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_cpu_count_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7509
      start: 7505
    functionDepth: 1
    functionLinenumber: 7505
    functionLinenumberEnd: 7509
    functionName: os_cpu_count
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_cpu_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_cpu_count(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7531,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7535,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7536,1
    - Dst: os_get_inheritable_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7539,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7540,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7547
      start: 7523
    functionDepth: 2
    functionLinenumber: 7523
    functionLinenumberEnd: 7547
    functionName: os_get_inheritable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_get_inheritable_impl
    - PyErr_Occurred
    - PyErr_SetString
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_inheritable(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7568,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7572,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7576,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7577,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7580,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7581,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7585,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7586,1
    - Dst: os_set_inheritable_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7589,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7593
      start: 7561
    functionDepth: 2
    functionLinenumber: 7561
    functionLinenumberEnd: 7593
    functionName: os_set_inheritable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - os_set_inheritable_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_inheritable(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7616,1
    - Dst: os_get_handle_inheritable_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7619,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7620,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7623,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7627
      start: 7609
    functionDepth: 2
    functionLinenumber: 7609
    functionLinenumberEnd: 7627
    functionName: os_get_handle_inheritable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_get_handle_inheritable_impl
    - PyArg_Parse
    - PyErr_Occurred
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_handle_inheritable(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7653,1
    - Dst: os_set_handle_inheritable_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7661
      start: 7646
    functionDepth: 2
    functionLinenumber: 7646
    functionLinenumberEnd: 7661
    functionName: os_set_handle_inheritable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_set_handle_inheritable_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_handle_inheritable(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7688,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7689,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7693,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7694,1
    - Dst: os_get_blocking_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7697,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7698,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7701,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7705
      start: 7681
    functionDepth: 2
    functionLinenumber: 7681
    functionLinenumberEnd: 7705
    functionName: os_get_blocking
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - os_get_blocking_impl
    - PyErr_SetString
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_get_blocking(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7733,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7736,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7737,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7741,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7742,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7745,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7746,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7751,1
    - Dst: os_set_blocking_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7758
      start: 7726
    functionDepth: 2
    functionLinenumber: 7726
    functionLinenumberEnd: 7758
    functionName: os_set_blocking
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - os_set_blocking_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_set_blocking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry_is_symlink_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7780,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7781,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7784,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DirEntry*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7788
      start: 7774
    functionDepth: 2
    functionLinenumber: 7774
    functionLinenumberEnd: 7788
    functionName: os_DirEntry_is_symlink
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry_is_symlink_impl
    - PyErr_Occurred
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_symlink(DirEntry *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7809,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7812,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7819,1
    - Dst: os_DirEntry_stat_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - DirEntry*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7828
      start: 7802
    functionDepth: 6
    functionLinenumber: 7802
    functionLinenumberEnd: 7828
    functionName: os_DirEntry_stat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry_stat_impl
    - PyObject_IsTrue
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_stat(DirEntry *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7849,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7853,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7860,1
    - Dst: os_DirEntry_is_dir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7865,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7866,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7869,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - DirEntry*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7873
      start: 7842
    functionDepth: 8
    functionLinenumber: 7842
    functionLinenumberEnd: 7873
    functionName: os_DirEntry_is_dir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - os_DirEntry_is_dir_impl
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_dir(DirEntry *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7894,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7898,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7905,1
    - Dst: os_DirEntry_is_file_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7910,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7911,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7914,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - DirEntry*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7918
      start: 7887
    functionDepth: 8
    functionLinenumber: 7887
    functionLinenumberEnd: 7918
    functionName: os_DirEntry_is_file
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyObject_IsTrue
    - os_DirEntry_is_file_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_is_file(DirEntry *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry_inode_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DirEntry*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7936
      start: 7932
    functionDepth: 4
    functionLinenumber: 7932
    functionLinenumberEnd: 7936
    functionName: os_DirEntry_inode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry_inode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry_inode(DirEntry *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: os_DirEntry___fspath___impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - DirEntry*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7954
      start: 7950
    functionDepth: 2
    functionLinenumber: 7950
    functionLinenumberEnd: 7954
    functionName: os_DirEntry___fspath__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_DirEntry___fspath___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_DirEntry___fspath__(DirEntry *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7981,1
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7982,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7984,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7991,1
    - Dst: os_scandir_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7995,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:7999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8002
      start: 7974
    functionDepth: 5
    functionLinenumber: 7974
    functionLinenumberEnd: 8002
    functionName: os_scandir
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - PyTuple_GET_SIZE
    - path_converter
    - _PyArg_UnpackKeywords
    - path_cleanup
    - os_scandir_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8029,1
    - Dst: os_fspath_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8038
      start: 8020
    functionDepth: 3
    functionLinenumber: 8020
    functionLinenumberEnd: 8038
    functionName: os_fspath
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - os_fspath_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8061,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8065,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8069,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8070,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8076,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8078,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8079,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8081,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8089,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8090,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8094,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8095,1
    - Dst: os_getrandom_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8099,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8103
      start: 8054
    functionDepth: 3
    functionLinenumber: 8054
    functionLinenumberEnd: 8103
    functionName: os_getrandom
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - os_getrandom_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PATH_T_INITIALIZE
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8135,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8137,1
    - Dst: path_converter
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8141,1
    - Dst: os__add_dll_directory_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8144,1
    - Dst: path_cleanup
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8151
      start: 8128
    functionDepth: 3
    functionLinenumber: 8128
    functionLinenumberEnd: 8151
    functionName: os__add_dll_directory
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - PATH_T_INITIALIZE
    - path_converter
    - path_cleanup
    - _PyArg_UnpackKeywords
    - os__add_dll_directory_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8182,1
    - Dst: os__remove_dll_directory_impl
      Src: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h:8187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8191
      start: 8173
    functionDepth: 3
    functionLinenumber: 8173
    functionLinenumberEnd: 8191
    functionName: os__remove_dll_directory
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - os__remove_dll_directory_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:29,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:32,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:33,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:37,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:41,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:42,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:45,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:46,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:50,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:54,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:55,1
    - Dst: crypt_crypt_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h:58,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 62
    functionName: crypt_crypt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - crypt_crypt_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      crypt_crypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:23,1
    - Dst: binascii_a2b_uu_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:26,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: binascii_a2b_uu
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_a2b_uu_impl
    - PyBuffer_Release
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_uu(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:55,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:59,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:63,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:66,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:67,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:73,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:74,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:78,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:79,1
    - Dst: binascii_b2a_uu_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:83,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:88,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: binascii_b2a_uu
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - binascii_b2a_uu_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:112,1
    - Dst: binascii_a2b_base64_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:115,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: binascii_a2b_base64
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - binascii_a2b_base64_impl
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_base64(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:144,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:148,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:152,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:155,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:156,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:162,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:163,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:167,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:168,1
    - Dst: binascii_b2a_base64_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:172,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:177,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 181
    functionName: binascii_b2a_base64
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - binascii_b2a_base64_impl
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:201,1
    - Dst: binascii_a2b_hqx_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:204,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: binascii_a2b_hqx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_a2b_hqx_impl
    - PyBuffer_Release
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_hqx(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:232,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:235,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:236,1
    - Dst: binascii_rlecode_hqx_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:239,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: binascii_rlecode_hqx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - binascii_rlecode_hqx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_rlecode_hqx(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:268,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:271,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:272,1
    - Dst: binascii_b2a_hqx_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:275,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: binascii_b2a_hqx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - binascii_b2a_hqx_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_hqx(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:304,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:307,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:308,1
    - Dst: binascii_rledecode_hqx_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:311,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 320
    functionName: binascii_rledecode_hqx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_rledecode_hqx_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_rledecode_hqx(PyObject *module, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:342,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:345,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:348,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:349,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:352,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:353,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:357,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:358,1
    - Dst: binascii_crc_hqx_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:361,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:362,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:365,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 374
    functionName: binascii_crc_hqx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - binascii_crc_hqx_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_crc_hqx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:396,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:399,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:402,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:403,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:409,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:410,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:414,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:415,1
    - Dst: binascii_crc32_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:419,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:420,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:423,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:428,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 432
    functionName: binascii_crc32
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - binascii_crc32_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:471,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:476,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:480,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:483,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:484,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:497,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:501,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:502,1
    - Dst: binascii_b2a_hex_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:506,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:511,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 515
    functionName: binascii_b2a_hex
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - binascii_b2a_hex_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:546,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:551,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:555,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:558,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:559,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:572,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:576,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:577,1
    - Dst: binascii_hexlify_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:581,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:586,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 590
    functionName: binascii_hexlify
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_hexlify_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:613,1
    - Dst: binascii_a2b_hex_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:616,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 624
    functionName: binascii_a2b_hex
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - binascii_a2b_hex_impl
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_hex(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:646,1
    - Dst: binascii_unhexlify_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:649,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 657
    functionName: binascii_unhexlify
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    - binascii_unhexlify_impl
    - ascii_buffer_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_unhexlify(PyObject *module, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:678,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:682,1
    - Dst: ascii_buffer_converter
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:686,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:692,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:693,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:697,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:698,1
    - Dst: binascii_a2b_qp_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:702,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:707,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 710
    functionName: binascii_a2b_qp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - binascii_a2b_qp_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - ascii_buffer_converter
    - PyBuffer_Release
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:736,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:742,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:746,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:749,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:750,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:757,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:758,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:762,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:763,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:771,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:772,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:776,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:777,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:784,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:785,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:789,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:790,1
    - Dst: binascii_b2a_qp_impl
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:794,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/binascii.c.h:799,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 803
    functionName: binascii_b2a_qp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/binascii.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - binascii_b2a_qp_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:35,1
    - Dst: conv_descriptor
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:38,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:41,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:42,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:46,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:47,1
    - Dst: fcntl_fcntl_impl
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:55,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 59
    functionName: fcntl_fcntl
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - fcntl_fcntl_impl
    - conv_descriptor
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_fcntl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:110,1
    - Dst: conv_descriptor
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:113,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:116,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:117,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:121,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:122,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:132,1
    - Dst: fcntl_ioctl_impl
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:137,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: fcntl_ioctl
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - fcntl_ioctl_impl
    - conv_descriptor
    - PyErr_SetString
    - PyObject_IsTrue
    - PyLong_AsUnsignedLongMask
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_ioctl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:165,1
    - Dst: conv_descriptor
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:168,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:172,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:177,1
    - Dst: fcntl_flock_impl
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 184
    functionName: fcntl_flock
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - fcntl_flock_impl
    - _PyArg_CheckPositional
    - conv_descriptor
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_flock(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:230,1
    - Dst: conv_descriptor
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:233,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:236,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:237,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:241,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:242,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:256,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:257,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:261,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:262,1
    - Dst: fcntl_lockf_impl
      Src: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h:266,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 270
    functionName: fcntl_lockf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - fcntl_lockf_impl
    - _PyArg_CheckPositional
    - conv_descriptor
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fcntl_lockf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:27,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:30,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:30,1
    - Dst: Struct___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 39
    functionName: Struct___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - Struct___init___impl
    - _PyTuple_CAST
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:64,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:67,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:68,1
    - Dst: Struct_unpack_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:71,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyStructObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Struct_unpack
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - Struct_unpack_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack(PyStructObject *self, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:109,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:113,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:117,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:120,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:121,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:128,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:134,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:136,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:137,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:139,1
    - Dst: Struct_unpack_from_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:145,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:150,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyStructObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 154
    functionName: Struct_unpack_from
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - Struct_unpack_from_impl
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Struct_unpack_from(PyStructObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _clearcache_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: _clearcache
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - _clearcache_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _clearcache(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:207,1
    - Dst: calcsize_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:210,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:211,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:214,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 221
    functionName: calcsize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 2
    functionsReached:
    - cache_struct_converter
    - PyErr_Occurred
    - calcsize_impl
    - PyLong_FromSsize_t
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calcsize(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:246,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:249,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:252,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:255,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:256,1
    - Dst: unpack_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:259,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:263,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:266,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: unpack
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 3
    functionsReached:
    - cache_struct_converter
    - _PyArg_CheckPositional
    - Py_XDECREF
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:296,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:301,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:305,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:308,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:311,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:312,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:318,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:319,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:325,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:328,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:330,1
    - Dst: unpack_from_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:336,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:340,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:343,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 347
    functionName: unpack_from
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 0
    functionsReached:
    - cache_struct_converter
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - unpack_from_impl
    - PyObject_GetBuffer
    - Py_XDECREF
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:374,1
    - Dst: cache_struct_converter
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:377,1
    - Dst: iter_unpack_impl
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:381,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/clinic/_struct.c.h:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 388
    functionName: iter_unpack
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_struct.c.h
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - cache_struct_converter
    - Py_XDECREF
    - iter_unpack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:22,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:23,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:27,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:31,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:32,1
    - Dst: _tkinter_tkapp_eval_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:35,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 16
    functionDepth: 5
    functionLinenumber: 16
    functionLinenumberEnd: 39
    functionName: _tkinter_tkapp_eval
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _tkinter_tkapp_eval_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_eval(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:58,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:59,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:63,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:67,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:68,1
    - Dst: _tkinter_tkapp_evalfile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 75
    functionName: _tkinter_tkapp_evalfile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_evalfile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_evalfile(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:94,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:95,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:99,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:104,1
    - Dst: _tkinter_tkapp_record_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: _tkinter_tkapp_record
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - _tkinter_tkapp_record_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_record(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:130,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:131,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:135,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:139,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:140,1
    - Dst: _tkinter_tkapp_adderrorinfo_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: _tkinter_tkapp_adderrorinfo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - _tkinter_tkapp_adderrorinfo_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_adderrorinfo(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:190,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:191,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:195,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:200,1
    - Dst: _tkinter_tkapp_exprstring_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: _tkinter_tkapp_exprstring
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _tkinter_tkapp_exprstring_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprstring(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:226,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:227,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:231,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:235,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:236,1
    - Dst: _tkinter_tkapp_exprlong_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 243
    functionName: _tkinter_tkapp_exprlong
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_exprlong_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprlong(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:262,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:263,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:267,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:271,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:272,1
    - Dst: _tkinter_tkapp_exprdouble_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: _tkinter_tkapp_exprdouble
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _tkinter_tkapp_exprdouble_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprdouble(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:298,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:299,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:303,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:307,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:308,1
    - Dst: _tkinter_tkapp_exprboolean_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 315
    functionName: _tkinter_tkapp_exprboolean
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_exprboolean_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_exprboolean(TkappObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:352,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:355,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:356,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:360,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:364,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:365,1
    - Dst: _tkinter_tkapp_createcommand_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TkappObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 373
    functionName: _tkinter_tkapp_createcommand
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _tkinter_tkapp_createcommand_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createcommand(TkappObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:392,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:393,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:397,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:401,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:402,1
    - Dst: _tkinter_tkapp_deletecommand_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:405,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 409
    functionName: _tkinter_tkapp_deletecommand
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_deletecommand_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_deletecommand(TkappObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:433,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:437,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:438,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:442,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:443,1
    - Dst: _tkinter_tkapp_createfilehandler_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:447,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TkappObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 451
    functionName: _tkinter_tkapp_createfilehandler
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _tkinter_tkapp_createfilehandler_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createfilehandler(TkappObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tktimertoken_deletetimerhandler_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TkttObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: _tkinter_tktimertoken_deletetimerhandler
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tktimertoken_deletetimerhandler_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tktimertoken_deletetimerhandler(TkttObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:503,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:506,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:507,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:511,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:512,1
    - Dst: _tkinter_tkapp_createtimerhandler_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TkappObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 520
    functionName: _tkinter_tkapp_createtimerhandler
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _tkinter_tkapp_createtimerhandler_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_createtimerhandler(TkappObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:539,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:545,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:546,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:550,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:551,1
    - Dst: _tkinter_tkapp_mainloop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:555,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TkappObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 559
    functionName: _tkinter_tkapp_mainloop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _tkinter_tkapp_mainloop_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_mainloop(TkappObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:578,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:584,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:585,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:589,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:590,1
    - Dst: _tkinter_tkapp_dooneevent_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:594,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - TkappObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 598
    functionName: _tkinter_tkapp_dooneevent
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _tkinter_tkapp_dooneevent_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_dooneevent(TkappObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_quit_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: _tkinter_tkapp_quit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_quit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_quit(TkappObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_interpaddr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: _tkinter_tkapp_interpaddr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_interpaddr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_interpaddr(TkappObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_loadtk_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 649
    functionName: _tkinter_tkapp_loadtk
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_loadtk_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_loadtk(TkappObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_tkapp_willdispatch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TkappObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: _tkinter_tkapp_willdispatch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - _tkinter_tkapp_willdispatch_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_tkapp_willdispatch(TkappObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:713,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:722,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:724,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:728,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:729,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:734,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:740,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:741,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:745,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:749,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:750,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:756,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:757,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:761,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:766,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:772,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:773,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:777,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:778,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:784,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:785,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:789,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:790,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:796,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:797,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:801,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:802,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:808,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:809,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:813,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:814,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:823,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:825,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:829,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:830,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:835,1
    - Dst: _tkinter_create_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:839,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 151
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 700
    functionDepth: 4
    functionLinenumber: 700
    functionLinenumberEnd: 843
    functionName: _tkinter_create
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - _tkinter_create_impl
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:865,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:866,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:870,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:871,1
    - Dst: _tkinter_setbusywaitinterval_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 878
    functionName: _tkinter_setbusywaitinterval
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tkinter_setbusywaitinterval_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_setbusywaitinterval(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _tkinter_getbusywaitinterval_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:898,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:899,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 906
    functionName: _tkinter_getbusywaitinterval
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _tkinter_getbusywaitinterval_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tkinter_getbusywaitinterval(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:29,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:33,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:37,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:40,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:41,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:47,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:48,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:52,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:53,1
    - Dst: zlib_compress_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:57,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:62,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 66
    functionName: zlib_compress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - zlib_compress_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:95,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:100,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:104,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:107,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:108,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:116,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:120,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:121,1
    - Dst: ssize_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:128,1
    - Dst: zlib_decompress_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:132,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:137,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 141
    functionName: zlib_decompress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - ssize_t_converter
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - zlib_decompress_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:187,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:195,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:203,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:204,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:208,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:209,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:217,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:218,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:222,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:223,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:231,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:232,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:236,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:237,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:245,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:246,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:250,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:251,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:259,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:260,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:264,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:265,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:272,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:275,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:276,1
    - Dst: zlib_compressobj_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:280,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:285,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 108
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 289
    functionName: zlib_compressobj
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - zlib_compressobj_impl
    - PyBuffer_Release
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:316,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:320,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:328,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:329,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:333,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:334,1
    - Dst: zlib_decompressobj_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:343,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 347
    functionName: zlib_decompressobj
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - zlib_decompressobj_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:374,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:377,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:378,1
    - Dst: zlib_Compress_compress_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:381,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 390
    functionName: zlib_Compress_compress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress_compress_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_compress(compobject *self, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:423,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:427,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:431,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:434,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:435,1
    - Dst: ssize_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:441,1
    - Dst: zlib_Decompress_decompress_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:445,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:450,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - compobject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 454
    functionName: zlib_Decompress_decompress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - ssize_t_converter
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyObject_GetBuffer
    - zlib_Decompress_decompress_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_decompress(compobject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:480,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:486,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:487,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:491,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:492,1
    - Dst: zlib_Compress_flush_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:496,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - compobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 500
    functionName: zlib_Compress_flush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - zlib_Compress_flush_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_flush(compobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Compress_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: zlib_Compress_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress_copy(compobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Compress___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: zlib_Compress___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Compress___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Compress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Decompress_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: zlib_Decompress_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_copy(compobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zlib_Decompress___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - compobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 4
    functionLinenumber: 592
    functionLinenumberEnd: 596
    functionName: zlib_Decompress___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress___copy__(compobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:633,1
    - Dst: ssize_t_converter
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:639,1
    - Dst: zlib_Decompress_flush_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - compobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 647
    functionName: zlib_Decompress_flush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_Decompress_flush_impl
    - _PyArg_CheckPositional
    - ssize_t_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_Decompress_flush(compobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:673,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:676,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:679,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:680,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:686,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:687,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:691,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:692,1
    - Dst: zlib_adler32_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:696,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:701,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 705
    functionName: zlib_adler32
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_adler32_impl
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_adler32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:731,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:734,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:737,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:738,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:744,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:745,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:749,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:750,1
    - Dst: zlib_crc32_impl
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:754,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h:759,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 763
    functionName: zlib_crc32
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
    functionUses: 0
    functionsReached:
    - zlib_crc32_impl
    - PyLong_AsUnsignedLongMask
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zlib_crc32(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:22,1
    - Dst: _winapi_Overlapped_GetOverlappedResult_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: _winapi_Overlapped_GetOverlappedResult
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _winapi_Overlapped_GetOverlappedResult_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_GetOverlappedResult(OverlappedObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_Overlapped_getbuffer_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: _winapi_Overlapped_getbuffer
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_Overlapped_getbuffer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_getbuffer(OverlappedObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_Overlapped_cancel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - OverlappedObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: _winapi_Overlapped_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_Overlapped_cancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_Overlapped_cancel(OverlappedObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:84,1
    - Dst: _winapi_CloseHandle_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: _winapi_CloseHandle
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _winapi_CloseHandle_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CloseHandle(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:114,1
    - Dst: _winapi_ConnectNamedPipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 122
    functionName: _winapi_ConnectNamedPipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ConnectNamedPipe_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:154,1
    - Dst: _winapi_CreateFile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:158,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:159,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 169
    functionName: _winapi_CreateFile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - HANDLE_TO_PYNUM
    - _PyArg_ParseStack
    - _winapi_CreateFile_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:198,1
    - Dst: _winapi_CreateFileMapping_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:202,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:203,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:209,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: _winapi_CreateFileMapping
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_CreateFileMapping_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:234,1
    - Dst: _winapi_CreateJunction_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 242
    functionName: _winapi_CreateJunction
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_CreateJunction_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateJunction(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:275,1
    - Dst: _winapi_CreateNamedPipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:279,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:280,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:286,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 290
    functionName: _winapi_CreateNamedPipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_CreateNamedPipe_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:316,1
    - Dst: _winapi_CreatePipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: _winapi_CreatePipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_CreatePipe_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreatePipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:370,1
    - Dst: _winapi_CreateProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 378
    functionName: _winapi_CreateProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_CreateProcess_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_CreateProcess(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:414,1
    - Dst: _winapi_DuplicateHandle_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:418,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:419,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 429
    functionName: _winapi_DuplicateHandle
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_DuplicateHandle_impl
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_DuplicateHandle(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:448,1
    - Dst: _winapi_ExitProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 455
    functionName: _winapi_ExitProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ExitProcess_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ExitProcess(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetCurrentProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:475,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:476,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 486
    functionName: _winapi_GetCurrentProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - HANDLE_TO_PYNUM
    - PyErr_Occurred
    - _winapi_GetCurrentProcess_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetCurrentProcess(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:507,1
    - Dst: _winapi_GetExitCodeProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:510,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:511,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 518
    functionName: _winapi_GetExitCodeProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetExitCodeProcess_impl
    - PyArg_Parse
    - PyErr_Occurred
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetExitCodeProcess(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetLastError_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:537,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:538,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 545
    functionName: _winapi_GetLastError
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _winapi_GetLastError_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetLastError(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:572,1
    - Dst: _winapi_GetModuleFileName_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 579
    functionName: _winapi_GetModuleFileName
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetModuleFileName_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetModuleFileName(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:605,1
    - Dst: _winapi_GetStdHandle_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:608,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:609,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:615,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 619
    functionName: _winapi_GetStdHandle
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - HANDLE_TO_PYNUM
    - PyArg_Parse
    - _winapi_GetStdHandle_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetStdHandle(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetVersion_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:639,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:640,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: _winapi_GetVersion
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _winapi_GetVersion_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetVersion(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:674,1
    - Dst: _winapi_MapViewOfFile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:678,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:679,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 686
    functionName: _winapi_MapViewOfFile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_MapViewOfFile_impl
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_MapViewOfFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:709,1
    - Dst: _winapi_OpenFileMapping_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:713,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:714,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 724
    functionName: _winapi_OpenFileMapping
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_OpenFileMapping_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    - HANDLE_TO_PYNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_OpenFileMapping(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:747,1
    - Dst: _winapi_OpenProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:751,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:752,1
    - Dst: HANDLE_TO_PYNUM
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:758,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 762
    functionName: _winapi_OpenProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - HANDLE_TO_PYNUM
    - _PyArg_ParseStack
    - PyErr_Occurred
    - _winapi_OpenProcess_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_OpenProcess(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:782,1
    - Dst: _winapi_PeekNamedPipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 790
    functionName: _winapi_PeekNamedPipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_PeekNamedPipe_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_PeekNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:814,1
    - Dst: _winapi_ReadFile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 822
    functionName: _winapi_ReadFile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_ReadFile_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:848,1
    - Dst: _winapi_SetNamedPipeHandleState_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 839
    functionDepth: 2
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: _winapi_SetNamedPipeHandleState
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_SetNamedPipeHandleState_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_SetNamedPipeHandleState(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:878,1
    - Dst: _winapi_TerminateProcess_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 886
    functionName: _winapi_TerminateProcess
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_TerminateProcess_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_TerminateProcess(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:906,1
    - Dst: _winapi_VirtualQuerySize_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:909,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:910,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:913,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 899
    functionDepth: 2
    functionLinenumber: 899
    functionLinenumberEnd: 917
    functionName: _winapi_VirtualQuerySize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - PyErr_Occurred
    - PyLong_FromSize_t
    - _winapi_VirtualQuerySize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_VirtualQuerySize(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:937,1
    - Dst: _winapi_WaitNamedPipe_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 945
    functionName: _winapi_WaitNamedPipe
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_WaitNamedPipe_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:968,1
    - Dst: _winapi_WaitForMultipleObjects_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 976
    functionName: _winapi_WaitForMultipleObjects
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _winapi_WaitForMultipleObjects_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitForMultipleObjects(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1003,1
    - Dst: _winapi_WaitForSingleObject_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1007,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1008,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1015
    functionName: _winapi_WaitForSingleObject
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyArg_ParseStack
    - PyErr_Occurred
    - _winapi_WaitForSingleObject_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WaitForSingleObject(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1039,1
    - Dst: _winapi_WriteFile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1047
    functionName: _winapi_WriteFile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_WriteFile_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_WriteFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_GetACP_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: _winapi_GetACP
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - _winapi_GetACP_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetACP(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1087,1
    - Dst: _winapi_GetFileType_impl
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1091,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1092,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/clinic/_winapi.c.h:1095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1099
    functionName: _winapi_GetFileType
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - _PyArg_ParseStackAndKeywords
    - _winapi_GetFileType_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:29,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:30,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:34,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:34,1
    - Dst: itertools_groupby_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: itertools_groupby
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - itertools_groupby_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:62,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:65,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:65,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:68,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:68,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:69,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:69,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:72,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:73,1
    - Dst: itertools__grouper_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: itertools__grouper
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    - itertools__grouper_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__grouper(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:99,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:102,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:102,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:105,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:106,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:106,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:107,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:107,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:110,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:111,1
    - Dst: itertools_teedataobject_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: itertools_teedataobject
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyList_Check
    - _PyArg_NoKeywords
    - itertools_teedataobject_impl
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_teedataobject(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:134,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:137,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:137,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:140,1
    - Dst: itertools__tee_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 145
    functionName: itertools__tee
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - itertools__tee_impl
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools__tee(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:166,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:173,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:174,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:180,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:183,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:185,1
    - Dst: itertools_tee_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:191,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 195
    functionName: itertools_tee
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - itertools_tee_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_tee(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:213,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:216,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:216,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:219,1
    - Dst: itertools_cycle_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 224
    functionName: itertools_cycle
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools_cycle_impl
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_cycle(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:245,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:248,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:248,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:251,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:252,1
    - Dst: itertools_dropwhile_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 257
    functionName: itertools_dropwhile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    - itertools_dropwhile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_dropwhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:276,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:279,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:279,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:282,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:283,1
    - Dst: itertools_takewhile_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 288
    functionName: itertools_takewhile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - itertools_takewhile_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_takewhile(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:307,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:310,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:310,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:313,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:314,1
    - Dst: itertools_starmap_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 319
    functionName: itertools_starmap
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - itertools_starmap_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_starmap(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:350,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:354,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:354,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:359,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:360,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:366,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:368,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:369,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:371,1
    - Dst: itertools_combinations_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 380
    functionName: itertools_combinations
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - itertools_combinations_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:403,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:407,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:407,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:412,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:413,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:419,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:421,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:422,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:424,1
    - Dst: itertools_combinations_with_replacement_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 433
    functionName: itertools_combinations_with_replacement
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - itertools_combinations_with_replacement_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args,
      PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:455,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:456,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:460,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:460,1
    - Dst: itertools_permutations_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 474
    functionName: itertools_permutations
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - itertools_permutations_impl
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:494,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:495,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:500,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:500,1
    - Dst: itertools_accumulate_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:520,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 524
    functionName: itertools_accumulate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - itertools_accumulate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:546,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:550,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:550,1
    - Dst: itertools_compress_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 560
    functionName: itertools_compress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools_compress_impl
    - _PyTuple_CAST
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:581,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:584,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:584,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:587,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:588,1
    - Dst: itertools_filterfalse_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:589,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 593
    functionName: itertools_filterfalse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - itertools_filterfalse_impl
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_filterfalse(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:620,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:621,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:625,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:625,1
    - Dst: itertools_count_impl
      Src: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h:640,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 644
    functionName: itertools_count
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
    functionUses: 0
    functionsReached:
    - itertools_count_impl
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h:27,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h:28,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h:31,1
    - Dst: spwd_getspnam_impl
      Src: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg_
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 3
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: spwd_getspnam
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - spwd_getspnam_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spwd_getspnam(PyObject *module, PyObject *arg_)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spwd_getspall_impl
      Src: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: spwd_getspall
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h
    functionUses: 0
    functionsReached:
    - spwd_getspall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      spwd_getspall(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: SHA1Type_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_copy(SHA1object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: SHA1Type_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_digest(SHA1object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Type_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHA1object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: SHA1Type_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - SHA1Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA1Type_hexdigest(SHA1object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:87,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:90,1
    - Dst: _sha1_sha1_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha1module.c.h:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: _sha1_sha1
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
    functionUses: 0
    functionsReached:
    - _sha1_sha1_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:22,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:23,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:27,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:28,1
    - Dst: resource_getrusage_impl
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:31,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 35
    functionName: resource_getrusage
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - resource_getrusage_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrusage(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:54,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:55,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:60,1
    - Dst: resource_getrlimit_impl
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: resource_getrlimit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - resource_getrlimit_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getrlimit(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:87,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:90,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:91,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:96,1
    - Dst: resource_setrlimit_impl
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: resource_setrlimit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - resource_setrlimit_impl
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_setrlimit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:127,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:129,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:140,1
    - Dst: resource_prlimit_impl
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 147
    functionName: resource_prlimit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - resource_prlimit_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_prlimit(PyObject *module, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resource_getpagesize_impl
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:168,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:169,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/resource.c.h:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: resource_getpagesize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/resource.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - resource_getpagesize_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resource_getpagesize(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_bottom_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _curses_panel_panel_bottom
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_bottom_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_bottom(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_hide_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: _curses_panel_panel_hide
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_hide_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hide(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_show_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: _curses_panel_panel_show
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_show_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_show(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_top_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: _curses_panel_panel_top
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_top_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_top(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_above_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: _curses_panel_panel_above
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_above_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_above(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_below_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: _curses_panel_panel_below
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_below_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_below(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_hidden_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: _curses_panel_panel_hidden
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_hidden_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_hidden(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:152,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:155,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:156,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:160,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:161,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:164,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:165,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:169,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:170,1
    - Dst: _curses_panel_panel_move_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesPanelObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 177
    functionName: _curses_panel_panel_move
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_panel_panel_move_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_move(PyCursesPanelObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_window_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: _curses_panel_panel_window
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_window_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_window(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:216,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:217,1
    - Dst: _curses_panel_panel_replace_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 225
    functionName: _curses_panel_panel_replace
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - _curses_panel_panel_replace_impl
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_replace(PyCursesPanelObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_panel_userptr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesPanelObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: _curses_panel_panel_userptr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_panel_userptr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_panel_userptr(PyCursesPanelObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_bottom_panel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: _curses_panel_bottom_panel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_bottom_panel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_bottom_panel(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:290,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:291,1
    - Dst: _curses_panel_new_panel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 299
    functionName: _curses_panel_new_panel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_new_panel_impl
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_new_panel(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_top_panel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: _curses_panel_top_panel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_top_panel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_top_panel(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_panel_update_panels_impl
      Src: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: _curses_panel_update_panels
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
    functionUses: 0
    functionsReached:
    - _curses_panel_update_panels_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_panel_update_panels(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h:41,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h:44,1
    - Dst: datetime_datetime_now_impl
      Src: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: datetime_datetime_now
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h
    functionUses: 0
    functionsReached:
    - datetime_datetime_now_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      datetime_datetime_now(PyTypeObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _weakref_getweakrefcount_impl
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:23,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:24,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: _weakref_getweakrefcount
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_weakref.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _weakref_getweakrefcount_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref_getweakrefcount(PyObject *module, PyObject *object)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:53,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:56,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:57,1
    - Dst: _weakref__remove_dead_weakref_impl
      Src: /src/Python-3.8.3/Modules/clinic/_weakref.c.h:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: _weakref__remove_dead_weakref
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_weakref.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _weakref__remove_dead_weakref_impl
    - _PyArg_BadArgument
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _weakref__remove_dead_weakref(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:68,1
    - Dst: _abc__abc_register_impl
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: _abc__abc_register
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_abc.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _abc__abc_register_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_register(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:99,1
    - Dst: _abc__abc_instancecheck_impl
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: _abc__abc_instancecheck
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_abc.c.h
    functionUses: 0
    functionsReached:
    - _abc__abc_instancecheck_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_instancecheck(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:130,1
    - Dst: _abc__abc_subclasscheck_impl
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: _abc__abc_subclasscheck
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_abc.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _abc__abc_subclasscheck_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc__abc_subclasscheck(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _abc_get_cache_token_impl
      Src: /src/Python-3.8.3/Modules/clinic/_abc.c.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: _abc_get_cache_token
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_abc.c.h
    functionUses: 0
    functionsReached:
    - _abc_get_cache_token_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _abc_get_cache_token(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:25,1
    - Dst: _collections__count_elements_impl
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: _collections__count_elements
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _collections__count_elements_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _collections__count_elements(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:47,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:50,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:50,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:53,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:53,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:54,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:60,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:60,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:62,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:63,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:65,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:70,1
    - Dst: tuplegetter_new_impl
      Src: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: tuplegetter_new
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h
    functionUses: 0
    functionsReached:
    - tuplegetter_new_impl
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - _PyArg_NoKeywords
    - PyNumber_Index
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:26,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:29,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:30,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:34,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:35,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:39,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:40,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:44,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:45,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:49,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:50,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:54,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:55,1
    - Dst: _statistics__normal_dist_inv_cdf_impl
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:60,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h:63,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 67
    functionName: _statistics__normal_dist_inv_cdf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - _PyArg_CheckPositional
    - _statistics__normal_dist_inv_cdf_impl
    - PyFloat_FromDouble
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _statistics__normal_dist_inv_cdf(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:20,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:24,1
    - Dst: simplequeue_new_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:27,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: simplequeue_new
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - _PyArg_NoPositional
    - simplequeue_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      simplequeue_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:56,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:61,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:70,1
    - Dst: _queue_SimpleQueue_put_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:80,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - simplequeueobject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 84
    functionName: _queue_SimpleQueue_put
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _queue_SimpleQueue_put_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_put(simplequeueobject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:110,1
    - Dst: _queue_SimpleQueue_put_nowait_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - simplequeueobject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: _queue_SimpleQueue_put_nowait
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_put_nowait_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_put_nowait(simplequeueobject *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:153,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:161,1
    - Dst: _queue_SimpleQueue_get_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - simplequeueobject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 175
    functionName: _queue_SimpleQueue_get
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - _queue_SimpleQueue_get_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_get(simplequeueobject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_get_nowait_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: _queue_SimpleQueue_get_nowait
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_get_nowait_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_get_nowait(simplequeueobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_empty_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:216,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:217,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:220,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 224
    functionName: _queue_SimpleQueue_empty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyErr_Occurred
    - _queue_SimpleQueue_empty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_empty(simplequeueobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _queue_SimpleQueue_qsize_impl
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:244,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:245,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - simplequeueobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: _queue_SimpleQueue_qsize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
    functionUses: 0
    functionsReached:
    - _queue_SimpleQueue_qsize_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _queue_SimpleQueue_qsize(simplequeueobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:33,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:34,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:37,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:37,1
    - Dst: _asyncio_Future___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: _asyncio_Future___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - _asyncio_Future___init___impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_result_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: _asyncio_Future_result
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_result_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_result(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_exception_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: _asyncio_Future_exception
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_exception_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_exception(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:145,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:149,1
    - Dst: _asyncio_Future_add_done_callback_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - FutureObj*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 163
    functionName: _asyncio_Future_add_done_callback
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_add_done_callback_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_add_done_callback(FutureObj *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_cancel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: _asyncio_Future_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_cancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancel(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_cancelled_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: _asyncio_Future_cancelled
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_cancelled_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_cancelled(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_done_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: _asyncio_Future_done
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_done_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_done(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future_get_loop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: _asyncio_Future_get_loop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future_get_loop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future_get_loop(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Future__repr_info_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - FutureObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: _asyncio_Future__repr_info
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Future__repr_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Future__repr_info(FutureObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:290,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:291,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:296,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:296,1
    - Dst: _asyncio_Task___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: _asyncio_Task___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - _asyncio_Task___init___impl
    linkageType: ''
    returnType: int
    signature: int _asyncio_Task___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:341,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:344,1
    - Dst: _asyncio_Task_current_task_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 4
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: _asyncio_Task_current_task
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_current_task_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_current_task(PyTypeObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:380,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:383,1
    - Dst: _asyncio_Task_all_tasks_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 396
    functionName: _asyncio_Task_all_tasks
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _asyncio_Task_all_tasks_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_all_tasks(PyTypeObject *type, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task__repr_info_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: _asyncio_Task__repr_info
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task__repr_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task__repr_info(TaskObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_cancel_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: _asyncio_Task_cancel
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_cancel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_cancel(TaskObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:487,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:490,1
    - Dst: _asyncio_Task_get_stack_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - TaskObj*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 503
    functionName: _asyncio_Task_get_stack
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_get_stack_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:531,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:535,1
    - Dst: _asyncio_Task_print_stack_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - TaskObj*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 554
    functionName: _asyncio_Task_print_stack
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _asyncio_Task_print_stack_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_print_stack(TaskObj *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_get_coro_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: _asyncio_Task_get_coro
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_get_coro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_coro(TaskObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_Task_get_name_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - TaskObj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: _asyncio_Task_get_name
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_Task_get_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_Task_get_name(TaskObj *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio__get_running_loop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 633
    functionName: _asyncio__get_running_loop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__get_running_loop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__get_running_loop(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_get_event_loop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 4
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: _asyncio_get_event_loop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_get_event_loop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_get_event_loop(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _asyncio_get_running_loop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 690
    functionName: _asyncio_get_running_loop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio_get_running_loop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio_get_running_loop(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:715,1
    - Dst: _asyncio__register_task_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 724
    functionName: _asyncio__register_task
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__register_task_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:749,1
    - Dst: _asyncio__unregister_task_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 758
    functionName: _asyncio__unregister_task
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__unregister_task_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:786,1
    - Dst: _asyncio__enter_task_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 796
    functionName: _asyncio__enter_task
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__enter_task_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:824,1
    - Dst: _asyncio__leave_task_impl
      Src: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 834
    functionName: _asyncio__leave_task
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
    functionUses: 0
    functionsReached:
    - _asyncio__leave_task_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: SHA512Type_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_copy(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: SHA512Type_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_digest(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512Type_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: SHA512Type_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
    functionUses: 0
    functionsReached:
    - SHA512Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA512Type_hexdigest(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:87,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:90,1
    - Dst: _sha512_sha512_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: _sha512_sha512
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
    functionUses: 0
    functionsReached:
    - _sha512_sha512_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha512_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:124,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:127,1
    - Dst: _sha512_sha384_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha512module.c.h:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: _sha512_sha384
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
    functionUses: 0
    functionsReached:
    - _sha512_sha384_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha512_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _random_Random_random_impl
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _random_Random_random
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - _random_Random_random_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_random(RandomObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:44,1
    - Dst: _random_Random_seed_impl
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - RandomObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 56
    functionName: _random_Random_seed
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _random_Random_seed_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_seed(RandomObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _random_Random_getstate_impl
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: _random_Random_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - _random_Random_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getstate(RandomObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:104,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:109,1
    - Dst: _random_Random_getrandbits_impl
      Src: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - RandomObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: _random_Random_getrandbits
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _random_Random_getrandbits_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _random_Random_getrandbits(RandomObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: array_array___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___copy__(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:79,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:85,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:86,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:92,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:94,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:97,1
    - Dst: array_array_pop_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - arrayobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 73
    functionDepth: 4
    functionLinenumber: 73
    functionLinenumberEnd: 107
    functionName: array_array_pop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_pop_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_pop(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:137,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:141,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:147,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:150,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:152,1
    - Dst: array_array_insert_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - arrayobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 162
    functionName: array_array_insert
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - array_array_insert_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_insert(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_buffer_info_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: array_array_buffer_info
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_buffer_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_buffer_info(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_byteswap_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: array_array_byteswap
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_byteswap_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_byteswap(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_reverse_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: array_array_reverse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_reverse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_reverse(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:252,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:256,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:257,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:263,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:266,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:268,1
    - Dst: array_array_fromfile_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - arrayobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: array_array_fromfile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_fromfile_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromfile(arrayobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tolist_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: array_array_tolist
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tolist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tolist(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:335,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:337,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:341,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:344,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:347,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:348,1
    - Dst: array_array_fromstring_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:352,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 361
    functionName: array_array_fromstring
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - array_array_fromstring_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromstring(arrayobject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:381,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:384,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:385,1
    - Dst: array_array_frombytes_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:388,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 397
    functionName: array_array_frombytes
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 2
    functionsReached:
    - array_array_frombytes_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_frombytes(arrayobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tobytes_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: array_array_tobytes
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tobytes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tobytes(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tostring_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: array_array_tostring
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tostring_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tostring(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:461,1
    - Dst: array_array_fromunicode_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: array_array_fromunicode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - array_array_fromunicode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_fromunicode(arrayobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array_tounicode_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: array_array_tounicode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array_tounicode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array_tounicode(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_array___sizeof___impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: array_array___sizeof__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_array___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_array___sizeof__(arrayobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:535,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:539,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:540,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:543,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:546,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:547,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:550,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:551,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:552,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:556,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:557,1
    - Dst: array__array_reconstructor_impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:561,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 565
    functionName: array__array_reconstructor
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array__array_reconstructor_impl
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array__array_reconstructor(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: array_arrayiterator___reduce___impl
      Src: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - arrayiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: array_arrayiterator___reduce__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
    functionUses: 0
    functionsReached:
    - array_arrayiterator___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      array_arrayiterator___reduce__(arrayiterobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:28,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:31,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:32,1
    - Dst: _lzma_LZMACompressor_compress_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:35,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - Compressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: _lzma_LZMACompressor_compress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - _lzma_LZMACompressor_compress_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_compress(Compressor *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _lzma_LZMACompressor_flush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - Compressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: _lzma_LZMACompressor_flush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _lzma_LZMACompressor_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMACompressor_flush(Compressor *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:101,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:105,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:109,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:112,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:113,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:119,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:120,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:126,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:129,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:131,1
    - Dst: _lzma_LZMADecompressor_decompress_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:137,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:142,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - Decompressor*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 146
    functionName: _lzma_LZMADecompressor_decompress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _lzma_LZMADecompressor_decompress_impl
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_LZMADecompressor_decompress(Decompressor *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:183,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:184,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:189,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:189,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:198,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:202,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:203,1
    - Dst: _lzma_LZMADecompressor___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:218,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 222
    functionName: _lzma_LZMADecompressor___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _lzma_LZMADecompressor___init___impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _lzma_LZMADecompressor___init__(PyObject *self, PyObject *args,
      PyObject *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:244,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:245,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:249,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:250,1
    - Dst: _lzma_is_check_supported_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: _lzma_is_check_supported
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _lzma_is_check_supported_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma_is_check_supported(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lzma_filter_converter
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:279,1
    - Dst: _lzma__encode_filter_properties_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:282,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: _lzma__encode_filter_properties
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _lzma__encode_filter_properties_impl
    - PyMem_Free
    - lzma_filter_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__encode_filter_properties(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:314,1
    - Dst: lzma_vli_converter
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:317,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:320,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:323,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:324,1
    - Dst: _lzma__decode_filter_properties_impl
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:327,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h:332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 336
    functionName: _lzma__decode_filter_properties
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
    functionUses: 0
    functionsReached:
    - _lzma__decode_filter_properties_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - lzma_vli_converter
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _lzma__decode_filter_properties(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:24,1
    - Dst: math_gcd_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: math_gcd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_gcd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_gcd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:120,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:121,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:125,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:126,1
    - Dst: math_frexp_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: math_frexp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_frexp_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_frexp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:157,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:160,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:161,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:165,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:166,1
    - Dst: math_ldexp_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 175
    functionName: math_ldexp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - _PyArg_CheckPositional
    - math_ldexp_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_ldexp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:197,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:198,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:202,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:203,1
    - Dst: math_modf_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: math_modf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - math_modf_impl
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_modf(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:234,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:236,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:241,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:247,1
    - Dst: math_log_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:250,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 226
    functionDepth: 6
    functionLinenumber: 226
    functionLinenumberEnd: 254
    functionName: math_log
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_log_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_log(PyObject *module, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:295,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:298,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:299,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:303,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:304,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:308,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:309,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:313,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:314,1
    - Dst: math_fmod_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:318,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 322
    functionName: math_fmod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - _PyArg_CheckPositional
    - math_fmod_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_fmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:349,1
    - Dst: math_dist_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: math_dist
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_dist_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_dist(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:379,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:382,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:383,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:387,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:388,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:392,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:393,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:397,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:398,1
    - Dst: math_pow_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:402,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 406
    functionName: math_pow
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - _PyArg_CheckPositional
    - math_pow_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:426,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:427,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:431,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:432,1
    - Dst: math_degrees_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 440
    functionName: math_degrees
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_degrees_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_degrees(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:460,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:461,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:465,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:466,1
    - Dst: math_radians_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 474
    functionName: math_radians
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - math_radians_impl
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_radians(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:494,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:495,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:499,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:500,1
    - Dst: math_isfinite_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 508
    functionName: math_isfinite
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_isfinite_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isfinite(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:528,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:529,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:533,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:534,1
    - Dst: math_isnan_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 542
    functionName: math_isnan
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_isnan_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isnan(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:562,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:563,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:567,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:568,1
    - Dst: math_isinf_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:572,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 576
    functionName: math_isinf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - math_isinf_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isinf(PyObject *module, PyObject *arg)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:614,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:621,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:625,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:626,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:630,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:631,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:635,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:636,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:640,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:641,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:649,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:650,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:654,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:655,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:663,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:664,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:668,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:669,1
    - Dst: math_isclose_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:674,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:675,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:678,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 682
    functionName: math_isclose
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyFloat_AS_DOUBLE
    - _PyArg_UnpackKeywords
    - math_isclose_impl
    - PyBool_FromLong
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:709,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:713,1
    - Dst: math_prod_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 727
    functionName: math_prod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - math_prod_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:757,1
    - Dst: math_perm_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:766,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 750
    functionDepth: 5
    functionLinenumber: 750
    functionLinenumberEnd: 770
    functionName: math_perm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_perm_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_perm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:801,1
    - Dst: math_comb_impl
      Src: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h:806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 810
    functionName: math_comb
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - math_comb_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      math_comb(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:36,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:37,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:41,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:46,1
    - Dst: _codecs_lookup_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: _codecs_lookup
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _codecs_lookup_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup(PyObject *module, PyObject *arg)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:81,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:86,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:95,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:96,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:100,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:105,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:112,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:113,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:117,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:122,1
    - Dst: _codecs_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 130
    functionName: _codecs_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _codecs_encode_impl
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:158,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:163,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:172,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:173,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:177,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:181,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:182,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:189,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:190,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:194,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:199,1
    - Dst: _codecs_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:203,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 207
    functionName: _codecs_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_decode_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:227,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:228,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:232,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:236,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:237,1
    - Dst: _codecs__forget_codec_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: _codecs__forget_codec
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _codecs__forget_codec_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs__forget_codec(PyObject *module, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:265,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:268,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:270,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:274,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:277,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:280,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:281,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:291,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:293,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:297,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:298,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:303,1
    - Dst: _codecs_escape_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:307,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:312,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 316
    functionName: _codecs_escape_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_escape_decode_impl
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:337,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:340,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:341,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:351,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:353,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:357,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:358,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:363,1
    - Dst: _codecs_escape_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:367,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 371
    functionName: _codecs_escape_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBytes_Check
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _codecs_escape_encode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:393,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:396,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:399,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:400,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:409,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:411,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:415,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:416,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:421,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:428,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:432,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:433,1
    - Dst: _codecs_utf_7_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:437,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:442,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 446
    functionName: _codecs_utf_7_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _codecs_utf_7_decode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_7_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:468,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:471,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:474,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:475,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:484,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:486,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:490,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:491,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:496,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:502,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:503,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:507,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:508,1
    - Dst: _codecs_utf_8_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:512,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:517,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 521
    functionName: _codecs_utf_8_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - _codecs_utf_8_decode_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_8_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:543,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:546,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:549,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:550,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:559,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:561,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:565,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:566,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:571,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:577,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:578,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:582,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:583,1
    - Dst: _codecs_utf_16_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:587,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:592,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 596
    functionName: _codecs_utf_16_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_utf_16_decode_impl
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:618,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:621,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:624,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:625,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:634,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:636,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:640,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:641,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:646,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:652,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:653,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:657,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:658,1
    - Dst: _codecs_utf_16_le_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:662,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:667,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 671
    functionName: _codecs_utf_16_le_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _codecs_utf_16_le_decode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:693,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:696,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:699,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:700,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:709,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:711,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:715,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:716,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:721,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:727,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:728,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:732,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:733,1
    - Dst: _codecs_utf_16_be_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:737,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:742,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 746
    functionName: _codecs_utf_16_be_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_16_be_decode_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:770,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:773,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:776,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:777,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:786,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:788,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:792,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:793,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:798,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:804,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:805,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:809,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:810,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:816,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:817,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:821,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:822,1
    - Dst: _codecs_utf_16_ex_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:826,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:831,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 835
    functionName: _codecs_utf_16_ex_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _codecs_utf_16_ex_decode_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:857,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:860,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:863,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:864,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:873,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:875,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:879,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:880,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:885,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:891,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:892,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:896,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:897,1
    - Dst: _codecs_utf_32_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:901,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 910
    functionName: _codecs_utf_32_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_32_decode_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:932,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:935,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:938,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:939,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:948,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:950,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:954,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:955,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:960,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:966,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:967,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:971,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:972,1
    - Dst: _codecs_utf_32_le_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:976,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:981,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 924
    functionDepth: 3
    functionLinenumber: 924
    functionLinenumberEnd: 985
    functionName: _codecs_utf_32_le_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_32_le_decode_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_le_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1007,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1010,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1013,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1014,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1023,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1025,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1029,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1030,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1035,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1041,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1042,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1046,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1047,1
    - Dst: _codecs_utf_32_be_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1051,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1056,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1060
    functionName: _codecs_utf_32_be_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_utf_32_be_decode_impl
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_be_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1084,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1087,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1090,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1091,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1100,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1102,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1106,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1107,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1112,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1118,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1119,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1124,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1130,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1131,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1135,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1136,1
    - Dst: _codecs_utf_32_ex_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1140,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1145,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 74
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1149
    functionName: _codecs_utf_32_ex_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_32_ex_decode_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_ex_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1170,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1173,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1175,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1179,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1182,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1185,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1186,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1196,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1198,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1203,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1208,1
    - Dst: _codecs_unicode_escape_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1212,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1217,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1163
    functionDepth: 3
    functionLinenumber: 1163
    functionLinenumberEnd: 1221
    functionName: _codecs_unicode_escape_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - _codecs_unicode_escape_decode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1242,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1245,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1247,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1251,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1254,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1257,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1258,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1268,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1270,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1275,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1280,1
    - Dst: _codecs_raw_unicode_escape_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1284,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1289,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1293
    functionName: _codecs_raw_unicode_escape_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _codecs_raw_unicode_escape_decode_impl
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1314,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1317,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1320,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1321,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1330,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1332,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1336,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1337,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1342,1
    - Dst: _codecs_latin_1_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1346,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1351,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1355
    functionName: _codecs_latin_1_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_latin_1_decode_impl
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_latin_1_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1376,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1379,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1382,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1383,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1392,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1394,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1398,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1399,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1404,1
    - Dst: _codecs_ascii_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1408,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1413,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1417
    functionName: _codecs_ascii_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _codecs_ascii_decode_impl
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_ascii_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1439,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1442,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1445,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1446,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1455,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1457,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1461,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1462,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1467,1
    - Dst: _codecs_charmap_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1475,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1480,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1431
    functionDepth: 3
    functionLinenumber: 1431
    functionLinenumberEnd: 1484
    functionName: _codecs_charmap_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_charmap_decode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1508,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1511,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1514,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1515,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1524,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1526,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1531,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1536,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1542,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1543,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1547,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1548,1
    - Dst: _codecs_mbcs_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1552,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1557,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1500
    functionDepth: 3
    functionLinenumber: 1500
    functionLinenumberEnd: 1561
    functionName: _codecs_mbcs_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - _codecs_mbcs_decode_impl
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_mbcs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1587,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1590,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1593,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1594,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1603,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1605,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1609,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1610,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1615,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1622,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1626,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1627,1
    - Dst: _codecs_oem_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1631,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1636,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1640
    functionName: _codecs_oem_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _codecs_oem_decode_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_oem_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1667,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1670,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1671,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1675,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1676,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1679,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1682,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1683,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1692,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1694,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1698,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1699,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1704,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1710,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1711,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1715,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1716,1
    - Dst: _codecs_code_page_decode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1720,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1725,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1729
    functionName: _codecs_code_page_decode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_code_page_decode_impl
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_code_page_decode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1752,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1755,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1757,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1761,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1764,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1767,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1768,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1778,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1780,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1784,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1785,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1790,1
    - Dst: _codecs_readbuffer_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1794,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1799,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1745
    functionDepth: 3
    functionLinenumber: 1745
    functionLinenumberEnd: 1803
    functionName: _codecs_readbuffer_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - _codecs_readbuffer_encode_impl
    - PyErr_SetString
    - PyBuffer_Release
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_readbuffer_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1824,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1827,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1828,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1831,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1841,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1843,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1847,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1848,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1853,1
    - Dst: _codecs_utf_7_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1857,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1817
    functionDepth: 3
    functionLinenumber: 1817
    functionLinenumberEnd: 1861
    functionName: _codecs_utf_7_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _codecs_utf_7_encode_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_7_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1882,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1885,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1886,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1889,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1899,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1901,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1905,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1906,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1911,1
    - Dst: _codecs_utf_8_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1915,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1875
    functionDepth: 3
    functionLinenumber: 1875
    functionLinenumberEnd: 1919
    functionName: _codecs_utf_8_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _codecs_utf_8_encode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_8_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1941,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1944,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1945,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1948,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1958,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1960,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1964,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1965,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1970,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1976,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1977,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1981,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1982,1
    - Dst: _codecs_utf_16_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:1986,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1990
    functionName: _codecs_utf_16_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_16_encode_impl
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2011,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2014,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2015,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2018,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2028,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2030,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2034,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2035,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2040,1
    - Dst: _codecs_utf_16_le_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2044,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2004
    functionDepth: 3
    functionLinenumber: 2004
    functionLinenumberEnd: 2048
    functionName: _codecs_utf_16_le_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _codecs_utf_16_le_encode_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2069,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2072,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2073,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2076,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2086,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2088,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2092,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2093,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2098,1
    - Dst: _codecs_utf_16_be_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2102,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2106
    functionName: _codecs_utf_16_be_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_utf_16_be_encode_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_16_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2128,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2131,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2132,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2135,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2145,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2147,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2152,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2157,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2164,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2168,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2169,1
    - Dst: _codecs_utf_32_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2173,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2120
    functionDepth: 3
    functionLinenumber: 2120
    functionLinenumberEnd: 2177
    functionName: _codecs_utf_32_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_utf_32_encode_impl
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2198,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2201,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2202,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2205,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2215,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2217,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2221,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2222,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2227,1
    - Dst: _codecs_utf_32_le_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2231,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2191
    functionDepth: 3
    functionLinenumber: 2191
    functionLinenumberEnd: 2235
    functionName: _codecs_utf_32_le_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_utf_32_le_encode_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_le_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2256,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2259,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2260,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2263,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2273,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2275,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2280,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2285,1
    - Dst: _codecs_utf_32_be_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2289,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2249
    functionDepth: 3
    functionLinenumber: 2249
    functionLinenumberEnd: 2293
    functionName: _codecs_utf_32_be_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _codecs_utf_32_be_encode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_utf_32_be_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2314,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2317,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2318,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2321,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2331,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2333,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2337,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2338,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2343,1
    - Dst: _codecs_unicode_escape_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2347,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2307
    functionDepth: 3
    functionLinenumber: 2307
    functionLinenumberEnd: 2351
    functionName: _codecs_unicode_escape_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - _codecs_unicode_escape_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2372,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2375,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2376,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2379,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2389,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2391,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2395,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2396,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2401,1
    - Dst: _codecs_raw_unicode_escape_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2405,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2365
    functionDepth: 3
    functionLinenumber: 2365
    functionLinenumberEnd: 2409
    functionName: _codecs_raw_unicode_escape_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - _codecs_raw_unicode_escape_encode_impl
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_raw_unicode_escape_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2430,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2433,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2434,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2437,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2447,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2449,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2453,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2454,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2459,1
    - Dst: _codecs_latin_1_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2463,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2423
    functionDepth: 3
    functionLinenumber: 2423
    functionLinenumberEnd: 2467
    functionName: _codecs_latin_1_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - _codecs_latin_1_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_latin_1_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2488,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2491,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2492,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2495,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2505,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2507,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2512,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2517,1
    - Dst: _codecs_ascii_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2521,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2525
      start: 2481
    functionDepth: 3
    functionLinenumber: 2481
    functionLinenumberEnd: 2525
    functionName: _codecs_ascii_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_ascii_encode_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_ascii_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2547,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2550,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2551,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2554,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2564,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2566,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2570,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2571,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2576,1
    - Dst: _codecs_charmap_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2584,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2539
    functionDepth: 3
    functionLinenumber: 2539
    functionLinenumberEnd: 2588
    functionName: _codecs_charmap_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - _codecs_charmap_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2607,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2608,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2611,1
    - Dst: _codecs_charmap_build_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2601
    functionDepth: 2
    functionLinenumber: 2601
    functionLinenumberEnd: 2619
    functionName: _codecs_charmap_build
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - _codecs_charmap_build_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_charmap_build(PyObject *module, PyObject *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2641,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2644,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2645,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2648,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2658,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2660,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2664,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2665,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2670,1
    - Dst: _codecs_mbcs_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2674,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2634
    functionDepth: 3
    functionLinenumber: 2634
    functionLinenumberEnd: 2678
    functionName: _codecs_mbcs_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - _codecs_mbcs_encode_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_mbcs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2702,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2705,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2706,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2709,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2719,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2721,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2726,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2731,1
    - Dst: _codecs_oem_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2735,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2695
    functionDepth: 3
    functionLinenumber: 2695
    functionLinenumberEnd: 2739
    functionName: _codecs_oem_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _codecs_oem_encode_impl
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_oem_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2765,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2769,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2773,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2774,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2777,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2778,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2781,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2791,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2793,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2797,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2798,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2803,1
    - Dst: _codecs_code_page_encode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2807,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2757
    functionDepth: 3
    functionLinenumber: 2757
    functionLinenumberEnd: 2811
    functionName: _codecs_code_page_encode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _codecs_code_page_encode_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_code_page_encode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2839,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2842,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2843,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2847,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2851,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2852,1
    - Dst: _codecs_register_error_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2856,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2832
    functionDepth: 2
    functionLinenumber: 2832
    functionLinenumberEnd: 2860
    functionName: _codecs_register_error
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - _codecs_register_error_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_register_error(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2883,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2884,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2888,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2892,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2893,1
    - Dst: _codecs_lookup_error_impl
      Src: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h:2896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2877
    functionDepth: 2
    functionLinenumber: 2877
    functionLinenumberEnd: 2900
    functionName: _codecs_lookup_error
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _codecs_lookup_error_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _codecs_lookup_error(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:48,1
    - Dst: select_select_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 63
    functionName: select_select
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_select_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_select(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:91,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:94,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:100,1
    - Dst: select_poll_register_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:104,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - pollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: select_poll_register
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_poll_register_impl
    - _PyLong_UnsignedShort_Converter
    - fildes_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_register(pollObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:139,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:142,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:145,1
    - Dst: select_poll_modify_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:148,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - pollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: select_poll_modify
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedShort_Converter
    - fildes_converter
    - select_poll_modify_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_modify(pollObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:176,1
    - Dst: select_poll_unregister_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - pollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: select_poll_unregister
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_poll_unregister_impl
    - fildes_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_unregister(pollObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:210,1
    - Dst: select_poll_poll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - pollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: select_poll_poll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_poll_poll_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll_poll(pollObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:254,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:257,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:263,1
    - Dst: select_devpoll_register_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - devpollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 271
    functionName: select_devpoll_register
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyLong_UnsignedShort_Converter
    - fildes_converter
    - select_devpoll_register_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_register(devpollObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:303,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:306,1
    - Dst: _PyLong_UnsignedShort_Converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:312,1
    - Dst: select_devpoll_modify_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - devpollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: select_devpoll_modify
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_devpoll_modify_impl
    - _PyLong_UnsignedShort_Converter
    - fildes_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_modify(devpollObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:344,1
    - Dst: select_devpoll_unregister_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 351
    functionName: select_devpoll_unregister
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_devpoll_unregister_impl
    - fildes_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_unregister(devpollObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:378,1
    - Dst: select_devpoll_poll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - devpollObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: select_devpoll_poll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_devpoll_poll_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_poll(devpollObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_devpoll_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: select_devpoll_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_devpoll_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_close(devpollObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_devpoll_fileno_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - devpollObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: select_devpoll_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_devpoll_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll_fileno(devpollObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_poll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 3
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: select_poll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_poll_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_poll(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_devpoll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: select_devpoll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_devpoll_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_devpoll(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:518,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:519,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:523,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:523,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:531,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:532,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:536,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:537,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:544,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:545,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:549,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:550,1
    - Dst: select_epoll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:554,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 558
    functionName: select_epoll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - select_epoll_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_epoll_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: select_epoll_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_close(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_epoll_fileno_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 604
    functionName: select_epoll_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fileno(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:628,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:629,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:633,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:634,1
    - Dst: select_epoll_fromfd_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: select_epoll_fromfd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - select_epoll_fromfd_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_fromfd(PyTypeObject *type, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:674,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:678,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:682,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:688,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:689,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:693,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:694,1
    - Dst: select_epoll_register_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:698,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - pyEpoll_Object*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 702
    functionName: select_epoll_register
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - select_epoll_register_impl
    - fildes_converter
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyLong_AsUnsignedLongMask
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_register(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:736,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:740,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:744,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:748,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:749,1
    - Dst: select_epoll_modify_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:752,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - pyEpoll_Object*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 756
    functionName: select_epoll_modify
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - select_epoll_modify_impl
    - fildes_converter
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyLong_AsUnsignedLongMask
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_modify(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:786,1
    - Dst: fildes_converter
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:790,1
    - Dst: select_epoll_unregister_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:793,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - pyEpoll_Object*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 777
    functionDepth: 4
    functionLinenumber: 777
    functionLinenumberEnd: 797
    functionName: select_epoll_unregister
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll_unregister_impl
    - fildes_converter
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_unregister(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:832,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:836,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:849,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:850,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:854,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:855,1
    - Dst: select_epoll_poll_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:859,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - pyEpoll_Object*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 863
    functionName: select_epoll_poll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - select_epoll_poll_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll_poll(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_epoll___enter___impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - pyEpoll_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 884
    functionName: select_epoll___enter__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_epoll___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___enter__(pyEpoll_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:910,1
    - Dst: select_epoll___exit___impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:926,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - pyEpoll_Object*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 930
    functionName: select_epoll___exit__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - select_epoll___exit___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_epoll___exit__(pyEpoll_Object *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:963,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:967,1
    - Dst: select_kqueue_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 974
    functionName: select_kqueue
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - _PyArg_NoPositional
    - select_kqueue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_kqueue_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - kqueue_queue_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: select_kqueue_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_kqueue_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_close(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select_kqueue_fileno_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - kqueue_queue_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: select_kqueue_fileno
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - select_kqueue_fileno_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fileno(kqueue_queue_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1044,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1045,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1049,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1050,1
    - Dst: select_kqueue_fromfd_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1053,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1038
    functionDepth: 3
    functionLinenumber: 1038
    functionLinenumberEnd: 1057
    functionName: select_kqueue_fromfd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - select_kqueue_fromfd_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_fromfd(PyTypeObject *type, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1093,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1097,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1098,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1102,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1103,1
    - Dst: select_kqueue_control_impl
      Src: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h:1111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - kqueue_queue_Object*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1115
    functionName: select_kqueue_control
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - select_kqueue_control_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      select_kqueue_control(kqueue_queue_Object *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_is_tracing_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _tracemalloc_is_tracing
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_is_tracing_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_is_tracing(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_clear_traces_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _tracemalloc_clear_traces
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_clear_traces_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_clear_traces(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc__get_traces_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: _tracemalloc__get_traces
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc__get_traces_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc__get_traces(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:98,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:105,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:109,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:110,1
    - Dst: _tracemalloc_start_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: _tracemalloc_start
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _tracemalloc_start_impl
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_start(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_stop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 6
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: _tracemalloc_stop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_stop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_stop(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_get_traceback_limit_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: _tracemalloc_get_traceback_limit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_get_traceback_limit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traceback_limit(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_get_tracemalloc_memory_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: _tracemalloc_get_tracemalloc_memory
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_get_tracemalloc_memory_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_tracemalloc_memory(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _tracemalloc_get_traced_memory_impl
      Src: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: _tracemalloc_get_traced_memory
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
    functionUses: 0
    functionsReached:
    - _tracemalloc_get_traced_memory_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _tracemalloc_get_traced_memory(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:42,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:44,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:49,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:55,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:61,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:68,1
    - Dst: _curses_window_addch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:71,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 75
    functionName: _curses_window_addch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_addch_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:114,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:116,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:121,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:127,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:133,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:140,1
    - Dst: _curses_window_addstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:143,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: _curses_window_addstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_addstr_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addstr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:189,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:191,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:196,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:202,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:208,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:215,1
    - Dst: _curses_window_addnstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:218,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 222
    functionName: _curses_window_addnstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_addnstr_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_addnstr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:248,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:256,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:260,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:261,1
    - Dst: _curses_window_bkgd_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: _curses_window_bkgd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_bkgd_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgd(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:289,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:290,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:294,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:295,1
    - Dst: _curses_window_attroff_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: _curses_window_attroff
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _curses_window_attroff_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attroff(PyCursesWindowObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:322,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:323,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:327,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:328,1
    - Dst: _curses_window_attron_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 335
    functionName: _curses_window_attron
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_window_attron_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attron(PyCursesWindowObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:355,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:356,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:360,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:361,1
    - Dst: _curses_window_attrset_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:364,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: _curses_window_attrset
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_window_attrset_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_attrset(PyCursesWindowObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:395,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:402,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:403,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:407,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:408,1
    - Dst: _curses_window_bkgdset_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 416
    functionName: _curses_window_bkgdset
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_bkgdset_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_bkgdset(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:471,1
    - Dst: _curses_window_border_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:507,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 511
    functionName: _curses_window_border
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _curses_window_border_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_border(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:540,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:544,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:550,1
    - Dst: _curses_window_box_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 532
    functionDepth: 3
    functionLinenumber: 532
    functionLinenumberEnd: 557
    functionName: _curses_window_box
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_box_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_box(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:583,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:587,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:593,1
    - Dst: _curses_window_delch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 600
    functionName: _curses_window_delch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_delch_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_delch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:636,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:638,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:643,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:649,1
    - Dst: _curses_window_derwin_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 656
    functionName: _curses_window_derwin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_derwin_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_derwin(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:683,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:690,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:691,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:695,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:696,1
    - Dst: _curses_window_echochar_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:700,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 704
    functionName: _curses_window_echochar
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_window_echochar_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_echochar(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:733,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:736,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:737,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:741,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:742,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:745,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:746,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:751,1
    - Dst: _curses_window_enclose_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:754,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:755,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:758,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 762
    functionName: _curses_window_enclose
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_window_enclose_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_enclose(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _curses_window_getbkgd_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:784,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:785,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 792
    functionName: _curses_window_getbkgd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _curses_window_getbkgd_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getbkgd(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:823,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:827,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:833,1
    - Dst: _curses_window_getch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:836,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:837,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:840,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 844
    functionName: _curses_window_getch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _curses_window_getch_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:874,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:878,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:884,1
    - Dst: _curses_window_getkey_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 891
    functionName: _curses_window_getkey
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_getkey_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_getkey(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:922,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:926,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:932,1
    - Dst: _curses_window_get_wch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:935,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 939
    functionName: _curses_window_get_wch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_get_wch_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_get_wch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:978,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:980,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:985,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:991,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:997,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1004,1
    - Dst: _curses_window_hline_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1007,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1011
    functionName: _curses_window_hline
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_hline_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_hline(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1048,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1050,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1055,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1061,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1067,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1074,1
    - Dst: _curses_window_insch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1077,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1081
    functionName: _curses_window_insch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_insch_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1110,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1114,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1120,1
    - Dst: _curses_window_inch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1124,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1131
    functionName: _curses_window_inch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_inch_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_inch(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1171,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1173,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1178,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1184,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1197,1
    - Dst: _curses_window_insstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1200,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1160
    functionDepth: 3
    functionLinenumber: 1160
    functionLinenumberEnd: 1204
    functionName: _curses_window_insstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_insstr_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insstr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1248,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1250,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1255,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1261,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1267,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1274,1
    - Dst: _curses_window_insnstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1277,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1236
    functionDepth: 3
    functionLinenumber: 1236
    functionLinenumberEnd: 1281
    functionName: _curses_window_insnstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_insnstr_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_insnstr(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1306,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1307,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1311,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1312,1
    - Dst: _curses_window_is_linetouched_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1300
    functionDepth: 2
    functionLinenumber: 1300
    functionLinenumberEnd: 1319
    functionName: _curses_window_is_linetouched
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_window_is_linetouched_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_is_linetouched(PyCursesWindowObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1352,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1356,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1362,1
    - Dst: _curses_window_noutrefresh_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1369
    functionName: _curses_window_noutrefresh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_noutrefresh_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_window_noutrefresh_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1391
    functionDepth: 2
    functionLinenumber: 1391
    functionLinenumberEnd: 1395
    functionName: _curses_window_noutrefresh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_noutrefresh_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_noutrefresh(PyCursesWindowObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1434,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1436,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1447,1
    - Dst: _curses_window_overlay_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1421
    functionDepth: 1
    functionLinenumber: 1421
    functionLinenumberEnd: 1454
    functionName: _curses_window_overlay
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_overlay_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_overlay(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1493,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1495,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1500,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1506,1
    - Dst: _curses_window_overwrite_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1513
    functionName: _curses_window_overwrite
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_overwrite_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_overwrite(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1552,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1555,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1556,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1560,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1561,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1564,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1565,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1569,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1570,1
    - Dst: _curses_window_redrawln_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1573,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1577
    functionName: _curses_window_redrawln
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_window_redrawln_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_redrawln(PyCursesWindowObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1615,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1619,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1625,1
    - Dst: _curses_window_refresh_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1603
    functionDepth: 2
    functionLinenumber: 1603
    functionLinenumberEnd: 1632
    functionName: _curses_window_refresh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_refresh_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_refresh(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1661,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1664,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1665,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1669,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1670,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1673,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1674,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1678,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1679,1
    - Dst: _curses_window_setscrreg_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1682,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyCursesWindowObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1686
    functionName: _curses_window_setscrreg
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_setscrreg_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_setscrreg(PyCursesWindowObject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1721,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1723,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1728,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1734,1
    - Dst: _curses_window_subwin_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1737,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1711
    functionDepth: 3
    functionLinenumber: 1711
    functionLinenumberEnd: 1741
    functionName: _curses_window_subwin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_subwin_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_subwin(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1766,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1770,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1776,1
    - Dst: _curses_window_scroll_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1759
    functionDepth: 1
    functionLinenumber: 1759
    functionLinenumberEnd: 1783
    functionName: _curses_window_scroll
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_scroll_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_scroll(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1808,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1810,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1815,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1821,1
    - Dst: _curses_window_touchline_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1824,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1828
    functionName: _curses_window_touchline
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_touchline_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_touchline(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1865,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1867,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1872,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1878,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1884,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1891,1
    - Dst: _curses_window_vline_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1894,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyCursesWindowObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1853
    functionDepth: 3
    functionLinenumber: 1853
    functionLinenumberEnd: 1898
    functionName: _curses_window_vline
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_window_vline_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_window_vline(PyCursesWindowObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_filter_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1917
    functionName: _curses_filter
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_filter_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_filter(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_baudrate_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1937
    functionName: _curses_baudrate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_baudrate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_baudrate(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_beep_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1955
    functionName: _curses_beep
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_beep_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_beep(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_can_change_color_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1973
    functionName: _curses_can_change_color
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_can_change_color_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_can_change_color(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2002,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2008,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2009,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2013,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2014,1
    - Dst: _curses_cbreak_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2018,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2022
    functionName: _curses_cbreak
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_cbreak_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_cbreak(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2048,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2049,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2054,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2055,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2059,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2064,1
    - Dst: _curses_color_content_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2072,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2076
    functionName: _curses_color_content
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _curses_color_content_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_content(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2103,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2118,1
    - Dst: _curses_color_pair_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2096
    functionDepth: 2
    functionLinenumber: 2096
    functionLinenumberEnd: 2130
    functionName: _curses_color_pair
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_color_pair_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_color_pair(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2159,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2163,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2164,1
    - Dst: _curses_curs_set_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2152
    functionDepth: 1
    functionLinenumber: 2152
    functionLinenumberEnd: 2171
    functionName: _curses_curs_set
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyFloat_Check
    - PyErr_SetString
    - _PyLong_AsInt
    - _curses_curs_set_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_curs_set(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_def_prog_mode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2193
    functionName: _curses_def_prog_mode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_def_prog_mode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_def_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_def_shell_mode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: _curses_def_shell_mode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_def_shell_mode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_def_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2238,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2239,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2243,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2244,1
    - Dst: _curses_delay_output_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2251
    functionName: _curses_delay_output
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_delay_output_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_delay_output(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_doupdate_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2265
    functionDepth: 0
    functionLinenumber: 2265
    functionLinenumberEnd: 2269
    functionName: _curses_doupdate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_doupdate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_doupdate(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2294,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2301,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2305,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2306,1
    - Dst: _curses_echo_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2314
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2314
    functionName: _curses_echo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_echo_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_echo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_endwin_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2332
    functionName: _curses_endwin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_endwin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_endwin(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_erasechar_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2350
    functionName: _curses_erasechar
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_erasechar_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_erasechar(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_flash_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2366
    functionDepth: 0
    functionLinenumber: 2366
    functionLinenumberEnd: 2370
    functionName: _curses_flash
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_flash_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_flash(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_flushinp_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2387
    functionDepth: 0
    functionLinenumber: 2387
    functionLinenumberEnd: 2391
    functionName: _curses_flushinp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_flushinp_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_flushinp(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_getsyx_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2409
    functionDepth: 2
    functionLinenumber: 2409
    functionLinenumberEnd: 2413
    functionName: _curses_getsyx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_getsyx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getsyx(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_getmouse_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2434
    functionDepth: 2
    functionLinenumber: 2434
    functionLinenumberEnd: 2438
    functionName: _curses_getmouse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_getmouse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_getmouse(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2469,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2472,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2473,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2478,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2483,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2488,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2497,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2501,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2502,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2505,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2506,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2510,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2511,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2514,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2515,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2519,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2520,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2523,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2524,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2527,1
    - Dst: _curses_ungetmouse_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2528,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 67
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2459
    functionDepth: 1
    functionLinenumber: 2459
    functionLinenumberEnd: 2532
    functionName: _curses_ungetmouse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - _curses_ungetmouse_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyErr_SetString
    - PyLong_AsUnsignedLongMask
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_ungetmouse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2572,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2577,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2578,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2582,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2587,1
    - Dst: _curses_halfdelay_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2595,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2599
    functionName: _curses_halfdelay
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_halfdelay_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_halfdelay(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_has_colors_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2613
    functionDepth: 0
    functionLinenumber: 2613
    functionLinenumberEnd: 2617
    functionName: _curses_has_colors
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_has_colors_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_colors(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_has_ic_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2635
    functionName: _curses_has_ic
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_has_ic_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_ic(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_has_il_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2649
    functionDepth: 0
    functionLinenumber: 2649
    functionLinenumberEnd: 2653
    functionName: _curses_has_il
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_has_il_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_il(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2678,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2679,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2683,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2684,1
    - Dst: _curses_has_key_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2672
    functionDepth: 2
    functionLinenumber: 2672
    functionLinenumberEnd: 2691
    functionName: _curses_has_key
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_has_key_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_has_key(PyObject *module, PyObject *arg)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2730,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2734,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2739,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2740,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2744,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2749,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2757,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2758,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2763,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2764,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2773,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2782,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2787,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2788,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2792,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2797,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2805,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2806,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2811,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2812,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2816,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2821,1
    - Dst: _curses_init_color_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2829,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 97
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2721
    functionDepth: 1
    functionLinenumber: 2721
    functionLinenumberEnd: 2833
    functionName: _curses_init_color
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_init_color_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_init_color(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2866,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2869,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2870,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2875,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2876,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2880,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2885,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2893,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2894,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2899,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2900,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2904,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2909,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2917,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2918,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2923,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2924,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2928,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2933,1
    - Dst: _curses_init_pair_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2941,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2945
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2945
    functionName: _curses_init_pair
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_init_pair_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_init_pair(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_initscr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2961
    functionDepth: 3
    functionLinenumber: 2961
    functionLinenumberEnd: 2965
    functionName: _curses_initscr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_initscr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_initscr(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2993,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:2997,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3008,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3010,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3014,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3015,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3020,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3027,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3028,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3032,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3033,1
    - Dst: _curses_setupterm_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3037,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3041
      start: 2986
    functionDepth: 2
    functionLinenumber: 2986
    functionLinenumberEnd: 3041
    functionName: _curses_setupterm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _curses_setupterm_impl
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3060,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3061,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3065,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3066,1
    - Dst: _curses_intrflush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3054
    functionDepth: 1
    functionLinenumber: 3054
    functionLinenumberEnd: 3073
    functionName: _curses_intrflush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_intrflush_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_intrflush(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_isendwin_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3087
    functionDepth: 0
    functionLinenumber: 3087
    functionLinenumberEnd: 3091
    functionName: _curses_isendwin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_isendwin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_isendwin(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3119,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3122,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3123,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3127,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3128,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3131,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3132,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3136,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3137,1
    - Dst: _curses_is_term_resized_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3140,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3112
    functionDepth: 2
    functionLinenumber: 3112
    functionLinenumberEnd: 3144
    functionName: _curses_is_term_resized
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_is_term_resized_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_is_term_resized(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3170,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3174,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3175,1
    - Dst: _curses_keyname_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3163
    functionDepth: 2
    functionLinenumber: 3163
    functionLinenumberEnd: 3182
    functionName: _curses_keyname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_keyname_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_keyname(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_killchar_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3196
    functionDepth: 2
    functionLinenumber: 3196
    functionLinenumberEnd: 3200
    functionName: _curses_killchar
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_killchar_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_killchar(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_longname_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3221
      start: 3217
    functionDepth: 0
    functionLinenumber: 3217
    functionLinenumberEnd: 3221
    functionName: _curses_longname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_longname_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_longname(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3244,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3245,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3249,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3250,1
    - Dst: _curses_meta_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3238
    functionDepth: 1
    functionLinenumber: 3238
    functionLinenumberEnd: 3257
    functionName: _curses_meta
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_meta_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_meta(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3286,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3287,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3291,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3292,1
    - Dst: _curses_mouseinterval_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3295,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3299
      start: 3280
    functionDepth: 1
    functionLinenumber: 3280
    functionLinenumberEnd: 3299
    functionName: _curses_mouseinterval
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_mouseinterval_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mouseinterval(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3328,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3329,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3332,1
    - Dst: _curses_mousemask_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3322
    functionDepth: 2
    functionLinenumber: 3322
    functionLinenumberEnd: 3337
    functionName: _curses_mousemask
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _curses_mousemask_impl
    - _PyArg_BadArgument
    - PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_mousemask(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3363,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3367,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3368,1
    - Dst: _curses_napms_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3356
    functionDepth: 2
    functionLinenumber: 3356
    functionLinenumberEnd: 3375
    functionName: _curses_napms
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_napms_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_napms(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3401,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3404,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3405,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3409,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3410,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3413,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3414,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3418,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3419,1
    - Dst: _curses_newpad_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3394
    functionDepth: 3
    functionLinenumber: 3394
    functionLinenumberEnd: 3426
    functionName: _curses_newpad
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _curses_newpad_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_newpad(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3461,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3463,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3468,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3474,1
    - Dst: _curses_newwin_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3477,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - module
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3481
      start: 3451
    functionDepth: 3
    functionLinenumber: 3451
    functionLinenumberEnd: 3481
    functionName: _curses_newwin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_newwin_impl
    - PyArg_ParseTuple
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_newwin(PyObject *module, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3507,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3513,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3514,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3518,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3519,1
    - Dst: _curses_nl_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3527
      start: 3501
    functionDepth: 1
    functionLinenumber: 3501
    functionLinenumberEnd: 3527
    functionName: _curses_nl
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_nl_impl
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_nl(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_nocbreak_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3543
    functionDepth: 0
    functionLinenumber: 3543
    functionLinenumberEnd: 3547
    functionName: _curses_nocbreak
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_nocbreak_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_nocbreak(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_noecho_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3563
    functionDepth: 0
    functionLinenumber: 3563
    functionLinenumberEnd: 3567
    functionName: _curses_noecho
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_noecho_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_noecho(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_nonl_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3588
    functionName: _curses_nonl
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_nonl_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_nonl(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_noqiflush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3609
      start: 3605
    functionDepth: 0
    functionLinenumber: 3605
    functionLinenumberEnd: 3609
    functionName: _curses_noqiflush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_noqiflush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_noqiflush(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_noraw_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3629
      start: 3625
    functionDepth: 0
    functionLinenumber: 3625
    functionLinenumberEnd: 3629
    functionName: _curses_noraw
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_noraw_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_noraw(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3652,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3653,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3658,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3659,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3663,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3668,1
    - Dst: _curses_pair_content_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3676,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3646
    functionDepth: 2
    functionLinenumber: 3646
    functionLinenumberEnd: 3680
    functionName: _curses_pair_content
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_pair_content_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_content(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3702,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3703,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3707,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3708,1
    - Dst: _curses_pair_number_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3696
    functionDepth: 2
    functionLinenumber: 3696
    functionLinenumberEnd: 3715
    functionName: _curses_pair_number
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_pair_number_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_pair_number(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3737,1
    - Dst: _curses_putp_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3731
    functionDepth: 1
    functionLinenumber: 3731
    functionLinenumberEnd: 3744
    functionName: _curses_putp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_putp_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_putp(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3770,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3776,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3777,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3781,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3782,1
    - Dst: _curses_qiflush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3786,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3764
    functionDepth: 1
    functionLinenumber: 3764
    functionLinenumberEnd: 3790
    functionName: _curses_qiflush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_qiflush_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_qiflush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _curses_update_lines_cols_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3811,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3812,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3819
      start: 3805
    functionDepth: 3
    functionLinenumber: 3805
    functionLinenumberEnd: 3819
    functionName: _curses_update_lines_cols
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _curses_update_lines_cols_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_update_lines_cols(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3848,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3854,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3855,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3859,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3860,1
    - Dst: _curses_raw_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3864,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3842
    functionDepth: 1
    functionLinenumber: 3842
    functionLinenumberEnd: 3868
    functionName: _curses_raw
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_raw_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_raw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_reset_prog_mode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3886
      start: 3882
    functionDepth: 0
    functionLinenumber: 3882
    functionLinenumberEnd: 3886
    functionName: _curses_reset_prog_mode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_reset_prog_mode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_reset_prog_mode(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_reset_shell_mode_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3904
      start: 3900
    functionDepth: 0
    functionLinenumber: 3900
    functionLinenumberEnd: 3904
    functionName: _curses_reset_shell_mode
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_reset_shell_mode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_reset_shell_mode(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_resetty_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3922
      start: 3918
    functionDepth: 0
    functionLinenumber: 3918
    functionLinenumberEnd: 3922
    functionName: _curses_resetty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_resetty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resetty(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3953,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3956,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3957,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3961,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3962,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3965,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3966,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3970,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3971,1
    - Dst: _curses_resizeterm_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:3974,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3978
      start: 3946
    functionDepth: 3
    functionLinenumber: 3946
    functionLinenumberEnd: 3978
    functionName: _curses_resizeterm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_resizeterm_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resizeterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4014,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4017,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4018,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4022,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4023,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4026,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4027,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4031,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4032,1
    - Dst: _curses_resize_term_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4035,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4007
    functionDepth: 3
    functionLinenumber: 4007
    functionLinenumberEnd: 4039
    functionName: _curses_resize_term
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_resize_term_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_resize_term(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_savetty_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4059
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4059
    functionName: _curses_savetty
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_savetty_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_savetty(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4089,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4092,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4093,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4097,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4098,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4101,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4102,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4106,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4107,1
    - Dst: _curses_setsyx_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4110,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4114
      start: 4082
    functionDepth: 1
    functionLinenumber: 4082
    functionLinenumberEnd: 4114
    functionName: _curses_setsyx
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _curses_setsyx_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_setsyx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_start_color_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4137
    functionDepth: 2
    functionLinenumber: 4137
    functionLinenumberEnd: 4141
    functionName: _curses_start_color
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_start_color_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_start_color(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_termattrs_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4159
      start: 4155
    functionDepth: 0
    functionLinenumber: 4155
    functionLinenumberEnd: 4159
    functionName: _curses_termattrs
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_termattrs_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_termattrs(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_termname_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4177
      start: 4173
    functionDepth: 0
    functionLinenumber: 4173
    functionLinenumberEnd: 4177
    functionName: _curses_termname
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_termname_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_termname(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4203,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4204,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4208,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4212,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4213,1
    - Dst: _curses_tigetflag_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4216,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4197
    functionDepth: 1
    functionLinenumber: 4197
    functionLinenumberEnd: 4220
    functionName: _curses_tigetflag
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetflag_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetflag(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4246,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4247,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4251,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4256,1
    - Dst: _curses_tigetnum_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4263
      start: 4240
    functionDepth: 1
    functionLinenumber: 4240
    functionLinenumberEnd: 4263
    functionName: _curses_tigetnum
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - _curses_tigetnum_impl
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetnum(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4289,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4290,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4294,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4298,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4299,1
    - Dst: _curses_tigetstr_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4306
      start: 4283
    functionDepth: 2
    functionLinenumber: 4283
    functionLinenumberEnd: 4306
    functionName: _curses_tigetstr
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tigetstr_impl
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tigetstr(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4340,1
    - Dst: _curses_tparm_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4348
      start: 4325
    functionDepth: 2
    functionLinenumber: 4325
    functionLinenumberEnd: 4348
    functionName: _curses_tparm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_tparm_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_tparm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4375,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4376,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4380,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4381,1
    - Dst: _curses_typeahead_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4388
      start: 4369
    functionDepth: 1
    functionLinenumber: 4369
    functionLinenumberEnd: 4388
    functionName: _curses_typeahead
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _curses_typeahead_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_typeahead(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4455,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4456,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4460,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4461,1
    - Dst: _curses_use_env_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4468
      start: 4449
    functionDepth: 1
    functionLinenumber: 4449
    functionLinenumberEnd: 4468
    functionName: _curses_use_env
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _curses_use_env_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_env(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _curses_use_default_colors_impl
      Src: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h:4492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4493
      start: 4489
    functionDepth: 2
    functionLinenumber: 4489
    functionLinenumberEnd: 4493
    functionName: _curses_use_default_colors
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
    functionUses: 0
    functionsReached:
    - _curses_use_default_colors_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _curses_use_default_colors(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _operator_truth_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:23,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:24,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: _operator_truth
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _operator_truth_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_truth(PyObject *module, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:52,1
    - Dst: _operator_add_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 61
    functionName: _operator_add
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_add_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:82,1
    - Dst: _operator_sub_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: _operator_sub
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_sub_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_sub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:112,1
    - Dst: _operator_mul_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: _operator_mul
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_mul_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_mul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:142,1
    - Dst: _operator_matmul_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: _operator_matmul
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_matmul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_matmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:172,1
    - Dst: _operator_floordiv_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: _operator_floordiv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_floordiv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_floordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:202,1
    - Dst: _operator_truediv_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: _operator_truediv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_truediv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_truediv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:232,1
    - Dst: _operator_mod_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: _operator_mod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_mod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_mod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:307,1
    - Dst: _operator_lshift_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 316
    functionName: _operator_lshift
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_lshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_lshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:337,1
    - Dst: _operator_rshift_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 346
    functionName: _operator_rshift
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_rshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_rshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _operator_not__impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:366,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:367,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - a
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 374
    functionName: _operator_not_
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _operator_not__impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_not_(PyObject *module, PyObject *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:395,1
    - Dst: _operator_and__impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: _operator_and_
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_and__impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_and_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:425,1
    - Dst: _operator_xor_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 434
    functionName: _operator_xor
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_xor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_xor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:455,1
    - Dst: _operator_or__impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 464
    functionName: _operator_or_
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_or__impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_or_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:485,1
    - Dst: _operator_iadd_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 494
    functionName: _operator_iadd
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_iadd_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iadd(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:515,1
    - Dst: _operator_isub_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 524
    functionName: _operator_isub
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_isub_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_isub(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:545,1
    - Dst: _operator_imul_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 554
    functionName: _operator_imul
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_imul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:575,1
    - Dst: _operator_imatmul_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 584
    functionName: _operator_imatmul
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_imatmul_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imatmul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:605,1
    - Dst: _operator_ifloordiv_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 614
    functionName: _operator_ifloordiv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ifloordiv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ifloordiv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:635,1
    - Dst: _operator_itruediv_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 644
    functionName: _operator_itruediv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_itruediv_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_itruediv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:665,1
    - Dst: _operator_imod_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 674
    functionName: _operator_imod
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_imod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_imod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:695,1
    - Dst: _operator_ilshift_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 704
    functionName: _operator_ilshift
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ilshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ilshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:725,1
    - Dst: _operator_irshift_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 734
    functionName: _operator_irshift
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_irshift_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_irshift(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:755,1
    - Dst: _operator_iand_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 764
    functionName: _operator_iand
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_iand_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iand(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:785,1
    - Dst: _operator_ixor_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 794
    functionName: _operator_ixor
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ixor_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ixor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:815,1
    - Dst: _operator_ior_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:820,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 824
    functionName: _operator_ior
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ior_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ior(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:845,1
    - Dst: _operator_concat_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 854
    functionName: _operator_concat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_concat_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_concat(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:875,1
    - Dst: _operator_iconcat_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 884
    functionName: _operator_iconcat
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_iconcat_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_iconcat(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:906,1
    - Dst: _operator_contains_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:911,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:912,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 919
    functionName: _operator_contains
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _PyArg_CheckPositional
    - _operator_contains_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_contains(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:941,1
    - Dst: _operator_indexOf_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:946,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:947,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 954
    functionName: _operator_indexOf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _operator_indexOf_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_indexOf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:976,1
    - Dst: _operator_countOf_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:981,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:982,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:985,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 989
    functionName: _operator_countOf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - _operator_countOf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_countOf(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1010,1
    - Dst: _operator_getitem_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1019
    functionName: _operator_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_getitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_getitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1042,1
    - Dst: _operator_setitem_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: _operator_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_setitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_setitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1073,1
    - Dst: _operator_delitem_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1082
    functionName: _operator_delitem
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_delitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_delitem(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1103,1
    - Dst: _operator_eq_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1112
    functionName: _operator_eq
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_eq_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_eq(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1133,1
    - Dst: _operator_ne_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1126
    functionDepth: 2
    functionLinenumber: 1126
    functionLinenumberEnd: 1142
    functionName: _operator_ne
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_ne_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ne(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1163,1
    - Dst: _operator_lt_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1172
    functionName: _operator_lt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_lt_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_lt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1193,1
    - Dst: _operator_le_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1186
    functionDepth: 2
    functionLinenumber: 1186
    functionLinenumberEnd: 1202
    functionName: _operator_le
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_le_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_le(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1223,1
    - Dst: _operator_gt_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1216
    functionDepth: 2
    functionLinenumber: 1216
    functionLinenumberEnd: 1232
    functionName: _operator_gt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_gt_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_gt(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1253,1
    - Dst: _operator_ge_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1262
    functionName: _operator_ge
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ge_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ge(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1283,1
    - Dst: _operator_pow_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1292
    functionName: _operator_pow
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_pow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1313,1
    - Dst: _operator_ipow_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1322
    functionName: _operator_ipow
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_ipow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_ipow(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1352,1
    - Dst: _operator_is__impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1361
    functionName: _operator_is_
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator_is__impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1382,1
    - Dst: _operator_is_not_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1391
    functionName: _operator_is_not
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _operator_is_not_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_is_not(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1420,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1428,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1434,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1437,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1439,1
    - Dst: _operator_length_hint_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1445,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1446,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1449,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1412
    functionDepth: 2
    functionLinenumber: 1412
    functionLinenumberEnd: 1453
    functionName: _operator_length_hint
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _operator_length_hint_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyLong_FromSsize_t
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator_length_hint(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1484,1
    - Dst: _operator__compare_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/_operator.c.h:1489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1477
    functionDepth: 2
    functionLinenumber: 1477
    functionLinenumberEnd: 1493
    functionName: _operator__compare_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_operator.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _operator__compare_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _operator__compare_digest(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:24,1
    - Dst: _heapq_heappush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: _heapq_heappush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _heapq_heappush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappush(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:71,1
    - Dst: _heapq_heapreplace_impl
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: _heapq_heapreplace
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - _heapq_heapreplace_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heapreplace(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:104,1
    - Dst: _heapq_heappushpop_impl
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: _heapq_heappushpop
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _heapq_heappushpop_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq_heappushpop(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:153,1
    - Dst: _heapq__heapreplace_max_impl
      Src: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: _heapq__heapreplace_max
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
    functionUses: 0
    functionsReached:
    - _heapq__heapreplace_max_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _heapq__heapreplace_max(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:27,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:34,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:35,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:39,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:40,1
    - Dst: pyexpat_xmlparser_Parse_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:44,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - xmlparseobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: pyexpat_xmlparser_Parse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - pyexpat_xmlparser_Parse_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_Parse(xmlparseobject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:77,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:78,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:82,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:86,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:87,1
    - Dst: pyexpat_xmlparser_SetBase_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - xmlparseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: pyexpat_xmlparser_SetBase
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - pyexpat_xmlparser_SetBase_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetBase(xmlparseobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_xmlparser_GetBase_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - xmlparseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: pyexpat_xmlparser_GetBase
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_GetBase_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetBase(xmlparseobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyexpat_xmlparser_GetInputContext_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - xmlparseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: pyexpat_xmlparser_GetInputContext
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_GetInputContext_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_GetInputContext(xmlparseobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:157,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:163,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:165,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:170,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:175,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:181,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:182,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:186,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:191,1
    - Dst: pyexpat_xmlparser_ExternalEntityParserCreate_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:195,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - xmlparseobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 199
    functionName: pyexpat_xmlparser_ExternalEntityParserCreate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_xmlparser_ExternalEntityParserCreate_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_ExternalEntityParserCreate(xmlparseobject *self, PyObject
      *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:225,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:229,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:230,1
    - Dst: pyexpat_xmlparser_SetParamEntityParsing_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - xmlparseobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 237
    functionName: pyexpat_xmlparser_SetParamEntityParsing
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - pyexpat_xmlparser_SetParamEntityParsing_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_SetParamEntityParsing(xmlparseobject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:263,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:269,1
    - Dst: pyexpat_xmlparser_UseForeignDTD_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - xmlparseobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: pyexpat_xmlparser_UseForeignDTD
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - pyexpat_xmlparser_UseForeignDTD_impl
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_xmlparser_UseForeignDTD(xmlparseobject *self, PyObject *const *args,
      Py_ssize_t nargs)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:303,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:308,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:319,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:321,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:326,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:331,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:342,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:344,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:348,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:349,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:354,1
    - Dst: pyexpat_ParserCreate_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:363,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 367
    functionName: pyexpat_ParserCreate
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_ParserCreate_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:387,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:388,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:392,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:393,1
    - Dst: pyexpat_ErrorString_impl
      Src: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h:396,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 400
    functionName: pyexpat_ErrorString
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
    functionUses: 0
    functionsReached:
    - pyexpat_ErrorString_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pyexpat_ErrorString(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:29,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:32,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:33,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:36,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:39,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:40,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:43,1
    - Dst: unicodedata_UCD_decimal_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:49,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 53
    functionName: unicodedata_UCD_decimal
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - unicodedata_UCD_decimal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decimal(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:78,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:81,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:82,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:85,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:88,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:89,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:92,1
    - Dst: unicodedata_UCD_digit_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:98,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: unicodedata_UCD_digit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - unicodedata_UCD_digit_impl
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_digit(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:128,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:131,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:132,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:135,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:138,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:139,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:142,1
    - Dst: unicodedata_UCD_numeric_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: unicodedata_UCD_numeric
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - unicodedata_UCD_numeric_impl
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_numeric(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:172,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:173,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:176,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:179,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:180,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:183,1
    - Dst: unicodedata_UCD_category_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 188
    functionName: unicodedata_UCD_category
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_BadArgument
    - unicodedata_UCD_category_impl
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_category(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:210,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:211,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:214,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:217,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:218,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:221,1
    - Dst: unicodedata_UCD_bidirectional_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: unicodedata_UCD_bidirectional
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - unicodedata_UCD_bidirectional_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_bidirectional(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:249,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:250,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:253,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:256,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:257,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:260,1
    - Dst: unicodedata_UCD_combining_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:261,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:262,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 269
    functionName: unicodedata_UCD_combining
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_BadArgument
    - unicodedata_UCD_combining_impl
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_combining(PyObject *self, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:293,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:294,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:297,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:300,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:301,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:304,1
    - Dst: unicodedata_UCD_mirrored_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:305,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:306,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:309,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 313
    functionName: unicodedata_UCD_mirrored
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - unicodedata_UCD_mirrored_impl
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_mirrored(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:333,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:334,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:337,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:340,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:341,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:344,1
    - Dst: unicodedata_UCD_east_asian_width_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: unicodedata_UCD_east_asian_width
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - unicodedata_UCD_east_asian_width_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_east_asian_width(PyObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:371,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:372,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:375,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:378,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:379,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:382,1
    - Dst: unicodedata_UCD_decomposition_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 387
    functionName: unicodedata_UCD_decomposition
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - unicodedata_UCD_decomposition_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_decomposition(PyObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:411,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:414,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:415,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:418,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:422,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:423,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:426,1
    - Dst: unicodedata_UCD_is_normalized_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:430,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 434
    functionName: unicodedata_UCD_is_normalized
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - unicodedata_UCD_is_normalized_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_is_normalized(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:458,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:461,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:462,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:465,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:469,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:470,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:473,1
    - Dst: unicodedata_UCD_normalize_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:477,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 451
    functionDepth: 5
    functionLinenumber: 451
    functionLinenumberEnd: 481
    functionName: unicodedata_UCD_normalize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_normalize_impl
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_normalize(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:505,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:508,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:509,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:512,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:515,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:516,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:519,1
    - Dst: unicodedata_UCD_name_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:525,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 529
    functionName: unicodedata_UCD_name
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - unicodedata_UCD_name_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_name(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:554,1
    - Dst: unicodedata_UCD_lookup_impl
      Src: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 547
    functionDepth: 5
    functionLinenumber: 547
    functionLinenumberEnd: 561
    functionName: unicodedata_UCD_lookup
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
    functionUses: 0
    functionsReached:
    - unicodedata_UCD_lookup_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodedata_UCD_lookup(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _sre_getcodesize_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:22,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:23,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: _sre_getcodesize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _sre_getcodesize_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_getcodesize(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:50,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:51,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:55,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:56,1
    - Dst: _sre_ascii_iscased_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:60,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: _sre_ascii_iscased
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sre_ascii_iscased_impl
    - PyErr_SetString
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_ascii_iscased(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:87,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:88,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:92,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:93,1
    - Dst: _sre_unicode_iscased_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:96,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:97,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: _sre_unicode_iscased
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _sre_unicode_iscased_impl
    - PyErr_SetString
    - PyBool_FromLong
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_unicode_iscased(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:124,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:125,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:129,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:130,1
    - Dst: _sre_ascii_tolower_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:133,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:134,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: _sre_ascii_tolower
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - _sre_ascii_tolower_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_ascii_tolower(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:161,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:162,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:166,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:167,1
    - Dst: _sre_unicode_tolower_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:170,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:171,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:174,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 178
    functionName: _sre_unicode_tolower
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyErr_SetString
    - _sre_unicode_tolower_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_unicode_tolower(PyObject *module, PyObject *arg)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:200,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:205,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:214,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:215,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:221,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:224,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:226,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:235,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:236,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:242,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:245,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:247,1
    - Dst: _sre_SRE_Pattern_match_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:253,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 257
    functionName: _sre_SRE_Pattern_match
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_match_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_match(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:284,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:293,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:294,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:300,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:303,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:305,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:314,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:315,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:321,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:324,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:326,1
    - Dst: _sre_SRE_Pattern_fullmatch_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:332,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 336
    functionName: _sre_SRE_Pattern_fullmatch
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _sre_SRE_Pattern_fullmatch_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_fullmatch(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:360,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:365,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:375,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:381,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:383,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:384,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:386,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:395,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:396,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:402,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:405,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:407,1
    - Dst: _sre_SRE_Pattern_search_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:413,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 417
    functionName: _sre_SRE_Pattern_search
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _sre_SRE_Pattern_search_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_search(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:439,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:444,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:453,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:454,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:460,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:462,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:463,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:465,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:474,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:475,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:481,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:484,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:486,1
    - Dst: _sre_SRE_Pattern_findall_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:492,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 496
    functionName: _sre_SRE_Pattern_findall
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Pattern_findall_impl
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_findall(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:520,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:525,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:535,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:541,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:544,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:546,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:555,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:556,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:562,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:565,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:567,1
    - Dst: _sre_SRE_Pattern_finditer_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:573,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 577
    functionName: _sre_SRE_Pattern_finditer
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - _sre_SRE_Pattern_finditer_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_finditer(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:598,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:603,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:612,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:613,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:619,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:621,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:622,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:624,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:633,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:634,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:640,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:643,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:645,1
    - Dst: _sre_SRE_Pattern_scanner_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:651,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 655
    functionName: _sre_SRE_Pattern_scanner
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _sre_SRE_Pattern_scanner_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_scanner(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:677,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:681,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:689,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:690,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:696,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:698,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:699,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:701,1
    - Dst: _sre_SRE_Pattern_split_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:707,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: _sre_SRE_Pattern_split
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _sre_SRE_Pattern_split_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_split(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:733,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:738,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:747,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:748,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:754,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:756,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:757,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:759,1
    - Dst: _sre_SRE_Pattern_sub_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:765,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 726
    functionDepth: 5
    functionLinenumber: 726
    functionLinenumberEnd: 769
    functionName: _sre_SRE_Pattern_sub
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _sre_SRE_Pattern_sub_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_sub(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:791,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:796,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:805,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:806,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:812,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:814,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:815,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:817,1
    - Dst: _sre_SRE_Pattern_subn_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:823,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PatternObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 784
    functionDepth: 5
    functionLinenumber: 784
    functionLinenumberEnd: 827
    functionName: _sre_SRE_Pattern_subn
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _sre_SRE_Pattern_subn_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern_subn(PatternObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Pattern___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PatternObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 844
    functionName: _sre_SRE_Pattern___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Pattern___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Pattern___copy__(PatternObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:882,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:887,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:888,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:892,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:893,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:896,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:897,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:901,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:902,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:908,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:911,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:913,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:918,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:919,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:923,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:924,1
    - Dst: _sre_compile_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:928,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 932
    functionName: _sre_compile
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_BadArgument
    - PyDict_Check
    - PyList_Check
    - PyLong_AsSsize_t
    - _sre_compile_impl
    - PyTuple_Check
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:955,1
    - Dst: _sre_SRE_Match_expand_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 946
    functionDepth: 3
    functionLinenumber: 946
    functionLinenumberEnd: 964
    functionName: _sre_SRE_Match_expand
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_expand_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_expand(MatchObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:988,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:991,1
    - Dst: _sre_SRE_Match_groups_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 1004
    functionName: _sre_SRE_Match_groups
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_groups_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groups(MatchObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1028,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1031,1
    - Dst: _sre_SRE_Match_groupdict_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1021
    functionDepth: 5
    functionLinenumber: 1021
    functionLinenumberEnd: 1044
    functionName: _sre_SRE_Match_groupdict
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match_groupdict_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_groupdict(MatchObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1065,1
    - Dst: _sre_SRE_Match_start_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1073,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1074,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1077,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1058
    functionDepth: 3
    functionLinenumber: 1058
    functionLinenumberEnd: 1081
    functionName: _sre_SRE_Match_start
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyLong_FromSsize_t
    - _sre_SRE_Match_start_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_start(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1102,1
    - Dst: _sre_SRE_Match_end_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1110,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1111,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1095
    functionDepth: 3
    functionLinenumber: 1095
    functionLinenumberEnd: 1118
    functionName: _sre_SRE_Match_end
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyArg_CheckPositional
    - _sre_SRE_Match_end_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_end(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1138,1
    - Dst: _sre_SRE_Match_span_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MatchObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1150
    functionName: _sre_SRE_Match_span
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _sre_SRE_Match_span_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match_span(MatchObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Match___copy___impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MatchObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1163
    functionDepth: 2
    functionLinenumber: 1163
    functionLinenumberEnd: 1167
    functionName: _sre_SRE_Match___copy__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Match___copy___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Match___copy__(MatchObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Scanner_match_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ScannerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1188
    functionDepth: 4
    functionLinenumber: 1188
    functionLinenumberEnd: 1192
    functionName: _sre_SRE_Scanner_match
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Scanner_match_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_match(ScannerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sre_SRE_Scanner_search_impl
      Src: /src/Python-3.8.3/Modules/clinic/_sre.c.h:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - ScannerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1205
    functionDepth: 4
    functionLinenumber: 1205
    functionLinenumberEnd: 1209
    functionName: _sre_SRE_Scanner_search
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_sre.c.h
    functionUses: 0
    functionsReached:
    - _sre_SRE_Scanner_search_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sre_SRE_Scanner_search(ScannerObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - EVPobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: EVP_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - EVP_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_copy(EVPobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - EVPobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: EVP_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - EVP_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_digest(EVPobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - EVPobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: EVP_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - EVP_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_hexdigest(EVPobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:92,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:96,1
    - Dst: EVP_new_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: EVP_new
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - EVP_new_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:131,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:134,1
    - Dst: _hashlib_openssl_md5_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 124
    functionDepth: 6
    functionLinenumber: 124
    functionLinenumberEnd: 147
    functionName: _hashlib_openssl_md5
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _hashlib_openssl_md5_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:168,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:171,1
    - Dst: _hashlib_openssl_sha1_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 161
    functionDepth: 6
    functionLinenumber: 161
    functionLinenumberEnd: 184
    functionName: _hashlib_openssl_sha1
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _hashlib_openssl_sha1_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:205,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:208,1
    - Dst: _hashlib_openssl_sha224_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: _hashlib_openssl_sha224
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha224_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:242,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:245,1
    - Dst: _hashlib_openssl_sha256_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 235
    functionDepth: 6
    functionLinenumber: 235
    functionLinenumberEnd: 258
    functionName: _hashlib_openssl_sha256
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha256_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:279,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:282,1
    - Dst: _hashlib_openssl_sha384_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 6
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: _hashlib_openssl_sha384
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha384_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:316,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:319,1
    - Dst: _hashlib_openssl_sha512_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 309
    functionDepth: 6
    functionLinenumber: 309
    functionLinenumberEnd: 332
    functionName: _hashlib_openssl_sha512
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_openssl_sha512_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:356,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:363,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:367,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:368,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:372,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:376,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:377,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:380,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:383,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:384,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:387,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:390,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:391,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:394,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:395,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:399,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:400,1
    - Dst: pbkdf2_hmac_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:408,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:413,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:417,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 421
    functionName: pbkdf2_hmac
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    - pbkdf2_hmac_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:447,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:456,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:460,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:463,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:464,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:471,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:474,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:475,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:483,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:484,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:493,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:494,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:503,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:504,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:513,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:514,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:518,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:519,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:527,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:531,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:532,1
    - Dst: _hashlib_scrypt_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:536,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:541,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:545,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 108
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 440
    functionDepth: 3
    functionLinenumber: 440
    functionLinenumberEnd: 549
    functionName: _hashlib_scrypt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _hashlib_scrypt_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:577,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:581,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:584,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:585,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:588,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:591,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:592,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:595,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:596,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:600,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:604,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:605,1
    - Dst: _hashlib_hmac_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:608,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:613,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h:617,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 621
    functionName: _hashlib_hmac_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
    functionUses: 0
    functionsReached:
    - _hashlib_hmac_digest_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _hashlib_hmac_digest(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: MD5Type_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_copy(MD5object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: MD5Type_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_digest(MD5object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5Type_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MD5object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: MD5Type_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - MD5Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MD5Type_hexdigest(MD5object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:87,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:90,1
    - Dst: _md5_md5_impl
      Src: /src/Python-3.8.3/Modules/clinic/md5module.c.h:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: _md5_md5
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/md5module.c.h
    functionUses: 0
    functionsReached:
    - _md5_md5_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_enable_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: gc_enable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_enable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_enable(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_disable_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: gc_disable
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_disable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_disable(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_isenabled_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:60,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: gc_isenabled
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - gc_isenabled_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_isenabled(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:94,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:98,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:105,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:106,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:110,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:111,1
    - Dst: gc_collect_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:115,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:116,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:119,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 123
    functionName: gc_collect
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - gc_collect_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyLong_FromSsize_t
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:154,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:155,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:159,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:160,1
    - Dst: gc_set_debug_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: gc_set_debug
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - gc_set_debug_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_set_debug(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_debug_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:187,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:188,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: gc_get_debug
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - gc_get_debug_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_debug(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_threshold_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: gc_get_threshold
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_get_threshold_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_threshold(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_count_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: gc_get_count
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_get_count_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_count(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:258,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:261,1
    - Dst: _Py_convert_optional_to_ssize_t
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:268,1
    - Dst: gc_get_objects_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 276
    functionName: gc_get_objects
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_get_objects_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _Py_convert_optional_to_ssize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_stats_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: gc_get_stats
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_get_stats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_stats(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_freeze_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: gc_freeze
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_freeze_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_freeze(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gc_unfreeze_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: gc_unfreeze
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_unfreeze_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_unfreeze(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gc_get_freeze_count_impl
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:367,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:368,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h:371,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 375
    functionName: gc_get_freeze_count
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
    functionUses: 0
    functionsReached:
    - gc_get_freeze_count_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:28,1
    - Dst: grp_getgrgid_impl
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 4
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: grp_getgrgid
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - grp_getgrgid_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:62,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:66,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:67,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:70,1
    - Dst: grp_getgrnam_impl
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 78
    functionName: grp_getgrnam
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_BadArgument
    - grp_getgrnam_impl
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrnam(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grp_getgrall_impl
      Src: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: grp_getgrall
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
    functionUses: 0
    functionsReached:
    - grp_getgrall_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:24,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:25,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:29,1
    - Dst: cmath_acos_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:30,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:31,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:33,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:37,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:41,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: cmath_acos
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    - cmath_acos_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_acos(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:67,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:68,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:72,1
    - Dst: cmath_acosh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:73,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:74,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:76,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:80,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 89
    functionName: cmath_acosh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    - cmath_acosh_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_acosh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:110,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:111,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:115,1
    - Dst: cmath_asin_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:116,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:119,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:123,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: cmath_asin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - cmath_asin_impl
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_asin(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:153,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:154,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:158,1
    - Dst: cmath_asinh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:159,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:160,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:162,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:166,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 175
    functionName: cmath_asinh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - cmath_asinh_impl
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_asinh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:196,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:197,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:201,1
    - Dst: cmath_atan_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:202,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:203,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:205,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:209,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:213,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 218
    functionName: cmath_atan
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - cmath_atan_impl
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_atan(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:239,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:240,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:244,1
    - Dst: cmath_atanh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:245,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:246,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:248,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:252,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 261
    functionName: cmath_atanh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_atanh_impl
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_atanh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:282,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:283,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:287,1
    - Dst: cmath_cos_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:288,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:289,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:295,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 304
    functionName: cmath_cos
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - cmath_cos_impl
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_cos(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:325,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:326,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:330,1
    - Dst: cmath_cosh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:331,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:332,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:334,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:338,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 347
    functionName: cmath_cosh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    - cmath_cosh_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_cosh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:368,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:369,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:373,1
    - Dst: cmath_exp_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:374,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:375,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:377,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:381,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 390
    functionName: cmath_exp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - cmath_exp_impl
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_exp(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:411,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:412,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:416,1
    - Dst: cmath_log10_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:417,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:418,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:424,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 433
    functionName: cmath_log10
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - cmath_log10_impl
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_log10(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:454,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:455,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:459,1
    - Dst: cmath_sin_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:460,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:461,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:463,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:467,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 476
    functionName: cmath_sin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - cmath_sin_impl
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sin(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:497,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:498,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:502,1
    - Dst: cmath_sinh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:503,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:504,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:506,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:510,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 519
    functionName: cmath_sinh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_sinh_impl
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sinh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:540,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:541,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:545,1
    - Dst: cmath_sqrt_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:546,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:547,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:549,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:553,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:557,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 562
    functionName: cmath_sqrt
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - cmath_sqrt_impl
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_sqrt(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:583,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:584,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:588,1
    - Dst: cmath_tan_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:589,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:592,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:596,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:600,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 605
    functionName: cmath_tan
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - cmath_tan_impl
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_tan(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:626,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:627,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:631,1
    - Dst: cmath_tanh_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:632,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:633,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:635,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:639,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 648
    functionName: cmath_tanh
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_tanh_impl
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - PyFPE_START_PROTECT
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_tanh(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:671,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:674,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:675,1
    - Dst: cmath_log_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 687
    functionName: cmath_log
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - PyErr_Occurred
    - cmath_log_impl
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_log(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:707,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:708,1
    - Dst: cmath_phase_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 715
    functionName: cmath_phase
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_phase_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_phase(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:737,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:738,1
    - Dst: cmath_polar_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 745
    functionName: cmath_polar
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_polar_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_polar(PyObject *module, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:766,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:769,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:770,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:774,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:775,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:779,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:780,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:784,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:785,1
    - Dst: cmath_rect_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:789,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 793
    functionName: cmath_rect
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyFloat_AS_DOUBLE
    - _PyArg_CheckPositional
    - cmath_rect_impl
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_rect(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:813,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:814,1
    - Dst: cmath_isfinite_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: cmath_isfinite
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_isfinite_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isfinite(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:841,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:842,1
    - Dst: cmath_isnan_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 849
    functionName: cmath_isnan
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - cmath_isnan_impl
    - PyErr_Occurred
    - PyComplex_AsCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isnan(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:869,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:870,1
    - Dst: cmath_isinf_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: cmath_isinf
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyComplex_AsCComplex
    - cmath_isinf_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isinf(PyObject *module, PyObject *arg)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:914,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:921,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:925,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:926,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:929,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:930,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:937,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:938,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:942,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:943,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:951,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:952,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:956,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:957,1
    - Dst: cmath_isclose_impl
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:962,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:963,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h:966,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 907
    functionDepth: 2
    functionLinenumber: 907
    functionLinenumberEnd: 970
    functionName: cmath_isclose
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyComplex_AsCComplex
    - PyFloat_AS_DOUBLE
    - cmath_isclose_impl
    - _PyArg_UnpackKeywords
    - PyBool_FromLong
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_copy_context_impl
      Src: /src/Python-3.8.3/Modules/clinic/_contextvarsmodule.c.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: _contextvars_copy_context
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_contextvarsmodule.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_copy_context_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_copy_context(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:24,1
    - Dst: _gdbm_gdbm_get_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - dbmobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 37
    functionName: _gdbm_gdbm_get
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _gdbm_gdbm_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_get(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:59,1
    - Dst: _gdbm_gdbm_setdefault_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - dbmobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: _gdbm_gdbm_setdefault
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _gdbm_gdbm_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_setdefault(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: _gdbm_gdbm_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_keys_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: _gdbm_gdbm_keys
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_keys(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_firstkey_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: _gdbm_gdbm_firstkey
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_firstkey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_firstkey(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:160,1
    - Dst: _gdbm_gdbm_nextkey_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: _gdbm_gdbm_nextkey
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - PyArg_Parse
    - _gdbm_gdbm_nextkey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_nextkey(dbmobject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_reorganize_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: _gdbm_gdbm_reorganize
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_reorganize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_reorganize(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gdbm_gdbm_sync_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: _gdbm_gdbm_sync
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _gdbm_gdbm_sync_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _gdbm_gdbm_sync(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:256,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:259,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:260,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:263,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:270,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:271,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:275,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:279,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:280,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:286,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:287,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:291,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:292,1
    - Dst: dbmopen_impl
      Src: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h:296,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 300
    functionName: dbmopen
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - dbmopen_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_copy_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: SHA256Type_copy
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_copy(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_digest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: SHA256Type_digest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_digest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_digest(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Type_hexdigest_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - SHAobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: SHA256Type_hexdigest
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
    functionUses: 0
    functionsReached:
    - SHA256Type_hexdigest_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SHA256Type_hexdigest(SHAobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:87,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:90,1
    - Dst: _sha256_sha256_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: _sha256_sha256
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
    functionUses: 0
    functionsReached:
    - _sha256_sha256_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha256_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:124,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:127,1
    - Dst: _sha256_sha224_impl
      Src: /src/Python-3.8.3/Modules/clinic/sha256module.c.h:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 140
    functionName: _sha256_sha224
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - _sha256_sha224_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _sha256_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:28,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:31,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:32,1
    - Dst: _bz2_BZ2Compressor_compress_impl
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:35,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - BZ2Compressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 44
    functionName: _bz2_BZ2Compressor_compress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _bz2_BZ2Compressor_compress_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_compress(BZ2Compressor *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _bz2_BZ2Compressor_flush_impl
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - BZ2Compressor*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: _bz2_BZ2Compressor_flush
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _bz2_BZ2Compressor_flush_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Compressor_flush(BZ2Compressor *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:88,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:89,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:92,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:92,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:95,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:98,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:98,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:99,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:103,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:103,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:104,1
    - Dst: _bz2_BZ2Compressor___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 112
    functionName: _bz2_BZ2Compressor___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _bz2_BZ2Compressor___init___impl
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - Py_TYPE
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _bz2_BZ2Compressor___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:147,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:151,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:155,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:158,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:159,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:166,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:172,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:174,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:175,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:177,1
    - Dst: _bz2_BZ2Decompressor_decompress_impl
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:183,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:188,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - BZ2Decompressor*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 192
    functionName: _bz2_BZ2Decompressor_decompress
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _bz2_BZ2Decompressor_decompress_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _bz2_BZ2Decompressor_decompress(BZ2Decompressor *self, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:210,1
    - Dst: _PyArg_NoPositional
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:211,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:214,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:215,1
    - Dst: _bz2_BZ2Decompressor___init___impl
      Src: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 222
    functionName: _bz2_BZ2Decompressor___init__
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - _PyArg_NoPositional
    - Py_TYPE
    - _bz2_BZ2Decompressor___init___impl
    linkageType: ''
    returnType: int
    signature: int _bz2_BZ2Decompressor___init__(PyObject *self, PyObject *args, PyObject
      *kwargs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:26,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:29,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:32,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:33,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:36,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:37,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:41,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:42,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:46,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:52,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:55,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:57,1
    - Dst: audioop_getsample_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:62,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:67,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 71
    functionName: audioop_getsample
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - audioop_getsample_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_getsample(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:92,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:95,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:98,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:99,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:103,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:107,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:108,1
    - Dst: audioop_max_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:111,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 120
    functionName: audioop_max
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - audioop_max_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_max(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:141,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:144,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:147,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:148,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:152,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:157,1
    - Dst: audioop_minmax_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:160,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:165,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 169
    functionName: audioop_minmax
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - audioop_minmax_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_minmax(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:190,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:193,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:196,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:197,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:200,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:201,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:205,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:206,1
    - Dst: audioop_avg_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:209,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:214,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 218
    functionName: audioop_avg
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - audioop_avg_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_avg(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:239,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:242,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:245,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:246,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:250,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:254,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:255,1
    - Dst: audioop_rms_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:258,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:263,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 232
    functionDepth: 4
    functionLinenumber: 232
    functionLinenumberEnd: 267
    functionName: audioop_rms
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_rms_impl
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_rms(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:289,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:292,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:295,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:296,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:299,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:302,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:303,1
    - Dst: audioop_findfit_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:306,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:311,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:315,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 319
    functionName: audioop_findfit
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - audioop_findfit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_findfit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:341,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:344,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:347,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:348,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:351,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:354,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:355,1
    - Dst: audioop_findfactor_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:358,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:363,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:367,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 371
    functionName: audioop_findfactor
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - audioop_findfactor_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_findfactor(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:393,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:396,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:399,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:400,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:403,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:404,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:410,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:413,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:415,1
    - Dst: audioop_findmax_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:420,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:425,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 429
    functionName: audioop_findmax
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - audioop_findmax_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_findmax(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:450,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:453,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:456,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:457,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:461,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:465,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:466,1
    - Dst: audioop_avgpp_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:469,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:474,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 443
    functionDepth: 4
    functionLinenumber: 443
    functionLinenumberEnd: 478
    functionName: audioop_avgpp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - audioop_avgpp_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_avgpp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:499,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:502,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:505,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:506,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:509,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:510,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:514,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:515,1
    - Dst: audioop_maxpp_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:518,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:523,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 492
    functionDepth: 4
    functionLinenumber: 492
    functionLinenumberEnd: 527
    functionName: audioop_maxpp
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_maxpp_impl
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_maxpp(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:548,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:551,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:554,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:555,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:559,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:563,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:564,1
    - Dst: audioop_cross_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:567,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:572,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 541
    functionDepth: 4
    functionLinenumber: 541
    functionLinenumberEnd: 576
    functionName: audioop_cross
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - audioop_cross_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_cross(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:599,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:602,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:605,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:606,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:609,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:610,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:614,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:615,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:618,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:619,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:623,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:624,1
    - Dst: audioop_mul_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:628,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:633,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 591
    functionDepth: 4
    functionLinenumber: 591
    functionLinenumberEnd: 637
    functionName: audioop_mul
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_mul_impl
    - PyObject_GetBuffer
    - PyFloat_CheckExact
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_mul(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:661,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:664,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:667,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:668,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:671,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:672,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:676,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:677,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:680,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:681,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:685,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:686,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:690,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:691,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:695,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:696,1
    - Dst: audioop_tomono_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:700,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:705,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 709
    functionName: audioop_tomono
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_tomono_impl
    - PyObject_GetBuffer
    - PyFloat_CheckExact
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_tomono(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:733,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:736,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:739,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:740,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:744,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:748,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:749,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:752,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:753,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:757,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:758,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:762,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:763,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:767,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:768,1
    - Dst: audioop_tostereo_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:772,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:777,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 781
    functionName: audioop_tostereo
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - audioop_tostereo_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyFloat_AS_DOUBLE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_CheckExact
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_tostereo(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:804,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:807,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:810,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:811,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:814,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:817,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:818,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:821,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:822,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:826,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:827,1
    - Dst: audioop_add_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:830,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:835,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:839,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 843
    functionName: audioop_add
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - audioop_add_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_add(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:865,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:868,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:871,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:872,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:875,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:876,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:880,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:881,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:884,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:885,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:889,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:890,1
    - Dst: audioop_bias_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:893,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:898,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 857
    functionDepth: 4
    functionLinenumber: 857
    functionLinenumberEnd: 902
    functionName: audioop_bias
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - audioop_bias_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_bias(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:923,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:926,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:929,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:930,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:933,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:934,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:938,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:939,1
    - Dst: audioop_reverse_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:942,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:947,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 916
    functionDepth: 4
    functionLinenumber: 916
    functionLinenumberEnd: 951
    functionName: audioop_reverse
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - audioop_reverse_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_reverse(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:972,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:975,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:978,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:979,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:982,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:983,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:987,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:988,1
    - Dst: audioop_byteswap_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:991,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:996,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 1000
    functionName: audioop_byteswap
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - audioop_byteswap_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_byteswap(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1023,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1026,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1029,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1030,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1033,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1034,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1038,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1039,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1042,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1043,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1047,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1048,1
    - Dst: audioop_lin2lin_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1051,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1056,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1015
    functionDepth: 4
    functionLinenumber: 1015
    functionLinenumberEnd: 1060
    functionName: audioop_lin2lin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - audioop_lin2lin_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1090,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1093,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1096,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1097,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1100,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1101,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1105,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1106,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1110,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1114,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1115,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1118,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1119,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1124,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1127,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1128,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1132,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1133,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1141,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1145,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1146,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1152,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1153,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1157,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1158,1
    - Dst: audioop_ratecv_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1162,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1167,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 92
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1077
    functionDepth: 3
    functionLinenumber: 1077
    functionLinenumberEnd: 1171
    functionName: audioop_ratecv
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - audioop_ratecv_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_ratecv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1192,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1195,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1198,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1199,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1203,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1207,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1208,1
    - Dst: audioop_lin2ulaw_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1211,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1216,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1185
    functionDepth: 4
    functionLinenumber: 1185
    functionLinenumberEnd: 1220
    functionName: audioop_lin2ulaw
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - audioop_lin2ulaw_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2ulaw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1241,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1244,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1247,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1248,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1251,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1252,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1256,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1257,1
    - Dst: audioop_ulaw2lin_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1260,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1265,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1269
    functionName: audioop_ulaw2lin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - audioop_ulaw2lin_impl
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_ulaw2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1290,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1293,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1296,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1297,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1301,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1305,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1306,1
    - Dst: audioop_lin2alaw_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1309,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1283
    functionDepth: 4
    functionLinenumber: 1283
    functionLinenumberEnd: 1318
    functionName: audioop_lin2alaw
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_lin2alaw_impl
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2alaw(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1339,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1342,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1345,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1346,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1349,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1350,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1354,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1355,1
    - Dst: audioop_alaw2lin_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1358,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1363,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1367
    functionName: audioop_alaw2lin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - audioop_alaw2lin_impl
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_alaw2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1390,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1393,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1396,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1397,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1400,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1401,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1405,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1406,1
    - Dst: audioop_lin2adpcm_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1410,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1415,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1382
    functionDepth: 4
    functionLinenumber: 1382
    functionLinenumberEnd: 1419
    functionName: audioop_lin2adpcm
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - audioop_lin2adpcm_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_lin2adpcm(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1442,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1445,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1448,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1449,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1453,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1457,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1458,1
    - Dst: audioop_adpcm2lin_impl
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1462,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/clinic/audioop.c.h:1467,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1434
    functionDepth: 3
    functionLinenumber: 1434
    functionLinenumberEnd: 1471
    functionName: audioop_adpcm2lin
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/audioop.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - audioop_adpcm2lin_impl
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      audioop_adpcm2lin(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dbm_dbm_close_impl
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: _dbm_dbm_close
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _dbm_dbm_close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_close(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dbm_dbm_keys_impl
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - dbmobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: _dbm_dbm_keys
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _dbm_dbm_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_keys(dbmobject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:62,1
    - Dst: _dbm_dbm_get_impl
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - dbmobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: _dbm_dbm_get
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - _dbm_dbm_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_get(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:96,1
    - Dst: _dbm_dbm_setdefault_impl
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - dbmobject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: _dbm_dbm_setdefault
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - _dbm_dbm_setdefault_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dbm_dbm_setdefault(dbmobject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:135,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:138,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:139,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:142,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:149,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:150,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:154,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:159,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:166,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:170,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:171,1
    - Dst: dbmopen_impl
      Src: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h:175,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 179
    functionName: dbmopen
    functionSourceFile: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - dbmopen_impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - MIN
    - ','
    - MAX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: BOUNDS_CHECK
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOUNDS_CHECK(x, MIN, MAX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: PyDec_CheckExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_CheckExact(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: PyDec_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: PyDecSignalDict_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDecSignalDict_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: PyDecContext_Check
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDecContext_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: MPD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: SdFlagAddr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SdFlagAddr(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: SdFlags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SdFlags(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: CTX
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTX(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: CtxCaps
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CtxCaps(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: incr_true
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void incr_true(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: incr_false
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void incr_false(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 242
    functionName: value_error_int
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int value_error_int(const char *mesg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: value_error_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      value_error_ptr(const char *mesg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: type_error_int
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int type_error_int(const char *mesg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: runtime_error_int
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int runtime_error_int(const char *mesg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - funcname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: INTERNAL_ERROR_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_ERROR_INT(funcname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mesg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: runtime_error_ptr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      runtime_error_ptr(const char *mesg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - funcname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: INTERNAL_ERROR_PTR
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_ERROR_PTR(funcname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 296
    functionName: flags_as_exception
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_PTR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_exception(uint32_t flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ex
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 311
    functionName: exception_as_flag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void exception_as_flag(PyObject *ex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:319,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:326,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 344
    functionName: flags_as_list
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_list(uint32_t flags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:352,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:359,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 367
    functionName: signals_as_list
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signals_as_list(uint32_t flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:376,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:376,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:378,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:381,1
    - Dst: exception_as_flag
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(list))
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 390
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 390
    functionName: list_as_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - PyList_GetItem
    - PyList_Size
    - exception_as_flag
    - assert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t list_as_flags(PyObject *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:398,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:405,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 412
    functionName: flags_as_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PyDict_SetItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      flags_as_dict(uint32_t flags)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:422,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:423,1
    - Dst: PyDict_Size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:428,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:429,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:435,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:437,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:440,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - val
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 455
    functionName: dict_as_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyDict_Size
    - PyDict_Check
    - PyErr_SetString
    - PyObject_IsTrue
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t dict_as_flags(PyObject *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:463,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:464,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 473
    functionName: long_as_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t long_as_flags(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:479,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:486,1
    - Dst: flags_as_exception
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:490,1
    - Dst: flags_as_list
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:494,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - context
    - status
    argTypes:
    - PyObject*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 504
    functionName: dec_addstatus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_NoMemory
    - flags_as_list
    - CTX
    - flags_as_exception
    - PyErr_SetObject
    linkageType: ''
    returnType: int
    signature: int dec_addstatus(PyObject *context, uint32_t status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:511,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:518,1
    - Dst: type_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 525
    functionName: getround
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - type_error_int
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: int getround(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SdFlagAddr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - UNUSED
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: signaldict_init
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlagAddr
    linkageType: ''
    returnType: int
    signature: int signaldict_init(PyObject *self, PyObject *args UNUSED, PyObject
      *kwds UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_iter
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: signaldict_iter
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - tp_iter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_iter(PyObject *self UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exception_as_flag
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:563,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:568,1
    - Dst: incr_true
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:568,1
    - Dst: incr_false
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 569
    functionName: signaldict_getitem
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - exception_as_flag
    - SdFlags
    - incr_true
    - incr_false
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_getitem(PyObject *self, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:578,1
    - Dst: exception_as_flag
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:581,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:586,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:592,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 599
    functionName: signaldict_setitem
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - exception_as_flag
    - value_error_int
    - SdFlags
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int signaldict_setitem(PyObject *self, PyObject *key, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:609,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:613,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (SIGNAL_MAP_LEN == 9)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 622
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 622
    functionName: signaldict_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - assert
    - SdFlags
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_repr(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:629,1
    - Dst: PyDecSignalDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:629,1
    - Dst: PyDecSignalDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:632,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:633,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:633,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:635,1
    - Dst: dict_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:636,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:640,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:647,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyDecSignalDict_Check(v))
      pos:
        line_end: 628
        line_start: 628
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 654
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 654
    functionName: signaldict_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - SdFlags
    - Py_INCREF
    - PyDict_Check
    - PyDecSignalDict_Check
    - assert
    - dict_as_flags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_as_dict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:659,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: signaldict_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - flags_as_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      signaldict_copy(PyObject *self, PyObject *args UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: Dec_CONTEXT_GET_SSIZE
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_CONTEXT_GET_SSIZE(mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: Dec_CONTEXT_GET_ULONG
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_CONTEXT_GET_ULONG(mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_getround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:750,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:750,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 754
    functionName: context_getround
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_getround
    - CTX
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getround(PyObject *self, void *closure UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:759,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 760
    functionName: context_getcapitals
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - CtxCaps
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getcapitals(PyObject *self, void *closure UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:766,1
    - Dst: mpd_getcr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:766,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 767
    functionName: context_getallcr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - mpd_getcr
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getallcr(PyObject *self, void *closure UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:773,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:773,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: context_getetiny
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CTX
    - mpd_etiny
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getetiny(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:779,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:779,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 780
    functionName: context_getetop
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - CTX
    - mpd_etop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getetop(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:788,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:789,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:793,1
    - Dst: mpd_qsetprec
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:794,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 800
    functionName: context_setprec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - CTX
    - mpd_qsetprec
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setprec(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:808,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:809,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:813,1
    - Dst: mpd_qsetemin
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:814,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 820
    functionName: context_setemin
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - mpd_qsetemin
    - value_error_int
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setemin(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:828,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:829,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:833,1
    - Dst: mpd_qsetemax
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:834,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 840
    functionName: context_setemax
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - value_error_int
    - CTX
    - PyLong_AsSsize_t
    - mpd_qsetemax
    linkageType: ''
    returnType: int
    signature: int context_setemax(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:846,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:849,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:850,1
    - Dst: value_error_ptr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 861
    functionName: context_unsafe_setprec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - PyErr_Occurred
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setprec(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:866,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:869,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:870,1
    - Dst: value_error_ptr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 881
    functionName: context_unsafe_setemin
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - PyErr_Occurred
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setemin(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:886,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:889,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:890,1
    - Dst: value_error_ptr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 901
    functionName: context_unsafe_setemax
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_ptr
    - PyErr_Occurred
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_unsafe_setemax(PyObject *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:910,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:915,1
    - Dst: mpd_qsetround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:916,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 921
    functionName: context_setround
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_INT
    - mpd_qsetround
    - getround
    - CTX
    linkageType: ''
    returnType: int
    signature: int context_setround(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:928,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:929,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:934,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 940
    functionName: context_setcapitals
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - value_error_int
    - PyErr_Occurred
    - CtxCaps
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setcapitals(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:949,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:954,1
    - Dst: mpd_qsettraps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:955,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 960
    functionName: context_settraps
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - INTERNAL_ERROR_INT
    - CTX
    - long_as_flags
    - mpd_qsettraps
    linkageType: ''
    returnType: int
    signature: int context_settraps(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:969,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:974,1
    - Dst: mpd_qsettraps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:975,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 980
    functionName: context_settraps_list
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - list_as_flags
    - INTERNAL_ERROR_INT
    - CTX
    - mpd_qsettraps
    linkageType: ''
    returnType: int
    signature: int context_settraps_list(PyObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDecSignalDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:988,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:989,1
    - Dst: dict_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:992,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:998,1
    - Dst: mpd_qsettraps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:999,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 982
    functionDepth: 2
    functionLinenumber: 982
    functionLinenumberEnd: 1004
    functionName: context_settraps_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - CTX
    - mpd_qsettraps
    - PyDecSignalDict_Check
    - INTERNAL_ERROR_INT
    - dict_as_flags
    linkageType: ''
    returnType: int
    signature: int context_settraps_dict(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1013,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1018,1
    - Dst: mpd_qsetstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1019,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1024
    functionName: context_setstatus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsetstatus
    - INTERNAL_ERROR_INT
    - CTX
    - long_as_flags
    linkageType: ''
    returnType: int
    signature: int context_setstatus(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1033,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1038,1
    - Dst: mpd_qsetstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1039,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1044
    functionName: context_setstatus_list
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - list_as_flags
    - mpd_qsetstatus
    - INTERNAL_ERROR_INT
    - CTX
    linkageType: ''
    returnType: int
    signature: int context_setstatus_list(PyObject *self, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDecSignalDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1052,1
    - Dst: SdFlags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1053,1
    - Dst: dict_as_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1056,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1062,1
    - Dst: mpd_qsetstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1063,1
    - Dst: INTERNAL_ERROR_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1068
    functionName: context_setstatus_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - SdFlags
    - CTX
    - PyDecSignalDict_Check
    - INTERNAL_ERROR_INT
    - mpd_qsetstatus
    - dict_as_flags
    linkageType: ''
    returnType: int
    signature: int context_setstatus_dict(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1076,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1077,1
    - Dst: BOUNDS_CHECK
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1080,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1082,1
    - Dst: mpd_qsetclamp
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1083,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1088
    functionName: context_setclamp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - BOUNDS_CHECK
    - PyErr_Occurred
    - value_error_int
    - CTX
    - PyLong_AsSsize_t
    - mpd_qsetclamp
    linkageType: ''
    returnType: int
    signature: int context_setclamp(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1097,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1098,1
    - Dst: BOUNDS_CHECK
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1101,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1103,1
    - Dst: mpd_qsetcr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1104,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1109
    functionName: context_setallcr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - BOUNDS_CHECK
    - PyErr_Occurred
    - mpd_qsetcr
    - value_error_int
    - CTX
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int context_setallcr(PyObject *self, PyObject *value, void *closure
      UNUSED)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1117,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1118,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1120,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1123,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1125,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1131
    functionName: context_getattr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_CompareWithASCIIString
    - PyObject_GenericGetAttr
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_getattr(PyObject *self, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1137,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1142,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1143,1
    - Dst: context_settraps_dict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1144,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1146,1
    - Dst: context_setstatus_dict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1147,1
    - Dst: PyObject_GenericSetAttr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1133
    functionDepth: 3
    functionLinenumber: 1133
    functionLinenumberEnd: 1152
    functionName: context_setattr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_GenericSetAttr
    - PyErr_SetString
    - PyUnicode_Check
    - context_setstatus_dict
    - PyUnicode_CompareWithASCIIString
    - context_settraps_dict
    linkageType: ''
    returnType: int
    signature: int context_setattr(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1159
    functionName: context_clear_traps
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_clear_traps(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1166
    functionName: context_clear_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_clear_flags(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1184,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1187,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1197,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1202,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1206,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1209,1
    - Dst: SdFlagAddr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1215,1
    - Dst: SdFlagAddr
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1216,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - type
    - UNUSED
    - UNUSED
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1222
    functionName: context_new
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - CtxCaps
    - CTX
    - SdFlagAddr
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_new(PyTypeObject *type, PyObject *args UNUSED, PyObject *kwds UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1233,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1234,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDecContextObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1236
    functionName: context_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void context_dealloc(PyDecContextObject *self)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1255,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1255,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1257,1
    - Dst: context_setprec
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1265,1
    - Dst: context_setround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1268,1
    - Dst: context_setemin
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1271,1
    - Dst: context_setemax
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1274,1
    - Dst: context_setcapitals
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1277,1
    - Dst: context_setclamp
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1280,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1285,1
    - Dst: context_settraps_list
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1286,1
    - Dst: context_settraps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1290,1
    - Dst: context_settraps_dict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1294,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 1254
        line_start: 1254
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1299
      start: 1238
    functionDepth: 4
    functionLinenumber: 1238
    functionLinenumberEnd: 1299
    functionName: context_init
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_setcapitals
    - context_setemin
    - context_setround
    - context_settraps_list
    - PyList_Check
    - PyTuple_Check
    - context_setclamp
    - context_setemax
    - context_setprec
    - PyArg_ParseTupleAndKeywords
    - assert
    - context_settraps
    - context_settraps_dict
    linkageType: ''
    returnType: int
    signature: int context_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_settraps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1291
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 2
    functionsReached:
    - context_settraps
    linkageType: ''
    returnType: else
    signature: else if (PyLong_Check(traps))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_setstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 3
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 2
    functionsReached:
    - context_setstatus
    linkageType: ''
    returnType: else
    signature: else if (PyLong_Check(status))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1328,1
    - Dst: PyDecContext_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1328,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1329,1
    - Dst: mpd_lsnprint_signals
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1332,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1334,1
    - Dst: mpd_lsnprint_signals
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1337,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1339,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDecContextObject*
    assertStmts:
    - condition: (PyDecContext_Check(self))
      pos:
        line_end: 1327
        line_start: 1327
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 1347
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1347
    functionName: context_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecContext_Check
    - CTX
    - PyUnicode_FromFormat
    - mpd_lsnprint_signals
    - INTERNAL_ERROR_PTR
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_repr(PyDecContextObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1358,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1360
    functionName: init_basic_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    - CtxCaps
    linkageType: ''
    returnType: void
    signature: void init_basic_context(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1370,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1372
    functionName: init_extended_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CTX
    - CtxCaps
    linkageType: ''
    returnType: void
    signature: void init_extended_context(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1383,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1384,1
    - Dst: mpd_ieee_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1390,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1394,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1398,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - UNUSED
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1408
    functionName: ieee_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached:
    - PyObject_CallObject
    - PyErr_Occurred
    - CTX
    - PyLong_AsSsize_t
    - PyErr_Format
    - mpd_ieee_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ieee_context(PyObject *dummy UNUSED, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1416,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1421,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1421,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1422,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1423,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1426
    functionName: context_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - CTX
    - CtxCaps
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_copy(PyObject *self, PyObject *args UNUSED)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1436,1
    - Dst: signals_as_list
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1438,1
    - Dst: signals_as_list
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1444,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1448,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1450,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1455,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1458
    functionName: context_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - CtxCaps
    - CTX
    - Py_TYPE
    - signals_as_list
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_reduce(PyObject *self, PyObject *args UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1478
    functionDepth: 0
    functionLinenumber: 1478
    functionLinenumberEnd: 1484
    functionName: CONTEXT_CHECK
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTEXT_CHECK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1494
    functionName: CONTEXT_CHECK_VA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTEXT_CHECK_VA(obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1516,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1518,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1523,1
    - Dst: CONTEXT_CHECK
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1526,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1529,1
    - Dst: context_copy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1534,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1538,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1544,1
    - Dst: PyThreadState_GET
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1549,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1557
    functionName: current_context_from_dict
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyThreadState_GET
    - CTX
    - PyDict_SetItem
    - CONTEXT_CHECK
    - PyErr_SetString
    - PyThreadState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context_from_dict(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1565,1
    - Dst: current_context_from_dict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1560
    functionDepth: 3
    functionLinenumber: 1560
    functionLinenumberEnd: 1571
    functionName: current_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - current_context_from_dict
    - PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctxobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1579
    functionName: CURRENT_CONTEXT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_CONTEXT(ctxobj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: current_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1586,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1581
    functionDepth: 4
    functionLinenumber: 1581
    functionLinenumberEnd: 1593
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - current_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self UNUSED, PyObject *args UNUSED)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CONTEXT_CHECK
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1601,1
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1603,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1605,1
    - Dst: context_copy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1615,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1619,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1622,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - UNUSED
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1596
    functionDepth: 2
    functionLinenumber: 1596
    functionLinenumberEnd: 1633
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - Py_DECREF
    - Py_INCREF
    - CTX
    - PyDict_SetItem
    - CONTEXT_CHECK
    - PyErr_SetString
    - PyThreadState_GetDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_SetCurrentContext(PyObject *self UNUSED, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: context_copy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1638,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1642,1
    - Dst: PyContextVar_Set
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1644,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1646,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1652
    functionName: init_current_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - PyContextVar_Set
    - CTX
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init_current_context(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Get
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1658,1
    - Dst: init_current_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1654
    functionDepth: 3
    functionLinenumber: 1654
    functionLinenumberEnd: 1667
    functionName: current_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 2
    functionsReached:
    - init_current_context
    - PyContextVar_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      current_context(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctxobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1676
    functionName: CURRENT_CONTEXT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CURRENT_CONTEXT(ctxobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: current_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1682
    functionName: PyDec_GetCurrentContext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - current_context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_GetCurrentContext(PyObject *self UNUSED, PyObject *args UNUSED)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONTEXT_CHECK
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1688,1
    - Dst: context_copy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1695,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1699,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1702,1
    - Dst: PyContextVar_Set
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1706,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - UNUSED
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1685
    functionDepth: 2
    functionLinenumber: 1685
    functionLinenumberEnd: 1713
    functionName: PyDec_SetCurrentContext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - Py_DECREF
    - Py_INCREF
    - CTX
    - CONTEXT_CHECK
    - PyContextVar_Set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_SetCurrentContext(PyObject *self UNUSED, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1727,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1728,1
    - Dst: PyDecContext_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1734,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1735,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1740,1
    - Dst: context_copy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1749,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - UNUSED
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1756
    functionName: ctxmanager_new
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - context_copy
    - Py_DECREF
    - Py_INCREF
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - PyDecContext_Check
    - CURRENT_CONTEXT
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctxmanager_new(PyTypeObject *type UNUSED, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1761,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1762,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDecContextManagerObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1764
    functionName: ctxmanager_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ctxmanager_dealloc(PyDecContextManagerObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_SetCurrentContext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1771,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1775,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyDecContextManagerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1766
    functionDepth: 3
    functionLinenumber: 1766
    functionLinenumberEnd: 1779
    functionName: ctxmanager_set_local
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDec_SetCurrentContext
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctxmanager_set_local(PyDecContextManagerObject *self, PyObject *args UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_SetCurrentContext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1787,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyDecContextManagerObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1781
    functionDepth: 3
    functionLinenumber: 1781
    functionLinenumberEnd: 1794
    functionName: ctxmanager_restore_global
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDec_SetCurrentContext
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nctxmanager_restore_global(PyDecContextManagerObject *self,\n
      \                         PyObject *args UNUSED)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1846,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1849,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1857,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1858,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1859,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1860,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1861,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1865
    functionName: PyDecType_New
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - MPD
    - PyTypeObject*::tp_alloc
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_New(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1867
    functionName: dec_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dec_alloc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1871,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1871,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1873
    functionName: dec_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_del
    - Py_TYPE
    - MPD
    linkageType: ''
    returnType: void
    signature: void dec_dealloc(PyObject *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1883,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - kind
    - data
    - pos
    argTypes:
    - enum PyUnicode_Kind
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1885
    functionName: is_space
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    linkageType: ''
    returnType: void
    signature: void is_space(enum PyUnicode_Kind kind, void *data, Py_ssize_t pos)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1905,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1909,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1910,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1911,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1913,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1915,1
    - Dst: is_space
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1921,1
    - Dst: is_space
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1924,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1930,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1938,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1942,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 3
    argNames:
    - u
    - strip_ws
    - ignore_underscores
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1895
    functionDepth: 2
    functionLinenumber: 1895
    functionLinenumberEnd: 1952
    functionName: numeric_as_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - Py_UNICODE_TODECIMAL
    - PyErr_NoMemory
    - is_space
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: char
    signature: 'char *

      numeric_as_ascii(const PyObject *u, int strip_ws, int ignore_underscores)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1963,1
    - Dst: mpd_qset_string
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1968,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1968,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1968,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1969,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1956
    functionDepth: 3
    functionLinenumber: 1956
    functionLinenumberEnd: 1974
    functionName: PyDecType_FromCString
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_string
    - Py_DECREF
    - CTX
    - dec_addstatus
    - MPD
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromCString(PyTypeObject *type, const char *s,\n
      \                     PyObject *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1987,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1992,1
    - Dst: mpd_qset_string
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1994,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1994,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1997,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:1997,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2001,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - type
    - s
    - context
    argTypes:
    - PyTypeObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1979
    functionDepth: 3
    functionLinenumber: 1979
    functionLinenumberEnd: 2006
    functionName: PyDecType_FromCStringExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_string
    - mpd_maxcontext
    - Py_DECREF
    - mpd_seterror
    - dec_addstatus
    - MPD
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromCStringExact(PyTypeObject *type, const char
      *s,\n                           PyObject *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: numeric_as_ascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2016,1
    - Dst: PyDecType_FromCString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2021,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2009
    functionDepth: 4
    functionLinenumber: 2009
    functionLinenumberEnd: 2024
    functionName: PyDecType_FromUnicode
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromCString
    - PyMem_Free
    - numeric_as_ascii
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromUnicode(PyTypeObject *type, const PyObject
      *u,\n                      PyObject *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: numeric_as_ascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2036,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2041,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - u
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2029
    functionDepth: 4
    functionLinenumber: 2029
    functionLinenumberEnd: 2044
    functionName: PyDecType_FromUnicodeExactWS
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    - PyDecType_FromCStringExact
    - numeric_as_ascii
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromUnicodeExactWS(PyTypeObject *type, const
      PyObject *u,\n                             PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2052,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2053,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2058,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2059,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2060,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2062,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2062,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2063,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2064,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - dec
    - sign
    - v
    - exp
    argTypes:
    - PyObject*
    - uint8_t
    - uint32_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2048
    functionDepth: 1
    functionLinenumber: 2048
    functionLinenumberEnd: 2065
    functionName: _dec_settriple
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_flags
    - mpd_setdigits
    - MPD
    linkageType: ''
    returnType: void
    signature: void _dec_settriple(PyObject *dec, uint8_t sign, uint32_t v, mpd_ssize_t
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2074,1
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2079,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2079,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2079,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2085
    functionName: PyDecType_FromSsize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_ssize
    - Py_DECREF
    - CTX
    - dec_addstatus
    - MPD
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromSsize(PyTypeObject *type, mpd_ssize_t v, PyObject *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2095,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2100,1
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2102,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2102,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - mpd_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2088
    functionDepth: 3
    functionLinenumber: 2088
    functionLinenumberEnd: 2108
    functionName: PyDecType_FromSsizeExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_ssize
    - mpd_maxcontext
    - Py_DECREF
    - dec_addstatus
    - MPD
    - PyDecType_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromSsizeExact(PyTypeObject *type, mpd_ssize_t v, PyObject *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2122,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2127,1
    - Dst: _dec_settriple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2129,1
    - Dst: _dec_settriple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2143,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2144,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2144,1
    - Dst: mpd_qimport_u32
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2149,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2149,1
    - Dst: mpd_qimport_u16
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2152,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - type
    - v
    - ctx
    - status
    argTypes:
    - PyTypeObject*
    - PyObject*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2112
    functionDepth: 2
    functionLinenumber: 2112
    functionLinenumberEnd: 2159
    functionName: dec_from_long
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qfinalize
    - _dec_settriple
    - mpd_qimport_u32
    - mpd_qimport_u16
    - MPD
    - PyDecType_New
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndec_from_long(PyTypeObject *type, const PyObject *v,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2170,1
    - Dst: dec_from_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2174,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2174,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2163
    functionDepth: 3
    functionLinenumber: 2163
    functionLinenumberEnd: 2185
    functionName: PyDecType_FromLong
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - CTX
    - dec_from_long
    - dec_addstatus
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromLong(PyTypeObject *type, const PyObject *v, PyObject *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2198,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2202,1
    - Dst: dec_from_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2203,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2210,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2210,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2219
    functionName: PyDecType_FromLongExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - mpd_maxcontext
    - Py_DECREF
    - mpd_seterror
    - dec_from_long
    - dec_addstatus
    - PyErr_SetString
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromLongExact(PyTypeObject *type, const PyObject
      *v,\n                        PyObject *context)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2245,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2245,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2247,1
    - Dst: PyDecType_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2248,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2250,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2251,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2256,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2257,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2260,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2262,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2262,1
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2263,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2267,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2270,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2270,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2273,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2273,1
    - Dst: _py_float_abs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2279,1
    - Dst: _py_float_as_integer_ratio
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2286,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2290,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2291,1
    - Dst: _py_long_bit_length
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2295,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2299,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2300,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2301,1
    - Dst: PyDecType_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2307,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2314,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2315,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2318,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2321,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2322,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2326,1
    - Dst: mpd_qset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2327,1
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2328,1
    - Dst: mpd_qpow
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2329,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2330,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2331,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2332,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2333,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2338,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2338,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2338,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2339,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2340,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2342,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2346,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2346,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2347,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 87
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyDec_Type))
      pos:
        line_end: 2244
        line_start: 2244
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2350
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2350
    functionName: PyDecType_FromFloatExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - PyType_IsSubtype
    - PyFloat_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - mpd_qnew
    - mpd_set_sign
    - mpd_qset_uint
    - PyLong_AsSsize_t
    - mpd_del
    - _py_long_bit_length
    - assert
    - _py_float_as_integer_ratio
    - mpd_setspecial
    - PyLong_Check
    - mpd_qset_ssize
    - Py_DECREF
    - copysign
    - Py_IS_INFINITY
    - PyDecType_FromLongExact
    - mpd_qpow
    - MPD
    - _py_float_abs
    - Py_IS_NAN
    - PyErr_NoMemory
    - dec_addstatus
    - PyErr_SetString
    - PyDecType_New
    - PyTuple_GET_ITEM
    - mpd_qmul
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromFloatExact(PyTypeObject *type, PyObject
      *v,\n                         PyObject *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_FromFloatExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2359,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2364,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2364,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2364,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2365,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2371
      start: 2352
    functionDepth: 5
    functionLinenumber: 2352
    functionLinenumberEnd: 2371
    functionName: PyDecType_FromFloat
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mpd_qfinalize
    - PyDecType_FromFloatExact
    - CTX
    - dec_addstatus
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromFloat(PyTypeObject *type, PyObject *v,\n
      \                   PyObject *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_CheckExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2380,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2381,1
    - Dst: PyDecType_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2385,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2390,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2390,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2390,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2391,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2374
    functionDepth: 3
    functionLinenumber: 2374
    functionLinenumberEnd: 2397
    functionName: PyDecType_FromDecimalExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDec_CheckExact
    - dec_addstatus
    - MPD
    - PyDecType_New
    - mpd_qcopy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromDecimalExact(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2402,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2403,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2406,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2407,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - v
    - ex
    - mesg
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2412
    functionName: sequence_as_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - Py_INCREF
    - PyList_Check
    - PyTuple_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_as_tuple(PyObject *v, PyObject *ex, const char *mesg)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2428,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2428,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2430,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2431,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2437,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2438,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2439,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2443,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2444,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2448,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2456,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2457,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2459,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2460,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2463,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2464,1
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2466,1
    - Dst: strcat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2467,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2470,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2479,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2483,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2484,1
    - Dst: sequence_as_tuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2490,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2490,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2496,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2499,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2501,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2505,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2507,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2518,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2519,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2520,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2524,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2525,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2529,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2545,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2547,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2553,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2558,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2559,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 116
    argCount: 1
    argNames:
    - dectuple
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(dectuple))
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 2561
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2561
    functionName: dectuple_as_str
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - sequence_as_tuple
    - PyMem_Malloc
    - snprintf
    - PyErr_NoMemory
    - strcat
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyMem_Free
    - PyTuple_Size
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - PyUnicode_CompareWithASCIIString
    linkageType: ''
    returnType: char
    signature: 'char *

      dectuple_as_str(PyObject *dectuple)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sequence_as_tuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2572,1
    - Dst: dectuple_as_str
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2579,1
    - Dst: PyDecType_FromCString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2584,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2564
    functionDepth: 4
    functionLinenumber: 2564
    functionLinenumberEnd: 2588
    functionName: PyDecType_FromSequence
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - sequence_as_tuple
    - dectuple_as_str
    - PyDecType_FromCString
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromSequence(PyTypeObject *type, PyObject *v,\n
      \                      PyObject *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sequence_as_tuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2599,1
    - Dst: dectuple_as_str
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2605,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2606,1
    - Dst: PyDecType_FromCStringExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2611,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2591
    functionDepth: 4
    functionLinenumber: 2591
    functionLinenumberEnd: 2615
    functionName: PyDecType_FromSequenceExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - sequence_as_tuple
    - dectuple_as_str
    - PyDecType_FromCStringExact
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyDecType_FromSequenceExact(PyTypeObject *type, PyObject
      *v,\n                            PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2617
    functionDepth: 0
    functionLinenumber: 2617
    functionLinenumberEnd: 2619
    functionName: PyDec_FromCString
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromCString(str, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2619
    functionDepth: 0
    functionLinenumber: 2619
    functionLinenumberEnd: 2621
    functionName: PyDec_FromCStringExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromCStringExact(str, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2622
    functionDepth: 0
    functionLinenumber: 2622
    functionLinenumberEnd: 2624
    functionName: PyDec_FromUnicode
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicode(unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2626
      start: 2624
    functionDepth: 0
    functionLinenumber: 2624
    functionLinenumberEnd: 2626
    functionName: PyDec_FromUnicodeExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicodeExact(unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unicode
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2626
    functionDepth: 0
    functionLinenumber: 2626
    functionLinenumberEnd: 2628
    functionName: PyDec_FromUnicodeExactWS
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromUnicodeExactWS(unicode, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2631
      start: 2629
    functionDepth: 0
    functionLinenumber: 2629
    functionLinenumberEnd: 2631
    functionName: PyDec_FromSsize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSsize(v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2633
    functionName: PyDec_FromSsizeExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSsizeExact(v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pylong
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2636
    functionName: PyDec_FromLong
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromLong(pylong, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pylong
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2636
    functionDepth: 0
    functionLinenumber: 2636
    functionLinenumberEnd: 2638
    functionName: PyDec_FromLongExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromLongExact(pylong, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pyfloat
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2639
    functionDepth: 0
    functionLinenumber: 2639
    functionLinenumberEnd: 2641
    functionName: PyDec_FromFloat
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromFloat(pyfloat, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pyfloat
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2641
    functionDepth: 0
    functionLinenumber: 2641
    functionLinenumberEnd: 2643
    functionName: PyDec_FromFloatExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromFloatExact(pyfloat, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sequence
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2646
      start: 2644
    functionDepth: 0
    functionLinenumber: 2644
    functionLinenumberEnd: 2646
    functionName: PyDec_FromSequence
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSequence(sequence, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - sequence
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2646
    functionDepth: 0
    functionLinenumber: 2646
    functionLinenumberEnd: 2648
    functionName: PyDec_FromSequenceExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDec_FromSequenceExact(sequence, context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2656,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2657,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2659,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - type
    - pyfloat
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2650
    functionDepth: 5
    functionLinenumber: 2650
    functionLinenumberEnd: 2663
    functionName: dec_from_float
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDecType_FromFloatExact
    - PyObject_CallFunctionObjArgs
    - CURRENT_CONTEXT
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_from_float(PyObject *type, PyObject *pyfloat)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_FromFloat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2666
    functionDepth: 1
    functionLinenumber: 2666
    functionLinenumberEnd: 2670
    functionName: ctx_from_float
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromFloat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_from_float(PyObject *context, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2679,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2684,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2684,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2684,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2685,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2686,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2690,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2690,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2690,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2691,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2673
    functionDepth: 3
    functionLinenumber: 2673
    functionLinenumberEnd: 2697
    functionName: dec_apply
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mpd_qfinalize
    - CTX
    - dec_alloc
    - dec_addstatus
    - MPD
    - mpd_qcopy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_apply(PyObject *v, PyObject *context)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDecType_FromSsizeExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2706,1
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2708,1
    - Dst: PyDecType_FromDecimalExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2709,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2711,1
    - Dst: PyDecType_FromUnicodeExactWS
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2712,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2714,1
    - Dst: PyDecType_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2715,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2717,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2717,1
    - Dst: PyDecType_FromSequenceExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2718,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2720,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2721,1
    - Dst: PyDecType_FromFloatExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2724,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - type
    - v
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2702
    functionDepth: 5
    functionLinenumber: 2702
    functionLinenumberEnd: 2732
    functionName: PyDecType_FromObjectExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyDecType_FromSsizeExact
    - PyDecType_FromDecimalExact
    - PyDecType_FromFloatExact
    - PyDecType_FromLongExact
    - PyList_Check
    - PyTuple_Check
    - PyDecType_FromSequenceExact
    - dec_addstatus
    - PyErr_Format
    - PyDec_Check
    - PyUnicode_Check
    - PyDecType_FromUnicodeExactWS
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecType_FromObjectExact(PyTypeObject *type, PyObject *v, PyObject *context)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_FromSsize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2740,1
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2742,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2743,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2744,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2744,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2745,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2748,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2751,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2755,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2755,1
    - Dst: dec_apply
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2758,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2760,1
    - Dst: PyDec_FromUnicode
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2761,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2763,1
    - Dst: PyDec_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2764,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2766,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2766,1
    - Dst: PyDec_FromSequence
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2767,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2769,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2770,1
    - Dst: PyDec_FromFloat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2773,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2776,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - v
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2736
    functionDepth: 4
    functionLinenumber: 2736
    functionLinenumberEnd: 2781
    functionName: PyDec_FromObject
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_apply
    - PyDec_FromFloat
    - dec_alloc
    - PyFloat_Check
    - PyTuple_Check
    - PyDec_FromSequence
    - PyErr_Format
    - mpd_setspecial
    - PyLong_Check
    - PyDec_FromLong
    - PyDec_FromSsize
    - CTX
    - PyList_Check
    - MPD
    - mpd_isnan
    - dec_addstatus
    - PyDec_Check
    - PyUnicode_Check
    - PyDec_FromUnicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_FromObject(PyObject *v, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2790,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2794,1
    - Dst: PyDecType_FromObjectExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2783
    functionDepth: 6
    functionLinenumber: 2783
    functionLinenumberEnd: 2797
    functionName: dec_new
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyDecType_FromObjectExact
    - CONTEXT_CHECK_VA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2804,1
    - Dst: PyDec_FromObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2799
    functionDepth: 5
    functionLinenumber: 2799
    functionLinenumberEnd: 2809
    functionName: ctx_create_decimal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTuple
    - PyDec_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_create_decimal(PyObject *context, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2825,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2827,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2830,1
    - Dst: PyDec_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2831,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2839,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - type_err
    - conv
    - v
    - context
    argTypes:
    - int
    - PyObject**
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2822
    functionDepth: 1
    functionLinenumber: 2822
    functionLinenumberEnd: 2848
    functionName: convert_op
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyDec_FromLongExact
    - Py_INCREF
    - PyErr_Format
    - PyDec_Check
    linkageType: ''
    returnType: void
    signature: void convert_op(int type_err, PyObject **conv, PyObject *v, PyObject
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2851
    functionDepth: 0
    functionLinenumber: 2851
    functionLinenumberEnd: 2855
    functionName: CONVERT_OP
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_OP(a, v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - v
    - ','
    - w
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2856
    functionDepth: 0
    functionLinenumber: 2856
    functionLinenumberEnd: 2864
    functionName: CONVERT_BINOP
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_BINOP(a, b, v, w, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2865
    functionDepth: 0
    functionLinenumber: 2865
    functionLinenumberEnd: 2878
    functionName: CONVERT_TERNOP
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_TERNOP(a, b, c, v, w, x, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - v
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2880
    functionDepth: 0
    functionLinenumber: 2880
    functionLinenumberEnd: 2884
    functionName: CONVERT_OP_RAISE
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_OP_RAISE(a, v, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - v
    - ','
    - w
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2893
      start: 2885
    functionDepth: 0
    functionLinenumber: 2885
    functionLinenumberEnd: 2893
    functionName: CONVERT_BINOP_RAISE
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_BINOP_RAISE(a, b, v, w, context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2894
    functionDepth: 0
    functionLinenumber: 2894
    functionLinenumberEnd: 2907
    functionName: CONVERT_TERNOP_RAISE
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_TERNOP_RAISE(a, b, c, v, w, x, context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2927,1
    - Dst: PyDec_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2931,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2932,1
    - Dst: mpd_qncopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2937,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2937,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2939,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2940,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2945,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2946,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2950,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2957,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2957,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2957,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2960,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2961,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - v
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2915
    functionDepth: 1
    functionLinenumber: 2915
    functionLinenumberEnd: 2973
    functionName: multiply_by_denominator
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromLongExact
    - mpd_maxcontext
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_NoMemory
    - mpd_qncopy
    - dec_alloc
    - mpd_del
    - MPD
    - PyErr_SetString
    - mpd_qmul
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      multiply_by_denominator(PyObject *v, PyObject *r, PyObject *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2980,1
    - Dst: PyDec_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2985,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2986,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - r
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2988
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 2988
    functionName: numerator_as_decimal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyDec_FromLongExact
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      numerator_as_decimal(PyObject *r, PyObject *context)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:2999,1
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3003,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3004,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3007,1
    - Dst: PyDec_FromLongExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3008,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3010,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3012,1
    - Dst: PyDec_FromFloatExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3017,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3020,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3021,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3022,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3026,1
    - Dst: PyDec_FromFloatExact
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3032,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3033,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3037,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3042,1
    - Dst: numerator_as_decimal
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3047,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3048,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3048,1
    - Dst: multiply_by_denominator
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3049,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3051,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3056,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3065,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 6
    argNames:
    - vcmp
    - wcmp
    - v
    - w
    - op
    - context
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 2995
    functionDepth: 3
    functionLinenumber: 2995
    functionLinenumberEnd: 3068
    functionName: convert_op_cmp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - PyDec_FromLongExact
    - mpd_isspecial
    - Py_CLEAR
    - PyDec_FromFloatExact
    - PyFloat_Check
    - multiply_by_denominator
    - PyErr_Occurred
    - Py_INCREF
    - PyFloat_FromDouble
    - PyLong_Check
    - Py_DECREF
    - PyComplex_AsCComplex
    - CTX
    - numerator_as_decimal
    - MPD
    - PyComplex_Check
    - dec_addstatus
    - PyDec_Check
    linkageType: ''
    returnType: int
    signature: "int convert_op_cmp(PyObject **vcmp, PyObject **wcmp, PyObject *v,
      PyObject *w,\n               int op, PyObject *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - vcmp
    - ','
    - wcmp
    - ','
    - v
    - ','
    - w
    - ','
    - op
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3070
    functionDepth: 0
    functionLinenumber: 3070
    functionLinenumberEnd: 3075
    functionName: CONVERT_BINOP_CMP
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_BINOP_CMP(vcmp, wcmp, v, w, op, ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3085,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3090,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3092
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3092
    functionName: unicode_fromascii
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyUnicode_1BYTE_DATA
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_fromascii(const char *s, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3103,1
    - Dst: mpd_to_sci_size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3104,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3104,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3104,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3106,1
    - Dst: unicode_fromascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3110,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3096
    functionDepth: 2
    functionLinenumber: 3096
    functionLinenumberEnd: 3113
    functionName: dec_str
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - mpd_free
    - PyErr_NoMemory
    - MPD
    - mpd_to_sci_size
    - CURRENT_CONTEXT
    - unicode_fromascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_str(PyObject *dec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3122,1
    - Dst: mpd_to_sci
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3123,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3123,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3123,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3125,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3129,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3132
      start: 3116
    functionDepth: 1
    functionLinenumber: 3116
    functionLinenumberEnd: 3132
    functionName: dec_repr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - mpd_to_sci
    - PyErr_NoMemory
    - mpd_free
    - PyUnicode_FromFormat
    - MPD
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_repr(PyObject *dec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3138,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3140,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3147
      start: 3135
    functionDepth: 1
    functionLinenumber: 3135
    functionLinenumberEnd: 3147
    functionName: dec_strdup
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    - memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      dec_strdup(const char *src, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dest
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3149
    functionDepth: 0
    functionLinenumber: 3149
    functionLinenumberEnd: 3156
    functionName: dec_replace_fillchar
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dec_replace_fillchar(char *dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3168,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3170,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3175,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3160
    functionDepth: 1
    functionLinenumber: 3160
    functionLinenumberEnd: 3182
    functionName: dotsep_as_utf8
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mbstowcs
    - PyUnicode_FromWideChar
    - PyErr_SetString
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dotsep_as_utf8(const char *s)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3203,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3204,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3208,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3209,1
    - Dst: dec_strdup
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3217,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3225,1
    - Dst: mpd_parse_fmt_str
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3230,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3230,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3231,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3250,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3254,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3255,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3258,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3260,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3261,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3264,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3266,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3267,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3270,1
    - Dst: mpd_validate_lconv
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3272,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3273,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3279,1
    - Dst: isascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3280,1
    - Dst: dotsep_as_utf8
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3282,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3286,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3288,1
    - Dst: isascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3289,1
    - Dst: dotsep_as_utf8
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3291,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3295,1
    - Dst: mpd_qformat_spec
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3300,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3300,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3300,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3303,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3306,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3311,1
    - Dst: dec_replace_fillchar
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3313,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3316,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3320,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3321,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3322,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3323,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3324,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 107
    argCount: 2
    argNames:
    - dec
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 3185
    functionDepth: 2
    functionLinenumber: 3185
    functionLinenumberEnd: 3326
    functionName: dec_format
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CURRENT_CONTEXT
    - isascii
    - PyDict_GetItemString
    - PyUnicode_AsUTF8String
    - mpd_validate_lconv
    - CtxCaps
    - mpd_free
    - dec_replace_fillchar
    - strlen
    - dotsep_as_utf8
    - PyUnicode_DecodeUTF8
    - Py_XDECREF
    - PyArg_ParseTuple
    - mpd_qformat_spec
    - PyDict_Check
    - CTX
    - PyMem_Free
    - PyBytes_AS_STRING
    - MPD
    - mpd_parse_fmt_str
    - dec_strdup
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_format(PyObject *dec, PyObject *args)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3341,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3341,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3342,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3342,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3343,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3347,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3353,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3355,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3358,1
    - Dst: mpd_qround_to_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3360,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3360,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3361,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3362,1
    - Dst: mpd_qexport_u32
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3369,1
    - Dst: mpd_qexport_u16
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3371,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3377,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3378,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3382,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3383,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3385,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3386,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3390,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3391,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3398,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3399,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3399,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3400,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3403,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - dec
    - context
    - round
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 3381
        line_start: 3381
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 3405
      start: 3330
    functionDepth: 3
    functionLinenumber: 3330
    functionLinenumberEnd: 3405
    functionName: dec_as_long
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_iszero
    - mpd_qnew
    - mpd_isnegative
    - mpd_free
    - mpd_qexport_u32
    - mpd_qexport_u16
    - mpd_del
    - mpd_qround_to_int
    - assert
    - _PyLong_New
    - CTX
    - MPD
    - Py_SIZE
    - memcpy
    - PyErr_NoMemory
    - mpd_isnan
    - dec_addstatus
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_as_long(PyObject *dec, PyObject *context, int round)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3420,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3420,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3421,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3421,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3422,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3426,1
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3432,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3434,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3439,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3439,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3440,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3441,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3445,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3445,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3445,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3446,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3449,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3450,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3455,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3460,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3465,1
    - Dst: _py_long_power
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3466,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3472,1
    - Dst: _py_long_multiply
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3472,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3476,1
    - Dst: _PyLong_GCD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3484,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3488,1
    - Dst: _py_long_floor_divide
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3488,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3489,1
    - Dst: _py_long_floor_divide
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3490,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3496,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3500,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3501,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3502,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3408
    functionDepth: 4
    functionLinenumber: 3408
    functionLinenumberEnd: 3504
    functionName: dec_as_integer_ratio
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - mpd_isspecial
    - dec_alloc
    - mpd_iszero
    - CURRENT_CONTEXT
    - _PyLong_GCD
    - PyTuple_Pack
    - _py_long_multiply
    - Py_XDECREF
    - mpd_qcopy
    - Py_DECREF
    - _py_long_floor_divide
    - MPD
    - Py_SETREF
    - dec_as_long
    - PyErr_NoMemory
    - _py_long_power
    - mpd_isnan
    - PyErr_SetString
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_as_integer_ratio(PyObject *self, PyObject *args UNUSED)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3516,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3520,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3522,1
    - Dst: getround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3524,1
    - Dst: mpd_qsetround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3528,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3529,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3533,1
    - Dst: mpd_qround_to_int
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3538,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3538,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3538,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3539,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - dec
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3506
    functionDepth: 3
    functionLinenumber: 3506
    functionLinenumberEnd: 3545
    functionName: PyDec_ToIntegralValue
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - getround
    - Py_DECREF
    - CTX
    - mpd_qround_to_int
    - dec_alloc
    - INTERNAL_ERROR_PTR
    - dec_addstatus
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - mpd_qsetround
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_ToIntegralValue(PyObject *dec, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3557,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3561,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3563,1
    - Dst: getround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3565,1
    - Dst: mpd_qsetround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3569,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3570,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3574,1
    - Dst: mpd_qround_to_intx
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3579,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3579,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3579,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3580,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3581,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - dec
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3586
      start: 3547
    functionDepth: 3
    functionLinenumber: 3547
    functionLinenumberEnd: 3586
    functionName: PyDec_ToIntegralExact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - getround
    - Py_DECREF
    - CTX
    - mpd_qround_to_intx
    - dec_alloc
    - INTERNAL_ERROR_PTR
    - dec_addstatus
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - mpd_qsetround
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_ToIntegralExact(PyObject *dec, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3593,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3593,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3594,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3594,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3595,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3599,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3599,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3600,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3603,1
    - Dst: dec_str
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3607,1
    - Dst: PyFloat_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3614,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3618
      start: 3588
    functionDepth: 3
    functionLinenumber: 3588
    functionLinenumberEnd: 3618
    functionName: PyDec_AsFloat
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - mpd_issnan
    - Py_DECREF
    - PyFloat_FromString
    - mpd_isnegative
    - mpd_isnan
    - dec_str
    - MPD
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_AsFloat(PyObject *dec)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3629,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3630,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3640,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3645,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3646,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3649,1
    - Dst: mpd_qquantize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3655,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3655,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3655,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3655,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3657,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3664,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - dec
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3620
    functionDepth: 4
    functionLinenumber: 3620
    functionLinenumberEnd: 3666
    functionName: PyDec_Round
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - dec_as_long
    - mpd_qquantize
    - PyErr_Occurred
    - Py_DECREF
    - CTX
    - PyLong_AsSsize_t
    - dec_alloc
    - dec_addstatus
    - PyErr_SetString
    - MPD
    - CURRENT_CONTEXT
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_Round(PyObject *dec, PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qncopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3683,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3683,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3685,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3689,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3689,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3689,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3694,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3695,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3700,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3706,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3707,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3707,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3710,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3710,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3722,1
    - Dst: mpd_to_sci
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3723,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3725,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3729,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3730,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3736,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3740,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3744,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3751,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3755,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3756,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3757,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3758,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:3759,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 2
    argNames:
    - dec
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3761
      start: 3670
    functionDepth: 1
    functionLinenumber: 3670
    functionLinenumberEnd: 3761
    functionName: PyDec_AsTuple
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - mpd_clear_flags
    - PyLong_FromUnsignedLong
    - mpd_isqnan
    - mpd_free
    - strlen
    - mpd_del
    - mpd_isinfinite
    - Py_XDECREF
    - PyUnicode_FromString
    - mpd_sign
    - MPD
    - PyTuple_New
    - Py_BuildValue
    - mpd_to_sci
    - PyErr_NoMemory
    - mpd_qncopy
    - mpd_isnan
    - PyObject_CallFunctionObjArgs
    - PyLong_FromSsize_t
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDec_AsTuple(PyObject *dec, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3769
    functionDepth: 0
    functionLinenumber: 3769
    functionLinenumberEnd: 3790
    functionName: Dec_UnaryNumberMethod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_UnaryNumberMethod(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3820
      start: 3792
    functionDepth: 0
    functionLinenumber: 3792
    functionLinenumberEnd: 3820
    functionName: Dec_BinaryNumberMethod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_BinaryNumberMethod(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3828
      start: 3822
    functionDepth: 0
    functionLinenumber: 3822
    functionLinenumberEnd: 3828
    functionName: Dec_BoolFunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_BoolFunc(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3845
      start: 3830
    functionDepth: 0
    functionLinenumber: 3830
    functionLinenumberEnd: 3845
    functionName: Dec_BoolFuncVA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_BoolFuncVA(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3874
      start: 3847
    functionDepth: 0
    functionLinenumber: 3847
    functionLinenumberEnd: 3874
    functionName: Dec_UnaryFuncVA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_UnaryFuncVA(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3910
      start: 3876
    functionDepth: 0
    functionLinenumber: 3876
    functionLinenumberEnd: 3910
    functionName: Dec_BinaryFuncVA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_BinaryFuncVA(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3943
      start: 3914
    functionDepth: 0
    functionLinenumber: 3914
    functionLinenumberEnd: 3943
    functionName: Dec_BinaryFuncVA_NO_CTX
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_BinaryFuncVA_NO_CTX(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3981
      start: 3945
    functionDepth: 0
    functionLinenumber: 3945
    functionLinenumberEnd: 3981
    functionName: Dec_TernaryFuncVA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dec_TernaryFuncVA(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4003,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4005
      start: 3998
    functionDepth: 4
    functionLinenumber: 3998
    functionLinenumberEnd: 4005
    functionName: nm_dec_as_long
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_dec_as_long(PyObject *dec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4010,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4011
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4011
    functionName: nm_nonzero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszero
    - MPD
    linkageType: ''
    returnType: int
    signature: int nm_nonzero(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4022,1
    - Dst: CONVERT_BINOP
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4023,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4025,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4027,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4028,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4031,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4033,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4034,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4035,1
    - Dst: mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4039,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4041,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4042,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4044,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4048,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4049,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4013
    functionDepth: 3
    functionLinenumber: 4013
    functionLinenumberEnd: 4052
    functionName: nm_mpd_qdivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - mpd_qdivmod
    - CONVERT_BINOP
    - CTX
    - dec_alloc
    - dec_addstatus
    - MPD
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_mpd_qdivmod(PyObject *v, PyObject *w)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4062,1
    - Dst: CONVERT_BINOP
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4063,1
    - Dst: convert_op
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4067,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4068,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4073,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4075,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4076,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4077,1
    - Dst: mpd_qpow
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4082,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4082,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4082,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4082,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4083,1
    - Dst: mpd_qpowmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4086,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4086,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4086,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4086,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4086,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4090,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4091,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4092,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4098
      start: 4054
    functionDepth: 3
    functionLinenumber: 4054
    functionLinenumberEnd: 4098
    functionName: nm_mpd_qpow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CONVERT_BINOP
    - CTX
    - mpd_qpow
    - dec_alloc
    - dec_addstatus
    - MPD
    - convert_op
    - CURRENT_CONTEXT
    - Py_XDECREF
    - mpd_qpowmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      nm_mpd_qpow(PyObject *base, PyObject *exp, PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4147,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4147,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4151,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4151,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4142
    functionDepth: 1
    functionLinenumber: 4142
    functionLinenumberEnd: 4155
    functionName: dec_mpd_adjexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_adjexp
    - PyLong_FromSsize_t
    - mpd_isspecial
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_adjexp(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4157
    functionDepth: 1
    functionLinenumber: 4157
    functionLinenumberEnd: 4162
    functionName: dec_canonical
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_canonical(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4169
      start: 4164
    functionDepth: 1
    functionLinenumber: 4164
    functionLinenumberEnd: 4169
    functionName: dec_conjugate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_conjugate(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4176,1
    - Dst: _dec_settriple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - UNUSED
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4183
      start: 4171
    functionDepth: 2
    functionLinenumber: 4171
    functionLinenumberEnd: 4183
    functionName: dec_mpd_radix
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_alloc
    - _dec_settriple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_radix(PyObject *self UNUSED, PyObject *dummy UNUSED)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4191,1
    - Dst: mpd_qcopy_abs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4195,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4195,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4197,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4185
    functionDepth: 1
    functionLinenumber: 4185
    functionLinenumberEnd: 4203
    functionName: dec_mpd_qcopy_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mpd_qcopy_abs
    - PyErr_NoMemory
    - dec_alloc
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_qcopy_abs(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4211,1
    - Dst: mpd_qcopy_negate
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4215,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4215,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4217,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4223
      start: 4205
    functionDepth: 1
    functionLinenumber: 4205
    functionLinenumberEnd: 4223
    functionName: dec_mpd_qcopy_negate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - mpd_qcopy_negate
    - PyErr_NoMemory
    - dec_alloc
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_qcopy_negate(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4236,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4240,1
    - Dst: mpd_class
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4242,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4242,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4242,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4244
      start: 4229
    functionDepth: 1
    functionLinenumber: 4229
    functionLinenumberEnd: 4244
    functionName: dec_mpd_class
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - CTX
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - mpd_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_class(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4255,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4259,1
    - Dst: mpd_to_eng_size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4261,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4261,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4261,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4263,1
    - Dst: unicode_fromascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4267,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4246
    functionDepth: 2
    functionLinenumber: 4246
    functionLinenumberEnd: 4271
    functionName: dec_mpd_to_eng
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CtxCaps
    - mpd_free
    - PyErr_NoMemory
    - mpd_to_eng_size
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - unicode_fromascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_to_eng(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4287,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4291,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4292,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4296,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4297,1
    - Dst: mpd_qcopy_sign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4301,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4301,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4301,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4303,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4310
      start: 4277
    functionDepth: 3
    functionLinenumber: 4277
    functionLinenumberEnd: 4310
    functionName: dec_mpd_qcopy_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - Py_DECREF
    - dec_alloc
    - dec_addstatus
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_qcopy_sign(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4321,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4325,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4326,1
    - Dst: mpd_same_quantum
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4328,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4328,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4328,1
    - Dst: incr_true
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4328,1
    - Dst: incr_false
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4328,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4312
    functionDepth: 2
    functionLinenumber: 4312
    functionLinenumberEnd: 4333
    functionName: dec_mpd_same_quantum
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_BINOP_RAISE
    - Py_DECREF
    - incr_false
    - incr_true
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - mpd_same_quantum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_same_quantum(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4355,1
    - Dst: CONTEXT_CHECK_VA
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4359,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4361,1
    - Dst: getround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4363,1
    - Dst: mpd_qsetround
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4367,1
    - Dst: INTERNAL_ERROR_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4368,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4372,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4377,1
    - Dst: mpd_qquantize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4381,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4381,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4381,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4383,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4384,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - v
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4344
    functionDepth: 3
    functionLinenumber: 4344
    functionLinenumberEnd: 4390
    functionName: dec_mpd_qquantize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_BINOP_RAISE
    - getround
    - mpd_qquantize
    - Py_DECREF
    - CTX
    - dec_alloc
    - INTERNAL_ERROR_PTR
    - dec_addstatus
    - MPD
    - CONTEXT_CHECK_VA
    - PyArg_ParseTupleAndKeywords
    - mpd_qsetround
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_mpd_qquantize(PyObject *v, PyObject *args, PyObject *kwds)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4403,1
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4403,1
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4405,1
    - Dst: CONVERT_BINOP_CMP
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4406,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4408,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4408,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4409,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4409,1
    - Dst: mpd_qcmp
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4411,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4411,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4411,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4413,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4417,1
    - Dst: incr_true
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4423,1
    - Dst: incr_false
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4423,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyDec_Check(v))
      pos:
        line_end: 4402
        line_start: 4402
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    constantsTouched: []
    func_position:
      end: 4448
      start: 4393
    functionDepth: 3
    functionLinenumber: 4393
    functionLinenumberEnd: 4448
    functionName: dec_richcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_issnan
    - CONVERT_BINOP_CMP
    - Py_DECREF
    - mpd_qcmp
    - incr_false
    - dec_addstatus
    - incr_true
    - PyDec_Check
    - MPD
    - PyBool_FromLong
    - assert
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4456,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4451
    functionDepth: 4
    functionLinenumber: 4451
    functionLinenumberEnd: 4458
    functionName: dec_ceil
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_ceil(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_AsFloat
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4467,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4472,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4473,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4474,1
    - Dst: PyComplex_FromDoubles
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4479
      start: 4461
    functionDepth: 4
    functionLinenumber: 4461
    functionLinenumberEnd: 4479
    functionName: dec_complex
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_DECREF
    - PyDec_AsFloat
    - PyComplex_FromDoubles
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_complex(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4482
    functionDepth: 1
    functionLinenumber: 4482
    functionLinenumberEnd: 4487
    functionName: dec_copy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_copy(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4495,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4497
      start: 4490
    functionDepth: 4
    functionLinenumber: 4490
    functionLinenumberEnd: 4497
    functionName: dec_floor
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_floor(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4535,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4535,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4536,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4536,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4537,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4541,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4541,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4545,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4545,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4549,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4550,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4554,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4563,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4566,1
    - Dst: mpd_qpowmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4567,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4571,1
    - Dst: mpd_qpowmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4572,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4576,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4576,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4580,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4586,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4587,1
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4589,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4590,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4598,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4606,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4607,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4611,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyDecObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4500
    functionDepth: 1
    functionLinenumber: 4500
    functionLinenumberEnd: 4614
    functionName: _dec_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_issnan
    - mpd_maxcontext
    - mpd_arith_sign
    - mpd_qnew
    - mpd_set_positive
    - PyErr_NoMemory
    - mpd_qsset_ssize
    - mpd_ispositive
    - mpd_isnan
    - mpd_qcopy
    - mpd_del
    - mpd_qget_ssize
    - PyErr_SetString
    - MPD
    - mpd_qmul
    - mpd_qrem
    - mpd_qpowmod
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _dec_hash(PyDecObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _dec_hash
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDecObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4616
    functionDepth: 2
    functionLinenumber: 4616
    functionLinenumberEnd: 4624
    functionName: dec_hash
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 1
    functionsReached:
    - _dec_hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t dec_hash(PyDecObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_str
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4632,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4637,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4637,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4641
      start: 4627
    functionDepth: 3
    functionLinenumber: 4627
    functionLinenumberEnd: 4641
    functionName: dec_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dec_str
    - Py_TYPE
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_reduce(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4649,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4649,1
    - Dst: mpd_isdynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4650,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4650,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4651,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4654
      start: 4644
    functionDepth: 1
    functionLinenumber: 4644
    functionLinenumberEnd: 4654
    functionName: dec_sizeof
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - _PyObject_SIZE
    - mpd_isdynamic_data
    - Py_TYPE
    - MPD
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_sizeof(PyObject *v, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CURRENT_CONTEXT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4662,1
    - Dst: dec_as_long
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - UNUSED
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4657
    functionDepth: 4
    functionLinenumber: 4657
    functionLinenumberEnd: 4664
    functionName: dec_trunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_as_long
    - CURRENT_CONTEXT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_trunc(PyObject *self, PyObject *dummy UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4672
      start: 4667
    functionDepth: 1
    functionLinenumber: 4667
    functionLinenumberEnd: 4672
    functionName: dec_real
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_real(PyObject *self, void *closure UNUSED)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4679,1
    - Dst: _dec_settriple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:4684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - UNUSED
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4674
    functionDepth: 2
    functionLinenumber: 4674
    functionLinenumberEnd: 4686
    functionName: dec_imag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_alloc
    - _dec_settriple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dec_imag(PyObject *self UNUSED, void *closure UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4893
      start: 4880
    functionDepth: 0
    functionLinenumber: 4880
    functionLinenumberEnd: 4893
    functionName: DecCtx_BoolFunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_BoolFunc(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4895
    functionDepth: 0
    functionLinenumber: 4895
    functionLinenumberEnd: 4908
    functionName: DecCtx_BoolFunc_NO_CTX
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_BoolFunc_NO_CTX(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4933
      start: 4910
    functionDepth: 0
    functionLinenumber: 4910
    functionLinenumberEnd: 4933
    functionName: DecCtx_UnaryFunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_UnaryFunc(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4966
      start: 4935
    functionDepth: 0
    functionLinenumber: 4935
    functionLinenumberEnd: 4966
    functionName: DecCtx_BinaryFunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_BinaryFunc(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4971
    functionDepth: 0
    functionLinenumber: 4971
    functionLinenumberEnd: 4997
    functionName: DecCtx_BinaryFunc_NO_CTX
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_BinaryFunc_NO_CTX(MPDFUNC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MPDFUNC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 4999
    functionDepth: 0
    functionLinenumber: 4999
    functionLinenumberEnd: 5032
    functionName: DecCtx_TernaryFunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DecCtx_TernaryFunc(MPDFUNC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5074,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5078,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5082,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5083,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5086,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5090,1
    - Dst: mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5094,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5095,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5096,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5097,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5098,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5099,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5107
      start: 5065
    functionDepth: 3
    functionLinenumber: 5065
    functionLinenumberEnd: 5107
    functionName: ctx_mpd_qdivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_BINOP_RAISE
    - Py_BuildValue
    - Py_DECREF
    - mpd_qdivmod
    - CTX
    - dec_alloc
    - dec_addstatus
    - MPD
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qdivmod(PyObject *context, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5119,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5124,1
    - Dst: convert_op
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5127,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5129,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5134,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5136,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5137,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5138,1
    - Dst: mpd_qpow
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5143,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5143,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5143,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5143,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5144,1
    - Dst: mpd_qpowmod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5147,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5147,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5147,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5147,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5147,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5148,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5152,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5153,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - context
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5159
      start: 5110
    functionDepth: 3
    functionLinenumber: 5110
    functionLinenumberEnd: 5159
    functionName: ctx_mpd_qpow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_BINOP_RAISE
    - Py_DECREF
    - CTX
    - mpd_qpow
    - dec_alloc
    - dec_addstatus
    - MPD
    - convert_op
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - mpd_qpowmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qpow(PyObject *context, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dec_mpd_radix
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - dummy
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5169
      start: 5165
    functionDepth: 3
    functionLinenumber: 5165
    functionLinenumberEnd: 5169
    functionName: ctx_mpd_radix
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - dec_mpd_radix
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_radix(PyObject *context, PyObject *dummy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5185,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5186,1
    - Dst: mpd_iscanonical
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5191,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5191,1
    - Dst: incr_true
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5191,1
    - Dst: incr_false
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5192
      start: 5182
    functionDepth: 2
    functionLinenumber: 5182
    functionLinenumberEnd: 5192
    functionName: ctx_iscanonical
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_iscanonical
    - incr_false
    - incr_true
    - MPD
    - PyDec_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_iscanonical(PyObject *context UNUSED, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5200,1
    - Dst: dec_apply
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5195
    functionDepth: 4
    functionLinenumber: 5195
    functionLinenumberEnd: 5205
    functionName: PyDecContext_Apply
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dec_apply
    - CONVERT_OP_RAISE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDecContext_Apply(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDec_Check
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5210,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5211,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5218
      start: 5207
    functionDepth: 1
    functionLinenumber: 5207
    functionLinenumberEnd: 5218
    functionName: ctx_canonical
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyDec_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_canonical(PyObject *context UNUSED, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5226,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5230,1
    - Dst: mpd_qcopy_abs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5234,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5234,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5235,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5242
      start: 5220
    functionDepth: 3
    functionLinenumber: 5220
    functionLinenumberEnd: 5242
    functionName: ctx_mpd_qcopy_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CONVERT_OP_RAISE
    - mpd_qcopy_abs
    - dec_alloc
    - dec_addstatus
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_abs(PyObject *context, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5251
      start: 5244
    functionDepth: 1
    functionLinenumber: 5244
    functionLinenumberEnd: 5251
    functionName: ctx_copy_decimal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_OP_RAISE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_copy_decimal(PyObject *context, PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5259,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5263,1
    - Dst: mpd_qcopy_negate
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5267,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5267,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5268,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5275
      start: 5253
    functionDepth: 3
    functionLinenumber: 5253
    functionLinenumberEnd: 5275
    functionName: ctx_mpd_qcopy_negate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CONVERT_OP_RAISE
    - mpd_qcopy_negate
    - dec_alloc
    - dec_addstatus
    - MPD
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_negate(PyObject *context, PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5286,1
    - Dst: mpd_class
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5288,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5288,1
    - Dst: CTX
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5289,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5292
      start: 5280
    functionDepth: 1
    functionLinenumber: 5280
    functionLinenumberEnd: 5292
    functionName: ctx_mpd_class
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - CONVERT_OP_RAISE
    - CTX
    - MPD
    - mpd_class
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_class(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5302,1
    - Dst: mpd_to_sci_size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5304,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5304,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5305,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5307,1
    - Dst: unicode_fromascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5311,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5315
      start: 5294
    functionDepth: 2
    functionLinenumber: 5294
    functionLinenumberEnd: 5315
    functionName: ctx_mpd_to_sci
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CONVERT_OP_RAISE
    - CtxCaps
    - mpd_free
    - PyErr_NoMemory
    - MPD
    - mpd_to_sci_size
    - unicode_fromascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_to_sci(PyObject *context, PyObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_OP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5325,1
    - Dst: mpd_to_eng_size
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5327,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5327,1
    - Dst: CtxCaps
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5328,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5330,1
    - Dst: unicode_fromascii
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5334,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - context
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5338
      start: 5317
    functionDepth: 2
    functionLinenumber: 5317
    functionLinenumberEnd: 5338
    functionName: ctx_mpd_to_eng
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - CONVERT_OP_RAISE
    - CtxCaps
    - mpd_free
    - PyErr_NoMemory
    - mpd_to_eng_size
    - MPD
    - unicode_fromascii
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_to_eng(PyObject *context, PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5352,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5356,1
    - Dst: dec_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5358,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5360,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5361,1
    - Dst: mpd_qcopy_sign
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5365,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5365,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5365,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5365,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5367,1
    - Dst: dec_addstatus
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5368,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5374
      start: 5344
    functionDepth: 3
    functionLinenumber: 5344
    functionLinenumberEnd: 5374
    functionName: ctx_mpd_qcopy_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - mpd_qcopy_sign
    - CONVERT_BINOP_RAISE
    - Py_DECREF
    - dec_alloc
    - dec_addstatus
    - MPD
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_qcopy_sign(PyObject *context, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5391,1
    - Dst: CONVERT_BINOP_RAISE
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5395,1
    - Dst: mpd_same_quantum
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5397,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5397,1
    - Dst: MPD
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5397,1
    - Dst: incr_true
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5397,1
    - Dst: incr_false
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - context
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5384
    functionDepth: 2
    functionLinenumber: 5384
    functionLinenumberEnd: 5402
    functionName: ctx_mpd_same_quantum
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - CONVERT_BINOP_RAISE
    - Py_DECREF
    - incr_false
    - incr_true
    - MPD
    - PyArg_ParseTuple
    - mpd_same_quantum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ctx_mpd_same_quantum(PyObject *context, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5621
      start: 5619
    functionDepth: 0
    functionLinenumber: 5619
    functionLinenumberEnd: 5621
    functionName: CHECK_INT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - result
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5623
      start: 5621
    functionDepth: 0
    functionLinenumber: 5621
    functionLinenumberEnd: 5623
    functionName: ASSIGN_PTR
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_PTR(result, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5623
    functionDepth: 0
    functionLinenumber: 5623
    functionLinenumberEnd: 5625
    functionName: CHECK_PTR
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PTR(expr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5637,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - t
    - name
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5649
      start: 5627
    functionDepth: 1
    functionLinenumber: 5627
    functionLinenumberEnd: 5649
    functionName: cfunc_noargs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_Format
    linkageType: ''
    returnType: PyCFunction
    signature: PyCFunction cfunc_noargs(PyTypeObject *t, const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_setminalloc
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5674,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5682,1
    - Dst: cfunc_noargs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5682,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5684,1
    - Dst: cfunc_noargs
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5684,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5693,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5693,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5694,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5694,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5695,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5695,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5696,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5696,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5698,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5698,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5699,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5699,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5700,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5700,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5702,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5706,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5706,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5707,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5707,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5709,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5709,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5711,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5713,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5713,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5715,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5716,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5719,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5719,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5720,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5720,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5724,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5724,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5725,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5725,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5726,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5729,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5729,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5730,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5730,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5733,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5734,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5740,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5741,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5742,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5746,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5746,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5750,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5751,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5751,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5752,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5753,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5753,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5755,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5756,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5756,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5760,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5760,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5763,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5764,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5764,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5767,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5767,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5777,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5780,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5783,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5787,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5792,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5800,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5801,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5804,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5805,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5805,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5808,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5809,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5823,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5826,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5832,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5833,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5835,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5836,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5836,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5841,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5842,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5843,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5844,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5844,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5848,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5848,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5849,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5850,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5850,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5852,1
    - Dst: PyContextVar_New
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5852,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5853,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5854,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5854,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5856,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5857,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5857,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5860,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5861,1
    - Dst: init_basic_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5862,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5863,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5864,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5864,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5868,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5869,1
    - Dst: init_extended_context
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5870,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5871,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5872,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5872,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5878,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5878,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5879,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5879,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5885,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5885,1
    - Dst: ASSIGN_PTR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5891,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5891,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5892,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5893,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5893,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5897,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5897,1
    - Dst: CHECK_INT
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5898,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5898,1
    - Dst: mpd_version
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5898,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5905,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5906,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5907,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5908,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5909,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5910,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5911,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5912,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5913,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5914,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5916,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5918,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5920,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5921,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/_decimal/_decimal.c:5922,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5925
      start: 5652
    functionDepth: 2
    functionLinenumber: 5652
    functionLinenumberEnd: 5925
    functionName: PyInit__decimal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_CLEAR
    - PyErr_NewException
    - mpd_setminalloc
    - mpd_version
    - cfunc_noargs
    - PyUnicode_InternFromString
    - PyObject_GetAttrString
    - ASSIGN_PTR
    - Py_INCREF
    - PyModule_Create
    - PyTuple_Pack
    - PyObject_CallFunction
    - PyModule_AddStringConstant
    - PyModule_AddIntConstant
    - PyUnicode_FromString
    - Py_DECREF
    - init_extended_context
    - PyType_Ready
    - PyTuple_New
    - PyImport_ImportModule
    - PyContextVar_New
    - CHECK_INT
    - PyModule_AddObject
    - init_basic_context
    - PyDict_SetItemString
    - PyLong_FromSsize_t
    - PyObject_CallMethod
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__decimal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: ispower2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ispower2(mpd_size_t n)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: mpd_bsr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_bsr(mpd_size_t n)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: mpd_bsf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_bsf(mpd_size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: mpd_bsr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_bsr(mpd_size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 145
    functionName: mpd_bsf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_bsf(mpd_size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanReverse64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h:159,1
    - Dst: _BitScanReverse
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: mpd_bsr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached:
    - _BitScanReverse64
    - _BitScanReverse
    linkageType: ''
    returnType: int
    signature: int mpd_bsr(mpd_size_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _BitScanForward64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h:176,1
    - Dst: _BitScanForward
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 182
    functionName: mpd_bsf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
    functionUses: 0
    functionsReached:
    - _BitScanForward64
    - _BitScanForward
    linkageType: ''
    returnType: int
    signature: int mpd_bsf(mpd_size_t a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:46,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: _crt_mulP1P2_3
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
    functionUses: 0
    functionsReached:
    - _mpd_mul_words
    linkageType: ''
    returnType: void
    signature: void _crt_mulP1P2_3(mpd_uint_t w[3], mpd_uint_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: _crt_add3
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _crt_add3(mpd_uint_t w[3], mpd_uint_t v[3])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:86,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:89,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - w
    - u
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 93
    functionName: _crt_div3
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
    functionUses: 0
    functionsReached:
    - _mpd_div_words
    - _mpd_div_word
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _crt_div3(mpd_uint_t *w, const mpd_uint_t *u, mpd_uint_t
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:153,1
    - Dst: ext_submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:154,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:155,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:157,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:161,1
    - Dst: dw_submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:162,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:163,1
    - Dst: _crt_mulP1P2_3
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:169,1
    - Dst: _crt_add3
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:170,1
    - Dst: _crt_add3
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:171,1
    - Dst: _crt_div3
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:173,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - x1
    - x2
    - x3
    - rsize
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    assertStmts:
    - condition: (carry[0] == 0 && carry[1] == 0 && carry[2] == 0)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
    constantsTouched: []
    func_position:
      end: 177
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 177
    functionName: crt3
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
    functionUses: 0
    functionsReached:
    - dw_submod
    - ext_submod
    - assert
    - _crt_add3
    - MULMOD
    - _crt_mulP1P2_3
    - _crt_div3
    - _mpd_mul_words
    - SETMODULUS
    linkageType: ''
    returnType: void
    signature: void crt3(mpd_uint_t *x1, mpd_uint_t *x2, mpd_uint_t *x3, mpd_size_t
      rsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dest
    - src
    - rows
    - cols
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t[]
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: std_trans
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_trans(mpd_uint_t dest[], mpd_uint_t src[], mpd_size_t rows,
      mpd_size_t cols)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:86,1
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:86,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:95,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:101,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:118,1
    - Dst: pointerswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:119,1
    - Dst: mulmod_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:121,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:126,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:127,1
    - Dst: pointerswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:128,1
    - Dst: mulmod_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:132,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:137,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - matrix
    - rows
    - cols
    - dir
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - int
    assertStmts:
    - condition: (cols == mul_size_t(2, rows))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    constantsTouched: []
    func_position:
      end: 145
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 145
    functionName: swap_halfrows_pow2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mul_size_t
    - mpd_calloc
    - mpd_free
    - abort
    - pointerswap
    - assert
    - mulmod_size_t
    linkageType: ''
    returnType: int
    signature: int swap_halfrows_pow2(mpd_uint_t *matrix, mpd_size_t rows, mpd_size_t
      cols, int dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - cols
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: squaretrans
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void squaretrans(mpd_uint_t *buf, mpd_size_t cols)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:193,1
    - Dst: squaretrans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:197,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:203,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:213,1
    - Dst: squaretrans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:217,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:222,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:230,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 2
    argNames:
    - matrix
    - size
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 238
    functionName: squaretrans_pow2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached:
    - memcpy
    - squaretrans
    linkageType: ''
    returnType: void
    signature: void squaretrans_pow2(mpd_uint_t *matrix, mpd_size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:247,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:249,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:249,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:250,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:250,1
    - Dst: squaretrans_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:253,1
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:255,1
    - Dst: swap_halfrows_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:256,1
    - Dst: squaretrans_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:259,1
    - Dst: squaretrans_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:260,1
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:262,1
    - Dst: squaretrans_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:263,1
    - Dst: squaretrans_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:264,1
    - Dst: swap_halfrows_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:265,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - matrix
    - rows
    - cols
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (ispower2(rows))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    - condition: (ispower2(cols))
      pos:
        line_end: 249
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: transpose_pow2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
    functionUses: 0
    functionsReached:
    - ispower2
    - squaretrans_pow2
    - mul_size_t
    - abort
    - swap_halfrows_pow2
    - assert
    linkageType: ''
    returnType: int
    signature: int transpose_pow2(mpd_uint_t *matrix, mpd_size_t rows, mpd_size_t
      cols)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_uint_t**
    - mpd_uint_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: pointerswap
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pointerswap(mpd_uint_t **a, mpd_uint_t **b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:59,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:60,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:62,1
    - Dst: fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:77,1
    - Dst: fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:80,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:88,1
    - Dst: inv_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:93,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:101,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:102,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 4
    argNames:
    - c1
    - c2
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 110
    functionName: fnt_convolute
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c
    functionUses: 0
    functionsReached:
    - ispower2
    - MULMOD2
    - inv_fnt
    - MULMOD2C
    - SETMODULUS
    - fnt
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int fnt_convolute(mpd_uint_t *c1, mpd_uint_t *c2, mpd_size_t n, int
      modnum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:126,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:127,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:129,1
    - Dst: fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:144,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:150,1
    - Dst: inv_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:155,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:163,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - c1
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 172
    functionName: fnt_autoconvolute
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c
    functionUses: 0
    functionsReached:
    - ispower2
    - MULMOD2
    - inv_fnt
    - MULMOD2C
    - SETMODULUS
    - fnt
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int fnt_autoconvolute(mpd_uint_t *c1, mpd_size_t n, int modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - q
    - r
    - hi
    - lo
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi, mpd_uint_t
      lo,\n               mpd_uint_t d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 99
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: nlz
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nlz(uint64_t x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:139,1
    - Dst: nlz
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - q
    - r
    - u1
    - u0
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (u1 < v)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 200
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 200
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - assert
    - nlz
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t u1, mpd_uint_t
      u0,\n               mpd_uint_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - q
    - r
    - hi
    - lo
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 234
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi, mpd_uint_t
      lo,\n               mpd_uint_t d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached:
    - _umul128
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - q
    - ','
    - r
    - ','
    - v
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: DIVMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIVMOD(q, r, v, d)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:258,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:264,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:265,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:266,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:267,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:272,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:273,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:274,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:275,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:276,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:283,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:284,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:285,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:286,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:287,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:292,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:293,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:294,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:295,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:296,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 4
    argNames:
    - q
    - r
    - v
    - exp
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (exp <= 19)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 300
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 300
    functionName: _mpd_divmod_pow10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - assert
    - DIVMOD
    linkageType: ''
    returnType: void
    signature: void _mpd_divmod_pow10(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t v,
      mpd_uint_t exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - q
    - r
    - hi
    - lo
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi, mpd_uint_t
      lo,\n               mpd_uint_t d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 357
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: nlz
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nlz(uint32_t x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:396,1
    - Dst: nlz
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:398,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - q
    - r
    - u1
    - u0
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (u1 < v)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 457
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 457
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - assert
    - nlz
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t u1, mpd_uint_t
      u0,\n               mpd_uint_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 475
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - q
    - r
    - hi
    - lo
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi, mpd_uint_t
      lo,\n               mpd_uint_t d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hi
    - lo
    - a
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 508
    functionName: _mpd_mul_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_words(mpd_uint_t *hi, mpd_uint_t *lo, mpd_uint_t a, mpd_uint_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - q
    - r
    - hi
    - lo
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 526
    functionName: _mpd_div_words
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _mpd_div_words(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi, mpd_uint_t
      lo,\n               mpd_uint_t d)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - q
    - ','
    - r
    - ','
    - v
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 533
    functionName: DIVMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIVMOD(q, r, v, d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:536,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:541,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:542,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:543,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:544,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:549,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:550,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:551,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:552,1
    - Dst: DIVMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:553,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - q
    - r
    - v
    - exp
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (exp <= 9)
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    constantsTouched: []
    func_position:
      end: 556
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 556
    functionName: _mpd_divmod_pow10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - assert
    - DIVMOD
    linkageType: ''
    returnType: void
    signature: void _mpd_divmod_pow10(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t v,
      mpd_uint_t exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - q
    - r
    - v
    - d
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 570
    functionName: _mpd_div_word
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_div_word(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t v, mpd_uint_t
      d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - q
    - r
    - v
    - d
    argTypes:
    - mpd_ssize_t*
    - mpd_ssize_t*
    - mpd_ssize_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: _mpd_idiv_word
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_idiv_word(mpd_ssize_t *q, mpd_ssize_t *r, mpd_ssize_t v,
      mpd_ssize_t d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_err_fatal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 598
    functionName: add_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - mpd_err_fatal
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t add_size_t(mpd_size_t a, mpd_size_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_err_fatal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 607
    functionName: sub_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - mpd_err_fatal
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t sub_size_t(mpd_size_t a, mpd_size_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:618,1
    - Dst: mpd_err_fatal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 623
    functionName: mul_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 2
    functionsReached:
    - _mpd_mul_words
    - mpd_err_fatal
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t mul_size_t(mpd_size_t a, mpd_size_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - overflow
    argTypes:
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: add_size_t_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t add_size_t_overflow(mpd_size_t a, mpd_size_t b, mpd_size_t
      *overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - overflow
    argTypes:
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 644
    functionName: mul_size_t_overflow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached:
    - _mpd_mul_words
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t mul_size_t_overflow(mpd_size_t a, mpd_size_t b, mpd_size_t
      *overflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - m
    argTypes:
    - mpd_ssize_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: mod_mpd_ssize_t
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mod_mpd_ssize_t(mpd_ssize_t a, mpd_ssize_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:659,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 663
    functionName: mulmod_size_t
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
    functionUses: 1
    functionsReached:
    - _mpd_mul_words
    - _mpd_div_words
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t mulmod_size_t(mpd_size_t a, mpd_size_t b, mpd_size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: INT8_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT8_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: INT16_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT16_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: INT32_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT32_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: INT64_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT64_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: UINT8_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: UINT16_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT16_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: UINT32_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_C(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: UINT64_C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_C(val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:61,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:61,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:62,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:63,1
    - Dst: mpd_bsr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:65,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:71,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:76,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:80,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:84,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:85,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:90,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:91,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:94,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:95,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:99,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:100,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:108,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:109,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:114,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:116,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (ispower2(n))
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n >= 16)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n <= MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    constantsTouched: []
    func_position:
      end: 127
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 127
    functionName: six_step_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    functionUses: 0
    functionsReached:
    - ispower2
    - _mpd_getkernel
    - mpd_free
    - MULMOD
    - MULMOD2
    - fnt_dif2
    - mpd_bsr
    - MULMOD2C
    - _mpd_init_fnt_params
    - assert
    - transpose_pow2
    - SETMODULUS
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int six_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:146,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:146,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:147,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:148,1
    - Dst: mpd_bsr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:150,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:158,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:164,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:168,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:172,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:173,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:176,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:177,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:181,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:182,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:189,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:190,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:196,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:197,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:202,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:204,1
    - Dst: transpose_pow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c:207,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (n <= MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    - condition: (n >= 16)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    - condition: (ispower2(n))
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    constantsTouched: []
    func_position:
      end: 212
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 212
    functionName: inv_six_step_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
    functionUses: 0
    functionsReached:
    - ispower2
    - _mpd_getkernel
    - mpd_free
    - MULMOD
    - MULMOD2
    - fnt_dif2
    - mpd_bsr
    - MULMOD2C
    - _mpd_init_fnt_params
    - assert
    - transpose_pow2
    - SETMODULUS
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int inv_six_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_err_warn
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:54,1
    - Dst: mpd_err_fatal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: mpd_setminalloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached:
    - mpd_err_warn
    - mpd_err_fatal
    linkageType: ''
    returnType: void
    signature: void mpd_setminalloc(mpd_ssize_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_defaultcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:70,1
    - Dst: mpd_qsetprec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:72,1
    - Dst: mpd_addstatus_raise
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:73,1
    - Dst: mpd_setminalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - prec
    argTypes:
    - mpd_context_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: mpd_init
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_defaultcontext
    - mpd_setminalloc
    - mpd_qsetprec
    linkageType: ''
    returnType: void
    signature: void mpd_init(mpd_context_t *ctx, mpd_ssize_t prec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: mpd_maxcontext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpd_maxcontext(mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: mpd_defaultcontext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpd_defaultcontext(mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: mpd_basiccontext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpd_basiccontext(mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - bits
    argTypes:
    - mpd_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: mpd_ieee_context
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_ieee_context(mpd_context_t *ctx, int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: mpd_getprec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_getprec(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: mpd_getemax
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_getemax(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mpd_getemin
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_getemin(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: mpd_getround
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_getround(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: mpd_gettraps
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mpd_gettraps(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: mpd_getstatus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mpd_getstatus(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: mpd_getclamp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_getclamp(const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: mpd_getcr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_getcr(const mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - prec
    argTypes:
    - mpd_context_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: mpd_qsetprec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetprec(mpd_context_t *ctx, mpd_ssize_t prec)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - emax
    argTypes:
    - mpd_context_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: mpd_qsetemax
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetemax(mpd_context_t *ctx, mpd_ssize_t emax)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - emin
    argTypes:
    - mpd_context_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: mpd_qsetemin
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetemin(mpd_context_t *ctx, mpd_ssize_t emin)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - round
    argTypes:
    - mpd_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 233
    functionName: mpd_qsetround
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetround(mpd_context_t *ctx, int round)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - traps
    argTypes:
    - mpd_context_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: mpd_qsettraps
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsettraps(mpd_context_t *ctx, uint32_t traps)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - mpd_context_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: mpd_qsetstatus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetstatus(mpd_context_t *ctx, uint32_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - mpd_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: mpd_qsetclamp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetclamp(mpd_context_t *ctx, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - mpd_context_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: mpd_qsetcr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mpd_qsetcr(mpd_context_t *ctx, int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_traphandler
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - flags
    argTypes:
    - mpd_context_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: mpd_addstatus_raise
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
    functionUses: 1
    functionsReached:
    - mpd_traphandler
    linkageType: ''
    returnType: void
    signature: void mpd_addstatus_raise(mpd_context_t *ctx, uint32_t flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - s
    - l
    - u
    - n
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: _mpd_strneq
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _mpd_strneq(const char *s, const char *l, const char *u, size_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_strtossize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 87
    functionName: strtoexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_strtossize
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t strtoexp(const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 5
    argNames:
    - data
    - s
    - dpoint
    - r
    - len
    argTypes:
    - mpd_uint_t*
    - char*
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: string_to_coeff
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void string_to_coeff(mpd_uint_t *data, const char *s, const char *dpoint,
      int r,\n                size_t len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:158,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:162,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:164,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 4
    argNames:
    - s
    - dpoint
    - exp
    - end
    argTypes:
    - char*
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 178
    functionName: scan_dpoint_exp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: char
    signature: "char *\nscan_dpoint_exp(const char *s, const char **dpoint, const
      char **exp,\n                const char **end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: scan_payload
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: char
    signature: 'char *

      scan_payload(const char *s, const char **end)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:208,1
    - Dst: mpd_set_negative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:217,1
    - Dst: _mpd_strneq
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:222,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:224,1
    - Dst: scan_payload
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:228,1
    - Dst: _mpd_strneq
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:238,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:240,1
    - Dst: scan_payload
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:244,1
    - Dst: _mpd_strneq
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:253,1
    - Dst: _mpd_strneq
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:255,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:257,1
    - Dst: scan_dpoint_exp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:264,1
    - Dst: strtoexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:271,1
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:306,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:312,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:313,1
    - Dst: string_to_coeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:318,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:320,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:321,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:326,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 107
    argCount: 4
    argNames:
    - dec
    - s
    - ctx
    - status
    argTypes:
    - mpd_t*
    - char*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 327
    functionName: mpd_qset_string
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 2
    functionsReached:
    - scan_dpoint_exp
    - string_to_coeff
    - strtoexp
    - scan_payload
    - mpd_qfinalize
    - mpd_set_negative
    - _mpd_idiv_word
    - mpd_qresize
    - mpd_seterror
    - mpd_setdigits
    - mpd_set_flags
    - _mpd_strneq
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_string(mpd_t *dec, const char *s, const mpd_context_t
      *ctx,\n                uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - x
    - ','
    - d
    - ','
    - dot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: EXTRACT_DIGIT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRACT_DIGIT(s, x, d, dot)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:338,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:339,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:340,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:341,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:342,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:343,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:344,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:345,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:346,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:347,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:349,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:350,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:351,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:352,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:353,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:354,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:355,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:356,1
    - Dst: EXTRACT_DIGIT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 4
    argNames:
    - s
    - x
    - n
    - dot
    argTypes:
    - char*
    - mpd_uint_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 363
    functionName: word_to_string
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - EXTRACT_DIGIT
    linkageType: ''
    returnType: char
    signature: 'char *

      word_to_string(char *s, mpd_uint_t x, int n, char *dot)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:377,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - x
    argTypes:
    - char*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: exp_to_string
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    - word_to_string
    linkageType: ''
    returnType: char
    signature: 'char *

      exp_to_string(char *s, mpd_ssize_t x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:388,1
    - Dst: word_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:389,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:389,1
    - Dst: word_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - dec
    argTypes:
    - char*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 398
    functionName: coeff_to_string
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    - mpd_msword
    - word_to_string
    linkageType: ''
    returnType: char
    signature: 'char *

      coeff_to_string(char *s, const mpd_t *dec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:409,1
    - Dst: word_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:410,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:410,1
    - Dst: word_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - dot
    - dec
    argTypes:
    - char*
    - char*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 419
    functionName: coeff_to_string_dot
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    - mpd_msword
    - word_to_string
    linkageType: ''
    returnType: char
    signature: 'char *

      coeff_to_string_dot(char *s, char *dot, const mpd_t *dec)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:452,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:455,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:459,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:465,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:475,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:476,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:477,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:481,1
    - Dst: coeff_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:485,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:488,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:489,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:493,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:497,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:535,1
    - Dst: mod_mpd_ssize_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:539,1
    - Dst: mod_mpd_ssize_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:544,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:567,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:574,1
    - Dst: coeff_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:591,1
    - Dst: coeff_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:595,1
    - Dst: coeff_to_string_dot
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:602,1
    - Dst: exp_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:615,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:623,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:624,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 106
    argCount: 4
    argNames:
    - result
    - dec
    - flags
    - dplace
    argTypes:
    - char**
    - mpd_t*
    - int
    - mpd_ssize_t
    assertStmts:
    - condition: (dec->len > 0)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    - condition: (cp-decstring < MPD_SSIZE_MAX)
      pos:
        line_end: 623
        line_start: 623
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    - condition: (cp < decstring+mem)
      pos:
        line_end: 622
        line_start: 622
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 629
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 629
    functionName: _mpd_to_string
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - strcpy
    - mpd_isqnan
    - mpd_isspecial
    - coeff_to_string_dot
    - mpd_isnegative
    - exp_to_string
    - mpd_isnan
    - mpd_iszero
    - abort
    - mpd_isinfinite
    - assert
    - mod_mpd_ssize_t
    - mpd_alloc
    - coeff_to_string
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _mpd_to_string(char **result, const mpd_t *dec, int flags,
      mpd_ssize_t dplace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dec
    - fmt
    argTypes:
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 631
    functionDepth: 4
    functionLinenumber: 631
    functionLinenumberEnd: 640
    functionName: mpd_to_sci
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 2
    functionsReached:
    - _mpd_to_string
    linkageType: ''
    returnType: char
    signature: 'char *

      mpd_to_sci(const mpd_t *dec, int fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dec
    - fmt
    argTypes:
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 651
    functionName: mpd_to_eng
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - _mpd_to_string
    linkageType: ''
    returnType: char
    signature: 'char *

      mpd_to_eng(const mpd_t *dec, int fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - dec
    - fmt
    argTypes:
    - char**
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 4
    functionLinenumber: 653
    functionLinenumberEnd: 660
    functionName: mpd_to_sci_size
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 2
    functionsReached:
    - _mpd_to_string
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_to_sci_size(char **res, const mpd_t *dec, int fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - dec
    - fmt
    argTypes:
    - char**
    - mpd_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 669
    functionName: mpd_to_eng_size
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 2
    functionsReached:
    - _mpd_to_string
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_to_eng_size(char **res, const mpd_t *dec, int fmt)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 2
    argNames:
    - dest
    - s
    argTypes:
    - char[]
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 747
    functionName: _mpd_copy_utf8
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _mpd_copy_utf8(char dest[5], const char *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:761,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:765,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - spec
    argTypes:
    - mpd_spec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 770
    functionName: mpd_validate_lconv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int mpd_validate_lconv(mpd_spec_t *spec)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_copy_utf8
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:790,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:830,1
    - Dst: mpd_strtossize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:835,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:852,1
    - Dst: mpd_strtossize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:856,1
    - Dst: localeconv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:876,1
    - Dst: mpd_validate_lconv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:880,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 83
    argCount: 3
    argNames:
    - spec
    - fmt
    - caps
    argTypes:
    - mpd_spec_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 891
    functionName: mpd_parse_fmt_str
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - isdigit
    - mpd_validate_lconv
    - _mpd_copy_utf8
    - localeconv
    - mpd_strtossize
    linkageType: ''
    returnType: int
    signature: int mpd_parse_fmt_str(mpd_spec_t *spec, const char *fmt, int caps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - char*
    - char*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 914
    functionName: _mpd_bcopy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_bcopy(char *dest, const char *src, mpd_ssize_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_bcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - mpd_mbstr_t*
    - char*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 926
    functionName: _mbstr_copy_char
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - _mpd_bcopy
    linkageType: ''
    returnType: void
    signature: void _mbstr_copy_char(mpd_mbstr_t *dest, const char *src, mpd_ssize_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_bcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - n
    argTypes:
    - mpd_mbstr_t*
    - char*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 938
    functionName: _mbstr_copy_ascii
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - _mpd_bcopy
    linkageType: ''
    returnType: void
    signature: void _mbstr_copy_ascii(mpd_mbstr_t *dest, const char *src, mpd_ssize_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dest
    - n
    argTypes:
    - mpd_mbstr_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 953
    functionName: _mbstr_copy_pad
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mbstr_copy_pad(mpd_mbstr_t *dest, mpd_ssize_t n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:983,1
    - Dst: _mbstr_copy_ascii
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:989,1
    - Dst: _mbstr_copy_char
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:992,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:992,1
    - Dst: _mbstr_copy_pad
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1005,1
    - Dst: _mbstr_copy_ascii
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1008,1
    - Dst: _mbstr_copy_char
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1040,1
    - Dst: _mbstr_copy_ascii
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1049,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 8
    argNames:
    - dest
    - sign
    - src
    - n_src
    - dot
    - rest
    - n_rest
    - spec
    argTypes:
    - mpd_mbstr_t*
    - char*
    - char*
    - mpd_ssize_t
    - char*
    - char*
    - mpd_ssize_t
    - mpd_spec_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 1055
    functionName: _mpd_add_sep_dot
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - strlen
    - _mbstr_copy_ascii
    - _mbstr_copy_char
    - _mbstr_copy_pad
    linkageType: ''
    returnType: void
    signature: "void _mpd_add_sep_dot(mpd_mbstr_t *dest,\n                 const char
      *sign, /* location of optional sign */\n                 const char *src, mpd_ssize_t
      n_src, /* integer part and length */\n                 const char *dot, /* location
      of optional decimal point */\n                 const char *rest, mpd_ssize_t
      n_rest, /* remaining part and length */\n                 const mpd_spec_t *spec)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1092,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1092,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1094,1
    - Dst: _mpd_add_sep_dot
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1115,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1118,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1121,1
    - Dst: _mpd_add_sep_dot
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1126,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - result
    - spec
    - status
    argTypes:
    - mpd_mbstr_t*
    - mpd_spec_t*
    - uint32_t*
    assertStmts:
    - condition: (isdigit((uchar)*dp))
      pos:
        line_end: 1091
        line_start: 1091
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1131
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1131
    functionName: _mpd_apply_lconv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - isdigit
    - mpd_free
    - _mpd_add_sep_dot
    - assert
    - mpd_alloc
    linkageType: ''
    returnType: int
    signature: int _mpd_apply_lconv(mpd_mbstr_t *result, const mpd_spec_t *spec, uint32_t
      *status)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1145,1
    - Dst: mpd_realloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1150,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1155,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1180,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - result
    - spec
    - status
    argTypes:
    - mpd_mbstr_t*
    - mpd_spec_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1199
    functionName: _mpd_add_pad
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - memmove
    - strlen
    - mpd_realloc
    - mpd_free
    linkageType: ''
    returnType: int
    signature: int _mpd_add_pad(mpd_mbstr_t *result, const mpd_spec_t *spec, uint32_t
      *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1212,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1215,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1215,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1216,1
    - Dst: mpd_qrescale_fmt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1220,1
    - Dst: mpd_qrescale_fmt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - result
    - a
    - prec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1224
    functionName: _mpd_round
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_qrescale_fmt
    - mpd_seterror
    - mpd_iszero
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void _mpd_round(mpd_t *result, const mpd_t *a, mpd_ssize_t prec,\n
      \          const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: isupper
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1249,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1250,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1260,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1280,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1287,1
    - Dst: _mpd_round
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1300,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1306,1
    - Dst: _mpd_round
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1310,1
    - Dst: mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1316,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1324,1
    - Dst: mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1325,1
    - Dst: _mpd_to_string
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1348,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1355,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1361,1
    - Dst: _mpd_apply_lconv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1364,1
    - Dst: _mpd_add_pad
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1370,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1375,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1379,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 119
    argCount: 4
    argNames:
    - dec
    - spec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_spec_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1231
    functionDepth: 4
    functionLinenumber: 1231
    functionLinenumberEnd: 1381
    functionName: mpd_qformat_spec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - mpd_qrescale
    - _mpd_to_string
    - mpd_isspecial
    - tolower
    - mpd_free
    - isupper
    - _mpd_apply_lconv
    - _mpd_add_pad
    - abort
    - mpd_del
    - mpd_iszero
    - _mpd_round
    - mpd_qcopy
    linkageType: ''
    returnType: char
    signature: "char *\nmpd_qformat_spec(const mpd_t *dec, const mpd_spec_t *spec,\n
      \                const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_parse_fmt_str
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1389,1
    - Dst: mpd_qformat_spec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dec
    - fmt
    - ctx
    - status
    argTypes:
    - mpd_t*
    - char*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1383
    functionDepth: 5
    functionLinenumber: 1383
    functionLinenumberEnd: 1395
    functionName: mpd_qformat
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - mpd_parse_fmt_str
    - mpd_qformat_spec
    linkageType: ''
    returnType: char
    signature: "char *\nmpd_qformat(const mpd_t *dec, const char *fmt, const mpd_context_t
      *ctx,\n            uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1454,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - dest
    - nmemb
    - flags
    argTypes:
    - char*
    - int
    - uint32_t
    assertStmts:
    - condition: (nmemb >= MPD_MAX_FLAG_STRING)
      pos:
        line_end: 1453
        line_start: 1453
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1470
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1470
    functionName: mpd_snprint_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: int
    signature: int mpd_snprint_flags(char *dest, int nmemb, uint32_t flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1479,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - dest
    - nmemb
    - flags
    - flag_string
    argTypes:
    - char*
    - int
    - uint32_t
    - char*[]
    assertStmts:
    - condition: (nmemb >= MPD_MAX_FLAG_LIST)
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1506
      start: 1473
    functionDepth: 1
    functionLinenumber: 1473
    functionLinenumberEnd: 1506
    functionName: mpd_lsnprint_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: int
    signature: int mpd_lsnprint_flags(char *dest, int nmemb, uint32_t flags, const
      char *flag_string[])
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1516,1
    - Dst: snprintf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - dest
    - nmemb
    - flags
    - signal_string
    argTypes:
    - char*
    - int
    - uint32_t
    - char*[]
    assertStmts:
    - condition: (nmemb >= MPD_MAX_SIGNAL_LIST)
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    constantsTouched: []
    func_position:
      end: 1550
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1550
    functionName: mpd_lsnprint_signals
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 1
    functionsReached:
    - assert
    - snprintf
    linkageType: ''
    returnType: int
    signature: int mpd_lsnprint_signals(char *dest, int nmemb, uint32_t flags, const
      char *signal_string[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_to_sci
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1558,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1560,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1561,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - file
    - dec
    argTypes:
    - FILE*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1553
    functionDepth: 5
    functionLinenumber: 1553
    functionLinenumberEnd: 1566
    functionName: mpd_fprint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - fputs
    - mpd_to_sci
    - fprintf
    - mpd_free
    linkageType: ''
    returnType: void
    signature: void mpd_fprint(FILE *file, const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_to_sci
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1573,1
    - Dst: printf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1575,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1576,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c:1579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1568
    functionDepth: 5
    functionLinenumber: 1568
    functionLinenumberEnd: 1581
    functionName: mpd_print
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    functionUses: 0
    functionsReached:
    - printf
    - mpd_to_sci
    - fputs
    - mpd_free
    linkageType: ''
    returnType: void
    signature: void mpd_print(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_bsf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - mpd_uint_t[]
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 68
    functionName: bitreverse_permute
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c
    functionUses: 0
    functionsReached:
    - mpd_bsf
    linkageType: ''
    returnType: void
    signature: void bitreverse_permute(mpd_uint_t a[], mpd_size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:87,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:87,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:88,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:90,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:105,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:106,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:108,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:109,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:111,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:132,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:133,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:135,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:136,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:154,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:155,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:157,1
    - Dst: submod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:158,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:160,1
    - Dst: bitreverse_permute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 3
    argNames:
    - a
    - n
    - tparams
    argTypes:
    - mpd_uint_t[]
    - mpd_size_t
    - struct fnt_params*
    assertStmts:
    - condition: (ispower2(n))
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c
    - condition: (n >= 4)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c
    constantsTouched: []
    func_position:
      end: 171
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 171
    functionName: fnt_dif2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c
    functionUses: 2
    functionsReached:
    - ispower2
    - MULMOD2
    - bitreverse_permute
    - MULMOD2C
    - submod
    - assert
    - addmod
    - SETMODULUS
    linkageType: ''
    returnType: void
    signature: void fnt_dif2(mpd_uint_t a[], mpd_size_t n, struct fnt_params *tparams)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:56,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:62,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - n
    - sign
    - modnum
    argTypes:
    - mpd_uint_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 65
    functionName: _mpd_getkernel
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 2
    functionsReached:
    - SETMODULUS
    - POWMOD
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_getkernel(mpd_uint_t n, int sign, int modnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:86,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:86,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:87,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:88,1
    - Dst: mpd_sh_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:91,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:96,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:97,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - n
    - sign
    - modnum
    argTypes:
    - mpd_size_t
    - int
    - int
    assertStmts:
    - condition: (ispower2(n))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    - condition: (sign == -1 || sign == 1)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    - condition: (P1 <= modnum && modnum <= P3)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: _mpd_init_fnt_params
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 2
    functionsReached:
    - ispower2
    - _mpd_getkernel
    - MULMOD
    - mpd_sh_alloc
    - assert
    - SETMODULUS
    linkageType: ''
    returnType: struct fnt_params
    signature: 'struct fnt_params *

      _mpd_init_fnt_params(mpd_size_t n, int sign, int modnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:124,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:125,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - w3table
    - sign
    - modnum
    argTypes:
    - mpd_uint_t[]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: _mpd_init_w3table
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
    functionUses: 0
    functionsReached:
    - SETMODULUS
    - _mpd_getkernel
    - POWMOD
    linkageType: ''
    returnType: void
    signature: void _mpd_init_w3table(mpd_uint_t w3table[3], int sign, int modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: MPD_PRAGMA
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_PRAGMA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 796
    functionName: mpd_err_fatal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mpd_err_fatal(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mpd_err_warn
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mpd_err_warn(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - name
    - ','
    - flags
    - ','
    - exp
    - ','
    - digits
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: MPD_NEW_STATIC
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_NEW_STATIC(name, flags, exp, digits, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - name
    - ','
    - flags
    - ','
    - exp
    - ','
    - digits
    - ','
    - len
    - ','
    - alloc
    - ','
    - initval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: MPD_NEW_CONST
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_NEW_CONST(name, flags, exp, digits, len, alloc, initval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: MPD_NEW_SHARED
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPD_NEW_SHARED(name, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: mpd_version
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      mpd_version(void)'
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 174
    functionName: mpd_word_digits
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_word_digits(mpd_uint_t word)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 193
    functionName: mpd_word_digits
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_word_digits(mpd_uint_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: mpd_ssize_t::mpd_adjexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: 'ALWAYS_INLINE mpd_ssize_t

      mpd_adjexp(const mpd_t *dec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: mpd_ssize_t::mpd_etiny
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: 'ALWAYS_INLINE mpd_ssize_t

      mpd_etiny(const mpd_context_t *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: mpd_ssize_t::mpd_etop
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: 'ALWAYS_INLINE mpd_ssize_t

      mpd_etop(const mpd_context_t *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (dec->len > 0)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: mpd_msword
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_msword(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: mpd_msd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_msd(mpd_uint_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: mpd_lsd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_lsd(mpd_uint_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - digits
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: mpd_ssize_t::mpd_digits_to_size
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_idiv_word
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: 'ALWAYS_INLINE mpd_ssize_t

      mpd_digits_to_size(mpd_ssize_t digits)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: mpd_exp_digits
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    linkageType: ''
    returnType: int
    signature: int mpd_exp_digits(mpd_ssize_t exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: mpd_iscanonical
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_iscanonical(const mpd_t *dec UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: mpd_isfinite
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isfinite(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: mpd_isinfinite
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isinfinite(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: mpd_isnan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isnan(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 294
    functionName: mpd_isnegative
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isnegative(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: mpd_ispositive
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_ispositive(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: mpd_isqnan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isqnan(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: mpd_issigned
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_issigned(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: mpd_issnan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_issnan(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: mpd_isspecial
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isspecial(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:335,1
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: mpd_iszero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 6
    functionsReached:
    - mpd_msword
    - mpd_isspecial
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_iszero(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 343
    functionName: mpd_iszerocoeff
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_msword
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_iszerocoeff(const mpd_t *dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:349,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:350,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dec
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mpd_isnormal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszerocoeff
    - mpd_isspecial
    - mpd_adjexp
    linkageType: ''
    returnType: int
    signature: int mpd_isnormal(const mpd_t *dec, const mpd_context_t *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:359,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:360,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dec
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: mpd_issubnormal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszerocoeff
    - mpd_isspecial
    - mpd_adjexp
    linkageType: ''
    returnType: int
    signature: int mpd_issubnormal(const mpd_t *dec, const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: mpd_isoddword
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isoddword(mpd_uint_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isoddword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: mpd_isoddcoeff
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isoddword
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isoddcoeff(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: mpd_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_sign(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: mpd_arith_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isnegative
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_arith_sign(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: mpd_radix
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE long
    signature: ALWAYS_INLINE long mpd_radix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: mpd_isdynamic
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isdynamic(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 412
    functionName: mpd_isstatic
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isstatic(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: mpd_isdynamic_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isdynamic_data(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: mpd_isstatic_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isstatic_data(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: mpd_isshared_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isshared_data(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: mpd_isconst_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_isconst_data(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 456
    functionName: mpd_uint_zero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_uint_zero(mpd_uint_t *dest, mpd_size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isdynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:462,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:463,1
    - Dst: mpd_isdynamic
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:465,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 468
    functionName: mpd_del
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 7
    functionsReached:
    - mpd_free
    - mpd_isdynamic_data
    - mpd_isdynamic
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_del(mpd_t *dec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:497,1
    - Dst: mpd_isconst_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:497,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:498,1
    - Dst: mpd_isshared_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:498,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:499,1
    - Dst: mpd_isstatic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:505,1
    - Dst: mpd_switch_to_dyn
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:507,1
    - Dst: mpd_realloc_dyn
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - result
    - nwords
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isconst_data(result))
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (MPD_MINALLOC <= result->alloc)
      pos:
        line_end: 498
        line_start: 498
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 513
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 513
    functionName: mpd_qresize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isshared_data
    - mpd_switch_to_dyn
    - mpd_isconst_data
    - assert
    - mpd_isstatic_data
    - mpd_realloc_dyn
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_qresize(mpd_t *result, mpd_ssize_t nwords, uint32_t
      *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:520,1
    - Dst: mpd_isconst_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:520,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:521,1
    - Dst: mpd_isshared_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:521,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:522,1
    - Dst: mpd_isstatic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:526,1
    - Dst: mpd_switch_to_dyn_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:528,1
    - Dst: mpd_realloc_dyn
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:531,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - result
    - nwords
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isconst_data(result))
      pos:
        line_end: 519
        line_start: 519
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (MPD_MINALLOC <= result->alloc)
      pos:
        line_end: 521
        line_start: 521
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 538
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 538
    functionName: mpd_qresize_zero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_uint_zero
    - mpd_isshared_data
    - mpd_isconst_data
    - assert
    - mpd_isstatic_data
    - mpd_realloc_dyn
    - mpd_switch_to_dyn_zero
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_qresize_zero(mpd_t *result, mpd_ssize_t nwords, uint32_t
      *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:549,1
    - Dst: mpd_isconst_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:549,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:550,1
    - Dst: mpd_isshared_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:550,1
    - Dst: mpd_isstatic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:552,1
    - Dst: mpd_realloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (!mpd_isconst_data(result))
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_isshared_data(result))
      pos:
        line_end: 549
        line_start: 549
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 560
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 560
    functionName: mpd_minalloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isshared_data
    - mpd_realloc
    - mpd_isconst_data
    - assert
    - mpd_isstatic_data
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_minalloc(mpd_t *result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:566,1
    - Dst: mpd_addstatus_raise
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - nwords
    - ctx
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 571
    functionName: mpd_resize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qresize
    linkageType: ''
    returnType: int
    signature: int mpd_resize(mpd_t *result, mpd_ssize_t nwords, mpd_context_t *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:577,1
    - Dst: mpd_addstatus_raise
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - nwords
    - ctx
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 582
    functionName: mpd_resize_zero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qresize_zero
    linkageType: ''
    returnType: int
    signature: int mpd_resize_zero(mpd_t *result, mpd_ssize_t nwords, mpd_context_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:593,1
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 595
    functionName: mpd_setdigits
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_word_digits
    - mpd_msword
    linkageType: ''
    returnType: void
    signature: void mpd_setdigits(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - sign
    argTypes:
    - mpd_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: mpd_set_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_sign(mpd_t *result, uint8_t sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - a
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 613
    functionName: mpd_signcpy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_signcpy(mpd_t *result, const mpd_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 621
    functionName: mpd_set_infinity
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_infinity(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: mpd_set_qnan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_qnan(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 637
    functionName: mpd_set_snan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_snan(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: mpd_set_negative
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_negative(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    functionName: mpd_set_positive
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_positive(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 658
    functionName: mpd_set_dynamic
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_dynamic(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: mpd_set_static
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_static(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: mpd_set_dynamic_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_dynamic_data(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: mpd_set_static_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_static_data(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: mpd_set_shared_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_shared_data(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 696
    functionName: mpd_set_const_data
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_const_data(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: mpd_clear_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_clear_flags(mpd_t *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - flags
    argTypes:
    - mpd_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: mpd_set_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_set_flags(mpd_t *result, uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - result
    - a
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: mpd_copy_flags
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ALWAYS_INLINE
    signature: ALWAYS_INLINE mpd_copy_flags(mpd_t *result, const mpd_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - workctx
    - ctx
    argTypes:
    - mpd_context_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 735
    functionName: mpd_workcontext
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mpd_workcontext(mpd_context_t *workctx, const mpd_context_t *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: _mpd_negate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_negate(mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - result
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 757
    functionName: mpd_zerocoeff
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_minalloc
    linkageType: ''
    returnType: void
    signature: void mpd_zerocoeff(mpd_t *result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:765,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - result
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 782
    functionName: mpd_qmaxcoeff
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_idiv_word
    linkageType: ''
    returnType: void
    signature: void mpd_qmaxcoeff(mpd_t *result, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:795,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:802,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:804,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:806,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:808,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:809,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 811
    functionName: _mpd_cap
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_sign
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_iszero
    - _mpd_idiv_word
    linkageType: ''
    returnType: void
    signature: void _mpd_cap(mpd_t *result, const mpd_context_t *ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:827,1
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:831,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:838,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:840,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:842,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - result
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 849
    functionName: _mpd_fix_nan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_minalloc
    - mpd_iszerocoeff
    - _mpd_idiv_word
    linkageType: ''
    returnType: void
    signature: void _mpd_fix_nan(mpd_t *result, const mpd_context_t *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:865,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:867,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - hi
    - lo
    - dec
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_t*
    - unsigned int
    assertStmts:
    - condition: (0 < n && n <= MPD_RDIGITS+1)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 882
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 882
    functionName: _mpd_get_msdigits
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_word
    linkageType: ''
    returnType: void
    signature: "void _mpd_get_msdigits(mpd_uint_t *hi, mpd_uint_t *lo, const mpd_t
      *dec,\n                  unsigned int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 898
    functionName: _mpd_real_size
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _mpd_real_size(mpd_uint_t *data, mpd_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 920
    functionName: mpd_trail_zeros
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_trail_zeros(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:928,1
    - Dst: mpd_trail_zeros
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 934
    functionName: _mpd_isint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszerocoeff
    - mpd_trail_zeros
    linkageType: ''
    returnType: int
    signature: int _mpd_isint(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:940,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 937
    functionDepth: 4
    functionLinenumber: 937
    functionLinenumberEnd: 944
    functionName: mpd_isinteger
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_isint
    - mpd_isspecial
    linkageType: ''
    returnType: int
    signature: int mpd_isinteger(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 958
    functionName: mpd_word_ispow10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    linkageType: ''
    returnType: int
    signature: int mpd_word_ispow10(mpd_uint_t word)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_ispow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:964,1
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:964,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 971
    functionName: mpd_coeff_ispow10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_ispow10
    - _mpd_isallzero
    - mpd_msword
    linkageType: ''
    returnType: int
    signature: int mpd_coeff_ispow10(const mpd_t *dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - word
    argTypes:
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 985
    functionName: mpd_word_isallnine
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    linkageType: ''
    returnType: int
    signature: int mpd_word_isallnine(mpd_uint_t word)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_word_isallnine
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:991,1
    - Dst: mpd_msword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:991,1
    - Dst: _mpd_isallnine
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 998
    functionName: mpd_coeff_isallnine
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_msword
    - mpd_word_isallnine
    - _mpd_isallnine
    linkageType: ''
    returnType: int
    signature: int mpd_coeff_isallnine(const mpd_t *dec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1005,1
    - Dst: mpd_isinteger
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1005,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1006,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1008,1
    - Dst: mpd_isoddword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1010,1
    - Dst: mpd_isoddword
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts:
    - condition: (mpd_isinteger(dec))
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 1013
      start: 1001
    functionDepth: 5
    functionLinenumber: 1001
    functionLinenumberEnd: 1013
    functionName: mpd_isodd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isinteger
    - _mpd_div_word
    - mpd_isoddword
    - assert
    - mpd_iszerocoeff
    linkageType: ''
    returnType: int
    signature: int mpd_isodd(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dec
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 6
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: mpd_iseven
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isodd
    linkageType: ''
    returnType: int
    signature: int mpd_iseven(const mpd_t *dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1030,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1032,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - result
    - sign
    - a
    - exp
    argTypes:
    - mpd_t*
    - uint8_t
    - mpd_uint_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1035
    functionName: _ssettriple
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_flags
    - _mpd_div_word
    - mpd_setdigits
    linkageType: ''
    returnType: void
    signature: void _ssettriple(mpd_t *result, uint8_t sign, mpd_uint_t a, mpd_ssize_t
      exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1041,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1042,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1044,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - result
    - sign
    - a
    - exp
    argTypes:
    - mpd_t*
    - uint8_t
    - mpd_uint_t
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1038
    functionDepth: 3
    functionLinenumber: 1038
    functionLinenumberEnd: 1047
    functionName: _settriple
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_set_flags
    - _mpd_div_word
    - mpd_minalloc
    - mpd_setdigits
    linkageType: ''
    returnType: void
    signature: void _settriple(mpd_t *result, uint8_t sign, mpd_uint_t a, mpd_ssize_t
      exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - result
    - sign
    - type
    argTypes:
    - mpd_t*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1050
    functionDepth: 2
    functionLinenumber: 1050
    functionLinenumberEnd: 1057
    functionName: mpd_setspecial
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_minalloc
    linkageType: ''
    returnType: void
    signature: void mpd_setspecial(mpd_t *result, uint8_t sign, uint8_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1063,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1064,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - result
    - flags
    - status
    argTypes:
    - mpd_t*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1068
    functionName: mpd_seterror
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_set_qnan
    - mpd_minalloc
    - mpd_set_positive
    linkageType: ''
    returnType: void
    signature: void mpd_seterror(mpd_t *result, uint32_t flags, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _ssettriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1091,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 4
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: mpd_qsset_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _ssettriple
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_ssize(mpd_t *result, mpd_ssize_t a, const mpd_context_t
      *ctx,\n                uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ssettriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1100,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: mpd_qsset_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _ssettriple
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_uint(mpd_t *result, mpd_uint_t a, const mpd_context_t
      *ctx,\n               uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1105
    functionDepth: 5
    functionLinenumber: 1105
    functionLinenumberEnd: 1110
    functionName: mpd_qsset_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_i32(mpd_t *result, int32_t a, const mpd_context_t *ctx,\n
      \             uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1113
    functionDepth: 5
    functionLinenumber: 1113
    functionLinenumberEnd: 1118
    functionName: mpd_qsset_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsset_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_u32(mpd_t *result, uint32_t a, const mpd_context_t
      *ctx,\n              uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 5
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: mpd_qsset_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_i64(mpd_t *result, int64_t a, const mpd_context_t *ctx,\n
      \             uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1130
    functionDepth: 5
    functionLinenumber: 1130
    functionLinenumberEnd: 1135
    functionName: mpd_qsset_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsset_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qsset_u64(mpd_t *result, uint64_t a, const mpd_context_t
      *ctx,\n              uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1143,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1139
    functionDepth: 5
    functionLinenumber: 1139
    functionLinenumberEnd: 1145
    functionName: mpd_qset_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_minalloc
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_ssize(mpd_t *result, mpd_ssize_t a, const mpd_context_t
      *ctx,\n               uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1152,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1154
    functionName: mpd_qset_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_uint(mpd_t *result, mpd_uint_t a, const mpd_context_t
      *ctx,\n              uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1157
    functionDepth: 6
    functionLinenumber: 1157
    functionLinenumberEnd: 1162
    functionName: mpd_qset_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_i32(mpd_t *result, int32_t a, const mpd_context_t *ctx,\n
      \            uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1165
    functionDepth: 5
    functionLinenumber: 1165
    functionLinenumberEnd: 1170
    functionName: mpd_qset_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_u32(mpd_t *result, uint32_t a, const mpd_context_t *ctx,\n
      \            uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1188,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1195,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - result
    - u
    - sign
    - status
    argTypes:
    - mpd_t*
    - uint64_t
    - uint8_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1199
    functionName: _c32setu64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - mpd_set_sign
    - mpd_setdigits
    linkageType: ''
    returnType: void
    signature: void _c32setu64(mpd_t *result, uint64_t u, uint8_t sign, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _c32setu64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1205,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1207
    functionName: _c32_qset_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32setu64
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void _c32_qset_u64(mpd_t *result, uint64_t a, const mpd_context_t
      *ctx,\n              uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _c32setu64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1229,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1210
    functionDepth: 4
    functionLinenumber: 1210
    functionLinenumberEnd: 1231
    functionName: _c32_qset_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32setu64
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void _c32_qset_i64(mpd_t *result, int64_t a, const mpd_context_t *ctx,\n
      \             uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1241,1
    - Dst: _c32_qset_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1236
    functionDepth: 6
    functionLinenumber: 1236
    functionLinenumberEnd: 1245
    functionName: mpd_qset_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_ssize
    - _c32_qset_i64
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_i64(mpd_t *result, int64_t a, const mpd_context_t *ctx,\n
      \            uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1253,1
    - Dst: _c32_qset_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1248
    functionDepth: 5
    functionLinenumber: 1248
    functionLinenumberEnd: 1257
    functionName: mpd_qset_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32_qset_u64
    - mpd_qset_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qset_u64(mpd_t *result, uint64_t a, const mpd_context_t *ctx,\n
      \            uint32_t *status)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1275,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1279,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1282,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1293,1
    - Dst: mpd_qsshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1302,1
    - Dst: _mpd_get_msdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1307,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1314,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - use_sign
    - a
    - status
    argTypes:
    - int
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1322
    functionName: _mpd_qget_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_qsshiftr
    - _mpd_mul_words
    - mpd_isnegative
    - _mpd_isint
    - _mpd_get_msdigits
    - mpd_iszero
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_qget_uint(int use_sign, const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qget_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1331
    functionDepth: 5
    functionLinenumber: 1331
    functionLinenumberEnd: 1335
    functionName: mpd_qget_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qget_uint
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_qget_uint(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qget_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1338
    functionDepth: 5
    functionLinenumber: 1338
    functionLinenumberEnd: 1342
    functionName: mpd_qabs_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qget_uint
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_qabs_uint(const mpd_t *a, uint32_t *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qabs_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1351,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1345
    functionDepth: 6
    functionLinenumber: 1345
    functionLinenumberEnd: 1366
    functionName: mpd_qget_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isnegative
    - mpd_qabs_uint
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_qget_ssize(const mpd_t *a, uint32_t *status)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1376,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1384,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1388,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1391,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1395,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1400,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1405,1
    - Dst: mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1406,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1423,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - use_sign
    - a
    - status
    argTypes:
    - int
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1373
    functionDepth: 4
    functionLinenumber: 1373
    functionLinenumberEnd: 1427
    functionName: _c32_qget_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qrescale
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_isnegative
    - _mpd_isint
    - MPD_NEW_STATIC
    - abort
    - mpd_iszero
    - _mpd_cmp_abs
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _c32_qget_u64(int use_sign, const mpd_t *a, uint32_t *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _c32_qget_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1435,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1429
    functionDepth: 5
    functionLinenumber: 1429
    functionLinenumberEnd: 1450
    functionName: _c32_qget_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isnegative
    - _c32_qget_u64
    linkageType: ''
    returnType: int64_t
    signature: int64_t _c32_qget_i64(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1455
    functionDepth: 6
    functionLinenumber: 1455
    functionLinenumberEnd: 1459
    functionName: mpd_qget_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_uint
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mpd_qget_u64(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1462
    functionDepth: 7
    functionLinenumber: 1462
    functionLinenumberEnd: 1466
    functionName: mpd_qget_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    linkageType: ''
    returnType: int64_t
    signature: int64_t mpd_qget_i64(const mpd_t *a, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1469
    functionDepth: 6
    functionLinenumber: 1469
    functionLinenumberEnd: 1483
    functionName: mpd_qget_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_uint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mpd_qget_u32(const mpd_t *a, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1486
    functionDepth: 7
    functionLinenumber: 1486
    functionLinenumberEnd: 1500
    functionName: mpd_qget_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    linkageType: ''
    returnType: int32_t
    signature: int32_t mpd_qget_i32(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _c32_qget_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1504
    functionDepth: 5
    functionLinenumber: 1504
    functionLinenumberEnd: 1508
    functionName: mpd_qget_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32_qget_u64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t mpd_qget_u64(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _c32_qget_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 6
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    functionName: mpd_qget_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _c32_qget_i64
    linkageType: ''
    returnType: int64_t
    signature: int64_t mpd_qget_i64(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1519
    functionDepth: 6
    functionLinenumber: 1519
    functionLinenumberEnd: 1523
    functionName: mpd_qget_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_uint
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t mpd_qget_u32(const mpd_t *a, uint32_t *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1526
    functionDepth: 7
    functionLinenumber: 1526
    functionLinenumberEnd: 1530
    functionName: mpd_qget_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qget_ssize
    linkageType: ''
    returnType: int32_t
    signature: int32_t mpd_qget_i32(const mpd_t *a, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1547,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1548,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1549,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1550,1
    - Dst: _mpd_fix_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1543
    functionDepth: 4
    functionLinenumber: 1543
    functionLinenumberEnd: 1555
    functionName: mpd_qcheck_nan
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_issnan
    - mpd_set_qnan
    - mpd_isnan
    - mpd_qcopy
    - _mpd_fix_nan
    linkageType: ''
    returnType: int
    signature: "int mpd_qcheck_nan(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n               uint32_t *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1568,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1572,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1575,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1578,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1579,1
    - Dst: _mpd_fix_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1562
    functionDepth: 4
    functionLinenumber: 1562
    functionLinenumberEnd: 1584
    functionName: mpd_qcheck_nans
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isqnan
    - mpd_issnan
    - mpd_set_qnan
    - mpd_qcopy
    - _mpd_fix_nan
    linkageType: ''
    returnType: int
    signature: "int mpd_qcheck_nans(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1597,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1601,1
    - Dst: mpd_issnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1605,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1608,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1611,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1614,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1615,1
    - Dst: _mpd_fix_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - result
    - a
    - b
    - c
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1591
    functionDepth: 4
    functionLinenumber: 1591
    functionLinenumberEnd: 1620
    functionName: mpd_qcheck_3nans
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isqnan
    - mpd_issnan
    - mpd_set_qnan
    - mpd_qcopy
    - _mpd_fix_nan
    linkageType: ''
    returnType: int
    signature: "int mpd_qcheck_3nans(mpd_t *result, const mpd_t *a, const mpd_t *b,
      const mpd_t *c,\n                 const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isoddcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1634,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1636,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1638,1
    - Dst: mpd_lsd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1644,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - dec
    - rnd
    - ctx
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1650
    functionName: _mpd_rnd_incr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isoddcoeff
    - mpd_ispositive
    - mpd_lsd
    - mpd_isnegative
    linkageType: ''
    returnType: int
    signature: int _mpd_rnd_incr(const mpd_t *dec, mpd_uint_t rnd, const mpd_context_t
      *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_rnd_incr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1662,1
    - Dst: _mpd_baseincr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1672,1
    - Dst: _mpd_check_exp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1676,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1679,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1681,1
    - Dst: _mpd_check_exp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - dec
    - rnd
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1658
    functionDepth: 3
    functionLinenumber: 1658
    functionLinenumberEnd: 1687
    functionName: _mpd_apply_round
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qshiftr_inplace
    - _mpd_check_exp
    - mpd_setdigits
    - _mpd_baseincr
    - _mpd_rnd_incr
    linkageType: ''
    returnType: void
    signature: "void _mpd_apply_round(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t
      *ctx,\n                 uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_rnd_incr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1696,1
    - Dst: _mpd_baseincr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1697,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1699,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - dec
    - rnd
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1692
    functionDepth: 3
    functionLinenumber: 1692
    functionLinenumberEnd: 1707
    functionName: _mpd_apply_round_excess
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_rnd_incr
    - _mpd_baseincr
    - mpd_setdigits
    linkageType: ''
    returnType: void
    signature: "void _mpd_apply_round_excess(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t
      *ctx,\n                        uint32_t *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_rnd_incr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1718,1
    - Dst: _mpd_baseincr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1719,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1721,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1727,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - dec
    - rnd
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1714
    functionDepth: 3
    functionLinenumber: 1714
    functionLinenumberEnd: 1734
    functionName: _mpd_apply_round_fit
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_seterror
    - mpd_qresize
    - mpd_setdigits
    - _mpd_baseincr
    - _mpd_rnd_incr
    linkageType: ''
    returnType: int
    signature: "int _mpd_apply_round_fit(mpd_t *dec, mpd_uint_t rnd, const mpd_context_t
      *ctx,\n                     uint32_t *status)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1745,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1748,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1753,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1762,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1762,1
    - Dst: mpd_qmaxcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1765,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1769,1
    - Dst: mpd_qmaxcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1770,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1774,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1778,1
    - Dst: mpd_qmaxcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1779,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1783,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1787,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1793,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1797,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1798,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1803,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1811,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1813,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1816,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1828,1
    - Dst: _mpd_apply_round_excess
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1831,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1835,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1836,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 3
    argNames:
    - dec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1739
    functionDepth: 4
    functionLinenumber: 1739
    functionLinenumberEnd: 1845
    functionName: _mpd_check_exp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qshiftr_inplace
    - mpd_adjexp
    - mpd_sign
    - mpd_zerocoeff
    - mpd_isnegative
    - mpd_qshiftl
    - mpd_ispositive
    - mpd_etop
    - mpd_qmaxcoeff
    - abort
    - mpd_etiny
    - _mpd_apply_round_excess
    - mpd_iszerocoeff
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: void _mpd_check_exp(mpd_t *dec, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1855,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1855,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - dec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1852
    functionDepth: 3
    functionLinenumber: 1852
    functionLinenumberEnd: 1859
    functionName: mpd_check_underflow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszero
    - mpd_adjexp
    - mpd_etiny
    linkageType: ''
    returnType: void
    signature: void mpd_check_underflow(mpd_t *dec, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1869,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1875,1
    - Dst: _mpd_apply_round
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - dec
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1862
    functionDepth: 4
    functionLinenumber: 1862
    functionLinenumberEnd: 1883
    functionName: _mpd_check_round
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qshiftr_inplace
    - mpd_isspecial
    - _mpd_apply_round
    linkageType: ''
    returnType: void
    signature: void _mpd_check_round(mpd_t *dec, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1889,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1890,1
    - Dst: _mpd_fix_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1891,1
    - Dst: _mpd_check_exp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1896,1
    - Dst: _mpd_check_round
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - result
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1886
    functionDepth: 5
    functionLinenumber: 1886
    functionLinenumberEnd: 1898
    functionName: mpd_qfinalize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 9
    functionsReached:
    - mpd_isspecial
    - _mpd_check_exp
    - mpd_isnan
    - _mpd_check_round
    - _mpd_fix_nan
    linkageType: ''
    returnType: void
    signature: void mpd_qfinalize(mpd_t *result, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_set_shared_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1906
    functionDepth: 1
    functionLinenumber: 1906
    functionLinenumberEnd: 1917
    functionName: _mpd_copy_shared
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_shared_data
    linkageType: ''
    returnType: void
    signature: void _mpd_copy_shared(mpd_t *dest, const mpd_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1927,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1931,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - result
    - a
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1922
    functionDepth: 2
    functionLinenumber: 1922
    functionLinenumberEnd: 1938
    functionName: mpd_qcopy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 9
    functionsReached:
    - mpd_qresize
    - mpd_copy_flags
    - memcpy
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy(mpd_t *result, const mpd_t *a, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1949,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - result
    - a
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 1955
    functionName: mpd_qcopy_static
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_copy_flags
    - memcpy
    linkageType: ''
    returnType: void
    signature: void mpd_qcopy_static(mpd_t *result, const mpd_t *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1966,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1969,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1970,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1961
    functionDepth: 1
    functionLinenumber: 1961
    functionLinenumberEnd: 1976
    functionName: mpd_qncopy
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_copy_flags
    - mpd_qnew_size
    - memcpy
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_qncopy(const mpd_t *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1985,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - a
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1982
    functionDepth: 3
    functionLinenumber: 1982
    functionLinenumberEnd: 1990
    functionName: mpd_qcopy_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcopy
    - mpd_set_positive
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy_abs(mpd_t *result, const mpd_t *a, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:1999,1
    - Dst: _mpd_negate
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - a
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1996
    functionDepth: 3
    functionLinenumber: 1996
    functionLinenumberEnd: 2004
    functionName: mpd_qcopy_negate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_qcopy
    - _mpd_negate
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy_negate(mpd_t *result, const mpd_t *a, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2013,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2015,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - a
    - b
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2020
    functionName: mpd_qcopy_sign
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_set_sign
    - mpd_qcopy
    - mpd_sign
    linkageType: ''
    returnType: int
    signature: int mpd_qcopy_sign(mpd_t *result, const mpd_t *a, const mpd_t *b, uint32_t
      *status)
  - 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: 2048
      start: 2041
    functionDepth: 0
    functionLinenumber: 2041
    functionLinenumberEnd: 2048
    functionName: CMP_EQUAL_OR_RETURN
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_EQUAL_OR_RETURN(a, b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2067,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2069,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2076,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2078,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2082,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2084,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2088,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2092,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2096,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - big
    - small
    - n
    - m
    - shift
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (m > 0 && n >= m && shift > 0)
      pos:
        line_end: 2066
        line_start: 2066
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2097
      start: 2054
    functionDepth: 2
    functionLinenumber: 2054
    functionLinenumberEnd: 2097
    functionName: _mpd_basecmp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_isallzero
    - _mpd_div_word
    - CMP_EQUAL_OR_RETURN
    - assert
    - _mpd_divmod_pow10
    linkageType: ''
    returnType: int
    signature: "int _mpd_basecmp(mpd_uint_t *big, mpd_uint_t *small, mpd_size_t n,
      mpd_size_t m,\n             mpd_size_t shift)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_basecmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2110,1
    - Dst: _mpd_basecmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2113,1
    - Dst: CMP_EQUAL_OR_RETURN
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2100
    functionDepth: 3
    functionLinenumber: 2100
    functionLinenumberEnd: 2126
    functionName: _mpd_cmp_same_adjexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - CMP_EQUAL_OR_RETURN
    - _mpd_basecmp
    linkageType: ''
    returnType: int
    signature: int _mpd_cmp_same_adjexp(const mpd_t *a, const mpd_t *b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2140,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2141,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2142,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2142,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2144,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2146,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2147,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2151,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2152,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2155,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2157,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2158,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2162,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2162,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2163,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2163,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2167,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2168,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2171,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2173,1
    - Dst: _mpd_cmp_same_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2177,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2129
    functionDepth: 4
    functionLinenumber: 2129
    functionLinenumberEnd: 2178
    functionName: _mpd_cmp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_adjexp
    - mpd_sign
    - mpd_arith_sign
    - mpd_isnegative
    - mpd_isinfinite
    - mpd_iszerocoeff
    - _mpd_cmp_same_adjexp
    linkageType: ''
    returnType: int
    signature: int _mpd_cmp(const mpd_t *a, const mpd_t *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2192,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2193,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2198,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2203,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2204,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2209,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2214,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2215,1
    - Dst: _mpd_cmp_same_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2181
    functionDepth: 4
    functionLinenumber: 2181
    functionLinenumberEnd: 2225
    functionName: _mpd_cmp_abs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isinfinite
    - mpd_iszerocoeff
    - mpd_adjexp
    - _mpd_cmp_same_adjexp
    linkageType: ''
    returnType: int
    signature: int _mpd_cmp_abs(const mpd_t *a, const mpd_t *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2231,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2231,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2232,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2232,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - a
    - b
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2228
    functionDepth: 5
    functionLinenumber: 2228
    functionLinenumberEnd: 2239
    functionName: mpd_qcmp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_cmp
    - mpd_isspecial
    - mpd_isnan
    linkageType: ''
    returnType: int
    signature: int mpd_qcmp(const mpd_t *a, const mpd_t *b, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2252,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2252,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2253,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2258,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2246
    functionDepth: 5
    functionLinenumber: 2246
    functionLinenumberEnd: 2261
    functionName: mpd_qcompare
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_qcheck_nans
    - mpd_isspecial
    - _settriple
    linkageType: ''
    returnType: int
    signature: "int mpd_qcompare(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \            const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2270,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2270,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2271,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2277,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2264
    functionDepth: 5
    functionLinenumber: 2264
    functionLinenumberEnd: 2280
    functionName: mpd_qcompare_signal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_qcheck_nans
    - mpd_isspecial
    - _settriple
    linkageType: ''
    returnType: int
    signature: "int mpd_qcompare_signal(mpd_t *result, const mpd_t *a, const mpd_t
      *b,\n                    const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2290,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2290,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2291,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2291,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2295,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2297,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2298,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2299,1
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2302,1
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2303,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2306,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2317,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2321,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2283
    functionDepth: 5
    functionLinenumber: 2283
    functionLinenumberEnd: 2328
    functionName: mpd_cmp_total
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isqnan
    - mpd_sign
    - mpd_arith_sign
    - mpd_isnan
    - _mpd_copy_shared
    - _mpd_cmp_abs
    linkageType: ''
    returnType: int
    signature: int mpd_cmp_total(const mpd_t *a, const mpd_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_cmp_total
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2340,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2335
    functionDepth: 6
    functionLinenumber: 2335
    functionLinenumberEnd: 2343
    functionName: mpd_compare_total
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_cmp_total
    linkageType: ''
    returnType: int
    signature: int mpd_compare_total(mpd_t *result, const mpd_t *a, const mpd_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2351,1
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2352,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2354,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2355,1
    - Dst: mpd_cmp_total
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2346
    functionDepth: 6
    functionLinenumber: 2346
    functionLinenumberEnd: 2358
    functionName: mpd_cmp_total_mag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_set_positive
    - mpd_cmp_total
    - _mpd_copy_shared
    linkageType: ''
    returnType: int
    signature: int mpd_cmp_total_mag(const mpd_t *a, const mpd_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_cmp_total_mag
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2370,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - result
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2365
    functionDepth: 7
    functionLinenumber: 2365
    functionLinenumberEnd: 2373
    functionName: mpd_compare_total_mag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_cmp_total_mag
    linkageType: ''
    returnType: int
    signature: int mpd_compare_total_mag(mpd_t *result, const mpd_t *a, const mpd_t
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2382,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2383,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2376
    functionDepth: 2
    functionLinenumber: 2376
    functionLinenumberEnd: 2393
    functionName: _mpd_cmp_numequal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_sign
    - mpd_arith_sign
    linkageType: ''
    returnType: int
    signature: int _mpd_cmp_numequal(const mpd_t *a, const mpd_t *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2410,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2410,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2411,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2413,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2414,1
    - Dst: mpd_digits_to_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2417,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2418,1
    - Dst: _mpd_baseshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2422,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - result
    - a
    - n
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isspecial(a))
      pos:
        line_end: 2409
        line_start: 2409
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2410
        line_start: 2410
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2430
      start: 2405
    functionDepth: 3
    functionLinenumber: 2405
    functionLinenumberEnd: 2430
    functionName: mpd_qshiftl
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qresize
    - mpd_digits_to_size
    - _mpd_baseshiftl
    - assert
    - mpd_iszerocoeff
    - mpd_copy_flags
    - mpd_qcopy
    linkageType: ''
    returnType: int
    signature: int mpd_qshiftl(mpd_t *result, const mpd_t *a, mpd_ssize_t n, uint32_t
      *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2442,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2442,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2444,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - data
    - len
    - use_msd
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2434
    functionDepth: 2
    functionLinenumber: 2434
    functionLinenumberEnd: 2452
    functionName: _mpd_get_rnd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_word_digits
    - _mpd_isallzero
    - _mpd_divmod_pow10
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_get_rnd(const mpd_uint_t *data, mpd_ssize_t len, int
      use_msd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2465,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2465,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2466,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2468,1
    - Dst: mpd_qcopy_static
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2469,1
    - Dst: _mpd_get_rnd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2474,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2475,1
    - Dst: mpd_digits_to_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2479,1
    - Dst: _mpd_baseshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2480,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - result
    - a
    - n
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (!mpd_isspecial(a))
      pos:
        line_end: 2464
        line_start: 2464
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2465
        line_start: 2465
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2488
      start: 2459
    functionDepth: 3
    functionLinenumber: 2459
    functionLinenumberEnd: 2488
    functionName: mpd_qsshiftr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_zerocoeff
    - mpd_digits_to_size
    - _mpd_get_rnd
    - assert
    - mpd_iszerocoeff
    - mpd_copy_flags
    - _mpd_baseshiftr
    - mpd_qcopy_static
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_qsshiftr(mpd_t *result, const mpd_t *a, mpd_ssize_t
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2502,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2502,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2503,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2505,1
    - Dst: _mpd_get_rnd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2510,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2511,1
    - Dst: _mpd_baseshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2514,1
    - Dst: mpd_digits_to_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2516,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - result
    - n
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (!mpd_isspecial(result))
      pos:
        line_end: 2501
        line_start: 2501
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2502
        line_start: 2502
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2523
      start: 2495
    functionDepth: 3
    functionLinenumber: 2495
    functionLinenumberEnd: 2523
    functionName: mpd_qshiftr_inplace
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_isspecial
    - mpd_zerocoeff
    - mpd_qresize
    - mpd_digits_to_size
    - _mpd_get_rnd
    - assert
    - mpd_iszerocoeff
    - _mpd_baseshiftr
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_qshiftr_inplace(mpd_t *result, mpd_ssize_t n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2538,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2538,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2539,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2541,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2542,1
    - Dst: _mpd_get_rnd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2549,1
    - Dst: mpd_zerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2550,1
    - Dst: mpd_digits_to_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2554,1
    - Dst: _mpd_baseshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2556,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2558,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2561,1
    - Dst: _mpd_baseshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2564,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - result
    - a
    - n
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isspecial(a))
      pos:
        line_end: 2537
        line_start: 2537
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (n >= 0)
      pos:
        line_end: 2538
        line_start: 2538
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 2573
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2573
    functionName: mpd_qshiftr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_zerocoeff
    - mpd_qresize
    - _mpd_baseshiftr
    - mpd_digits_to_size
    - _mpd_get_rnd
    - assert
    - mpd_iszerocoeff
    - mpd_copy_flags
    - mpd_qcopy
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t mpd_qshiftr(mpd_t *result, const mpd_t *a, mpd_ssize_t n,
      uint32_t *status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2590,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2590,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2591,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2591,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2593,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2600,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2626,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2659,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2661,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2662,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2663,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2664,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2668,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2581
    functionDepth: 4
    functionLinenumber: 2581
    functionLinenumberEnd: 2669
    functionName: mpd_qand
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_isnegative
    - mpd_seterror
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_word_digits
    - mpd_clear_flags
    - _mpd_cap
    linkageType: ''
    returnType: void
    signature: "void mpd_qand(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2675,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2676,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2681,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2682,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2684,1
    - Dst: mpd_isnormal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2686,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2692,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2694,1
    - Dst: mpd_isnormal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - a
    - ctx
    argTypes:
    - mpd_t*
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2672
    functionDepth: 4
    functionLinenumber: 2672
    functionLinenumberEnd: 2701
    functionName: mpd_class
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isqnan
    - mpd_isnormal
    - mpd_ispositive
    - mpd_isnan
    - mpd_iszero
    - mpd_isinfinite
    linkageType: ''
    returnType: char
    signature: 'char *

      mpd_class(const mpd_t *a, const mpd_context_t *ctx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2713,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2713,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2714,1
    - Dst: _mpd_idiv_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2719,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2721,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2739,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2741,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2742,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2743,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2744,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2749
      start: 2704
    functionDepth: 4
    functionLinenumber: 2704
    functionLinenumberEnd: 2749
    functionName: mpd_qinvert
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_isnegative
    - mpd_seterror
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_clear_flags
    - _mpd_cap
    - _mpd_idiv_word
    linkageType: ''
    returnType: void
    signature: "void mpd_qinvert(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n            uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2756,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2757,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2760,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2762,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2763,1
    - Dst: mpd_qset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2767,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2752
    functionDepth: 6
    functionLinenumber: 2752
    functionLinenumberEnd: 2769
    functionName: mpd_qlogb
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qset_ssize
    - mpd_adjexp
    - mpd_isspecial
    - mpd_qcheck_nan
    - mpd_iszerocoeff
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qlogb(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n          uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2781,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2781,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2782,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2782,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2784,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2791,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2817,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2852,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2854,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2855,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2856,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2857,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2861,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2772
    functionDepth: 4
    functionLinenumber: 2772
    functionLinenumberEnd: 2862
    functionName: mpd_qor
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_isnegative
    - mpd_seterror
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_word_digits
    - mpd_clear_flags
    - _mpd_cap
    linkageType: ''
    returnType: void
    signature: "void mpd_qor(mpd_t *result, const mpd_t *a, const mpd_t *b,\n        const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2873,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2874,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2875,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2878,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2878,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2879,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2883,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2884,1
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2888,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2890,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2894,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2897,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2898,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2912,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2913,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2916,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2920,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2921,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2924,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2926,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2927,1
    - Dst: _mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2930,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2934,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2935,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2936,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2868
    functionDepth: 7
    functionLinenumber: 2868
    functionLinenumberEnd: 2937
    functionName: mpd_qrotate
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qadd
    - mpd_isspecial
    - mpd_seterror
    - mpd_qcheck_nans
    - mpd_qshiftl
    - _mpd_cap
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qget_ssize
    - mpd_qshiftr
    - mpd_isinfinite
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qrotate(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \           const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2958,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2958,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2959,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2963,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2964,1
    - Dst: mpd_qabs_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2968,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2973,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2976,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2977,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2982,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:2988,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3003,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3006,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2944
    functionDepth: 6
    functionLinenumber: 2944
    functionLinenumberEnd: 3007
    functionName: mpd_qscaleb
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_arith_sign
    - mpd_seterror
    - mpd_isnegative
    - mpd_qcheck_nans
    - mpd_qfinalize
    - mpd_qabs_uint
    - mpd_isinfinite
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qscaleb(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \           const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3018,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3019,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3022,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3027,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3028,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3031,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3034,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3035,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3038,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - result
    - a
    - n
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3014
    functionDepth: 5
    functionLinenumber: 3014
    functionLinenumberEnd: 3040
    functionName: mpd_qshiftn
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qshiftr_inplace
    - mpd_isspecial
    - mpd_seterror
    - mpd_qshiftl
    - _mpd_cap
    - mpd_qcheck_nan
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qshiftn(mpd_t *result, const mpd_t *a, mpd_ssize_t n, const
      mpd_context_t *ctx,\n            uint32_t *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3053,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3053,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3054,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3058,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3059,1
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3063,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3065,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3069,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3072,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3073,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3078,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3079,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3082,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3085,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3086,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3046
    functionDepth: 7
    functionLinenumber: 3046
    functionLinenumberEnd: 3088
    functionName: mpd_qshift
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qshiftr_inplace
    - mpd_isspecial
    - mpd_seterror
    - mpd_qcheck_nans
    - mpd_qshiftl
    - _mpd_cap
    - mpd_qget_ssize
    - mpd_isinfinite
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qshift(mpd_t *result, const mpd_t *a, const mpd_t *b, const
      mpd_context_t *ctx,\n           uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3100,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3100,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3101,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3101,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3103,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3110,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3136,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3171,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3173,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3174,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3175,1
    - Dst: _mpd_cap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3176,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3180,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3091
    functionDepth: 4
    functionLinenumber: 3091
    functionLinenumberEnd: 3181
    functionName: mpd_qxor
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_isnegative
    - mpd_seterror
    - mpd_qresize
    - _mpd_real_size
    - mpd_setdigits
    - mpd_word_digits
    - mpd_clear_flags
    - _mpd_cap
    linkageType: ''
    returnType: void
    signature: "void mpd_qxor(mpd_t *result, const mpd_t *a, const mpd_t *b,\n        const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3197,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3198,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3203,1
    - Dst: mpd_qminus
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3204,1
    - Dst: mpd_qplus
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3193
    functionDepth: 5
    functionLinenumber: 3193
    functionLinenumberEnd: 3209
    functionName: mpd_qabs
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_isnegative
    - mpd_qplus
    - mpd_qcheck_nan
    - mpd_qminus
    linkageType: ''
    returnType: void
    signature: "void mpd_qabs(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,\n
      \        uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t**
    - mpd_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3211
    functionDepth: 0
    functionLinenumber: 3211
    functionLinenumberEnd: 3217
    functionName: _mpd_ptrswap
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_ptrswap(const mpd_t **a, const mpd_t **b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3224,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3225,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3225,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3226,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3229,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3229,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3233,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3233,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - result
    - a
    - b
    - sign_b
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - uint32_t*
    assertStmts:
    - condition: (mpd_isinfinite(b))
      pos:
        line_end: 3232
        line_start: 3232
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 3235
      start: 3220
    functionDepth: 3
    functionLinenumber: 3220
    functionLinenumberEnd: 3235
    functionName: _mpd_qaddsub_inf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_sign
    - mpd_seterror
    - mpd_isinfinite
    - assert
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void _mpd_qaddsub_inf(mpd_t *result, const mpd_t *a, const mpd_t *b,
      uint8_t sign_b,\n                 uint32_t *status)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3243,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3244,1
    - Dst: _mpd_ptrswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3255,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3259,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3262,1
    - Dst: mpd_copy_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3295,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3299,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3304,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3305,1
    - Dst: _mpd_ptrswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3316,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3321,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3325,1
    - Dst: _mpd_baseadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3327,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3332,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3339,1
    - Dst: _mpd_ptrswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3346,1
    - Dst: _mpd_basesub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3354,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3356,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3358,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3361,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3362,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3364,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3365,1
    - Dst: mpd_set_negative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3367,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3372,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3375,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 6
    argNames:
    - result
    - a
    - b
    - sign_b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3238
    functionDepth: 4
    functionLinenumber: 3238
    functionLinenumberEnd: 3376
    functionName: _mpd_qaddsub
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - MPD_NEW_CONST
    - mpd_adjexp
    - _mpd_baseadd
    - _mpd_basesub
    - mpd_sign
    - mpd_set_positive
    - mpd_seterror
    - mpd_set_negative
    - mpd_qresize
    - mpd_qshiftl
    - _mpd_real_size
    - mpd_setdigits
    - _mpd_ptrswap
    - mpd_set_flags
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_iszerocoeff
    - mpd_copy_flags
    linkageType: ''
    returnType: void
    signature: "void _mpd_qaddsub(mpd_t *result, const mpd_t *a, const mpd_t *b, uint8_t
      sign_b,\n             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qaddsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3383,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3379
    functionDepth: 5
    functionLinenumber: 3379
    functionLinenumberEnd: 3384
    functionName: _mpd_qadd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qaddsub
    - mpd_sign
    linkageType: ''
    returnType: void
    signature: "void _mpd_qadd(mpd_t *result, const mpd_t *a, const mpd_t *b,\n          const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qaddsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3391,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3387
    functionDepth: 5
    functionLinenumber: 3387
    functionLinenumberEnd: 3392
    functionName: _mpd_qsub
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qaddsub
    - mpd_sign
    linkageType: ''
    returnType: void
    signature: "void _mpd_qsub(mpd_t *result, const mpd_t *a, const mpd_t *b,\n          const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3399,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3399,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3400,1
    - Dst: _mpd_qaddsub_inf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3403,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3403,1
    - Dst: _mpd_qaddsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3407,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3407,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3395
    functionDepth: 6
    functionLinenumber: 3395
    functionLinenumberEnd: 3409
    functionName: mpd_qadd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_qcheck_nans
    - _mpd_qaddsub_inf
    - _mpd_qaddsub
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3418,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3412
    functionDepth: 7
    functionLinenumber: 3412
    functionLinenumberEnd: 3423
    functionName: _mpd_qadd_exact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_seterror
    - mpd_qadd
    linkageType: ''
    returnType: void
    signature: "void _mpd_qadd_exact(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3430,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3430,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3431,1
    - Dst: _mpd_qaddsub_inf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3434,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3434,1
    - Dst: _mpd_qaddsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3438,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3438,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3426
    functionDepth: 6
    functionLinenumber: 3426
    functionLinenumberEnd: 3440
    functionName: mpd_qsub
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_qcheck_nans
    - _mpd_qaddsub_inf
    - _mpd_qaddsub
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3449,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3443
    functionDepth: 7
    functionLinenumber: 3443
    functionLinenumberEnd: 3454
    functionName: _mpd_qsub_exact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_seterror
    - mpd_qsub
    linkageType: ''
    returnType: void
    signature: "void _mpd_qsub_exact(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3462,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3464,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3465,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3466,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3457
    functionDepth: 7
    functionLinenumber: 3457
    functionLinenumberEnd: 3468
    functionName: mpd_qadd_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qadd
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b,\n
      \              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3476,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3478,1
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3479,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3480,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3471
    functionDepth: 7
    functionLinenumber: 3471
    functionLinenumberEnd: 3482
    functionName: mpd_qadd_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsset_uint
    - mpd_qadd
    - mpd_del
    - MPD_NEW_STATIC
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3490,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3492,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3493,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3494,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3485
    functionDepth: 7
    functionLinenumber: 3485
    functionLinenumberEnd: 3496
    functionName: mpd_qsub_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsub
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b,\n
      \              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3504,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3506,1
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3507,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3508,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3510
      start: 3499
    functionDepth: 7
    functionLinenumber: 3499
    functionLinenumberEnd: 3510
    functionName: mpd_qsub_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsset_uint
    - mpd_qsub
    - mpd_del
    - MPD_NEW_STATIC
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3513
    functionDepth: 8
    functionLinenumber: 3513
    functionLinenumberEnd: 3518
    functionName: mpd_qadd_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_i32(mpd_t *result, const mpd_t *a, int32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3521
    functionDepth: 8
    functionLinenumber: 3521
    functionLinenumberEnd: 3526
    functionName: mpd_qadd_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_u32(mpd_t *result, const mpd_t *a, uint32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3535
      start: 3530
    functionDepth: 8
    functionLinenumber: 3530
    functionLinenumberEnd: 3535
    functionName: mpd_qadd_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qadd_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3543
      start: 3538
    functionDepth: 8
    functionLinenumber: 3538
    functionLinenumberEnd: 3543
    functionName: mpd_qadd_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qadd_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3551,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3553,1
    - Dst: mpd_qset_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3554,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3555,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3557
      start: 3546
    functionDepth: 7
    functionLinenumber: 3546
    functionLinenumberEnd: 3557
    functionName: mpd_qadd_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qadd
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_i64
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3565,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3567,1
    - Dst: mpd_qset_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3568,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3569,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3560
    functionDepth: 7
    functionLinenumber: 3560
    functionLinenumberEnd: 3571
    functionName: mpd_qadd_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qadd
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_u64
    linkageType: ''
    returnType: void
    signature: "void mpd_qadd_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3580
      start: 3575
    functionDepth: 8
    functionLinenumber: 3575
    functionLinenumberEnd: 3580
    functionName: mpd_qsub_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_i32(mpd_t *result, const mpd_t *a, int32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3583
    functionDepth: 8
    functionLinenumber: 3583
    functionLinenumberEnd: 3588
    functionName: mpd_qsub_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_u32(mpd_t *result, const mpd_t *a, uint32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3592
    functionDepth: 8
    functionLinenumber: 3592
    functionLinenumberEnd: 3597
    functionName: mpd_qsub_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qsub_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3600
    functionDepth: 8
    functionLinenumber: 3600
    functionLinenumberEnd: 3605
    functionName: mpd_qsub_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qsub_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3613,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3615,1
    - Dst: mpd_qset_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3616,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3617,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3619
      start: 3608
    functionDepth: 7
    functionLinenumber: 3608
    functionLinenumberEnd: 3619
    functionName: mpd_qsub_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsub
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_i64
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3627,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3629,1
    - Dst: mpd_qset_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3630,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3631,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3633
      start: 3622
    functionDepth: 7
    functionLinenumber: 3622
    functionLinenumberEnd: 3633
    functionName: mpd_qsub_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsub
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_u64
    linkageType: ''
    returnType: void
    signature: "void mpd_qsub_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3642,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3643,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3644,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3647,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3647,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3647,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3650,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3650,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3651,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3651,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3651,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (mpd_isinfinite(b))
      pos:
        line_end: 3649
        line_start: 3649
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 3653
      start: 3638
    functionDepth: 4
    functionLinenumber: 3638
    functionLinenumberEnd: 3653
    functionName: _mpd_qdiv_inf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_sign
    - mpd_seterror
    - mpd_etiny
    - mpd_isinfinite
    - assert
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void _mpd_qdiv_inf(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3661,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3667,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3668,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3671,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3671,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3672,1
    - Dst: _mpd_qdiv_inf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3675,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3678,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3679,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3680,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3683,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3688,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3690,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3691,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3699,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3700,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3707,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3708,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3717,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3718,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3725,1
    - Dst: _mpd_basedivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3728,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3731,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3737,1
    - Dst: _mpd_base_ndivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3738,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3739,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3739,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3740,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3741,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3744,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3745,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3749,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3751,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3752,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3754,1
    - Dst: mpd_lsd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3758,1
    - Dst: mpd_trail_zeros
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3764,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3766,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3774,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3775,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 98
    argCount: 6
    argNames:
    - action
    - q
    - a
    - b
    - ctx
    - status
    argTypes:
    - int
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3657
    functionDepth: 6
    functionLinenumber: 3657
    functionLinenumberEnd: 3776
    functionName: _mpd_qdiv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_base_ndivmod
    - mpd_isspecial
    - mpd_qresize
    - _mpd_shortdiv
    - mpd_setdigits
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_setspecial
    - mpd_qshiftr_inplace
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - mpd_lsd
    - _mpd_real_size
    - _mpd_qdiv_inf
    - mpd_trail_zeros
    - _settriple
    - mpd_qcheck_nans
    - mpd_qshiftl
    - mpd_set_flags
    - _mpd_basedivmod
    linkageType: ''
    returnType: void
    signature: "void _mpd_qdiv(int action, mpd_t *q, const mpd_t *a, const mpd_t *b,\n
      \         const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3783,1
    - Dst: _mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3813,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - q
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3779
    functionDepth: 7
    functionLinenumber: 3779
    functionLinenumberEnd: 3821
    functionName: mpd_qdiv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_seterror
    - _mpd_qdiv
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv(mpd_t *q, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3828,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3831,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3832,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3832,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3836,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3837,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3841,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3845,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3845,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3850,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3856,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3860,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3879,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3887,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3897,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3904,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3911,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3914,1
    - Dst: _mpd_basedivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3919,1
    - Dst: _mpd_base_ndivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3927,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3928,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3928,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3935,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3937,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3939,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3940,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3947,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3949,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3951,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3952,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3956,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3960,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3961,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 116
    argCount: 6
    argNames:
    - q
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3824
    functionDepth: 4
    functionLinenumber: 3824
    functionLinenumberEnd: 3963
    functionName: _mpd_qdivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_adjexp
    - _mpd_base_ndivmod
    - mpd_isspecial
    - _mpd_div_word
    - mpd_sign
    - _mpd_basedivmod
    - mpd_qresize
    - mpd_qshiftl
    - _mpd_real_size
    - _mpd_shortdiv
    - mpd_setdigits
    - mpd_set_flags
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_iszerocoeff
    - mpd_qcopy
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void _mpd_qdivmod(mpd_t *q, mpd_t *r, const mpd_t *a, const mpd_t
      *b,\n             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3970,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3970,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3972,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3972,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3973,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3974,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3977,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3978,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3979,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3982,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3984,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3988,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3989,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3990,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3993,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3994,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:3998,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4000,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4001,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4002,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4003,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4007,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4008,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4014,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4015,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4016,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - q
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4017
      start: 3966
    functionDepth: 6
    functionLinenumber: 3966
    functionLinenumberEnd: 4017
    functionName: mpd_qdivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qcheck_nans
    - abort
    - _mpd_qdivmod
    - mpd_isinfinite
    - mpd_iszerocoeff
    - mpd_qcopy
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qdivmod(mpd_t *q, mpd_t *r, const mpd_t *a, const mpd_t *b,\n
      \           const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4023,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4024,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4024,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4026,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4026,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4027,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4030,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4030,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4031,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4034,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4035,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4038,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4039,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4043,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4045,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4046,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4047,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4050,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4057,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4058,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4059,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - q
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4019
    functionDepth: 6
    functionLinenumber: 4019
    functionLinenumberEnd: 4060
    functionName: mpd_qdivint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qcheck_nans
    - MPD_NEW_STATIC
    - abort
    - mpd_del
    - _mpd_qdivmod
    - mpd_isinfinite
    - mpd_iszerocoeff
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qdivint(mpd_t *q, const mpd_t *a, const mpd_t *b,\n            const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4068,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4070,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4071,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4072,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 4063
    functionDepth: 8
    functionLinenumber: 4063
    functionLinenumberEnd: 4074
    functionName: mpd_qdiv_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qdiv
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b,\n
      \              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4082,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4084,1
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4085,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4086,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4088
      start: 4077
    functionDepth: 8
    functionLinenumber: 4077
    functionLinenumberEnd: 4088
    functionName: mpd_qdiv_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsset_uint
    - mpd_qdiv
    - mpd_del
    - MPD_NEW_STATIC
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4096
      start: 4091
    functionDepth: 9
    functionLinenumber: 4091
    functionLinenumberEnd: 4096
    functionName: mpd_qdiv_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qdiv_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_i32(mpd_t *result, const mpd_t *a, int32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4104
      start: 4099
    functionDepth: 9
    functionLinenumber: 4099
    functionLinenumberEnd: 4104
    functionName: mpd_qdiv_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qdiv_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_u32(mpd_t *result, const mpd_t *a, uint32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4113
      start: 4108
    functionDepth: 9
    functionLinenumber: 4108
    functionLinenumberEnd: 4113
    functionName: mpd_qdiv_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qdiv_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qdiv_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4121
      start: 4116
    functionDepth: 9
    functionLinenumber: 4116
    functionLinenumberEnd: 4121
    functionName: mpd_qdiv_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qdiv_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4129,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4131,1
    - Dst: mpd_qset_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4132,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4133,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4124
    functionDepth: 8
    functionLinenumber: 4124
    functionLinenumberEnd: 4135
    functionName: mpd_qdiv_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qdiv
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_i64
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4143,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4145,1
    - Dst: mpd_qset_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4146,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4147,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4138
    functionDepth: 8
    functionLinenumber: 4138
    functionLinenumberEnd: 4149
    functionName: mpd_qdiv_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qdiv
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_u64
    linkageType: ''
    returnType: void
    signature: "void mpd_qdiv_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4156,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4156,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - result
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4162
      start: 4153
    functionDepth: 4
    functionLinenumber: 4153
    functionLinenumberEnd: 4162
    functionName: _mpd_zeropad
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszero
    - mpd_qshiftl
    - mpd_isspecial
    linkageType: ''
    returnType: void
    signature: void _mpd_zeropad(mpd_t *result, const mpd_context_t *ctx, uint32_t
      *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4169,1
    - Dst: MPD_NEW_SHARED
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4170,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4172,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4175,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4165
    functionDepth: 5
    functionLinenumber: 4165
    functionLinenumberEnd: 4182
    functionName: _mpd_qexp_check_one
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - _settriple
    - MPD_NEW_CONST
    - mpd_set_positive
    - MPD_NEW_SHARED
    linkageType: ''
    returnType: int
    signature: "int _mpd_qexp_check_one(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n                    uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4193,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4194,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4194,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4195,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4195,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4195,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4210,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4210,1
    - Dst: ceil
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - r
    - p
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (p >= 10)
      pos:
        line_end: 4192
        line_start: 4192
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (!mpd_iszero(r))
      pos:
        line_end: 4193
        line_start: 4193
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (-p < mpd_adjexp(r) && mpd_adjexp(r) <= -1)
      pos:
        line_end: 4194
        line_start: 4194
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4224
      start: 4187
    functionDepth: 3
    functionLinenumber: 4187
    functionLinenumberEnd: 4224
    functionName: _mpd_get_exp_iterations
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_adjexp
    - ceil
    - mpd_word_digits
    - mpd_iszero
    - assert
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _mpd_get_exp_iterations(const mpd_t *r, mpd_ssize_t p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4261,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4262,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4263,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4266,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4266,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4268,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4269,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4294,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4295,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4299,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4299,1
    - Dst: _mpd_qexp_check_one
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4307,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4311,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4316,1
    - Dst: _mpd_get_exp_iterations
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4328,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4330,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4334,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4338,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4339,1
    - Dst: mpd_qfma
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4340,1
    - Dst: _mpd_qpow_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4344,1
    - Dst: _mpd_qpow_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4347,1
    - Dst: _mpd_qpow_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4351,1
    - Dst: _mpd_qpow_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4353,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4357,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isspecial(a))
      pos:
        line_end: 4265
        line_start: 4265
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4361
      start: 4256
    functionDepth: 8
    functionLinenumber: 4256
    functionLinenumberEnd: 4361
    functionName: _mpd_qexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - MPD_NEW_CONST
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_setdigits
    - mpd_qfma
    - _mpd_qexp_check_one
    - mpd_iszerocoeff
    - _mpd_qpow_uint
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_etiny
    - assert
    - mpd_qcopy
    - mpd_setspecial
    - mpd_seterror
    - _mpd_get_exp_iterations
    - mpd_ispositive
    - mpd_qdiv
    - _settriple
    linkageType: ''
    returnType: void
    signature: "void _mpd_qexp(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n          uint32_t *status)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4370,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4371,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4374,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4375,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4378,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4382,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4383,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4391,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4392,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4393,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4394,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4400,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4401,1
    - Dst: _mpd_qexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4413,1
    - Dst: _ssettriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4421,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4437,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4438,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4439,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4439,1
    - Dst: mpd_qcmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4440,1
    - Dst: _mpd_zeropad
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4442,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4443,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4444,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4449,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4450,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4451,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4452,1
    - Dst: _mpd_qexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4455,1
    - Dst: _mpd_zeropad
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4456,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4457,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4458,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4460
      start: 4364
    functionDepth: 9
    functionLinenumber: 4364
    functionLinenumberEnd: 4460
    functionName: mpd_qexp
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - _mpd_zeropad
    - mpd_isspecial
    - mpd_check_underflow
    - mpd_qadd
    - mpd_qfinalize
    - mpd_isnegative
    - mpd_seterror
    - mpd_qsub
    - mpd_qcmp
    - mpd_qcheck_nan
    - MPD_NEW_STATIC
    - mpd_del
    - _mpd_qexp
    - _ssettriple
    - mpd_iszerocoeff
    - mpd_qcopy
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qexp(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,\n
      \        uint32_t *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qncopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4471,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4472,1
    - Dst: _mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4478,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4480,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - result
    - a
    - b
    - c
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4463
    functionDepth: 7
    functionLinenumber: 4463
    functionLinenumberEnd: 4485
    functionName: mpd_qfma
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_qadd
    - mpd_seterror
    - mpd_qncopy
    - _mpd_qmul
    - mpd_del
    linkageType: ''
    returnType: void
    signature: "void mpd_qfma(mpd_t *result, const mpd_t *a, const mpd_t *b, const
      mpd_t *c,\n         const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - klist
    - maxprec
    - initprec
    argTypes:
    - mpd_ssize_t[]
    - mpd_ssize_t
    - mpd_ssize_t
    assertStmts:
    - condition: (maxprec >= 2 && initprec >= 2)
      pos:
        line_end: 4505
        line_start: 4505
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4516
      start: 4499
    functionDepth: 1
    functionLinenumber: 4499
    functionLinenumberEnd: 4516
    functionName: ln_schedule_prec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int ln_schedule_prec(mpd_ssize_t klist[MPD_MAX_PREC_LOG2], mpd_ssize_t
      maxprec,\n                 mpd_ssize_t initprec)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4585,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4586,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4592,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4597,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4599,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4604,1
    - Dst: _mpd_apply_round_excess
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4607,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4612,1
    - Dst: ln_schedule_prec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4615,1
    - Dst: _mpd_qexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4619,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4621,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4622,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4623,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4624,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4629,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 3
    argNames:
    - result
    - prec
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (prec >= 1)
      pos:
        line_end: 4591
        line_start: 4591
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4632
      start: 4581
    functionDepth: 9
    functionLinenumber: 4581
    functionLinenumberEnd: 4632
    functionName: mpd_qln10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - MPD_NEW_CONST
    - mpd_maxcontext
    - mpd_isspecial
    - mpd_qadd
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qsub
    - ln_schedule_prec
    - MPD_NEW_STATIC
    - mpd_del
    - _mpd_apply_round_excess
    - _mpd_qexp
    - mpd_qshiftr
    - assert
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: void mpd_qln10(mpd_t *result, mpd_ssize_t prec, uint32_t *status)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4722,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4723,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4724,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4731,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4731,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4731,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4737,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4738,1
    - Dst: _mpd_get_msdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4743,1
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4752,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4753,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4757,1
    - Dst: mpd_set_negative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4772,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4775,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4776,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4791,1
    - Dst: _mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4794,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4796,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4804,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4804,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4806,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4806,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4811,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4819,1
    - Dst: ln_schedule_prec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4823,1
    - Dst: _mpd_qexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4827,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4832,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4834,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4837,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4840,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4841,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4842,1
    - Dst: mpd_qln10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4871,1
    - Dst: mpd_qmul_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4872,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4873,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4878,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4879,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4880,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 85
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (!mpd_isspecial(a) && !mpd_iszerocoeff(a))
      pos:
        line_end: 4730
        line_start: 4730
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 4881
      start: 4716
    functionDepth: 10
    functionLinenumber: 4716
    functionLinenumberEnd: 4881
    functionName: _mpd_qln
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_qadd
    - mpd_qsub
    - mpd_setdigits
    - mpd_clear_flags
    - mpd_iszerocoeff
    - mpd_set_negative
    - mpd_qmul_ssize
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_etiny
    - mpd_minalloc
    - assert
    - mpd_qcopy
    - mpd_qln10
    - _mpd_cmp
    - mpd_seterror
    - ln_schedule_prec
    - _mpd_get_msdigits
    - _settriple
    - mpd_adjexp
    - _mpd_qsub
    - _mpd_qexp
    - mpd_qshiftr
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void _mpd_qln(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,\n
      \        uint32_t *status)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4891,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4892,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4895,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4896,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4899,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4902,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4903,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4906,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4907,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4910,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4911,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4935,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4938,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4940,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4948,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4949,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4950,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4951,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4955,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4956,1
    - Dst: _mpd_qln
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4966,1
    - Dst: _ssettriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4967,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4971,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4972,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4973,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4973,1
    - Dst: mpd_qcmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4974,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4976,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4977,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4982,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4983,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4984,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4985,1
    - Dst: _mpd_qln
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4988,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4989,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:4990,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4992
      start: 4884
    functionDepth: 11
    functionLinenumber: 4884
    functionLinenumberEnd: 4992
    functionName: mpd_qln
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qadd
    - _mpd_qln
    - mpd_qsub
    - mpd_qcheck_nan
    - _ssettriple
    - mpd_iszerocoeff
    - mpd_isnegative
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qcopy
    - mpd_setspecial
    - _mpd_cmp
    - mpd_qfinalize
    - mpd_seterror
    - _settriple
    - mpd_adjexp
    - mpd_check_underflow
    - mpd_qcmp
    - mpd_exp_digits
    linkageType: ''
    returnType: void
    signature: "void mpd_qln(mpd_t *result, const mpd_t *a, const mpd_context_t *ctx,\n
      \       uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5007,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5009,1
    - Dst: _mpd_qln
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5013,1
    - Dst: mpd_qln10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5015,1
    - Dst: _mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5022,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - action
    - result
    - a
    - ctx
    - status
    argTypes:
    - int
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5025
      start: 5002
    functionDepth: 11
    functionLinenumber: 5002
    functionLinenumberEnd: 5025
    functionName: _mpd_qlog10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - _mpd_qln
    - _mpd_qdiv
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qln10
    linkageType: ''
    returnType: void
    signature: "void _mpd_qlog10(int action, mpd_t *result, const mpd_t *a,\n            const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5038,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5039,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5042,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5043,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5046,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5049,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5050,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5053,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5054,1
    - Dst: mpd_coeff_ispow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5057,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5059,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5064,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5065,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5088,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5090,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5092,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5097,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5098,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5099,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5100,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5104,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5105,1
    - Dst: _mpd_qlog10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5115,1
    - Dst: _ssettriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5116,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5120,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5121,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5122,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5122,1
    - Dst: mpd_qcmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5123,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5125,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5126,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5131,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5132,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5133,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5134,1
    - Dst: _mpd_qlog10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5137,1
    - Dst: mpd_check_underflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5138,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 76
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5140
      start: 5028
    functionDepth: 12
    functionLinenumber: 5028
    functionLinenumberEnd: 5140
    functionName: mpd_qlog10
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qadd
    - mpd_qsub
    - mpd_qcheck_nan
    - _ssettriple
    - mpd_iszerocoeff
    - mpd_coeff_ispow10
    - mpd_isnegative
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qcopy
    - _mpd_qlog10
    - mpd_setspecial
    - mpd_qfinalize
    - mpd_seterror
    - _settriple
    - mpd_adjexp
    - mpd_check_underflow
    - mpd_qcmp
    - mpd_exp_digits
    linkageType: ''
    returnType: void
    signature: "void mpd_qlog10(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5153,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5153,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5154,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5156,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5156,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5157,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5159,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5163,1
    - Dst: _mpd_cmp_numequal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5165,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5169,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5172,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5177
      start: 5147
    functionDepth: 6
    functionLinenumber: 5147
    functionLinenumberEnd: 5177
    functionName: mpd_qmax
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_isnan
    - _mpd_cmp_numequal
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qmax(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5189,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5189,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5190,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5192,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5192,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5193,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5195,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5199,1
    - Dst: _mpd_cmp_numequal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5201,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5205,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5208,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5213
      start: 5183
    functionDepth: 6
    functionLinenumber: 5183
    functionLinenumberEnd: 5213
    functionName: mpd_qmax_mag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_isnan
    - _mpd_cmp_numequal
    - _mpd_cmp_abs
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qmax_mag(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \            const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5226,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5226,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5227,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5229,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5229,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5230,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5232,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5236,1
    - Dst: _mpd_cmp_numequal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5238,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5242,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5245,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5220
    functionDepth: 6
    functionLinenumber: 5220
    functionLinenumberEnd: 5250
    functionName: mpd_qmin
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_isnan
    - _mpd_cmp_numequal
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qmin(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5262,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5262,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5263,1
    - Dst: mpd_isqnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5265,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5265,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5266,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5268,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5272,1
    - Dst: _mpd_cmp_numequal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5274,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5278,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5281,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5256
    functionDepth: 6
    functionLinenumber: 5256
    functionLinenumberEnd: 5286
    functionName: mpd_qmin_mag
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isqnan
    - mpd_qfinalize
    - mpd_qcheck_nans
    - mpd_isnan
    - _mpd_cmp_numequal
    - _mpd_cmp_abs
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qmin_mag(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \            const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5294,1
    - Dst: add_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5295,1
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - la
    - lb
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5301
      start: 5289
    functionDepth: 2
    functionLinenumber: 5289
    functionLinenumberEnd: 5301
    functionName: _kmul_resultsize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - add_size_t
    - mul_size_t
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t _kmul_resultsize(mpd_size_t la, mpd_size_t lb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5315,1
    - Dst: mul_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5315,1
    - Dst: _kmul_worksize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - lim
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5316
      start: 5304
    functionDepth: 2
    functionLinenumber: 5304
    functionLinenumberEnd: 5316
    functionName: _kmul_worksize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - add_size_t
    - _kmul_worksize
    - mul_size_t
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t _kmul_worksize(mpd_size_t n, mpd_size_t lim)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5335,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5336,1
    - Dst: _mpd_basemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5339,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5351,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5352,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5356,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5357,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5359,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5362,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5363,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5364,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5370,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5372,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5374,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5376,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5378,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5381,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5383,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5385,1
    - Dst: _mpd_basesubfrom
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5386,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5389,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5391,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5392,1
    - Dst: _mpd_basesubfrom
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 6
    argNames:
    - c
    - a
    - b
    - w
    - la
    - lb
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (la >= lb && lb > 0)
      pos:
        line_end: 5334
        line_start: 5334
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (la <= MPD_KARATSUBA_BASECASE || w != NULL)
      pos:
        line_end: 5335
        line_start: 5335
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5396
      start: 5329
    functionDepth: 1
    functionLinenumber: 5329
    functionLinenumberEnd: 5396
    functionName: _karatsuba_rec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_uint_zero
    - _mpd_basemul
    - memcpy
    - _mpd_basesubfrom
    - _mpd_baseaddto
    - assert
    - _karatsuba_rec
    linkageType: ''
    returnType: void
    signature: "void _karatsuba_rec(mpd_uint_t *c, const mpd_uint_t *a, const mpd_uint_t
      *b,\n               mpd_uint_t *w, mpd_size_t la, mpd_size_t lb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5411,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5412,1
    - Dst: _kmul_resultsize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5414,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5415,1
    - Dst: _kmul_worksize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5419,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5420,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5421,1
    - Dst: _karatsuba_rec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5425,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - u
    - v
    - ulen
    - vlen
    - rsize
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts:
    - condition: (ulen >= 4)
      pos:
        line_end: 5410
        line_start: 5410
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ulen >= vlen)
      pos:
        line_end: 5411
        line_start: 5411
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5430
      start: 5403
    functionDepth: 3
    functionLinenumber: 5403
    functionLinenumberEnd: 5430
    functionName: _mpd_kmul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_calloc
    - mpd_free
    - _kmul_resultsize
    - _kmul_worksize
    - assert
    - _karatsuba_rec
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t *\n_mpd_kmul(const mpd_uint_t *u, const mpd_uint_t *v,\n
      \         mpd_size_t ulen, mpd_size_t vlen,\n          mpd_size_t *rsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5444,1
    - Dst: mpd_bsr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - rsize
    argTypes:
    - mpd_size_t
    assertStmts:
    - condition: (rsize >= 4)
      pos:
        line_end: 5443
        line_start: 5443
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5468
      start: 5438
    functionDepth: 1
    functionLinenumber: 5438
    functionLinenumberEnd: 5468
    functionName: _mpd_get_transform_len
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - mpd_bsr
    linkageType: ''
    returnType: mpd_size_t
    signature: mpd_size_t _mpd_get_transform_len(mpd_size_t rsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5479
      start: 5472
    functionDepth: 0
    functionLinenumber: 5472
    functionLinenumberEnd: 5479
    functionName: _mpd_get_control87
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short _mpd_get_control87(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cw
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5485
      start: 5481
    functionDepth: 0
    functionLinenumber: 5481
    functionLinenumberEnd: 5485
    functionName: _mpd_set_control87
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_set_control87(unsigned short cw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __control87_2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5499,1
    - Dst: __control87_2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5500,1
    - Dst: _mpd_get_control87
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5502,1
    - Dst: _mpd_set_control87
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5506
      start: 5488
    functionDepth: 1
    functionLinenumber: 5488
    functionLinenumberEnd: 5506
    functionName: mpd_set_fenv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - __control87_2
    - _mpd_set_control87
    - _mpd_get_control87
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mpd_set_fenv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __control87_2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5515,1
    - Dst: _mpd_set_control87
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cw
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5508
    functionDepth: 1
    functionLinenumber: 5508
    functionLinenumberEnd: 5519
    functionName: mpd_restore_fenv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - __control87_2
    - _mpd_set_control87
    linkageType: ''
    returnType: void
    signature: void mpd_restore_fenv(unsigned int cw)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mpd_set_fenv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5536,1
    - Dst: add_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5539,1
    - Dst: _mpd_get_transform_len
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5540,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5544,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5547,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5550,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5554,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5555,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5556,1
    - Dst: fnt_autoconvolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5559,1
    - Dst: fnt_autoconvolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5560,1
    - Dst: fnt_autoconvolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5561,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5566,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5570,1
    - Dst: fnt_convolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5571,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5572,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5576,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5577,1
    - Dst: fnt_convolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5578,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5579,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5583,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5584,1
    - Dst: fnt_convolute
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5585,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5586,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5590,1
    - Dst: crt3
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5593,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5599,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5600,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5604,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 5
    argNames:
    - u
    - v
    - ulen
    - vlen
    - rsize
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5607
      start: 5526
    functionDepth: 3
    functionLinenumber: 5526
    functionLinenumberEnd: 5607
    functionName: _mpd_fntmul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - add_size_t
    - _mpd_get_transform_len
    - mpd_uint_zero
    - memcpy
    - mpd_set_fenv
    - mpd_calloc
    - mpd_free
    - crt3
    - fnt_convolute
    - fnt_autoconvolute
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t *\n_mpd_fntmul(const mpd_uint_t *u, const mpd_uint_t *v,\n
      \           mpd_size_t ulen, mpd_size_t vlen,\n            mpd_size_t *rsize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5619,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5620,1
    - Dst: _mpd_basemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5625,1
    - Dst: _mpd_fntmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5631,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5634,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5635,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5648,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5649,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5655,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5656,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5660,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5663,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5664,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5667,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5673,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5675,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5677,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5679,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5681,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5686,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5688,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5692,1
    - Dst: _mpd_basesubfrom
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5693,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5696,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5698,1
    - Dst: _mpd_baseaddto
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5701,1
    - Dst: _mpd_basesubfrom
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5702,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 63
    argCount: 6
    argNames:
    - c
    - a
    - b
    - w
    - la
    - lb
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (la <= 3*(MPD_MAXTRANSFORM_2N/2) || w != NULL)
      pos:
        line_end: 5619
        line_start: 5619
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (la >= lb && lb > 0)
      pos:
        line_end: 5618
        line_start: 5618
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5705
      start: 5613
    functionDepth: 4
    functionLinenumber: 5613
    functionLinenumberEnd: 5705
    functionName: _karatsuba_rec_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_uint_zero
    - _mpd_basemul
    - memcpy
    - mpd_free
    - _mpd_basesubfrom
    - _karatsuba_rec_fnt
    - _mpd_fntmul
    - _mpd_baseaddto
    - assert
    linkageType: ''
    returnType: int
    signature: "int _karatsuba_rec_fnt(mpd_uint_t *c, const mpd_uint_t *a, const mpd_uint_t
      *b,\n                   mpd_uint_t *w, mpd_size_t la, mpd_size_t lb)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5720,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5721,1
    - Dst: _kmul_resultsize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5723,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5724,1
    - Dst: _kmul_worksize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5728,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5729,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5730,1
    - Dst: _karatsuba_rec_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5734,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5735,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - u
    - v
    - ulen
    - vlen
    - rsize
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t*
    assertStmts:
    - condition: (ulen >= 4)
      pos:
        line_end: 5719
        line_start: 5719
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ulen >= vlen)
      pos:
        line_end: 5720
        line_start: 5720
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5742
      start: 5712
    functionDepth: 5
    functionLinenumber: 5712
    functionLinenumberEnd: 5742
    functionName: _mpd_kmul_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_calloc
    - mpd_free
    - _kmul_resultsize
    - _karatsuba_rec_fnt
    - _kmul_worksize
    - assert
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t *\n_mpd_kmul_fnt(const mpd_uint_t *u, const mpd_uint_t
      *v,\n              mpd_size_t ulen, mpd_size_t vlen,\n              mpd_size_t
      *rsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5749,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5750,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5751,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5754,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5754,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5754,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5758,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5758,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5759,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5760,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5763,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5763,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5763,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - result
    - a
    - b
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts:
    - condition: (mpd_isinfinite(b))
      pos:
        line_end: 5757
        line_start: 5757
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 5765
      start: 5746
    functionDepth: 3
    functionLinenumber: 5746
    functionLinenumberEnd: 5765
    functionName: _mpd_qmul_inf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_sign
    - mpd_seterror
    - mpd_iszero
    - mpd_isinfinite
    - assert
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: void _mpd_qmul_inf(mpd_t *result, const mpd_t *a, const mpd_t *b, uint32_t
      *status)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5781,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5781,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5782,1
    - Dst: _mpd_qmul_inf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5785,1
    - Dst: _mpd_ptrswap
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5790,1
    - Dst: _mpd_singlemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5796,1
    - Dst: _mpd_mul_2_le2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5801,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5804,1
    - Dst: _mpd_shortmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5806,1
    - Dst: _mpd_basemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5809,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5812,1
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5823,1
    - Dst: _mpd_shortmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5826,1
    - Dst: _mpd_basemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5829,1
    - Dst: _mpd_kmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5834,1
    - Dst: _mpd_fntmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5837,1
    - Dst: _mpd_kmul_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5840,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5844,1
    - Dst: mpd_isdynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5848,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5849,1
    - Dst: mpd_set_dynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5853,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5857,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5857,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5857,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5859,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5861,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5862,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5863
      start: 5771
    functionDepth: 6
    functionLinenumber: 5771
    functionLinenumberEnd: 5863
    functionName: _mpd_qmul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qresize
    - mpd_setdigits
    - mpd_set_dynamic_data
    - _mpd_singlemul
    - _mpd_fntmul
    - mpd_calloc
    - mpd_free
    - mpd_isdynamic_data
    - _mpd_basemul
    - mpd_sign
    - _mpd_qmul_inf
    - _mpd_shortmul
    - _mpd_kmul
    - mpd_seterror
    - _mpd_real_size
    - _mpd_ptrswap
    - mpd_uint_zero
    - _mpd_kmul_fnt
    - mpd_qcheck_nans
    - mpd_set_flags
    - _mpd_mul_2_le2
    linkageType: ''
    returnType: void
    signature: "void _mpd_qmul(mpd_t *result, const mpd_t *a, const mpd_t *b,\n          const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5870,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5872
      start: 5866
    functionDepth: 7
    functionLinenumber: 5866
    functionLinenumberEnd: 5872
    functionName: mpd_qmul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 7
    functionsReached:
    - _mpd_qmul
    - mpd_qfinalize
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul(mpd_t *result, const mpd_t *a, const mpd_t *b,\n         const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5881,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5875
    functionDepth: 8
    functionLinenumber: 5875
    functionLinenumberEnd: 5886
    functionName: _mpd_qmul_exact
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_seterror
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void _mpd_qmul_exact(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5894,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5896,1
    - Dst: mpd_qsset_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5897,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5898,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5900
      start: 5889
    functionDepth: 8
    functionLinenumber: 5889
    functionLinenumberEnd: 5900
    functionName: mpd_qmul_ssize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qsset_ssize
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_ssize(mpd_t *result, const mpd_t *a, mpd_ssize_t b,\n
      \              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5908,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5910,1
    - Dst: mpd_qsset_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5911,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5912,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5914
      start: 5903
    functionDepth: 8
    functionLinenumber: 5903
    functionLinenumberEnd: 5914
    functionName: mpd_qmul_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_qsset_uint
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_uint(mpd_t *result, const mpd_t *a, mpd_uint_t b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5921
      start: 5916
    functionDepth: 9
    functionLinenumber: 5916
    functionLinenumberEnd: 5921
    functionName: mpd_qmul_i32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_i32(mpd_t *result, const mpd_t *a, int32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5923
    functionDepth: 9
    functionLinenumber: 5923
    functionLinenumberEnd: 5928
    functionName: mpd_qmul_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_u32(mpd_t *result, const mpd_t *a, uint32_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5936
      start: 5931
    functionDepth: 9
    functionLinenumber: 5931
    functionLinenumberEnd: 5936
    functionName: mpd_qmul_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_ssize
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qmul_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5943
      start: 5938
    functionDepth: 9
    functionLinenumber: 5938
    functionLinenumberEnd: 5943
    functionName: mpd_qmul_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qmul_uint
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5951,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5953,1
    - Dst: mpd_qset_i64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5954,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5955,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - int64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5946
    functionDepth: 8
    functionLinenumber: 5946
    functionLinenumberEnd: 5957
    functionName: mpd_qmul_i64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_i64
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_i64(mpd_t *result, const mpd_t *a, int64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5965,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5967,1
    - Dst: mpd_qset_u64
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5968,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5969,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint64_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5960
    functionDepth: 8
    functionLinenumber: 5960
    functionLinenumberEnd: 5971
    functionName: mpd_qmul_u64
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_del
    - MPD_NEW_STATIC
    - mpd_qset_u64
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void mpd_qmul_u64(mpd_t *result, const mpd_t *a, uint64_t b,\n             const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5979,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5980,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5985,1
    - Dst: mpd_qcopy_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5986,1
    - Dst: mpd_qcopy_negate
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5989,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:5992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5993
      start: 5975
    functionDepth: 6
    functionLinenumber: 5975
    functionLinenumberEnd: 5993
    functionName: mpd_qminus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qcopy_negate
    - mpd_qfinalize
    - mpd_qcopy_abs
    - mpd_qcheck_nan
    - mpd_iszero
    linkageType: ''
    returnType: void
    signature: "void mpd_qminus(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6000,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6001,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6006,1
    - Dst: mpd_qcopy_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6007,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6010,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6013,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6014
      start: 5996
    functionDepth: 6
    functionLinenumber: 5996
    functionLinenumberEnd: 6014
    functionName: mpd_qplus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_qfinalize
    - mpd_qcopy_abs
    - mpd_qcheck_nan
    - mpd_iszero
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qplus(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n          uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6022,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6022,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6024,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6025,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6029,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6029,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6030,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6031,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6035,1
    - Dst: mpd_qmaxcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6036,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6037,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6040,1
    - Dst: mpd_workcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6045,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6048,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6052,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6059,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (mpd_isinfinite(a))
      pos:
        line_end: 6028
        line_start: 6028
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 6061
      start: 6017
    functionDepth: 7
    functionLinenumber: 6017
    functionLinenumberEnd: 6061
    functionName: mpd_qnext_minus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_workcontext
    - MPD_NEW_CONST
    - mpd_isspecial
    - mpd_qfinalize
    - mpd_isnegative
    - mpd_qsub
    - mpd_isnan
    - mpd_etop
    - mpd_clear_flags
    - mpd_qmaxcoeff
    - mpd_qcheck_nan
    - mpd_etiny
    - mpd_isinfinite
    - assert
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qnext_minus(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n                uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6069,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6069,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6071,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6072,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6076,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6076,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6077,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6078,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6081,1
    - Dst: mpd_qmaxcoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6082,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6083,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6086,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6087,1
    - Dst: mpd_workcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6092,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6095,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6099,1
    - Dst: mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (mpd_isinfinite(a))
      pos:
        line_end: 6075
        line_start: 6075
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 6108
      start: 6064
    functionDepth: 7
    functionLinenumber: 6064
    functionLinenumberEnd: 6108
    functionName: mpd_qnext_plus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_workcontext
    - MPD_NEW_CONST
    - mpd_isspecial
    - mpd_qadd
    - mpd_qfinalize
    - mpd_ispositive
    - mpd_isnan
    - mpd_etop
    - mpd_clear_flags
    - mpd_set_flags
    - mpd_qmaxcoeff
    - mpd_qcheck_nan
    - mpd_etiny
    - mpd_isinfinite
    - assert
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qnext_plus(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n               uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6120,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6124,1
    - Dst: mpd_qcopy_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6126,1
    - Dst: mpd_qnext_plus
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6131,1
    - Dst: mpd_qnext_minus
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6134,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6137,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6140,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 6114
    functionDepth: 8
    functionLinenumber: 6114
    functionLinenumberEnd: 6146
    functionName: mpd_qnext_toward
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_qcopy_sign
    - mpd_adjexp
    - mpd_qnext_plus
    - mpd_qcheck_nans
    - mpd_iszero
    - mpd_qnext_minus
    - mpd_isinfinite
    linkageType: ''
    returnType: void
    signature: "void mpd_qnext_toward(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \                const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6166,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6170,1
    - Dst: mpd_bsr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6174,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6176,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6178,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6180,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6181,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6187,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - result
    - base
    - exp
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6188
      start: 6158
    functionDepth: 8
    functionLinenumber: 6158
    functionLinenumberEnd: 6188
    functionName: _mpd_qpow_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_set_sign
    - mpd_qcopy
    - mpd_bsr
    - mpd_iszerocoeff
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void _mpd_qpow_uint(mpd_t *result, const mpd_t *base, mpd_uint_t exp,\n
      \              uint8_t resultsign, const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6206,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6209,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6212,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6214,1
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6215,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6216,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6218,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6219,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6223,1
    - Dst: mpd_qdivint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6224,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6225,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6225,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6226,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 6
    argNames:
    - result
    - tbase
    - texp
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6231
      start: 6200
    functionDepth: 8
    functionLinenumber: 6200
    functionLinenumberEnd: 6231
    functionName: _mpd_qpow_mpd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - MPD_NEW_CONST
    - mpd_qdivint
    - mpd_maxcontext
    - mpd_isspecial
    - mpd_seterror
    - mpd_isodd
    - mpd_set_sign
    - mpd_isnan
    - mpd_iszero
    - mpd_qmul
    - mpd_iszerocoeff
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void _mpd_qpow_mpd(mpd_t *result, mpd_t *tbase, mpd_t *texp, uint8_t
      resultsign,\n              const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6244,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6245,1
    - Dst: mpd_workcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6249,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6253,1
    - Dst: mpd_qdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6255,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6257,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6262,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6263,1
    - Dst: mpd_qabs_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6268,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6270,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6271,1
    - Dst: _mpd_qpow_mpd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6274,1
    - Dst: _mpd_qpow_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6277,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6280,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6282,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6286,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6287,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6288,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 6
    argNames:
    - result
    - base
    - exp
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6289
      start: 6238
    functionDepth: 9
    functionLinenumber: 6238
    functionLinenumberEnd: 6289
    functionName: _mpd_qpow_int
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_workcontext
    - mpd_qfinalize
    - mpd_isnegative
    - mpd_qdiv
    - mpd_qabs_uint
    - _mpd_qpow_uint
    - MPD_NEW_STATIC
    - _mpd_qpow_mpd
    - mpd_del
    - mpd_isinfinite
    - mpd_qcopy
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void _mpd_qpow_int(mpd_t *result, const mpd_t *base, const mpd_t *exp,\n
      \             uint8_t resultsign,\n              const mpd_context_t *ctx, uint32_t
      *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6303,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6305,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - result
    - base
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6312
      start: 6296
    functionDepth: 5
    functionLinenumber: 6296
    functionLinenumberEnd: 6312
    functionName: _qcheck_pow_one_inf
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_cmp
    - mpd_set_flags
    - mpd_qshiftl
    linkageType: ''
    returnType: int
    signature: "int _qcheck_pow_one_inf(mpd_t *result, const mpd_t *base, uint8_t
      resultsign,\n                    const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6330,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6331,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6332,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6333,1
    - Dst: mpd_qmul_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6337,1
    - Dst: mpd_qget_ssize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6343,1
    - Dst: mpd_ispositive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6350,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6357,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 6
    argNames:
    - result
    - base
    - exp
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6365
      start: 6321
    functionDepth: 9
    functionLinenumber: 6321
    functionLinenumberEnd: 6365
    functionName: _qcheck_pow_one
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_isnegative
    - mpd_qshiftl
    - mpd_ispositive
    - _mpd_isint
    - mpd_set_flags
    - mpd_qmul_ssize
    - mpd_qget_ssize
    - _mpd_cmp_abs
    linkageType: ''
    returnType: int
    signature: "int _qcheck_pow_one(mpd_t *result, const mpd_t *base, const mpd_t
      *exp,\n                uint8_t resultsign,\n                const mpd_context_t
      *ctx, uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6435,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6438,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6441,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6445,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6448,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6449,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6450,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6451,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6454,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - x
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6431
    functionDepth: 7
    functionLinenumber: 6431
    functionLinenumberEnd: 6461
    functionName: _lower_bound_zeta
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_adjexp
    - mpd_maxcontext
    - mpd_isspecial
    - mpd_qsub
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_exp_digits
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _lower_bound_zeta(const mpd_t *x, uint32_t *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_SHARED
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6474,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6478,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6480,1
    - Dst: _lower_bound_zeta
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6481,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6483,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6487,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6487,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6490,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6492,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6493,1
    - Dst: mpd_exp_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6499,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6499,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6501,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6501,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 6
    argNames:
    - result
    - x
    - y
    - resultsign
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint8_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6508
      start: 6469
    functionDepth: 8
    functionLinenumber: 6469
    functionLinenumberEnd: 6508
    functionName: _qcheck_pow_bounds
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_adjexp
    - MPD_NEW_SHARED
    - mpd_set_positive
    - mpd_seterror
    - mpd_sign
    - mpd_qfinalize
    - mpd_etiny
    - _lower_bound_zeta
    - mpd_exp_digits
    linkageType: ''
    returnType: int
    signature: "int _qcheck_pow_bounds(mpd_t *result, const mpd_t *x, const mpd_t
      *y,\n                   uint8_t resultsign,\n                   const mpd_context_t
      *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6533,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6535,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6536,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6540,1
    - Dst: mpd_qln
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6570,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6571,1
    - Dst: mpd_qexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6572,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 5
    argNames:
    - result
    - base
    - exp
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6577
      start: 6528
    functionDepth: 12
    functionLinenumber: 6528
    functionLinenumberEnd: 6577
    functionName: _mpd_qpow_real
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_maxcontext
    - mpd_seterror
    - mpd_qln
    - mpd_qexp
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qmul
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void _mpd_qpow_real(mpd_t *result, const mpd_t *base, const mpd_t
      *exp,\n               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6588,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6588,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6589,1
    - Dst: mpd_isinteger
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6593,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6595,1
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6595,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6598,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6599,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6600,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6602,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6603,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6606,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6610,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6611,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6612,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6616,1
    - Dst: _qcheck_pow_one_inf
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6618,1
    - Dst: mpd_arith_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6623,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6625,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6628,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6633,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6634,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6635,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6637,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6638,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6641,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6645,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6646,1
    - Dst: _qcheck_pow_one
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6649,1
    - Dst: _qcheck_pow_bounds
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6652,1
    - Dst: _mpd_qpow_int
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6657,1
    - Dst: _mpd_qpow_real
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6660,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6661,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6661,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6663,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6666,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6668,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6670,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 5
    argNames:
    - result
    - base
    - exp
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6672
      start: 6580
    functionDepth: 13
    functionLinenumber: 6580
    functionLinenumberEnd: 6672
    functionName: mpd_qpow
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_isspecial
    - _mpd_qpow_int
    - mpd_iszero
    - mpd_isinteger
    - mpd_arith_sign
    - mpd_isnegative
    - _qcheck_pow_one
    - mpd_isinfinite
    - _qcheck_pow_one_inf
    - mpd_setspecial
    - _mpd_cmp
    - mpd_qfinalize
    - mpd_seterror
    - _settriple
    - _mpd_qpow_real
    - mpd_isodd
    - mpd_qcheck_nans
    - mpd_qshiftl
    - _qcheck_pow_bounds
    linkageType: ''
    returnType: void
    signature: "void mpd_qpow(mpd_t *result, const mpd_t *base, const mpd_t *exp,\n
      \        const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6684,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6687,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6691,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6692,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6694,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - result
    - base
    - exp
    - mod
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_uint_t
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6698
      start: 6678
    functionDepth: 9
    functionLinenumber: 6678
    functionLinenumberEnd: 6698
    functionName: _mpd_qpowmod_uint
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qrem
    - mpd_maxcontext
    - mpd_qcopy
    - _mpd_qmul_exact
    linkageType: ''
    returnType: void
    signature: "void _mpd_qpowmod_uint(mpd_t *result, mpd_t *base, mpd_uint_t exp,\n
      \                 const mpd_t *mod, uint32_t *status)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6707,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6708,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6709,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6710,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6711,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6719,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6719,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6719,1
    - Dst: mpd_qcheck_3nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6720,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6723,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6728,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6728,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6728,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6729,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6732,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6733,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6737,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6741,1
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6741,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6742,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6743,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6744,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6747,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6748,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6751,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6752,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6755,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6756,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6760,1
    - Dst: mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6762,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6764,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6768,1
    - Dst: mpd_qround_to_int
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6770,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6771,1
    - Dst: mpd_qround_to_int
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6775,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6780,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6781,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6782,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6783,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6784,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6785,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6786,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6787,1
    - Dst: _mpd_qpowmod_uint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6792,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6797,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6802,1
    - Dst: mpd_isfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6803,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6803,1
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6804,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6805,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6806,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6808,1
    - Dst: mpd_qrem
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6809,1
    - Dst: mpd_qdivint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6810,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6812,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6812,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6813,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6813,1
    - Dst: mpd_set_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6818,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6822,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6823,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6824,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6825,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6829,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 106
    argCount: 6
    argNames:
    - result
    - base
    - exp
    - mod
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6831
      start: 6701
    functionDepth: 10
    functionLinenumber: 6701
    functionLinenumberEnd: 6831
    functionName: mpd_qpowmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - MPD_NEW_CONST
    - mpd_qdivint
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_set_positive
    - mpd_iszero
    - mpd_iszerocoeff
    - mpd_isnegative
    - mpd_set_sign
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qround_to_int
    - _mpd_cmp_abs
    - mpd_qcopy
    - mpd_setspecial
    - mpd_seterror
    - _settriple
    - mpd_qrescale
    - mpd_isodd
    - mpd_qshiftl
    - mpd_isfinite
    - _mpd_qpowmod_uint
    - _mpd_isint
    - _mpd_qmul_exact
    - mpd_qcheck_3nans
    - mpd_qrem
    linkageType: ''
    returnType: void
    signature: "void mpd_qpowmod(mpd_t *result, const mpd_t *base, const mpd_t *exp,\n
      \           const mpd_t *mod,\n            const mpd_context_t *ctx, uint32_t
      *status)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6842,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6842,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6843,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6846,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6846,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6847,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6850,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6854,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6855,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6859,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6860,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6860,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6861,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6868,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6874,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6883,1
    - Dst: _mpd_apply_round_fit
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6888,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6897,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6898,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6898,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6899,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6904,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 5
    argNames:
    - result
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6905
      start: 6833
    functionDepth: 6
    functionLinenumber: 6833
    functionLinenumberEnd: 6905
    functionName: mpd_qquantize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - _settriple
    - mpd_adjexp
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qcheck_nans
    - mpd_qshiftl
    - mpd_iszero
    - mpd_etiny
    - _mpd_apply_round_fit
    - mpd_qshiftr
    - mpd_isinfinite
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qquantize(mpd_t *result, const mpd_t *a, const mpd_t *b,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6912,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6914,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6915,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6918,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6922,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6925,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6926,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6929,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6930,1
    - Dst: mpd_trail_zeros
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6934,1
    - Dst: mpd_etop
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6935,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6942
      start: 6907
    functionDepth: 6
    functionLinenumber: 6907
    functionLinenumberEnd: 6942
    functionName: mpd_qreduce
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_qshiftr_inplace
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_etop
    - mpd_qcheck_nan
    - mpd_iszero
    - mpd_qcopy
    - mpd_trail_zeros
    linkageType: ''
    returnType: void
    signature: "void mpd_qreduce(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n            uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6948,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6950,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6950,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6951,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6954,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6955,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6958,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6959,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6960,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6964,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6966,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6967,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6968,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6971,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6976,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6977,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 5
    argNames:
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6979
      start: 6944
    functionDepth: 6
    functionLinenumber: 6944
    functionLinenumberEnd: 6979
    functionName: mpd_qrem
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - mpd_isspecial
    - mpd_qfinalize
    - mpd_seterror
    - mpd_qcheck_nans
    - MPD_NEW_STATIC
    - abort
    - mpd_del
    - _mpd_qdivmod
    - mpd_isinfinite
    - mpd_iszerocoeff
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void mpd_qrem(mpd_t *r, const mpd_t *a, const mpd_t *b, const mpd_context_t
      *ctx,\n         uint32_t *status)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6986,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6987,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6991,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6991,1
    - Dst: mpd_qcheck_nans
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6992,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6995,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6996,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:6999,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7000,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7001,1
    - Dst: abort
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7005,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7007,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7008,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7009,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7012,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7018,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7019,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7025,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7026,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7026,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7029,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7033,1
    - Dst: mpd_adjexp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7033,1
    - Dst: mpd_coeff_isallnine
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7036,1
    - Dst: mpd_isodd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7038,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7040,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7041,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7041,1
    - Dst: _mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7043,1
    - Dst: _mpd_qadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7047,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7051,1
    - Dst: _mpd_cmp_abs
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7055,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7060,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7063,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7069,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7070,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7071,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 73
    argCount: 5
    argNames:
    - r
    - a
    - b
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7072
      start: 6981
    functionDepth: 6
    functionLinenumber: 6981
    functionLinenumberEnd: 7072
    functionName: mpd_qrem_near
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_iszerocoeff
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_isinfinite
    - _mpd_cmp_abs
    - mpd_qcopy
    - mpd_coeff_isallnine
    - _mpd_qadd
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - abort
    - mpd_adjexp
    - mpd_qcheck_nans
    - mpd_isodd
    - _mpd_qsub
    - mpd_isnan
    - _mpd_qdivmod
    linkageType: ''
    returnType: void
    signature: "void mpd_qrem_near(mpd_t *r, const mpd_t *a, const mpd_t *b,\n              const
      mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7081,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7082,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7086,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7087,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7087,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7095,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7098,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7105,1
    - Dst: _mpd_apply_round_excess
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7110,1
    - Dst: mpd_issubnormal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7117,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - result
    - a
    - exp
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7120
      start: 7074
    functionDepth: 4
    functionLinenumber: 7074
    functionLinenumberEnd: 7120
    functionName: _mpd_qrescale
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_sign
    - mpd_seterror
    - mpd_qshiftl
    - mpd_issubnormal
    - _mpd_apply_round_excess
    - mpd_qshiftr
    - mpd_iszero
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void _mpd_qrescale(mpd_t *result, const mpd_t *a, mpd_ssize_t exp,\n
      \             const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7135,1
    - Dst: _mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - exp
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7140
      start: 7130
    functionDepth: 5
    functionLinenumber: 7130
    functionLinenumberEnd: 7140
    functionName: mpd_qrescale
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 4
    functionsReached:
    - mpd_seterror
    - _mpd_qrescale
    linkageType: ''
    returnType: void
    signature: "void mpd_qrescale(mpd_t *result, const mpd_t *a, mpd_ssize_t exp,\n
      \            const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7155,1
    - Dst: _mpd_qrescale
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - result
    - a
    - exp
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_ssize_t
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7160
      start: 7150
    functionDepth: 5
    functionLinenumber: 7150
    functionLinenumberEnd: 7160
    functionName: mpd_qrescale_fmt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_seterror
    - _mpd_qrescale
    linkageType: ''
    returnType: void
    signature: "void mpd_qrescale_fmt(mpd_t *result, const mpd_t *a, mpd_ssize_t exp,\n
      \                const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7170,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7171,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7174,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7178,1
    - Dst: mpd_iszerocoeff
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7181,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7182,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7182,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7186,1
    - Dst: _mpd_apply_round_excess
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - action
    - result
    - a
    - ctx
    - status
    argTypes:
    - int
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7201
      start: 7164
    functionDepth: 5
    functionLinenumber: 7164
    functionLinenumberEnd: 7201
    functionName: _mpd_qround_to_integral
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_sign
    - mpd_qcheck_nan
    - _mpd_apply_round_excess
    - mpd_qshiftr
    - mpd_iszerocoeff
    - mpd_qcopy
    linkageType: ''
    returnType: void
    signature: "void _mpd_qround_to_integral(int action, mpd_t *result, const mpd_t
      *a,\n                        const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qround_to_integral
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7208
      start: 7203
    functionDepth: 6
    functionLinenumber: 7203
    functionLinenumberEnd: 7208
    functionName: mpd_qround_to_intx
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_qround_to_integral
    linkageType: ''
    returnType: void
    signature: "void mpd_qround_to_intx(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n                   uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qround_to_integral
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7215
      start: 7210
    functionDepth: 6
    functionLinenumber: 7210
    functionLinenumberEnd: 7215
    functionName: mpd_qround_to_int
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 3
    functionsReached:
    - _mpd_qround_to_integral
    linkageType: ''
    returnType: void
    signature: "void mpd_qround_to_int(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n                  uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qround_to_integral
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7222
      start: 7217
    functionDepth: 6
    functionLinenumber: 7217
    functionLinenumberEnd: 7222
    functionName: mpd_qtrunc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qround_to_integral
    linkageType: ''
    returnType: void
    signature: "void mpd_qtrunc(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qround_to_integral
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7232
      start: 7224
    functionDepth: 6
    functionLinenumber: 7224
    functionLinenumberEnd: 7232
    functionName: mpd_qfloor
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qround_to_integral
    linkageType: ''
    returnType: void
    signature: "void mpd_qfloor(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qround_to_integral
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7242
      start: 7234
    functionDepth: 6
    functionLinenumber: 7234
    functionLinenumberEnd: 7242
    functionName: mpd_qceil
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - _mpd_qround_to_integral
    linkageType: ''
    returnType: void
    signature: "void mpd_qceil(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n          uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7247,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7247,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7248,1
    - Dst: mpd_isnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7248,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7249,1
    - Dst: mpd_isinfinite
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mpd_t*
    - mpd_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7253
      start: 7244
    functionDepth: 1
    functionLinenumber: 7244
    functionLinenumberEnd: 7253
    functionName: mpd_same_quantum
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - mpd_isinfinite
    - mpd_isspecial
    - mpd_isnan
    linkageType: ''
    returnType: int
    signature: int mpd_same_quantum(const mpd_t *a, const mpd_t *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - klist
    - maxprec
    - initprec
    argTypes:
    - mpd_ssize_t[]
    - mpd_ssize_t
    - mpd_ssize_t
    assertStmts:
    - condition: (maxprec > 0 && initprec > 0)
      pos:
        line_end: 7262
        line_start: 7262
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7273
      start: 7256
    functionDepth: 1
    functionLinenumber: 7256
    functionLinenumberEnd: 7273
    functionName: recpr_schedule_prec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int recpr_schedule_prec(mpd_ssize_t klist[MPD_MAX_PREC_LOG2],\n                    mpd_ssize_t
      maxprec, mpd_ssize_t initprec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7290,1
    - Dst: _mpd_get_msdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7292,1
    - Dst: mpd_word_digits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7293,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7296,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7297,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7299,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - z
    - v
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts:
    - condition: (v->exp == -v->digits)
      pos:
        line_end: 7289
        line_start: 7289
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7303
      start: 7283
    functionDepth: 3
    functionLinenumber: 7283
    functionLinenumberEnd: 7303
    functionName: _mpd_qreciprocal_approx
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qresize
    - _mpd_shortdiv
    - mpd_setdigits
    - mpd_word_digits
    - mpd_clear_flags
    - _mpd_get_msdigits
    - assert
    linkageType: ''
    returnType: void
    signature: void _mpd_qreciprocal_approx(mpd_t *z, const mpd_t *v, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_SHARED
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7318,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7319,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7320,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7321,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7324,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7327,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7330,1
    - Dst: _mpd_qreciprocal_approx
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7335,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7337,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7338,1
    - Dst: recpr_schedule_prec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7348,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7352,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7356,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7359,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7363,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7366,1
    - Dst: _mpd_qsub_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7370,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7373,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7375,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7378,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7379,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (result != a)
      pos:
        line_end: 7326
        line_start: 7326
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7381
      start: 7311
    functionDepth: 9
    functionLinenumber: 7311
    functionLinenumberEnd: 7381
    functionName: _mpd_qreciprocal
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - recpr_schedule_prec
    - MPD_NEW_CONST
    - mpd_maxcontext
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - _mpd_qsub_exact
    - mpd_clear_flags
    - mpd_set_flags
    - MPD_NEW_STATIC
    - mpd_del
    - _mpd_qmul_exact
    - _mpd_qreciprocal_approx
    - mpd_qshiftr
    - assert
    - MPD_NEW_SHARED
    - mpd_qmul
    linkageType: ''
    returnType: void
    signature: "void _mpd_qreciprocal(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n                 uint32_t *status)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7407,1
    - Dst: _mpd_copy_shared
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7408,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7410,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7411,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7416,1
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7422,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7428,1
    - Dst: _mpd_qreciprocal
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7442,1
    - Dst: _mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7448,1
    - Dst: mpd_qtrunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7452,1
    - Dst: _mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7460,1
    - Dst: _mpd_qsub_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7462,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7467,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7467,1
    - Dst: mpd_err_warn
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7472,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7478,1
    - Dst: _mpd_qadd_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7479,1
    - Dst: _mpd_qadd_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7480,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7483,1
    - Dst: _mpd_qsub_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7488,1
    - Dst: _mpd_qadd_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7489,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7494,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7497,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7500,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7503,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7511,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7512,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7513,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7514,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 5
    argNames:
    - q
    - r
    - a
    - b
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7515
      start: 7398
    functionDepth: 10
    functionLinenumber: 7398
    functionLinenumberEnd: 7515
    functionName: _mpd_base_ndivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 2
    functionsReached:
    - _mpd_cmp
    - mpd_maxcontext
    - mpd_qtrunc
    - mpd_isspecial
    - mpd_qnew
    - mpd_set_positive
    - _mpd_qsub_exact
    - mpd_err_warn
    - _mpd_qmul
    - mpd_del
    - _mpd_copy_shared
    - _mpd_qadd_exact
    - mpd_qcopy
    - mpd_setspecial
    - _mpd_qreciprocal
    linkageType: ''
    returnType: void
    signature: "void _mpd_base_ndivmod(mpd_t *q, mpd_t *r, const mpd_t *a, const mpd_t
      *b,\n                  uint32_t *status)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - klist
    - maxprec
    - initprec
    argTypes:
    - mpd_ssize_t[]
    - mpd_ssize_t
    - mpd_ssize_t
    assertStmts:
    - condition: (maxprec >= 3 && initprec >= 3)
      pos:
        line_end: 7536
        line_start: 7536
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7547
      start: 7530
    functionDepth: 1
    functionLinenumber: 7530
    functionLinenumberEnd: 7547
    functionName: invroot_schedule_prec
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int invroot_schedule_prec(mpd_ssize_t klist[MPD_MAX_PREC_LOG2],\n
      \                     mpd_ssize_t maxprec, mpd_ssize_t initprec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7564,1
    - Dst: mpd_minalloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7593,1
    - Dst: mpd_clear_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7594,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - z
    - vhat
    argTypes:
    - mpd_t*
    - mpd_uint_t
    assertStmts:
    - condition: (lo*lo <= vhat && vhat < (hi+1)*(hi+1))
      pos:
        line_end: 7563
        line_start: 7563
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7599
      start: 7557
    functionDepth: 3
    functionLinenumber: 7557
    functionLinenumberEnd: 7599
    functionName: _invroot_init_approx
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_clear_flags
    - assert
    - mpd_setdigits
    - mpd_minalloc
    linkageType: ''
    returnType: void
    signature: void _invroot_init_approx(mpd_t *z, mpd_uint_t vhat)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_SHARED
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7613,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7614,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7615,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7616,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7617,1
    - Dst: mpd_qncopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7630,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7631,1
    - Dst: _mpd_get_msdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7642,1
    - Dst: _mpd_get_msdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7652,1
    - Dst: _invroot_init_approx
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7660,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7662,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7663,1
    - Dst: invroot_schedule_prec
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7668,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7671,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7674,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7676,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7679,1
    - Dst: mpd_qsub
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7681,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7682,1
    - Dst: mpd_qmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7683,1
    - Dst: mpd_trail_zeros
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7688,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7692,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7697,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7698,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7699,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7702
      start: 7605
    functionDepth: 8
    functionLinenumber: 7605
    functionLinenumberEnd: 7702
    functionName: _mpd_qinvroot
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_qshiftr_inplace
    - MPD_NEW_CONST
    - mpd_maxcontext
    - invroot_schedule_prec
    - mpd_seterror
    - mpd_qncopy
    - mpd_qsub
    - MPD_NEW_STATIC
    - mpd_del
    - _mpd_get_msdigits
    - mpd_qshiftr
    - MPD_NEW_SHARED
    - mpd_qmul
    - mpd_trail_zeros
    - _invroot_init_approx
    linkageType: ''
    returnType: void
    signature: "void _mpd_qinvroot(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n              uint32_t *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7710,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7711,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7714,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7715,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7719,1
    - Dst: mpd_etiny
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7719,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7723,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7724,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7724,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7728,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7729,1
    - Dst: _mpd_qinvroot
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7736,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7738
      start: 7704
    functionDepth: 9
    functionLinenumber: 7704
    functionLinenumberEnd: 7738
    functionName: mpd_qinvroot
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _settriple
    - mpd_isspecial
    - mpd_sign
    - mpd_qfinalize
    - mpd_isnegative
    - mpd_seterror
    - mpd_qcheck_nan
    - mpd_etiny
    - _mpd_qinvroot
    - mpd_iszero
    - mpd_setspecial
    linkageType: ''
    returnType: void
    signature: "void mpd_qinvroot(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n             uint32_t *status)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7747,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7748,1
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7749,1
    - Dst: MPD_NEW_CONST
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7750,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7758,1
    - Dst: mpd_qcheck_nan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7759,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7762,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7763,1
    - Dst: mpd_setspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7766,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7769,1
    - Dst: _settriple
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7770,1
    - Dst: mpd_sign
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7770,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7771,1
    - Dst: mpd_isnegative
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7774,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7775,1
    - Dst: mpd_maxcontext
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7779,1
    - Dst: mpd_qcopy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7782,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7788,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7799,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7805,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7811,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7816,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7817,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7817,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7818,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7821,1
    - Dst: _mpd_qadd_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7824,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7825,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7826,1
    - Dst: _mpd_qdivmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7829,1
    - Dst: _mpd_qmul_exact
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7833,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7834,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7835,1
    - Dst: _mpd_cmp
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7838,1
    - Dst: mpd_qshiftr_inplace
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7843,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7846,1
    - Dst: mpd_lsd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7853,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7863,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7864,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7865,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7868,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7872,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7874
      start: 7742
    functionDepth: 9
    functionLinenumber: 7742
    functionLinenumberEnd: 7874
    functionName: _mpd_qsqrt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - MPD_NEW_CONST
    - mpd_isspecial
    - mpd_maxcontext
    - mpd_qcheck_nan
    - mpd_iszero
    - mpd_isnegative
    - MPD_NEW_STATIC
    - mpd_del
    - _mpd_qadd_exact
    - mpd_qcopy
    - mpd_setspecial
    - _mpd_cmp
    - mpd_qshiftr_inplace
    - mpd_sign
    - mpd_qfinalize
    - mpd_seterror
    - _settriple
    - mpd_qshiftl
    - _mpd_qmul_exact
    - _mpd_qdivmod
    - mpd_lsd
    linkageType: ''
    returnType: void
    signature: "void _mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n           uint32_t *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_qsqrt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7880,1
    - Dst: _mpd_qsqrt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7900,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - result
    - a
    - ctx
    - status
    argTypes:
    - mpd_t*
    - mpd_t*
    - mpd_context_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7908
      start: 7876
    functionDepth: 10
    functionLinenumber: 7876
    functionLinenumberEnd: 7908
    functionName: mpd_qsqrt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_seterror
    - _mpd_qsqrt
    linkageType: ''
    returnType: void
    signature: "void mpd_qsqrt(mpd_t *result, const mpd_t *a, const mpd_context_t
      *ctx,\n          uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7922,1
    - Dst: mpd_isinteger
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7922,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7923,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7925,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7930,1
    - Dst: log10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - a
    - base
    argTypes:
    - mpd_t*
    - uint32_t
    assertStmts:
    - condition: (mpd_isinteger(a))
      pos:
        line_end: 7921
        line_start: 7921
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (digits > 0)
      pos:
        line_end: 7929
        line_start: 7929
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (base >= 2)
      pos:
        line_end: 7922
        line_start: 7922
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7941
      start: 7916
    functionDepth: 5
    functionLinenumber: 7916
    functionLinenumberEnd: 7941
    functionName: mpd_sizeinbase
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_iszero
    - assert
    - mpd_isinteger
    - log10
    linkageType: ''
    returnType: size_t
    signature: size_t mpd_sizeinbase(const mpd_t *a, uint32_t base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7949,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7950,1
    - Dst: log10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - srclen
    - base
    argTypes:
    - size_t
    - uint32_t
    assertStmts:
    - condition: (srclen > 0)
      pos:
        line_end: 7948
        line_start: 7948
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (base >= 2)
      pos:
        line_end: 7949
        line_start: 7949
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 7960
      start: 7944
    functionDepth: 1
    functionLinenumber: 7944
    functionLinenumberEnd: 7960
    functionName: _mpd_importsize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - log10
    - assert
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t _mpd_importsize(size_t srclen, uint32_t base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_realloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - nmemb
    argTypes:
    - uint16_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7968
      start: 7962
    functionDepth: 1
    functionLinenumber: 7962
    functionLinenumberEnd: 7968
    functionName: mpd_resize_u16
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mpd_resize_u16(uint16_t **w, size_t nmemb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_realloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - nmemb
    argTypes:
    - uint32_t**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7976
      start: 7970
    functionDepth: 1
    functionLinenumber: 7970
    functionLinenumberEnd: 7976
    functionName: mpd_resize_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - mpd_realloc
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mpd_resize_u32(uint32_t **w, size_t nmemb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7984,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7985,1
    - Dst: mpd_resize_u16
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7989,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7994,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:7996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - w
    - wlen
    - wbase
    - u
    - ulen
    argTypes:
    - uint16_t**
    - size_t
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_ssize_t
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 7983
        line_start: 7983
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase <= (1U<<16))
      pos:
        line_end: 7984
        line_start: 7984
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8001
      start: 7978
    functionDepth: 2
    functionLinenumber: 7978
    functionLinenumberEnd: 8001
    functionName: _baseconv_to_u16
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - _mpd_real_size
    - mpd_resize_u16
    - _mpd_shortdiv
    linkageType: ''
    returnType: size_t
    signature: "size_t _baseconv_to_u16(uint16_t **w, size_t wlen, mpd_uint_t wbase,\n
      \                mpd_uint_t *u, mpd_ssize_t ulen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8011,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8012,1
    - Dst: _mpd_shortmul_c
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8016,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8019,1
    - Dst: _mpd_shortadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8026,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8029,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - w
    - wlen
    - u
    - ulen
    - ubase
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_uint_t*
    - size_t
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8010
        line_start: 8010
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ubase <= (1U<<16))
      pos:
        line_end: 8011
        line_start: 8011
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8039
      start: 8003
    functionDepth: 2
    functionLinenumber: 8003
    functionLinenumberEnd: 8039
    functionName: _coeff_from_u16
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - mpd_qresize
    - _mpd_shortmul_c
    - _mpd_shortadd
    linkageType: ''
    returnType: size_t
    signature: "size_t _coeff_from_u16(mpd_t *w, mpd_ssize_t wlen,\n                const
      mpd_uint_t *u, size_t ulen, uint32_t ubase,\n                uint32_t *status)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8048,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8049,1
    - Dst: mpd_resize_u32
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8053,1
    - Dst: _mpd_shortdiv_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8058,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8060,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - w
    - wlen
    - wbase
    - u
    - ulen
    - ubase
    argTypes:
    - uint32_t**
    - size_t
    - uint32_t
    - mpd_uint_t*
    - mpd_ssize_t
    - mpd_uint_t
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8047
        line_start: 8047
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase < ubase)
      pos:
        line_end: 8048
        line_start: 8048
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8065
      start: 8042
    functionDepth: 2
    functionLinenumber: 8042
    functionLinenumberEnd: 8065
    functionName: _baseconv_to_smaller
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - _mpd_real_size
    - _mpd_shortdiv_b
    - mpd_resize_u32
    linkageType: ''
    returnType: size_t
    signature: "size_t _baseconv_to_smaller(uint32_t **w, size_t wlen, uint32_t wbase,\n
      \                    mpd_uint_t *u, mpd_ssize_t ulen, mpd_uint_t ubase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_resize_u32
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8074,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - w
    - wlen
    - u
    - ulen
    argTypes:
    - uint32_t**
    - size_t
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8081
      start: 8069
    functionDepth: 2
    functionLinenumber: 8069
    functionLinenumberEnd: 8081
    functionName: _copy_equal_base
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - memcpy
    - mpd_resize_u32
    linkageType: ''
    returnType: size_t
    signature: "size_t _copy_equal_base(uint32_t **w, size_t wlen,\n                 const
      uint32_t *u, size_t ulen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8091,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8092,1
    - Dst: _mpd_shortmul_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8096,1
    - Dst: mpd_resize_u32
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8099,1
    - Dst: _mpd_shortadd_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8106,1
    - Dst: mpd_resize_u32
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - w
    - wlen
    - wbase
    - u
    - ulen
    - ubase
    argTypes:
    - uint32_t**
    - size_t
    - mpd_uint_t
    - mpd_uint_t*
    - size_t
    - mpd_uint_t
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8090
        line_start: 8090
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (ubase < wbase)
      pos:
        line_end: 8091
        line_start: 8091
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8119
      start: 8084
    functionDepth: 2
    functionLinenumber: 8084
    functionLinenumberEnd: 8119
    functionName: _baseconv_to_larger
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - _mpd_shortadd_b
    - _mpd_shortmul_b
    - mpd_resize_u32
    linkageType: ''
    returnType: size_t
    signature: "size_t _baseconv_to_larger(uint32_t **w, size_t wlen, mpd_uint_t wbase,\n
      \                   const mpd_uint_t *u, size_t ulen, mpd_uint_t ubase)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8129,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8130,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8134,1
    - Dst: _mpd_shortdiv_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8139,1
    - Dst: _mpd_real_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 7
    argNames:
    - w
    - wlen
    - wbase
    - u
    - ulen
    - ubase
    - status
    argTypes:
    - mpd_t*
    - size_t
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_ssize_t
    - mpd_uint_t
    - uint32_t*
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8128
        line_start: 8128
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase < ubase)
      pos:
        line_end: 8129
        line_start: 8129
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8146
      start: 8122
    functionDepth: 2
    functionLinenumber: 8122
    functionLinenumberEnd: 8146
    functionName: _coeff_from_larger_base
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - mpd_qresize
    - _mpd_real_size
    - _mpd_shortdiv_b
    linkageType: ''
    returnType: size_t
    signature: "size_t _coeff_from_larger_base(mpd_t *w, size_t wlen, mpd_uint_t wbase,\n
      \                       mpd_uint_t *u, mpd_ssize_t ulen, mpd_uint_t ubase,\n
      \                       uint32_t *status)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8158,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8159,1
    - Dst: _mpd_shortmul_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8163,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8166,1
    - Dst: _mpd_shortadd_b
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8173,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 7
    argNames:
    - w
    - wlen
    - wbase
    - u
    - ulen
    - ubase
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - mpd_uint_t
    - uint32_t*
    - size_t
    - mpd_uint_t
    - uint32_t*
    assertStmts:
    - condition: (wlen > 0 && ulen > 0)
      pos:
        line_end: 8157
        line_start: 8157
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (wbase > ubase)
      pos:
        line_end: 8158
        line_start: 8158
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8186
      start: 8150
    functionDepth: 2
    functionLinenumber: 8150
    functionLinenumberEnd: 8186
    functionName: _coeff_from_smaller_base
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 0
    functionsReached:
    - assert
    - mpd_qresize
    - _mpd_shortadd_b
    - _mpd_shortmul_b
    linkageType: ''
    returnType: size_t
    signature: "size_t _coeff_from_smaller_base(mpd_t *w, mpd_ssize_t wlen, mpd_uint_t
      wbase,\n                         const uint32_t *u, size_t ulen, mpd_uint_t
      ubase,\n                         uint32_t *status)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8207,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8211,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8213,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8213,1
    - Dst: mpd_sizeinbase
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8219,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8224,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8231,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8237,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8242,1
    - Dst: _baseconv_to_u16
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8247,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8254,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8259,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 5
    argNames:
    - rdata
    - rlen
    - rbase
    - src
    - status
    argTypes:
    - uint16_t**
    - size_t
    - uint32_t
    - mpd_t*
    - uint32_t*
    assertStmts:
    - condition: (rbase <= (1U<<16))
      pos:
        line_end: 8210
        line_start: 8210
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8265
      start: 8203
    functionDepth: 6
    functionLinenumber: 8203
    functionLinenumberEnd: 8265
    functionName: mpd_qexport_u16
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - mpd_isspecial
    - mpd_sizeinbase
    - mpd_free
    - mpd_qshiftl
    - _baseconv_to_u16
    - _mpd_isint
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qshiftr
    - mpd_iszero
    - assert
    - mpd_alloc
    linkageType: ''
    returnType: size_t
    signature: "size_t mpd_qexport_u16(uint16_t **rdata, size_t rlen, uint32_t rbase,\n
      \               const mpd_t *src, uint32_t *status)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MPD_NEW_STATIC
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8286,1
    - Dst: mpd_isspecial
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8290,1
    - Dst: _mpd_isint
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8290,1
    - Dst: mpd_sizeinbase
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8296,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8301,1
    - Dst: mpd_iszero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8308,1
    - Dst: mpd_qshiftl
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8314,1
    - Dst: mpd_qshiftr
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8319,1
    - Dst: _baseconv_to_smaller
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8325,1
    - Dst: _copy_equal_base
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8329,1
    - Dst: _baseconv_to_smaller
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8332,1
    - Dst: _baseconv_to_larger
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8336,1
    - Dst: mpd_del
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8347,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8352,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 5
    argNames:
    - rdata
    - rlen
    - rbase
    - src
    - status
    argTypes:
    - uint32_t**
    - size_t
    - uint32_t
    - mpd_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8358
      start: 8282
    functionDepth: 6
    functionLinenumber: 8282
    functionLinenumberEnd: 8358
    functionName: mpd_qexport_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _copy_equal_base
    - mpd_isspecial
    - mpd_sizeinbase
    - _baseconv_to_smaller
    - _baseconv_to_larger
    - mpd_qshiftl
    - mpd_free
    - _mpd_isint
    - MPD_NEW_STATIC
    - mpd_del
    - mpd_qshiftr
    - mpd_iszero
    - mpd_alloc
    linkageType: ''
    returnType: size_t
    signature: "size_t mpd_qexport_u32(uint32_t **rdata, size_t rlen, uint32_t rbase,\n
      \               const mpd_t *src, uint32_t *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8375,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8376,1
    - Dst: _mpd_importsize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8378,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8380,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8384,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8386,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8393,1
    - Dst: _coeff_from_u16
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8397,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8402,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8405,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8407,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8408,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 7
    argNames:
    - result
    - srcdata
    - srclen
    - srcsign
    - srcbase
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint16_t*
    - size_t
    - uint8_t
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (srclen > 0)
      pos:
        line_end: 8374
        line_start: 8374
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    - condition: (srcbase <= (1U<<16))
      pos:
        line_end: 8375
        line_start: 8375
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8413
      start: 8365
    functionDepth: 6
    functionLinenumber: 8365
    functionLinenumberEnd: 8413
    functionName: mpd_qimport_u16
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_importsize
    - mpd_qfinalize
    - mpd_seterror
    - mpd_free
    - mpd_qresize
    - mpd_setdigits
    - mpd_set_flags
    - assert
    - mpd_alloc
    - _coeff_from_u16
    linkageType: ''
    returnType: void
    signature: "void mpd_qimport_u16(mpd_t *result,\n                const uint16_t
      *srcdata, size_t srclen,\n                uint8_t srcsign, uint32_t srcbase,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8428,1
    - Dst: _mpd_importsize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8430,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8432,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8436,1
    - Dst: _coeff_from_smaller_base
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8441,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8446,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8449,1
    - Dst: _coeff_from_smaller_base
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8453,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8458,1
    - Dst: mpd_seterror
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8460,1
    - Dst: _coeff_from_larger_base
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8467,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8470,1
    - Dst: mpd_set_flags
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8478,1
    - Dst: mpd_setdigits
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8481,1
    - Dst: mpd_qresize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8483,1
    - Dst: mpd_qfinalize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c:8484,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 7
    argNames:
    - result
    - srcdata
    - srclen
    - srcsign
    - srcbase
    - ctx
    - status
    argTypes:
    - mpd_t*
    - uint32_t*
    - size_t
    - uint8_t
    - uint32_t
    - mpd_context_t*
    - uint32_t*
    assertStmts:
    - condition: (srclen > 0)
      pos:
        line_end: 8427
        line_start: 8427
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    constantsTouched: []
    func_position:
      end: 8485
      start: 8419
    functionDepth: 6
    functionLinenumber: 8419
    functionLinenumberEnd: 8485
    functionName: mpd_qimport_u32
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
    functionUses: 1
    functionsReached:
    - _mpd_importsize
    - memcpy
    - mpd_qfinalize
    - mpd_seterror
    - mpd_free
    - mpd_qresize
    - _coeff_from_smaller_base
    - mpd_setdigits
    - _coeff_from_larger_base
    - mpd_set_flags
    - assert
    - mpd_alloc
    linkageType: ''
    returnType: void
    signature: "void mpd_qimport_u32(mpd_t *result,\n                const uint32_t
      *srcdata, size_t srclen,\n                uint8_t srcsign, uint32_t srcbase,\n
      \               const mpd_context_t *ctx, uint32_t *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: addmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t addmod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: submod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t submod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: ext_submod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t ext_submod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:106,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hi
    - lo
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: dw_reduce
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - _mpd_div_words
    - _mpd_div_word
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t dw_reduce(mpd_uint_t hi, mpd_uint_t lo, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dw_reduce
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - a
    - hi
    - lo
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: dw_submod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 1
    functionsReached:
    - dw_reduce
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t dw_submod(mpd_uint_t a, mpd_uint_t hi, mpd_uint_t lo, mpd_uint_t
      m)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:156,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 258
    functionName: x64_mulmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - _mpd_mul_words
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t x64_mulmod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:263,1
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - w
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: x64_mulmod2c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - x64_mulmod
    linkageType: ''
    returnType: void
    signature: void x64_mulmod2c(mpd_uint_t *a, mpd_uint_t *b, mpd_uint_t w, mpd_uint_t
      m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:271,1
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - a0
    - b0
    - a1
    - b1
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: x64_mulmod2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - x64_mulmod
    linkageType: ''
    returnType: void
    signature: "void x64_mulmod2(mpd_uint_t *a0, mpd_uint_t b0, mpd_uint_t *a1, mpd_uint_t
      b1,\n            mpd_uint_t m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:282,1
    - Dst: x64_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - exp
    - umod
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 288
    functionName: x64_powmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - x64_mulmod
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t x64_powmod(mpd_uint_t base, mpd_uint_t exp, mpd_uint_t umod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: std_mulmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t std_mulmod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - w
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: std_mulmod2c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_mulmod2c(mpd_uint_t *a, mpd_uint_t *b, mpd_uint_t w, mpd_uint_t
      m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - a0
    - b0
    - a1
    - b1
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: std_mulmod2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void std_mulmod2(mpd_uint_t *a0, mpd_uint_t b0, mpd_uint_t *a1, mpd_uint_t
      b1,\n            mpd_uint_t m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:328,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - m
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: std_mulmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - _mpd_mul_words
    - _mpd_div_words
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t std_mulmod(mpd_uint_t a, mpd_uint_t b, mpd_uint_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:336,1
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - w
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: std_mulmod2c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - std_mulmod
    linkageType: ''
    returnType: void
    signature: void std_mulmod2c(mpd_uint_t *a, mpd_uint_t *b, mpd_uint_t w, mpd_uint_t
      m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:344,1
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - a0
    - b0
    - a1
    - b1
    - m
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: std_mulmod2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - std_mulmod
    linkageType: ''
    returnType: void
    signature: "void std_mulmod2(mpd_uint_t *a0, mpd_uint_t b0, mpd_uint_t *a1, mpd_uint_t
      b1,\n            mpd_uint_t m)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:357,1
    - Dst: std_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - base
    - exp
    - umod
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: std_powmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - std_mulmod
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t std_powmod(mpd_uint_t base, mpd_uint_t exp, mpd_uint_t umod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 424
    functionName: ppro_mulmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t ppro_mulmod(mpd_uint_t a, mpd_uint_t b, double *dmod, uint32_t
      *dinvmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a0
    - a1
    - w
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 463
    functionName: ppro_mulmod2c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ppro_mulmod2c(mpd_uint_t *a0, mpd_uint_t *a1, mpd_uint_t w,\n
      \             double *dmod, uint32_t *dinvmod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a0
    - b0
    - a1
    - b1
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 510
    functionName: ppro_mulmod2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ppro_mulmod2(mpd_uint_t *a0, mpd_uint_t b0, mpd_uint_t *a1, mpd_uint_t
      b1,\n             double *dmod, uint32_t *dinvmod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a0
    - a1
    - w
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 577
    functionName: ppro_mulmod2c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t ppro_mulmod2c(mpd_uint_t *a0, mpd_uint_t *a1, mpd_uint_t
      w,\n              double *dmod, uint32_t *dinvmod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - a0
    - b0
    - a1
    - b1
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t*
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 624
    functionName: ppro_mulmod2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ppro_mulmod2(mpd_uint_t *a0, mpd_uint_t b0, mpd_uint_t *a1, mpd_uint_t
      b1,\n             double *dmod, uint32_t *dinvmod)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:636,1
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h:637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - base
    - exp
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t
    - mpd_uint_t
    - double*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 642
    functionName: ppro_powmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
    functionUses: 0
    functionsReached:
    - ppro_mulmod
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t ppro_powmod(mpd_uint_t base, mpd_uint_t exp, double *dmod,
      uint32_t *dinvmod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:48,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:48,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:49,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:50,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:52,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:55,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (ispower2(n))
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    - condition: (n >= 4)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    constantsTouched: []
    func_position:
      end: 59
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 59
    functionName: std_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    functionUses: 0
    functionsReached:
    - ispower2
    - mpd_free
    - fnt_dif2
    - _mpd_init_fnt_params
    - assert
    linkageType: ''
    returnType: int
    signature: int std_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:67,1
    - Dst: ispower2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:67,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:68,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:69,1
    - Dst: _mpd_init_fnt_params
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:71,1
    - Dst: fnt_dif2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:74,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (ispower2(n))
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    - condition: (n >= 4)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: std_inv_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
    functionUses: 0
    functionsReached:
    - ispower2
    - mpd_free
    - fnt_dif2
    - _mpd_init_fnt_params
    - assert
    linkageType: ''
    returnType: int
    signature: int std_inv_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - modnum
    - umod
    - dmod
    - dinvmod
    argTypes:
    - int
    - mpd_uint_t*
    - double*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: ppro_setmodulus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ppro_setmodulus(int modnum, mpd_uint_t *umod, double *dmod, uint32_t
      dinvmod[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - modnum
    - umod
    argTypes:
    - int
    - mpd_uint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: std_setmodulus
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void std_setmodulus(int modnum, mpd_uint_t *umod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - w
    - u
    - v
    - m
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (n > 0 && m >= n)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 78
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 78
    functionName: _mpd_baseadd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t _mpd_baseadd(mpd_uint_t *w, const mpd_uint_t *u, const
      mpd_uint_t *v,\n             mpd_size_t m, mpd_size_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - w
    - u
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 105
    functionName: _mpd_baseaddto
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_baseaddto(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - w
    - m
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    assertStmts:
    - condition: (m > 0)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 133
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 133
    functionName: _mpd_shortadd
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_shortadd(mpd_uint_t *w, mpd_size_t m, mpd_uint_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - u
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: _mpd_baseincr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_baseincr(mpd_uint_t *u, mpd_size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - w
    - u
    - v
    - m
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (m > 0 && n > 0)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: _mpd_basesub
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void _mpd_basesub(mpd_uint_t *w, const mpd_uint_t *u, const mpd_uint_t
      *v,\n             mpd_size_t m, mpd_size_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - w
    - u
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 213
    functionName: _mpd_basesubfrom
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _mpd_basesubfrom(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:223,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:227,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - w
    - u
    - n
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: _mpd_shortmul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words_r
    linkageType: ''
    returnType: void
    signature: void _mpd_shortmul(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t n,
      mpd_uint_t v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:249,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:255,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - w
    - u
    - v
    - m
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (m > 0 && n > 0)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: _mpd_basemul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 3
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words_r
    linkageType: ''
    returnType: void
    signature: "void _mpd_basemul(mpd_uint_t *w, const mpd_uint_t *u, const mpd_uint_t
      *v,\n             mpd_size_t m, mpd_size_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:278,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:282,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - w
    - u
    - n
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 290
    functionName: _mpd_shortdiv
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 4
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_shortdiv(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n, mpd_uint_t v)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:317,1
    - Dst: sub_size_t
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:318,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:324,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:329,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:330,1
    - Dst: _mpd_shortmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:335,1
    - Dst: _mpd_shortmul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:336,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:342,1
    - Dst: _mpd_singlemul
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:347,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:364,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:369,1
    - Dst: _mpd_baseadd
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:381,1
    - Dst: _mpd_shortdiv
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:387,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:392,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:396,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:397,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 6
    argNames:
    - q
    - r
    - uconst
    - vconst
    - nplusm
    - n
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (n > 1 && nplusm >= n)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 399
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 399
    functionName: _mpd_basedivmod
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_baseadd
    - _mpd_div_words_r
    - _mpd_isallzero
    - _mpd_shortmul
    - mpd_free
    - sub_size_t
    - _mpd_shortdiv
    - _mpd_singlemul
    - _mpd_mul_words
    - assert
    - mpd_alloc
    linkageType: ''
    returnType: int
    signature: "int _mpd_basedivmod(mpd_uint_t *q, mpd_uint_t *r,\n                const
      mpd_uint_t *uconst, const mpd_uint_t *vconst,\n                mpd_size_t nplusm,
      mpd_size_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:438,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:440,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:447,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:453,1
    - Dst: mpd_uint_zero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:466,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - dest
    - src
    - n
    - m
    - shift
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (m > 0 && n >= m)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 467
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 467
    functionName: _mpd_baseshiftl
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - mpd_uint_zero
    - assert
    - _mpd_divmod_pow10
    - _mpd_div_word
    linkageType: ''
    returnType: void
    signature: "void _mpd_baseshiftl(mpd_uint_t *dest, mpd_uint_t *src, mpd_size_t
      n, mpd_size_t m,\n                mpd_size_t shift)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:509,1
    - Dst: _mpd_div_word
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:511,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:518,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:519,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:522,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:526,1
    - Dst: _mpd_divmod_pow10
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:537,1
    - Dst: _mpd_isallzero
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:539,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - dest
    - src
    - slen
    - shift
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_size_t
    assertStmts:
    - condition: (slen > 0)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 550
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 550
    functionName: _mpd_baseshiftr
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 3
    functionsReached:
    - assert
    - _mpd_isallzero
    - _mpd_divmod_pow10
    - _mpd_div_word
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t _mpd_baseshiftr(mpd_uint_t *dest, mpd_uint_t *src, mpd_size_t
      slen,\n                mpd_size_t shift)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - w
    - m
    - v
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (m > 0)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 583
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 583
    functionName: _mpd_shortadd_b
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_shortadd_b(mpd_uint_t *w, mpd_size_t m, mpd_uint_t
      v, mpd_uint_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:593,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:597,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - w
    - u
    - n
    - v
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 605
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 605
    functionName: _mpd_shortmul_c
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 1
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words_r
    linkageType: ''
    returnType: mpd_uint_t
    signature: mpd_uint_t _mpd_shortmul_c(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n, mpd_uint_t v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:616,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:620,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - w
    - u
    - n
    - v
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 628
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 628
    functionName: _mpd_shortmul_b
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t _mpd_shortmul_b(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n,\n                mpd_uint_t v, mpd_uint_t b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:642,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:646,1
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - w
    - u
    - n
    - v
    - b
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_size_t
    - mpd_uint_t
    - mpd_uint_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 641
        line_start: 641
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: _mpd_shortdiv_b
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
    functionUses: 2
    functionsReached:
    - _mpd_mul_words
    - assert
    - _mpd_div_words
    linkageType: ''
    returnType: mpd_uint_t
    signature: "mpd_uint_t _mpd_shortdiv_b(mpd_uint_t *w, const mpd_uint_t *u, mpd_size_t
      n,\n                mpd_uint_t v, mpd_uint_t b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:67,1
    - Dst: mpd_mallocfunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:73,1
    - Dst: memset
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 81
    functionName: mpd_callocfunc_em
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 0
    functionsReached:
    - mpd_mallocfunc
    - mul_size_t_overflow
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      mpd_callocfunc_em(size_t nmemb, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:90,1
    - Dst: mpd_mallocfunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: mpd_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 7
    functionsReached:
    - mpd_mallocfunc
    - mul_size_t_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      mpd_alloc(mpd_size_t nmemb, mpd_size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:104,1
    - Dst: mpd_callocfunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 110
    functionName: mpd_calloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 5
    functionsReached:
    - mpd_callocfunc
    - mul_size_t_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      mpd_calloc(mpd_size_t nmemb, mpd_size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:119,1
    - Dst: mpd_reallocfunc::mpd_reallocfunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - nmemb
    - size
    - err
    argTypes:
    - void*
    - mpd_size_t
    - mpd_size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: mpd_realloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 4
    functionsReached:
    - mpd_reallocfunc::mpd_reallocfunc
    - mul_size_t_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      mpd_realloc(void *ptr, mpd_size_t nmemb, mpd_size_t size, uint8_t *err)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mul_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:140,1
    - Dst: add_size_t_overflow
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:145,1
    - Dst: mpd_mallocfunc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - struct_size
    - nmemb
    - size
    argTypes:
    - mpd_size_t
    - mpd_size_t
    - mpd_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: mpd_sh_alloc
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 1
    functionsReached:
    - mpd_mallocfunc
    - add_size_t_overflow
    - mul_size_t_overflow
    linkageType: ''
    returnType: void
    signature: 'void *

      mpd_sh_alloc(mpd_size_t struct_size, mpd_size_t nmemb, mpd_size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:163,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:168,1
    - Dst: mpd_free
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - nwords
    argTypes:
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: mpd_qnew_size
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 1
    functionsReached:
    - mpd_free
    - mpd_alloc
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_qnew_size(mpd_ssize_t nwords)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew_size
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: mpd_qnew
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 4
    functionsReached:
    - mpd_qnew_size
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_qnew(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_qnew
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:198,1
    - Dst: mpd_addstatus_raise
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - mpd_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 203
    functionName: mpd_new
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 0
    functionsReached:
    - mpd_addstatus_raise
    - mpd_qnew
    linkageType: ''
    returnType: mpd_t
    signature: 'mpd_t *

      mpd_new(mpd_context_t *ctx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:218,1
    - Dst: mpd_alloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:220,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:223,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:224,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:230,1
    - Dst: mpd_set_dynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - result
    - nwords
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts:
    - condition: (nwords >= result->alloc)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    constantsTouched: []
    func_position:
      end: 234
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 234
    functionName: mpd_switch_to_dyn
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 1
    functionsReached:
    - memcpy
    - mpd_set_positive
    - mpd_set_qnan
    - mpd_set_dynamic_data
    - assert
    - mpd_alloc
    linkageType: ''
    returnType: int
    signature: int mpd_switch_to_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpd_calloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:247,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:250,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:251,1
    - Dst: mpd_set_dynamic_data
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - result
    - nwords
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: mpd_switch_to_dyn_zero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 1
    functionsReached:
    - mpd_calloc
    - mpd_set_dynamic_data
    - mpd_set_qnan
    - mpd_set_positive
    linkageType: ''
    returnType: int
    signature: int mpd_switch_to_dyn_zero(mpd_t *result, mpd_ssize_t nwords, uint32_t
      *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mpd_realloc
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:282,1
    - Dst: mpd_set_qnan
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:287,1
    - Dst: mpd_set_positive
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - result
    - nwords
    - status
    argTypes:
    - mpd_t*
    - mpd_ssize_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 295
    functionName: mpd_realloc_dyn
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
    functionUses: 2
    functionsReached:
    - mpd_set_qnan
    - mpd_realloc
    - mpd_set_positive
    linkageType: ''
    returnType: int
    signature: int mpd_realloc_dyn(mpd_t *result, mpd_ssize_t nwords, uint32_t *status)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:110,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - q
    - r
    - hi
    - lo
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 140
    functionName: _mpd_div_words_r
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 4
    functionsReached:
    - _mpd_mul_words
    linkageType: ''
    returnType: void
    signature: void _mpd_div_words_r(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi,
      mpd_uint_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_div_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - q
    - r
    - hi
    - lo
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: _mpd_div_words_r
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 4
    functionsReached:
    - _mpd_div_words
    linkageType: ''
    returnType: void
    signature: void _mpd_div_words_r(mpd_uint_t *q, mpd_uint_t *r, mpd_uint_t hi,
      mpd_uint_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:156,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - u
    - v
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: _mpd_singlemul
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 2
    functionsReached:
    - _mpd_mul_words
    - _mpd_div_words_r
    linkageType: ''
    returnType: void
    signature: void _mpd_singlemul(mpd_uint_t w[2], mpd_uint_t u, mpd_uint_t v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:166,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:167,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:169,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:172,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:175,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:178,1
    - Dst: _mpd_mul_words
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:180,1
    - Dst: _mpd_div_words_r
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h:185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - w
    - u
    - v
    - m
    argTypes:
    - mpd_uint_t[]
    - mpd_uint_t[]
    - mpd_uint_t[]
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 186
    functionName: _mpd_mul_2_le2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 1
    functionsReached:
    - _mpd_mul_words
    - _mpd_div_words_r
    linkageType: ''
    returnType: void
    signature: void _mpd_mul_2_le2(mpd_uint_t w[4], mpd_uint_t u[2], mpd_uint_t v[2],
      mpd_ssize_t m)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    functionName: _mpd_isallzero
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _mpd_isallzero(const mpd_uint_t *data, mpd_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - mpd_uint_t*
    - mpd_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: _mpd_isallnine
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _mpd_isallnine(const mpd_uint_t *data, mpd_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:54,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:55,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:63,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:64,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:67,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:68,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:76,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:77,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:80,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 5
    argNames:
    - x1
    - x2
    - x3
    - w3table
    - umod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t[]
    - mpd_uint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 86
    functionName: std_size3_ntt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - addmod
    - MULMOD
    linkageType: ''
    returnType: void
    signature: "void std_size3_ntt(mpd_uint_t *x1, mpd_uint_t *x2, mpd_uint_t *x3,\n
      \             mpd_uint_t w3table[3], mpd_uint_t umod)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:99,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:100,1
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:108,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:109,1
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:112,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:113,1
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:121,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:122,1
    - Dst: ppro_mulmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:125,1
    - Dst: addmod
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 7
    argNames:
    - x1
    - x2
    - x3
    - w3table
    - umod
    - dmod
    - dinvmod
    argTypes:
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t*
    - mpd_uint_t[]
    - mpd_uint_t
    - double*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 131
    functionName: ppro_size3_ntt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - addmod
    - ppro_mulmod
    linkageType: ''
    returnType: void
    signature: "void ppro_size3_ntt(mpd_uint_t *x1, mpd_uint_t *x2, mpd_uint_t *x3,
      mpd_uint_t w3table[3],\n               mpd_uint_t umod, double *dmod, uint32_t
      dinvmod[3])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:152,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:153,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:157,1
    - Dst: _mpd_init_w3table
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:158,1
    - Dst: SIZE3_NTT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:161,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:165,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:168,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:169,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:173,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:174,1
    - Dst: six_step_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:182,1
    - Dst: transpose_3xpow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:190,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (n >= 48)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    constantsTouched: []
    func_position:
      end: 194
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 194
    functionName: four_step_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - _mpd_getkernel
    - _mpd_init_w3table
    - SIZE3_NTT
    - MULMOD
    - MULMOD2
    - MULMOD2C
    - transpose_3xpow2
    - six_step_fnt
    - assert
    - SETMODULUS
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int four_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:213,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:214,1
    - Dst: transpose_3xpow2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:220,1
    - Dst: inv_six_step_fnt
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:225,1
    - Dst: SETMODULUS
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:231,1
    - Dst: _mpd_getkernel
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:232,1
    - Dst: POWMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:235,1
    - Dst: MULMOD
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:236,1
    - Dst: MULMOD2
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:240,1
    - Dst: MULMOD2C
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:241,1
    - Dst: _mpd_init_w3table
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:248,1
    - Dst: SIZE3_NTT
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - a
    - n
    - modnum
    argTypes:
    - mpd_uint_t*
    - mpd_size_t
    - int
    assertStmts:
    - condition: (n >= 48)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    - condition: (n <= 3*MPD_MAXTRANSFORM_2N)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    constantsTouched: []
    func_position:
      end: 255
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 255
    functionName: inv_four_step_fnt
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
    functionUses: 0
    functionsReached:
    - _mpd_getkernel
    - _mpd_init_w3table
    - MULMOD
    - inv_six_step_fnt
    - MULMOD2
    - SIZE3_NTT
    - MULMOD2C
    - transpose_3xpow2
    - assert
    - SETMODULUS
    - POWMOD
    linkageType: ''
    returnType: int
    signature: int inv_four_step_fnt(mpd_uint_t *a, mpd_size_t n, int modnum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _mpd_strtossize
      Src: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.h:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - s
    - end
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: mpd_strtossize
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.h
    functionUses: 3
    functionsReached:
    - _mpd_strtossize
    linkageType: ''
    returnType: mpd_ssize_t
    signature: mpd_ssize_t mpd_strtossize(const char *s, char **end, int base)
  - 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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: MULMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: MULMOD2C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2C(a0, a1, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - b0
    - ','
    - a1
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: MULMOD2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2(a0, b0, a1, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: POWMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POWMOD(base, exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - modnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SETMODULUS
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETMODULUS(modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - w3table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: SIZE3_NTT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE3_NTT(x0, x1, x2, w3table)
  - 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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: MULMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: MULMOD2C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2C(a0, a1, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - b0
    - ','
    - a1
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: MULMOD2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2(a0, b0, a1, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: POWMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POWMOD(base, exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - modnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: SETMODULUS
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETMODULUS(modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - w3table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: SIZE3_NTT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE3_NTT(x0, x1, x2, w3table)
  - 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: MULMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: MULMOD2C
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2C(a0, a1, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - b0
    - ','
    - a1
    - ','
    - b1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: MULMOD2
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULMOD2(a0, b0, a1, b1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - base
    - ','
    - exp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: POWMOD
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POWMOD(base, exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - modnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: SETMODULUS
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETMODULUS(modnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - w3table
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: SIZE3_NTT
    functionSourceFile: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE3_NTT(x0, x1, x2, w3table)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:28,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:29,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:33,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:34,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:39,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:41,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:43,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:44,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:50,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:52,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:53,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:54,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:56,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:65,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:66,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:72,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:73,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:78,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 82
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp932)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:91,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:92,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:97,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:99,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:100,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:105,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:106,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:110,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:113,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:114,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:124,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:125,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:132,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:140,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(cp932)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:159,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:160,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:167,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:172,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:184,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:189,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:204,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:205,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:218,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:219,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:229,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:230,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:233,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:234,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 239
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_ENCODE_EMP
    - WRITEBYTE1
    - TRYMAP_ENC
    - WRITEBYTE2
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - WRITEBYTE3
    - find_pairencmap
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jis_2004)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:172,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:184,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 199
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - find_pairencmap
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_ENC(jisx0213_bmp, code, c))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:248,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:249,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:257,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:260,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:261,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:269,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:274,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:275,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:276,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:278,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:279,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:282,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:283,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:286,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:291,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:296,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:298,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:300,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:301,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:302,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:303,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:304,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:306,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:307,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:311,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:312,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:317,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 322
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTCHAR2
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    - OUTCHAR
    - REQUIRE_INBUF
    - TRYMAP_DEC
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:278,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_DEC(jisx0213_2_emp, code, c2, c3))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:306,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_DEC(jisx0213_1_emp, code, c, c2))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:311,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - NEXT_IN
    - OUTCHAR2
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_DEC(jisx0213_pair, code, c, c2))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:336,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:337,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:344,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:348,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:349,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:356,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:357,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:360,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:361,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:370,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:371,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:374,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 380
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - WRITEBYTE2
    - WRITEBYTE3
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:389,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:390,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:398,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:401,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:402,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:410,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:414,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:415,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:416,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:424,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:430,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:433,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:434,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:437,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 442
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_jp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:457,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:473,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:475,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:476,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:480,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:483,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:500,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:501,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:502,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 506
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE2
    - JISX0201_R_ENCODE
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_DECODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:515,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:518,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:524,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:537,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:538,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:542,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:543,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:544,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:553,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 557
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - JISX0201_R_DECODE
    - NEXT_IN
    - REQUIRE_INBUF
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:572,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:575,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:576,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:580,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:585,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:590,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:602,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:607,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:628,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:629,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:658,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:659,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:661,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 665
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_ENCODE_EMP
    - WRITEBYTE1
    - TRYMAP_ENC
    - OUTBYTE2
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - JISX0201_ENCODE
    - REQUIRE_OUTBUF
    - find_pairencmap
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(shift_jis_2004)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:590,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:602,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 618
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - find_pairencmap
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_ENC(jisx0213_bmp, code, c))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_ENC(jisxcommon, code, c))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_DECODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:672,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:677,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:689,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:691,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:692,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:693,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:694,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:695,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:696,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:697,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:698,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:701,1
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:711,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:713,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:714,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:716,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:717,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:722,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:729,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 733
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 0
    functionsReached:
    - OUTCHAR2
    - JISX0201_DECODE
    - NEXT_IN
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    - EMULATE_JISX0213_2000_DECODE_PLANE2
    - REQUIRE_INBUF
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(shift_jis_2004)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:716,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
    functionUses: 2
    functionsReached:
    - NEXT_IN
    - OUTCHAR
    linkageType: ''
    returnType: else
    signature: else if (TRYMAP_DEC(jisx0213_2_emp, code, c1, c2))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - assi
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 20
    functionName: EMULATE_JISX0213_2000_ENCODE_BMP
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_ENCODE_BMP(assi, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - assi
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: EMULATE_JISX0213_2000_ENCODE_EMP
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_ENCODE_EMP(assi, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - assi
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: EMULATE_JISX0213_2000_DECODE_PLANE1
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE1(assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - writer
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: EMULATE_JISX0213_2000_DECODE_PLANE2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE2(writer, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - assi
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR(assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: MultibyteCodec_Check
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MultibyteCodec_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ERROR_ISCUSTOM
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_ISCUSTOM(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: ERROR_DECREF
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_DECREF(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dc1
    - ','
    - dc2
    - ','
    - writer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 42
    functionName: GBK_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GBK_DECODE(dc1, dc2, writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: GBK_ENCODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GBK_ENCODE(code, assi)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:71,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:72,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:79,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:80,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:88,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:89,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 94
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(gb2312)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:103,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:104,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:108,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:109,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:110,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(gb2312)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:132,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:133,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:140,1
    - Dst: GBK_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:142,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:146,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:148,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:150,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 155
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    - GBK_ENCODE
    linkageType: ''
    returnType: void
    signature: void ENCODER(gbk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:164,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:165,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:169,1
    - Dst: GBK_DECODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:171,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 179
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - GBK_DECODE
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(gbk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:193,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:194,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:200,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:202,1
    - Dst: OUTBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:204,1
    - Dst: OUTBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:206,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:208,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:210,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:212,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:216,1
    - Dst: GBK_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:218,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:224,1
    - Dst: OUTBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:236,1
    - Dst: OUTBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:238,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:240,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:242,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:244,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:253,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:255,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:257,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:259,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (c <= 0x10FFFF)
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    constantsTouched: []
    func_position:
      end: 260
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 260
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - OUTBYTE3
    - WRITEBYTE1
    - OUTBYTE4
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - assert
    - OUTBYTE1
    - NEXT
    - GBK_ENCODE
    linkageType: ''
    returnType: void
    signature: void ENCODER(gb18030)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:272,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:273,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:277,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:285,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:302,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:303,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:311,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:312,1
    - Dst: GBK_DECODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:319,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:320,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:321,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:325,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 329
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - NEXT_IN
    - GBK_DECODE
    - REQUIRE_INBUF
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(gb18030)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: ENCODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ENCODER_INIT(hz)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:345,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 350
    functionName: ENCODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - WRITEBYTE2
    - NEXT_OUT
    linkageType: ''
    returnType: void
    signature: void ENCODER_RESET(hz)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:360,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:361,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:364,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:365,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:367,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:368,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:376,1
    - Dst: WRITEBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:385,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:386,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:390,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 396
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - WRITEBYTE4
    - TRYMAP_ENC
    - WRITEBYTE1
    - WRITEBYTE2
    - NEXT_OUT
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(hz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: DECODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECODER_INIT(hz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: DECODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DECODER_RESET(hz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:419,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:421,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:430,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:438,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:439,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:442,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:443,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:444,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c:445,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 453
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(hz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:21,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:23,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:30,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:32,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:37,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:38,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 43
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(big5)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:52,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:53,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:57,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:58,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:59,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:60,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(big5)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:80,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:81,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:88,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:89,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:91,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:96,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:97,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 102
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp950)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:111,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:112,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:116,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:118,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:119,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:120,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:121,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(cp950)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 11
    functionName: JISX0201_R_ENCODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_R_ENCODE(c, assi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: JISX0201_K_ENCODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_K_ENCODE(c, assi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: JISX0201_ENCODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_ENCODE(c, assi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: JISX0201_R_DECODE_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_R_DECODE_CHAR(c, assi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - writer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: JISX0201_R_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_R_DECODE(c, writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - writer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: JISX0201_K_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_K_DECODE(c, writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - assi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: JISX0201_K_DECODE_CHAR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_K_DECODE_CHAR(c, assi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - writer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: JISX0201_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JISX0201_DECODE(c, writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mark
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: ESCMARK
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ESCMARK(mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: IS_ESCEND
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ESCEND(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: IS_ISO2022ESC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ISO2022ESC(c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dn
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: STATE_SETG
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETG(dn, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: STATE_GETG
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_GETG(dn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: STATE_SETG0
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETG0(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: STATE_SETG1
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETG1(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: STATE_SETG2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETG2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: STATE_SETG3
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETG3(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: STATE_SETFLAG
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_SETFLAG(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: STATE_GETFLAG
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_GETFLAG(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: STATE_CLEARFLAG
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_CLEARFLAG(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: STATE_CLEARFLAGS
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_CLEARFLAGS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: CONFIG_ISSET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_ISSET(flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct iso2022_designation*::initializer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: CODEC_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - struct iso2022_designation*::initializer
    linkageType: ''
    returnType: void
    signature: void CODEC_INIT(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_CLEARFLAGS
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:135,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:136,1
    - Dst: STATE_SETG1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: ENCODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_CLEARFLAGS
    - STATE_SETG0
    - STATE_SETG1
    linkageType: ''
    returnType: void
    signature: void ENCODER_INIT(iso2022)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:143,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:144,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:145,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:146,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:149,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:150,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: ENCODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG0
    - STATE_CLEARFLAG
    - WRITEBYTE1
    - WRITEBYTE3
    - STATE_GETFLAG
    - NEXT_OUT
    linkageType: ''
    returnType: void
    signature: void ENCODER_RESET(iso2022)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:166,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:167,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:168,1
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:170,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:171,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:172,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:173,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:175,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:176,1
    - Dst: struct iso2022_designation*::encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:185,1
    - Dst: struct iso2022_designation*::encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:196,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:208,1
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:212,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:213,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:214,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:215,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:219,1
    - Dst: ESCMARK
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:219,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:220,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:221,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:224,1
    - Dst: ESCMARK
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:224,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:225,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:226,1
    - Dst: WRITEBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:229,1
    - Dst: ESCMARK
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:230,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:231,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:232,1
    - Dst: WRITEBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:239,1
    - Dst: ESCMARK
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:239,1
    - Dst: STATE_SETG1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:240,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:241,1
    - Dst: WRITEBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:244,1
    - Dst: ESCMARK
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:244,1
    - Dst: STATE_SETG1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:245,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:246,1
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:249,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:250,1
    - Dst: STATE_SETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:251,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:252,1
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:261,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:262,1
    - Dst: WRITEBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:265,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:266,1
    - Dst: NEXT_INCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:268,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dsg->width == 1 || dsg->width == 2)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 272
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 272
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG0
    - STATE_CLEARFLAG
    - WRITEBYTE4
    - STATE_SETFLAG
    - WRITEBYTE1
    - WRITEBYTE2
    - NEXT_INCHAR
    - ESCMARK
    - struct iso2022_designation*::encoder
    - WRITEBYTE3
    - STATE_GETFLAG
    - NEXT_OUT
    - assert
    - STATE_SETG1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_CLEARFLAGS
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:276,1
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:277,1
    - Dst: STATE_SETG1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:278,1
    - Dst: STATE_SETG2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: DECODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_CLEARFLAGS
    - STATE_SETG0
    - STATE_SETG2
    - STATE_SETG1
    linkageType: ''
    returnType: void
    signature: void DECODER_INIT(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STATE_SETG0
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:285,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: DECODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG0
    - STATE_CLEARFLAG
    linkageType: ''
    returnType: void
    signature: void DECODER_RESET(iso2022)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: IS_ESCEND
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:300,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:304,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:324,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:343,1
    - Dst: STATE_SETG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:368,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 62
    argCount: 4
    argNames:
    - config
    - state
    - inbuf
    - inleft
    argTypes:
    - void*
    - MultibyteCodec_State*
    - unsigned char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 372
    functionName: iso2022processesc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_SETG
    - IS_ESCEND
    - CONFIG_ISSET
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t iso2022processesc(const void *config, MultibyteCodec_State
      *state,\n                  const unsigned char **inbuf, Py_ssize_t *inleft)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - writer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 389
    functionName: ISO8859_7_DECODE
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISO8859_7_DECODE(c, writer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:399,1
    - Dst: ISO8859_7_DECODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:404,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - config
    - state
    - inbuf
    - inleft
    - writer
    argTypes:
    - void*
    - MultibyteCodec_State*
    - unsigned char**
    - Py_ssize_t*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 420
    functionName: iso2022processg2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - ISO8859_7_DECODE
    - OUTCHAR
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t iso2022processg2(const void *config, MultibyteCodec_State
      *state,\n                 const unsigned char **inbuf, Py_ssize_t *inleft,\n
      \                _PyUnicodeWriter *writer)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:430,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:433,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:434,1
    - Dst: IS_ESCEND
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:435,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:436,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:443,1
    - Dst: IS_ISO2022ESC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:444,1
    - Dst: iso2022processesc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:445,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:450,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:451,1
    - Dst: iso2022processg2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:452,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:458,1
    - Dst: STATE_SETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:459,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:460,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:464,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:466,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:467,1
    - Dst: CONFIG_ISSET
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:470,1
    - Dst: STATE_SETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:472,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:473,1
    - Dst: STATE_CLEARFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:476,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:477,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:478,1
    - Dst: STATE_GETFLAG
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:490,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:497,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:498,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:515,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:519,1
    - Dst: struct iso2022_designation*::decoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:520,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:525,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:528,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:531,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:533,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (dsg->mark != '\0')
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 539
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 539
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - STATE_CLEARFLAG
    - STATE_SETFLAG
    - IS_ESCEND
    - iso2022processesc
    - OUTCHAR2
    - NEXT_IN
    - iso2022processg2
    - STATE_GETFLAG
    - REQUIRE_INBUF
    - assert
    - struct iso2022_designation*::decoder
    - OUTCHAR
    - IS_ISO2022ESC
    - CONFIG_ISSET
    linkageType: ''
    returnType: void
    signature: void DECODER(iso2022)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 544
    functionName: ENCMAP
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCMAP(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 545
    functionName: DECMAP
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECMAP(enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:575,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: ksx1001_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int ksx1001_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: ksx1001_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 ksx1001_decoder(const unsigned char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:596,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 604
    functionName: ksx1001_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - assert
    - TRYMAP_ENC
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR ksx1001_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:612,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 617
    functionName: jisx0208_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int jisx0208_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 629
    functionName: jisx0208_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0208_decoder(const unsigned char *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:635,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 634
        line_start: 634
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 645
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 645
    functionName: jisx0208_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - assert
    - TRYMAP_ENC
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0208_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:653,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 658
    functionName: jisx0212_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int jisx0212_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 668
    functionName: jisx0212_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0212_decoder(const unsigned char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:674,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 673
        line_start: 673
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 682
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 682
    functionName: jisx0212_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - assert
    - TRYMAP_ENC
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0212_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jisx0208_init
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:690,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:691,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:693,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:695,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:697,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:699,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:701,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:703,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 708
    functionName: jisx0213_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0208_init
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int jisx0213_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:715,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 729
    functionName: jisx0213_2000_1_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    - EMULATE_JISX0213_2000_DECODE_PLANE1
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2000_1_decoder(const unsigned char *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:735,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:736,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 743
    functionName: jisx0213_2000_2_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2000_2_decoder(const unsigned char *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:752,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:754,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:756,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:758,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 763
    functionName: jisx0213_2004_1_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2004_1_decoder(const unsigned char *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:769,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 776
    functionName: jisx0213_2004_2_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0213_2004_2_decoder(const unsigned char *data)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EMULATE_JISX0213_2000_ENCODE_EMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:787,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:788,1
    - Dst: EMULATE_JISX0213_2000_ENCODE_BMP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:794,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:795,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:799,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:808,1
    - Dst: find_pairencmap
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:816,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - data
    - length
    - config
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 778
    functionDepth: 1
    functionLinenumber: 778
    functionLinenumberEnd: 827
    functionName: jisx0213_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - EMULATE_JISX0213_2000_ENCODE_BMP
    - EMULATE_JISX0213_2000_ENCODE_EMP
    - TRYMAP_ENC
    - find_pairencmap
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_encoder(const Py_UCS4 *data, Py_ssize_t *length, void
      *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 839
    functionName: jisx0213_2000_1_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2000_1_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: jisx0213_2000_1_encoder_paironly
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2000_1_encoder_paironly(const Py_UCS4 *data, Py_ssize_t
      *length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 874
    functionName: jisx0213_2000_2_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2000_2_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 886
    functionName: jisx0213_2004_1_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2004_1_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 909
    functionName: jisx0213_2004_1_encoder_paironly
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2004_1_encoder_paironly(const Py_UCS4 *data, Py_ssize_t
      *length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jisx0213_encoder
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 921
    functionName: jisx0213_2004_2_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - jisx0213_encoder
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0213_2004_2_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_DECODE_CHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 931
    functionName: jisx0201_r_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_R_DECODE_CHAR
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0201_r_decoder(const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_R_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 941
    functionName: jisx0201_r_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_R_ENCODE
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0201_r_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_K_DECODE_CHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: jisx0201_k_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_K_DECODE_CHAR
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 jisx0201_k_decoder(const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JISX0201_K_ENCODE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 961
    functionName: jisx0201_k_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - JISX0201_K_ENCODE
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR jisx0201_k_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:969,1
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 974
    functionName: gb2312_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: int
    signature: int gb2312_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 984
    functionName: gb2312_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - TRYMAP_DEC
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 gb2312_decoder(const unsigned char *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:990,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c:992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (*length == 1)
      pos:
        line_end: 989
        line_start: 989
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    constantsTouched: []
    func_position:
      end: 998
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 998
    functionName: gb2312_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached:
    - assert
    - TRYMAP_ENC
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR gb2312_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1005
    functionName: dummy_decoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 dummy_decoder(const unsigned char *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1011
    functionName: dummy_encoder
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DBCHAR
    signature: DBCHAR dummy_encoder(const Py_UCS4 *data, Py_ssize_t *length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - attrs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1078
    functionName: CONFIGDEF
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIGDEF(var, attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - variation
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1132
    functionName: ISO2022_CODEC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISO2022_CODEC(variation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:41,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:42,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:49,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:50,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:57,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:58,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:59,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:66,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:69,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:70,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:74,1
    - Dst: OUTBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:77,1
    - Dst: OUTBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:78,1
    - Dst: NEXT_OUT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:79,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:81,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:82,1
    - Dst: OUTBYTE3
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:83,1
    - Dst: OUTBYTE4
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:84,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0xac00 <= c && c <= 0xd7a3)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    constantsTouched: []
    func_position:
      end: 90
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 90
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - OUTBYTE3
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE4
    - OUTBYTE2
    - NEXT_OUT
    - REQUIRE_OUTBUF
    - assert
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(euc_kr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:114,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:115,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:119,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:126,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:152,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:153,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:155,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:156,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:157,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 164
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(euc_kr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:179,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:180,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:187,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:188,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:193,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:195,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:197,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 202
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(cp949)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:211,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:212,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:216,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:217,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:218,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:219,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:220,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(cp949)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WRITEBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:269,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:270,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:277,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:288,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:292,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:301,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:302,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:303,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:312,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:313,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:314,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ((code & 0x8000) == 0)
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    constantsTouched: []
    func_position:
      end: 318
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 318
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - WRITEBYTE1
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - assert
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(johab)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:368,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:369,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:373,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:396,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:398,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:403,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:411,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:417,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:422,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:439,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:440,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c:441,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 451
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
    functionUses: 0
    functionsReached:
    - REQUIRE_INBUF
    - NEXT_IN
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(johab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IMPORT_MAP
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: CODEC_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached:
    - IMPORT_MAP
    linkageType: ''
    returnType: void
    signature: void CODEC_INIT(big5hkscs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:47,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:49,1
    - Dst: REQUIRE_OUTBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:54,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:57,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:84,1
    - Dst: TRYMAP_ENC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:92,1
    - Dst: OUTBYTE1
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:100,1
    - Dst: OUTBYTE2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:101,1
    - Dst: NEXT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:102,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 106
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached:
    - TRYMAP_ENC
    - OUTBYTE2
    - REQUIRE_OUTBUF
    - OUTBYTE1
    - NEXT
    linkageType: ''
    returnType: void
    signature: void ENCODER(big5hkscs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: BH2S
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BH2S(c1, c2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:117,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:118,1
    - Dst: REQUIRE_INBUF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:122,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:125,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:126,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:127,1
    - Dst: TRYMAP_DEC
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:132,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:134,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:137,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:138,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:140,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:140,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:142,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:144,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:144,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:146,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:148,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:148,1
    - Dst: BH2S
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:150,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:156,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:157,1
    - Dst: OUTCHAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:160,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:161,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:167,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:168,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:169,1
    - Dst: OUTCHAR2
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:170,1
    - Dst: NEXT_IN
      Src: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c:174,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0x87 <= c && c <= 0xfe)
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    - condition: (0x40 <= INBYTE2 && INBYTE2 <= 0xfe)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    constantsTouched: []
    func_position:
      end: 178
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 178
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
    functionUses: 0
    functionsReached:
    - OUTCHAR2
    - NEXT_IN
    - BH2S
    - REQUIRE_INBUF
    - assert
    - TRYMAP_DEC
    - OUTCHAR
    linkageType: ''
    returnType: void
    signature: void DECODER(big5hkscs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:51,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:53,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:56,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:58,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:60,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - object
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: make_tuple
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_tuple(PyObject *object, Py_ssize_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:71,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:73,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:75,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: internal_error_callback
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      internal_error_callback(const char *errors)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:87,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:87,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:88,1
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:91,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:95,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:97,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:101,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:102,1
    - Dst: PyObject_CallObject
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - errors
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(errors))
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: call_error_callback
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_CallObject
    - Py_DECREF
    - PyTuple_SET_ITEM
    - Py_INCREF
    - PyUnicode_AsUTF8
    - PyUnicode_Check
    - assert
    - PyTuple_New
    - PyCodec_LookupError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_error_callback(PyObject *errors, PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:122,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteStatefulCodecContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: codecctx_errors_get
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      codecctx_errors_get(MultibyteStatefulCodecContext *self, void *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:137,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:140,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:141,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:145,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:149,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - MultibyteStatefulCodecContext*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 156
    functionName: codecctx_errors_set
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - ERROR_DECREF
    - internal_error_callback
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: "int codecctx_errors_set(MultibyteStatefulCodecContext *self, PyObject
      *value,\n                    void *closure)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:172,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:173,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:177,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:181,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:184,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:185,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - buf
    - esize
    argTypes:
    - MultibyteEncodeBuffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 189
    functionName: expand_encodebuffer
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_NoMemory
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int expand_encodebuffer(MultibyteEncodeBuffer *buf, Py_ssize_t esize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: REQUIRE_ENCODEBUFFER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_ENCODEBUFFER(buf, s)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:230,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:243,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:246,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:247,1
    - Dst: MultibyteCodec*::encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:253,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:257,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:264,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:267,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:281,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:289,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:290,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:291,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:295,1
    - Dst: call_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:299,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:303,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:303,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:304,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:304,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:304,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:305,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:305,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:306,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:312,1
    - Dst: multibytecodec_encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:315,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:322,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:326,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:326,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:327,1
    - Dst: REQUIRE_ENCODEBUFFER
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:329,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:330,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:330,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:334,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:334,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:335,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:338,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:339,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:347,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:351,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:352,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 106
    argCount: 5
    argNames:
    - codec
    - state
    - buf
    - errors
    - e
    argTypes:
    - MultibyteCodec*
    - MultibyteCodec_State*
    - MultibyteEncodeBuffer*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyBytes_Check(retstr))
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 354
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 354
    functionName: multibytecodec_encerror
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyCodec_StrictErrors
    - PyUnicodeEncodeError_SetStart
    - PyUnicode_KIND
    - PyErr_Occurred
    - Py_INCREF
    - PyUnicodeEncodeError_SetReason
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyObject_CallFunction
    - multibytecodec_encode
    - PyErr_Format
    - PyUnicode_DATA
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - PyBytes_GET_SIZE
    - REQUIRE_ENCODEBUFFER
    - PyBytes_AS_STRING
    - call_error_callback
    - MultibyteCodec*::encode
    - memcpy
    - PyBytes_Check
    - PyUnicodeEncodeError_SetEnd
    - PyUnicode_FromOrdinal
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int multibytecodec_encerror(MultibyteCodec *codec,\n                        MultibyteCodec_State
      *state,\n                        MultibyteEncodeBuffer *buf,\n                        PyObject
      *errors, Py_ssize_t e)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:380,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:386,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:393,1
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:407,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:415,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:416,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:417,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:421,1
    - Dst: call_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:425,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:429,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:429,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:430,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:430,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:431,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:431,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:432,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:438,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:441,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:441,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:442,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:445,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:446,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:452,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:456,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 5
    argNames:
    - codec
    - state
    - buf
    - errors
    - e
    argTypes:
    - MultibyteCodec*
    - MultibyteCodec_State*
    - MultibyteDecodeBuffer*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 458
    functionName: multibytecodec_decerror
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteChar
    - _PyUnicodeWriter_WriteStr
    - PyTuple_GET_SIZE
    - PyCodec_StrictErrors
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_Format
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - PyUnicodeDecodeError_SetEnd
    - call_error_callback
    - PyUnicodeDecodeError_SetReason
    - PyUnicodeDecodeError_Create
    - PyUnicodeDecodeError_SetStart
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int multibytecodec_decerror(MultibyteCodec *codec,\n                        MultibyteCodec_State
      *state,\n                        MultibyteDecodeBuffer *buf,\n                        PyObject
      *errors, Py_ssize_t e)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:472,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:474,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:477,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:484,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:485,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:488,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:492,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:495,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:496,1
    - Dst: MultibyteCodec*::encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:503,1
    - Dst: multibytecodec_encerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:509,1
    - Dst: MultibyteCodec*::encreset
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:520,1
    - Dst: multibytecodec_encerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:524,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:530,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:532,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:533,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:538,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:542,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:543,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 58
    argCount: 6
    argNames:
    - codec
    - state
    - text
    - inpos_t
    - errors
    - flags
    argTypes:
    - MultibyteCodec*
    - MultibyteCodec_State*
    - PyObject*
    - Py_ssize_t*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 545
    functionName: multibytecodec_encode
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - MultibyteCodec*::encode
    - PyUnicode_READY
    - PyErr_NoMemory
    - Py_XDECREF
    - multibytecodec_encerror
    - MultibyteCodec*::encreset
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmultibytecodec_encode(MultibyteCodec *codec,\n                      MultibyteCodec_State
      *state,\n                      PyObject *text, Py_ssize_t *inpos_t,\n                      PyObject
      *errors, int flags)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:571,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:574,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:577,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:580,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:585,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:586,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:589,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:591,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:593,1
    - Dst: MultibyteCodecObject*::codec::encinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:598,1
    - Dst: multibytecodec_encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:600,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:606,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:607,1
    - Dst: make_tuple
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:608,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:611,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:612,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 614
    functionName: _multibytecodec_MultibyteCodec_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - MultibyteCodecObject*::codec::encinit
    - ERROR_DECREF
    - PyObject_Str
    - internal_error_callback
    - multibytecodec_encode
    - PyErr_SetString
    - make_tuple
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteCodec_encode_impl(MultibyteCodecObject
      *self,\n                                           PyObject *input,\n                                           const
      char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:645,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:651,1
    - Dst: make_tuple
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:652,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:652,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:655,1
    - Dst: MultibyteCodecObject*::codec::decinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:662,1
    - Dst: MultibyteCodecObject*::codec::decode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:670,1
    - Dst: multibytecodec_decerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:674,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:679,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:683,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:684,1
    - Dst: make_tuple
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:685,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:688,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:689,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:690,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - self
    - input
    - errors
    argTypes:
    - MultibyteCodecObject*
    - Py_buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 693
    functionName: _multibytecodec_MultibyteCodec_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - MultibyteCodecObject*::codec::decinit
    - ERROR_DECREF
    - multibytecodec_decerror
    - make_tuple
    - internal_error_callback
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - MultibyteCodecObject*::codec::decode
    - Py_XDECREF
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject
      *self,\n                                           Py_buffer *input,\n                                           const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteCodecObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: multibytecodec_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void multibytecodec_dealloc(MultibyteCodecObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 745
    functionName: STATEFUL_DCTX
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATEFUL_DCTX(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 746
    functionName: STATEFUL_ECTX
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATEFUL_ECTX(o)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:756,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:759,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:762,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:763,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:765,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:773,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:776,1
    - Dst: PyUnicode_Append
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:778,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:781,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:787,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:790,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:793,1
    - Dst: multibytecodec_encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:795,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:800,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:804,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:809,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:820,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:821,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:825,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:826,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:827,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:828,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - ctx
    - unistr
    - final
    argTypes:
    - MultibyteStatefulEncoderContext*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 747
    functionDepth: 4
    functionLinenumber: 747
    functionLinenumberEnd: 830
    functionName: encoder_encode_stateful
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PyUnicode_READY
    - Py_INCREF
    - Py_XSETREF
    - Py_XDECREF
    - PyUnicode_Substring
    - PyObject_Str
    - multibytecodec_encode
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyUnicode_Append
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nencoder_encode_stateful(MultibyteStatefulEncoderContext
      *ctx,\n                        PyObject *unistr, int final)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:841,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 847
    functionName: decoder_append_pending
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int decoder_append_pending(MultibyteStatefulDecoderContext *ctx,\n
      \                      MultibyteDecodeBuffer *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buf
    - data
    - size
    argTypes:
    - MultibyteDecodeBuffer*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 857
    functionName: decoder_prepare_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int decoder_prepare_buffer(MultibyteDecodeBuffer *buf, const char
      *data,\n                       Py_ssize_t size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MultibyteStatefulDecoderContext*::codec::decode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:869,1
    - Dst: multibytecodec_decerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - buf
    argTypes:
    - MultibyteStatefulDecoderContext*
    - MultibyteDecodeBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 878
    functionName: decoder_feed_buffer
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteStatefulDecoderContext*::codec::decode
    - multibytecodec_decerror
    linkageType: ''
    returnType: int
    signature: "int decoder_feed_buffer(MultibyteStatefulDecoderContext *ctx,\n                    MultibyteDecodeBuffer
      *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encoder_encode_stateful
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:899,1
    - Dst: STATEFUL_ECTX
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 893
    functionDepth: 5
    functionLinenumber: 893
    functionLinenumberEnd: 900
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - STATEFUL_ECTX
    - encoder_encode_stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteIncrementalEncoder_encode_impl(MultibyteIncrementalEncoderObject
      *self,\n                                                        PyObject *input,\n
      \                                                       int final)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:922,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:927,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:931,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:937,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:941,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 944
    functionName: _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    - _PyLong_FromByteArray
    - memcpy
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_getstate_impl(MultibyteIncrementalEncoderObject
      *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:960,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:967,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:971,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:977,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:979,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:985,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - statelong
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 987
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_CLEAR
    - PyUnicode_DecodeUTF8
    - PyErr_SetString
    - _PyLong_AsByteArray
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteIncrementalEncoder_setstate_impl(MultibyteIncrementalEncoderObject
      *self,\n                                                          PyLongObject
      *statelong)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MultibyteIncrementalEncoderObject*::codec::encreset
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1002,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1009
    functionName: _multibytecodec_MultibyteIncrementalEncoder_reset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - MultibyteIncrementalEncoderObject*::codec::encreset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_reset_impl(MultibyteIncrementalEncoderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1026,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1030,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1034,1
    - Dst: MultibyteCodec_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1037,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1038,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1044,1
    - Dst: MultibyteIncrementalEncoderObject*::codec::encinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1048,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1051,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1055,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1056,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1058
    functionName: mbiencoder_new
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTypeObject*::tp_alloc
    - MultibyteIncrementalEncoderObject*::codec::encinit
    - internal_error_callback
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - MultibyteCodec_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbiencoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1064
    functionName: mbiencoder_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbiencoder_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR_ISCUSTOM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1070,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1073
    functionName: mbiencoder_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_ISCUSTOM
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int mbiencoder_traverse(MultibyteIncrementalEncoderObject *self,\n
      \                   visitproc visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1078,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1079,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1080,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalEncoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1082
    functionName: mbiencoder_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - ERROR_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbiencoder_dealloc(MultibyteIncrementalEncoderObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1154,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1164,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1168,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1170,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1173,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1174,1
    - Dst: decoder_prepare_buffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1178,1
    - Dst: decoder_feed_buffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1181,1
    - Dst: STATEFUL_DCTX
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1181,1
    - Dst: multibytecodec_decerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1185,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1188,1
    - Dst: decoder_append_pending
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1195,1
    - Dst: STATEFUL_DCTX
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1195,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1199,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1204,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1205,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1211,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1212,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - self
    - input
    - final
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1140
    functionDepth: 4
    functionLinenumber: 1140
    functionLinenumberEnd: 1214
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - decoder_append_pending
    - memcpy
    - STATEFUL_DCTX
    - _PyUnicodeWriter_Init
    - decoder_prepare_buffer
    - PyErr_NoMemory
    - multibytecodec_decerror
    - decoder_feed_buffer
    - _PyUnicodeWriter_Finish
    - PyMem_Del
    - _PyUnicodeWriter_Dealloc
    - PyMem_Malloc
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteIncrementalDecoder_decode_impl(MultibyteIncrementalDecoderObject
      *self,\n                                                        Py_buffer *input,\n
      \                                                       int final)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1227,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1238,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1243
    functionName: _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyLong_FromByteArray
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_getstate_impl(MultibyteIncrementalDecoderObject
      *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1262,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1268,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1280,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1284,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1289,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1293
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyBytes_Size
    - PyBytes_AsString
    - PyErr_SetString
    - _PyLong_AsByteArray
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteIncrementalDecoder_setstate_impl(MultibyteIncrementalDecoderObject
      *self,\n                                                          PyObject *state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MultibyteIncrementalDecoderObject*::codec::decreset
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1309
    functionName: _multibytecodec_MultibyteIncrementalDecoder_reset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteIncrementalDecoderObject*::codec::decreset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_reset_impl(MultibyteIncrementalDecoderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1326,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1330,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1334,1
    - Dst: MultibyteCodec_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1337,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1338,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1344,1
    - Dst: MultibyteIncrementalDecoderObject*::codec::decinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1351,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1355,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1356,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1358
    functionName: mbidecoder_new
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteIncrementalDecoderObject*::codec::decinit
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTypeObject*::tp_alloc
    - internal_error_callback
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - MultibyteCodec_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbidecoder_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1364
    functionName: mbidecoder_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbidecoder_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR_ISCUSTOM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1370,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1373
    functionName: mbidecoder_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_ISCUSTOM
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int mbidecoder_traverse(MultibyteIncrementalDecoderObject *self,\n
      \                   visitproc visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1378,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1379,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteIncrementalDecoderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1381
    functionName: mbidecoder_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbidecoder_dealloc(MultibyteIncrementalDecoderObject *self)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1441,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1443,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1451,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1454,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1459,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1460,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1467,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1473,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1474,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1477,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1478,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1481,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1482,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1483,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1484,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1486,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1491,1
    - Dst: decoder_prepare_buffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1492,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1492,1
    - Dst: decoder_feed_buffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1496,1
    - Dst: multibytecodec_decerror
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1502,1
    - Dst: decoder_append_pending
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1508,1
    - Dst: STATEFUL_DCTX
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1513,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1522,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1526,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1527,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1531,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1532,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1533,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 3
    argNames:
    - self
    - method
    - sizehint
    argTypes:
    - MultibyteStreamReaderObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1432
    functionDepth: 4
    functionLinenumber: 1432
    functionLinenumberEnd: 1535
    functionName: mbstreamreader_iread
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - STATEFUL_DCTX
    - multibytecodec_decerror
    - decoder_feed_buffer
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyBytes_FromStringAndSize
    - decoder_append_pending
    - decoder_prepare_buffer
    - PyErr_Format
    - Py_XDECREF
    - PyUnicode_New
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - memcpy
    - PyErr_NoMemory
    - PyBytes_Check
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmbstreamreader_iread(MultibyteStreamReaderObject *self,\n
      \                    const char *method, Py_ssize_t sizehint)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1553,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1554,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1556,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1560,1
    - Dst: mbstreamreader_iread
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1544
    functionDepth: 5
    functionLinenumber: 1544
    functionLinenumberEnd: 1564
    functionName: _multibytecodec_MultibyteStreamReader_read_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - mbstreamreader_iread
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamReader_read_impl(MultibyteStreamReaderObject
      *self,\n                                                PyObject *sizeobj)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1582,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1583,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1585,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1589,1
    - Dst: mbstreamreader_iread
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - self
    - sizeobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1573
    functionDepth: 5
    functionLinenumber: 1573
    functionLinenumberEnd: 1593
    functionName: _multibytecodec_MultibyteStreamReader_readline_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - mbstreamreader_iread
    - PyErr_Occurred
    - PyLong_AsSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamReader_readline_impl(MultibyteStreamReaderObject
      *self,\n                                                    PyObject *sizeobj)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1612,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1613,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1615,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1619,1
    - Dst: mbstreamreader_iread
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1622,1
    - Dst: PyUnicode_Splitlines
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - self
    - sizehintobj
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1602
    functionDepth: 5
    functionLinenumber: 1602
    functionLinenumberEnd: 1629
    functionName: _multibytecodec_MultibyteStreamReader_readlines_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - mbstreamreader_iread
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_Splitlines
    - PyLong_AsSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamReader_readlines_impl(MultibyteStreamReaderObject
      *self,\n                                                     PyObject *sizehintobj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MultibyteStreamReaderObject*::codec::decreset
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1645
    functionName: _multibytecodec_MultibyteStreamReader_reset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - MultibyteStreamReaderObject*::codec::decreset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_reset_impl(MultibyteStreamReaderObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1669,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1673,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1677,1
    - Dst: MultibyteCodec_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1680,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1681,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1687,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1689,1
    - Dst: MultibyteStreamReaderObject*::codec::decinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1696,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1700,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1701,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1703
    functionName: mbstreamreader_new
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - MultibyteStreamReaderObject*::codec::decinit
    - internal_error_callback
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - MultibyteCodec_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbstreamreader_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    functionName: mbstreamreader_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbstreamreader_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR_ISCUSTOM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1715,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1716,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - MultibyteStreamReaderObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1719
    functionName: mbstreamreader_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_ISCUSTOM
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int mbstreamreader_traverse(MultibyteStreamReaderObject *self,\n                        visitproc
      visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1724,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1725,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1726,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamReaderObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1728
    functionName: mbstreamreader_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbstreamreader_dealloc(MultibyteStreamReaderObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encoder_encode_stateful
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1785,1
    - Dst: STATEFUL_ECTX
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1785,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - unistr
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1779
    functionDepth: 5
    functionLinenumber: 1779
    functionLinenumberEnd: 1796
    functionName: mbstreamwriter_iwrite
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - STATEFUL_ECTX
    - encoder_encode_stateful
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int mbstreamwriter_iwrite(MultibyteStreamWriterObject *self,\n                      PyObject
      *unistr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mbstreamwriter_iwrite
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - strobj
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1805
    functionDepth: 6
    functionLinenumber: 1805
    functionLinenumberEnd: 1814
    functionName: _multibytecodec_MultibyteStreamWriter_write
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - mbstreamwriter_iwrite
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamWriter_write(MultibyteStreamWriterObject
      *self,\n                                            PyObject *strobj)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1832,1
    - Dst: PySequence_Length
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1837,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1839,1
    - Dst: mbstreamwriter_iwrite
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1843,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1844,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1849,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - lines
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1823
    functionDepth: 6
    functionLinenumber: 1823
    functionLinenumberEnd: 1853
    functionName: _multibytecodec_MultibyteStreamWriter_writelines
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PySequence_Length
    - PyErr_Occurred
    - Py_DECREF
    - PySequence_GetItem
    - mbstreamwriter_iwrite
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_multibytecodec_MultibyteStreamWriter_writelines(MultibyteStreamWriterObject
      *self,\n                                                 PyObject *lines)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: multibytecodec_encode
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1868,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1875,1
    - Dst: assert
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1879,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1879,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1880,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1883,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1889,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamWriterObject*
    assertStmts:
    - condition: (PyBytes_Check(pwrt))
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    constantsTouched: []
    func_position:
      end: 1892
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1892
    functionName: _multibytecodec_MultibyteStreamWriter_reset_impl
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyBytes_Size
    - PyBytes_Check
    - multibytecodec_encode
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject
      *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1901,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1905,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1909,1
    - Dst: MultibyteCodec_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1912,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1913,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1919,1
    - Dst: internal_error_callback
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1921,1
    - Dst: MultibyteStreamWriterObject*::codec::encinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1925,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1928,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1932,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1933,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1935
    functionName: mbstreamwriter_new
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetAttrString
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - MultibyteStreamWriterObject*::codec::encinit
    - internal_error_callback
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    - MultibyteCodec_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbstreamwriter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1941
    functionName: mbstreamwriter_init
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mbstreamwriter_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERROR_ISCUSTOM
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1947,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1948,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - MultibyteStreamWriterObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1951
    functionName: mbstreamwriter_traverse
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - ERROR_ISCUSTOM
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int mbstreamwriter_traverse(MultibyteStreamWriterObject *self,\n                        visitproc
      visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1956,1
    - Dst: ERROR_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1957,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1958,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:1959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - MultibyteStreamWriterObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1953
    functionDepth: 2
    functionLinenumber: 1953
    functionLinenumberEnd: 1960
    functionName: mbstreamwriter_dealloc
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - ERROR_DECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void mbstreamwriter_dealloc(MultibyteStreamWriterObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_IsValid
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2034,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2035,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2039,1
    - Dst: MultibyteCodec*::codecinit
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2040,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2043,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2049
    functionName: _multibytecodec___create_codec
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyCapsule_IsValid
    - PyCapsule_GetPointer
    - MultibyteCodec*::codecinit
    - PyErr_SetString
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec___create_codec(PyObject *module, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2082,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2085,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2090,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2092,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2093,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2097,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2098,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c:2099,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2103
    functionName: PyInit__multibytecodec
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - PyModule_AddObject
    - Py_FatalError
    - PyType_Ready
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__multibytecodec(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: CODEC_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_INIT(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: ENCODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODER_INIT(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: ENCODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODER(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: ENCODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODER_RESET(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: DECODER_INIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER_INIT(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: DECODER
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - encoding
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: DECODER_RESET
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODER_RESET(encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: NEXT_IN
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_IN(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: NEXT_INCHAR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_INCHAR(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: NEXT_OUT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_OUT(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: NEXT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT(i, o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: REQUIRE_INBUF
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_INBUF(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: REQUIRE_OUTBUF
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQUIRE_OUTBUF(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: OUTCHAR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTCHAR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: OUTCHAR2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTCHAR2(c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: OUTBYTEI
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTBYTEI(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: OUTBYTE1
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTBYTE1(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: OUTBYTE2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTBYTE2(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: OUTBYTE3
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTBYTE3(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: OUTBYTE4
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OUTBYTE4(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: WRITEBYTE1
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITEBYTE1(c1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: WRITEBYTE2
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITEBYTE2(c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c1
    - ','
    - c2
    - ','
    - c3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: WRITEBYTE3
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITEBYTE3(c1, c2, c3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - c1
    - ','
    - c2
    - ','
    - c3
    - ','
    - c4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: WRITEBYTE4
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITEBYTE4(c1, c2, c3, c4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - assi
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: _TRYMAP_ENC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TRYMAP_ENC(m, assi, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - charset
    - ','
    - assi
    - ','
    - uni
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: TRYMAP_ENC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_ENC(charset, assi, uni)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - assi
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: _TRYMAP_DEC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _TRYMAP_DEC(m, assi, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - charset
    - ','
    - assi
    - ','
    - c1
    - ','
    - c2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: TRYMAP_DEC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRYMAP_DEC(charset, assi, c1, c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: MAPPING_ENCONLY
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPING_ENCONLY(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: MAPPING_DECONLY
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPING_DECONLY(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: MAPPING_ENCDEC
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAPPING_ENCDEC(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: _STATEFUL_METHODS
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STATEFUL_METHODS(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: _STATELESS_METHODS
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STATELESS_METHODS(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: CODEC_STATEFUL
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_STATEFUL(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: CODEC_STATELESS
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_STATELESS(enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: CODEC_STATELESS_WINIT
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC_STATELESS_WINIT(enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:251,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: getmultibytecodec
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleNoBlock
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getmultibytecodec(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:267,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:268,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:272,1
    - Dst: getmultibytecodec
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:276,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:281,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:285,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:290,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - self
    - encoding
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 298
    functionName: getcodec
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - getmultibytecodec
    - PyUnicode_AsUTF8
    - PyCapsule_New
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyUnicode_Check
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getcodec(PyObject *self, PyObject *encoding)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:313,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:314,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: register_maps
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - strcpy
    - PyCapsule_New
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int register_maps(PyObject *module)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - body
    - modifier
    - haystack
    - haystacksize
    argTypes:
    - ucs2_t
    - ucs2_t
    - struct pair_encodemap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 353
    functionName: find_pairencmap
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: DBCHAR
    signature: "DBCHAR find_pairencmap(ucs2_t body, ucs2_t modifier,\n                const
      struct pair_encodemap *haystack, int haystacksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - locale
    - ','
    - charset
    - ','
    - encmap
    - ','
    - decmap
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: IMPORT_MAP
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMPORT_MAP(locale, charset, encmap, decmap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:367,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:371,1
    - Dst: PyCapsule_IsValid
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:375,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:389,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h:393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - modname
    - symbol
    - encmap
    - decmap
    argTypes:
    - char*
    - char*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 395
    functionName: importmap
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached:
    - PyCapsule_IsValid
    - PyImport_ImportModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyCapsule_GetPointer
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int importmap(const char *modname, const char *symbol,\n          const
      void **encmap, const void **decmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - loc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 418
    functionName: I_AM_A_MODULE_FOR
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I_AM_A_MODULE_FOR(loc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:31,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:35,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:46,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:48,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:52,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:53,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:58,1
    - Dst: _multibytecodec_MultibyteCodec_encode_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:62,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MultibyteCodecObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 24
    functionDepth: 5
    functionLinenumber: 24
    functionLinenumberEnd: 66
    functionName: _multibytecodec_MultibyteCodec_encode
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteCodec_encode_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteCodec_encode(MultibyteCodecObject *self, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:94,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:98,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:102,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:105,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:106,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:115,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:117,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:122,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:127,1
    - Dst: _multibytecodec_MultibyteCodec_decode_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:131,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:136,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MultibyteCodecObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 140
    functionName: _multibytecodec_MultibyteCodec_decode
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - strlen
    - _multibytecodec_MultibyteCodec_decode_impl
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteCodec_decode(MultibyteCodecObject *self, PyObject *const
      *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:162,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:166,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:174,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:175,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:179,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:180,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_encode_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:184,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 188
    functionName: _multibytecodec_MultibyteIncrementalEncoder_encode
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _multibytecodec_MultibyteIncrementalEncoder_encode_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_encode(MultibyteIncrementalEncoderObject
      *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: _multibytecodec_MultibyteIncrementalEncoder_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_getstate(MultibyteIncrementalEncoderObject
      *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:225,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:226,1
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: _multibytecodec_MultibyteIncrementalEncoder_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _PyArg_BadArgument
    - _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_setstate(MultibyteIncrementalEncoderObject
      *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalEncoder_reset_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteIncrementalEncoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: _multibytecodec_MultibyteIncrementalEncoder_reset
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalEncoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalEncoder_reset(MultibyteIncrementalEncoderObject
      *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:273,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:277,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:281,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:284,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:285,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:292,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:296,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:297,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_decode_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:301,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:306,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 310
    functionName: _multibytecodec_MultibyteIncrementalDecoder_decode
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_decode_impl
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyObject_GetBuffer
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_decode(MultibyteIncrementalDecoderObject
      *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 327
    functionName: _multibytecodec_MultibyteIncrementalDecoder_getstate
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_getstate(MultibyteIncrementalDecoderObject
      *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:347,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:348,1
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 356
    functionName: _multibytecodec_MultibyteIncrementalDecoder_setstate
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - _PyArg_BadArgument
    - _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_setstate(MultibyteIncrementalDecoderObject
      *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteIncrementalDecoder_reset_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteIncrementalDecoderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: _multibytecodec_MultibyteIncrementalDecoder_reset
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteIncrementalDecoder_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteIncrementalDecoder_reset(MultibyteIncrementalDecoderObject
      *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:393,1
    - Dst: _multibytecodec_MultibyteStreamReader_read_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 6
    functionLinenumber: 387
    functionLinenumberEnd: 405
    functionName: _multibytecodec_MultibyteStreamReader_read
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_read_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_read(MultibyteStreamReaderObject *self,
      PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:425,1
    - Dst: _multibytecodec_MultibyteStreamReader_readline_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 437
    functionName: _multibytecodec_MultibyteStreamReader_readline
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_readline_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_readline(MultibyteStreamReaderObject *self,
      PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:457,1
    - Dst: _multibytecodec_MultibyteStreamReader_readlines_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 451
    functionDepth: 6
    functionLinenumber: 451
    functionLinenumberEnd: 469
    functionName: _multibytecodec_MultibyteStreamReader_readlines
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _multibytecodec_MultibyteStreamReader_readlines_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_readlines(MultibyteStreamReaderObject
      *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteStreamReader_reset_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteStreamReaderObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: _multibytecodec_MultibyteStreamReader_reset
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamReader_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamReader_reset(MultibyteStreamReaderObject *self,
      PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _multibytecodec_MultibyteStreamWriter_reset_impl
      Src: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - MultibyteStreamWriterObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 5
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: _multibytecodec_MultibyteStreamWriter_reset
    functionSourceFile: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
    functionUses: 0
    functionsReached:
    - _multibytecodec_MultibyteStreamWriter_reset_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _multibytecodec_MultibyteStreamWriter_reset(MultibyteStreamWriterObject *self,
      PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: NSObject
    functionSourceFile: /src/Python-3.8.3/Mac/PythonLauncher/FileSettings.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: end
    signature: end NSObject <FileSettingsSource>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 32
    functionName: NSDocument
    functionSourceFile: /src/Python-3.8.3/Mac/PythonLauncher/MyDocument.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: interface NSDocument <FileSettingsSource>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 23
    functionName: NSWindowController
    functionSourceFile: /src/Python-3.8.3/Mac/PythonLauncher/PreferencesWindowController.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: interface NSWindowController <FileSettingsSource>
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: MyAppDelegate
    functionSourceFile: /src/Python-3.8.3/Mac/PythonLauncher/MyAppDelegate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: interface
    signature: interface MyAppDelegate
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:65,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:69,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:71,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:76,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 88
    functionName: get_python_path
    functionSourceFile: /src/Python-3.8.3/Mac/Tools/pythonw.c
    functionUses: 0
    functionsReached:
    - dladdr
    - strlen
    - malloc
    - strcpy
    linkageType: ''
    returnType: char
    signature: char * get_python_path(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: posix_spawnattr_init
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:102,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:103,1
    - Dst: posix_spawnattr_setbinpref_np
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:128,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:130,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:134,1
    - Dst: exit
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:135,1
    - Dst: posix_spawnattr_setflags
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:144,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - spawnattr
    argTypes:
    - posix_spawnattr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 148
    functionName: setup_spawnattr
    functionSourceFile: /src/Python-3.8.3/Mac/Tools/pythonw.c
    functionUses: 0
    functionsReached:
    - posix_spawnattr_setflags
    - err
    - posix_spawnattr_setbinpref_np
    - fprintf
    - exit
    - posix_spawnattr_init
    linkageType: ''
    returnType: void
    signature: void setup_spawnattr(posix_spawnattr_t* spawnattr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_python_path
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:153,1
    - Dst: _NSGetExecutablePath
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:160,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:171,1
    - Dst: realpath
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:176,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:177,1
    - Dst: strlcat
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:180,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:182,1
    - Dst: realpath
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:186,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:187,1
    - Dst: strlcat
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:189,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:191,1
    - Dst: strlcat
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:193,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:195,1
    - Dst: setenv
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:208,1
    - Dst: setup_spawnattr
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:226,1
    - Dst: posix_spawn
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:227,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:229,1
    - Dst: execve
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:232,1
    - Dst: err
      Src: /src/Python-3.8.3/Mac/Tools/pythonw.c:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 235
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Mac/Tools/pythonw.c
    functionUses: 14
    functionsReached:
    - strrchr
    - _NSGetExecutablePath
    - setenv
    - realpath
    - setup_spawnattr
    - get_python_path
    - execve
    - err
    - strlcat
    - posix_spawn
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_panic__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Py_FatalError
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 12
    functionsReached:
    - __coverity_panic__
    linkageType: ''
    returnType: void
    signature: void Py_FatalError(const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Misc/coverity_model.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ival
    argTypes:
    - sdigit
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: get_small_int
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PyObject
    signature: PyObject *get_small_int(sdigit ival)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_small_int
      Src: /src/Python-3.8.3/Misc/coverity_model.c:55,1
    - Dst: assert
      Src: /src/Python-3.8.3/Misc/coverity_model.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ival
    argTypes:
    - long
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: PyLong_FromLong
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 308
    functionsReached:
    - assert
    - get_small_int
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyLong_FromLong(long ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Misc/coverity_model.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: PyLong_FromLongLong
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 29
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyLong_FromLongLong(long long ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Misc/coverity_model.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ival
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: PyLong_FromSsize_t
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 129
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyLong_FromSsize_t(Py_ssize_t ival)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sink__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - filename
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: PyErr_SetFromErrnoWithFilename
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 7
    functionsReached:
    - __coverity_tainted_data_sink__
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char
      *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sink__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:90,1
    - Dst: __coverity_tainted_data_sink__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - size
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: Py_DecodeLocale
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 6
    functionsReached:
    - __coverity_tainted_data_sink__
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *Py_DecodeLocale(const char* arg, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_string_argument__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - char*
    - Py_ssize_t
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: r_string
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 8
    functionsReached:
    - __coverity_tainted_string_argument__
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t r_string(char *s, Py_ssize_t n, RFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/Python-3.8.3/Misc/coverity_model.c:108,1
    - Dst: __coverity_tainted_string_sanitize_content__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: r_long
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 2
    functionsReached:
    - __coverity_tainted_string_sanitize_content__
    - r_string
    linkageType: ''
    returnType: long
    signature: long r_long(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_close__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 123
    functionName: fdopendir
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 3
    functionsReached:
    - __coverity_close__
    linkageType: ''
    returnType: DIR
    signature: DIR *fdopendir(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:135,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:136,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:137,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:138,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:139,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:140,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - y
    - m
    - d
    - hh
    - mm
    - ss
    - dstflag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: build_struct_time
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 3
    functionsReached:
    - __coverity_tainted_data_sanitize__
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:151,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:152,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: ymd_to_ord
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 9
    functionsReached:
    - __coverity_tainted_data_sanitize__
    linkageType: ''
    returnType: int
    signature: int ymd_to_ord(int year, int month, int day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:161,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:162,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: normalize_date
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 2
    functionsReached:
    - __coverity_tainted_data_sanitize__
    linkageType: ''
    returnType: int
    signature: int normalize_date(int *year, int *month, int *day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:173,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:174,1
    - Dst: __coverity_tainted_data_sanitize__
      Src: /src/Python-3.8.3/Misc/coverity_model.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - year
    - month
    - day
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: weekday
    functionSourceFile: /src/Python-3.8.3/Misc/coverity_model.c
    functionUses: 5
    functionsReached:
    - __coverity_tainted_data_sanitize__
    linkageType: ''
    returnType: int
    signature: int weekday(int year, int month, int day)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/methodobject.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ml
    - self
    argTypes:
    - PyMethodDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: PyCFunction_New
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_New(PyMethodDef *ml, PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/methodobject.c:65,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/methodobject.c:74,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/methodobject.c:78,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:84,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:86,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/methodobject.c:89,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - ml
    - self
    - module
    argTypes:
    - PyMethodDef*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: PyCFunction_NewEx
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 4
    functionsReached:
    - PyObject_INIT
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    - PyErr_Format
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:96,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:97,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/methodobject.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: PyCFunction_GetFunction
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 1
    functionsReached:
    - PyCFunction_Check
    - PyErr_BadInternalCall
    - PyCFunction_GET_FUNCTION
    linkageType: ''
    returnType: PyCFunction
    signature: PyCFunction PyCFunction_GetFunction(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:106,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:107,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: PyCFunction_GetSelf
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyErr_BadInternalCall
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_GetSelf(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:116,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:117,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/Python-3.8.3/Objects/methodobject.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: PyCFunction_GetFlags
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_GET_FLAGS
    - PyCFunction_Check
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: int
    signature: int PyCFunction_GetFlags(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/methodobject.c:128,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/methodobject.c:130,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:132,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:133,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/methodobject.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyCFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: meth_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void meth_dealloc(PyCFunctionObject *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/methodobject.c:147,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:149,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/methodobject.c:150,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/methodobject.c:152,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/methodobject.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - m
    - Py_UNUSED(ignored)
    argTypes:
    - PyCFunctionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: meth_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyUnicode_FromString
    - Py_BuildValue
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_reduce(PyCFunctionObject *m, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/Python-3.8.3/Objects/methodobject.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - closure
    argTypes:
    - PyCFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: meth_get__text_signature__
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__text_signature__(PyCFunctionObject *m, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/Python-3.8.3/Objects/methodobject.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - closure
    argTypes:
    - PyCFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: meth_get__doc__
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__doc__(PyCFunctionObject *m, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/methodobject.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - m
    - closure
    argTypes:
    - PyCFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: meth_get__name__
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__name__(PyCFunctionObject *m, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/methodobject.c:191,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:193,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/methodobject.c:194,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:196,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/methodobject.c:196,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/methodobject.c:198,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/methodobject.c:203,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:205,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/methodobject.c:209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - m
    - closure
    argTypes:
    - PyCFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 212
    functionName: meth_get__qualname__
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyUnicode_FromString
    - Py_DECREF
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyType_Check
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__qualname__(PyCFunctionObject *m, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/methodobject.c:217,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/methodobject.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyCFunctionObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: meth_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int meth_traverse(PyCFunctionObject *m, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:227,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - m
    - closure
    argTypes:
    - PyCFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: meth_get__self__
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_get__self__(PyCFunctionObject *m, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:253,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/methodobject.c:254,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/methodobject.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyCFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: meth_repr
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_repr(PyCFunctionObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:270,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:271,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/methodobject.c:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 286
    functionName: meth_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      meth_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Objects/methodobject.c:292,1
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Objects/methodobject.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyCFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: meth_hash
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t meth_hash(PyCFunctionObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/methodobject.c:347,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/methodobject.c:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (numfree == 0)
      pos:
        line_end: 349
        line_start: 349
        source_file: /src/Python-3.8.3/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 352
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 352
    functionName: PyCFunction_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    - assert
    linkageType: ''
    returnType: int
    signature: int PyCFunction_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_ClearFreeList
      Src: /src/Python-3.8.3/Objects/methodobject.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 4
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: PyCFunction_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyCFunction_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/methodobject.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: _PyCFunction_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyCFunction_DebugMallocStats(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/methodobject.c:379,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyCFunction_Check(func))
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/Python-3.8.3/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: get_name
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 3
    functionsReached:
    - assert
    - PyCFunction_Check
    linkageType: ''
    returnType: char
    signature: 'char *

      get_name(PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/methodobject.c:389,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/methodobject.c:389,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/methodobject.c:390,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/methodobject.c:390,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/methodobject.c:391,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/methodobject.c:392,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/methodobject.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - func
    - kwnames
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 388
        line_start: 388
        source_file: /src/Python-3.8.3/Objects/methodobject.c
    - condition: (PyCFunction_Check(func))
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/Python-3.8.3/Objects/methodobject.c
    constantsTouched: []
    func_position:
      end: 397
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 397
    functionName: cfunction_check_kwargs
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - get_name
    - PyCFunction_Check
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int cfunction_check_kwargs(PyObject *func, PyObject *kwnames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:402,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/methodobject.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: cfunction_enter_call
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - Py_EnterRecursiveCall
    - PyCFunction_GET_FUNCTION
    linkageType: ''
    returnType: funcptr
    signature: funcptr cfunction_enter_call(PyObject *func)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfunction_check_kwargs
      Src: /src/Python-3.8.3/Objects/methodobject.c:413,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/methodobject.c:416,1
    - Dst: cfunction_enter_call
      Src: /src/Python-3.8.3/Objects/methodobject.c:418,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/methodobject.c:422,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:422,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 425
    functionName: cfunction_vectorcall_FASTCALL
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_check_kwargs
    - PyVectorcall_NARGS
    - cfunction_enter_call
    - Py_LeaveRecursiveCall
    - meth
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_FASTCALL(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/methodobject.c:431,1
    - Dst: cfunction_enter_call
      Src: /src/Python-3.8.3/Objects/methodobject.c:433,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/methodobject.c:437,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:437,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 440
    functionName: cfunction_vectorcall_FASTCALL_KEYWORDS
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_NARGS
    - cfunction_enter_call
    - Py_LeaveRecursiveCall
    - meth
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_FASTCALL_KEYWORDS(\n    PyObject
      *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cfunction_check_kwargs
      Src: /src/Python-3.8.3/Objects/methodobject.c:446,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/methodobject.c:449,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/methodobject.c:451,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/methodobject.c:452,1
    - Dst: cfunction_enter_call
      Src: /src/Python-3.8.3/Objects/methodobject.c:455,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/methodobject.c:459,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:459,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 462
    functionName: cfunction_vectorcall_NOARGS
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_check_kwargs
    - PyVectorcall_NARGS
    - cfunction_enter_call
    - Py_LeaveRecursiveCall
    - get_name
    - PyErr_Format
    - meth
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_NOARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cfunction_check_kwargs
      Src: /src/Python-3.8.3/Objects/methodobject.c:468,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/methodobject.c:471,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/methodobject.c:473,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/methodobject.c:475,1
    - Dst: cfunction_enter_call
      Src: /src/Python-3.8.3/Objects/methodobject.c:478,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/methodobject.c:482,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/methodobject.c:482,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/methodobject.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 485
    functionName: cfunction_vectorcall_O
    functionSourceFile: /src/Python-3.8.3/Objects/methodobject.c
    functionUses: 0
    functionsReached:
    - cfunction_check_kwargs
    - PyVectorcall_NARGS
    - cfunction_enter_call
    - Py_LeaveRecursiveCall
    - get_name
    - PyErr_Format
    - meth
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncfunction_vectorcall_O(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/cellobject.c:13,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:17,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/cellobject.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: PyCell_New
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCell_New(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/cellobject.c:41,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/cellobject.c:45,1
    - Dst: PyCell_New
      Src: /src/Python-3.8.3/Objects/cellobject.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: cell_new
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyCell_New
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/cellobject.c:57,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/cellobject.c:58,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:61,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/cellobject.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 63
    functionName: PyCell_Get
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GET
    - PyCell_Check
    - Py_XINCREF
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCell_Get(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/cellobject.c:69,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/cellobject.c:70,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/cellobject.c:73,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:74,1
    - Dst: PyCell_SET
      Src: /src/Python-3.8.3/Objects/cellobject.c:75,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - op
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: PyCell_Set
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GET
    - Py_XDECREF
    - PyErr_BadInternalCall
    - PyCell_SET
    - PyCell_Check
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int PyCell_Set(PyObject *op, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/cellobject.c:83,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:84,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/cellobject.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyCellObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: cell_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void cell_dealloc(PyCellObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/cellobject.c:92,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/cellobject.c:95,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/cellobject.c:95,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/cellobject.c:103,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/cellobject.c:105,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (a != NULL && b != NULL)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/Python-3.8.3/Objects/cellobject.c
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: cell_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    - assert
    - PyCell_Check
    - Py_RETURN_RICHCOMPARE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/cellobject.c:112,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/cellobject.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyCellObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: cell_repr
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_repr(PyCellObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/cellobject.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyCellObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: cell_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cell_traverse(PyCellObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/cellobject.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyCellObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: cell_clear
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int cell_clear(PyCellObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/cellobject.c:138,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyCellObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    functionName: cell_get_contents
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cell_get_contents(PyCellObject *op, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:148,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/cellobject.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - op
    - obj
    - Py_UNUSED(ignored)
    argTypes:
    - PyCellObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: cell_set_contents
    functionSourceFile: /src/Python-3.8.3/Objects/cellobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int cell_set_contents(PyCellObject *op, PyObject *obj, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_WEAKREFS_LISTPTR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - head
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: _PyWeakref_GetWeakrefCount
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyWeakref_GetWeakrefCount(PyWeakReference *head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - ob
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: init_weakref
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void init_weakref(PyWeakReference *self, PyObject *ob, PyObject *callback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:38,1
    - Dst: init_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:40,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ob
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: new_weakref
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - init_weakref
    linkageType: ''
    returnType: PyWeakReference
    signature: 'PyWeakReference *

      new_weakref(PyObject *ob, PyObject *callback)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:58,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 77
    functionName: clear_weakref
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - GET_WEAKREFS_LISTPTR
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void clear_weakref(PyWeakReference *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:95,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:96,1
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:96,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/Python-3.8.3/Objects/weakrefobject.c
    - condition: (PyWeakref_Check(self))
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/Python-3.8.3/Objects/weakrefobject.c
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: _PyWeakref_ClearRef
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 1
    functionsReached:
    - assert
    - PyWeakref_Check
    - clear_weakref
    linkageType: ''
    returnType: void
    signature: void _PyWeakref_ClearRef(PyWeakReference *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:107,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:108,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: weakref_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - clear_weakref
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void weakref_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyWeakReference*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: gc_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int gc_traverse(PyWeakReference *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: gc_clear
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 3
    functionsReached:
    - clear_weakref
    linkageType: ''
    returnType: int
    signature: int gc_clear(PyWeakReference *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:134,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:135,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyWeakReference*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: weakref_call
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_call(PyWeakReference *self, PyObject *args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:148,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:150,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:153,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:154,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: weakref_hash
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - PyErr_SetString
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t weakref_hash(PyWeakReference *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:164,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:165,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:168,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:171,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:173,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:176,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:177,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:180,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:180,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:184,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:187,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:191,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 194
    functionName: weakref_repr
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_repr(PyWeakReference *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:204,1
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:205,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:208,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:209,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:218,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:219,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:220,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:221,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyWeakReference*
    - PyWeakReference*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 226
    functionName: weakref_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - PyWeakref_Check
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref_richcompare(PyWeakReference* self, PyWeakReference* other, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_CheckRefExact
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:244,1
    - Dst: PyWeakref_CheckProxy
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - head
    - refp
    - proxyp
    argTypes:
    - PyWeakReference*
    - PyWeakReference**
    - PyWeakReference**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 255
    functionName: get_basic_refs
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyWeakref_CheckProxy
    - PyWeakref_CheckRefExact
    linkageType: ''
    returnType: void
    signature: "void get_basic_refs(PyWeakReference *head,\n               PyWeakReference
      **refp, PyWeakReference **proxyp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - newref
    - prev
    argTypes:
    - PyWeakReference*
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 266
    functionName: insert_after
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_after(PyWeakReference *newref, PyWeakReference *prev)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - newref
    - list
    argTypes:
    - PyWeakReference*
    - PyWeakReference**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 281
    functionName: insert_head
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void insert_head(PyWeakReference *newref, PyWeakReference **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - funcname
    - args
    - kwargs
    - obp
    - callbackp
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: parse_weakref_init_args
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: "int parse_weakref_init_args(const char *funcname, PyObject *args,
      PyObject *kwargs,\n                        PyObject **obp, PyObject **callbackp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_weakref_init_args
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:296,1
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:300,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:300,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:301,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:303,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:308,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:309,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:313,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:323,1
    - Dst: init_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:325,1
    - Dst: insert_head
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:327,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:332,1
    - Dst: insert_head
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:335,1
    - Dst: insert_after
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:337,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 342
    functionName: weakref___new__
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - insert_after
    - parse_weakref_init_args
    - PyTypeObject*::tp_alloc
    - GET_WEAKREFS_LISTPTR
    - Py_INCREF
    - init_weakref
    - insert_head
    - PyErr_Format
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - get_basic_refs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      weakref___new__(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:349,1
    - Dst: parse_weakref_init_args
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: weakref___init__
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - parse_weakref_init_args
    linkageType: ''
    returnType: int
    signature: int weakref___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:412,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 418
    functionName: proxy_checkref
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: int
    signature: int proxy_checkref(PyWeakReference *proxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: UNWRAP
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNWRAP(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - generic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 441
    functionName: WRAP_UNARY
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_UNARY(method, generic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - generic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 454
    functionName: WRAP_BINARY
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_BINARY(method, generic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - generic
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 474
    functionName: WRAP_TERNARY
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_TERNARY(method, generic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - method
    - ','
    - special
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: WRAP_METHOD
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRAP_METHOD(method, special)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:496,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:499,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:499,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: proxy_repr
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyWeakref_GET_OBJECT
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_repr(PyWeakReference *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:507,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:509,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:510,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - proxy
    - name
    - value
    argTypes:
    - PyWeakReference*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: proxy_setattr
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetAttr
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - proxy_checkref
    linkageType: ''
    returnType: int
    signature: int proxy_setattr(PyWeakReference *proxy, PyObject *name, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNWRAP
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:519,1
    - Dst: UNWRAP
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:520,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - proxy
    - v
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: proxy_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - UNWRAP
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_richcompare(PyObject *proxy, PyObject *v, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:563,1
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:564,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:567,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:568,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 571
    functionName: proxy_bool
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyWeakref_GET_OBJECT
    - PyObject_IsTrue
    - proxy_checkref
    linkageType: ''
    returnType: int
    signature: int proxy_bool(PyWeakReference *proxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:577,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:578,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 580
    functionName: proxy_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - clear_weakref
    linkageType: ''
    returnType: void
    signature: void proxy_dealloc(PyWeakReference *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:587,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:590,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:591,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:592,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - proxy
    - value
    argTypes:
    - PyWeakReference*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: proxy_contains
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - PySequence_Contains
    - proxy_checkref
    linkageType: ''
    returnType: int
    signature: int proxy_contains(PyWeakReference *proxy, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:602,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:605,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:606,1
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:607,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 610
    functionName: proxy_length
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - PyObject_Length
    - proxy_checkref
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t proxy_length(PyWeakReference *proxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:617,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:620,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:621,1
    - Dst: PyObject_DelItem
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:624,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - proxy
    - key
    - value
    argTypes:
    - PyWeakReference*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: proxy_setitem
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - PyObject_DelItem
    - PyObject_SetItem
    - proxy_checkref
    linkageType: ''
    returnType: int
    signature: int proxy_setitem(PyWeakReference *proxy, PyObject *key, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:637,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:639,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:640,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: proxy_iter
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - PyObject_GetIter
    - proxy_checkref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_iter(PyWeakReference *proxy)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_checkref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:649,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:652,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:653,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:654,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - PyWeakReference*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 657
    functionName: proxy_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - Py_INCREF
    - PyIter_Next
    - proxy_checkref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      proxy_iternext(PyWeakReference *proxy)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:801,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:801,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:802,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:804,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:807,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:808,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:815,1
    - Dst: new_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:822,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:824,1
    - Dst: insert_head
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:827,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:833,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:834,1
    - Dst: insert_head
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:843,1
    - Dst: insert_after
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:845,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - ob
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 850
    functionName: PyWeakref_NewRef
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 10
    functionsReached:
    - insert_after
    - Py_DECREF
    - GET_WEAKREFS_LISTPTR
    - Py_INCREF
    - new_weakref
    - insert_head
    - PyErr_Format
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - get_basic_refs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_NewRef(PyObject *ob, PyObject *callback)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:860,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:860,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:861,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:863,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:866,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:867,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:874,1
    - Dst: new_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:881,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:885,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:886,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:888,1
    - Dst: get_basic_refs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:889,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:896,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:898,1
    - Dst: insert_head
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:907,1
    - Dst: insert_after
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:909,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - ob
    - callback
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 853
    functionDepth: 3
    functionLinenumber: 853
    functionLinenumberEnd: 915
    functionName: PyWeakref_NewProxy
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 2
    functionsReached:
    - insert_after
    - Py_DECREF
    - PyCallable_Check
    - GET_WEAKREFS_LISTPTR
    - Py_INCREF
    - new_weakref
    - insert_head
    - PyErr_Format
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - get_basic_refs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_NewProxy(PyObject *ob, PyObject *callback)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWeakref_Check
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:921,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:922,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ref
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 926
    functionName: PyWeakref_GetObject
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 7
    functionsReached:
    - PyWeakref_Check
    - PyErr_BadInternalCall
    - PyWeakref_GET_OBJECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWeakref_GetObject(PyObject *ref)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:934,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:937,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - callback
    argTypes:
    - PyWeakReference*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 940
    functionName: handle_callback
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyErr_WriteUnraisable
    linkageType: ''
    returnType: void
    signature: void handle_callback(PyWeakReference *ref, PyObject *callback)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:954,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:954,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:956,1
    - Dst: GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:959,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:962,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:964,1
    - Dst: _PyWeakref_GetWeakrefCount
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:968,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:971,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:976,1
    - Dst: handle_callback
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:979,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:980,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:987,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:989,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:998,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:999,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1003,1
    - Dst: clear_weakref
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1006,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1010,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1014,1
    - Dst: handle_callback
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1015,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1018,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1020,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1020,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/weakrefobject.c:1021,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - object
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1019
        line_start: 1019
        source_file: /src/Python-3.8.3/Objects/weakrefobject.c
    constantsTouched: []
    func_position:
      end: 1023
      start: 948
    functionDepth: 2
    functionLinenumber: 948
    functionLinenumberEnd: 1023
    functionName: PyObject_ClearWeakRefs
    functionSourceFile: /src/Python-3.8.3/Objects/weakrefobject.c
    functionUses: 28
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - GET_WEAKREFS_LISTPTR
    - Py_INCREF
    - PyErr_Fetch
    - _PyErr_ChainExceptions
    - PyErr_BadInternalCall
    - clear_weakref
    - PyErr_Restore
    - handle_callback
    - _PyWeakref_GetWeakrefCount
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: void PyObject_ClearWeakRefs(PyObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/object.c:31,1
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Objects/object.c:31,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/object.c:32,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/object.c:32,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/object.c:34,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/object.c:35,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:37,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/object.c:38,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/object.c:40,1
    - Dst: _PyDict_CheckConsistency
      Src: /src/Python-3.8.3/Objects/object.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: _PyObject_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsFreed
    - CHECK
    - Py_REFCNT
    - _PyType_CheckConsistency
    - PyDict_Check
    - _PyUnicode_CheckConsistency
    - PyUnicode_Check
    - _PyDict_CheckConsistency
    linkageType: ''
    returnType: int
    signature: int _PyObject_CheckConsistency(PyObject *op, int check_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: _Py_GetRefTotal
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetRefTotal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:65,1
    - Dst: _Py_GetRefTotal
      Src: /src/Python-3.8.3/Objects/object.c:68,1
    - Dst: _Py_GetAllocatedBlocks
      Src: /src/Python-3.8.3/Objects/object.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: _PyDebug_PrintTotalRefs
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_GetRefTotal
    - _Py_GetAllocatedBlocks
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyDebug_PrintTotalRefs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - force
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: _Py_AddToAllObjects
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT
    linkageType: ''
    returnType: void
    signature: void _Py_AddToAllObjects(PyObject *op, int force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Objects/object.c:129,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:136,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:141,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:144,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: _Py_dump_counts
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _Py_dump_counts(FILE* f)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/object.c:159,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/object.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:166,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/object.c:169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:170,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 177
    functionName: _Py_get_counts
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - Py_BuildValue
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_get_counts(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:185,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:197,1
    - Dst: _Py_AddToAllObjects
      Src: /src/Python-3.8.3/Objects/object.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 209
    functionName: _Py_inc_count
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - _Py_AddToAllObjects
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _Py_inc_count(PyTypeObject *tp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 226
    functionName: _Py_dec_count
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _Py_dec_count(PyTypeObject *tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_AssertFailed
      Src: /src/Python-3.8.3/Objects/object.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: _Py_NegativeRefcount
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyObject_AssertFailed
    linkageType: ''
    returnType: void
    signature: void _Py_NegativeRefcount(const char *filename, int lineno, PyObject
      *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/object.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: Py_IncRef
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void Py_IncRef(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Py_DecRef
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void Py_DecRef(PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/object.c:257,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:259,1
    - Dst: PyType_GetFlags
      Src: /src/Python-3.8.3/Objects/object.c:260,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:261,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/object.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - tp
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: PyObject_Init
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_NewReference
    - PyErr_NoMemory
    - PyType_GetFlags
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Init(PyObject *op, PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/object.c:271,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:273,1
    - Dst: PyObject_Init
      Src: /src/Python-3.8.3/Objects/object.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - tp
    - size
    argTypes:
    - PyVarObject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: PyObject_InitVar
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - Py_SIZE
    - PyObject_Init
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/object.c:282,1
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:282,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/object.c:284,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/object.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tp
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: _PyObject_New
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - _PyObject_SIZE
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_New(PyTypeObject *tp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:292,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/object.c:293,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/object.c:295,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/object.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - tp
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 297
    functionName: _PyObject_NewVar
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_INIT_VAR
    - _PyObject_VAR_SIZE
    - PyErr_NoMemory
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_NewVar(PyTypeObject *tp, Py_ssize_t nitems)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:302,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:307,1
    - Dst: _PyGC_FINALIZED
      Src: /src/Python-3.8.3/Objects/object.c:307,1
    - Dst: PyTypeObject*::tp_finalize
      Src: /src/Python-3.8.3/Objects/object.c:310,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:311,1
    - Dst: _PyGC_SET_FINALIZED
      Src: /src/Python-3.8.3/Objects/object.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: PyObject_CallFinalizer
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyGC_SET_FINALIZED
    - Py_TYPE
    - _PyGC_FINALIZED
    - PyType_IS_GC
    - PyTypeObject*::tp_finalize
    linkageType: ''
    returnType: void
    signature: void PyObject_CallFinalizer(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:323,1
    - Dst: PyObject_CallFinalizer
      Src: /src/Python-3.8.3/Objects/object.c:328,1
    - Dst: _PyObject_ASSERT_WITH_MSG
      Src: /src/Python-3.8.3/Objects/object.c:333,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/object.c:343,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:346,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:347,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:347,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/object.c:348,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:359,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 363
    functionName: PyObject_CallFinalizerFromDealloc
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 5
    functionsReached:
    - _Py_NewReference
    - _PyObject_ASSERT
    - Py_FatalError
    - Py_TYPE
    - _PyObject_GC_IS_TRACKED
    - _PyObject_ASSERT_WITH_MSG
    - PyObject_CallFinalizer
    - PyType_IS_GC
    linkageType: ''
    returnType: int
    signature: int PyObject_CallFinalizerFromDealloc(PyObject *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Objects/object.c:369,1
    - Dst: PyOS_CheckStack
      Src: /src/Python-3.8.3/Objects/object.c:372,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:373,1
    - Dst: clearerr
      Src: /src/Python-3.8.3/Objects/object.c:377,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/object.c:395,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/object.c:397,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/object.c:400,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/Objects/object.c:401,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/object.c:401,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:402,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:404,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/object.c:406,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/Objects/object.c:411,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/object.c:411,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:413,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:417,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:422,1
    - Dst: ferror
      Src: /src/Python-3.8.3/Objects/object.c:426,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Objects/object.c:427,1
    - Dst: clearerr
      Src: /src/Python-3.8.3/Objects/object.c:428,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - op
    - fp
    - flags
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 433
    functionName: PyObject_Print
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 2
    functionsReached:
    - ferror
    - Py_DECREF
    - fwrite
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PyObject_Str
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_Check
    - PyUnicode_AsEncodedString
    - PyErr_SetString
    - clearerr
    - PyBytes_AS_STRING
    - PyObject_Repr
    - PyOS_CheckStack
    - PyErr_Format
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyObject_Print(PyObject *op, FILE *fp, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: _Py_BreakPoint
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_BreakPoint(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_IsPtrFreed
      Src: /src/Python-3.8.3/Objects/object.c:451,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/Python-3.8.3/Objects/object.c:451,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/Python-3.8.3/Objects/object.c:457,1
    - Dst: _PyMem_IsPtrFreed
      Src: /src/Python-3.8.3/Objects/object.c:460,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: _PyObject_IsFreed
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 3
    functionsReached:
    - _PyMem_IsPtrFreed
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsFreed(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Objects/object.c:472,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:475,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:476,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:481,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:484,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:485,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:487,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:488,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:489,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:493,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:494,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Objects/object.c:496,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/object.c:498,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Objects/object.c:500,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:501,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/object.c:503,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Objects/object.c:504,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:506,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 508
    functionName: _PyObject_Dump
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - fflush
    - PyGILState_Ensure
    - _PyObject_IsFreed
    - PyErr_Fetch
    - PyGILState_Release
    - fprintf
    - Py_TYPE
    - PyErr_Restore
    - PyObject_Print
    linkageType: ''
    returnType: void
    signature: void _PyObject_Dump(PyObject* op)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Objects/object.c:514,1
    - Dst: PyOS_CheckStack
      Src: /src/Python-3.8.3/Objects/object.c:517,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:518,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:523,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:524,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/object.c:525,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:532,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:532,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:537,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:540,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:543,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:547,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/object.c:551,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 531
        line_start: 531
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 555
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 555
    functionName: PyObject_Repr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 7
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_READY
    - PyErr_CheckSignals
    - Py_LeaveRecursiveCall
    - PyUnicode_FromFormat
    - Py_EnterRecursiveCall
    - Py_TYPE
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - PyOS_CheckStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Repr(PyObject *v)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Objects/object.c:561,1
    - Dst: PyOS_CheckStack
      Src: /src/Python-3.8.3/Objects/object.c:564,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:565,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:570,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/object.c:571,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/object.c:573,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:576,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:579,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/object.c:580,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:586,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:586,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:591,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:593,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:594,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:597,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:598,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:601,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/object.c:605,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:608,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/object.c:608,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/Python-3.8.3/Objects/object.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 610
      start: 557
    functionDepth: 4
    functionLinenumber: 557
    functionLinenumberEnd: 610
    functionName: PyObject_Str
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 12
    functionsReached:
    - PyUnicode_FromString
    - assert
    - PyUnicode_READY
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyErr_CheckSignals
    - Py_LeaveRecursiveCall
    - _PyUnicode_CheckConsistency
    - Py_EnterRecursiveCall
    - Py_TYPE
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_Repr
    - PyOS_CheckStack
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Str(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/object.c:617,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/object.c:621,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Objects/object.c:625,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:626,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Objects/object.c:630,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/object.c:631,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:632,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 612
    functionDepth: 4
    functionLinenumber: 612
    functionLinenumberEnd: 637
    functionName: PyObject_ASCII
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_GET_SIZE
    - _PyUnicode_AsASCIIString
    - PyUnicode_IS_ASCII
    - PyBytes_AS_STRING
    - PyUnicode_DecodeASCII
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_ASCII(PyObject *v)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Objects/object.c:645,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/object.c:647,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:648,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/object.c:652,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/object.c:654,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:655,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/object.c:658,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:659,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:662,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:667,1
    - Dst: PyBytes_FromObject
      Src: /src/Python-3.8.3/Objects/object.c:669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 639
    functionDepth: 1
    functionLinenumber: 639
    functionLinenumberEnd: 670
    functionName: PyObject_Bytes
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyBytes_CheckExact
    - _PyObject_LookupSpecial
    - PyBytes_Check
    - PyBytes_FromString
    - PyErr_Format
    - Py_TYPE
    - _PyObject_CallNoArg
    - PyBytes_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Bytes(PyObject *v)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/object.c:717,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:723,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:735,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:747,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 756
    functionName: do_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_DECREF
    - PyType_IsSubtype
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:766,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:768,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/object.c:769,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:772,1
    - Dst: do_richcompare
      Src: /src/Python-3.8.3/Objects/object.c:774,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/object.c:775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (Py_LT <= op && op <= Py_GE)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 777
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 777
    functionName: PyObject_RichCompare
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 13
    functionsReached:
    - PyErr_Occurred
    - do_richcompare
    - PyErr_BadInternalCall
    - Py_LeaveRecursiveCall
    - Py_EnterRecursiveCall
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_RichCompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/object.c:796,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/object.c:799,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/object.c:802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 805
    functionName: PyObject_RichCompareBool
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 37
    functionsReached:
    - Py_DECREF
    - PyObject_IsTrue
    - PyObject_RichCompare
    - PyBool_Check
    linkageType: ''
    returnType: int
    signature: int PyObject_RichCompareBool(PyObject *v, PyObject *w, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:810,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 813
    functionName: PyObject_HashNotImplemented
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyObject_HashNotImplemented(PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:818,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/object.c:827,1
    - Dst: PyObject_HashNotImplemented
      Src: /src/Python-3.8.3/Objects/object.c:833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 834
    functionName: PyObject_Hash
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 17
    functionsReached:
    - PyObject_HashNotImplemented
    - PyType_Ready
    - Py_TYPE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyObject_Hash(PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:841,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:842,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:843,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/object.c:846,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 849
    functionName: PyObject_GetAttrString
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 55
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - Py_TYPE
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAttrString(PyObject *v, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/object.c:854,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:856,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 861
    functionName: PyObject_HasAttrString
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 16
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttrString(PyObject *v, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:869,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:870,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/object.c:871,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Objects/object.c:874,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v
    - name
    - w
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 877
    functionName: PyObject_SetAttrString
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 6
    functionsReached:
    - Py_XDECREF
    - Py_TYPE
    - PyObject_SetAttr
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int PyObject_SetAttrString(PyObject *v, const char *name, PyObject
      *w)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/object.c:888,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/object.c:890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 894
    functionName: _PyObject_IsAbstract
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_IsTrue
    - _PyObject_LookupAttrId
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int _PyObject_IsAbstract(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/object.c:900,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/object.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 905
    functionName: _PyObject_GetAttrId
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 32
    functionsReached:
    - PyObject_GetAttr
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GetAttrId(PyObject *v, _Py_Identifier *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/object.c:911,1
    - Dst: PyObject_HasAttr
      Src: /src/Python-3.8.3/Objects/object.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 916
    functionName: _PyObject_HasAttrId
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyObject_HasAttr
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyObject_HasAttrId(PyObject *v, _Py_Identifier *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/object.c:922,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Objects/object.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - v
    - name
    - w
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 927
    functionName: _PyObject_SetAttrId
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 12
    functionsReached:
    - PyObject_SetAttr
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyObject_SetAttrId(PyObject *v, _Py_Identifier *name, PyObject
      *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:932,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:934,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:935,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/object.c:943,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 952
    functionName: PyObject_GetAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 12
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetAttr(PyObject *v, PyObject *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:957,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:959,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:960,1
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/Python-3.8.3/Objects/object.c:968,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:972,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/object.c:981,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/object.c:996,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - v
    - name
    - result
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 1001
    functionName: _PyObject_LookupAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 9
    functionsReached:
    - _PyObject_GenericGetAttrWithDict
    - PyErr_Occurred
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyUnicode_Check
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _PyObject_LookupAttr(PyObject *v, PyObject *name, PyObject **result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/object.c:1006,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Objects/object.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - v
    - name
    - result
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1012
    functionName: _PyObject_LookupAttrId
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 46
    functionsReached:
    - _PyObject_LookupAttr
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyObject_LookupAttrId(PyObject *v, _Py_Identifier *name, PyObject
      **result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Objects/object.c:1018,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:1019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - v
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1027
    functionName: PyObject_HasAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - _PyObject_LookupAttr
    linkageType: ''
    returnType: int
    signature: int PyObject_HasAttr(PyObject *v, PyObject *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1032,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:1035,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1036,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1041,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/object.c:1043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1046,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/object.c:1050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1052,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1059,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1060,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1062,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1069,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - v
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1076
    functionName: PyObject_SetAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 8
    functionsReached:
    - PyUnicode_InternInPlace
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_AsUTF8
    - _PyObject_ASSERT
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyObject_SetAttr(PyObject *v, PyObject *name, PyObject *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1084,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1096,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1099,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1103
    functionName: _PyObject_GetDictPtr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - _PyObject_VAR_SIZE
    - Py_TYPE
    - _PyObject_ASSERT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject **

      _PyObject_GetDictPtr(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1110
    functionName: PyObject_SelfIter
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_SelfIter(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1120,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1117
    functionDepth: 1
    functionLinenumber: 1117
    functionLinenumberEnd: 1124
    functionName: _PyObject_NextNotImplemented
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_NextNotImplemented(PyObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1140,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:1147,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1149,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:1150,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/object.c:1151,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/object.c:1155,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/object.c:1158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1160,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/object.c:1161,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1161,1
    - Dst: PyDescr_IsData
      Src: /src/Python-3.8.3/Objects/object.c:1165,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/object.c:1166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1167,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/object.c:1173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1175,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/object.c:1176,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1180,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:1181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1185,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:1186,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:1187,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/object.c:1199,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1200,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1209,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - obj
    - name
    - method
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (*method == NULL)
      pos:
        line_end: 1146
        line_start: 1146
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1213
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1213
    functionName: _PyObject_GetMethod
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyDescr_IsData
    - _PyType_Lookup
    - Py_INCREF
    - Py_DECREF
    - f
    - _PyObject_GetDictPtr
    - Py_TYPE
    - PyErr_Format
    - PyUnicode_Check
    - assert
    - PyType_Ready
    - PyType_HasFeature
    - Py_XDECREF
    - PyObject_GetAttr
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1227,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:1234,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1235,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1240,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/object.c:1243,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/object.c:1247,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1251,1
    - Dst: PyDescr_IsData
      Src: /src/Python-3.8.3/Objects/object.c:1253,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/object.c:1254,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/object.c:1256,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:1257,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1274,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1275,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1278,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:1279,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1286,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/object.c:1287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1289,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1290,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1294,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:1295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/object.c:1296,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:1297,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/object.c:1307,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1307,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/object.c:1309,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:1310,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1322,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:1327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1328,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 4
    argNames:
    - obj
    - name
    - dict
    - suppress
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1330
    functionName: _PyObject_GenericGetAttrWithDict
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 2
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyDescr_IsData
    - _PyType_Lookup
    - Py_INCREF
    - Py_DECREF
    - _PyObject_ASSERT
    - f
    - _PyObject_VAR_SIZE
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyUnicode_Check
    - PyType_Ready
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject
      *name,\n                                 PyObject *dict, int suppress)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GenericGetAttrWithDict
      Src: /src/Python-3.8.3/Objects/object.c:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1332
    functionDepth: 2
    functionLinenumber: 1332
    functionLinenumberEnd: 1336
    functionName: PyObject_GenericGetAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 4
    functionsReached:
    - _PyObject_GenericGetAttrWithDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GenericGetAttr(PyObject *obj, PyObject *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1342,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/object.c:1348,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1349,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/object.c:1355,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1358,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/object.c:1360,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1363,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/object.c:1366,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/object.c:1380,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1383,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1388,1
    - Dst: _PyObjectDict_SetItem
      Src: /src/Python-3.8.3/Objects/object.c:1394,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1397,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/object.c:1399,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/object.c:1401,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1402,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/object.c:1404,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/object.c:1405,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/object.c:1408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1409,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - dict
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1338
    functionDepth: 2
    functionLinenumber: 1338
    functionLinenumberEnd: 1411
    functionName: _PyObject_GenericSetAttrWithDict
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyType_Lookup
    - Py_INCREF
    - PyDict_DelItem
    - _PyObjectDict_SetItem
    - f
    - _PyObject_GetDictPtr
    - PyErr_SetObject
    - PyErr_Format
    - Py_TYPE
    - PyDict_SetItem
    - PyErr_ExceptionMatches
    - PyUnicode_Check
    - PyType_Ready
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GenericSetAttrWithDict(PyObject *obj, PyObject *name,\n
      \                                PyObject *value, PyObject *dict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GenericSetAttrWithDict
      Src: /src/Python-3.8.3/Objects/object.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1413
    functionDepth: 3
    functionLinenumber: 1413
    functionLinenumberEnd: 1417
    functionName: PyObject_GenericSetAttr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 2
    functionsReached:
    - _PyObject_GenericSetAttrWithDict
    linkageType: ''
    returnType: int
    signature: int PyObject_GenericSetAttr(PyObject *obj, PyObject *name, PyObject
      *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/object.c:1422,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:1424,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:1429,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/object.c:1432,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1433,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1435,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/object.c:1438,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/object.c:1439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1441
    functionName: PyObject_GenericSetDict
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - PyDict_Check
    - _PyObject_GetDictPtr
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyObject_GenericSetDict(PyObject *obj, PyObject *value, void *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/object.c:1469,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1447
    functionDepth: 1
    functionLinenumber: 1447
    functionLinenumberEnd: 1470
    functionName: PyObject_IsTrue
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 95
    functionsReached:
    - Py_SAFE_DOWNCAST
    linkageType: ''
    returnType: int
    signature: int PyObject_IsTrue(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/object.c:1479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1483
    functionName: PyObject_Not
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int PyObject_Not(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1493
    functionName: PyCallable_Check
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyCallable_Check(PyObject *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetLocals
      Src: /src/Python-3.8.3/Objects/object.c:1503,1
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Objects/object.c:1507,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/object.c:1510,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/object.c:1511,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1514,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Objects/object.c:1517,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1523
    functionName: _dir_locals
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyMapping_Keys
    - Py_DECREF
    - PyList_Sort
    - PyList_Check
    - PyEval_GetLocals
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_locals(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/object.c:1530,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:1532,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:1534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:1535,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/object.c:1539,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1540,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/object.c:1544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1545,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Objects/object.c:1548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 1531
        line_start: 1531
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 1553
      start: 1526
    functionDepth: 1
    functionLinenumber: 1526
    functionLinenumberEnd: 1553
    functionName: _dir_object
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PyErr_Occurred
    - Py_DECREF
    - PyList_Sort
    - _PyObject_LookupSpecial
    - PyErr_SetString
    - assert
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _dir_object(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _dir_locals
      Src: /src/Python-3.8.3/Objects/object.c:1562,1
    - Dst: _dir_object
      Src: /src/Python-3.8.3/Objects/object.c:1562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1559
    functionDepth: 2
    functionLinenumber: 1559
    functionLinenumberEnd: 1563
    functionName: PyObject_Dir
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _dir_object
    - _dir_locals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Dir(PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:1575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1576
    functionName: none_repr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      none_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1586
    functionName: none_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void none_dealloc(PyObject* ignore)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1591,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1591,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:1592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1596
    functionName: none_new
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      none_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1602
    functionName: none_bool
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int none_bool(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:1693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1694
    functionName: NotImplemented_repr
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      NotImplemented_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/object.c:1699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1696
    functionDepth: 1
    functionLinenumber: 1696
    functionLinenumberEnd: 1700
    functionName: NotImplemented_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      NotImplemented_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1710,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:1710,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/object.c:1711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: notimplemented_new
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:1723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1724
    functionName: notimplemented_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void notimplemented_dealloc(PyObject* ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1782,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1783,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1784,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1785,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1786,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1787,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1788,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1789,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1790,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1791,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1792,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1793,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1794,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1795,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1796,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1797,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1798,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1799,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1800,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1801,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1802,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1803,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1804,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1805,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1806,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1807,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1808,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1809,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1810,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1811,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1812,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1813,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1814,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1815,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1816,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1817,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1818,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1819,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1820,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1821,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1822,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1823,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1824,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1825,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1826,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1827,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1828,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1829,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1830,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1831,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1832,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1833,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1834,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1835,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1836,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1837,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1838,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1839,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1840,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1841,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1842,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1843,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1844,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1845,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1846,1
    - Dst: INIT_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1847,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/object.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1851
    functionName: _PyTypes_Init
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - INIT_TYPE
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyTypes_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1775
    functionDepth: 0
    functionLinenumber: 1775
    functionLinenumberEnd: 1781
    functionName: INIT_TYPE
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_TYPE(TYPE, NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_NewReference
      Src: /src/Python-3.8.3/Objects/object.c:1860,1
    - Dst: _Py_AddToAllObjects
      Src: /src/Python-3.8.3/Objects/object.c:1864,1
    - Dst: _Py_INC_TPALLOCS
      Src: /src/Python-3.8.3/Objects/object.c:1865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1856
    functionDepth: 5
    functionLinenumber: 1856
    functionLinenumberEnd: 1866
    functionName: _Py_NewReference
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 4
    functionsReached:
    - _Py_AddToAllObjects
    - _PyTraceMalloc_NewReference
    - _Py_INC_TPALLOCS
    linkageType: ''
    returnType: void
    signature: void _Py_NewReference(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:1875,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1878,1
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Objects/object.c:1879,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1880,1
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Objects/object.c:1881,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1882,1
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Objects/object.c:1883,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:1884,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:1892,1
    - Dst: _Py_INC_TPFREES
      Src: /src/Python-3.8.3/Objects/object.c:1897,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1868
    functionDepth: 5
    functionLinenumber: 1868
    functionLinenumberEnd: 1898
    functionName: _Py_ForgetReference
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_INC_TPFREES
    - Py_FatalError
    - _PyObject_Dump
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _Py_ForgetReference(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1907,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1909,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Objects/object.c:1910,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/object.c:1911,1
    - Dst: putc
      Src: /src/Python-3.8.3/Objects/object.c:1912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1903
    functionDepth: 4
    functionLinenumber: 1903
    functionLinenumberEnd: 1914
    functionName: _Py_PrintReferences
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyObject_Print
    - fprintf
    - putc
    linkageType: ''
    returnType: void
    signature: void _Py_PrintReferences(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1923,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:1925,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1927
    functionName: _Py_PrintReferenceAddresses
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - fprintf
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_PrintReferenceAddresses(FILE *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/object.c:1936,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/object.c:1939,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:1944,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/object.c:1949,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:1950,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1956
    functionName: _Py_GetObjects
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_Append
    - Py_TYPE
    - PyList_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetObjects(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCFunction_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1968,1
    - Dst: _PyDict_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1969,1
    - Dst: _PyFloat_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1970,1
    - Dst: _PyFrame_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1971,1
    - Dst: _PyList_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1972,1
    - Dst: _PyMethod_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1973,1
    - Dst: _PyTuple_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/object.c:1974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1965
    functionDepth: 2
    functionLinenumber: 1965
    functionLinenumberEnd: 1975
    functionName: _PyObject_DebugTypeStats
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyMethod_DebugMallocStats
    - _PyCFunction_DebugMallocStats
    - _PyFrame_DebugMallocStats
    - _PyList_DebugMallocStats
    - _PyDict_DebugMallocStats
    - _PyFloat_DebugMallocStats
    - _PyTuple_DebugMallocStats
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugTypeStats(FILE *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Objects/object.c:1996,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/object.c:2001,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/object.c:2003,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/object.c:2006,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/object.c:2009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/object.c:2011,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:2013,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/object.c:2015,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/object.c:2018,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 1989
    functionDepth: 1
    functionLinenumber: 1989
    functionLinenumberEnd: 2021
    functionName: Py_ReprEnter
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 10
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_DECREF
    - _PyDict_SetItemId
    - PyList_GET_ITEM
    - PyList_Append
    - PyList_New
    - PyList_GET_SIZE
    - PyThreadState_GetDict
    linkageType: ''
    returnType: int
    signature: int Py_ReprEnter(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/object.c:2031,1
    - Dst: PyThreadState_GetDict
      Src: /src/Python-3.8.3/Objects/object.c:2033,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/object.c:2037,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/object.c:2038,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/object.c:2041,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/object.c:2044,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Objects/object.c:2045,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/object.c:2052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2023
    functionDepth: 1
    functionLinenumber: 2023
    functionLinenumberEnd: 2053
    functionName: Py_ReprLeave
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 10
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyList_SetSlice
    - PyErr_Fetch
    - PyErr_Restore
    - PyList_Check
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyThreadState_GetDict
    linkageType: ''
    returnType: void
    signature: void Py_ReprLeave(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2064,1
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2064,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2065,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/object.c:2065,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2066,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Objects/object.c:2067,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2061
    functionDepth: 1
    functionLinenumber: 2061
    functionLinenumberEnd: 2069
    functionName: _PyTrash_deposit_object
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_AS_GC
    - _PyObject_ASSERT
    - _PyGCHead_SET_PREV
    - PyObject_IS_GC
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: void
    signature: void _PyTrash_deposit_object(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/object.c:2075,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2076,1
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2076,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2077,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/object.c:2077,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2078,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Objects/object.c:2079,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2081
    functionName: _PyTrash_thread_deposit_object
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_AS_GC
    - _PyObject_ASSERT
    - _PyGCHead_SET_PREV
    - PyObject_IS_GC
    - _PyObject_GC_IS_TRACKED
    linkageType: ''
    returnType: void
    signature: void _PyTrash_thread_deposit_object(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:2091,1
    - Dst: _PyGCHead_PREV
      Src: /src/Python-3.8.3/Objects/object.c:2094,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2094,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2086
    functionDepth: 1
    functionLinenumber: 2086
    functionLinenumberEnd: 2107
    functionName: _PyTrash_destroy_chain
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyGCHead_PREV
    - _Py_AS_GC
    - Py_TYPE
    - _PyObject_ASSERT
    linkageType: ''
    returnType: void
    signature: void _PyTrash_destroy_chain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/object.c:2113,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:2125,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:2129,1
    - Dst: _PyGCHead_PREV
      Src: /src/Python-3.8.3/Objects/object.c:2132,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2132,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/object.c:2140,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/object.c:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (tstate->trash_delete_nesting == 0)
      pos:
        line_end: 2124
        line_start: 2124
        source_file: /src/Python-3.8.3/Objects/object.c
    - condition: (tstate->trash_delete_nesting == 1)
      pos:
        line_end: 2141
        line_start: 2141
        source_file: /src/Python-3.8.3/Objects/object.c
    constantsTouched: []
    func_position:
      end: 2145
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2145
    functionName: _PyTrash_thread_destroy_chain
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _Py_AS_GC
    - _PyObject_ASSERT
    - _PyGCHead_PREV
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyTrash_thread_destroy_chain(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2152,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2154,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:2156,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2159,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2162,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:2164,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2167,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2169,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:2170,1
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Objects/object.c:2172,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2175,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:2176,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:2183,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/object.c:2184,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/Python-3.8.3/Objects/object.c:2190,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Objects/object.c:2190,1
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Objects/object.c:2194,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/object.c:2196,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/object.c:2197,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/object.c:2200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - obj
    - expr
    - msg
    - file
    - line
    - function
    argTypes:
    - PyObject*
    - char*
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2148
    functionDepth: 5
    functionLinenumber: 2148
    functionLinenumberEnd: 2201
    functionName: _PyObject_AssertFailed
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 1
    functionsReached:
    - fflush
    - _PyMem_DumpTraceback
    - _PyObject_Dump
    - _PyObject_IsFreed
    - Py_FatalError
    - fprintf
    - Py_TYPE
    - fileno
    - PyType_IS_GC
    linkageType: ''
    returnType: void
    signature: "void _PyObject_AssertFailed(PyObject *obj, const char *expr, const
      char *msg,\n                       const char *file, int line, const char *function)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/object.c:2209,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/object.c:2211,1
    - Dst: _Py_INC_TPFREES
      Src: /src/Python-3.8.3/Objects/object.c:2213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2206
    functionDepth: 1
    functionLinenumber: 2206
    functionLinenumberEnd: 2216
    functionName: _Py_Dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/object.c
    functionUses: 0
    functionsReached:
    - _Py_INC_TPFREES
    - _Py_ForgetReference
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_Dealloc(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: _PyMem_RawMalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawMalloc(void *ctx, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 114
    functionName: _PyMem_RawCalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 122
    functionName: _PyMem_RawRealloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_RawRealloc(void *ctx, void *ptr, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: _PyMem_RawFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _PyMem_RawFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualAlloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: _PyObject_ArenaVirtualAlloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - VirtualAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_ArenaVirtualAlloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VirtualFree
      Src: /src/Python-3.8.3/Objects/obmalloc.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: _PyObject_ArenaVirtualFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - VirtualFree
    linkageType: ''
    returnType: void
    signature: void _PyObject_ArenaVirtualFree(void *ctx, void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mmap
      Src: /src/Python-3.8.3/Objects/obmalloc.c:150,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: (ptr != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 156
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 156
    functionName: _PyObject_ArenaMmap
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - mmap
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_ArenaMmap(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: munmap
      Src: /src/Python-3.8.3/Objects/obmalloc.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: _PyObject_ArenaMunmap
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - munmap
    linkageType: ''
    returnType: void
    signature: void _PyObject_ArenaMunmap(void *ctx, void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: _PyObject_ArenaMalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_ArenaMalloc(void *ctx, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - ptr
    - size
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: _PyObject_ArenaFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void _PyObject_ArenaFree(void *ctx, void *ptr, size_t size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:229,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:249,1
    - Dst: _PyMem_SetupDebugHooksDomain
      Src: /src/Python-3.8.3/Objects/obmalloc.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - domain
    - debug
    - old_alloc
    argTypes:
    - PyMemAllocatorDomain
    - int
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 254
    functionName: pymem_set_default_allocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetupDebugHooksDomain
    - PyMem_GetAllocator
    linkageType: ''
    returnType: int
    signature: "int pymem_set_default_allocator(PyMemAllocatorDomain domain, int debug,\n
      \                           PyMemAllocatorEx *old_alloc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymem_set_default_allocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - domain
    - old_alloc
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: _PyMem_SetDefaultAllocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymem_set_default_allocator
    linkageType: ''
    returnType: int
    signature: "int _PyMem_SetDefaultAllocator(PyMemAllocatorDomain domain,\n                           PyMemAllocatorEx
      *old_alloc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:278,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:281,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:285,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:288,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:292,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - name
    - allocator
    argTypes:
    - char*
    - PyMemAllocatorName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 301
    functionName: _PyMem_GetAllocatorName
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _PyMem_GetAllocatorName(const char *name, PyMemAllocatorName *allocator)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:315,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:316,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:317,1
    - Dst: pymem_set_default_allocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:321,1
    - Dst: pymem_set_default_allocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:322,1
    - Dst: pymem_set_default_allocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:323,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:331,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:334,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:335,1
    - Dst: PyMem_SetupDebugHooks
      Src: /src/Python-3.8.3/Objects/obmalloc.c:338,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:348,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:349,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:350,1
    - Dst: PyMem_SetupDebugHooks
      Src: /src/Python-3.8.3/Objects/obmalloc.c:353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyMemAllocatorName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 363
    functionName: _PyMem_SetupAllocators
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - pymem_set_default_allocator
    - _PyMem_SetDefaultAllocator
    - PyMem_SetupDebugHooks
    linkageType: ''
    returnType: int
    signature: int _PyMem_SetupAllocators(PyMemAllocatorName allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/obmalloc.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyMemAllocatorEx*
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pymemallocator_eq
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int pymemallocator_eq(PyMemAllocatorEx *a, PyMemAllocatorEx *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:381,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:382,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:383,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:388,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:389,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:390,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:400,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:401,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:402,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:405,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:406,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:407,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:412,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:413,1
    - Dst: pymemallocator_eq
      Src: /src/Python-3.8.3/Objects/obmalloc.c:414,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 421
    functionName: _PyMem_GetCurrentAllocatorName
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - pymemallocator_eq
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_GetCurrentAllocatorName(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: _PyMem_DebugEnabled
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyMem_DebugEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugEnabled
      Src: /src/Python-3.8.3/Objects/obmalloc.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 460
    functionName: _PyMem_PymallocEnabled
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugEnabled
    linkageType: ''
    returnType: int
    signature: int _PyMem_PymallocEnabled(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:474,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:480,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:487,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:493,1
    - Dst: PyMem_GetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:500,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Objects/obmalloc.c:506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - domain
    argTypes:
    - PyMemAllocatorDomain
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 508
    functionName: _PyMem_SetupDebugHooksDomain
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - PyMem_GetAllocator
    linkageType: ''
    returnType: void
    signature: void _PyMem_SetupDebugHooksDomain(PyMemAllocatorDomain domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetupDebugHooksDomain
      Src: /src/Python-3.8.3/Objects/obmalloc.c:514,1
    - Dst: _PyMem_SetupDebugHooksDomain
      Src: /src/Python-3.8.3/Objects/obmalloc.c:515,1
    - Dst: _PyMem_SetupDebugHooksDomain
      Src: /src/Python-3.8.3/Objects/obmalloc.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: PyMem_SetupDebugHooks
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - _PyMem_SetupDebugHooksDomain
    linkageType: ''
    returnType: void
    signature: void PyMem_SetupDebugHooks(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 535
    functionName: PyMem_GetAllocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyMem_GetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - domain
    - allocator
    argTypes:
    - PyMemAllocatorDomain
    - PyMemAllocatorEx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 547
    functionName: PyMem_SetAllocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyMem_SetAllocator(PyMemAllocatorDomain domain, PyMemAllocatorEx
      *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: PyObject_GetArenaAllocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyObject_GetArenaAllocator(PyObjectArenaAllocator *allocator)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PyObjectArenaAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: PyObject_SetArenaAllocator
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyObject_SetArenaAllocator(PyObjectArenaAllocator *allocator)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 573
    functionName: PyMem_RawMalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 12
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawMalloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: PyMem_RawCalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawCalloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 591
    functionName: PyMem_RawRealloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 7
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_RawRealloc(void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 596
    functionName: PyMem_RawFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 26
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyMem_RawFree(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 606
    functionName: PyMem_Malloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 113
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_Malloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: PyMem_Calloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_Calloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: PyMem_Realloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 18
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyMem_Realloc(void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 630
    functionName: PyMem_Free
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 205
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyMem_Free(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:636,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/obmalloc.c:638,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:644,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:649,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 651
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 651
    functionName: _PyMem_RawWcsdup
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - assert
    - memcpy
    - PyMem_RawMalloc
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyMem_RawWcsdup(const wchar_t *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:656,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/obmalloc.c:657,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:658,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 664
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 664
    functionName: _PyMem_RawStrdup
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - PyMem_RawMalloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_RawStrdup(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:669,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/obmalloc.c:670,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:671,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 668
        line_start: 668
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 677
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 677
    functionName: _PyMem_Strdup
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 5
    functionsReached:
    - PyMem_Malloc
    - assert
    - memcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyMem_Strdup(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 686
    functionName: PyObject_Malloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 10
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Malloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nelem
    - elsize
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: PyObject_Calloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 3
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Calloc(size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - new_size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 704
    functionName: PyObject_Realloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyObject_Realloc(void *ptr, size_t new_size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 710
    functionName: PyObject_Free
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 6
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PyObject_Free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 722
    functionName: UNLIKELY
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 724
    functionName: UNLIKELY
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLIKELY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 854
    functionName: INDEX2SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INDEX2SIZE(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 997
    functionName: POOL_ADDR
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POOL_ADDR(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1000
    functionName: NUMBLOCKS
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUMBLOCKS(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1100
    functionName: PTA
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTA(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1101
    functionName: PT
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    functionName: _Py_GetAllocatedBlocks
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetAllocatedBlocks(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1232,1
    - Dst: _PyObject_DebugMallocStats
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1236,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1265,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1266,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1281,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1284,1
    - Dst: alloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (unused_arena_objects == NULL)
      pos:
        line_end: 1265
        line_start: 1265
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas == NULL)
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (unused_arena_objects != NULL)
      pos:
        line_end: 1280
        line_start: 1280
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (arenaobj->address == 0)
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1313
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1313
    functionName: new_arena
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - alloc
    - Py_GETENV
    - PyMem_RawRealloc
    - assert
    - _PyObject_DebugMallocStats
    linkageType: ''
    returnType: struct arena_object
    signature: 'struct arena_object *

      new_arena(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pool
    argTypes:
    - void*
    - poolp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1405
    functionName: address_in_range
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool address_in_range(void *p, poolp pool)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: UNLIKELY
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1432,1
    - Dst: UNLIKELY
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1435,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1459,1
    - Dst: INDEX2SIZE
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1471,1
    - Dst: new_arena
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1494,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1500,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1503,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1510,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1517,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1529,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1530,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1536,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1545,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1565,1
    - Dst: INDEX2SIZE
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1575,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1585,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1586,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1588,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1591,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1597,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1604,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1611,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 126
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts:
    - condition: "((block*)pool <= (block*)usable_arenas->address +\n                             ARENA_SIZE
        - POOL_SIZE)"
      pos:
        line_end: 1588
        line_start: 1587
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (bp != NULL)
      pos:
        line_end: 1458
        line_start: 1458
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 1502
        line_start: 1502
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (bp != NULL)
      pos:
        line_end: 1564
        line_start: 1564
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 1584
        line_start: 1584
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n               usable_arenas->nextarena->prevarena
        ==\n               usable_arenas)"
      pos:
        line_end: 1598
        line_start: 1596
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (nfp2lasta[usable_arenas->nfreepools - 1] == NULL)
      pos:
        line_end: 1516
        line_start: 1516
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(usable_arenas->freepools != NULL ||\n                   usable_arenas->pool_address
        <=\n                   (block*)usable_arenas->address +\n                       ARENA_SIZE
        - POOL_SIZE)"
      pos:
        line_end: 1547
        line_start: 1544
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(usable_arenas->nextarena == NULL ||\n                   usable_arenas->nextarena->prevarena
        ==\n                   usable_arenas)"
      pos:
        line_end: 1531
        line_start: 1529
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 1528
        line_start: 1528
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (&arenas[pool->arenaindex] == usable_arenas)
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (nfp2lasta[usable_arenas->nfreepools] == NULL)
      pos:
        line_end: 1499
        line_start: 1499
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->nfreepools > 0)
      pos:
        line_end: 1509
        line_start: 1509
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->freepools == NULL)
      pos:
        line_end: 1585
        line_start: 1585
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (bp != NULL)
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1616
      start: 1423
    functionDepth: 2
    functionLinenumber: 1423
    functionLinenumberEnd: 1616
    functionName: pymalloc_alloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - INDEX2SIZE
    - UNLIKELY
    - assert
    - new_arena
    linkageType: ''
    returnType: void
    signature: 'void *

      pymalloc_alloc(void *ctx, size_t nbytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymalloc_alloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1622,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1633
    functionName: _PyObject_Malloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymalloc_alloc
    - PyMem_RawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Malloc(void *ctx, size_t nbytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1639,1
    - Dst: pymalloc_alloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1642,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1644,1
    - Dst: PyMem_RawCalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts:
    - condition: (elsize == 0 || nelem <= (size_t)PY_SSIZE_T_MAX / elsize)
      pos:
        line_end: 1638
        line_start: 1638
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1654
      start: 1636
    functionDepth: 3
    functionLinenumber: 1636
    functionLinenumberEnd: 1654
    functionName: _PyObject_Calloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymalloc_alloc
    - assert
    - memset
    - PyMem_RawCalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Calloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1668,1
    - Dst: UNLIKELY
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1671,1
    - Dst: POOL_ADDR
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1676,1
    - Dst: address_in_range
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1677,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1688,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1699,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1744,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1771,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1773,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1781,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1785,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1791,1
    - Dst: free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1802,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1821,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1848,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1857,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1862,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1874,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1875,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1876,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1877,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 108
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "((nf == 0 && lastnf == NULL) ||\n           (nf > 0 &&\n            lastnf
        != NULL &&\n            lastnf->nfreepools == nf &&\n            (lastnf->nextarena
        == NULL ||\n             nf < lastnf->nextarena->nfreepools)))"
      pos:
        line_end: 1748
        line_start: 1743
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->nextarena->prevarena == ao)
      pos:
        line_end: 1790
        line_start: 1790
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->nextarena != NULL)
      pos:
        line_end: 1847
        line_start: 1847
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas == ao)
      pos:
        line_end: 1861
        line_start: 1861
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || ao->nextarena->prevarena == ao)
      pos:
        line_end: 1875
        line_start: 1875
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 1687
        line_start: 1687
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 1856
        line_start: 1856
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->nextarena == NULL || nf <= ao->nextarena->nfreepools)
      pos:
        line_end: 1873
        line_start: 1873
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->prevarena == NULL || nf > ao->prevarena->nfreepools)
      pos:
        line_end: 1874
        line_start: 1874
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(usable_arenas == NULL ||\n                   usable_arenas->address
        != 0)"
      pos:
        line_end: 1781
        line_start: 1780
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (ao->prevarena->nextarena == ao)
      pos:
        line_end: 1784
        line_start: 1784
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "((usable_arenas == ao && ao->prevarena == NULL)\n           || ao->prevarena->nextarena
        == ao)"
      pos:
        line_end: 1877
        line_start: 1876
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (pool->ref.count > 0)
      pos:
        line_end: 1698
        line_start: 1698
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(ao->prevarena == NULL ||\n               ao->prevarena->address
        != 0)"
      pos:
        line_end: 1771
        line_start: 1770
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: "(ao ->nextarena == NULL ||\n               ao->nextarena->address
        != 0)"
      pos:
        line_end: 1773
        line_start: 1772
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (usable_arenas->address != 0)
      pos:
        line_end: 1820
        line_start: 1820
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1884
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1884
    functionName: pymalloc_free
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - address_in_range
    - assert
    - free
    - POOL_ADDR
    linkageType: ''
    returnType: int
    signature: int pymalloc_free(void *ctx, void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pymalloc_free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1896,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1887
    functionDepth: 2
    functionLinenumber: 1887
    functionLinenumberEnd: 1900
    functionName: _PyObject_Free
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - pymalloc_free
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyObject_Free(void *ctx, void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1919,1
    - Dst: UNLIKELY
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1923,1
    - Dst: POOL_ADDR
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1928,1
    - Dst: address_in_range
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1929,1
    - Dst: INDEX2SIZE
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1946,1
    - Dst: _PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1963,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1965,1
    - Dst: _PyObject_Free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - newptr_p
    - p
    - nbytes
    argTypes:
    - void*
    - void**
    - void*
    - size_t
    assertStmts:
    - condition: (p != NULL)
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 1970
      start: 1912
    functionDepth: 4
    functionLinenumber: 1912
    functionLinenumberEnd: 1970
    functionName: pymalloc_realloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - UNLIKELY
    - memcpy
    - address_in_range
    - _PyObject_Malloc
    - INDEX2SIZE
    - assert
    - _PyObject_Free
    - POOL_ADDR
    linkageType: ''
    returnType: int
    signature: int pymalloc_realloc(void *ctx, void **newptr_p, void *p, size_t nbytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1979,1
    - Dst: pymalloc_realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1982,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:1986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1973
    functionDepth: 5
    functionLinenumber: 1973
    functionLinenumberEnd: 1987
    functionName: _PyObject_Realloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - PyMem_RawRealloc
    - pymalloc_realloc
    - _PyObject_Malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyObject_Realloc(void *ctx, void *ptr, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 1999
    functionName: _Py_GetAllocatedBlocks
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_GetAllocatedBlocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2022
    functionName: bumpserialno
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bumpserialno(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2044
    functionName: read_size_t
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t read_size_t(const void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2059
    functionName: write_size_t
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_size_t(void *p, size_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: debug_alloc_api_t*::alloc::calloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2117,1
    - Dst: debug_alloc_api_t*::alloc::malloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2120,1
    - Dst: bumpserialno
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2128,1
    - Dst: write_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2132,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2134,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2137,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2142,1
    - Dst: write_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - use_calloc
    - ctx
    - nbytes
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2148
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2148
    functionName: _PyMem_DebugRawAlloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - debug_alloc_api_t*::alloc::calloc
    - write_size_t
    - bumpserialno
    - memset
    - debug_alloc_api_t*::alloc::malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawAlloc(int use_calloc, void *ctx, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2150
    functionDepth: 2
    functionLinenumber: 2150
    functionLinenumberEnd: 2154
    functionName: _PyMem_DebugRawMalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawMalloc(void *ctx, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2160,1
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts:
    - condition: (elsize == 0 || nelem <= (size_t)PY_SSIZE_T_MAX / elsize)
      pos:
        line_end: 2159
        line_start: 2159
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2163
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2163
    functionName: _PyMem_DebugRawCalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyMem_DebugRawAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckAddress
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2183,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2184,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2186,1
    - Dst: debug_alloc_api_t*::alloc::free
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2171
    functionDepth: 1
    functionLinenumber: 2171
    functionLinenumberEnd: 2188
    functionName: _PyMem_DebugRawFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - debug_alloc_api_t*::alloc::free
    - memset
    - read_size_t
    - _PyMem_DebugCheckAddress
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugRawFree(void *ctx, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugRawAlloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2195,1
    - Dst: _PyMem_DebugCheckAddress
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2208,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2212,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2221,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2227,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2228,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2232,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2233,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2234,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2235,1
    - Dst: debug_alloc_api_t*::alloc::realloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2240,1
    - Dst: bumpserialno
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2249,1
    - Dst: write_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2255,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2257,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2260,1
    - Dst: write_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2262,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2267,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2267,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2271,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2271,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2273,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2274,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 3
    argNames:
    - ctx
    - p
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2191
    functionDepth: 2
    functionLinenumber: 2191
    functionLinenumberEnd: 2289
    functionName: _PyMem_DebugRawRealloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawAlloc
    - memcpy
    - read_size_t
    - write_size_t
    - _PyMem_DebugCheckAddress
    - bumpserialno
    - debug_alloc_api_t*::alloc::realloc
    - Py_MIN
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRawRealloc(void *ctx, void *p, size_t nbytes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2294,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2297
    functionName: _PyMem_DebugCheckGIL
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyGILState_Check
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugCheckGIL(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2302,1
    - Dst: _PyMem_DebugRawMalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - nbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2299
    functionDepth: 3
    functionLinenumber: 2299
    functionLinenumberEnd: 2304
    functionName: _PyMem_DebugMalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugCheckGIL
    - _PyMem_DebugRawMalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugMalloc(void *ctx, size_t nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2309,1
    - Dst: _PyMem_DebugRawCalloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - nelem
    - elsize
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2306
    functionDepth: 3
    functionLinenumber: 2306
    functionLinenumberEnd: 2311
    functionName: _PyMem_DebugCalloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugCheckGIL
    - _PyMem_DebugRawCalloc
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugCalloc(void *ctx, size_t nelem, size_t elsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2317,1
    - Dst: _PyMem_DebugRawFree
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - ptr
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2319
    functionName: _PyMem_DebugFree
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugCheckGIL
    - _PyMem_DebugRawFree
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugFree(void *ctx, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_DebugCheckGIL
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2325,1
    - Dst: _PyMem_DebugRawRealloc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - ptr
    - nbytes
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2322
    functionDepth: 3
    functionLinenumber: 2322
    functionLinenumberEnd: 2327
    functionName: _PyMem_DebugRealloc
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - _PyMem_DebugRawRealloc
    - _PyMem_DebugCheckGIL
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyMem_DebugRealloc(void *ctx, void *ptr, size_t nbytes)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2354,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2370,1
    - Dst: _PyObject_DebugDumpAddress
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2382,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - api
    - p
    argTypes:
    - char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2384
    functionName: _PyMem_DebugCheckAddress
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 2
    functionsReached:
    - snprintf
    - _PyObject_DebugDumpAddress
    - Py_FatalError
    - read_size_t
    linkageType: ''
    returnType: void
    signature: void _PyMem_DebugCheckAddress(char api, const void *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2397,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2399,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2403,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2405,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2406,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2410,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2419,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2421,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2425,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2427,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2428,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2431,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2438,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2447,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2449,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2453,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2456,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2457,1
    - Dst: read_size_t
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2462,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2463,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2469,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2472,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2479,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2483,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2487,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2489,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2491,1
    - Dst: _PyMem_DumpTraceback
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2492,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2492,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2493
      start: 2387
    functionDepth: 3
    functionLinenumber: 2387
    functionLinenumberEnd: 2493
    functionName: _PyObject_DebugDumpAddress
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - fflush
    - _PyMem_DumpTraceback
    - read_size_t
    - fputc
    - fprintf
    - fileno
    - fputs
    linkageType: ''
    returnType: void
    signature: void _PyObject_DebugDumpAddress(const void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2503,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2504,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2505,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2506,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - out
    - msg
    - value
    argTypes:
    - FILE*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2496
    functionDepth: 0
    functionLinenumber: 2496
    functionLinenumberEnd: 2530
    functionName: printone
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - strlen
    - fputc
    - fputs
    linkageType: ''
    returnType: size_t
    signature: size_t printone(FILE *out, const char* msg, size_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2538,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2541,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - block_name
    - num_blocks
    - sizeof_block
    argTypes:
    - FILE*
    - char*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2532
    functionDepth: 1
    functionLinenumber: 2532
    functionLinenumberEnd: 2544
    functionName: _PyDebugAllocatorStats
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - PyOS_snprintf
    - printone
    linkageType: ''
    returnType: void
    signature: "void _PyDebugAllocatorStats(FILE *out,\n                       const
      char *block_name, int num_blocks, size_t sizeof_block)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2558,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - target
    - list
    argTypes:
    - poolp
    - poolp
    assertStmts:
    - condition: (target != NULL)
      pos:
        line_end: 2557
        line_start: 2557
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2567
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2567
    functionName: pool_is_in_list
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int pool_is_in_list(const poolp target, poolp list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_PymallocEnabled
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2580,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2611,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2640,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2650,1
    - Dst: pool_is_in_list
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2650,1
    - Dst: NUMBLOCKS
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2656,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2660,1
    - Dst: pool_is_in_list
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2660,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2664,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2666,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2667,1
    - Dst: INDEX2SIZE
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2675,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2677,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2680,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2690,1
    - Dst: _PyMem_DebugEnabled
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2692,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2693,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2696,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2697,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2698,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2699,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2701,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2704,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2706,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2708,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2709,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2711,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2713,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2715,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2716,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2717,1
    - Dst: printone
      Src: /src/Python-3.8.3/Objects/obmalloc.c:2718,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts:
    - condition: (base <= (uintptr_t) arenas[i].pool_address)
      pos:
        line_end: 2639
        line_start: 2639
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, usedpools[sz + sz]))
      pos:
        line_end: 2659
        line_start: 2659
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (narenas == narenas_currently_allocated)
      pos:
        line_end: 2663
        line_start: 2663
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (b == 0 && f == 0)
      pos:
        line_end: 2676
        line_start: 2676
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - condition: (pool_is_in_list(p, arenas[i].freepools))
      pos:
        line_end: 2649
        line_start: 2649
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    constantsTouched: []
    func_position:
      end: 2720
      start: 2577
    functionDepth: 2
    functionLinenumber: 2577
    functionLinenumberEnd: 2720
    functionName: _PyObject_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/obmalloc.c
    functionUses: 1
    functionsReached:
    - pool_is_in_list
    - PyOS_snprintf
    - printone
    - _PyMem_DebugEnabled
    - fputc
    - NUMBLOCKS
    - _PyMem_PymallocEnabled
    - fprintf
    - INDEX2SIZE
    - assert
    - fputs
    linkageType: ''
    returnType: int
    signature: int _PyObject_DebugMallocStats(FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/sliceobject.c:25,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/sliceobject.c:25,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:26,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: ellipsis_new
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - Py_INCREF
    - PyTuple_GET_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ellipsis_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: ellipsis_repr
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ellipsis_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: ellipsis_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ellipsis_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/sliceobject.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: PySlice_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void PySlice_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/sliceobject.c:123,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/sliceobject.c:125,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:131,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:133,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:135,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/sliceobject.c:141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: PySlice_New
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _Py_NewReference
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySlice_New(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/sliceobject.c:149,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/sliceobject.c:152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:154,1
    - Dst: PySlice_New
      Src: /src/Python-3.8.3/Objects/sliceobject.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:159,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - istart
    - istop
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: _PySlice_FromIndices
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PySlice_New
    - PyLong_FromSsize_t
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySlice_FromIndices(Py_ssize_t istart, Py_ssize_t istop)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:173,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/sliceobject.c:174,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:179,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/sliceobject.c:180,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:186,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/sliceobject.c:187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - _r
    - length
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 194
    functionName: PySlice_GetIndices
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: "int PySlice_GetIndices(PyObject *_r, Py_ssize_t length,\n                   Py_ssize_t
      *start, Py_ssize_t *stop, Py_ssize_t *step)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Objects/sliceobject.c:203,1
    - Dst: _PyEval_SliceIndex
      Src: /src/Python-3.8.3/Objects/sliceobject.c:209,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:211,1
    - Dst: _PyEval_SliceIndex
      Src: /src/Python-3.8.3/Objects/sliceobject.c:228,1
    - Dst: _PyEval_SliceIndex
      Src: /src/Python-3.8.3/Objects/sliceobject.c:235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - _r
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 239
    functionName: PySlice_Unpack
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 10
    functionsReached:
    - _PyEval_SliceIndex
    - Py_BUILD_ASSERT
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PySlice_Unpack(PyObject *_r,\n               Py_ssize_t *start,
      Py_ssize_t *stop, Py_ssize_t *step)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/sliceobject.c:247,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/sliceobject.c:248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - length
    - start
    - stop
    - step
    argTypes:
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts:
    - condition: (step != 0)
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/Python-3.8.3/Objects/sliceobject.c
    - condition: (step >= -PY_SSIZE_T_MAX)
      pos:
        line_end: 247
        line_start: 247
        source_file: /src/Python-3.8.3/Objects/sliceobject.c
    constantsTouched: []
    func_position:
      end: 281
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 281
    functionName: PySlice_AdjustIndices
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 10
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length,\n                      Py_ssize_t
      *start, Py_ssize_t *stop, Py_ssize_t step)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/sliceobject.c:290,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/sliceobject.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - _r
    - length
    - start
    - stop
    - step
    - slicelength
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: PySlice_GetIndicesEx
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 1
    functionsReached:
    - PySlice_AdjustIndices
    - PySlice_Unpack
    linkageType: ''
    returnType: int
    signature: "int PySlice_GetIndicesEx(PyObject *_r, Py_ssize_t length,\n                     Py_ssize_t
      *start, Py_ssize_t *stop, Py_ssize_t *step,\n                     Py_ssize_t
      *slicelength)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/sliceobject.c:303,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/sliceobject.c:306,1
    - Dst: PySlice_New
      Src: /src/Python-3.8.3/Objects/sliceobject.c:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: slice_new
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PySlice_New
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/sliceobject.c:327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:328,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:330,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/sliceobject.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - PySliceObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 335
    functionName: slice_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void slice_dealloc(PySliceObject *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/sliceobject.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - PySliceObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: slice_repr
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_repr(PySliceObject *r)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:356,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/sliceobject.c:357,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: evaluate_slice_index
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - PyIndex_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      evaluate_slice_index(PyObject *v)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:383,1
    - Dst: evaluate_slice_index
      Src: /src/Python-3.8.3/Objects/sliceobject.c:388,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/sliceobject.c:391,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:393,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/sliceobject.c:402,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/sliceobject.c:406,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:412,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:414,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:420,1
    - Dst: evaluate_slice_index
      Src: /src/Python-3.8.3/Objects/sliceobject.c:423,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/sliceobject.c:427,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/sliceobject.c:429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:430,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/sliceobject.c:435,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:440,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/sliceobject.c:445,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:449,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:450,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:459,1
    - Dst: evaluate_slice_index
      Src: /src/Python-3.8.3/Objects/sliceobject.c:462,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/sliceobject.c:466,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/sliceobject.c:468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:469,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/sliceobject.c:474,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:479,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/sliceobject.c:484,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:499,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:504,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:505,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:506,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:507,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:508,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 118
    argCount: 5
    argNames:
    - self
    - length
    - start_ptr
    - stop_ptr
    - step_ptr
    argTypes:
    - PySliceObject*
    - PyObject*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 371
    functionDepth: 4
    functionLinenumber: 371
    functionLinenumberEnd: 510
    functionName: _PySlice_GetLongIndices
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - evaluate_slice_index
    - PyLong_FromLong
    - _PyLong_Sign
    - Py_DECREF
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyNumber_Add
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _PySlice_GetLongIndices(PySliceObject *self, PyObject *length,\n
      \                       PyObject **start_ptr, PyObject **stop_ptr,\n                        PyObject
      **step_ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/sliceobject.c:522,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/sliceobject.c:526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/sliceobject.c:527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:529,1
    - Dst: _PySlice_GetLongIndices
      Src: /src/Python-3.8.3/Objects/sliceobject.c:533,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:534,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/sliceobject.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - len
    argTypes:
    - PySliceObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 539
    functionName: slice_indices
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_Sign
    - Py_BuildValue
    - Py_DECREF
    - _PySlice_GetLongIndices
    - PyNumber_Index
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_indices(PySliceObject* self, PyObject* len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/sliceobject.c:552,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/sliceobject.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PySliceObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: slice_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_reduce(PySliceObject* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:568,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/sliceobject.c:568,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:585,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/sliceobject.c:590,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/sliceobject.c:598,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:603,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/sliceobject.c:607,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:608,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/sliceobject.c:609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 611
    functionName: slice_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PySlice_Check
    - PyTuple_Pack
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slice_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/sliceobject.c:616,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/sliceobject.c:617,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/sliceobject.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - v
    - visit
    - arg
    argTypes:
    - PySliceObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 620
    functionName: slice_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/sliceobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int slice_traverse(PySliceObject *v, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:29,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/rangeobject.c:31,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/rangeobject.c:32,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/rangeobject.c:33,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/rangeobject.c:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - step
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: validate_step
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_Sign
    - Py_CLEAR
    - PyNumber_Index
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      validate_step(PyObject *step)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_range_length
      Src: /src/Python-3.8.3/Objects/rangeobject.c:50,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/rangeobject.c:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - type
    - start
    - stop
    - step
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: make_range_object
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - compute_range_length
    - Py_DECREF
    - PyObject_New
    linkageType: ''
    returnType: rangeobject
    signature: "rangeobject *\nmake_range_object(PyTypeObject *type, PyObject *start,\n
      \                 PyObject *stop, PyObject *step)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/rangeobject.c:77,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Objects/rangeobject.c:80,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/rangeobject.c:81,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/rangeobject.c:83,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:86,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:88,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/rangeobject.c:92,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/rangeobject.c:97,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/rangeobject.c:100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:102,1
    - Dst: validate_step
      Src: /src/Python-3.8.3/Objects/rangeobject.c:105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:108,1
    - Dst: make_range_object
      Src: /src/Python-3.8.3/Objects/rangeobject.c:113,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:119,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: range_new
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - Py_DECREF
    - Py_INCREF
    - validate_step
    - _PyArg_NoKeywords
    - PyNumber_Index
    - PyTuple_Size
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:137,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:138,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:139,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:140,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Objects/rangeobject.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: range_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void range_dealloc(rangeobject *r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:161,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:168,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Objects/rangeobject.c:172,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:180,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:183,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:186,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:189,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Objects/rangeobject.c:192,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:201,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:205,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:206,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:207,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:208,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 210
    functionName: compute_range_length
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - Py_INCREF
    - PyNumber_FloorDivide
    - PyNumber_Negative
    - PyObject_RichCompareBool
    - PyNumber_Add
    - PyNumber_Subtract
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_range_length(PyObject *start, PyObject *stop, PyObject *step)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/rangeobject.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: range_length
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t range_length(rangeobject *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Objects/rangeobject.c:225,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - i
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: compute_item
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Multiply
    - Py_DECREF
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_item(rangeobject *r, PyObject *i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:246,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:251,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:257,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:265,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/rangeobject.c:275,1
    - Dst: compute_item
      Src: /src/Python-3.8.3/Objects/rangeobject.c:280,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - r
    - arg
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 283
    functionName: compute_range_item
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - compute_item
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyNumber_Add
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_range_item(rangeobject *r, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/rangeobject.c:288,1
    - Dst: compute_range_item
      Src: /src/Python-3.8.3/Objects/rangeobject.c:292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - i
    argTypes:
    - rangeobject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 295
    functionName: range_item
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromSsize_t
    - compute_range_item
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_item(rangeobject *r, Py_ssize_t i)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PySlice_GetLongIndices
      Src: /src/Python-3.8.3/Objects/rangeobject.c:306,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Objects/rangeobject.c:310,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/rangeobject.c:312,1
    - Dst: compute_item
      Src: /src/Python-3.8.3/Objects/rangeobject.c:314,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/rangeobject.c:316,1
    - Dst: compute_item
      Src: /src/Python-3.8.3/Objects/rangeobject.c:318,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/rangeobject.c:320,1
    - Dst: make_range_object
      Src: /src/Python-3.8.3/Objects/rangeobject.c:322,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/rangeobject.c:322,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:327,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:328,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:329,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:330,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:331,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - r
    - _slice
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 297
    functionDepth: 5
    functionLinenumber: 297
    functionLinenumberEnd: 334
    functionName: compute_slice
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - Py_CLEAR
    - _PySlice_GetLongIndices
    - compute_item
    - Py_TYPE
    - PyNumber_Multiply
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_slice(rangeobject *r, PyObject *_slice)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:347,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:351,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:352,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:355,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:356,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:367,1
    - Dst: PyNumber_Remainder
      Src: /src/Python-3.8.3/Objects/rangeobject.c:370,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:374,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:377,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 379
    functionName: range_contains_long
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Subtract
    - Py_XDECREF
    - PyNumber_Remainder
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int range_contains_long(rangeobject *r, PyObject *ob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/rangeobject.c:384,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:384,1
    - Dst: range_contains_long
      Src: /src/Python-3.8.3/Objects/rangeobject.c:385,1
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/rangeobject.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 5
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: range_contains
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_CheckExact
    - _PySequence_IterSearch
    - range_contains_long
    - PyBool_Check
    linkageType: ''
    returnType: int
    signature: int range_contains(rangeobject *r, PyObject *ob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:413,1
    - Dst: PyObject_Not
      Src: /src/Python-3.8.3/Objects/rangeobject.c:417,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:421,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:425,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r0
    - r1
    argTypes:
    - rangeobject*
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 430
    functionName: range_equals
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyObject_Not
    linkageType: ''
    returnType: int
    signature: int range_equals(rangeobject *r0, rangeobject *r1)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyRange_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:437,1
    - Dst: range_equals
      Src: /src/Python-3.8.3/Objects/rangeobject.c:442,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/rangeobject.c:457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 460
    functionName: range_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyRange_Check
    - PyErr_BadArgument
    - range_equals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/rangeobject.c:477,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:480,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:481,1
    - Dst: PyObject_Not
      Src: /src/Python-3.8.3/Objects/rangeobject.c:482,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:486,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:487,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:488,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:489,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:492,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:493,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:494,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:498,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:499,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:502,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/rangeobject.c:503,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/rangeobject.c:506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:508,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - r
    argTypes:
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 510
    functionName: range_hash
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_Not
    - PyObject_RichCompareBool
    - PyObject_Hash
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t range_hash(rangeobject *r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/rangeobject.c:515,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:515,1
    - Dst: range_contains_long
      Src: /src/Python-3.8.3/Objects/rangeobject.c:516,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:519,1
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/rangeobject.c:522,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/rangeobject.c:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 512
    functionDepth: 5
    functionLinenumber: 512
    functionLinenumberEnd: 527
    functionName: range_count
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_CheckExact
    - PyLong_FromSsize_t
    - PyBool_Check
    - range_contains_long
    - _PySequence_IterSearch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_count(rangeobject *r, PyObject *ob)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/rangeobject.c:534,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:534,1
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/rangeobject.c:536,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/rangeobject.c:539,1
    - Dst: range_contains_long
      Src: /src/Python-3.8.3/Objects/rangeobject.c:542,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:547,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Objects/rangeobject.c:551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:552,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/rangeobject.c:557,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - r
    - ob
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 5
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: range_index
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyNumber_FloorDivide
    - PyBool_Check
    - PyLong_CheckExact
    - PyErr_Format
    - PyNumber_Subtract
    - PyLong_FromSsize_t
    - range_contains_long
    - _PySequence_IterSearch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_index(rangeobject *r, PyObject *ob)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/rangeobject.c:579,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:580,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/rangeobject.c:581,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/rangeobject.c:581,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/rangeobject.c:586,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/rangeobject.c:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - rangeobject*
    assertStmts:
    - condition: (!PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 590
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 590
    functionName: range_repr
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_FromFormat
    - PyErr_ExceptionMatches
    - assert
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_repr(rangeobject *r)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/rangeobject.c:596,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/rangeobject.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - args
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: range_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_reduce(rangeobject *r, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:603,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/rangeobject.c:605,1
    - Dst: compute_range_item
      Src: /src/Python-3.8.3/Objects/rangeobject.c:608,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:609,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:612,1
    - Dst: compute_slice
      Src: /src/Python-3.8.3/Objects/rangeobject.c:613,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/rangeobject.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - rangeobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 600
    functionDepth: 6
    functionLinenumber: 600
    functionLinenumberEnd: 619
    functionName: range_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - Py_DECREF
    - PySlice_Check
    - compute_range_item
    - PyNumber_Index
    - PyErr_Format
    - compute_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_subscript(rangeobject* self, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/rangeobject.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - rangeobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: range_bool
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int range_bool(rangeobject* self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - r
    argTypes:
    - rangeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 731
    functionName: rangeiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_next(rangeiterobject *r)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - rangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 737
    functionName: rangeiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_len(rangeiterobject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/rangeobject.c:745,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:750,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:753,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:756,1
    - Dst: make_range_object
      Src: /src/Python-3.8.3/Objects/rangeobject.c:759,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/rangeobject.c:764,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/rangeobject.c:764,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:767,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:768,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - rangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 771
    functionName: rangeiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - make_range_object
    - Py_BuildValue
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_reduce(rangeiterobject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:776,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - rangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 786
    functionName: rangeiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      rangeiter_setstate(rangeiterobject *r, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/rangeobject.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - lo
    - hi
    - step
    argTypes:
    - long
    - long
    - long
    assertStmts:
    - condition: (step != 0)
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 860
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 860
    functionName: get_len_of_range
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long get_len_of_range(long lo, long hi, long step)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/rangeobject.c:868,1
    - Dst: get_len_of_range
      Src: /src/Python-3.8.3/Objects/rangeobject.c:874,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:876,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/rangeobject.c:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - start
    - stop
    - step
    argTypes:
    - long
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 884
    functionName: fast_range_iter
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_DECREF
    - get_len_of_range
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_range_iter(long start, long stop, long step)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - no_args
    argTypes:
    - longrangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 898
    functionName: longrangeiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Subtract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_len(longrangeiterobject *r, PyObject *no_args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/rangeobject.c:903,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Objects/rangeobject.c:908,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:911,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:912,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:915,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:916,1
    - Dst: make_range_object
      Src: /src/Python-3.8.3/Objects/rangeobject.c:917,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:922,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/rangeobject.c:927,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/rangeobject.c:927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - r
    - Py_UNUSED(ignored)
    argTypes:
    - longrangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 929
    functionName: longrangeiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - make_range_object
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    - PyNumber_Add
    - PyNumber_Multiply
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_reduce(longrangeiterobject *r, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:937,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:944,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:950,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - r
    - state
    argTypes:
    - longrangeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 953
    functionName: longrangeiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyObject_RichCompareBool
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_setstate(longrangeiterobject *r, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:968,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:969,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:970,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:971,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Objects/rangeobject.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - longrangeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 973
    functionName: longrangeiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void longrangeiter_dealloc(longrangeiterobject *r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/rangeobject.c:979,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:982,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Objects/rangeobject.c:986,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:988,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:993,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:995,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - r
    argTypes:
    - longrangeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 1002
    functionName: longrangeiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_RichCompareBool
    - PyNumber_Add
    - PyNumber_Multiply
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      longrangeiter_next(longrangeiterobject *r)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1045,1
    - Dst: PyRange_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1045,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1049,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1050,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1051,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1054,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1055,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1056,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1059,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1060,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1061,1
    - Dst: fast_range_iter
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1064,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1065,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1066,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1072,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1080,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1081,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1082,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1083,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyRange_Check(seq))
      pos:
        line_end: 1044
        line_start: 1044
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1085
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1085
    functionName: range_iter
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_AsLong
    - PyRange_Check
    - PyErr_Occurred
    - Py_INCREF
    - fast_range_iter
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_iter(PyObject *seq)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1096,1
    - Dst: PyRange_Check
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1096,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1109,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1110,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1113,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1114,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1115,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1118,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1119,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1120,1
    - Dst: get_len_of_range
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1149,1
    - Dst: fast_range_iter
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1155,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1165,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1167,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1172,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1177,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1182,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/rangeobject.c:1191,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 73
    argCount: 2
    argNames:
    - seq
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyRange_Check(seq))
      pos:
        line_end: 1095
        line_start: 1095
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    constantsTouched: []
    func_position:
      end: 1193
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1193
    functionName: range_reverse
    functionSourceFile: /src/Python-3.8.3/Objects/rangeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyRange_Check
    - PyErr_Occurred
    - get_len_of_range
    - Py_INCREF
    - PyNumber_Multiply
    - Py_DECREF
    - fast_range_iter
    - PyNumber_Negative
    - PyNumber_Subtract
    - PyNumber_Add
    - assert
    - PyErr_Clear
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:19,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:28,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 32
    functionName: _Py_bytes_isspace
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isspace(const char *cptr, Py_ssize_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:49,1
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: _Py_bytes_isalpha
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISALPHA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isalpha(const char *cptr, Py_ssize_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:79,1
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: _Py_bytes_isalnum
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISALNUM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isalnum(const char *cptr, Py_ssize_t len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:117,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:122,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: _Py_bytes_isascii
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isascii(const char *cptr, Py_ssize_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:161,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: _Py_bytes_isdigit
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_ISDIGIT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isdigit(const char *cptr, Py_ssize_t len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:193,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:193,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:202,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:204,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: _Py_bytes_islower
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISUPPER
    - Py_ISLOWER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_islower(const char *cptr, Py_ssize_t len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:227,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:227,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:236,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:238,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 242
    functionName: _Py_bytes_isupper
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISUPPER
    - Py_ISLOWER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_isupper(const char *cptr, Py_ssize_t len)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:263,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:263,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:275,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:281,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - cptr
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 291
    functionName: _Py_bytes_istitle
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - Py_ISUPPER
    - Py_ISLOWER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_istitle(const char *cptr, Py_ssize_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - cptr
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 307
    functionName: _Py_bytes_lower
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_lower(char *result, const char *cptr, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - result
    - cptr
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: _Py_bytes_upper
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_TOUPPER
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_upper(char *result, const char *cptr, Py_ssize_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:339,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:340,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:342,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:344,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 352
    functionName: _Py_bytes_title
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - Py_ISLOWER
    - Py_TOUPPER
    - Py_ISUPPER
    - Py_CHARMASK
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_title(char *result, const char *s, Py_ssize_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:365,1
    - Dst: _Py_bytes_lower
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: _Py_bytes_capitalize
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_lower
    - Py_TOUPPER
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:383,1
    - Dst: Py_ISLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:384,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:385,1
    - Dst: Py_ISUPPER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:387,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - result
    - s
    - len
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: _Py_bytes_swapcase
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - Py_ISLOWER
    - Py_TOUPPER
    - Py_ISUPPER
    - Py_CHARMASK
    linkageType: ''
    returnType: void
    signature: void _Py_bytes_swapcase(char *result, const char *s, Py_ssize_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:413,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:417,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 428
    functionName: _Py_bytes_maketrans
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Format
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_maketrans(Py_buffer *frm, Py_buffer *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_parse_args_finds
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:460,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:464,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:469,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:470,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:473,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:477,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 6
    argNames:
    - function_name
    - args
    - subobj
    - byte
    - start
    - end
    argTypes:
    - char*
    - PyObject*
    - PyObject**
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 489
    functionName: parse_args_finds_byte
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PyObject_CheckBuffer
    - stringlib_parse_args_finds
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: void
    signature: "void parse_args_finds_byte(const char *function_name, PyObject *args,\n
      \                     PyObject **subobj, char *byte,\n                      Py_ssize_t
      *start, Py_ssize_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - end
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: ADJUST_INDICES
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_INDICES(start, end, len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_byte
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:518,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:523,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:534,1
    - Dst: stringlib_find_char
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:539,1
    - Dst: stringlib_rfind_char
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:543,1
    - Dst: stringlib_find_slice
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:551,1
    - Dst: stringlib_rfind_slice
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:555,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:561,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - str
    - len
    - function_name
    - args
    - dir
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 564
    functionName: find_internal
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - stringlib_rfind_slice
    - stringlib_find_slice
    - stringlib_find_char
    - ADJUST_INDICES
    - stringlib_rfind_char
    - PyBuffer_Release
    - PyObject_GetBuffer
    - parse_args_finds_byte
    linkageType: ''
    returnType: void
    signature: "void find_internal(const char *str, Py_ssize_t len,\n              const
      char *function_name, PyObject *args, int dir)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:578,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: _Py_bytes_find
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_find(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:596,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:600,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 605
    functionName: _Py_bytes_index
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_index(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:619,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 623
    functionName: _Py_bytes_rfind
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_rfind(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_internal
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:637,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:641,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 3
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: _Py_bytes_rindex
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - find_internal
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_rindex(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_byte
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:667,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:672,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:683,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:685,1
    - Dst: stringlib_count
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:686,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 693
    functionName: _Py_bytes_count
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - ADJUST_INDICES
    - stringlib_count
    - PyBuffer_Release
    - PyLong_FromSsize_t
    - parse_args_finds_byte
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_count(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:698,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:699,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:702,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:703,1
    - Dst: stringlib_find
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:705,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:707,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:711,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - str
    - len
    - arg
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 716
    functionName: _Py_bytes_contains
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - memchr
    - PyBuffer_Release
    - PyErr_SetString
    - stringlib_find
    - PyErr_Clear
    - PyObject_GetBuffer
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _Py_bytes_contains(const char *str, Py_ssize_t len, PyObject *arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:731,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:732,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:733,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:736,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:742,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:758,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:761,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:765,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 6
    argNames:
    - str
    - len
    - substr
    - start
    - end
    - direction
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 767
    functionName: tailmatch
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - ADJUST_INDICES
    - memcmp
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    linkageType: ''
    returnType: int
    signature: "int tailmatch(const char *str, Py_ssize_t len, PyObject *substr,\n
      \         Py_ssize_t start, Py_ssize_t end, int direction)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_parse_args_finds
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:779,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:781,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:783,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:784,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:784,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:794,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:796,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:797,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:800,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:804,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - str
    - len
    - function_name
    - args
    - direction
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 805
    functionName: _Py_bytes_tailmatch
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - stringlib_parse_args_finds
    - PyTuple_Check
    - tailmatch
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_TYPE
    - PyBool_FromLong
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_bytes_tailmatch(const char *str, Py_ssize_t len,\n
      \                   const char *function_name, PyObject *args,\n                    int
      direction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_tailmatch
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: _Py_bytes_startswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_tailmatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_startswith(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_tailmatch
      Src: /src/Python-3.8.3/Objects/bytes_methods.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - args
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: _Py_bytes_endswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytes_methods.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_tailmatch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_bytes_endswith(const char *str, Py_ssize_t len, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/accu.c:11,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Objects/accu.c:12,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/accu.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lst
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 15
    functionName: join_list_unicode
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromStringAndSize
    - PyUnicode_Join
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      join_list_unicode(PyObject *lst)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/accu.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - acc
    argTypes:
    - _PyAccu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: _PyAccu_Init
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 3
    functionsReached:
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int _PyAccu_Init(_PyAccu *acc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/accu.c:31,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/accu.c:36,1
    - Dst: join_list_unicode
      Src: /src/Python-3.8.3/Objects/accu.c:40,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Objects/accu.c:43,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/accu.c:44,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/accu.c:47,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/accu.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - acc
    argTypes:
    - _PyAccu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 52
    functionName: flush_accumulator
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - Py_DECREF
    - PyList_Append
    - PyList_New
    - PyList_GET_SIZE
    - join_list_unicode
    linkageType: ''
    returnType: int
    signature: int flush_accumulator(_PyAccu *acc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/accu.c:58,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/accu.c:58,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/accu.c:60,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/accu.c:62,1
    - Dst: flush_accumulator
      Src: /src/Python-3.8.3/Objects/accu.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - acc
    - unicode
    argTypes:
    - _PyAccu*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_Check(unicode))
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/Python-3.8.3/Objects/accu.c
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: _PyAccu_Accumulate
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 5
    functionsReached:
    - flush_accumulator
    - PyList_Append
    - PyList_GET_SIZE
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flush_accumulator
      Src: /src/Python-3.8.3/Objects/accu.c:81,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/accu.c:82,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/accu.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - acc
    argTypes:
    - _PyAccu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: _PyAccu_FinishAsList
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 1
    functionsReached:
    - flush_accumulator
    - Py_CLEAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAccu_FinishAsList(_PyAccu *acc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyAccu_FinishAsList
      Src: /src/Python-3.8.3/Objects/accu.c:101,1
    - Dst: join_list_unicode
      Src: /src/Python-3.8.3/Objects/accu.c:105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/accu.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - acc
    argTypes:
    - _PyAccu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: _PyAccu_Finish
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 2
    functionsReached:
    - _PyAccu_FinishAsList
    - Py_DECREF
    - join_list_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAccu_Finish(_PyAccu *acc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/accu.c:113,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/accu.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - acc
    argTypes:
    - _PyAccu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: _PyAccu_Destroy
    functionSourceFile: /src/Python-3.8.3/Objects/accu.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyAccu_Destroy(_PyAccu *acc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:22,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:28,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - base
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: PyPickleBuffer_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyPickleBuffer_FromObject(PyObject *base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyPickleBuffer_Check
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:40,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:41,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:43,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: PyPickleBuffer_GetBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - PyPickleBuffer_Check
    - PyErr_SetString
    - Py_TYPE
    linkageType: ''
    returnType: Py_buffer
    signature: 'Py_buffer *

      PyPickleBuffer_GetBuffer(PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyPickleBuffer_Check
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:59,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:60,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:62,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: PyPickleBuffer_Release
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyPickleBuffer_Check
    - PyBuffer_Release
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyPickleBuffer_Release(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:76,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:81,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:87,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: picklebuf_new
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyObject_GetBuffer
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyPickleBufferObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: picklebuf_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int picklebuf_traverse(PyPickleBufferObject *self, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyPickleBufferObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: picklebuf_clear
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int picklebuf_clear(PyPickleBufferObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:111,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:113,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:114,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyPickleBufferObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: picklebuf_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_GC_UnTrack
    - PyBuffer_Release
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void picklebuf_dealloc(PyPickleBufferObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:124,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyPickleBufferObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: picklebuf_getbuf
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int picklebuf_getbuf(PyPickleBufferObject *self, Py_buffer *view, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyPickleBufferObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: picklebuf_releasebuf
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void picklebuf_releasebuf(PyPickleBufferObject *self, Py_buffer *view)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:152,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:157,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:158,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:162,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyPickleBufferObject*
    - PyObject*
    assertStmts:
    - condition: (mv->view.suboffsets == NULL)
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/Python-3.8.3/Objects/picklebufobject.c
    constantsTouched: []
    func_position:
      end: 180
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 180
    functionName: picklebuf_raw
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyMemoryView_FromObject
    - assert
    - PyBuffer_IsContiguous
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_raw(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/picklebufobject.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyPickleBufferObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: picklebuf_release
    functionSourceFile: /src/Python-3.8.3/Objects/picklebufobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      picklebuf_release(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: TP_DESCR_GET
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TP_DESCR_GET(t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:26,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/classobject.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: PyMethod_Function
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_Check
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_Function(PyObject *im)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:36,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/classobject.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: PyMethod_Self
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_Check
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_Self(PyObject *im)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/classobject.c:48,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/classobject.c:48,1
    - Dst: PyMethod_GET_SELF
      Src: /src/Python-3.8.3/Objects/classobject.c:50,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:51,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/classobject.c:52,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Objects/classobject.c:60,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/classobject.c:64,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Objects/classobject.c:67,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/classobject.c:72,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/classobject.c:76,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/classobject.c:78,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/classobject.c:87,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/classobject.c:88,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Objects/classobject.c:89,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/classobject.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - method
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (Py_TYPE(method) == &PyMethod_Type)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/Python-3.8.3/Objects/classobject.c
    - condition: (args != NULL)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/Python-3.8.3/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 95
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 95
    functionName: method_vectorcall
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMethod_GET_FUNCTION
    - PyTuple_GET_SIZE
    - Py_ARRAY_LENGTH
    - PyVectorcall_NARGS
    - PyErr_NoMemory
    - Py_TYPE
    - PyMem_Free
    - PyMem_Malloc
    - assert
    - PyMethod_GET_SELF
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall(PyObject *method, PyObject *const *args,\n
      \                 size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/classobject.c:108,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/classobject.c:114,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/classobject.c:118,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:123,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:125,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/classobject.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - func
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: PyMethod_New
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 3
    functionsReached:
    - Py_INCREF
    - PyObject_INIT
    - PyErr_BadInternalCall
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMethod_New(PyObject *func, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_GET_SELF
      Src: /src/Python-3.8.3/Objects/classobject.c:135,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:136,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/classobject.c:138,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/classobject.c:140,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/classobject.c:144,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/classobject.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - im
    - Py_UNUSED(ignored)
    argTypes:
    - PyMethodObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: method_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyMethod_GET_FUNCTION
    - _PyObject_GetAttrId
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    - PyMethod_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_reduce(PyMethodObject *im, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: MO_OFF
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MO_OFF(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/classobject.c:177,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/classobject.c:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - im
    - context
    argTypes:
    - PyMethodObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: method_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetAttr
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_doc(PyMethodObject *im, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/classobject.c:198,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/classobject.c:201,1
    - Dst: TP_DESCR_GET
      Src: /src/Python-3.8.3/Objects/classobject.c:205,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/classobject.c:207,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:209,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/classobject.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 215
    functionName: method_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    - _PyType_Lookup
    - Py_INCREF
    - f
    - TP_DESCR_GET
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_getattro(PyObject *obj, PyObject *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/classobject.c:228,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/classobject.c:230,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:233,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/classobject.c:234,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/classobject.c:239,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Objects/classobject.c:244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 245
    functionName: method_new
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - PyCallable_Check
    - _PyArg_NoKeywords
    - PyErr_SetString
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_new(PyTypeObject* type, PyObject* args, PyObject *kw)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/classobject.c:250,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/classobject.c:252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:253,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:254,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/classobject.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyMethodObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 263
    functionName: method_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_DECREF
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void method_dealloc(PyMethodObject *im)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:273,1
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:274,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/classobject.c:280,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 292
    functionName: method_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_Check
    - PyObject_RichCompareBool
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/classobject.c:302,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/classobject.c:304,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:310,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/classobject.c:315,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyMethodObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 320
    functionName: method_repr
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_LookupAttrId
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_repr(PyMethodObject *a)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Objects/classobject.c:326,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/classobject.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyMethodObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 334
    functionName: method_hash
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t method_hash(PyMethodObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/classobject.c:339,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/classobject.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - im
    - visit
    - arg
    argTypes:
    - PyMethodObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: method_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int method_traverse(PyMethodObject *im, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_GET_SELF
      Src: /src/Python-3.8.3/Objects/classobject.c:349,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:350,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/Python-3.8.3/Objects/classobject.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - method
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 353
    functionName: method_call
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_Call_Prepend
    - PyMethod_GET_SELF
    - PyMethod_GET_FUNCTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_call(PyObject *method, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - meth
    - obj
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: method_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_descr_get(PyObject *meth, PyObject *obj, PyObject *cls)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/classobject.c:414,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/classobject.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (numfree == 0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/Python-3.8.3/Objects/classobject.c
    constantsTouched: []
    func_position:
      end: 419
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 419
    functionName: PyMethod_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    - assert
    linkageType: ''
    returnType: int
    signature: int PyMethod_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_ClearFreeList
      Src: /src/Python-3.8.3/Objects/classobject.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: PyMethod_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyMethod_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/classobject.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 434
    functionName: _PyMethod_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyMethod_DebugMallocStats(FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/classobject.c:443,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:446,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/classobject.c:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: PyInstanceMethod_New
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyInstanceMethod_New(PyObject *func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:455,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/classobject.c:456,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - im
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 460
    functionName: PyInstanceMethod_Function
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - PyErr_BadInternalCall
    - PyInstanceMethod_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyInstanceMethod_Function(PyObject *im)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: IMO_OFF
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMO_OFF(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/classobject.c:475,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/classobject.c:479,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 480
    functionName: instancemethod_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - PyObject_GetAttr
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_get_doc(PyObject *self, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/classobject.c:494,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/classobject.c:497,1
    - Dst: TP_DESCR_GET
      Src: /src/Python-3.8.3/Objects/classobject.c:500,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/classobject.c:502,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:504,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/classobject.c:509,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 510
    functionName: instancemethod_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_GET_FUNCTION
    - PyType_Ready
    - _PyType_Lookup
    - Py_INCREF
    - f
    - TP_DESCR_GET
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_getattro(PyObject *self, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/classobject.c:514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:515,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:515,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/classobject.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 517
    functionName: instancemethod_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyInstanceMethod_GET_FUNCTION
    - Py_DECREF
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void instancemethod_dealloc(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/classobject.c:521,1
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: instancemethod_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyInstanceMethod_GET_FUNCTION
    linkageType: ''
    returnType: int
    signature: int instancemethod_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Objects/classobject.c:528,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - arg
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: instancemethod_call
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyMethod_GET_FUNCTION
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_call(PyObject *self, PyObject *arg, PyObject *kw)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/classobject.c:533,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:535,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Objects/classobject.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 540
    functionName: instancemethod_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - PyInstanceMethod_GET_FUNCTION
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_descr_get(PyObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:550,1
    - Dst: PyInstanceMethod_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:551,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/classobject.c:557,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/classobject.c:564,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 566
    functionName: instancemethod_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - PyInstanceMethod_Check
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInstanceMethod_Function
      Src: /src/Python-3.8.3/Objects/classobject.c:571,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/classobject.c:576,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/classobject.c:580,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:584,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/classobject.c:588,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/classobject.c:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 593
    functionName: instancemethod_repr
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyInstanceMethod_Function
    - _PyObject_LookupAttrId
    - PyErr_BadInternalCall
    - PyUnicode_FromFormat
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_repr(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/classobject.c:621,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/classobject.c:623,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Objects/classobject.c:625,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/classobject.c:626,1
    - Dst: PyInstanceMethod_New
      Src: /src/Python-3.8.3/Objects/classobject.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 632
    functionName: instancemethod_new
    functionSourceFile: /src/Python-3.8.3/Objects/classobject.c
    functionUses: 0
    functionsReached:
    - PyInstanceMethod_New
    - PyCallable_Check
    - _PyArg_NoKeywords
    - PyErr_SetString
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      instancemethod_new(PyTypeObject* type, PyObject* args, PyObject *kw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: DICT_NEXT_VERSION
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DICT_NEXT_VERSION()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:266,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:266,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/dictobject.c:267,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/dictobject.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyDict_CheckExact(op))
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: PyDict_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - assert
    - PyObject_FREE
    - PyObject_GC_Del
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int PyDict_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/dictobject.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: _PyDict_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyDict_DebugMallocStats(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_ClearFreeList
      Src: /src/Python-3.8.3/Objects/dictobject.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: PyDict_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyDict_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: DK_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_SIZE(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: DK_IXSIZE
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_IXSIZE(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: DK_IXSIZE
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_IXSIZE(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: DK_ENTRIES
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_ENTRIES(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: DK_MASK
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DK_MASK(dk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: IS_POWER_OF_2
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_POWER_OF_2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dk
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: dictkeys_incref
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dictkeys_incref(PyDictKeysObject *dk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:321,1
    - Dst: free_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dk
    argTypes:
    - PyDictKeysObject*
    assertStmts:
    - condition: (dk->dk_refcnt > 0)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: dictkeys_decref
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - free_keys_object
    linkageType: ''
    returnType: void
    signature: void dictkeys_decref(PyDictKeysObject *dk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - keys
    - i
    argTypes:
    - PyDictKeysObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 352
    functionName: dictkeys_get_index
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictkeys_get_index(PyDictKeysObject *keys, Py_ssize_t i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:361,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:363,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:367,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:372,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - keys
    - i
    - ix
    argTypes:
    - PyDictKeysObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (ix <= 0x7fff)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix <= 0x7f)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix >= DKIX_DUMMY)
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix <= 0x7fffffff)
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 386
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 386
    functionName: dictkeys_set_index
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - DK_SIZE
    linkageType: ''
    returnType: void
    signature: void dictkeys_set_index(PyDictKeysObject *keys, Py_ssize_t i, Py_ssize_t
      ix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 401
    functionName: USABLE_FRACTION
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USABLE_FRACTION(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    functionName: ESTIMATE_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ESTIMATE_SIZE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: GROWTH_RATE
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GROWTH_RATE(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 431
    functionName: ENSURE_ALLOWS_DELETIONS
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_ALLOWS_DELETIONS(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: ASSERT_CONSISTENT
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_CONSISTENT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: ASSERT_CONSISTENT
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_CONSISTENT(op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:465,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:466,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:466,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:470,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:471,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:473,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:474,1
    - Dst: IS_POWER_OF_2
      Src: /src/Python-3.8.3/Objects/dictobject.c:474,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:475,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:476,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:477,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:481,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:485,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:489,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:490,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:498,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:500,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:501,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:505,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:508,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:513,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/dictobject.c:520,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 527
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 527
    functionName: _PyDict_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - CHECK
    - dictkeys_get_index
    - _PyDict_HasSplitTable
    - PyDict_Check
    - IS_POWER_OF_2
    - USABLE_FRACTION
    - assert
    - DK_ENTRIES
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int _PyDict_CheckConsistency(PyObject *op, int check_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:535,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:536,1
    - Dst: IS_POWER_OF_2
      Src: /src/Python-3.8.3/Objects/dictobject.c:536,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size >= PyDict_MINSIZE)
      pos:
        line_end: 534
        line_start: 534
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (IS_POWER_OF_2(size))
      pos:
        line_end: 535
        line_start: 535
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 552
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 552
    functionName: new_keys_object
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - IS_POWER_OF_2
    - assert
    - USABLE_FRACTION
    linkageType: ''
    returnType: PyDictKeysObject
    signature: PyDictKeysObject *new_keys_object(Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:580,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:583,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:584,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/dictobject.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 591
    functionName: free_keys_object
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - DK_ENTRIES
    - Py_XDECREF
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void free_keys_object(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 594
    functionName: new_values
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: new_values(size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - values
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: free_values
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: free_values(values)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:601,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:604,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:605,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:605,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/dictobject.c:606,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:609,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:611,1
    - Dst: free_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:613,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:621,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - keys
    - values
    argTypes:
    - PyDictKeysObject*
    - PyObject**
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (Py_TYPE(mp) == &PyDict_Type)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (mp != NULL)
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 624
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 624
    functionName: new_dict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_decref
    - _Py_NewReference
    - PyObject_GC_New
    - Py_TYPE
    - free_values
    - assert
    - DICT_NEXT_VERSION
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_dict(PyDictKeysObject *keys, PyObject **values)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:633,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:633,1
    - Dst: new_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:634,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:636,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/dictobject.c:637,1
    - Dst: new_dict
      Src: /src/Python-3.8.3/Objects/dictobject.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 3
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: new_dict_with_shared_keys
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_dict
    - dictkeys_decref
    - PyErr_NoMemory
    - new_values
    - USABLE_FRACTION
    - DK_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      new_dict_with_shared_keys(PyDictKeysObject *keys)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:649,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:649,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:650,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:651,1
    - Dst: _PyDict_KeysSize
      Src: /src/Python-3.8.3/Objects/dictobject.c:653,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/dictobject.c:654,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/dictobject.c:656,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/dictobject.c:660,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:665,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:671,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:672,1
    - Dst: new_dict
      Src: /src/Python-3.8.3/Objects/dictobject.c:676,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (PyDict_CheckExact(orig))
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (orig->ma_keys->dk_refcnt == 1)
      pos:
        line_end: 650
        line_start: 650
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (orig->ma_values == NULL)
      pos:
        line_end: 649
        line_start: 649
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 696
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 696
    functionName: clone_combined_dict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyObject_Malloc
    - new_dict
    - Py_INCREF
    - PyErr_NoMemory
    - PyDict_CheckExact
    - _PyDict_KeysSize
    - _PyObject_GC_IS_TRACKED
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      clone_combined_dict(PyDictObject *orig)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:701,1
    - Dst: new_dict
      Src: /src/Python-3.8.3/Objects/dictobject.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: PyDict_New
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 75
    functionsReached:
    - new_dict
    - dictkeys_incref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:709,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:714,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - k
    - hash
    - index
    argTypes:
    - PyDictKeysObject*
    - Py_hash_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 725
    functionName: lookdict_index
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - dictkeys_get_index
    - DK_MASK
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t lookdict_index(PyDictKeysObject *k, Py_hash_t hash, Py_ssize_t
      index)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:761,1
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:762,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:767,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:774,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:781,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/dictobject.c:782,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:783,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:803,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 773
        line_start: 773
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 804
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 804
    functionName: _Py_HOT_FUNCTION::lookdict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - Py_DECREF
    - Py_INCREF
    - dictkeys_get_index
    - Py_UNREACHABLE
    - PyObject_RichCompareBool
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Py_HOT_FUNCTION\nlookdict(PyDictObject *mp, PyObject *key,\n
      \        Py_hash_t hash, PyObject **value_addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:811,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:816,1
    - Dst: _Py_HOT_FUNCTION::lookdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:818,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:821,1
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:822,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:827,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:834,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:835,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:835,1
    - Dst: unicode_eq
      Src: /src/Python-3.8.3/Objects/dictobject.c:837,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:845,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (mp->ma_values == NULL)
      pos:
        line_end: 810
        line_start: 810
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 846
      start: 807
    functionDepth: 5
    functionLinenumber: 807
    functionLinenumberEnd: 846
    functionName: _Py_HOT_FUNCTION::lookdict_unicode
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - unicode_eq
    - dictkeys_get_index
    - _Py_HOT_FUNCTION::lookdict
    - Py_UNREACHABLE
    - assert
    - DK_ENTRIES
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Py_HOT_FUNCTION\nlookdict_unicode(PyDictObject *mp, PyObject
      *key,\n                 Py_hash_t hash, PyObject **value_addr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:854,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:859,1
    - Dst: _Py_HOT_FUNCTION::lookdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:861,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:864,1
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:865,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:870,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:871,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:877,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:878,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:878,1
    - Dst: unicode_eq
      Src: /src/Python-3.8.3/Objects/dictobject.c:880,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (mp->ma_values == NULL)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix != DKIX_DUMMY)
      pos:
        line_end: 870
        line_start: 870
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 876
        line_start: 876
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 888
      start: 850
    functionDepth: 5
    functionLinenumber: 850
    functionLinenumberEnd: 888
    functionName: _Py_HOT_FUNCTION::lookdict_unicode_nodummy
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - unicode_eq
    - dictkeys_get_index
    - _Py_HOT_FUNCTION::lookdict
    - Py_UNREACHABLE
    - assert
    - DK_ENTRIES
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Py_HOT_FUNCTION\nlookdict_unicode_nodummy(PyDictObject
      *mp, PyObject *key,\n                         Py_hash_t hash, PyObject **value_addr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:900,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:901,1
    - Dst: _Py_HOT_FUNCTION::lookdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:902,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:909,1
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:910,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:915,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:916,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:922,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:923,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:923,1
    - Dst: unicode_eq
      Src: /src/Python-3.8.3/Objects/dictobject.c:925,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:932,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value_addr
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject**
    assertStmts:
    - condition: (mp->ma_values != NULL)
      pos:
        line_end: 899
        line_start: 899
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix != DKIX_DUMMY)
      pos:
        line_end: 915
        line_start: 915
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ep->me_key != NULL)
      pos:
        line_end: 921
        line_start: 921
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyUnicode_CheckExact(ep->me_key))
      pos:
        line_end: 922
        line_start: 922
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 933
      start: 895
    functionDepth: 5
    functionLinenumber: 895
    functionLinenumberEnd: 933
    functionName: _Py_HOT_FUNCTION::lookdict_split
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - DK_MASK
    - unicode_eq
    - dictkeys_get_index
    - _Py_HOT_FUNCTION::lookdict
    - Py_UNREACHABLE
    - assert
    - DK_ENTRIES
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _Py_HOT_FUNCTION\nlookdict_split(PyDictObject *mp, PyObject
      *key,\n               Py_hash_t hash, PyObject **value_addr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:940,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:940,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:944,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 939
        line_start: 939
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 948
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 948
    functionName: _PyDict_HasOnlyStringKeys
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - assert
    - PyDict_Next
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int _PyDict_HasOnlyStringKeys(PyObject *dict)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mp
    - ','
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 959
    functionName: MAINTAIN_TRACKING
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAINTAIN_TRACKING(mp, key, value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:968,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:968,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:972,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:974,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:978,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:979,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:979,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:988,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:989,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:993,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (!_PyObject_GC_MAY_BE_TRACKED(ep0[i].me_key))
      pos:
        line_end: 978
        line_start: 978
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 994
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 994
    functionName: _PyDict_MaybeUntrack
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_MAY_BE_TRACKED
    - _PyDict_HasSplitTable
    - PyDict_CheckExact
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: void
    signature: void _PyDict_MaybeUntrack(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1003,1
    - Dst: DK_MASK
      Src: /src/Python-3.8.3/Objects/dictobject.c:1005,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1007,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - keys
    - hash
    argTypes:
    - PyDictKeysObject*
    - Py_hash_t
    assertStmts:
    - condition: (keys != NULL)
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1014
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1014
    functionName: find_empty_slot
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - DK_MASK
    - dictkeys_get_index
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t find_empty_slot(PyDictKeysObject *keys, Py_hash_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1019,1
    - Dst: GROWTH_RATE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: insertion_resize
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictresize
    - GROWTH_RATE
    linkageType: ''
    returnType: int
    signature: int insertion_resize(PyDictObject *mp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1033,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1034,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1035,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1036,1
    - Dst: PyDictObject*::ma_keys::dk_lookup
      Src: /src/Python-3.8.3/Objects/dictobject.c:1040,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1044,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1044,1
    - Dst: MAINTAIN_TRACKING
      Src: /src/Python-3.8.3/Objects/dictobject.c:1045,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1050,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1053,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1060,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1063,1
    - Dst: find_empty_slot
      Src: /src/Python-3.8.3/Objects/dictobject.c:1066,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1067,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1068,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1072,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1079,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1082,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:1083,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1088,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1092,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1097,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1098,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1100,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1102,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:1103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1109,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(key) || mp->ma_keys->dk_lookup == lookdict)
      pos:
        line_end: 1043
        line_start: 1043
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (mp->ma_values[mp->ma_keys->dk_nentries] == NULL)
      pos:
        line_end: 1071
        line_start: 1071
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (old_value == NULL)
      pos:
        line_end: 1059
        line_start: 1059
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix == mp->ma_used)
      pos:
        line_end: 1091
        line_start: 1091
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1111
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1111
    functionName: insertdict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - find_empty_slot
    - MAINTAIN_TRACKING
    - dictkeys_set_index
    - ASSERT_CONSISTENT
    - Py_INCREF
    - PyDictObject*::ma_keys::dk_lookup
    - insertion_resize
    - Py_DECREF
    - _PyDict_HasSplitTable
    - assert
    - DK_ENTRIES
    - DICT_NEXT_VERSION
    - Py_XDECREF
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int insertdict(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1118,1
    - Dst: new_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:1120,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1124,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1127,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1131,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1132,1
    - Dst: MAINTAIN_TRACKING
      Src: /src/Python-3.8.3/Objects/dictobject.c:1133,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1136,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1137,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - mp
    - key
    - hash
    - value
    argTypes:
    - PyDictObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (mp->ma_keys == Py_EMPTY_KEYS)
      pos:
        line_end: 1117
        line_start: 1117
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1146
    functionName: insert_to_emptydict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_keys_object
    - MAINTAIN_TRACKING
    - dictkeys_set_index
    - Py_INCREF
    - dictkeys_decref
    - assert
    - DK_ENTRIES
    - DICT_NEXT_VERSION
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: "int insert_to_emptydict(PyDictObject *mp, PyObject *key, Py_hash_t
      hash,\n                    PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1154,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1158,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - keys
    - ep
    - n
    argTypes:
    - PyDictKeysObject*
    - PyDictKeyEntry*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1164
    functionName: build_indices
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_get_index
    - dictkeys_set_index
    - DK_SIZE
    linkageType: ''
    returnType: void
    signature: void build_indices(PyDictKeysObject *keys, PyDictKeyEntry *ep, Py_ssize_t
      n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/dictobject.c:1190,1
    - Dst: new_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:1202,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1208,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1213,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1214,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1222,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1225,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1231,1
    - Dst: free_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:1234,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/dictobject.c:1239,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1250,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1251,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1259,1
    - Dst: build_indices
      Src: /src/Python-3.8.3/Objects/dictobject.c:1263,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - mp
    - minsize
    argTypes:
    - PyDictObject*
    - Py_ssize_t
    assertStmts:
    - condition: (mp->ma_keys->dk_usable >= mp->ma_used)
      pos:
        line_end: 1207
        line_start: 1207
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (oldvalues[i] != NULL)
      pos:
        line_end: 1221
        line_start: 1221
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (oldkeys->dk_lookup != lookdict_split)
      pos:
        line_end: 1249
        line_start: 1249
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 1250
        line_start: 1250
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1267
      start: 1176
    functionDepth: 3
    functionLinenumber: 1176
    functionLinenumberEnd: 1267
    functionName: dictresize
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - new_keys_object
    - memcpy
    - Py_INCREF
    - dictkeys_decref
    - PyErr_NoMemory
    - build_indices
    - PyObject_FREE
    - free_values
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: int
    signature: int dictresize(PyDictObject *mp, Py_ssize_t minsize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1278,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1280,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1283,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1289,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1289,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1292,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1294,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1295,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1295,1
    - Dst: new_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:1296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:1298,1
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (mp->ma_keys->dk_refcnt == 1)
      pos:
        line_end: 1282
        line_start: 1282
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_lookup == lookdict_unicode_nodummy)
      pos:
        line_end: 1291
        line_start: 1291
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1311
      start: 1271
    functionDepth: 4
    functionLinenumber: 1271
    functionLinenumberEnd: 1311
    functionName: make_keys_shared
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_HasSplitTable
    - PyDict_CheckExact
    - new_values
    - USABLE_FRACTION
    - dictresize
    - PyErr_SetString
    - DK_SIZE
    - assert
    - DK_ENTRIES
    - dictkeys_incref
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      make_keys_shared(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1320,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:1321,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1327,1
    - Dst: ESTIMATE_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1331,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1337,1
    - Dst: IS_POWER_OF_2
      Src: /src/Python-3.8.3/Objects/dictobject.c:1337,1
    - Dst: new_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:1339,1
    - Dst: new_dict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1342,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - minused
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (IS_POWER_OF_2(newsize))
      pos:
        line_end: 1336
        line_start: 1336
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1343
      start: 1313
    functionDepth: 4
    functionLinenumber: 1313
    functionLinenumberEnd: 1343
    functionName: _PyDict_NewPresized
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - new_keys_object
    - new_dict
    - PyDict_New
    - IS_POWER_OF_2
    - USABLE_FRACTION
    - ESTIMATE_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_NewPresized(Py_ssize_t minused)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1364,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1366,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1369,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:1371,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/dictobject.c:1381,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/dictobject.c:1385,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/dictobject.c:1388,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:1395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1355
    functionDepth: 3
    functionLinenumber: 1355
    functionLinenumberEnd: 1400
    functionName: PyDict_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - _PyThreadState_GET
    - PyErr_Fetch
    - PyErr_Restore
    - PyDict_Check
    - PyObject_Hash
    - PyErr_Clear
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItem(PyObject *op, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1413,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1406
    functionDepth: 1
    functionLinenumber: 1406
    functionLinenumberEnd: 1423
    functionName: _PyDict_GetItem_KnownHash
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t hash)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1437,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1438,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1441,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1429
    functionDepth: 3
    functionLinenumber: 1429
    functionLinenumberEnd: 1454
    functionName: PyDict_GetItemWithError
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 42
    functionsReached:
    - PyObject_Hash
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemWithError(PyObject *op, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/dictobject.c:1460,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dp
    - key
    argTypes:
    - PyObject*
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1456
    functionDepth: 4
    functionLinenumber: 1456
    functionLinenumberEnd: 1464
    functionName: _PyDict_GetItemIdWithError
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - PyDict_GetItemWithError
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemIdWithError(PyObject *dp, struct _Py_Identifier *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:1470,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1466
    functionDepth: 4
    functionLinenumber: 1466
    functionLinenumberEnd: 1477
    functionName: _PyDict_GetItemStringWithError
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyDict_GetItemWithError
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemStringWithError(PyObject *v, const char *key)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1493,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1496,1
    - Dst: PyDictObject*::ma_keys::dk_lookup
      Src: /src/Python-3.8.3/Objects/dictobject.c:1502,1
    - Dst: PyDictObject*::ma_keys::dk_lookup
      Src: /src/Python-3.8.3/Objects/dictobject.c:1509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - globals
    - builtins
    - key
    argTypes:
    - PyDictObject*
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1486
    functionDepth: 3
    functionLinenumber: 1486
    functionLinenumberEnd: 1513
    functionName: _PyDict_LoadGlobal
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDictObject*::ma_keys::dk_lookup
    - PyObject_Hash
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_LoadGlobal(PyDictObject *globals, PyDictObject *builtins, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1526,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1527,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1530,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1531,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1533,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1536,1
    - Dst: insert_to_emptydict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1542,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - op
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value)
      pos:
        line_end: 1530
        line_start: 1530
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 1529
        line_start: 1529
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1546
      start: 1521
    functionDepth: 4
    functionLinenumber: 1521
    functionLinenumberEnd: 1546
    functionName: PyDict_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 50
    functionsReached:
    - PyObject_Hash
    - insert_to_emptydict
    - PyErr_BadInternalCall
    - PyDict_Check
    - assert
    - insertdict
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItem(PyObject *op, PyObject *key, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1554,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1555,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1558,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1559,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1560,1
    - Dst: insert_to_emptydict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1564,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - op
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (value)
      pos:
        line_end: 1558
        line_start: 1558
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (key)
      pos:
        line_end: 1557
        line_start: 1557
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 1559
        line_start: 1559
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1568
      start: 1548
    functionDepth: 4
    functionLinenumber: 1548
    functionLinenumberEnd: 1568
    functionName: _PyDict_SetItem_KnownHash
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - insert_to_emptydict
    - PyErr_BadInternalCall
    - PyDict_Check
    - assert
    - insertdict
    linkageType: ''
    returnType: int
    signature: "int _PyDict_SetItem_KnownHash(PyObject *op, PyObject *key, PyObject
      *value,\n                         Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookdict_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1577,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1578,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1581,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1582,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1583,1
    - Dst: ENSURE_ALLOWS_DELETIONS
      Src: /src/Python-3.8.3/Objects/dictobject.c:1584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1588,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1589,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - mp
    - hash
    - ix
    - old_value
    argTypes:
    - PyDictObject*
    - Py_hash_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (hashpos >= 0)
      pos:
        line_end: 1577
        line_start: 1577
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1593
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1593
    functionName: delitem_common
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_set_index
    - Py_DECREF
    - DK_ENTRIES
    - ENSURE_ALLOWS_DELETIONS
    - assert
    - lookdict_index
    - DICT_NEXT_VERSION
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: int
    signature: "int delitem_common(PyDictObject *mp, Py_hash_t hash, Py_ssize_t ix,\n
      \              PyObject *old_value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1599,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1600,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1602,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 1598
        line_start: 1598
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1608
      start: 1595
    functionDepth: 3
    functionLinenumber: 1595
    functionLinenumberEnd: 1608
    functionName: PyDict_DelItem
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 16
    functionsReached:
    - assert
    - PyObject_Hash
    - PyUnicode_CheckExact
    - _PyDict_DelItem_KnownHash
    linkageType: ''
    returnType: int
    signature: int PyDict_DelItem(PyObject *op, PyObject *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1617,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1618,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1622,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1628,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1633,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1634,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1634,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1638,1
    - Dst: delitem_common
      Src: /src/Python-3.8.3/Objects/dictobject.c:1641,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (hash != -1)
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix >= 0)
      pos:
        line_end: 1637
        line_start: 1637
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1642
      start: 1610
    functionDepth: 4
    functionLinenumber: 1610
    functionLinenumberEnd: 1642
    functionName: _PyDict_DelItem_KnownHash
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 2
    functionsReached:
    - delitem_common
    - PyErr_BadInternalCall
    - PyDict_Check
    - _PyDict_HasSplitTable
    - dictresize
    - DK_SIZE
    - assert
    - _PyErr_SetKeyError
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t
      hash)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1658,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:1659,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1662,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1663,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1671,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1676,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1677,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1677,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1681,1
    - Dst: predicate
      Src: /src/Python-3.8.3/Objects/dictobject.c:1684,1
    - Dst: lookdict_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1688,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1689,1
    - Dst: delitem_common
      Src: /src/Python-3.8.3/Objects/dictobject.c:1692,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (key)
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix >= 0)
      pos:
        line_end: 1680
        line_start: 1680
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (hashpos >= 0)
      pos:
        line_end: 1688
        line_start: 1688
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1695
      start: 1648
    functionDepth: 4
    functionLinenumber: 1648
    functionLinenumberEnd: 1695
    functionName: _PyDict_DelItemIf
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyObject_Hash
    - delitem_common
    - predicate
    - PyErr_BadInternalCall
    - PyDict_Check
    - _PyDict_HasSplitTable
    - dictresize
    - DK_SIZE
    - assert
    - lookdict_index
    - _PyErr_SetKeyError
    linkageType: ''
    returnType: int
    signature: "int _PyDict_DelItemIf(PyObject *op, PyObject *key,\n                  int
      (*predicate)(PyObject *value))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1706,1
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1714,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1718,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/dictobject.c:1723,1
    - Dst: free_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:1724,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1725,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1728,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1729,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:1731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (oldkeys->dk_refcnt == 1)
      pos:
        line_end: 1727
        line_start: 1727
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1732
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1732
    functionName: PyDict_Clear
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - Py_CLEAR
    - dictkeys_decref
    - PyDict_Check
    - dictkeys_incref
    - free_values
    - assert
    - DICT_NEXT_VERSION
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: void
    signature: void PyDict_Clear(PyObject *op)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1748,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1756,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1758,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1764,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - op
    - ppos
    - pkey
    - pvalue
    - phash
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject**
    - PyObject**
    - Py_hash_t*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 1757
        line_start: 1757
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1781
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1781
    functionName: _PyDict_Next
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - assert
    - DK_ENTRIES
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: "int _PyDict_Next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey,\n
      \            PyObject **pvalue, Py_hash_t *phash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - op
    - ppos
    - pkey
    - pvalue
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1801
    functionDepth: 2
    functionLinenumber: 1801
    functionLinenumberEnd: 1805
    functionName: PyDict_Next
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 19
    functionsReached:
    - _PyDict_Next
    linkageType: ''
    returnType: int
    signature: int PyDict_Next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey, PyObject
      **pvalue)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1816,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:1816,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1821,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1824,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1832,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1835,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:1840,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1841,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1841,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1845,1
    - Dst: lookdict_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1848,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1849,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1850,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:1852,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:1853,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:1854,1
    - Dst: ENSURE_ALLOWS_DELETIONS
      Src: /src/Python-3.8.3/Objects/dictobject.c:1855,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1859,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:1861,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 4
    argNames:
    - dict
    - key
    - hash
    - deflt
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    - PyObject*
    assertStmts:
    - condition: (hashpos >= 0)
      pos:
        line_end: 1848
        line_start: 1848
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix >= 0)
      pos:
        line_end: 1844
        line_start: 1844
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 1815
        line_start: 1815
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (old_value != NULL)
      pos:
        line_end: 1849
        line_start: 1849
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 1863
      start: 1808
    functionDepth: 4
    functionLinenumber: 1808
    functionLinenumberEnd: 1863
    functionName: _PyDict_Pop_KnownHash
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - dictkeys_set_index
    - Py_DECREF
    - Py_INCREF
    - DK_ENTRIES
    - _PyDict_HasSplitTable
    - PyDict_Check
    - dictresize
    - ENSURE_ALLOWS_DELETIONS
    - DK_SIZE
    - assert
    - lookdict_index
    - DICT_NEXT_VERSION
    - _PyErr_SetKeyError
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_Pop_KnownHash(PyObject *dict, PyObject *key, Py_hash_t hash, PyObject
      *deflt)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1872,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:1875,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1878,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1880,1
    - Dst: _PyDict_Pop_KnownHash
      Src: /src/Python-3.8.3/Objects/dictobject.c:1884,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - dict
    - key
    - deflt
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1865
    functionDepth: 5
    functionLinenumber: 1865
    functionLinenumberEnd: 1885
    functionName: _PyDict_Pop
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_Pop_KnownHash
    - Py_INCREF
    - PyObject_Hash
    - _PyErr_SetKeyError
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_Pop(PyObject *dict, PyObject *key, PyObject *deflt)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/dictobject.c:1896,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1900,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1901,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1908,1
    - Dst: ESTIMATE_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1908,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1908,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1909,1
    - Dst: _PyDict_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:1913,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1914,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1915,1
    - Dst: PyAnySet_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1921,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:1927,1
    - Dst: ESTIMATE_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1927,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:1927,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1928,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Objects/dictobject.c:1932,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:1933,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1934,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/dictobject.c:1942,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1944,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:1948,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:1949,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:1950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1951,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:1956,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:1957,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1958,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:1964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1970,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1971,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - cls
    - iterable
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1888
    functionDepth: 5
    functionLinenumber: 1888
    functionLinenumberEnd: 1973
    functionName: _PyDict_FromKeys
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyDict_Next
    - PyObject_SetItem
    - PyDict_GET_SIZE
    - PySet_GET_SIZE
    - PyDict_CheckExact
    - PyObject_GetIter
    - ESTIMATE_SIZE
    - dictresize
    - PyIter_Next
    - PyDict_SetItem
    - _PySet_NextEntry
    - _PyObject_CallNoArg
    - insertdict
    - PyAnySet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_FromKeys(PyObject *cls, PyObject *iterable, PyObject *value)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/dictobject.c:1985,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/dictobject.c:1986,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:1990,1
    - Dst: free_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:1992,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1994,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:1997,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:1998,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2000,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2003,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (keys->dk_refcnt == 1)
      pos:
        line_end: 1996
        line_start: 1996
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2005
      start: 1977
    functionDepth: 2
    functionLinenumber: 1977
    functionLinenumberEnd: 2005
    functionName: dict_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - dictkeys_decref
    - Py_TYPE
    - free_values
    - assert
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void dict_dealloc(PyDictObject *mp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/dictobject.c:2016,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:2018,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/dictobject.c:2022,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:2023,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/dictobject.c:2026,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/dictobject.c:2031,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:2038,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2043,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2044,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/dictobject.c:2047,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/dictobject.c:2052,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/dictobject.c:2055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2056,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/dictobject.c:2060,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/dictobject.c:2063,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/dictobject.c:2066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2067,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/dictobject.c:2071,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/dictobject.c:2072,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/dictobject.c:2076,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/dictobject.c:2079,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/dictobject.c:2081,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/dictobject.c:2084,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/dictobject.c:2085,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2086,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2087,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2008
    functionDepth: 4
    functionLinenumber: 2008
    functionLinenumberEnd: 2089
    functionName: dict_repr
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteChar
    - PyUnicode_FromString
    - Py_ReprLeave
    - PyDict_Next
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - Py_INCREF
    - _PyUnicodeWriter_WriteASCIIString
    - Py_CLEAR
    - Py_ReprEnter
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyObject_Repr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_repr(PyDictObject *mp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2091
    functionDepth: 0
    functionLinenumber: 2091
    functionLinenumberEnd: 2095
    functionName: dict_length
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dict_length(PyDictObject *mp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2104,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:2106,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2114,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:2117,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/dictobject.c:2118,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/dictobject.c:2120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2122,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2125,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:2128,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - mp
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2097
    functionDepth: 3
    functionLinenumber: 2097
    functionLinenumberEnd: 2133
    functionName: dict_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyDict_CheckExact
    - PyObject_CallFunctionObjArgs
    - PyObject_Hash
    - _PyErr_SetKeyError
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_subscript(PyDictObject *mp, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2139,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mp
    - v
    - w
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2135
    functionDepth: 5
    functionLinenumber: 2135
    functionLinenumberEnd: 2142
    functionName: dict_ass_sub
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int dict_ass_sub(PyDictObject *mp, PyObject *v, PyObject *w)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2168,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2171,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2183,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2184,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (j == n)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2191
      start: 2150
    functionDepth: 1
    functionLinenumber: 2150
    functionLinenumberEnd: 2191
    functionName: dict_keys
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_New
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys(PyDictObject *mp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2211,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2214,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2227,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2228,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (j == n)
      pos:
        line_end: 2231
        line_start: 2231
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2234
      start: 2193
    functionDepth: 1
    functionLinenumber: 2193
    functionLinenumberEnd: 2234
    functionName: dict_values
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_New
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_values(PyDictObject *mp)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2252,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2258,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2267,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2271,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2285,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2286,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2288,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2289,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (j == n)
      pos:
        line_end: 2292
        line_start: 2292
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2295
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2295
    functionName: dict_items
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_GET_ITEM
    - PyList_New
    - assert
    - DK_ENTRIES
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_items(PyDictObject *mp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_FromKeys
      Src: /src/Python-3.8.3/Objects/dictobject.c:2311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - iterable
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2307
    functionDepth: 6
    functionLinenumber: 2307
    functionLinenumberEnd: 2312
    functionName: dict_fromkeys_impl
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_FromKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_fromkeys_impl(PyTypeObject *type, PyObject *iterable, PyObject *value)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/dictobject.c:2321,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:2325,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/dictobject.c:2327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2331,1
    - Dst: PyDict_Merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2332,1
    - Dst: PyDict_MergeFromSeq2
      Src: /src/Python-3.8.3/Objects/dictobject.c:2335,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/Python-3.8.3/Objects/dictobject.c:2340,1
    - Dst: PyDict_Merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - self
    - args
    - kwds
    - methname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2314
    functionDepth: 3
    functionLinenumber: 2314
    functionLinenumberEnd: 2346
    functionName: dict_update_common
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_MergeFromSeq2
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyDict_Merge
    - PyArg_ValidateKeywordArguments
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: "int dict_update_common(PyObject *self, PyObject *args, PyObject *kwds,\n
      \                  const char *methname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_common
      Src: /src/Python-3.8.3/Objects/dictobject.c:2354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2351
    functionDepth: 4
    functionLinenumber: 2351
    functionLinenumberEnd: 2357
    functionName: dict_update
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_update_common
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_update(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2377,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2378,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2378,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2379,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/dictobject.c:2381,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:2390,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2392,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/dictobject.c:2398,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/dictobject.c:2400,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/dictobject.c:2401,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2407,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/dictobject.c:2409,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2417,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:2418,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2419,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2420,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2422,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2423,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2424,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/dictobject.c:2428,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2429,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2430,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2439,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:2443,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2446,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2447,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2450,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/dictobject.c:2451,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 3
    argNames:
    - d
    - seq2
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (seq2 != NULL)
      pos:
        line_end: 2378
        line_start: 2378
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyDict_Check(d))
      pos:
        line_end: 2377
        line_start: 2377
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (d != NULL)
      pos:
        line_end: 2376
        line_start: 2376
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2452
      start: 2369
    functionDepth: 5
    functionLinenumber: 2369
    functionLinenumberEnd: 2452
    functionName: PyDict_MergeFromSeq2
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - ASSERT_CONSISTENT
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyDict_Check
    - PyIter_Next
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PySequence_Fast
    - PyDict_SetItem
    - assert
    - PyObject_GetIter
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyDict_MergeFromSeq2(PyObject *d, PyObject *seq2, int override)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2461,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2468,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2469,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2473,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2473,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:2488,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:2489,1
    - Dst: ESTIMATE_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2489,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2493,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2507,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2508,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:2510,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/dictobject.c:2511,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2512,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2514,1
    - Dst: insertdict
      Src: /src/Python-3.8.3/Objects/dictobject.c:2517,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:2520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2521,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2525,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:2531,1
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Objects/dictobject.c:2540,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/dictobject.c:2553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2554,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:2558,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:2558,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/dictobject.c:2560,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/dictobject.c:2562,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2563,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2567,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2572,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2579,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:2582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2586,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2590,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2591,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:2595,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 100
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (0 <= override && override <= 2)
      pos:
        line_end: 2460
        line_start: 2460
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2597
      start: 2454
    functionDepth: 5
    functionLinenumber: 2454
    functionLinenumberEnd: 2597
    functionName: dict_merge
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItem_KnownHash
    - PyErr_BadInternalCall
    - dictresize
    - PyIter_Next
    - PyDict_SetItem
    - DK_ENTRIES
    - PyObject_GetIter
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - PyObject_GetItem
    - assert
    - insertdict
    - PyMapping_Keys
    - Py_DECREF
    - PyDict_Check
    - USABLE_FRACTION
    - Py_TYPE
    - ESTIMATE_SIZE
    - PyErr_SetString
    - _PyErr_SetKeyError
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: int
    signature: int dict_merge(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2599
    functionDepth: 6
    functionLinenumber: 2599
    functionLinenumberEnd: 2603
    functionName: PyDict_Update
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 12
    functionsReached:
    - dict_merge
    linkageType: ''
    returnType: int
    signature: int PyDict_Update(PyObject *a, PyObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2605
    functionDepth: 6
    functionLinenumber: 2605
    functionLinenumberEnd: 2610
    functionName: PyDict_Merge
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - dict_merge
    linkageType: ''
    returnType: int
    signature: int PyDict_Merge(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - override
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2612
    functionDepth: 6
    functionLinenumber: 2612
    functionLinenumberEnd: 2616
    functionName: _PyDict_MergeEx
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_merge
    linkageType: ''
    returnType: int
    signature: int _PyDict_MergeEx(PyObject *a, PyObject *b, int override)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Objects/dictobject.c:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - Py_UNUSED(ignored)
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2618
    functionDepth: 1
    functionLinenumber: 2618
    functionLinenumberEnd: 2622
    functionName: dict_copy
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_copy(PyDictObject *mp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2631,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2632,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2639,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:2642,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:2644,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:2644,1
    - Dst: new_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:2646,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/dictobject.c:2648,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2649,1
    - Dst: free_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:2651,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:2657,1
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:2658,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2661,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/dictobject.c:2664,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:2665,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2669,1
    - Dst: clone_combined_dict
      Src: /src/Python-3.8.3/Objects/dictobject.c:2686,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:2689,1
    - Dst: PyDict_Merge
      Src: /src/Python-3.8.3/Objects/dictobject.c:2692,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2694,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2624
    functionDepth: 7
    functionLinenumber: 2624
    functionLinenumberEnd: 2696
    functionName: PyDict_Copy
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 11
    functionsReached:
    - PyErr_BadInternalCall
    - new_values
    - PyDict_CheckExact
    - clone_combined_dict
    - _PyObject_GC_TRACK
    - dictkeys_incref
    - free_values
    - _PyObject_GC_IS_TRACKED
    - Py_DECREF
    - _PyDict_HasSplitTable
    - PyDict_Check
    - PyDict_Merge
    - USABLE_FRACTION
    - PyObject_GC_New
    - PyDict_New
    - PyErr_NoMemory
    - DK_SIZE
    - DICT_NEXT_VERSION
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Copy(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2701,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2698
    functionDepth: 1
    functionLinenumber: 2698
    functionLinenumberEnd: 2706
    functionName: PyDict_Size
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyDict_Size(PyObject *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2711,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2712,1
    - Dst: dict_keys
      Src: /src/Python-3.8.3/Objects/dictobject.c:2715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2708
    functionDepth: 2
    functionLinenumber: 2708
    functionLinenumberEnd: 2716
    functionName: PyDict_Keys
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 3
    functionsReached:
    - dict_keys
    - PyErr_BadInternalCall
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Keys(PyObject *mp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2721,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2722,1
    - Dst: dict_values
      Src: /src/Python-3.8.3/Objects/dictobject.c:2725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2718
    functionDepth: 2
    functionLinenumber: 2718
    functionLinenumberEnd: 2726
    functionName: PyDict_Values
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyDict_Check
    - dict_values
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Values(PyObject *mp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2731,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2732,1
    - Dst: dict_items
      Src: /src/Python-3.8.3/Objects/dictobject.c:2735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2728
    functionDepth: 2
    functionLinenumber: 2728
    functionLinenumberEnd: 2736
    functionName: PyDict_Items
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - dict_items
    - PyErr_BadInternalCall
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_Items(PyObject *mp)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2752,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2764,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2766,1
    - Dst: PyDictObject*::ma_keys::dk_lookup
      Src: /src/Python-3.8.3/Objects/dictobject.c:2768,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2771,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:2772,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2776,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/dictobject.c:2777,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2778,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2780,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyDictObject*
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2742
    functionDepth: 4
    functionLinenumber: 2742
    functionLinenumberEnd: 2786
    functionName: dict_equal
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDictObject*::ma_keys::dk_lookup
    - PyObject_RichCompareBool
    - DK_ENTRIES
    linkageType: ''
    returnType: int
    signature: int dict_equal(PyDictObject *a, PyDictObject *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2794,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2794,1
    - Dst: dict_equal
      Src: /src/Python-3.8.3/Objects/dictobject.c:2798,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2805,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2788
    functionDepth: 5
    functionLinenumber: 2788
    functionLinenumberEnd: 2807
    functionName: dict_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_equal
    - PyDict_Check
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2829,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:2831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2820
    functionDepth: 3
    functionLinenumber: 2820
    functionLinenumberEnd: 2841
    functionName: dict___contains__
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___contains__(PyDictObject *self, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2861,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:2863,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2873,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2875
      start: 2853
    functionDepth: 3
    functionLinenumber: 2853
    functionLinenumberEnd: 2875
    functionName: dict_get_impl
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyUnicode_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get_impl(PyDictObject *self, PyObject *key, PyObject *default_value)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:2884,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:2885,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2889,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:2891,1
    - Dst: insert_to_emptydict
      Src: /src/Python-3.8.3/Objects/dictobject.c:2896,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:2902,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:2903,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:2911,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:2914,1
    - Dst: insertion_resize
      Src: /src/Python-3.8.3/Objects/dictobject.c:2924,1
    - Dst: find_empty_slot
      Src: /src/Python-3.8.3/Objects/dictobject.c:2928,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:2929,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:2931,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2932,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2933,1
    - Dst: MAINTAIN_TRACKING
      Src: /src/Python-3.8.3/Objects/dictobject.c:2934,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:2937,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2938,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:2945,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2948,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2952,1
    - Dst: _PyDict_HasSplitTable
      Src: /src/Python-3.8.3/Objects/dictobject.c:2952,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:2953,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2954,1
    - Dst: MAINTAIN_TRACKING
      Src: /src/Python-3.8.3/Objects/dictobject.c:2955,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:2958,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:2961,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 3
    argNames:
    - d
    - key
    - defaultobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (mp->ma_values[mp->ma_keys->dk_nentries] == NULL)
      pos:
        line_end: 2937
        line_start: 2937
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (ix == mp->ma_used)
      pos:
        line_end: 2952
        line_start: 2952
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (mp->ma_keys->dk_usable >= 0)
      pos:
        line_end: 2947
        line_start: 2947
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (_PyDict_HasSplitTable(mp))
      pos:
        line_end: 2951
        line_start: 2951
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 2963
      start: 2877
    functionDepth: 3
    functionLinenumber: 2877
    functionLinenumberEnd: 2963
    functionName: PyDict_SetDefault
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - find_empty_slot
    - assert
    - MAINTAIN_TRACKING
    - dictkeys_set_index
    - insert_to_emptydict
    - Py_INCREF
    - ASSERT_CONSISTENT
    - insertion_resize
    - PyErr_BadInternalCall
    - PyDict_Check
    - _PyDict_HasSplitTable
    - PyObject_Hash
    - DK_ENTRIES
    - DICT_NEXT_VERSION
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_SetDefault
      Src: /src/Python-3.8.3/Objects/dictobject.c:2984,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:2985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyDictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2977
    functionDepth: 4
    functionLinenumber: 2977
    functionLinenumberEnd: 2987
    functionName: dict_setdefault_impl
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_SetDefault
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndict_setdefault_impl(PyDictObject *self, PyObject *key,\n
      \                    PyObject *default_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:2992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mp
    - Py_UNUSED(ignored)
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2989
    functionDepth: 3
    functionLinenumber: 2989
    functionLinenumberEnd: 2994
    functionName: dict_clear
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_clear(PyDictObject *mp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/dictobject.c:3014,1
    - Dst: _PyDict_Pop
      Src: /src/Python-3.8.3/Objects/dictobject.c:3023,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyDictObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 3007
    functionDepth: 6
    functionLinenumber: 3007
    functionLinenumberEnd: 3027
    functionName: dict_pop
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_Pop
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_pop(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:3055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3059,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3060,1
    - Dst: dictresize
      Src: /src/Python-3.8.3/Objects/dictobject.c:3065,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3065,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3066,1
    - Dst: ENSURE_ALLOWS_DELETIONS
      Src: /src/Python-3.8.3/Objects/dictobject.c:3070,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3073,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3078,1
    - Dst: lookdict_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:3081,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3082,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3083,1
    - Dst: dictkeys_get_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:3083,1
    - Dst: dictkeys_set_index
      Src: /src/Python-3.8.3/Objects/dictobject.c:3084,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3086,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3087,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:3093,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3094,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (i >= 0)
      pos:
        line_end: 3077
        line_start: 3077
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (dictkeys_get_index(self->ma_keys, j) == i)
      pos:
        line_end: 3082
        line_start: 3082
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (j >= 0)
      pos:
        line_end: 3081
        line_start: 3081
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3096
      start: 3038
    functionDepth: 4
    functionLinenumber: 3038
    functionLinenumberEnd: 3096
    functionName: dict_popitem_impl
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - dictkeys_set_index
    - dictkeys_get_index
    - dictresize
    - lookdict_index
    - ENSURE_ALLOWS_DELETIONS
    - PyErr_SetString
    - DK_SIZE
    - assert
    - DK_ENTRIES
    - DICT_NEXT_VERSION
    - PyTuple_New
    - PyTuple_SET_ITEM
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popitem_impl(PyDictObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3103,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3109,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3110,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3117,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - op
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3098
    functionDepth: 1
    functionLinenumber: 3098
    functionLinenumberEnd: 3127
    functionName: dict_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - DK_ENTRIES
    linkageType: ''
    returnType: int
    signature: int dict_traverse(PyObject *op, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:3132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3129
    functionDepth: 3
    functionLinenumber: 3129
    functionLinenumberEnd: 3134
    functionName: dict_tp_clear
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int dict_tp_clear(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3143,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:3144,1
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3146,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3146,1
    - Dst: DK_IXSIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - mp
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3138
    functionDepth: 1
    functionLinenumber: 3138
    functionLinenumberEnd: 3156
    functionName: _PyDict_SizeOf
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_SIZE
    - DK_IXSIZE
    - USABLE_FRACTION
    - Py_TYPE
    - DK_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_SizeOf(PyDictObject *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DK_IXSIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3162,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3162,1
    - Dst: USABLE_FRACTION
      Src: /src/Python-3.8.3/Objects/dictobject.c:3163,1
    - Dst: DK_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3158
    functionDepth: 1
    functionLinenumber: 3158
    functionLinenumberEnd: 3164
    functionName: _PyDict_KeysSize
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - USABLE_FRACTION
    - DK_IXSIZE
    - DK_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/dictobject.c:3169,1
    - Dst: _PyDict_SizeOf
      Src: /src/Python-3.8.3/Objects/dictobject.c:3169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mp
    - Py_UNUSED(ignored)
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3166
    functionDepth: 2
    functionLinenumber: 3166
    functionLinenumberEnd: 3170
    functionName: dict_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - _PyDict_SizeOf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_sizeof(PyDictObject *mp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/dictobject.c:3237,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/dictobject.c:3239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - op
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3229
    functionDepth: 3
    functionLinenumber: 3229
    functionLinenumberEnd: 3247
    functionName: PyDict_Contains
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 4
    functionsReached:
    - PyObject_Hash
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int PyDict_Contains(PyObject *op, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - op
    - key
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3250
    functionDepth: 0
    functionLinenumber: 3250
    functionLinenumberEnd: 3261
    functionName: _PyDict_Contains
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyDict_Contains(PyObject *op, PyObject *key, Py_hash_t hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3283,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/dictobject.c:3284,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:3291,1
    - Dst: DICT_NEXT_VERSION
      Src: /src/Python-3.8.3/Objects/dictobject.c:3294,1
    - Dst: new_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:3295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3297,1
    - Dst: ASSERT_CONSISTENT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 3282
        line_start: 3282
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3302
      start: 3277
    functionDepth: 2
    functionLinenumber: 3277
    functionLinenumberEnd: 3302
    functionName: dict_new
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - new_keys_object
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - _PyObject_GC_UNTRACK
    - assert
    - DICT_NEXT_VERSION
    - ASSERT_CONSISTENT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_update_common
      Src: /src/Python-3.8.3/Objects/dictobject.c:3307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3308
      start: 3304
    functionDepth: 4
    functionLinenumber: 3304
    functionLinenumberEnd: 3308
    functionName: dict_init
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dict_update_common
    linkageType: ''
    returnType: int
    signature: int dict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:3313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyDictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3314
      start: 3310
    functionDepth: 1
    functionLinenumber: 3310
    functionLinenumberEnd: 3314
    functionName: dict_iter
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_iter(PyDictObject *dict)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/dictobject.c:3374,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:3376,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dp
    - key
    argTypes:
    - PyObject*
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3370
    functionDepth: 4
    functionLinenumber: 3370
    functionLinenumberEnd: 3380
    functionName: _PyDict_GetItemId
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyDict_GetItem
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3388,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:3390,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3393,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3384
    functionDepth: 4
    functionLinenumber: 3384
    functionLinenumberEnd: 3396
    functionName: PyDict_GetItemString
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 5
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Clear
    - PyDict_GetItem
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDict_GetItemString(PyObject *v, const char *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/dictobject.c:3402,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - v
    - key
    - item
    argTypes:
    - PyObject*
    - struct _Py_Identifier*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3406
      start: 3398
    functionDepth: 5
    functionLinenumber: 3398
    functionLinenumberEnd: 3406
    functionName: _PyDict_SetItemId
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - PyDict_SetItem
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyDict_SetItemId(PyObject *v, struct _Py_Identifier *key, PyObject
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3413,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/dictobject.c:3416,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3417,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - v
    - key
    - item
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3408
    functionDepth: 5
    functionLinenumber: 3408
    functionLinenumberEnd: 3420
    functionName: PyDict_SetItemString
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 48
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - PyDict_SetItem
    - PyUnicode_InternInPlace
    linkageType: ''
    returnType: int
    signature: int PyDict_SetItemString(PyObject *v, const char *key, PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/dictobject.c:3425,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3429
      start: 3422
    functionDepth: 4
    functionLinenumber: 3422
    functionLinenumberEnd: 3429
    functionName: _PyDict_DelItemId
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyDict_DelItemId(PyObject *v, _Py_Identifier *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3436,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:3439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - v
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3431
    functionDepth: 4
    functionLinenumber: 3431
    functionLinenumberEnd: 3442
    functionName: PyDict_DelItemString
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 6
    functionsReached:
    - PyUnicode_FromString
    - PyDict_DelItem
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyDict_DelItemString(PyObject *v, const char *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:3459,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3463,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/dictobject.c:3482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3484,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:3491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - dict
    - itertype
    argTypes:
    - PyDictObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3455
    functionDepth: 1
    functionLinenumber: 3455
    functionLinenumberEnd: 3493
    functionName: dictiter_new
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyTuple_Pack
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_new(PyDictObject *dict, PyTypeObject *itertype)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:3499,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3500,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3501,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/dictobject.c:3502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - di
    argTypes:
    - dictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3503
      start: 3495
    functionDepth: 3
    functionLinenumber: 3495
    functionLinenumberEnd: 3503
    functionName: dictiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dictiter_dealloc(dictiterobject *di)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3508,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - di
    - visit
    - arg
    argTypes:
    - dictiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3505
    functionDepth: 1
    functionLinenumber: 3505
    functionLinenumberEnd: 3511
    functionName: dictiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dictiter_traverse(dictiterobject *di, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Objects/dictobject.c:3519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - di
    - Py_UNUSED(ignored)
    argTypes:
    - dictiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3513
    functionDepth: 1
    functionLinenumber: 3513
    functionLinenumberEnd: 3520
    functionName: dictiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_len(dictiterobject *di, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3548,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:3548,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3551,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3559,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3563,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3564,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3568,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3579,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3590,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - di
    argTypes:
    - dictiterobject*
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 3547
        line_start: 3547
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 3558
        line_start: 3558
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (d->ma_values[i] != NULL)
      pos:
        line_end: 3563
        line_start: 3563
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3592
      start: 3538
    functionDepth: 1
    functionLinenumber: 3538
    functionLinenumberEnd: 3592
    functionName: dictiter_iternextkey
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_Check
    - PyErr_SetString
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextkey(dictiterobject *di)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3636,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:3636,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3639,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3646,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3651,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3655,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3666,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3672,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3677,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - di
    argTypes:
    - dictiterobject*
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 3635
        line_start: 3635
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (i >= 0)
      pos:
        line_end: 3645
        line_start: 3645
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 3650
        line_start: 3650
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3679
      start: 3627
    functionDepth: 1
    functionLinenumber: 3627
    functionLinenumberEnd: 3679
    functionName: dictiter_iternextvalue
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_Check
    - PyErr_SetString
    - assert
    - DK_ENTRIES
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextvalue(dictiterobject *di)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3723,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:3723,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3726,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3733,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3737,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3739,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3755,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3761,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3762,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3764,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3765,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3766,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3767,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3768,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3771,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:3774,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3777,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3778,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3784,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 1
    argNames:
    - di
    argTypes:
    - dictiterobject*
    assertStmts:
    - condition: (i >= 0)
      pos:
        line_end: 3732
        line_start: 3732
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 3738
        line_start: 3738
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyDict_Check(d))
      pos:
        line_end: 3722
        line_start: 3722
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3786
      start: 3714
    functionDepth: 1
    functionLinenumber: 3714
    functionLinenumberEnd: 3786
    functionName: dictiter_iternextitem
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyDict_Check
    - PyErr_SetString
    - assert
    - DK_ENTRIES
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_iternextitem(dictiterobject *di)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3832,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:3832,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:3835,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3849,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3851,1
    - Dst: DK_ENTRIES
      Src: /src/Python-3.8.3/Objects/dictobject.c:3854,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3867,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3868,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3871,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3872,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3875,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3876,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3877,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3879,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3880,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3881,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3882,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3883,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3884,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3886,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:3889,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3893,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:3894,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/dictobject.c:3899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3904,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 1
    argNames:
    - di
    argTypes:
    - dictiterobject*
    assertStmts:
    - condition: (PyDict_Check(d))
      pos:
        line_end: 3831
        line_start: 3831
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (value != NULL)
      pos:
        line_end: 3850
        line_start: 3850
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3906
      start: 3824
    functionDepth: 1
    functionLinenumber: 3824
    functionLinenumberEnd: 3906
    functionName: dictreviter_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyDict_Check
    - Py_UNREACHABLE
    - Py_TYPE
    - PyErr_SetString
    - assert
    - DK_ENTRIES
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictreviter_iternext(dictiterobject *di)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:3931,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:3931,1
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:3932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyDictObject*
    assertStmts:
    - condition: (PyDict_Check(self))
      pos:
        line_end: 3930
        line_start: 3930
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 3933
      start: 3927
    functionDepth: 2
    functionLinenumber: 3927
    functionLinenumberEnd: 3933
    functionName: dict___reversed___impl
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - dictiter_new
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___reversed___impl(PyDictObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:3938,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3941,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/dictobject.c:3943,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3944,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/dictobject.c:3948,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/dictobject.c:3948,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - di
    - Py_UNUSED(ignored)
    argTypes:
    - dictiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3949
      start: 3935
    functionDepth: 1
    functionLinenumber: 3935
    functionLinenumberEnd: 3949
    functionName: dictiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_BuildValue
    - _PyEval_GetBuiltinId
    - Py_XINCREF
    - _Py_IDENTIFIER
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictiter_reduce(dictiterobject *di, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:3985,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:3986,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/dictobject.c:3987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3988
      start: 3981
    functionDepth: 3
    functionLinenumber: 3981
    functionLinenumberEnd: 3988
    functionName: dictview_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void dictview_dealloc(_PyDictViewObject *dv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/dictobject.c:3993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dv
    - visit
    - arg
    argTypes:
    - _PyDictViewObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3995
      start: 3990
    functionDepth: 1
    functionLinenumber: 3990
    functionLinenumberEnd: 3995
    functionName: dictview_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int dictview_traverse(_PyDictViewObject *dv, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3997
    functionDepth: 0
    functionLinenumber: 3997
    functionLinenumberEnd: 4004
    functionName: dictview_len
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t dictview_len(_PyDictViewObject *dv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/dictobject.c:4011,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4014,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/dictobject.c:4016,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4021,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4024,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/dictobject.c:4026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - dict
    - type
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4028
      start: 4006
    functionDepth: 1
    functionLinenumber: 4006
    functionLinenumberEnd: 4028
    functionName: _PyDictView_New
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDictView_New(PyObject *dict, PyTypeObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/dictobject.c:4043,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:4049,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:4051,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/dictobject.c:4055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4060,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4062
    functionName: all_contained_in
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyIter_Next
    - PySequence_Contains
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: int all_contained_in(PyObject *self, PyObject *other)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:4071,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:4072,1
    - Dst: PyDictViewSet_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4072,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:4073,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4075,1
    - Dst: PyDictViewSet_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4075,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/dictobject.c:4078,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/dictobject.c:4081,1
    - Dst: all_contained_in
      Src: /src/Python-3.8.3/Objects/dictobject.c:4091,1
    - Dst: all_contained_in
      Src: /src/Python-3.8.3/Objects/dictobject.c:4098,1
    - Dst: all_contained_in
      Src: /src/Python-3.8.3/Objects/dictobject.c:4103,1
    - Dst: all_contained_in
      Src: /src/Python-3.8.3/Objects/dictobject.c:4108,1
    - Dst: all_contained_in
      Src: /src/Python-3.8.3/Objects/dictobject.c:4113,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4120,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 4070
        line_start: 4070
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (PyDictViewSet_Check(self))
      pos:
        line_end: 4071
        line_start: 4071
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 4072
        line_start: 4072
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4122
      start: 4064
    functionDepth: 2
    functionLinenumber: 4064
    functionLinenumberEnd: 4122
    functionName: dictview_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    - PyDictViewSet_Check
    - Py_INCREF
    - all_contained_in
    - assert
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/dictobject.c:4131,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/dictobject.c:4133,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/dictobject.c:4135,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/dictobject.c:4139,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:4139,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4140,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/dictobject.c:4143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4124
    functionDepth: 2
    functionLinenumber: 4124
    functionLinenumberEnd: 4145
    functionName: dictview_repr
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictview_repr(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4149
    functionDepth: 2
    functionLinenumber: 4149
    functionLinenumberEnd: 4156
    functionName: dictkeys_iter
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictkeys_iter(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Contains
      Src: /src/Python-3.8.3/Objects/dictobject.c:4163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dv
    - obj
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4164
      start: 4158
    functionDepth: 4
    functionLinenumber: 4158
    functionLinenumberEnd: 4164
    functionName: dictkeys_contains
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Contains
    linkageType: ''
    returnType: int
    signature: int dictkeys_contains(_PyDictViewObject *dv, PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4180,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:4182,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/dictobject.c:4187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4177
    functionDepth: 1
    functionLinenumber: 4177
    functionLinenumberEnd: 4195
    functionName: dictviews_sub
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PySet_New
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_sub(PyObject* self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4200,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:4202,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/dictobject.c:4207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4197
    functionDepth: 1
    functionLinenumber: 4197
    functionLinenumberEnd: 4215
    functionName: _PyDictView_Intersect
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PySet_New
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyDictView_Intersect(PyObject* self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4220,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:4222,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/dictobject.c:4227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4235
      start: 4217
    functionDepth: 1
    functionLinenumber: 4217
    functionLinenumberEnd: 4235
    functionName: dictviews_or
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PySet_New
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_or(PyObject* self, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4240,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/dictobject.c:4242,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/dictobject.c:4247,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4255
      start: 4237
    functionDepth: 1
    functionLinenumber: 4237
    functionLinenumberEnd: 4255
    functionName: dictviews_xor
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PySet_New
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_xor(PyObject* self, PyObject *other)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dictview_len
      Src: /src/Python-3.8.3/Objects/dictobject.c:4283,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4291,1
    - Dst: PyDictViewSet_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4291,1
    - Dst: dictview_len
      Src: /src/Python-3.8.3/Objects/dictobject.c:4292,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/dictobject.c:4293,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/dictobject.c:4304,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/dictobject.c:4308,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/dictobject.c:4309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4321,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:4322,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4325
      start: 4276
    functionDepth: 1
    functionLinenumber: 4276
    functionLinenumberEnd: 4325
    functionName: dictviews_isdisjoint
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    - PyErr_Occurred
    - Py_DECREF
    - PyDictViewSet_Check
    - dictview_len
    - PyIter_Next
    - PySequence_Contains
    - PyObject_GetIter
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictviews_isdisjoint(PyObject *self, PyObject *other)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4376
    functionDepth: 2
    functionLinenumber: 4376
    functionLinenumberEnd: 4380
    functionName: dictkeys_new
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictkeys_new(PyObject *dict, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dv
    - Py_UNUSED(ignored)
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 4382
    functionDepth: 2
    functionLinenumber: 4382
    functionLinenumberEnd: 4389
    functionName: dictkeys_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4400
      start: 4393
    functionDepth: 2
    functionLinenumber: 4393
    functionLinenumberEnd: 4400
    functionName: dictitems_iter
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_iter(_PyDictViewObject *dv)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/dictobject.c:4409,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/dictobject.c:4409,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:4411,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/dictobject.c:4412,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/dictobject.c:4413,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:4415,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4419,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/dictobject.c:4420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - dv
    - obj
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4402
    functionDepth: 4
    functionLinenumber: 4402
    functionLinenumberEnd: 4423
    functionName: dictitems_contains
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_Check
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int dictitems_contains(_PyDictViewObject *dv, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4486
      start: 4482
    functionDepth: 2
    functionLinenumber: 4482
    functionLinenumberEnd: 4486
    functionName: dictitems_new
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_new(PyObject *dict, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4495
      start: 4488
    functionDepth: 2
    functionLinenumber: 4488
    functionLinenumberEnd: 4495
    functionName: dictitems_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictitems_reversed(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4506
      start: 4499
    functionDepth: 2
    functionLinenumber: 4499
    functionLinenumberEnd: 4506
    functionName: dictvalues_iter
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictvalues_iter(_PyDictViewObject *dv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dict
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4563
    functionDepth: 2
    functionLinenumber: 4563
    functionLinenumberEnd: 4567
    functionName: dictvalues_new
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictvalues_new(PyObject *dict, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dictiter_new
      Src: /src/Python-3.8.3/Objects/dictobject.c:4575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4576
      start: 4569
    functionDepth: 2
    functionLinenumber: 4569
    functionLinenumberEnd: 4576
    functionName: dictvalues_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictvalues_reversed(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_keys_object
      Src: /src/Python-3.8.3/Objects/dictobject.c:4584,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/dictobject.c:4586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4590
      start: 4581
    functionDepth: 2
    functionLinenumber: 4581
    functionLinenumberEnd: 4590
    functionName: _PyDict_NewKeysForClass
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - new_keys_object
    linkageType: ''
    returnType: PyDictKeysObject
    signature: 'PyDictKeysObject *

      _PyDict_NewKeysForClass(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4593
      start: 4592
    functionDepth: 0
    functionLinenumber: 4592
    functionLinenumberEnd: 4593
    functionName: CACHED_KEYS
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CACHED_KEYS(tp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/dictobject.c:4597,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/dictobject.c:4599,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/dictobject.c:4605,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4606,1
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:4607,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4607,1
    - Dst: new_dict_with_shared_keys
      Src: /src/Python-3.8.3/Objects/dictobject.c:4608,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4608,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4611,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/dictobject.c:4614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4616
      start: 4594
    functionDepth: 4
    functionLinenumber: 4594
    functionLinenumberEnd: 4616
    functionName: PyObject_GenericGetDict
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - new_dict_with_shared_keys
    - CACHED_KEYS
    - _PyObject_GetDictPtr
    - Py_TYPE
    - PyErr_SetString
    - dictkeys_incref
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GenericGetDict(PyObject *obj, void *context)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:4626,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4627,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/dictobject.c:4628,1
    - Dst: dictkeys_incref
      Src: /src/Python-3.8.3/Objects/dictobject.c:4631,1
    - Dst: new_dict_with_shared_keys
      Src: /src/Python-3.8.3/Objects/dictobject.c:4632,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:4638,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4641,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4642,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:4643,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:4648,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4650,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4667,1
    - Dst: make_keys_shared
      Src: /src/Python-3.8.3/Objects/dictobject.c:4667,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4670,1
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:4672,1
    - Dst: CACHED_KEYS
      Src: /src/Python-3.8.3/Objects/dictobject.c:4673,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/dictobject.c:4673,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/dictobject.c:4680,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:4686,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/dictobject.c:4688,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - tp
    - dictptr
    - key
    - value
    argTypes:
    - PyTypeObject*
    - PyObject**
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (dictptr != NULL)
      pos:
        line_end: 4625
        line_start: 4625
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    - condition: (dictptr != NULL)
      pos:
        line_end: 4627
        line_start: 4627
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    constantsTouched: []
    func_position:
      end: 4692
      start: 4618
    functionDepth: 5
    functionLinenumber: 4618
    functionLinenumberEnd: 4692
    functionName: _PyObjectDict_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - dictkeys_decref
    - PyDict_DelItem
    - PyDict_New
    - new_dict_with_shared_keys
    - CACHED_KEYS
    - make_keys_shared
    - PyDict_SetItem
    - dictkeys_incref
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,\n
      \                     PyObject *key, PyObject *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dictkeys_decref
      Src: /src/Python-3.8.3/Objects/dictobject.c:4697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keys
    argTypes:
    - PyDictKeysObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4698
      start: 4694
    functionDepth: 2
    functionLinenumber: 4694
    functionLinenumberEnd: 4698
    functionName: _PyDictKeys_DecRef
    functionSourceFile: /src/Python-3.8.3/Objects/dictobject.c
    functionUses: 0
    functionsReached:
    - dictkeys_decref
    linkageType: ''
    returnType: void
    signature: void _PyDictKeys_DecRef(PyDictKeysObject *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: GETC
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETC(f)
  - 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: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: FLOCKFILE
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLOCKFILE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: FUNLOCKFILE
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNLOCKFILE(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: GETC
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETC(f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/fileobject.c:35,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Objects/fileobject.c:38,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/fileobject.c:41,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - fd
    - name
    - mode
    - buffering
    - encoding
    - errors
    - newline
    - closefd
    argTypes:
    - int
    - char*
    - char*
    - int
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: PyFile_FromFd
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyImport_ImportModule
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyFile_FromFd(int fd, const char *name, const char *mode,
      int buffering, const char *encoding,\n              const char *errors, const
      char *newline, int closefd)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/fileobject.c:55,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/fileobject.c:59,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/fileobject.c:64,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/fileobject.c:67,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:69,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:70,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:71,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:73,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:77,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/fileobject.c:78,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/fileobject.c:79,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:81,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:83,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/fileobject.c:88,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/fileobject.c:91,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:92,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:97,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/fileobject.c:98,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:100,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:102,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/fileobject.c:105,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/fileobject.c:107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:108,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - f
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 113
    functionName: PyFile_GetLine
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _PyObject_CallMethodId
    - PyErr_BadInternalCall
    - _Py_IDENTIFIER
    - PyUnicode_Substring
    - _PyBytes_Resize
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_GetLine(PyObject *f, int n)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/fileobject.c:121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:124,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/fileobject.c:127,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/fileobject.c:131,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/fileobject.c:134,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:136,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/fileobject.c:139,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:141,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - v
    - f
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 117
    functionDepth: 5
    functionLinenumber: 117
    functionLinenumberEnd: 146
    functionName: PyFile_WriteObject
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyObject_Str
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyObject_Repr
    linkageType: ''
    returnType: int
    signature: int PyFile_WriteObject(PyObject *v, PyObject *f, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/fileobject.c:153,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:154,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/fileobject.c:158,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/fileobject.c:159,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Objects/fileobject.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 148
    functionDepth: 6
    functionLinenumber: 148
    functionLinenumberEnd: 169
    functionName: PyFile_WriteString
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - PyFile_WriteObject
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFile_WriteString(const char *s, PyObject *f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/fileobject.c:183,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:185,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/fileobject.c:186,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/fileobject.c:188,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/fileobject.c:192,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:193,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:197,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/fileobject.c:198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:202,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:209,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/fileobject.c:214,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/fileobject.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 223
    functionName: PyObject_AsFileDescriptor
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 10
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_Format
    - PyErr_SetString
    - _PyObject_CallNoArg
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int PyObject_AsFileDescriptor(PyObject *o)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLOCKFILE
      Src: /src/Python-3.8.3/Objects/fileobject.c:251,1
    - Dst: GETC
      Src: /src/Python-3.8.3/Objects/fileobject.c:253,1
    - Dst: GETC
      Src: /src/Python-3.8.3/Objects/fileobject.c:261,1
    - Dst: FUNLOCKFILE
      Src: /src/Python-3.8.3/Objects/fileobject.c:287,1
    - Dst: GETC
      Src: /src/Python-3.8.3/Objects/fileobject.c:297,1
    - Dst: ungetc
      Src: /src/Python-3.8.3/Objects/fileobject.c:299,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - buf
    - n
    - stream
    - fobj
    argTypes:
    - char*
    - int
    - FILE*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 304
    functionName: Py_UniversalNewlineFgets
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - FUNLOCKFILE
    - GETC
    - FLOCKFILE
    - ungetc
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/fileobject.c:321,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/fileobject.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - type
    - args
    - kews
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 320
        line_start: 320
        source_file: /src/Python-3.8.3/Objects/fileobject.c
    constantsTouched: []
    func_position:
      end: 329
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 329
    functionName: stdprinter_new
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_new(PyTypeObject *type, PyObject *args, PyObject *kews)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: stdprinter_init
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int stdprinter_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/Python-3.8.3/Objects/fileobject.c:344,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Objects/fileobject.c:344,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/fileobject.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: PyFile_NewStdPrinter
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - fileno
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_NewStdPrinter(int fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/fileobject.c:367,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/fileobject.c:367,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/fileobject.c:377,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/fileobject.c:382,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/fileobject.c:384,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/fileobject.c:385,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/fileobject.c:388,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/fileobject.c:389,1
    - Dst: _Py_write
      Src: /src/Python-3.8.3/Objects/fileobject.c:392,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:396,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/fileobject.c:400,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/fileobject.c:406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyStdPrinter_Object*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/Python-3.8.3/Objects/fileobject.c
    constantsTouched: []
    func_position:
      end: 407
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 407
    functionName: stdprinter_write
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8String
    - _Py_write
    - PyErr_Occurred
    - PyUnicode_AsUTF8AndSize
    - PyBytes_GET_SIZE
    - PyLong_FromSsize_t
    - PyBytes_AS_STRING
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_write(PyStdPrinter_Object *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/fileobject.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyStdPrinter_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: stdprinter_fileno
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_fileno(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/fileobject.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStdPrinter_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: stdprinter_repr
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_repr(PyStdPrinter_Object *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyStdPrinter_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: stdprinter_noop
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_noop(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Objects/fileobject.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyStdPrinter_Object*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: stdprinter_isatty
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - isatty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stdprinter_isatty(PyStdPrinter_Object *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyStdPrinter_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: get_closed
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_closed(PyStdPrinter_Object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/fileobject.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyStdPrinter_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: get_mode
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_mode(PyStdPrinter_Object *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyStdPrinter_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: get_encoding
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_encoding(PyStdPrinter_Object *self, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Objects/fileobject.c:528,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/fileobject.c:529,1
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Objects/fileobject.c:534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/fileobject.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - hook
    - userData
    argTypes:
    - Py_OpenCodeHookFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 544
    functionName: PyFile_SetOpenCodeHook
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_IsInitialized
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFile_SetOpenCodeHook(Py_OpenCodeHookFunction hook, void *userData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/fileobject.c:550,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/fileobject.c:552,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/fileobject.c:553,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/fileobject.c:554,1
    - Dst: hook
      Src: /src/Python-3.8.3/Objects/fileobject.c:560,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Objects/fileobject.c:562,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/fileobject.c:564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 571
    functionName: PyFile_OpenCodeObject
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportModule
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - hook
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_OpenCodeObject(PyObject *path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/fileobject.c:576,1
    - Dst: PyFile_OpenCodeObject
      Src: /src/Python-3.8.3/Objects/fileobject.c:581,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/fileobject.c:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - utf8path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 584
    functionName: PyFile_OpenCode
    functionSourceFile: /src/Python-3.8.3/Objects/fileobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyFile_OpenCodeObject
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFile_OpenCode(const char *utf8path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - obj
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: type_error
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_error(const char *msg, PyObject *obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:23,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: null_error
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_error(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:37,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: PyObject_Type
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - null_error
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Type(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:51,1
    - Dst: PySequenceMethods*::sq_length
      Src: /src/Python-3.8.3/Objects/abstract.c:57,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:58,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:58,1
    - Dst: PyMapping_Size
      Src: /src/Python-3.8.3/Objects/abstract.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (len >= 0 || PyErr_Occurred())
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 63
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 63
    functionName: PyObject_Size
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - PyMapping_Size
    - PyErr_Occurred
    - null_error
    - PySequenceMethods*::sq_length
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyObject_Size(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/abstract.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: PyObject_Length
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyObject_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyObject_Length(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:75,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:75,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:76,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: _PyObject_HasLen
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int _PyObject_HasLen(PyObject *o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:90,1
    - Dst: _PyObject_HasLen
      Src: /src/Python-3.8.3/Objects/abstract.c:91,1
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Objects/abstract.c:92,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:94,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:94,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:95,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:98,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/abstract.c:104,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:106,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/abstract.c:111,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:112,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:114,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:115,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:121,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:124,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:125,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:126,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:127,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:131,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:132,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - o
    - defaultvalue
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 140
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 140
    functionName: PyObject_LengthHint
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_HasLen
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyLong_AsSsize_t
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_TYPE
    - assert
    - PyErr_Clear
    - PyObject_Length
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyObject_LengthHint(PyObject *o, Py_ssize_t defaultvalue)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:149,1
    - Dst: PyMappingMethods*::mp_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:154,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:155,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:155,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:161,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:163,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:164,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:166,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:169,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:174,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:176,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/abstract.c:177,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/abstract.c:181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:182,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:187,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: ((item != NULL) ^ (PyErr_Occurred() != NULL))
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 188
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 188
    functionName: PyObject_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 8
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - type_error
    - Py_DECREF
    - PySequence_GetItem
    - null_error
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyType_Check
    - _PyObject_FastCall
    - assert
    - PyNumber_AsSsize_t
    - PyMappingMethods*::mp_subscript
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetItem(PyObject *o, PyObject *key)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:196,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:201,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:204,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:206,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:207,1
    - Dst: PySequence_SetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:209,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:212,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:218,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - o
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 220
    functionName: PyObject_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 7
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PySequence_SetItem
    - type_error
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int PyObject_SetItem(PyObject *o, PyObject *key, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:228,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:233,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:236,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:238,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:239,1
    - Dst: PySequence_DelItem
      Src: /src/Python-3.8.3/Objects/abstract.c:241,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:244,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 252
    functionName: PyObject_DelItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - type_error
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - PyNumber_AsSsize_t
    - PySequence_DelItem
    linkageType: ''
    returnType: int
    signature: int PyObject_DelItem(PyObject *o, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:261,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/abstract.c:264,1
    - Dst: PyObject_DelItem
      Src: /src/Python-3.8.3/Objects/abstract.c:267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 270
    functionName: PyObject_DelItemString
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - null_error
    - PyObject_DelItem
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyObject_DelItemString(PyObject *o, const char *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:285,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: PyObject_CheckReadBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int PyObject_CheckReadBuffer(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:298,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:301,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - buffer
    - buffer_len
    argTypes:
    - PyObject*
    - void**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: as_read_buffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - null_error
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int as_read_buffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_read_buffer
      Src: /src/Python-3.8.3/Objects/abstract.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - buffer
    - buffer_len
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: PyObject_AsCharBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - as_read_buffer
    linkageType: ''
    returnType: int
    signature: "int PyObject_AsCharBuffer(PyObject *obj,\n                      const
      char **buffer,\n                      Py_ssize_t *buffer_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_read_buffer
      Src: /src/Python-3.8.3/Objects/abstract.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - buffer
    - buffer_len
    argTypes:
    - PyObject*
    - void**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: PyObject_AsReadBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - as_read_buffer
    linkageType: ''
    returnType: int
    signature: "int PyObject_AsReadBuffer(PyObject *obj,\n                          const
      void **buffer,\n                          Py_ssize_t *buffer_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:333,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:340,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - obj
    - buffer
    - buffer_len
    argTypes:
    - PyObject*
    - void**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: PyObject_AsWriteBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - null_error
    - PyBuffer_Release
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PyObject_AsWriteBuffer(PyObject *obj,\n                           void
      **buffer,\n                           Py_ssize_t *buffer_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:359,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - view
    - flags
    argTypes:
    - PyObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 365
    functionName: PyObject_GetBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 147
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:382,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:393,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->shape != NULL)
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/Python-3.8.3/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/Python-3.8.3/Objects/abstract.c
    - condition: (view->ndim > 0)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 405
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 405
    functionName: _IsFortranContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _IsFortranContiguous(const Py_buffer *view)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:420,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:421,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/Python-3.8.3/Objects/abstract.c
    - condition: (view->shape != NULL)
      pos:
        line_end: 420
        line_start: 420
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 432
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 432
    functionName: _IsCContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _IsCContiguous(const Py_buffer *view)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _IsCContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:441,1
    - Dst: _IsFortranContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:443,1
    - Dst: _IsCContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:445,1
    - Dst: _IsFortranContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - view
    - order
    argTypes:
    - Py_buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 447
    functionName: PyBuffer_IsContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 115
    functionsReached:
    - _IsCContiguous
    - _IsFortranContiguous
    linkageType: ''
    returnType: int
    signature: int PyBuffer_IsContiguous(const Py_buffer *view, char order)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - view
    - indices
    argTypes:
    - Py_buffer*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 463
    functionName: PyBuffer_GetPointer
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      PyBuffer_GetPointer(Py_buffer *view, Py_ssize_t *indices)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nd
    - index
    - shape
    argTypes:
    - int
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 480
    functionName: _Py_add_one_to_index_F
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_add_one_to_index_F(int nd, Py_ssize_t *index, const Py_ssize_t
      *shape)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - nd
    - index
    - shape
    argTypes:
    - int
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 496
    functionName: _Py_add_one_to_index_C
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_add_one_to_index_C(int nd, Py_ssize_t *index, const Py_ssize_t
      *shape)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:510,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/abstract.c:512,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/abstract.c:519,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:521,1
    - Dst: PyBuffer_GetPointer
      Src: /src/Python-3.8.3/Objects/abstract.c:540,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/abstract.c:541,1
    - Dst: addone
      Src: /src/Python-3.8.3/Objects/abstract.c:543,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/abstract.c:546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - view
    - buf
    - len
    - fort
    argTypes:
    - Py_buffer*
    - void*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 498
    functionDepth: 3
    functionLinenumber: 498
    functionLinenumberEnd: 548
    functionName: PyBuffer_FromContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - memcpy
    - addone
    - PyBuffer_GetPointer
    - PyErr_NoMemory
    - PyBuffer_IsContiguous
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: int
    signature: int PyBuffer_FromContiguous(Py_buffer *view, void *buf, Py_ssize_t
      len, char fort)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:557,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:559,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:565,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:566,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:567,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:572,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:574,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:575,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:579,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:580,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:581,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/abstract.c:582,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/abstract.c:584,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:585,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:586,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/abstract.c:593,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:595,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:596,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:597,1
    - Dst: _Py_add_one_to_index_C
      Src: /src/Python-3.8.3/Objects/abstract.c:609,1
    - Dst: PyBuffer_GetPointer
      Src: /src/Python-3.8.3/Objects/abstract.c:610,1
    - Dst: PyBuffer_GetPointer
      Src: /src/Python-3.8.3/Objects/abstract.c:611,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/abstract.c:612,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/abstract.c:614,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:615,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:616,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 618
    functionName: PyObject_CopyData
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyBuffer_GetPointer
    - PyObject_CheckBuffer
    - PyErr_NoMemory
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - PyMem_Free
    - PyMem_Malloc
    - PyObject_GetBuffer
    - _Py_add_one_to_index_C
    linkageType: ''
    returnType: int
    signature: int PyObject_CopyData(PyObject *dest, PyObject *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - nd
    - shape
    - strides
    - itemsize
    - fort
    argTypes:
    - int
    - Py_ssize_t*
    - Py_ssize_t*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 642
    functionName: PyBuffer_FillContiguousStrides
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PyBuffer_FillContiguousStrides(int nd, Py_ssize_t *shape,\n                               Py_ssize_t
      *strides, int itemsize,\n                               char fort)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:649,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:656,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 6
    argNames:
    - view
    - obj
    - buf
    - len
    - readonly
    - flags
    argTypes:
    - Py_buffer*
    - PyObject*
    - void*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 681
    functionName: PyBuffer_FillInfo
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 15
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: "int PyBuffer_FillInfo(Py_buffer *view, PyObject *obj, void *buf, Py_ssize_t
      len,\n                  int readonly, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:690,1
    - Dst: PyBufferProcs*::bf_releasebuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:692,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 695
    functionName: PyBuffer_Release
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 238
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    - PyBufferProcs*::bf_releasebuffer
    linkageType: ''
    returnType: void
    signature: void PyBuffer_Release(Py_buffer *view)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:703,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:705,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:706,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:708,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/abstract.c:713,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:714,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:715,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:718,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/abstract.c:719,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/abstract.c:725,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/abstract.c:730,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:732,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:733,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:735,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/abstract.c:740,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:741,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:743,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:744,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:747,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:753,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - obj
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 697
    functionDepth: 5
    functionLinenumber: 697
    functionLinenumberEnd: 755
    functionName: PyObject_Format
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - Py_XDECREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyObject_Str
    - PyLong_CheckExact
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyUnicode_CheckExact
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Format(PyObject *obj, PyObject *format_spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 765
    functionName: PyNumber_Check
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyNumber_Check(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: NB_SLOT
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NB_SLOT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nb_methods
    - ','
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: NB_BINOP
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NB_BINOP(nb_methods, slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - nb_methods
    - ','
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: NB_TERNOP
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NB_TERNOP(nb_methods, slot)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NB_BINOP
      Src: /src/Python-3.8.3/Objects/abstract.c:793,1
    - Dst: NB_BINOP
      Src: /src/Python-3.8.3/Objects/abstract.c:796,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/abstract.c:801,1
    - Dst: slotw
      Src: /src/Python-3.8.3/Objects/abstract.c:802,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:805,1
    - Dst: slotv
      Src: /src/Python-3.8.3/Objects/abstract.c:808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:811,1
    - Dst: slotw
      Src: /src/Python-3.8.3/Objects/abstract.c:814,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:817,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - v
    - w
    - op_slot
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 820
    functionName: binary_op1
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - slotw
    - Py_DECREF
    - PyType_IsSubtype
    - slotv
    - NB_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_op1(PyObject *v, PyObject *w, const int op_slot)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - v
    - w
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 832
    functionName: binop_type_error
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binop_type_error(PyObject *v, PyObject *w, const char *op_name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:837,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:839,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:841,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:842,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/abstract.c:843,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:845,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - v
    - w
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 858
    functionName: binary_op
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - NB_SLOT
    - PyCFunction_Check
    - PyErr_Format
    - strcmp
    - binary_op1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_op(PyObject *v, PyObject *w, const int op_slot, const char *op_name)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NB_TERNOP
      Src: /src/Python-3.8.3/Objects/abstract.c:884,1
    - Dst: NB_TERNOP
      Src: /src/Python-3.8.3/Objects/abstract.c:887,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/abstract.c:892,1
    - Dst: slotw
      Src: /src/Python-3.8.3/Objects/abstract.c:893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:896,1
    - Dst: slotv
      Src: /src/Python-3.8.3/Objects/abstract.c:899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:902,1
    - Dst: slotw
      Src: /src/Python-3.8.3/Objects/abstract.c:905,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:908,1
    - Dst: NB_TERNOP
      Src: /src/Python-3.8.3/Objects/abstract.c:912,1
    - Dst: slotz
      Src: /src/Python-3.8.3/Objects/abstract.c:916,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:919,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:924,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:931,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 5
    argNames:
    - v
    - w
    - z
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 939
    functionName: ternary_op
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - slotw
    - Py_DECREF
    - NB_TERNOP
    - PyType_IsSubtype
    - slotv
    - PyErr_Format
    - slotz
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nternary_op(PyObject *v,\n           PyObject *w,\n           PyObject
      *z,\n           const int op_slot,\n           const char *op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - op
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 946
    functionName: BINARY_FUNC
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINARY_FUNC(func, op, op_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:958,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:961,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 968
    functionName: PyNumber_Add
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 20
    functionsReached:
    - NB_SLOT
    - Py_DECREF
    - binary_op1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Add(PyObject *v, PyObject *w)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:974,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:975,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:976,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - repeatfunc
    - seq
    - n
    argTypes:
    - ssizeargfunc
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 984
    functionName: sequence_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyNumber_AsSsize_t
    - type_error
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sequence_repeat(ssizeargfunc repeatfunc, PyObject *seq, PyObject *n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:989,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:989,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:993,1
    - Dst: sequence_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:995,1
    - Dst: sequence_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:998,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 1003
    functionName: PyNumber_Multiply
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 17
    functionsReached:
    - Py_DECREF
    - NB_SLOT
    - sequence_repeat
    - binary_op1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Multiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1008,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1005
    functionDepth: 3
    functionLinenumber: 1005
    functionLinenumberEnd: 1009
    functionName: PyNumber_MatrixMultiply
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - binary_op
    - NB_SLOT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_MatrixMultiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1014,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1015
    functionName: PyNumber_FloorDivide
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 7
    functionsReached:
    - binary_op
    - NB_SLOT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_FloorDivide(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1020,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1021
    functionName: PyNumber_TrueDivide
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 4
    functionsReached:
    - binary_op
    - NB_SLOT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_TrueDivide(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1026,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: PyNumber_Remainder
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - binary_op
    - NB_SLOT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Remainder(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ternary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1032,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: PyNumber_Power
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - ternary_op
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Power(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NB_BINOP
      Src: /src/Python-3.8.3/Objects/abstract.c:1056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1062,1
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:1065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - v
    - w
    - iop_slot
    - op_slot
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1051
    functionDepth: 2
    functionLinenumber: 1051
    functionLinenumberEnd: 1066
    functionName: binary_iop1
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - binary_op1
    - NB_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      binary_iop1(PyObject *v, PyObject *w, const int iop_slot, const int op_slot)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop1
      Src: /src/Python-3.8.3/Objects/abstract.c:1072,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1074,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - v
    - w
    - iop_slot
    - op_slot
    - op_name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 3
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: binary_iop
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - binary_iop1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbinary_iop(PyObject *v, PyObject *w, const int iop_slot,
      const int op_slot,\n                const char *op_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - iop
    - ','
    - op
    - ','
    - op_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1085
    functionName: INPLACE_BINOP
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INPLACE_BINOP(func, iop, op, op_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop
      Src: /src/Python-3.8.3/Objects/abstract.c:1097,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1097,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1094
    functionDepth: 4
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    functionName: PyNumber_InPlaceFloorDivide
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - binary_iop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceFloorDivide(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop
      Src: /src/Python-3.8.3/Objects/abstract.c:1104,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1104,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1101
    functionDepth: 4
    functionLinenumber: 1101
    functionLinenumberEnd: 1106
    functionName: PyNumber_InPlaceTrueDivide
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - binary_iop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceTrueDivide(PyObject *v, PyObject *w)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop1
      Src: /src/Python-3.8.3/Objects/abstract.c:1111,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1111,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1112,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1115,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1127
    functionName: PyNumber_InPlaceAdd
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - Py_DECREF
    - binary_iop1
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceAdd(PyObject *v, PyObject *w)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop1
      Src: /src/Python-3.8.3/Objects/abstract.c:1132,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1132,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1133,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1138,1
    - Dst: sequence_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:1144,1
    - Dst: sequence_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:1151,1
    - Dst: binop_type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1153,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1156
    functionName: PyNumber_InPlaceMultiply
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - NB_SLOT
    - binary_iop1
    - sequence_repeat
    - binop_type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceMultiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop
      Src: /src/Python-3.8.3/Objects/abstract.c:1161,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1161,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1163
    functionName: PyNumber_InPlaceMatrixMultiply
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - binary_iop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceMatrixMultiply(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_iop
      Src: /src/Python-3.8.3/Objects/abstract.c:1168,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1168,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1170
    functionName: PyNumber_InPlaceRemainder
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - binary_iop
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlaceRemainder(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ternary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1177,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1177,1
    - Dst: ternary_op
      Src: /src/Python-3.8.3/Objects/abstract.c:1180,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1182
    functionName: PyNumber_InPlacePower
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - NB_SLOT
    - ternary_op
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_InPlacePower(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1193,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1201
    functionName: PyNumber_Negative
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - null_error
    - type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Negative(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1209,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1217
    functionName: PyNumber_Positive
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - null_error
    - type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Positive(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1225,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1233
    functionName: PyNumber_Invert
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - null_error
    - type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Invert(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1241,1
    - Dst: PyNumberMethods*::nb_absolute
      Src: /src/Python-3.8.3/Objects/abstract.c:1246,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1249
    functionName: PyNumber_Absolute
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - null_error
    - PyNumberMethods*::nb_absolute
    - type_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Absolute(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1258
    functionName: PyIndex_Check
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyIndex_Check(PyObject *obj)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1269,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1272,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1273,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1276,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1277,1
    - Dst: PyObject*::ob_type::tp_as_number::nb_index
      Src: /src/Python-3.8.3/Objects/abstract.c:1282,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1283,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1285,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1286,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1289,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/abstract.c:1293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1264
    functionDepth: 1
    functionLinenumber: 1264
    functionLinenumberEnd: 1302
    functionName: PyNumber_Index
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 55
    functionsReached:
    - PyLong_Check
    - PyIndex_Check
    - PyObject*::ob_type::tp_as_number::nb_index
    - Py_DECREF
    - PyErr_WarnFormat
    - Py_INCREF
    - null_error
    - PyLong_CheckExact
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Index(PyObject *item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/abstract.c:1311,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:1316,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1317,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:1321,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:1324,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:1329,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1329,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/abstract.c:1333,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1340,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1346,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - item
    - err
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(value))
      pos:
        line_end: 1328
        line_start: 1328
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1348
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1348
    functionName: PyNumber_AsSsize_t
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 28
    functionsReached:
    - PyLong_Check
    - _PyLong_Sign
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_GivenExceptionMatches
    - PyErr_Format
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyNumber_AsSsize_t(PyObject *item, PyObject *err)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:1358,1
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1361,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1364,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1365,1
    - Dst: _PyLong_FromNbInt
      Src: /src/Python-3.8.3/Objects/abstract.c:1370,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1371,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1372,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/abstract.c:1372,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/abstract.c:1377,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1378,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1379,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/abstract.c:1379,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/abstract.c:1383,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/abstract.c:1385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1386,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1387,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1390,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1391,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/abstract.c:1391,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1402,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1405,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/abstract.c:1405,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1406,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1407,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/abstract.c:1407,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1411,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1414,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/Python-3.8.3/Objects/abstract.c:1416,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1418,1
    - Dst: _PyLong_FromBytes
      Src: /src/Python-3.8.3/Objects/abstract.c:1423,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/abstract.c:1423,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:1424,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1426,1
    - Dst: _PyLong_FromBytes
      Src: /src/Python-3.8.3/Objects/abstract.c:1427,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/abstract.c:1427,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:1428,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/abstract.c:1430,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/abstract.c:1434,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:1436,1
    - Dst: _PyLong_FromBytes
      Src: /src/Python-3.8.3/Objects/abstract.c:1439,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/abstract.c:1439,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:1440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1441,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/abstract.c:1442,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1446,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1448
    functionName: PyNumber_Long
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - type_error
    - null_error
    - _Py_IDENTIFIER
    - _PyLong_FromNbInt
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_INCREF
    - _PyLong_FromNbIndexOrNbInt
    - PyLong_FromUnicodeObject
    - PyErr_Format
    - PyLong_Check
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyByteArray_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _PyObject_CallNoArg
    - Py_SETREF
    - _PyLong_Copy
    - PyBytes_Check
    - PyLong_CheckExact
    - _PyLong_FromBytes
    - PyBuffer_Release
    - PyUnicode_Check
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Long(PyObject *o)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1456,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1459,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1460,1
    - Dst: PyNumberMethods*::nb_float
      Src: /src/Python-3.8.3/Objects/abstract.c:1465,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1467,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1470,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1471,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1474,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/abstract.c:1478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1483,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/abstract.c:1486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1487,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/abstract.c:1488,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/abstract.c:1491,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/abstract.c:1495,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1496,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1497,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/abstract.c:1500,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1502,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/abstract.c:1503,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/abstract.c:1503,1
    - Dst: PyFloat_FromString
      Src: /src/Python-3.8.3/Objects/abstract.c:1505,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1506
    functionName: PyNumber_Float
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_WarnFormat
    - Py_INCREF
    - PyFloat_FromString
    - PyFloat_AS_DOUBLE
    - PyNumberMethods*::nb_float
    - null_error
    - PyLong_AsDouble
    - PyNumber_Index
    - PyErr_Format
    - PyFloat_FromDouble
    - PyFloat_CheckExact
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_Float(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:1513,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/abstract.c:1517,1
    - Dst: _PyLong_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:1520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - n
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1523
    functionName: PyNumber_ToBase
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _PyLong_Format
    - PyNumber_Index
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyNumber_ToBase(PyObject *n, int base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1528
    functionDepth: 1
    functionLinenumber: 1528
    functionLinenumberEnd: 1535
    functionName: PySequence_Check
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 10
    functionsReached:
    - PyDict_Check
    linkageType: ''
    returnType: int
    signature: int PySequence_Check(PyObject *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1543,1
    - Dst: PySequenceMethods*::sq_length
      Src: /src/Python-3.8.3/Objects/abstract.c:1549,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:1550,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1550,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1555,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (len >= 0 || PyErr_Occurred())
      pos:
        line_end: 1549
        line_start: 1549
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1560
      start: 1537
    functionDepth: 2
    functionLinenumber: 1537
    functionLinenumberEnd: 1560
    functionName: PySequence_Size
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 15
    functionsReached:
    - PyErr_Occurred
    - type_error
    - null_error
    - PySequenceMethods*::sq_length
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Size(PyObject *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/abstract.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1563
    functionDepth: 3
    functionLinenumber: 1563
    functionLinenumberEnd: 1567
    functionName: PySequence_Length
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 11
    functionsReached:
    - PySequence_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Length(PyObject *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1576,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/Python-3.8.3/Objects/abstract.c:1581,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1586,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1586,1
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:1587,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1587,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1590,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1592,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1570
    functionDepth: 2
    functionLinenumber: 1570
    functionLinenumberEnd: 1593
    functionName: PySequence_Concat
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PySequence_Check
    - Py_DECREF
    - type_error
    - PySequenceMethods*::sq_concat
    - NB_SLOT
    - null_error
    - binary_op1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Concat(PyObject *s, PyObject *o)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1601,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:1606,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1611,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:1613,1
    - Dst: binary_op1
      Src: /src/Python-3.8.3/Objects/abstract.c:1616,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1617,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1620,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1622,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - o
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1623
    functionName: PySequence_Repeat
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - Py_DECREF
    - type_error
    - null_error
    - NB_SLOT
    - PyLong_FromSsize_t
    - PySequenceMethods*::sq_repeat
    - binary_op1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Repeat(PyObject *o, Py_ssize_t count)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1631,1
    - Dst: PySequenceMethods*::sq_inplace_concat
      Src: /src/Python-3.8.3/Objects/abstract.c:1636,1
    - Dst: PySequenceMethods*::sq_concat
      Src: /src/Python-3.8.3/Objects/abstract.c:1638,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1640,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1640,1
    - Dst: binary_iop1
      Src: /src/Python-3.8.3/Objects/abstract.c:1641,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1641,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1645,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1647,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1625
    functionDepth: 3
    functionLinenumber: 1625
    functionLinenumberEnd: 1648
    functionName: PySequence_InPlaceConcat
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PySequence_Check
    - PySequenceMethods*::sq_inplace_concat
    - Py_DECREF
    - type_error
    - PySequenceMethods*::sq_concat
    - null_error
    - NB_SLOT
    - binary_iop1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_InPlaceConcat(PyObject *s, PyObject *o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1656,1
    - Dst: PySequenceMethods*::sq_inplace_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:1661,1
    - Dst: PySequenceMethods*::sq_repeat
      Src: /src/Python-3.8.3/Objects/abstract.c:1663,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:1665,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/abstract.c:1667,1
    - Dst: binary_iop1
      Src: /src/Python-3.8.3/Objects/abstract.c:1670,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1670,1
    - Dst: NB_SLOT
      Src: /src/Python-3.8.3/Objects/abstract.c:1671,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1672,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1675,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1677,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - o
    - count
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 1678
    functionName: PySequence_InPlaceRepeat
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - Py_DECREF
    - type_error
    - null_error
    - NB_SLOT
    - binary_iop1
    - PyLong_FromSsize_t
    - PySequenceMethods*::sq_inplace_repeat
    - PySequenceMethods*::sq_repeat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1686,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:1695,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1695,1
    - Dst: PySequenceMethods*::sq_item
      Src: /src/Python-3.8.3/Objects/abstract.c:1701,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1705,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1694
        line_start: 1694
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1708
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1708
    functionName: PySequence_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 21
    functionsReached:
    - PyErr_Occurred
    - type_error
    - null_error
    - assert
    - PySequenceMethods*::sq_item
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_GetItem(PyObject *s, Py_ssize_t i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1716,1
    - Dst: _PySlice_FromIndices
      Src: /src/Python-3.8.3/Objects/abstract.c:1722,1
    - Dst: PyMappingMethods*::mp_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:1725,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1726,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - s
    - i1
    - i2
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1710
    functionDepth: 3
    functionLinenumber: 1710
    functionLinenumberEnd: 1731
    functionName: PySequence_GetSlice
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - type_error
    - Py_DECREF
    - null_error
    - _PySlice_FromIndices
    - PyMappingMethods*::mp_subscript
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_GetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1739,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:1749,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1749,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/Python-3.8.3/Objects/abstract.c:1755,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1759,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1762,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - s
    - i
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1748
        line_start: 1748
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1764
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1764
    functionName: PySequence_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - type_error
    - null_error
    - PySequenceMethods*::sq_ass_item
    - assert
    linkageType: ''
    returnType: int
    signature: int PySequence_SetItem(PyObject *s, Py_ssize_t i, PyObject *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1772,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:1782,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1782,1
    - Dst: PySequenceMethods*::sq_ass_item
      Src: /src/Python-3.8.3/Objects/abstract.c:1788,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1792,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1795,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1781
        line_start: 1781
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 1797
      start: 1766
    functionDepth: 2
    functionLinenumber: 1766
    functionLinenumberEnd: 1797
    functionName: PySequence_DelItem
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - type_error
    - null_error
    - PySequenceMethods*::sq_ass_item
    - assert
    linkageType: ''
    returnType: int
    signature: int PySequence_DelItem(PyObject *s, Py_ssize_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1805,1
    - Dst: _PySlice_FromIndices
      Src: /src/Python-3.8.3/Objects/abstract.c:1812,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:1815,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1816,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1820,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - s
    - i1
    - i2
    - o
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1799
    functionDepth: 3
    functionLinenumber: 1799
    functionLinenumberEnd: 1822
    functionName: PySequence_SetSlice
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - type_error
    - Py_DECREF
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - _PySlice_FromIndices
    linkageType: ''
    returnType: int
    signature: int PySequence_SetSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2,
      PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1830,1
    - Dst: _PySlice_FromIndices
      Src: /src/Python-3.8.3/Objects/abstract.c:1837,1
    - Dst: PyMappingMethods*::mp_ass_subscript
      Src: /src/Python-3.8.3/Objects/abstract.c:1840,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1841,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - s
    - i1
    - i2
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1824
    functionDepth: 3
    functionLinenumber: 1824
    functionLinenumberEnd: 1846
    functionName: PySequence_DelSlice
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - type_error
    - Py_DECREF
    - null_error
    - PyMappingMethods*::mp_ass_subscript
    - _PySlice_FromIndices
    linkageType: ''
    returnType: int
    signature: int PySequence_DelSlice(PyObject *s, Py_ssize_t i1, Py_ssize_t i2)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1857,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1861,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1866,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1869,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Objects/abstract.c:1870,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/abstract.c:1873,1
    - Dst: PyObject_LengthHint
      Src: /src/Python-3.8.3/Objects/abstract.c:1878,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/abstract.c:1881,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/abstract.c:1887,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:1889,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:1905,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1906,1
    - Dst: _PyTuple_Resize
      Src: /src/Python-3.8.3/Objects/abstract.c:1910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1911,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/abstract.c:1915,1
    - Dst: _PyTuple_Resize
      Src: /src/Python-3.8.3/Objects/abstract.c:1920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1923,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1927,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1928,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1848
    functionDepth: 4
    functionLinenumber: 1848
    functionLinenumberEnd: 1930
    functionName: PySequence_Tuple
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 11
    functionsReached:
    - PyObject_LengthHint
    - PyList_AsTuple
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - null_error
    - Py_XDECREF
    - _PyTuple_Resize
    - PyIter_Next
    - PyTuple_CheckExact
    - PyList_CheckExact
    - PyObject_GetIter
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Tuple(PyObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1939,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/abstract.c:1942,1
    - Dst: _PyList_Extend
      Src: /src/Python-3.8.3/Objects/abstract.c:1946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1948,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1951,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1953
    functionName: PySequence_List
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 11
    functionsReached:
    - PyList_New
    - null_error
    - Py_DECREF
    - _PyList_Extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_List(PyObject *v)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1961,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1964,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:1964,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1965,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/abstract.c:1969,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:1971,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:1972,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/abstract.c:1976,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:1977,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - v
    - m
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1955
    functionDepth: 2
    functionLinenumber: 1955
    functionLinenumberEnd: 1980
    functionName: PySequence_Fast
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 15
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - Py_INCREF
    - null_error
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyTuple_CheckExact
    - PyList_CheckExact
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySequence_Fast(PyObject *v, const char *m)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:1996,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/abstract.c:2000,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2002,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/abstract.c:2009,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2011,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/abstract.c:2016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2017,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:2024,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:2033,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/abstract.c:2044,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:2058,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2065,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 3
    argNames:
    - seq
    - obj
    - operation
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 1988
    functionDepth: 4
    functionLinenumber: 1988
    functionLinenumberEnd: 2068
    functionName: _PySequence_IterSearch
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - type_error
    - Py_DECREF
    - null_error
    - Py_UNREACHABLE
    - PyIter_Next
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyObject_GetIter
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PySequence_IterSearch(PyObject *seq, PyObject *obj, int
      operation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/abstract.c:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2071
    functionDepth: 5
    functionLinenumber: 2071
    functionLinenumberEnd: 2075
    functionName: PySequence_Count
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _PySequence_IterSearch
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Count(PyObject *s, PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/abstract.c:2087,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/abstract.c:2088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - seq
    - ob
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2080
    functionDepth: 5
    functionLinenumber: 2080
    functionLinenumberEnd: 2089
    functionName: PySequence_Contains
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 4
    functionsReached:
    - Py_SAFE_DOWNCAST
    - _PySequence_IterSearch
    linkageType: ''
    returnType: int
    signature: int PySequence_Contains(PyObject *seq, PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/abstract.c:2096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2093
    functionDepth: 6
    functionLinenumber: 2093
    functionLinenumberEnd: 2097
    functionName: PySequence_In
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_Contains
    linkageType: ''
    returnType: int
    signature: int PySequence_In(PyObject *w, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/abstract.c:2102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2099
    functionDepth: 5
    functionLinenumber: 2099
    functionLinenumberEnd: 2103
    functionName: PySequence_Index
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - _PySequence_IterSearch
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySequence_Index(PyObject *s, PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2107
    functionDepth: 0
    functionLinenumber: 2107
    functionLinenumberEnd: 2112
    functionName: PyMapping_Check
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyMapping_Check(PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2120,1
    - Dst: PyMappingMethods*::mp_length
      Src: /src/Python-3.8.3/Objects/abstract.c:2126,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:2127,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2127,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2132,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2136,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (len >= 0 || PyErr_Occurred())
      pos:
        line_end: 2126
        line_start: 2126
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2138
      start: 2114
    functionDepth: 2
    functionLinenumber: 2114
    functionLinenumberEnd: 2138
    functionName: PyMapping_Size
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - type_error
    - null_error
    - assert
    - PyMappingMethods*::mp_length
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyMapping_Size(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Size
      Src: /src/Python-3.8.3/Objects/abstract.c:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2141
    functionDepth: 3
    functionLinenumber: 2141
    functionLinenumberEnd: 2145
    functionName: PyMapping_Length
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyMapping_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyMapping_Length(PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2154,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/abstract.c:2157,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:2160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2148
    functionDepth: 4
    functionLinenumber: 2148
    functionLinenumberEnd: 2163
    functionName: PyMapping_GetItemString
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - PyUnicode_FromString
    - null_error
    - Py_DECREF
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_GetItemString(PyObject *o, const char *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2172,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/abstract.c:2176,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:2179,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2165
    functionDepth: 3
    functionLinenumber: 2165
    functionLinenumberEnd: 2182
    functionName: PyMapping_SetItemString
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - null_error
    - Py_DECREF
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int PyMapping_SetItemString(PyObject *o, const char *key, PyObject
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_GetItemString
      Src: /src/Python-3.8.3/Objects/abstract.c:2189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2191,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:2194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2184
    functionDepth: 5
    functionLinenumber: 2184
    functionLinenumberEnd: 2196
    functionName: PyMapping_HasKeyString
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - PyMapping_GetItemString
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKeyString(PyObject *o, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:2203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2205,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:2208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2198
    functionDepth: 4
    functionLinenumber: 2198
    functionLinenumberEnd: 2210
    functionName: PyMapping_HasKey
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - PyObject_GetItem
    linkageType: ''
    returnType: int
    signature: int PyMapping_HasKey(PyObject *o, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:2220,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/abstract.c:2221,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2222,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/abstract.c:2225,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:2227,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:2228,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:2230,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:2232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2237,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/abstract.c:2238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - o
    - meth_id
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts:
    - condition: (o != NULL)
      pos:
        line_end: 2219
        line_start: 2219
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2241
      start: 2215
    functionDepth: 2
    functionLinenumber: 2215
    functionLinenumberEnd: 2241
    functionName: method_output_as_list
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_TYPE
    - assert
    - PyObject_GetIter
    - PyList_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_output_as_list(PyObject *o, _Py_Identifier *meth_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2246,1
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2249,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2251,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/abstract.c:2252,1
    - Dst: method_output_as_list
      Src: /src/Python-3.8.3/Objects/abstract.c:2254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2243
    functionDepth: 3
    functionLinenumber: 2243
    functionLinenumberEnd: 2255
    functionName: PyMapping_Keys
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - method_output_as_list
    - null_error
    - _Py_IDENTIFIER
    - PyDict_Keys
    - PyDict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Keys(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2260,1
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2263,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2265,1
    - Dst: PyDict_Items
      Src: /src/Python-3.8.3/Objects/abstract.c:2266,1
    - Dst: method_output_as_list
      Src: /src/Python-3.8.3/Objects/abstract.c:2268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2257
    functionDepth: 3
    functionLinenumber: 2257
    functionLinenumberEnd: 2269
    functionName: PyMapping_Items
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - method_output_as_list
    - null_error
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyDict_Items
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Items(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2274,1
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2277,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2279,1
    - Dst: PyDict_Values
      Src: /src/Python-3.8.3/Objects/abstract.c:2280,1
    - Dst: method_output_as_list
      Src: /src/Python-3.8.3/Objects/abstract.c:2282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2271
    functionDepth: 3
    functionLinenumber: 2271
    functionLinenumberEnd: 2283
    functionName: PyMapping_Values
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 3
    functionsReached:
    - method_output_as_list
    - null_error
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyDict_Values
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMapping_Values(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2314,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/abstract.c:2318,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2311
    functionDepth: 3
    functionLinenumber: 2311
    functionLinenumberEnd: 2325
    functionName: abstract_get_bases
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_Check
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      abstract_get_bases(PyObject *cls)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2337,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2345,1
    - Dst: abstract_get_bases
      Src: /src/Python-3.8.3/Objects/abstract.c:2345,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2347,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:2351,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2353,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/abstract.c:2358,1
    - Dst: abstract_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2362,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/abstract.c:2362,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2328
    functionDepth: 4
    functionLinenumber: 2328
    functionLinenumberEnd: 2369
    functionName: abstract_issubclass
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - abstract_get_bases
    - Py_XSETREF
    - abstract_issubclass
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int abstract_issubclass(PyObject *derived, PyObject *cls)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: abstract_get_bases
      Src: /src/Python-3.8.3/Objects/abstract.c:2374,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2377,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/abstract.c:2378,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cls
    - error
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2371
    functionDepth: 4
    functionLinenumber: 2371
    functionLinenumberEnd: 2383
    functionName: check_class
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetString
    - abstract_get_bases
    linkageType: ''
    returnType: int
    signature: int check_class(PyObject *cls, const char *error)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2390,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2392,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/abstract.c:2393,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/abstract.c:2395,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2397,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/abstract.c:2398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2405,1
    - Dst: check_class
      Src: /src/Python-3.8.3/Objects/abstract.c:2410,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/abstract.c:2413,1
    - Dst: abstract_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2385
    functionDepth: 5
    functionLinenumber: 2385
    functionLinenumberEnd: 2421
    functionName: recursive_isinstance
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - check_class
    - _PyObject_LookupAttrId
    - abstract_issubclass
    - _Py_IDENTIFIER
    - PyObject_TypeCheck
    - PyType_IsSubtype
    - PyType_Check
    linkageType: ''
    returnType: int
    signature: int recursive_isinstance(PyObject *inst, PyObject *cls)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2426,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/abstract.c:2430,1
    - Dst: PyType_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2434,1
    - Dst: recursive_isinstance
      Src: /src/Python-3.8.3/Objects/abstract.c:2435,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2438,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2443,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:2445,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/abstract.c:2447,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/abstract.c:2448,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2453,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/abstract.c:2457,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2462,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/abstract.c:2465,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2466,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2467,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/abstract.c:2469,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2470,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2474,1
    - Dst: recursive_isinstance
      Src: /src/Python-3.8.3/Objects/abstract.c:2477,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2423
    functionDepth: 6
    functionLinenumber: 2423
    functionLinenumberEnd: 2478
    functionName: PyObject_IsInstance
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 14
    functionsReached:
    - PyObject_IsInstance
    - PyType_CheckExact
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_Occurred
    - _Py_IDENTIFIER
    - Py_LeaveRecursiveCall
    - _PyObject_LookupSpecial
    - PyTuple_Check
    - Py_EnterRecursiveCall
    - Py_TYPE
    - PyObject_CallFunctionObjArgs
    - PyObject_IsTrue
    - PyTuple_GET_ITEM
    - recursive_isinstance
    linkageType: ''
    returnType: int
    signature: int PyObject_IsInstance(PyObject *inst, PyObject *cls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2483,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2483,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/abstract.c:2485,1
    - Dst: check_class
      Src: /src/Python-3.8.3/Objects/abstract.c:2487,1
    - Dst: check_class
      Src: /src/Python-3.8.3/Objects/abstract.c:2490,1
    - Dst: abstract_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2480
    functionDepth: 5
    functionLinenumber: 2480
    functionLinenumberEnd: 2496
    functionName: recursive_issubclass
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - check_class
    - abstract_issubclass
    - PyType_Check
    - PyType_IsSubtype
    linkageType: ''
    returnType: int
    signature: int recursive_issubclass(PyObject *derived, PyObject *cls)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/abstract.c:2501,1
    - Dst: PyType_CheckExact
      Src: /src/Python-3.8.3/Objects/abstract.c:2505,1
    - Dst: recursive_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2509,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2512,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2517,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:2519,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/abstract.c:2521,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2522,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2527,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/abstract.c:2531,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2536,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/abstract.c:2539,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/abstract.c:2540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2541,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/abstract.c:2543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2544,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2548,1
    - Dst: recursive_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2551,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2498
    functionDepth: 6
    functionLinenumber: 2498
    functionLinenumberEnd: 2552
    functionName: PyObject_IsSubclass
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 5
    functionsReached:
    - PyType_CheckExact
    - recursive_issubclass
    - PyTuple_GET_SIZE
    - Py_DECREF
    - PyErr_Occurred
    - _Py_IDENTIFIER
    - PyObject_IsSubclass
    - Py_LeaveRecursiveCall
    - _PyObject_LookupSpecial
    - PyTuple_Check
    - Py_EnterRecursiveCall
    - PyObject_CallFunctionObjArgs
    - PyObject_IsTrue
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int PyObject_IsSubclass(PyObject *derived, PyObject *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recursive_isinstance
      Src: /src/Python-3.8.3/Objects/abstract.c:2557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inst
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2558
      start: 2554
    functionDepth: 6
    functionLinenumber: 2554
    functionLinenumberEnd: 2558
    functionName: _PyObject_RealIsInstance
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - recursive_isinstance
    linkageType: ''
    returnType: int
    signature: int _PyObject_RealIsInstance(PyObject *inst, PyObject *cls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recursive_issubclass
      Src: /src/Python-3.8.3/Objects/abstract.c:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - derived
    - cls
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2560
    functionDepth: 6
    functionLinenumber: 2560
    functionLinenumberEnd: 2564
    functionName: _PyObject_RealIsSubclass
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 0
    functionsReached:
    - recursive_issubclass
    linkageType: ''
    returnType: int
    signature: int _PyObject_RealIsSubclass(PyObject *derived, PyObject *cls)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2575,1
    - Dst: PySeqIter_New
      Src: /src/Python-3.8.3/Objects/abstract.c:2576,1
    - Dst: type_error
      Src: /src/Python-3.8.3/Objects/abstract.c:2577,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Objects/abstract.c:2581,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/abstract.c:2582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2591
      start: 2567
    functionDepth: 2
    functionLinenumber: 2567
    functionLinenumberEnd: 2591
    functionName: PyObject_GetIter
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 58
    functionsReached:
    - PyIter_Check
    - PySequence_Check
    - type_error
    - Py_DECREF
    - PySeqIter_New
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_GetIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2595
    functionDepth: 0
    functionLinenumber: 2595
    functionLinenumberEnd: 2599
    functionName: PyIter_Check
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyIter_Check(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/abstract.c:2614,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/abstract.c:2615,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/abstract.c:2616,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - iter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2608
    functionDepth: 1
    functionLinenumber: 2608
    functionLinenumberEnd: 2618
    functionName: PyIter_Next
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 38
    functionsReached:
    - PyErr_Clear
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyIter_Next(PyObject *iter)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/abstract.c:2637,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/abstract.c:2641,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:2644,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/abstract.c:2648,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:2650,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/abstract.c:2655,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Objects/abstract.c:2662,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/abstract.c:2667,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/abstract.c:2668,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/abstract.c:2670,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/abstract.c:2673,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2674,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/abstract.c:2681,1
    - Dst: _Py_FreeCharPArray
      Src: /src/Python-3.8.3/Objects/abstract.c:2682,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (argc >= 0)
      pos:
        line_end: 2640
        line_start: 2640
        source_file: /src/Python-3.8.3/Objects/abstract.c
    constantsTouched: []
    func_position:
      end: 2684
      start: 2629
    functionDepth: 3
    functionLinenumber: 2629
    functionLinenumberEnd: 2684
    functionName: _PySequence_BytesToCharpArray
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Py_DECREF
    - PySequence_Size
    - PyErr_NoMemory
    - PySequence_GetItem
    - _Py_FreeCharPArray
    - PyBytes_GET_SIZE
    - PyBytes_AsStringAndSize
    - PyMem_Malloc
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: char
    signature: 'char *const *

      _PySequence_BytesToCharpArray(PyObject* self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/abstract.c:2693,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/abstract.c:2695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2688
    functionDepth: 1
    functionLinenumber: 2688
    functionLinenumberEnd: 2696
    functionName: _Py_FreeCharPArray
    functionSourceFile: /src/Python-3.8.3/Objects/abstract.c
    functionUses: 2
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void _Py_FreeCharPArray(char *const array[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:23,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:24,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - exc_state
    - visit
    - arg
    argTypes:
    - _PyErr_StackItem*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: exc_state_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int exc_state_traverse(_PyErr_StackItem *exc_state, visitproc visit,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:32,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:33,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:34,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:35,1
    - Dst: exc_state_traverse
      Src: /src/Python-3.8.3/Objects/genobject.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - gen
    - visit
    - arg
    argTypes:
    - PyGenObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: gen_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - exc_state_traverse
    linkageType: ''
    returnType: int
    signature: int gen_traverse(PyGenObject *gen, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:53,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/genobject.c:58,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/genobject.c:60,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/genobject.c:63,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:65,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/genobject.c:68,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/genobject.c:74,1
    - Dst: _PyErr_WarnUnawaitedCoroutine
      Src: /src/Python-3.8.3/Objects/genobject.c:82,1
    - Dst: gen_close
      Src: /src/Python-3.8.3/Objects/genobject.c:85,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/genobject.c:89,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/genobject.c:90,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:94,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/genobject.c:98,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 99
    functionName: _PyGen_Finalize
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_Fetch
    - PyErr_WriteUnraisable
    - _PyErr_WarnUnawaitedCoroutine
    - PyObject_CallFunctionObjArgs
    - gen_close
    - PyAsyncGen_CheckExact
    - PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void _PyGen_Finalize(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:111,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:112,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - exc_state
    argTypes:
    - _PyErr_StackItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: exc_state_clear
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void exc_state_clear(_PyErr_StackItem *exc_state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:121,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/genobject.c:124,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:126,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Objects/genobject.c:128,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:131,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:132,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:136,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:140,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:143,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:145,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:146,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:147,1
    - Dst: exc_state_clear
      Src: /src/Python-3.8.3/Objects/genobject.c:148,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 150
    functionName: gen_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - exc_state_clear
    - PyObject_CallFinalizerFromDealloc
    - PyObject_GC_Del
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyObject_GC_TRACK
    - PyAsyncGen_CheckExact
    linkageType: ''
    returnType: void
    signature: void gen_dealloc(PyGenObject *gen)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/genobject.c:155,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:161,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:164,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:167,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:175,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:182,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:183,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:186,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:196,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:203,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:209,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:215,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:216,1
    - Dst: PyEval_EvalFrameEx
      Src: /src/Python-3.8.3/Objects/genobject.c:222,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:230,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:231,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:238,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:239,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:242,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:247,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:247,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/Python-3.8.3/Objects/genobject.c:248,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:250,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:252,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:254,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:257,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Objects/genobject.c:260,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:263,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:264,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Objects/genobject.c:270,1
    - Dst: exc_state_clear
      Src: /src/Python-3.8.3/Objects/genobject.c:276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:279,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 4
    argNames:
    - gen
    - arg
    - exc
    - closing
    argTypes:
    - PyGenObject*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (f->f_back == tstate->frame)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - condition: (f->f_back == NULL)
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - condition: (!PyAsyncGen_CheckExact(gen))
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 283
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 283
    functionName: gen_send_ex
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyEval_EvalFrameEx
    - _PyErr_FormatFromCause
    - exc_state_clear
    - PyCoro_CheckExact
    - Py_CLEAR
    - Py_DECREF
    - PyErr_SetNone
    - Py_INCREF
    - _PyThreadState_GET
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyAsyncGen_CheckExact
    - assert
    - Py_XINCREF
    - _PyGen_SetStopIterationValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_send_ex(PyGenObject *gen, PyObject *arg, int exc, int closing)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - gen
    - arg
    argTypes:
    - PyGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: _PyGen_Send
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGen_Send(PyGenObject *gen, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/genobject.c:307,1
    - Dst: PyGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:309,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:309,1
    - Dst: gen_close
      Src: /src/Python-3.8.3/Objects/genobject.c:310,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/genobject.c:316,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/genobject.c:317,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/genobject.c:320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:321,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - yf
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 328
    functionName: gen_close_iter
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyCoro_CheckExact
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_WriteUnraisable
    - gen_close
    - PyGen_CheckExact
    - Py_XDECREF
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: int
    signature: int gen_close_iter(PyObject *yf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/genobject.c:338,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:344,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts:
    - condition: (code[0] != YIELD_FROM)
      pos:
        line_end: 343
        line_start: 343
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 355
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 355
    functionName: _PyGen_yf
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyBytes_AS_STRING
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyGen_yf(PyGenObject *gen)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/Python-3.8.3/Objects/genobject.c:361,1
    - Dst: gen_close_iter
      Src: /src/Python-3.8.3/Objects/genobject.c:366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:368,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:371,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:372,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:375,1
    - Dst: PyAsyncGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:377,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:380,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:381,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:384,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:385,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/genobject.c:386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - gen
    - args
    argTypes:
    - PyGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 390
    functionName: gen_close
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyGen_yf
    - PyCoro_CheckExact
    - gen_send_ex
    - Py_DECREF
    - PyErr_SetNone
    - gen_close_iter
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyAsyncGen_CheckExact
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_close(PyGenObject *gen, PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/Python-3.8.3/Objects/genobject.c:401,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/genobject.c:402,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:407,1
    - Dst: gen_close_iter
      Src: /src/Python-3.8.3/Objects/genobject.c:415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:417,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:419,1
    - Dst: PyGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:422,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:422,1
    - Dst: _gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:427,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/genobject.c:433,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:438,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/genobject.c:442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:446,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:452,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:454,1
    - Dst: _PyGen_FetchStopIterationValue
      Src: /src/Python-3.8.3/Objects/genobject.c:456,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:458,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:460,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:472,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:473,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:478,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:479,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:480,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:482,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Objects/genobject.c:483,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:485,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:488,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:494,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Objects/genobject.c:496,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:497,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Objects/genobject.c:501,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/genobject.c:506,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/genobject.c:509,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/genobject.c:513,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:518,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:519,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:520,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 88
    argCount: 5
    argNames:
    - gen
    - close_on_genexit
    - typ
    - val
    - tb
    argTypes:
    - PyGenObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (ret == yf)
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - condition: (gen->gi_frame->f_lasti >= 0)
      pos:
        line_end: 453
        line_start: 453
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 522
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 522
    functionName: _gen_throw
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - PyExceptionInstance_Check
    - _PyGen_yf
    - PyExceptionClass_Check
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - gen_close_iter
    - PyException_GetTraceback
    - PyExceptionInstance_Class
    - Py_INCREF
    - _gen_throw
    - PyErr_Format
    - assert
    - Py_XDECREF
    - Py_DECREF
    - gen_send_ex
    - _PyGen_FetchStopIterationValue
    - PyErr_GivenExceptionMatches
    - PyErr_NormalizeException
    - Py_TYPE
    - PyErr_Restore
    - PyCoro_CheckExact
    - PyTraceBack_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - PyGen_CheckExact
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_gen_throw(PyGenObject *gen, int close_on_genexit,\n           PyObject
      *typ, PyObject *val, PyObject *tb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/genobject.c:532,1
    - Dst: _gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gen
    - args
    argTypes:
    - PyGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 537
    functionName: gen_throw
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _gen_throw
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_throw(PyGenObject *gen, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: gen_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_iternext(PyGenObject *gen)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:558,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:558,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/genobject.c:561,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/genobject.c:573,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/genobject.c:577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:578,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 580
    functionName: _PyGen_SetStopIterationValue
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyExceptionInstance_Check
    - Py_DECREF
    - PyErr_SetObject
    - PyTuple_Check
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: int
    signature: int _PyGen_SetStopIterationValue(PyObject *value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:597,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/genobject.c:598,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/genobject.c:601,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:603,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:604,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:605,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Objects/genobject.c:617,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/genobject.c:618,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/genobject.c:619,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:624,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:627,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:628,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/genobject.c:629,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - pvalue
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 638
    functionName: _PyGen_FetchStopIterationValue
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyErr_Fetch
    - PyObject_TypeCheck
    - PyTuple_Check
    - PyErr_NormalizeException
    - PyErr_ExceptionMatches
    - PyErr_Restore
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _PyGen_FetchStopIterationValue(PyObject **pvalue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/genobject.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: gen_repr
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_repr(PyGenObject *gen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyGenObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 652
    functionName: gen_get_name
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_get_name(PyGenObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:659,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:660,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:664,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/genobject.c:665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyGenObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 667
    functionName: gen_set_name
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int gen_set_name(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyGenObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 674
    functionName: gen_get_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_get_qualname(PyGenObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:681,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:682,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:686,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/genobject.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyGenObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 689
    functionName: gen_set_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int gen_set_qualname(PyGenObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/Python-3.8.3/Objects/genobject.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - gen
    - Py_UNUSED(ignored)
    argTypes:
    - PyGenObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 698
    functionName: gen_getyieldfrom
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_yf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      gen_getyieldfrom(PyGenObject *gen, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/genobject.c:781,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:783,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:788,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:800,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:805,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 4
    argNames:
    - type
    - f
    - name
    - qualname
    argTypes:
    - PyTypeObject*
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 808
    functionName: gen_new_with_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ngen_new_with_qualname(PyTypeObject *type, PyFrameObject
      *f,\n                      PyObject *name, PyObject *qualname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/Python-3.8.3/Objects/genobject.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: PyGen_NewWithQualName
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_new_with_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyGen_NewWithQualName(PyFrameObject *f, PyObject *name, PyObject *qualname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/Python-3.8.3/Objects/genobject.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: PyGen_New
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_new_with_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyGen_New(PyFrameObject *f)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - gen
    argTypes:
    - PyGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 836
    functionName: PyGen_NeedsFinalizing
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyGen_NeedsFinalizing(PyGenObject *gen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyGen_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 855
    functionName: gen_is_coroutine
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyGen_CheckExact
    linkageType: ''
    returnType: int
    signature: int gen_is_coroutine(PyObject *o)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:871,1
    - Dst: gen_is_coroutine
      Src: /src/Python-3.8.3/Objects/genobject.c:871,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:873,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/genobject.c:877,1
    - Dst: PyCoro_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:884,1
    - Dst: gen_is_coroutine
      Src: /src/Python-3.8.3/Objects/genobject.c:884,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:887,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:889,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Objects/genobject.c:890,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/genobject.c:891,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/genobject.c:894,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:895,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/genobject.c:901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 905
    functionName: _PyCoro_GetAwaitableIter
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyIter_Check
    - PyCoro_CheckExact
    - Py_CLEAR
    - Py_INCREF
    - Py_TYPE
    - gen_is_coroutine
    - PyErr_SetString
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCoro_GetAwaitableIter(PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/genobject.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyCoroObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 912
    functionName: coro_repr
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_repr(PyCoroObject *coro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/genobject.c:917,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:921,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyCoroObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 925
    functionName: coro_await
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_await(PyCoroObject *coro)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyGen_yf
      Src: /src/Python-3.8.3/Objects/genobject.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - coro
    - Py_UNUSED(ignored)
    argTypes:
    - PyCoroObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: coro_get_cr_await
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyGen_yf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_get_cr_await(PyCoroObject *coro, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1033,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1034,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cw
    argTypes:
    - PyCoroWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1036
    functionName: coro_wrapper_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void coro_wrapper_dealloc(PyCoroWrapper *cw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cw
    argTypes:
    - PyCoroWrapper*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 3
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: coro_wrapper_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_iternext(PyCoroWrapper *cw)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cw
    - arg
    argTypes:
    - PyCoroWrapper*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 3
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: coro_wrapper_send
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_send_ex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_send(PyCoroWrapper *cw, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cw
    - args
    argTypes:
    - PyCoroWrapper*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 6
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: coro_wrapper_throw
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_throw
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_throw(PyCoroWrapper *cw, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_close
      Src: /src/Python-3.8.3/Objects/genobject.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cw
    - args
    argTypes:
    - PyCoroWrapper*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1060
    functionName: coro_wrapper_close
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      coro_wrapper_close(PyCoroWrapper *cw, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cw
    - visit
    - arg
    argTypes:
    - PyCoroWrapper*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1067
    functionName: coro_wrapper_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int coro_wrapper_traverse(PyCoroWrapper *cw, visitproc visit, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetFrame
      Src: /src/Python-3.8.3/Objects/genobject.c:1121,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/genobject.c:1129,1
    - Dst: PyEval_GetFrame
      Src: /src/Python-3.8.3/Objects/genobject.c:1133,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/genobject.c:1135,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Objects/genobject.c:1138,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1141,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/genobject.c:1144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - origin_depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1149
    functionName: compute_cr_origin
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyEval_GetFrame
    - PyFrame_GetLineNumber
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      compute_cr_origin(int origin_depth)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/Python-3.8.3/Objects/genobject.c:1154,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/genobject.c:1159,1
    - Dst: compute_cr_origin
      Src: /src/Python-3.8.3/Objects/genobject.c:1165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1174
    functionName: PyCoro_New
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - gen_new_with_qualname
    - Py_DECREF
    - compute_cr_origin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCoro_New(PyFrameObject *f, PyObject *name, PyObject *qualname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1235
    functionName: _PyAsyncGenWrappedValue_CheckExact
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyAsyncGenWrappedValue_CheckExact(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1238
    functionName: PyAsyncGenASend_CheckExact
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAsyncGenASend_CheckExact(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1243,1
    - Dst: gen_traverse
      Src: /src/Python-3.8.3/Objects/genobject.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - gen
    - visit
    - arg
    argTypes:
    - PyAsyncGenObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1245
    functionName: async_gen_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - gen_traverse
    linkageType: ''
    returnType: int
    signature: int async_gen_traverse(PyAsyncGenObject *gen, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/genobject.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1253
    functionName: async_gen_repr
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_repr(PyAsyncGenObject *o)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/genobject.c:1269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1273,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1281,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/genobject.c:1282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1287,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1291
    functionName: async_gen_init_hooks
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int async_gen_init_hooks(PyAsyncGenObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/Python-3.8.3/Objects/genobject.c:1297,1
    - Dst: async_gen_asend_new
      Src: /src/Python-3.8.3/Objects/genobject.c:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1301
    functionName: async_gen_anext
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_anext(PyAsyncGenObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/Python-3.8.3/Objects/genobject.c:1307,1
    - Dst: async_gen_asend_new
      Src: /src/Python-3.8.3/Objects/genobject.c:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - o
    - arg
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1311
    functionName: async_gen_asend
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend(PyAsyncGenObject *o, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/Python-3.8.3/Objects/genobject.c:1317,1
    - Dst: async_gen_athrow_new
      Src: /src/Python-3.8.3/Objects/genobject.c:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - o
    - arg
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1321
    functionName: async_gen_aclose
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_aclose(PyAsyncGenObject *o, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_init_hooks
      Src: /src/Python-3.8.3/Objects/genobject.c:1326,1
    - Dst: async_gen_athrow_new
      Src: /src/Python-3.8.3/Objects/genobject.c:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1330
    functionName: async_gen_athrow
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_new
    - async_gen_init_hooks
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow(PyAsyncGenObject *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gen_new_with_qualname
      Src: /src/Python-3.8.3/Objects/genobject.c:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - f
    - name
    - qualname
    argTypes:
    - PyFrameObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1428
    functionDepth: 2
    functionLinenumber: 1428
    functionLinenumberEnd: 1442
    functionName: PyAsyncGen_New
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_new_with_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyAsyncGen_New(PyFrameObject *f, PyObject *name, PyObject *qualname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1453,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1453,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1454,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1460,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/genobject.c:1460,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_PyAsyncGenWrappedValue_CheckExact(o))
      pos:
        line_end: 1452
        line_start: 1452
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - condition: (Py_TYPE(o) == &_PyAsyncGenASend_Type)
      pos:
        line_end: 1459
        line_start: 1459
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1465
      start: 1445
    functionDepth: 3
    functionLinenumber: 1445
    functionLinenumberEnd: 1465
    functionName: PyAsyncGen_ClearFreeLists
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 1
    functionsReached:
    - _PyAsyncGenWrappedValue_CheckExact
    - assert
    - Py_TYPE
    - PyObject_GC_Del
    linkageType: ''
    returnType: int
    signature: int PyAsyncGen_ClearFreeLists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyAsyncGen_ClearFreeLists
      Src: /src/Python-3.8.3/Objects/genobject.c:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1467
    functionDepth: 4
    functionLinenumber: 1467
    functionLinenumberEnd: 1471
    functionName: PyAsyncGen_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyAsyncGen_ClearFreeLists
    linkageType: ''
    returnType: void
    signature: void PyAsyncGen_Fini(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/genobject.c:1478,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:1479,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1482,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1483,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1492,1
    - Dst: _PyGen_SetStopIterationValue
      Src: /src/Python-3.8.3/Objects/genobject.c:1494,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - gen
    - result
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1474
    functionDepth: 2
    functionLinenumber: 1474
    functionLinenumberEnd: 1501
    functionName: async_gen_unwrap_value
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetNone
    - PyErr_ExceptionMatches
    - _PyAsyncGenWrappedValue_CheckExact
    - _PyGen_SetStopIterationValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_unwrap_value(PyAsyncGenObject *gen, PyObject *result)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1510,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1511,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1512,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1514,1
    - Dst: PyAsyncGenASend_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1514,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenASend*
    assertStmts:
    - condition: (PyAsyncGenASend_CheckExact(o))
      pos:
        line_end: 1513
        line_start: 1513
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1519
      start: 1507
    functionDepth: 3
    functionLinenumber: 1507
    functionLinenumberEnd: 1519
    functionName: async_gen_asend_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - PyAsyncGenASend_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void async_gen_asend_dealloc(PyAsyncGenASend *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1524,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyAsyncGenASend*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    functionName: async_gen_asend_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int async_gen_asend_traverse(PyAsyncGenASend *o, visitproc visit, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1536,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1544,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:1557,1
    - Dst: async_gen_unwrap_value
      Src: /src/Python-3.8.3/Objects/genobject.c:1558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - o
    - arg
    argTypes:
    - PyAsyncGenASend*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1530
    functionDepth: 3
    functionLinenumber: 1530
    functionLinenumberEnd: 1565
    functionName: async_gen_asend_send
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_unwrap_value
    - gen_send_ex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_send(PyAsyncGenASend *o, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_asend_send
      Src: /src/Python-3.8.3/Objects/genobject.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenASend*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1568
    functionDepth: 4
    functionLinenumber: 1568
    functionLinenumberEnd: 1572
    functionName: async_gen_asend_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_asend_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_iternext(PyAsyncGenASend *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1581,1
    - Dst: gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:1587,1
    - Dst: async_gen_unwrap_value
      Src: /src/Python-3.8.3/Objects/genobject.c:1588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyAsyncGenASend*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1575
    functionDepth: 6
    functionLinenumber: 1575
    functionLinenumberEnd: 1595
    functionName: async_gen_asend_throw
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_throw
    - async_gen_unwrap_value
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_throw(PyAsyncGenASend *o, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyAsyncGenASend*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1603
    functionName: async_gen_asend_close
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_close(PyAsyncGenASend *o, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/genobject.c:1671,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/genobject.c:1673,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1679,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1682,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - gen
    - sendval
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1689
    functionName: async_gen_asend_new
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - Py_INCREF
    - _Py_NewReference
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_asend_new(PyAsyncGenObject *gen, PyObject *sendval)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1698,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1699,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1701,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1701,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - _PyAsyncGenWrappedValue*
    assertStmts:
    - condition: (_PyAsyncGenWrappedValue_CheckExact(o))
      pos:
        line_end: 1700
        line_start: 1700
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1706
      start: 1695
    functionDepth: 3
    functionLinenumber: 1695
    functionLinenumberEnd: 1706
    functionName: async_gen_wrapped_val_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - _PyAsyncGenWrappedValue_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void async_gen_wrapped_val_dealloc(_PyAsyncGenWrappedValue *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - _PyAsyncGenWrappedValue*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1715
    functionName: async_gen_wrapped_val_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int async_gen_wrapped_val_traverse(_PyAsyncGenWrappedValue *o,\n                               visitproc
      visit, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1765,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1770,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1770,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/genobject.c:1771,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/genobject.c:1773,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1780,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - val
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (val)
      pos:
        line_end: 1764
        line_start: 1764
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - condition: (_PyAsyncGenWrappedValue_CheckExact(o))
      pos:
        line_end: 1769
        line_start: 1769
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1783
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1783
    functionName: _PyAsyncGenValueWrapperNew
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_NewReference
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _PyAsyncGenWrappedValue_CheckExact
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAsyncGenValueWrapperNew(PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:1792,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1793,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/genobject.c:1794,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/genobject.c:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenAThrow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1789
    functionDepth: 3
    functionLinenumber: 1789
    functionLinenumberEnd: 1796
    functionName: async_gen_athrow_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void async_gen_athrow_dealloc(PyAsyncGenAThrow *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1802,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/genobject.c:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyAsyncGenAThrow*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1805
    functionName: async_gen_athrow_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int async_gen_athrow_traverse(PyAsyncGenAThrow *o, visitproc visit,
      void *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1816,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:1824,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1832,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1837,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:1846,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1851,1
    - Dst: _gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:1862,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1868,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/genobject.c:1876,1
    - Dst: _gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:1881,1
    - Dst: async_gen_unwrap_value
      Src: /src/Python-3.8.3/Objects/genobject.c:1885,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/genobject.c:1893,1
    - Dst: gen_send_ex
      Src: /src/Python-3.8.3/Objects/genobject.c:1895,1
    - Dst: async_gen_unwrap_value
      Src: /src/Python-3.8.3/Objects/genobject.c:1897,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1902,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1917,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1924,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1925,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/genobject.c:1933,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:1934,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 2
    argNames:
    - o
    - arg
    argTypes:
    - PyAsyncGenAThrow*
    - PyObject*
    assertStmts:
    - condition: (o->agt_state == AWAITABLE_STATE_ITER)
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/Python-3.8.3/Objects/genobject.c
    constantsTouched: []
    func_position:
      end: 1938
      start: 1808
    functionDepth: 5
    functionLinenumber: 1808
    functionLinenumberEnd: 1938
    functionName: async_gen_athrow_send
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - gen_send_ex
    - PyErr_SetNone
    - _gen_throw
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyArg_UnpackTuple
    - _PyAsyncGenWrappedValue_CheckExact
    - assert
    - PyErr_Clear
    - async_gen_unwrap_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_send(PyAsyncGenAThrow *o, PyObject *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1947,1
    - Dst: gen_throw
      Src: /src/Python-3.8.3/Objects/genobject.c:1953,1
    - Dst: async_gen_unwrap_value
      Src: /src/Python-3.8.3/Objects/genobject.c:1955,1
    - Dst: _PyAsyncGenWrappedValue_CheckExact
      Src: /src/Python-3.8.3/Objects/genobject.c:1958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/genobject.c:1961,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/genobject.c:1962,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1965,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/genobject.c:1966,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/genobject.c:1973,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/genobject.c:1974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyAsyncGenAThrow*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1941
    functionDepth: 6
    functionLinenumber: 1941
    functionLinenumberEnd: 1978
    functionName: async_gen_athrow_throw
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - gen_throw
    - Py_DECREF
    - PyErr_SetNone
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _PyAsyncGenWrappedValue_CheckExact
    - PyErr_Clear
    - async_gen_unwrap_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_throw(PyAsyncGenAThrow *o, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: async_gen_athrow_send
      Src: /src/Python-3.8.3/Objects/genobject.c:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyAsyncGenAThrow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1981
    functionDepth: 6
    functionLinenumber: 1981
    functionLinenumberEnd: 1985
    functionName: async_gen_athrow_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached:
    - async_gen_athrow_send
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_iternext(PyAsyncGenAThrow *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyAsyncGenAThrow*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1988
    functionDepth: 0
    functionLinenumber: 1988
    functionLinenumberEnd: 1993
    functionName: async_gen_athrow_close
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_close(PyAsyncGenAThrow *o, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/genobject.c:2058,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:2065,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/genobject.c:2066,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/genobject.c:2067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - gen
    - args
    argTypes:
    - PyAsyncGenObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2069
    functionName: async_gen_athrow_new
    functionSourceFile: /src/Python-3.8.3/Objects/genobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    - Py_XINCREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      async_gen_athrow_new(PyAsyncGenObject *gen, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_FastToLocalsWithError
      Src: /src/Python-3.8.3/Objects/frameobject.c:28,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - f
    - closure
    argTypes:
    - PyFrameObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: frame_getlocals
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrame_FastToLocalsWithError
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getlocals(PyFrameObject *f, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Addr2Line
      Src: /src/Python-3.8.3/Objects/frameobject.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: PyFrame_GetLineNumber
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 2
    functionsReached:
    - PyCode_Addr2Line
    linkageType: ''
    returnType: int
    signature: int PyFrame_GetLineNumber(PyFrameObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/frameobject.c:46,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Objects/frameobject.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - closure
    argTypes:
    - PyFrameObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: frame_getlineno
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFrame_GetLineNumber
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_getlineno(PyFrameObject *f, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Objects/frameobject.c:56,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Objects/frameobject.c:57,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Objects/frameobject.c:58,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Objects/frameobject.c:59,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Objects/frameobject.c:60,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Objects/frameobject.c:61,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Objects/frameobject.c:62,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - codestr
    - i
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: get_arg
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _Py_OPARG
    - _Py_OPCODE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - f
    - closure
    argTypes:
    - PyFrameObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: frame_gettrace
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_gettrace(PyFrameObject *f, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Objects/frameobject.c:351,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:355,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - f
    - v
    - closure
    argTypes:
    - PyFrameObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: frame_settrace
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyFrame_GetLineNumber
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int frame_settrace(PyFrameObject *f, PyObject* v, void *closure)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/frameobject.c:423,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/frameobject.c:424,1
    - Dst: Py_TRASHCAN_SAFE_BEGIN
      Src: /src/Python-3.8.3/Objects/frameobject.c:426,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:430,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:435,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:440,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:441,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:442,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/frameobject.c:453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:455,1
    - Dst: Py_TRASHCAN_SAFE_END
      Src: /src/Python-3.8.3/Objects/frameobject.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 457
    functionName: _Py_HOT_FUNCTION::frame_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_CLEAR
    - Py_DECREF
    - Py_TRASHCAN_SAFE_BEGIN
    - Py_TRASHCAN_SAFE_END
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_IS_TRACKED
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: 'void _Py_HOT_FUNCTION

      frame_dealloc(PyFrameObject *f)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:465,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:466,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:467,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:468,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:469,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:470,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:473,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:473,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:476,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/frameobject.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - f
    - visit
    - arg
    argTypes:
    - PyFrameObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 484
    functionName: frame_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int frame_traverse(PyFrameObject *f, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:501,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:504,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:504,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:507,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/frameobject.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 515
    functionName: frame_tp_clear
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int frame_tp_clear(PyFrameObject *f)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/frameobject.c:521,1
    - Dst: _PyGen_Finalize
      Src: /src/Python-3.8.3/Objects/frameobject.c:526,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:527,1
    - Dst: frame_tp_clear
      Src: /src/Python-3.8.3/Objects/frameobject.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - f
    - Py_UNUSED(ignored)
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts:
    - condition: (f->f_gen == NULL)
      pos:
        line_end: 526
        line_start: 526
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 531
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 531
    functionName: frame_clear
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyGen_Finalize
    - PyErr_SetString
    - frame_tp_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_clear(PyFrameObject *f, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:541,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:542,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/frameobject.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - f
    - Py_UNUSED(ignored)
    argTypes:
    - PyFrameObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 549
    functionName: frame_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_sizeof(PyFrameObject *f, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Objects/frameobject.c:557,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/frameobject.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 561
    functionName: frame_repr
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrame_GetLineNumber
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frame_repr(PyFrameObject *f)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFrame_New_NoTrack
      Src: /src/Python-3.8.3/Objects/frameobject.c:741,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/frameobject.c:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - tstate
    - code
    - globals
    - locals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 745
    functionName: PyFrame_New
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - _PyFrame_New_NoTrack
    linkageType: ''
    returnType: PyFrameObject
    signature: "PyFrameObject *\nPyFrame_New(PyThreadState *tstate, PyCodeObject *code,\n
      \           PyObject *globals, PyObject *locals)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/frameobject.c:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - f
    - type
    - handler
    - level
    argTypes:
    - PyFrameObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 760
    functionName: PyFrame_BlockSetup
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void PyFrame_BlockSetup(PyFrameObject *f, int type, int handler, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/frameobject.c:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 770
    functionName: PyFrame_BlockPop
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: PyTryBlock
    signature: 'PyTryBlock *

      PyFrame_BlockPop(PyFrameObject *f)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:790,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:790,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:791,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:791,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:792,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Objects/frameobject.c:792,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/frameobject.c:794,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:796,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:796,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:798,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:798,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/frameobject.c:799,1
    - Dst: PyObject_DelItem
      Src: /src/Python-3.8.3/Objects/frameobject.c:802,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/frameobject.c:803,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/frameobject.c:804,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/frameobject.c:810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - map
    - nmap
    - dict
    - values
    - deref
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject**
    - int
    assertStmts:
    - condition: (PyTuple_Check(map))
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 790
        line_start: 790
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyTuple_Size(map) >= nmap)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyUnicode_Check(key))
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyCell_Check(value))
      pos:
        line_end: 797
        line_start: 797
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 815
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 815
    functionName: map_to_dict
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GET
    - PyErr_Clear
    - PyDict_Check
    - PyTuple_Check
    - PyObject_DelItem
    - PyErr_ExceptionMatches
    - PyTuple_Size
    - PyUnicode_Check
    - assert
    - PyCell_Check
    - PyTuple_GET_ITEM
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: "int map_to_dict(PyObject *map, Py_ssize_t nmap, PyObject *dict, PyObject
      **values,\n            int deref)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:843,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:843,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:844,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:844,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:845,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Objects/frameobject.c:845,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/frameobject.c:847,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/frameobject.c:848,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:849,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:849,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/frameobject.c:852,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:857,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:857,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/frameobject.c:858,1
    - Dst: PyCell_Set
      Src: /src/Python-3.8.3/Objects/frameobject.c:859,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/frameobject.c:860,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:863,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:864,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/frameobject.c:866,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 6
    argNames:
    - map
    - nmap
    - dict
    - values
    - deref
    - clear
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject**
    - int
    - int
    assertStmts:
    - condition: (PyUnicode_Check(key))
      pos:
        line_end: 848
        line_start: 848
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 843
        line_start: 843
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyTuple_Size(map) >= nmap)
      pos:
        line_end: 844
        line_start: 844
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyTuple_Check(map))
      pos:
        line_end: 842
        line_start: 842
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    - condition: (PyCell_Check(values[j]))
      pos:
        line_end: 856
        line_start: 856
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 868
      start: 838
    functionDepth: 4
    functionLinenumber: 838
    functionLinenumberEnd: 868
    functionName: dict_to_map
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyCell_GET
    - Py_XSETREF
    - Py_XDECREF
    - PyDict_Check
    - PyObject_GetItem
    - PyTuple_Check
    - PyTuple_Size
    - PyCell_Set
    - PyUnicode_Check
    - assert
    - PyCell_Check
    - PyTuple_GET_ITEM
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: "void dict_to_map(PyObject *map, Py_ssize_t nmap, PyObject *dict, PyObject
      **values,\n            int deref, int clear)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/frameobject.c:881,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/frameobject.c:886,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:892,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/frameobject.c:893,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/frameobject.c:895,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:899,1
    - Dst: map_to_dict
      Src: /src/Python-3.8.3/Objects/frameobject.c:903,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:906,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:907,1
    - Dst: map_to_dict
      Src: /src/Python-3.8.3/Objects/frameobject.c:909,1
    - Dst: map_to_dict
      Src: /src/Python-3.8.3/Objects/frameobject.c:922,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 928
    functionName: PyFrame_FastToLocalsWithError
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - map_to_dict
    - PyDict_New
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int PyFrame_FastToLocalsWithError(PyFrameObject *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:935,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/frameobject.c:935,1
    - Dst: PyFrame_FastToLocalsWithError
      Src: /src/Python-3.8.3/Objects/frameobject.c:937,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/frameobject.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 940
      start: 930
    functionDepth: 5
    functionLinenumber: 930
    functionLinenumberEnd: 940
    functionName: PyFrame_FastToLocals
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Clear
    - PyErr_Occurred
    - PyFrame_FastToLocalsWithError
    linkageType: ''
    returnType: void
    signature: void PyFrame_FastToLocals(PyFrameObject *f)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/frameobject.c:959,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/frameobject.c:961,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:963,1
    - Dst: dict_to_map
      Src: /src/Python-3.8.3/Objects/frameobject.c:967,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:968,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/frameobject.c:969,1
    - Dst: dict_to_map
      Src: /src/Python-3.8.3/Objects/frameobject.c:971,1
    - Dst: dict_to_map
      Src: /src/Python-3.8.3/Objects/frameobject.c:975,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/frameobject.c:980,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - f
    - clear
    argTypes:
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 942
    functionDepth: 5
    functionLinenumber: 942
    functionLinenumberEnd: 981
    functionName: PyFrame_LocalsToFast
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Fetch
    - PyTuple_Check
    - PyErr_Restore
    - dict_to_map
    linkageType: ''
    returnType: void
    signature: void PyFrame_LocalsToFast(PyFrameObject *f, int clear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/frameobject.c:992,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/frameobject.c:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (numfree == 0)
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/Python-3.8.3/Objects/frameobject.c
    constantsTouched: []
    func_position:
      end: 997
      start: 984
    functionDepth: 3
    functionLinenumber: 984
    functionLinenumberEnd: 997
    functionName: PyFrame_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    - assert
    linkageType: ''
    returnType: int
    signature: int PyFrame_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_ClearFreeList
      Src: /src/Python-3.8.3/Objects/frameobject.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1003
    functionName: PyFrame_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 0
    functionsReached:
    - PyFrame_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyFrame_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/frameobject.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1012
    functionName: _PyFrame_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/frameobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyFrame_DebugMallocStats(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: PyFloat_GetMax
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyFloat_GetMax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: PyFloat_GetMin
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyFloat_GetMin(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Objects/floatobject.c:83,1
    - Dst: SetDblFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:93,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:94,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:95,1
    - Dst: SetDblFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:96,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:97,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:98,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:99,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:100,1
    - Dst: SetDblFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:101,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:102,1
    - Dst: SetIntFlag
      Src: /src/Python-3.8.3/Objects/floatobject.c:103,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:107,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/floatobject.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 112
    functionName: PyFloat_GetInfo
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - PyStructSequence_New
    - SetDblFlag
    - SetIntFlag
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_GetInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: SetIntFlag
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetIntFlag(flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: SetDblFlag
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDblFlag(flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:119,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/floatobject.c:122,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/floatobject.c:124,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fval
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: PyFloat_FromDouble
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 62
    functionsReached:
    - PyObject_INIT
    - PyErr_NoMemory
    - Py_TYPE
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromDouble(double fval)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/floatobject.c:139,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/floatobject.c:143,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Objects/floatobject.c:150,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/floatobject.c:152,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:157,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:161,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - s
    - len
    - obj
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 163
    functionName: float_from_string_inner
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    - PyErr_Occurred
    - PyOS_string_to_double
    - PyErr_Format
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_from_string_inner(const char *s, Py_ssize_t len, void *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:174,1
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/Python-3.8.3/Objects/floatobject.c:175,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:178,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/floatobject.c:178,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/floatobject.c:180,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:181,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:183,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/floatobject.c:184,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/floatobject.c:185,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:187,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/floatobject.c:188,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/floatobject.c:189,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/floatobject.c:191,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/floatobject.c:195,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/floatobject.c:197,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/floatobject.c:200,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/floatobject.c:203,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:205,1
    - Dst: _Py_string_to_number_with_underscores
      Src: /src/Python-3.8.3/Objects/floatobject.c:208,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/floatobject.c:210,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(s_buffer))
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (s != NULL)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 213
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 213
    functionName: PyFloat_FromString
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 4
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_XDECREF
    - _Py_string_to_number_with_underscores
    - PyByteArray_Check
    - PyUnicode_AsUTF8AndSize
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_IS_ASCII
    - PyByteArray_GET_SIZE
    - PyBytes_AS_STRING
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyUnicode_Check
    - assert
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyErr_Format
    - Py_TYPE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFloat_FromString(PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/floatobject.c:218,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/floatobject.c:220,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:224,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: float_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyFloat_CheckExact
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void float_dealloc(PyFloatObject *op)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/floatobject.c:239,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:243,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:244,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:247,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/floatobject.c:250,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:255,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/floatobject.c:258,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/floatobject.c:267,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:268,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/floatobject.c:269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:272,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/floatobject.c:275,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:280,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 288
    functionName: PyFloat_AsDouble
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 41
    functionsReached:
    - Py_DECREF
    - PyErr_WarnFormat
    - PyFloat_AS_DOUBLE
    - PyErr_BadArgument
    - PyLong_AsDouble
    - PyNumber_Index
    - Py_TYPE
    - PyErr_Format
    - PyFloat_CheckExact
    - PyFloat_Check
    linkageType: ''
    returnType: double
    signature: double PyFloat_AsDouble(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - dbl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: CONVERT_TO_DOUBLE
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONVERT_TO_DOUBLE(obj, dbl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:309,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:310,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:311,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - v
    - dbl
    argTypes:
    - PyObject**
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: convert_to_double
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_INCREF
    - PyLong_AsDouble
    linkageType: ''
    returnType: int
    signature: int convert_to_double(PyObject **v, double *dbl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/floatobject.c:330,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:330,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/floatobject.c:335,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Objects/floatobject.c:336,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/floatobject.c:336,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/floatobject.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 339
    functionName: float_repr
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromASCII
    - PyFloat_AS_DOUBLE
    - PyErr_NoMemory
    - PyOS_double_to_string
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_repr(PyFloatObject *v)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:362,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:362,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:363,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:368,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:369,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/floatobject.c:371,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:372,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:382,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/floatobject.c:384,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Objects/floatobject.c:398,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:399,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/floatobject.c:406,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:408,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:413,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:415,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:415,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:418,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:419,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:430,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:431,1
    - Dst: PyNumber_Negative
      Src: /src/Python-3.8.3/Objects/floatobject.c:457,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:462,1
    - Dst: modf
      Src: /src/Python-3.8.3/Objects/floatobject.c:464,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:465,1
    - Dst: _PyLong_Lshift
      Src: /src/Python-3.8.3/Objects/floatobject.c:475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:478,1
    - Dst: _PyLong_Lshift
      Src: /src/Python-3.8.3/Objects/floatobject.c:481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:484,1
    - Dst: PyNumber_Or
      Src: /src/Python-3.8.3/Objects/floatobject.c:487,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:490,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/floatobject.c:494,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/floatobject.c:497,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:499,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:500,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:509,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:530,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/floatobject.c:531,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 127
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (j != -1.0 || ! PyErr_Occurred())
      pos:
        line_end: 414
        line_start: 414
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (i > 0.0)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (wsign != 0)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (PyFloat_Check(v))
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (wsign != 0)
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (vsign != 0)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 535
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 535
    functionName: float_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - _PyLong_Sign
    - PyFPE_START_PROTECT
    - PyLong_FromDouble
    - PyBool_FromLong
    - frexp
    - PyFloat_Check
    - PyErr_Occurred
    - Py_INCREF
    - _PyLong_Lshift
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - PyFloat_AS_DOUBLE
    - PyNumber_Negative
    - modf
    - PyNumber_Or
    - PyLong_AsDouble
    - PyObject_RichCompareBool
    - _PyLong_NumBits
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: float_hash
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _Py_HashDouble
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t float_hash(PyFloatObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:547,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:548,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:549,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:551,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 553
    functionName: float_add
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    - PyFPE_START_PROTECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_add(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:559,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:560,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:561,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:563,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 565
    functionName: float_sub
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    - PyFPE_START_PROTECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_sub(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:571,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:572,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:573,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:575,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: float_mul
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    - PyFPE_START_PROTECT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_mul(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:583,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:584,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:586,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:590,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:592,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 594
    functionName: float_div
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - PyErr_SetString
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_div(PyObject *v, PyObject *w)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:601,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:602,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:604,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:608,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Objects/floatobject.c:609,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:620,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:622,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 624
    functionName: float_rem
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - copysign
    - fmod
    - PyErr_SetString
    - PyFloat_FromDouble
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_rem(PyObject *v, PyObject *w)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:631,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:632,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:634,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:637,1
    - Dst: fmod
      Src: /src/Python-3.8.3/Objects/floatobject.c:638,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:657,1
    - Dst: floor
      Src: /src/Python-3.8.3/Objects/floatobject.c:661,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:667,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:669,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/floatobject.c:670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 671
    functionName: float_divmod
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - Py_BuildValue
    - PyFPE_START_PROTECT
    - copysign
    - fmod
    - floor
    - PyErr_SetString
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_divmod(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: float_divmod
      Src: /src/Python-3.8.3/Objects/floatobject.c:678,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:681,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/floatobject.c:681,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/floatobject.c:682,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(t))
      pos:
        line_end: 680
        line_start: 680
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 686
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 686
    functionName: float_floor_div
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - float_divmod
    - PyTuple_CheckExact
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_floor_div(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 691
    functionName: DOUBLE_IS_ODD_INTEGER
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOUBLE_IS_ODD_INTEGER(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:699,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:704,1
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:705,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:709,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/floatobject.c:711,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:712,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/floatobject.c:714,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:715,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:717,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:724,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:726,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:728,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:728,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:730,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:732,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/Python-3.8.3/Objects/floatobject.c:737,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:739,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:739,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:741,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:742,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/Python-3.8.3/Objects/floatobject.c:747,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:749,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:755,1
    - Dst: floor
      Src: /src/Python-3.8.3/Objects/floatobject.c:762,1
    - Dst: tp_as_number::nb_power
      Src: /src/Python-3.8.3/Objects/floatobject.c:766,1
    - Dst: DOUBLE_IS_ODD_INTEGER
      Src: /src/Python-3.8.3/Objects/floatobject.c:773,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:788,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:796,1
    - Dst: pow
      Src: /src/Python-3.8.3/Objects/floatobject.c:797,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:798,1
    - Dst: Py_ADJUST_ERANGE1
      Src: /src/Python-3.8.3/Objects/floatobject.c:799,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Objects/floatobject.c:807,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:811,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 812
    functionName: float_pow
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - pow
    - PyFPE_END_PROTECT
    - Py_IS_NAN
    - PyFPE_START_PROTECT
    - Py_IS_INFINITY
    - copysign
    - PyErr_SetFromErrno
    - fabs
    - floor
    - PyErr_SetString
    - Py_ADJUST_ERANGE1
    - DOUBLE_IS_ODD_INTEGER
    - PyFloat_FromDouble
    - tp_as_number::nb_power
    - CONVERT_TO_DOUBLE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_pow(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 820
    functionName: float_neg
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_neg(PyFloatObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:825,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 826
    functionName: float_abs
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - fabs
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_abs(PyFloatObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyFloatObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 832
    functionName: float_bool
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int float_bool(PyFloatObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:844,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:847,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/floatobject.c:849,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:852,1
    - Dst: floor
      Src: /src/Python-3.8.3/Objects/floatobject.c:853,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:854,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Objects/floatobject.c:856,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 840
    functionDepth: 3
    functionLinenumber: 840
    functionLinenumberEnd: 862
    functionName: float_is_integer_impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - PyFPE_START_PROTECT
    - Py_INCREF
    - PyErr_SetFromErrno
    - floor
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_is_integer_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:874,1
    - Dst: modf
      Src: /src/Python-3.8.3/Objects/floatobject.c:877,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/floatobject.c:892,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 895
    functionName: float___trunc___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFloat_AsDouble
    - PyLong_FromDouble
    - modf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___trunc___impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_dtoa
      Src: /src/Python-3.8.3/Objects/floatobject.c:918,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/floatobject.c:921,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/floatobject.c:930,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/floatobject.c:932,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/floatobject.c:937,1
    - Dst: _Py_dg_strtod
      Src: /src/Python-3.8.3/Objects/floatobject.c:943,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:945,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:946,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:949,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/floatobject.c:953,1
    - Dst: _Py_dg_freedtoa
      Src: /src/Python-3.8.3/Objects/floatobject.c:955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 957
    functionName: double_round
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _Py_dg_strtod
    - PyOS_snprintf
    - PyMem_Malloc
    - PyErr_NoMemory
    - _Py_dg_freedtoa
    - fabs
    - PyMem_Free
    - PyErr_SetString
    - _Py_dg_dtoa
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/Python-3.8.3/Objects/floatobject.c:971,1
    - Dst: pow
      Src: /src/Python-3.8.3/Objects/floatobject.c:975,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/floatobject.c:980,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:981,1
    - Dst: pow
      Src: /src/Python-3.8.3/Objects/floatobject.c:984,1
    - Dst: round
      Src: /src/Python-3.8.3/Objects/floatobject.c:989,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:990,1
    - Dst: round
      Src: /src/Python-3.8.3/Objects/floatobject.c:992,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1000,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1001,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - x
    - ndigits
    argTypes:
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 1007
    functionName: double_round
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - pow
    - fabs
    - PyErr_SetString
    - round
    - PyFloat_FromDouble
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      double_round(double x, int ndigits)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1031,1
    - Dst: round
      Src: /src/Python-3.8.3/Objects/floatobject.c:1035,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:1036,1
    - Dst: round
      Src: /src/Python-3.8.3/Objects/floatobject.c:1038,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1039,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/floatobject.c:1043,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/floatobject.c:1044,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1048,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1049,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1058,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1061,1
    - Dst: double_round
      Src: /src/Python-3.8.3/Objects/floatobject.c:1064,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - self
    - o_ndigits
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1024
    functionDepth: 3
    functionLinenumber: 1024
    functionLinenumberEnd: 1067
    functionName: float___round___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - double_round
    - PyFloat_AsDouble
    - PyErr_Occurred
    - PyLong_FromDouble
    - fabs
    - round
    - PyFloat_FromDouble
    - PyNumber_AsSsize_t
    - Py_IS_FINITE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___round___impl(PyObject *self, PyObject *o_ndigits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/floatobject.c:1072,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1073,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: float_float
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyFloat_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_float(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_float
      Src: /src/Python-3.8.3/Objects/floatobject.c:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1090
    functionName: float_conjugate_impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - float_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_conjugate_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts:
    - condition: (0 <= x && x < 16)
      pos:
        line_end: 1096
        line_start: 1096
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1099
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    functionName: char_from_hex
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char char_from_hex(int x)
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1164
    functionName: hex_from_char
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hex_from_char(char c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1193,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/floatobject.c:1195,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:1195,1
    - Dst: float_repr
      Src: /src/Python-3.8.3/Objects/floatobject.c:1196,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:1199,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1200,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1202,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1205,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/floatobject.c:1205,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/floatobject.c:1206,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1207,1
    - Dst: char_from_hex
      Src: /src/Python-3.8.3/Objects/floatobject.c:1211,1
    - Dst: char_from_hex
      Src: /src/Python-3.8.3/Objects/floatobject.c:1218,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/floatobject.c:1232,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/floatobject.c:1234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1235
    functionName: float_hex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - Py_MAX
    - char_from_hex
    - PyUnicode_FromFormat
    - float_repr
    - fabs
    - ldexp
    - CONVERT_TO_DOUBLE
    - frexp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_hex_impl(PyObject *self)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/floatobject.c:1310,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1320,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/Python-3.8.3/Objects/floatobject.c:1324,1
    - Dst: hex_from_char
      Src: /src/Python-3.8.3/Objects/floatobject.c:1350,1
    - Dst: hex_from_char
      Src: /src/Python-3.8.3/Objects/floatobject.c:1355,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/floatobject.c:1367,1
    - Dst: strtol
      Src: /src/Python-3.8.3/Objects/floatobject.c:1382,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1397,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1411,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/floatobject.c:1424,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1430,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1431,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1439,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1440,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1448,1
    - Dst: HEX_DIGIT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1452,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1459,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1465,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1469,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1473,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1475,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/floatobject.c:1475,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1480,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1485,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1490,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 137
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1254
    functionDepth: 2
    functionLinenumber: 1254
    functionLinenumberEnd: 1493
    functionName: float_fromhex
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    - hex_from_char
    - _Py_parse_inf_or_nan
    - strtol
    - HEX_DIGIT
    - Py_MAX
    - PyObject_CallFunctionObjArgs
    - ldexp
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyFloat_FromDouble
    - Py_MIN
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_fromhex(PyTypeObject *type, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1391
    functionName: HEX_DIGIT
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEX_DIGIT(j)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONVERT_TO_DOUBLE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1528,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:1530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1531,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/floatobject.c:1535,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1536,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1541,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1542,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/floatobject.c:1543,1
    - Dst: floor
      Src: /src/Python-3.8.3/Objects/floatobject.c:1545,1
    - Dst: PyLong_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1553,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/floatobject.c:1556,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/floatobject.c:1559,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/floatobject.c:1559,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1565,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/Python-3.8.3/Objects/floatobject.c:1566,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1571,1
    - Dst: PyNumberMethods*::nb_lshift
      Src: /src/Python-3.8.3/Objects/floatobject.c:1572,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/floatobject.c:1577,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1580,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1581,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1582,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1513
    functionDepth: 1
    functionLinenumber: 1513
    functionLinenumberEnd: 1584
    functionName: float_as_integer_ratio_impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFPE_END_PROTECT
    - PyNumberMethods*::nb_lshift
    - PyFPE_START_PROTECT
    - Py_IS_NAN
    - Py_IS_INFINITY
    - PyLong_FromDouble
    - PyTuple_Pack
    - floor
    - PyErr_SetString
    - Py_ABS
    - Py_XDECREF
    - Py_SETREF
    - CONVERT_TO_DOUBLE
    - frexp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: float_subtype_new
      Src: /src/Python-3.8.3/Objects/floatobject.c:1603,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/floatobject.c:1606,1
    - Dst: PyFloat_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1607,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Objects/floatobject.c:1608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - type
    - x
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1598
    functionDepth: 3
    functionLinenumber: 1598
    functionLinenumberEnd: 1609
    functionName: float_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - float_subtype_new
    - PyFloat_FromString
    - PyNumber_Float
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_new_impl(PyTypeObject *type, PyObject *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:1621,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/floatobject.c:1621,1
    - Dst: float_new_impl
      Src: /src/Python-3.8.3/Objects/floatobject.c:1622,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:1625,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/floatobject.c:1625,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/floatobject.c:1626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/floatobject.c:1632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - type
    - x
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyFloat_Type))
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (PyFloat_Check(tmp))
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 1634
      start: 1616
    functionDepth: 4
    functionLinenumber: 1616
    functionLinenumberEnd: 1634
    functionName: float_subtype_new
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - float_new_impl
    - PyType_IsSubtype
    - assert
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_subtype_new(PyTypeObject *type, PyObject *x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/floatobject.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1645
    functionName: float___getnewargs___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getnewargs___impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1679,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1682,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1686,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1694,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1696,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1698,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/floatobject.c:1700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - type
    - typestr
    argTypes:
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1703
    functionName: float___getformat___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - PyUnicode_FromString
    - strcmp
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getformat___impl(PyTypeObject *type, const char *typestr)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1734,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1738,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1743,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1749,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1752,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1755,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:1759,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/floatobject.c:1768,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - type
    - typestr
    - fmt
    argTypes:
    - PyTypeObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1776
    functionName: float___set_format___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfloat___set_format___impl(PyTypeObject *type, const char
      *typestr,\n                          const char *fmt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_float
      Src: /src/Python-3.8.3/Objects/floatobject.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1778
    functionDepth: 3
    functionLinenumber: 1778
    functionLinenumberEnd: 1782
    functionName: float_getreal
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - float_float
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getreal(PyObject *v, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/floatobject.c:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1784
    functionDepth: 2
    functionLinenumber: 1784
    functionLinenumberEnd: 1788
    functionName: float_getimag
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_getimag(PyObject *v, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/floatobject.c:1806,1
    - Dst: _PyFloat_FormatAdvancedWriter
      Src: /src/Python-3.8.3/Objects/floatobject.c:1807,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/floatobject.c:1810,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/floatobject.c:1812,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/floatobject.c:1815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1816
    functionName: float___format___impl
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - _PyFloat_FormatAdvancedWriter
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1944,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1946,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1958,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/floatobject.c:1960,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Objects/floatobject.c:1974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1979
    functionName: _PyFloat_Init
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - memcmp
    - PyStructSequence_InitType2
    linkageType: ''
    returnType: int
    signature: int _PyFloat_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1987,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/floatobject.c:1988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 1994
    functionName: PyFloat_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - Py_TYPE
    - PyObject_FREE
    linkageType: ''
    returnType: int
    signature: int PyFloat_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_ClearFreeList
      Src: /src/Python-3.8.3/Objects/floatobject.c:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1996
    functionDepth: 2
    functionLinenumber: 1996
    functionLinenumberEnd: 2000
    functionName: PyFloat_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyFloat_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/floatobject.c:2006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2003
    functionDepth: 2
    functionLinenumber: 2003
    functionLinenumberEnd: 2009
    functionName: _PyFloat_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyFloat_DebugMallocStats(FILE *out)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:2033,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:2037,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/floatobject.c:2042,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/floatobject.c:2048,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2058,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2060,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2079,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:2090,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:2091,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2122,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 3
    argNames:
    - x
    - p
    - le
    argTypes:
    - double
    - unsigned char*
    - int
    assertStmts:
    - condition: (bits < 1024)
      pos:
        line_end: 2089
        line_start: 2089
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (e < 31)
      pos:
        line_end: 2090
        line_start: 2090
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2125
      start: 2023
    functionDepth: 1
    functionLinenumber: 2023
    functionLinenumberEnd: 2125
    functionName: _PyFloat_Pack2
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - Py_IS_NAN
    - copysign
    - Py_IS_INFINITY
    - ldexp
    - PyErr_SetString
    - assert
    - frexp
    linkageType: ''
    returnType: int
    signature: int _PyFloat_Pack2(double x, unsigned char *p, int le)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2149,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2159,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2168,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:2178,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:2210,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/floatobject.c:2210,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/floatobject.c:2214,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2229,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 3
    argNames:
    - x
    - p
    - le
    argTypes:
    - double
    - unsigned char*
    - int
    assertStmts:
    - condition: (fbits <= 8388608)
      pos:
        line_end: 2177
        line_start: 2177
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2232
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2232
    functionName: _PyFloat_Pack4
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 4
    functionsReached:
    - memcpy
    - Py_IS_INFINITY
    - ldexp
    - PyErr_SetString
    - assert
    - frexp
    linkageType: ''
    returnType: int
    signature: int _PyFloat_Pack4(double x, unsigned char *p, int le)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2256,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2266,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2275,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:2286,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/floatobject.c:2291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2341,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 3
    argNames:
    - x
    - p
    - le
    argTypes:
    - double
    - unsigned char*
    - int
    assertStmts:
    - condition: (flo <= 16777216)
      pos:
        line_end: 2290
        line_start: 2290
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    - condition: (fhi < 268435456)
      pos:
        line_end: 2285
        line_start: 2285
        source_file: /src/Python-3.8.3/Objects/floatobject.c
    constantsTouched: []
    func_position:
      end: 2361
      start: 2234
    functionDepth: 1
    functionLinenumber: 2234
    functionLinenumberEnd: 2361
    functionName: _PyFloat_Pack8
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 5
    functionsReached:
    - assert
    - ldexp
    - PyErr_SetString
    - frexp
    linkageType: ''
    returnType: int
    signature: int _PyFloat_Pack8(double x, unsigned char *p, int le)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2397,1
    - Dst: _Py_dg_infinity
      Src: /src/Python-3.8.3/Objects/floatobject.c:2407,1
    - Dst: _Py_dg_stdnan
      Src: /src/Python-3.8.3/Objects/floatobject.c:2411,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2363
    functionDepth: 1
    functionLinenumber: 2363
    functionLinenumberEnd: 2431
    functionName: _PyFloat_Unpack2
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 1
    functionsReached:
    - _Py_dg_stdnan
    - ldexp
    - PyErr_SetString
    - _Py_dg_infinity
    linkageType: ''
    returnType: double
    signature: double _PyFloat_Unpack2(const unsigned char *p, int le)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2459,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2482,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/floatobject.c:2501,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/floatobject.c:2504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2509
    functionName: _PyFloat_Unpack4
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 3
    functionsReached:
    - memcpy
    - ldexp
    - PyErr_SetString
    linkageType: ''
    returnType: double
    signature: double _PyFloat_Unpack4(const unsigned char *p, int le)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/floatobject.c:2538,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/floatobject.c:2577,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/floatobject.c:2596,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/floatobject.c:2599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - p
    - le
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2511
    functionDepth: 1
    functionLinenumber: 2511
    functionLinenumberEnd: 2604
    functionName: _PyFloat_Unpack8
    functionSourceFile: /src/Python-3.8.3/Objects/floatobject.c
    functionUses: 4
    functionsReached:
    - memcpy
    - ldexp
    - PyErr_SetString
    linkageType: ''
    returnType: double
    signature: double _PyFloat_Unpack8(const unsigned char *p, int le)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:66,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:72,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:77,1
    - Dst: PyObject_Calloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:84,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:86,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:88,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:89,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - size
    - use_calloc
    argTypes:
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 99
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 99
    functionName: _PyBytes_FromSize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Calloc
    - PyObject_Malloc
    - Py_INCREF
    - PyErr_NoMemory
    - PyErr_SetString
    - assert
    - PyObject_INIT_VAR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromSize(Py_ssize_t size, int use_calloc)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:106,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:116,1
    - Dst: _PyBytes_FromSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:120,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:126,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - str
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 133
    functionName: PyBytes_FromStringAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 235
    functionsReached:
    - memcpy
    - _PyBytes_FromSize
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromStringAndSize(const char *str, Py_ssize_t size)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:141,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:144,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:152,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:159,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/bytesobject.c:164,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:166,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:167,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:169,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:176,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 179
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 179
    functionName: PyBytes_FromString
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 25
    functionsReached:
    - memcpy
    - Py_INCREF
    - PyErr_NoMemory
    - strlen
    - PyErr_SetString
    - assert
    - PyObject_INIT_VAR
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromString(const char *str)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:200,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:202,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:202,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:223,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:230,1
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:235,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:260,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:262,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:274,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:274,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:276,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:277,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:279,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:279,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:280,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:280,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:281,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:286,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:287,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:289,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:290,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:292,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:293,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:294,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:294,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:295,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:299,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:299,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:300,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:300,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:301,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:305,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:305,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:306,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:306,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:307,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:314,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:316,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/bytesobject.c:324,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:331,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:331,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:332,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:332,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytesobject.c:337,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:337,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:341,1
    - Dst: WRITE_BYTES
      Src: /src/Python-3.8.3/Objects/bytesobject.c:356,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:357,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:363,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:366,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 118
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts:
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 331
        line_start: 331
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (strlen(buffer) < sizeof(buffer))
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 368
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 368
    functionName: PyBytes_FromFormatV
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - WRITE_BYTES
    - Py_ISDIGIT
    - _PyBytesWriter_Alloc
    - va_arg
    - strlen
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyErr_SetString
    - memmove
    - assert
    - Py_ISALPHA
    - _PyBytesWriter_WriteBytes
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromFormatV(const char *format, va_list vargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: WRITE_BYTES
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_BYTES(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/bytesobject.c:377,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/bytesobject.c:379,1
    - Dst: PyBytes_FromFormatV
      Src: /src/Python-3.8.3/Objects/bytesobject.c:381,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/bytesobject.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: PyBytes_FromFormat
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - PyBytes_FromFormatV
    - va_start
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromFormat(const char *format, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Objects/bytesobject.c:397,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - args
    - arglen
    - p_argidx
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: getnextarg
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void getnextarg(PyObject *args, Py_ssize_t arglen, Py_ssize_t *p_argidx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/bytesobject.c:428,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:429,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:430,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:431,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/bytesobject.c:438,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:444,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/bytesobject.c:446,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:449,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/bytesobject.c:450,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:455,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/bytesobject.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 7
    argNames:
    - v
    - flags
    - prec
    - type
    - p_result
    - writer
    - str
    argTypes:
    - PyObject*
    - int
    - int
    - int
    - PyObject**
    - _PyBytesWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 459
    functionName: formatfloat
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - memcpy
    - PyOS_double_to_string
    - strlen
    - PyErr_Format
    - Py_TYPE
    - _PyBytesWriter_Prepare
    - PyMem_Free
    linkageType: ''
    returnType: char
    signature: "char *\nformatfloat(PyObject *v, int flags, int prec, int type,\n
      \           PyObject **p_result, _PyBytesWriter *writer, char *str)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:467,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:468,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:469,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/bytesobject.c:472,1
    - Dst: PyNumber_Long
      Src: /src/Python-3.8.3/Objects/bytesobject.c:474,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytesobject.c:476,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:479,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:480,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:483,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:487,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:491,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 4
    argNames:
    - v
    - flags
    - prec
    - type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 493
    functionName: formatlong
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_CLEAR
    - PyNumber_Check
    - Py_DECREF
    - _PyUnicode_FormatLong
    - PyNumber_Long
    - PyNumber_Index
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatlong(PyObject *v, int flags, int prec, int type)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:498,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:498,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:499,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:502,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:502,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:503,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:511,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/bytesobject.c:512,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/bytesobject.c:515,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytesobject.c:517,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/bytesobject.c:521,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:522,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:524,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:527,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:535,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 2
    argNames:
    - arg
    - p
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 538
    functionName: byte_converter
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyLong_AsLongAndOverflow
    - PyByteArray_GET_SIZE
    - PyNumber_Index
    - PyBytes_AS_STRING
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int byte_converter(PyObject *arg, char *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/bytesobject.c:546,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:548,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:549,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:550,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:551,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:554,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:555,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:556,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:557,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/bytesobject.c:561,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:563,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:564,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:567,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:568,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:571,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:574,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:575,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:579,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:581,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:584,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:585,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:588,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:591,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - v
    - pbuf
    - plen
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 593
    functionName: format_obj
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_CheckBuffer
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - Py_TYPE
    - _PyBytes_FromBuffer
    - _PyObject_CallNoArg
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      format_obj(PyObject *v, const char **pbuf, Py_ssize_t *plen)'
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytesobject.c:610,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:616,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:619,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:625,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:626,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:633,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:633,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:634,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:634,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:634,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:635,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytesobject.c:644,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:649,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:651,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:685,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:702,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:706,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:711,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/bytesobject.c:714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:715,1
    - Dst: getnextarg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:738,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:741,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:742,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:746,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:747,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Objects/bytesobject.c:756,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:759,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Objects/bytesobject.c:760,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:763,1
    - Dst: getnextarg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:778,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:782,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/bytesobject.c:787,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:788,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Objects/bytesobject.c:795,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:798,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Objects/bytesobject.c:799,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:802,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:818,1
    - Dst: getnextarg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:822,1
    - Dst: PyObject_ASCII
      Src: /src/Python-3.8.3/Objects/bytesobject.c:837,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:840,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/bytesobject.c:840,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:841,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/bytesobject.c:842,1
    - Dst: format_obj
      Src: /src/Python-3.8.3/Objects/bytesobject.c:850,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:863,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:875,1
    - Dst: _PyLong_FormatBytesWriter
      Src: /src/Python-3.8.3/Objects/bytesobject.c:892,1
    - Dst: formatlong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:899,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:902,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/bytesobject.c:902,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:903,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/bytesobject.c:904,1
    - Dst: formatfloat
      Src: /src/Python-3.8.3/Objects/bytesobject.c:921,1
    - Dst: formatfloat
      Src: /src/Python-3.8.3/Objects/bytesobject.c:927,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:929,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:930,1
    - Dst: byte_converter
      Src: /src/Python-3.8.3/Objects/bytesobject.c:938,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:949,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/bytesobject.c:977,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:997,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:998,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1011,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1022,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1023,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1030,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1040,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1042,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1045,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1049,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1055,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1059,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1065,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1067,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1070,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1072,1
    CyclomaticComplexity: 166
    EdgeCount: 166
    ICount: 386
    argCount: 4
    argNames:
    - format
    - format_len
    - args
    - use_bytearray
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts:
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 1021
        line_start: 1021
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (pbuf[0] == '0')
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 1022
        line_start: 1022
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (pbuf[1] == c)
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: ((res - before) == alloc)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyUnicode_IS_ASCII(temp))
      pos:
        line_end: 839
        line_start: 839
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer.overallocate || fmtcnt == 0 || use_bytearray)
      pos:
        line_end: 1054
        line_start: 1054
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (len != 0)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1075
      start: 597
    functionDepth: 5
    functionLinenumber: 597
    functionLinenumberEnd: 1075
    functionName: _PyBytes_FormatEx
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_BadInternalCall
    - _PyBytesWriter_Finish
    - getnextarg
    - Py_CHARMASK
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_Init
    - isdigit
    - PyErr_Occurred
    - formatlong
    - PyObject_GetItem
    - PyLong_AsSsize_t
    - PyObject_ASCII
    - PyTuple_Check
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyUnicode_1BYTE_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - memset
    - Py_XDECREF
    - PyLong_Check
    - Py_DECREF
    - _PyBytesWriter_Alloc
    - memchr
    - format_obj
    - PyByteArray_Check
    - Py_UNREACHABLE
    - formatfloat
    - PyBytes_GET_SIZE
    - Py_TYPE
    - _PyBytesWriter_Prepare
    - PyBytes_AS_STRING
    - memcpy
    - _PyLong_FormatBytesWriter
    - PyBytes_Check
    - PyLong_CheckExact
    - byte_converter
    - _PyBytesWriter_Dealloc
    - PyErr_SetString
    - PyUnicode_Check
    - _PyLong_AsInt
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyBytes_FormatEx(const char *format, Py_ssize_t format_len,\n
      \                 PyObject *args, int use_bytearray)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1094,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1099,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1100,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1103,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1103,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1107,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1108,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - s
    - end
    - errors
    - recode_encoding
    - writer
    - p
    argTypes:
    - char**
    - char*
    - char*
    - char*
    - _PyBytesWriter*
    - char*
    assertStmts:
    - condition: (PyBytes_Check(w))
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1116
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1116
    functionName: _PyBytes_DecodeEscapeRecode
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - PyUnicode_DecodeUTF8
    - PyBytes_AS_STRING
    - assert
    - _PyBytesWriter_WriteBytes
    linkageType: ''
    returnType: char
    signature: "char *\n_PyBytes_DecodeEscapeRecode(const char **s, const char *end,\n
      \                           const char *errors, const char *recode_encoding,\n
      \                           _PyBytesWriter *writer, char *p)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1130,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1132,1
    - Dst: _PyBytes_DecodeEscapeRecode
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1148,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1159,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1190,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1191,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1200,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1201,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1206,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1208,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1211,1
    - Dst: Py_ISXDIGIT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1218,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1234,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1237,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 119
    argCount: 6
    argNames:
    - s
    - len
    - errors
    - unicode
    - recode_encoding
    - first_invalid_escape
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1239
    functionName: _PyBytes_DecodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - _PyBytes_DecodeEscapeRecode
    - _PyBytesWriter_Alloc
    - Py_ISXDIGIT
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyErr_Format
    - PyErr_SetString
    - strcmp
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyBytes_DecodeEscape(const char *s,\n                                Py_ssize_t
      len,\n                                const char *errors,\n                                Py_ssize_t
      unicode,\n                                const char *recode_encoding,\n                                const
      char **first_invalid_escape)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_DecodeEscape
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1248,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - s
    - len
    - errors
    - unicode
    - recode_encoding
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1241
    functionDepth: 3
    functionLinenumber: 1241
    functionLinenumberEnd: 1263
    functionName: PyBytes_DecodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 3
    functionsReached:
    - _PyBytes_DecodeEscape
    - Py_DECREF
    - PyErr_WarnFormat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyBytes_DecodeEscape(const char *s,\n                                Py_ssize_t
      len,\n                                const char *errors,\n                                Py_ssize_t
      unicode,\n                                const char *recode_encoding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1270,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1271,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1272,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1276
    functionName: PyBytes_Size
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 12
    functionsReached:
    - PyBytes_Check
    - Py_SIZE
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyBytes_Size(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1281,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1282,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1287
    functionName: PyBytes_AsString
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 57
    functionsReached:
    - PyBytes_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: char
    signature: 'char *

      PyBytes_AsString(PyObject *op)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1295,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1299,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1300,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1301,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1305,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1307,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1308,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1308,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - obj
    - s
    - len
    argTypes:
    - PyObject*
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1314
    functionName: PyBytes_AsStringAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 23
    functionsReached:
    - PyErr_BadInternalCall
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - strlen
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int PyBytes_AsStringAndSize(PyObject *obj,\n                         char
      **s,\n                         Py_ssize_t *len)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1335,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1368,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1372,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1395,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1395,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1399,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 2
    argNames:
    - obj
    - smartquotes
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(v, 1))
      pos:
        line_end: 1394
        line_start: 1394
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1402
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1402
    functionName: PyBytes_Repr
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - PyErr_SetString
    - assert
    - Py_SIZE
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_Repr(PyObject *obj, int smartquotes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Repr
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1408
    functionName: bytes_repr
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_repr(PyObject *op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1413,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1415,1
    - Dst: bytes_repr
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1410
    functionDepth: 3
    functionLinenumber: 1410
    functionLinenumberEnd: 1421
    functionName: bytes_str
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - bytes_repr
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_str(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1427
    functionName: bytes_length
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t bytes_length(PyBytesObject *a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1438,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1439,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1440,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1441,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1441,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1446,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1448,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1451,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1453,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1458,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1462,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1464,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1464,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1465,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1465,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1470,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1472,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1430
    functionDepth: 3
    functionLinenumber: 1430
    functionLinenumberEnd: 1474
    functionName: bytes_concat
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - memcpy
    - Py_INCREF
    - PyBytes_CheckExact
    - PyErr_NoMemory
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_concat(PyObject *a, PyObject *b)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1489,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1490,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1494,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1495,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1495,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1501,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1505,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1507,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1508,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1511,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1512,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1517,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1517,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1518,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1522,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyBytesObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1526
    functionName: bytes_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_INCREF
    - PyBytes_CheckExact
    - PyErr_NoMemory
    - PyErr_SetString
    - PyObject_INIT_VAR
    - Py_SIZE
    - memset
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_repeat(PyBytesObject *a, Py_ssize_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_contains
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1531,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1531,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1532
    functionName: bytes_contains
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_bytes_contains
    linkageType: ''
    returnType: int
    signature: int bytes_contains(PyObject *self, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1538,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - PyBytesObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1542
    functionName: bytes_item
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_item(PyBytesObject *a, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1550,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1551,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyBytesObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1559
    functionName: bytes_compare_eq
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - memcmp
    linkageType: ''
    returnType: int
    signature: int bytes_compare_eq(PyBytesObject *a, PyBytesObject *b)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1570,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1570,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1571,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1573,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1576,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1581,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1586,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1589,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1594,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1614,1
    - Dst: bytes_compare_eq
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1619,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1621,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1624,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1625,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1626,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1628,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1628,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1630,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1635,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1636,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyBytesObject*
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1561
    functionDepth: 7
    functionLinenumber: 1561
    functionLinenumberEnd: 1638
    functionName: bytes_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_BadArgument
    - Py_RETURN_RICHCOMPARE
    - bytes_compare_eq
    - PyBytes_Check
    - memcmp
    - PyBool_FromLong
    - Py_SIZE
    - Py_MIN
    - PyErr_WarnEx
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_richcompare(PyBytesObject *a, PyBytesObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1645,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1648
    functionName: bytes_hash
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - _Py_HashBytes
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t bytes_hash(PyBytesObject *a)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1653,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1654,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1655,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1658,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1659,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1660,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1664,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1666,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1673,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1676,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1676,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1680,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1683,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1684,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1685,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1689,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1690,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1694,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1695,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1699,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1709,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1711,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 1714
    functionName: bytes_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyIndex_Check
    - PyErr_Occurred
    - Py_INCREF
    - PySlice_Check
    - PyBytes_CheckExact
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyBytes_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subscript(PyBytesObject* self, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1719,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1716
    functionDepth: 2
    functionLinenumber: 1716
    functionLinenumberEnd: 1721
    functionName: bytes_buffer_getbuffer
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int bytes_buffer_getbuffer(PyBytesObject *self, Py_buffer *view, int
      flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1768,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1769,1
    - Dst: stringlib_split_whitespace
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1776,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1777,1
    - Dst: stringlib_split
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1782,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1785
    functionName: bytes_split_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_split_whitespace
    - stringlib_split
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_split_impl(PyBytesObject *self, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_partition
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1807,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1809,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1803
    functionDepth: 1
    functionLinenumber: 1803
    functionLinenumberEnd: 1812
    functionName: bytes_partition_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - stringlib_partition
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_partition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_rpartition
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1834,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1836,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1830
    functionDepth: 1
    functionLinenumber: 1830
    functionLinenumberEnd: 1839
    functionName: bytes_rpartition_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - stringlib_rpartition
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rpartition_impl(PyBytesObject *self, Py_buffer *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1853,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1854,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1861,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1862,1
    - Dst: stringlib_rsplit
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1867,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1868,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyBytesObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1849
    functionDepth: 2
    functionLinenumber: 1849
    functionLinenumberEnd: 1870
    functionName: bytes_rsplit_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_rsplit
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    - stringlib_rsplit_whitespace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rsplit_impl(PyBytesObject *self, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_bytes_join
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1893
    functionName: bytes_join
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - stringlib_bytes_join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_join(PyBytesObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1898,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1898,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1899,1
    - Dst: bytes_join
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sep
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (sep != NULL && PyBytes_Check(sep))
      pos:
        line_end: 1897
        line_start: 1897
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (x != NULL)
      pos:
        line_end: 1898
        line_start: 1898
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 1901
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1901
    functionName: _PyBytes_Join
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - assert
    - bytes_join
    - PyBytes_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_Join(PyObject *sep, PyObject *x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_find
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1906,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1906,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1903
    functionDepth: 4
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: bytes_find
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_bytes_find
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_find(PyBytesObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_index
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1912,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1912,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1909
    functionDepth: 4
    functionLinenumber: 1909
    functionLinenumberEnd: 1913
    functionName: bytes_index
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_bytes_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_index(PyBytesObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rfind
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1919,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1919,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1916
    functionDepth: 4
    functionLinenumber: 1916
    functionLinenumberEnd: 1920
    functionName: bytes_rfind
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_rfind
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rfind(PyBytesObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rindex
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1926,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1926,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1923
    functionDepth: 4
    functionLinenumber: 1923
    functionLinenumberEnd: 1927
    functionName: bytes_rindex
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_bytes_rindex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rindex(PyBytesObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1934,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1935,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1940,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1947,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1947,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1956,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1956,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1960,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1962,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1963,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1967,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1931
    functionDepth: 3
    functionLinenumber: 1931
    functionLinenumberEnd: 1968
    functionName: do_xstrip
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - memchr
    - PyBytes_CheckExact
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyObject_GetBuffer
    - Py_CHARMASK
    linkageType: ''
    returnType: void
    signature: void do_xstrip(PyBytesObject *self, int striptype, PyObject *sepobj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1974,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1975,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1979,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1988,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1992,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1993,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:1997,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1972
    functionDepth: 3
    functionLinenumber: 1972
    functionLinenumberEnd: 1998
    functionName: do_strip
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    - PyBytes_FromStringAndSize
    - Py_INCREF
    - PyBytes_CheckExact
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: void
    signature: void do_strip(PyBytesObject *self, int striptype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_xstrip
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2005,1
    - Dst: do_strip
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - striptype
    - bytes
    argTypes:
    - PyBytesObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 2002
    functionDepth: 4
    functionLinenumber: 2002
    functionLinenumberEnd: 2008
    functionName: do_argstrip
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - do_xstrip
    - do_strip
    linkageType: ''
    returnType: void
    signature: void do_argstrip(PyBytesObject *self, int striptype, PyObject *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2026
    functionName: bytes_strip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_strip_impl(PyBytesObject *self, PyObject *bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2039
    functionDepth: 0
    functionLinenumber: 2039
    functionLinenumberEnd: 2044
    functionName: bytes_lstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_lstrip_impl(PyBytesObject *self, PyObject *bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2062
    functionName: bytes_rstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rstrip_impl(PyBytesObject *self, PyObject *bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_count
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2068,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2068,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2065
    functionDepth: 3
    functionLinenumber: 2065
    functionLinenumberEnd: 2069
    functionName: bytes_count
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_count
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_count(PyBytesObject *self, PyObject *args)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2102,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2103,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2104,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2111,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2118,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2120,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2125,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2126,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2127,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2130,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2131,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2143,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2144,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2146,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2147,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2150,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2151,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2156,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2157,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2160,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2162,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2165,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2166,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2172,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2175,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2177,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2180,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2181,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2184,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2186,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2191,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2192,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2197,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 85
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyBytesObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2086
    functionDepth: 3
    functionLinenumber: 2086
    functionLinenumberEnd: 2199
    functionName: bytes_translate_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - Py_INCREF
    - PyBytes_CheckExact
    - _PyBytes_Resize
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyObject_GetBuffer
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_translate_impl(PyBytesObject *self, PyObject *table,\n
      \                    PyObject *deletechars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_maketrans
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2219
    functionDepth: 2
    functionLinenumber: 2219
    functionLinenumberEnd: 2224
    functionName: bytes_maketrans_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_maketrans
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_maketrans_impl(Py_buffer *frm, Py_buffer *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_replace
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2248,1
    - Dst: buf::buf
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2250,1
    - Dst: len::len
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - old
    - new
    - count
    argTypes:
    - PyBytesObject*
    - Py_buffer*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2251
    functionName: bytes_replace_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - stringlib_replace
    - len::len
    - buf::buf
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_replace_impl(PyBytesObject *self, Py_buffer *old,
      Py_buffer *new,\n                   Py_ssize_t count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_startswith
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2259,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2259,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2256
    functionDepth: 3
    functionLinenumber: 2256
    functionLinenumberEnd: 2260
    functionName: bytes_startswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_GET_SIZE
    - _Py_bytes_startswith
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_startswith(PyBytesObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_endswith
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2265,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2265,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2262
    functionDepth: 3
    functionLinenumber: 2262
    functionLinenumberEnd: 2266
    functionName: bytes_endswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - _Py_bytes_endswith
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_endswith(PyBytesObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyBytesObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2284
    functionDepth: 1
    functionLinenumber: 2284
    functionLinenumberEnd: 2290
    functionName: bytes_decode_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytes_decode_impl(PyBytesObject *self, const char *encoding,\n
      \                 const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_splitlines
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2308,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2309,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyBytesObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2304
    functionDepth: 1
    functionLinenumber: 2304
    functionLinenumberEnd: 2312
    functionName: bytes_splitlines_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - stringlib_splitlines
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_splitlines_impl(PyBytesObject *self, int keepends)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_FromHex
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2331,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2333,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2337
    functionName: bytes_fromhex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - _PyBytes_FromHex
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromhex_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2348,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2351,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2351,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2352,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2354,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2356,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2357,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2358,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2363,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2370,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2370,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2371,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2374,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2381,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2384,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2391,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2398,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2406,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2409,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2412,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - string
    - use_bytearray
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (PyUnicode_KIND(string) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2369
        line_start: 2369
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyUnicode_Check(string))
      pos:
        line_end: 2350
        line_start: 2350
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 2414
      start: 2339
    functionDepth: 1
    functionLinenumber: 2339
    functionLinenumberEnd: 2414
    functionName: _PyBytes_FromHex
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - Py_ISSPACE
    - _PyBytesWriter_Init
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyUnicode_1BYTE_DATA
    - PyUnicode_Check
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromHex(PyObject *string, int use_bytearray)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2443,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2444,1
    - Dst: _Py_strhex_with_sep
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyBytesObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2446
    functionName: bytes_hex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_with_sep
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_hex_impl(PyBytesObject *self, PyObject *sep, int bytes_per_sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2451,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2448
    functionDepth: 1
    functionLinenumber: 2448
    functionLinenumberEnd: 2452
    functionName: bytes_getnewargs
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_getnewargs(PyBytesObject *v, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2518,1
    - Dst: _PyBytes_FormatEx
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2521,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2521,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2515
    functionDepth: 6
    functionLinenumber: 2515
    functionLinenumberEnd: 2523
    functionName: bytes_mod
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _PyBytes_FormatEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_mod(PyObject *self, PyObject *arg)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2545,1
    - Dst: bytes_subtype_new
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2548,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2549,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2554,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2560,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2565,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2566,1
    - Dst: PyUnicode_AsEncodedString::PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2570,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2578,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2579,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2588,1
    - Dst: _PyObject_CallNoArg::_PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2590,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2591,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2594,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2595,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2597,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2603,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2606,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2607,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2612,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2613,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2614,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2615,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2617,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2621,1
    - Dst: _PyBytes_FromSize::_PyBytes_FromSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2624,1
    - Dst: PyBytes_FromObject
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2631,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2535
    functionDepth: 3
    functionLinenumber: 2535
    functionLinenumberEnd: 2632
    functionName: bytes_new
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - _PyObject_CallNoArg::_PyObject_CallNoArg
    - _Py_IDENTIFIER
    - PyArg_ParseTupleAndKeywords
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - _PyBytes_FromSize::_PyBytes_FromSize
    - bytes_subtype_new
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_DECREF
    - _PyObject_LookupSpecial
    - Py_TYPE
    - PyBytes_FromObject
    - PyUnicode_AsEncodedString::PyUnicode_AsEncodedString
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2640,1
    - Dst: PyBytes_FromStringAndSize::PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2643,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2646,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2649,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2634
    functionDepth: 3
    functionLinenumber: 2634
    functionLinenumberEnd: 2656
    functionName: _PyBytes_FromBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - PyBuffer_ToContiguous
    - PyObject_GetBuffer
    - PyBytes_FromStringAndSize::PyBytes_FromStringAndSize
    - PyBuffer_Release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromBuffer(PyObject *x)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2661,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2667,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2668,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2674,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2675,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2676,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2677,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2678,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2679,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2683,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2689,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2696,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2699,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2658
    functionDepth: 3
    functionLinenumber: 2658
    functionLinenumberEnd: 2701
    functionName: _PyBytes_FromList
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyBytesWriter_Init
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _PyBytesWriter_Alloc
    - PyList_GET_ITEM
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyErr_SetString
    - _PyBytesWriter_Resize
    - PyList_GET_SIZE
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromList(PyObject *x)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2707,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2712,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2718,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2719,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2720,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2724,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2733,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2703
    functionDepth: 3
    functionLinenumber: 2703
    functionLinenumberEnd: 2735
    functionName: _PyBytes_FromTuple
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromTuple(PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_LengthHint
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2745,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2746,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2749,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2750,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2762,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2764,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2771,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2772,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2777,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2784,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2792,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2795,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - it
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2737
    functionDepth: 4
    functionLinenumber: 2737
    functionLinenumberEnd: 2797
    functionName: _PyBytes_FromIterator
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyObject_LengthHint
    - _PyBytesWriter_Init
    - PyErr_Occurred
    - Py_DECREF
    - _PyBytesWriter_Alloc
    - _PyBytesWriter_Finish
    - _PyBytesWriter_Dealloc
    - PyIter_Next
    - PyErr_SetString
    - _PyBytesWriter_Resize
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytes_FromIterator(PyObject *it, PyObject *x)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2805,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2809,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2810,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2815,1
    - Dst: _PyBytes_FromBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2816,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2818,1
    - Dst: _PyBytes_FromList
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2819,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2821,1
    - Dst: _PyBytes_FromTuple
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2822,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2824,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2825,1
    - Dst: _PyBytes_FromIterator
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2827,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2828,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2831,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2836,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - x
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2799
    functionDepth: 5
    functionLinenumber: 2799
    functionLinenumberEnd: 2840
    functionName: PyBytes_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_CheckBuffer
    - PyBytes_CheckExact
    - _PyBytes_FromIterator
    - PyErr_BadInternalCall
    - _PyBytes_FromBuffer
    - _PyBytes_FromList
    - PyErr_ExceptionMatches
    - PyTuple_CheckExact
    - PyUnicode_Check
    - PyList_CheckExact
    - PyErr_Format
    - PyObject_GetIter
    - _PyBytes_FromTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyBytes_FromObject(PyObject *x)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2848,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2848,1
    - Dst: bytes_new
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2849,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2852,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2852,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2853,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2854,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2856,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2856,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2857,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyBytes_Type))
      pos:
        line_end: 2847
        line_start: 2847
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyBytes_Check(tmp))
      pos:
        line_end: 2851
        line_start: 2851
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 2863
      start: 2842
    functionDepth: 4
    functionLinenumber: 2842
    functionLinenumberEnd: 2863
    functionName: bytes_subtype_new
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 1
    functionsReached:
    - bytes_new
    - memcpy
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyType_IsSubtype
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2926,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2930,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2934,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2934,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2939,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2940,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2941,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2941,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2942,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2946,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2948,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2951,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2954,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2954,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2955,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2959,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2960,1
    - Dst: bytes_concat
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2967,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2968,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (pv != NULL)
      pos:
        line_end: 2925
        line_start: 2925
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 2970
      start: 2923
    functionDepth: 4
    functionLinenumber: 2923
    functionLinenumberEnd: 2970
    functionName: PyBytes_Concat
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - memcpy
    - Py_REFCNT
    - PyBytes_CheckExact
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyBuffer_Release
    - bytes_concat
    - assert
    - PyObject_GetBuffer
    - Py_SETREF
    linkageType: ''
    returnType: void
    signature: void PyBytes_Concat(PyObject **pv, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Concat
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2975,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:2976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pv
    - w
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2972
    functionDepth: 5
    functionLinenumber: 2972
    functionLinenumberEnd: 2977
    functionName: PyBytes_ConcatAndDel
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_Concat
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyBytes_ConcatAndDel(PyObject **pv, PyObject *w)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3000,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3003,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3007,1
    - Dst: _PyBytes_FromSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3011,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3012,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3015,1
    - Dst: _PyBytes_FromSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3020,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3025,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3027,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3029,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3030,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3033,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3041,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3042,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - pv
    - newsize
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3044
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3044
    functionName: _PyBytes_Resize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 50
    functionsReached:
    - Py_DECREF
    - _Py_NewReference
    - Py_REFCNT
    - PyErr_NoMemory
    - PyErr_BadInternalCall
    - PyObject_REALLOC
    - PyBytes_Check
    - _PyBytes_FromSize
    - _Py_ForgetReference
    - Py_SIZE
    - PyObject_Del
    linkageType: ''
    returnType: int
    signature: int _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3051,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 3046
    functionDepth: 1
    functionLinenumber: 3046
    functionLinenumberEnd: 3053
    functionName: PyBytes_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void PyBytes_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3066,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3067,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - striterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3063
    functionDepth: 3
    functionLinenumber: 3063
    functionLinenumberEnd: 3069
    functionName: striter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void striter_dealloc(striterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - striterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3071
    functionDepth: 1
    functionLinenumber: 3071
    functionLinenumberEnd: 3076
    functionName: striter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int striter_traverse(striterobject *it, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3084,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3088,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3088,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3090,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3091,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - striterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3083
        line_start: 3083
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyBytes_Check(seq))
      pos:
        line_end: 3087
        line_start: 3087
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3101
      start: 3078
    functionDepth: 1
    functionLinenumber: 3078
    functionLinenumberEnd: 3101
    functionName: striter_next
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_next(striterobject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3108,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - striterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3103
    functionDepth: 1
    functionLinenumber: 3103
    functionLinenumberEnd: 3110
    functionName: striter_len
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_len(striterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3118,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3120,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3120,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3123,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - striterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3115
    functionDepth: 1
    functionLinenumber: 3115
    functionLinenumberEnd: 3125
    functionName: striter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_reduce(striterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3132,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3133,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3138,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - striterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3129
    functionDepth: 1
    functionLinenumber: 3129
    functionLinenumberEnd: 3143
    functionName: striter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      striter_setstate(striterobject *it, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3195,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3196,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3199,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3203,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3190
    functionDepth: 1
    functionLinenumber: 3190
    functionLinenumberEnd: 3207
    functionName: bytes_iter
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyBytes_Check
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3224,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3220
    functionDepth: 0
    functionLinenumber: 3220
    functionLinenumberEnd: 3229
    functionName: _PyBytesWriter_Init
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 14
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_Init(_PyBytesWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3231
    functionDepth: 1
    functionLinenumber: 3231
    functionLinenumberEnd: 3235
    functionName: _PyBytesWriter_Dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 10
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_Dealloc(_PyBytesWriter *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3245,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3246,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3249,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyBytesWriter*
    assertStmts:
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3240
        line_start: 3240
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3248
        line_start: 3248
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3244
        line_start: 3244
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3252
      start: 3238
    functionDepth: 1
    functionLinenumber: 3238
    functionLinenumberEnd: 3252
    functionName: _PyBytesWriter_AsString
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_AsString(_PyBytesWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_AsString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3257,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3258,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3259,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - char*
    assertStmts:
    - condition: (str >= start)
      pos:
        line_end: 3258
        line_start: 3258
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (str != NULL)
      pos:
        line_end: 3257
        line_start: 3257
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (str - start <= writer->allocated)
      pos:
        line_end: 3259
        line_start: 3259
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3262
      start: 3255
    functionDepth: 2
    functionLinenumber: 3255
    functionLinenumberEnd: 3262
    functionName: _PyBytesWriter_GetSize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyBytesWriter_AsString
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_GetSize(_PyBytesWriter *writer, char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3271,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3274,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3276,1
    - Dst: PyByteArray_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3276,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3278,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3278,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3279,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3279,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3285,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3288,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3289,1
    - Dst: _PyBytesWriter_AsString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3291,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3292,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3295,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - char*
    assertStmts:
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3270
        line_start: 3270
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer->buffer != NULL)
      pos:
        line_end: 3273
        line_start: 3273
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyBytes_CheckExact(writer->buffer))
      pos:
        line_end: 3277
        line_start: 3277
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (PyByteArray_CheckExact(writer->buffer))
      pos:
        line_end: 3275
        line_start: 3275
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (Py_REFCNT(writer->buffer) == 1)
      pos:
        line_end: 3278
        line_start: 3278
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (!writer->overallocate)
      pos:
        line_end: 3284
        line_start: 3284
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (0 <= writer->allocated)
      pos:
        line_end: 3287
        line_start: 3287
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (start[writer->allocated] == 0)
      pos:
        line_end: 3291
        line_start: 3291
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (start <= str && str <= end)
      pos:
        line_end: 3295
        line_start: 3295
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (0 <= writer->min_size && writer->min_size <= writer->allocated)
      pos:
        line_end: 3288
        line_start: 3288
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (str != NULL)
      pos:
        line_end: 3294
        line_start: 3294
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3298
      start: 3266
    functionDepth: 2
    functionLinenumber: 3266
    functionLinenumberEnd: 3298
    functionName: _PyBytesWriter_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_CheckExact
    - _PyBytesWriter_AsString
    - Py_REFCNT
    - PyBytes_CheckExact
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyBytesWriter_CheckConsistency(_PyBytesWriter *writer, char *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3306,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3306,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3307,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3316,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3319,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3328,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3334,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3337,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3339,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3346,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3348,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3349,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3356,1
    - Dst: _PyBytesWriter_AsString
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3362,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3363,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3363,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3367,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - writer
    - str
    - size
    argTypes:
    - _PyBytesWriter*
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3305
        line_start: 3305
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer->allocated < size)
      pos:
        line_end: 3306
        line_start: 3306
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (writer->buffer == NULL)
      pos:
        line_end: 3333
        line_start: 3333
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3362
        line_start: 3362
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3369
      start: 3301
    functionDepth: 3
    functionLinenumber: 3301
    functionLinenumberEnd: 3369
    functionName: _PyBytesWriter_Resize
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_CheckConsistency
    - memcpy
    - _PyBytesWriter_AsString
    - _PyBytesWriter_GetSize
    - _PyBytes_Resize
    - _PyBytesWriter_Dealloc
    - PyByteArray_Resize
    - PyBytes_AS_STRING
    - PyByteArray_FromStringAndSize
    - assert
    - memset
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Resize(_PyBytesWriter *writer, void *str, Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3376,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3376,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3377,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3385,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3386,1
    - Dst: _PyBytesWriter_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - writer
    - str
    - size
    argTypes:
    - _PyBytesWriter*
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3375
        line_start: 3375
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (size >= 0)
      pos:
        line_end: 3376
        line_start: 3376
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3396
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3396
    functionName: _PyBytesWriter_Prepare
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 4
    functionsReached:
    - _PyBytesWriter_CheckConsistency
    - PyErr_NoMemory
    - _PyBytesWriter_Dealloc
    - _PyBytesWriter_Resize
    - assert
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Prepare(_PyBytesWriter *writer, void *str, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3405,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3406,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3421,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - size
    argTypes:
    - _PyBytesWriter*
    - Py_ssize_t
    assertStmts:
    - condition: (writer->min_size == 0 && writer->buffer == NULL)
      pos:
        line_end: 3404
        line_start: 3404
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (size >= 0)
      pos:
        line_end: 3405
        line_start: 3405
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3429
      start: 3401
    functionDepth: 5
    functionLinenumber: 3401
    functionLinenumberEnd: 3429
    functionName: _PyBytesWriter_Alloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 14
    functionsReached:
    - assert
    - Py_MIN
    - _PyBytesWriter_Prepare
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyBytesWriter_Alloc(_PyBytesWriter *writer, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3437,1
    - Dst: _PyBytesWriter_CheckConsistency
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3437,1
    - Dst: _PyBytesWriter_GetSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3439,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3441,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3443,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3447,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3450,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3459,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3460,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3465,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3466,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyBytesWriter*
    - void*
    assertStmts:
    - condition: (_PyBytesWriter_CheckConsistency(writer, str))
      pos:
        line_end: 3436
        line_start: 3436
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    - condition: (result == NULL)
      pos:
        line_end: 3465
        line_start: 3465
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    constantsTouched: []
    func_position:
      end: 3473
      start: 3431
    functionDepth: 3
    functionLinenumber: 3431
    functionLinenumberEnd: 3473
    functionName: _PyBytesWriter_Finish
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 14
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_CheckConsistency
    - Py_CLEAR
    - Py_DECREF
    - _PyBytesWriter_GetSize
    - _PyBytes_Resize
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBytesWriter_Finish(_PyBytesWriter *writer, void *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3481,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytesobject.c:3485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - writer
    - ptr
    - bytes
    - size
    argTypes:
    - _PyBytesWriter*
    - void*
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3475
    functionDepth: 5
    functionLinenumber: 3475
    functionLinenumberEnd: 3489
    functionName: _PyBytesWriter_WriteBytes
    functionSourceFile: /src/Python-3.8.3/Objects/bytesobject.c
    functionUses: 2
    functionsReached:
    - memcpy
    - _PyBytesWriter_Prepare
    linkageType: ''
    returnType: void
    signature: "void *\n_PyBytesWriter_WriteBytes(_PyBytesWriter *writer, void *ptr,\n
      \                         const void *bytes, Py_ssize_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:29,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:30,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:32,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:37,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:38,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - arg
    - value
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: _getbytevalue
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - Py_DECREF
    - PyNumber_Index
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _getbytevalue(PyObject* arg, int *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:57,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:61,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:63,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - obj
    - view
    - flags
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: bytearray_getbuffer
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyBuffer_FillInfo
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int bytearray_getbuffer(PyByteArrayObject *obj, Py_buffer *view, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - view
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: bytearray_releasebuffer
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bytearray_releasebuffer(PyByteArrayObject *obj, Py_buffer *view)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: _canresize
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _canresize(PyByteArrayObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: PyByteArray_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_FromObject(PyObject *input)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:102,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:105,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:107,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:107,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:110,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: _PyByteArray_FromBufferObject
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyBuffer_ToContiguous
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyByteArray_FromBufferObject(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:123,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:130,1
    - Dst: PyObject_New::PyObject_New
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:133,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:143,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:144,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:146,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:149,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:149,1
    - Dst: ob_bytes::ob_bytes
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:154,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 158
    functionName: PyByteArray_FromStringAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 8
    functionsReached:
    - memcpy
    - PyObject_Malloc
    - PyErr_NoMemory
    - PyObject_New::PyObject_New
    - ob_bytes::ob_bytes
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_FromStringAndSize(const char *bytes, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:163,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:164,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:164,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: PyByteArray_Size
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyByteArray_Check
    - assert
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyByteArray_Size(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:172,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:173,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:173,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: PyByteArray_AsString
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 2
    functionsReached:
    - PyByteArray_Check
    - assert
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: char
    signature: 'char *

      PyByteArray_AsString(PyObject *self)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:189,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:190,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:190,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:191,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:192,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:194,1
    - Dst: _canresize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:197,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:210,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:211,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:227,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:232,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:234,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:237,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:237,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:238,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:238,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:239,1
    - Dst: PyObject_Realloc
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:242,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:244,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - self
    - requested_size
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (requested_size >= 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(self))
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (logical_offset <= alloc)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 255
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 255
    functionName: PyByteArray_Resize
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 3
    functionsReached:
    - memcpy
    - PyObject_Malloc
    - PyObject_Realloc
    - PyErr_NoMemory
    - PyByteArray_Check
    - PyObject_Free
    - assert
    - _canresize
    - Py_SIZE
    - Py_MIN
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: int PyByteArray_Resize(PyObject *self, Py_ssize_t requested_size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:265,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:266,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:267,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:268,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:268,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:273,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:278,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:280,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:281,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:286,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:288,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 290
    functionName: PyByteArray_Concat
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyErr_Format
    - Py_TYPE
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyByteArray_Concat(PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: bytearray_length
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t bytearray_length(PyByteArrayObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:306,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:307,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:308,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:308,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:312,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:314,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:315,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:317,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:318,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:321,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:321,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:322,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: bytearray_iconcat
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_INCREF
    - PyErr_NoMemory
    - PyErr_Format
    - PyBuffer_Release
    - Py_SIZE
    - Py_TYPE
    - PyByteArray_Resize
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iconcat(PyByteArrayObject *self, PyObject *other)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:336,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:338,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:340,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:343,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:347,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - self
    - count
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 351
    functionName: bytearray_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repeat(PyByteArrayObject *self, Py_ssize_t count)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:362,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:364,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:366,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:369,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:371,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:375,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - self
    - count
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 380
    functionName: bytearray_irepeat
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_INCREF
    - PyErr_NoMemory
    - PyByteArray_Resize
    - Py_SIZE
    - memset
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_irepeat(PyByteArrayObject *self, Py_ssize_t count)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:386,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:387,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:388,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:391,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: bytearray_getitem
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_SIZE
    - PyErr_SetString
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_getitem(PyByteArrayObject *self, Py_ssize_t i)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:397,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:398,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:400,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:404,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:406,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:407,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:410,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:410,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:412,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:415,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:418,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:418,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:422,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:424,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:425,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:428,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:432,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:436,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:445,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:447,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 450
    functionName: bytearray_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyIndex_Check
    - PyErr_Occurred
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyErr_SetString
    - Py_TYPE
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - PyNumber_AsSsize_t
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_subscript(PyByteArrayObject *self, PyObject *index)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:458,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:461,1
    - Dst: _canresize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:464,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:484,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:485,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:487,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:488,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:504,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:507,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:510,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:511,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:515,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:516,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:519,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:527,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:528,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:532,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - self
    - lo
    - hi
    - bytes
    - bytes_len
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (avail >= 0)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 534
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 534
    functionName: bytearray_setslice_linear
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - PyByteArray_Resize
    - memmove
    - assert
    - _canresize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int bytearray_setslice_linear(PyByteArrayObject *self,\n                          Py_ssize_t
      lo, Py_ssize_t hi,\n                          char *bytes, Py_ssize_t bytes_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:549,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:549,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:550,1
    - Dst: bytearray_setslice
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:554,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:563,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:564,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:566,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:577,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:578,1
    - Dst: bytearray_setslice_linear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:580,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - self
    - lo
    - hi
    - values
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 584
    functionName: bytearray_setslice
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - bytearray_setslice_linear
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - Py_SIZE
    - PyByteArray_FromStringAndSize
    - bytearray_setslice
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: int
    signature: "int bytearray_setslice(PyByteArrayObject *self, Py_ssize_t lo, Py_ssize_t
      hi,\n               PyObject *values)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:592,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:594,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:595,1
    - Dst: bytearray_setslice
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:600,1
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:602,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - i
    - value
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 586
    functionDepth: 5
    functionLinenumber: 586
    functionLinenumberEnd: 607
    functionName: bytearray_setitem
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - bytearray_setslice
    - Py_SIZE
    - PyByteArray_AS_STRING
    - _getbytevalue
    linkageType: ''
    returnType: int
    signature: int bytearray_setitem(PyByteArrayObject *self, Py_ssize_t i, PyObject
      *value)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:614,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:616,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:617,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:619,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:623,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:625,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:626,1
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:639,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:645,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:646,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:649,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:649,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:653,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:655,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:663,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:665,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:665,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:666,1
    - Dst: PyByteArray_FromObject
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:672,1
    - Dst: bytearray_ass_subscript
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:675,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:676,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:680,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:680,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:681,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:682,1
    - Dst: bytearray_setslice_linear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:689,1
    - Dst: _canresize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:697,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:713,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:714,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:716,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:721,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:722,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:724,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:726,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:727,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:738,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 3
    argNames:
    - self
    - index
    - values
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyByteArray_Check(values))
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 749
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 749
    functionName: bytearray_ass_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 1
    functionsReached:
    - PyIndex_Check
    - PyNumber_Check
    - PySlice_Unpack
    - bytearray_setslice_linear
    - PyByteArray_GET_SIZE
    - bytearray_ass_subscript
    - PyByteArray_AS_STRING
    - _getbytevalue
    - PyByteArray_FromObject
    - PyErr_Occurred
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyErr_Format
    - memmove
    - assert
    - _canresize
    - Py_DECREF
    - PyByteArray_Check
    - Py_TYPE
    - Py_SIZE
    - PyByteArray_Resize
    - PyErr_SetString
    - PyUnicode_Check
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int bytearray_ass_subscript(PyByteArrayObject *self, PyObject *index,
      PyObject *values)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:762,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:764,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:769,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:776,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:789,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:793,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:796,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:796,1
    - Dst: bytearray_iconcat::bytearray_iconcat
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:797,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:798,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:807,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:815,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:816,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:817,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:818,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:820,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:824,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:828,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:830,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:830,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:837,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:840,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:843,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:844,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:844,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:847,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:850,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:857,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:859,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:860,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:866,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:874,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:876,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:877,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:879,1
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:886,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:891,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:892,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:893,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:893,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:895,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:895,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:897,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:906,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 108
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(encoded))
      pos:
        line_end: 795
        line_start: 795
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 908
      start: 751
    functionDepth: 4
    functionLinenumber: 751
    functionLinenumberEnd: 908
    functionName: bytearray_init
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyObject_CheckBuffer
    - PyBuffer_ToContiguous
    - PyArg_ParseTupleAndKeywords
    - PyObject_GetIter
    - PyByteArray_AS_STRING
    - _getbytevalue
    - PyErr_Occurred
    - bytearray_iconcat::bytearray_iconcat
    - iternext
    - PyErr_Format
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    - memset
    - Py_DECREF
    - PyUnicode_AsEncodedString
    - Py_TYPE
    - Py_SIZE
    - PyBytes_Check
    - PyByteArray_Resize
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_GetBuffer
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int bytearray_init(PyByteArrayObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:915,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:915,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:918,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:930,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:932,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:938,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:940,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:946,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:963,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:967,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:988,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:994,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:995,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts:
    - condition: (newsize - (p - buffer) >= 5)
      pos:
        line_end: 966
        line_start: 966
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (newsize - (p - buffer) >= 1)
      pos:
        line_end: 987
        line_start: 987
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 997
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 997
    functionName: bytearray_repr
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - PyUnicode_FromStringAndSize
    - PyErr_NoMemory
    - strlen
    - Py_TYPE
    - Py_SIZE
    - PyErr_SetString
    - PyObject_Free
    - assert
    - _PyType_Name
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_repr(PyByteArrayObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1002,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1004,1
    - Dst: bytearray_repr
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1010
    functionName: bytearray_str
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - bytearray_repr
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_str(PyObject *op)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1022,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1024,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1028,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1030,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1038,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1039,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1044,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1045,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1046,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1053,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1054,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1055,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1058,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1059,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1062,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1063,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1066,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1069,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1012
    functionDepth: 7
    functionLinenumber: 1012
    functionLinenumberEnd: 1072
    functionName: bytearray_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - PyObject_GetBuffer
    - _PyInterpreterState_GET_UNSAFE
    - Py_RETURN_RICHCOMPARE
    - memcmp
    - PyBuffer_Release
    - PyBool_FromLong
    - PyErr_Clear
    - Py_MIN
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1078,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1080,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1083,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1086
    functionName: bytearray_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - PyErr_Print
    - PyErr_SetString
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void bytearray_dealloc(PyByteArrayObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1094
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1101
    functionName: STRINGLIB_ISLINEBREAK
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_ISLINEBREAK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_find
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1117,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1117,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1114
    functionDepth: 4
    functionLinenumber: 1114
    functionLinenumberEnd: 1118
    functionName: bytearray_find
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_find
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_find(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_count
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1123,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1123,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: bytearray_count
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_count
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_count(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1139
    functionName: bytearray_clear_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_clear_impl(PyByteArrayObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1151,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1151,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    functionName: bytearray_copy_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_FromStringAndSize
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_copy_impl(PyByteArrayObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_index
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1158,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1158,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: bytearray_index
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_index(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rfind
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1164,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1164,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1161
    functionDepth: 4
    functionLinenumber: 1161
    functionLinenumberEnd: 1165
    functionName: bytearray_rfind
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_rfind
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rfind(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_rindex
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1170,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1170,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1171
    functionName: bytearray_rindex
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_rindex
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rindex(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_contains
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1176,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1176,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: bytearray_contains
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _Py_bytes_contains
    linkageType: ''
    returnType: int
    signature: int bytearray_contains(PyObject *self, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_startswith
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1182,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1182,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1179
    functionDepth: 3
    functionLinenumber: 1179
    functionLinenumberEnd: 1183
    functionName: bytearray_startswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - _Py_bytes_startswith
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_startswith(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_endswith
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1188,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1188,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1185
    functionDepth: 3
    functionLinenumber: 1185
    functionLinenumberEnd: 1189
    functionName: bytearray_endswith
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_endswith
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_endswith(PyByteArrayObject *self, PyObject *args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1228,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1230,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1237,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1239,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1248,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1249,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1252,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1253,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1258,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1266,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1269,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1273,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1276,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1282,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1283,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1289,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1291,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 3
    argNames:
    - self
    - table
    - deletechars
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1293
    functionName: bytearray_translate_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyByteArray_GET_SIZE
    - PyBuffer_Release
    - PyErr_SetString
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_translate_impl(PyByteArrayObject *self, PyObject
      *table,\n                         PyObject *deletechars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_maketrans
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - frm
    - to
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1318
    functionName: bytearray_maketrans_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_maketrans
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_maketrans_impl(Py_buffer *frm, Py_buffer *to)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_replace
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1342,1
    - Dst: buf::buf
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1344,1
    - Dst: len::len
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - old
    - new
    - count
    argTypes:
    - PyByteArrayObject*
    - Py_buffer*
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1345
    functionName: bytearray_replace_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_replace
    - len::len
    - buf::buf
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_replace_impl(PyByteArrayObject *self, Py_buffer
      *old,\n                       Py_buffer *new, Py_ssize_t count)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1366,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1367,1
    - Dst: stringlib_split_whitespace
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1375,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1377,1
    - Dst: stringlib_split
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1382,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1361
    functionDepth: 2
    functionLinenumber: 1361
    functionLinenumberEnd: 1387
    functionName: bytearray_split_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_split_whitespace
    - stringlib_split
    - PyByteArray_GET_SIZE
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_split_impl(PyByteArrayObject *self, PyObject
      *sep,\n                     Py_ssize_t maxsplit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_FromBufferObject
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1411,1
    - Dst: stringlib_partition
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1415,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1417,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1417,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1419,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1419,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1405
    functionDepth: 3
    functionLinenumber: 1405
    functionLinenumberEnd: 1424
    functionName: bytearray_partition
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyByteArray_FromBufferObject
    - PyByteArray_GET_SIZE
    - stringlib_partition
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_partition(PyByteArrayObject *self, PyObject *sep)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyByteArray_FromBufferObject
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1449,1
    - Dst: stringlib_rpartition
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1453,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1455,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1455,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1457,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1443
    functionDepth: 3
    functionLinenumber: 1443
    functionLinenumberEnd: 1462
    functionName: bytearray_rpartition
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_rpartition
    - Py_DECREF
    - _PyByteArray_FromBufferObject
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rpartition(PyByteArrayObject *self, PyObject *sep)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1477,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1478,1
    - Dst: stringlib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1486,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1488,1
    - Dst: stringlib_rsplit
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1493,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1498
    functionName: bytearray_rsplit_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_rsplit
    - PyByteArray_GET_SIZE
    - PyBuffer_Release
    - stringlib_rsplit_whitespace
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_rsplit_impl(PyByteArrayObject *self, PyObject
      *sep,\n                      Py_ssize_t maxsplit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1511,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1523
    functionName: bytearray_reverse_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reverse_impl(PyByteArrayObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1550,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1554,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1558,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1560,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - self
    - index
    - item
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1573
    functionName: bytearray_insert_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Resize
    - PyErr_SetString
    - memmove
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_insert_impl(PyByteArrayObject *self, Py_ssize_t index, int item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1589,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1592,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1596,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1602
    functionName: bytearray_append_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyByteArray_Resize
    - PyErr_SetString
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_append_impl(PyByteArrayObject *self, int item)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1624,1
    - Dst: bytearray_setslice
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1625,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1625,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1625,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1631,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1633,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1634,1
    - Dst: PyObject_LengthHint
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1642,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1644,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1648,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1650,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1653,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1655,1
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1657,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1658,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1659,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1663,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1669,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1670,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1677,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1678,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1679,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1684,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1687,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1690,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1691,1
    - Dst: bytearray_setslice
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1695,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1695,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1695,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1696,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1699,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1701,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 2
    argNames:
    - self
    - iterable_of_ints
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1614
    functionDepth: 5
    functionLinenumber: 1614
    functionLinenumberEnd: 1706
    functionName: bytearray_extend
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_LengthHint
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_CheckBuffer
    - PyErr_NoMemory
    - PyObject_GetIter
    - PyIter_Next
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyByteArray_Resize
    - PyByteArray_FromStringAndSize
    - bytearray_setslice
    - Py_SIZE
    - PyByteArray_AS_STRING
    - _getbytevalue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_extend(PyByteArrayObject *self, PyObject *iterable_of_ints)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1726,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1730,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1735,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1736,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1737,1
    - Dst: _canresize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1740,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1743,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1745,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1746,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyByteArrayObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1721
    functionDepth: 3
    functionLinenumber: 1721
    functionLinenumberEnd: 1750
    functionName: bytearray_pop_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyByteArray_Resize
    - PyErr_SetString
    - memmove
    - _canresize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_pop_impl(PyByteArrayObject *self, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1766,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1767,1
    - Dst: stringlib_find_char
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1769,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1771,1
    - Dst: _canresize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1774,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1777,1
    - Dst: PyByteArray_Resize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1762
    functionDepth: 3
    functionLinenumber: 1762
    functionLinenumberEnd: 1782
    functionName: bytearray_remove_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_find_char
    - PyByteArray_Resize
    - PyErr_SetString
    - memmove
    - _canresize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_remove_impl(PyByteArrayObject *self, int value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - myptr
    - mysize
    - argptr
    - argsize
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1786
    functionDepth: 0
    functionLinenumber: 1786
    functionLinenumberEnd: 1794
    functionName: lstrip_helper
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t lstrip_helper(const char *myptr, Py_ssize_t mysize,\n              const
      void *argptr, Py_ssize_t argsize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - myptr
    - mysize
    - argptr
    - argsize
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1804
    functionName: rstrip_helper
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t rstrip_helper(const char *myptr, Py_ssize_t mysize,\n              const
      void *argptr, Py_ssize_t argsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1831,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1836,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1837,1
    - Dst: lstrip_helper
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1838,1
    - Dst: rstrip_helper
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1842,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1844,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1845,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1817
    functionDepth: 2
    functionLinenumber: 1817
    functionLinenumberEnd: 1846
    functionName: bytearray_strip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - lstrip_helper
    - PyObject_GetBuffer
    - rstrip_helper
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_strip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1873,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1878,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1879,1
    - Dst: lstrip_helper
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1880,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1883,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1859
    functionDepth: 2
    functionLinenumber: 1859
    functionLinenumberEnd: 1885
    functionName: bytearray_lstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - lstrip_helper
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_lstrip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1912,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1917,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1918,1
    - Dst: rstrip_helper
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1919,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1921,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - self
    - bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1898
    functionDepth: 2
    functionLinenumber: 1898
    functionLinenumberEnd: 1923
    functionName: bytearray_rstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetBuffer
    - rstrip_helper
    - PyBuffer_Release
    - PyByteArray_FromStringAndSize
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rstrip_impl(PyByteArrayObject *self, PyObject *bytes)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1946,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyByteArrayObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1948
    functionName: bytearray_decode_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromEncodedObject
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbytearray_decode_impl(PyByteArrayObject *self, const char
      *encoding,\n                      const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1959
    functionName: bytearray_alloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_alloc(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_bytes_join
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable_of_bytes
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1979
    functionName: bytearray_join
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - stringlib_bytes_join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_join(PyByteArrayObject *self, PyObject *iterable_of_bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_splitlines
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1996,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1997,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2000
    functionName: bytearray_splitlines_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - stringlib_splitlines
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_splitlines_impl(PyByteArrayObject *self, int keepends)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_FromHex
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2019,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2021,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - type
    - string
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2025
    functionName: bytearray_fromhex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - _PyBytes_FromHex
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromhex_impl(PyTypeObject *type, PyObject *string)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2054,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2055,1
    - Dst: _Py_strhex_with_sep
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2057
    functionName: bytearray_hex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_with_sep
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_hex_impl(PyByteArrayObject *self, PyObject *sep, int bytes_per_sep)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2063,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2066,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2071,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2074,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2078,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2079,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2079,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2081,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2082,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2082,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2086,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2087,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2087,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2087,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2090,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2090,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2059
    functionDepth: 3
    functionLinenumber: 2059
    functionLinenumberEnd: 2093
    functionName: _common_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_BuildValue
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyUnicode_DecodeLatin1
    - Py_TYPE
    - Py_SIZE
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _common_reduce(PyByteArrayObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2106
    functionName: bytearray_reduce_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _common_reduce
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce_impl(PyByteArrayObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyByteArrayObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2122
    functionName: bytearray_reduce_ex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _common_reduce
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce_ex_impl(PyByteArrayObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2136,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2136,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyByteArrayObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2138
    functionName: bytearray_sizeof_impl
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_sizeof_impl(PyByteArrayObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2238,1
    - Dst: _PyBytes_FormatEx
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2240,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2240,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2235
    functionDepth: 6
    functionLinenumber: 2235
    functionLinenumberEnd: 2241
    functionName: bytearray_mod
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_Check
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - _PyBytes_FormatEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_mod(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2320,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2321,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - bytesiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2317
    functionDepth: 3
    functionLinenumber: 2317
    functionLinenumberEnd: 2323
    functionName: bytearrayiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void bytearrayiter_dealloc(bytesiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - bytesiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2330
    functionName: bytearrayiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int bytearrayiter_traverse(bytesiterobject *it, visitproc visit, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2338,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2342,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2342,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2344,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2345,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - bytesiterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 2337
        line_start: 2337
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    - condition: (PyByteArray_Check(seq))
      pos:
        line_end: 2341
        line_start: 2341
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    constantsTouched: []
    func_position:
      end: 2355
      start: 2332
    functionDepth: 1
    functionLinenumber: 2332
    functionLinenumberEnd: 2355
    functionName: bytearrayiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyByteArray_Check
    - PyByteArray_GET_SIZE
    - assert
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_next(bytesiterobject *it)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2362,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - bytesiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2368
    functionName: bytearrayiter_length_hint
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyByteArray_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_length_hint(bytesiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2376,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2378,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2378,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2381,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - bytesiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2373
    functionDepth: 1
    functionLinenumber: 2373
    functionLinenumberEnd: 2383
    functionName: bytearrayiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_reduce(bytesiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2388,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2389,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2394,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - bytesiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2385
    functionDepth: 1
    functionLinenumber: 2385
    functionLinenumberEnd: 2399
    functionName: bytearrayiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - PyByteArray_GET_SIZE
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearrayiter_setstate(bytesiterobject *it, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2451,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2452,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2455,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2459,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/bytearrayobject.c:2461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2463
    functionName: bytearray_iter
    functionSourceFile: /src/Python-3.8.3/Objects/bytearrayobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyByteArray_Check
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_iter(PyObject *seq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/exceptions.c:40,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:50,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: BaseException_new
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/exceptions.c:66,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:66,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:69,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: BaseException_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_XSETREF
    - Py_TYPE
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int BaseException_init(PyBaseExceptionObject *self, PyObject *args,
      PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:78,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:79,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:80,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:81,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: BaseException_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int BaseException_clear(PyBaseExceptionObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:89,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:90,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: BaseException_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - BaseException_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void BaseException_dealloc(PyBaseExceptionObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:97,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:98,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:99,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:100,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyBaseExceptionObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: BaseException_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int BaseException_traverse(PyBaseExceptionObject *self, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:108,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:110,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:112,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:112,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: BaseException_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - PyUnicode_FromString
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_str(PyBaseExceptionObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/exceptions.c:121,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:121,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:122,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:123,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:124,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: BaseException_repr
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyType_Name
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_repr(PyBaseExceptionObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:134,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:134,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:136,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: BaseException_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_reduce(PyBaseExceptionObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:152,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/exceptions.c:155,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Objects/exceptions.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - self
    - state
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 161
    functionName: BaseException_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    - PyDict_Next
    - PyDict_Check
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_setstate(PyObject *self, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Objects/exceptions.c:165,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 170
    functionName: BaseException_with_traceback
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyException_SetTraceback
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_with_traceback(PyObject *self, PyObject *tb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyBaseExceptionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: BaseException_get_args
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_get_args(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:200,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:203,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - val
    - Py_UNUSED(ignored)
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: BaseException_set_args
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PySequence_Tuple
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int BaseException_set_args(PyBaseExceptionObject *self, PyObject *val,
      void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyBaseExceptionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: BaseException_get_tb
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_get_tb(PyBaseExceptionObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:224,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:228,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:233,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - tb
    - Py_UNUSED(ignored)
    argTypes:
    - PyBaseExceptionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 236
    functionName: BaseException_set_tb
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyTraceBack_Check
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int BaseException_set_tb(PyBaseExceptionObject *self, PyObject *tb,
      void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyException_GetContext
      Src: /src/Python-3.8.3/Objects/exceptions.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: BaseException_get_context
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyException_GetContext
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_get_context(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:251,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:256,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:261,1
    - Dst: PyException_SetContext
      Src: /src/Python-3.8.3/Objects/exceptions.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - arg
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 265
    functionName: BaseException_set_context
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_SetContext
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int BaseException_set_context(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyException_GetCause
      Src: /src/Python-3.8.3/Objects/exceptions.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: BaseException_get_cause
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyException_GetCause
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      BaseException_get_cause(PyObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:280,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:284,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:285,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:290,1
    - Dst: PyException_SetCause
      Src: /src/Python-3.8.3/Objects/exceptions.c:292,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - arg
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: BaseException_set_cause
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_SetCause
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int BaseException_set_cause(PyObject *self, PyObject *arg, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: PyException_GetTraceback
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 3
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetTraceback(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_set_tb
      Src: /src/Python-3.8.3/Objects/exceptions.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: PyException_SetTraceback
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - BaseException_set_tb
    linkageType: ''
    returnType: int
    signature: int PyException_SetTraceback(PyObject *self, PyObject *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: PyException_GetCause
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetCause(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - cause
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: PyException_SetCause
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void PyException_SetCause(PyObject *self, PyObject *cause)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: PyException_GetContext
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyException_GetContext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: PyException_SetContext
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - Py_XSETREF
    linkageType: ''
    returnType: void
    signature: void PyException_SetContext(PyObject *self, PyObject *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: PyExceptionClass_Name
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PyExceptionClass_Name(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - EXCBASE
    - ','
    - EXCNAME
    - ','
    - EXCDOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 429
    functionName: SimpleExtendsException
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimpleExtendsException(EXCBASE, EXCNAME, EXCDOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - EXCBASE
    - ','
    - EXCNAME
    - ','
    - EXCSTORE
    - ','
    - EXCDOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: MiddlingExtendsException
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MiddlingExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCDOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - EXCBASE
    - ','
    - EXCNAME
    - ','
    - EXCSTORE
    - ','
    - EXCNEW
    - ','
    - EXCMETHODS
    - ','
    - EXCMEMBERS
    - ','
    - EXCGETSET
    - ','
    - EXCSTR
    - ','
    - EXCDOC
    - )
    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: 462
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 462
    functionName: ComplexExtendsException
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "ComplexExtendsException(EXCBASE, EXCNAME, EXCSTORE, EXCNEW, \\\n                                EXCMETHODS,
      EXCMEMBERS, EXCGETSET, \\\n                                EXCSTR, EXCDOC)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:498,1
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:501,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:503,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:505,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyStopIterationObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: StopIteration_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_GET_ITEM
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int StopIteration_init(PyStopIterationObject *self, PyObject *args,
      PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:516,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStopIterationObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: StopIteration_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int StopIteration_clear(PyStopIterationObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:523,1
    - Dst: StopIteration_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:524,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyStopIterationObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 526
    functionName: StopIteration_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - StopIteration_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void StopIteration_dealloc(PyStopIterationObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:531,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyStopIterationObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 533
    functionName: StopIteration_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: int StopIteration_traverse(PyStopIterationObject *self, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:562,1
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:564,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:570,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:570,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:571,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:571,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:574,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PySystemExitObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 578
    functionName: SystemExit_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyTuple_GET_ITEM
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int SystemExit_init(PySystemExitObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:583,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySystemExitObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 585
    functionName: SystemExit_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int SystemExit_clear(PySystemExitObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:590,1
    - Dst: SystemExit_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:591,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySystemExitObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 593
    functionName: SystemExit_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    - SystemExit_clear
    linkageType: ''
    returnType: void
    signature: void SystemExit_dealloc(PySystemExitObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:598,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PySystemExitObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 600
    functionName: SystemExit_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: int SystemExit_traverse(PySystemExitObject *self, visitproc visit,
      void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:632,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:635,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/exceptions.c:638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:643,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:645,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:646,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:648,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:649,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:651,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:652,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:653,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyImportErrorObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 658
    functionName: ImportError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyTuple_New
    - Py_XSETREF
    - Py_INCREF
    - PyArg_ParseTupleAndKeywords
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int ImportError_init(PyImportErrorObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:663,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:664,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:665,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyImportErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 667
    functionName: ImportError_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ImportError_clear(PyImportErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:672,1
    - Dst: ImportError_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:673,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyImportErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 675
    functionName: ImportError_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    - ImportError_clear
    linkageType: ''
    returnType: void
    signature: void ImportError_dealloc(PyImportErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:680,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:681,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:682,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyImportErrorObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 684
    functionName: ImportError_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: int ImportError_traverse(PyImportErrorObject *self, visitproc visit,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/exceptions.c:689,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:690,1
    - Dst: BaseException_str
      Src: /src/Python-3.8.3/Objects/exceptions.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyImportErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 686
    functionDepth: 6
    functionLinenumber: 686
    functionLinenumberEnd: 696
    functionName: ImportError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_str
    - PyUnicode_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_str(PyImportErrorObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/exceptions.c:703,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/exceptions.c:704,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Objects/exceptions.c:705,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:705,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/exceptions.c:708,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:709,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/exceptions.c:712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:713,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyImportErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 698
    functionDepth: 8
    functionLinenumber: 698
    functionLinenumberEnd: 725
    functionName: ImportError_getstate
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_New
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyDict_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_getstate(PyImportErrorObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ImportError_getstate
      Src: /src/Python-3.8.3/Objects/exceptions.c:733,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:738,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:738,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:740,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:740,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyImportErrorObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 728
    functionDepth: 9
    functionLinenumber: 728
    functionLinenumberEnd: 743
    functionName: ImportError_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_DECREF
    - PyTuple_Pack
    - ImportError_getstate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ImportError_reduce(PyImportErrorObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:819,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:822,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:827,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/exceptions.c:832,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/exceptions.c:833,1
    - Dst: winerror_to_errno
      Src: /src/Python-3.8.3/Objects/exceptions.c:840,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/exceptions.c:843,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:846,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:849,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:851,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:852,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:853,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:855,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 6
    argNames:
    - p_args
    - myerrno
    - strerror
    - filename
    - filename2
    - winerror
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 862
    functionName: oserror_parse_args
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - winerror_to_errno
    - PyArg_UnpackTuple
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: "int oserror_parse_args(PyObject **p_args,\n                   PyObject
      **myerrno, PyObject **strerror,\n                   PyObject **filename, PyObject
      **filename2\n#ifdef MS_WINDOWS\n                   , PyObject **winerror\n#endif\n
      \                 )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:874,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:878,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:879,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/exceptions.c:883,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/exceptions.c:884,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:888,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:892,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Objects/exceptions.c:899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:903,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:908,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:911,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:915,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:920,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 7
    argNames:
    - self
    - p_args
    - myerrno
    - strerror
    - filename
    - filename2
    - winerror
    argTypes:
    - PyOSErrorObject*
    - PyObject**
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 924
    functionName: oserror_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyNumber_Check
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_DECREF
    - Py_XSETREF
    - Py_XINCREF
    - Py_TYPE
    - PyNumber_AsSsize_t
    - PyTuple_GetSlice
    linkageType: ''
    returnType: int
    signature: "int oserror_init(PyOSErrorObject *self, PyObject **p_args,\n             PyObject
      *myerrno, PyObject *strerror,\n             PyObject *filename, PyObject *filename2\n#ifdef
      MS_WINDOWS\n             , PyObject *winerror\n#endif\n             )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/exceptions.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: ((PyObject *) type != PyExc_OSError)
      pos:
        line_end: 945
        line_start: 945
        source_file: /src/Python-3.8.3/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 950
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 950
    functionName: oserror_use_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int oserror_use_init(PyTypeObject *type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:962,1
    - Dst: oserror_use_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:964,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/exceptions.c:965,1
    - Dst: oserror_parse_args
      Src: /src/Python-3.8.3/Objects/exceptions.c:968,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:976,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/exceptions.c:979,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/exceptions.c:981,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:981,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/exceptions.c:984,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/exceptions.c:989,1
    - Dst: oserror_use_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:997,1
    - Dst: oserror_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:998,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:1006,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1011,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1015,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1016,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(newtype))
      pos:
        line_end: 980
        line_start: 980
        source_file: /src/Python-3.8.3/Objects/exceptions.c
    constantsTouched: []
    func_position:
      end: 1018
      start: 952
    functionDepth: 4
    functionLinenumber: 952
    functionLinenumberEnd: 1018
    functionName: OSError_new
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - oserror_init
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - Py_XDECREF
    - oserror_use_init
    - _PyArg_NoKeywords
    - PyType_Check
    - oserror_parse_args
    - assert
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: oserror_use_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:1029,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1029,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/exceptions.c:1033,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1033,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1036,1
    - Dst: oserror_parse_args
      Src: /src/Python-3.8.3/Objects/exceptions.c:1037,1
    - Dst: oserror_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:1044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1054,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyOSErrorObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1020
    functionDepth: 4
    functionLinenumber: 1020
    functionLinenumberEnd: 1056
    functionName: OSError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - oserror_init
    - Py_DECREF
    - Py_INCREF
    - oserror_use_init
    - _PyArg_NoKeywords
    - oserror_parse_args
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int OSError_init(PyOSErrorObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1061,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1062,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1063,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1064,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1066,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyOSErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1069
    functionName: OSError_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int OSError_clear(PyOSErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:1074,1
    - Dst: OSError_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1075,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyOSErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1071
    functionDepth: 3
    functionLinenumber: 1071
    functionLinenumberEnd: 1077
    functionName: OSError_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    - OSError_clear
    linkageType: ''
    returnType: void
    signature: void OSError_dealloc(PyOSErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1083,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1084,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1085,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1086,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1088,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyOSErrorObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1091
    functionName: OSError_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: "int OSError_traverse(PyOSErrorObject *self, visitproc visit,\n        void
      *arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1101,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1102,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1103,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1107,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1108,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1109,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1114,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1120,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1121,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1122,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1126,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1127,1
    - Dst: OR_NONE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1128,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1133,1
    - Dst: BaseException_str
      Src: /src/Python-3.8.3/Objects/exceptions.c:1135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyOSErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1093
    functionDepth: 6
    functionLinenumber: 1093
    functionLinenumberEnd: 1136
    functionName: OSError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_str
    - OR_NONE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_str(PyOSErrorObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1097
    functionName: OR_NONE
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OR_NONE(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1146,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:1148,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1152,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1153,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1154,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1156,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1157,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1160,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1161,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1169,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1170,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1173,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1174,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1177,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:1180,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1180,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/exceptions.c:1182,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyOSErrorObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1185
    functionName: OSError_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_Pack
    - Py_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_reduce(PyOSErrorObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:1191,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/exceptions.c:1194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - context
    argTypes:
    - PyOSErrorObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: OSError_written_get
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OSError_written_get(PyOSErrorObject *self, void *context)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:1202,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/exceptions.c:1209,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/exceptions.c:1210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - arg
    - context
    argTypes:
    - PyOSErrorObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1197
    functionDepth: 3
    functionLinenumber: 1197
    functionLinenumberEnd: 1214
    functionName: OSError_written_set
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyNumber_AsSsize_t
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int OSError_written_set(PyOSErrorObject *self, PyObject *arg, void
      *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1340,1
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:1342,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1346,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1346,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1347,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1347,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1350,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:1351,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1355,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/exceptions.c:1357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1358,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1362,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1362,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1363,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1363,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1365,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1365,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1366,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1366,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1368,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1368,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1369,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1369,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1371,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1371,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1372,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1374,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1382,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:1383,1
    - Dst: _report_missing_parentheses
      Src: /src/Python-3.8.3/Objects/exceptions.c:1384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PySyntaxErrorObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1336
    functionDepth: 5
    functionLinenumber: 1336
    functionLinenumberEnd: 1389
    functionName: SyntaxError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PySequence_Tuple
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_Check
    - _report_missing_parentheses
    - PyTuple_GET_ITEM
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int SyntaxError_init(PySyntaxErrorObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1394,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1395,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1396,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1397,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1398,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1399,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySyntaxErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1391
    functionDepth: 2
    functionLinenumber: 1391
    functionLinenumberEnd: 1401
    functionName: SyntaxError_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int SyntaxError_clear(PySyntaxErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:1406,1
    - Dst: SyntaxError_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1407,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySyntaxErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1403
    functionDepth: 3
    functionLinenumber: 1403
    functionLinenumberEnd: 1409
    functionName: SyntaxError_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_TYPE
    - SyntaxError_clear
    linkageType: ''
    returnType: void
    signature: void SyntaxError_dealloc(PySyntaxErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1414,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1415,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1416,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1417,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1418,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1419,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PySyntaxErrorObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1411
    functionDepth: 2
    functionLinenumber: 1411
    functionLinenumberEnd: 1421
    functionName: SyntaxError_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: int SyntaxError_traverse(PySyntaxErrorObject *self, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/exceptions.c:1433,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/exceptions.c:1435,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/exceptions.c:1436,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:1437,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/exceptions.c:1440,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/exceptions.c:1444,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1426
    functionDepth: 1
    functionLinenumber: 1426
    functionLinenumberEnd: 1449
    functionName: my_basename
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_INCREF
    - PyUnicode_Substring
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      my_basename(PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:1466,1
    - Dst: my_basename
      Src: /src/Python-3.8.3/Objects/exceptions.c:1467,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/exceptions.c:1473,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:1476,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1479,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/exceptions.c:1482,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1484,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1488,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/exceptions.c:1490,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySyntaxErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1452
    functionDepth: 5
    functionLinenumber: 1452
    functionLinenumberEnd: 1493
    functionName: SyntaxError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - my_basename
    - PyUnicode_FromFormat
    - PyObject_Str
    - PyLong_CheckExact
    - PyLong_AsLongAndOverflow
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      SyntaxError_str(PySyntaxErrorObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1560,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/exceptions.c:1561,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:1561,1
    - Dst: BaseException_str
      Src: /src/Python-3.8.3/Objects/exceptions.c:1563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1548
    functionDepth: 6
    functionLinenumber: 1548
    functionLinenumberEnd: 1564
    functionName: KeyError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_str
    - PyObject_Repr
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      KeyError_str(PyBaseExceptionObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/exceptions.c:1587,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:1591,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/exceptions.c:1592,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - attr
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1597
    functionName: get_string
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyBytes_Check
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_string(PyObject *attr, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/exceptions.c:1603,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:1607,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/exceptions.c:1608,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - attr
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1614
    functionName: get_unicode
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_unicode(PyObject *attr, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:1619,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - value
    argTypes:
    - PyObject**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1624
    functionName: set_unicodefromstring
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyUnicode_FromString
    linkageType: ''
    returnType: int
    signature: int set_unicodefromstring(PyObject **attr, const char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1626
    functionDepth: 2
    functionLinenumber: 1626
    functionLinenumberEnd: 1630
    functionName: PyUnicodeEncodeError_GetEncoding
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetEncoding(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1632
    functionDepth: 2
    functionLinenumber: 1632
    functionLinenumberEnd: 1636
    functionName: PyUnicodeDecodeError_GetEncoding
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetEncoding(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1642
    functionName: PyUnicodeEncodeError_GetObject
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetObject(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/Python-3.8.3/Objects/exceptions.c:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1648
    functionName: PyUnicodeDecodeError_GetObject
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetObject(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1654
    functionName: PyUnicodeTranslateError_GetObject
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetObject(PyObject *exc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1660,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:1665,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1672
    functionName: PyUnicodeEncodeError_GetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - get_unicode
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_GetStart(PyObject *exc, Py_ssize_t *start)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/Python-3.8.3/Objects/exceptions.c:1679,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1690
    functionName: PyUnicodeDecodeError_GetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - Py_DECREF
    - get_string
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_GetStart(PyObject *exc, Py_ssize_t *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Objects/exceptions.c:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1693
    functionDepth: 3
    functionLinenumber: 1693
    functionLinenumberEnd: 1697
    functionName: PyUnicodeTranslateError_GetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetStart
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_GetStart(PyObject *exc, Py_ssize_t *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1705
    functionName: PyUnicodeEncodeError_SetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetStart(PyObject *exc, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1713
    functionName: PyUnicodeDecodeError_SetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetStart(PyObject *exc, Py_ssize_t start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - start
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1716
    functionDepth: 0
    functionLinenumber: 1716
    functionLinenumberEnd: 1721
    functionName: PyUnicodeTranslateError_SetStart
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetStart(PyObject *exc, Py_ssize_t start)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1728,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:1733,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1724
    functionDepth: 2
    functionLinenumber: 1724
    functionLinenumberEnd: 1740
    functionName: PyUnicodeEncodeError_GetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - get_unicode
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_GetEnd(PyObject *exc, Py_ssize_t *end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_string
      Src: /src/Python-3.8.3/Objects/exceptions.c:1747,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1750,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1758
    functionName: PyUnicodeDecodeError_GetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBytes_GET_SIZE
    - Py_DECREF
    - get_string
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_GetEnd(PyObject *exc, Py_ssize_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Objects/exceptions.c:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1765
    functionName: PyUnicodeTranslateError_GetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetEnd
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_GetEnd(PyObject *exc, Py_ssize_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1768
    functionDepth: 0
    functionLinenumber: 1768
    functionLinenumberEnd: 1773
    functionName: PyUnicodeEncodeError_SetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetEnd(PyObject *exc, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1781
    functionName: PyUnicodeDecodeError_SetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetEnd(PyObject *exc, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1784
    functionDepth: 0
    functionLinenumber: 1784
    functionLinenumberEnd: 1789
    functionName: PyUnicodeTranslateError_SetEnd
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetEnd(PyObject *exc, Py_ssize_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1795
    functionName: PyUnicodeEncodeError_GetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeEncodeError_GetReason(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1802
    functionName: PyUnicodeDecodeError_GetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeDecodeError_GetReason(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unicode
      Src: /src/Python-3.8.3/Objects/exceptions.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1805
    functionDepth: 2
    functionLinenumber: 1805
    functionLinenumberEnd: 1809
    functionName: PyUnicodeTranslateError_GetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - get_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicodeTranslateError_GetReason(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_unicodefromstring
      Src: /src/Python-3.8.3/Objects/exceptions.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1817
    functionName: PyUnicodeEncodeError_SetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - set_unicodefromstring
    linkageType: ''
    returnType: int
    signature: int PyUnicodeEncodeError_SetReason(PyObject *exc, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_unicodefromstring
      Src: /src/Python-3.8.3/Objects/exceptions.c:1823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1820
    functionDepth: 2
    functionLinenumber: 1820
    functionLinenumberEnd: 1825
    functionName: PyUnicodeDecodeError_SetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - set_unicodefromstring
    linkageType: ''
    returnType: int
    signature: int PyUnicodeDecodeError_SetReason(PyObject *exc, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_unicodefromstring
      Src: /src/Python-3.8.3/Objects/exceptions.c:1831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - reason
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1833
    functionName: PyUnicodeTranslateError_SetReason
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - set_unicodefromstring
    linkageType: ''
    returnType: int
    signature: int PyUnicodeTranslateError_SetReason(PyObject *exc, const char *reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1839,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1840,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1841,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyUnicodeErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1836
    functionDepth: 2
    functionLinenumber: 1836
    functionLinenumberEnd: 1843
    functionName: UnicodeError_clear
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - BaseException_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int UnicodeError_clear(PyUnicodeErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:1848,1
    - Dst: UnicodeError_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:1849,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:1850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyUnicodeErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1845
    functionDepth: 3
    functionLinenumber: 1845
    functionLinenumberEnd: 1851
    functionName: UnicodeError_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - UnicodeError_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void UnicodeError_dealloc(PyUnicodeErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1856,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1857,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:1858,1
    - Dst: BaseException_traverse
      Src: /src/Python-3.8.3/Objects/exceptions.c:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyUnicodeErrorObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1853
    functionDepth: 2
    functionLinenumber: 1853
    functionLinenumberEnd: 1860
    functionName: UnicodeError_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - BaseException_traverse
    linkageType: ''
    returnType: int
    signature: int UnicodeError_traverse(PyUnicodeErrorObject *self, visitproc visit,
      void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:1886,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1891,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1892,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1893,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:1895,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1902,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1903,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1881
    functionDepth: 2
    functionLinenumber: 1881
    functionLinenumberEnd: 1907
    functionName: UnicodeEncodeError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_CLEAR
    - PyArg_ParseTuple
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int UnicodeEncodeError_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:1919,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:1923,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:1926,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:1930,1
    - Dst: PyUnicode_ReadChar
      Src: /src/Python-3.8.3/Objects/exceptions.c:1931,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1939,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:1947,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1955,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:1956,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1909
    functionDepth: 5
    functionLinenumber: 1909
    functionLinenumberEnd: 1958
    functionName: UnicodeEncodeError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_XDECREF
    - PyUnicode_FromFormat
    - PyUnicode_ReadChar
    - PyObject_Str
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeEncodeError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/exceptions.c:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - encoding
    - object
    - length
    - start
    - end
    - reason
    argTypes:
    - char*
    - Py_UNICODE*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 1981
    functionName: PyUnicodeEncodeError_Create
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicodeEncodeError_Create(\n    const char *encoding,
      const Py_UNICODE *object, Py_ssize_t length,\n    Py_ssize_t start, Py_ssize_t
      end, const char *reason)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:1993,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1998,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:1999,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2000,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:2002,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2009,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2010,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2011,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/exceptions.c:2013,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/exceptions.c:2015,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2017,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/exceptions.c:2017,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/exceptions.c:2018,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2025,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2026,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2027,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1988
    functionDepth: 3
    functionLinenumber: 1988
    functionLinenumberEnd: 2029
    functionName: UnicodeDecodeError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_CLEAR
    - Py_INCREF
    - Py_XSETREF
    - PyBytes_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyArg_ParseTuple
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: int UnicodeDecodeError_init(PyObject *self, PyObject *args, PyObject
      *kwds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2041,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:2045,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:2048,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2052,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/exceptions.c:2053,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:2054,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:2062,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2071,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2072,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2031
    functionDepth: 5
    functionLinenumber: 2031
    functionLinenumberEnd: 2074
    functionName: UnicodeDecodeError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_FromFormat
    - PyObject_Str
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeDecodeError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/exceptions.c:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - encoding
    - object
    - length
    - start
    - end
    - reason
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2097
    functionName: PyUnicodeDecodeError_Create
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 2
    functionsReached:
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicodeDecodeError_Create(\n    const char *encoding,
      const char *object, Py_ssize_t length,\n    Py_ssize_t start, Py_ssize_t end,
      const char *reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_init
      Src: /src/Python-3.8.3/Objects/exceptions.c:2108,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2111,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2112,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/exceptions.c:2114,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2121,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyUnicodeErrorObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2104
    functionDepth: 2
    functionLinenumber: 2104
    functionLinenumberEnd: 2125
    functionName: UnicodeTranslateError_init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_CLEAR
    - PyArg_ParseTuple
    - BaseException_init
    linkageType: ''
    returnType: int
    signature: "int UnicodeTranslateError_init(PyUnicodeErrorObject *self, PyObject
      *args,\n                           PyObject *kwds)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2137,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/exceptions.c:2141,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:2145,1
    - Dst: PyUnicode_ReadChar
      Src: /src/Python-3.8.3/Objects/exceptions.c:2146,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:2154,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:2161,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2128
    functionDepth: 5
    functionLinenumber: 2128
    functionLinenumberEnd: 2171
    functionName: UnicodeTranslateError_str
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_XDECREF
    - PyUnicode_FromFormat
    - PyUnicode_ReadChar
    - PyObject_Str
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      UnicodeTranslateError_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/exceptions.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - object
    - length
    - start
    - end
    - reason
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2195
    functionName: PyUnicodeTranslateError_Create
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicodeTranslateError_Create(\n    const Py_UNICODE
      *object, Py_ssize_t length,\n    Py_ssize_t start, Py_ssize_t end, const char
      *reason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/exceptions.c:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - object
    - start
    - end
    - reason
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2204
    functionName: _PyUnicodeTranslateError_Create
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicodeTranslateError_Create(\n    PyObject *object,\n
      \   Py_ssize_t start, Py_ssize_t end, const char *reason)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BaseException_new
      Src: /src/Python-3.8.3/Objects/exceptions.c:2272,1
    - Dst: BaseException_new
      Src: /src/Python-3.8.3/Objects/exceptions.c:2274,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:2277,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/exceptions.c:2284,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:2285,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2287
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2287
    functionName: MemoryError_new
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _Py_NewReference
    - _PyObject_GC_TRACK
    - PyTuple_New
    - BaseException_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      MemoryError_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/exceptions.c:2292,1
    - Dst: BaseException_clear
      Src: /src/Python-3.8.3/Objects/exceptions.c:2293,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyBaseExceptionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2289
    functionDepth: 2
    functionLinenumber: 2289
    functionLinenumberEnd: 2301
    functionName: MemoryError_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - BaseException_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void MemoryError_dealloc(PyBaseExceptionObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryError_new
      Src: /src/Python-3.8.3/Objects/exceptions.c:2311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2303
    functionDepth: 3
    functionLinenumber: 2303
    functionLinenumberEnd: 2321
    functionName: preallocate_memerrors
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - MemoryError_new
    linkageType: ''
    returnType: int
    signature: int preallocate_memerrors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2323
    functionDepth: 1
    functionLinenumber: 2323
    functionLinenumberEnd: 2331
    functionName: free_preallocated_memerrors
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void free_preallocated_memerrors(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2515,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2516,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2517,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2518,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2519,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2520,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2521,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2522,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2523,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2524,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2525,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2526,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2527,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2528,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2529,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2530,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2531,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2532,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2533,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2534,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2535,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2536,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2537,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2538,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2539,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2540,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2541,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2542,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2543,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2544,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2545,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2546,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2547,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2548,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2549,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2550,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2551,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2552,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2553,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2554,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2555,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2556,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2557,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2558,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2559,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2560,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2561,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2562,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2563,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2566,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2568,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2569,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2570,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2571,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2572,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2573,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2574,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2575,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2576,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2577,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2578,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2579,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2580,1
    - Dst: PRE_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2581,1
    - Dst: preallocate_memerrors
      Src: /src/Python-3.8.3/Objects/exceptions.c:2583,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2584,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/exceptions.c:2589,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2591,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2595,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2596,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2597,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2598,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2599,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2601,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2603,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2604,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2605,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2606,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2607,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2608,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2609,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2610,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2611,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2612,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2613,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2614,1
    - Dst: ADD_ERRNO
      Src: /src/Python-3.8.3/Objects/exceptions.c:2615,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/exceptions.c:2617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2495
    functionDepth: 4
    functionLinenumber: 2495
    functionLinenumberEnd: 2621
    functionName: _PyExc_Init
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - ADD_ERRNO
    - _PyStatus_ERR
    - preallocate_memerrors
    - _PyStatus_OK
    - PRE_INIT
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyExc_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2505
    functionName: PRE_INIT
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRE_INIT(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE
    - ','
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2506
    functionDepth: 0
    functionLinenumber: 2506
    functionLinenumberEnd: 2514
    functionName: ADD_ERRNO
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ERRNO(TYPE, CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Objects/exceptions.c:2645,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2647,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2650,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2651,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2652,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2653,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2654,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2655,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2656,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2657,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2658,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2659,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2660,1
    - Dst: INIT_ALIAS
      Src: /src/Python-3.8.3/Objects/exceptions.c:2661,1
    - Dst: INIT_ALIAS
      Src: /src/Python-3.8.3/Objects/exceptions.c:2662,1
    - Dst: INIT_ALIAS
      Src: /src/Python-3.8.3/Objects/exceptions.c:2664,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2666,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2667,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2668,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2669,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2670,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2671,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2672,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2673,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2674,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2675,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2676,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2677,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2678,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2679,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2680,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2681,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2682,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2683,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2684,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2685,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2686,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2687,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2688,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2689,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2690,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2691,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2692,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2693,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2694,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2695,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2696,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2697,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2698,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2699,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2700,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2701,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2702,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2703,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2706,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2708,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2709,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2710,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2711,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2712,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2713,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2714,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2715,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2716,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2717,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2718,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2719,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2720,1
    - Dst: POST_INIT
      Src: /src/Python-3.8.3/Objects/exceptions.c:2721,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/exceptions.c:2723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 1
    argNames:
    - bltinmod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2727
    functionName: _PyBuiltins_AddExceptions
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDict
    - _PyStatus_ERR
    - POST_INIT
    - INIT_ALIAS
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyBuiltins_AddExceptions(PyObject *bltinmod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2628
    functionDepth: 0
    functionLinenumber: 2628
    functionLinenumberEnd: 2632
    functionName: POST_INIT
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POST_INIT(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2633
    functionDepth: 0
    functionLinenumber: 2633
    functionLinenumberEnd: 2642
    functionName: INIT_ALIAS
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_ALIAS(NAME, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_preallocated_memerrors
      Src: /src/Python-3.8.3/Objects/exceptions.c:2732,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2729
    functionDepth: 2
    functionLinenumber: 2729
    functionLinenumberEnd: 2734
    functionName: _PyExc_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - free_preallocated_memerrors
    linkageType: ''
    returnType: void
    signature: void _PyExc_Fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/exceptions.c:2777,1
    - Dst: PyType_SUPPORTS_WEAKREFS
      Src: /src/Python-3.8.3/Objects/exceptions.c:2786,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/exceptions.c:2798,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Objects/exceptions.c:2803,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2805,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/exceptions.c:2808,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/exceptions.c:2808,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/exceptions.c:2811,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/exceptions.c:2816,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2818,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/exceptions.c:2824,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Objects/exceptions.c:2839,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2840,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/exceptions.c:2844,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/exceptions.c:2846,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Objects/exceptions.c:2848,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/exceptions.c:2849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2852,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/exceptions.c:2856,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2857,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2858,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2859,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/exceptions.c:2860,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Objects/exceptions.c:2861,1
    - Dst: PyException_SetCause
      Src: /src/Python-3.8.3/Objects/exceptions.c:2862,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/exceptions.c:2863,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2764
    functionDepth: 3
    functionLinenumber: 2764
    functionLinenumberEnd: 2865
    functionName: _PyErr_TrySetFromCause
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyErr_Fetch
    - PyException_SetTraceback
    - PyException_SetCause
    - _PyObject_GetDictPtr
    - PyErr_NormalizeException
    - PyErr_Format
    - PyUnicode_FromFormatV
    - Py_TYPE
    - PyType_SUPPORTS_WEAKREFS
    - PyErr_Restore
    - PyTuple_GET_ITEM
    - va_end
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_TrySetFromCause(const char *format, ...)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:2899,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Objects/exceptions.c:2901,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/exceptions.c:2909,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2914,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2916,1
    - Dst: _PyUnicode_XStrip
      Src: /src/Python-3.8.3/Objects/exceptions.c:2920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2922,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:2927,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/exceptions.c:2929,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/exceptions.c:2932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2936,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:2940,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PySyntaxErrorObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2942
    functionName: _set_legacy_print_statement_msg
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyUnicode_FindChar
    - Py_XSETREF
    - PyUnicode_Substring
    - PyUnicode_FromFormat
    - _PyUnicode_XStrip
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int _set_legacy_print_statement_msg(PySyntaxErrorObject *self, Py_ssize_t
      start)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:2954,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/exceptions.c:2955,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/exceptions.c:2956,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/exceptions.c:2960,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/exceptions.c:2961,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2972,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/Python-3.8.3/Objects/exceptions.c:2977,1
    - Dst: _set_legacy_print_statement_msg
      Src: /src/Python-3.8.3/Objects/exceptions.c:2983,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2988,1
    - Dst: PyUnicode_Tailmatch
      Src: /src/Python-3.8.3/Objects/exceptions.c:2993,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/exceptions.c:2998,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/exceptions.c:3003,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - self
    - start
    argTypes:
    - PySyntaxErrorObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2944
    functionDepth: 2
    functionLinenumber: 2944
    functionLinenumberEnd: 3008
    functionName: _check_for_legacy_statements
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_UNICODE_ISSPACE
    - PyUnicode_READ
    - Py_XSETREF
    - PyUnicode_Tailmatch
    - _set_legacy_print_statement_msg
    - PyUnicode_InternFromString
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int _check_for_legacy_statements(PySyntaxErrorObject *self, Py_ssize_t
      start)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/exceptions.c:3015,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Objects/exceptions.c:3019,1
    - Dst: _check_for_legacy_statements
      Src: /src/Python-3.8.3/Objects/exceptions.c:3029,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Objects/exceptions.c:3038,1
    - Dst: _check_for_legacy_statements
      Src: /src/Python-3.8.3/Objects/exceptions.c:3045,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - self
    argTypes:
    - PySyntaxErrorObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3010
    functionDepth: 3
    functionLinenumber: 3010
    functionLinenumberEnd: 3051
    functionName: _report_missing_parentheses
    functionSourceFile: /src/Python-3.8.3/Objects/exceptions.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FindChar
    - PyUnicode_GET_LENGTH
    - _check_for_legacy_statements
    linkageType: ''
    returnType: int
    signature: int _report_missing_parentheses(PySyntaxErrorObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: VISIBLE_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIBLE_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: VISIBLE_SIZE_TP
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIBLE_SIZE_TP(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: REAL_SIZE_TP
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REAL_SIZE_TP(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: REAL_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REAL_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: UNNAMED_FIELDS_TP
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNNAMED_FIELDS_TP(tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: UNNAMED_FIELDS
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNNAMED_FIELDS(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE_TP
      Src: /src/Python-3.8.3/Objects/structseq.c:43,1
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Objects/structseq.c:45,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:50,1
    - Dst: VISIBLE_SIZE_TP
      Src: /src/Python-3.8.3/Objects/structseq.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: PyStructSequence_New
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 18
    functionsReached:
    - VISIBLE_SIZE_TP
    - Py_SIZE
    - PyObject_GC_NewVar
    - REAL_SIZE_TP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStructSequence_New(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Objects/structseq.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - op
    - i
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: PyStructSequence_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_SET_ITEM
    linkageType: ''
    returnType: void
    signature: void PyStructSequence_SetItem(PyObject* op, Py_ssize_t i, PyObject*
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Objects/structseq.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: PyStructSequence_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStructSequence_GetItem(PyObject* op, Py_ssize_t i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:74,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/structseq.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - visit
    - arg
    argTypes:
    - PyStructSequence*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: structseq_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int structseq_traverse(PyStructSequence *obj, visitproc visit, void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/structseq.c:86,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/structseq.c:88,1
    - Dst: REAL_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:89,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:91,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/structseq.c:93,1
    - Dst: PyType_GetFlags
      Src: /src/Python-3.8.3/Objects/structseq.c:94,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyStructSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: structseq_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - PyObject_GC_Del
    - PyObject_GC_UnTrack
    - Py_DECREF
    - PyType_GetFlags
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void structseq_dealloc(PyStructSequence *obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/structseq.c:121,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/structseq.c:127,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/structseq.c:128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:131,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:135,1
    - Dst: VISIBLE_SIZE_TP
      Src: /src/Python-3.8.3/Objects/structseq.c:136,1
    - Dst: REAL_SIZE_TP
      Src: /src/Python-3.8.3/Objects/structseq.c:137,1
    - Dst: UNNAMED_FIELDS_TP
      Src: /src/Python-3.8.3/Objects/structseq.c:138,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/structseq.c:142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:145,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/structseq.c:150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:153,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/structseq.c:159,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:162,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Objects/structseq.c:167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:169,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/structseq.c:173,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/structseq.c:174,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Objects/structseq.c:178,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/structseq.c:184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:188,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/structseq.c:189,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 3
    argNames:
    - type
    - arg
    - dict
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 191
    functionName: structseq_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - VISIBLE_SIZE_TP
    - Py_DECREF
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyDict_Check
    - PyStructSequence_New
    - _PyObject_GC_TRACK
    - PyErr_Format
    - PySequence_Fast
    - UNNAMED_FIELDS_TP
    - PyDict_GetItemString
    - PySequence_Fast_GET_SIZE
    - REAL_SIZE_TP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_new_impl(PyTypeObject *type, PyObject *arg, PyObject *dict)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/structseq.c:197,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Objects/structseq.c:201,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/structseq.c:202,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/structseq.c:208,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/structseq.c:211,1
    - Dst: VISIBLE_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:212,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/structseq.c:214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:218,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/structseq.c:220,1
    - Dst: VISIBLE_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:224,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/structseq.c:227,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/structseq.c:235,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Objects/structseq.c:240,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/structseq.c:240,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/structseq.c:244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:248,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/structseq.c:250,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Objects/structseq.c:254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/structseq.c:255,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/structseq.c:256,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/structseq.c:260,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:264,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/structseq.c:267,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/structseq.c:271,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/structseq.c:274,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyStructSequence*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/Python-3.8.3/Objects/structseq.c
    constantsTouched: []
    func_position:
      end: 276
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 276
    functionName: structseq_repr
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteChar
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_WriteASCIIString
    - PyObject_Repr
    - strlen
    - Py_TYPE
    - PyUnicode_DecodeUTF8
    - PyErr_Format
    - _PyUnicodeWriter_Finish
    - VISIBLE_SIZE
    - assert
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_repr(PyStructSequence *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REAL_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:287,1
    - Dst: VISIBLE_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:288,1
    - Dst: UNNAMED_FIELDS
      Src: /src/Python-3.8.3/Objects/structseq.c:289,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/structseq.c:290,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/structseq.c:294,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/structseq.c:299,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Objects/structseq.c:300,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/structseq.c:304,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/structseq.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:307,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:312,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyStructSequence*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 315
    functionName: structseq_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - REAL_SIZE
    - Py_BuildValue
    - Py_DECREF
    - UNNAMED_FIELDS
    - PyDict_New
    - Py_TYPE
    - _PyTuple_FromArray
    - VISIBLE_SIZE
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_reduce(PyStructSequence* self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - desc
    - n_unnamed_members
    argTypes:
    - PyStructSequence_Desc*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 333
    functionName: count_members
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t count_members(PyStructSequence_Desc *desc, Py_ssize_t *n_unnamed_members)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:353,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:354,1
    - Dst: SET_DICT_FROM_SIZE
      Src: /src/Python-3.8.3/Objects/structseq.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - desc
    - dict
    - n_members
    - n_unnamed_members
    argTypes:
    - PyStructSequence_Desc*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 357
    functionName: initialize_structseq_dict
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - SET_DICT_FROM_SIZE
    linkageType: ''
    returnType: int
    signature: "int initialize_structseq_dict(PyStructSequence_Desc *desc, PyObject*
      dict,\n                          Py_ssize_t n_members, Py_ssize_t n_unnamed_members)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: SET_DICT_FROM_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_DICT_FROM_SIZE(key, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - desc
    - members
    - n_members
    argTypes:
    - PyStructSequence_Desc*
    - PyMemberDef*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 380
    functionName: initialize_members
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void initialize_members(PyStructSequence_Desc *desc, PyMemberDef*
      members,\n                   Py_ssize_t n_members)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/structseq.c:392,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/structseq.c:397,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/structseq.c:398,1
    - Dst: count_members
      Src: /src/Python-3.8.3/Objects/structseq.c:414,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/structseq.c:415,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/structseq.c:417,1
    - Dst: initialize_members
      Src: /src/Python-3.8.3/Objects/structseq.c:420,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/structseq.c:423,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/structseq.c:424,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/structseq.c:427,1
    - Dst: initialize_structseq_dict
      Src: /src/Python-3.8.3/Objects/structseq.c:429,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/structseq.c:431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 437
    functionName: PyStructSequence_InitType2
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 10
    functionsReached:
    - PyType_Ready
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - PyMem_NEW
    - PyErr_BadInternalCall
    - count_members
    - PyErr_NoMemory
    - initialize_structseq_dict
    - initialize_members
    - _Py_ForgetReference
    - PyMem_FREE
    linkageType: ''
    returnType: int
    signature: int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc
      *desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Objects/structseq.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - desc
    argTypes:
    - PyTypeObject*
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: PyStructSequence_InitType
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_InitType2
    linkageType: ''
    returnType: void
    signature: void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc
      *desc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: count_members
      Src: /src/Python-3.8.3/Objects/structseq.c:456,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/structseq.c:457,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/structseq.c:459,1
    - Dst: initialize_members
      Src: /src/Python-3.8.3/Objects/structseq.c:462,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/structseq.c:483,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/structseq.c:485,1
    - Dst: PyType_FromSpecWithBases
      Src: /src/Python-3.8.3/Objects/structseq.c:488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:489,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/structseq.c:490,1
    - Dst: initialize_structseq_dict
      Src: /src/Python-3.8.3/Objects/structseq.c:495,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/structseq.c:497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - desc
    argTypes:
    - PyStructSequence_Desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 502
    functionName: PyStructSequence_NewType
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyType_FromSpecWithBases
    - PyErr_NoMemory
    - PyMem_NEW
    - count_members
    - PyTuple_Pack
    - initialize_structseq_dict
    - initialize_members
    - PyMem_FREE
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      PyStructSequence_NewType(PyStructSequence_Desc *desc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/structseq.c:506,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/structseq.c:507,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/structseq.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: _PyStructSequence_Init
    functionSourceFile: /src/Python-3.8.3/Objects/structseq.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    linkageType: ''
    returnType: int
    signature: int _PyStructSequence_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: gettyperecord
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: _PyUnicode_TypeRecord
    signature: '_PyUnicode_TypeRecord *

      gettyperecord(Py_UCS4 code)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: _PyUnicode_ToTitlecase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 _PyUnicode_ToTitlecase(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: _PyUnicode_IsTitlecase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsTitlecase(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: _PyUnicode_IsXidStart
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsXidStart(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: _PyUnicode_IsXidContinue
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsXidContinue(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: _PyUnicode_ToDecimalDigit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToDecimalDigit(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_ToDecimalDigit
      Src: /src/Python-3.8.3/Objects/unicodectype.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: _PyUnicode_IsDecimalDigit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToDecimalDigit
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsDecimalDigit(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: _PyUnicode_ToDigit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToDigit(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_ToDigit
      Src: /src/Python-3.8.3/Objects/unicodectype.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: _PyUnicode_IsDigit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToDigit
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsDigit(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: _PyUnicode_IsNumeric
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsNumeric(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: _PyUnicode_IsPrintable
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 1
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsPrintable(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: _PyUnicode_IsLowercase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsLowercase(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: _PyUnicode_IsUppercase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsUppercase(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: _PyUnicode_ToUppercase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 _PyUnicode_ToUppercase(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: _PyUnicode_ToLowercase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 _PyUnicode_ToLowercase(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 225
    functionName: _PyUnicode_ToLowerFull
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToLowerFull(Py_UCS4 ch, Py_UCS4 *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: _PyUnicode_ToTitleFull
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToTitleFull(Py_UCS4 ch, Py_UCS4 *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: _PyUnicode_ToUpperFull
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToUpperFull(Py_UCS4 ch, Py_UCS4 *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:261,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/Python-3.8.3/Objects/unicodectype.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ch
    - res
    argTypes:
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: _PyUnicode_ToFoldedFull
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    - _PyUnicode_ToLowerFull
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_ToFoldedFull(Py_UCS4 ch, Py_UCS4 *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 279
    functionName: _PyUnicode_IsCased
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsCased(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: _PyUnicode_IsCaseIgnorable
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsCaseIgnorable(Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettyperecord
      Src: /src/Python-3.8.3/Objects/unicodectype.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: _PyUnicode_IsAlpha
    functionSourceFile: /src/Python-3.8.3/Objects/unicodectype.c
    functionUses: 0
    functionsReached:
    - gettyperecord
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsAlpha(Py_UCS4 ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/boolobject.c:18,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/boolobject.c:21,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/boolobject.c:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 24
    functionName: bool_repr
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/boolobject.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ok
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: PyBool_FromLong
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 92
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyBool_FromLong(long ok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/boolobject.c:48,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/boolobject.c:50,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/boolobject.c:52,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/boolobject.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: bool_new
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - PyObject_IsTrue
    - PyBool_FromLong
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:63,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:63,1
    - Dst: tp_as_number::nb_and
      Src: /src/Python-3.8.3/Objects/boolobject.c:64,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/boolobject.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: bool_and
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - tp_as_number::nb_and
    - PyBool_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_and(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:71,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:71,1
    - Dst: tp_as_number::nb_or
      Src: /src/Python-3.8.3/Objects/boolobject.c:72,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/boolobject.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: bool_or
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyBool_Check
    - tp_as_number::nb_or
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:79,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/boolobject.c:79,1
    - Dst: tp_as_number::nb_xor
      Src: /src/Python-3.8.3/Objects/boolobject.c:80,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/boolobject.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: bool_xor
    functionSourceFile: /src/Python-3.8.3/Objects/boolobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - tp_as_number::nb_xor
    - PyBool_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bool_xor(PyObject *a, PyObject *b)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:47,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:48,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:63,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Objects/listobject.c:70,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:72,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - self
    - newsize
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->ob_item != NULL || newsize == 0)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: list_resize
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_NoMemory
    - Py_SIZE
    - PyMem_Realloc
    linkageType: ''
    returnType: int
    signature: int list_resize(PyListObject *self, Py_ssize_t newsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:84,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:85,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/listobject.c:87,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - self
    - size
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts:
    - condition: (self->ob_item == NULL)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (size > 0)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: list_preallocate_exact
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_New
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int list_preallocate_exact(PyListObject *self, Py_ssize_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Objects/listobject.c:106,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/listobject.c:111,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/listobject.c:113,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/listobject.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: show_alloc
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:134,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/listobject.c:134,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/listobject.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyList_CheckExact(op))
      pos:
        line_end: 133
        line_start: 133
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: PyList_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - assert
    - PyList_CheckExact
    - PyObject_GC_Del
    linkageType: ''
    returnType: int
    signature: int PyList_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyList_ClearFreeList
      Src: /src/Python-3.8.3/Objects/listobject.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: PyList_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyList_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/listobject.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: _PyList_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyList_DebugMallocStats(FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_AtExit
      Src: /src/Python-3.8.3/Objects/listobject.c:162,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:168,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/listobject.c:174,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/listobject.c:179,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Objects/listobject.c:189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:191,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:192,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:195,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/listobject.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 199
    functionName: PyList_New
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 129
    functionsReached:
    - Py_DECREF
    - PyMem_Calloc
    - _Py_NewReference
    - PyErr_NoMemory
    - PyErr_BadInternalCall
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_AtExit
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_New(Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/listobject.c:204,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:208,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/listobject.c:209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:211,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (op->ob_item == NULL)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: list_new_prealloc
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_DECREF
    - PyErr_NoMemory
    - PyList_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_new_prealloc(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:221,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:222,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: PyList_Size
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 15
    functionsReached:
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyList_Size(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - limit
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 240
    functionName: valid_index
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_index(Py_ssize_t i, Py_ssize_t limit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:247,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:248,1
    - Dst: valid_index
      Src: /src/Python-3.8.3/Objects/listobject.c:251,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:251,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/listobject.c:253,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/listobject.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 262
    functionName: PyList_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 10
    functionsReached:
    - PyUnicode_FromString
    - valid_index
    - PyErr_BadInternalCall
    - PyList_Check
    - PyErr_SetObject
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_GetItem(PyObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:269,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:270,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:271,1
    - Dst: valid_index
      Src: /src/Python-3.8.3/Objects/listobject.c:274,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:274,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:275,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:276,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/listobject.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - op
    - i
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 283
    functionName: PyList_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 5
    functionsReached:
    - valid_index
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyList_Check
    - PyErr_SetString
    - Py_SIZE
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int PyList_SetItem(PyObject *op, Py_ssize_t i,\n               PyObject
      *newitem)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:288,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:291,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:295,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:300,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - self
    - where
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 316
    functionName: ins1
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - list_resize
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:321,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:322,1
    - Dst: ins1
      Src: /src/Python-3.8.3/Objects/listobject.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - op
    - where
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: PyList_Insert
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 4
    functionsReached:
    - PyErr_BadInternalCall
    - PyList_Check
    - ins1
    linkageType: ''
    returnType: int
    signature: int PyList_Insert(PyObject *op, Py_ssize_t where, PyObject *newitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:331,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:333,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:335,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:340,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:343,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 346
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 346
    functionName: app1
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - list_resize
    - Py_INCREF
    - PyList_SET_ITEM
    - PyErr_SetString
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int app1(PyListObject *self, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:351,1
    - Dst: app1
      Src: /src/Python-3.8.3/Objects/listobject.c:352,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - op
    - newitem
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 355
    functionName: PyList_Append
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 79
    functionsReached:
    - app1
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Append(PyObject *op, PyObject *newitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/listobject.c:363,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/listobject.c:364,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:370,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:372,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:374,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/listobject.c:376,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/listobject.c:379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 381
    functionName: list_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - PyMem_FREE
    - Py_TYPE
    - PyList_CheckExact
    - Py_SIZE
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void list_dealloc(PyListObject *op)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:390,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/listobject.c:391,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/listobject.c:394,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/listobject.c:396,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/listobject.c:399,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:402,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/listobject.c:404,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:409,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/listobject.c:411,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/listobject.c:415,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/listobject.c:419,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:423,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/listobject.c:427,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/listobject.c:430,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/listobject.c:431,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/listobject.c:434,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/listobject.c:435,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 437
    functionName: list_repr
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteChar
    - PyUnicode_FromString
    - _PyUnicodeWriter_WriteStr
    - Py_ReprLeave
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_WriteASCIIString
    - Py_ReprEnter
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyObject_Repr
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repr(PyListObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: list_length
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t list_length(PyListObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:452,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:453,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:454,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:455,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - el
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 459
    functionName: list_contains
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyObject_RichCompareBool
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int list_contains(PyListObject *a, PyObject *el)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/Python-3.8.3/Objects/listobject.c:464,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:464,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/listobject.c:466,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/listobject.c:471,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: list_item
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_INCREF
    - PyErr_SetObject
    - Py_SIZE
    - valid_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_item(PyListObject *a, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_new_prealloc
      Src: /src/Python-3.8.3/Objects/listobject.c:485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:493,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 498
    functionName: list_slice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_new_prealloc
    - Py_SIZE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:503,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:504,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:510,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:511,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:516,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:517,1
    - Dst: list_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 500
    functionDepth: 4
    functionLinenumber: 500
    functionLinenumberEnd: 520
    functionName: PyList_GetSlice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - list_slice
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_GetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:529,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/listobject.c:530,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:536,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:536,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:537,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:538,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:538,1
    - Dst: list_new_prealloc
      Src: /src/Python-3.8.3/Objects/listobject.c:539,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:545,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:547,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:551,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:552,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:554,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - a
    - bb
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 560
    functionName: list_concat
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_new_prealloc
    - Py_INCREF
    - PyErr_NoMemory
    - PyList_Check
    - PyErr_Format
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_concat(PyListObject *a, PyObject *bb)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:572,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:573,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:574,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/listobject.c:576,1
    - Dst: list_new_prealloc
      Src: /src/Python-3.8.3/Objects/listobject.c:577,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:581,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:586,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:593,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:595,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 602
    functionName: list_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_new_prealloc
    - Py_INCREF
    - PyErr_NoMemory
    - PyList_New
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_repeat(PyListObject *a, Py_ssize_t n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:612,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:617,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 625
    functionName: _list_clear
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - Py_XDECREF
    - PyMem_FREE
    linkageType: ''
    returnType: int
    signature: int _list_clear(PyListObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 613
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(a)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: list_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:659,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:659,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:663,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/listobject.c:666,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:669,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/Python-3.8.3/Objects/listobject.c:670,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:674,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:675,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:679,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:680,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:683,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:685,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:686,1
    - Dst: _list_clear
      Src: /src/Python-3.8.3/Objects/listobject.c:687,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/listobject.c:695,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:697,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:701,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:706,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:707,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:708,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:708,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:709,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:710,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:716,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:717,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:720,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:725,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:729,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:733,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:734,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 4
    argNames:
    - a
    - ilow
    - ihigh
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (norig >= 0)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 737
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 737
    functionName: list_ass_slice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyMem_MALLOC
    - list_resize
    - list_ass_slice
    - _list_clear
    - PyErr_NoMemory
    - Py_XINCREF
    - PyMem_FREE
    - list_slice
    - PySequence_Fast
    - memmove
    - PySequence_Fast_ITEMS
    - assert
    - Py_SIZE
    - Py_XDECREF
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int list_ass_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh,
      PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:742,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:743,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - a
    - ilow
    - ihigh
    - v
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 739
    functionDepth: 5
    functionLinenumber: 739
    functionLinenumberEnd: 747
    functionName: PyList_SetSlice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 7
    functionsReached:
    - list_ass_slice
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_SetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh,
      PyObject *v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:756,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:758,1
    - Dst: _list_clear
      Src: /src/Python-3.8.3/Objects/listobject.c:763,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:764,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:769,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:772,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:780,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:784,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - self
    - n
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 786
    functionName: list_inplace_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_resize
    - Py_INCREF
    - _list_clear
    - PyErr_NoMemory
    - PyList_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_inplace_repeat(PyListObject *self, Py_ssize_t n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid_index
      Src: /src/Python-3.8.3/Objects/listobject.c:791,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:791,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:792,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:797,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:798,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/listobject.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - a
    - i
    - v
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 788
    functionDepth: 5
    functionLinenumber: 788
    functionLinenumberEnd: 801
    functionName: list_ass_item
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - list_ass_slice
    - Py_SIZE
    - PyErr_SetString
    - valid_index
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int list_ass_item(PyListObject *a, Py_ssize_t i, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ins1
      Src: /src/Python-3.8.3/Objects/listobject.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - index
    - object
    argTypes:
    - PyListObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: list_insert_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - ins1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_insert_impl(PyListObject *self, Py_ssize_t index, PyObject *object)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _list_clear
      Src: /src/Python-3.8.3/Objects/listobject.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 834
    functionName: list_clear_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _list_clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_clear_impl(PyListObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:846,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 842
    functionDepth: 4
    functionLinenumber: 842
    functionLinenumberEnd: 847
    functionName: list_copy_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - list_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_copy_impl(PyListObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: app1
      Src: /src/Python-3.8.3/Objects/listobject.c:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - object
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: list_append
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - app1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_append(PyListObject *self, PyObject *object)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Objects/listobject.c:891,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/listobject.c:891,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/listobject.c:894,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:900,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:903,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:906,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:907,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:908,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/Python-3.8.3/Objects/listobject.c:917,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:924,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/listobject.c:928,1
    - Dst: PyObject_LengthHint
      Src: /src/Python-3.8.3/Objects/listobject.c:934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:936,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:939,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:949,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:952,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Objects/listobject.c:957,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/listobject.c:959,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/listobject.c:960,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/listobject.c:961,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:967,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:969,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:969,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:970,1
    - Dst: app1
      Src: /src/Python-3.8.3/Objects/listobject.c:973,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:974,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:981,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:982,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:986,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:990,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (m < PY_SSIZE_T_MAX - n)
      pos:
        line_end: 905
        line_start: 905
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 992
      start: 876
    functionDepth: 4
    functionLinenumber: 876
    functionLinenumberEnd: 992
    functionName: list_extend
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - app1
    - PyErr_Clear
    - PyObject_LengthHint
    - assert
    - PyErr_Occurred
    - Py_DECREF
    - list_resize
    - Py_INCREF
    - PyList_SET_ITEM
    - PyObject_GetIter
    - iternext
    - PyErr_ExceptionMatches
    - PySequence_Fast
    - PyTuple_CheckExact
    - PySequence_Fast_ITEMS
    - PyList_CheckExact
    - Py_SIZE
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_extend(PyListObject *self, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_extend
      Src: /src/Python-3.8.3/Objects/listobject.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 5
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: _PyList_Extend
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 1
    functionsReached:
    - list_extend
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyList_Extend(PyListObject *self, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_extend
      Src: /src/Python-3.8.3/Objects/listobject.c:1005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:1008,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:1009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - other
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1000
    functionDepth: 5
    functionLinenumber: 1000
    functionLinenumberEnd: 1011
    functionName: list_inplace_concat
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_extend
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_inplace_concat(PyListObject *self, PyObject *other)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:1031,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:1033,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:1037,1
    - Dst: valid_index
      Src: /src/Python-3.8.3/Objects/listobject.c:1038,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:1038,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:1039,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:1043,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:1044,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:1044,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:1050,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:1051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:1053,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyListObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1024
    functionDepth: 5
    functionLinenumber: 1024
    functionLinenumberEnd: 1057
    functionName: list_pop_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_resize
    - Py_DECREF
    - Py_INCREF
    - valid_index
    - list_ass_slice
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_pop_impl(PyListObject *self, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lo
    - hi
    argTypes:
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (lo && hi)
      pos:
        line_end: 1062
        line_start: 1062
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1073
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1073
    functionName: reverse_slice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void reverse_slice(PyObject **lo, PyObject **hi)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - s1
    - i
    - s2
    - j
    argTypes:
    - sortslice*
    - Py_ssize_t
    - sortslice*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1099
    functionName: sortslice_copy
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortslice_copy(sortslice *s1, Py_ssize_t i, sortslice *s2, Py_ssize_t
      j)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - sortslice*
    - sortslice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1107
    functionName: sortslice_copy_incr
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortslice_copy_incr(sortslice *dst, sortslice *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - sortslice*
    - sortslice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1115
    functionName: sortslice_copy_decr
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortslice_copy_decr(sortslice *dst, sortslice *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1122,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s1
    - i
    - s2
    - j
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    - sortslice*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1125
    functionName: sortslice_memcpy
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void sortslice_memcpy(sortslice *s1, Py_ssize_t i, sortslice *s2,
      Py_ssize_t j,\n                 Py_ssize_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1131,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - s1
    - i
    - s2
    - j
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    - sortslice*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    functionName: sortslice_memmove
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: "void sortslice_memmove(sortslice *s1, Py_ssize_t i, sortslice *s2,
      Py_ssize_t j,\n                  Py_ssize_t n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - slice
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1142
    functionName: sortslice_advance
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sortslice_advance(sortslice *slice, Py_ssize_t 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: 1150
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1150
    functionName: ISLT
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISLT(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: 1157
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1157
    functionName: IFLT
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFLT(X, Y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1259,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1262,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - ms
    - lo
    - hi
    - start
    argTypes:
    - MergeState*
    - sortslice
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (lo.keys <= start && start <= hi)
      pos:
        line_end: 1244
        line_start: 1244
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (l < r)
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (l == r)
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1292
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1292
    functionName: binarysort
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - IFLT
    linkageType: ''
    returnType: int
    signature: int binarysort(MergeState *ms, sortslice lo, PyObject **hi, PyObject
      **start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1318,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1325,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ms
    - lo
    - hi
    - descending
    argTypes:
    - MergeState*
    - PyObject**
    - PyObject**
    - int*
    assertStmts:
    - condition: (lo < hi)
      pos:
        line_end: 1317
        line_start: 1317
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1333
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1333
    functionName: count_run
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - IFLT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t count_run(MergeState *ms, PyObject **lo, PyObject **hi,
      int *descending)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1374,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1379,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1387,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1405,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - ms
    - key
    - a
    - n
    - hint
    argTypes:
    - MergeState*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (key && a && n > 0 && hint >= 0 && hint < n)
      pos:
        line_end: 1373
        line_start: 1373
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 1408
        line_start: 1408
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1418
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1418
    functionName: gallop_left
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - IFLT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gallop_left(MergeState *ms, PyObject *key, PyObject **a,
      Py_ssize_t n, Py_ssize_t hint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 1386
        line_start: 1386
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1389
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1389
    functionName: IFLT
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void IFLT(a[ofs], key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1463,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1468,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1474,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1476,1
    - Dst: IFLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1495,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1499,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - ms
    - key
    - a
    - n
    - hint
    argTypes:
    - MergeState*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (key && a && n > 0 && hint >= 0 && hint < n)
      pos:
        line_end: 1462
        line_start: 1462
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 1475
        line_start: 1475
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ofs <= (PY_SSIZE_T_MAX - 1) / 2)
      pos:
        line_end: 1498
        line_start: 1498
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1507
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1507
    functionName: gallop_right
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - IFLT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t gallop_right(MergeState *ms, PyObject *key, PyObject **a,
      Py_ssize_t n, Py_ssize_t hint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - ms
    - list_size
    - has_keyfunc
    argTypes:
    - MergeState*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 1534
        line_start: 1534
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1558
      start: 1532
    functionDepth: 1
    functionLinenumber: 1532
    functionLinenumberEnd: 1558
    functionName: merge_init
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1567,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/listobject.c:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 1566
        line_start: 1566
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1570
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1570
    functionName: merge_freemem
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void merge_freemem(MergeState *ms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1580,1
    - Dst: merge_freemem
      Src: /src/Python-3.8.3/Objects/listobject.c:1589,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:1591,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/listobject.c:1594,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:1602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ms
    - need
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1604
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1604
    functionName: merge_getmem
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - assert
    - merge_freemem
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int merge_getmem(MergeState *ms, Py_ssize_t need)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - MS
    - ','
    - NEED
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1607
    functionName: MERGE_GETMEM
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MERGE_GETMEM(MS, NEED)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1623,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1624,1
    - Dst: MERGE_GETMEM
      Src: /src/Python-3.8.3/Objects/listobject.c:1625,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1627,1
    - Dst: sortslice_copy_incr
      Src: /src/Python-3.8.3/Objects/listobject.c:1631,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1647,1
    - Dst: ISLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1648,1
    - Dst: sortslice_copy_incr
      Src: /src/Python-3.8.3/Objects/listobject.c:1652,1
    - Dst: sortslice_copy_incr
      Src: /src/Python-3.8.3/Objects/listobject.c:1662,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1680,1
    - Dst: gallop_right
      Src: /src/Python-3.8.3/Objects/listobject.c:1683,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1688,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1689,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1690,1
    - Dst: sortslice_copy_incr
      Src: /src/Python-3.8.3/Objects/listobject.c:1701,1
    - Dst: gallop_left
      Src: /src/Python-3.8.3/Objects/listobject.c:1706,1
    - Dst: sortslice_memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1711,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1712,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1713,1
    - Dst: sortslice_copy_incr
      Src: /src/Python-3.8.3/Objects/listobject.c:1718,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1730,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1733,1
    - Dst: sortslice_memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1735,1
    - Dst: sortslice_copy
      Src: /src/Python-3.8.3/Objects/listobject.c:1736,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 110
    argCount: 5
    argNames:
    - ms
    - ssa
    - na
    - ssb
    - nb
    argTypes:
    - MergeState*
    - sortslice
    - Py_ssize_t
    - sortslice
    - Py_ssize_t
    assertStmts:
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 1623
        line_start: 1623
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na > 1 && nb > 0)
      pos:
        line_end: 1646
        line_start: 1646
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na > 1 && nb > 0)
      pos:
        line_end: 1679
        line_start: 1679
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na == 1 && nb > 0)
      pos:
        line_end: 1732
        line_start: 1732
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1738
      start: 1614
    functionDepth: 2
    functionLinenumber: 1614
    functionLinenumberEnd: 1738
    functionName: merge_lo
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - sortslice_copy_incr
    - sortslice_memcpy
    - gallop_left
    - gallop_right
    - sortslice_memmove
    - sortslice_copy
    - assert
    - MERGE_GETMEM
    - ISLT
    - sortslice_advance
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t merge_lo(MergeState *ms, sortslice ssa, Py_ssize_t na,\n
      \        sortslice ssb, Py_ssize_t nb)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1755,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1756,1
    - Dst: MERGE_GETMEM
      Src: /src/Python-3.8.3/Objects/listobject.c:1757,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1760,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1761,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1767,1
    - Dst: sortslice_copy_decr
      Src: /src/Python-3.8.3/Objects/listobject.c:1769,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1785,1
    - Dst: ISLT
      Src: /src/Python-3.8.3/Objects/listobject.c:1786,1
    - Dst: sortslice_copy_decr
      Src: /src/Python-3.8.3/Objects/listobject.c:1790,1
    - Dst: sortslice_copy_decr
      Src: /src/Python-3.8.3/Objects/listobject.c:1800,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1818,1
    - Dst: gallop_right
      Src: /src/Python-3.8.3/Objects/listobject.c:1821,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1827,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1828,1
    - Dst: sortslice_memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1829,1
    - Dst: sortslice_copy_decr
      Src: /src/Python-3.8.3/Objects/listobject.c:1834,1
    - Dst: gallop_left
      Src: /src/Python-3.8.3/Objects/listobject.c:1839,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1845,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1846,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1847,1
    - Dst: sortslice_copy_decr
      Src: /src/Python-3.8.3/Objects/listobject.c:1858,1
    - Dst: sortslice_memcpy
      Src: /src/Python-3.8.3/Objects/listobject.c:1870,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1873,1
    - Dst: sortslice_memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:1875,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1876,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1877,1
    - Dst: sortslice_copy
      Src: /src/Python-3.8.3/Objects/listobject.c:1878,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 120
    argCount: 5
    argNames:
    - ms
    - ssa
    - na
    - ssb
    - nb
    argTypes:
    - MergeState*
    - sortslice
    - Py_ssize_t
    - sortslice
    - Py_ssize_t
    assertStmts:
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 1755
        line_start: 1755
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms && ssa.keys && ssb.keys && na > 0 && nb > 0)
      pos:
        line_end: 1754
        line_start: 1754
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (nb == 1 && na > 0)
      pos:
        line_end: 1872
        line_start: 1872
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na > 0 && nb > 1)
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na > 0 && nb > 1)
      pos:
        line_end: 1784
        line_start: 1784
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1880
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1880
    functionName: merge_hi
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - sortslice_memcpy
    - gallop_left
    - gallop_right
    - sortslice_copy_decr
    - sortslice_memmove
    - sortslice_copy
    - assert
    - MERGE_GETMEM
    - ISLT
    - sortslice_advance
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t merge_hi(MergeState *ms, sortslice ssa, Py_ssize_t na,\n
      \        sortslice ssb, Py_ssize_t nb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1892,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1893,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1894,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1895,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1901,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1902,1
    - Dst: gallop_right
      Src: /src/Python-3.8.3/Objects/listobject.c:1916,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:1919,1
    - Dst: gallop_left
      Src: /src/Python-3.8.3/Objects/listobject.c:1927,1
    - Dst: merge_lo
      Src: /src/Python-3.8.3/Objects/listobject.c:1935,1
    - Dst: merge_hi
      Src: /src/Python-3.8.3/Objects/listobject.c:1937,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - ms
    - i
    argTypes:
    - MergeState*
    - Py_ssize_t
    assertStmts:
    - condition: (ms != NULL)
      pos:
        line_end: 1891
        line_start: 1891
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (i == ms->n - 2 || i == ms->n - 3)
      pos:
        line_end: 1894
        line_start: 1894
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (na > 0 && nb > 0)
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms->n >= 2)
      pos:
        line_end: 1892
        line_start: 1892
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (i >= 0)
      pos:
        line_end: 1893
        line_start: 1893
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ssa.keys + na == ssb.keys)
      pos:
        line_end: 1901
        line_start: 1901
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1938
      start: 1885
    functionDepth: 3
    functionLinenumber: 1885
    functionLinenumberEnd: 1938
    functionName: merge_at
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - gallop_left
    - gallop_right
    - merge_lo
    - merge_hi
    - assert
    - sortslice_advance
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t merge_at(MergeState *ms, Py_ssize_t i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1955,1
    - Dst: merge_at
      Src: /src/Python-3.8.3/Objects/listobject.c:1962,1
    - Dst: merge_at
      Src: /src/Python-3.8.3/Objects/listobject.c:1966,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 1954
        line_start: 1954
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1973
      start: 1950
    functionDepth: 4
    functionLinenumber: 1950
    functionLinenumberEnd: 1973
    functionName: merge_collapse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - merge_at
    linkageType: ''
    returnType: int
    signature: int merge_collapse(MergeState *ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:1985,1
    - Dst: merge_at
      Src: /src/Python-3.8.3/Objects/listobject.c:1990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ms
    argTypes:
    - MergeState*
    assertStmts:
    - condition: (ms)
      pos:
        line_end: 1984
        line_start: 1984
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 1994
      start: 1980
    functionDepth: 4
    functionLinenumber: 1980
    functionLinenumberEnd: 1994
    functionName: merge_force_collapse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    - merge_at
    linkageType: ''
    returnType: int
    signature: int merge_force_collapse(MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 2010
        line_start: 2010
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2017
      start: 2006
    functionDepth: 1
    functionLinenumber: 2006
    functionLinenumberEnd: 2017
    functionName: merge_compute_minrun
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t merge_compute_minrun(Py_ssize_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2022,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - sortslice*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 2
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: reverse_sortslice
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - reverse_slice
    linkageType: ''
    returnType: void
    signature: void reverse_sortslice(sortslice *s, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2037
    functionDepth: 4
    functionLinenumber: 2037
    functionLinenumberEnd: 2042
    functionName: safe_object_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int safe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2055,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2061,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2062,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2067,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/listobject.c:2071,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (ms->key_richcompare != NULL)
      pos:
        line_end: 2056
        line_start: 2056
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2081
      start: 2048
    functionDepth: 4
    functionLinenumber: 2048
    functionLinenumberEnd: 2081
    functionName: unsafe_object_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_IsTrue
    - PyObject_RichCompareBool
    - assert
    - PyBool_Check
    linkageType: ''
    returnType: int
    signature: int unsafe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2091,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2092,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2093,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/listobject.c:2093,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/listobject.c:2093,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2094,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/listobject.c:2094,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/listobject.c:2096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/listobject.c:2096,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/listobject.c:2096,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/listobject.c:2097,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/listobject.c:2097,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/listobject.c:2097,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/listobject.c:2101,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/listobject.c:2101,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2103,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (v->ob_type == w->ob_type)
      pos:
        line_end: 2090
        line_start: 2090
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_KIND(w))
      pos:
        line_end: 2092
        line_start: 2092
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (v->ob_type == &PyUnicode_Type)
      pos:
        line_end: 2091
        line_start: 2091
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (PyUnicode_KIND(v) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2093
        line_start: 2093
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2102
        line_start: 2102
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2105
      start: 2084
    functionDepth: 4
    functionLinenumber: 2084
    functionLinenumberEnd: 2105
    functionName: unsafe_latin_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyObject_RichCompareBool
    - PyUnicode_DATA
    - assert
    - memcmp
    - Py_MIN
    linkageType: ''
    returnType: int
    signature: int unsafe_latin_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2114,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2115,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2116,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/listobject.c:2116,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2116,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2117,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/listobject.c:2117,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2117,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2122,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2123,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2125,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2127,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2131,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (v->ob_type == w->ob_type)
      pos:
        line_end: 2113
        line_start: 2113
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (v->ob_type == &PyLong_Type)
      pos:
        line_end: 2114
        line_start: 2114
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (Py_ABS(Py_SIZE(v)) <= 1)
      pos:
        line_end: 2115
        line_start: 2115
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (Py_ABS(Py_SIZE(w)) <= 1)
      pos:
        line_end: 2116
        line_start: 2116
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2130
        line_start: 2130
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2133
      start: 2108
    functionDepth: 4
    functionLinenumber: 2108
    functionLinenumberEnd: 2133
    functionName: unsafe_long_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - assert
    - Py_SIZE
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int unsafe_long_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2142,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2143,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/listobject.c:2145,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/listobject.c:2145,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2146,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (v->ob_type == w->ob_type)
      pos:
        line_end: 2141
        line_start: 2141
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (v->ob_type == &PyFloat_Type)
      pos:
        line_end: 2142
        line_start: 2142
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (res == PyObject_RichCompareBool(v, w, Py_LT))
      pos:
        line_end: 2145
        line_start: 2145
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2148
      start: 2136
    functionDepth: 4
    functionLinenumber: 2136
    functionLinenumberEnd: 2148
    functionName: unsafe_float_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AS_DOUBLE
    - assert
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int unsafe_float_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2164,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2166,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2166,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2167,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2167,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2172,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2173,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2176,1
    - Dst: MergeState*::tuple_elem_compare
      Src: /src/Python-3.8.3/Objects/listobject.c:2187,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - v
    - w
    - ms
    argTypes:
    - PyObject*
    - PyObject*
    - MergeState*
    assertStmts:
    - condition: (v->ob_type == w->ob_type)
      pos:
        line_end: 2163
        line_start: 2163
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (v->ob_type == &PyTuple_Type)
      pos:
        line_end: 2164
        line_start: 2164
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (Py_SIZE(v) > 0)
      pos:
        line_end: 2165
        line_start: 2165
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (Py_SIZE(w) > 0)
      pos:
        line_end: 2166
        line_start: 2166
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2190
      start: 2156
    functionDepth: 4
    functionLinenumber: 2156
    functionLinenumberEnd: 2190
    functionName: unsafe_tuple_compare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - MergeState*::tuple_elem_compare
    - assert
    - Py_SIZE
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: int
    signature: int unsafe_tuple_compare(PyObject *v, PyObject *w, MergeState *ms)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2230,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2231,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2231,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2240,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/listobject.c:2257,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:2259,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/listobject.c:2265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2269,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:2271,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2288,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:2291,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2302,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:2312,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/listobject.c:2327,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2327,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/listobject.c:2333,1
    - Dst: merge_init
      Src: /src/Python-3.8.3/Objects/listobject.c:2378,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2388,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2389,1
    - Dst: merge_compute_minrun
      Src: /src/Python-3.8.3/Objects/listobject.c:2395,1
    - Dst: count_run
      Src: /src/Python-3.8.3/Objects/listobject.c:2401,1
    - Dst: reverse_sortslice
      Src: /src/Python-3.8.3/Objects/listobject.c:2405,1
    - Dst: binarysort
      Src: /src/Python-3.8.3/Objects/listobject.c:2410,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2415,1
    - Dst: merge_collapse
      Src: /src/Python-3.8.3/Objects/listobject.c:2419,1
    - Dst: sortslice_advance
      Src: /src/Python-3.8.3/Objects/listobject.c:2422,1
    - Dst: merge_force_collapse
      Src: /src/Python-3.8.3/Objects/listobject.c:2426,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2428,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2429,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2440,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:2442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:2449,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2454,1
    - Dst: merge_freemem
      Src: /src/Python-3.8.3/Objects/listobject.c:2456,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2460,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2461,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2468,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:2470,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2472,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 161
    argCount: 3
    argNames:
    - self
    - keyfunc
    - reverse
    argTypes:
    - PyListObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 2230
        line_start: 2230
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms.n == 1)
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: "(keys == NULL\n           ? ms.pending[0].base.keys == saved_ob_item\n
        \          : ms.pending[0].base.keys == &keys[0])"
      pos:
        line_end: 2430
        line_start: 2428
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (self != NULL)
      pos:
        line_end: 2229
        line_start: 2229
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms.n < MAX_MERGE_PENDING)
      pos:
        line_end: 2414
        line_start: 2414
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (ms.pending[0].len == saved_ob_size)
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2474
      start: 2215
    functionDepth: 5
    functionLinenumber: 2215
    functionLinenumberEnd: 2474
    functionName: list_sort_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - merge_force_collapse
    - count_run
    - merge_init
    - binarysort
    - PyUnicode_KIND
    - sortslice_advance
    - assert
    - PyMem_FREE
    - merge_collapse
    - Py_XDECREF
    - merge_compute_minrun
    - Py_DECREF
    - PyMem_MALLOC
    - PyList_Check
    - reverse_slice
    - Py_ABS
    - Py_SIZE
    - reverse_sortslice
    - PyErr_NoMemory
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - merge_freemem
    - PyTuple_GET_ITEM
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2243
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 165
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2481,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:2482,1
    - Dst: list_sort_impl
      Src: /src/Python-3.8.3/Objects/listobject.c:2485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2478
    functionDepth: 6
    functionLinenumber: 2478
    functionLinenumberEnd: 2490
    functionName: PyList_Sort
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 4
    functionsReached:
    - list_sort_impl
    - PyErr_BadInternalCall
    - Py_DECREF
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Sort(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2502,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2503,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2498
    functionDepth: 2
    functionLinenumber: 2498
    functionLinenumberEnd: 2505
    functionName: list_reverse_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - reverse_slice
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse_impl(PyListObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2512,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:2513,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2516,1
    - Dst: reverse_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2517,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2507
    functionDepth: 2
    functionLinenumber: 2507
    functionLinenumberEnd: 2519
    functionName: PyList_Reverse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - reverse_slice
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PyList_Reverse(PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2524,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:2525,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/listobject.c:2528,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2529
    functionName: PyList_AsTuple
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 6
    functionsReached:
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyList_Check
    - _PyTuple_FromArray
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyList_AsTuple(PyObject *v)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2552,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2557,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2561,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2563,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2565,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:2567,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/listobject.c:2571,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - self
    - value
    - start
    - stop
    argTypes:
    - PyListObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2544
    functionDepth: 4
    functionLinenumber: 2544
    functionLinenumberEnd: 2573
    functionName: list_index_impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyErr_Format
    - Py_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlist_index_impl(PyListObject *self, PyObject *value, Py_ssize_t
      start,\n                Py_ssize_t stop)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2591,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2597,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2598,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2599,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:2605,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2584
    functionDepth: 4
    functionLinenumber: 2584
    functionLinenumberEnd: 2606
    functionName: list_count
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_RichCompareBool
    - Py_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_count(PyListObject *self, PyObject *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2625,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2627,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2629,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2631,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/listobject.c:2639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2619
    functionDepth: 5
    functionLinenumber: 2619
    functionLinenumberEnd: 2641
    functionName: list_remove
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - list_ass_slice
    - PyObject_RichCompareBool
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_remove(PyListObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2648,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/listobject.c:2649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyListObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2643
    functionDepth: 1
    functionLinenumber: 2643
    functionLinenumberEnd: 2651
    functionName: list_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int list_traverse(PyListObject *o, visitproc visit, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2659,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2659,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2665,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2665,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2674,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2674,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2681,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2682,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/listobject.c:2683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2685,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2686,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2693,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2693,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/listobject.c:2695,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2695,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2695,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/listobject.c:2707,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2653
    functionDepth: 4
    functionLinenumber: 2653
    functionLinenumberEnd: 2708
    functionName: list_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_RETURN_RICHCOMPARE
    - PyList_Check
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2727,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2727,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2728,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2728,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:2729,1
    - Dst: _list_clear
      Src: /src/Python-3.8.3/Objects/listobject.c:2734,1
    - Dst: _PyObject_HasLen
      Src: /src/Python-3.8.3/Objects/listobject.c:2737,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/listobject.c:2738,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/listobject.c:2740,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/listobject.c:2743,1
    - Dst: list_preallocate_exact
      Src: /src/Python-3.8.3/Objects/listobject.c:2746,1
    - Dst: list_extend
      Src: /src/Python-3.8.3/Objects/listobject.c:2750,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2753,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts:
    - condition: (0 <= Py_SIZE(self))
      pos:
        line_end: 2726
        line_start: 2726
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: "(self->ob_item != NULL ||\n           self->allocated == 0 || self->allocated
        == -1)"
      pos:
        line_end: 2729
        line_start: 2728
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (Py_SIZE(self) <= self->allocated || self->allocated == -1)
      pos:
        line_end: 2727
        line_start: 2727
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 2756
      start: 2722
    functionDepth: 5
    functionLinenumber: 2722
    functionLinenumberEnd: 2756
    functionName: list___init___impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    - PyErr_Clear
    - list_extend
    - Py_DECREF
    - _PyObject_HasLen
    - _list_clear
    - PyErr_ExceptionMatches
    - assert
    - list_preallocate_exact
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int list___init___impl(PyListObject *self, PyObject *iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2770,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/listobject.c:2770,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2764
    functionDepth: 1
    functionLinenumber: 2764
    functionLinenumberEnd: 2772
    functionName: list___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___sizeof___impl(PyListObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2811,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:2813,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/listobject.c:2814,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2817,1
    - Dst: list_item
      Src: /src/Python-3.8.3/Objects/listobject.c:2818,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2820,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/listobject.c:2826,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/listobject.c:2829,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2829,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/listobject.c:2833,1
    - Dst: list_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2836,1
    - Dst: list_new_prealloc
      Src: /src/Python-3.8.3/Objects/listobject.c:2839,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2847,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2850,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/listobject.c:2855,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2808
    functionDepth: 4
    functionLinenumber: 2808
    functionLinenumberEnd: 2860
    functionName: list_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - list_new_prealloc
    - PyIndex_Check
    - PyErr_Occurred
    - Py_INCREF
    - PySlice_Check
    - PySlice_AdjustIndices
    - list_item
    - PySlice_Unpack
    - list_slice
    - PyErr_Format
    - PyList_New
    - PyList_GET_SIZE
    - Py_SIZE
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_subscript(PyListObject* self, PyObject* item)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2865,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:2866,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/listobject.c:2867,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2870,1
    - Dst: list_ass_item
      Src: /src/Python-3.8.3/Objects/listobject.c:2871,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:2873,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/listobject.c:2876,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/listobject.c:2879,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2879,1
    - Dst: list_ass_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2883,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/listobject.c:2908,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:2910,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:2925,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2927,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2928,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:2931,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2936,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/listobject.c:2937,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2939,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2943,1
    - Dst: list_resize
      Src: /src/Python-3.8.3/Objects/listobject.c:2944,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2947,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:2949,1
    - Dst: list_slice
      Src: /src/Python-3.8.3/Objects/listobject.c:2961,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2962,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/listobject.c:2965,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2972,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/listobject.c:2973,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:2977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2979,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2984,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/listobject.c:2989,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:2991,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/listobject.c:2992,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/Python-3.8.3/Objects/listobject.c:2997,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3002,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3007,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/listobject.c:3010,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3011,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/listobject.c:3017,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 90
    argCount: 3
    argNames:
    - self
    - item
    - value
    argTypes:
    - PyListObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 2862
    functionDepth: 6
    functionLinenumber: 2862
    functionLinenumberEnd: 3022
    functionName: list_ass_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - list_ass_item
    - PySlice_Unpack
    - PySequence_Fast
    - PyErr_Occurred
    - Py_INCREF
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyList_GET_ITEM
    - list_slice
    - PyErr_Format
    - memmove
    - PyMem_FREE
    - PySequence_Fast_GET_SIZE
    - list_resize
    - PyMem_MALLOC
    - Py_DECREF
    - list_ass_slice
    - Py_SIZE
    - PyErr_NoMemory
    - PySequence_Fast_ITEMS
    - PyList_GET_SIZE
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int list_ass_subscript(PyListObject* self, PyObject* item, PyObject*
      value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:3139,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/listobject.c:3140,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/listobject.c:3143,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3147,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/listobject.c:3149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3134
    functionDepth: 1
    functionLinenumber: 3134
    functionLinenumberEnd: 3151
    functionName: list_iter
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyList_Check
    - _PyObject_GC_TRACK
    - PyObject_GC_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/listobject.c:3156,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3157,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/listobject.c:3158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - listiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3159
      start: 3153
    functionDepth: 3
    functionLinenumber: 3153
    functionLinenumberEnd: 3159
    functionName: listiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void listiter_dealloc(listiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/listobject.c:3164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - listiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3166
      start: 3161
    functionDepth: 1
    functionLinenumber: 3161
    functionLinenumberEnd: 3166
    functionName: listiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int listiter_traverse(listiterobject *it, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:3174,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:3178,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:3178,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3180,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:3181,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - listiterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3173
        line_start: 3173
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (PyList_Check(seq))
      pos:
        line_end: 3177
        line_start: 3177
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3190
      start: 3168
    functionDepth: 1
    functionLinenumber: 3168
    functionLinenumberEnd: 3190
    functionName: listiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Check
    - PyList_GET_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_next(listiterobject *it)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3197,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:3199,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/listobject.c:3201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - listiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3202
      start: 3192
    functionDepth: 1
    functionLinenumber: 3192
    functionLinenumberEnd: 3202
    functionName: listiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyList_GET_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_len(listiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listiter_reduce_general
      Src: /src/Python-3.8.3/Objects/listobject.c:3207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - listiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3208
      start: 3204
    functionDepth: 1
    functionLinenumber: 3204
    functionLinenumberEnd: 3208
    functionName: listiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - listiter_reduce_general
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_reduce(listiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:3213,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/listobject.c:3214,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3219,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - listiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3210
    functionDepth: 1
    functionLinenumber: 3210
    functionLinenumberEnd: 3224
    functionName: listiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_setstate(listiterobject *it, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/listobject.c:3293,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:3296,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:3296,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3297,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3298,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Objects/listobject.c:3300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyListObject*
    assertStmts:
    - condition: (PyList_Check(self))
      pos:
        line_end: 3295
        line_start: 3295
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3302
      start: 3287
    functionDepth: 2
    functionLinenumber: 3287
    functionLinenumberEnd: 3302
    functionName: list___reversed___impl
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyList_Check
    - PyList_GET_SIZE
    - PyObject_GC_New
    - assert
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___reversed___impl(PyListObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/listobject.c:3307,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3308,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/listobject.c:3309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - listreviterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3304
    functionDepth: 3
    functionLinenumber: 3304
    functionLinenumberEnd: 3310
    functionName: listreviter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void listreviter_dealloc(listreviterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/listobject.c:3315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - listreviterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3312
    functionDepth: 1
    functionLinenumber: 3312
    functionLinenumberEnd: 3317
    functionName: listreviter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int listreviter_traverse(listreviterobject *it, visitproc visit, void
      *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:3326,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/listobject.c:3331,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/listobject.c:3331,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3334,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/listobject.c:3335,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3337,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/listobject.c:3342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - it
    argTypes:
    - listreviterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 3325
        line_start: 3325
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - condition: (PyList_Check(seq))
      pos:
        line_end: 3330
        line_start: 3330
        source_file: /src/Python-3.8.3/Objects/listobject.c
    constantsTouched: []
    func_position:
      end: 3344
      start: 3319
    functionDepth: 1
    functionLinenumber: 3319
    functionLinenumberEnd: 3344
    functionName: listreviter_next
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyList_GET_ITEM
    - PyList_Check
    - PyList_GET_SIZE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_next(listreviterobject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3350,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:3352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - listreviterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3353
      start: 3346
    functionDepth: 1
    functionLinenumber: 3346
    functionLinenumberEnd: 3353
    functionName: listreviter_len
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_len(listreviterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listiter_reduce_general
      Src: /src/Python-3.8.3/Objects/listobject.c:3358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - listreviterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3359
      start: 3355
    functionDepth: 1
    functionLinenumber: 3355
    functionLinenumberEnd: 3359
    functionName: listreviter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - listiter_reduce_general
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_reduce(listreviterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/listobject.c:3364,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/listobject.c:3365,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3370,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/listobject.c:3371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - listreviterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3375
      start: 3361
    functionDepth: 1
    functionLinenumber: 3361
    functionLinenumberEnd: 3375
    functionName: listreviter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listreviter_setstate(listreviterobject *it, PyObject *state)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/listobject.c:3382,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/listobject.c:3383,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/listobject.c:3390,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/listobject.c:3390,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/listobject.c:3395,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/listobject.c:3395,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/listobject.c:3399,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/listobject.c:3402,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/listobject.c:3402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - _it
    - forward
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3379
    functionDepth: 2
    functionLinenumber: 3379
    functionLinenumberEnd: 3403
    functionName: listiter_reduce_general
    functionSourceFile: /src/Python-3.8.3/Objects/listobject.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      listiter_reduce_general(void *_it, int forward)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/iterobject.c:19,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/iterobject.c:20,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/iterobject.c:23,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:27,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/iterobject.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 31
    functionName: PySeqIter_New
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 1
    functionsReached:
    - PySequence_Check
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySeqIter_New(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/iterobject.c:36,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:37,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/iterobject.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - seqiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: iter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void iter_dealloc(seqiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/iterobject.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - seqiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: iter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int iter_traverse(seqiterobject *it, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/iterobject.c:55,1
    - Dst: PySeqIter_Check
      Src: /src/Python-3.8.3/Objects/iterobject.c:55,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/iterobject.c:61,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/iterobject.c:66,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/iterobject.c:71,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/iterobject.c:72,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/iterobject.c:74,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PySeqIter_Check(iterator))
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/Python-3.8.3/Objects/iterobject.c
    constantsTouched: []
    func_position:
      end: 79
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 79
    functionName: iter_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_GetItem
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PySeqIter_Check
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_iternext(PyObject *iterator)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_HasLen
      Src: /src/Python-3.8.3/Objects/iterobject.c:87,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/iterobject.c:88,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/iterobject.c:97,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/iterobject.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - seqiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 100
    functionName: iter_len
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyObject_HasLen
    - PyLong_FromSsize_t
    - PySequence_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_len(seqiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/iterobject.c:107,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/iterobject.c:109,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/iterobject.c:109,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/iterobject.c:112,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/iterobject.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - seqiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: iter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_reduce(seqiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/iterobject.c:120,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/iterobject.c:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - seqiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 129
    functionName: iter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      iter_setstate(seqiterobject *it, PyObject *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/iterobject.c:185,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:188,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:190,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/iterobject.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - callable
    - sentinel
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 194
    functionName: PyCallIter_New
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCallIter_New(PyObject *callable, PyObject *sentinel)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/iterobject.c:198,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:199,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:200,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/iterobject.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - it
    argTypes:
    - calliterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: calliter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void calliter_dealloc(calliterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/iterobject.c:207,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/iterobject.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - calliterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: calliter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int calliter_traverse(calliterobject *it, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/iterobject.c:221,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/iterobject.c:225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/iterobject.c:230,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/iterobject.c:232,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/iterobject.c:233,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/iterobject.c:236,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/iterobject.c:237,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/iterobject.c:238,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/iterobject.c:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - it
    argTypes:
    - calliterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 242
    functionName: calliter_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PyObject_RichCompareBool
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calliter_iternext(calliterobject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/iterobject.c:247,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/iterobject.c:249,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/iterobject.c:249,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/iterobject.c:252,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/iterobject.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - calliterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: calliter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/iterobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calliter_reduce(calliterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:18,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:19,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:20,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:21,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/descrobject.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: descr_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void descr_dealloc(PyDescrObject *descr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: descr_name
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_name(PyDescrObject *descr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:37,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/descrobject.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - descr
    - format
    argTypes:
    - PyDescrObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: descr_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_repr(PyDescrObject *descr, const char *format)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/Python-3.8.3/Objects/descrobject.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyMethodDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: method_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_repr(PyMethodDescrObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/Python-3.8.3/Objects/descrobject.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyMemberDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: member_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_repr(PyMemberDescrObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/Python-3.8.3/Objects/descrobject.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyGetSetDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: getset_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_repr(PyGetSetDescrObject *descr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_repr
      Src: /src/Python-3.8.3/Objects/descrobject.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyWrapperDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: wrapperdescr_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_repr(PyWrapperDescrObject *descr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:75,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:79,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:80,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - descr
    - obj
    - pres
    argTypes:
    - PyDescrObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: descr_check
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyErr_Format
    - PyObject_TypeCheck
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int descr_check(PyDescrObject *descr, PyObject *obj, PyObject **pres)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:101,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:104,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:105,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:109,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:110,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:113,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:114,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/descrobject.c:118,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:118,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:119,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:122,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:123,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/descrobject.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyMethodDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 128
    functionName: classmethod_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyDescr_TYPE
    - PyType_IsSubtype
    - PyType_Check
    - PyErr_Format
    - PyCFunction_NewEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      classmethod_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_check
      Src: /src/Python-3.8.3/Objects/descrobject.c:135,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/descrobject.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyMethodDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: method_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    - descr_check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: descr_check
      Src: /src/Python-3.8.3/Objects/descrobject.c:145,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/descrobject.c:149,1
    - Dst: PyMember_GetOne
      Src: /src/Python-3.8.3/Objects/descrobject.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyMemberDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: member_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyMember_GetOne
    - PySys_Audit
    - descr_check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_get(PyMemberDescrObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: descr_check
      Src: /src/Python-3.8.3/Objects/descrobject.c:163,1
    - Dst: PyGetSetDescrObject*::d_getset::get
      Src: /src/Python-3.8.3/Objects/descrobject.c:166,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:167,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:169,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyGetSetDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: getset_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyDescr_TYPE
    - PyGetSetDescrObject*::d_getset::get
    - PyErr_Format
    - descr_check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_check
      Src: /src/Python-3.8.3/Objects/descrobject.c:179,1
    - Dst: PyWrapper_New
      Src: /src/Python-3.8.3/Objects/descrobject.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - descr
    - obj
    - type
    argTypes:
    - PyWrapperDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: wrapperdescr_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_check
    - PyWrapper_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get(PyWrapperDescrObject *descr, PyObject *obj, PyObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:188,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:189,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:190,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - descr
    - obj
    - value
    - pres
    argTypes:
    - PyDescrObject*
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (obj != NULL)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: descr_setcheck
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    - descr_name
    - PyObject_TypeCheck
    linkageType: ''
    returnType: int
    signature: "int descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value,\n
      \              int *pres)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_setcheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:207,1
    - Dst: PyMember_SetOne
      Src: /src/Python-3.8.3/Objects/descrobject.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - descr
    - obj
    - value
    argTypes:
    - PyMemberDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: member_set
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_setcheck
    - PyMember_SetOne
    linkageType: ''
    returnType: int
    signature: int member_set(PyMemberDescrObject *descr, PyObject *obj, PyObject
      *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: descr_setcheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:217,1
    - Dst: PyGetSetDescrObject*::d_getset::set
      Src: /src/Python-3.8.3/Objects/descrobject.c:220,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:222,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:224,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - descr
    - obj
    - value
    argTypes:
    - PyGetSetDescrObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: getset_set
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyDescr_TYPE
    - PyErr_Format
    - PyGetSetDescrObject*::d_getset::set
    - descr_setcheck
    linkageType: ''
    returnType: int
    signature: int getset_set(PyGetSetDescrObject *descr, PyObject *obj, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:236,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(func, &PyMethodDescr_Type))
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: get_name
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 6
    functionsReached:
    - assert
    - PyObject_TypeCheck
    linkageType: ''
    returnType: char
    signature: 'char *

      get_name(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:245,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/descrobject.c:245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:246,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:246,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:248,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:251,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:251,1
    - Dst: _PyObject_RealIsSubclass
      Src: /src/Python-3.8.3/Objects/descrobject.c:255,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:255,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:256,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:258,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:261,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:261,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/descrobject.c:265,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:266,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - func
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    - condition: (PyObject_TypeCheck(func, &PyMethodDescr_Type))
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 271
      start: 242
    functionDepth: 7
    functionLinenumber: 242
    functionLinenumberEnd: 271
    functionName: method_check_args
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_TYPE
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - _PyObject_RealIsSubclass
    - PyObject_TypeCheck
    - get_name
    - PyErr_Format
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: int method_check_args(PyObject *func, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 280
    functionName: method_enter_call
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_EnterRecursiveCall
    linkageType: ''
    returnType: funcptr
    signature: funcptr method_enter_call(PyObject *func)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:287,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:288,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/descrobject.c:291,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:297,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:300,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:301,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 283
    functionDepth: 8
    functionLinenumber: 283
    functionLinenumberEnd: 304
    functionName: method_vectorcall_VARARGS
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - Py_DECREF
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - _PyTuple_FromArray
    - method_enter_call
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_VARARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:310,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:311,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/descrobject.c:314,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/descrobject.c:321,1
    - Dst: _PyStack_AsDict
      Src: /src/Python-3.8.3/Objects/descrobject.c:322,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:328,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:332,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:335,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 306
    functionDepth: 8
    functionLinenumber: 306
    functionLinenumberEnd: 338
    functionName: method_vectorcall_VARARGS_KEYWORDS
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - _PyStack_AsDict
    - _PyTuple_FromArray
    - method_enter_call
    - Py_XDECREF
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_VARARGS_KEYWORDS(\n    PyObject *func,
      PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:344,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:345,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:349,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:353,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 340
    functionDepth: 8
    functionLinenumber: 340
    functionLinenumberEnd: 356
    functionName: method_vectorcall_FASTCALL
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - method_enter_call
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_FASTCALL(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:362,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:363,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:367,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:371,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 374
    functionName: method_vectorcall_FASTCALL_KEYWORDS
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - method_enter_call
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_FASTCALL_KEYWORDS(\n    PyObject *func,
      PyObject *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:380,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:381,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:385,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:386,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:389,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:393,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 8
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: method_vectorcall_NOARGS
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - get_name
    - PyErr_Format
    - method_enter_call
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_NOARGS(\n    PyObject *func, PyObject
      *const *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/descrobject.c:402,1
    - Dst: method_check_args
      Src: /src/Python-3.8.3/Objects/descrobject.c:403,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:407,1
    - Dst: get_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:409,1
    - Dst: method_enter_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:412,1
    - Dst: meth
      Src: /src/Python-3.8.3/Objects/descrobject.c:416,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - func
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 398
    functionDepth: 8
    functionLinenumber: 398
    functionLinenumberEnd: 419
    functionName: method_vectorcall_O
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - method_check_args
    - PyVectorcall_NARGS
    - Py_LeaveRecursiveCall
    - get_name
    - PyErr_Format
    - method_enter_call
    - meth
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmethod_vectorcall_O(\n    PyObject *func, PyObject *const
      *args, size_t nargsf, PyObject *kwnames)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:430,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:430,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/descrobject.c:431,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:433,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:436,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:437,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/descrobject.c:440,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:441,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:442,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:445,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/descrobject.c:449,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:449,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:450,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:453,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:454,1
    - Dst: _PyMethodDef_RawFastCallDict
      Src: /src/Python-3.8.3/Objects/descrobject.c:459,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/descrobject.c:460,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/descrobject.c:462,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - descr
    - args
    - kwds
    argTypes:
    - PyMethodDescrObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 464
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 464
    functionName: classmethoddescr_call
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyDescr_TYPE
    - PyTuple_GET_SIZE
    - _PyMethodDef_RawFastCallDict
    - _Py_CheckFunctionResult
    - _PyTuple_ITEMS
    - PyType_IsSubtype
    - PyTuple_Check
    - PyType_Check
    - PyErr_Format
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nclassmethoddescr_call(PyMethodDescrObject *descr, PyObject
      *args,\n                      PyObject *kwds)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:477,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/descrobject.c:477,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:478,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - descr
    - self
    - args
    - kwds
    argTypes:
    - PyWrapperDescrObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 484
    functionName: wrapperdescr_raw_call
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyErr_Format
    - PyDict_Check
    linkageType: ''
    returnType: void
    signature: "void wrapperdescr_raw_call(PyWrapperDescrObject *descr, PyObject *self,\n
      \                     PyObject *args, PyObject *kwds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:493,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:493,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/descrobject.c:494,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:496,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:499,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:500,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/descrobject.c:503,1
    - Dst: _PyObject_RealIsSubclass
      Src: /src/Python-3.8.3/Objects/descrobject.c:504,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:504,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:505,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:506,1
    - Dst: descr_name
      Src: /src/Python-3.8.3/Objects/descrobject.c:510,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:511,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Objects/descrobject.c:516,1
    - Dst: wrapperdescr_raw_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - descr
    - args
    - kwds
    argTypes:
    - PyWrapperDescrObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 492
        line_start: 492
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 523
      start: 486
    functionDepth: 7
    functionLinenumber: 486
    functionLinenumberEnd: 523
    functionName: wrapperdescr_call
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_name
    - PyDescr_TYPE
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_RealIsSubclass
    - wrapperdescr_raw_call
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_call(PyWrapperDescrObject *descr, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyMethodDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: method_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_doc(PyMethodDescrObject *descr, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyMethodDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 536
    functionName: method_get_text_signature
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      method_get_text_signature(PyMethodDescrObject *descr, void *closure)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:542,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:544,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/descrobject.c:545,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/descrobject.c:550,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:555,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/descrobject.c:556,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:558,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/descrobject.c:562,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - descr
    argTypes:
    - PyDescrObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 565
    functionName: calculate_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyErr_SetString
    - PyUnicode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      calculate_qualname(PyDescrObject *descr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calculate_qualname
      Src: /src/Python-3.8.3/Objects/descrobject.c:571,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - descr
    - Py_UNUSED(ignored)
    argTypes:
    - PyDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: descr_get_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - calculate_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_get_qualname(PyDescrObject *descr, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:579,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/descrobject.c:580,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/descrobject.c:580,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:581,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/descrobject.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - descr
    - Py_UNUSED(ignored)
    argTypes:
    - PyDescrObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 582
    functionName: descr_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_TYPE
    - Py_BuildValue
    - PyDescr_NAME
    - _PyEval_GetBuiltinId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      descr_reduce(PyDescrObject *descr, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/descrobject.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyMemberDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 609
    functionName: member_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      member_get_doc(PyMemberDescrObject *descr, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/descrobject.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyGetSetDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 624
    functionName: getset_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getset_get_doc(PyGetSetDescrObject *descr, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyWrapperDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: wrapperdescr_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get_doc(PyWrapperDescrObject *descr, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - descr
    - closure
    argTypes:
    - PyWrapperDescrObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: wrapperdescr_get_text_signature
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapperdescr_get_text_signature(PyWrapperDescrObject *descr, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: descr_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int descr_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Objects/descrobject.c:853,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:855,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/descrobject.c:857,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - descrtype
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 867
    functionName: descr_new
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyType_GenericAlloc
    - Py_DECREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyDescrObject
    signature: 'PyDescrObject *

      descr_new(PyTypeObject *descrtype, PyTypeObject *type, const char *name)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:895,1
    - Dst: descr_new
      Src: /src/Python-3.8.3/Objects/descrobject.c:902,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - type
    - method
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 909
    functionName: PyDescr_NewMethod
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_new
    - PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewMethod(PyTypeObject *type, PyMethodDef *method)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_new
      Src: /src/Python-3.8.3/Objects/descrobject.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - method
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 921
    functionName: PyDescr_NewClassMethod
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 1
    functionsReached:
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewClassMethod(PyTypeObject *type, PyMethodDef *method)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_new
      Src: /src/Python-3.8.3/Objects/descrobject.c:928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - member
    argTypes:
    - PyTypeObject*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 933
    functionName: PyDescr_NewMember
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewMember(PyTypeObject *type, PyMemberDef *member)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_new
      Src: /src/Python-3.8.3/Objects/descrobject.c:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - getset
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 945
    functionName: PyDescr_NewGetSet
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 2
    functionsReached:
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewGetSet(PyTypeObject *type, PyGetSetDef *getset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: descr_new
      Src: /src/Python-3.8.3/Objects/descrobject.c:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - base
    - wrapped
    argTypes:
    - PyTypeObject*
    - struct wrapperbase*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 959
    functionName: PyDescr_NewWrapper
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDescr_NewWrapper(PyTypeObject *type, struct wrapperbase *base, void *wrapped)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Objects/descrobject.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - mappingproxyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: mappingproxy_len
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Size
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t mappingproxy_len(mappingproxyobject *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/descrobject.c:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - key
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: mappingproxy_getitem
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_getitem(mappingproxyobject *pp, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/descrobject.c:993,1
    - Dst: PyDict_Contains
      Src: /src/Python-3.8.3/Objects/descrobject.c:994,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/descrobject.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pp
    - key
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 990
    functionDepth: 6
    functionLinenumber: 990
    functionLinenumberEnd: 997
    functionName: mappingproxy_contains
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Contains
    - PySequence_Contains
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int mappingproxy_contains(mappingproxyobject *pp, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1016,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/descrobject.c:1018,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/descrobject.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pp
    - args
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1022
    functionName: mappingproxy_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_get(mappingproxyobject *pp, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1027,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - Py_UNUSED(ignored)
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1029
    functionName: mappingproxy_keys
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_keys(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1034,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - Py_UNUSED(ignored)
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: mappingproxy_values
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_values(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1041,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - Py_UNUSED(ignored)
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1043
    functionName: mappingproxy_items
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_items(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1048,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - Py_UNUSED(ignored)
    argTypes:
    - mappingproxyobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1050
    functionName: mappingproxy_copy
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_copy(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:1073,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1074,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/descrobject.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pp
    argTypes:
    - mappingproxyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1076
    functionName: mappingproxy_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void mappingproxy_dealloc(mappingproxyobject *pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/descrobject.c:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - mappingproxyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1078
    functionDepth: 3
    functionLinenumber: 1078
    functionLinenumberEnd: 1082
    functionName: mappingproxy_getiter
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_getiter(mappingproxyobject *pp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/descrobject.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - mappingproxyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1084
    functionDepth: 5
    functionLinenumber: 1084
    functionLinenumberEnd: 1088
    functionName: mappingproxy_str
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_str(mappingproxyobject *pp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/descrobject.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pp
    argTypes:
    - mappingproxyobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1094
    functionName: mappingproxy_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_repr(mappingproxyobject *pp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: mappingproxy_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mappingproxy_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/descrobject.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - mappingproxyobject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1104
    functionDepth: 3
    functionLinenumber: 1104
    functionLinenumberEnd: 1108
    functionName: mappingproxy_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_richcompare(mappingproxyobject *v, PyObject *w, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:1113,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:1114,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:1115,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/descrobject.c:1116,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:1118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1122
    functionName: mappingproxy_check_mapping
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyMapping_Check
    - PyList_Check
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int mappingproxy_check_mapping(PyObject *mapping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mappingproxy_check_mapping
      Src: /src/Python-3.8.3/Objects/descrobject.c:1138,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/descrobject.c:1141,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1144,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:1146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - type
    - mapping
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1148
    functionName: mappingproxy_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - mappingproxy_check_mapping
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mappingproxy_check_mapping
      Src: /src/Python-3.8.3/Objects/descrobject.c:1155,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/descrobject.c:1158,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1160,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:1162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1150
    functionDepth: 2
    functionLinenumber: 1150
    functionLinenumberEnd: 1165
    functionName: PyDictProxy_New
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - mappingproxy_check_mapping
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyDictProxy_New(PyObject *mapping)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1180
    functionName: Wrapper_Check
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Wrapper_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/descrobject.c:1184,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/descrobject.c:1185,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1186,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1187,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/descrobject.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - wp
    argTypes:
    - wrapperobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1190
    functionName: wrapper_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void wrapper_dealloc(wrapperobject *wp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:1198,1
    - Dst: Wrapper_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:1202,1
    - Dst: Wrapper_Check
      Src: /src/Python-3.8.3/Objects/descrobject.c:1202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (a != NULL && b != NULL)
      pos:
        line_end: 1197
        line_start: 1197
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 1216
      start: 1192
    functionDepth: 1
    functionLinenumber: 1192
    functionLinenumberEnd: 1216
    functionName: wrapper_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - assert
    - Wrapper_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_richcompare(PyObject *a, PyObject *b, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Objects/descrobject.c:1222,1
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Objects/descrobject.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - wp
    argTypes:
    - wrapperobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1228
    functionName: wrapper_hash
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t wrapper_hash(wrapperobject *wp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/descrobject.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wp
    argTypes:
    - wrapperobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1237
    functionName: wrapper_repr
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_repr(wrapperobject *wp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1242,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/descrobject.c:1243,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1243,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/descrobject.c:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1245
    functionName: wrapper_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    - PyDescr_NAME
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_reduce(wrapperobject *wp, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:1260,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1264
    functionName: wrapper_objclass
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_TYPE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_objclass(wrapperobject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/descrobject.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1272
    functionName: wrapper_name
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_name(wrapperobject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1278
    functionName: wrapper_doc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_doc(wrapperobject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/Python-3.8.3/Objects/descrobject.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1284
    functionName: wrapper_text_signature
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_text_signature(wrapperobject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: descr_get_qualname
      Src: /src/Python-3.8.3/Objects/descrobject.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - wp
    - Py_UNUSED(ignored)
    argTypes:
    - wrapperobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1286
    functionDepth: 4
    functionLinenumber: 1286
    functionLinenumberEnd: 1290
    functionName: wrapper_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - descr_get_qualname
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_qualname(wrapperobject *wp, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wrapperdescr_raw_call
      Src: /src/Python-3.8.3/Objects/descrobject.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wp
    - args
    - kwds
    argTypes:
    - wrapperobject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 2
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: wrapper_call
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - wrapperdescr_raw_call
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrapper_call(wrapperobject *wp, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1311,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1307
    functionDepth: 1
    functionLinenumber: 1307
    functionLinenumberEnd: 1314
    functionName: wrapper_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int wrapper_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:1360,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/descrobject.c:1360,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/descrobject.c:1362,1
    - Dst: _PyObject_RealIsSubclass
      Src: /src/Python-3.8.3/Objects/descrobject.c:1362,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:1362,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:1363,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/descrobject.c:1365,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1367,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1369,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - d
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyObject_TypeCheck(d, &PyWrapperDescr_Type))
      pos:
        line_end: 1359
        line_start: 1359
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    - condition: "(_PyObject_RealIsSubclass((PyObject *)Py_TYPE(self),\n                                    (PyObject
        *)PyDescr_TYPE(descr)))"
      pos:
        line_end: 1362
        line_start: 1361
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    constantsTouched: []
    func_position:
      end: 1374
      start: 1354
    functionDepth: 7
    functionLinenumber: 1354
    functionLinenumberEnd: 1374
    functionName: PyWrapper_New
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 1
    functionsReached:
    - PyDescr_TYPE
    - _PyObject_RealIsSubclass
    - Py_INCREF
    - PyObject_TypeCheck
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyWrapper_New(PyObject *d, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: property_copy
      Src: /src/Python-3.8.3/Objects/descrobject.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - getter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1437
    functionName: property_getter
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - property_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_getter(PyObject *self, PyObject *getter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: property_copy
      Src: /src/Python-3.8.3/Objects/descrobject.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - setter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1447
    functionName: property_setter
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - property_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_setter(PyObject *self, PyObject *setter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: property_copy
      Src: /src/Python-3.8.3/Objects/descrobject.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - deleter
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1457
    functionName: property_deleter
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - property_copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_deleter(PyObject *self, PyObject *deleter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/descrobject.c:1473,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1474,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1475,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1476,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1477,1
    - Dst: PyObject*::ob_type::tp_free
      Src: /src/Python-3.8.3/Objects/descrobject.c:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1479
    functionName: property_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject*::ob_type::tp_free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void property_dealloc(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1485,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/descrobject.c:1491,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/descrobject.c:1496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1481
    functionDepth: 1
    functionLinenumber: 1481
    functionLinenumberEnd: 1497
    functionName: property_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_FastCall
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/descrobject.c:1510,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/descrobject.c:1517,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/descrobject.c:1519,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - self
    - obj
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1524
    functionName: property_descr_set
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFunctionObjArgs
    - Py_DECREF
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int property_descr_set(PyObject *self, PyObject *obj, PyObject *value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Type
      Src: /src/Python-3.8.3/Objects/descrobject.c:1532,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1537,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1541,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1545,1
    - Dst: PyObject_CallFunctionObjArgs::PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/descrobject.c:1556,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - old
    - get
    - set
    - del
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1561
    functionName: property_copy
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs::PyObject_CallFunctionObjArgs
    - Py_XDECREF
    - PyObject_Type
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_copy(PyObject *old, PyObject *get, PyObject *set, PyObject *del)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1612,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1613,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1614,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1615,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1617,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1618,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1619,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1620,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/descrobject.c:1625,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1627,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/descrobject.c:1631,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1632,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Objects/descrobject.c:1639,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/descrobject.c:1640,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - self
    - fget
    - fset
    - fdel
    - doc
    argTypes:
    - propertyobject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1600
    functionDepth: 3
    functionLinenumber: 1600
    functionLinenumberEnd: 1648
    functionName: property_init_impl
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - Py_XSETREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - Py_TYPE
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: "int property_init_impl(propertyobject *self, PyObject *fget, PyObject
      *fset,\n                   PyObject *fdel, PyObject *doc)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Objects/descrobject.c:1653,1
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Objects/descrobject.c:1661,1
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Objects/descrobject.c:1669,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - prop
    - closure
    argTypes:
    - propertyobject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1677
    functionName: property_get___isabstractmethod__
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsAbstract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      property_get___isabstractmethod__(propertyobject *prop, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1691,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1692,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1693,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/descrobject.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1696
    functionName: property_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int property_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/descrobject.c:1702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1704
    functionName: property_clear
    functionSourceFile: /src/Python-3.8.3/Objects/descrobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int property_clear(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:16,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:19,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:26,1
    - Dst: _PyInterpreterState_IDIncref
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - cls
    - id
    - force
    argTypes:
    - PyTypeObject*
    - int64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 36
    functionName: newinterpid
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - PyErr_Clear
    - _PyInterpreterState_IDIncref
    - PyObject_New
    linkageType: ''
    returnType: interpid
    signature: 'interpid *

      newinterpid(PyTypeObject *cls, int64_t id, int force)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:42,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:45,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:46,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:47,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:51,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:57,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - arg
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: interp_id_converter
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PyObject_TypeCheck
    - PyLong_AsLongLong
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int interp_id_converter(PyObject *arg, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:72,1
    - Dst: newinterpid
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 79
    functionName: interpid_new
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - newinterpid
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpid_new(PyTypeObject *cls, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:85,1
    - Dst: _PyInterpreterState_IDDecref
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:87,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:91,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: interpid_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_LookUpID
    - PyErr_Clear
    - Py_TYPE
    - _PyInterpreterState_IDDecref
    linkageType: ''
    returnType: void
    signature: void interpid_dealloc(PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:99,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:100,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: interpid_repr
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - _PyType_Name
    - Py_TYPE
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpid_repr(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: interpid_str
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpid_str(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: interpid_int
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpid_int(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:163,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 170
    functionName: interpid_hash
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - Py_DECREF
    - PyLong_FromLongLong
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t interpid_hash(PyObject *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:179,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:185,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:189,1
    - Dst: PyLong_AsLongLongAndOverflow
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:192,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:193,1
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:198,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:199,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:204,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 215
    functionName: interpid_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyLong_AsLongLongAndOverflow
    - PyNumber_Check
    - Py_DECREF
    - PyObject_TypeCheck
    - PyLong_CheckExact
    - PyObject_RichCompare
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      interpid_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: newinterpid
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: _PyInterpreterID_New
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 1
    functionsReached:
    - newinterpid
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_PyInterpreterID_New(int64_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_IDInitref
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:269,1
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:272,1
    - Dst: newinterpid
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: _PyInterpreterState_GetIDObject
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 3
    functionsReached:
    - newinterpid
    - PyInterpreterState_GetID
    - _PyInterpreterState_IDInitref
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpreterState_GetIDObject(PyInterpreterState *interp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: interp_id_converter
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:283,1
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/Python-3.8.3/Objects/interpreteridobject.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - requested_id
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: _PyInterpreterID_LookUp
    functionSourceFile: /src/Python-3.8.3/Objects/interpreteridobject.c
    functionUses: 3
    functionsReached:
    - _PyInterpreterState_LookUpID
    - interp_id_converter
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterID_LookUp(PyObject *requested_id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: _PyUnicode_CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_CHECK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: _PyUnicode_CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_CHECK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: _PyUnicode_UTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_UTF8(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: PyUnicode_UTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_UTF8(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_UTF8_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_UTF8_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: _PyUnicode_WSTR
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_WSTR(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_WSTR_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: _PyUnicode_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: _PyUnicode_STATE
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_STATE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: _PyUnicode_HASH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_HASH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: _PyUnicode_KIND
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_KIND(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: _PyUnicode_GET_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_GET_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: _PyUnicode_DATA_ANY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_DATA_ANY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: PyUnicode_READY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 81
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: _PyUnicode_SHARE_UTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_SHARE_UTF8(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: _PyUnicode_SHARE_WSTR
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_SHARE_WSTR(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: _PyUnicode_HAS_UTF8_MEMORY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_HAS_UTF8_MEMORY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: _PyUnicode_HAS_WSTR_MEMORY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_HAS_WSTR_MEMORY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - from_type
    - ','
    - to_type
    - ','
    - begin
    - ','
    - end
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 189
    functionName: _PyUnicode_CONVERT_BYTES
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_CONVERT_BYTES(from_type, to_type, begin, end, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: _Py_INCREF_UNICODE_EMPTY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INCREF_UNICODE_EMPTY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: _Py_RETURN_UNICODE_EMPTY
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_RETURN_UNICODE_EMPTY()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:234,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:235,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:238,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:253,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - kind
    - data
    - value
    - start
    - length
    argTypes:
    - enum PyUnicode_Kind
    - void*
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (0 <= start)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (value <= 0xff)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (kind != PyUnicode_WCHAR_KIND)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (value <= 0xffff)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (value <= MAX_UNICODE)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 262
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 262
    functionName: unicode_fill
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: "void unicode_fill(enum PyUnicode_Kind kind, void *data, Py_UCS4 value,\n
      \            Py_ssize_t start, Py_ssize_t length)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:375,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:378,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:381,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:384,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:387,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:390,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:393,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 397
    functionName: _Py_GetErrorHandler
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: _Py_error_handler
    signature: _Py_error_handler _Py_GetErrorHandler(const char *errors)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:403,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:406,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:409,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:412,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:415,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:418,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - errors
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 425
    functionName: get_error_handler_wide
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wcscmp
    linkageType: ''
    returnType: _Py_error_handler
    signature: _Py_error_handler get_error_handler_wide(const wchar_t *errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: PyUnicode_GetMax
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UNICODE
    signature: Py_UNICODE PyUnicode_GetMax(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:451,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:452,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:452,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:458,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:459,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:467,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:470,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:471,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:472,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:479,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:480,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:481,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:482,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:483,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:484,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:485,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:486,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:487,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:490,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:493,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:494,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:495,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:497,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:498,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:501,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:513,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:514,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:516,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:520,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:522,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - op
    - check_content
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 523
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 523
    functionName: _PyUnicode_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - PyUnicode_Check
    - assert
    - CHECK
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_CheckConsistency(PyObject *op, int check_content)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 447
    functionName: CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:569,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:571,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:572,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:576,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:579,1
    - Dst: _PyUnicode_Ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:585,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:589,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:589,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:593,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 592
        line_start: 592
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 596
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 596
    functionName: unicode_result_wchar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - Py_DECREF
    - Py_REFCNT
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - _PyUnicode_CheckConsistency
    - _PyUnicode_Ready
    - get_latin1_char
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result_wchar(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:603,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:606,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:607,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:613,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:614,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:615,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:620,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:626,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:626,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:627,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:634,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 636
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 636
    functionName: unicode_result_ready
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_RETURN_UNICODE_EMPTY
    - Py_DECREF
    - PyUnicode_READ
    - Py_INCREF
    - _PyUnicode_CheckConsistency
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result_ready(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:641,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:641,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:642,1
    - Dst: unicode_result_ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:643,1
    - Dst: unicode_result_wchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 646
    functionName: unicode_result
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - _PyUnicode_CHECK
    - unicode_result_ready
    - assert
    - unicode_result_wchar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result(PyObject *unicode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:651,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:652,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:654,1
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 660
    functionName: unicode_result_unchanged
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyUnicode_Copy
    - PyUnicode_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_result_unchanged(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:673,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:673,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:674,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:675,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:682,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:688,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:692,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:699,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:705,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 5
    argNames:
    - writer
    - str
    - unicode
    - collstart
    - collend
    argTypes:
    - _PyBytesWriter*
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 687
        line_start: 687
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 727
      start: 664
    functionDepth: 5
    functionLinenumber: 664
    functionLinenumberEnd: 727
    functionName: backslashreplace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - PyUnicode_READ
    - PyUnicode_KIND
    - _PyBytesWriter_Prepare
    - PyErr_SetString
    - PyUnicode_DATA
    - assert
    linkageType: ''
    returnType: char
    signature: "char *\nbackslashreplace(_PyBytesWriter *writer, char *str,\n                 PyObject
      *unicode, Py_ssize_t collstart, Py_ssize_t collend)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:740,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:740,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:741,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:742,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:749,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:763,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:767,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:774,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:780,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:780,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 5
    argNames:
    - writer
    - str
    - unicode
    - collstart
    - collend
    argTypes:
    - _PyBytesWriter*
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 783
      start: 731
    functionDepth: 5
    functionLinenumber: 731
    functionLinenumberEnd: 783
    functionName: xmlcharrefreplace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - PyUnicode_READ
    - PyUnicode_KIND
    - _PyBytesWriter_Prepare
    - PyErr_SetString
    - PyUnicode_DATA
    - assert
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nxmlcharrefreplace(_PyBytesWriter *writer, char *str,\n                  PyObject
      *unicode, Py_ssize_t collstart, Py_ssize_t collend)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 808
    functionName: BLOOM
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOOM(mask, ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: BLOOM_LINEBREAK
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOOM_LINEBREAK(ch)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BLOOM_UPDATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:835,1
    - Dst: BLOOM_UPDATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:838,1
    - Dst: BLOOM_UPDATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:841,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:844,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - ptr
    - len
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 849
    functionName: make_bloom_mask
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - BLOOM_UPDATE
    linkageType: ''
    returnType: BLOOM_MASK
    signature: BLOOM_MASK make_bloom_mask(int kind, void* ptr, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - TYPE
    - ','
    - MASK
    - ','
    - PTR
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 827
    functionName: BLOOM_UPDATE
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOOM_UPDATE(TYPE, MASK, PTR, LEN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:854,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:855,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:857,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 861
    functionName: ensure_unicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_READY
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int ensure_unicode(PyObject *obj)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ucs1lib_find_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:922,1
    - Dst: ucs1lib_rfind_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:924,1
    - Dst: ucs2lib_find_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:929,1
    - Dst: ucs2lib_rfind_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:931,1
    - Dst: ucs4lib_find_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:934,1
    - Dst: ucs4lib_rfind_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:936,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:938,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - s
    - kind
    - size
    - ch
    - direction
    argTypes:
    - void*
    - int
    - Py_ssize_t
    - Py_UCS4
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 940
    functionName: findchar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find_char
    - ucs2lib_rfind_char
    - ucs1lib_rfind_char
    - Py_UNREACHABLE
    - ucs4lib_rfind_char
    - ucs4lib_find_char
    - ucs2lib_find_char
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t findchar(const void *s, int kind,\n         Py_ssize_t
      size, Py_UCS4 ch,\n         int direction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:952,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:953,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:954,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - unicode
    - old_length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 958
    functionName: unicode_fill_invalid
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - _PyUnicode_LENGTH
    - memset
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: void
    signature: void unicode_fill_invalid(PyObject *unicode, Py_ssize_t old_length)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:970,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:973,1
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:973,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:974,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:974,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:975,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:975,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:977,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:978,1
    - Dst: _PyUnicode_SHARE_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:982,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:985,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:990,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:991,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:991,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:992,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:996,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:998,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1000,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1001,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1005,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1007,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1009,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1009,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1010,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1011,1
    - Dst: _PyUnicode_HAS_WSTR_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1013,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1014,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1014,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1015,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1016,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1017,1
    - Dst: unicode_fill_invalid
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1020,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1022,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1022,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1022,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1024,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1024,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (unicode_modifiable(unicode))
      pos:
        line_end: 972
        line_start: 972
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_COMPACT(unicode))
      pos:
        line_end: 974
        line_start: 974
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 973
        line_start: 973
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1026
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 1026
    functionName: resize_compact
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_UTF8
    - _Py_NewReference
    - _PyUnicode_SHARE_WSTR
    - PyUnicode_KIND
    - unicode_modifiable
    - _PyUnicode_LENGTH
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - assert
    - PyObject_DEL
    - PyUnicode_IS_READY
    - unicode_fill_invalid
    - PyUnicode_IS_COMPACT
    - PyObject_REALLOC
    - _PyUnicode_WSTR
    - _Py_ForgetReference
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyUnicode_WRITE
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_CheckConsistency
    - _PyUnicode_HAS_WSTR_MEMORY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resize_compact(PyObject *unicode, Py_ssize_t length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 993
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1033,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1033,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1034,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1034,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1036,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1041,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1044,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1045,1
    - Dst: _PyUnicode_SHARE_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1046,1
    - Dst: _PyUnicode_SHARE_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1047,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1050,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1055,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1057,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1057,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1058,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1062,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1064,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1067,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1069,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1070,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1073,1
    - Dst: _PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1074,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1076,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1077,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1077,1
    - Dst: unicode_fill_invalid
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1079,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1081,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1082,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1082,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1086,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1086,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1090,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1094,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1095,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1097,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1100,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1101,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1102,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1103,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1103,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (Py_REFCNT(unicode) == 1)
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_WSTR(unicode) != NULL)
      pos:
        line_end: 1085
        line_start: 1085
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1102
        line_start: 1102
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (!PyUnicode_IS_COMPACT(unicode))
      pos:
        line_end: 1032
        line_start: 1032
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 0))
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1105
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1105
    functionName: resize_inplace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_UTF8
    - _PyUnicode_SHARE_UTF8
    - _PyUnicode_SHARE_WSTR
    - PyUnicode_KIND
    - _PyUnicode_DATA_ANY
    - Py_REFCNT
    - _PyUnicode_LENGTH
    - assert
    - PyObject_DEL
    - _PyUnicode_UTF8_LENGTH
    - PyUnicode_IS_READY
    - unicode_fill_invalid
    - PyUnicode_IS_COMPACT
    - PyObject_REALLOC
    - _PyUnicode_WSTR
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyUnicode_WRITE
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: int
    signature: int resize_inplace(PyObject *unicode, Py_ssize_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1059
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1111,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1114,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1114,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1116,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1116,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1120,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1120,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1121,1
    - Dst: _PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1127,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1130,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1131,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1132,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1132,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - unicode
    - length
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 1113
        line_start: 1113
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1136
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1136
    functionName: resize_copy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - _PyUnicode_FastCopyCharacters
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_GET_LENGTH
    - _PyUnicode_New
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - _PyUnicode_KIND
    - assert
    - Py_MIN
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resize_copy(PyObject *unicode, Py_ssize_t length)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1155,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1161,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1164,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1169,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1174,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1175,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1176,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1177,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1178,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1179,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1180,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1181,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1183,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1186,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1186,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1187,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1188,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1189,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1200,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1201,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1203,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 1
    argNames:
    - length
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency((PyObject *)unicode, 0))
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1205
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1205
    functionName: _PyUnicode_New
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyUnicode_UTF8
    - PyObject_MALLOC
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - _PyUnicode_CheckConsistency
    - _PyUnicode_STATE
    - PyErr_SetString
    - _PyUnicode_HASH
    - _PyUnicode_DATA_ANY
    - PyObject_New
    linkageType: ''
    returnType: PyUnicodeObject
    signature: 'PyUnicodeObject *

      _PyUnicode_New(Py_ssize_t length)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1182
    functionName: _PyUnicode_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1184
    functionDepth: 0
    functionLinenumber: 1184
    functionLinenumberEnd: 1184
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1212,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1214,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1216,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1219,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1231,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1231,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1232,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 1230
        line_start: 1230
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1245
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1245
    functionName: unicode_kind_name
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - assert
    - PyUnicode_IS_COMPACT
    - PyUnicode_IS_ASCII
    - PyUnicode_KIND
    linkageType: ''
    returnType: char
    signature: 'char *

      unicode_kind_name(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1250,1
    - Dst: PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1252
    functionName: _PyUnicode_utf8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_UTF8
    - _PyObject_CAST
    linkageType: ''
    returnType: char
    signature: char *_PyUnicode_utf8(void *unicode_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1255,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1254
    functionDepth: 1
    functionLinenumber: 1254
    functionLinenumberEnd: 1257
    functionName: _PyUnicode_compact_data
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_COMPACT_DATA
    - _PyObject_CAST
    linkageType: ''
    returnType: void
    signature: void *_PyUnicode_compact_data(void *unicode_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1259,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1260,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1261,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1261,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1262,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1262,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1263,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1264,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1265,1
    - Dst: _PyUnicode_COMPACT_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1265,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - unicode_raw
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1267
    functionName: _PyUnicode_data
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_IS_COMPACT
    - printf
    - _PyUnicode_COMPACT_DATA
    - _PyObject_CAST
    - PyUnicode_DATA
    linkageType: ''
    returnType: void
    signature: void *_PyUnicode_data(void *unicode_raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1286,1
    - Dst: unicode_kind_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1287,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1290,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1291,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1294,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1296,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1297,1
    - Dst: printf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1301
    functionName: _PyUnicode_Dump
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - printf
    - unicode_kind_name
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Dump(PyObject *op)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1317,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1342,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1354,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1359,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1365,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1367,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1368,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1377,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1378,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1379,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1380,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1381,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1382,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1383,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1386,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1390,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1403,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1404,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1408,1
    - Dst: unicode_fill_invalid
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1412,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1414,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1414,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 81
    argCount: 2
    argNames:
    - size
    - maxchar
    argTypes:
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency((PyObject*)unicode, 0))
      pos:
        line_end: 1413
        line_start: 1413
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1304
    functionDepth: 2
    functionLinenumber: 1304
    functionLinenumberEnd: 1416
    functionName: PyUnicode_New
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 15
    functionsReached:
    - unicode_fill_invalid
    - Py_INCREF
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - PyObject_INIT
    - _PyUnicode_WSTR
    - _PyUnicode_LENGTH
    - _PyUnicode_CheckConsistency
    - _PyUnicode_STATE
    - PyErr_SetString
    - _PyUnicode_HASH
    - assert
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1391
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1407
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(unicode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1432,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1433,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1433,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1434,1
    - Dst: _PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1434,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1435,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1438,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1438,1
    - Dst: _PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1439,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1440,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1442,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1444,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1452,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1452,1
    - Dst: _PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - begin
    - end
    - unicode
    argTypes:
    - wchar_t*
    - wchar_t*
    - PyObject*
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 1431
        line_start: 1431
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 1432
        line_start: 1432
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 1433
        line_start: 1433
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: "(ucs4_out < (PyUnicode_4BYTE_DATA(unicode) +\n                           _PyUnicode_GET_LENGTH(unicode)))"
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: "(ucs4_out == (PyUnicode_4BYTE_DATA(unicode) +\n                        _PyUnicode_GET_LENGTH(unicode)))"
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1455
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1455
    functionName: unicode_convert_wchar_to_ucs4
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_CHECK
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_KIND
    - Py_UNICODE_IS_HIGH_SURROGATE
    - _PyUnicode_GET_LENGTH
    - Py_UNICODE_IS_LOW_SURROGATE
    - assert
    - Py_UNICODE_JOIN_SURROGATES
    linkageType: ''
    returnType: void
    signature: "void unicode_convert_wchar_to_ucs4(const wchar_t *begin, const wchar_t
      *end,\n                              PyObject *unicode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1461,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1467
    functionName: unicode_check_modifiable
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - unicode_modifiable
    linkageType: ''
    returnType: int
    signature: int unicode_check_modifiable(PyObject *unicode)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1478,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1479,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1480,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1480,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1481,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1481,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1482,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1484,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1484,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1485,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1485,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1486,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1486,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1491,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1492,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1493,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1494,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1498,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1498,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1500,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1504,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1505,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1512,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1512,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1517,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1522,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1529,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1531,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1532,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1533,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1539,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1541,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1542,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1543,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1549,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1551,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1552,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1553,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1557,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1557,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1557,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1563,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1565,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1566,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1567,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1573,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1575,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1576,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1577,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1583,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1585,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1586,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1587,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1591,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1595,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1600,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1603,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 6
    argNames:
    - to
    - to_start
    - from
    - from_start
    - how_many
    - check_maxchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (0 <= from_start)
      pos:
        line_end: 1477
        line_start: 1477
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(from))
      pos:
        line_end: 1480
        line_start: 1480
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(to))
      pos:
        line_end: 1483
        line_start: 1483
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= to_start)
      pos:
        line_end: 1478
        line_start: 1478
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (from_start + how_many <= PyUnicode_GET_LENGTH(from))
      pos:
        line_end: 1481
        line_start: 1481
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(from))
      pos:
        line_end: 1479
        line_start: 1479
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(to))
      pos:
        line_end: 1484
        line_start: 1484
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= how_many)
      pos:
        line_end: 1476
        line_start: 1476
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (to_start + how_many <= PyUnicode_GET_LENGTH(to))
      pos:
        line_end: 1485
        line_start: 1485
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch <= to_maxchar)
      pos:
        line_end: 1504
        line_start: 1504
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_MAX_CHAR_VALUE(from) > PyUnicode_MAX_CHAR_VALUE(to))
      pos:
        line_end: 1556
        line_start: 1556
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1608
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1608
    functionName: _copy_characters
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - PyUnicode_READ
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_Check
    - assert
    - PyUnicode_GET_LENGTH
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: int
    signature: "int _copy_characters(PyObject *to, Py_ssize_t to_start,\n                 PyObject
      *from, Py_ssize_t from_start,\n                 Py_ssize_t how_many, int check_maxchar)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _copy_characters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - to
    - to_start
    - from
    - from_start
    - how_many
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1616
    functionName: _PyUnicode_FastCopyCharacters
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _copy_characters
    linkageType: ''
    returnType: void
    signature: "void _PyUnicode_FastCopyCharacters(\n    PyObject *to, Py_ssize_t
      to_start,\n    PyObject *from, Py_ssize_t from_start, Py_ssize_t how_many)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1625,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1625,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1626,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1630,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1632,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1635,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1636,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1640,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1644,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1647,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1647,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1648,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1649,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1652,1
    - Dst: unicode_check_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1659,1
    - Dst: _copy_characters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1662,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1664,1
    - Dst: unicode_kind_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1667,1
    - Dst: unicode_kind_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1668,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - to
    - to_start
    - from
    - from_start
    - how_many
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1618
    functionDepth: 2
    functionLinenumber: 1618
    functionLinenumberEnd: 1672
    functionName: PyUnicode_CopyCharacters
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - Py_MIN
    - unicode_check_modifiable
    - _copy_characters
    - PyErr_BadInternalCall
    - unicode_kind_name
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_CopyCharacters(PyObject *to, Py_ssize_t to_start,\n
      \                        PyObject *from, Py_ssize_t from_start,\n                         Py_ssize_t
      how_many)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1686,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1692,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1694,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1696,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1709,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - begin
    - end
    - maxchar
    - num_surrogates
    argTypes:
    - wchar_t*
    - wchar_t*
    - Py_UCS4*
    - Py_ssize_t*
    assertStmts:
    - condition: (num_surrogates != NULL && maxchar != NULL)
      pos:
        line_end: 1685
        line_start: 1685
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1717
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1717
    functionName: find_maxchar_surrogates
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    - assert
    - Py_UNICODE_JOIN_SURROGATES
    linkageType: ''
    returnType: int
    signature: "int find_maxchar_surrogates(const wchar_t *begin, const wchar_t *end,\n
      \                       Py_UCS4 *maxchar, Py_ssize_t *num_surrogates)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1733,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1733,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1734,1
    - Dst: _PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1734,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1735,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1735,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1736,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1736,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1737,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1737,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1739,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1739,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1741,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1741,1
    - Dst: find_maxchar_surrogates
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1742,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1742,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1747,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1747,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1747,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1748,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1749,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1755,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1755,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1756,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1756,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1757,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1759,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1760,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1760,1
    - Dst: _PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1761,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1761,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1764,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1765,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1768,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1768,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1769,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1775,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1780,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1780,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1781,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1781,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1782,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1782,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1783,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1784,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1788,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1788,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1789,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1790,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1791,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1794,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1795,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1796,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1797,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1797,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1798,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1798,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1799,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1800,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1802,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1802,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1803,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1812,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1814,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1817,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1817,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1818,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1819,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1822,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1823,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1824,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1827,1
    - Dst: unicode_convert_wchar_to_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1828,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1828,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1829,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1829,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1830,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1833,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1835,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1835,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1836,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1836,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1837,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1839,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1841,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1841,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1843,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1844,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1844,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: "(num_surrogates == 0 &&\n               \"FindMaxCharAndNumSurrogatePairs()
        messed up\")"
      pos:
        line_end: 1775
        line_start: 1774
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_UTF8(unicode) == NULL)
      pos:
        line_end: 1736
        line_start: 1736
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (num_surrogates == 0)
      pos:
        line_end: 1832
        line_start: 1832
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 1732
        line_start: 1732
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 1843
        line_start: 1843
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_STATE(unicode).interned == SSTATE_NOT_INTERNED)
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_DATA_ANY(unicode) == NULL)
      pos:
        line_end: 1735
        line_start: 1735
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_KIND(unicode) == PyUnicode_WCHAR_KIND)
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_WSTR(unicode) != NULL)
      pos:
        line_end: 1734
        line_start: 1734
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1846
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1846
    functionName: _PyUnicode_Ready
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _PyUnicode_UTF8
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_STATE
    - PyObject_FREE
    - _PyUnicode_DATA_ANY
    - PyObject_MALLOC
    - _PyUnicode_CHECK
    - _PyUnicode_LENGTH
    - PyUnicode_1BYTE_DATA
    - assert
    - _PyUnicode_UTF8_LENGTH
    - _PyUnicode_CONVERT_BYTES
    - _PyUnicode_WSTR
    - _PyUnicode_KIND
    - unicode_convert_wchar_to_ucs4
    - find_maxchar_surrogates
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - PyUnicode_2BYTE_DATA
    - _PyUnicode_CheckConsistency
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_Ready(PyObject *unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1766
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1770
    functionDepth: 0
    functionLinenumber: 1770
    functionLinenumberEnd: 1770
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1785
    functionDepth: 0
    functionLinenumber: 1785
    functionLinenumberEnd: 1785
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1801
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1804
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1825
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1831
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1838
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(unicode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1851,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1857,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1858,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1859,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1864,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1868,1
    - Dst: _PyUnicode_HAS_WSTR_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1871,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1872,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1872,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1873,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1874,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1874,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1875,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1875,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1876,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1876,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1848
    functionDepth: 4
    functionLinenumber: 1848
    functionLinenumberEnd: 1879
    functionName: unicode_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_HAS_UTF8_MEMORY
    - _PyUnicode_UTF8
    - PyDict_DelItem
    - Py_REFCNT
    - PyUnicode_IS_COMPACT
    - Py_FatalError
    - PyObject_DEL
    - _PyUnicode_WSTR
    - Py_TYPE
    - PyUnicode_CHECK_INTERNED
    - _PyUnicode_DATA_ANY
    - _PyUnicode_HAS_WSTR_MEMORY
    linkageType: ''
    returnType: void
    signature: void unicode_dealloc(PyObject *unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1895
    functionName: unicode_is_singleton
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: int
    signature: int unicode_is_singleton(PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1901,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1901,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1902,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1904,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1906,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1908,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1912,1
    - Dst: unicode_is_singleton
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1912,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 1900
        line_start: 1900
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (!unicode_is_singleton(unicode))
      pos:
        line_end: 1911
        line_start: 1911
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1915
      start: 1898
    functionDepth: 2
    functionLinenumber: 1898
    functionLinenumberEnd: 1915
    functionName: unicode_modifiable
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_is_singleton
    - _PyUnicode_CHECK
    - Py_REFCNT
    - _PyUnicode_HASH
    - assert
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int unicode_modifiable(PyObject *unicode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1923,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1926,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1927,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1927,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1928,1
    - Dst: _PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1930,1
    - Dst: PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1931,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1933,1
    - Dst: _Py_INCREF_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1938,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1941,1
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1945,1
    - Dst: resize_copy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1946,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1949,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1953,1
    - Dst: resize_compact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1954,1
    - Dst: resize_inplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - p_unicode
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (p_unicode != NULL)
      pos:
        line_end: 1922
        line_start: 1922
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= length)
      pos:
        line_end: 1927
        line_start: 1927
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(unicode))
      pos:
        line_end: 1926
        line_start: 1926
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (unicode != NULL)
      pos:
        line_end: 1925
        line_start: 1925
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 1961
      start: 1917
    functionDepth: 3
    functionLinenumber: 1917
    functionLinenumberEnd: 1961
    functionName: unicode_resize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_modifiable
    - resize_compact
    - _Py_INCREF_UNICODE_EMPTY
    - Py_SETREF
    - resize_inplace
    - PyUnicode_IS_COMPACT
    - _PyUnicode_KIND
    - PyUnicode_Check
    - assert
    - resize_copy
    - PyUnicode_GET_LENGTH
    - PyUnicode_WSTR_LENGTH
    linkageType: ''
    returnType: int
    signature: int unicode_resize(PyObject **p_unicode, Py_ssize_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1968,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1972,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1974,1
    - Dst: unicode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p_unicode
    - length
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1963
    functionDepth: 4
    functionLinenumber: 1963
    functionLinenumberEnd: 1978
    functionName: PyUnicode_Resize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicode_resize
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Resize(PyObject **p_unicode, Py_ssize_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1989,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1990,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1995,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1995,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1997,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:1998,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2001,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2004,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2010,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2010,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2015,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2015,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2021,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2022,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2022,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2027,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2027,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - unicode
    - index
    - str
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (index + len <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 1994
        line_start: 1994
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (maxchar < 128)
      pos:
        line_end: 2000
        line_start: 2000
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (index <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2009
        line_start: 2009
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (index <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2021
        line_start: 2021
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: ((ucs2 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2014
        line_start: 2014
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 2020
        line_start: 2020
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: ((ucs4 - start) <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2030
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2030
    functionName: unicode_write_cstr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: void
    signature: "void unicode_write_cstr(PyObject *unicode, Py_ssize_t index,\n                   const
      char *str, Py_ssize_t len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2037,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2040,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2041,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2041,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2044,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ch
    argTypes:
    - unsigned char
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 2040
        line_start: 2040
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2046
      start: 2032
    functionDepth: 3
    functionLinenumber: 2032
    functionLinenumberEnd: 2046
    functionName: get_latin1_char
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - assert
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_latin1_char(unsigned char ch)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2053,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2056,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2058,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2062,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2062,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2063,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2064,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2066,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2066,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2067,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2069,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2069,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 2052
        line_start: 2052
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) != PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2061
        line_start: 2061
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 2065
        line_start: 2065
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 2068
        line_start: 2068
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2071
      start: 2048
    functionDepth: 4
    functionLinenumber: 2048
    functionLinenumberEnd: 2071
    functionName: unicode_char
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - get_latin1_char
    - assert
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_char(Py_UCS4 ch)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2077,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2080,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2073
    functionDepth: 3
    functionLinenumber: 2073
    functionLinenumberEnd: 2085
    functionName: PyUnicode_FromUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromWideChar
    - _PyUnicode_New
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromUnicode(const Py_UNICODE *u, Py_ssize_t size)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2095,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2100,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2108,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2113,1
    - Dst: find_maxchar_surrogates
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2117,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2121,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2125,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2127,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2128,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2132,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2132,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2134,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2135,1
    - Dst: unicode_convert_wchar_to_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2142,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2144,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2145,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2145,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2149,1
    - Dst: unicode_result
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - wchar_t*
    - Py_ssize_t
    assertStmts:
    - condition: (num_surrogates == 0)
      pos:
        line_end: 2143
        line_start: 2143
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2153
      start: 2087
    functionDepth: 4
    functionLinenumber: 2087
    functionLinenumberEnd: 2153
    functionName: PyUnicode_FromWideChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 43
    functionsReached:
    - find_maxchar_surrogates
    - assert
    - _Py_RETURN_UNICODE_EMPTY
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_2BYTE_DATA
    - PyErr_BadInternalCall
    - unicode_convert_wchar_to_ucs4
    - PyUnicode_4BYTE_DATA
    - Py_UNREACHABLE
    - PyUnicode_1BYTE_DATA
    - get_latin1_char
    - PyUnicode_KIND
    - unicode_result
    - wcslen
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromWideChar(const wchar_t *u, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2159,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2164,1
    - Dst: _PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2155
    functionDepth: 3
    functionLinenumber: 2155
    functionLinenumberEnd: 2167
    functionName: PyUnicode_FromStringAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 33
    functionsReached:
    - _PyUnicode_New
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromStringAndSize(const char *u, Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2172,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2174,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - u
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2178
    functionName: PyUnicode_FromString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 140
    functionsReached:
    - strlen
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromString(const char *u)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2184,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2185,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2189,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - _Py_Identifier*
    assertStmts:
    - condition: (!id->next)
      pos:
        line_end: 2189
        line_start: 2189
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2195
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2195
    functionName: _PyUnicode_FromId
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 16
    functionsReached:
    - strlen
    - assert
    - PyUnicode_InternInPlace
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromId(_Py_Identifier *id)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2208
    functionName: _PyUnicode_ClearStaticStrings
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_ClearStaticStrings()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2219,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2221,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2223,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2226,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2226,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2227,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: ((unsigned char)s[0] < 128)
      pos:
        line_end: 2218
        line_start: 2218
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(unicode, 1))
      pos:
        line_end: 2226
        line_start: 2226
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2229
      start: 2212
    functionDepth: 4
    functionLinenumber: 2212
    functionLinenumberEnd: 2229
    functionName: _PyUnicode_FromASCII
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - get_latin1_char
    - assert
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromASCII(const char *buffer, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - kind
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2231
    functionDepth: 1
    functionLinenumber: 2231
    functionLinenumberEnd: 2244
    functionName: kind_maxchar_limit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 kind_maxchar_limit(unsigned int kind)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2253,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2254,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2256,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2258,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2259,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2262,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2262,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2263,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - Py_UCS1*
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2262
        line_start: 2262
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2265
      start: 2246
    functionDepth: 4
    functionLinenumber: 2246
    functionLinenumberEnd: 2265
    functionName: _PyUnicode_FromUCS1
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - memcpy
    - PyUnicode_New
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - get_latin1_char
    - assert
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromUCS1(const Py_UCS1* u, Py_ssize_t size)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2274,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2275,1
    - Dst: unicode_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2277,1
    - Dst: ucs2lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2279,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2280,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2284,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2284,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2286,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2287,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2289,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - Py_UCS2*
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 2274
        line_start: 2274
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2288
        line_start: 2288
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2291
      start: 2267
    functionDepth: 5
    functionLinenumber: 2267
    functionLinenumberEnd: 2291
    functionName: _PyUnicode_FromUCS2
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - unicode_char
    - PyUnicode_2BYTE_DATA
    - ucs2lib_find_max_char
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - assert
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromUCS2(const Py_UCS2 *u, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2300,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2301,1
    - Dst: unicode_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2303,1
    - Dst: ucs4lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2305,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2306,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2310,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2311,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2313,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2314,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2316,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2316,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2317,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - u
    - size
    argTypes:
    - Py_UCS4*
    - Py_ssize_t
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 2300
        line_start: 2300
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 2316
        line_start: 2316
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2319
      start: 2293
    functionDepth: 5
    functionLinenumber: 2293
    functionLinenumberEnd: 2319
    functionName: _PyUnicode_FromUCS4
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs4lib_find_max_char
    - _Py_RETURN_UNICODE_EMPTY
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - unicode_char
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_CheckConsistency
    - PyUnicode_1BYTE_DATA
    - assert
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FromUCS4(const Py_UCS4 *u, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2325,1
    - Dst: _PyUnicode_FromUCS1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2330,1
    - Dst: _PyUnicode_FromUCS2
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2332,1
    - Dst: _PyUnicode_FromUCS4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2334,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - kind
    - buffer
    - size
    argTypes:
    - int
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2321
    functionDepth: 6
    functionLinenumber: 2321
    functionLinenumberEnd: 2339
    functionName: PyUnicode_FromKindAndData
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 12
    functionsReached:
    - _PyUnicode_FromUCS2
    - _PyUnicode_FromUCS4
    - PyErr_SetString
    - _PyUnicode_FromUCS1
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromKindAndData(int kind, const void *buffer, Py_ssize_t size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2347,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2347,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2348,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2349,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2349,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2350,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2352,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2353,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2358,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2361,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2362,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2367,1
    - Dst: ucs2lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2369,1
    - Dst: ucs4lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2371,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - unicode
    - start
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 2346
        line_start: 2346
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (end <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 2348
        line_start: 2348
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= start)
      pos:
        line_end: 2347
        line_start: 2347
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (start <= end)
      pos:
        line_end: 2349
        line_start: 2349
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2375
      start: 2341
    functionDepth: 1
    functionLinenumber: 2341
    functionLinenumberEnd: 2375
    functionName: _PyUnicode_FindMaxChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - ucs4lib_find_max_char
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_KIND
    - ucs2lib_find_max_char
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 _PyUnicode_FindMaxChar(PyObject *unicode, Py_ssize_t start,
      Py_ssize_t end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2388,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2390,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2390,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2391,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2394,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2395,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2397,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2398,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2403,1
    - Dst: ucs2lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2404,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2409,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2410,1
    - Dst: ucs4lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2411,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2415,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2417,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - p_unicode
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (p_unicode != NULL)
      pos:
        line_end: 2387
        line_start: 2387
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 2389
        line_start: 2389
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 2409
        line_start: 2409
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2420
      start: 2380
    functionDepth: 3
    functionLinenumber: 2380
    functionLinenumberEnd: 2420
    functionName: unicode_adjust_maxchar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - ucs4lib_find_max_char
    - _PyUnicode_FastCopyCharacters
    - Py_DECREF
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - PyUnicode_New
    - ucs2lib_find_max_char
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: void
    signature: void unicode_adjust_maxchar(PyObject **p_unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2428,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2429,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2432,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2435,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2436,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2436,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2439,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2439,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2439,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2441,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2441,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2441,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2442,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2443,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_KIND(copy) == PyUnicode_KIND(unicode))
      pos:
        line_end: 2438
        line_start: 2438
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(copy, 1))
      pos:
        line_end: 2442
        line_start: 2442
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2445
      start: 2422
    functionDepth: 3
    functionLinenumber: 2422
    functionLinenumberEnd: 2445
    functionName: _PyUnicode_Copy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READY
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyErr_BadInternalCall
    - _PyUnicode_CheckConsistency
    - PyUnicode_Check
    - assert
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_Copy(PyObject *unicode)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2458,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2461,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2462,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2464,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2469,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2471,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2472,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2473,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2475,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2476,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2480,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2482,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2484,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2486,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2487,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2491,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2492,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2494,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2495,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2502,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - s
    - kind
    argTypes:
    - PyObject*
    - unsigned int
    assertStmts:
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (skind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 2490
        line_start: 2490
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2504
      start: 2451
    functionDepth: 1
    functionLinenumber: 2451
    functionLinenumberEnd: 2504
    functionName: _PyUnicode_AsKind
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - assert
    - PyUnicode_READY
    - _PyUnicode_CONVERT_BYTES
    - PyErr_NoMemory
    - PyUnicode_2BYTE_DATA
    - PyErr_SetString
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      _PyUnicode_AsKind(PyObject *s, unsigned int kind)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2513,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2515,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2516,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2517,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2522,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2524,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2530,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2539,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2543,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2546,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2547,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - string
    - target
    - targetsize
    - copy_null
    argTypes:
    - PyObject*
    - Py_UCS4*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 2545
        line_start: 2545
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2552
      start: 2506
    functionDepth: 1
    functionLinenumber: 2506
    functionLinenumberEnd: 2552
    functionName: as_ucs4
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - assert
    - PyUnicode_READY
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - PyErr_NoMemory
    - PyErr_Format
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_UCS4
    signature: "Py_UCS4 *\nas_ucs4(PyObject *string, Py_UCS4 *target, Py_ssize_t targetsize,\n
      \       int copy_null)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2559,1
    - Dst: as_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - string
    - target
    - targetsize
    - copy_null
    argTypes:
    - PyObject*
    - Py_UCS4*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2554
    functionDepth: 2
    functionLinenumber: 2554
    functionLinenumberEnd: 2563
    functionName: PyUnicode_AsUCS4
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - as_ucs4
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: Py_UCS4
    signature: "Py_UCS4 *\nPyUnicode_AsUCS4(PyObject *string, Py_UCS4 *target, Py_ssize_t
      targetsize,\n                 int copy_null)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2565
    functionDepth: 2
    functionLinenumber: 2565
    functionLinenumberEnd: 2569
    functionName: PyUnicode_AsUCS4Copy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - as_ucs4
    linkageType: ''
    returnType: Py_UCS4
    signature: 'Py_UCS4 *

      PyUnicode_AsUCS4Copy(PyObject *string)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2583,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2586,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2589,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2592,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2594,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2595,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2596,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2600,1
    - Dst: PyUnicode_Fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2605,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - writer
    - str
    - width
    - precision
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2576
    functionDepth: 3
    functionLinenumber: 2576
    functionLinenumberEnd: 2614
    functionName: unicode_fromformat_write_str
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_READY
    - Py_MIN
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_FindMaxChar
    - PyUnicode_Fill
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int unicode_fromformat_write_str(_PyUnicodeWriter *writer, PyObject
      *str,\n                             Py_ssize_t width, Py_ssize_t precision)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2626,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2634,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - writer
    - str
    - width
    - precision
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2616
    functionDepth: 4
    functionLinenumber: 2616
    functionLinenumberEnd: 2641
    functionName: unicode_fromformat_write_cstr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_fromformat_write_str
    - strlen
    - PyUnicode_DecodeUTF8Stateful
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int unicode_fromformat_write_cstr(_PyUnicodeWriter *writer, const
      char *str,\n                              Py_ssize_t width, Py_ssize_t precision)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2667,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2670,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2672,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2683,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2686,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2688,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2735,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2739,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2755,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2756,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2758,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2759,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2761,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2762,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2764,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2765,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2768,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2768,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2772,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2773,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2775,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2776,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2778,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2779,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2781,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2782,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2784,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2789,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2790,1
    - Dst: PyUnicode_Fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2797,1
    - Dst: PyUnicode_Fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2803,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2808,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2817,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2817,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2818,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2824,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2825,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2831,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2839,1
    - Dst: unicode_fromformat_write_cstr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2840,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2847,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2848,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2848,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2850,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2857,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2858,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2860,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2860,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2861,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2865,1
    - Dst: unicode_fromformat_write_cstr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2866,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2874,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2876,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2877,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2880,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2884,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2890,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2892,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2893,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2897,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2900,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2906,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2908,1
    - Dst: PyObject_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2909,1
    - Dst: unicode_fromformat_write_str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2912,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2916,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2921,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2930,1
    - Dst: _PyUnicodeWriter_WriteLatin1String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2931,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 206
    argCount: 3
    argNames:
    - writer
    - f
    - vargs
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - va_list*
    assertStmts:
    - condition: (obj)
      pos:
        line_end: 2891
        line_start: 2891
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (len >= 0)
      pos:
        line_end: 2783
        line_start: 2783
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 2907
        line_start: 2907
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (obj)
      pos:
        line_end: 2875
        line_start: 2875
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (str != NULL)
      pos:
        line_end: 2864
        line_start: 2864
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (len >= 0)
      pos:
        line_end: 2817
        line_start: 2817
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (obj && _PyUnicode_CHECK(obj))
      pos:
        line_end: 2847
        line_start: 2847
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(obj))
      pos:
        line_end: 2859
        line_start: 2859
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 2939
      start: 2643
    functionDepth: 5
    functionLinenumber: 2643
    functionLinenumberEnd: 2939
    functionName: unicode_fromformat_arg
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_ISDIGIT
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_CHECK
    - Py_MAX
    - va_arg
    - PyObject_ASCII
    - strlen
    - PyObject_Str
    - memmove
    - PyObject_Repr
    - _PyUnicodeWriter_WriteCharInline
    - assert
    - PyUnicode_Fill
    - Py_DECREF
    - unicode_fromformat_write_str
    - _PyUnicodeWriter_WriteASCIIString
    - _PyUnicodeWriter_WriteLatin1String
    - unicode_fromformat_write_cstr
    - PyErr_SetString
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nunicode_fromformat_arg(_PyUnicodeWriter *writer,\n                       const
      char *f, va_list *vargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2948,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2949,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2953,1
    - Dst: unicode_fromformat_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2957,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2969,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2983,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2989,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2990,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2993,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:2994,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - format
    - vargs
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2996
      start: 2941
    functionDepth: 6
    functionLinenumber: 2941
    functionLinenumberEnd: 2996
    functionName: PyUnicode_FromFormatV
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_WriteASCIIString
    - va_copy
    - strlen
    - PyErr_Format
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - va_end
    - unicode_fromformat_arg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromFormatV(const char *format, va_list vargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3005,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3007,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3009,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 2998
    functionDepth: 7
    functionLinenumber: 2998
    functionLinenumberEnd: 3012
    functionName: PyUnicode_FromFormat
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 97
    functionsReached:
    - va_start
    - va_end
    - PyUnicode_FromFormatV
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromFormat(const char *format, ...)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3019,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3020,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3020,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3022,1
    - Dst: PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3023,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3025,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3025,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3027,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3029,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 3018
        line_start: 3018
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3019
        line_start: 3019
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 3024
        line_start: 3024
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3040
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3040
    functionName: unicode_get_widechar_size
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - _PyUnicode_CHECK
    - PyUnicode_KIND
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_WSTR
    - _PyUnicode_LENGTH
    - assert
    - PyUnicode_WSTR_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_get_widechar_size(PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3047,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3048,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3048,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3050,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3052,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3055,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3055,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3057,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3058,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3065,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3065,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3066,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3071,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3071,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3072,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3076,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3078,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3081,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - unicode
    - w
    - size
    argTypes:
    - PyObject*
    - wchar_t*
    - Py_ssize_t
    assertStmts:
    - condition: (unicode != NULL)
      pos:
        line_end: 3046
        line_start: 3046
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 3047
        line_start: 3047
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 3054
        line_start: 3054
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_2BYTE_KIND)
      pos:
        line_end: 3064
        line_start: 3064
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 3075
        line_start: 3075
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(unicode) == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 3070
        line_start: 3070
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3089
      start: 3042
    functionDepth: 1
    functionLinenumber: 3042
    functionLinenumberEnd: 3089
    functionName: unicode_copy_as_widechar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - memcpy
    - _PyUnicode_CHECK
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - _PyUnicode_WSTR
    - Py_UNICODE_LOW_SURROGATE
    - PyUnicode_1BYTE_DATA
    - Py_UNICODE_HIGH_SURROGATE
    - assert
    linkageType: ''
    returnType: void
    signature: void unicode_copy_as_widechar(PyObject *unicode, wchar_t *w, Py_ssize_t
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3109,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3112,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3113,1
    - Dst: unicode_get_widechar_size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3117,1
    - Dst: unicode_copy_as_widechar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - unicode
    - w
    - size
    argTypes:
    - PyObject*
    - wchar_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 3101
    functionDepth: 2
    functionLinenumber: 3101
    functionLinenumberEnd: 3130
    functionName: PyUnicode_AsWideChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - unicode_copy_as_widechar
    - PyErr_BadArgument
    - PyErr_BadInternalCall
    - unicode_get_widechar_size
    - PyUnicode_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_AsWideChar(PyObject *unicode,\n                     wchar_t
      *w,\n                     Py_ssize_t size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3140,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3143,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3144,1
    - Dst: unicode_get_widechar_size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3148,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3149,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3151,1
    - Dst: unicode_copy_as_widechar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3154,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3158,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3159,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3132
    functionDepth: 2
    functionLinenumber: 3132
    functionLinenumberEnd: 3165
    functionName: PyUnicode_AsWideCharString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - unicode_copy_as_widechar
    - PyErr_BadArgument
    - PyMem_NEW
    - PyErr_BadInternalCall
    - PyErr_NoMemory
    - unicode_get_widechar_size
    - PyErr_SetString
    - PyUnicode_Check
    - PyMem_FREE
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *\nPyUnicode_AsWideCharString(PyObject *unicode,\n                           Py_ssize_t
      *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3173,1
    - Dst: unicode_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ordinal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3169
    functionDepth: 5
    functionLinenumber: 3169
    functionLinenumberEnd: 3179
    functionName: PyUnicode_FromOrdinal
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - unicode_char
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromOrdinal(int ordinal)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3186,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3187,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3189,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3192,1
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3195,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3197,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3201
      start: 3181
    functionDepth: 4
    functionLinenumber: 3181
    functionLinenumberEnd: 3201
    functionName: PyUnicode_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_INCREF
    - PyErr_Format
    - _PyUnicode_Copy
    - Py_TYPE
    - PyUnicode_Check
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_FromObject(PyObject *obj)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3212,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3217,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3218,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3219,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3220,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3221,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3221,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3227,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3233,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3234,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3236,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3241,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3242,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3245,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - obj
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3203
    functionDepth: 2
    functionLinenumber: 3203
    functionLinenumberEnd: 3248
    functionName: PyUnicode_FromEncodedObject
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - PyErr_BadInternalCall
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyUnicode_Decode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_FromEncodedObject(PyObject *obj,\n                            const
      char *encoding,\n                            const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3263,1
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3275,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3287,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - encoding
    - lower
    - lower_len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (encoding != NULL)
      pos:
        line_end: 3262
        line_start: 3262
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3297
      start: 3253
    functionDepth: 1
    functionLinenumber: 3253
    functionLinenumberEnd: 3297
    functionName: _Py_normalize_encoding
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    - assert
    - Py_ISALNUM
    linkageType: ''
    returnType: int
    signature: "int _Py_normalize_encoding(const char *encoding,\n                       char
      *lower,\n                       size_t lower_len)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3310,1
    - Dst: _Py_normalize_encoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3314,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3326,1
    - Dst: PyUnicode_DecodeUTF16
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3329,1
    - Dst: PyUnicode_DecodeUTF32
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3332,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3336,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3337,1
    - Dst: PyUnicode_DecodeASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3338,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3341,1
    - Dst: PyUnicode_DecodeMBCS
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3342,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3345,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3346,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3347,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3348,1
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3349,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3356,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3358,1
    - Dst: _PyCodec_DecodeText
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3361,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3364,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3365,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3370,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3373,1
    - Dst: unicode_result
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3374,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3377,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 4
    argNames:
    - s
    - size
    - encoding
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3379
      start: 3299
    functionDepth: 4
    functionLinenumber: 3299
    functionLinenumberEnd: 3379
    functionName: PyUnicode_Decode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - PyBuffer_FillInfo
    - PyUnicode_DecodeUTF16
    - Py_DECREF
    - unicode_result
    - Py_XDECREF
    - PyUnicode_DecodeUTF32
    - _Py_normalize_encoding
    - PyUnicode_DecodeLatin1
    - PyUnicode_DecodeUTF8Stateful
    - PyUnicode_Check
    - PyUnicode_DecodeMBCS
    - PyUnicode_DecodeASCII
    - PyMemoryView_FromBuffer
    - PyErr_Format
    - strcmp
    - Py_TYPE
    - _PyCodec_DecodeText
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Decode(const char *s,\n                 Py_ssize_t
      size,\n                 const char *encoding,\n                 const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3386,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3387,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3391,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3397,1
    - Dst: PyCodec_Decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3401
      start: 3381
    functionDepth: 1
    functionLinenumber: 3381
    functionLinenumberEnd: 3401
    functionName: PyUnicode_AsDecodedObject
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyCodec_Decode
    - PyErr_BadArgument
    - PyUnicode_GetDefaultEncoding
    - PyUnicode_Check
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsDecodedObject(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3410,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3411,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3415,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3421,1
    - Dst: PyCodec_Decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3424,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3427,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3428,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3433,1
    - Dst: unicode_result
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3436,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3403
    functionDepth: 4
    functionLinenumber: 3403
    functionLinenumberEnd: 3440
    functionName: PyUnicode_AsDecodedUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyCodec_Decode
    - PyErr_BadArgument
    - PyUnicode_GetDefaultEncoding
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - unicode_result
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsDecodedUnicode(PyObject *unicode,\n                           const
      char *encoding,\n                           const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3450,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - s
    - size
    - encoding
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3442
    functionDepth: 5
    functionLinenumber: 3442
    functionLinenumberEnd: 3456
    functionName: PyUnicode_Encode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - PyUnicode_AsEncodedString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Encode(const Py_UNICODE *s,\n                 Py_ssize_t
      size,\n                 const char *encoding,\n                 const char *errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3465,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3466,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3470,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3477,1
    - Dst: PyCodec_Encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3487
      start: 3458
    functionDepth: 1
    functionLinenumber: 3458
    functionLinenumberEnd: 3487
    functionName: PyUnicode_AsEncodedObject
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadArgument
    - PyUnicode_GetDefaultEncoding
    - PyUnicode_Check
    - PyErr_WarnEx
    - PyCodec_Encode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsEncodedObject(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3495,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3500,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3501,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3502,1
    - Dst: _Py_EncodeLocaleEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3509,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3511,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3516,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3527,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3530,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3535,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - unicode
    - error_handler
    - current_locale
    argTypes:
    - PyObject*
    - _Py_error_handler
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3490
    functionDepth: 3
    functionLinenumber: 3490
    functionLinenumberEnd: 3538
    functionName: unicode_encode_locale
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeLocaleEx
    - Py_DECREF
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyCodec_StrictErrors
    - PyBytes_FromString
    - PyObject_CallFunction
    - PyMem_Free
    - PyErr_SetString
    - PyMem_RawFree
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_locale(PyObject *unicode, _Py_error_handler
      error_handler,\n                      int current_locale)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3543,1
    - Dst: unicode_encode_locale
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3540
    functionDepth: 4
    functionLinenumber: 3540
    functionLinenumberEnd: 3545
    functionName: PyUnicode_EncodeLocale
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - unicode_encode_locale
    - _Py_GetErrorHandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_EncodeLocale(PyObject *unicode, const char *errors)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3550,1
    - Dst: unicode_encode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3553,1
    - Dst: get_error_handler_wide
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3560,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3561,1
    - Dst: unicode_encode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3562,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3571,1
    - Dst: get_error_handler_wide
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3578,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3579,1
    - Dst: unicode_encode_locale
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3560
        line_start: 3560
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3578
        line_start: 3578
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3583
      start: 3547
    functionDepth: 4
    functionLinenumber: 3547
    functionLinenumberEnd: 3583
    functionName: PyUnicode_EncodeFSDefault
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - get_error_handler_wide
    - _PyInterpreterState_GET_UNSAFE
    - PyUnicode_AsEncodedString
    - unicode_encode_utf8
    - assert
    - unicode_encode_locale
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_EncodeFSDefault(PyObject *unicode)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3593,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3594,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3599,1
    - Dst: _Py_normalize_encoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3603,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3615,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3618,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3621,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3625,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3626,1
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3627,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3630,1
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3631,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3634,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3635,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3636,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3637,1
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3638,1
    - Dst: _PyCodec_EncodeText
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3644,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3649,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3653,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3657,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3662,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3666,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3666,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3668,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3672,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3676,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3677,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3585
    functionDepth: 3
    functionLinenumber: 3585
    functionLinenumberEnd: 3679
    functionName: PyUnicode_AsEncodedString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - _PyUnicode_AsUTF8String
    - _PyUnicode_EncodeUTF16
    - _PyCodec_EncodeText
    - _PyUnicode_AsLatin1String
    - PyByteArray_GET_SIZE
    - PyByteArray_AS_STRING
    - PyBytes_FromStringAndSize
    - PyErr_WarnFormat
    - _PyUnicode_EncodeUTF32
    - _PyUnicode_AsASCIIString
    - PyErr_Format
    - Py_DECREF
    - PyErr_BadArgument
    - PyByteArray_Check
    - Py_TYPE
    - PyUnicode_EncodeCodePage
    - PyBytes_Check
    - _Py_normalize_encoding
    - PyUnicode_Check
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsEncodedString(PyObject *unicode,\n                          const
      char *encoding,\n                          const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3688,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3689,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3693,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3699,1
    - Dst: PyCodec_Encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3702,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3705,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3706,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3710,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3711,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - unicode
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3681
    functionDepth: 1
    functionLinenumber: 3681
    functionLinenumberEnd: 3718
    functionName: PyUnicode_AsEncodedUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_BadArgument
    - PyUnicode_GetDefaultEncoding
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyErr_WarnEx
    - PyCodec_Encode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsEncodedUnicode(PyObject *unicode,\n                           const
      char *encoding,\n                           const char *errors)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3724,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3725,1
    - Dst: _Py_DecodeLocaleEx
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3732,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3737,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3744,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3748,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3751,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3756,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3757,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - str
    - len
    - errors
    - current_locale
    argTypes:
    - char*
    - Py_ssize_t
    - _Py_error_handler
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3720
    functionDepth: 5
    functionLinenumber: 3720
    functionLinenumberEnd: 3759
    functionName: unicode_decode_locale
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_NoMemory
    - _Py_DecodeLocaleEx
    - PyCodec_StrictErrors
    - strlen
    - PyUnicode_FromWideChar
    - PyObject_CallFunction
    - PyErr_SetString
    - PyMem_RawFree
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_decode_locale(const char *str, Py_ssize_t len,\n
      \                     _Py_error_handler errors, int current_locale)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3765,1
    - Dst: unicode_decode_locale
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - len
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3761
    functionDepth: 6
    functionLinenumber: 3761
    functionLinenumberEnd: 3767
    functionName: PyUnicode_DecodeLocaleAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - unicode_decode_locale
    - _Py_GetErrorHandler
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeLocaleAndSize(const char *str, Py_ssize_t
      len,\n                              const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3772,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3773,1
    - Dst: unicode_decode_locale
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3769
    functionDepth: 6
    functionLinenumber: 3769
    functionLinenumberEnd: 3775
    functionName: PyUnicode_DecodeLocale
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - strlen
    - unicode_decode_locale
    - _Py_GetErrorHandler
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeLocale(const char *str, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3780,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3778
    functionDepth: 1
    functionLinenumber: 3778
    functionLinenumberEnd: 3782
    functionName: PyUnicode_DecodeFSDefault
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - strlen
    - PyUnicode_DecodeFSDefaultAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeFSDefault(const char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3787,1
    - Dst: unicode_decode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3790,1
    - Dst: get_error_handler_wide
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3798,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3799,1
    - Dst: unicode_decode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3800,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3809,1
    - Dst: get_error_handler_wide
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3816,1
    - Dst: unicode_decode_locale
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (errors != _Py_ERROR_UNKNOWN)
      pos:
        line_end: 3798
        line_start: 3798
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3820
      start: 3784
    functionDepth: 6
    functionLinenumber: 3784
    functionLinenumberEnd: 3820
    functionName: PyUnicode_DecodeFSDefaultAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - get_error_handler_wide
    - _PyInterpreterState_GET_UNSAFE
    - unicode_decode_locale
    - unicode_decode_utf8
    - assert
    - PyUnicode_Decode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3831,1
    - Dst: PyOS_FSPath
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3835,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3839,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3843,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3844,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3848,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3848,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3851,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3852,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3853,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3854,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3855,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyBytes_Check(output))
      pos:
        line_end: 3847
        line_start: 3847
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3860
      start: 3823
    functionDepth: 5
    functionLinenumber: 3823
    functionLinenumberEnd: 3860
    functionName: PyUnicode_FSConverter
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 21
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - PyOS_FSPath
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - strlen
    - PyBytes_AS_STRING
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSConverter(PyObject* arg, void* addr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3870,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3875,1
    - Dst: PyOS_FSPath
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3877,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3884,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3887,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3890,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3893,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3894,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3897,1
    - Dst: PyBytes_FromObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3900,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3901,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3905,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3905,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3906,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3907,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3913,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3916,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3919,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3920,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3923,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3923,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3923,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3924,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3925,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3926,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - arg
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3863
    functionDepth: 7
    functionLinenumber: 3863
    functionLinenumberEnd: 3931
    functionName: PyUnicode_FSDecoder
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_READY
    - PyObject_CheckBuffer
    - PyUnicode_KIND
    - PyUnicode_DecodeFSDefaultAndSize
    - PyErr_WarnFormat
    - Py_INCREF
    - PyErr_Format
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyOS_FSPath
    - PyBytes_GET_SIZE
    - Py_TYPE
    - PyBytes_AS_STRING
    - PyBytes_FromObject
    - findchar
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int PyUnicode_FSDecoder(PyObject* arg, void* addr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3939,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3940,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3943,1
    - Dst: PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3946,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3947,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3947,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3948,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3951,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3951,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3951,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3952,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3953,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3954,1
    - Dst: _PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3957,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3957,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3958,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3958,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3959,1
    - Dst: _PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3960,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3961,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3965,1
    - Dst: PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - unicode
    - psize
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (!PyUnicode_IS_COMPACT_ASCII(unicode))
      pos:
        line_end: 3946
        line_start: 3946
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 3967
      start: 3934
    functionDepth: 1
    functionLinenumber: 3934
    functionLinenumberEnd: 3967
    functionName: PyUnicode_AsUTF8AndSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 106
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_READY
    - _PyUnicode_UTF8
    - Py_DECREF
    - memcpy
    - PyUnicode_IS_COMPACT_ASCII
    - PyErr_BadArgument
    - PyErr_NoMemory
    - PyUnicode_UTF8
    - PyUnicode_UTF8_LENGTH
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - assert
    - _PyUnicode_UTF8_LENGTH
    - PyObject_MALLOC
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_AsUTF8AndSize(PyObject *unicode, Py_ssize_t *psize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3969
    functionDepth: 2
    functionLinenumber: 3969
    functionLinenumberEnd: 3973
    functionName: PyUnicode_AsUTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 45
    functionsReached:
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_AsUTF8(PyObject *unicode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3978,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3979,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3982,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3985,1
    - Dst: _PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3985,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3986,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3986,1
    - Dst: unicode_get_widechar_size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3988,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3990,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3993,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3995,1
    - Dst: unicode_copy_as_widechar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3998,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:3999,1
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4000,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4001,1
    - Dst: PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - unicode
    - size
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (_PyUnicode_KIND(unicode) != PyUnicode_WCHAR_KIND)
      pos:
        line_end: 3984
        line_start: 3984
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 3985
        line_start: 3985
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4007
      start: 3975
    functionDepth: 2
    functionLinenumber: 3975
    functionLinenumberEnd: 4007
    functionName: PyUnicode_AsUnicodeAndSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_IS_READY
    - unicode_copy_as_widechar
    - PyUnicode_IS_COMPACT_ASCII
    - PyErr_BadArgument
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - unicode_get_widechar_size
    - _PyUnicode_KIND
    - PyUnicode_Check
    - assert
    - PyUnicode_WSTR_LENGTH
    - PyObject_MALLOC
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      PyUnicode_AsUnicodeAndSize(PyObject *unicode, Py_ssize_t *size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4013
      start: 4009
    functionDepth: 3
    functionLinenumber: 4009
    functionLinenumberEnd: 4013
    functionName: PyUnicode_AsUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_AsUnicodeAndSize
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      PyUnicode_AsUnicode(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4021,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4022,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 4015
    functionDepth: 3
    functionLinenumber: 4015
    functionLinenumberEnd: 4027
    functionName: _PyUnicode_AsUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_AsUnicodeAndSize
    - wcslen
    - PyErr_SetString
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      _PyUnicode_AsUnicode(PyObject *unicode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4033,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4034,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4037,1
    - Dst: PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4038,1
    - Dst: PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 4030
    functionDepth: 4
    functionLinenumber: 4030
    functionLinenumberEnd: 4045
    functionName: PyUnicode_GetSize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadArgument
    - PyUnicode_AsUnicode
    - _PyUnicode_WSTR
    - PyUnicode_Check
    - PyUnicode_WSTR_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnicode_GetSize(PyObject *unicode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4050,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4051,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4054,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4047
    functionDepth: 1
    functionLinenumber: 4047
    functionLinenumberEnd: 4057
    functionName: PyUnicode_GetLength
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadArgument
    - PyUnicode_READY
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyUnicode_GetLength(PyObject *unicode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4065,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4066,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4069,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4072,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4073,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4076,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4077,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - unicode
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4079
      start: 4059
    functionDepth: 1
    functionLinenumber: 4059
    functionLinenumberEnd: 4079
    functionName: PyUnicode_ReadChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 PyUnicode_ReadChar(PyObject *unicode, Py_ssize_t index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4084,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4084,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4085,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4088,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4088,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4089,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4090,1
    - Dst: unicode_check_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4093,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4095,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4096,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4099,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4099,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4099,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - unicode
    - index
    - ch
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 4087
        line_start: 4087
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4102
      start: 4081
    functionDepth: 2
    functionLinenumber: 4081
    functionLinenumberEnd: 4102
    functionName: PyUnicode_WriteChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_IS_READY
    - unicode_check_modifiable
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - PyErr_BadArgument
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_IS_COMPACT
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyUnicode_WriteChar(PyObject *unicode, Py_ssize_t index, Py_UCS4
      ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4104
    functionDepth: 0
    functionLinenumber: 4104
    functionLinenumberEnd: 4108
    functionName: PyUnicode_GetDefaultEncoding
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PyUnicode_GetDefaultEncoding(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicodeDecodeError_Create
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4119,1
    - Dst: PyUnicodeDecodeError_SetStart
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4123,1
    - Dst: PyUnicodeDecodeError_SetEnd
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4125,1
    - Dst: PyUnicodeDecodeError_SetReason
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4127,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - exceptionObject
    - encoding
    - input
    - length
    - startpos
    - endpos
    - reason
    argTypes:
    - PyObject**
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4111
    functionDepth: 3
    functionLinenumber: 4111
    functionLinenumberEnd: 4134
    functionName: make_decode_exception
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyUnicodeDecodeError_SetEnd
    - PyUnicodeDecodeError_SetStart
    - PyUnicodeDecodeError_SetReason
    - PyUnicodeDecodeError_Create
    linkageType: ''
    returnType: void
    signature: "void make_decode_exception(PyObject **exceptionObject,\n                      const
      char *encoding,\n                      const char *input, Py_ssize_t length,\n
      \                     Py_ssize_t startpos, Py_ssize_t endpos,\n                      const
      char *reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4142,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - buf
    - size
    - newsize
    argTypes:
    - wchar_t**
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4150
      start: 4137
    functionDepth: 1
    functionLinenumber: 4137
    functionLinenumberEnd: 4150
    functionName: widechar_resize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Resize
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int widechar_resize(wchar_t **buf, Py_ssize_t *size, Py_ssize_t newsize)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4180,1
    - Dst: make_decode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4185,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4193,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4196,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4197,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4200,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4205,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4208,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4213,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4218,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4222,1
    - Dst: widechar_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4240,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4250,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4254,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4258,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 13
    argNames:
    - errors
    - errorHandler
    - encoding
    - reason
    - input
    - inend
    - startinpos
    - endinpos
    - exceptionObject
    - inptr
    - buf
    - bufsize
    - outpos
    argTypes:
    - char*
    - PyObject**
    - char*
    - char*
    - char**
    - char**
    - Py_ssize_t*
    - Py_ssize_t*
    - PyObject**
    - char**
    - wchar_t**
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4260
      start: 4159
    functionDepth: 4
    functionLinenumber: 4159
    functionLinenumberEnd: 4260
    functionName: unicode_decode_call_errorhandler_wchar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - wcsncpy
    - make_decode_exception
    - PyUnicodeDecodeError_GetObject
    - PyTuple_Check
    - PyBytes_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - PyUnicode_AsUnicodeAndSize
    - PyErr_SetString
    - PyBytes_AS_STRING
    - widechar_resize
    - PyArg_ParseTuple
    - Py_XDECREF
    - PyCodec_LookupError
    linkageType: ''
    returnType: int
    signature: "int unicode_decode_call_errorhandler_wchar(\n    const char *errors,
      PyObject **errorHandler,\n    const char *encoding, const char *reason,\n    const
      char **input, const char **inend, Py_ssize_t *startinpos,\n    Py_ssize_t *endinpos,
      PyObject **exceptionObject, const char **inptr,\n    wchar_t **buf, Py_ssize_t
      *bufsize, Py_ssize_t *outpos)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4284,1
    - Dst: make_decode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4289,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4297,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4301,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4304,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4309,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4313,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4314,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4318,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4323,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4327,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4344,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4345,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4355,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4359,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 11
    argNames:
    - errors
    - errorHandler
    - encoding
    - reason
    - input
    - inend
    - startinpos
    - endinpos
    - exceptionObject
    - inptr
    - writer
    argTypes:
    - char*
    - PyObject**
    - char*
    - char*
    - char**
    - char**
    - Py_ssize_t*
    - Py_ssize_t*
    - PyObject**
    - char**
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4361
      start: 4263
    functionDepth: 4
    functionLinenumber: 4263
    functionLinenumberEnd: 4361
    functionName: unicode_decode_call_errorhandler_writer
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - make_decode_exception
    - PyUnicode_MAX_CHAR_VALUE
    - Py_XDECREF
    - PyUnicodeDecodeError_GetObject
    - PyTuple_Check
    - PyBytes_GET_SIZE
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTuple
    - PyUnicode_GET_LENGTH
    - PyCodec_LookupError
    linkageType: ''
    returnType: int
    signature: "int unicode_decode_call_errorhandler_writer(\n    const char *errors,
      PyObject **errorHandler,\n    const char *encoding, const char *reason,\n    const
      char **input, const char **inend, Py_ssize_t *startinpos,\n    Py_ssize_t *endinpos,
      PyObject **exceptionObject, const char **inptr,\n    _PyUnicodeWriter *writer
      /* PyObject **output, Py_ssize_t *outpos */)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4376
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4376
    functionName: IS_BASE64
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BASE64(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4384
      start: 4379
    functionDepth: 0
    functionLinenumber: 4379
    functionLinenumberEnd: 4384
    functionName: FROM_BASE64
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BASE64(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 4387
    functionDepth: 0
    functionLinenumber: 4387
    functionLinenumberEnd: 4389
    functionName: TO_BASE64
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BASE64(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4395
    functionDepth: 0
    functionLinenumber: 4395
    functionLinenumberEnd: 4397
    functionName: DECODE_DIRECT
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_DIRECT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - c
    - ','
    - directO
    - ','
    - directWS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4438
    functionDepth: 0
    functionLinenumber: 4438
    functionLinenumberEnd: 4443
    functionName: ENCODE_DIRECT
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCODE_DIRECT(c, directO, directWS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF7Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4444
    functionDepth: 1
    functionLinenumber: 4444
    functionLinenumberEnd: 4450
    functionName: PyUnicode_DecodeUTF7
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeUTF7Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF7(const char *s,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4482,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4486,1
    - Dst: IS_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4498,1
    - Dst: FROM_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4499,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4507,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4510,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4511,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4512,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4518,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4523,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4528,1
    - Dst: DECODE_DIRECT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4551,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4552,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4568,1
    - Dst: IS_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4571,1
    - Dst: DECODE_DIRECT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4584,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4586,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4598,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4615,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4631,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4633,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4634,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4635,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4646,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4647,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4650,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4651,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4652,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 150
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (outCh <= 0xffff)
      pos:
        line_end: 4506
        line_start: 4506
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4654
      start: 4459
    functionDepth: 7
    functionLinenumber: 4459
    functionLinenumberEnd: 4654
    functionName: PyUnicode_DecodeUTF7Stateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromKindAndData
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Init
    - DECODE_DIRECT
    - unicode_decode_call_errorhandler_writer
    - FROM_BASE64
    - _PyUnicodeWriter_Finish
    - Py_UNICODE_IS_LOW_SURROGATE
    - Py_UNICODE_IS_HIGH_SURROGATE
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_WriteCharInline
    - assert
    - Py_XDECREF
    - Py_UNICODE_JOIN_SURROGATES
    - IS_BASE64
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF7Stateful(const char *s,\n                             Py_ssize_t
      size,\n                             const char *errors,\n                             Py_ssize_t
      *consumed)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4674,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4676,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4677,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4678,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4681,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4685,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4686,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4690,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4692,1
    - Dst: ENCODE_DIRECT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4695,1
    - Dst: TO_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4698,1
    - Dst: IS_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4705,1
    - Dst: ENCODE_DIRECT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4719,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4731,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4735,1
    - Dst: TO_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4737,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4741,1
    - Dst: TO_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4746,1
    - Dst: TO_BASE64
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4751,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4754,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 4
    argNames:
    - str
    - base64SetO
    - base64WhiteSpace
    - errors
    argTypes:
    - PyObject*
    - int
    - int
    - char*
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 4730
        line_start: 4730
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4757
      start: 4657
    functionDepth: 3
    functionLinenumber: 4657
    functionLinenumberEnd: 4757
    functionName: _PyUnicode_EncodeUTF7
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - ENCODE_DIRECT
    - TO_BASE64
    - PyErr_NoMemory
    - _PyBytes_Resize
    - Py_UNICODE_HIGH_SURROGATE
    - Py_UNICODE_LOW_SURROGATE
    - PyBytes_AS_STRING
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - IS_BASE64
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF7(PyObject *str,\n                      int
      base64SetO,\n                      int base64WhiteSpace,\n                      const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4766,1
    - Dst: _PyUnicode_EncodeUTF7
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - s
    - size
    - base64SetO
    - base64WhiteSpace
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4758
    functionDepth: 5
    functionLinenumber: 4758
    functionLinenumberEnd: 4773
    functionName: PyUnicode_EncodeUTF7
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - _PyUnicode_EncodeUTF7
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeUTF7(const Py_UNICODE *s,\n                     Py_ssize_t
      size,\n                     int base64SetO,\n                     int base64WhiteSpace,\n
      \                    const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4783
    functionDepth: 1
    functionLinenumber: 4783
    functionLinenumberEnd: 4789
    functionName: PyUnicode_DecodeUTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 20
    functionsReached:
    - PyUnicode_DecodeUTF8Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF8(const char *s,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4821,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4832,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4832,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4833,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4860,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4877,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - start
    - end
    - dest
    argTypes:
    - char*
    - char*
    - Py_UCS1*
    assertStmts:
    - condition: (_Py_IS_ALIGNED(dest, SIZEOF_LONG))
      pos:
        line_end: 4831
        line_start: 4831
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 4879
      start: 4817
    functionDepth: 1
    functionLinenumber: 4817
    functionLinenumberEnd: 4879
    functionName: ascii_decode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - assert
    - memcpy
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t ascii_decode(const char *start, const char *end, Py_UCS1
      *dest)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4899,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4906,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4909,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4911,1
    - Dst: ascii_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4914,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4921,1
    - Dst: asciilib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4922,1
    - Dst: ucs1lib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4924,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4926,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4928,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4929,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4960,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4966,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4974,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4983,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4987,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:4996,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5009,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5010,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5011,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5014,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5015,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5016,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 104
    argCount: 5
    argNames:
    - s
    - size
    - error_handler
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - _Py_error_handler
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 4927
        line_start: 4927
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5018
      start: 4881
    functionDepth: 5
    functionLinenumber: 4881
    functionLinenumberEnd: 5018
    functionName: unicode_decode_utf8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - ascii_decode
    - asciilib_utf8_decode
    - _PyUnicodeWriter_PrepareKind
    - _Py_GetErrorHandler
    - unicode_decode_call_errorhandler_writer
    - PyUnicode_IS_ASCII
    - _PyUnicodeWriter_WriteCharInline
    - assert
    - ucs1lib_utf8_decode
    - Py_XDECREF
    - _PyUnicodeWriter_Init
    - ucs2lib_utf8_decode
    - ucs4lib_utf8_decode
    - PyUnicode_WRITE
    - get_latin1_char
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_decode_utf8(const char *s, Py_ssize_t size,\n
      \                   _Py_error_handler error_handler, const char *errors,\n                    Py_ssize_t
      *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_decode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5028
      start: 5021
    functionDepth: 6
    functionLinenumber: 5021
    functionLinenumberEnd: 5028
    functionName: PyUnicode_DecodeUTF8Stateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - unicode_decode_utf8
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF8Stateful(const char *s,\n                             Py_ssize_t
      size,\n                             const char *errors,\n                             Py_ssize_t
      *consumed)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5074,1
    - Dst: ucs4lib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5085,1
    - Dst: ucs2lib_utf8_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5087,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5091,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5093,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5095,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5096,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5120,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 70
    argCount: 6
    argNames:
    - s
    - size
    - wstr
    - wlen
    - reason
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - wchar_t**
    - size_t*
    - char**
    - _Py_error_handler
    assertStmts:
    - condition: (ch > 0xFFFF && ch <= MAX_UNICODE)
      pos:
        line_end: 5092
        line_start: 5092
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5149
      start: 5043
    functionDepth: 1
    functionLinenumber: 5043
    functionLinenumberEnd: 5149
    functionName: _Py_DecodeUTF8Ex
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_utf8_decode
    - ucs4lib_utf8_decode
    - PyMem_RawMalloc
    - Py_UNREACHABLE
    - Py_UNICODE_LOW_SURROGATE
    - PyMem_RawFree
    - Py_UNICODE_HIGH_SURROGATE
    - assert
    linkageType: ''
    returnType: int
    signature: "int _Py_DecodeUTF8Ex(const char *s, Py_ssize_t size, wchar_t **wstr,
      size_t *wlen,\n                 const char **reason, _Py_error_handler errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5157,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arg
    - arglen
    - wlen
    argTypes:
    - char*
    - Py_ssize_t
    - size_t*
    assertStmts:
    - condition: (res != -3)
      pos:
        line_end: 5161
        line_start: 5161
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5169
      start: 5152
    functionDepth: 2
    functionLinenumber: 5152
    functionLinenumberEnd: 5169
    functionName: _Py_DecodeUTF8_surrogateescape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - assert
    - _Py_DecodeUTF8Ex
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *\n_Py_DecodeUTF8_surrogateescape(const char *arg, Py_ssize_t
      arglen,\n                               size_t *wlen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5187,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5189,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5212,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5215,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5228,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5230,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5232,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5247,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5257,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5260,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5272,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5285,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5288,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5295,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5298,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 6
    argNames:
    - text
    - str
    - error_pos
    - reason
    - raw_malloc
    - errors
    argTypes:
    - wchar_t*
    - char**
    - size_t*
    - char**
    - int
    - _Py_error_handler
    assertStmts:
    - condition: (len >= 0)
      pos:
        line_end: 5188
        line_start: 5188
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 5271
        line_start: 5271
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5304
      start: 5182
    functionDepth: 1
    functionLinenumber: 5182
    functionLinenumberEnd: 5304
    functionName: _Py_EncodeUTF8Ex
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - PyMem_Realloc
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    - PyMem_RawFree
    - PyMem_Malloc
    - assert
    - PyMem_Free
    - Py_UNICODE_JOIN_SURROGATES
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int _Py_EncodeUTF8Ex(const wchar_t *text, char **str, size_t *error_pos,\n
      \                const char **reason, int raw_malloc, _Py_error_handler errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5322,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5323,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5327,1
    - Dst: PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5330,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5331,1
    - Dst: PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5331,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5332,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5334,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5335,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5336,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5340,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5343,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5343,1
    - Dst: ucs1lib_utf8_encoder
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5344,1
    - Dst: ucs2lib_utf8_encoder
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5346,1
    - Dst: ucs4lib_utf8_encoder
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - unicode
    - error_handler
    - errors
    argTypes:
    - PyObject*
    - _Py_error_handler
    - char*
    assertStmts:
    - condition: (!PyUnicode_IS_ASCII(unicode))
      pos:
        line_end: 5342
        line_start: 5342
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5350
      start: 5314
    functionDepth: 3
    functionLinenumber: 5314
    functionLinenumberEnd: 5350
    functionName: unicode_encode_utf8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_READY
    - ucs2lib_utf8_encoder
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyUnicode_UTF8
    - PyUnicode_UTF8_LENGTH
    - Py_UNREACHABLE
    - ucs1lib_utf8_encoder
    - PyUnicode_IS_ASCII
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - ucs4lib_utf8_encoder
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_utf8(PyObject *unicode, _Py_error_handler
      error_handler,\n                    const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_encode_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5356
      start: 5352
    functionDepth: 4
    functionLinenumber: 5352
    functionLinenumberEnd: 5356
    functionName: _PyUnicode_AsUTF8String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 6
    functionsReached:
    - unicode_encode_utf8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsUTF8String(PyObject *unicode, const char *errors)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5366,1
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5372
      start: 5359
    functionDepth: 5
    functionLinenumber: 5359
    functionLinenumberEnd: 5372
    functionName: PyUnicode_EncodeUTF8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsUTF8String
    - PyUnicode_FromWideChar
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeUTF8(const Py_UNICODE *s,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5378
      start: 5374
    functionDepth: 5
    functionLinenumber: 5374
    functionLinenumberEnd: 5378
    functionName: PyUnicode_AsUTF8String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - _PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF8String(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF32Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - byteorder
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5389
      start: 5382
    functionDepth: 1
    functionLinenumber: 5382
    functionLinenumberEnd: 5389
    functionName: PyUnicode_DecodeUTF32
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_DecodeUTF32Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF32(const char *s,\n                      Py_ssize_t
      size,\n                      const char *errors,\n                      int
      *byteorder)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5436,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5446,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5448,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5453,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5466,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5468,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5478,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5480,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5487,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5502,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5514,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5525,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5526,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5527,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5530,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5531,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5532,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 5
    argNames:
    - s
    - size
    - errors
    - byteorder
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - int*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5534
      start: 5391
    functionDepth: 5
    functionLinenumber: 5391
    functionLinenumberEnd: 5534
    functionName: PyUnicode_DecodeUTF32Stateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Init
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_WriteCharInline
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF32Stateful(const char *s,\n                              Py_ssize_t
      size,\n                              const char *errors,\n                              int
      *byteorder,\n                              Py_ssize_t *consumed)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5557,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5558,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5561,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5563,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5564,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5565,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5568,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5570,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5575,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5575,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5575,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5576,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5590,1
    - Dst: ucs2lib_utf32_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5599,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5603,1
    - Dst: ucs4lib_utf32_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5604,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5610,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5617,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5618,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5620,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5628,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5628,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5629,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5631,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5632,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5633,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5642,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5643,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5645,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5648,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5648,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5650,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5653,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5654,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5654,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5657,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5657,1
    - Dst: ucs1lib_utf32_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5658,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5658,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5662,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5668,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5669,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5670,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5671,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5672,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5676,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5677,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5678,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5679,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 102
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 5602
        line_start: 5602
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 5627
        line_start: 5627
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 4))
      pos:
        line_end: 5574
        line_start: 5574
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 5656
        line_start: 5656
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5681
      start: 5536
    functionDepth: 3
    functionLinenumber: 5536
    functionLinenumberEnd: 5681
    functionName: _PyUnicode_EncodeUTF32
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - ucs2lib_utf32_encode
    - PyUnicode_READY
    - raise_encode_exception
    - Py_CLEAR
    - _PyBytes_Resize
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - PyBytes_FromStringAndSize
    - ucs1lib_utf32_encode
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyErr_BadArgument
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_IS_ALIGNED
    - memcpy
    - PyErr_NoMemory
    - PyBytes_Check
    - ucs4lib_utf32_encode
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF32(PyObject *str,\n                       const
      char *errors,\n                       int byteorder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5690,1
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5693,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - byteorder
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5696
      start: 5683
    functionDepth: 5
    functionLinenumber: 5683
    functionLinenumberEnd: 5696
    functionName: PyUnicode_EncodeUTF32
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeUTF32(const Py_UNICODE *s,\n                      Py_ssize_t
      size,\n                      const char *errors,\n                      int
      byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF32
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5702
      start: 5698
    functionDepth: 4
    functionLinenumber: 5698
    functionLinenumberEnd: 5702
    functionName: PyUnicode_AsUTF32String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF32
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF32String(PyObject *unicode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF16Stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - byteorder
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5713
      start: 5706
    functionDepth: 1
    functionLinenumber: 5706
    functionLinenumberEnd: 5713
    functionName: PyUnicode_DecodeUTF16
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_DecodeUTF16Stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF16(const char *s,\n                      Py_ssize_t
      size,\n                      const char *errors,\n                      int
      *byteorder)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5761,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5775,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5777,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5785,1
    - Dst: asciilib_utf16_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5786,1
    - Dst: ucs1lib_utf16_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5790,1
    - Dst: ucs2lib_utf16_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5794,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5798,1
    - Dst: ucs4lib_utf16_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5799,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5836,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5841,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5859,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5860,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5861,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5864,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5865,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5866,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 96
    argCount: 5
    argNames:
    - s
    - size
    - errors
    - byteorder
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - int*
    - Py_ssize_t*
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 5797
        line_start: 5797
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 5868
      start: 5715
    functionDepth: 5
    functionLinenumber: 5715
    functionLinenumberEnd: 5868
    functionName: PyUnicode_DecodeUTF16Stateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Init
    - ucs1lib_utf16_decode
    - asciilib_utf16_decode
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - PyUnicode_IS_ASCII
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicodeWriter_WriteCharInline
    - assert
    - Py_XDECREF
    - ucs2lib_utf16_decode
    - ucs4lib_utf16_decode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUTF16Stateful(const char *s,\n                              Py_ssize_t
      size,\n                              const char *errors,\n                              int
      *byteorder,\n                              Py_ssize_t *consumed)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5892,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5893,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5896,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5898,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5899,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5900,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5913,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5916,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5922,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5922,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5922,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5923,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5932,1
    - Dst: ucs2lib_utf16_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5951,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5955,1
    - Dst: ucs4lib_utf16_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5956,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5962,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5969,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5970,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5972,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5980,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5980,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5981,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5983,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5984,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5985,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5994,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5995,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:5997,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6000,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6000,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6002,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6005,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6006,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6006,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6009,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6009,1
    - Dst: ucs1lib_utf16_encode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6010,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6010,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6014,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6020,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6021,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6022,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6023,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6024,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6028,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6029,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6030,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6031,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 117
    argCount: 3
    argNames:
    - str
    - errors
    - byteorder
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 5954
        line_start: 5954
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 5979
        line_start: 5979
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6008
        line_start: 6008
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_Py_IS_ALIGNED(PyBytes_AS_STRING(v), 2))
      pos:
        line_end: 5921
        line_start: 5921
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6034
      start: 5870
    functionDepth: 3
    functionLinenumber: 5870
    functionLinenumberEnd: 6034
    functionName: _PyUnicode_EncodeUTF16
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - PyUnicode_READY
    - raise_encode_exception
    - Py_CLEAR
    - _PyBytes_Resize
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - PyBytes_FromStringAndSize
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyErr_BadArgument
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _Py_IS_ALIGNED
    - ucs4lib_utf16_encode
    - memcpy
    - ucs2lib_utf16_encode
    - PyErr_NoMemory
    - ucs1lib_utf16_encode
    - PyBytes_Check
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeUTF16(PyObject *str,\n                       const
      char *errors,\n                       int byteorder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6043,1
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6046,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - byteorder
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6049
      start: 6036
    functionDepth: 5
    functionLinenumber: 6036
    functionLinenumberEnd: 6049
    functionName: PyUnicode_EncodeUTF16
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromWideChar
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeUTF16(const Py_UNICODE *s,\n                      Py_ssize_t
      size,\n                      const char *errors,\n                      int
      byteorder)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EncodeUTF16
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6055
      start: 6051
    functionDepth: 4
    functionLinenumber: 6051
    functionLinenumberEnd: 6055
    functionName: PyUnicode_AsUTF16String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EncodeUTF16
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUTF16String(PyObject *unicode)'
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6077,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6084,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6086,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6119,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6131,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6136,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6137,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6138,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6139,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6141,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6142,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6143,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6144,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6146,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6148,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6160,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6207,1
    - Dst: PyCapsule_Import
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6214,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6217,1
    - Dst: getcode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6238,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6240,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6241,1
    - Dst: WRITE_ASCII_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6254,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6255,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6262,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6269,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6275,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6276,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6277,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6280,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6281,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6282,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 170
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - first_invalid_escape
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - char**
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 6239
        line_start: 6239
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (writer.pos < writer.size)
      pos:
        line_end: 6130
        line_start: 6130
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 6268
        line_start: 6268
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6284
      start: 6061
    functionDepth: 5
    functionLinenumber: 6061
    functionLinenumberEnd: 6284
    functionName: _PyUnicode_DecodeUnicodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - WRITE_ASCII_CHAR
    - PyCapsule_Import
    - _Py_RETURN_UNICODE_EMPTY
    - getcode
    - _PyUnicodeWriter_Init
    - unicode_decode_call_errorhandler_writer
    - WRITE_CHAR
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyErr_SetString
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_DecodeUnicodeEscape(const char *s,\n                               Py_ssize_t
      size,\n                               const char *errors,\n                               const
      char **first_invalid_escape)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6105
      start: 6099
    functionDepth: 0
    functionLinenumber: 6099
    functionLinenumberEnd: 6105
    functionName: WRITE_ASCII_CHAR
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_ASCII_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: 6116
      start: 6106
    functionDepth: 0
    functionLinenumber: 6106
    functionLinenumberEnd: 6116
    functionName: WRITE_CHAR
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CHAR(ch)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_DecodeUnicodeEscape
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6292,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6305
      start: 6286
    functionDepth: 6
    functionLinenumber: 6286
    functionLinenumberEnd: 6305
    functionName: PyUnicode_DecodeUnicodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyUnicode_DecodeUnicodeEscape
    - PyErr_WarnFormat
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeUnicodeEscape(const char *s,\n                              Py_ssize_t
      size,\n                              const char *errors)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6327,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6328,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6331,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6335,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6337,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6340,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6341,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6346,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6348,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6353,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6355,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6406,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6420,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6420,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6421,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6421,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 6405
        line_start: 6405
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (p - PyBytes_AS_STRING(repr) > 0)
      pos:
        line_end: 6419
        line_start: 6419
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6425
      start: 6309
    functionDepth: 3
    functionLinenumber: 6309
    functionLinenumberEnd: 6425
    functionName: PyUnicode_AsUnicodeEscapeString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6432,1
    - Dst: PyUnicode_AsUnicodeEscapeString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6440
      start: 6427
    functionDepth: 5
    functionLinenumber: 6427
    functionLinenumberEnd: 6440
    functionName: PyUnicode_EncodeUnicodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - PyUnicode_AsUnicodeEscapeString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeUnicodeEscape(const Py_UNICODE *s,\n                              Py_ssize_t
      size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6456,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6463,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6465,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6491,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6505,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6506,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6507,1
    - Dst: WRITE_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6531,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6539,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6546,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6550,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6551,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6552,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6555,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6556,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6557,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (writer.pos < writer.size)
      pos:
        line_end: 6504
        line_start: 6504
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (end - s <= writer.size - writer.pos)
      pos:
        line_end: 6545
        line_start: 6545
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6560
      start: 6444
    functionDepth: 5
    functionLinenumber: 6444
    functionLinenumberEnd: 6560
    functionName: PyUnicode_DecodeRawUnicodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Init
    - PyUnicode_WRITE
    - unicode_decode_call_errorhandler_writer
    - WRITE_CHAR
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeRawUnicodeEscape(const char *s,\n                                 Py_ssize_t
      size,\n                                 const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6488
      start: 6478
    functionDepth: 0
    functionLinenumber: 6478
    functionLinenumberEnd: 6488
    functionName: WRITE_CHAR
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_CHAR(ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6573,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6574,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6577,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6580,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6581,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6582,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6584,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6592,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6594,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6602,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6604,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6635,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6635,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6636,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6636,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ch <= MAX_UNICODE && MAX_UNICODE <= 0x10ffff)
      pos:
        line_end: 6620
        line_start: 6620
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (p > PyBytes_AS_STRING(repr))
      pos:
        line_end: 6634
        line_start: 6634
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6640
      start: 6563
    functionDepth: 3
    functionLinenumber: 6563
    functionLinenumberEnd: 6640
    functionName: PyUnicode_AsRawUnicodeEscapeString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6647,1
    - Dst: PyUnicode_AsRawUnicodeEscapeString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6653
      start: 6642
    functionDepth: 5
    functionLinenumber: 6642
    functionLinenumberEnd: 6653
    functionName: PyUnicode_EncodeRawUnicodeEscape
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - PyUnicode_AsRawUnicodeEscapeString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeRawUnicodeEscape(const Py_UNICODE *s,\n
      \                                Py_ssize_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromUCS1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6664
      start: 6657
    functionDepth: 5
    functionLinenumber: 6657
    functionLinenumberEnd: 6664
    functionName: PyUnicode_DecodeLatin1
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - _PyUnicode_FromUCS1
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeLatin1(const char *s,\n                       Py_ssize_t
      size,\n                       const char *errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6675,1
    - Dst: PyUnicodeEncodeError_SetStart
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6680,1
    - Dst: PyUnicodeEncodeError_SetEnd
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6682,1
    - Dst: PyUnicodeEncodeError_SetReason
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6684,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6688,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 6
    argNames:
    - exceptionObject
    - encoding
    - unicode
    - startpos
    - endpos
    - reason
    argTypes:
    - PyObject**
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6690
      start: 6667
    functionDepth: 3
    functionLinenumber: 6667
    functionLinenumberEnd: 6690
    functionName: make_encode_exception
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyUnicodeEncodeError_SetReason
    - PyUnicodeEncodeError_SetEnd
    - PyObject_CallFunction
    - PyUnicodeEncodeError_SetStart
    linkageType: ''
    returnType: void
    signature: "void make_encode_exception(PyObject **exceptionObject,\n                      const
      char *encoding,\n                      PyObject *unicode,\n                      Py_ssize_t
      startpos, Py_ssize_t endpos,\n                      const char *reason)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6700,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - exceptionObject
    - encoding
    - unicode
    - startpos
    - endpos
    - reason
    argTypes:
    - PyObject**
    - char*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6704
      start: 6693
    functionDepth: 4
    functionLinenumber: 6693
    functionLinenumberEnd: 6704
    functionName: raise_encode_exception
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyCodec_StrictErrors
    - make_encode_exception
    linkageType: ''
    returnType: void
    signature: "void raise_encode_exception(PyObject **exceptionObject,\n                       const
      char *encoding,\n                       PyObject *unicode,\n                       Py_ssize_t
      startpos, Py_ssize_t endpos,\n                       const char *reason)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6724,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6729,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6731,1
    - Dst: make_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6733,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6738,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6742,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6744,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6747,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6749,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6752,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6752,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6753,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6754,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6760,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6761,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6764,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6765,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 9
    argNames:
    - errors
    - errorHandler
    - encoding
    - reason
    - unicode
    - exceptionObject
    - startpos
    - endpos
    - newpos
    argTypes:
    - char*
    - PyObject**
    - char*
    - char*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6767
      start: 6710
    functionDepth: 4
    functionLinenumber: 6710
    functionLinenumberEnd: 6767
    functionName: unicode_encode_call_errorhandler
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - Py_INCREF
    - PyTuple_Check
    - PyBytes_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - make_encode_exception
    - PyArg_ParseTuple
    - PyUnicode_GET_LENGTH
    - PyCodec_LookupError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_call_errorhandler(const char *errors,\n
      \                                PyObject **errorHandler,\n                                 const
      char *encoding, const char *reason,\n                                 PyObject
      *unicode, PyObject **exceptionObject,\n                                 Py_ssize_t
      startpos, Py_ssize_t endpos,\n                                 Py_ssize_t *newpos)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6789,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6791,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6792,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6793,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6797,1
    - Dst: _PyBytesWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6799,1
    - Dst: _PyBytesWriter_Alloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6800,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6805,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6820,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6828,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6832,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6836,1
    - Dst: backslashreplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6846,1
    - Dst: xmlcharrefreplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6856,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6865,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6876,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6880,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6889,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6891,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6892,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6893,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6896,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6896,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6898,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6902,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6903,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6906,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6910,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6910,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6911,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6912,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6913,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6919,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6924,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6928,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6929,1
    - Dst: _PyBytesWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6930,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6933,1
    - Dst: _PyBytesWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6934,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6935,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6936,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 102
    argCount: 3
    argNames:
    - unicode
    - errors
    - limit
    argTypes:
    - PyObject*
    - char*
    - Py_UCS4
    assertStmts:
    - condition: (PyUnicode_Check(rep))
      pos:
        line_end: 6895
        line_start: 6895
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (collstart != collend)
      pos:
        line_end: 6875
        line_start: 6875
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(rep) == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 6909
        line_start: 6909
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (writer.overallocate || pos == size)
      pos:
        line_end: 6923
        line_start: 6923
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 6938
      start: 6769
    functionDepth: 6
    functionLinenumber: 6769
    functionLinenumberEnd: 6938
    functionName: unicode_encode_ucs1
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - raise_encode_exception
    - Py_CLEAR
    - xmlcharrefreplace
    - _PyBytesWriter_Finish
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - backslashreplace
    - PyBytes_FromStringAndSize
    - _PyBytesWriter_Init
    - _Py_GetErrorHandler
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - memset
    - Py_XDECREF
    - _PyBytesWriter_Alloc
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - _PyBytesWriter_WriteBytes
    - PyBytes_Check
    - _PyBytesWriter_Dealloc
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_encode_ucs1(PyObject *unicode,\n                    const
      char *errors,\n                    const Py_UCS4 limit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6947,1
    - Dst: unicode_encode_ucs1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - size
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6953
      start: 6941
    functionDepth: 7
    functionLinenumber: 6941
    functionLinenumberEnd: 6953
    functionName: PyUnicode_EncodeLatin1
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_encode_ucs1
    - PyUnicode_FromWideChar
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeLatin1(const Py_UNICODE *p,\n                       Py_ssize_t
      size,\n                       const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6958,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6959,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6962,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6966,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6967,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6967,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6968,1
    - Dst: unicode_encode_ucs1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6972
      start: 6955
    functionDepth: 7
    functionLinenumber: 6955
    functionLinenumberEnd: 6972
    functionName: _PyUnicode_AsLatin1String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyBytes_FromStringAndSize
    - unicode_encode_ucs1
    - PyUnicode_READY
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsLatin1String(PyObject *unicode, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsLatin1String
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:6977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6978
      start: 6974
    functionDepth: 8
    functionLinenumber: 6974
    functionLinenumberEnd: 6978
    functionName: PyUnicode_AsLatin1String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - _PyUnicode_AsLatin1String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsLatin1String(PyObject *unicode)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7000,1
    - Dst: get_latin1_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7004,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7006,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7008,1
    - Dst: ascii_decode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7013,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7016,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7023,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7032,1
    - Dst: _PyUnicodeWriter_PrepareKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7040,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7046,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7048,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7060,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7070,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7071,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7072,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7075,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7076,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7077,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7079
      start: 6982
    functionDepth: 5
    functionLinenumber: 6982
    functionLinenumberEnd: 7079
    functionName: PyUnicode_DecodeASCII
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - get_latin1_char
    - _PyUnicodeWriter_PrepareKind
    - _Py_RETURN_UNICODE_EMPTY
    - _Py_GetErrorHandler
    - _PyUnicodeWriter_Init
    - PyUnicode_WRITE
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - ascii_decode
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeASCII(const char *s,\n                      Py_ssize_t
      size,\n                      const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7088,1
    - Dst: unicode_encode_ucs1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7091,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - size
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7094
      start: 7082
    functionDepth: 7
    functionLinenumber: 7082
    functionLinenumberEnd: 7094
    functionName: PyUnicode_EncodeASCII
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_encode_ucs1
    - PyUnicode_FromWideChar
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeASCII(const Py_UNICODE *p,\n                      Py_ssize_t
      size,\n                      const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7099,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7100,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7103,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7107,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7108,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7108,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7109,1
    - Dst: unicode_encode_ucs1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - unicode
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7111
      start: 7096
    functionDepth: 7
    functionLinenumber: 7096
    functionLinenumberEnd: 7111
    functionName: _PyUnicode_AsASCIIString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyBytes_FromStringAndSize
    - unicode_encode_ucs1
    - PyUnicode_READY
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyUnicode_IS_ASCII
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_AsASCIIString(PyObject *unicode, const char *errors)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7117
      start: 7113
    functionDepth: 8
    functionLinenumber: 7113
    functionLinenumberEnd: 7117
    functionName: PyUnicode_AsASCIIString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 11
    functionsReached:
    - _PyUnicode_AsASCIIString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsASCIIString(PyObject *unicode)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromFormat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7148,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - code_page
    - obj
    argTypes:
    - UINT
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7137
    functionDepth: 3
    functionLinenumber: 7137
    functionLinenumberEnd: 7152
    functionName: code_page_name
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromFormat
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: char
    signature: 'char *

      code_page_name(UINT code_page, PyObject **obj)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - code_page
    argTypes:
    - UINT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7163
      start: 7154
    functionDepth: 0
    functionLinenumber: 7154
    functionLinenumberEnd: 7163
    functionName: decode_code_page_flags
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DWORD
    signature: DWORD decode_code_page_flags(UINT code_page)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7184,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7185,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7188,1
    - Dst: widechar_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7197,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7203,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7209,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - code_page
    - buf
    - bufsize
    - in
    - insize
    argTypes:
    - UINT
    - wchar_t**
    - Py_ssize_t*
    - char*
    - int
    assertStmts:
    - condition: (insize > 0)
      pos:
        line_end: 7183
        line_start: 7183
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7213
      start: 7172
    functionDepth: 2
    functionLinenumber: 7172
    functionLinenumberEnd: 7213
    functionName: decode_code_page_strict
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - assert
    - MultiByteToWideChar
    - widechar_resize
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: "int decode_code_page_strict(UINT code_page,\n                        wchar_t
      **buf,\n                        Py_ssize_t *bufsize,\n                        const
      char *in,\n                        int insize)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7248,1
    - Dst: code_page_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7250,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7254,1
    - Dst: make_decode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7257,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7259,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7260,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7267,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7268,1
    - Dst: widechar_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7271,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7271,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7283,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7285,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7288,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7297,1
    - Dst: unicode_decode_call_errorhandler_wchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7315,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7327,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7333,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7336,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7339,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7340,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7341,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 7
    argNames:
    - code_page
    - buf
    - bufsize
    - in
    - size
    - errors
    - final
    argTypes:
    - UINT
    - wchar_t**
    - Py_ssize_t*
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 7247
        line_start: 7247
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (out - *buf <= *bufsize)
      pos:
        line_end: 7332
        line_start: 7332
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7343
      start: 7222
    functionDepth: 5
    functionLinenumber: 7222
    functionLinenumberEnd: 7343
    functionName: decode_code_page_errors
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - GetLastError
    - PyErr_SetFromWindowsErr
    - Py_CLEAR
    - memcpy
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - MultiByteToWideChar
    - code_page_name
    - PyCodec_StrictErrors
    - unicode_decode_call_errorhandler_wchar
    - assert
    - strcmp
    - Py_XDECREF
    - make_decode_exception
    - widechar_resize
    linkageType: ''
    returnType: int
    signature: "int decode_code_page_errors(UINT code_page,\n                        wchar_t
      **buf,\n                        Py_ssize_t *bufsize,\n                        const
      char *in, const int size,\n                        const char *errors, int final)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7355,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7359,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7385,1
    - Dst: decode_code_page_strict
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7388,1
    - Dst: decode_code_page_errors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7391,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7394,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7397,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7408,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7409,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 5
    argNames:
    - code_page
    - s
    - size
    - errors
    - consumed
    argTypes:
    - int
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts:
    - condition: (converted != 0 || done)
      pos:
        line_end: 7393
        line_start: 7393
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7411
      start: 7345
    functionDepth: 6
    functionLinenumber: 7345
    functionLinenumberEnd: 7411
    functionName: decode_code_page_stateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - decode_code_page_strict
    - decode_code_page_errors
    - PyErr_BadInternalCall
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndecode_code_page_stateful(int code_page,\n                          const
      char *s, Py_ssize_t size,\n                          const char *errors, Py_ssize_t
      *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_code_page_stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - code_page
    - s
    - size
    - errors
    - consumed
    argTypes:
    - int
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7421
      start: 7413
    functionDepth: 7
    functionLinenumber: 7413
    functionLinenumberEnd: 7421
    functionName: PyUnicode_DecodeCodePageStateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - decode_code_page_stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeCodePageStateful(int code_page,\n                                 const
      char *s,\n                                 Py_ssize_t size,\n                                 const
      char *errors,\n                                 Py_ssize_t *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decode_code_page_stateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - size
    - errors
    - consumed
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7430
      start: 7423
    functionDepth: 7
    functionLinenumber: 7423
    functionLinenumberEnd: 7430
    functionName: PyUnicode_DecodeMBCSStateful
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - decode_code_page_stateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeMBCSStateful(const char *s,\n                             Py_ssize_t
      size,\n                             const char *errors,\n                             Py_ssize_t
      *consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeMBCSStateful
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - size
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7432
    functionDepth: 8
    functionLinenumber: 7432
    functionLinenumberEnd: 7438
    functionName: PyUnicode_DecodeMBCS
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeMBCSStateful
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeMBCS(const char *s,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - code_page
    - errors
    argTypes:
    - UINT
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7456
      start: 7440
    functionDepth: 0
    functionLinenumber: 7440
    functionLinenumberEnd: 7456
    functionName: encode_code_page_flags
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: DWORD
    signature: DWORD encode_code_page_flags(UINT code_page, const char *errors)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page_flags
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7475,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7481,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7488,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7491,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7493,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7496,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7507,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7515,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7518,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7522,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7524,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7525,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7528,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7529,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7532,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7536,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7540,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7548,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7549,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7551,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 6
    argNames:
    - code_page
    - outbytes
    - unicode
    - offset
    - len
    - errors
    argTypes:
    - UINT
    - PyObject**
    - PyObject*
    - Py_ssize_t
    - int
    - char*
    assertStmts:
    - condition: (len > 0)
      pos:
        line_end: 7480
        line_start: 7480
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (size <= INT_MAX)
      pos:
        line_end: 7495
        line_start: 7495
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7553
      start: 7465
    functionDepth: 3
    functionLinenumber: 7465
    functionLinenumberEnd: 7553
    functionName: encode_code_page_strict
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - GetLastError
    - Py_CLEAR
    - Py_DECREF
    - PyErr_NoMemory
    - PyUnicode_Substring
    - PyBytes_Size
    - _PyBytes_Resize
    - PyUnicode_AsUnicodeAndSize
    - PyBytes_AS_STRING
    - WideCharToMultiByte
    - assert
    - PyErr_SetFromWindowsErr
    - Py_XDECREF
    - encode_code_page_flags
    linkageType: ''
    returnType: int
    signature: "int encode_code_page_strict(UINT code_page, PyObject **outbytes,\n
      \                       PyObject *unicode, Py_ssize_t offset, int len,\n                        const
      char* errors)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page_flags
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7567,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7586,1
    - Dst: code_page_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7588,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7592,1
    - Dst: make_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7595,1
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7597,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7598,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7600,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7609,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7610,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7613,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7617,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7620,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7624,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7626,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7629,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7631,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7637,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7645,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7646,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7650,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7652,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7658,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7663,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7664,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7668,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7676,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7677,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7679,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7680,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7681,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7682,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7685,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7687,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7687,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7695,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7696,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7700,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7702,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7703,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7704,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7705,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7708,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7710,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7711,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7713,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7715,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7719,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7726,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7730,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7731,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7731,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7732,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7737,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7738,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7739,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 125
    argCount: 6
    argNames:
    - code_page
    - outbytes
    - unicode
    - unicode_offset
    - insize
    - errors
    argTypes:
    - UINT
    - PyObject**
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts:
    - condition: (insize > 0)
      pos:
        line_end: 7585
        line_start: 7585
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (outsize <= PyBytes_GET_SIZE(*outbytes))
      pos:
        line_end: 7730
        line_start: 7730
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7741
      start: 7562
    functionDepth: 5
    functionLinenumber: 7562
    functionLinenumberEnd: 7741
    functionName: encode_code_page_errors
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_ARRAY_LENGTH
    - raise_encode_exception
    - PyCodec_StrictErrors
    - _PyBytes_Resize
    - unicode_encode_call_errorhandler
    - WideCharToMultiByte
    - Py_UNICODE_HIGH_SURROGATE
    - PyUnicode_KIND
    - PyBytes_FromStringAndSize
    - GetLastError
    - PyBytes_Size
    - PyUnicode_DATA
    - assert
    - PyUnicode_READ_CHAR
    - Py_XDECREF
    - encode_code_page_flags
    - PyErr_SetFromWindowsErr
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - make_encode_exception
    - memcpy
    - PyErr_NoMemory
    - code_page_name
    - PyBytes_Check
    - Py_UNICODE_LOW_SURROGATE
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int encode_code_page_errors(UINT code_page, PyObject **outbytes,\n
      \                       PyObject *unicode, Py_ssize_t unicode_offset,\n                        Py_ssize_t
      insize, const char* errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7753,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7754,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7758,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7760,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7763,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7768,1
    - Dst: encode_code_page_strict
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7785,1
    - Dst: encode_code_page_errors
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7789,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7793,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - code_page
    - unicode
    - errors
    argTypes:
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7802
      start: 7743
    functionDepth: 6
    functionLinenumber: 7743
    functionLinenumberEnd: 7802
    functionName: encode_code_page
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_READY
    - encode_code_page_errors
    - PyErr_BadArgument
    - Py_XDECREF
    - PyErr_SetString
    - PyUnicode_Check
    - encode_code_page_strict
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nencode_code_page(int code_page,\n                 PyObject
      *unicode,\n                 const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7810,1
    - Dst: encode_code_page
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - size
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7816
      start: 7804
    functionDepth: 7
    functionLinenumber: 7804
    functionLinenumberEnd: 7816
    functionName: PyUnicode_EncodeMBCS
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - encode_code_page
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeMBCS(const Py_UNICODE *p,\n                     Py_ssize_t
      size,\n                     const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_code_page
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - code_page
    - unicode
    - errors
    argTypes:
    - int
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7824
      start: 7818
    functionDepth: 7
    functionLinenumber: 7818
    functionLinenumberEnd: 7824
    functionName: PyUnicode_EncodeCodePage
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - encode_code_page
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeCodePage(int code_page,\n                         PyObject
      *unicode,\n                         const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeCodePage
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7830
      start: 7826
    functionDepth: 8
    functionLinenumber: 7826
    functionLinenumberEnd: 7830
    functionName: PyUnicode_AsMBCSString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_EncodeCodePage
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_AsMBCSString(PyObject *unicode)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7855,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7858,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7859,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7860,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7872,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7877,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7924,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7933,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7943,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7947,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7948,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7952,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7953,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 5
    argNames:
    - s
    - size
    - mapping
    - errors
    - writer
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - char*
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind == PyUnicode_1BYTE_KIND)
      pos:
        line_end: 7871
        line_start: 7871
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 7955
      start: 7838
    functionDepth: 5
    functionLinenumber: 7838
    functionLinenumberEnd: 7955
    functionName: charmap_decode_string
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_XDECREF
    - unicode_decode_call_errorhandler_writer
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int charmap_decode_string(const char *s,\n                      Py_ssize_t
      size,\n                      PyObject *mapping,\n                      const
      char *errors,\n                      _PyUnicodeWriter *writer)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7977,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7981,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7982,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7984,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7986,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7995,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:7996,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8000,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8006,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8009,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8010,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8012,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8013,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8016,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8021,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8027,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8031,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8037,1
    - Dst: unicode_decode_call_errorhandler_writer
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8040,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8048,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8049,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8053,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8054,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8055,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 5
    argNames:
    - s
    - size
    - mapping
    - errors
    - writer
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - char*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8057
      start: 7957
    functionDepth: 5
    functionLinenumber: 7957
    functionLinenumberEnd: 8057
    functionName: charmap_decode_mapping
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AS_LONG
    - PyUnicode_READY
    - Py_DECREF
    - _PyUnicodeWriter_WriteStr
    - Py_CLEAR
    - Py_XDECREF
    - PyObject_GetItem
    - unicode_decode_call_errorhandler_writer
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyUnicode_Check
    - PyErr_SetString
    - _PyUnicodeWriter_WriteCharInline
    - PyUnicode_READ_CHAR
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int charmap_decode_mapping(const char *s,\n                       Py_ssize_t
      size,\n                       PyObject *mapping,\n                       const
      char *errors,\n                       _PyUnicodeWriter *writer)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeLatin1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8069,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8072,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8073,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8075,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8078,1
    - Dst: charmap_decode_string
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8079,1
    - Dst: charmap_decode_mapping
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8083,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8086,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8089,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - s
    - size
    - mapping
    - errors
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8091
      start: 8059
    functionDepth: 6
    functionLinenumber: 8059
    functionLinenumberEnd: 8091
    functionName: PyUnicode_DecodeCharmap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - _PyUnicodeWriter_Init
    - charmap_decode_string
    - charmap_decode_mapping
    - _PyUnicodeWriter_Prepare
    - PyUnicode_DecodeLatin1
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_DecodeCharmap(const char *s,\n                        Py_ssize_t
      size,\n                        PyObject *mapping,\n                        const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8108
      start: 8102
    functionDepth: 0
    functionLinenumber: 8102
    functionLinenumberEnd: 8108
    functionName: encoding_map_size
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      encoding_map_size(PyObject *obj, PyObject* args)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8176,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8176,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8177,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8180,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8181,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8182,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8183,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8184,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8185,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8190,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8194,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8214,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8219,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8219,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8220,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8226,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8230,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8231,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8232,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8237,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8240,1
    - Dst: PyObject_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8241,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8248,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8249,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8250,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8254,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 80
    argCount: 1
    argNames:
    - string
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8268
      start: 8160
    functionDepth: 5
    functionLinenumber: 8160
    functionLinenumberEnd: 8268
    functionName: PyUnicode_BuildEncodingMap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READ
    - Py_DECREF
    - memcpy
    - Py_MIN
    - PyErr_BadArgument
    - PyUnicode_DATA
    - PyDict_New
    - Py_XDECREF
    - PyErr_NoMemory
    - PyDict_SetItem
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyObject_Init
    - PyUnicode_GET_LENGTH
    - memset
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_BuildEncodingMap(PyObject* string)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - c
    - mapping
    argTypes:
    - Py_UCS4
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8299
      start: 8270
    functionDepth: 0
    functionLinenumber: 8270
    functionLinenumberEnd: 8299
    functionName: encoding_map_lookup
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int encoding_map_lookup(Py_UCS4 c, PyObject *mapping)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8307,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8313,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8315,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8317,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8324,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8329,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8334,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - c
    - mapping
    argTypes:
    - Py_UCS4
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8344
      start: 8304
    functionDepth: 4
    functionLinenumber: 8304
    functionLinenumberEnd: 8344
    functionName: charmapencode_lookup
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AS_LONG
    - Py_DECREF
    - PyObject_GetItem
    - PyBytes_Check
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      charmapencode_lookup(Py_UCS4 c, PyObject *mapping)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8349,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - outobj
    - outpos
    - requiredsize
    argTypes:
    - PyObject**
    - Py_ssize_t*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8356
      start: 8346
    functionDepth: 3
    functionLinenumber: 8346
    functionLinenumberEnd: 8356
    functionName: charmapencode_resize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int charmapencode_resize(PyObject **outobj, Py_ssize_t *outpos, Py_ssize_t
      requiredsize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8373,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8375,1
    - Dst: encoding_map_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8376,1
    - Dst: charmapencode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8381,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8383,1
    - Dst: charmapencode_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8388,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8392,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8395,1
    - Dst: charmapencode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8399,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8402,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8403,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8406,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8407,1
    - Dst: charmapencode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8410,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8411,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8414,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8419,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - c
    - mapping
    - outobj
    - outpos
    argTypes:
    - Py_UCS4
    - PyObject*
    - PyObject**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8421
      start: 8367
    functionDepth: 5
    functionLinenumber: 8367
    functionLinenumberEnd: 8421
    functionName: charmapencode_output
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AS_LONG
    - charmapencode_lookup
    - encoding_map_lookup
    - Py_DECREF
    - memcpy
    - PyBytes_GET_SIZE
    - charmapencode_resize
    - Py_TYPE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: charmapencode_result
    signature: "charmapencode_result charmapencode_output(Py_UCS4 c, PyObject *mapping,\n
      \                    PyObject **outobj, Py_ssize_t *outpos)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8448,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8450,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8454,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8455,1
    - Dst: encoding_map_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8456,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8463,1
    - Dst: charmapencode_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8471,1
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8477,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8481,1
    - Dst: charmapencode_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8486,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8491,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8505,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8505,1
    - Dst: charmapencode_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8507,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8511,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8520,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8525,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8527,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8529,1
    - Dst: charmapencode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8533,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8534,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8537,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8537,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8541,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8545,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8546,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8549,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8550,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8551,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8553,1
    - Dst: charmapencode_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8554,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8556,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8560,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8561,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8566,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 9
    argNames:
    - unicode
    - inpos
    - mapping
    - exceptionObject
    - error_handler
    - error_handler_obj
    - errors
    - res
    - respos
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject*
    - PyObject**
    - _Py_error_handler*
    - PyObject**
    - char*
    - PyObject**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8569
      start: 8425
    functionDepth: 6
    functionLinenumber: 8425
    functionLinenumberEnd: 8569
    functionName: charmap_encoding_error
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - encoding_map_lookup
    - raise_encode_exception
    - PyUnicode_READ
    - charmapencode_resize
    - unicode_encode_call_errorhandler
    - PyUnicode_KIND
    - _Py_GetErrorHandler
    - PyBytes_Size
    - PyUnicode_DATA
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - charmapencode_output
    - PyBytes_AsString
    - Py_TYPE
    - charmapencode_lookup
    - memcpy
    - PyBytes_Check
    - sprintf
    linkageType: ''
    returnType: int
    signature: "int charmap_encoding_error(\n    PyObject *unicode, Py_ssize_t *inpos,
      PyObject *mapping,\n    PyObject **exceptionObject,\n    _Py_error_handler *error_handler,
      PyObject **error_handler_obj, const char *errors,\n    PyObject **res, Py_ssize_t
      *respos)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8589,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8591,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8592,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8593,1
    - Dst: unicode_encode_ucs1
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8597,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8601,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8608,1
    - Dst: charmapencode_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8610,1
    - Dst: charmap_encoding_error
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8614,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8627,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8628,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8631,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8632,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8636,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8637,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8638,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - unicode
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8640
      start: 8571
    functionDepth: 7
    functionLinenumber: 8571
    functionLinenumberEnd: 8640
    functionName: _PyUnicode_EncodeCharmap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - unicode_encode_ucs1
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_XDECREF
    - charmapencode_output
    - charmap_encoding_error
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_EncodeCharmap(PyObject *unicode,\n                         PyObject
      *mapping,\n                         const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8650,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8653,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - size
    - mapping
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8656
      start: 8643
    functionDepth: 8
    functionLinenumber: 8643
    functionLinenumberEnd: 8656
    functionName: PyUnicode_EncodeCharmap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromWideChar
    - _PyUnicode_EncodeCharmap
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_EncodeCharmap(const Py_UNICODE *p,\n                        Py_ssize_t
      size,\n                        PyObject *mapping,\n                        const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8662,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8663,1
    - Dst: _PyUnicode_EncodeCharmap
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - unicode
    - mapping
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8667
      start: 8658
    functionDepth: 8
    functionLinenumber: 8658
    functionLinenumberEnd: 8667
    functionName: PyUnicode_AsCharmapString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyErr_BadArgument
    - _PyUnicode_EncodeCharmap
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_AsCharmapString(PyObject *unicode,\n                          PyObject
      *mapping)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeTranslateError_Create
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8677,1
    - Dst: PyUnicodeTranslateError_SetStart
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8681,1
    - Dst: PyUnicodeTranslateError_SetEnd
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8683,1
    - Dst: PyUnicodeTranslateError_SetReason
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8685,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 5
    argNames:
    - exceptionObject
    - unicode
    - startpos
    - endpos
    - reason
    argTypes:
    - PyObject**
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8691
      start: 8670
    functionDepth: 3
    functionLinenumber: 8670
    functionLinenumberEnd: 8691
    functionName: make_translate_exception
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicodeTranslateError_SetEnd
    - Py_CLEAR
    - PyUnicodeTranslateError_SetStart
    - PyUnicodeTranslateError_SetReason
    - _PyUnicodeTranslateError_Create
    linkageType: ''
    returnType: void
    signature: "void make_translate_exception(PyObject **exceptionObject,\n                         PyObject
      *unicode,\n                         Py_ssize_t startpos, Py_ssize_t endpos,\n
      \                        const char *reason)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_LookupError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8712,1
    - Dst: make_translate_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8717,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8722,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8726,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8727,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8728,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8731,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8733,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8737,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8740,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8741,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8742,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8745,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8746,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 8
    argNames:
    - errors
    - errorHandler
    - reason
    - unicode
    - exceptionObject
    - startpos
    - endpos
    - newpos
    argTypes:
    - char*
    - PyObject**
    - char*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8748
      start: 8697
    functionDepth: 4
    functionLinenumber: 8697
    functionLinenumberEnd: 8748
    functionName: unicode_translate_call_errorhandler
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - make_translate_exception
    - Py_DECREF
    - Py_INCREF
    - PyTuple_Check
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - PyErr_SetString
    - PyArg_ParseTuple
    - PyUnicode_GET_LENGTH
    - PyCodec_LookupError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_translate_call_errorhandler(const char *errors,\n
      \                                   PyObject **errorHandler,\n                                    const
      char *reason,\n                                    PyObject *unicode, PyObject
      **exceptionObject,\n                                    Py_ssize_t startpos,
      Py_ssize_t endpos,\n                                    Py_ssize_t *newpos)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8756,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8761,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8762,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8764,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8766,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8776,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8777,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8782,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8788,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8794,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8796,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - c
    - mapping
    - result
    argTypes:
    - Py_UCS4
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8799
      start: 8753
    functionDepth: 4
    functionLinenumber: 8753
    functionLinenumberEnd: 8799
    functionName: charmaptranslate_lookup
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AS_LONG
    - Py_DECREF
    - PyObject_GetItem
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyUnicode_Check
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int charmaptranslate_lookup(Py_UCS4 c, PyObject *mapping, PyObject
      **result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: charmaptranslate_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8810,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8815,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8822,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8826,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8827,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8830,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8831,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8834,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8838,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8839,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8843,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8844,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - ch
    - mapping
    - writer
    argTypes:
    - Py_UCS4
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8850
      start: 8804
    functionDepth: 5
    functionLinenumber: 8804
    functionLinenumberEnd: 8850
    functionName: charmaptranslate_output
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AS_LONG
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - PyUnicode_Check
    - charmaptranslate_lookup
    - _PyUnicodeWriter_WriteCharInline
    linkageType: ''
    returnType: int
    signature: "int charmaptranslate_output(Py_UCS4 ch, PyObject *mapping,\n                        _PyUnicodeWriter
      *writer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: charmaptranslate_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8859,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8872,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8873,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8883,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8887,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8890,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8905,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - mapping
    - ch
    - translate
    argTypes:
    - PyObject*
    - Py_UCS1
    - Py_UCS1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8907
      start: 8852
    functionDepth: 5
    functionLinenumber: 8852
    functionLinenumberEnd: 8907
    functionName: unicode_fast_translate_lookup
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AS_LONG
    - PyUnicode_READY
    - Py_DECREF
    - charmaptranslate_lookup
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int unicode_fast_translate_lookup(PyObject *mapping, Py_UCS1 ch,\n
      \                             Py_UCS1 *translate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8922,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8924,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8926,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8929,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8929,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8930,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8930,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8931,1
    - Dst: unicode_fast_translate_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8937,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8950,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8957,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8958,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - input
    - mapping
    - writer
    - ignore
    - input_pos
    argTypes:
    - PyObject*
    - PyObject*
    - _PyUnicodeWriter*
    - int
    - Py_ssize_t*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(writer->buffer))
      pos:
        line_end: 8928
        line_start: 8928
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_GET_LENGTH(writer->buffer) == len)
      pos:
        line_end: 8929
        line_start: 8929
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (ch2 < 128)
      pos:
        line_end: 8949
        line_start: 8949
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 8960
      start: 8912
    functionDepth: 6
    functionLinenumber: 8912
    functionLinenumberEnd: 8960
    functionName: unicode_fast_translate
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - assert
    - unicode_fast_translate_lookup
    - PyUnicode_GET_LENGTH
    - memset
    linkageType: ''
    returnType: int
    signature: "int unicode_fast_translate(PyObject *input, PyObject *mapping,\n                       _PyUnicodeWriter
      *writer, int ignore,\n                       Py_ssize_t *input_pos)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8981,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8985,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8987,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8988,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8989,1
    - Dst: PyUnicode_FromObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8992,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8996,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:8997,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9000,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9002,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9004,1
    - Dst: unicode_fast_translate
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9005,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9007,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9011,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9027,1
    - Dst: charmaptranslate_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9028,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9045,1
    - Dst: charmaptranslate_lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9046,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9048,1
    - Dst: unicode_translate_call_errorhandler
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9058,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9063,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9064,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9067,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9071,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9072,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9073,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9076,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9077,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9078,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 3
    argNames:
    - input
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9080
      start: 8962
    functionDepth: 7
    functionLinenumber: 8962
    functionLinenumberEnd: 9080
    functionName: _PyUnicode_TranslateCharmap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_READY
    - PyUnicode_READ
    - _PyUnicodeWriter_Prepare
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - charmaptranslate_lookup
    - PyUnicode_KIND
    - charmaptranslate_output
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - Py_XDECREF
    - PyUnicode_GET_LENGTH
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - PyErr_BadArgument
    - unicode_fast_translate
    - PyUnicode_FromObject
    - unicode_translate_call_errorhandler
    - strcmp
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyUnicode_TranslateCharmap(PyObject *input,\n                            PyObject
      *mapping,\n                            const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9090,1
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9093,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - size
    - mapping
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9096
      start: 9083
    functionDepth: 8
    functionLinenumber: 9083
    functionLinenumberEnd: 9096
    functionName: PyUnicode_TranslateCharmap
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_DECREF
    - _PyUnicode_TranslateCharmap
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_TranslateCharmap(const Py_UNICODE *p,\n                           Py_ssize_t
      size,\n                           PyObject *mapping,\n                           const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9103,1
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - str
    - mapping
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9106
      start: 9098
    functionDepth: 8
    functionLinenumber: 9098
    functionLinenumberEnd: 9106
    functionName: PyUnicode_Translate
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ensure_unicode
    - _PyUnicode_TranslateCharmap
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Translate(PyObject *str,\n                    PyObject
      *mapping,\n                    const char *errors)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9111,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9112,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9115,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9117,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9119,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9123,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9124,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9129,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9130,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9131,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9134,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9138,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9142,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9146,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9153,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 9152
        line_start: 9152
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9155
      start: 9108
    functionDepth: 3
    functionLinenumber: 9108
    functionLinenumberEnd: 9155
    functionName: _PyUnicode_TransformDecimalAndSpaceToASCII
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - Py_INCREF
    - Py_UNICODE_TODECIMAL
    - PyUnicode_DATA
    - PyErr_BadInternalCall
    - _PyUnicode_CheckConsistency
    - _PyUnicode_LENGTH
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_TransformDecimalAndSpaceToASCII(PyObject *unicode)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9171,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9174,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9179,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9182,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9183,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9188,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9192,1
    - Dst: unicode_result
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9195
      start: 9157
    functionDepth: 4
    functionLinenumber: 9157
    functionLinenumberEnd: 9195
    functionName: PyUnicode_TransformDecimalToASCII
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - Py_UNICODE_TODECIMAL
    - PyUnicode_WRITE
    - Py_MAX
    - PyUnicode_DATA
    - PyUnicode_KIND
    - unicode_result
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_TransformDecimalToASCII(Py_UNICODE *s,\n                                  Py_ssize_t
      length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9210,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9214,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9218,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9219,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9227,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9229,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9234,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9248,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - s
    - length
    - output
    - errors
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9259
      start: 9198
    functionDepth: 5
    functionLinenumber: 9198
    functionLinenumberEnd: 9259
    functionName: PyUnicode_EncodeDecimal
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - Py_UNICODE_TODECIMAL
    - raise_encode_exception
    - Py_DECREF
    - PyErr_BadArgument
    - PyUnicode_FromWideChar
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int PyUnicode_EncodeDecimal(Py_UNICODE *s,\n                        Py_ssize_t
      length,\n                        char *output,\n                        const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - start
    - ','
    - end
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9277
      start: 9264
    functionDepth: 0
    functionLinenumber: 9264
    functionLinenumberEnd: 9277
    functionName: ADJUST_INDICES
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_INDICES(start, end, len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9288,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9289,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9293,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9294,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9295,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9299,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9300,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9302,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9303,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9312,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9320,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9320,1
    - Dst: asciilib_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9321,1
    - Dst: ucs1lib_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9323,1
    - Dst: ucs2lib_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9326,1
    - Dst: ucs4lib_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9329,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9332,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9338,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9338,1
    - Dst: asciilib_rfind_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9339,1
    - Dst: ucs1lib_rfind_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9341,1
    - Dst: ucs2lib_rfind_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9344,1
    - Dst: ucs4lib_rfind_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9347,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9350,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9355,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 5
    argNames:
    - s1
    - s2
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9358
      start: 9278
    functionDepth: 2
    functionLinenumber: 9278
    functionLinenumberEnd: 9358
    functionName: any_find_slice
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs4lib_rfind_slice
    - PyUnicode_READ
    - ucs1lib_find_slice
    - _PyUnicode_AsKind
    - findchar
    - ucs4lib_find_slice
    - ADJUST_INDICES
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - ucs2lib_find_slice
    - ucs2lib_rfind_slice
    - asciilib_rfind_slice
    - PyUnicode_DATA
    - PyUnicode_KIND
    - asciilib_find_slice
    - PyMem_Free
    - PyUnicode_GET_LENGTH
    - ucs1lib_rfind_slice
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t any_find_slice(PyObject* s1, PyObject* s2,\n               Py_ssize_t
      start,\n               Py_ssize_t end,\n               int direction)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9398,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9400,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9401,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9404,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9405,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9407,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9408,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9409,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9412,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9416,1
    - Dst: GroupGenerator_init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9435,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9436,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9440,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9445,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9445,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9446,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9446,1
    - Dst: GroupGenerator_next
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9456,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9457,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9457,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9457,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9458,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9459,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9459,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9467,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9488,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9488,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9489,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9490,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9490,1
    - Dst: InsertThousandsGrouping_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9496,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 9
    argNames:
    - writer
    - n_buffer
    - digits
    - d_pos
    - n_digits
    - min_width
    - grouping
    - thousands_sep
    - maxchar
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - PyObject*
    - Py_UCS4*
    assertStmts:
    - condition: (maxchar == NULL)
      pos:
        line_end: 9400
        line_start: 9400
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (maxchar != NULL)
      pos:
        line_end: 9404
        line_start: 9404
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (grouping != NULL)
      pos:
        line_end: 9408
        line_start: 9408
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (!(grouping[0] == CHAR_MAX && thousands_sep_len != 0))
      pos:
        line_end: 9439
        line_start: 9439
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= d_pos)
      pos:
        line_end: 9406
        line_start: 9406
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= n_digits)
      pos:
        line_end: 9407
        line_start: 9407
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (digits == NULL)
      pos:
        line_end: 9403
        line_start: 9403
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (digits != NULL)
      pos:
        line_end: 9399
        line_start: 9399
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (digits_pos <= PyUnicode_GET_LENGTH(digits))
      pos:
        line_end: 9445
        line_start: 9445
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (buffer_pos <= PyUnicode_GET_LENGTH(writer->buffer))
      pos:
        line_end: 9444
        line_start: 9444
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9503
      start: 9386
    functionDepth: 1
    functionLinenumber: 9386
    functionLinenumberEnd: 9503
    functionName: _PyUnicode_InsertThousandsGrouping
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_MIN
    - Py_MAX
    - GroupGenerator_next
    - InsertThousandsGrouping_fill
    - assert
    - PyUnicode_GET_LENGTH
    - GroupGenerator_init
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t _PyUnicode_InsertThousandsGrouping(\n    _PyUnicodeWriter
      *writer,\n    Py_ssize_t n_buffer,\n    PyObject *digits,\n    Py_ssize_t d_pos,\n
      \   Py_ssize_t n_digits,\n    Py_ssize_t min_width,\n    const char *grouping,\n
      \   PyObject *thousands_sep,\n    Py_UCS4 *maxchar)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9517,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9517,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9520,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9521,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9525,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9526,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9527,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9531,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9532,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9534,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9541,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9541,1
    - Dst: asciilib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9542,1
    - Dst: ucs1lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9547,1
    - Dst: ucs2lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9553,1
    - Dst: ucs4lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9559,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9565,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9569,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9574,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - str
    - substr
    - start
    - end
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9576
      start: 9506
    functionDepth: 2
    functionLinenumber: 9506
    functionLinenumberEnd: 9576
    functionName: PyUnicode_Count
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_AsKind
    - ucs2lib_count
    - PyUnicode_DATA
    - asciilib_count
    - Py_UNREACHABLE
    - ADJUST_INDICES
    - ucs4lib_count
    - PyUnicode_IS_ASCII
    - PyMem_Free
    - ensure_unicode
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - ucs1lib_count
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_Count(PyObject *str,\n                PyObject
      *substr,\n                Py_ssize_t start,\n                Py_ssize_t end)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9585,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9585,1
    - Dst: any_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - str
    - substr
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9589
      start: 9578
    functionDepth: 3
    functionLinenumber: 9578
    functionLinenumberEnd: 9589
    functionName: PyUnicode_Find
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ensure_unicode
    - any_find_slice
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_Find(PyObject *str,\n               PyObject
      *substr,\n               Py_ssize_t start,\n               Py_ssize_t end,\n
      \              int direction)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9598,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9600,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9601,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9604,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9605,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - str
    - ch
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9611
      start: 9591
    functionDepth: 1
    functionLinenumber: 9591
    functionLinenumberEnd: 9611
    functionName: PyUnicode_FindChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - PyUnicode_READY
    - findchar
    - ADJUST_INDICES
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_FindChar(PyObject *str, Py_UCS4 ch,\n                   Py_ssize_t
      start, Py_ssize_t end,\n                   int direction)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9628,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9629,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9632,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9632,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9633,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9637,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9640,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9641,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9642,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9643,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9644,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9651,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9652,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9653,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9654,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9657,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9658,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9660,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9661,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9669,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9670,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - self
    - substring
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9678
      start: 9613
    functionDepth: 1
    functionLinenumber: 9613
    functionLinenumberEnd: 9678
    functionName: tailmatch
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - ADJUST_INDICES
    - PyUnicode_DATA
    - PyUnicode_KIND
    - memcmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int tailmatch(PyObject *self,\n          PyObject *substring,\n          Py_ssize_t
      start,\n          Py_ssize_t end,\n          int direction)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9687,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9687,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - str
    - substr
    - start
    - end
    - direction
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9691
      start: 9680
    functionDepth: 2
    functionLinenumber: 9680
    functionLinenumberEnd: 9691
    functionName: PyUnicode_Tailmatch
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ensure_unicode
    - tailmatch
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_Tailmatch(PyObject *str,\n                    PyObject
      *substr,\n                    Py_ssize_t start,\n                    Py_ssize_t
      end,\n                    int direction)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9696,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9697,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9700,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9703,1
    - Dst: _Py_bytes_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9705,1
    - Dst: _Py_bytes_upper
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - lower
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9709
      start: 9693
    functionDepth: 3
    functionLinenumber: 9693
    functionLinenumberEnd: 9709
    functionName: ascii_upper_or_lower
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_bytes_lower
    - _Py_bytes_upper
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ascii_upper_or_lower(PyObject *self, int lower)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9724,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9725,1
    - Dst: _PyUnicode_IsCased
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9728,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9731,1
    - Dst: _PyUnicode_IsCaseIgnorable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9732,1
    - Dst: _PyUnicode_IsCased
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9735,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - kind
    - data
    - length
    - i
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9738
      start: 9711
    functionDepth: 2
    functionLinenumber: 9711
    functionLinenumberEnd: 9738
    functionName: handle_capital_sigma
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_IsCased
    - PyUnicode_READ
    - _PyUnicode_IsCaseIgnorable
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 handle_capital_sigma(int kind, void *data, Py_ssize_t length,
      Py_ssize_t i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: handle_capital_sigma
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9746,1
    - Dst: _PyUnicode_ToLowerFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - kind
    - data
    - length
    - i
    - c
    - mapped
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9750
      start: 9740
    functionDepth: 3
    functionLinenumber: 9740
    functionLinenumberEnd: 9750
    functionName: lower_ucs4
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToLowerFull
    - handle_capital_sigma
    linkageType: ''
    returnType: int
    signature: "int lower_ucs4(int kind, void *data, Py_ssize_t length, Py_ssize_t
      i,\n           Py_UCS4 c, Py_UCS4 *mapped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9759,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9760,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9762,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9766,1
    - Dst: lower_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9767,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9774
      start: 9752
    functionDepth: 4
    functionLinenumber: 9752
    functionLinenumberEnd: 9774
    functionName: do_capitalize
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_MAX
    - PyUnicode_READ
    - _PyUnicode_ToTitleFull
    - lower_ucs4
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_capitalize(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9781,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9783,1
    - Dst: lower_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9784,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9786,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9787,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9799
      start: 9776
    functionDepth: 4
    functionLinenumber: 9776
    functionLinenumberEnd: 9799
    functionName: do_swapcase
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_UNICODE_ISLOWER
    - _PyUnicode_ToUpperFull
    - lower_ucs4
    - Py_MAX
    - Py_UNICODE_ISUPPER
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_swapcase(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9808,1
    - Dst: lower_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9811,1
    - Dst: _PyUnicode_ToUpperFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9813,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    - lower
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9820
      start: 9801
    functionDepth: 4
    functionLinenumber: 9801
    functionLinenumberEnd: 9820
    functionName: do_upper_or_lower
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToUpperFull
    - Py_MAX
    - PyUnicode_READ
    - lower_ucs4
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t do_upper_or_lower(int kind, void *data, Py_ssize_t length,
      Py_UCS4 *res,\n                  Py_UCS4 *maxchar, int lower)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_upper_or_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9826
      start: 9822
    functionDepth: 5
    functionLinenumber: 9822
    functionLinenumberEnd: 9826
    functionName: do_upper
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_upper_or_lower
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_upper(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_upper_or_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9832
      start: 9828
    functionDepth: 5
    functionLinenumber: 9828
    functionLinenumberEnd: 9832
    functionName: do_lower
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_upper_or_lower
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_lower(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9840,1
    - Dst: _PyUnicode_ToFoldedFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9842,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9849
      start: 9834
    functionDepth: 3
    functionLinenumber: 9834
    functionLinenumberEnd: 9849
    functionName: do_casefold
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_ToFoldedFull
    - Py_MAX
    - PyUnicode_READ
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_casefold(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9859,1
    - Dst: lower_ucs4
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9864,1
    - Dst: _PyUnicode_ToTitleFull
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9866,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9869,1
    - Dst: _PyUnicode_IsCased
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9873,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - kind
    - data
    - length
    - res
    - maxchar
    argTypes:
    - int
    - void*
    - Py_ssize_t
    - Py_UCS4*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9876
      start: 9851
    functionDepth: 4
    functionLinenumber: 9851
    functionLinenumberEnd: 9876
    functionName: do_title
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - lower_ucs4
    - _PyUnicode_IsCased
    - Py_MAX
    - _PyUnicode_ToTitleFull
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t do_title(int kind, void *data, Py_ssize_t length, Py_UCS4
      *res, Py_UCS4 *maxchar)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9888,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9888,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9890,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9891,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9892,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9894,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9897,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9899,1
    - Dst: perform
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9900,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9901,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9905,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9906,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9909,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9912,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9915,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9918,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9921,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_READY(self))
      pos:
        line_end: 9887
        line_start: 9887
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 9923
      start: 9878
    functionDepth: 3
    functionLinenumber: 9878
    functionLinenumberEnd: 9923
    functionName: case_operation
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - memcpy
    - PyMem_MALLOC
    - _PyUnicode_CONVERT_BYTES
    - PyUnicode_KIND
    - PyErr_NoMemory
    - Py_UNREACHABLE
    - PyErr_SetString
    - PyUnicode_DATA
    - assert
    - PyMem_FREE
    - PyUnicode_GET_LENGTH
    - perform
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncase_operation(PyObject *self,\n               Py_ssize_t
      (*perform)(int, void *, Py_ssize_t, Py_UCS4 *, Py_UCS4 *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9933,1
    - Dst: PySequence_Fast_ITEMS
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9942,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9943,1
    - Dst: _PyUnicode_JoinArray
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - separator
    - seq
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9947
      start: 9925
    functionDepth: 3
    functionLinenumber: 9925
    functionLinenumberEnd: 9947
    functionName: PyUnicode_Join
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 10
    functionsReached:
    - Py_DECREF
    - _PyUnicode_JoinArray
    - PySequence_Fast
    - PySequence_Fast_ITEMS
    - PySequence_Fast_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Join(PyObject *separator, PyObject *seq)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9966,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9972,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9974,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9984,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9991,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9992,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9995,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:9998,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10001,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10002,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10005,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10024,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10025,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10028,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10031,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10033,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10034,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10035,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10040,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10046,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10046,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10052,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10061,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10062,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10064,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10074,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10080,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10082,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10083,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10088,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10088,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10089,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10098,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10102,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10104,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10108,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10108,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10111,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10112,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10112,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10116,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10117,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 116
    argCount: 3
    argNames:
    - separator
    - items
    - seqlen
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: "(res_data == PyUnicode_1BYTE_DATA(res)\n                           +
        kind * PyUnicode_GET_LENGTH(res))"
      pos:
        line_end: 10088
        line_start: 10087
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 10111
        line_start: 10111
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (res_offset == PyUnicode_GET_LENGTH(res))
      pos:
        line_end: 10107
        line_start: 10107
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10119
      start: 9949
    functionDepth: 6
    functionLinenumber: 9949
    functionLinenumberEnd: 10119
    functionName: _PyUnicode_JoinArray
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_READY
    - PyUnicode_KIND
    - PyUnicode_CheckExact
    - _PyUnicode_FastCopyCharacters
    - Py_INCREF
    - Py_MAX
    - PyErr_Format
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyUnicode_New
    - Py_TYPE
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_CheckConsistency
    - PyUnicode_FromOrdinal
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_JoinArray(PyObject *separator, PyObject *const *items, Py_ssize_t
      seqlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10125,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10126,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10127,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10127,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10128,1
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10128,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10129,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10129,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10130,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10131,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10131,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - unicode
    - start
    - length
    - fill_char
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (unicode_modifiable(unicode))
      pos:
        line_end: 10127
        line_start: 10127
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(unicode))
      pos:
        line_end: 10126
        line_start: 10126
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (fill_char <= PyUnicode_MAX_CHAR_VALUE(unicode))
      pos:
        line_end: 10128
        line_start: 10128
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (start >= 0)
      pos:
        line_end: 10129
        line_start: 10129
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (start + length <= PyUnicode_GET_LENGTH(unicode))
      pos:
        line_end: 10130
        line_start: 10130
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10133
      start: 10121
    functionDepth: 3
    functionLinenumber: 10121
    functionLinenumberEnd: 10133
    functionName: _PyUnicode_FastFill
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - assert
    - unicode_modifiable
    - PyUnicode_MAX_CHAR_VALUE
    - unicode_fill
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: "void _PyUnicode_FastFill(PyObject *unicode, Py_ssize_t start, Py_ssize_t
      length,\n                    Py_UCS4 fill_char)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10141,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10142,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10145,1
    - Dst: unicode_check_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10147,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10151,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10154,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10155,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10161,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10162,1
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - unicode
    - start
    - length
    - fill_char
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10168
      start: 10135
    functionDepth: 4
    functionLinenumber: 10135
    functionLinenumberEnd: 10168
    functionName: PyUnicode_Fill
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_READY
    - unicode_check_modifiable
    - Py_MIN
    - PyUnicode_MAX_CHAR_VALUE
    - PyErr_BadInternalCall
    - _PyUnicode_FastFill
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t PyUnicode_Fill(PyObject *unicode, Py_ssize_t start, Py_ssize_t
      length,\n               Py_UCS4 fill_char)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10187,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10189,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10190,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10191,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10194,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10195,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10196,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10196,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10200,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10201,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10203,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10205,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10205,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10206,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10206,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10207,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - self
    - left
    - right
    - fill
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 10206
        line_start: 10206
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10209
      start: 10170
    functionDepth: 3
    functionLinenumber: 10170
    functionLinenumberEnd: 10209
    functionName: pad
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - assert
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - _PyUnicode_LENGTH
    - unicode_fill
    - PyErr_SetString
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\npad(PyObject *self,\n    Py_ssize_t left,\n    Py_ssize_t
      right,\n    Py_UCS4 fill)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10216,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10219,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10221,1
    - Dst: asciilib_splitlines
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10222,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10223,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10224,1
    - Dst: ucs1lib_splitlines
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10226,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10227,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10228,1
    - Dst: ucs2lib_splitlines
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10231,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10232,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10233,1
    - Dst: ucs4lib_splitlines
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10236,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10237,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10238,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - string
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10244
      start: 10211
    functionDepth: 2
    functionLinenumber: 10211
    functionLinenumberEnd: 10244
    functionName: PyUnicode_Splitlines
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - ucs1lib_splitlines
    - asciilib_splitlines
    - ucs4lib_splitlines
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - ucs2lib_splitlines
    - PyUnicode_1BYTE_DATA
    - ensure_unicode
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Splitlines(PyObject *string, int keepends)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10259,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10263,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10265,1
    - Dst: asciilib_split_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10266,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10267,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10268,1
    - Dst: ucs1lib_split_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10271,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10272,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10273,1
    - Dst: ucs2lib_split_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10276,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10277,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10278,1
    - Dst: ucs4lib_split_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10281,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10282,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10283,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10286,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10289,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10292,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10293,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10294,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10295,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10297,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10300,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10301,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10304,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10305,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10307,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10314,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10314,1
    - Dst: asciilib_split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10315,1
    - Dst: ucs1lib_split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10318,1
    - Dst: ucs2lib_split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10322,1
    - Dst: ucs4lib_split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10326,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10333,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - self
    - substring
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10335
      start: 10246
    functionDepth: 2
    functionLinenumber: 10246
    functionLinenumberEnd: 10335
    functionName: split
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - ucs2lib_split
    - PyUnicode_READY
    - PyUnicode_4BYTE_DATA
    - PyList_New
    - PyUnicode_KIND
    - asciilib_split_whitespace
    - ucs4lib_split
    - Py_INCREF
    - PyList_SET_ITEM
    - PyUnicode_IS_ASCII
    - ucs1lib_split
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_UNREACHABLE
    - PyMem_Free
    - ucs1lib_split_whitespace
    - _PyUnicode_AsKind
    - PyUnicode_2BYTE_DATA
    - ucs2lib_split_whitespace
    - asciilib_split
    - ucs4lib_split_whitespace
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsplit(PyObject *self,\n      PyObject *substring,\n      Py_ssize_t
      maxcount)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10350,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10354,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10356,1
    - Dst: asciilib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10357,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10358,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10359,1
    - Dst: ucs1lib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10362,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10363,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10364,1
    - Dst: ucs2lib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10367,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10368,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10369,1
    - Dst: ucs4lib_rsplit_whitespace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10372,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10373,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10374,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10377,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10380,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10383,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10384,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10385,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10386,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10388,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10391,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10392,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10395,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10396,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10398,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10405,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10405,1
    - Dst: asciilib_rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10406,1
    - Dst: ucs1lib_rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10409,1
    - Dst: ucs2lib_rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10413,1
    - Dst: ucs4lib_rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10417,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10424,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 3
    argNames:
    - self
    - substring
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10426
      start: 10337
    functionDepth: 2
    functionLinenumber: 10337
    functionLinenumberEnd: 10426
    functionName: rsplit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - PyUnicode_READY
    - ucs2lib_rsplit
    - PyUnicode_4BYTE_DATA
    - ucs1lib_rsplit
    - PyList_New
    - PyUnicode_KIND
    - Py_INCREF
    - PyList_SET_ITEM
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_GET_LENGTH
    - Py_UNREACHABLE
    - PyMem_Free
    - ucs1lib_rsplit_whitespace
    - _PyUnicode_AsKind
    - asciilib_rsplit_whitespace
    - ucs4lib_rsplit_whitespace
    - PyUnicode_2BYTE_DATA
    - asciilib_rsplit
    - ucs4lib_rsplit
    - ucs2lib_rsplit_whitespace
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrsplit(PyObject *self,\n       PyObject *substring,\n
      \      Py_ssize_t maxcount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10434,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10434,1
    - Dst: asciilib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10435,1
    - Dst: ucs1lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10437,1
    - Dst: ucs2lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10439,1
    - Dst: ucs4lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10441,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - kind
    - str1
    - buf1
    - len1
    - str2
    - buf2
    - len2
    - offset
    argTypes:
    - int
    - PyObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - void*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10444
      start: 10428
    functionDepth: 1
    functionLinenumber: 10428
    functionLinenumberEnd: 10444
    functionName: anylib_find
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find
    - asciilib_find
    - ucs2lib_find
    - Py_UNREACHABLE
    - ucs4lib_find
    - PyUnicode_IS_ASCII
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t anylib_find(int kind, PyObject *str1, void *buf1, Py_ssize_t
      len1,\n            PyObject *str2, void *buf2, Py_ssize_t len2, Py_ssize_t offset)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10452,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10452,1
    - Dst: asciilib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10453,1
    - Dst: ucs1lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10455,1
    - Dst: ucs2lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10457,1
    - Dst: ucs4lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10459,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 8
    argNames:
    - kind
    - sstr
    - sbuf
    - slen
    - str1
    - buf1
    - len1
    - maxcount
    argTypes:
    - int
    - PyObject*
    - void*
    - Py_ssize_t
    - PyObject*
    - void*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10462
      start: 10446
    functionDepth: 1
    functionLinenumber: 10446
    functionLinenumberEnd: 10462
    functionName: anylib_count
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_count
    - asciilib_count
    - Py_UNREACHABLE
    - ucs4lib_count
    - PyUnicode_IS_ASCII
    - ucs1lib_count
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t anylib_count(int kind, PyObject *sstr, void* sbuf, Py_ssize_t
      slen,\n             PyObject *str1, void *buf1, Py_ssize_t len1, Py_ssize_t
      maxcount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10468,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10469,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10470,1
    - Dst: ucs1lib_replace_1char_inplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10472,1
    - Dst: ucs2lib_replace_1char_inplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10482,1
    - Dst: ucs4lib_replace_1char_inplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - u
    - pos
    - u1
    - u2
    - maxcount
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    - Py_UCS4
    - Py_ssize_t
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 10481
        line_start: 10481
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10487
      start: 10464
    functionDepth: 1
    functionLinenumber: 10464
    functionLinenumberEnd: 10487
    functionName: replace_1char_inplace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - assert
    - ucs2lib_replace_1char_inplace
    - ucs1lib_replace_1char_inplace
    - ucs4lib_replace_1char_inplace
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: "void replace_1char_inplace(PyObject *u, Py_ssize_t pos,\n                      Py_UCS4
      u1, Py_UCS4 u2, Py_ssize_t maxcount)"
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10494,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10495,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10496,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10498,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10499,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10500,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10501,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10502,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10503,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10515,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10516,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10520,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10524,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10535,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10536,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10539,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10540,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10544,1
    - Dst: replace_1char_inplace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10545,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10554,1
    - Dst: anylib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10558,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10563,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10570,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10572,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10575,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10579,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10582,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10582,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10583,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10585,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10587,1
    - Dst: anylib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10593,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10598,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10613,1
    - Dst: anylib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10617,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10622,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10629,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10632,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10634,1
    - Dst: len1 < len2 && len2 - len1 >
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10640,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10641,1
    - Dst: _Py_INCREF_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10647,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10654,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10658,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10661,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10661,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10662,1
    - Dst: anylib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10667,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10674,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10681,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10690,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10697,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10703,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10709,1
    - Dst: unicode_adjust_maxchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10716,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10723,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10725,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10727,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10728,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10728,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10734,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10736,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10738,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10739,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10743,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10745,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10747,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 212
    argCount: 4
    argNames:
    - self
    - str1
    - str2
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 10727
        line_start: 10727
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10660
        line_start: 10660
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == rkind)
      pos:
        line_end: 10581
        line_start: 10581
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 10749
      start: 10489
    functionDepth: 4
    functionLinenumber: 10489
    functionLinenumberEnd: 10749
    functionName: replace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - len1 < len2 && len2 - len1 >
    - PyUnicode_READ
    - PyUnicode_KIND
    - _PyUnicode_FastCopyCharacters
    - Py_MAX
    - unicode_result_unchanged
    - PyUnicode_DATA
    - assert
    - PyMem_FREE
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    - anylib_find
    - _Py_INCREF_UNICODE_EMPTY
    - anylib_count
    - PyMem_Free
    - _PyUnicode_AsKind
    - memcpy
    - replace_1char_inplace
    - PyUnicode_MAX_CHAR_VALUE
    - findchar
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - unicode_adjust_maxchar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nreplace(PyObject *self, PyObject *str1,\n        PyObject
      *str2, Py_ssize_t maxcount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10766,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10769
      start: 10762
    functionDepth: 4
    functionLinenumber: 10762
    functionLinenumberEnd: 10769
    functionName: unicode_title_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_title_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10784,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10786,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10787,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10789
      start: 10780
    functionDepth: 4
    functionLinenumber: 10780
    functionLinenumberEnd: 10789
    functionName: unicode_capitalize_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_READY
    - case_operation
    - unicode_result_unchanged
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_capitalize_impl(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10801,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10803,1
    - Dst: ascii_upper_or_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10804,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10806
      start: 10797
    functionDepth: 4
    functionLinenumber: 10797
    functionLinenumberEnd: 10806
    functionName: unicode_casefold_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_READY
    - ascii_upper_or_lower
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_casefold_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10816,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10817,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10819,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10822,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10824,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10825,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - addr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10831
      start: 10811
    functionDepth: 1
    functionLinenumber: 10811
    functionLinenumberEnd: 10831
    functionName: convert_uc
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int convert_uc(PyObject *obj, void *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10851,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10854,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10855,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10857,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10861
      start: 10845
    functionDepth: 2
    functionLinenumber: 10845
    functionLinenumberEnd: 10861
    functionName: unicode_center_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_READY
    - unicode_result_unchanged
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_center_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10887,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10888,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10889,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10890,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10891,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10892,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10893,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10901,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10910,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10913,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10916,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10924,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10928,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10932,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10935,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10943,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10946,1
    - Dst: wmemcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10951,1
    - Dst: COMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10958,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10963,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10968,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10979
      start: 10865
    functionDepth: 1
    functionLinenumber: 10865
    functionLinenumberEnd: 10979
    functionName: unicode_compare
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wmemcmp
    - Py_MIN
    - Py_UNREACHABLE
    - COMPARE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - memcmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int unicode_compare(PyObject *str1, PyObject *str2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TYPE1
    - ','
    - TYPE2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10882
      start: 10868
    functionDepth: 0
    functionLinenumber: 10868
    functionLinenumberEnd: 10882
    functionName: COMPARE
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPARE(TYPE1, TYPE2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10989,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10990,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10992,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10993,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10995,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10996,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:10998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - str1
    - str2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11000
      start: 10981
    functionDepth: 1
    functionLinenumber: 10981
    functionLinenumberEnd: 11000
    functionName: unicode_compare_eq
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - memcmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int unicode_compare_eq(PyObject *str1, PyObject *str2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11006,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11006,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11007,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11008,1
    - Dst: unicode_compare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11015,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11017,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11022
      start: 11003
    functionDepth: 2
    functionLinenumber: 11003
    functionLinenumberEnd: 11022
    functionName: PyUnicode_Compare
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - PyUnicode_Check
    - unicode_compare
    - PyErr_Format
    - PyUnicode_READY
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Compare(PyObject *left, PyObject *right)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11032,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11032,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11033,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11034,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11042,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11048,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11050,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11051,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11052,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11055,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11056,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11070,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11072,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11077,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 2
    argNames:
    - uni
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(uni))
      pos:
        line_end: 11031
        line_start: 11031
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11083
      start: 11024
    functionDepth: 1
    functionLinenumber: 11024
    functionLinenumberEnd: 11083
    functionName: PyUnicode_CompareWithASCIIString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_IS_READY
    - PyUnicode_READ
    - Py_MIN
    - _PyUnicode_CHECK
    - PyUnicode_KIND
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - strlen
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - assert
    - memcmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyUnicode_CompareWithASCIIString(PyObject* uni, const char* str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11090,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11091,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11093,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11094,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (p)
      pos:
        line_end: 11093
        line_start: 11093
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11101
      start: 11085
    functionDepth: 1
    functionLinenumber: 11085
    functionLinenumberEnd: 11101
    functionName: non_ready_unicode_equal_to_ascii_string
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - strlen
    - _PyUnicode_WSTR_LENGTH
    - _PyUnicode_WSTR
    - assert
    linkageType: ''
    returnType: int
    signature: int non_ready_unicode_equal_to_ascii_string(PyObject *unicode, const
      char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11107,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11107,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11108,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11111,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11114,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11116,1
    - Dst: non_ready_unicode_equal_to_ascii_string
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11117,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11119,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11121,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11122,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11123,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - unicode
    - str
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 11106
        line_start: 11106
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: ((unsigned char)*p < 128)
      pos:
        line_end: 11110
        line_start: 11110
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (str)
      pos:
        line_end: 11107
        line_start: 11107
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11124
      start: 11103
    functionDepth: 2
    functionLinenumber: 11103
    functionLinenumberEnd: 11124
    functionName: _PyUnicode_EqualToASCIIString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - PyUnicode_READY
    - _PyUnicode_CHECK
    - strlen
    - memcmp
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - assert
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - non_ready_unicode_equal_to_ascii_string
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EqualToASCIIString(PyObject *unicode, const char *str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11132,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11132,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11133,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11136,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11140,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11142,1
    - Dst: non_ready_unicode_equal_to_ascii_string
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11143,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11146,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11149,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11152,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11153,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11159,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11162,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11162,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11163,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11164,1
    - Dst: unicode_compare_eq
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts:
    - condition: (_PyUnicode_CHECK(left))
      pos:
        line_end: 11131
        line_start: 11131
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: ((unsigned char)*p < 128)
      pos:
        line_end: 11135
        line_start: 11135
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (right->string)
      pos:
        line_end: 11132
        line_start: 11132
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_HASH(right_uni) != -1)
      pos:
        line_end: 11161
        line_start: 11161
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11168
      start: 11126
    functionDepth: 3
    functionLinenumber: 11126
    functionLinenumberEnd: 11168
    functionName: _PyUnicode_EqualToASCIIId
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyUnicode_READY
    - _PyUnicode_FromId
    - _PyUnicode_CHECK
    - PyUnicode_IS_ASCII
    - unicode_compare_eq
    - _PyUnicode_HASH
    - PyUnicode_CHECK_INTERNED
    - assert
    - PyErr_Clear
    - non_ready_unicode_equal_to_ascii_string
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EqualToASCIIId(PyObject *left, _Py_Identifier *right)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11175,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11175,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11178,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11179,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11194,1
    - Dst: unicode_compare_eq
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11199,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11201,1
    - Dst: unicode_compare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11204,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11205,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - left
    - right
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11207
      start: 11170
    functionDepth: 2
    functionLinenumber: 11170
    functionLinenumberEnd: 11207
    functionName: PyUnicode_RichCompare
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_compare
    - PyUnicode_READY
    - PyErr_BadArgument
    - Py_RETURN_RICHCOMPARE
    - unicode_compare_eq
    - PyUnicode_Check
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_RichCompare(PyObject *left, PyObject *right, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_eq
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11213
      start: 11209
    functionDepth: 1
    functionLinenumber: 11209
    functionLinenumberEnd: 11213
    functionName: _PyUnicode_EQ
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_eq
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EQ(PyObject *aa, PyObject *bb)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11223,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11224,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11226,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11229,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11231,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11234,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11235,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11238,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11239,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11242,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11243,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11245,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11246,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11250,1
    - Dst: ucs1lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11257,1
    - Dst: ucs2lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11260,1
    - Dst: ucs4lib_find
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11263,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11266,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - str
    - substr
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11273
      start: 11215
    functionDepth: 2
    functionLinenumber: 11215
    functionLinenumberEnd: 11273
    functionName: PyUnicode_Contains
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs1lib_find
    - PyUnicode_READY
    - PyUnicode_READ
    - _PyUnicode_AsKind
    - PyUnicode_DATA
    - ucs2lib_find
    - findchar
    - ucs4lib_find
    - Py_UNREACHABLE
    - PyErr_Format
    - Py_TYPE
    - PyMem_Free
    - PyUnicode_Check
    - PyUnicode_KIND
    - ensure_unicode
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyUnicode_Contains(PyObject *str, PyObject *substr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11284,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11287,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11288,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11293,1
    - Dst: PyUnicode_FromObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11298,1
    - Dst: PyUnicode_FromObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11300,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11302,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11303,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11305,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11311,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11312,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11313,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11316,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11319,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11320,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11321,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 11320
        line_start: 11320
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11323
      start: 11277
    functionDepth: 5
    functionLinenumber: 11277
    functionLinenumberEnd: 11323
    functionName: PyUnicode_Concat
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_READY
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - _PyUnicode_CheckConsistency
    - PyUnicode_FromObject
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_SetString
    - ensure_unicode
    - assert
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Concat(PyObject *left, PyObject *right)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11333,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11334,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11339,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11339,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11340,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11341,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11345,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11347,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11352,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11353,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11360,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11361,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11363,1
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11369,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11370,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11371,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11371,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11376,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11376,1
    - Dst: unicode_resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11379,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11383,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11386,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11387,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11388,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11391,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11394,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11396,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11399,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11399,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11403,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 2
    argNames:
    - p_left
    - right
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(*p_left, 1))
      pos:
        line_end: 11398
        line_start: 11398
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11404
      start: 11325
    functionDepth: 4
    functionLinenumber: 11325
    functionLinenumberEnd: 11404
    functionName: PyUnicode_Append
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - Py_CLEAR
    - PyErr_BadInternalCall
    - PyUnicode_KIND
    - PyUnicode_CheckExact
    - _PyUnicode_FastCopyCharacters
    - PyErr_Occurred
    - Py_INCREF
    - unicode_modifiable
    - Py_MAX
    - PyUnicode_IS_ASCII
    - assert
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    - unicode_resize
    - Py_DECREF
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: void
    signature: void PyUnicode_Append(PyObject **p_left, PyObject *right)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Append
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11409,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pleft
    - right
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11411
      start: 11406
    functionDepth: 5
    functionLinenumber: 11406
    functionLinenumberEnd: 11411
    functionName: PyUnicode_AppendAndDel
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - Py_XDECREF
    - PyUnicode_Append
    linkageType: ''
    returnType: void
    signature: void PyUnicode_AppendAndDel(PyObject **pleft, PyObject *right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_parse_args_finds
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11423,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - function_name
    - args
    - substring
    - start
    - end
    argTypes:
    - char*
    - PyObject*
    - PyObject**
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11430
      start: 11418
    functionDepth: 2
    functionLinenumber: 11418
    functionLinenumberEnd: 11430
    functionName: parse_args_finds_unicode
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - stringlib_parse_args_finds
    - ensure_unicode
    linkageType: ''
    returnType: int
    signature: "int parse_args_finds_unicode(const char * function_name, PyObject
      *args,\n                         PyObject **substring,\n                         Py_ssize_t
      *start, Py_ssize_t *end)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11450,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11453,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11454,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11456,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11458,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11459,1
    - Dst: ADJUST_INDICES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11460,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11462,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11464,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11465,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11467,1
    - Dst: ucs1lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11473,1
    - Dst: ucs2lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11479,1
    - Dst: ucs4lib_count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11485,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11491,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11494,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11497,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11500
      start: 11439
    functionDepth: 3
    functionLinenumber: 11439
    functionLinenumberEnd: 11500
    functionName: unicode_count
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - parse_args_finds_unicode
    - _PyUnicode_AsKind
    - ucs2lib_count
    - Py_UNREACHABLE
    - ADJUST_INDICES
    - ucs4lib_count
    - PyMem_Free
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    - ucs1lib_count
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_count(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11522
      start: 11517
    functionDepth: 4
    functionLinenumber: 11517
    functionLinenumberEnd: 11522
    functionName: unicode_encode_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsEncodedString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode_impl(PyObject *self, const char *encoding, const char *errors)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11545,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11549,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11551,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11552,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11555,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11576,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11579,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11579,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11582,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11587,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11592,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11598,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11604,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11604,1
    - Dst: unicode_result
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11605,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11608,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - self
    - tabsize
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (j == PyUnicode_GET_LENGTH(u))
      pos:
        line_end: 11603
        line_start: 11603
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11610
      start: 11534
    functionDepth: 4
    functionLinenumber: 11534
    functionLinenumberEnd: 11610
    functionName: unicode_expandtabs_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - unicode_result_unchanged
    - unicode_fill
    - PyErr_SetString
    - PyUnicode_DATA
    - PyUnicode_KIND
    - unicode_result
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_expandtabs_impl(PyObject *self, int tabsize)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11630,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11633,1
    - Dst: any_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11636,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11642
      start: 11621
    functionDepth: 3
    functionLinenumber: 11621
    functionLinenumberEnd: 11642
    functionName: unicode_find
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - parse_args_finds_unicode
    - PyLong_FromSsize_t
    - PyUnicode_READY
    - any_find_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_find(PyObject *self, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11651,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11652,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11655,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11658,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11659,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11662,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11663,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11664,1
    - Dst: unicode_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11666
      start: 11644
    functionDepth: 5
    functionLinenumber: 11644
    functionLinenumberEnd: 11666
    functionName: unicode_getitem
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - PyErr_BadArgument
    - PyUnicode_DATA
    - unicode_char
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getitem(PyObject *self, Py_ssize_t index)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11676,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11678,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11679,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11680,1
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11683,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11683,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11684,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11684,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_Py_HashSecret_Initialized)
      pos:
        line_end: 11675
        line_start: 11675
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 11687
      start: 11670
    functionDepth: 1
    functionLinenumber: 11670
    functionLinenumberEnd: 11687
    functionName: unicode_hash
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_KIND
    - _Py_HashBytes
    - _PyUnicode_HASH
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t unicode_hash(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11707,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11710,1
    - Dst: any_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11713,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11719,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11724
      start: 11698
    functionDepth: 3
    functionLinenumber: 11698
    functionLinenumberEnd: 11724
    functionName: unicode_index
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - parse_args_finds_unicode
    - PyUnicode_READY
    - PyErr_SetString
    - PyLong_FromSsize_t
    - any_find_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_index(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11739,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11742,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11743
      start: 11735
    functionDepth: 2
    functionLinenumber: 11735
    functionLinenumberEnd: 11743
    functionName: unicode_isascii_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnicode_IS_ASCII
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isascii_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11763,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11765,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11766,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11767,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11771,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11772,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11772,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11780,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11782,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11782,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11784,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11787,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11788
      start: 11754
    functionDepth: 2
    functionLinenumber: 11754
    functionLinenumberEnd: 11788
    functionName: unicode_islower_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_UNICODE_ISLOWER
    - PyUnicode_READ
    - Py_UNICODE_ISTITLE
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_islower_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11808,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11810,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11811,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11812,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11816,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11817,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11817,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11825,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11827,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11827,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11829,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11832,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11833
      start: 11799
    functionDepth: 2
    functionLinenumber: 11799
    functionLinenumberEnd: 11833
    functionName: unicode_isupper_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISLOWER
    - Py_UNICODE_ISTITLE
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isupper_impl(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11853,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11855,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11856,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11857,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11861,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11862,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11862,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11863,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11873,1
    - Dst: Py_UNICODE_ISUPPER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11875,1
    - Dst: Py_UNICODE_ISTITLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11875,1
    - Dst: Py_UNICODE_ISLOWER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11881,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11890,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11891
      start: 11844
    functionDepth: 2
    functionLinenumber: 11844
    functionLinenumberEnd: 11891
    functionName: unicode_istitle_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISLOWER
    - Py_UNICODE_ISTITLE
    - Py_UNICODE_ISUPPER
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_istitle_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11910,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11912,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11913,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11914,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11918,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11919,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11919,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11926,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11931
      start: 11902
    functionDepth: 2
    functionLinenumber: 11902
    functionLinenumberEnd: 11931
    functionName: unicode_isspace_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_UNICODE_ISSPACE
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isspace_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11950,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11952,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11953,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11954,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11958,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11959,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11959,1
    - Dst: Py_UNICODE_ISALPHA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11966,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11970
      start: 11942
    functionDepth: 2
    functionLinenumber: 11942
    functionLinenumberEnd: 11970
    functionName: unicode_isalpha_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    - Py_UNICODE_ISALPHA
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalpha_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11989,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11992,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11993,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11994,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11998,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11999,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:11999,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12007,1
    - Dst: Py_UNICODE_ISALNUM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12012
      start: 11981
    functionDepth: 2
    functionLinenumber: 11981
    functionLinenumberEnd: 12012
    functionName: unicode_isalnum_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISALNUM
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalnum_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12031,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12033,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12034,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12035,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12039,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12040,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12040,1
    - Dst: Py_UNICODE_ISDECIMAL
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12047,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12051
      start: 12023
    functionDepth: 2
    functionLinenumber: 12023
    functionLinenumberEnd: 12051
    functionName: unicode_isdecimal_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    - Py_UNICODE_ISDECIMAL
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdecimal_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12070,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12072,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12073,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12074,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12078,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12079,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12079,1
    - Dst: Py_UNICODE_ISDIGIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12087,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12087,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12091
      start: 12062
    functionDepth: 2
    functionLinenumber: 12062
    functionLinenumberEnd: 12091
    functionName: unicode_isdigit_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISDIGIT
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdigit_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12110,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12112,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12113,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12114,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12118,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12119,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12119,1
    - Dst: Py_UNICODE_ISNUMERIC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12126,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12130
      start: 12102
    functionDepth: 2
    functionLinenumber: 12102
    functionLinenumberEnd: 12130
    functionName: unicode_isnumeric_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISNUMERIC
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isnumeric_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12140,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12141,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12146,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12148,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12149,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12159,1
    - Dst: _PyUnicode_IsXidStart
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12160,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12163,1
    - Dst: _PyUnicode_IsXidContinue
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12164,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12167
      start: 12132
    functionDepth: 2
    functionLinenumber: 12132
    functionLinenumberEnd: 12167
    functionName: PyUnicode_IsIdentifier
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - _PyUnicode_IsXidContinue
    - Py_FatalError
    - _PyUnicode_IsXidStart
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int PyUnicode_IsIdentifier(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12182,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12183
      start: 12178
    functionDepth: 3
    functionLinenumber: 12178
    functionLinenumberEnd: 12183
    functionName: unicode_isidentifier_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyUnicode_IsIdentifier
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isidentifier_impl(PyObject *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12202,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12204,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12205,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12206,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12210,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12211,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12211,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12214,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12219
      start: 12194
    functionDepth: 2
    functionLinenumber: 12194
    functionLinenumberEnd: 12219
    functionName: unicode_isprintable_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISPRINTABLE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isprintable_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12240
      start: 12235
    functionDepth: 4
    functionLinenumber: 12235
    functionLinenumberEnd: 12240
    functionName: unicode_join
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Join
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_join(PyObject *self, PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12245,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12248
      start: 12242
    functionDepth: 1
    functionLinenumber: 12242
    functionLinenumberEnd: 12248
    functionName: unicode_length
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_READY
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t unicode_length(PyObject *self)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12266,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12269,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12270,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12272,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12273
      start: 12262
    functionDepth: 2
    functionLinenumber: 12262
    functionLinenumberEnd: 12273
    functionName: unicode_ljust_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_READY
    - unicode_result_unchanged
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_ljust_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12285,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12287,1
    - Dst: ascii_upper_or_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12288,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12290
      start: 12281
    functionDepth: 4
    functionLinenumber: 12281
    functionLinenumberEnd: 12290
    functionName: unicode_lower_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_READY
    - ascii_upper_or_lower
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_lower_impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12300
      start: 12299
    functionDepth: 0
    functionLinenumber: 12299
    functionLinenumberEnd: 12300
    functionName: STRIPNAME
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRIPNAME(i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12311,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12311,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12314,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12315,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12316,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12317,1
    - Dst: make_bloom_mask
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12318,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12318,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12319,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12325,1
    - Dst: BLOOM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12326,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12328,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12338,1
    - Dst: BLOOM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12339,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12341,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12349,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - self
    - striptype
    - sepobj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12350
      start: 12302
    functionDepth: 2
    functionLinenumber: 12302
    functionLinenumberEnd: 12350
    functionName: _PyUnicode_XStrip
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - make_bloom_mask
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - BLOOM
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12359,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12362,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12363,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12366,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12369,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12373,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12376,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12377,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12378,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12381,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12382,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - self
    - start
    - end
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12387
      start: 12352
    functionDepth: 7
    functionLinenumber: 12352
    functionLinenumberEnd: 12387
    functionName: PyUnicode_Substring
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 14
    functionsReached:
    - PyUnicode_FromKindAndData
    - _PyUnicode_FromASCII
    - PyUnicode_READY
    - _Py_RETURN_UNICODE_EMPTY
    - Py_MIN
    - unicode_result_unchanged
    - PyUnicode_IS_ASCII
    - PyErr_SetString
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Substring(PyObject *self, Py_ssize_t start, Py_ssize_t end)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12394,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12397,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12399,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12400,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12425,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12426,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12431,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12432,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12442,1
    - Dst: Py_UNICODE_ISSPACE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12443,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12451,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 2
    argNames:
    - self
    - striptype
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12452
      start: 12389
    functionDepth: 8
    functionLinenumber: 12389
    functionLinenumberEnd: 12452
    functionName: do_strip
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_READ
    - Py_UNICODE_ISSPACE
    - PyUnicode_Substring
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_strip(PyObject *self, int striptype)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12459,1
    - Dst: _PyUnicode_XStrip
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12460,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12462,1
    - Dst: STRIPNAME
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12464,1
    - Dst: do_strip
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - self
    - striptype
    - sep
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12470
      start: 12455
    functionDepth: 3
    functionLinenumber: 12455
    functionLinenumberEnd: 12470
    functionName: do_argstrip
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 3
    functionsReached:
    - do_strip
    - STRIPNAME
    - PyErr_Format
    - PyUnicode_Check
    - _PyUnicode_XStrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_argstrip(PyObject *self, int striptype, PyObject *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12489
      start: 12484
    functionDepth: 0
    functionLinenumber: 12484
    functionLinenumberEnd: 12489
    functionName: unicode_strip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_strip_impl(PyObject *self, PyObject *chars)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12508
      start: 12503
    functionDepth: 0
    functionLinenumber: 12503
    functionLinenumberEnd: 12508
    functionName: unicode_lstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_lstrip_impl(PyObject *self, PyObject *chars)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_argstrip
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - chars
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12527
      start: 12522
    functionDepth: 0
    functionLinenumber: 12522
    functionLinenumberEnd: 12527
    functionName: unicode_rstrip_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - do_argstrip
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rstrip_impl(PyObject *self, PyObject *chars)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12537,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12541,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12543,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12546,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12547,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12551,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12553,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12553,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12556,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12556,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12556,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12558,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12559,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12560,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12560,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12562,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12563,1
    - Dst: PyUnicode_2BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12566,1
    - Dst: PyUnicode_4BYTE_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12570,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12571,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12578,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12579,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12580,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12581,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12581,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12582,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12585,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12590,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12590,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 12589
        line_start: 12589
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_KIND(u) == PyUnicode_KIND(str))
      pos:
        line_end: 12555
        line_start: 12555
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 12570
        line_start: 12570
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12592
      start: 12530
    functionDepth: 3
    functionLinenumber: 12530
    functionLinenumberEnd: 12592
    functionName: unicode_repeat
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_READ
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_KIND
    - PyUnicode_2BYTE_DATA
    - PyUnicode_4BYTE_DATA
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - memset
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_repeat(PyObject *str, Py_ssize_t len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12600,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12600,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12601,1
    - Dst: replace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 4
    argNames:
    - str
    - substr
    - replstr
    - maxcount
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12604
      start: 12594
    functionDepth: 5
    functionLinenumber: 12594
    functionLinenumberEnd: 12604
    functionName: PyUnicode_Replace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ensure_unicode
    - replace
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyUnicode_Replace(PyObject *str,\n                  PyObject
      *substr,\n                  PyObject *replstr,\n                  Py_ssize_t
      maxcount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12627,1
    - Dst: replace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12629,1
    - Dst: count::count
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - old
    - new
    - count
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12630
      start: 12622
    functionDepth: 5
    functionLinenumber: 12622
    functionLinenumberEnd: 12630
    functionName: unicode_replace_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - count::count
    - PyUnicode_READY
    - replace
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_replace_impl(PyObject *self, PyObject *old, PyObject
      *new,\n                     Py_ssize_t count)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12642,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12645,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12646,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12653,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12655,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12669,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12679,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12699,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12702,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12703,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12705,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12706,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12708,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12714,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12718,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12719,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12725,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12726,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12729,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12730,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12733,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12734,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12739,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12740,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12741,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12742,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12747,1
    - Dst: Py_UNICODE_ISPRINTABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12755,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12756,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12759,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12760,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12761,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12765,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12766,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12767,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12768,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12769,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12773,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12774,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12775,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12776,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12777,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12778,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12779,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12780,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12781,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12786,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12792,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12792,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 120
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(repr, 1))
      pos:
        line_end: 12791
        line_start: 12791
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 12794
      start: 12632
    functionDepth: 3
    functionLinenumber: 12632
    functionLinenumberEnd: 12794
    functionName: unicode_repr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - PyUnicode_WRITE
    - Py_UNICODE_ISPRINTABLE
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_repr(PyObject *unicode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12814,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12817,1
    - Dst: any_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12820,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12826
      start: 12805
    functionDepth: 3
    functionLinenumber: 12805
    functionLinenumberEnd: 12826
    functionName: unicode_rfind
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - parse_args_finds_unicode
    - PyLong_FromSsize_t
    - PyUnicode_READY
    - any_find_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rfind(PyObject *self, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parse_args_finds_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12846,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12849,1
    - Dst: any_find_slice
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12852,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12858,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12863
      start: 12837
    functionDepth: 3
    functionLinenumber: 12837
    functionLinenumberEnd: 12863
    functionName: unicode_rindex
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - parse_args_finds_unicode
    - PyUnicode_READY
    - PyErr_SetString
    - PyLong_FromSsize_t
    - any_find_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rindex(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12881,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12884,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12885,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12887,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12888
      start: 12877
    functionDepth: 2
    functionLinenumber: 12877
    functionLinenumberEnd: 12888
    functionName: unicode_rjust_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyUnicode_READY
    - unicode_result_unchanged
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rjust_impl(PyObject *self, Py_ssize_t width, Py_UCS4 fillchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12893,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12893,1
    - Dst: split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12897
      start: 12890
    functionDepth: 3
    functionLinenumber: 12890
    functionLinenumberEnd: 12897
    functionName: PyUnicode_Split
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - ensure_unicode
    - split
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Split(PyObject *s, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12918,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12919,1
    - Dst: split
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12920,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12922,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12926
      start: 12913
    functionDepth: 3
    functionLinenumber: 12913
    functionLinenumberEnd: 12926
    functionName: unicode_split_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_TYPE
    - PyErr_Format
    - split
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_split_impl(PyObject *self, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12936,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12936,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12939,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12940,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12941,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12942,1
    - Dst: _Py_INCREF_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12944,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12948,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12949,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12953,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12954,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12956,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12963,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12963,1
    - Dst: asciilib_partition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12964,1
    - Dst: ucs1lib_partition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12966,1
    - Dst: ucs2lib_partition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12969,1
    - Dst: ucs4lib_partition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12972,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12975,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12979,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - str_obj
    - sep_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12982
      start: 12928
    functionDepth: 2
    functionLinenumber: 12928
    functionLinenumberEnd: 12982
    functionName: PyUnicode_Partition
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ucs2lib_partition
    - Py_DECREF
    - _PyUnicode_AsKind
    - _Py_INCREF_UNICODE_EMPTY
    - PyUnicode_DATA
    - ucs4lib_partition
    - PyTuple_Pack
    - ucs1lib_partition
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - asciilib_partition
    - PyMem_Free
    - ensure_unicode
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Partition(PyObject *str_obj, PyObject *sep_obj)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12993,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12993,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12996,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12997,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12998,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:12999,1
    - Dst: _Py_INCREF_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13001,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13006,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13010,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13011,1
    - Dst: _PyUnicode_AsKind
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13013,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13020,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13020,1
    - Dst: asciilib_rpartition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13021,1
    - Dst: ucs1lib_rpartition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13023,1
    - Dst: ucs2lib_rpartition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13026,1
    - Dst: ucs4lib_rpartition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13029,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13032,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13036,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - str_obj
    - sep_obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13039
      start: 12985
    functionDepth: 2
    functionLinenumber: 12985
    functionLinenumberEnd: 13039
    functionName: PyUnicode_RPartition
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - asciilib_rpartition
    - ucs2lib_rpartition
    - Py_DECREF
    - ucs1lib_rpartition
    - _PyUnicode_AsKind
    - _Py_INCREF_UNICODE_EMPTY
    - PyUnicode_DATA
    - PyTuple_Pack
    - Py_UNREACHABLE
    - PyUnicode_IS_ASCII
    - PyMem_Free
    - ensure_unicode
    - PyUnicode_KIND
    - ucs4lib_rpartition
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_RPartition(PyObject *str_obj, PyObject *sep_obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Partition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13062
      start: 13057
    functionDepth: 3
    functionLinenumber: 13057
    functionLinenumberEnd: 13062
    functionName: unicode_partition
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Partition
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_partition(PyObject *self, PyObject *sep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_RPartition
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - sep
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13082
      start: 13077
    functionDepth: 3
    functionLinenumber: 13077
    functionLinenumberEnd: 13082
    functionName: unicode_rpartition
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_RPartition
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rpartition(PyObject *self, PyObject *sep)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13087,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13087,1
    - Dst: rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13090,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - s
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13091
      start: 13084
    functionDepth: 3
    functionLinenumber: 13084
    functionLinenumberEnd: 13091
    functionName: PyUnicode_RSplit
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - ensure_unicode
    - rsplit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_RSplit(PyObject *s, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13106,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13107,1
    - Dst: rsplit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13108,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13110,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - sep
    - maxsplit
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13114
      start: 13101
    functionDepth: 3
    functionLinenumber: 13101
    functionLinenumberEnd: 13114
    functionName: unicode_rsplit_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_TYPE
    - PyErr_Format
    - rsplit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rsplit_impl(PyObject *self, PyObject *sep, Py_ssize_t maxsplit)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Splitlines
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - keepends
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13132
      start: 13127
    functionDepth: 3
    functionLinenumber: 13127
    functionLinenumberEnd: 13132
    functionName: unicode_splitlines_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Splitlines
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_splitlines_impl(PyObject *self, int keepends)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13138
      start: 13134
    functionDepth: 2
    functionLinenumber: 13134
    functionLinenumberEnd: 13138
    functionName: unicode_str
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - unicode_result_unchanged
    linkageType: ''
    returnType: PyObject
    signature: PyObject *unicode_str(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13150,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13153
      start: 13146
    functionDepth: 4
    functionLinenumber: 13146
    functionLinenumberEnd: 13153
    functionName: unicode_swapcase_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_swapcase_impl(PyObject *self)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New::PyDict_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13187,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13195,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13196,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13200,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13200,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13201,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13206,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13207,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13208,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13209,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13210,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13211,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13211,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13214,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13216,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13219,1
    - Dst: key::key
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13221,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13227,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13228,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13229,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13230,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13230,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13233,1
    - Dst: key::key
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13234,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13244,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13245,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13250,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13251,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13254,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13255,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13259,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13260,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13261,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13261,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13264,1
    - Dst: newkey::newkey
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13264,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13265,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13268,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13270,1
    - Dst: key::key
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13270,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13273,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - x
    - y
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13283
      start: 13179
    functionDepth: 5
    functionLinenumber: 13179
    functionLinenumberEnd: 13283
    functionName: unicode_maketrans_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - newkey::newkey
    - PyUnicode_READ
    - Py_DECREF
    - PyDict_Next
    - PyUnicode_DATA
    - key::key
    - PyDict_CheckExact
    - PyDict_SetItem
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyDict_New::PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_maketrans_impl(PyObject *x, PyObject *y, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TranslateCharmap
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - table
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13305
      start: 13300
    functionDepth: 8
    functionLinenumber: 13300
    functionLinenumberEnd: 13305
    functionName: unicode_translate
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_TranslateCharmap
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_translate(PyObject *self, PyObject *table)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13317,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13319,1
    - Dst: ascii_upper_or_lower
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13320,1
    - Dst: case_operation
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13322
      start: 13313
    functionDepth: 4
    functionLinenumber: 13313
    functionLinenumberEnd: 13322
    functionName: unicode_upper_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_ASCII
    - PyUnicode_READY
    - ascii_upper_or_lower
    - case_operation
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_upper_impl(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13345,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13348,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13349,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13351,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13353,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13358,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13359,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13360,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13364,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13365,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13368,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - width
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(u, 1))
      pos:
        line_end: 13367
        line_start: 13367
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13370
      start: 13335
    functionDepth: 2
    functionLinenumber: 13335
    functionLinenumberEnd: 13370
    functionName: unicode_zfill_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_READY
    - PyUnicode_READ
    - pad
    - PyUnicode_WRITE
    - unicode_result_unchanged
    - _PyUnicode_CheckConsistency
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_zfill_impl(PyObject *self, Py_ssize_t width)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13377
      start: 13373
    functionDepth: 0
    functionLinenumber: 13373
    functionLinenumberEnd: 13377
    functionName: unicode__decimal2ascii
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_TransformDecimalAndSpaceToASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode__decimal2ascii(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_parse_args_finds
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13398,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13400,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13402,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13403,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13404,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13405,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13408,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13411,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13421,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13422,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13424,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13427,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13431
      start: 13388
    functionDepth: 2
    functionLinenumber: 13388
    functionLinenumberEnd: 13431
    functionName: unicode_startswith
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - stringlib_parse_args_finds
    - PyTuple_Check
    - tailmatch
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_startswith(PyObject *self,\n                   PyObject
      *args)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: stringlib_parse_args_finds
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13452,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13454,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13456,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13457,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13458,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13459,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13462,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13465,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13474,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13475,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13477,1
    - Dst: tailmatch
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13480,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13484
      start: 13442
    functionDepth: 2
    functionLinenumber: 13442
    functionLinenumberEnd: 13484
    functionName: unicode_endswith
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - stringlib_parse_args_finds
    - PyTuple_Check
    - tailmatch
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_endswith(PyObject *self,\n                 PyObject
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13489,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13490,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13493,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13494,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind <= PyUnicode_1BYTE_KIND)
      pos:
        line_end: 13499
        line_start: 13499
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13507
      start: 13486
    functionDepth: 1
    functionLinenumber: 13486
    functionLinenumberEnd: 13507
    functionName: _PyUnicodeWriter_Update
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Update(_PyUnicodeWriter *writer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13512,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (writer->kind <= PyUnicode_1BYTE_KIND)
      pos:
        line_end: 13519
        line_start: 13519
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13521
      start: 13509
    functionDepth: 1
    functionLinenumber: 13509
    functionLinenumberEnd: 13521
    functionName: _PyUnicodeWriter_Init
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Init(_PyUnicodeWriter *writer)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13530,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13533,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13537,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13542,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13545,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13554,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13569,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13570,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13573,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13575,1
    - Dst: resize_compact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13579,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13586,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13587,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13590,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13592,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13594,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - writer
    - length
    - maxchar
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t
    - Py_UCS4
    assertStmts:
    - condition: (maxchar <= MAX_UNICODE)
      pos:
        line_end: 13529
        line_start: 13529
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (!writer->readonly)
      pos:
        line_end: 13544
        line_start: 13544
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: "((maxchar > writer->maxchar && length >= 0)\n           || length
        > 0)"
      pos:
        line_end: 13533
        line_start: 13532
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (!writer->readonly)
      pos:
        line_end: 13585
        line_start: 13585
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13598
      start: 13523
    functionDepth: 3
    functionLinenumber: 13523
    functionLinenumberEnd: 13598
    functionName: _PyUnicodeWriter_PrepareInternal
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - Py_DECREF
    - resize_compact
    - PyErr_NoMemory
    - Py_MAX
    - _PyUnicodeWriter_Update
    - assert
    - Py_SETREF
    - PyUnicode_New
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer,\n                                 Py_ssize_t
      length, Py_UCS4 maxchar)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13607,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13615,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - kind
    argTypes:
    - _PyUnicodeWriter*
    - enum PyUnicode_Kind
    assertStmts:
    - condition: (writer->kind < kind)
      pos:
        line_end: 13606
        line_start: 13606
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13619
      start: 13600
    functionDepth: 4
    functionLinenumber: 13600
    functionLinenumberEnd: 13619
    functionName: _PyUnicodeWriter_PrepareKindInternal
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - assert
    - _PyUnicodeWriter_PrepareInternal
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer,\n
      \                                    enum PyUnicode_Kind kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13624,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13625,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - _PyUnicodeWriter*
    - Py_UCS4
    assertStmts:
    - condition: (ch <= MAX_UNICODE)
      pos:
        line_end: 13623
        line_start: 13623
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13630
      start: 13621
    functionDepth: 1
    functionLinenumber: 13621
    functionLinenumberEnd: 13630
    functionName: _PyUnicodeWriter_WriteCharInline
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 8
    functionsReached:
    - assert
    - _PyUnicodeWriter_Prepare
    - PyUnicode_WRITE
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteCharInline(_PyUnicodeWriter *writer, Py_UCS4
      ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - ch
    argTypes:
    - _PyUnicodeWriter*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13636
      start: 13632
    functionDepth: 2
    functionLinenumber: 13632
    functionLinenumberEnd: 13636
    functionName: _PyUnicodeWriter_WriteChar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached:
    - _PyUnicodeWriter_WriteCharInline
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteChar(_PyUnicodeWriter *writer, Py_UCS4 ch)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13644,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13646,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13649,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13652,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13652,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13654,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13656,1
    - Dst: _PyUnicodeWriter_PrepareInternal
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13660,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13663,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - str
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 13651
        line_start: 13651
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13667
      start: 13638
    functionDepth: 4
    functionLinenumber: 13638
    functionLinenumberEnd: 13667
    functionName: _PyUnicodeWriter_WriteStr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 9
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_READY
    - Py_INCREF
    - _PyUnicodeWriter_PrepareInternal
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicodeWriter_Update
    - _PyUnicode_CheckConsistency
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int _PyUnicodeWriter_WriteStr(_PyUnicodeWriter *writer, PyObject *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13676,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13679,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13680,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13680,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13681,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13686,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13687,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13689,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13690,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13695,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - writer
    - str
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (end <= PyUnicode_GET_LENGTH(str))
      pos:
        line_end: 13679
        line_start: 13679
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (start <= end)
      pos:
        line_end: 13680
        line_start: 13680
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (0 <= start)
      pos:
        line_end: 13678
        line_start: 13678
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13702
      start: 13669
    functionDepth: 5
    functionLinenumber: 13669
    functionLinenumberEnd: 13702
    functionName: _PyUnicodeWriter_WriteSubstring
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_READY
    - PyUnicode_MAX_CHAR_VALUE
    - _PyUnicodeWriter_Prepare
    - _PyUnicode_FindMaxChar
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteSubstring(_PyUnicodeWriter *writer, PyObject
      *str,\n                                Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13709,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13711,1
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13711,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13716,1
    - Dst: _PyUnicodeWriter_Update
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13722,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13727,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13737,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13742,1
    - Dst: _PyUnicode_CONVERT_BYTES
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13750,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13757,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - writer
    - ascii
    - len
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts:
    - condition: (ucs1lib_find_max_char((const Py_UCS1*)ascii, (const Py_UCS1*)ascii
        + len) < 128)
      pos:
        line_end: 13710
        line_start: 13710
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13762
      start: 13704
    functionDepth: 5
    functionLinenumber: 13704
    functionLinenumberEnd: 13762
    functionName: _PyUnicodeWriter_WriteASCIIString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 5
    functionsReached:
    - _PyUnicode_FromASCII
    - memcpy
    - _PyUnicode_CONVERT_BYTES
    - _PyUnicodeWriter_Update
    - Py_UNREACHABLE
    - strlen
    - _PyUnicodeWriter_Prepare
    - assert
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteASCIIString(_PyUnicodeWriter *writer,\n
      \                                 const char *ascii, Py_ssize_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ucs1lib_find_max_char
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13770,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13771,1
    - Dst: unicode_write_cstr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - str
    - len
    argTypes:
    - _PyUnicodeWriter*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13776
      start: 13764
    functionDepth: 2
    functionLinenumber: 13764
    functionLinenumberEnd: 13776
    functionName: _PyUnicodeWriter_WriteLatin1String
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_Prepare
    - unicode_write_cstr
    - ucs1lib_find_max_char
    linkageType: ''
    returnType: int
    signature: "int _PyUnicodeWriter_WriteLatin1String(_PyUnicodeWriter *writer,\n
      \                                  const char *str, Py_ssize_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13784,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13785,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13792,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13792,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13796,1
    - Dst: resize_compact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13798,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13800,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13806,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13806,1
    - Dst: unicode_result_ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyUnicode_GET_LENGTH(str) == writer->pos)
      pos:
        line_end: 13791
        line_start: 13791
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(str, 1))
      pos:
        line_end: 13805
        line_start: 13805
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 13808
      start: 13778
    functionDepth: 3
    functionLinenumber: 13778
    functionLinenumberEnd: 13808
    functionName: _PyUnicodeWriter_Finish
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - Py_CLEAR
    - _Py_RETURN_UNICODE_EMPTY
    - Py_DECREF
    - resize_compact
    - _PyUnicode_CheckConsistency
    - unicode_result_ready
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - writer
    argTypes:
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13814
      start: 13810
    functionDepth: 1
    functionLinenumber: 13810
    functionLinenumberEnd: 13814
    functionName: _PyUnicodeWriter_Dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 17
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13846,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13848,1
    - Dst: _PyUnicode_FormatAdvancedWriter
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13849,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13851,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13853,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13857
      start: 13839
    functionDepth: 4
    functionLinenumber: 13839
    functionLinenumberEnd: 13857
    functionName: unicode___format___impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - _PyUnicode_FormatAdvancedWriter
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_COMPACT_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13873,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13874,1
    - Dst: PyUnicode_IS_COMPACT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13875,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13877,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13877,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13882,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13883,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13884,1
    - Dst: _PyUnicode_HAS_WSTR_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13888,1
    - Dst: PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13889,1
    - Dst: _PyUnicode_HAS_UTF8_MEMORY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13890,1
    - Dst: PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13891,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13893,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13894
      start: 13865
    functionDepth: 1
    functionLinenumber: 13865
    functionLinenumberEnd: 13894
    functionName: unicode_sizeof_impl
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_HAS_UTF8_MEMORY
    - PyUnicode_IS_COMPACT_ASCII
    - PyUnicode_UTF8_LENGTH
    - PyUnicode_IS_COMPACT
    - PyLong_FromSsize_t
    - PyUnicode_KIND
    - _PyUnicode_DATA_ANY
    - _PyUnicode_HAS_WSTR_MEMORY
    - PyUnicode_GET_LENGTH
    - PyUnicode_WSTR_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_sizeof_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13899,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13903
      start: 13896
    functionDepth: 4
    functionLinenumber: 13896
    functionLinenumberEnd: 13903
    functionName: unicode_getnewargs
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyUnicode_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_getnewargs(PyObject *v, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13965,1
    - Dst: PyUnicode_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13968
      start: 13962
    functionDepth: 1
    functionLinenumber: 13962
    functionLinenumberEnd: 13968
    functionName: unicode_mod
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_mod(PyObject *v, PyObject *w)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13991,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13994,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13995,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13996,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:13999,1
    - Dst: unicode_getitem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14000,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14001,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14009,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14012,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14012,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14016,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14018,1
    - Dst: unicode_result_unchanged
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14019,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14021,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14025,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14026,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14027,1
    - Dst: kind_maxchar_limit
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14028,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14031,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14041,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14044,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14045,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14048,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14049,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14051,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14051,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14054,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 14050
        line_start: 14050
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14057
      start: 13988
    functionDepth: 8
    functionLinenumber: 13988
    functionLinenumberEnd: 14057
    functionName: unicode_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyUnicode_READY
    - _Py_RETURN_UNICODE_EMPTY
    - PyUnicode_READ
    - unicode_getitem
    - PySlice_Unpack
    - PyUnicode_KIND
    - PyErr_Occurred
    - PySlice_Check
    - PySlice_AdjustIndices
    - PyUnicode_Substring
    - unicode_result_unchanged
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    - PyUnicode_WRITE
    - kind_maxchar_limit
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subscript(PyObject* self, PyObject* item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14100,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unicode_formatter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14105
      start: 14090
    functionDepth: 1
    functionLinenumber: 14090
    functionLinenumberEnd: 14105
    functionName: unicode_format_getnextarg
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GetItem
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_format_getnextarg(struct unicode_formatter_t *ctx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14124,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14125,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14136,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14139,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14141,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14142,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14147,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - v
    - arg
    - p_output
    - writer
    argTypes:
    - PyObject*
    - struct unicode_format_arg_t*
    - PyObject**
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14150
      start: 14113
    functionDepth: 6
    functionLinenumber: 14113
    functionLinenumberEnd: 14150
    functionName: formatfloat
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyFloat_AsDouble
    - _PyUnicode_FromASCII
    - PyErr_Occurred
    - _PyUnicodeWriter_WriteASCIIString
    - PyOS_double_to_string
    - strlen
    - PyMem_Free
    linkageType: ''
    returnType: int
    signature: "int formatfloat(PyObject *v, struct unicode_format_arg_t *arg,\n            PyObject
      **p_output,\n            _PyUnicodeWriter *writer)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14184,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14189,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14189,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14193,1
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14199,1
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14203,1
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14208,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14214,1
    - Dst: unicode_modifiable
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14214,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14215,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14215,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14216,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14216,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14220,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14221,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14224,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14228,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14236,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14242,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14249,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14250,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14255,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14259,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14270,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14272,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14284,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14285,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14288,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14291,1
    - Dst: PyUnicode_Resize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14292,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14293,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 4
    argNames:
    - val
    - alt
    - prec
    - type
    argTypes:
    - PyObject*
    - int
    - int
    - int
    assertStmts:
    - condition: (PyLong_Check(val))
      pos:
        line_end: 14188
        line_start: 14188
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (numdigits > 0)
      pos:
        line_end: 14249
        line_start: 14249
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_READY(result))
      pos:
        line_end: 14214
        line_start: 14214
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (numdigits > 0)
      pos:
        line_end: 14235
        line_start: 14235
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (buf[sign] == '0')
      pos:
        line_end: 14240
        line_start: 14240
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (unicode_modifiable(result))
      pos:
        line_end: 14213
        line_start: 14213
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_IS_ASCII(result))
      pos:
        line_end: 14215
        line_start: 14215
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: "(buf[sign+1] == 'x' || buf[sign+1] == 'X' ||\n               buf[sign+1]
        == 'o')"
      pos:
        line_end: 14242
        line_start: 14241
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (len == numnondigits + numdigits)
      pos:
        line_end: 14248
        line_start: 14248
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14296
      start: 14170
    functionDepth: 5
    functionLinenumber: 14170
    functionLinenumberEnd: 14296
    functionName: _PyUnicode_FormatLong
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_FromASCII
    - Py_CLEAR
    - PyUnicode_Resize
    - PyErr_BadInternalCall
    - PyBytes_FromStringAndSize
    - PyNumber_ToBase
    - unicode_modifiable
    - Py_REFCNT
    - PyUnicode_IS_ASCII
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - PyLong_Check
    - PyUnicode_IS_READY
    - Py_DECREF
    - Py_UNREACHABLE
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyUnicode_FormatLong(PyObject *val, int alt, int prec, int type)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14311,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14315,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14317,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14319,1
    - Dst: PyNumber_Long
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14325,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14327,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14332,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14332,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14336,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14339,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14351,1
    - Dst: _PyLong_FormatWriter
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14367,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14370,1
    - Dst: _PyUnicode_FormatLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14375,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14387,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14390,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14393,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14396,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 4
    argNames:
    - v
    - arg
    - p_output
    - writer
    argTypes:
    - PyObject*
    - struct unicode_format_arg_t*
    - PyObject**
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyLong_Check(iobj))
      pos:
        line_end: 14331
        line_start: 14331
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14400
      start: 14302
    functionDepth: 6
    functionLinenumber: 14302
    functionLinenumberEnd: 14400
    functionName: mainformatlong
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyNumber_Check
    - Py_DECREF
    - Py_INCREF
    - PyNumber_Long
    - _PyUnicode_FormatLong
    - _PyLong_FormatWriter
    - Py_UNREACHABLE
    - PyNumber_Index
    - PyLong_CheckExact
    - PyErr_Format
    - PyErr_ExceptionMatches
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: int
    signature: "int mainformatlong(PyObject *v,\n               struct unicode_format_arg_t
      *arg,\n               PyObject **p_output,\n               _PyUnicodeWriter
      *writer)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14406,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14407,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14408,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14416,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14417,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14421,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14422,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14425,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14431,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14440,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14443
      start: 14402
    functionDepth: 2
    functionLinenumber: 14402
    functionLinenumberEnd: 14443
    functionName: formatchar
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyNumber_Index
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_UCS4
    signature: Py_UCS4 formatchar(PyObject *v)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14468,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14477,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14486,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14490,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14496,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14499,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14509,1
    - Dst: unicode_format_getnextarg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14523,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14527,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14531,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14532,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14539,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14546,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14554,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14566,1
    - Dst: unicode_format_getnextarg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14570,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14574,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14579,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14584,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14591,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14596,1
    - Dst: FORMAT_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14609,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14615,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 145
    argCount: 2
    argNames:
    - ctx
    - arg
    argTypes:
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14622
      start: 14451
    functionDepth: 8
    functionLinenumber: 14451
    functionLinenumberEnd: 14622
    functionName: unicode_format_arg_parse
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - unicode_format_getnextarg
    - PyUnicode_Substring
    - FORMAT_READ
    - PyObject_GetItem
    - PyLong_AsSsize_t
    - PyErr_SetString
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: "int unicode_format_arg_parse(struct unicode_formatter_t *ctx,\n                         struct
      unicode_format_arg_t *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14457
      start: 14455
    functionDepth: 0
    functionLinenumber: 14455
    functionLinenumberEnd: 14457
    functionName: FORMAT_READ
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORMAT_READ(ctx)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: unicode_format_getnextarg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14649,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14658,1
    - Dst: _PyLong_FormatWriter
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14660,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14665,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14667,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14671,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14673,1
    - Dst: PyObject_ASCII
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14675,1
    - Dst: mainformatlong
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14686,1
    - Dst: formatfloat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14703,1
    - Dst: formatfloat
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14709,1
    - Dst: formatchar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14715,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14720,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14724,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14729,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14739,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14739,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 3
    argNames:
    - ctx
    - arg
    - p_str
    argTypes:
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    - PyObject**
    assertStmts:
    - condition: (PyUnicode_Check(*p_str))
      pos:
        line_end: 14738
        line_start: 14738
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14741
      start: 14638
    functionDepth: 7
    functionLinenumber: 14638
    functionLinenumberEnd: 14741
    functionName: unicode_format_arg_format
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - mainformatlong
    - assert
    - Py_INCREF
    - unicode_format_getnextarg
    - _PyLong_FormatWriter
    - PyObject_ASCII
    - PyObject_Str
    - PyLong_CheckExact
    - formatfloat
    - PyErr_Format
    - PyUnicode_FromOrdinal
    - PyUnicode_Check
    - _PyUnicodeWriter_WriteCharInline
    - PyObject_Repr
    - PyUnicode_CheckExact
    - formatchar
    linkageType: ''
    returnType: int
    signature: "int unicode_format_arg_format(struct unicode_formatter_t *ctx,\n                          struct
      unicode_format_arg_t *arg,\n                          PyObject **p_str)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14763,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14766,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14772,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14785,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14786,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14790,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14811,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14815,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14818,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14819,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14820,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14826,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14832,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14843,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14843,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14844,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14844,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14846,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14847,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14860,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14869,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14873,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14873,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14874,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14874,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14875,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14876,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14884,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14892,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 104
    argCount: 3
    argNames:
    - ctx
    - arg
    - str
    argTypes:
    - struct unicode_formatter_t*
    - struct unicode_format_arg_t*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_READ(kind, pbuf, pindex + 1) == arg->ch)
      pos:
        line_end: 14843
        line_start: 14843
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex) == '0')
      pos:
        line_end: 14872
        line_start: 14872
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex) == '0')
      pos:
        line_end: 14842
        line_start: 14842
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyUnicode_READ(kind, pbuf, pindex+1) == arg->ch)
      pos:
        line_end: 14873
        line_start: 14873
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 14896
      start: 14743
    functionDepth: 5
    functionLinenumber: 14743
    functionLinenumberEnd: 14896
    functionName: unicode_format_arg_output
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_READY
    - PyUnicode_READ
    - assert
    - PyUnicode_WRITE
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - _PyUnicodeWriter_Prepare
    - unicode_fill
    - PyUnicode_DATA
    - PyUnicode_KIND
    - _PyUnicode_FindMaxChar
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int unicode_format_arg_output(struct unicode_formatter_t *ctx,\n                          struct
      unicode_format_arg_t *arg,\n                          PyObject *str)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14907,1
    - Dst: _PyUnicodeWriter_WriteCharInline
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14911,1
    - Dst: unicode_format_arg_parse
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14921,1
    - Dst: unicode_format_arg_format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14925,1
    - Dst: unicode_format_arg_output
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14930,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14931,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14937,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct unicode_formatter_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14942
      start: 14900
    functionDepth: 9
    functionLinenumber: 14900
    functionLinenumberEnd: 14942
    functionName: unicode_format_arg
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_DECREF
    - unicode_format_arg_parse
    - PyErr_SetString
    - _PyUnicodeWriter_WriteCharInline
    - unicode_format_arg_format
    - unicode_format_arg_output
    linkageType: ''
    returnType: int
    signature: int unicode_format_arg(struct unicode_formatter_t *ctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14950,1
    - Dst: ensure_unicode
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14954,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14958,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14959,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14960,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14963,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14967,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14968,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14976,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14976,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14976,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14983,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14988,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:14997,1
    - Dst: unicode_format_arg
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15003,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15009,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15015,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15017,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15020,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15022,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 2
    argNames:
    - format
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15025
      start: 14944
    functionDepth: 10
    functionLinenumber: 14944
    functionLinenumberEnd: 15025
    functionName: PyUnicode_Format
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_WriteSubstring
    - PyMapping_Check
    - PyUnicode_READ
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - unicode_format_arg
    - PyUnicode_DATA
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyUnicode_Check
    - _PyUnicodeWriter_Finish
    - PyTuple_Size
    - PyErr_SetString
    - ensure_unicode
    - PyUnicode_KIND
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_Format(PyObject *format, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unicode_subtype_new
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15039,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15040,1
    - Dst: _Py_RETURN_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15044,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15046,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15049
      start: 15030
    functionDepth: 5
    functionLinenumber: 15030
    functionLinenumberEnd: 15049
    functionName: unicode_new
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_RETURN_UNICODE_EMPTY
    - PyObject_Str
    - unicode_subtype_new
    - PyArg_ParseTupleAndKeywords
    - PyUnicode_FromEncodedObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15060,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15060,1
    - Dst: unicode_new
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15062,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15065,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15065,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15067,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15071,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15073,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15076,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15077,1
    - Dst: _PyUnicode_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15079,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15081,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15083,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15083,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15085,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15086,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15087,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15088,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15088,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15089,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15090,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15092,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15094,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15100,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15109,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15117,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15120,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15122,1
    - Dst: _PyUnicode_DATA_ANY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15126,1
    - Dst: _PyUnicode_UTF8_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15128,1
    - Dst: _PyUnicode_UTF8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15129,1
    - Dst: _PyUnicode_WSTR_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15132,1
    - Dst: _PyUnicode_WSTR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15133,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15136,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15136,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15138,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15138,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15140,1
    - Dst: _PyUnicode_HASH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15147,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (kind == PyUnicode_4BYTE_KIND)
      pos:
        line_end: 15108
        line_start: 15108
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CheckConsistency(self, 1))
      pos:
        line_end: 15137
        line_start: 15137
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (PyType_IsSubtype(type, &PyUnicode_Type))
      pos:
        line_end: 15059
        line_start: 15059
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(unicode))
      pos:
        line_end: 15064
        line_start: 15064
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15149
      start: 15051
    functionDepth: 6
    functionLinenumber: 15051
    functionLinenumberEnd: 15149
    functionName: unicode_subtype_new
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - _PyUnicode_UTF8
    - PyType_IsSubtype
    - _PyUnicode_STATE
    - PyUnicode_KIND
    - _PyUnicode_DATA_ANY
    - PyObject_MALLOC
    - PyTypeObject*::tp_alloc
    - _PyUnicode_CHECK
    - _PyUnicode_LENGTH
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    - _PyUnicode_UTF8_LENGTH
    - Py_DECREF
    - _PyUnicode_WSTR
    - memcpy
    - PyUnicode_MAX_CHAR_VALUE
    - PyErr_NoMemory
    - _PyUnicode_WSTR_LENGTH
    - unicode_new
    - _PyUnicode_CheckConsistency
    - _PyUnicode_HASH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15091
      start: 15091
    functionDepth: 0
    functionLinenumber: 15091
    functionLinenumberEnd: 15091
    functionName: _PyUnicode_UTF8_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_UTF8_LENGTH(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15093
      start: 15093
    functionDepth: 0
    functionLinenumber: 15093
    functionLinenumberEnd: 15093
    functionName: _PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_WSTR_LENGTH(self)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_INCREF_UNICODE_EMPTY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15227,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15231,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15233,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15234,1
    - Dst: make_bloom_mask
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15238,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15240,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15242,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15243,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15245,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15246,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15248,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15249,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15252
      start: 15211
    functionDepth: 2
    functionLinenumber: 15211
    functionLinenumberEnd: 15252
    functionName: _PyUnicode_Init
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - make_bloom_mask
    - Py_ARRAY_LENGTH
    - _Py_INCREF_UNICODE_EMPTY
    - _PyStatus_ERR
    - PyType_Ready
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15260
      start: 15256
    functionDepth: 0
    functionLinenumber: 15256
    functionLinenumberEnd: 15260
    functionName: PyUnicode_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyUnicode_ClearFreeList(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15269,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15270,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15270,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15272,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15277,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15279,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15282,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15284,1
    - Dst: PyDict_SetDefault
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15289,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15292,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15296,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15297,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15302,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 15268
        line_start: 15268
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(s))
      pos:
        line_end: 15269
        line_start: 15269
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15304
      start: 15263
    functionDepth: 4
    functionLinenumber: 15263
    functionLinenumberEnd: 15304
    functionName: PyUnicode_InternInPlace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 7
    functionsReached:
    - PyErr_Clear
    - Py_INCREF
    - _PyUnicode_CHECK
    - PyDict_New
    - Py_REFCNT
    - PyDict_SetDefault
    - _PyUnicode_STATE
    - PyUnicode_Check
    - assert
    - PyUnicode_CHECK_INTERNED
    - Py_SETREF
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: void
    signature: void PyUnicode_InternInPlace(PyObject **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15309,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15310,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15311,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15314
      start: 15306
    functionDepth: 5
    functionLinenumber: 15306
    functionLinenumberEnd: 15314
    functionName: PyUnicode_InternImmortal
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_CHECK_INTERNED
    - _PyUnicode_STATE
    - PyUnicode_InternInPlace
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void PyUnicode_InternImmortal(PyObject **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15319,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15324
      start: 15316
    functionDepth: 5
    functionLinenumber: 15316
    functionLinenumberEnd: 15324
    functionName: PyUnicode_InternFromString
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 19
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_InternInPlace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyUnicode_InternFromString(const char *cp)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15336,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15338,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15339,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15340,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15349,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15351,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15355,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15356,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15357,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15359,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15364,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15365,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15368,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15369,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15372,1
    - Dst: _PyUnicode_STATE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15374,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15377,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15381,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15382,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15383,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15384
      start: 15328
    functionDepth: 3
    functionLinenumber: 15328
    functionLinenumberEnd: 15384
    functionName: unicode_release_interned
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - Py_CLEAR
    - Py_REFCNT
    - PyDict_Check
    - PyList_Check
    - PyDict_Keys
    - PyList_GET_ITEM
    - Py_UNREACHABLE
    - Py_FatalError
    - fprintf
    - _PyUnicode_STATE
    - PyUnicode_CHECK_INTERNED
    - PyList_GET_SIZE
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - PyDict_Clear
    linkageType: ''
    returnType: void
    signature: void unicode_release_interned(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15399,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15400,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - unicodeiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15402
      start: 15396
    functionDepth: 3
    functionLinenumber: 15396
    functionLinenumberEnd: 15402
    functionName: unicodeiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void unicodeiter_dealloc(unicodeiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - unicodeiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15409
      start: 15404
    functionDepth: 1
    functionLinenumber: 15404
    functionLinenumberEnd: 15409
    functionName: unicodeiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int unicodeiter_traverse(unicodeiterobject *it, visitproc visit, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15416,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15420,1
    - Dst: _PyUnicode_CHECK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15420,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15422,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15423,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15424,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15425,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15426,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - unicodeiterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 15415
        line_start: 15415
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - condition: (_PyUnicode_CHECK(seq))
      pos:
        line_end: 15419
        line_start: 15419
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    constantsTouched: []
    func_position:
      end: 15435
      start: 15411
    functionDepth: 6
    functionLinenumber: 15411
    functionLinenumberEnd: 15435
    functionName: unicodeiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READ
    - Py_DECREF
    - _PyUnicode_CHECK
    - PyUnicode_KIND
    - PyUnicode_FromOrdinal
    - PyUnicode_DATA
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_next(unicodeiterobject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15442,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - unicodeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15444
      start: 15437
    functionDepth: 1
    functionLinenumber: 15437
    functionLinenumberEnd: 15444
    functionName: unicodeiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_len(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15451,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15453,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15453,1
    - Dst: _PyUnicode_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15456,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15459,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - unicodeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15461
      start: 15448
    functionDepth: 3
    functionLinenumber: 15448
    functionLinenumberEnd: 15461
    functionName: unicodeiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - _PyUnicode_New
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_reduce(unicodeiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15468,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15469,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15474,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - unicodeiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15479
      start: 15465
    functionDepth: 1
    functionLinenumber: 15465
    functionLinenumberEnd: 15479
    functionName: unicodeiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_GET_LENGTH
    - PyErr_Occurred
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicodeiter_setstate(unicodeiterobject *it, PyObject *state)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15531,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15532,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15535,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15537,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15541,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15545
      start: 15526
    functionDepth: 1
    functionLinenumber: 15526
    functionLinenumberEnd: 15545
    functionName: unicode_iter
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_iter(PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - u
    argTypes:
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15552
      start: 15548
    functionDepth: 0
    functionLinenumber: 15548
    functionLinenumberEnd: 15552
    functionName: Py_UNICODE_strlen
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: size_t
    signature: size_t Py_UNICODE_strlen(const Py_UNICODE *u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15560
      start: 15554
    functionDepth: 0
    functionLinenumber: 15554
    functionLinenumberEnd: 15560
    functionName: Py_UNICODE_strcpy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      Py_UNICODE_strcpy(Py_UNICODE *s1, const Py_UNICODE *s2)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15570
      start: 15562
    functionDepth: 0
    functionLinenumber: 15562
    functionLinenumberEnd: 15570
    functionName: Py_UNICODE_strncpy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      Py_UNICODE_strncpy(Py_UNICODE *s1, const Py_UNICODE *s2, size_t n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15579
      start: 15572
    functionDepth: 0
    functionLinenumber: 15572
    functionLinenumberEnd: 15579
    functionName: Py_UNICODE_strcat
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      Py_UNICODE_strcat(Py_UNICODE *s1, const Py_UNICODE *s2)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15593
      start: 15581
    functionDepth: 0
    functionLinenumber: 15581
    functionLinenumberEnd: 15593
    functionName: Py_UNICODE_strcmp
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_strcmp(const Py_UNICODE *s1, const Py_UNICODE *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - s1
    - s2
    - n
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15610
      start: 15595
    functionDepth: 0
    functionLinenumber: 15595
    functionLinenumberEnd: 15610
    functionName: Py_UNICODE_strncmp
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_UNICODE_strncmp(const Py_UNICODE *s1, const Py_UNICODE *s2,
      size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15620
      start: 15612
    functionDepth: 0
    functionLinenumber: 15612
    functionLinenumberEnd: 15620
    functionName: Py_UNICODE_strchr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      Py_UNICODE_strchr(const Py_UNICODE *s, Py_UNICODE c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - Py_UNICODE*
    - Py_UNICODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15633
      start: 15622
    functionDepth: 0
    functionLinenumber: 15622
    functionLinenumberEnd: 15633
    functionName: Py_UNICODE_strrchr
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - wcslen
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      Py_UNICODE_strrchr(const Py_UNICODE *s, Py_UNICODE c)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15641,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15642,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15645,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15650,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15655,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15657,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - unicode
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15662
      start: 15635
    functionDepth: 3
    functionLinenumber: 15635
    functionLinenumberEnd: 15662
    functionName: PyUnicode_AsUnicodeCopy
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - memcpy
    - PyErr_BadArgument
    - PyErr_NoMemory
    - PyUnicode_AsUnicodeAndSize
    - PyUnicode_Check
    linkageType: ''
    returnType: Py_UNICODE
    signature: 'Py_UNICODE *

      PyUnicode_AsUnicodeCopy(PyObject *unicode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15669,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15671,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - wstr
    - str
    - name
    argTypes:
    - wchar_t*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15679
      start: 15665
    functionDepth: 2
    functionLinenumber: 15665
    functionLinenumberEnd: 15679
    functionName: encode_wstr_utf8
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_EncodeUTF8Ex
    - PyErr_Format
    - PyErr_NoMemory
    linkageType: ''
    returnType: int
    signature: int encode_wstr_utf8(wchar_t *wstr, char **str, const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: encode_wstr_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15686,1
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15691,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15692,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15697,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15698,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15703,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15704,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15709,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15711,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15712,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15716,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15723,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - config_encoding
    argTypes:
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15726
      start: 15682
    functionDepth: 3
    functionLinenumber: 15682
    functionLinenumberEnd: 15726
    functionName: config_get_codec_name
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - encode_wstr_utf8
    - _PyMem_RawWcsdup
    - Py_CLEAR
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_AsWideCharString
    - PyErr_NoMemory
    - PyMem_Free
    - PyMem_RawFree
    - Py_XDECREF
    - _PyCodec_Lookup
    linkageType: ''
    returnType: int
    signature: int config_get_codec_name(wchar_t **config_encoding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_get_codec_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15734,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15735,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15739
      start: 15729
    functionDepth: 4
    functionLinenumber: 15729
    functionLinenumberEnd: 15739
    functionName: init_stdio_encoding
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - _PyStatus_ERR
    - config_get_codec_name
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_stdio_encoding(PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_error_handler_wide
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15748,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15750,1
    - Dst: encode_wstr_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15755,1
    - Dst: encode_wstr_utf8
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15761,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15764,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15768,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15770,1
    - Dst: _Py_SetFileSystemEncoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15780,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15786
      start: 15742
    functionDepth: 3
    functionLinenumber: 15742
    functionLinenumberEnd: 15786
    functionName: init_fs_codec
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - encode_wstr_utf8
    - get_error_handler_wide
    - PyErr_NoMemory
    - PyMem_RawFree
    - PyErr_SetString
    - _Py_SetFileSystemEncoding
    linkageType: ''
    returnType: int
    signature: int init_fs_codec(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_get_codec_name
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15798,1
    - Dst: _Py_DumpPathConfig
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15799,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15800,1
    - Dst: init_fs_codec
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15804,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15805,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15808
      start: 15789
    functionDepth: 4
    functionLinenumber: 15789
    functionLinenumberEnd: 15808
    functionName: init_fs_encoding
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _Py_DumpPathConfig
    - config_get_codec_name
    - init_fs_codec
    - _PyStatus_ERR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_fs_encoding(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_fs_encoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15814,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15815,1
    - Dst: init_stdio_encoding
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15820
      start: 15811
    functionDepth: 5
    functionLinenumber: 15811
    functionLinenumberEnd: 15820
    functionName: _PyUnicode_InitEncodings
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyStatus_EXCEPTION
    - init_stdio_encoding
    - init_fs_encoding
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15827,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15831,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15832,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15834,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15835,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15836,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15840,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15842,1
    - Dst: init_fs_codec
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15846
      start: 15824
    functionDepth: 4
    functionLinenumber: 15824
    functionLinenumberEnd: 15846
    functionName: _PyUnicode_EnableLegacyWindowsFSEncoding
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - init_fs_codec
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_NoMemory
    - PyMem_RawFree
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_EnableLegacyWindowsFSEncoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_release_interned
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15863,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15866,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15869,1
    - Dst: _PyUnicode_ClearStaticStrings
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15871,1
    - Dst: PyUnicode_ClearFreeList
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15872,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15874,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15875,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15879
      start: 15850
    functionDepth: 4
    functionLinenumber: 15850
    functionLinenumberEnd: 15879
    functionName: _PyUnicode_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyUnicode_ClearStaticStrings
    - unicode_release_interned
    - _PyInterpreterState_GET_UNSAFE
    - PyMem_RawFree
    - PyUnicode_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void _PyUnicode_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Objects/unicodeobject.c:15908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15909
      start: 15905
    functionDepth: 1
    functionLinenumber: 15905
    functionLinenumberEnd: 15909
    functionName: PyInit__string
    functionSourceFile: /src/Python-3.8.3/Objects/unicodeobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__string(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:77,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:80,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:81,1
    - Dst: _PyUnicode_EQ
      Src: /src/Python-3.8.3/Objects/setobject.c:82,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:85,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/setobject.c:86,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:87,1
    - Dst: set_lookkey
      Src: /src/Python-3.8.3/Objects/setobject.c:91,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:104,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:107,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:108,1
    - Dst: _PyUnicode_EQ
      Src: /src/Python-3.8.3/Objects/setobject.c:109,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:112,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/setobject.c:113,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:114,1
    - Dst: set_lookkey
      Src: /src/Python-3.8.3/Objects/setobject.c:118,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (startkey != dummy)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 133
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 133
    functionName: set_lookkey
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _PyUnicode_EQ
    - PyObject_RichCompareBool
    - set_lookkey
    - assert
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: setentry
    signature: 'setentry *

      set_lookkey(PySetObject *so, PyObject *key, Py_hash_t hash)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:151,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:169,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:172,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:173,1
    - Dst: _PyUnicode_EQ
      Src: /src/Python-3.8.3/Objects/setobject.c:174,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:177,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/setobject.c:178,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:179,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:201,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:204,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:205,1
    - Dst: _PyUnicode_EQ
      Src: /src/Python-3.8.3/Objects/setobject.c:206,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:209,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/setobject.c:210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:211,1
    - Dst: set_table_resize
      Src: /src/Python-3.8.3/Objects/setobject.c:248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:255,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (startkey != dummy)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (startkey != dummy)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 257
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 257
    functionName: set_add_entry
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_table_resize
    - Py_DECREF
    - Py_INCREF
    - _PyUnicode_EQ
    - PyObject_RichCompareBool
    - assert
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - table
    - mask
    - key
    - hash
    argTypes:
    - setentry*
    - size_t
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 293
    functionName: set_insert_clean
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_insert_clean(setentry *table, size_t mask, PyObject *key,
      Py_hash_t hash)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:312,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:323,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:340,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/setobject.c:341,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/setobject.c:346,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/setobject.c:348,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:354,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/setobject.c:355,1
    - Dst: set_insert_clean
      Src: /src/Python-3.8.3/Objects/setobject.c:365,1
    - Dst: set_insert_clean
      Src: /src/Python-3.8.3/Objects/setobject.c:372,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Objects/setobject.c:378,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - so
    - minused
    argTypes:
    - PySetObject*
    - Py_ssize_t
    assertStmts:
    - condition: (minused >= 0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (oldtable != NULL)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (so->fill > so->used)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (newtable != oldtable)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 380
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 380
    functionName: set_table_resize
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PyMem_DEL
    - PyErr_NoMemory
    - PyMem_NEW
    - set_insert_clean
    - assert
    - memset
    linkageType: ''
    returnType: int
    signature: int set_table_resize(PySetObject *so, Py_ssize_t minused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_lookkey
      Src: /src/Python-3.8.3/Objects/setobject.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 5
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: set_contains_entry
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_lookkey
    linkageType: ''
    returnType: int
    signature: int set_contains_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_lookkey
      Src: /src/Python-3.8.3/Objects/setobject.c:402,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - so
    - key
    - hash
    argTypes:
    - PySetObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 396
    functionDepth: 5
    functionLinenumber: 396
    functionLinenumberEnd: 413
    functionName: set_discard_entry
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_lookkey
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int set_discard_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:420,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/setobject.c:422,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 5
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: set_add_key
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - set_add_entry
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int set_add_key(PySetObject *so, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:434,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/setobject.c:436,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: set_contains_key
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - set_contains_entry
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int set_contains_key(PySetObject *so, PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:448,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/setobject.c:450,1
    - Dst: set_discard_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 443
    functionDepth: 6
    functionLinenumber: 443
    functionLinenumberEnd: 455
    functionName: set_discard_key
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyUnicode_CheckExact
    - set_discard_entry
    linkageType: ''
    returnType: int
    signature: int set_discard_key(PySetObject *so, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/setobject.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: set_empty_to_minsize
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void set_empty_to_minsize(PySetObject *so)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:478,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:478,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:479,1
    - Dst: set_empty_to_minsize
      Src: /src/Python-3.8.3/Objects/setobject.c:488,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/setobject.c:495,1
    - Dst: set_empty_to_minsize
      Src: /src/Python-3.8.3/Objects/setobject.c:497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:508,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Objects/setobject.c:513,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (table != NULL)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 515
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 515
    functionName: set_clear_internal
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_empty_to_minsize
    - memcpy
    - Py_DECREF
    - PyMem_DEL
    - assert
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int set_clear_internal(PySetObject *so)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:537,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:537,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:539,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - so
    - pos_ptr
    - entry_ptr
    argTypes:
    - PySetObject*
    - Py_ssize_t*
    - setentry**
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 536
        line_start: 536
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (entry != NULL)
      pos:
        line_end: 548
        line_start: 548
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (i >= 0)
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 552
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 552
    functionName: set_next
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int set_next(PySetObject *so, Py_ssize_t *pos_ptr, setentry **entry_ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/setobject.c:561,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/setobject.c:562,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/setobject.c:564,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:569,1
    - Dst: PyMem_DEL
      Src: /src/Python-3.8.3/Objects/setobject.c:573,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 576
    functionName: set_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyMem_DEL
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyObject_GC_UnTrack
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void set_dealloc(PySetObject *so)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/setobject.c:582,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/setobject.c:587,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:587,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/setobject.c:592,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/setobject.c:593,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:593,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/setobject.c:596,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/setobject.c:601,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:602,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/setobject.c:605,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/setobject.c:605,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:606,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:611,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/setobject.c:612,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:613,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/setobject.c:616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:617,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/setobject.c:619,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 578
    functionDepth: 8
    functionLinenumber: 578
    functionLinenumberEnd: 621
    functionName: set_repr
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_ReprLeave
    - Py_DECREF
    - PyUnicode_Substring
    - Py_ReprEnter
    - PyUnicode_FromFormat
    - Py_TYPE
    - PyObject_Repr
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_repr(PySetObject *so)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - so
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: set_len
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t set_len(PyObject *so)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:638,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:638,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:639,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:639,1
    - Dst: set_table_resize
      Src: /src/Python-3.8.3/Objects/setobject.c:650,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:662,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:682,1
    - Dst: set_insert_clean
      Src: /src/Python-3.8.3/Objects/setobject.c:683,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:694,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 2
    argNames:
    - so
    - otherset
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 637
        line_start: 637
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyAnySet_Check(otherset))
      pos:
        line_end: 638
        line_start: 638
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (so_entry->key == NULL)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 699
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 699
    functionName: set_merge
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_table_resize
    - Py_INCREF
    - set_insert_clean
    - set_add_entry
    - assert
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int set_merge(PySetObject *so, PyObject *otherset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/setobject.c:710,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 724
    functionName: set_pop
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_pop(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:735,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/setobject.c:736,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - so
    - visit
    - arg
    argTypes:
    - PySetObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 738
    functionName: set_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - set_next
    linkageType: ''
    returnType: int
    signature: int set_traverse(PySetObject *so, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - Py_uhash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: _shuffle_bits
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_uhash_t
    signature: Py_uhash_t _shuffle_bits(Py_uhash_t h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _shuffle_bits
      Src: /src/Python-3.8.3/Objects/setobject.c:778,1
    - Dst: _shuffle_bits
      Src: /src/Python-3.8.3/Objects/setobject.c:782,1
    - Dst: _shuffle_bits
      Src: /src/Python-3.8.3/Objects/setobject.c:786,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 801
    functionName: frozenset_hash
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_GET_SIZE
    - _shuffle_bits
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t frozenset_hash(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/setobject.c:817,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:818,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/setobject.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - si
    argTypes:
    - setiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 3
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: setiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void setiter_dealloc(setiterobject *si)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/setobject.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - si
    - visit
    - arg
    argTypes:
    - setiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: setiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int setiter_traverse(setiterobject *si, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/setobject.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - si
    - Py_UNUSED(ignored)
    argTypes:
    - setiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 836
    functionName: setiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setiter_len(setiterobject *si, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/setobject.c:845,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:848,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/setobject.c:851,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:852,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/setobject.c:856,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/setobject.c:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - si
    - Py_UNUSED(ignored)
    argTypes:
    - setiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 857
    functionName: setiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_BuildValue
    - _PyEval_GetBuiltinId
    - Py_XINCREF
    - _Py_IDENTIFIER
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      setiter_reduce(setiterobject *si, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:876,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:876,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/setobject.c:879,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:886,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:901,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - si
    argTypes:
    - setiterobject*
    assertStmts:
    - condition: (PyAnySet_Check(so))
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (i>=0)
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 903
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 903
    functionName: setiter_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyErr_SetString
    - assert
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: PyObject *setiter_iternext(setiterobject *si)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/setobject.c:941,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:944,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/setobject.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - so
    argTypes:
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 951
    functionName: set_iter
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_iter(PySetObject *so)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:958,1
    - Dst: set_merge
      Src: /src/Python-3.8.3/Objects/setobject.c:959,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:961,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:965,1
    - Dst: set_table_resize
      Src: /src/Python-3.8.3/Objects/setobject.c:974,1
    - Dst: _PyDict_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:977,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:978,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/setobject.c:984,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:988,1
    - Dst: set_add_key
      Src: /src/Python-3.8.3/Objects/setobject.c:989,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:994,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:996,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/setobject.c:997,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 953
    functionDepth: 6
    functionLinenumber: 953
    functionLinenumberEnd: 1000
    functionName: set_update_internal
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_table_resize
    - PyErr_Occurred
    - _PyDict_Next
    - Py_DECREF
    - set_add_key
    - PyDict_GET_SIZE
    - set_merge
    - PyDict_CheckExact
    - PyIter_Next
    - set_add_entry
    - PyObject_GetIter
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int set_update_internal(PySetObject *so, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1007,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1008,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1002
    functionDepth: 7
    functionLinenumber: 1002
    functionLinenumberEnd: 1013
    functionName: set_update
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - set_update_internal
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_update(PySetObject *so, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/setobject.c:1029,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1042,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1024
    functionDepth: 7
    functionLinenumber: 1024
    functionLinenumberEnd: 1049
    functionName: make_new_set
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_internal
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_set(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/setobject.c:1055,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1060,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1051
    functionDepth: 8
    functionLinenumber: 1051
    functionLinenumberEnd: 1061
    functionName: make_new_set_basetype
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set
    - PyType_IsSubtype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_new_set_basetype(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/setobject.c:1071,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/setobject.c:1074,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1078,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1082,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1083,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1086,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1089,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1093,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1094,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1066
    functionDepth: 8
    functionLinenumber: 1066
    functionLinenumberEnd: 1096
    functionName: frozenset_new
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - make_new_set
    - _PyArg_NoKeywords
    - PyFrozenSet_CheckExact
    - PyArg_UnpackTuple
    - PySet_GET_SIZE
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1098
    functionDepth: 8
    functionLinenumber: 1098
    functionLinenumberEnd: 1102
    functionName: set_new
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/setobject.c:1136,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/setobject.c:1137,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/setobject.c:1138,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/setobject.c:1141,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1141,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/setobject.c:1142,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PySetObject*
    - PySetObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1148
    functionName: set_swap_bodies
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyType_IsSubtype
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void set_swap_bodies(PySetObject *a, PySetObject *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set_basetype
      Src: /src/Python-3.8.3/Objects/setobject.c:1153,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1150
    functionDepth: 9
    functionLinenumber: 1150
    functionLinenumberEnd: 1154
    functionName: set_copy
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - make_new_set_basetype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1159,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1160,1
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1156
    functionDepth: 10
    functionLinenumber: 1156
    functionLinenumberEnd: 1164
    functionName: frozenset_copy
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_copy
    - PyFrozenSet_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      frozenset_copy(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_clear_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1173
    functionName: set_clear
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_clear_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_clear(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1184,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1188,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1189,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1192,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1177
    functionDepth: 10
    functionLinenumber: 1177
    functionLinenumberEnd: 1198
    functionName: set_union
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_internal
    - Py_DECREF
    - PyTuple_GET_SIZE
    - set_copy
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_union(PySetObject *so, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1210,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1210,1
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1213,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1205
    functionDepth: 10
    functionLinenumber: 1205
    functionLinenumberEnd: 1223
    functionName: set_or
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_copy
    - set_update_internal
    - Py_DECREF
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_or(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1228,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1231,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1225
    functionDepth: 7
    functionLinenumber: 1225
    functionLinenumberEnd: 1235
    functionName: set_ior
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_update_internal
    - Py_INCREF
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_ior(PySetObject *so, PyObject *other)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1246,1
    - Dst: make_new_set_basetype
      Src: /src/Python-3.8.3/Objects/setobject.c:1248,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1248,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1252,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1256,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1256,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1262,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1267,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1271,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1272,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/setobject.c:1280,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1282,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:1286,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/setobject.c:1287,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1290,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1294,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1299,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/setobject.c:1300,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1307,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1308,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1237
    functionDepth: 10
    functionLinenumber: 1237
    functionLinenumberEnd: 1310
    functionName: set_intersection
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - set_copy
    - set_contains_entry
    - PyObject_GetIter
    - PyIter_Next
    - Py_TYPE
    - make_new_set_basetype
    - set_add_entry
    - PyObject_Hash
    - set_next
    - PySet_GET_SIZE
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1318,1
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1319,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1321,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1322,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1323,1
    - Dst: set_intersection
      Src: /src/Python-3.8.3/Objects/setobject.c:1324,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1312
    functionDepth: 11
    functionLinenumber: 1312
    functionLinenumberEnd: 1333
    functionName: set_intersection_multi
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - set_copy
    - set_intersection
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_multi(PySetObject *so, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection
      Src: /src/Python-3.8.3/Objects/setobject.c:1345,1
    - Dst: set_swap_bodies
      Src: /src/Python-3.8.3/Objects/setobject.c:1348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1340
    functionDepth: 11
    functionLinenumber: 1340
    functionLinenumberEnd: 1351
    functionName: set_intersection_update
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_swap_bodies
    - set_intersection
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_update(PySetObject *so, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_intersection_multi
      Src: /src/Python-3.8.3/Objects/setobject.c:1358,1
    - Dst: set_swap_bodies
      Src: /src/Python-3.8.3/Objects/setobject.c:1361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1353
    functionDepth: 12
    functionLinenumber: 1353
    functionLinenumberEnd: 1364
    functionName: set_intersection_update_multi
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_swap_bodies
    - Py_DECREF
    - set_intersection_multi
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_intersection_update_multi(PySetObject *so, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1372,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1372,1
    - Dst: set_intersection
      Src: /src/Python-3.8.3/Objects/setobject.c:1374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1369
    functionDepth: 11
    functionLinenumber: 1369
    functionLinenumberEnd: 1375
    functionName: set_and
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_intersection
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_and(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1382,1
    - Dst: set_intersection_update
      Src: /src/Python-3.8.3/Objects/setobject.c:1384,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1387,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1377
    functionDepth: 12
    functionLinenumber: 1377
    functionLinenumberEnd: 1390
    functionName: set_iand
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - set_intersection_update
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_iand(PySetObject *so, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1399,1
    - Dst: PyAnySet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1405,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1409,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1409,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1414,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1415,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/setobject.c:1424,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:1428,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/setobject.c:1429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1433,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1439,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1447,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/setobject.c:1448,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1392
    functionDepth: 6
    functionLinenumber: 1392
    functionLinenumberEnd: 1451
    functionName: set_isdisjoint
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - set_contains_entry
    - PySet_GET_SIZE
    - PyIter_Next
    - PyObject_Hash
    - set_next
    - PyObject_GetIter
    - PyAnySet_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isdisjoint(PySetObject *so, PyObject *other)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: set_clear_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1460,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1462,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1466,1
    - Dst: set_discard_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1467,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/setobject.c:1471,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:1475,1
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1476,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1477,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1478,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1483,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/setobject.c:1484,1
    - Dst: set_table_resize
      Src: /src/Python-3.8.3/Objects/setobject.c:1490,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1456
    functionDepth: 7
    functionLinenumber: 1456
    functionLinenumberEnd: 1491
    functionName: set_difference_update_internal
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_clear_internal
    - set_table_resize
    - PyErr_Occurred
    - Py_DECREF
    - set_discard_entry
    - set_discard_key
    - PyIter_Next
    - set_next
    - PyObject_GetIter
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int set_difference_update_internal(PySetObject *so, PyObject *other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1498,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1499,1
    - Dst: set_difference_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1493
    functionDepth: 8
    functionLinenumber: 1493
    functionLinenumberEnd: 1504
    functionName: set_difference_update
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_difference_update_internal
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference_update(PySetObject *so, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1514,1
    - Dst: set_difference_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1517,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1509
    functionDepth: 10
    functionLinenumber: 1509
    functionLinenumberEnd: 1521
    functionName: set_copy_and_difference
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_copy
    - Py_DECREF
    - set_difference_update_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_copy_and_difference(PySetObject *so, PyObject *other)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1533,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1534,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1536,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1537,1
    - Dst: set_copy_and_difference
      Src: /src/Python-3.8.3/Objects/setobject.c:1540,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1545,1
    - Dst: set_copy_and_difference
      Src: /src/Python-3.8.3/Objects/setobject.c:1546,1
    - Dst: make_new_set_basetype
      Src: /src/Python-3.8.3/Objects/setobject.c:1549,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1549,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1553,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1554,1
    - Dst: _PyDict_Contains
      Src: /src/Python-3.8.3/Objects/setobject.c:1557,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1559,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1563,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1564,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1573,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1578,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1583,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1523
    functionDepth: 11
    functionLinenumber: 1523
    functionLinenumberEnd: 1589
    functionName: set_difference
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_GET_SIZE
    - set_contains_entry
    - PyDict_CheckExact
    - Py_TYPE
    - make_new_set_basetype
    - set_copy_and_difference
    - set_add_entry
    - set_next
    - PySet_GET_SIZE
    - _PyDict_Contains
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference(PySetObject *so, PyObject *other)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1597,1
    - Dst: set_copy
      Src: /src/Python-3.8.3/Objects/setobject.c:1598,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1600,1
    - Dst: set_difference
      Src: /src/Python-3.8.3/Objects/setobject.c:1601,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1605,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/setobject.c:1606,1
    - Dst: set_difference_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1607,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1608,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - so
    - args
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1591
    functionDepth: 12
    functionLinenumber: 1591
    functionLinenumberEnd: 1613
    functionName: set_difference_multi
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - set_difference
    - PyTuple_GET_SIZE
    - set_copy
    - PyTuple_GET_ITEM
    - set_difference_update_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_difference_multi(PySetObject *so, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1622,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1622,1
    - Dst: set_difference
      Src: /src/Python-3.8.3/Objects/setobject.c:1624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1619
    functionDepth: 12
    functionLinenumber: 1619
    functionLinenumberEnd: 1625
    functionName: set_sub
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_difference
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_sub(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1630,1
    - Dst: set_difference_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1632,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1627
    functionDepth: 8
    functionLinenumber: 1627
    functionLinenumberEnd: 1636
    functionName: set_isub
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - set_difference_update_internal
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_isub(PySetObject *so, PyObject *other)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: set_clear
      Src: /src/Python-3.8.3/Objects/setobject.c:1649,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:1651,1
    - Dst: _PyDict_Next
      Src: /src/Python-3.8.3/Objects/setobject.c:1653,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1654,1
    - Dst: set_discard_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1657,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1666,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1671,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1672,1
    - Dst: make_new_set_basetype
      Src: /src/Python-3.8.3/Objects/setobject.c:1675,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1675,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1680,1
    - Dst: set_discard_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1685,1
    - Dst: set_add_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1689,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1690,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1695,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1638
    functionDepth: 9
    functionLinenumber: 1638
    functionLinenumberEnd: 1697
    functionName: set_symmetric_difference_update
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_Next
    - Py_DECREF
    - Py_INCREF
    - set_clear
    - set_discard_entry
    - PyDict_CheckExact
    - Py_TYPE
    - set_add_entry
    - make_new_set_basetype
    - set_next
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference_update(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set_basetype
      Src: /src/Python-3.8.3/Objects/setobject.c:1708,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1708,1
    - Dst: set_symmetric_difference_update
      Src: /src/Python-3.8.3/Objects/setobject.c:1711,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1713,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1702
    functionDepth: 10
    functionLinenumber: 1702
    functionLinenumberEnd: 1718
    functionName: set_symmetric_difference
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_symmetric_difference_update
    - Py_TYPE
    - Py_DECREF
    - make_new_set_basetype
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_symmetric_difference(PySetObject *so, PyObject *other)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1728,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1728,1
    - Dst: set_symmetric_difference
      Src: /src/Python-3.8.3/Objects/setobject.c:1730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1725
    functionDepth: 11
    functionLinenumber: 1725
    functionLinenumberEnd: 1731
    functionName: set_xor
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_symmetric_difference
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_xor(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1738,1
    - Dst: set_symmetric_difference_update
      Src: /src/Python-3.8.3/Objects/setobject.c:1740,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1743,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1733
    functionDepth: 10
    functionLinenumber: 1733
    functionLinenumberEnd: 1746
    functionName: set_ixor
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_DECREF
    - set_symmetric_difference_update
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_ixor(PySetObject *so, PyObject *other)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1755,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1757,1
    - Dst: set_issubset
      Src: /src/Python-3.8.3/Objects/setobject.c:1760,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1761,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1764,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1764,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:1767,1
    - Dst: set_contains_entry
      Src: /src/Python-3.8.3/Objects/setobject.c:1768,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1748
    functionDepth: 8
    functionLinenumber: 1748
    functionLinenumberEnd: 1775
    functionName: set_issubset
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - set_issubset
    - Py_DECREF
    - make_new_set
    - set_contains_entry
    - set_next
    - PySet_GET_SIZE
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issubset(PySetObject *so, PyObject *other)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1784,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1785,1
    - Dst: set_issuperset
      Src: /src/Python-3.8.3/Objects/setobject.c:1788,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1789,1
    - Dst: set_issubset
      Src: /src/Python-3.8.3/Objects/setobject.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - so
    - other
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1779
    functionDepth: 9
    functionLinenumber: 1779
    functionLinenumberEnd: 1793
    functionName: set_issuperset
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - set_issubset
    - Py_DECREF
    - make_new_set
    - set_issuperset
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_issuperset(PySetObject *so, PyObject *other)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1803,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1808,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1808,1
    - Dst: set_issubset
      Src: /src/Python-3.8.3/Objects/setobject.c:1814,1
    - Dst: set_richcompare
      Src: /src/Python-3.8.3/Objects/setobject.c:1816,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/setobject.c:1819,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1820,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/setobject.c:1823,1
    - Dst: set_issubset
      Src: /src/Python-3.8.3/Objects/setobject.c:1825,1
    - Dst: set_issuperset
      Src: /src/Python-3.8.3/Objects/setobject.c:1827,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1829,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1829,1
    - Dst: set_issubset
      Src: /src/Python-3.8.3/Objects/setobject.c:1831,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1833,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1833,1
    - Dst: set_issuperset
      Src: /src/Python-3.8.3/Objects/setobject.c:1835,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PySetObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1797
    functionDepth: 10
    functionLinenumber: 1797
    functionLinenumberEnd: 1838
    functionName: set_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - set_issubset
    - Py_DECREF
    - set_richcompare
    - PyBool_FromLong
    - PyObject_IsTrue
    - PySet_GET_SIZE
    - set_issuperset
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_richcompare(PySetObject *v, PyObject *w, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_add_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1840
    functionDepth: 6
    functionLinenumber: 1840
    functionLinenumberEnd: 1846
    functionName: set_add
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_add_key
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_add(PySetObject *so, PyObject *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_contains_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1859,1
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1861,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/setobject.c:1861,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/setobject.c:1863,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1864,1
    - Dst: set_contains_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1853
    functionDepth: 8
    functionLinenumber: 1853
    functionLinenumberEnd: 1871
    functionName: set_contains
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - Py_DECREF
    - make_new_set
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - set_contains_key
    linkageType: ''
    returnType: int
    signature: int set_contains(PySetObject *so, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_contains
      Src: /src/Python-3.8.3/Objects/setobject.c:1878,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/setobject.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1873
    functionDepth: 9
    functionLinenumber: 1873
    functionLinenumberEnd: 1882
    functionName: set_direct_contains
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - set_contains
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_direct_contains(PySetObject *so, PyObject *key)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1892,1
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1894,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/setobject.c:1894,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/setobject.c:1896,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1897,1
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1900,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1901,1
    - Dst: _PyErr_SetKeyError
      Src: /src/Python-3.8.3/Objects/setobject.c:1907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1886
    functionDepth: 8
    functionLinenumber: 1886
    functionLinenumberEnd: 1911
    functionName: set_remove
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - Py_DECREF
    - make_new_set
    - set_discard_key
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - _PyErr_SetKeyError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_remove(PySetObject *so, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1924,1
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:1926,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/setobject.c:1926,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/setobject.c:1928,1
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:1929,1
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:1932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - so
    - key
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1918
    functionDepth: 8
    functionLinenumber: 1918
    functionLinenumberEnd: 1938
    functionName: set_discard
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - Py_DECREF
    - make_new_set
    - set_discard_key
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_discard(PySetObject *so, PyObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/setobject.c:1949,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/setobject.c:1951,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/setobject.c:1954,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/setobject.c:1957,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1962,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/setobject.c:1964,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1964,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1966,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1967,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:1968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1945
    functionDepth: 3
    functionLinenumber: 1945
    functionLinenumberEnd: 1970
    functionName: set_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_INCREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyTuple_Pack
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_reduce(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:1977,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1977,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/setobject.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1972
    functionDepth: 1
    functionLinenumber: 1972
    functionLinenumberEnd: 1981
    functionName: set_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_TYPE
    - _PyObject_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      set_sizeof(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/setobject.c:1989,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/setobject.c:1991,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/setobject.c:1991,1
    - Dst: set_clear_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1994,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:1998,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PySetObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1984
    functionDepth: 7
    functionLinenumber: 1984
    functionLinenumberEnd: 1999
    functionName: set_init
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - set_clear_internal
    - set_update_internal
    - _PyArg_NoKeywords
    - Py_TYPE
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int set_init(PySetObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:2255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2252
    functionDepth: 8
    functionLinenumber: 2252
    functionLinenumberEnd: 2256
    functionName: PySet_New
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 16
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_New(PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_new_set
      Src: /src/Python-3.8.3/Objects/setobject.c:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2258
    functionDepth: 8
    functionLinenumber: 2258
    functionLinenumberEnd: 2262
    functionName: PyFrozenSet_New
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 4
    functionsReached:
    - make_new_set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFrozenSet_New(PyObject *iterable)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2267,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2268,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - anyset
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2272
    functionName: PySet_Size
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PySet_GET_SIZE
    - PyErr_BadInternalCall
    - PyAnySet_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PySet_Size(PyObject *anyset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2277,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2278,1
    - Dst: set_clear_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:2281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2274
    functionDepth: 2
    functionLinenumber: 2274
    functionLinenumberEnd: 2282
    functionName: PySet_Clear
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 3
    functionsReached:
    - PySet_Check
    - PyErr_BadInternalCall
    - set_clear_internal
    linkageType: ''
    returnType: int
    signature: int PySet_Clear(PyObject *set)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2287,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2288,1
    - Dst: set_contains_key
      Src: /src/Python-3.8.3/Objects/setobject.c:2291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2284
    functionDepth: 7
    functionLinenumber: 2284
    functionLinenumberEnd: 2292
    functionName: PySet_Contains
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 2
    functionsReached:
    - PyErr_BadInternalCall
    - set_contains_key
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int PySet_Contains(PyObject *anyset, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2297,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2298,1
    - Dst: set_discard_key
      Src: /src/Python-3.8.3/Objects/setobject.c:2301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2294
    functionDepth: 7
    functionLinenumber: 2294
    functionLinenumberEnd: 2302
    functionName: PySet_Discard
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PySet_Check
    - set_discard_key
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: int
    signature: int PySet_Discard(PyObject *set, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2307,1
    - Dst: PyFrozenSet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2308,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/setobject.c:2308,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2309,1
    - Dst: set_add_key
      Src: /src/Python-3.8.3/Objects/setobject.c:2312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - anyset
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2304
    functionDepth: 6
    functionLinenumber: 2304
    functionLinenumberEnd: 2313
    functionName: PySet_Add
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 12
    functionsReached:
    - PySet_Check
    - set_add_key
    - Py_REFCNT
    - PyErr_BadInternalCall
    - PyFrozenSet_Check
    linkageType: ''
    returnType: int
    signature: int PySet_Add(PyObject *anyset, PyObject *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2319
    functionName: PySet_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PySet_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/setobject.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2325
    functionName: PySet_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void PySet_Fini(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2332,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2333,1
    - Dst: set_next
      Src: /src/Python-3.8.3/Objects/setobject.c:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - set
    - pos
    - key
    - hash
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - PyObject**
    - Py_hash_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2327
    functionDepth: 2
    functionLinenumber: 2327
    functionLinenumberEnd: 2341
    functionName: _PySet_NextEntry
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 3
    functionsReached:
    - set_next
    - PyErr_BadInternalCall
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key,
      Py_hash_t *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2346,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2347,1
    - Dst: set_pop
      Src: /src/Python-3.8.3/Objects/setobject.c:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2343
    functionDepth: 2
    functionLinenumber: 2343
    functionLinenumberEnd: 2351
    functionName: PySet_Pop
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PySet_Check
    - set_pop
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySet_Pop(PyObject *set)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2356,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/setobject.c:2357,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:2360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - set
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2353
    functionDepth: 7
    functionLinenumber: 2353
    functionLinenumberEnd: 2361
    functionName: _PySet_Update
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 1
    functionsReached:
    - PySet_Check
    - PyErr_BadInternalCall
    - set_update_internal
    linkageType: ''
    returnType: int
    signature: int _PySet_Update(PyObject *set, PyObject *iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - call_return_value
    - ','
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2371
    functionDepth: 0
    functionLinenumber: 2371
    functionLinenumberEnd: 2377
    functionName: assertRaises
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assertRaises(call_return_value, exception)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2390,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Objects/setobject.c:2390,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2391,1
    - Dst: PyAnySet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:2391,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2392,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:2392,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/setobject.c:2395,1
    - Dst: set_clear_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:2398,1
    - Dst: set_update_internal
      Src: /src/Python-3.8.3/Objects/setobject.c:2399,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2400,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2403,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2406,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2406,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2407,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2407,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2410,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2410,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2411,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2411,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2414,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2415,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Objects/setobject.c:2415,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2416,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Objects/setobject.c:2416,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2417,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Objects/setobject.c:2417,1
    - Dst: PySet_Pop
      Src: /src/Python-3.8.3/Objects/setobject.c:2420,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2421,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Objects/setobject.c:2421,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2422,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2422,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2423,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Objects/setobject.c:2423,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2424,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Objects/setobject.c:2424,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2425,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2425,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2426,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Objects/setobject.c:2426,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2427,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2427,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2428,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Objects/setobject.c:2428,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2429,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2429,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2432,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2433,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Objects/setobject.c:2433,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2434,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2435,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2438,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2439,1
    - Dst: PySet_Clear
      Src: /src/Python-3.8.3/Objects/setobject.c:2439,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2440,1
    - Dst: _PySet_Update
      Src: /src/Python-3.8.3/Objects/setobject.c:2440,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2441,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Objects/setobject.c:2441,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2442,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2443,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Objects/setobject.c:2443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2445,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Objects/setobject.c:2449,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/setobject.c:2450,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2451,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2454,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2457,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2458,1
    - Dst: _PySet_Update
      Src: /src/Python-3.8.3/Objects/setobject.c:2458,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2459,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2459,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2460,1
    - Dst: _PySet_Update
      Src: /src/Python-3.8.3/Objects/setobject.c:2460,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2461,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2462,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2465,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2466,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2466,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2467,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Objects/setobject.c:2467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2468,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2471,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2472,1
    - Dst: PySet_Size
      Src: /src/Python-3.8.3/Objects/setobject.c:2472,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2473,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:2473,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2474,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Objects/setobject.c:2474,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2475,1
    - Dst: PySet_Pop
      Src: /src/Python-3.8.3/Objects/setobject.c:2475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2476,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2479,1
    - Dst: PyNumber_InPlaceSubtract
      Src: /src/Python-3.8.3/Objects/setobject.c:2479,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2480,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2481,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2481,1
    - Dst: assertRaises
      Src: /src/Python-3.8.3/Objects/setobject.c:2482,1
    - Dst: PySet_Pop
      Src: /src/Python-3.8.3/Objects/setobject.c:2482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2485,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Objects/setobject.c:2485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2486,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2489,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2490,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2491,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2491,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2492,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/setobject.c:2493,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2494,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2495,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/setobject.c:2495,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/setobject.c:2496,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/setobject.c:2496,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/setobject.c:2500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - so
    - Py_UNUSED(ignored)
    argTypes:
    - PySetObject*
    - PyObject*
    assertStmts:
    - condition: (PySet_Clear(dup2) == 0)
      pos:
        line_end: 2432
        line_start: 2432
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 2)
      pos:
        line_end: 2421
        line_start: 2421
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Size(ob) == 3)
      pos:
        line_end: 2405
        line_start: 2405
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Size(dup2) == 3)
      pos:
        line_end: 2458
        line_start: 2458
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 3)
      pos:
        line_end: 2406
        line_start: 2406
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Add(ob, elem) == 0)
      pos:
        line_end: 2422
        line_start: 2422
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 3)
      pos:
        line_end: 2424
        line_start: 2424
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Discard(ob, elem) == 1)
      pos:
        line_end: 2425
        line_start: 2425
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (count == 3)
      pos:
        line_end: 2453
        line_start: 2453
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (!PyFrozenSet_CheckExact(ob))
      pos:
        line_end: 2391
        line_start: 2391
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 2)
      pos:
        line_end: 2428
        line_start: 2428
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (s && (s[0] == 'a' || s[0] == 'b' || s[0] == 'c'))
      pos:
        line_end: 2450
        line_start: 2450
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (f != NULL)
      pos:
        line_end: 2493
        line_start: 2493
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Add(f, elem) == 0)
      pos:
        line_end: 2440
        line_start: 2440
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 2)
      pos:
        line_end: 2426
        line_start: 2426
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(f) == 0)
      pos:
        line_end: 2490
        line_start: 2490
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyFrozenSet_CheckExact(f))
      pos:
        line_end: 2494
        line_start: 2494
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Discard(ob, elem) == 0)
      pos:
        line_end: 2427
        line_start: 2427
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyAnySet_Check(ob))
      pos:
        line_end: 2389
        line_start: 2389
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(f) == 0)
      pos:
        line_end: 2495
        line_start: 2495
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (_PySet_Update(dup2, dup) == 0)
      pos:
        line_end: 2459
        line_start: 2459
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Contains(ob, elem) == 0)
      pos:
        line_end: 2420
        line_start: 2420
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Contains(ob, elem) == 1)
      pos:
        line_end: 2423
        line_start: 2423
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Size(dup2) == 0)
      pos:
        line_end: 2433
        line_start: 2433
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Size(f) == 3)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_GET_SIZE(ob) == 0)
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PySet_Size(dup2) == 3)
      pos:
        line_end: 2460
        line_start: 2460
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyAnySet_CheckExact(ob))
      pos:
        line_end: 2390
        line_start: 2390
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (_PySet_Update(dup2, dup) == 0)
      pos:
        line_end: 2457
        line_start: 2457
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyNumber_InPlaceSubtract(ob, ob) == ob)
      pos:
        line_end: 2478
        line_start: 2478
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyNumber_InPlaceOr(ob, dup) == ob)
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (PyFrozenSet_CheckExact(f))
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/Python-3.8.3/Objects/setobject.c
    - condition: (f != NULL)
      pos:
        line_end: 2489
        line_start: 2489
        source_file: /src/Python-3.8.3/Objects/setobject.c
    constantsTouched: []
    func_position:
      end: 2502
      start: 2378
    functionDepth: 9
    functionLinenumber: 2378
    functionLinenumberEnd: 2502
    functionName: test_c_api
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceOr
    - PyUnicode_AsUTF8
    - PySet_Discard
    - PyAnySet_CheckExact
    - PyFrozenSet_New
    - Py_INCREF
    - PyFrozenSet_CheckExact
    - _PySet_NextEntry
    - assert
    - PySet_GET_SIZE
    - PySet_Add
    - set_clear_internal
    - PyUnicode_FromString
    - PyNumber_InPlaceSubtract
    - Py_DECREF
    - PySet_Pop
    - _PySet_Update
    - PySet_Size
    - PySet_Clear
    - PyTuple_New
    - set_update_internal
    - assertRaises
    - PySet_Contains
    - PySet_New
    - PyAnySet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      test_c_api(PySetObject *so, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/setobject.c:2513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2510
    functionDepth: 2
    functionLinenumber: 2510
    functionLinenumberEnd: 2514
    functionName: dummy_repr
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dummy_repr(PyObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/setobject.c:2519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ignore
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2520
    functionName: dummy_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/setobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void dummy_dealloc(PyObject* ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - version
    - ','
    - name_hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: MCACHE_HASH
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCACHE_HASH(version, name_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: MCACHE_HASH_METHOD
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCACHE_HASH_METHOD(type, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: MCACHE_CACHEABLE_NAME
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MCACHE_CACHEABLE_NAME(name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:101,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/typeobject.c:104,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/typeobject.c:108,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Objects/typeobject.c:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - doc
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (name != NULL)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 115
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 115
    functionName: find_signature
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - strrchr
    - strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      find_signature(const char *name, const char *doc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/Python-3.8.3/Objects/typeobject.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - doc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: skip_signature
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      skip_signature(const char *doc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/typeobject.c:143,1
    - Dst: _PyObject_IsFreed
      Src: /src/Python-3.8.3/Objects/typeobject.c:143,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/typeobject.c:150,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/typeobject.c:150,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/typeobject.c:151,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:151,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/typeobject.c:153,1
    - Dst: CHECK
      Src: /src/Python-3.8.3/Objects/typeobject.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 158
    functionName: _PyType_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_REFCNT
    - PyType_Check
    - _PyObject_IsFreed
    - CHECK
    linkageType: ''
    returnType: int
    signature: int _PyType_CheckConsistency(PyTypeObject *type)
  - 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: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: CHECK
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK(expr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_signature
      Src: /src/Python-3.8.3/Objects/typeobject.c:163,1
    - Dst: skip_signature
      Src: /src/Python-3.8.3/Objects/typeobject.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 171
    functionName: _PyType_DocWithoutSignature
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - find_signature
    - skip_signature
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyType_DocWithoutSignature(const char *name, const char *internal_doc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_DocWithoutSignature
      Src: /src/Python-3.8.3/Objects/typeobject.c:176,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: _PyType_GetDocFromInternalDoc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromString
    - _PyType_DocWithoutSignature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetDocFromInternalDoc(const char *name, const char *internal_doc)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_signature
      Src: /src/Python-3.8.3/Objects/typeobject.c:188,1
    - Dst: skip_signature
      Src: /src/Python-3.8.3/Objects/typeobject.c:192,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:201,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:202,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:203,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - internal_doc
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: ((end - start) >= 2)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (end[0] == '\n')
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (end[-1] == ')')
      pos:
        line_end: 201
        line_start: 201
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 4
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: _PyType_GetTextSignatureFromInternalDoc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - find_signature
    - assert
    - PyUnicode_FromStringAndSize
    - skip_signature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetTextSignatureFromInternalDoc(const char *name, const char *internal_doc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:215,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:217,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:219,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:221,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:227,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: PyType_ClearCache
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Modified
    - fprintf
    - Py_CLEAR
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PyType_ClearCache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_ClearCache
      Src: /src/Python-3.8.3/Objects/typeobject.c:239,1
    - Dst: clear_slotdefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: _PyType_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_ClearCache
    - clear_slotdefs
    linkageType: ''
    returnType: void
    signature: void _PyType_Fini(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:268,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:273,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:273,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/typeobject.c:275,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:276,1
    - Dst: PyWeakref_CheckRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:276,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/typeobject.c:277,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(raw))
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyWeakref_CheckRef(ref))
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 284
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 284
    functionName: PyType_Modified
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyDict_Next
    - PyWeakref_GET_OBJECT
    - PyType_Modified
    - PyDict_CheckExact
    - assert
    - PyType_HasFeature
    - PyWeakref_CheckRef
    linkageType: ''
    returnType: void
    signature: void PyType_Modified(PyTypeObject *type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:301,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:306,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:310,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:311,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:315,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:321,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:322,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:324,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:326,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:329,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:329,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:332,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:333,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:339,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_Check(b))
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 343
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 343
    functionName: type_mro_modified
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - PyTuple_GET_SIZE
    - _Py_IDENTIFIER
    - PyType_IsSubtype
    - PyType_Check
    - Py_TYPE
    - assert
    - PyType_HasFeature
    - Py_XDECREF
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: void
    signature: void type_mro_modified(PyTypeObject *type, PyObject *bases)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:356,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:358,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:360,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:373,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:374,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:377,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:381,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:383,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:384,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:384,1
    - Dst: assign_version_tag
      Src: /src/Python-3.8.3/Objects/typeobject.c:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(b))
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 390
      start: 345
    functionDepth: 4
    functionLinenumber: 345
    functionLinenumberEnd: 390
    functionName: assign_version_tag
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyType_Modified
    - PyType_Check
    - assert
    - PyType_HasFeature
    - assign_version_tag
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int assign_version_tag(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:410,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:415,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/typeobject.c:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - value
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 426
    functionName: check_set_special_type_attr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_set_special_type_attr(PyTypeObject *type, PyObject *value,
      const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/typeobject.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 439
    functionName: _PyType_Name
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 14
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyType_Name(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:447,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:451,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/typeobject.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 453
    functionName: type_name
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyType_Name
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_name(PyTypeObject *type, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:460,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:464,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/typeobject.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 466
    functionName: type_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - _PyType_Name
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_qualname(PyTypeObject *type, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/Python-3.8.3/Objects/typeobject.c:474,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:476,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:477,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:479,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:483,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/typeobject.c:486,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:487,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:493,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 497
    functionName: type_set_name
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - check_set_special_type_attr
    - strlen
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int type_set_name(PyTypeObject *type, PyObject *value, void *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/Python-3.8.3/Objects/typeobject.c:504,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:506,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:507,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:509,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:514,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 517
    functionName: type_set_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - check_set_special_type_attr
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int type_set_qualname(PyTypeObject *type, PyObject *value, void *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:525,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:527,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:528,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:532,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/typeobject.c:535,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:537,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/typeobject.c:540,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:543,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 548
    functionName: type_module
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - strrchr
    - PyErr_Occurred
    - PyUnicode_InternInPlace
    - _PyUnicode_FromId
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - PyErr_Format
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_module(PyTypeObject *type, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/Python-3.8.3/Objects/typeobject.c:553,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:556,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 6
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: type_set_module
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Modified
    - check_set_special_type_attr
    - _PyDict_SetItemId
    linkageType: ''
    returnType: int
    signature: int type_set_module(PyTypeObject *type, PyObject *value, void *context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:568,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:570,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:571,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/typeobject.c:573,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 561
    functionDepth: 5
    functionLinenumber: 561
    functionLinenumberEnd: 579
    functionName: type_abstractmethods
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - _PyUnicode_FromId
    - Py_INCREF
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_abstractmethods(PyTypeObject *type, void *context)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/typeobject.c:590,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:593,1
    - Dst: _PyDict_DelItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:597,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/typeobject.c:598,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:599,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/typeobject.c:601,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 581
    functionDepth: 6
    functionLinenumber: 581
    functionLinenumberEnd: 613
    functionName: type_set_abstractmethods
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - PyType_Modified
    - _PyDict_DelItemId
    - _PyDict_SetItemId
    - PyErr_SetObject
    - PyErr_ExceptionMatches
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int type_set_abstractmethods(PyTypeObject *type, PyObject *value, void
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: type_get_bases
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_bases(PyTypeObject *type, void *context)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mro_internal
      Src: /src/Python-3.8.3/Objects/typeobject.c:647,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:654,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:656,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/typeobject.c:659,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:666,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:669,1
    - Dst: type___subclasses___impl
      Src: /src/Python-3.8.3/Objects/typeobject.c:681,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:684,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:687,1
    - Dst: mro_hierarchy
      Src: /src/Python-3.8.3/Objects/typeobject.c:688,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - type
    - temp
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 695
    functionName: mro_hierarchy
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - mro_internal
    - type___subclasses___impl
    - PyTuple_Pack
    - PyList_GET_ITEM
    - PyList_Append
    - PyList_GET_SIZE
    - Py_XDECREF
    - mro_hierarchy
    linkageType: ''
    returnType: int
    signature: int mro_hierarchy(PyTypeObject *type, PyObject *temp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/Python-3.8.3/Objects/typeobject.c:706,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:708,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:709,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:711,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:714,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:715,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:720,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:724,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:725,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:726,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:728,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:733,1
    - Dst: type_is_subtype_base_chain
      Src: /src/Python-3.8.3/Objects/typeobject.c:743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:745,1
    - Dst: best_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:751,1
    - Dst: compatible_for_assignment
      Src: /src/Python-3.8.3/Objects/typeobject.c:755,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:758,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:759,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:767,1
    - Dst: mro_hierarchy
      Src: /src/Python-3.8.3/Objects/typeobject.c:770,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:772,1
    - Dst: remove_all_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:784,1
    - Dst: add_all_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:785,1
    - Dst: update_all_slots
      Src: /src/Python-3.8.3/Objects/typeobject.c:786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:790,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:792,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/typeobject.c:792,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:796,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:800,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:800,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:804,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:806,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:809,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:813,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:818,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:819,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:823,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:826,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/typeobject.c:826,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 3
    argNames:
    - type
    - new_bases
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 825
        line_start: 825
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (type->tp_base == new_base)
      pos:
        line_end: 812
        line_start: 812
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 828
      start: 697
    functionDepth: 5
    functionLinenumber: 697
    functionLinenumberEnd: 828
    functionName: type_set_bases
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - PyList_New
    - mro_hierarchy
    - update_all_slots
    - Py_INCREF
    - remove_all_subclasses
    - check_set_special_type_attr
    - _PyType_CheckConsistency
    - PyList_GET_ITEM
    - PyTuple_Check
    - PyErr_Format
    - add_all_subclasses
    - PyArg_UnpackTuple
    - assert
    - Py_DECREF
    - Py_TYPE
    - compatible_for_assignment
    - type_is_subtype_base_chain
    - PyType_Check
    - PyErr_SetString
    - best_base
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int type_set_bases(PyTypeObject *type, PyObject *new_bases, void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDictProxy_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 837
    functionName: type_dict
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDictProxy_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_dict(PyTypeObject *type, void *context)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetDocFromInternalDoc
      Src: /src/Python-3.8.3/Objects/typeobject.c:844,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:846,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:848,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:850,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:853,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:854,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 861
    functionName: type_get_doc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_INCREF
    - Py_TYPE
    - _PyType_GetDocFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_doc(PyTypeObject *type, void *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_GetTextSignatureFromInternalDoc
      Src: /src/Python-3.8.3/Objects/typeobject.c:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - context
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 5
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: type_get_text_signature
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_GetTextSignatureFromInternalDoc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_get_text_signature(PyTypeObject *type, void *context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_set_special_type_attr
      Src: /src/Python-3.8.3/Objects/typeobject.c:872,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:874,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - value
    - context
    argTypes:
    - PyTypeObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 869
    functionDepth: 6
    functionLinenumber: 869
    functionLinenumberEnd: 876
    functionName: type_set_doc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyType_Modified
    - check_set_special_type_attr
    - _PyDict_SetItemId
    linkageType: ''
    returnType: int
    signature: int type_set_doc(PyTypeObject *type, PyObject *value, void *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_RealIsInstance
      Src: /src/Python-3.8.3/Objects/typeobject.c:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 887
    functionDepth: 7
    functionLinenumber: 887
    functionLinenumberEnd: 892
    functionName: type___instancecheck___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_RealIsInstance
    linkageType: ''
    returnType: int
    signature: int type___instancecheck___impl(PyTypeObject *self, PyObject *instance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_RealIsSubclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - subclass
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 903
    functionDepth: 7
    functionLinenumber: 903
    functionLinenumberEnd: 908
    functionName: type___subclasscheck___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_RealIsSubclass
    linkageType: ''
    returnType: int
    signature: int type___subclasscheck___impl(PyTypeObject *self, PyObject *subclass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: type_module
      Src: /src/Python-3.8.3/Objects/typeobject.c:929,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:931,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:933,1
    - Dst: type_qualname
      Src: /src/Python-3.8.3/Objects/typeobject.c:936,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:938,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:942,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:943,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:947,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 924
    functionDepth: 8
    functionLinenumber: 924
    functionLinenumberEnd: 950
    functionName: type_repr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_module
    - type_qualname
    - Py_DECREF
    - PyUnicode_FromFormat
    - _PyUnicode_EqualToASCIIId
    - PyUnicode_Check
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_repr(PyTypeObject *type)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:958,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:968,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:968,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/Python-3.8.3/Objects/typeobject.c:971,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/typeobject.c:972,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:979,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:979,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:981,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:981,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:986,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:986,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:989,1
    - Dst: PyTypeObject*::tp_init
      Src: /src/Python-3.8.3/Objects/typeobject.c:991,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:993,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:993,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:994,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:998,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:998,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1002
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 1002
    functionName: type_call
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _Py_CheckFunctionResult
    - PyDict_GET_SIZE
    - PyDict_Check
    - PyType_IsSubtype
    - PyTypeObject*::tp_new
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - assert
    - PyTypeObject*::tp_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1008,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/typeobject.c:1011,1
    - Dst: _PyObject_GC_Malloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1012,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/typeobject.c:1014,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/typeobject.c:1017,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/typeobject.c:1019,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:1022,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:1024,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/typeobject.c:1026,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - type
    - nitems
    argTypes:
    - PyTypeObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1004
    functionDepth: 8
    functionLinenumber: 1004
    functionLinenumberEnd: 1029
    functionName: PyType_GenericAlloc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - _PyObject_GC_TRACK
    - PyObject_INIT_VAR
    - _PyObject_GC_Malloc
    - _PyObject_VAR_SIZE
    - memset
    - PyType_IS_GC
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: PyType_GenericNew
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1045,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:1046,1
    - Dst: visit
      Src: /src/Python-3.8.3/Objects/typeobject.c:1052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - type
    - self
    - visit
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1059
    functionName: traverse_slots
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyHeapType_GET_MEMBERS
    - visit
    linkageType: ''
    returnType: int
    signature: int traverse_slots(PyTypeObject *type, PyObject *self, visitproc visit,
      void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1069,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1072,1
    - Dst: traverse_slots
      Src: /src/Python-3.8.3/Objects/typeobject.c:1073,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1078,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:1082,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:1084,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:1091,1
    - Dst: basetraverse
      Src: /src/Python-3.8.3/Objects/typeobject.c:1094,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 1077
        line_start: 1077
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1096
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1096
    functionName: subtype_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - basetraverse
    - _PyObject_GetDictPtr
    - Py_VISIT
    - Py_TYPE
    - assert
    - Py_SIZE
    - traverse_slots
    linkageType: ''
    returnType: int
    signature: int subtype_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1104,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:1105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1112,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - type
    - self
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1116
    functionName: clear_slots
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_SIZE
    - PyHeapType_GET_MEMBERS
    linkageType: ''
    returnType: void
    signature: void clear_slots(PyTypeObject *type, PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1126,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1129,1
    - Dst: clear_slots
      Src: /src/Python-3.8.3/Objects/typeobject.c:1130,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1132,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:1138,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:1140,1
    - Dst: baseclear
      Src: /src/Python-3.8.3/Objects/typeobject.c:1144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (base)
      pos:
        line_end: 1131
        line_start: 1131
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1146
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1146
    functionName: subtype_clear
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - clear_slots
    - _PyObject_GetDictPtr
    - Py_TYPE
    - assert
    - baseclear
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int subtype_clear(PyObject *self)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1156,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:1157,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/typeobject.c:1161,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1168,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/Python-3.8.3/Objects/typeobject.c:1172,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1181,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1185,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1188,1
    - Dst: basedealloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1189,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1194,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/typeobject.c:1204,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/typeobject.c:1205,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1211,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1217,1
    - Dst: PyObject_CallFinalizerFromDealloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1218,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1222,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:1234,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1237,1
    - Dst: PyTypeObject*::tp_del
      Src: /src/Python-3.8.3/Objects/typeobject.c:1238,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1243,1
    - Dst: PyObject_GET_WEAKREFS_LISTPTR
      Src: /src/Python-3.8.3/Objects/typeobject.c:1253,1
    - Dst: _PyWeakref_ClearRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:1255,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1262,1
    - Dst: clear_slots
      Src: /src/Python-3.8.3/Objects/typeobject.c:1263,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1265,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:1270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1274,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1281,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/typeobject.c:1286,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:1287,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1288,1
    - Dst: basedealloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:1289,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1296,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (basedealloc)
      pos:
        line_end: 1187
        line_start: 1187
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 1264
        line_start: 1264
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (basedealloc)
      pos:
        line_end: 1287
        line_start: 1287
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 1180
        line_start: 1180
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (base)
      pos:
        line_end: 1210
        line_start: 1210
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1337
      start: 1148
    functionDepth: 3
    functionLinenumber: 1148
    functionLinenumberEnd: 1337
    functionName: subtype_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_CallFinalizerFromDealloc
    - Py_DECREF
    - clear_slots
    - basedealloc
    - PyTypeObject*::tp_del
    - _PyObject_ASSERT
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - _PyObject_GC_TRACK
    - _PyWeakref_ClearRef
    - Py_TYPE
    - _PyObject_GetDictPtr
    - Py_SIZE
    - assert
    - PyObject_GET_WEAKREFS_LISTPTR
    - PyObject_GC_UnTrack
    - PyType_IS_GC
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void subtype_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1353
    functionName: type_is_subtype_base_chain
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type_is_subtype_base_chain(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1365,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1365,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1366,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1368,1
    - Dst: type_is_subtype_base_chain
      Src: /src/Python-3.8.3/Objects/typeobject.c:1375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 1364
        line_start: 1364
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1376
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1376
    functionName: PyType_IsSubtype
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 18
    functionsReached:
    - type_is_subtype_base_chain
    - PyTuple_GET_SIZE
    - PyTuple_Check
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int PyType_IsSubtype(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:1398,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1398,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1401,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1402,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/typeobject.c:1404,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - self
    - attrid
    argTypes:
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1407
    functionName: _PyObject_LookupSpecial
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 16
    functionsReached:
    - _PyType_LookupId
    - f
    - Py_TYPE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_LookupSpecial(PyObject *self, _Py_Identifier *attrid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:1412,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1412,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:1417,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1417,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1420,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1424,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1426,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/typeobject.c:1429,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - self
    - attrid
    - unbound
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1433
    functionName: lookup_maybe_method
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - Py_TYPE
    - _PyType_LookupId
    - f
    - PyType_HasFeature
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_maybe_method(PyObject *self, _Py_Identifier *attrid, int *unbound)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:1438,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:1439,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/typeobject.c:1440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - self
    - attrid
    - unbound
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1443
    functionName: lookup_method
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - lookup_maybe_method
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      lookup_method(PyObject *self, _Py_Identifier *attrid, int *unbound)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_FastCall_Prepend
      Src: /src/Python-3.8.3/Objects/typeobject.c:1450,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:1453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - unbound
    - func
    - self
    - args
    - nargs
    argTypes:
    - int
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1455
    functionName: call_unbound
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_FastCall
    - _PyObject_FastCall_Prepend
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_unbound(int unbound, PyObject *func, PyObject *self,\n
      \            PyObject **args, Py_ssize_t nargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:1462,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/typeobject.c:1465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - unbound
    - func
    - self
    argTypes:
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: call_unbound_noarg
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArg
    - _PyObject_FastCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_unbound_noarg(int unbound, PyObject *func, PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:1478,1
    - Dst: call_unbound
      Src: /src/Python-3.8.3/Objects/typeobject.c:1482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - obj
    - name
    - args
    - nargs
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1485
    functionName: call_method
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - call_unbound
    - lookup_method
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_method(PyObject *obj, _Py_Identifier *name,\n            PyObject
      **args, Py_ssize_t nargs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:1496,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:1498,1
    - Dst: call_unbound
      Src: /src/Python-3.8.3/Objects/typeobject.c:1503,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - obj
    - name
    - args
    - nargs
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1489
    functionDepth: 2
    functionLinenumber: 1489
    functionLinenumberEnd: 1506
    functionName: call_maybe
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lookup_maybe_method
    - PyErr_Occurred
    - call_unbound
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_maybe(PyObject *obj, _Py_Identifier *name,\n           PyObject
      **args, Py_ssize_t nargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1540,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tuple
    - whence
    - o
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1547
    functionName: tail_contains
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int tail_contains(PyObject *tuple, int whence, PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:1553,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/typeobject.c:1554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1549
    functionDepth: 4
    functionLinenumber: 1549
    functionLinenumberEnd: 1557
    functionName: class_name
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - _PyObject_LookupAttrId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      class_name(PyObject *cls)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1566,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1568,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1570,1
    - Dst: class_name
      Src: /src/Python-3.8.3/Objects/typeobject.c:1571,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1573,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:1574,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:1578,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1559
    functionDepth: 5
    functionLinenumber: 1559
    functionLinenumberEnd: 1588
    functionName: check_duplicates
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - class_name
    linkageType: ''
    returnType: int
    signature: int check_duplicates(PyObject *tuple)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:1605,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1610,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1611,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:1612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1613,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1618,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:1620,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/typeobject.c:1623,1
    - Dst: class_name
      Src: /src/Python-3.8.3/Objects/typeobject.c:1624,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1627,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/typeobject.c:1628,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1635,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1636,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:1639,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1640,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:1646,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1647,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - to_merge
    - to_merge_size
    - remain
    argTypes:
    - PyObject**
    - Py_ssize_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1599
    functionDepth: 5
    functionLinenumber: 1599
    functionLinenumberEnd: 1648
    functionName: set_mro_error
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_Next
    - PyDict_GET_SIZE
    - PyDict_New
    - PyUnicode_AsUTF8
    - PyDict_SetItem
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - class_name
    linkageType: ''
    returnType: void
    signature: void set_mro_error(PyObject **to_merge, Py_ssize_t to_merge_size, int
      *remain)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:1661,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/typeobject.c:1663,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1676,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1688,1
    - Dst: tail_contains
      Src: /src/Python-3.8.3/Objects/typeobject.c:1691,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/typeobject.c:1694,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1700,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1701,1
    - Dst: set_mro_error
      Src: /src/Python-3.8.3/Objects/typeobject.c:1710,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Objects/typeobject.c:1715,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - acc
    - to_merge
    - to_merge_size
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1650
    functionDepth: 6
    functionLinenumber: 1650
    functionLinenumberEnd: 1718
    functionName: pmerge
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyMem_New
    - tail_contains
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - set_mro_error
    - PyList_Append
    - PyMem_Del
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int pmerge(PyObject *acc, PyObject **to_merge, Py_ssize_t to_merge_size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:1729,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1734,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1734,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1735,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1737,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:1739,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1744,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1744,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1751,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1752,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:1753,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1757,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1758,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1760,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1761,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1762,1
    - Dst: check_duplicates
      Src: /src/Python-3.8.3/Objects/typeobject.c:1768,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:1781,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/typeobject.c:1783,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1788,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:1793,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Objects/typeobject.c:1795,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1799,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1800,1
    - Dst: pmerge
      Src: /src/Python-3.8.3/Objects/typeobject.c:1801,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:1802,1
    - Dst: PyMem_Del
      Src: /src/Python-3.8.3/Objects/typeobject.c:1805,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 1733
        line_start: 1733
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyTuple_Check(base->tp_mro))
      pos:
        line_end: 1743
        line_start: 1743
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 1807
      start: 1720
    functionDepth: 7
    functionLinenumber: 1720
    functionLinenumberEnd: 1807
    functionName: mro_implementation
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_duplicates
    - PyMem_New
    - pmerge
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_NoMemory
    - PyList_SET_ITEM
    - PyTuple_Check
    - PyErr_Format
    - PyMem_Del
    - PyList_New
    - assert
    - PyType_Ready
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_implementation(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mro_implementation
      Src: /src/Python-3.8.3/Objects/typeobject.c:1820,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1821,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1822,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/typeobject.c:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1815
    functionDepth: 8
    functionLinenumber: 1815
    functionLinenumberEnd: 1825
    functionName: type_mro_impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyList_Check
    - Py_SETREF
    - mro_implementation
    - PySequence_List
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_mro_impl(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: solid_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:1833,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1835,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1840,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1841,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:1842,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1845,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:1850,1
    - Dst: solid_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:1850,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - type
    - mro
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1827
    functionDepth: 2
    functionLinenumber: 1827
    functionLinenumberEnd: 1860
    functionName: mro_check
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - solid_base
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int mro_check(PyTypeObject *type, PyObject *mro)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1881,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:1884,1
    - Dst: lookup_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:1886,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:1890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1891,1
    - Dst: mro_implementation
      Src: /src/Python-3.8.3/Objects/typeobject.c:1894,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:1899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1900,1
    - Dst: mro_check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1904,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1876
    functionDepth: 8
    functionLinenumber: 1876
    functionLinenumberEnd: 1910
    functionName: mro_invoke
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySequence_Tuple
    - _Py_IDENTIFIER
    - Py_TYPE
    - call_unbound_noarg
    - mro_implementation
    - mro_check
    - lookup_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mro_invoke(PyTypeObject *type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1944,1
    - Dst: mro_invoke
      Src: /src/Python-3.8.3/Objects/typeobject.c:1945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1947,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1952,1
    - Dst: type_mro_modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:1958,1
    - Dst: type_mro_modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:1961,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:1963,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:1968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - type
    - p_old_mro
    argTypes:
    - PyTypeObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1934
    functionDepth: 9
    functionLinenumber: 1934
    functionLinenumberEnd: 1971
    functionName: mro_internal
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyType_Modified
    - Py_XINCREF
    - type_mro_modified
    - mro_invoke
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int mro_internal(PyTypeObject *type, PyObject **p_old_mro)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1984,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1984,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:1985,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:1986,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:1990,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:1991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:1992,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:1999,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:2002,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2003,1
    - Dst: solid_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:2008,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:2013,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:2015,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2020,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - bases
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 1983
        line_start: 1983
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (n > 0)
      pos:
        line_end: 1985
        line_start: 1985
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (base != NULL)
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2030
      start: 1977
    functionDepth: 2
    functionLinenumber: 1977
    functionLinenumberEnd: 2030
    functionName: best_base
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_HasFeature
    - PyType_IsSubtype
    - PyTuple_Check
    - PyType_Check
    - PyErr_Format
    - PyErr_SetString
    - solid_base
    - assert
    - PyType_Ready
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      best_base(PyObject *bases)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2038,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 10
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (t_size >= b_size)
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2054
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2054
    functionName: extra_ivars
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int extra_ivars(PyTypeObject *type, PyTypeObject *base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: solid_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:2062,1
    - Dst: extra_ivars
      Src: /src/Python-3.8.3/Objects/typeobject.c:2065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2056
    functionDepth: 2
    functionLinenumber: 2056
    functionLinenumberEnd: 2069
    functionName: solid_base
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - extra_ivars
    - solid_base
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      solid_base(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2093
    functionName: get_builtin_base_with_dict
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      get_builtin_base_with_dict(PyTypeObject *type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2100,1
    - Dst: PyDescr_IsData
      Src: /src/Python-3.8.3/Objects/typeobject.c:2101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2105
    functionName: get_dict_descriptor
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyType_LookupId
    - PyDescr_IsData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_dict_descriptor(PyTypeObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2110,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2113
    functionName: raise_dict_descr_error
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void raise_dict_descr_error(PyObject *obj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin_base_with_dict
      Src: /src/Python-3.8.3/Objects/typeobject.c:2120,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2120,1
    - Dst: get_dict_descriptor
      Src: /src/Python-3.8.3/Objects/typeobject.c:2123,1
    - Dst: raise_dict_descr_error
      Src: /src/Python-3.8.3/Objects/typeobject.c:2125,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2128,1
    - Dst: raise_dict_descr_error
      Src: /src/Python-3.8.3/Objects/typeobject.c:2130,1
    - Dst: func
      Src: /src/Python-3.8.3/Objects/typeobject.c:2133,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2133,1
    - Dst: PyObject_GenericGetDict
      Src: /src/Python-3.8.3/Objects/typeobject.c:2135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2115
    functionDepth: 5
    functionLinenumber: 2115
    functionLinenumberEnd: 2136
    functionName: subtype_dict
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - func
    - PyObject_GenericGetDict
    - Py_TYPE
    - get_builtin_base_with_dict
    - get_dict_descriptor
    - raise_dict_descr_error
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subtype_dict(PyObject *obj, void *context)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_builtin_base_with_dict
      Src: /src/Python-3.8.3/Objects/typeobject.c:2144,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2144,1
    - Dst: get_dict_descriptor
      Src: /src/Python-3.8.3/Objects/typeobject.c:2147,1
    - Dst: raise_dict_descr_error
      Src: /src/Python-3.8.3/Objects/typeobject.c:2149,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2152,1
    - Dst: raise_dict_descr_error
      Src: /src/Python-3.8.3/Objects/typeobject.c:2154,1
    - Dst: func
      Src: /src/Python-3.8.3/Objects/typeobject.c:2157,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:2160,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2162,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2166,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2167,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2169,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2172,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - obj
    - value
    - context
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2175
    functionName: subtype_setdict
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyDict_Check
    - func
    - _PyObject_GetDictPtr
    - Py_TYPE
    - PyErr_Format
    - get_builtin_base_with_dict
    - get_dict_descriptor
    - raise_dict_descr_error
    - PyErr_SetString
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int subtype_setdict(PyObject *obj, PyObject *value, void *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2182,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2185,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:2189,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:2191,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2177
    functionDepth: 1
    functionLinenumber: 2177
    functionLinenumberEnd: 2201
    functionName: subtype_getweakref
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_INCREF
    - PyErr_SetString
    - _PyObject_ASSERT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      subtype_getweakref(PyObject *obj, void *context)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2228,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2229,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2231,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/Python-3.8.3/Objects/typeobject.c:2234,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2225
    functionDepth: 3
    functionLinenumber: 2225
    functionLinenumberEnd: 2240
    functionName: valid_identifier
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_IsIdentifier
    linkageType: ''
    returnType: int
    signature: int valid_identifier(PyObject *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2251,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2252,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2252,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2254,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2254,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2255,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2256,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2261,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2262,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2262,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2263,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Objects/typeobject.c:2270,1
    - Dst: object_init
      Src: /src/Python-3.8.3/Objects/typeobject.c:2274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2275,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 3
    argNames:
    - cls
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 2250
        line_start: 2250
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 2251
        line_start: 2251
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2277
      start: 2246
    functionDepth: 1
    functionLinenumber: 2246
    functionLinenumberEnd: 2277
    functionName: type_init
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyDict_Check
    - object_init
    - PyTuple_Check
    - PyErr_SetString
    - assert
    - PyTuple_GetSlice
    linkageType: ''
    returnType: int
    signature: int type_init(PyObject *cls, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2283
    functionName: PyType_GetFlags
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyType_GetFlags(PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2299,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2302,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2303,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:2304,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:2306,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2311,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - metatype
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2286
    functionDepth: 2
    functionLinenumber: 2286
    functionLinenumberEnd: 2319
    functionName: _PyType_CalculateMetaclass
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - Py_TYPE
    - PyErr_SetString
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      _PyType_CalculateMetaclass(PyTypeObject *metatype, PyObject *bases)'
  - BBCount: 92
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:2331,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:2332,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:2333,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2335,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2335,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2336,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2336,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2342,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2343,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2346,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2347,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2347,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2348,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2355,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:2362,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2367,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:2370,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:2376,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2378,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2379,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2382,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2389,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:2394,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Objects/typeobject.c:2401,1
    - Dst: best_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:2406,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2411,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Objects/typeobject.c:2416,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2421,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2428,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2442,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:2443,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:2445,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2448,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2448,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2451,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2453,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2462,1
    - Dst: valid_identifier
      Src: /src/Python-3.8.3/Objects/typeobject.c:2463,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2465,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2465,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2466,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2468,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2475,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2477,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:2491,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2495,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2497,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2499,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Objects/typeobject.c:2501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2503,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2506,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2507,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2511,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2512,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2516,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2521,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2526,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:2528,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Objects/typeobject.c:2529,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2530,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:2533,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2534,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2543,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2546,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2546,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:2565,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2571,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:2588,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/typeobject.c:2591,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2592,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2600,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2604,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2608,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2609,1
    - Dst: PyEval_GetGlobals
      Src: /src/Python-3.8.3/Objects/typeobject.c:2612,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2614,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2616,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2620,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2629,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2631,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2632,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2634,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2638,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2642,1
    - Dst: _PyDict_DelItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2643,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2651,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2652,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/typeobject.c:2657,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/typeobject.c:2661,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/typeobject.c:2662,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/typeobject.c:2664,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/typeobject.c:2667,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2670,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2677,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2678,1
    - Dst: PyStaticMethod_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:2679,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2686,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2688,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2694,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2695,1
    - Dst: PyClassMethod_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:2696,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2699,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2700,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2703,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2705,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2709,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2710,1
    - Dst: PyClassMethod_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:2711,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2715,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2718,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2720,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:2725,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/typeobject.c:2729,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:2730,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2737,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/typeobject.c:2737,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2738,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/typeobject.c:2738,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:2751,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:2757,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:2794,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:2797,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2798,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2800,1
    - Dst: PyCell_Set
      Src: /src/Python-3.8.3/Objects/typeobject.c:2803,1
    - Dst: _PyDict_DelItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:2804,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:2808,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:2813,1
    - Dst: fixup_slot_dispatchers
      Src: /src/Python-3.8.3/Objects/typeobject.c:2817,1
    - Dst: _PyDict_NewKeysForClass
      Src: /src/Python-3.8.3/Objects/typeobject.c:2820,1
    - Dst: set_names
      Src: /src/Python-3.8.3/Objects/typeobject.c:2823,1
    - Dst: init_subclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:2826,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2829,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2833,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2834,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2835,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2836,1
    CyclomaticComplexity: 180
    EdgeCount: 180
    ICount: 405
    argCount: 3
    argNames:
    - metatype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (strcmp(mp->name, "__dict__") != 0)
      pos:
        line_end: 2736
        line_start: 2736
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (j == nslots - add_dict - add_weak)
      pos:
        line_end: 2525
        line_start: 2525
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 2334
        line_start: 2334
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (strcmp(mp->name, "__weakref__") != 0)
      pos:
        line_end: 2737
        line_start: 2737
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyTuple_Check(slots))
      pos:
        line_end: 2447
        line_start: 2447
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyType_Check(tmp))
      pos:
        line_end: 2545
        line_start: 2545
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyUnicode_Check(tmp))
      pos:
        line_end: 2464
        line_start: 2464
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (!base->tp_itemsize)
      pos:
        line_end: 2750
        line_start: 2750
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (kwds == NULL || PyDict_Check(kwds))
      pos:
        line_end: 2335
        line_start: 2335
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 2838
      start: 2321
    functionDepth: 8
    functionLinenumber: 2321
    functionLinenumberEnd: 2838
    functionName: type_new
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 3
    functionsReached:
    - valid_identifier
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - PyFunction_Check
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - init_subclass
    - PyList_New
    - PyObject_MALLOC
    - _PyDict_GetItemIdWithError
    - _PyType_CalculateMetaclass
    - PyErr_Occurred
    - PyDict_GetItemWithError
    - PyList_AsTuple
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - PyDict_GET_SIZE
    - _PyDict_NewKeysForClass
    - PyHeapType_GET_MEMBERS
    - PyTuple_Pack
    - PyList_SET_ITEM
    - PyTuple_Check
    - strlen
    - PyUnicode_Check
    - PyErr_Format
    - PyStaticMethod_New
    - tp_new
    - PyClassMethod_New
    - assert
    - Py_XDECREF
    - PyArg_ParseTuple
    - _PyUnicode_EqualToASCIIString
    - Py_DECREF
    - PyDict_Check
    - Py_TYPE
    - _PyUnicode_EqualToASCIIId
    - PyEval_GetGlobals
    - PyCell_Set
    - PyCell_Check
    - PyType_Ready
    - strcmp
    - memcpy
    - PySequence_Tuple
    - PyList_Sort
    - _Py_Mangle
    - _PyDict_DelItemId
    - PyErr_NoMemory
    - PyUnicode_AsUTF8AndSize
    - PyType_Check
    - fixup_slot_dispatchers
    - PyErr_SetString
    - best_base
    - PyDict_Copy
    - PyTuple_GET_ITEM
    - set_names
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:2867,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2873,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/typeobject.c:2879,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2888,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2892,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2904,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:2908,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2913,1
    - Dst: best_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:2916,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:2920,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:2921,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:2936,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/typeobject.c:2944,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:2945,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/Python-3.8.3/Objects/typeobject.c:2955,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/typeobject.c:2956,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/typeobject.c:2957,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/typeobject.c:2960,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/typeobject.c:2963,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:2968,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/typeobject.c:2969,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:2969,1
    - Dst: PyHeapType_GET_MEMBERS
      Src: /src/Python-3.8.3/Objects/typeobject.c:2970,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:2984,1
    - Dst: _PyDict_NewKeysForClass
      Src: /src/Python-3.8.3/Objects/typeobject.c:2988,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/typeobject.c:2992,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:2995,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3001,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:3005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3014,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 127
    argCount: 2
    argNames:
    - spec
    - bases
    argTypes:
    - PyType_Spec*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2845
    functionDepth: 9
    functionLinenumber: 2845
    functionLinenumberEnd: 3016
    functionName: PyType_FromSpecWithBases
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - _PyType_DocWithoutSignature
    - Py_ARRAY_LENGTH
    - _PyDict_SetItemId
    - PyObject_MALLOC
    - PyErr_WarnFormat
    - _PyDict_NewKeysForClass
    - Py_INCREF
    - PyHeapType_GET_MEMBERS
    - PyTuple_Pack
    - strlen
    - PyErr_Format
    - PyType_GenericAlloc
    - PyUnicode_FromString
    - strrchr
    - Py_DECREF
    - Py_TYPE
    - PyType_Ready
    - PyType_HasFeature
    - memcpy
    - PyUnicode_FromStringAndSize
    - PyErr_NoMemory
    - PyErr_SetString
    - best_base
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpecWithBases(PyType_Spec *spec, PyObject *bases)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_FromSpecWithBases
      Src: /src/Python-3.8.3/Objects/typeobject.c:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyType_Spec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3018
    functionDepth: 10
    functionLinenumber: 3018
    functionLinenumberEnd: 3022
    functionName: PyType_FromSpec
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 21
    functionsReached:
    - PyType_FromSpecWithBases
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyType_FromSpec(PyType_Spec *spec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:3027,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:3028,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/typeobject.c:3031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - type
    - slot
    argTypes:
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3036
      start: 3024
    functionDepth: 1
    functionLinenumber: 3024
    functionLinenumberEnd: 3036
    functionName: PyType_GetSlot
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyType_HasFeature
    - PyErr_BadInternalCall
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: 'void *

      PyType_GetSlot(PyTypeObject *type, int slot)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:3048,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/typeobject.c:3051,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:3063,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3078,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3079,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3079,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3080,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:3082,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3083,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3083,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3085,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3085,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/typeobject.c:3086,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:3089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3096,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - type
    - name
    - error
    argTypes:
    - PyTypeObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 3078
        line_start: 3078
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyType_Check(base))
      pos:
        line_end: 3082
        line_start: 3082
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (dict && PyDict_Check(dict))
      pos:
        line_end: 3084
        line_start: 3084
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3098
      start: 3041
    functionDepth: 3
    functionLinenumber: 3041
    functionLinenumberEnd: 3098
    functionName: find_name_in_mro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - _PyDict_GetItem_KnownHash
    - PyDict_Check
    - PyTuple_Check
    - PyType_Check
    - PyObject_Hash
    - PyType_Ready
    - PyTuple_GET_ITEM
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_name_in_mro(PyTypeObject *type, PyObject *name, int *error)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MCACHE_CACHEABLE_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:3109,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Objects/typeobject.c:3110,1
    - Dst: MCACHE_HASH_METHOD
      Src: /src/Python-3.8.3/Objects/typeobject.c:3112,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:3123,1
    - Dst: find_name_in_mro
      Src: /src/Python-3.8.3/Objects/typeobject.c:3125,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:3137,1
    - Dst: MCACHE_CACHEABLE_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:3142,1
    - Dst: assign_version_tag
      Src: /src/Python-3.8.3/Objects/typeobject.c:3142,1
    - Dst: MCACHE_HASH_METHOD
      Src: /src/Python-3.8.3/Objects/typeobject.c:3143,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3146,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3147,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 3122
        line_start: 3122
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (((PyASCIIObject *)(name))->hash != -1)
      pos:
        line_end: 3146
        line_start: 3146
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3157
      start: 3102
    functionDepth: 5
    functionLinenumber: 3102
    functionLinenumberEnd: 3157
    functionName: _PyType_Lookup
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 6
    functionsReached:
    - MCACHE_CACHEABLE_NAME
    - PyErr_Clear
    - PyErr_Occurred
    - MCACHE_HASH_METHOD
    - Py_INCREF
    - find_name_in_mro
    - Py_SETREF
    - assert
    - PyType_HasFeature
    - assign_version_tag
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_Lookup(PyTypeObject *type, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3163,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/typeobject.c:3166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3167
      start: 3159
    functionDepth: 6
    functionLinenumber: 3159
    functionLinenumberEnd: 3167
    functionName: _PyType_LookupId
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - _PyType_Lookup
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_LookupId(PyTypeObject *type, struct _Py_Identifier *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/typeobject.c:3174,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/typeobject.c:3175,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/typeobject.c:3178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3171
    functionDepth: 1
    functionLinenumber: 3171
    functionLinenumberEnd: 3185
    functionName: is_dunder_name
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: int
    signature: int is_dunder_name(PyObject *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3192,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3197,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3198,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:3206,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/typeobject.c:3214,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3217,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3218,1
    - Dst: PyDescr_IsData
      Src: /src/Python-3.8.3/Objects/typeobject.c:3220,1
    - Dst: meta_get
      Src: /src/Python-3.8.3/Objects/typeobject.c:3225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3227,1
    - Dst: _PyType_Lookup
      Src: /src/Python-3.8.3/Objects/typeobject.c:3234,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3237,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3238,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3240,1
    - Dst: local_get
      Src: /src/Python-3.8.3/Objects/typeobject.c:3245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3247,1
    - Dst: meta_get
      Src: /src/Python-3.8.3/Objects/typeobject.c:3258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3260,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3270,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3274
      start: 3189
    functionDepth: 6
    functionLinenumber: 3189
    functionLinenumberEnd: 3274
    functionName: type_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_IsData
    - _PyType_Lookup
    - Py_INCREF
    - meta_get
    - Py_DECREF
    - local_get
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyType_Ready
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_getattro(PyTypeObject *type, PyObject *name)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3281,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3287,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:3288,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/typeobject.c:3289,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3291,1
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Objects/typeobject.c:3294,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/typeobject.c:3298,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/typeobject.c:3299,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/typeobject.c:3300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:3301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3303,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3310,1
    - Dst: _PyObject_GenericSetAttrWithDict
      Src: /src/Python-3.8.3/Objects/typeobject.c:3312,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:3319,1
    - Dst: is_dunder_name
      Src: /src/Python-3.8.3/Objects/typeobject.c:3321,1
    - Dst: update_slot
      Src: /src/Python-3.8.3/Objects/typeobject.c:3322,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3324,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/typeobject.c:3324,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - type
    - name
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 3323
        line_start: 3323
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3328
      start: 3276
    functionDepth: 5
    functionLinenumber: 3276
    functionLinenumberEnd: 3328
    functionName: type_setattro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_InternInPlace
    - Py_DECREF
    - Py_INCREF
    - PyType_Modified
    - _PyType_CheckConsistency
    - _PyObject_GenericSetAttrWithDict
    - PyErr_Format
    - _PyUnicode_Copy
    - PyErr_SetString
    - is_dunder_name
    - PyUnicode_Check
    - assert
    - update_slot
    - PyUnicode_CHECK_INTERNED
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int type_setattro(PyTypeObject *type, PyObject *name, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3340,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:3341,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/typeobject.c:3342,1
    - Dst: remove_all_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:3343,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/typeobject.c:3344,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:3345,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3347,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3348,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3349,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3350,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3351,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3352,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Objects/typeobject.c:3356,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3357,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3358,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3359,1
    - Dst: _PyDictKeys_DecRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:3361,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3333
    functionDepth: 3
    functionLinenumber: 3333
    functionLinenumberEnd: 3363
    functionName: type_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDictKeys_DecRef
    - PyErr_Fetch
    - remove_all_subclasses
    - _PyObject_ASSERT
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PyObject_Free
    - PyErr_Restore
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void type_dealloc(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:3378,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3384,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:3384,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/typeobject.c:3386,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3387,1
    - Dst: PyWeakref_CheckRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:3387,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3388,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/typeobject.c:3390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyWeakref_CheckRef(ref))
      pos:
        line_end: 3386
        line_start: 3386
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyDict_CheckExact(raw))
      pos:
        line_end: 3383
        line_start: 3383
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3397
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3397
    functionName: type___subclasses___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_Next
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - PyDict_CheckExact
    - PyList_Append
    - PyList_New
    - assert
    - PyWeakref_CheckRef
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasses___impl(PyTypeObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:3403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3404
      start: 3399
    functionDepth: 4
    functionLinenumber: 3399
    functionLinenumberEnd: 3404
    functionName: type_prepare
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntype_prepare(PyObject *self, PyObject *const *args, Py_ssize_t
      nargs,\n             PyObject *kwnames)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:3419,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3421,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3421,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3422,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3425,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Objects/typeobject.c:3429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3430,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3436,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/typeobject.c:3442,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3444,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:3450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3452,1
    - Dst: merge_class_dict
      Src: /src/Python-3.8.3/Objects/typeobject.c:3455,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3456,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3458,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - dict
    - aclass
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (aclass)
      pos:
        line_end: 3421
        line_start: 3421
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyDict_Check(dict))
      pos:
        line_end: 3420
        line_start: 3420
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3466
      start: 3414
    functionDepth: 7
    functionLinenumber: 3414
    functionLinenumberEnd: 3466
    functionName: merge_class_dict
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PySequence_Size
    - _PyObject_LookupAttrId
    - PySequence_GetItem
    - PyDict_Check
    - _Py_IDENTIFIER
    - merge_class_dict
    - assert
    - PyDict_Update
    linkageType: ''
    returnType: int
    signature: int merge_class_dict(PyObject *dict, PyObject *aclass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:3483,1
    - Dst: merge_class_dict
      Src: /src/Python-3.8.3/Objects/typeobject.c:3485,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/typeobject.c:3486,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3490
      start: 3478
    functionDepth: 8
    functionLinenumber: 3478
    functionLinenumberEnd: 3490
    functionName: type___dir___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_XDECREF
    - PyDict_Keys
    - merge_class_dict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___dir___impl(PyTypeObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_KeysSize
      Src: /src/Python-3.8.3/Objects/typeobject.c:3507,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:3511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3498
    functionDepth: 2
    functionLinenumber: 3498
    functionLinenumberEnd: 3512
    functionName: type___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_KeysSize
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___sizeof___impl(PyTypeObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/Python-3.8.3/Objects/typeobject.c:3541,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/typeobject.c:3543,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3546,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3547,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3548,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3549,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - type
    - visit
    - arg
    argTypes:
    - PyTypeObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3534
    functionDepth: 1
    functionLinenumber: 3534
    functionLinenumberEnd: 3558
    functionName: type_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - Py_VISIT
    - sprintf
    linkageType: ''
    returnType: int
    signature: int type_traverse(PyTypeObject *type, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:3566,1
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:3594,1
    - Dst: _PyDictKeys_DecRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:3598,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:3601,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:3602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3560
    functionDepth: 4
    functionLinenumber: 3560
    functionLinenumberEnd: 3605
    functionName: type_clear
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _PyDictKeys_DecRef
    - PyType_Modified
    - _PyObject_ASSERT
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int type_clear(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3611
      start: 3607
    functionDepth: 0
    functionLinenumber: 3607
    functionLinenumberEnd: 3611
    functionName: type_is_gc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type_is_gc(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3707,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3708,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3709
      start: 3704
    functionDepth: 1
    functionLinenumber: 3704
    functionLinenumberEnd: 3709
    functionName: excess_args
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GET_SIZE
    - PyDict_Check
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int excess_args(PyObject *args, PyObject *kwds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3714,1
    - Dst: excess_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:3715,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:3717,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3729
      start: 3711
    functionDepth: 2
    functionLinenumber: 3711
    functionLinenumberEnd: 3729
    functionName: object_init
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - excess_args
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int object_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: excess_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:3734,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:3736,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3741,1
    - Dst: _Py_static_string
      Src: /src/Python-3.8.3/Objects/typeobject.c:3752,1
    - Dst: type_abstractmethods
      Src: /src/Python-3.8.3/Objects/typeobject.c:3756,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/typeobject.c:3759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3760,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Objects/typeobject.c:3763,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3764,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3767,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3769,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Objects/typeobject.c:3772,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3773,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3777,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3782,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/typeobject.c:3785,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3731
    functionDepth: 7
    functionLinenumber: 3731
    functionLinenumberEnd: 3786
    functionName: object_new
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PyUnicode_Join
    - Py_DECREF
    - _PyUnicode_FromId
    - PyTypeObject*::tp_alloc
    - type_abstractmethods
    - PyList_Sort
    - _Py_static_string
    - PyErr_Format
    - excess_args
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3788
    functionDepth: 1
    functionLinenumber: 3788
    functionLinenumberEnd: 3792
    functionName: object_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void object_dealloc(PyObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3800,1
    - Dst: type_module
      Src: /src/Python-3.8.3/Objects/typeobject.c:3801,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:3803,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3804,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3805,1
    - Dst: type_qualname
      Src: /src/Python-3.8.3/Objects/typeobject.c:3808,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3810,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:3813,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:3814,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:3816,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3818,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3794
    functionDepth: 8
    functionLinenumber: 3794
    functionLinenumberEnd: 3821
    functionName: object_repr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - type_module
    - type_qualname
    - Py_DECREF
    - PyUnicode_FromFormat
    - Py_TYPE
    - _PyUnicode_EqualToASCIIId
    - PyUnicode_Check
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_repr(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3828,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/typeobject.c:3831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3832
      start: 3823
    functionDepth: 1
    functionLinenumber: 3823
    functionLinenumberEnd: 3832
    functionName: object_str
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_str(PyObject *self)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3846,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3854,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/typeobject.c:3859,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3860,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3868,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3880
      start: 3834
    functionDepth: 2
    functionLinenumber: 3834
    functionLinenumberEnd: 3880
    functionName: object_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:3885,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3885,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - closure
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3887
      start: 3882
    functionDepth: 1
    functionLinenumber: 3882
    functionLinenumberEnd: 3887
    functionName: object_get_class
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_get_class(PyObject *self, void *closure)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3902
      start: 3889
    functionDepth: 0
    functionLinenumber: 3889
    functionLinenumberEnd: 3902
    functionName: compatible_with_tp_base
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compatible_with_tp_base(PyTypeObject *child)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:3911,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/typeobject.c:3926,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3928,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (base == b->tp_base)
      pos:
        line_end: 3910
        line_start: 3910
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 3931
      start: 3904
    functionDepth: 4
    functionLinenumber: 3904
    functionLinenumberEnd: 3931
    functionName: same_slots_added
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_RichCompareBool
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int same_slots_added(PyTypeObject *a, PyTypeObject *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3939,1
    - Dst: compatible_with_tp_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:3959,1
    - Dst: compatible_with_tp_base
      Src: /src/Python-3.8.3/Objects/typeobject.c:3961,1
    - Dst: same_slots_added
      Src: /src/Python-3.8.3/Objects/typeobject.c:3965,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - oldto
    - newto
    - attr
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3976
      start: 3933
    functionDepth: 5
    functionLinenumber: 3933
    functionLinenumberEnd: 3976
    functionName: compatible_for_assignment
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - same_slots_added
    - PyErr_Format
    - compatible_with_tp_base
    linkageType: ''
    returnType: int
    signature: int compatible_for_assignment(PyTypeObject* oldto, PyTypeObject* newto,
      const char* attr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3981,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:3985,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:3989,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:3990,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:3992,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/typeobject.c:3995,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:4050,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:4051,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4054,1
    - Dst: compatible_for_assignment
      Src: /src/Python-3.8.3/Objects/typeobject.c:4060,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4062,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4063,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4065,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - self
    - value
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 3978
    functionDepth: 6
    functionLinenumber: 3978
    functionLinenumberEnd: 4071
    functionName: object_set_class
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyType_IsSubtype
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PySys_Audit
    - compatible_for_assignment
    linkageType: ''
    returnType: int
    signature: int object_set_class(PyObject *self, PyObject *value, void *closure)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4092,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4094,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Objects/typeobject.c:4103,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4107,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Objects/typeobject.c:4110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4087
    functionDepth: 2
    functionLinenumber: 4087
    functionLinenumberEnd: 4111
    functionName: import_copyreg
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - PyImport_GetModule
    - PyImport_Import
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_copyreg(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4118,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4119,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:4121,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4121,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:4124,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4126,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4127,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4130,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4133,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4137,1
    - Dst: import_copyreg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4143,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:4150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4152,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:4157,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - cls
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (PyType_Check(cls))
      pos:
        line_end: 4120
        line_start: 4120
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4164
      start: 4113
    functionDepth: 5
    functionLinenumber: 4113
    functionLinenumberEnd: 4164
    functionName: _PyType_GetSlotNames
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodIdObjArgs
    - import_copyreg
    - _Py_IDENTIFIER
    - PyList_Check
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyType_GetSlotNames(PyTypeObject *cls)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4171,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4173,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4180,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4182,1
    - Dst: _PyObject_GetDictPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:4188,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4194,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4200,1
    - Dst: _PyType_GetSlotNames
      Src: /src/Python-3.8.3/Objects/typeobject.c:4203,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4205,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:4209,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4209,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4217,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4220,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4221,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4223,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4228,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:4232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4235,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4239,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4243,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4244,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Objects/typeobject.c:4245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4249,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:4253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4255,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4263,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4264,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4274,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4281,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:4284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4295,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4299,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 2
    argNames:
    - obj
    - required
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (slotnames == Py_None || PyList_Check(slotnames))
      pos:
        line_end: 4208
        line_start: 4208
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4305
      start: 4166
    functionDepth: 6
    functionLinenumber: 4166
    functionLinenumberEnd: 4305
    functionName: _PyObject_GetState
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_GET_SIZE
    - _PyObject_LookupAttrId
    - PyDict_New
    - _Py_IDENTIFIER
    - PyList_Check
    - PyList_GET_ITEM
    - PyTuple_Pack
    - _PyObject_GetDictPtr
    - _PyType_GetSlotNames
    - PyList_GET_SIZE
    - PyErr_Format
    - Py_TYPE
    - _PyObject_LookupAttr
    - PyDict_SetItem
    - assert
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_GetState(PyObject *obj, int required)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4311,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4312,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:4315,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/typeobject.c:4321,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4324,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4328,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4329,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4331,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4332,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4335,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4336,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4339,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4342,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4343,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4344,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4345,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4346,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4349,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4350,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4353,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4354,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4355,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4358,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4359,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4362,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4363,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4364,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4368,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/typeobject.c:4374,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4376,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4377,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4381,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4382,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4384,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4385,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4390,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 66
    argCount: 3
    argNames:
    - obj
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4307
    functionDepth: 2
    functionLinenumber: 4307
    functionLinenumberEnd: 4401
    functionName: _PyObject_GetNewArguments
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_Occurred
    - PyErr_BadInternalCall
    - _Py_IDENTIFIER
    - PyDict_Check
    - _PyObject_LookupSpecial
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - _PyObject_CallNoArg
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetNewArguments(PyObject *obj, PyObject **args, PyObject
      **kwargs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:4408,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4412,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4414,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/typeobject.c:4417,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4422,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4424,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4428,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:4430,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4432,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/typeobject.c:4435,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4436,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:4438,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:4443,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - obj
    - listitems
    - dictitems
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (*listitems != NULL && *dictitems != NULL)
      pos:
        line_end: 4442
        line_start: 4442
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 4446
      start: 4403
    functionDepth: 3
    functionLinenumber: 4403
    functionLinenumberEnd: 4446
    functionName: _PyObject_GetItemsIter
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - _PyObject_CallMethodIdObjArgs
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyList_Check
    - _Py_IDENTIFIER
    - assert
    - PyObject_GetIter
    linkageType: ''
    returnType: int
    signature: "int _PyObject_GetItemsIter(PyObject *obj, PyObject **listitems,\n
      \                      PyObject **dictitems)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4457,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4458,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4460,1
    - Dst: _PyObject_GetNewArguments
      Src: /src/Python-3.8.3/Objects/typeobject.c:4463,1
    - Dst: import_copyreg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4466,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4468,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4469,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4473,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4474,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4478,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4479,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4480,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4482,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4485,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:4486,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4489,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4492,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4493,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4494,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4496,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4497,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:4498,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4500,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4503,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4509,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:4512,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4512,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4514,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4522,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:4523,1
    - Dst: _PyObject_GetState
      Src: /src/Python-3.8.3/Objects/typeobject.c:4527,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4528,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4528,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4531,1
    - Dst: _PyObject_GetItemsIter
      Src: /src/Python-3.8.3/Objects/typeobject.c:4534,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4537,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:4541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4545,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4546,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 79
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4448
    functionDepth: 7
    functionLinenumber: 4448
    functionLinenumberEnd: 4548
    functionName: reduce_newobj
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetItemsIter
    - PyTuple_GET_SIZE
    - _PyObject_GetAttrId
    - _PyObject_GetNewArguments
    - PyErr_BadInternalCall
    - _Py_IDENTIFIER
    - Py_INCREF
    - PyDict_GET_SIZE
    - import_copyreg
    - PyTuple_Pack
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyDict_Check
    - PyList_Check
    - Py_TYPE
    - PyTuple_New
    - _PyObject_GetState
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reduce_newobj(PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reduce_newobj
      Src: /src/Python-3.8.3/Objects/typeobject.c:4571,1
    - Dst: import_copyreg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4573,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Objects/typeobject.c:4577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - proto
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4581
      start: 4565
    functionDepth: 8
    functionLinenumber: 4565
    functionLinenumberEnd: 4581
    functionName: _common_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - reduce_newobj
    - import_copyreg
    - PyObject_CallMethod
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _common_reduce(PyObject *self, int proto)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _common_reduce
      Src: /src/Python-3.8.3/Objects/typeobject.c:4593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4594
      start: 4589
    functionDepth: 0
    functionLinenumber: 4589
    functionLinenumberEnd: 4594
    functionName: object___reduce___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _common_reduce
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce___impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:4611,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4614,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4618,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4625,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4632,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/typeobject.c:4634,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4635,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4639,1
    - Dst: _common_reduce
      Src: /src/Python-3.8.3/Objects/typeobject.c:4642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - self
    - protocol
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4605
    functionDepth: 5
    functionLinenumber: 4605
    functionLinenumberEnd: 4643
    functionName: object___reduce_ex___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _common_reduce
    - _PyDict_GetItemId
    - Py_TYPE
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce_ex___impl(PyObject *self, int protocol)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4649
      start: 4645
    functionDepth: 0
    functionLinenumber: 4645
    functionLinenumberEnd: 4649
    functionName: object_subclasshook
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_subclasshook(PyObject *cls, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cls
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4663
      start: 4659
    functionDepth: 0
    functionLinenumber: 4659
    functionLinenumberEnd: 4663
    functionName: object_init_subclass
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_init_subclass(PyObject *cls, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/typeobject.c:4686,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:4687,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/typeobject.c:4692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4680
    functionDepth: 5
    functionLinenumber: 4680
    functionLinenumberEnd: 4693
    functionName: object___format___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Str
    - PyErr_Format
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:4710,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:4713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4714
      start: 4701
    functionDepth: 0
    functionLinenumber: 4701
    functionLinenumberEnd: 4714
    functionName: object___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___sizeof___impl(PyObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4734,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:4738,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:4740,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4741,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:4742,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Objects/typeobject.c:4746,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4747,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:4755,1
    - Dst: merge_class_dict
      Src: /src/Python-3.8.3/Objects/typeobject.c:4760,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/typeobject.c:4763,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4766,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4767,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4769
      start: 4725
    functionDepth: 8
    functionLinenumber: 4725
    functionLinenumberEnd: 4769
    functionName: object___dir___impl
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_LookupAttrId
    - PyDict_New
    - PyDict_Check
    - PyDict_Keys
    - merge_class_dict
    - PyDict_Copy
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___dir___impl(PyObject *self)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:4847,1
    - Dst: PyDescr_NewClassMethod
      Src: /src/Python-3.8.3/Objects/typeobject.c:4851,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/typeobject.c:4854,1
    - Dst: PyStaticMethod_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:4857,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4859,1
    - Dst: PyDescr_NewMethod
      Src: /src/Python-3.8.3/Objects/typeobject.c:4862,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:4868,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:4871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4873,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:4879,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4883,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4888,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:4893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4895,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4897,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - type
    - meth
    argTypes:
    - PyTypeObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4902
      start: 4835
    functionDepth: 5
    functionLinenumber: 4835
    functionLinenumberEnd: 4902
    functionName: add_methods
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDescr_NAME
    - PyDescr_NewClassMethod
    - PyCFunction_NewEx
    - PyStaticMethod_New
    - PyDict_SetItem
    - PyErr_SetString
    - PyDescr_NewMethod
    linkageType: ''
    returnType: int
    signature: int add_methods(PyTypeObject *type, PyMethodDef *meth)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_NewMember
      Src: /src/Python-3.8.3/Objects/typeobject.c:4910,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:4914,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:4914,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4915,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4918,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4919,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:4922,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:4922,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4923,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - type
    - memb
    argTypes:
    - PyTypeObject*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4929
      start: 4904
    functionDepth: 5
    functionLinenumber: 4904
    functionLinenumberEnd: 4929
    functionName: add_members
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDescr_NAME
    - PyDict_SetItem
    - PyDescr_NewMember
    linkageType: ''
    returnType: int
    signature: int add_members(PyTypeObject *type, PyMemberDef *memb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDescr_NewGetSet
      Src: /src/Python-3.8.3/Objects/typeobject.c:4937,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:4941,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:4941,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4942,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:4945,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4946,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:4949,1
    - Dst: PyDescr_NAME
      Src: /src/Python-3.8.3/Objects/typeobject.c:4949,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:4953,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - type
    - gsp
    argTypes:
    - PyTypeObject*
    - PyGetSetDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4956
      start: 4931
    functionDepth: 5
    functionLinenumber: 4931
    functionLinenumberEnd: 4956
    functionName: add_getset
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDescr_NAME
    - PyDescr_NewGetSet
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int add_getset(PyTypeObject *type, PyGetSetDef *gsp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: COPYVAL
      Src: /src/Python-3.8.3/Objects/typeobject.c:4998,1
    - Dst: COPYVAL
      Src: /src/Python-3.8.3/Objects/typeobject.c:4999,1
    - Dst: COPYVAL
      Src: /src/Python-3.8.3/Objects/typeobject.c:5000,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5003,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5005,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5007,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5009,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5011,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5013,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5015,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:5017,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5019
      start: 4958
    functionDepth: 2
    functionLinenumber: 4958
    functionLinenumberEnd: 5019
    functionName: inherit_special
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - COPYVAL
    - PyType_IsSubtype
    linkageType: ''
    returnType: void
    signature: void inherit_special(PyTypeObject *type, PyTypeObject *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4995
    functionDepth: 0
    functionLinenumber: 4995
    functionLinenumberEnd: 4997
    functionName: COPYVAL
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYVAL(SLOT)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:5025,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5027,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:5028,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:5030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (dict != NULL)
      pos:
        line_end: 5026
        line_start: 5026
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5033
      start: 5021
    functionDepth: 5
    functionLinenumber: 5021
    functionLinenumberEnd: 5033
    functionName: overrides_hash
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyDict_GetItemId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int overrides_hash(PyTypeObject *type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5067,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5068,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5069,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5070,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5071,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5072,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5073,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5074,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5075,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5076,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5077,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5078,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5079,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5080,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5081,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5082,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5083,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5084,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5085,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5086,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5087,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5088,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5089,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5090,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5091,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5092,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5093,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5094,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5095,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5096,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5097,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5098,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5099,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5100,1
    - Dst: COPYNUM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5101,1
    - Dst: COPYASYNC
      Src: /src/Python-3.8.3/Objects/typeobject.c:5108,1
    - Dst: COPYASYNC
      Src: /src/Python-3.8.3/Objects/typeobject.c:5109,1
    - Dst: COPYASYNC
      Src: /src/Python-3.8.3/Objects/typeobject.c:5110,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5117,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5118,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5119,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5120,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5121,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5122,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5123,1
    - Dst: COPYSEQ
      Src: /src/Python-3.8.3/Objects/typeobject.c:5124,1
    - Dst: COPYMAP
      Src: /src/Python-3.8.3/Objects/typeobject.c:5131,1
    - Dst: COPYMAP
      Src: /src/Python-3.8.3/Objects/typeobject.c:5132,1
    - Dst: COPYMAP
      Src: /src/Python-3.8.3/Objects/typeobject.c:5133,1
    - Dst: COPYBUF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5140,1
    - Dst: COPYBUF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5141,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5146,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5155,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5161,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5171,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5173,1
    - Dst: overrides_hash
      Src: /src/Python-3.8.3/Objects/typeobject.c:5179,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5186,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5187,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5190,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5200,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5201,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5202,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5203,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5204,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5205,1
    - Dst: COPYSLOT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5209,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 120
    argCount: 2
    argNames:
    - type
    - base
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5035
    functionDepth: 6
    functionLinenumber: 5035
    functionLinenumberEnd: 5225
    functionName: inherit_slots
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - COPYNUM
    - COPYMAP
    - COPYBUF
    - COPYASYNC
    - COPYSEQ
    - overrides_hash
    - COPYSLOT
    linkageType: ''
    returnType: void
    signature: void inherit_slots(PyTypeObject *type, PyTypeObject *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5050
      start: 5047
    functionDepth: 0
    functionLinenumber: 5047
    functionLinenumberEnd: 5050
    functionName: SLOTDEFINED
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOTDEFINED(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5051
    functionDepth: 0
    functionLinenumber: 5051
    functionLinenumberEnd: 5053
    functionName: COPYSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYSLOT(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5055
      start: 5054
    functionDepth: 0
    functionLinenumber: 5054
    functionLinenumberEnd: 5055
    functionName: COPYASYNC
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYASYNC(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5055
    functionDepth: 0
    functionLinenumber: 5055
    functionLinenumberEnd: 5056
    functionName: COPYNUM
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYNUM(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5057
      start: 5056
    functionDepth: 0
    functionLinenumber: 5056
    functionLinenumberEnd: 5057
    functionName: COPYSEQ
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYSEQ(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5058
      start: 5057
    functionDepth: 0
    functionLinenumber: 5057
    functionLinenumberEnd: 5058
    functionName: COPYMAP
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYMAP(SLOT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SLOT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5059
      start: 5058
    functionDepth: 0
    functionLinenumber: 5058
    functionLinenumberEnd: 5059
    functionName: COPYBUF
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPYBUF(SLOT)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5237,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/typeobject.c:5237,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5240,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5250,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5253,1
    - Dst: _PyObject_ASSERT
      Src: /src/Python-3.8.3/Objects/typeobject.c:5254,1
    - Dst: _Py_AddToAllObjects
      Src: /src/Python-3.8.3/Objects/typeobject.c:5265,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:5269,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5278,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/typeobject.c:5287,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5298,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5299,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5299,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:5305,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/typeobject.c:5307,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:5316,1
    - Dst: add_operators
      Src: /src/Python-3.8.3/Objects/typeobject.c:5323,1
    - Dst: add_methods
      Src: /src/Python-3.8.3/Objects/typeobject.c:5326,1
    - Dst: add_members
      Src: /src/Python-3.8.3/Objects/typeobject.c:5330,1
    - Dst: add_getset
      Src: /src/Python-3.8.3/Objects/typeobject.c:5334,1
    - Dst: mro_internal
      Src: /src/Python-3.8.3/Objects/typeobject.c:5339,1
    - Dst: inherit_special
      Src: /src/Python-3.8.3/Objects/typeobject.c:5344,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5348,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5349,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5349,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5350,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5352,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5353,1
    - Dst: inherit_slots
      Src: /src/Python-3.8.3/Objects/typeobject.c:5354,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5360,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5361,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:5363,1
    - Dst: PyType_IS_GC
      Src: /src/Python-3.8.3/Objects/typeobject.c:5372,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:5377,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:5387,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5388,1
    - Dst: _PyType_DocWithoutSignature
      Src: /src/Python-3.8.3/Objects/typeobject.c:5392,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:5394,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:5397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5401,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:5403,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:5416,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5417,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:5418,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5443,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5445,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5446,1
    - Dst: add_subclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:5447,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5454,1
    - Dst: _PyType_CheckConsistency
      Src: /src/Python-3.8.3/Objects/typeobject.c:5454,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 151
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts:
    - condition: (bases != NULL)
      pos:
        line_end: 5347
        line_start: 5347
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 5348
        line_start: 5348
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 5236
        line_start: 5236
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (_PyType_CheckConsistency(type))
      pos:
        line_end: 5453
        line_start: 5453
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5460
      start: 5229
    functionDepth: 10
    functionLinenumber: 5229
    functionLinenumberEnd: 5460
    functionName: PyType_Ready
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 103
    functionsReached:
    - add_operators
    - add_members
    - _PyType_DocWithoutSignature
    - PyTuple_GET_SIZE
    - _PyDict_SetItemId
    - _PyObject_ASSERT
    - _PyDict_GetItemIdWithError
    - add_getset
    - PyErr_Occurred
    - Py_INCREF
    - _PyType_CheckConsistency
    - PyTuple_Pack
    - PyTuple_Check
    - PyErr_Format
    - assert
    - _Py_AddToAllObjects
    - PyUnicode_FromString
    - Py_DECREF
    - mro_internal
    - add_subclass
    - add_methods
    - Py_TYPE
    - inherit_special
    - PyType_Ready
    - PyTuple_New
    - PyType_IS_GC
    - PyDict_New
    - PyType_Check
    - inherit_slots
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int PyType_Ready(PyTypeObject *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:5470,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5474,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:5474,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:5475,1
    - Dst: PyWeakref_NewRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:5478,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:5480,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 5473
        line_start: 5473
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5485
      start: 5462
    functionDepth: 5
    functionLinenumber: 5462
    functionLinenumberEnd: 5485
    functionName: add_subclass
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - PyDict_CheckExact
    - PyDict_SetItem
    - assert
    - PyLong_FromVoidPtr
    - PyWeakref_NewRef
    linkageType: ''
    returnType: int
    signature: int add_subclass(PyTypeObject *base, PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5494,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5495,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5496,1
    - Dst: add_subclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:5497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5503
      start: 5487
    functionDepth: 6
    functionLinenumber: 5487
    functionLinenumberEnd: 5503
    functionName: add_all_subclasses
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - add_subclass
    - PyType_Check
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int add_all_subclasses(PyTypeObject *type, PyObject *bases)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5514,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:5514,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Objects/typeobject.c:5515,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:5516,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:5520,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:5522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - base
    - type
    argTypes:
    - PyTypeObject*
    - PyTypeObject*
    assertStmts:
    - condition: (PyDict_CheckExact(dict))
      pos:
        line_end: 5513
        line_start: 5513
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5523
      start: 5505
    functionDepth: 4
    functionLinenumber: 5505
    functionLinenumberEnd: 5523
    functionName: remove_subclass
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItem
    - PyDict_CheckExact
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: void
    signature: void remove_subclass(PyTypeObject *base, PyTypeObject *type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5530,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5531,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:5532,1
    - Dst: remove_subclass
      Src: /src/Python-3.8.3/Objects/typeobject.c:5533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - type
    - bases
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5536
      start: 5525
    functionDepth: 5
    functionLinenumber: 5525
    functionLinenumberEnd: 5536
    functionName: remove_all_subclasses
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 2
    functionsReached:
    - PyType_Check
    - remove_subclass
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void remove_all_subclasses(PyTypeObject *type, PyObject *bases)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:5541,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:5542,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5546,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:5548,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ob
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5552
      start: 5538
    functionDepth: 1
    functionLinenumber: 5538
    functionLinenumberEnd: 5552
    functionName: check_num_args
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyErr_Format
    - PyErr_SetString
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int check_num_args(PyObject *ob, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5568,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5571,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:5573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5574
      start: 5562
    functionDepth: 2
    functionLinenumber: 5562
    functionLinenumberEnd: 5574
    functionName: wrap_lenfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - check_num_args
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_lenfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5582,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5585,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/typeobject.c:5587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5588
      start: 5576
    functionDepth: 2
    functionLinenumber: 5576
    functionLinenumberEnd: 5588
    functionName: wrap_inquirypred
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - check_num_args
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_inquirypred(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5596,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5600
      start: 5590
    functionDepth: 2
    functionLinenumber: 5590
    functionLinenumberEnd: 5600
    functionName: wrap_binaryfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_binaryfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5608,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5602
    functionDepth: 2
    functionLinenumber: 5602
    functionLinenumberEnd: 5612
    functionName: wrap_binaryfunc_l
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_binaryfunc_l(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5620,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5624
      start: 5614
    functionDepth: 2
    functionLinenumber: 5614
    functionLinenumberEnd: 5624
    functionName: wrap_binaryfunc_r
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_binaryfunc_r(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5638
      start: 5626
    functionDepth: 1
    functionLinenumber: 5626
    functionLinenumberEnd: 5638
    functionName: wrap_ternaryfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_ternaryfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5652
      start: 5640
    functionDepth: 1
    functionLinenumber: 5640
    functionLinenumberEnd: 5652
    functionName: wrap_ternaryfunc_r
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_ternaryfunc_r(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5654
    functionDepth: 2
    functionLinenumber: 5654
    functionLinenumberEnd: 5662
    functionName: wrap_unaryfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_unaryfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5671,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:5673,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5677
      start: 5664
    functionDepth: 3
    functionLinenumber: 5664
    functionLinenumberEnd: 5677
    functionName: wrap_indexargfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_indexargfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:5684,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5685,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5688,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5692,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5692,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 5691
        line_start: 5691
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5699
      start: 5679
    functionDepth: 3
    functionLinenumber: 5679
    functionLinenumberEnd: 5699
    functionName: getindex
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 4
    functionsReached:
    - assert
    - PyNumber_AsSsize_t
    - PyErr_Occurred
    - Py_TYPE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t getindex(PyObject *self, PyObject *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5708,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5709,1
    - Dst: getindex
      Src: /src/Python-3.8.3/Objects/typeobject.c:5710,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5711,1
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5715,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:5716,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 5715
        line_start: 5715
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 5718
      start: 5701
    functionDepth: 4
    functionLinenumber: 5701
    functionLinenumberEnd: 5718
    functionName: wrap_sq_item
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - getindex
    - check_num_args
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_sq_item(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5728,1
    - Dst: getindex
      Src: /src/Python-3.8.3/Objects/typeobject.c:5730,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5731,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5737
      start: 5720
    functionDepth: 4
    functionLinenumber: 5720
    functionLinenumberEnd: 5737
    functionName: wrap_sq_setitem
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - getindex
    - PyErr_Occurred
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_sq_setitem(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5747,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5749,1
    - Dst: getindex
      Src: /src/Python-3.8.3/Objects/typeobject.c:5750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5751,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5757
      start: 5739
    functionDepth: 4
    functionLinenumber: 5739
    functionLinenumberEnd: 5757
    functionName: wrap_sq_delitem
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - getindex
    - check_num_args
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_sq_delitem(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5767,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5769,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5771,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/typeobject.c:5774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5775
      start: 5760
    functionDepth: 2
    functionLinenumber: 5760
    functionLinenumberEnd: 5775
    functionName: wrap_objobjproc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - check_num_args
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_objobjproc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5784,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5790
      start: 5777
    functionDepth: 1
    functionLinenumber: 5777
    functionLinenumberEnd: 5790
    functionName: wrap_objobjargproc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_objobjargproc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5799,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5801,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5792
    functionDepth: 2
    functionLinenumber: 5792
    functionLinenumberEnd: 5806
    functionName: wrap_delitem
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_delitem(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:5813,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:5819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - self
    - func
    - what
    argTypes:
    - PyObject*
    - setattrofunc
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5826
      start: 5810
    functionDepth: 1
    functionLinenumber: 5810
    functionLinenumberEnd: 5826
    functionName: hackcheck
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: int
    signature: int hackcheck(PyObject *self, setattrofunc func, const char *what)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5835,1
    - Dst: hackcheck
      Src: /src/Python-3.8.3/Objects/typeobject.c:5837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5843
      start: 5828
    functionDepth: 2
    functionLinenumber: 5828
    functionLinenumberEnd: 5843
    functionName: wrap_setattr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - hackcheck
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_setattr(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5852,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5854,1
    - Dst: hackcheck
      Src: /src/Python-3.8.3/Objects/typeobject.c:5855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5861
      start: 5845
    functionDepth: 2
    functionLinenumber: 5845
    functionLinenumberEnd: 5861
    functionName: wrap_delattr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - hackcheck
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_delattr(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5869,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5872,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:5874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5875
      start: 5863
    functionDepth: 2
    functionLinenumber: 5863
    functionLinenumberEnd: 5875
    functionName: wrap_hashfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - check_num_args
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_hashfunc(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5883
      start: 5877
    functionDepth: 0
    functionLinenumber: 5877
    functionLinenumberEnd: 5883
    functionName: wrap_call
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_call(PyObject *self, PyObject *args, void *wrapped, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5895
      start: 5885
    functionDepth: 2
    functionLinenumber: 5885
    functionLinenumberEnd: 5895
    functionName: wrap_del
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_del(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5903,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5907
      start: 5897
    functionDepth: 2
    functionLinenumber: 5897
    functionLinenumberEnd: 5907
    functionName: wrap_richcmpfunc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_richcmpfunc(PyObject *self, PyObject *args, void *wrapped, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5916
      start: 5910
    functionDepth: 0
    functionLinenumber: 5910
    functionLinenumberEnd: 5916
    functionName: RICHCMP_WRAPPER
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RICHCMP_WRAPPER(NAME, OP)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5930,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:5933,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Objects/typeobject.c:5934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5936
      start: 5924
    functionDepth: 2
    functionLinenumber: 5924
    functionLinenumberEnd: 5936
    functionName: wrap_next
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyErr_Occurred
    - PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_next(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5945,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:5952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5957
      start: 5938
    functionDepth: 1
    functionLinenumber: 5938
    functionLinenumberEnd: 5957
    functionName: wrap_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_descr_get(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:5966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5972
      start: 5959
    functionDepth: 1
    functionLinenumber: 5959
    functionLinenumberEnd: 5972
    functionName: wrap_descr_set
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_descr_set(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_num_args
      Src: /src/Python-3.8.3/Objects/typeobject.c:5981,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:5983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - wrapped
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5988
      start: 5974
    functionDepth: 2
    functionLinenumber: 5974
    functionLinenumberEnd: 5988
    functionName: wrap_descr_delete
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - check_num_args
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_descr_delete(PyObject *self, PyObject *args, void *wrapped)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Objects/typeobject.c:5995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - args
    - wrapped
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5998
      start: 5990
    functionDepth: 0
    functionLinenumber: 5990
    functionLinenumberEnd: 5998
    functionName: wrap_init
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - func
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      wrap_init(PyObject *self, PyObject *args, void *wrapped, PyObject *kwds)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:6006,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/typeobject.c:6007,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:6009,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6009,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6010,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:6015,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:6016,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6017,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6020,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:6024,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6025,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6043,1
    - Dst: PyTuple_GetSlice
      Src: /src/Python-3.8.3/Objects/typeobject.c:6051,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6051,1
    - Dst: PyTypeObject*::tp_new
      Src: /src/Python-3.8.3/Objects/typeobject.c:6054,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6055,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6057
      start: 6000
    functionDepth: 2
    functionLinenumber: 6000
    functionLinenumberEnd: 6057
    functionName: tp_new_wrapper
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyType_IsSubtype
    - Py_FatalError
    - PyTuple_Check
    - PyType_Check
    - PyErr_Format
    - Py_TYPE
    - PyTypeObject*::tp_new
    - PyTuple_GET_ITEM
    - PyTuple_GetSlice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tp_new_wrapper(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:6072,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:6074,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/typeobject.c:6076,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6079,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6067
    functionDepth: 6
    functionLinenumber: 6067
    functionLinenumberEnd: 6085
    functionName: add_tp_new_wrapper
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_DECREF
    - _PyDict_SetItemId
    - PyCFunction_NewEx
    linkageType: ''
    returnType: int
    signature: int add_tp_new_wrapper(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FUNCNAME
    - ','
    - OPSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6090
    functionDepth: 0
    functionLinenumber: 6090
    functionLinenumberEnd: 6097
    functionName: SLOT0
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT0(FUNCNAME, OPSTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNCNAME
    - ','
    - OPSTR
    - ','
    - ARG1TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6106
      start: 6098
    functionDepth: 0
    functionLinenumber: 6098
    functionLinenumberEnd: 6106
    functionName: SLOT1
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1(FUNCNAME, OPSTR, ARG1TYPE)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6115,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6115,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6123,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6123,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6128,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/typeobject.c:6133,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6134,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - left
    - right
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6137
      start: 6109
    functionDepth: 4
    functionLinenumber: 6109
    functionLinenumberEnd: 6137
    functionName: method_is_overloaded
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupAttrId
    - PyObject_RichCompareBool
    - Py_TYPE
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int method_is_overloaded(PyObject *left, PyObject *right, struct _Py_Identifier
      *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - FUNCNAME
    - ','
    - TESTFUNC
    - ','
    - SLOTNAME
    - ','
    - OPSTR
    - ','
    - ROPSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6180
      start: 6140
    functionDepth: 0
    functionLinenumber: 6140
    functionLinenumberEnd: 6180
    functionName: SLOT1BINFULL
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1BINFULL(FUNCNAME, TESTFUNC, SLOTNAME, OPSTR, ROPSTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - FUNCNAME
    - ','
    - SLOTNAME
    - ','
    - OPSTR
    - ','
    - ROPSTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6183
      start: 6181
    functionDepth: 0
    functionLinenumber: 6181
    functionLinenumberEnd: 6183
    functionName: SLOT1BIN
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SLOT1BIN(FUNCNAME, SLOTNAME, OPSTR, ROPSTR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6187,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6193,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/typeobject.c:6193,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:6197,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:6197,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:6200,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:6205,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:6206,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/typeobject.c:6206,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(res))
      pos:
        line_end: 6196
        line_start: 6196
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (len >= 0 || PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 6205
        line_start: 6205
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 6209
      start: 6184
    functionDepth: 3
    functionLinenumber: 6184
    functionLinenumberEnd: 6209
    functionName: slot_sq_length
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - PyNumber_Index
    - PyErr_ExceptionMatches
    - Py_SIZE
    - PyErr_SetString
    - assert
    - call_method
    - PyNumber_AsSsize_t
    - Py_SETREF
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t slot_sq_length(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:6216,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6224
      start: 6211
    functionDepth: 1
    functionLinenumber: 6211
    functionLinenumberEnd: 6224
    functionName: slot_sq_item
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - PyLong_FromSsize_t
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_sq_item(PyObject *self, Py_ssize_t i)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/typeobject.c:6233,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6240,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - self
    - index
    - value
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6253
      start: 6226
    functionDepth: 1
    functionLinenumber: 6226
    functionLinenumberEnd: 6253
    functionName: slot_sq_ass_item
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - PyLong_FromSsize_t
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6260,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6264,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6265,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6267,1
    - Dst: call_unbound
      Src: /src/Python-3.8.3/Objects/typeobject.c:6272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6273,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/typeobject.c:6275,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6276,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:6279,1
    - Dst: _PySequence_IterSearch
      Src: /src/Python-3.8.3/Objects/typeobject.c:6281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6285
      start: 6255
    functionDepth: 5
    functionLinenumber: 6255
    functionLinenumberEnd: 6285
    functionName: slot_sq_contains
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - call_unbound
    - PyErr_Format
    - Py_TYPE
    - PyObject_IsTrue
    - _PySequence_IterSearch
    linkageType: ''
    returnType: int
    signature: int slot_sq_contains(PyObject *self, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6327,1
    - Dst: slot_nb_power_binary
      Src: /src/Python-3.8.3/Objects/typeobject.c:6330,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6334,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6335,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - self
    - other
    - modulus
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6340
      start: 6324
    functionDepth: 1
    functionLinenumber: 6324
    functionLinenumberEnd: 6340
    functionName: slot_nb_power
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - slot_nb_power_binary
    - _Py_IDENTIFIER
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_nb_power(PyObject *self, PyObject *other, PyObject *modulus)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6352,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6354,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:6356,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6360,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:6362,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6370,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/typeobject.c:6377,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:6379,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/typeobject.c:6380,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6383,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6391,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6397
      start: 6346
    functionDepth: 2
    functionLinenumber: 6346
    functionLinenumberEnd: 6397
    functionName: slot_nb_bool
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - PyObject_IsTrue
    - PyBool_Check
    - call_unbound_noarg
    linkageType: ''
    returnType: int
    signature: int slot_nb_bool(PyObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6403,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6405
      start: 6400
    functionDepth: 1
    functionLinenumber: 6400
    functionLinenumberEnd: 6405
    functionName: slot_nb_index
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_nb_index(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6512,1
    - Dst: lookup_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6514,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/Python-3.8.3/Objects/typeobject.c:6521,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Objects/typeobject.c:6524,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6529
      start: 6509
    functionDepth: 3
    functionLinenumber: 6509
    functionLinenumberEnd: 6529
    functionName: slot_tp_call
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyObject_Call
    - _PyObject_Call_Prepend
    - lookup_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_call(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6547
      start: 6542
    functionDepth: 0
    functionLinenumber: 6542
    functionLinenumberEnd: 6547
    functionName: slot_tp_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_getattro(PyObject *self, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6553,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/typeobject.c:6556,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6556,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:6562,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - self
    - attr
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6549
    functionDepth: 1
    functionLinenumber: 6549
    functionLinenumberEnd: 6565
    functionName: call_attribute
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - f
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      call_attribute(PyObject *self, PyObject *attr, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6570,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6572,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6579,1
    - Dst: slot_tp_getattro
      Src: /src/Python-3.8.3/Objects/typeobject.c:6583,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6585,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6591,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6593,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Objects/typeobject.c:6596,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6598,1
    - Dst: call_attribute
      Src: /src/Python-3.8.3/Objects/typeobject.c:6599,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6600,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/typeobject.c:6602,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:6603,1
    - Dst: call_attribute
      Src: /src/Python-3.8.3/Objects/typeobject.c:6604,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6608
      start: 6567
    functionDepth: 7
    functionLinenumber: 6567
    functionLinenumberEnd: 6608
    functionName: slot_tp_getattr_hook
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - Py_INCREF
    - slot_tp_getattro
    - _Py_IDENTIFIER
    - Py_TYPE
    - PyObject_GenericGetAttr
    - PyErr_ExceptionMatches
    - _PyType_LookupId
    - call_attribute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_getattr_hook(PyObject *self, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6615,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6616,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6620,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6630
      start: 6610
    functionDepth: 1
    functionLinenumber: 6610
    functionLinenumberEnd: 6630
    functionName: slot_tp_setattro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - call_method
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int slot_tp_setattro(PyObject *self, PyObject *name, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6647,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:6649,1
    - Dst: call_unbound
      Src: /src/Python-3.8.3/Objects/typeobject.c:6654,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6657
      start: 6641
    functionDepth: 2
    functionLinenumber: 6641
    functionLinenumberEnd: 6657
    functionName: slot_tp_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - lookup_maybe_method
    - PyErr_Clear
    - call_unbound
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6664,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6668,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6669,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6671,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6676,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6677,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:6681,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6682,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6684,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6686,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6689,1
    - Dst: PySeqIter_New
      Src: /src/Python-3.8.3/Objects/typeobject.c:6690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6691
      start: 6659
    functionDepth: 3
    functionLinenumber: 6659
    functionLinenumberEnd: 6691
    functionName: slot_tp_iter
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - Py_DECREF
    - _Py_IDENTIFIER
    - PySeqIter_New
    - PyErr_Format
    - Py_TYPE
    - PyErr_Clear
    - call_unbound_noarg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_iter(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6696,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6698
      start: 6693
    functionDepth: 1
    functionLinenumber: 6693
    functionLinenumberEnd: 6698
    functionName: slot_tp_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - call_method
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_iternext(PyObject *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6703,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6705,1
    - Dst: _PyType_LookupId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6707,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6712,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:6719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6720
      start: 6700
    functionDepth: 7
    functionLinenumber: 6700
    functionLinenumberEnd: 6720
    functionName: slot_tp_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_IDENTIFIER
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - _PyType_LookupId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6727,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6728,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6732,1
    - Dst: call_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6736,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - self
    - target
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6722
    functionDepth: 1
    functionLinenumber: 6722
    functionLinenumberEnd: 6742
    functionName: slot_tp_descr_set
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - call_method
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int slot_tp_descr_set(PyObject *self, PyObject *target, PyObject *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6747,1
    - Dst: lookup_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6749,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/Python-3.8.3/Objects/typeobject.c:6755,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Objects/typeobject.c:6758,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6760,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6764,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6766,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6767,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6772
      start: 6744
    functionDepth: 3
    functionLinenumber: 6744
    functionLinenumberEnd: 6772
    functionName: slot_tp_init
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - PyObject_Call
    - _PyObject_Call_Prepend
    - lookup_method
    linkageType: ''
    returnType: int
    signature: int slot_tp_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:6779,1
    - Dst: _PyObject_Call_Prepend
      Src: /src/Python-3.8.3/Objects/typeobject.c:6784,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6787
      start: 6774
    functionDepth: 2
    functionLinenumber: 6774
    functionLinenumberEnd: 6787
    functionName: slot_tp_new
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - _PyObject_Call_Prepend
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6792,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/typeobject.c:6798,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6801,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6803,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/typeobject.c:6805,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6807,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6808,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Objects/typeobject.c:6812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6813
      start: 6789
    functionDepth: 2
    functionLinenumber: 6789
    functionLinenumberEnd: 6813
    functionName: slot_tp_finalize
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - Py_DECREF
    - PyErr_Fetch
    - PyErr_WriteUnraisable
    - _Py_IDENTIFIER
    - PyErr_Restore
    - call_unbound_noarg
    linkageType: ''
    returnType: void
    signature: void slot_tp_finalize(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6820,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6822,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6824,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6825,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6828,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6832
      start: 6815
    functionDepth: 2
    functionLinenumber: 6815
    functionLinenumberEnd: 6832
    functionName: slot_am_await
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - call_unbound_noarg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_await(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6839,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6841,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6843,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6844,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6847,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6851
      start: 6834
    functionDepth: 2
    functionLinenumber: 6834
    functionLinenumberEnd: 6851
    functionName: slot_am_aiter
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - call_unbound_noarg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_aiter(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/typeobject.c:6858,1
    - Dst: lookup_maybe_method
      Src: /src/Python-3.8.3/Objects/typeobject.c:6860,1
    - Dst: call_unbound_noarg
      Src: /src/Python-3.8.3/Objects/typeobject.c:6862,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:6863,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:6866,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:6868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6870
      start: 6853
    functionDepth: 2
    functionLinenumber: 6853
    functionLinenumberEnd: 6870
    functionName: slot_am_anext
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - lookup_maybe_method
    - Py_DECREF
    - _Py_IDENTIFIER
    - PyErr_Format
    - Py_TYPE
    - call_unbound_noarg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      slot_am_anext(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6900
      start: 6897
    functionDepth: 0
    functionLinenumber: 6897
    functionLinenumberEnd: 6900
    functionName: TPSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - ','
    - FLAGS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6903
      start: 6900
    functionDepth: 0
    functionLinenumber: 6900
    functionLinenumberEnd: 6903
    functionName: FLSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC, FLAGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6906
      start: 6903
    functionDepth: 0
    functionLinenumber: 6903
    functionLinenumberEnd: 6906
    functionName: ETSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ETSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6906
    functionDepth: 0
    functionLinenumber: 6906
    functionLinenumberEnd: 6908
    functionName: AMSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AMSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6910
      start: 6908
    functionDepth: 0
    functionLinenumber: 6908
    functionLinenumberEnd: 6910
    functionName: SQSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6912
      start: 6910
    functionDepth: 0
    functionLinenumber: 6910
    functionLinenumberEnd: 6912
    functionName: MPSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6914
      start: 6912
    functionDepth: 0
    functionLinenumber: 6912
    functionLinenumberEnd: 6914
    functionName: NBSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NBSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6917
      start: 6914
    functionDepth: 0
    functionLinenumber: 6914
    functionLinenumberEnd: 6917
    functionName: UNSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - WRAPPER
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6920
      start: 6917
    functionDepth: 0
    functionLinenumber: 6917
    functionLinenumberEnd: 6920
    functionName: IBSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBSLOT(NAME, SLOT, FUNCTION, WRAPPER, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6923
      start: 6920
    functionDepth: 0
    functionLinenumber: 6920
    functionLinenumberEnd: 6923
    functionName: BINSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINSLOT(NAME, SLOT, FUNCTION, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6926
      start: 6923
    functionDepth: 0
    functionLinenumber: 6923
    functionLinenumberEnd: 6926
    functionName: RBINSLOT
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBINSLOT(NAME, SLOT, FUNCTION, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6929
      start: 6926
    functionDepth: 0
    functionLinenumber: 6926
    functionLinenumberEnd: 6929
    functionName: BINSLOTNOTINFIX
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - NAME
    - ','
    - SLOT
    - ','
    - FUNCTION
    - ','
    - DOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6932
      start: 6929
    functionDepth: 0
    functionLinenumber: 6929
    functionLinenumberEnd: 6932
    functionName: RBINSLOTNOTINFIX
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RBINSLOTNOTINFIX(NAME, SLOT, FUNCTION, DOC)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7132,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 7131
        line_start: 7131
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: ((size_t)offset < offsetof(PyHeapTypeObject, as_buffer))
      pos:
        line_end: 7132
        line_start: 7132
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7156
      start: 7125
    functionDepth: 1
    functionLinenumber: 7125
    functionLinenumberEnd: 7156
    functionName: slotptr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: 'void **

      slotptr(PyTypeObject *type, int ioffset)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: slotptr
      Src: /src/Python-3.8.3/Objects/typeobject.c:7192,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7200
      start: 7166
    functionDepth: 2
    functionLinenumber: 7166
    functionLinenumberEnd: 7200
    functionName: resolve_slotdups
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - slotptr
    linkageType: ''
    returnType: void
    signature: 'void **

      resolve_slotdups(PyTypeObject *type, PyObject *name)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: slotptr
      Src: /src/Python-3.8.3/Objects/typeobject.c:7217,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7226,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:7226,1
    - Dst: find_name_in_mro
      Src: /src/Python-3.8.3/Objects/typeobject.c:7229,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/typeobject.c:7235,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7242,1
    - Dst: resolve_slotdups
      Src: /src/Python-3.8.3/Objects/typeobject.c:7244,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:7250,1
    - Dst: PyDescr_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7250,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7265,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/typeobject.c:7266,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 43
    argCount: 2
    argNames:
    - type
    - p
    argTypes:
    - PyTypeObject*
    - slotdef*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 7225
        line_start: 7225
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7304
      start: 7208
    functionDepth: 4
    functionLinenumber: 7208
    functionLinenumberEnd: 7304
    functionName: update_one_slot
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDescr_TYPE
    - PyErr_Occurred
    - slotptr
    - resolve_slotdups
    - PyType_IsSubtype
    - find_name_in_mro
    - Py_TYPE
    - assert
    - PyErr_Clear
    - PyCFunction_GET_FUNCTION
    linkageType: ''
    returnType: slotdef
    signature: 'slotdef *

      update_one_slot(PyTypeObject *type, slotdef *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_one_slot
      Src: /src/Python-3.8.3/Objects/typeobject.c:7314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - data
    argTypes:
    - PyTypeObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7316
      start: 7308
    functionDepth: 5
    functionLinenumber: 7308
    functionLinenumberEnd: 7316
    functionName: update_slots_callback
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - update_one_slot
    linkageType: ''
    returnType: int
    signature: int update_slots_callback(PyTypeObject *type, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7330,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7331,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/typeobject.c:7332,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/typeobject.c:7333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!p[1].name || p->offset <= p[1].offset)
      pos:
        line_end: 7329
        line_start: 7329
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7336
      start: 7321
    functionDepth: 6
    functionLinenumber: 7321
    functionLinenumberEnd: 7336
    functionName: init_slotdefs
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyUnicode_CHECK_INTERNED
    - Py_FatalError
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: void
    signature: void init_slotdefs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/typeobject.c:7343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7346
      start: 7339
    functionDepth: 1
    functionLinenumber: 7339
    functionLinenumberEnd: 7346
    functionName: clear_slotdefs
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void clear_slotdefs(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7357,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:7357,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7358,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Objects/typeobject.c:7358,1
    - Dst: init_slotdefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7360,1
    - Dst: update_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:7376,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - type
    - name
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(name))
      pos:
        line_end: 7356
        line_start: 7356
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyUnicode_CHECK_INTERNED(name))
      pos:
        line_end: 7357
        line_start: 7357
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7378
      start: 7349
    functionDepth: 7
    functionLinenumber: 7349
    functionLinenumberEnd: 7378
    functionName: update_slot
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_CheckExact
    - init_slotdefs
    - assert
    - PyUnicode_CHECK_INTERNED
    - update_subclasses
    linkageType: ''
    returnType: int
    signature: int update_slot(PyTypeObject *type, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_slotdefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7388,1
    - Dst: update_one_slot
      Src: /src/Python-3.8.3/Objects/typeobject.c:7390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7383
    functionDepth: 7
    functionLinenumber: 7383
    functionLinenumberEnd: 7391
    functionName: fixup_slot_dispatchers
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - init_slotdefs
    - update_one_slot
    linkageType: ''
    returnType: void
    signature: void fixup_slot_dispatchers(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Modified
      Src: /src/Python-3.8.3/Objects/typeobject.c:7399,1
    - Dst: init_slotdefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7401,1
    - Dst: update_slot
      Src: /src/Python-3.8.3/Objects/typeobject.c:7404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7406
      start: 7393
    functionDepth: 8
    functionLinenumber: 7393
    functionLinenumberEnd: 7406
    functionName: update_all_slots
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - init_slotdefs
    - PyType_Modified
    - update_slot
    linkageType: ''
    returnType: void
    signature: void update_all_slots(PyTypeObject* type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Objects/typeobject.c:7415,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/typeobject.c:7419,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/typeobject.c:7420,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7422,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7423,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Objects/typeobject.c:7425,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7429,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7433,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:7435,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7443
      start: 7409
    functionDepth: 8
    functionLinenumber: 7409
    functionLinenumberEnd: 7443
    functionName: set_names
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyErr_FormatFromCause
    - PyDict_Next
    - Py_DECREF
    - PyErr_Occurred
    - _PyObject_LookupSpecial
    - PyObject_CallFunctionObjArgs
    - PyDict_Copy
    linkageType: ''
    returnType: int
    signature: int set_names(PyTypeObject *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/typeobject.c:7452,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:7457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7458,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Objects/typeobject.c:7464,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7470,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - type
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7472
      start: 7446
    functionDepth: 2
    functionLinenumber: 7446
    functionLinenumberEnd: 7472
    functionName: init_subclass
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_GetAttrId
    - _PyObject_FastCallDict
    - _PyObject_FastCall
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int init_subclass(PyTypeObject *type, PyObject *kwds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/Python-3.8.3/Objects/typeobject.c:7482,1
    - Dst: recurse_down_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:7484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - type
    - name
    - callback
    - data
    argTypes:
    - PyTypeObject*
    - PyObject*
    - update_callback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7485
      start: 7478
    functionDepth: 1
    functionLinenumber: 7478
    functionLinenumberEnd: 7485
    functionName: update_subclasses
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - recurse_down_subclasses
    - callback
    linkageType: ''
    returnType: int
    signature: "int update_subclasses(PyTypeObject *type, PyObject *name,\n                  update_callback
      callback, void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7498,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/typeobject.c:7498,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/typeobject.c:7500,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7501,1
    - Dst: PyWeakref_CheckRef
      Src: /src/Python-3.8.3/Objects/typeobject.c:7501,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Objects/typeobject.c:7502,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7503,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7506,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7506,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7509,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:7510,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:7513,1
    - Dst: update_subclasses
      Src: /src/Python-3.8.3/Objects/typeobject.c:7517,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 4
    argNames:
    - type
    - name
    - callback
    - data
    argTypes:
    - PyTypeObject*
    - PyObject*
    - update_callback
    - void*
    assertStmts:
    - condition: (PyDict_CheckExact(subclasses))
      pos:
        line_end: 7497
        line_start: 7497
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyWeakref_CheckRef(ref))
      pos:
        line_end: 7500
        line_start: 7500
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (subclass != NULL)
      pos:
        line_end: 7502
        line_start: 7502
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyType_Check(subclass))
      pos:
        line_end: 7505
        line_start: 7505
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7521
      start: 7487
    functionDepth: 4
    functionLinenumber: 7487
    functionLinenumberEnd: 7521
    functionName: recurse_down_subclasses
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemWithError
    - PyDict_Next
    - PyErr_Occurred
    - PyWeakref_GET_OBJECT
    - PyDict_Check
    - PyDict_CheckExact
    - PyType_Check
    - assert
    - PyWeakref_CheckRef
    - update_subclasses
    linkageType: ''
    returnType: int
    signature: "int recurse_down_subclasses(PyTypeObject *type, PyObject *name,\n
      \                       update_callback callback, void *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_slotdefs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7561,1
    - Dst: slotptr
      Src: /src/Python-3.8.3/Objects/typeobject.c:7565,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:7568,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:7570,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:7577,1
    - Dst: PyDescr_NewWrapper
      Src: /src/Python-3.8.3/Objects/typeobject.c:7581,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/typeobject.c:7584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7588,1
    - Dst: add_tp_new_wrapper
      Src: /src/Python-3.8.3/Objects/typeobject.c:7592,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 1
    argNames:
    - type
    argTypes:
    - PyTypeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7596
      start: 7553
    functionDepth: 7
    functionLinenumber: 7553
    functionLinenumberEnd: 7596
    functionName: add_operators
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 1
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyDescr_NewWrapper
    - Py_DECREF
    - slotptr
    - init_slotdefs
    - PyDict_SetItem
    - add_tp_new_wrapper
    linkageType: ''
    returnType: int
    signature: int add_operators(PyTypeObject *type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/typeobject.c:7623,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7624,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7625,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7626,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7628
      start: 7618
    functionDepth: 1
    functionLinenumber: 7618
    functionLinenumberEnd: 7628
    functionName: super_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void super_dealloc(PyObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:7636,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/typeobject.c:7641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7644
      start: 7630
    functionDepth: 8
    functionLinenumber: 7630
    functionLinenumberEnd: 7644
    functionName: super_repr
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_repr(PyObject *self)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7660,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/typeobject.c:7661,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:7662,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7669,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7669,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7670,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:7674,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7683,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:7688,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7689,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7689,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7692,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7692,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/typeobject.c:7694,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7696,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7698,1
    - Dst: f
      Src: /src/Python-3.8.3/Objects/typeobject.c:7700,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7709,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/typeobject.c:7712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7713,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7719,1
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Objects/typeobject.c:7722,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(mro))
      pos:
        line_end: 7668
        line_start: 7668
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyType_Check(tmp))
      pos:
        line_end: 7688
        line_start: 7688
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (dict != NULL && PyDict_Check(dict))
      pos:
        line_end: 7691
        line_start: 7691
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7723
      start: 7646
    functionDepth: 4
    functionLinenumber: 7646
    functionLinenumberEnd: 7723
    functionName: super_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_Check
    - PyTuple_Check
    - PyType_Check
    - Py_TYPE
    - _PyUnicode_EqualToASCIIId
    - PyObject_GenericGetAttr
    - PyUnicode_Check
    - assert
    - f
    - PyTuple_GET_ITEM
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_getattro(PyObject *self, PyObject *name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7744,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:7744,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7745,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:7750,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7750,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7751,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7751,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7752,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/typeobject.c:7758,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7762,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7763,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/typeobject.c:7765,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7770,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7773,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - type
    - obj
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7777
      start: 7725
    functionDepth: 3
    functionLinenumber: 7725
    functionLinenumberEnd: 7777
    functionName: supercheck
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyObject_LookupAttrId
    - PyType_IsSubtype
    - PyType_Check
    - Py_TYPE
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      supercheck(PyTypeObject *type, PyObject *obj)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7787,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7790,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/typeobject.c:7793,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7793,1
    - Dst: supercheck
      Src: /src/Python-3.8.3/Objects/typeobject.c:7797,1
    - Dst: tp_new
      Src: /src/Python-3.8.3/Objects/typeobject.c:7800,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7804,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7805,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7811
      start: 7779
    functionDepth: 4
    functionLinenumber: 7779
    functionLinenumberEnd: 7811
    functionName: super_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - supercheck
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - tp_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      super_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/typeobject.c:7821,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/typeobject.c:7823,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/typeobject.c:7832,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7834,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7840,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7845,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7852,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7856,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7856,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/typeobject.c:7857,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7863,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7870,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7870,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7871,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/typeobject.c:7874,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/typeobject.c:7875,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7875,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/typeobject.c:7876,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7878,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7880,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7881,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Objects/typeobject.c:7885,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7887,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Objects/typeobject.c:7891,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/typeobject.c:7892,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/typeobject.c:7894,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/typeobject.c:7901,1
    - Dst: supercheck
      Src: /src/Python-3.8.3/Objects/typeobject.c:7910,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7913,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7915,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7916,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7917,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/typeobject.c:7918,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyCell_Check(cell))
      pos:
        line_end: 7855
        line_start: 7855
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 7874
        line_start: 7874
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - condition: (PyTuple_Check(co->co_freevars))
      pos:
        line_end: 7869
        line_start: 7869
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    constantsTouched: []
    func_position:
      end: 7920
      start: 7813
    functionDepth: 4
    functionLinenumber: 7813
    functionLinenumberEnd: 7920
    functionName: super_init
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - PyCell_GET
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - supercheck
    - _PyThreadState_GET
    - _PyArg_NoKeywords
    - PyTuple_Check
    - PyType_Check
    - PyErr_Format
    - _PyUnicode_EqualToASCIIId
    - PyErr_SetString
    - Py_TYPE
    - PyUnicode_Check
    - assert
    - PyCell_Check
    - PyTuple_GET_ITEM
    - PyArg_ParseTuple
    linkageType: ''
    returnType: int
    signature: int super_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:7942,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:7943,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/typeobject.c:7944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7947
      start: 7937
    functionDepth: 1
    functionLinenumber: 7937
    functionLinenumberEnd: 7947
    functionName: super_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/typeobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int super_traverse(PyObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Objects/tupleobject.c:48,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/tupleobject.c:53,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/tupleobject.c:55,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Objects/tupleobject.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: show_track
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - fprintf
    linkageType: ''
    returnType: void
    signature: void show_track(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Objects/tupleobject.c:70,1
    - Dst: _PyDebugAllocatorStats
      Src: /src/Python-3.8.3/Objects/tupleobject.c:72,1
    - Dst: _PyObject_VAR_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: _PyTuple_DebugMallocStats
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_VAR_SIZE
    - PyOS_snprintf
    - _PyDebugAllocatorStats
    linkageType: ''
    returnType: void
    signature: void _PyTuple_DebugMallocStats(FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:85,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:91,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:105,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:106,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/tupleobject.c:108,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/tupleobject.c:116,1
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Objects/tupleobject.c:118,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:128,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 136
    functionName: PyTuple_New
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 128
    functionsReached:
    - PyObject_GC_NewVar
    - Py_INCREF
    - _Py_NewReference
    - PyErr_NoMemory
    - PyErr_BadInternalCall
    - _PyObject_GC_TRACK
    - Py_TYPE
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_New(Py_ssize_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:141,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:142,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: PyTuple_Size
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 29
    functionsReached:
    - PyTuple_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyTuple_Size(PyObject *op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:152,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:153,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - op
    - i
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: PyTuple_GetItem
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 8
    functionsReached:
    - PyTuple_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_GetItem(PyObject *op, Py_ssize_t i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:167,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:168,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:169,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:172,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:173,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:174,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - op
    - i
    - newitem
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: PyTuple_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 9
    functionsReached:
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyErr_SetString
    - Py_SIZE
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyTuple_SetItem(PyObject *op, Py_ssize_t i, PyObject *newitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:189,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/tupleobject.c:189,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:192,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/tupleobject.c:194,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Objects/tupleobject.c:199,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 207
    functionName: _PyTuple_MaybeUntrack
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_MAY_BE_TRACKED
    - PyTuple_CheckExact
    - _PyObject_GC_UNTRACK
    - Py_SIZE
    - _PyObject_GC_IS_TRACKED
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: void
    signature: void _PyTuple_MaybeUntrack(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/tupleobject.c:218,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:219,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/tupleobject.c:221,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/tupleobject.c:226,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:227,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/tupleobject.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - n
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 232
    functionName: PyTuple_Pack
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 55
    functionsReached:
    - va_start
    - va_end
    - Py_INCREF
    - va_arg
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_Pack(Py_ssize_t n, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:241,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/tupleobject.c:242,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/tupleobject.c:243,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:247,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:251,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 263
    functionName: tupledealloc
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_TYPE
    - Py_SIZE
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void tupledealloc(PyTupleObject *op)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:271,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:273,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/tupleobject.c:279,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:281,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/tupleobject.c:284,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:286,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:288,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/tupleobject.c:295,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:303,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/tupleobject.c:307,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/tupleobject.c:311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:315,1
    - Dst: _PyUnicodeWriter_WriteChar
      Src: /src/Python-3.8.3/Objects/tupleobject.c:320,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:324,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/tupleobject.c:328,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/tupleobject.c:329,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/tupleobject.c:332,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/tupleobject.c:333,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 335
    functionName: tuplerepr
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteChar
    - PyUnicode_FromString
    - _PyUnicodeWriter_WriteStr
    - Py_ReprLeave
    - Py_DECREF
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_WriteASCIIString
    - Py_ReprEnter
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyObject_Repr
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplerepr(PyTupleObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: _PyHASH_XXROTATE
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHASH_XXROTATE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: _PyHASH_XXROTATE
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyHASH_XXROTATE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:370,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/tupleobject.c:375,1
    - Dst: _PyHASH_XXROTATE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 367
    functionDepth: 3
    functionLinenumber: 367
    functionLinenumberEnd: 391
    functionName: tuplehash
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - Py_SIZE
    - _PyHASH_XXROTATE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t tuplehash(PyTupleObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 397
    functionName: tuplelength
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t tuplelength(PyTupleObject *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:405,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/tupleobject.c:406,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/tupleobject.c:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - a
    - el
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 4
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: tuplecontains
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyObject_RichCompareBool
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int tuplecontains(PyTupleObject *a, PyObject *el)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:415,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - PyTupleObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: tupleitem
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleitem(PyTupleObject *a, Py_ssize_t i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: _PyTuple_FromArray
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 8
    functionsReached:
    - PyTuple_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:444,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:445,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:448,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:448,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:449,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/tupleobject.c:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - a
    - ilow
    - ihigh
    argTypes:
    - PyTupleObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 453
    functionName: tupleslice
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyTuple_FromArray
    - Py_SIZE
    - Py_INCREF
    - PyTuple_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntupleslice(PyTupleObject *a, Py_ssize_t ilow,\n           Py_ssize_t
      ihigh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:458,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:459,1
    - Dst: tupleslice
      Src: /src/Python-3.8.3/Objects/tupleobject.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - op
    - i
    - j
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: PyTuple_GetSlice
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 10
    functionsReached:
    - PyTuple_Check
    - tupleslice
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyTuple_GetSlice(PyObject *op, Py_ssize_t i, Py_ssize_t j)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:472,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:472,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:473,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:476,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/tupleobject.c:477,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:479,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:483,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:483,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:484,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:487,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:487,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/tupleobject.c:488,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:489,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:489,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:490,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:496,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:498,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:502,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:503,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - a
    - bb
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 510
    functionName: tupleconcat
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NoMemory
    - PyTuple_Check
    - PyErr_Format
    - Py_TYPE
    - PyTuple_CheckExact
    - Py_SIZE
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleconcat(PyTupleObject *a, PyObject *bb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:521,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:522,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:525,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:528,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:529,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:531,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/tupleobject.c:532,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:533,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:534,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:540,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:542,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyTupleObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 547
    functionName: tuplerepeat
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_NoMemory
    - PyTuple_CheckExact
    - Py_SIZE
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplerepeat(PyTupleObject *a, Py_ssize_t n)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:570,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:575,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:577,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:578,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/tupleobject.c:581,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/tupleobject.c:583,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/tupleobject.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - self
    - value
    - start
    - stop
    argTypes:
    - PyTupleObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 589
    functionName: tuple_index_impl
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_SIZE
    - PyObject_RichCompareBool
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntuple_index_impl(PyTupleObject *self, PyObject *value,
      Py_ssize_t start,\n                 Py_ssize_t stop)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:607,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/tupleobject.c:608,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/tupleobject.c:614,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 615
    functionName: tuple_count
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_SIZE
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_count(PyTupleObject *self, PyObject *value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:622,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/tupleobject.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - o
    - visit
    - arg
    argTypes:
    - PyTupleObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: tupletraverse
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int tupletraverse(PyTupleObject *o, visitproc visit, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:634,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:634,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:640,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:641,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/tupleobject.c:655,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:665,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/tupleobject.c:677,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 678
    functionName: tuplerichcompare
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_RETURN_RICHCOMPARE
    - PyTuple_Check
    - PyObject_RichCompare
    - PyObject_RichCompareBool
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplerichcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tuple_subtype_new
      Src: /src/Python-3.8.3/Objects/tupleobject.c:702,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:705,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/tupleobject.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 697
    functionDepth: 5
    functionLinenumber: 697
    functionLinenumberEnd: 708
    functionName: tuple_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Tuple
    - tuple_subtype_new
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_new_impl(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/tupleobject.c:716,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/tupleobject.c:716,1
    - Dst: tuple_new_impl
      Src: /src/Python-3.8.3/Objects/tupleobject.c:717,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/tupleobject.c:720,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:720,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/tupleobject.c:721,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:721,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:723,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/tupleobject.c:727,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:728,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/tupleobject.c:729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - type
    - iterable
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyTuple_Type))
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
    - condition: (PyTuple_Check(tmp))
      pos:
        line_end: 719
        line_start: 719
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 733
      start: 710
    functionDepth: 6
    functionLinenumber: 710
    functionLinenumberEnd: 733
    functionName: tuple_subtype_new
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyType_IsSubtype
    - PyTuple_Check
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_SET_ITEM
    - tuple_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_subtype_new(PyTypeObject *type, PyObject *iterable)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:749,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/tupleobject.c:750,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/tupleobject.c:751,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:754,1
    - Dst: tupleitem
      Src: /src/Python-3.8.3/Objects/tupleobject.c:755,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:757,1
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/tupleobject.c:764,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/tupleobject.c:767,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:767,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:771,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:774,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/tupleobject.c:775,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:776,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:780,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:788,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/tupleobject.c:796,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:798,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - self
    - item
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 746
    functionDepth: 3
    functionLinenumber: 746
    functionLinenumberEnd: 801
    functionName: tuplesubscript
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - tupleitem
    - PyIndex_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyTuple_New
    - Py_INCREF
    - PySlice_Check
    - PySlice_AdjustIndices
    - PySlice_Unpack
    - PyErr_Format
    - Py_TYPE
    - PyTuple_CheckExact
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuplesubscript(PyTupleObject* self, PyObject* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/tupleobject.c:811,1
    - Dst: tupleslice
      Src: /src/Python-3.8.3/Objects/tupleobject.c:811,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyTupleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 4
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: tuple___getnewargs___impl
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - tupleslice
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple___getnewargs___impl(PyTupleObject *self)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:888,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:889,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/tupleobject.c:889,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:891,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:892,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:895,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:903,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:904,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Objects/tupleobject.c:910,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:911,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/tupleobject.c:912,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/tupleobject.c:915,1
    - Dst: PyObject_GC_Resize
      Src: /src/Python-3.8.3/Objects/tupleobject.c:917,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/tupleobject.c:920,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/tupleobject.c:923,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/tupleobject.c:926,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:929,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - pv
    - newsize
    argTypes:
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 931
    functionName: _PyTuple_Resize
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 3
    functionsReached:
    - PyObject_GC_Del
    - Py_CLEAR
    - Py_DECREF
    - PyTuple_New
    - _Py_NewReference
    - Py_REFCNT
    - PyErr_BadInternalCall
    - PyObject_GC_Resize
    - _PyObject_GC_UNTRACK
    - _PyObject_GC_TRACK
    - Py_TYPE
    - _PyObject_GC_IS_TRACKED
    - _Py_ForgetReference
    - Py_SIZE
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: int
    signature: int _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/tupleobject.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 953
    functionName: PyTuple_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    linkageType: ''
    returnType: int
    signature: int PyTuple_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/tupleobject.c:961,1
    - Dst: PyTuple_ClearFreeList
      Src: /src/Python-3.8.3/Objects/tupleobject.c:963,1
    - Dst: show_track
      Src: /src/Python-3.8.3/Objects/tupleobject.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 968
    functionName: PyTuple_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - show_track
    - Py_CLEAR
    - PyTuple_ClearFreeList
    linkageType: ''
    returnType: void
    signature: void PyTuple_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:981,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:982,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/tupleobject.c:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - tupleiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 984
    functionName: tupleiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void tupleiter_dealloc(tupleiterobject *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/tupleobject.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - tupleiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 991
    functionName: tupleiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tupleiter_traverse(tupleiterobject *it, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/tupleobject.c:999,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1003,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1003,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1005,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1006,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1008,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - it
    argTypes:
    - tupleiterobject*
    assertStmts:
    - condition: (it != NULL)
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
    - condition: (PyTuple_Check(seq))
      pos:
        line_end: 1002
        line_start: 1002
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
    constantsTouched: []
    func_position:
      end: 1015
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1015
    functionName: tupleiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_Check
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_next(tupleiterobject *it)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1022,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - tupleiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1024
    functionName: tupleiter_len
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_len(tupleiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1031,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1033,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1033,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1036,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - it
    - Py_UNUSED(ignored)
    argTypes:
    - tupleiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1037
    functionName: tupleiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetBuiltinId
    - Py_BuildValue
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_reduce(tupleiterobject *it, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1042,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1043,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1048,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1049,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - it
    - state
    argTypes:
    - tupleiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1053
    functionName: tupleiter_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tupleiter_setstate(tupleiterobject *it, PyObject *state)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1103,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1104,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1107,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1111,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/tupleobject.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - seq
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1098
    functionDepth: 1
    functionLinenumber: 1098
    functionLinenumberEnd: 1115
    functionName: tuple_iter
    functionSourceFile: /src/Python-3.8.3/Objects/tupleobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_iter(PyObject *seq)'
  - BBCount: 1836
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1988
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6146
      start: 4157
    functionDepth: 0
    functionLinenumber: 4157
    functionLinenumberEnd: 6146
    functionName: _PyUnicode_ToNumeric
    functionSourceFile: /src/Python-3.8.3/Objects/unicodetype_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _PyUnicode_ToNumeric(Py_UCS4 ch)
  - BBCount: 30
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6151
    functionDepth: 0
    functionLinenumber: 6151
    functionLinenumberEnd: 6186
    functionName: _PyUnicode_IsWhitespace
    functionSourceFile: /src/Python-3.8.3/Objects/unicodetype_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsWhitespace(const Py_UCS4 ch)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ch
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6208
      start: 6192
    functionDepth: 0
    functionLinenumber: 6192
    functionLinenumberEnd: 6208
    functionName: _PyUnicode_IsLinebreak
    functionSourceFile: /src/Python-3.8.3/Objects/unicodetype_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyUnicode_IsLinebreak(const Py_UCS4 ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: _odictnode_KEY
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_KEY(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: _odictnode_HASH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_HASH(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - node
    - ','
    - od
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: _odictnode_VALUE
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_VALUE(node, od)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: _odictnode_PREV
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_PREV(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: _odictnode_NEXT
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_NEXT(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - od
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: _odict_FIRST
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odict_FIRST(od)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - od
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 525
    functionName: _odict_LAST
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odict_LAST(od)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - od
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: _odict_EMPTY
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odict_EMPTY(od)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - od
    - ','
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 545
    functionName: _odict_get_index_raw
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _odict_get_index_raw(PyODictObject *od, PyObject *key, Py_hash_t
      hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/odictobject.c:556,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/odictobject.c:558,1
    - Dst: _odict_get_index_raw
      Src: /src/Python-3.8.3/Objects/odictobject.c:566,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:566,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:567,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/odictobject.c:569,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/odictobject.c:576,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 581
    functionName: _odict_resize
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_NEW
    - _odictnode_HASH
    - _odictnode_KEY
    - _odict_get_index_raw
    - PyMem_FREE
    linkageType: ''
    returnType: int
    signature: int _odict_resize(PyODictObject *od)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odict_get_index_raw
      Src: /src/Python-3.8.3/Objects/odictobject.c:566,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:566,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:567,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/odictobject.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 573
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - _odict_get_index_raw
    - _odictnode_HASH
    - _odictnode_KEY
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:589,1
    - Dst: _odict_resize
      Src: /src/Python-3.8.3/Objects/odictobject.c:595,1
    - Dst: _odict_get_index_raw
      Src: /src/Python-3.8.3/Objects/odictobject.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 588
        line_start: 588
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 601
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 601
    functionName: _odict_get_index
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _odict_get_index_raw
    - _odict_resize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _odict_get_index(PyODictObject *od, PyObject *key, Py_hash_t
      hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:609,1
    - Dst: _odict_get_index
      Src: /src/Python-3.8.3/Objects/odictobject.c:611,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 613
        line_start: 613
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: _odict_find_node_hash
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _odict_EMPTY
    - _odict_get_index
    linkageType: ''
    returnType: _ODictNode
    signature: '_ODictNode *

      _odict_find_node_hash(PyODictObject *od, PyObject *key, Py_hash_t hash)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:624,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:626,1
    - Dst: _odict_get_index
      Src: /src/Python-3.8.3/Objects/odictobject.c:629,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 634
      start: 618
    functionDepth: 3
    functionLinenumber: 618
    functionLinenumberEnd: 634
    functionName: _odict_find_node
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _odict_EMPTY
    - assert
    - _odict_get_index
    linkageType: ''
    returnType: _ODictNode
    signature: '_ODictNode *

      _odict_find_node(PyODictObject *od, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:639,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:640,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:640,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:641,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:642,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:644,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:644,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 647
    functionName: _odict_add_head
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_FIRST
    - _odictnode_NEXT
    - _odictnode_PREV
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_add_head(PyODictObject *od, _ODictNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:652,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:652,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:653,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:654,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:655,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:657,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:657,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 660
    functionName: _odict_add_tail
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_FIRST
    - _odictnode_NEXT
    - _odictnode_PREV
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_add_tail(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:669,1
    - Dst: _odict_get_index
      Src: /src/Python-3.8.3/Objects/odictobject.c:670,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:672,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:673,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:674,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:677,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:680,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/odictobject.c:685,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:687,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/odictobject.c:688,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:692,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:693,1
    - Dst: _odict_add_tail
      Src: /src/Python-3.8.3/Objects/odictobject.c:694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - od
    - key
    - hash
    argTypes:
    - PyODictObject*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 676
        line_start: 676
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 697
      start: 663
    functionDepth: 3
    functionLinenumber: 663
    functionLinenumberEnd: 697
    functionName: _odict_add_new_node
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyMem_MALLOC
    - Py_INCREF
    - PyErr_NoMemory
    - _odict_add_tail
    - _odictnode_HASH
    - _odictnode_KEY
    - PyErr_SetObject
    - _odict_get_index
    - assert
    linkageType: ''
    returnType: int
    signature: int _odict_add_new_node(PyODictObject *od, PyObject *key, Py_hash_t
      hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 705
    functionName: _odictnode_DEALLOC
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _odictnode_DEALLOC(node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:710,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:711,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:711,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:712,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:713,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:713,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:713,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:715,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:716,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:716,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:717,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:718,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:718,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:718,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:720,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:721,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - od
    - node
    argTypes:
    - PyODictObject*
    - _ODictNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 723
    functionName: _odict_remove_node
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_FIRST
    - _odictnode_PREV
    - _odictnode_NEXT
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_remove_node(PyODictObject *od, _ODictNode *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:747,1
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:748,1
    - Dst: _odict_get_index
      Src: /src/Python-3.8.3/Objects/odictobject.c:753,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:755,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:757,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:760,1
    - Dst: _odict_remove_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:768,1
    - Dst: _odictnode_DEALLOC
      Src: /src/Python-3.8.3/Objects/odictobject.c:769,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - od
    - node
    - key
    - hash
    argTypes:
    - PyODictObject*
    - _ODictNode*
    - PyObject*
    - Py_hash_t
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 746
        line_start: 746
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - condition: (od->od_fast_nodes != NULL)
      pos:
        line_end: 756
        line_start: 756
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - condition: (node == od->od_fast_nodes[i])
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 771
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 771
    functionName: _odict_clear_node
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _odict_EMPTY
    - _odictnode_DEALLOC
    - _odict_remove_node
    - _odict_get_index
    - assert
    linkageType: ''
    returnType: int
    signature: "int _odict_clear_node(PyODictObject *od, _ODictNode *node, PyObject
      *key,\n                  Py_hash_t hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/odictobject.c:778,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:783,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:784,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:785,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:787,1
    - Dst: _odictnode_DEALLOC
      Src: /src/Python-3.8.3/Objects/odictobject.c:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 791
    functionName: _odict_clear_nodes
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odictnode_NEXT
    - _odictnode_DEALLOC
    - _odict_FIRST
    - PyMem_FREE
    - _odict_LAST
    linkageType: ''
    returnType: void
    signature: void _odict_clear_nodes(PyODictObject *od)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:801,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:802,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/odictobject.c:811,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:812,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:813,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:821,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:822,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyODictObject*
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 796
    functionDepth: 4
    functionLinenumber: 796
    functionLinenumberEnd: 825
    functionName: _odict_keys_equal
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_FIRST
    - PyObject_RichCompareBool
    - _odictnode_NEXT
    - _odictnode_KEY
    linkageType: ''
    returnType: int
    signature: int _odict_keys_equal(PyODictObject *a, PyODictObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_DelItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:838,1
    - Dst: PyODict_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - v
    - w
    argTypes:
    - PyODictObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 841
    functionName: odict_mp_ass_sub
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyODict_DelItem
    - PyODict_SetItem
    linkageType: ''
    returnType: int
    signature: int odict_mp_ass_sub(PyODictObject *od, PyObject *v, PyObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_FromKeys
      Src: /src/Python-3.8.3/Objects/odictobject.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - seq
    - value
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 868
    functionDepth: 6
    functionLinenumber: 868
    functionLinenumberEnd: 873
    functionName: OrderedDict_fromkeys_impl
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_FromKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_fromkeys_impl(PyTypeObject *type, PyObject *seq, PyObject *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_SizeOf
      Src: /src/Python-3.8.3/Objects/odictobject.c:883,1
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:885,1
    - Dst: PyODict_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:886,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/odictobject.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 889
    functionName: odict_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyODict_SIZE
    - _odict_EMPTY
    - PyLong_FromSsize_t
    - _PyDict_SizeOf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_sizeof(PyODictObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:898,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:899,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/odictobject.c:904,1
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Objects/odictobject.c:909,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:914,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:919,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/odictobject.c:923,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/odictobject.c:927,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:928,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/odictobject.c:932,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/odictobject.c:932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:933,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:936,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:937,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 895
    functionDepth: 3
    functionLinenumber: 895
    functionLinenumberEnd: 940
    functionName: odict_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - Py_DECREF
    - _PyObject_GetAttrId
    - _PyObject_CallMethodIdObjArgs
    - Py_XDECREF
    - _Py_IDENTIFIER
    - PyTuple_Pack
    - Py_TYPE
    - PyObject_GetIter
    - PyTuple_New
    - PyObject_Length
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_reduce(register PyODictObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:963,1
    - Dst: PyODict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/odictobject.c:964,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:966,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:968,1
    - Dst: _odict_find_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:968,1
    - Dst: PyODict_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:969,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:971,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:975,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/odictobject.c:979,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:984,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:986,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:988,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyODictObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_odict_find_node(self, key) == NULL)
      pos:
        line_end: 967
        line_start: 967
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 993
      start: 956
    functionDepth: 6
    functionLinenumber: 956
    functionLinenumberEnd: 993
    functionName: OrderedDict_setdefault_impl
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyODict_SetItem
    - Py_INCREF
    - PyObject_GetItem
    - PySequence_Contains
    - _odict_find_node
    - assert
    - PyODict_GetItemWithError
    - PyODict_CheckExact
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nOrderedDict_setdefault_impl(PyODictObject *self, PyObject
      *key,\n                            PyObject *default_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/odictobject.c:1015,1
    - Dst: _odict_popkey
      Src: /src/Python-3.8.3/Objects/odictobject.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - od
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1021
    functionName: odict_pop
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - _odict_popkey
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_pop(PyObject *od, PyObject *args, PyObject *kwargs)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _odict_find_node_hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1033,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1035,1
    - Dst: _odict_clear_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1039,1
    - Dst: PyODict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:1046,1
    - Dst: _PyDict_GetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1048,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1050,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1052,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Objects/odictobject.c:1059,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1063,1
    - Dst: PyObject_DelItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1065,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1066,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1073,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1076,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1079,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 4
    argNames:
    - od
    - key
    - failobj
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1023
    functionDepth: 6
    functionLinenumber: 1023
    functionLinenumberEnd: 1084
    functionName: _odict_popkey_hash
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_DelItem_KnownHash
    - PyErr_Occurred
    - Py_DECREF
    - Py_CLEAR
    - Py_INCREF
    - _PyDict_GetItem_KnownHash
    - _odict_clear_node
    - PyObject_GetItem
    - PyErr_SetObject
    - PyObject_DelItem
    - _odict_find_node_hash
    - PySequence_Contains
    - PyODict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_odict_popkey_hash(PyObject *od, PyObject *key, PyObject
      *failobj,\n                   Py_hash_t hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1089,1
    - Dst: _odict_popkey_hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - key
    - failobj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1086
    functionDepth: 7
    functionLinenumber: 1086
    functionLinenumberEnd: 1094
    functionName: _odict_popkey
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - PyObject_Hash
    - _odict_popkey_hash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _odict_popkey(PyObject *od, PyObject *key, PyObject *failobj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1118,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:1119,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1123,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1123,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1124,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1125,1
    - Dst: _odict_popkey_hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1126,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:1126,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/odictobject.c:1129,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - last
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1109
    functionDepth: 7
    functionLinenumber: 1109
    functionLinenumberEnd: 1133
    functionName: OrderedDict_popitem_impl
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - _odict_EMPTY
    - _odict_popkey_hash
    - _odictnode_HASH
    - _odictnode_KEY
    - PyTuple_Pack
    - PyErr_SetString
    - _odict_FIRST
    - _odict_LAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem_impl(PyODictObject *self, int last)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/odictobject.c:1174,1
    - Dst: _odict_clear_nodes
      Src: /src/Python-3.8.3/Objects/odictobject.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    functionName: odict_clear
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _odict_clear_nodes
    - PyDict_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_clear(register PyODictObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:1193,1
    - Dst: PyODict_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:1194,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/odictobject.c:1196,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1196,1
    - Dst: PyODict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:1200,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1202,1
    - Dst: _odictnode_VALUE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1203,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1205,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1206,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1209,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:1210,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1217,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1218,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1221,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1233
    functionName: odict_copy
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyODict_New
    - _PyODict_SetItem_KnownHash
    - _odictnode_VALUE
    - _odictnode_HASH
    - _odictnode_KEY
    - PyErr_SetObject
    - PyObject_GetItem
    - Py_TYPE
    - _PyObject_CallNoArg
    - PyODict_CheckExact
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_copy(register PyODictObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1202,1
    - Dst: _odictnode_VALUE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1203,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1205,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1206,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1209,1
    - Dst: _odictnode_HASH
      Src: /src/Python-3.8.3/Objects/odictobject.c:1210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1212
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyODict_SetItem_KnownHash
    - _odictnode_VALUE
    - _odictnode_HASH
    - _odictnode_KEY
    - PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1217,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1218,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1221,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1223,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1215
    functionDepth: 4
    functionLinenumber: 1215
    functionLinenumberEnd: 1226
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_SetItem
    - PyObject_GetItem
    - _odictnode_KEY
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyODictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1250
    functionName: odict_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_reversed(PyODictObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _odict_EMPTY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1272,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1273,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1276,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1276,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1277,1
    - Dst: _odict_find_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1278,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1280,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1281,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1286,1
    - Dst: _odict_remove_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1287,1
    - Dst: _odict_add_tail
      Src: /src/Python-3.8.3/Objects/odictobject.c:1288,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1293,1
    - Dst: _odict_remove_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1294,1
    - Dst: _odict_add_head
      Src: /src/Python-3.8.3/Objects/odictobject.c:1295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - self
    - key
    - last
    argTypes:
    - PyODictObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1266
    functionDepth: 4
    functionLinenumber: 1266
    functionLinenumberEnd: 1300
    functionName: OrderedDict_move_to_end_impl
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _odict_EMPTY
    - _odict_add_tail
    - _odictnode_KEY
    - PyErr_SetObject
    - _odict_find_node
    - _odict_remove_node
    - _odict_FIRST
    - _odict_add_head
    - _odict_LAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_move_to_end_impl(PyODictObject *self, PyObject *key, int last)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/odictobject.c:1359,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Objects/odictobject.c:1360,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1362,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/odictobject.c:1364,1
    - Dst: _odict_clear_nodes
      Src: /src/Python-3.8.3/Objects/odictobject.c:1366,1
    - Dst: tp_dealloc
      Src: /src/Python-3.8.3/Objects/odictobject.c:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1356
    functionDepth: 3
    functionLinenumber: 1356
    functionLinenumberEnd: 1370
    functionName: odict_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - tp_dealloc
    - _odict_clear_nodes
    - PyObject_ClearWeakRefs
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void odict_dealloc(PyODictObject *self)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:1378,1
    - Dst: PyODict_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1381,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/odictobject.c:1382,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/odictobject.c:1382,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1382,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/odictobject.c:1384,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/odictobject.c:1386,1
    - Dst: PyODict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:1389,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:1392,1
    - Dst: PyODict_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1392,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1398,1
    - Dst: _odictnode_VALUE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1399,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1401,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1402,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/odictobject.c:1405,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1409,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1410,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/odictobject.c:1412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1413,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1416,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1420,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1421,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Objects/odictobject.c:1424,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/odictobject.c:1428,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1429,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/odictobject.c:1434,1
    - Dst: _PyType_Name
      Src: /src/Python-3.8.3/Objects/odictobject.c:1435,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1435,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1438,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/odictobject.c:1439,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1374
    functionDepth: 8
    functionLinenumber: 1374
    functionLinenumberEnd: 1441
    functionName: odict_repr
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyList_New
    - PyErr_Occurred
    - PyTuple_Pack
    - _odictnode_KEY
    - PyList_SET_ITEM
    - Py_XDECREF
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _odictnode_VALUE
    - Py_ReprEnter
    - PyErr_SetObject
    - PyODict_SIZE
    - Py_TYPE
    - Py_SIZE
    - _PyType_Name
    - PyList_Append
    - PyList_GET_SIZE
    - PyODict_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_repr(PyODictObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1398,1
    - Dst: _odictnode_VALUE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1399,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1401,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1402,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/odictobject.c:1405,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1409,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1410,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/odictobject.c:1412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1413,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1396
    functionDepth: 4
    functionLinenumber: 1396
    functionLinenumberEnd: 1419
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _odictnode_VALUE
    - PyTuple_Pack
    - _odictnode_KEY
    - PyErr_SetObject
    - PyList_SET_ITEM
    - PyList_Append
    - PyList_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(self, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1455,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1457,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1457,1
    - Dst: tp_traverse
      Src: /src/Python-3.8.3/Objects/odictobject.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - od
    - visit
    - arg
    argTypes:
    - PyODictObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1460
    functionName: odict_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - tp_traverse
    - _odictnode_KEY
    linkageType: ''
    returnType: int
    signature: int odict_traverse(PyODictObject *od, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1457,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1458
    functionName: _odict_FOREACH
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - _odictnode_KEY
    linkageType: ''
    returnType: void
    signature: void _odict_FOREACH(od, node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1467,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Objects/odictobject.c:1468,1
    - Dst: _odict_clear_nodes
      Src: /src/Python-3.8.3/Objects/odictobject.c:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1464
    functionDepth: 3
    functionLinenumber: 1464
    functionLinenumberEnd: 1471
    functionName: odict_tp_clear
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - _odict_clear_nodes
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int odict_tp_clear(PyODictObject *od)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyODict_Check
      Src: /src/Python-3.8.3/Objects/odictobject.c:1478,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/odictobject.c:1478,1
    - Dst: tp_richcompare
      Src: /src/Python-3.8.3/Objects/odictobject.c:1486,1
    - Dst: PyODict_Check
      Src: /src/Python-3.8.3/Objects/odictobject.c:1489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1495,1
    - Dst: _odict_keys_equal
      Src: /src/Python-3.8.3/Objects/odictobject.c:1498,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1503,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1475
    functionDepth: 5
    functionLinenumber: 1475
    functionLinenumberEnd: 1508
    functionName: odict_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_Check
    - _odict_keys_equal
    - tp_richcompare
    - PyODict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - od
    argTypes:
    - PyODictObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1512
    functionDepth: 1
    functionLinenumber: 1512
    functionLinenumberEnd: 1516
    functionName: odict_iter
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odict_iter(PyODictObject *od)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Objects/odictobject.c:1524,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/odictobject.c:1530,1
    - Dst: odict_update
      Src: /src/Python-3.8.3/Objects/odictobject.c:1535,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1520
    functionDepth: 3
    functionLinenumber: 1520
    functionLinenumberEnd: 1542
    functionName: odict_init
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odict_update
    - Py_DECREF
    - PyErr_Format
    - PyObject_Length
    linkageType: ''
    returnType: int
    signature: int odict_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tp_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1593
    functionDepth: 0
    functionLinenumber: 1593
    functionLinenumberEnd: 1597
    functionName: PyODict_New
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - tp_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyODict_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyDict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1603,1
    - Dst: _odict_add_new_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1605,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Objects/odictobject.c:1609,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1610,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Objects/odictobject.c:1611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - od
    - key
    - value
    - hash
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_hash_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1599
    functionDepth: 5
    functionLinenumber: 1599
    functionLinenumberEnd: 1615
    functionName: _PyODict_SetItem_KnownHash
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - _PyDict_SetItem_KnownHash
    - _PyErr_ChainExceptions
    - PyErr_Fetch
    - _odict_add_new_node
    - _PyDict_DelItem_KnownHash
    linkageType: ''
    returnType: int
    signature: "int _PyODict_SetItem_KnownHash(PyObject *od, PyObject *key, PyObject
      *value,\n                           Py_hash_t hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1620,1
    - Dst: _PyODict_SetItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - od
    - key
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1617
    functionDepth: 6
    functionLinenumber: 1617
    functionLinenumberEnd: 1624
    functionName: PyODict_SetItem
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - _PyODict_SetItem_KnownHash
    - PyObject_Hash
    linkageType: ''
    returnType: int
    signature: int PyODict_SetItem(PyObject *od, PyObject *key, PyObject *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1630,1
    - Dst: _odict_clear_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1633,1
    - Dst: _PyDict_DelItem_KnownHash
      Src: /src/Python-3.8.3/Objects/odictobject.c:1636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - od
    - key
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1626
    functionDepth: 5
    functionLinenumber: 1626
    functionLinenumberEnd: 1637
    functionName: PyODict_DelItem
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 1
    functionsReached:
    - PyObject_Hash
    - _odict_clear_node
    - _PyDict_DelItem_KnownHash
    linkageType: ''
    returnType: int
    signature: int PyODict_DelItem(PyObject *od, PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/odictobject.c:1657,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1658,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1659,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1661,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/odictobject.c:1663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1654
    functionDepth: 3
    functionLinenumber: 1654
    functionLinenumberEnd: 1664
    functionName: odictiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_GC_Del
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void odictiter_dealloc(odictiterobject *di)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1669,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1670,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - di
    - visit
    - arg
    argTypes:
    - odictiterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1673
    functionName: odictiter_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int odictiter_traverse(odictiterobject *di, visitproc visit, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:1691,1
    - Dst: PyODict_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1695,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:1696,1
    - Dst: _odict_find_node
      Src: /src/Python-3.8.3/Objects/odictobject.c:1703,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1705,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1706,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1708,1
    - Dst: _odictnode_PREV
      Src: /src/Python-3.8.3/Objects/odictobject.c:1714,1
    - Dst: _odictnode_NEXT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1714,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1720,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1721,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1677
    functionDepth: 4
    functionLinenumber: 1677
    functionLinenumberEnd: 1729
    functionName: odictiter_nextkey
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_CLEAR
    - Py_INCREF
    - _odictnode_NEXT
    - _odictnode_KEY
    - _odict_find_node
    - PyODict_SIZE
    - PyErr_SetObject
    - PyErr_SetString
    - _odictnode_PREV
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_nextkey(odictiterobject *di)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_nextkey
      Src: /src/Python-3.8.3/Objects/odictobject.c:1735,1
    - Dst: PyODict_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:1745,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:1747,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/odictobject.c:1748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1749,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1752,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1756,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/odictobject.c:1763,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1766,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1767,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1767,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1768,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1768,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:1771,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1773,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1774,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1779,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:1780,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1784,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/odictobject.c:1785,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - di
    argTypes:
    - odictiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1731
    functionDepth: 5
    functionLinenumber: 1731
    functionLinenumberEnd: 1787
    functionName: odictiter_iternext
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_nextkey
    - Py_DECREF
    - PyErr_Occurred
    - Py_INCREF
    - PyODict_GetItem
    - Py_CLEAR
    - Py_REFCNT
    - PyErr_SetObject
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_iternext(odictiterobject *di)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:1796,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1799,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1800,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Objects/odictobject.c:1803,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1804,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1805,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/odictobject.c:1809,1
    - Dst: _PyEval_GetBuiltinId
      Src: /src/Python-3.8.3/Objects/odictobject.c:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - di
    - Py_UNUSED(ignored)
    argTypes:
    - odictiterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1793
    functionDepth: 2
    functionLinenumber: 1793
    functionLinenumberEnd: 1810
    functionName: odictiter_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_BuildValue
    - _PyEval_GetBuiltinId
    - Py_XINCREF
    - _Py_IDENTIFIER
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_reduce(odictiterobject *di, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:1857,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/odictobject.c:1862,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1864,1
    - Dst: _odict_LAST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1872,1
    - Dst: _odict_FIRST
      Src: /src/Python-3.8.3/Objects/odictobject.c:1872,1
    - Dst: _odictnode_KEY
      Src: /src/Python-3.8.3/Objects/odictobject.c:1873,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1874,1
    - Dst: PyODict_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:1875,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:1878,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/odictobject.c:1880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - od
    - kind
    argTypes:
    - PyODictObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1850
    functionDepth: 3
    functionLinenumber: 1850
    functionLinenumberEnd: 1882
    functionName: odictiter_new
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyTuple_Pack
    - _odictnode_KEY
    - PyODict_SIZE
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - _odict_FIRST
    - Py_XINCREF
    - _odict_LAST
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictiter_new(PyODictObject *od, int kind)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1892,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1886
    functionDepth: 4
    functionLinenumber: 1886
    functionLinenumberEnd: 1894
    functionName: odictkeys_iter
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictkeys_iter(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dv
    - Py_UNUSED(ignored)
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1896
    functionDepth: 4
    functionLinenumber: 1896
    functionLinenumberEnd: 1904
    functionName: odictkeys_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictkeys_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1945
    functionDepth: 2
    functionLinenumber: 1945
    functionLinenumberEnd: 1949
    functionName: odictkeys_new
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictkeys_new(PyObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1953
    functionDepth: 4
    functionLinenumber: 1953
    functionLinenumberEnd: 1961
    functionName: odictitems_iter
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictitems_iter(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dv
    - Py_UNUSED(ignored)
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1963
    functionDepth: 4
    functionLinenumber: 1963
    functionLinenumberEnd: 1971
    functionName: odictitems_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictitems_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2016
    functionName: odictitems_new
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictitems_new(PyObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:2026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dv
    argTypes:
    - _PyDictViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2020
    functionDepth: 4
    functionLinenumber: 2020
    functionLinenumberEnd: 2028
    functionName: odictvalues_iter
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictvalues_iter(_PyDictViewObject *dv)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: odictiter_new
      Src: /src/Python-3.8.3/Objects/odictobject.c:2036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dv
    - Py_UNUSED(ignored)
    argTypes:
    - _PyDictViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2030
    functionDepth: 4
    functionLinenumber: 2030
    functionLinenumberEnd: 2038
    functionName: odictvalues_reversed
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - odictiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictvalues_reversed(_PyDictViewObject *dv, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyDictView_New
      Src: /src/Python-3.8.3/Objects/odictobject.c:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - od
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2079
    functionDepth: 2
    functionLinenumber: 2079
    functionLinenumberEnd: 2083
    functionName: odictvalues_new
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - _PyDictView_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      odictvalues_new(PyObject *od, PyObject *Py_UNUSED(ignored))'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/odictobject.c:2135,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/odictobject.c:2138,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/odictobject.c:2140,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/odictobject.c:2143,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/odictobject.c:2147,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2149,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:2150,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/odictobject.c:2155,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2157,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:2158,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/odictobject.c:2163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/odictobject.c:2166,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2170,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:2173,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2176,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2177,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2178,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2179,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2180,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2183,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2185,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 2
    argNames:
    - self
    - pairs
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2129
    functionDepth: 3
    functionLinenumber: 2129
    functionLinenumberEnd: 2189
    functionName: mutablemapping_add_pairs
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetIter
    - PyIter_Next
    - PyErr_SetString
    - PyErr_Clear
    - Py_XDECREF
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int mutablemapping_add_pairs(PyObject *self, PyObject *pairs)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:2196,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/odictobject.c:2197,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:2200,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/odictobject.c:2200,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:2201,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/odictobject.c:2204,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/odictobject.c:2210,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:2211,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2212,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/odictobject.c:2213,1
    - Dst: PyDict_Items
      Src: /src/Python-3.8.3/Objects/odictobject.c:2214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2215,1
    - Dst: mutablemapping_add_pairs
      Src: /src/Python-3.8.3/Objects/odictobject.c:2218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2219,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/odictobject.c:2225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2226,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/odictobject.c:2231,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2234,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/odictobject.c:2237,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2240,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/odictobject.c:2243,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:2244,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Objects/odictobject.c:2246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2247,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2254,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2255,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/odictobject.c:2256,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Objects/odictobject.c:2261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2267,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/odictobject.c:2268,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2269,1
    - Dst: mutablemapping_add_pairs
      Src: /src/Python-3.8.3/Objects/odictobject.c:2272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2273,1
    - Dst: mutablemapping_add_pairs
      Src: /src/Python-3.8.3/Objects/odictobject.c:2279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2280,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/odictobject.c:2287,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/odictobject.c:2287,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/odictobject.c:2288,1
    - Dst: PyDict_Items
      Src: /src/Python-3.8.3/Objects/odictobject.c:2289,1
    - Dst: mutablemapping_add_pairs
      Src: /src/Python-3.8.3/Objects/odictobject.c:2292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/odictobject.c:2293,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (args == NULL || PyTuple_Check(args))
      pos:
        line_end: 2199
        line_start: 2199
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - condition: (other != NULL)
      pos:
        line_end: 2210
        line_start: 2210
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2286
        line_start: 2286
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    constantsTouched: []
    func_position:
      end: 2299
      start: 2191
    functionDepth: 4
    functionLinenumber: 2191
    functionLinenumberEnd: 2299
    functionName: mutablemapping_update
    functionSourceFile: /src/Python-3.8.3/Objects/odictobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyIter_Next
    - PyObject_GetIter
    - PyErr_Occurred
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyObject_GetItem
    - PyTuple_Check
    - PyErr_Format
    - assert
    - PyDict_Items
    - mutablemapping_add_pairs
    - Py_DECREF
    - PyDict_Check
    - _PyObject_CallNoArg
    - PyObject_SetItem
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mutablemapping_update(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_CheckExact
      Src: /src/Python-3.8.3/Objects/capsule.c:19,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/capsule.c:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - capsule
    - invalid_capsule
    argTypes:
    - PyCapsule*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: _is_legal_capsule
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - PyCapsule_CheckExact
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _is_legal_capsule(PyCapsule *capsule, const char *invalid_capsule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - capsule
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: is_legal_capsule
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_legal_capsule(capsule, name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/capsule.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - name1
    - name2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: name_matches
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int name_matches(const char *name1, const char *name2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/capsule.c:49,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/Objects/capsule.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pointer
    - name
    - destructor
    argTypes:
    - void*
    - char*
    - PyCapsule_Destructor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: PyCapsule_New
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 13
    functionsReached:
    - PyObject_NEW
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCapsule_New(void *pointer, const char *name, PyCapsule_Destructor destructor)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule_CheckExact
      Src: /src/Python-3.8.3/Objects/capsule.c:73,1
    - Dst: name_matches
      Src: /src/Python-3.8.3/Objects/capsule.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - o
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: PyCapsule_IsValid
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 4
    functionsReached:
    - PyCapsule_CheckExact
    - name_matches
    linkageType: ''
    returnType: int
    signature: int PyCapsule_IsValid(PyObject *o, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:84,1
    - Dst: name_matches
      Src: /src/Python-3.8.3/Objects/capsule.c:88,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/capsule.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - o
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: PyCapsule_GetPointer
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 8
    functionsReached:
    - name_matches
    - is_legal_capsule
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_GetPointer(PyObject *o, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: PyCapsule_GetName
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: char
    signature: 'char *

      PyCapsule_GetName(PyObject *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: PyCapsule_GetDestructor
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: PyCapsule_Destructor
    signature: PyCapsule_Destructor PyCapsule_GetDestructor(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: PyCapsule_GetContext
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_GetContext(PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/capsule.c:139,1
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - o
    - pointer
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: PyCapsule_SetPointer
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetPointer(PyObject *o, void *pointer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - name
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: PyCapsule_SetName
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 2
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetName(PyObject *o, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - destructor
    argTypes:
    - PyObject*
    - PyCapsule_Destructor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: PyCapsule_SetDestructor
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetDestructor(PyObject *o, PyCapsule_Destructor destructor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_legal_capsule
      Src: /src/Python-3.8.3/Objects/capsule.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o
    - context
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 191
    functionName: PyCapsule_SetContext
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 1
    functionsReached:
    - is_legal_capsule
    linkageType: ''
    returnType: int
    signature: int PyCapsule_SetContext(PyObject *o, void *context)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/capsule.c:200,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/capsule.c:201,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/capsule.c:204,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/capsule.c:207,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Objects/capsule.c:211,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Objects/capsule.c:218,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Objects/capsule.c:220,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/capsule.c:222,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/capsule.c:226,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/capsule.c:227,1
    - Dst: PyCapsule_IsValid
      Src: /src/Python-3.8.3/Objects/capsule.c:238,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/capsule.c:242,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/capsule.c:248,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/capsule.c:250,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - name
    - no_block
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 253
    functionName: PyCapsule_Import
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 3
    functionsReached:
    - PyCapsule_IsValid
    - PyImport_ImportModule
    - memcpy
    - Py_DECREF
    - PyMem_MALLOC
    - PyObject_GetAttrString
    - PyErr_NoMemory
    - PyImport_ImportModuleNoBlock
    - strlen
    - PyErr_Format
    - strchr
    - PyMem_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: 'void *

      PyCapsule_Import(const char *name, int no_block)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCapsule*::destructor
      Src: /src/Python-3.8.3/Objects/capsule.c:261,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/capsule.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 264
    functionName: capsule_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - PyObject_DEL
    - PyCapsule*::destructor
    linkageType: ''
    returnType: void
    signature: void capsule_dealloc(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/capsule.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 8
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: capsule_repr
    functionSourceFile: /src/Python-3.8.3/Objects/capsule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      capsule_repr(PyObject *o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/enumobject.c:45,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/enumobject.c:49,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:51,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/enumobject.c:54,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/enumobject.c:54,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/enumobject.c:55,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/enumobject.c:56,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/enumobject.c:57,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:62,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/enumobject.c:68,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:70,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/enumobject.c:73,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:75,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - type
    - iterable
    - start
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(start))
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/Python-3.8.3/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 79
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 79
    functionName: enum_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyTuple_Pack
    - PyLong_AsSsize_t
    - PyObject_GetIter
    - PyNumber_Index
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_new_impl(PyTypeObject *type, PyObject *iterable, PyObject *start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/enumobject.c:84,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:85,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:86,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:87,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - en
    argTypes:
    - enumobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: enum_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void enum_dealloc(enumobject *en)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/enumobject.c:94,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/enumobject.c:95,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/enumobject.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - en
    - visit
    - arg
    argTypes:
    - enumobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: enum_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int enum_traverse(enumobject *en, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/enumobject.c:110,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:112,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/enumobject.c:117,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Objects/enumobject.c:118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:120,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:126,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:127,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:128,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:129,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:132,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/enumobject.c:135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:137,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:138,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:141,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - en
    - next_item
    argTypes:
    - enumobject*
    - PyObject*
    assertStmts:
    - condition: (next_index != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/Python-3.8.3/Objects/enumobject.c
    constantsTouched: []
    func_position:
      end: 144
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 144
    functionName: enum_next_long
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyNumber_Add
    - assert
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next_long(enumobject *en, PyObject* next_item)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:156,1
    - Dst: enum_next_long
      Src: /src/Python-3.8.3/Objects/enumobject.c:161,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/enumobject.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:165,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:171,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:172,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:173,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:174,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:175,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:177,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/enumobject.c:180,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:183,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:186,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/enumobject.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - en
    argTypes:
    - enumobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 189
    functionName: enum_next
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - enum_next_long
    - Py_TYPE
    - PyLong_FromSsize_t
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_next(enumobject *en)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/enumobject.c:195,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:195,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/enumobject.c:197,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - en
    - Py_UNUSED(ignored)
    argTypes:
    - enumobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: enum_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_reduce(enumobject *en, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/enumobject.c:276,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/enumobject.c:278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:280,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/enumobject.c:281,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:283,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/enumobject.c:287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:288,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/enumobject.c:291,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/enumobject.c:294,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/enumobject.c:295,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:297,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/enumobject.c:301,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/enumobject.c:305,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - type
    - seq
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 313
    functionName: reversed_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyErr_Occurred
    - Py_DECREF
    - PySequence_Size
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - Py_TYPE
    - PyErr_Format
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_new_impl(PyTypeObject *type, PyObject *seq)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/enumobject.c:318,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/enumobject.c:319,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ro
    argTypes:
    - reversedobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: reversed_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void reversed_dealloc(reversedobject *ro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/enumobject.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ro
    - visit
    - arg
    argTypes:
    - reversedobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: reversed_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int reversed_traverse(reversedobject *ro, visitproc visit, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/enumobject.c:337,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/enumobject.c:342,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/enumobject.c:343,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/enumobject.c:344,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/enumobject.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ro
    argTypes:
    - reversedobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: reversed_next
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    - PyErr_Clear
    - Py_CLEAR
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_next(reversedobject *ro)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/enumobject.c:357,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/enumobject.c:358,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/enumobject.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ro
    - Py_UNUSED(ignored)
    argTypes:
    - reversedobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: reversed_len
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_FromSsize_t
    - PySequence_Size
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_len(reversedobject *ro, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/enumobject.c:371,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:371,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/enumobject.c:373,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/enumobject.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ro
    - Py_UNUSED(ignored)
    argTypes:
    - reversedobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: reversed_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_reduce(reversedobject *ro, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/enumobject.c:379,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/enumobject.c:380,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Objects/enumobject.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ro
    - state
    argTypes:
    - reversedobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: reversed_setstate
    functionSourceFile: /src/Python-3.8.3/Objects/enumobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PySequence_Size
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_setstate(reversedobject *ro, PyObject *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: _Py_c_sum
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_sum(Py_complex a, Py_complex b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: _Py_c_diff
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_diff(Py_complex a, Py_complex b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: _Py_c_neg
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_neg(Py_complex a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: _Py_c_prod
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_prod(Py_complex a, Py_complex b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts:
    - condition: (b.imag != 0.0)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 118
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 118
    functionName: _Py_c_quot
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_quot(Py_complex a, Py_complex b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hypot
      Src: /src/Python-3.8.3/Objects/complexobject.c:139,1
    - Dst: pow
      Src: /src/Python-3.8.3/Objects/complexobject.c:140,1
    - Dst: atan2
      Src: /src/Python-3.8.3/Objects/complexobject.c:141,1
    - Dst: exp
      Src: /src/Python-3.8.3/Objects/complexobject.c:144,1
    - Dst: log
      Src: /src/Python-3.8.3/Objects/complexobject.c:145,1
    - Dst: cos
      Src: /src/Python-3.8.3/Objects/complexobject.c:147,1
    - Dst: sin
      Src: /src/Python-3.8.3/Objects/complexobject.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Py_complex
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 151
    functionName: _Py_c_pow
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - cos
    - pow
    - hypot
    - exp
    - log
    - sin
    - atan2
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex _Py_c_pow(Py_complex a, Py_complex b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_c_prod
      Src: /src/Python-3.8.3/Objects/complexobject.c:162,1
    - Dst: _Py_c_prod
      Src: /src/Python-3.8.3/Objects/complexobject.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - Py_complex
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: c_powu
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_prod
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_powu(Py_complex x, long n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_c_pow
      Src: /src/Python-3.8.3/Objects/complexobject.c:177,1
    - Dst: c_powu
      Src: /src/Python-3.8.3/Objects/complexobject.c:180,1
    - Dst: _Py_c_quot
      Src: /src/Python-3.8.3/Objects/complexobject.c:182,1
    - Dst: c_powu
      Src: /src/Python-3.8.3/Objects/complexobject.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - Py_complex
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: c_powi
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_quot
    - c_powu
    - _Py_c_pow
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex c_powi(Py_complex x, long n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/complexobject.c:192,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/complexobject.c:192,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/complexobject.c:196,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/complexobject.c:197,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/complexobject.c:201,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Objects/complexobject.c:202,1
    - Dst: hypot
      Src: /src/Python-3.8.3/Objects/complexobject.c:210,1
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Objects/complexobject.c:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - z
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: _Py_c_abs
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 2
    functionsReached:
    - fabs
    - Py_IS_INFINITY
    - hypot
    - Py_IS_FINITE
    linkageType: ''
    returnType: double
    signature: double _Py_c_abs(Py_complex z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/complexobject.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type
    - cval
    argTypes:
    - PyTypeObject*
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: complex_subtype_from_c_complex
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_subtype_from_c_complex(PyTypeObject *type, Py_complex cval)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/complexobject.c:235,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/complexobject.c:237,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/complexobject.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cval
    argTypes:
    - Py_complex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: PyComplex_FromCComplex
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 19
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyComplex_FromCComplex(Py_complex cval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: complex_subtype_from_c_complex
      Src: /src/Python-3.8.3/Objects/complexobject.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - type
    - real
    - imag
    argTypes:
    - PyTypeObject*
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: complex_subtype_from_doubles
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - complex_subtype_from_c_complex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_subtype_from_doubles(PyTypeObject *type, double real, double imag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - real
    - imag
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: PyComplex_FromDoubles
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 1
    functionsReached:
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyComplex_FromDoubles(double real, double imag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:264,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: PyComplex_RealAsDouble
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_Check
    - PyFloat_AsDouble
    linkageType: ''
    returnType: double
    signature: double PyComplex_RealAsDouble(PyObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: PyComplex_ImagAsDouble
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_Check
    linkageType: ''
    returnType: double
    signature: double PyComplex_ImagAsDouble(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/complexobject.c:287,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Objects/complexobject.c:289,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/complexobject.c:291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:292,1
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Objects/complexobject.c:293,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:296,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/complexobject.c:297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:300,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/complexobject.c:304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 315
    functionName: try_complex_special_method
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_WarnFormat
    - _Py_IDENTIFIER
    - _PyObject_LookupSpecial
    - PyComplex_Check
    - PyComplex_CheckExact
    - PyErr_Format
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      try_complex_special_method(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:323,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:325,1
    - Dst: try_complex_special_method
      Src: /src/Python-3.8.3/Objects/complexobject.c:334,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:338,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/complexobject.c:341,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (op)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 351
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 351
    functionName: PyComplex_AsCComplex
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 24
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_DECREF
    - try_complex_special_method
    - PyComplex_Check
    - assert
    linkageType: ''
    returnType: Py_complex
    signature: Py_complex PyComplex_AsCComplex(PyObject *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/complexobject.c:371,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/complexobject.c:375,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/complexobject.c:378,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/complexobject.c:384,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/complexobject.c:387,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Objects/complexobject.c:392,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/complexobject.c:395,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/complexobject.c:401,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/complexobject.c:403,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/complexobject.c:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 353
    functionDepth: 8
    functionLinenumber: 353
    functionLinenumberEnd: 407
    functionName: complex_repr
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - copysign
    - PyErr_NoMemory
    - PyUnicode_FromFormat
    - PyOS_double_to_string
    - PyMem_Free
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_repr(PyComplexObject *v)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:413,1
    - Dst: _Py_HashDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:416,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 429
    functionName: complex_hash
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_HashDouble
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t complex_hash(PyComplexObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 437
    functionName: TO_COMPLEX
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_COMPLEX(obj, c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:444,1
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:445,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/complexobject.c:446,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:452,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:453,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pobj
    - pc
    argTypes:
    - PyObject**
    - Py_complex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 459
    functionName: to_complex
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_INCREF
    - PyLong_AsDouble
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int to_complex(PyObject **pobj, Py_complex *pc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:467,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:468,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:469,1
    - Dst: _Py_c_sum
      Src: /src/Python-3.8.3/Objects/complexobject.c:470,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:471,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 473
    functionName: complex_add
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - _Py_c_sum
    - TO_COMPLEX
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_add(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:480,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:481,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:482,1
    - Dst: _Py_c_diff
      Src: /src/Python-3.8.3/Objects/complexobject.c:483,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:484,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 486
    functionName: complex_sub
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_diff
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - TO_COMPLEX
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_sub(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:493,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:494,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:495,1
    - Dst: _Py_c_prod
      Src: /src/Python-3.8.3/Objects/complexobject.c:496,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:497,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 499
    functionName: complex_mul
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - TO_COMPLEX
    - _Py_c_prod
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_mul(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:506,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:507,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:508,1
    - Dst: _Py_c_quot
      Src: /src/Python-3.8.3/Objects/complexobject.c:510,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:513,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 517
    functionName: complex_div
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_quot
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - TO_COMPLEX
    - PyComplex_FromCComplex
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_div(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: complex_remainder
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_remainder(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: complex_divmod
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_divmod(PyObject *v, PyObject *w)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:543,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:544,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:547,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:550,1
    - Dst: c_powi
      Src: /src/Python-3.8.3/Objects/complexobject.c:555,1
    - Dst: _Py_c_pow
      Src: /src/Python-3.8.3/Objects/complexobject.c:557,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:559,1
    - Dst: Py_ADJUST_ERANGE2
      Src: /src/Python-3.8.3/Objects/complexobject.c:560,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:562,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:567,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - v
    - w
    - z
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 572
    functionName: complex_pow
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFPE_END_PROTECT
    - Py_ADJUST_ERANGE2
    - PyFPE_START_PROTECT
    - TO_COMPLEX
    - PyComplex_FromCComplex
    - c_powi
    - _Py_c_pow
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_pow(PyObject *v, PyObject *w, PyObject *z)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: complex_int_div
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_int_div(PyObject *v, PyObject *w)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 589
    functionName: complex_neg
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_neg(PyComplexObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Objects/complexobject.c:594,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:595,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: complex_pos
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    - PyComplex_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_pos(PyComplexObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:607,1
    - Dst: _Py_c_abs
      Src: /src/Python-3.8.3/Objects/complexobject.c:608,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Objects/complexobject.c:609,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:612,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 617
    functionName: complex_abs
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _Py_c_abs
    - PyFPE_END_PROTECT
    - PyFPE_START_PROTECT
    - PyErr_SetString
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_abs(PyComplexObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyComplexObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 623
    functionName: complex_bool
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int complex_bool(PyComplexObject *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:636,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:636,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:637,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:639,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:645,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/complexobject.c:649,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:650,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:657,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:658,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:660,1
    - Dst: TO_COMPLEX
      Src: /src/Python-3.8.3/Objects/complexobject.c:663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:675,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyComplex_Check(v))
      pos:
        line_end: 635
        line_start: 635
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 680
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 680
    functionName: complex_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyFloat_AsDouble
    - Py_DECREF
    - Py_INCREF
    - TO_COMPLEX
    - PyComplex_Check
    - PyObject_RichCompare
    - assert
    - PyFloat_FromDouble
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 688
    functionName: complex_int
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_int(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 696
    functionName: complex_float
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_float(PyObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Objects/complexobject.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 705
    functionName: complex_conjugate
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyComplex_FromCComplex
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/complexobject.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - Py_UNUSED(ignored)
    argTypes:
    - PyComplexObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: complex_getnewargs
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_getnewargs(PyComplexObject *v, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/complexobject.c:731,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/complexobject.c:734,1
    - Dst: _PyComplex_FormatAdvancedWriter
      Src: /src/Python-3.8.3/Objects/complexobject.c:735,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/complexobject.c:738,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/complexobject.c:740,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/complexobject.c:743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 744
    functionName: complex__format__
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyComplex_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex__format__(PyObject* self, PyObject* args)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/complexobject.c:773,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/complexobject.c:779,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Objects/complexobject.c:805,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/complexobject.c:806,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/complexobject.c:807,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/complexobject.c:808,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Objects/complexobject.c:818,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/complexobject.c:819,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/complexobject.c:820,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/complexobject.c:821,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/complexobject.c:862,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/complexobject.c:870,1
    - Dst: complex_subtype_from_doubles
      Src: /src/Python-3.8.3/Objects/complexobject.c:878,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:881,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 70
    argCount: 3
    argNames:
    - s
    - len
    - type
    argTypes:
    - char*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 884
    functionName: complex_from_string_inner
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    - complex_subtype_from_doubles
    - PyErr_Occurred
    - PyOS_string_to_double
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_from_string_inner(const char *s, Py_ssize_t len, void *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:893,1
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/Python-3.8.3/Objects/complexobject.c:894,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:898,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/complexobject.c:898,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/complexobject.c:900,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:901,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/complexobject.c:904,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/complexobject.c:906,1
    - Dst: _Py_string_to_number_with_underscores
      Src: /src/Python-3.8.3/Objects/complexobject.c:910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - type
    - v
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_IS_ASCII(s_buffer))
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    - condition: (s != NULL)
      pos:
        line_end: 900
        line_start: 900
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 914
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 914
    functionName: complex_subtype_from_string
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_string_to_number_with_underscores
    - PyUnicode_AsUTF8AndSize
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - Py_TYPE
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - PyUnicode_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_subtype_from_string(PyTypeObject *type, PyObject *v)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Objects/complexobject.c:939,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:946,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:949,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:951,1
    - Dst: complex_subtype_from_string
      Src: /src/Python-3.8.3/Objects/complexobject.c:956,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:958,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/complexobject.c:959,1
    - Dst: try_complex_special_method
      Src: /src/Python-3.8.3/Objects/complexobject.c:964,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/complexobject.c:969,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/complexobject.c:975,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/complexobject.c:978,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:980,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/complexobject.c:987,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/complexobject.c:990,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:992,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:1005,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:1012,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Objects/complexobject.c:1019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:1023,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/complexobject.c:1027,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:1027,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:1028,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:1030,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Objects/complexobject.c:1035,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Objects/complexobject.c:1042,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/complexobject.c:1045,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/complexobject.c:1046,1
    - Dst: complex_subtype_from_doubles
      Src: /src/Python-3.8.3/Objects/complexobject.c:1058,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 3
    argNames:
    - type
    - r
    - i
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyFloat_Check(tmp))
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/Python-3.8.3/Objects/complexobject.c
    constantsTouched: []
    func_position:
      end: 1059
      start: 927
    functionDepth: 5
    functionLinenumber: 927
    functionLinenumberEnd: 1059
    functionName: complex_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/complexobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - complex_subtype_from_doubles
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - complex_subtype_from_string
    - try_complex_special_method
    - PyComplex_Check
    - PyComplex_CheckExact
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyNumber_Float
    - PyUnicode_Check
    - assert
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_new_impl(PyTypeObject *type, PyObject *r, PyObject *i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/codeobject.c:29,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/codeobject.c:32,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/codeobject.c:33,1
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Objects/codeobject.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: all_name_chars
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_ISALNUM
    - PyUnicode_GET_LENGTH
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    linkageType: ''
    returnType: int
    signature: int all_name_chars(PyObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:46,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:47,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:48,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/codeobject.c:49,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/codeobject.c:51,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/codeobject.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: intern_strings
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternInPlace
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - Py_FatalError
    - PyTuple_GET_ITEM
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: void
    signature: void intern_strings(PyObject *tuple)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:62,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:63,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:64,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/codeobject.c:65,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/codeobject.c:66,1
    - Dst: all_name_chars
      Src: /src/Python-3.8.3/Objects/codeobject.c:69,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Objects/codeobject.c:71,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:73,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:78,1
    - Dst: intern_string_constants
      Src: /src/Python-3.8.3/Objects/codeobject.c:79,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:81,1
    - Dst: PySequence_Tuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:83,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/codeobject.c:85,1
    - Dst: intern_string_constants
      Src: /src/Python-3.8.3/Objects/codeobject.c:88,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:89,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/codeobject.c:91,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:94,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:95,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:99,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - tuple
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 9
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: intern_string_constants
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READY
    - PyUnicode_InternInPlace
    - PyTuple_GET_SIZE
    - all_name_chars
    - PyFrozenSet_New
    - PySequence_Tuple
    - Py_DECREF
    - intern_string_constants
    - PyFrozenSet_CheckExact
    - PyTuple_CheckExact
    - PyErr_Clear
    - PyTuple_SET_ITEM
    - PyUnicode_CheckExact
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int intern_string_constants(PyObject *tuple)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:121,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:122,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:123,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:124,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:125,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:126,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:127,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:128,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:129,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/codeobject.c:130,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/codeobject.c:135,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/codeobject.c:138,1
    - Dst: intern_strings
      Src: /src/Python-3.8.3/Objects/codeobject.c:142,1
    - Dst: intern_strings
      Src: /src/Python-3.8.3/Objects/codeobject.c:143,1
    - Dst: intern_strings
      Src: /src/Python-3.8.3/Objects/codeobject.c:144,1
    - Dst: intern_strings
      Src: /src/Python-3.8.3/Objects/codeobject.c:145,1
    - Dst: intern_string_constants
      Src: /src/Python-3.8.3/Objects/codeobject.c:146,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:149,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:150,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:156,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/codeobject.c:166,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/codeobject.c:173,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/codeobject.c:175,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:181,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:184,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Objects/codeobject.c:185,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/codeobject.c:186,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:187,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:198,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/Objects/codeobject.c:202,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:205,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:214,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:216,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:218,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:220,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:222,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:224,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:227,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:229,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:232,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 97
    argCount: 16
    argNames:
    - argcount
    - posonlyargcount
    - kwonlyargcount
    - nlocals
    - stacksize
    - flags
    - code
    - consts
    - names
    - varnames
    - freevars
    - cellvars
    - filename
    - name
    - firstlineno
    - lnotab
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 105
    functionDepth: 10
    functionLinenumber: 105
    functionLinenumberEnd: 243
    functionName: PyCode_NewWithPosOnlyArgs
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_NoMemory
    - PyMem_NEW
    - PyErr_BadInternalCall
    - PyMem_FREE
    - PyBytes_Check
    - PyTuple_Check
    - intern_string_constants
    - PyErr_SetString
    - PyObject_NEW
    - PyUnicode_Check
    - intern_strings
    - PyTuple_GET_ITEM
    - PyUnicode_Compare
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount,
      int kwonlyargcount,\n                          int nlocals, int stacksize, int
      flags,\n                          PyObject *code, PyObject *consts, PyObject
      *names,\n                          PyObject *varnames, PyObject *freevars, PyObject
      *cellvars,\n                          PyObject *filename, PyObject *name, int
      firstlineno,\n                          PyObject *lnotab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Objects/codeobject.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 15
    argNames:
    - argcount
    - kwonlyargcount
    - nlocals
    - stacksize
    - flags
    - code
    - consts
    - names
    - varnames
    - freevars
    - cellvars
    - filename
    - name
    - firstlineno
    - lnotab
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 245
    functionDepth: 11
    functionLinenumber: 245
    functionLinenumberEnd: 257
    functionName: PyCode_New
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_NewWithPosOnlyArgs
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyCode_New(int argcount, int kwonlyargcount,\n           int
      nlocals, int stacksize, int flags,\n           PyObject *code, PyObject *consts,
      PyObject *names,\n           PyObject *varnames, PyObject *freevars, PyObject
      *cellvars,\n           PyObject *filename, PyObject *name, int firstlineno,\n
      \          PyObject *lnotab)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/codeobject.c:262,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Objects/codeobject.c:263,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/codeobject.c:268,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Objects/codeobject.c:272,1
    - Dst: PyMem_Calloc
      Src: /src/Python-3.8.3/Objects/codeobject.c:286,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:288,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:293,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 300
    functionName: _PyCode_InitOpcache
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _Py_OPCODE
    - PyMem_Calloc
    - PyBytes_Size
    - PyBytes_AS_STRING
    - PyMem_FREE
    linkageType: ''
    returnType: int
    signature: int _PyCode_InitOpcache(PyCodeObject *co)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Objects/codeobject.c:311,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:316,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/codeobject.c:320,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Objects/codeobject.c:323,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Objects/codeobject.c:327,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:347,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:348,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - filename
    - funcname
    - firstlineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 302
    functionDepth: 11
    functionLinenumber: 302
    functionLinenumberEnd: 350
    functionName: PyCode_NewEmpty
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    - PyBytes_FromString
    - PyCode_NewWithPosOnlyArgs
    - PyTuple_New
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:384,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:385,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:390,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:391,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:392,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:394,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/codeobject.c:395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:400,1
    - Dst: _PyUnicode_Copy
      Src: /src/Python-3.8.3/Objects/codeobject.c:404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:406,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - tup
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 414
    functionName: validate_and_copy_tuple
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyErr_Format
    - _PyUnicode_Copy
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      validate_and_copy_tuple(PyObject *tup)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:444,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/codeobject.c:457,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/codeobject.c:464,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/codeobject.c:471,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/codeobject.c:478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/codeobject.c:484,1
    - Dst: validate_and_copy_tuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:490,1
    - Dst: validate_and_copy_tuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:493,1
    - Dst: validate_and_copy_tuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:497,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:499,1
    - Dst: validate_and_copy_tuple
      Src: /src/Python-3.8.3/Objects/codeobject.c:503,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:505,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Objects/codeobject.c:509,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:517,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:518,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:519,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:520,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - type
    - args
    - kw
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 423
    functionDepth: 11
    functionLinenumber: 423
    functionLinenumberEnd: 522
    functionName: code_new
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - Py_XDECREF
    - validate_and_copy_tuple
    - PyErr_SetString
    - PyCode_NewWithPosOnlyArgs
    - PySys_Audit
    - PyTuple_New
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_new(PyTypeObject *type, PyObject *args, PyObject *kw)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:528,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:531,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/codeobject.c:537,1
    - Dst: free_extra
      Src: /src/Python-3.8.3/Objects/codeobject.c:544,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/codeobject.c:548,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:551,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:552,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:553,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:554,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:555,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:556,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:557,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:558,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:559,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/codeobject.c:561,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/codeobject.c:563,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/codeobject.c:565,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/Objects/codeobject.c:566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 567
    functionName: code_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - free_extra
    - _PyInterpreterState_GET_UNSAFE
    - PyObject_ClearWeakRefs
    - PyObject_DEL
    - PyMem_Free
    - PyMem_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void code_dealloc(PyCodeObject *co)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:572,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:572,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:576,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/codeobject.c:583,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:585,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/codeobject.c:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - co
    - Py_UNUSED(args)
    argTypes:
    - PyCodeObject*
    - PyObject*
    assertStmts:
    - condition: (co->co_opcache_map != NULL)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/Python-3.8.3/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 590
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 590
    functionName: code_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyObject_SIZE
    - PyBytes_GET_SIZE
    - Py_TYPE
    - assert
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_sizeof(PyCodeObject *co, PyObject *Py_UNUSED(args))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:634,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:635,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:636,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:637,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:638,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:639,1
    - Dst: CHECK_INT_ARG
      Src: /src/Python-3.8.3/Objects/codeobject.c:640,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/codeobject.c:644,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Objects/codeobject.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 17
    argNames:
    - self
    - co_argcount
    - co_posonlyargcount
    - co_kwonlyargcount
    - co_nlocals
    - co_stacksize
    - co_flags
    - co_firstlineno
    - co_code
    - co_consts
    - co_names
    - co_varnames
    - co_freevars
    - co_cellvars
    - co_filename
    - co_name
    - co_lnotab
    argTypes:
    - PyCodeObject*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - PyBytesObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 616
    functionDepth: 11
    functionLinenumber: 616
    functionLinenumberEnd: 656
    functionName: code_replace_impl
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_NewWithPosOnlyArgs
    - CHECK_INT_ARG
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncode_replace_impl(PyCodeObject *self, int co_argcount,\n
      \                 int co_posonlyargcount, int co_kwonlyargcount,\n                  int
      co_nlocals, int co_stacksize, int co_flags,\n                  int co_firstlineno,
      PyBytesObject *co_code,\n                  PyObject *co_consts, PyObject *co_names,\n
      \                 PyObject *co_varnames, PyObject *co_freevars,\n                  PyObject
      *co_cellvars, PyObject *co_filename,\n                  PyObject *co_name, PyBytesObject
      *co_lnotab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 633
    functionName: CHECK_INT_ARG
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_INT_ARG(ARG)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:666,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/codeobject.c:667,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/codeobject.c:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 675
    functionName: code_repr
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_repr(PyCodeObject *co)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:684,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:685,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:687,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:691,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:694,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:694,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:697,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:697,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:699,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Objects/codeobject.c:700,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/codeobject.c:704,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:705,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:705,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:707,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:707,1
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:709,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Objects/codeobject.c:716,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/codeobject.c:717,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Objects/codeobject.c:718,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:722,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:722,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:725,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:725,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:728,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:728,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:731,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/codeobject.c:731,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:734,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:738,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:739,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:746,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Objects/codeobject.c:747,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:749,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:753,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:756,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:757,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Objects/codeobject.c:759,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:766,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:767,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Objects/codeobject.c:772,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Objects/codeobject.c:775,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:777,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/codeobject.c:781,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/codeobject.c:782,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Objects/codeobject.c:785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:786,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:791,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Objects/codeobject.c:797,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/codeobject.c:801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:802,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (i < len)
      pos:
        line_end: 780
        line_start: 780
        source_file: /src/Python-3.8.3/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 805
      start: 677
    functionDepth: 9
    functionLinenumber: 677
    functionLinenumberEnd: 805
    functionName: _PyCode_ConstantKey
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyTuple_SET_ITEM
    - PyTuple_GET_SIZE
    - PyLong_FromVoidPtr
    - PyUnicode_CheckExact
    - PyTuple_GET_ITEM
    - PyFrozenSet_New
    - Py_INCREF
    - PyTuple_Pack
    - PyComplex_CheckExact
    - PyFrozenSet_CheckExact
    - _PySet_NextEntry
    - assert
    - PySet_GET_SIZE
    - PyBool_Check
    - _PyCode_ConstantKey
    - Py_DECREF
    - PyComplex_AsCComplex
    - PyFloat_AS_DOUBLE
    - copysign
    - Py_TYPE
    - PyTuple_CheckExact
    - PyTuple_New
    - PyBytes_CheckExact
    - PyLong_CheckExact
    - PyCode_Check
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCode_ConstantKey(PyObject *op)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:816,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:817,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:824,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:838,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Objects/codeobject.c:842,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Objects/codeobject.c:845,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:847,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:850,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:852,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:855,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:857,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:859,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/codeobject.c:861,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/codeobject.c:879,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 84
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 807
    functionDepth: 10
    functionLinenumber: 807
    functionLinenumberEnd: 881
    functionName: code_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyObject_RichCompareBool
    - PyCode_Check
    - _PyCode_ConstantKey
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:887,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:889,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:891,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:893,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:895,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:897,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/codeobject.c:899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - co
    argTypes:
    - PyCodeObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 883
    functionDepth: 3
    functionLinenumber: 883
    functionLinenumberEnd: 906
    functionName: code_hash
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t code_hash(PyCodeObject *co)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Objects/codeobject.c:964,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Objects/codeobject.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - co
    - addrq
    argTypes:
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 976
    functionName: PyCode_Addr2Line
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_Size
    - PyBytes_AsString
    linkageType: ''
    returnType: int
    signature: int PyCode_Addr2Line(PyCodeObject *co, int addrq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/codeobject.c:987,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/codeobject.c:988,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/codeobject.c:992,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - co
    - lasti
    - bounds
    argTypes:
    - PyCodeObject*
    - int
    - PyAddrPair*
    assertStmts:
    - condition: (line > 0)
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/Python-3.8.3/Objects/codeobject.c
    constantsTouched: []
    func_position:
      end: 1029
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1029
    functionName: _PyCode_CheckLineNumber
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int _PyCode_CheckLineNumber(PyCodeObject* co, int lasti, PyAddrPair
      *bounds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:1035,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/codeobject.c:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1050
    functionName: _PyCode_GetExtra
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - PyCode_Check
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: int
    signature: int _PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/codeobject.c:1056,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/codeobject.c:1058,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/codeobject.c:1060,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/Objects/codeobject.c:1069,1
    - Dst: free
      Src: /src/Python-3.8.3/Objects/codeobject.c:1086,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - code
    - index
    - extra
    argTypes:
    - PyObject*
    - Py_ssize_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1092
    functionName: _PyCode_SetExtra
    functionSourceFile: /src/Python-3.8.3/Objects/codeobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_BadInternalCall
    - PyMem_Realloc
    - free
    - PyCode_Check
    linkageType: ''
    returnType: int
    signature: int _PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:15,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/call.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: null_error
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 36
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      null_error(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:25,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:27,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:32,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:36,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/call.c:41,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:48,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Objects/call.c:51,1
    - Dst: _PyErr_FormatFromCause
      Src: /src/Python-3.8.3/Objects/call.c:56,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/call.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - callable
    - result
    - where
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    assertStmts:
    - condition: ((callable != NULL) ^ (where != NULL))
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: _Py_CheckFunctionResult
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 2
    functionsReached:
    - _PyErr_FormatFromCause
    - PyErr_Occurred
    - Py_DECREF
    - Py_FatalError
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_CheckFunctionResult(PyObject *callable, PyObject *result, const char *where)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:80,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:80,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:81,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/call.c:83,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:84,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:85,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:86,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:86,1
    - Dst: _PyVectorcall_Function
      Src: /src/Python-3.8.3/Objects/call.c:88,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/Python-3.8.3/Objects/call.c:91,1
    - Dst: func
      Src: /src/Python-3.8.3/Objects/call.c:96,1
    - Dst: _PyStack_UnpackDict
      Src: /src/Python-3.8.3/Objects/call.c:101,1
    - Dst: func
      Src: /src/Python-3.8.3/Objects/call.c:104,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:106,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:108,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:110,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:111,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (callable != NULL)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 115
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 115
    functionName: _PyObject_FastCallDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 5
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _PyObject_MakeTpCall
    - _Py_CheckFunctionResult
    - PyVectorcall_NARGS
    - PyDict_Check
    - func
    - _PyVectorcall_Function
    - PyMem_Free
    - assert
    - _PyStack_UnpackDict
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_FastCallDict(PyObject *callable, PyObject *const
      *args,\n                       size_t nargsf, PyObject *kwargs)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:123,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:125,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:126,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:130,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:131,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:132,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/call.c:132,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:132,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/call.c:133,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:139,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:143,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:144,1
    - Dst: _PyStack_AsDict
      Src: /src/Python-3.8.3/Objects/call.c:145,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:147,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:157,1
    - Dst: call
      Src: /src/Python-3.8.3/Objects/call.c:159,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:165,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - callable
    - args
    - nargs
    - keywords
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (keywords == NULL || PyTuple_Check(keywords) || PyDict_Check(keywords))
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (args != NULL)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 170
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 170
    functionName: _PyObject_MakeTpCall
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - call
    - _Py_CheckFunctionResult
    - PyDict_Check
    - Py_LeaveRecursiveCall
    - PyTuple_Check
    - Py_EnterRecursiveCall
    - PyErr_Format
    - Py_TYPE
    - _PyStack_AsDict
    - _PyTuple_FromArray
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_MakeTpCall(PyObject *callable, PyObject *const *args, Py_ssize_t nargs,
      PyObject *keywords)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:178,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:180,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:181,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:186,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:187,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:193,1
    - Dst: _PyStack_UnpackDict
      Src: /src/Python-3.8.3/Objects/call.c:195,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:195,1
    - Dst: func
      Src: /src/Python-3.8.3/Objects/call.c:199,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:201,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:203,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:205,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:206,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - callable
    - tuple
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 210
    functionName: PyVectorcall_Call
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - _Py_CheckFunctionResult
    - _PyTuple_ITEMS
    - func
    - PyErr_Format
    - Py_TYPE
    - PyMem_Free
    - _PyStack_UnpackDict
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:222,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:222,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:223,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/call.c:223,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:224,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:224,1
    - Dst: _PyVectorcall_Function
      Src: /src/Python-3.8.3/Objects/call.c:226,1
    - Dst: PyVectorcall_Call
      Src: /src/Python-3.8.3/Objects/call.c:227,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/call.c:229,1
    - Dst: cfunction_call_varargs
      Src: /src/Python-3.8.3/Objects/call.c:232,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:237,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:242,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:247,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 251
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 251
    functionName: PyObject_Call
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 22
    functionsReached:
    - PyErr_Occurred
    - cfunction_call_varargs
    - _Py_CheckFunctionResult
    - PyVectorcall_Call
    - PyDict_Check
    - Py_LeaveRecursiveCall
    - _PyVectorcall_Function
    - PyTuple_Check
    - PyCFunction_Check
    - PyErr_Format
    - Py_EnterRecursiveCall
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_Call(PyObject *callable, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Objects/call.c:261,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:266,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:271,1
    - Dst: _PyFrame_New_NoTrack
      Src: /src/Python-3.8.3/Objects/call.c:272,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:280,1
    - Dst: PyEval_EvalFrameEx
      Src: /src/Python-3.8.3/Objects/call.c:283,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/call.c:285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:286,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/call.c:287,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - co
    - args
    - nargs
    - globals
    argTypes:
    - PyCodeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (globals != NULL)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 295
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 295
    functionName: _Py_HOT_FUNCTION::function_code_fastcall
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyEval_EvalFrameEx
    - Py_DECREF
    - Py_INCREF
    - _PyThreadState_GET
    - Py_REFCNT
    - _PyObject_GC_TRACK
    - assert
    - _PyFrame_New_NoTrack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * _Py_HOT_FUNCTION\nfunction_code_fastcall(PyCodeObject *co,
      PyObject *const *args, Py_ssize_t nargs,\n                       PyObject *globals)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GET_CODE
      Src: /src/Python-3.8.3/Objects/call.c:302,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/Python-3.8.3/Objects/call.c:303,1
    - Dst: PyFunction_GET_DEFAULTS
      Src: /src/Python-3.8.3/Objects/call.c:304,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:311,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:312,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:313,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:314,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:314,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:317,1
    - Dst: function_code_fastcall
      Src: /src/Python-3.8.3/Objects/call.c:322,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:325,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:328,1
    - Dst: function_code_fastcall
      Src: /src/Python-3.8.3/Objects/call.c:329,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:329,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:334,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/call.c:340,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:345,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/call.c:347,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:351,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:352,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:355,1
    - Dst: PyFunction_GET_KW_DEFAULTS
      Src: /src/Python-3.8.3/Objects/call.c:362,1
    - Dst: PyFunction_GET_CLOSURE
      Src: /src/Python-3.8.3/Objects/call.c:363,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:368,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:369,1
    - Dst: _PyEval_EvalCodeWithName
      Src: /src/Python-3.8.3/Objects/call.c:376,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/call.c:381,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - func
    - args
    - nargs
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (func != NULL)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (i / 2 == nk)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 383
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 383
    functionName: _PyFunction_FastCallDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyDict_Next
    - PyFunction_GET_CLOSURE
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyFunction_GET_CODE
    - PyFunction_GET_KW_DEFAULTS
    - PyFunction_GET_GLOBALS
    - PyDict_Check
    - function_code_fastcall
    - _PyTuple_ITEMS
    - Py_XDECREF
    - PyFunction_GET_DEFAULTS
    - _PyEval_EvalCodeWithName
    - assert
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyFunction_FastCallDict(PyObject *func, PyObject *const
      *args, Py_ssize_t nargs,\n                         PyObject *kwargs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GET_CODE
      Src: /src/Python-3.8.3/Objects/call.c:390,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/Python-3.8.3/Objects/call.c:391,1
    - Dst: PyFunction_GET_DEFAULTS
      Src: /src/Python-3.8.3/Objects/call.c:392,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:395,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:398,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/call.c:398,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Objects/call.c:399,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:400,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:401,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/call.c:401,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:402,1
    - Dst: function_code_fastcall
      Src: /src/Python-3.8.3/Objects/call.c:410,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:413,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:416,1
    - Dst: function_code_fastcall
      Src: /src/Python-3.8.3/Objects/call.c:417,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:417,1
    - Dst: PyFunction_GET_KW_DEFAULTS
      Src: /src/Python-3.8.3/Objects/call.c:422,1
    - Dst: PyFunction_GET_CLOSURE
      Src: /src/Python-3.8.3/Objects/call.c:423,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:428,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:429,1
    - Dst: _PyEval_EvalCodeWithName
      Src: /src/Python-3.8.3/Objects/call.c:435,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:437,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 4
    argNames:
    - func
    - stack
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwnames == NULL || PyTuple_CheckExact(kwnames))
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: ((nargs == 0 && nkwargs == 0) || stack != NULL)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (PyFunction_Check(func))
      pos:
        line_end: 397
        line_start: 397
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 442
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 442
    functionName: _PyFunction_Vectorcall
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyFunction_GET_CLOSURE
    - PyTuple_GET_SIZE
    - PyFunction_Check
    - PyFunction_GET_CODE
    - PyVectorcall_NARGS
    - PyFunction_GET_GLOBALS
    - _PyTuple_ITEMS
    - function_code_fastcall
    - PyFunction_GET_KW_DEFAULTS
    - PyFunction_GET_DEFAULTS
    - PyTuple_CheckExact
    - _PyEval_EvalCodeWithName
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyFunction_Vectorcall(PyObject *func, PyObject* const*
      stack,\n                       size_t nargsf, PyObject *kwnames)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:455,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:455,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:457,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:458,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:459,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:460,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:460,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:466,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:473,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:478,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:488,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:493,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:503,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/call.c:511,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:522,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:528,1
    - Dst: _PyStack_UnpackDict
      Src: /src/Python-3.8.3/Objects/call.c:542,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:550,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:552,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:553,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/call.c:559,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:568,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:573,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 5
    argNames:
    - method
    - self
    - args
    - nargs
    - kwargs
    argTypes:
    - PyMethodDef*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 459
        line_start: 459
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 457
        line_start: 457
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (method != NULL)
      pos:
        line_end: 456
        line_start: 456
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 454
        line_start: 454
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs == 0 || args != NULL)
      pos:
        line_end: 458
        line_start: 458
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 575
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 575
    functionName: _PyMethodDef_RawFastCallDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - PyDict_Check
    - Py_LeaveRecursiveCall
    - Py_EnterRecursiveCall
    - PyErr_Format
    - PyMem_Free
    - PyErr_SetString
    - _PyTuple_FromArray
    - assert
    - _PyStack_UnpackDict
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyMethodDef_RawFastCallDict(PyMethodDef *method, PyObject
      *self,\n                             PyObject *const *args, Py_ssize_t nargs,\n
      \                            PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:585,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:586,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Objects/call.c:586,1
    - Dst: _PyMethodDef_RawFastCallDict
      Src: /src/Python-3.8.3/Objects/call.c:588,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/call.c:589,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - func
    - args
    - nargs
    - kwargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (func != NULL)
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (PyCFunction_Check(func))
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 593
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 593
    functionName: _PyCFunction_FastCallDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - _PyMethodDef_RawFastCallDict
    - _Py_CheckFunctionResult
    - PyCFunction_Check
    - assert
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCFunction_FastCallDict(PyObject *func,\n                          PyObject
      *const *args, Py_ssize_t nargs,\n                          PyObject *kwargs)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:604,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:604,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:606,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:607,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:608,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Objects/call.c:608,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:614,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:617,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:629,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:644,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Objects/call.c:677,1
    - Dst: _PyStack_AsDict
      Src: /src/Python-3.8.3/Objects/call.c:686,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:688,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/call.c:697,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:702,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/call.c:707,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:716,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:721,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 5
    argNames:
    - method
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyMethodDef*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (method != NULL)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwnames == NULL || PyTuple_CheckExact(kwnames))
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 603
        line_start: 603
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (nargs >= 0)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 723
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 723
    functionName: _PyMethodDef_RawFastCallKeywords
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_LeaveRecursiveCall
    - Py_EnterRecursiveCall
    - PyErr_Format
    - _PyTuple_FromArray
    - _PyStack_AsDict
    - PyTuple_CheckExact
    - PyErr_SetString
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyMethodDef_RawFastCallKeywords(PyMethodDef *method,
      PyObject *self,\n                                 PyObject *const *args, Py_ssize_t
      nargs,\n                                 PyObject *kwnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:729,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:729,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:730,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:730,1
    - Dst: PyCFunction_GET_FUNCTION
      Src: /src/Python-3.8.3/Objects/call.c:732,1
    - Dst: PyCFunction_GET_SELF
      Src: /src/Python-3.8.3/Objects/call.c:733,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:736,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/Python-3.8.3/Objects/call.c:736,1
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/Python-3.8.3/Objects/call.c:737,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:738,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:744,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:747,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:748,1
    - Dst: Py_EnterRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:753,1
    - Dst: Py_LeaveRecursiveCall
      Src: /src/Python-3.8.3/Objects/call.c:759,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Objects/call.c:762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - func
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 729
        line_start: 729
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (PyCFunction_GET_FLAGS(func) & METH_VARARGS)
      pos:
        line_end: 735
        line_start: 735
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 763
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 763
    functionName: cfunction_call_varargs
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - PyCFunction_GET_FLAGS
    - _Py_CheckFunctionResult
    - PyDict_GET_SIZE
    - PyDict_Check
    - Py_LeaveRecursiveCall
    - Py_EnterRecursiveCall
    - PyErr_Format
    - assert
    - PyCFunction_GET_FUNCTION
    - PyCFunction_GET_SELF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cfunction_call_varargs(PyObject *func, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_GET_FLAGS
      Src: /src/Python-3.8.3/Objects/call.c:771,1
    - Dst: cfunction_call_varargs
      Src: /src/Python-3.8.3/Objects/call.c:772,1
    - Dst: PyVectorcall_Call
      Src: /src/Python-3.8.3/Objects/call.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - func
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 766
    functionDepth: 3
    functionLinenumber: 766
    functionLinenumberEnd: 775
    functionName: PyCFunction_Call
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyVectorcall_Call
    - PyCFunction_GET_FLAGS
    - cfunction_call_varargs
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCFunction_Call(PyObject *func, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:790,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/call.c:790,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/call.c:793,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/call.c:794,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/call.c:799,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/call.c:800,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Objects/call.c:806,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Objects/call.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - callable
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 789
        line_start: 789
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 811
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 811
    functionName: PyEval_CallObjectWithKeywords
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyDict_Check
    - _PyObject_FastCallDict
    - PyTuple_Check
    - PyErr_SetString
    - PyObject_Call
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyEval_CallObjectWithKeywords(PyObject *callable,\n                              PyObject
      *args, PyObject *kwargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_CallObjectWithKeywords
      Src: /src/Python-3.8.3/Objects/call.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - callable
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 5
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: PyObject_CallObject
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 48
    functionsReached:
    - PyEval_CallObjectWithKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallObject(PyObject *callable, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/call.c:832,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/call.c:836,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/call.c:838,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/call.c:846,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/call.c:849,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - callable
    - obj
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 854
    functionName: _PyObject_FastCall_Prepend
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - _PyObject_FastCall
    - PyMem_Free
    - PyMem_Malloc
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_FastCall_Prepend(PyObject *callable, PyObject
      *obj,\n                           PyObject *const *args, Py_ssize_t nargs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:867,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/call.c:867,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:869,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/call.c:870,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/call.c:874,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/call.c:876,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/call.c:883,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:884,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Objects/call.c:887,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - callable
    - obj
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 866
        line_start: 866
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 894
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 894
    functionName: _PyObject_Call_Prepend
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 4
    functionsReached:
    - memcpy
    - Py_ARRAY_LENGTH
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - _PyTuple_ITEMS
    - _PyObject_FastCallDict
    - PyTuple_Check
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_Call_Prepend(PyObject *callable,\n                       PyObject
      *obj, PyObject *args, PyObject *kwargs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/call.c:904,1
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:910,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/call.c:914,1
    - Dst: _Py_VaBuildStack_SizeT
      Src: /src/Python-3.8.3/Objects/call.c:918,1
    - Dst: _Py_VaBuildStack
      Src: /src/Python-3.8.3/Objects/call.c:922,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/call.c:929,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/call.c:935,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/call.c:936,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:937,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/call.c:940,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:944,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:947,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - callable
    - format
    - va
    - is_size_t
    argTypes:
    - PyObject*
    - char*
    - va_list
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 950
    functionName: _PyObject_CallFunctionVa
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyTuple_GET_SIZE
    - null_error
    - _PyTuple_ITEMS
    - PyTuple_Check
    - _Py_VaBuildStack
    - _PyObject_FastCall
    - PyMem_Free
    - _PyObject_CallNoArg
    - _Py_VaBuildStack_SizeT
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallFunctionVa(PyObject *callable, const char
      *format,\n                         va_list va, int is_size_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:959,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/Python-3.8.3/Objects/call.c:960,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 964
    functionName: PyObject_CallFunction
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 46
    functionsReached:
    - va_start
    - va_end
    - _PyObject_CallFunctionVa
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallFunction(PyObject *callable, const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:976,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/Python-3.8.3/Objects/call.c:977,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 970
    functionDepth: 2
    functionLinenumber: 970
    functionLinenumberEnd: 981
    functionName: PyEval_CallFunction
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - _PyObject_CallFunctionVa
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_CallFunction(PyObject *callable, const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:990,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/Python-3.8.3/Objects/call.c:991,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - callable
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 995
    functionName: _PyObject_CallFunction_SizeT
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - _PyObject_CallFunctionVa
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:1001,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Objects/call.c:1003,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/call.c:1004,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/call.c:1006,1
    - Dst: _PyObject_CallFunctionVa
      Src: /src/Python-3.8.3/Objects/call.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - callable
    - format
    - va
    - is_size_t
    argTypes:
    - PyObject*
    - char*
    - va_list
    - int
    assertStmts:
    - condition: (callable != NULL)
      pos:
        line_end: 1000
        line_start: 1000
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 1011
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1011
    functionName: callmethod
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyErr_Format
    - Py_TYPE
    - assert
    - _PyObject_CallFunctionVa
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      callmethod(PyObject* callable, const char *format, va_list va, int is_size_t)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1021,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/call.c:1024,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1028,1
    - Dst: callmethod
      Src: /src/Python-3.8.3/Objects/call.c:1029,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1030,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1034
    functionName: PyObject_CallMethod
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 36
    functionsReached:
    - va_start
    - Py_DECREF
    - PyObject_GetAttrString
    - null_error
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1047,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/call.c:1050,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1054,1
    - Dst: callmethod
      Src: /src/Python-3.8.3/Objects/call.c:1055,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1060
    functionName: PyEval_CallMethod
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_DECREF
    - PyObject_GetAttrString
    - null_error
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_CallMethod(PyObject *obj, const char *name, const char *format, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1071,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/call.c:1074,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1078,1
    - Dst: callmethod
      Src: /src/Python-3.8.3/Objects/call.c:1079,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1080,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1063
    functionDepth: 3
    functionLinenumber: 1063
    functionLinenumberEnd: 1084
    functionName: _PyObject_CallMethodId
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 68
    functionsReached:
    - va_start
    - Py_DECREF
    - _PyObject_GetAttrId
    - null_error
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethodId(PyObject *obj, _Py_Identifier *name,\n
      \                      const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1095,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/call.c:1098,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1102,1
    - Dst: callmethod
      Src: /src/Python-3.8.3/Objects/call.c:1103,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1108
    functionName: _PyObject_CallMethod_SizeT
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_DECREF
    - PyObject_GetAttrString
    - null_error
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethod_SizeT(PyObject *obj, const char *name,\n
      \                          const char *format, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1119,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/call.c:1122,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1127,1
    - Dst: callmethod
      Src: /src/Python-3.8.3/Objects/call.c:1128,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1129,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - obj
    - name
    - format
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1133
    functionName: _PyObject_CallMethodId_SizeT
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_DECREF
    - _PyObject_GetAttrId
    - null_error
    - callmethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethodId_SizeT(PyObject *obj, _Py_Identifier
      *name,\n                             const char *format, ...)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1149,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Objects/call.c:1153,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/call.c:1156,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1162,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/call.c:1165,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/call.c:1169,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/call.c:1171,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Objects/call.c:1182,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/call.c:1186,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:1189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - base
    - callable
    - vargs
    argTypes:
    - PyObject*
    - PyObject*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1192
    functionName: object_vacall
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - PyErr_NoMemory
    - null_error
    - va_copy
    - va_arg
    - _PyObject_FastCall
    - PyMem_Free
    - PyMem_Malloc
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object_vacall(PyObject *base, PyObject *callable, va_list vargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1202,1
    - Dst: _PyObject_GetMethod
      Src: /src/Python-3.8.3/Objects/call.c:1206,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1213,1
    - Dst: object_vacall
      Src: /src/Python-3.8.3/Objects/call.c:1214,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: PyObject_CallMethodObjArgs
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 42
    functionsReached:
    - va_start
    - object_vacall
    - Py_DECREF
    - null_error
    - _PyObject_GetMethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ...)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: null_error
      Src: /src/Python-3.8.3/Objects/call.c:1227,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Objects/call.c:1230,1
    - Dst: _PyObject_GetMethod
      Src: /src/Python-3.8.3/Objects/call.c:1236,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1243,1
    - Dst: object_vacall
      Src: /src/Python-3.8.3/Objects/call.c:1244,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1222
    functionDepth: 3
    functionLinenumber: 1222
    functionLinenumberEnd: 1249
    functionName: _PyObject_CallMethodIdObjArgs
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 45
    functionsReached:
    - va_start
    - object_vacall
    - Py_DECREF
    - _PyUnicode_FromId
    - null_error
    - _PyObject_GetMethod
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_CallMethodIdObjArgs(PyObject *obj,\n                              struct
      _Py_Identifier *name, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Objects/call.c:1258,1
    - Dst: object_vacall
      Src: /src/Python-3.8.3/Objects/call.c:1259,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Objects/call.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1263
    functionName: PyObject_CallFunctionObjArgs
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 92
    functionsReached:
    - va_start
    - object_vacall
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyObject_CallFunctionObjArgs(PyObject *callable, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:1275,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:1276,1
    - Dst: _PyDict_NewPresized
      Src: /src/Python-3.8.3/Objects/call.c:1277,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/call.c:1283,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/call.c:1286,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/call.c:1287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - values
    - kwnames
    argTypes:
    - PyObject**
    - PyObject*
    assertStmts:
    - condition: (kwnames != NULL)
      pos:
        line_end: 1274
        line_start: 1274
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 1292
      start: 1268
    functionDepth: 5
    functionLinenumber: 1268
    functionLinenumberEnd: 1292
    functionName: _PyStack_AsDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - _PyDict_NewPresized
    - PyTuple_GET_SIZE
    - PyDict_SetItem
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyStack_AsDict(PyObject *const *values, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:1305,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/call.c:1306,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Objects/call.c:1306,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/call.c:1308,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/call.c:1315,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/call.c:1319,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/call.c:1321,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/call.c:1325,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/call.c:1327,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:1333,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/call.c:1342,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:1343,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/call.c:1344,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/call.c:1345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 5
    argNames:
    - args
    - nargs
    - kwargs
    - p_stack
    - p_kwnames
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - PyObject***
    - PyObject**
    assertStmts:
    - condition: (nargs >= 0)
      pos:
        line_end: 1304
        line_start: 1304
        source_file: /src/Python-3.8.3/Objects/call.c
    - condition: (kwargs == NULL || PyDict_CheckExact(kwargs))
      pos:
        line_end: 1305
        line_start: 1305
        source_file: /src/Python-3.8.3/Objects/call.c
    constantsTouched: []
    func_position:
      end: 1353
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1353
    functionName: _PyStack_UnpackDict
    functionSourceFile: /src/Python-3.8.3/Objects/call.c
    functionUses: 3
    functionsReached:
    - PyDict_Next
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyErr_NoMemory
    - PyDict_CheckExact
    - PyMem_Free
    - PyMem_Malloc
    - assert
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: "int _PyStack_UnpackDict(PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwargs,\n                    PyObject *const **p_stack, PyObject **p_kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mbuf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: CHECK_MBUF_RELEASED
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_MBUF_RELEASED(mbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/memoryobject.c:85,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/memoryobject.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: mbuf_alloc
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: _PyManagedBufferObject
    signature: '_PyManagedBufferObject *

      mbuf_alloc(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mbuf_alloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:101,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - base
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: _PyManagedBuffer_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_GetBuffer
    - mbuf_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyManagedBuffer_FromObject(PyObject *base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/memoryobject.c:125,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyManagedBufferObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: mbuf_release
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyBuffer_Release
    linkageType: ''
    returnType: void
    signature: void mbuf_release(_PyManagedBufferObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:132,1
    - Dst: mbuf_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:133,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:135,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/memoryobject.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyManagedBufferObject*
    assertStmts:
    - condition: (self->exports == 0)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: mbuf_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyObject_GC_Del
    - PyMem_Free
    - mbuf_release
    linkageType: ''
    returnType: void
    signature: void mbuf_dealloc(_PyManagedBufferObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - _PyManagedBufferObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: mbuf_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int mbuf_traverse(_PyManagedBufferObject *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:149,1
    - Dst: mbuf_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - _PyManagedBufferObject*
    assertStmts:
    - condition: (self->exports >= 0)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: mbuf_clear
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - mbuf_release
    linkageType: ''
    returnType: int
    signature: int mbuf_clear(_PyManagedBufferObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: BASE_INACCESSIBLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASE_INACCESSIBLE(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: CHECK_RELEASED
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RELEASED(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: CHECK_RELEASED_INT
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RELEASED_INT(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: CHECK_LIST_OR_TUPLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_LIST_OR_TUPLE(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: VIEW_ADDR
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VIEW_ADDR(mv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - suboffsets
    - ','
    - dim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: HAVE_PTR
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_PTR(suboffsets, dim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - suboffsets
    - ','
    - dim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: ADJUST_PTR
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADJUST_PTR(ptr, suboffsets, dim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: MV_C_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MV_C_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: MV_F_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MV_F_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: MV_ANY_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MV_ANY_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - view
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: MV_CONTIGUOUS_NDIM1
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MV_CONTIGUOUS_NDIM1(view)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: REQ_INDIRECT
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_INDIRECT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: REQ_C_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_C_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: REQ_F_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_F_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: REQ_ANY_CONTIGUOUS
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_ANY_CONTIGUOUS(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: REQ_STRIDES
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_STRIDES(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    functionName: REQ_SHAPE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_SHAPE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: REQ_WRITABLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_WRITABLE(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: REQ_FORMAT
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ_FORMAT(flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - view
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: HAVE_SUBOFFSETS_IN_LAST_DIM
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAVE_SUBOFFSETS_IN_LAST_DIM(view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:268,1
    - Dst: HAVE_SUBOFFSETS_IN_LAST_DIM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:269,1
    - Dst: HAVE_SUBOFFSETS_IN_LAST_DIM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->ndim > 0 && src->ndim > 0)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: last_dim_is_contiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - HAVE_SUBOFFSETS_IN_LAST_DIM
    linkageType: ''
    returnType: int
    signature: int last_dim_is_contiguous(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:286,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->format && src->format)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 296
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 296
    functionName: equiv_format
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: int equiv_format(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 317
    functionName: equiv_shape
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int equiv_shape(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: equiv_format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:324,1
    - Dst: equiv_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 333
    functionName: equiv_structure
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - equiv_format
    - equiv_shape
    linkageType: ''
    returnType: int
    signature: int equiv_structure(const Py_buffer *dest, const Py_buffer *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:347,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Objects/memoryobject.c:349,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:355,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:356,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:359,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 9
    argNames:
    - shape
    - itemsize
    - dptr
    - dstrides
    - dsuboffsets
    - sptr
    - sstrides
    - ssuboffsets
    - mem
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 364
    functionName: copy_base
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memmove
    - memcpy
    - ADJUST_PTR
    linkageType: ''
    returnType: void
    signature: "void copy_base(const Py_ssize_t *shape, Py_ssize_t itemsize,\n          char
      *dptr, const Py_ssize_t *dstrides, const Py_ssize_t *dsuboffsets,\n          char
      *sptr, const Py_ssize_t *sstrides, const Py_ssize_t *ssuboffsets,\n          char
      *mem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:376,1
    - Dst: copy_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:379,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:387,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:388,1
    - Dst: copy_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 10
    argNames:
    - shape
    - ndim
    - itemsize
    - dptr
    - dstrides
    - dsuboffsets
    - sptr
    - sstrides
    - ssuboffsets
    - mem
    argTypes:
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts:
    - condition: (ndim >= 1)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 395
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 395
    functionName: copy_rec
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - assert
    - copy_base
    - ADJUST_PTR
    - copy_rec
    linkageType: ''
    returnType: void
    signature: "void copy_rec(const Py_ssize_t *shape, Py_ssize_t ndim, Py_ssize_t
      itemsize,\n         char *dptr, const Py_ssize_t *dstrides, const Py_ssize_t
      *dsuboffsets,\n         char *sptr, const Py_ssize_t *sstrides, const Py_ssize_t
      *ssuboffsets,\n         char *mem)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:403,1
    - Dst: equiv_structure
      Src: /src/Python-3.8.3/Objects/memoryobject.c:405,1
    - Dst: last_dim_is_contiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:408,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:409,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:411,1
    - Dst: copy_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:416,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->ndim == 1)
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 425
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 425
    functionName: copy_single
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - last_dim_is_contiguous
    - equiv_structure
    - PyErr_NoMemory
    - copy_base
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int copy_single(Py_buffer *dest, Py_buffer *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:435,1
    - Dst: equiv_structure
      Src: /src/Python-3.8.3/Objects/memoryobject.c:437,1
    - Dst: last_dim_is_contiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:440,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:441,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:443,1
    - Dst: copy_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:448,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:454,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts:
    - condition: (dest->ndim > 0)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 457
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 457
    functionName: copy_buffer
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 2
    functionsReached:
    - last_dim_is_contiguous
    - equiv_structure
    - PyErr_NoMemory
    - copy_rec
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int copy_buffer(Py_buffer *dest, Py_buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: init_strides_from_shape
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void init_strides_from_shape(Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts:
    - condition: (view->ndim > 0)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: init_fortran_strides_from_shape
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void init_fortran_strides_from_shape(Py_buffer *view)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:495,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:496,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:497,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:499,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:501,1
    - Dst: init_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:515,1
    - Dst: init_fortran_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:518,1
    - Dst: copy_buffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:523,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - mem
    - src
    - order
    argTypes:
    - char*
    - Py_buffer*
    - char
    assertStmts:
    - condition: (src->ndim >= 1)
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (src->strides != NULL)
      pos:
        line_end: 496
        line_start: 496
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (src->shape != NULL)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 527
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 527
    functionName: buffer_to_contiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - init_strides_from_shape
    - PyErr_NoMemory
    - init_fortran_strides_from_shape
    - PyMem_Free
    - PyMem_Malloc
    - assert
    linkageType: ''
    returnType: int
    signature: int buffer_to_contiguous(char *mem, Py_buffer *src, char order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: init_shared_values
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_shared_values(Py_buffer *dest, const Py_buffer *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 573
    functionName: init_shape_strides
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - init_strides_from_shape
    linkageType: ''
    returnType: void
    signature: void init_shape_strides(Py_buffer *dest, const Py_buffer *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - Py_buffer*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 586
    functionName: init_suboffsets
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_suboffsets(Py_buffer *dest, const Py_buffer *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 600
    functionName: init_len
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void init_len(Py_buffer *view)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MV_CONTIGUOUS_NDIM1
      Src: /src/Python-3.8.3/Objects/memoryobject.c:615,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:619,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:621,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - mv
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 632
    functionName: init_flags
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - MV_CONTIGUOUS_NDIM1
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: void
    signature: void init_flags(PyMemoryViewObject *mv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:642,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/memoryobject.c:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ndim
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 658
    functionName: memory_alloc
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_TRACK
    - PyObject_GC_NewVar
    linkageType: ''
    returnType: PyMemoryViewObject
    signature: 'PyMemoryViewObject *

      memory_alloc(int ndim)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:678,1
    - Dst: Py_STRINGIFY
      Src: /src/Python-3.8.3/Objects/memoryobject.c:680,1
    - Dst: memory_alloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:684,1
    - Dst: init_shared_values
      Src: /src/Python-3.8.3/Objects/memoryobject.c:689,1
    - Dst: init_shape_strides
      Src: /src/Python-3.8.3/Objects/memoryobject.c:690,1
    - Dst: init_suboffsets
      Src: /src/Python-3.8.3/Objects/memoryobject.c:691,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Objects/memoryobject.c:692,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - mbuf
    - src
    argTypes:
    - _PyManagedBufferObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 699
    functionName: mbuf_add_view
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memory_alloc
    - Py_INCREF
    - init_suboffsets
    - init_shared_values
    - PyErr_SetString
    - Py_STRINGIFY
    - init_shape_strides
    - init_flags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mbuf_add_view(_PyManagedBufferObject *mbuf, const Py_buffer *src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:716,1
    - Dst: memory_alloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:718,1
    - Dst: init_shared_values
      Src: /src/Python-3.8.3/Objects/memoryobject.c:723,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - mbuf
    - src
    - ndim
    argTypes:
    - _PyManagedBufferObject*
    - Py_buffer*
    - int
    assertStmts:
    - condition: (ndim <= PyBUF_MAX_NDIM)
      pos:
        line_end: 715
        line_start: 715
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 730
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 730
    functionName: mbuf_add_incomplete_view
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - init_shared_values
    - assert
    - memory_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmbuf_add_incomplete_view(_PyManagedBufferObject *mbuf,
      const Py_buffer *src,\n                         int ndim)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:742,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:743,1
    - Dst: mbuf_alloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:745,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Objects/memoryobject.c:750,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:753,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - mem
    - size
    - flags
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (mem != NULL)
      pos:
        line_end: 741
        line_start: 741
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (flags == PyBUF_READ || flags == PyBUF_WRITE)
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 757
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 757
    functionName: PyMemoryView_FromMemory
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - PyBuffer_FillInfo
    - mbuf_add_view
    - Py_DECREF
    - mbuf_alloc
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:771,1
    - Dst: mbuf_alloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:776,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 764
    functionDepth: 4
    functionLinenumber: 764
    functionLinenumberEnd: 789
    functionName: PyMemoryView_FromBuffer
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 6
    functionsReached:
    - Py_DECREF
    - mbuf_add_view
    - mbuf_alloc
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromBuffer(Py_buffer *info)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMemoryView_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:799,1
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:801,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:802,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:804,1
    - Dst: _PyManagedBuffer_FromObject
      Src: /src/Python-3.8.3/Objects/memoryobject.c:806,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:809,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:810,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:814,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 818
    functionName: PyMemoryView_FromObject
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - CHECK_RELEASED
    - mbuf_add_view
    - _PyManagedBuffer_FromObject
    - Py_DECREF
    - PyObject_CheckBuffer
    - PyMemoryView_Check
    - PyErr_Format
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_FromObject(PyObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:825,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/memoryobject.c:825,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:827,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mbuf
    - fmt
    argTypes:
    - _PyManagedBufferObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 835
    functionName: mbuf_copy_format
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - strlen
    - PyErr_NoMemory
    - strcpy
    linkageType: ''
    returnType: int
    signature: int mbuf_copy_format(_PyManagedBufferObject *mbuf, const char *fmt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:858,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:859,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/memoryobject.c:861,1
    - Dst: _PyManagedBuffer_FromObject
      Src: /src/Python-3.8.3/Objects/memoryobject.c:865,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:866,1
    - Dst: mbuf_copy_format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:870,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:871,1
    - Dst: mbuf_add_incomplete_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:875,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:876,1
    - Dst: init_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:890,1
    - Dst: init_fortran_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:893,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Objects/memoryobject.c:899,1
    - Dst: copy_buffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:902,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - src
    - order
    argTypes:
    - Py_buffer*
    - char
    assertStmts:
    - condition: (src->ndim > 0)
      pos:
        line_end: 857
        line_start: 857
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (src->shape != NULL)
      pos:
        line_end: 858
        line_start: 858
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 907
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 907
    functionName: memory_from_contiguous_copy
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_buffer
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - _PyManagedBuffer_FromObject
    - init_strides_from_shape
    - init_fortran_strides_from_shape
    - mbuf_copy_format
    - mbuf_add_incomplete_view
    - assert
    - init_flags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_from_contiguous_copy(Py_buffer *src, char order)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:933,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:934,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Objects/memoryobject.c:936,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:942,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:944,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:948,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:955,1
    - Dst: memory_from_contiguous_copy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:959,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - obj
    - buffertype
    - order
    argTypes:
    - PyObject*
    - int
    - char
    assertStmts:
    - condition: (buffertype == PyBUF_READ || buffertype == PyBUF_WRITE)
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (order == 'C' || order == 'F' || order == 'A')
      pos:
        line_end: 933
        line_start: 933
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 962
      start: 926
    functionDepth: 5
    functionLinenumber: 926
    functionLinenumberEnd: 962
    functionName: PyMemoryView_GetContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - memory_from_contiguous_copy
    - PyBuffer_IsContiguous
    - PyErr_SetString
    - assert
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/memoryobject.c:971,1
    - Dst: PyMemoryView_FromObject
      Src: /src/Python-3.8.3/Objects/memoryobject.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - subtype
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 965
    functionDepth: 5
    functionLinenumber: 965
    functionLinenumberEnd: 977
    functionName: memory_new
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyMemoryView_FromObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:995,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:998,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1003,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1004,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1009,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1011,1
    - Dst: init_shared_values
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1019,1
    - Dst: init_shape_strides
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1020,1
    - Dst: init_suboffsets
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1021,1
    - Dst: buffer_to_contiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1025,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1026,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - buf
    - src
    - len
    - order
    argTypes:
    - void*
    - Py_buffer*
    - Py_ssize_t
    - char
    assertStmts:
    - condition: (order == 'C' || order == 'F' || order == 'A')
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1028
    functionName: PyBuffer_ToContiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - memcpy
    - PyErr_NoMemory
    - init_suboffsets
    - PyBuffer_IsContiguous
    - init_shared_values
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - assert
    - init_shape_strides
    - buffer_to_contiguous
    linkageType: ''
    returnType: int
    signature: int PyBuffer_ToContiguous(void *buf, Py_buffer *src, Py_ssize_t len,
      char order)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1049,1
    - Dst: mbuf_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1051,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1055,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts:
    - condition: (self->mbuf->exports > 0)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1063
      start: 1041
    functionDepth: 3
    functionLinenumber: 1041
    functionLinenumberEnd: 1063
    functionName: _memory_release
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    - Py_FatalError
    - mbuf_release
    linkageType: ''
    returnType: int
    signature: int _memory_release(PyMemoryViewObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _memory_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - noargs
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1065
    functionDepth: 4
    functionLinenumber: 1065
    functionLinenumberEnd: 1071
    functionName: memory_release
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - _memory_release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_release(PyMemoryViewObject *self, PyObject *noargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1076,1
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1077,1
    - Dst: _memory_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1078,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1079,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1081,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts:
    - condition: (self->exports == 0)
      pos:
        line_end: 1075
        line_start: 1075
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1083
      start: 1073
    functionDepth: 4
    functionLinenumber: 1073
    functionLinenumberEnd: 1083
    functionName: memory_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_CLEAR
    - _PyObject_GC_UNTRACK
    - _memory_release
    - PyObject_ClearWeakRefs
    - assert
    linkageType: ''
    returnType: void
    signature: void memory_dealloc(PyMemoryViewObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyMemoryViewObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1090
    functionName: memory_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int memory_traverse(PyMemoryViewObject *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _memory_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1095,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1098
    functionName: memory_clear
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - _memory_release
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int memory_clear(PyMemoryViewObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1103,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1106
    functionName: memory_enter
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_enter(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memory_release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1108
    functionDepth: 5
    functionLinenumber: 1108
    functionLinenumberEnd: 1112
    functionName: memory_exit
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memory_release
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_exit(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1120
    functionName: IS_BYTE_FORMAT
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BYTE_FORMAT(f)
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - result
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1147
    functionName: get_native_fmtchar
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_native_fmtchar(char *result, const char *fmt)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1165,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1166,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1167,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1168,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1169,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1170,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1171,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1172,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1173,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1174,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1175,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1176,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1177,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1178,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1179,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1180,1
    - Dst: RETURN
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1185
    functionName: get_native_fmtstr
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - RETURN
    linkageType: ''
    returnType: char
    signature: 'char *

      get_native_fmtstr(const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1163
    functionName: RETURN
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN(s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1201,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1202,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1202,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1203,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1204,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1205,1
    - Dst: PyUnicode_AsASCIIString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1207,1
    - Dst: get_native_fmtchar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1211,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1211,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1213,1
    - Dst: get_native_fmtchar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1219,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1220,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1220,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1221,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1226,1
    - Dst: get_native_fmtstr
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1231,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1231,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1234,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1245,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - mv
    - format
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts:
    - condition: (view->ndim >= 1)
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + view->ndim)
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (Py_SIZE(mv) == 3*view->ndim)
      pos:
        line_end: 1201
        line_start: 1201
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->suboffsets == mv->ob_array + 2*view->ndim)
      pos:
        line_end: 1204
        line_start: 1204
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1202
        line_start: 1202
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1252
      start: 1192
    functionDepth: 9
    functionLinenumber: 1192
    functionLinenumberEnd: 1252
    functionName: cast_to_1D
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - IS_BYTE_FORMAT
    - Py_DECREF
    - get_native_fmtchar
    - PyUnicode_AsASCIIString
    - get_native_fmtstr
    - PyBytes_AS_STRING
    - PyErr_SetString
    - assert
    - Py_SIZE
    - init_flags
    linkageType: ''
    returnType: int
    signature: int cast_to_1D(PyMemoryViewObject *mv, PyObject *format)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1263,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1264,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1265,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1269,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1270,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1275,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - shape
    - seq
    - ndim
    - itemsize
    argTypes:
    - Py_ssize_t*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1289
    functionName: copy_shape
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PySequence_Fast_GET_ITEM
    - PyLong_AsSsize_t
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t copy_shape(Py_ssize_t *shape, const PyObject *seq, Py_ssize_t
      ndim,\n           Py_ssize_t itemsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1300,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1301,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1301,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1302,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1303,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1304,1
    - Dst: copy_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1313,1
    - Dst: init_strides_from_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1316,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1320,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1325,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - mv
    - shape
    - ndim
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (view->ndim == 1)
      pos:
        line_end: 1299
        line_start: 1299
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->strides == mv->ob_array + (ndim==0?1:ndim))
      pos:
        line_end: 1302
        line_start: 1302
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->shape == mv->ob_array)
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (Py_SIZE(mv) == 3*(ndim==0?1:ndim))
      pos:
        line_end: 1300
        line_start: 1300
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->suboffsets == NULL)
      pos:
        line_end: 1303
        line_start: 1303
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1328
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1328
    functionName: cast_to_ND
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - copy_shape
    - init_strides_from_shape
    - PyErr_SetString
    - assert
    - Py_SIZE
    - init_flags
    linkageType: ''
    returnType: int
    signature: int cast_to_ND(PyMemoryViewObject *mv, const PyObject *shape, int ndim)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - mv
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1341
    functionName: zero_in_shape
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int zero_in_shape(PyMemoryViewObject *mv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1364,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1366,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1370,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1371,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1375,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1376,1
    - Dst: zero_in_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1380,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1381,1
    - Dst: CHECK_LIST_OR_TUPLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1386,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1387,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1389,1
    - Dst: Py_STRINGIFY
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1391,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1395,1
    - Dst: mbuf_add_incomplete_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1402,1
    - Dst: cast_to_1D
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1406,1
    - Dst: cast_to_ND
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1414,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1355
    functionDepth: 10
    functionLinenumber: 1355
    functionLinenumberEnd: 1416
    functionName: memory_cast
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - Py_DECREF
    - PySequence_Fast_GET_SIZE
    - zero_in_shape
    - cast_to_ND
    - cast_to_1D
    - mbuf_add_incomplete_view
    - PyUnicode_Check
    - PyErr_SetString
    - PyArg_ParseTupleAndKeywords
    - CHECK_LIST_OR_TUPLE
    - Py_STRINGIFY
    - MV_C_CONTIGUOUS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_cast(PyMemoryViewObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1421,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - noargs
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1430
    functionName: memory_toreadonly
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - mbuf_add_view
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_toreadonly(PyMemoryViewObject *self, PyObject *noargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1443,1
    - Dst: REQ_WRITABLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1449,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1450,1
    - Dst: REQ_FORMAT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1454,1
    - Dst: REQ_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1463,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1463,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1464,1
    - Dst: REQ_F_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1468,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1468,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1469,1
    - Dst: REQ_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1473,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1474,1
    - Dst: REQ_INDIRECT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1478,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1479,1
    - Dst: REQ_STRIDES
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1483,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1484,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1485,1
    - Dst: REQ_SHAPE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1491,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1497,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1510,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - self
    - view
    - flags
    argTypes:
    - PyMemoryViewObject*
    - Py_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1514
    functionName: memory_getbuf
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - REQ_SHAPE
    - REQ_ANY_CONTIGUOUS
    - Py_INCREF
    - REQ_C_CONTIGUOUS
    - REQ_INDIRECT
    - REQ_STRIDES
    - PyErr_Format
    - REQ_FORMAT
    - CHECK_RELEASED_INT
    - PyErr_SetString
    - REQ_WRITABLE
    - MV_F_CONTIGUOUS
    - MV_ANY_CONTIGUOUS
    - REQ_F_CONTIGUOUS
    - MV_C_CONTIGUOUS
    linkageType: ''
    returnType: int
    signature: int memory_getbuf(PyMemoryViewObject *self, Py_buffer *view, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - view
    argTypes:
    - PyMemoryViewObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1522
    functionName: memory_releasebuf
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memory_releasebuf(PyMemoryViewObject *self, Py_buffer *view)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1547
    functionName: type_error_int
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int type_error_int(const char *fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1549
    functionDepth: 1
    functionLinenumber: 1549
    functionLinenumberEnd: 1555
    functionName: value_error_int
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 7
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int value_error_int(const char *fmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1560,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1560,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1561,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1562,1
    - Dst: type_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1563,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1565,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1566,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1567,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1559
        line_start: 1559
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 1572
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1572
    functionName: fix_error_int
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - type_error_int
    - value_error_int
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int fix_error_int(const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1581,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1585,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1588
    functionName: pylong_as_ld
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - PyLong_AsLong
    - Py_DECREF
    linkageType: ''
    returnType: long
    signature: long pylong_as_ld(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1596,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1603
    functionName: pylong_as_lu
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyLong_AsUnsignedLong
    - PyNumber_Index
    - Py_DECREF
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long pylong_as_lu(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1611,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1615,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1605
    functionDepth: 2
    functionLinenumber: 1605
    functionLinenumberEnd: 1618
    functionName: pylong_as_lld
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyLong_AsLongLong
    linkageType: ''
    returnType: long long
    signature: long long pylong_as_lld(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1626,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1630,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1620
    functionDepth: 2
    functionLinenumber: 1620
    functionLinenumberEnd: 1633
    functionName: pylong_as_llu
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyLong_AsUnsignedLongLong
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long pylong_as_llu(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1641,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1645,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1648
    functionName: pylong_as_zd
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - Py_DECREF
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t pylong_as_zd(PyObject *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1656,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1660,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1663
    functionName: pylong_as_zu
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyNumber_Index
    - PyLong_AsSize_t
    - Py_DECREF
    linkageType: ''
    returnType: size_t
    signature: size_t pylong_as_zu(PyObject *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dest
    - ','
    - ptr
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1668
    functionDepth: 0
    functionLinenumber: 1668
    functionLinenumberEnd: 1674
    functionName: UNPACK_SINGLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNPACK_SINGLE(dest, ptr, type)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1696,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1697,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1698,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1701,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1704,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1705,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1706,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1709,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1710,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1713,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1714,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1717,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1718,1
    - Dst: UNPACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1724,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1732,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1734,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1736,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1738,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1740,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1742,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1744,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1746,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1748,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1750,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1752,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1754,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 110
    argCount: 2
    argNames:
    - ptr
    - fmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1678
    functionDepth: 3
    functionLinenumber: 1678
    functionLinenumberEnd: 1757
    functionName: unpack_single
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 3
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - PyLong_FromUnsignedLong
    - UNPACK_SINGLE
    - PyLong_FromVoidPtr
    - PyFloat_FromDouble
    - PyErr_Format
    - PyLong_FromLongLong
    - PyBool_FromLong
    - PyLong_FromSsize_t
    - PyLong_FromSize_t
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unpack_single(const char *ptr, const char *fmt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - src
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1765
    functionName: PACK_SINGLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACK_SINGLE(ptr, src, type)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: pylong_as_ld
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1783,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1784,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1792,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1795,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1797,1
    - Dst: pylong_as_lu
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1803,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1804,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1812,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1815,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1817,1
    - Dst: pylong_as_lld
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1823,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1824,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1826,1
    - Dst: pylong_as_llu
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1829,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1830,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1832,1
    - Dst: pylong_as_zd
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1837,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1838,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1840,1
    - Dst: pylong_as_zu
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1843,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1844,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1846,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1851,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1852,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1864,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1867,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1872,1
    - Dst: type_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1873,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1874,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1875,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1876,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1881,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1882,1
    - Dst: PACK_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1884,1
    - Dst: fix_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1894,1
    - Dst: value_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1896,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1898,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 141
    argCount: 3
    argNames:
    - ptr
    - item
    - fmt
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1901
    functionName: pack_single
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 4
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - type_error_int
    - fix_error_int
    - pylong_as_lu
    - pylong_as_llu
    - value_error_int
    - PACK_SINGLE
    - PyObject_IsTrue
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyLong_AsVoidPtr
    - PyErr_Format
    - pylong_as_zd
    - pylong_as_lld
    - PyBytes_AS_STRING
    - pylong_as_ld
    - pylong_as_zu
    linkageType: ''
    returnType: int
    signature: int pack_single(char *ptr, PyObject *item, const char *fmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1922,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1935
    functionName: unpacker_new
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - PyErr_NoMemory
    linkageType: ''
    returnType: struct unpacker
    signature: 'struct unpacker *

      unpacker_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1941,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1942,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1943,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1946
    functionName: unpacker_free
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void unpacker_free(struct unpacker *x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1958,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1962,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1963,1
    - Dst: unpacker_new
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1967,1
    - Dst: PyBytes_FromString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1971,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1975,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1979,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1983,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1985,1
    - Dst: PyMemoryView_FromMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1990,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1996,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1997,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:1998,1
    - Dst: unpacker_free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2002,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - fmt
    - itemsize
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1949
    functionDepth: 5
    functionLinenumber: 1949
    functionLinenumberEnd: 2005
    functionName: struct_get_unpacker
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - unpacker_new
    - PyImport_ImportModule
    - unpacker_free
    - Py_DECREF
    - PyObject_GetAttrString
    - PyErr_NoMemory
    - PyMemoryView_FromMemory
    - PyBytes_FromString
    - PyObject_CallFunctionObjArgs
    - PyMem_Malloc
    - Py_XDECREF
    linkageType: ''
    returnType: struct unpacker
    signature: 'struct unpacker *

      struct_get_unpacker(const char *fmt, Py_ssize_t itemsize)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2013,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2014,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2018,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2019,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2020,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ptr
    - x
    argTypes:
    - char*
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2008
    functionDepth: 3
    functionLinenumber: 2008
    functionLinenumberEnd: 2026
    functionName: struct_unpack_single
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyObject_CallFunctionObjArgs
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      struct_unpack_single(const char *ptr, struct unpacker *x)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - view
    argTypes:
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2034
    functionDepth: 1
    functionLinenumber: 2034
    functionLinenumberEnd: 2046
    functionName: adjust_fmt
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      adjust_fmt(const Py_buffer *view)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2057,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2062,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2063,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2065,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - ptr
    - shape
    - strides
    - suboffsets
    - fmt
    argTypes:
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2049
    functionDepth: 2
    functionLinenumber: 2049
    functionLinenumberEnd: 2072
    functionName: tolist_base
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - ADJUST_PTR
    - Py_DECREF
    - unpack_single
    - PyList_SET_ITEM
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntolist_base(const char *ptr, const Py_ssize_t *shape,\n
      \           const Py_ssize_t *strides, const Py_ssize_t *suboffsets,\n            const
      char *fmt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2084,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2085,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2086,1
    - Dst: tolist_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2089,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2091,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2096,1
    - Dst: tolist_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2097,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2101,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - ptr
    - ndim
    - shape
    - strides
    - suboffsets
    - fmt
    argTypes:
    - char*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char*
    assertStmts:
    - condition: (ndim >= 1)
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (strides != NULL)
      pos:
        line_end: 2085
        line_start: 2085
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 2084
        line_start: 2084
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2108
      start: 2076
    functionDepth: 3
    functionLinenumber: 2076
    functionLinenumberEnd: 2108
    functionName: tolist_rec
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - ADJUST_PTR
    - Py_DECREF
    - PyList_SET_ITEM
    - PyList_New
    - assert
    - tolist_base
    - tolist_rec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntolist_rec(const char *ptr, Py_ssize_t ndim, const Py_ssize_t
      *shape,\n           const Py_ssize_t *strides, const Py_ssize_t *suboffsets,\n
      \          const char *fmt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2118,1
    - Dst: adjust_fmt
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2120,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2124,1
    - Dst: tolist_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2127,1
    - Dst: tolist_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - mv
    - noargs
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2112
    functionDepth: 4
    functionLinenumber: 2112
    functionLinenumberEnd: 2136
    functionName: memory_tolist
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - adjust_fmt
    - unpack_single
    - tolist_base
    - tolist_rec
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_tolist(PyMemoryViewObject *mv, PyObject *noargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VIEW_ADDR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2142,1
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2147,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2149,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2154,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2157,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2160,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2161,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2167,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2171,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2177
    functionName: memory_tobytes
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - PyBuffer_ToContiguous
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyArg_ParseTupleAndKeywords
    - strcmp
    - VIEW_ADDR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_tobytes(PyMemoryViewObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VIEW_ADDR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2207,1
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2211,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2213,1
    - Dst: _Py_strhex_with_sep
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2214,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2217,1
    - Dst: PyBuffer_ToContiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2221,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2222,1
    - Dst: _Py_strhex_with_sep
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2226,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2227,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - self
    - sep
    - bytes_per_sep
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2202
    functionDepth: 4
    functionLinenumber: 2202
    functionLinenumberEnd: 2232
    functionName: memoryview_hex_impl
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBytes_FromStringAndSize
    - VIEW_ADDR
    - Py_DECREF
    - _Py_strhex_with_sep
    - PyBytes_GET_SIZE
    - PyBuffer_ToContiguous
    - PyBytes_AS_STRING
    - MV_C_CONTIGUOUS
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmemoryview_hex_impl(PyMemoryViewObject *self, PyObject
      *sep,\n                    int bytes_per_sep)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2238,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2234
    functionDepth: 8
    functionLinenumber: 2234
    functionLinenumberEnd: 2241
    functionName: memory_repr
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_repr(PyMemoryViewObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2253,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2254,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2261,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - view
    - ptr
    - dim
    - index
    argTypes:
    - Py_buffer*
    - char*
    - int
    - Py_ssize_t
    assertStmts:
    - condition: (view->shape)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (view->strides)
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2271
      start: 2248
    functionDepth: 1
    functionLinenumber: 2248
    functionLinenumberEnd: 2271
    functionName: lookup_dimension
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    - ADJUST_PTR
    linkageType: ''
    returnType: char
    signature: 'char *

      lookup_dimension(Py_buffer *view, char *ptr, int dim, Py_ssize_t index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_dimension
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - view
    - index
    argTypes:
    - Py_buffer*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2274
    functionDepth: 2
    functionLinenumber: 2274
    functionLinenumberEnd: 2279
    functionName: ptr_from_index
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 2
    functionsReached:
    - lookup_dimension
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_index(Py_buffer *view, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2286,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2289,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2297,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2297,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2299,1
    - Dst: lookup_dimension
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - view
    - tup
    argTypes:
    - Py_buffer*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2282
    functionDepth: 3
    functionLinenumber: 2282
    functionLinenumberEnd: 2306
    functionName: ptr_from_tuple
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - lookup_dimension
    - PyErr_Format
    - PyTuple_GET_ITEM
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: char
    signature: 'char *

      ptr_from_tuple(Py_buffer *view, PyObject *tup)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2317,1
    - Dst: adjust_fmt
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2319,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2324,1
    - Dst: ptr_from_index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2328,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2331,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - self
    - index
    argTypes:
    - PyMemoryViewObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2311
    functionDepth: 2
    functionLinenumber: 2311
    functionLinenumberEnd: 2337
    functionName: memory_item
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - unpack_single
    - PyErr_SetString
    - ptr_from_index
    - adjust_fmt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_item(PyMemoryViewObject *self, Py_ssize_t index)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2345,1
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2348,1
    - Dst: adjust_fmt
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2350,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2355,1
    - Dst: ptr_from_tuple
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2359,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - tup
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2363
      start: 2340
    functionDepth: 4
    functionLinenumber: 2340
    functionLinenumberEnd: 2363
    functionName: memory_item_multi
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyTuple_GET_SIZE
    - unpack_single
    - ptr_from_tuple
    - PyErr_SetString
    - adjust_fmt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_item_multi(PyMemoryViewObject *self, PyObject *tup)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySlice_Unpack
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2370,1
    - Dst: PySlice_AdjustIndices
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - base
    - key
    - dim
    argTypes:
    - Py_buffer*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2392
    functionName: init_slice
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - PySlice_AdjustIndices
    - PySlice_Unpack
    linkageType: ''
    returnType: int
    signature: int init_slice(Py_buffer *base, PyObject *key, int dim)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2399,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2401,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2406,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2411
    functionName: is_multislice
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_Check
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - PySlice_Check
    linkageType: ''
    returnType: int
    signature: int is_multislice(PyObject *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2418,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2420,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2422,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2427
    functionName: is_multiindex
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyTuple_Check
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t is_multiindex(PyObject *key)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2441,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2444,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2444,1
    - Dst: adjust_fmt
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2445,1
    - Dst: unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2448,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2451,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2455,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2461,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2463,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2464,1
    - Dst: memory_item
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2466,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2468,1
    - Dst: mbuf_add_view
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2471,1
    - Dst: init_slice
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2476,1
    - Dst: init_len
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2479,1
    - Dst: init_flags
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2480,1
    - Dst: is_multiindex
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2484,1
    - Dst: memory_item_multi
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2485,1
    - Dst: is_multislice
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2487,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2488,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2493,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2435
    functionDepth: 5
    functionLinenumber: 2435
    functionLinenumberEnd: 2495
    functionName: memory_subscript
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyIndex_Check
    - PyTuple_GET_SIZE
    - init_len
    - is_multislice
    - init_flags
    - adjust_fmt
    - init_slice
    - PyErr_Occurred
    - memory_item
    - Py_INCREF
    - PySlice_Check
    - PyTuple_Check
    - mbuf_add_view
    - Py_DECREF
    - unpack_single
    - memory_item_multi
    - is_multiindex
    - PyErr_SetString
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_subscript(PyMemoryViewObject *self, PyObject *key)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2505,1
    - Dst: adjust_fmt
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2507,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2512,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2516,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2521,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2521,1
    - Dst: pack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2526,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2532,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2535,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2539,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2540,1
    - Dst: ptr_from_index
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2542,1
    - Dst: pack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2545,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2548,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2554,1
    - Dst: init_slice
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2564,1
    - Dst: copy_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2568,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2571,1
    - Dst: is_multiindex
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2574,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2576,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2577,1
    - Dst: ptr_from_tuple
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2581,1
    - Dst: pack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2584,1
    - Dst: PySlice_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2586,1
    - Dst: is_multislice
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2586,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2589,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2595,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - self
    - key
    - value
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2497
    functionDepth: 4
    functionLinenumber: 2497
    functionLinenumberEnd: 2597
    functionName: memory_ass_sub
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PySlice_Check
    - ptr_from_tuple
    - PyTuple_Check
    - copy_single
    - PyBuffer_Release
    - CHECK_RELEASED_INT
    - PyErr_SetString
    - ptr_from_index
    - is_multiindex
    - pack_single
    - PyObject_GetBuffer
    - PyNumber_AsSsize_t
    - is_multislice
    - adjust_fmt
    - init_slice
    linkageType: ''
    returnType: int
    signature: int memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2599
    functionDepth: 1
    functionLinenumber: 2599
    functionLinenumberEnd: 2604
    functionName: memory_length
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED_INT
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t memory_length(PyMemoryViewObject *self)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2633,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2633,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2635,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2636,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 2632
        line_start: 2632
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2642
      start: 2630
    functionDepth: 1
    functionLinenumber: 2630
    functionLinenumberEnd: 2642
    functionName: fix_struct_error_int
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Clear
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int fix_struct_error_int(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct_unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2654,1
    - Dst: struct_unpack_single
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2658,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2660,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2665,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - p
    - q
    - unpack_p
    - unpack_q
    argTypes:
    - char*
    - char*
    - struct unpacker*
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2645
    functionDepth: 4
    functionLinenumber: 2645
    functionLinenumberEnd: 2670
    functionName: struct_unpack_cmp
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompareBool
    - Py_DECREF
    - struct_unpack_single
    linkageType: ''
    returnType: int
    signature: "int struct_unpack_cmp(const char *p, const char *q,\n                  struct
      unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - q
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2678
    functionDepth: 0
    functionLinenumber: 2678
    functionLinenumberEnd: 2686
    functionName: CMP_SINGLE
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_SINGLE(p, q, type)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2698,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2699,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2700,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2703,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2706,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2707,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2708,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2711,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2712,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2715,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2716,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2720,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2721,1
    - Dst: CMP_SINGLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2727,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2731,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2732,1
    - Dst: struct_unpack_cmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 5
    argNames:
    - p
    - q
    - fmt
    - unpack_p
    - unpack_q
    argTypes:
    - char*
    - char*
    - char
    - struct unpacker*
    - struct unpacker*
    assertStmts:
    - condition: (unpack_p)
      pos:
        line_end: 2730
        line_start: 2730
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (unpack_q)
      pos:
        line_end: 2731
        line_start: 2731
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2740
      start: 2687
    functionDepth: 5
    functionLinenumber: 2687
    functionLinenumberEnd: 2740
    functionName: unpack_cmp
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - assert
    - CMP_SINGLE
    - struct_unpack_cmp
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int unpack_cmp(const char *p, const char *q, char fmt,\n           struct
      unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2753,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2754,1
    - Dst: unpack_cmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 10
    argNames:
    - p
    - q
    - shape
    - pstrides
    - psuboffsets
    - qstrides
    - qsuboffsets
    - fmt
    - unpack_p
    - unpack_q
    argTypes:
    - char*
    - char*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char
    - struct unpacker*
    - struct unpacker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2743
    functionDepth: 6
    functionLinenumber: 2743
    functionLinenumberEnd: 2761
    functionName: cmp_base
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - ADJUST_PTR
    - unpack_cmp
    linkageType: ''
    returnType: int
    signature: "int cmp_base(const char *p, const char *q, const Py_ssize_t *shape,\n
      \        const Py_ssize_t *pstrides, const Py_ssize_t *psuboffsets,\n         const
      Py_ssize_t *qstrides, const Py_ssize_t *qsuboffsets,\n         char fmt, struct
      unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2775,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2776,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2777,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2778,1
    - Dst: cmp_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2781,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2788,1
    - Dst: ADJUST_PTR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2789,1
    - Dst: cmp_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 11
    argNames:
    - p
    - q
    - ndim
    - shape
    - pstrides
    - psuboffsets
    - qstrides
    - qsuboffsets
    - fmt
    - unpack_p
    - unpack_q
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    - char
    - struct unpacker*
    - struct unpacker*
    assertStmts:
    - condition: (ndim >= 1)
      pos:
        line_end: 2774
        line_start: 2774
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (pstrides != NULL)
      pos:
        line_end: 2776
        line_start: 2776
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (qstrides != NULL)
      pos:
        line_end: 2777
        line_start: 2777
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - condition: (shape != NULL)
      pos:
        line_end: 2775
        line_start: 2775
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2799
      start: 2765
    functionDepth: 7
    functionLinenumber: 2765
    functionLinenumberEnd: 2799
    functionName: cmp_rec
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 1
    functionsReached:
    - assert
    - cmp_rec
    - cmp_base
    - ADJUST_PTR
    linkageType: ''
    returnType: int
    signature: "int cmp_rec(const char *p, const char *q,\n        Py_ssize_t ndim,
      const Py_ssize_t *shape,\n        const Py_ssize_t *pstrides, const Py_ssize_t
      *psuboffsets,\n        const Py_ssize_t *qstrides, const Py_ssize_t *qsuboffsets,\n
      \       char fmt, struct unpacker *unpack_p, struct unpacker *unpack_q)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2815,1
    - Dst: PyMemoryView_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2815,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2816,1
    - Dst: VIEW_ADDR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2820,1
    - Dst: PyMemoryView_Check
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2822,1
    - Dst: BASE_INACCESSIBLE
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2823,1
    - Dst: VIEW_ADDR
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2827,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2830,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2831,1
    - Dst: equiv_shape
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2837,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2838,1
    - Dst: get_native_fmtchar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2844,1
    - Dst: get_native_fmtchar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2846,1
    - Dst: struct_get_unpacker
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2854,1
    - Dst: fix_struct_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2856,1
    - Dst: struct_get_unpacker
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2859,1
    - Dst: fix_struct_error_int
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2861,1
    - Dst: unpack_cmp
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2867,1
    - Dst: cmp_base
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2871,1
    - Dst: cmp_rec
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2877,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2896,1
    - Dst: unpacker_free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2898,1
    - Dst: unpacker_free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2899,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2901,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyMemoryView_Check(v))
      pos:
        line_end: 2814
        line_start: 2814
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    constantsTouched: []
    func_position:
      end: 2903
      start: 2801
    functionDepth: 8
    functionLinenumber: 2801
    functionLinenumberEnd: 2903
    functionName: memory_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - struct_get_unpacker
    - fix_struct_error_int
    - unpacker_free
    - equiv_shape
    - get_native_fmtchar
    - PyMemoryView_Check
    - unpack_cmp
    - cmp_base
    - PyBuffer_Release
    - BASE_INACCESSIBLE
    - assert
    - cmp_rec
    - PyObject_GetBuffer
    - Py_XINCREF
    - VIEW_ADDR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED_INT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2918,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2921,1
    - Dst: get_native_fmtchar
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2925,1
    - Dst: IS_BYTE_FORMAT
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2926,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2927,1
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2931,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2936,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2937,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2939,1
    - Dst: buffer_to_contiguous
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2942,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2943,1
    - Dst: _Py_HashBytes
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2949,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2952,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyMemoryViewObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2909
    functionDepth: 3
    functionLinenumber: 2909
    functionLinenumberEnd: 2956
    functionName: memory_hash
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - IS_BYTE_FORMAT
    - get_native_fmtchar
    - PyErr_NoMemory
    - _Py_HashBytes
    - PyMem_Free
    - CHECK_RELEASED_INT
    - PyErr_SetString
    - PyMem_Malloc
    - PyObject_Hash
    - buffer_to_contiguous
    - MV_C_CONTIGUOUS
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t memory_hash(PyMemoryViewObject *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2971,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2973,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2979,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - len
    - vals
    argTypes:
    - int
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2963
    functionDepth: 2
    functionLinenumber: 2963
    functionLinenumberEnd: 2985
    functionName: _IntTupleFromSsizet
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_SET_ITEM
    - PyLong_FromSsize_t
    - PyTuple_New
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _IntTupleFromSsizet(int len, Py_ssize_t *vals)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2992,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/memoryobject.c:2996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2998
      start: 2987
    functionDepth: 1
    functionLinenumber: 2987
    functionLinenumberEnd: 2998
    functionName: memory_obj_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_obj_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3003,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 3000
    functionDepth: 1
    functionLinenumber: 3000
    functionLinenumberEnd: 3005
    functionName: memory_nbytes_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_nbytes_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3010,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3012
      start: 3007
    functionDepth: 2
    functionLinenumber: 3007
    functionLinenumberEnd: 3012
    functionName: memory_format_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_format_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3017,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3019
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3019
    functionName: memory_itemsize_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_itemsize_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3024,1
    - Dst: _IntTupleFromSsizet
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3021
    functionDepth: 3
    functionLinenumber: 3021
    functionLinenumberEnd: 3026
    functionName: memory_shape_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - _IntTupleFromSsizet
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_shape_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3031,1
    - Dst: _IntTupleFromSsizet
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3028
    functionDepth: 3
    functionLinenumber: 3028
    functionLinenumberEnd: 3033
    functionName: memory_strides_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - _IntTupleFromSsizet
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_strides_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3038,1
    - Dst: _IntTupleFromSsizet
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 3035
    functionDepth: 3
    functionLinenumber: 3035
    functionLinenumberEnd: 3040
    functionName: memory_suboffsets_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - _IntTupleFromSsizet
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_suboffsets_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3045,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3042
    functionDepth: 2
    functionLinenumber: 3042
    functionLinenumberEnd: 3047
    functionName: memory_readonly_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_readonly_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3052,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyMemoryViewObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3054
      start: 3049
    functionDepth: 1
    functionLinenumber: 3049
    functionLinenumberEnd: 3054
    functionName: memory_ndim_get
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_ndim_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3059,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3060,1
    - Dst: MV_C_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3056
    functionDepth: 2
    functionLinenumber: 3056
    functionLinenumberEnd: 3061
    functionName: memory_c_contiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    - MV_C_CONTIGUOUS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_c_contiguous(PyMemoryViewObject *self, PyObject *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3066,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3067,1
    - Dst: MV_F_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3063
    functionDepth: 2
    functionLinenumber: 3063
    functionLinenumberEnd: 3068
    functionName: memory_f_contiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - MV_F_CONTIGUOUS
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_f_contiguous(PyMemoryViewObject *self, PyObject *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_RELEASED
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3073,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3074,1
    - Dst: MV_ANY_CONTIGUOUS
      Src: /src/Python-3.8.3/Objects/memoryobject.c:3074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - dummy
    argTypes:
    - PyMemoryViewObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3070
    functionDepth: 2
    functionLinenumber: 3070
    functionLinenumberEnd: 3075
    functionName: memory_contiguous
    functionSourceFile: /src/Python-3.8.3/Objects/memoryobject.c
    functionUses: 0
    functionsReached:
    - CHECK_RELEASED
    - PyBool_FromLong
    - MV_ANY_CONTIGUOUS
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memory_contiguous(PyMemoryViewObject *self, PyObject *dummy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: MEDIUM_VALUE
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEDIUM_VALUE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:52,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ival
    argTypes:
    - sdigit
    assertStmts:
    - condition: (-NSMALLNEGINTS <= ival && ival < NSMALLPOSINTS)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: get_small_int
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - assert
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_small_int(sdigit ival)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ival
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: CHECK_SMALL_INT
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SMALL_INT(ival)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:71,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:71,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:72,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:74,1
    - Dst: get_small_int
      Src: /src/Python-3.8.3/Objects/longobject.c:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 79
    functionName: maybe_small_long
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - get_small_int
    - MEDIUM_VALUE
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      maybe_small_long(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: maybe_small_long
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: maybe_small_long(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:93,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:94,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:94,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:98,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:98,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x_p
    argTypes:
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: _PyLong_Negate
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - Py_REFCNT
    - MEDIUM_VALUE
    - Py_SIZE
    linkageType: ''
    returnType: void
    signature: void _PyLong_Negate(PyLongObject **x_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PyTryBlock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: SIGCHECK
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGCHECK(PyTryBlock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:128,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:128,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:134,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: long_normalize
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_normalize(PyLongObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/longobject.c:150,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:151,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:155,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:157,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:159,1
    - Dst: PyNumberMethods*::nb_int
      Src: /src/Python-3.8.3/Objects/longobject.c:165,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/longobject.c:166,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:168,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:172,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/longobject.c:176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - integral
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 185
    functionName: _PyLong_FromNbInt
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - PyErr_WarnFormat
    - Py_INCREF
    - PyLong_CheckExact
    - Py_TYPE
    - PyErr_Format
    - PyNumberMethods*::nb_int
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromNbInt(PyObject *integral)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/longobject.c:202,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:203,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:207,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:209,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:211,1
    - Dst: PyNumberMethods*::nb_index
      Src: /src/Python-3.8.3/Objects/longobject.c:218,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/longobject.c:219,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:221,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:225,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/longobject.c:229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:235,1
    - Dst: _PyLong_FromNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:241,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/longobject.c:242,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - integral
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 252
    functionName: _PyLong_FromNbIndexOrNbInt
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - PyErr_WarnFormat
    - Py_INCREF
    - _PyLong_FromNbInt
    - PyLong_CheckExact
    - Py_TYPE
    - PyErr_Format
    - PyNumberMethods*::nb_index
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromNbIndexOrNbInt(PyObject *integral)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:271,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Objects/longobject.c:275,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/longobject.c:278,1
    - Dst: PyObject_INIT_VAR
      Src: /src/Python-3.8.3/Objects/longobject.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 282
    functionName: _PyLong_New
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyObject_INIT_VAR
    - PyErr_NoMemory
    - PyErr_SetString
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      _PyLong_New(Py_ssize_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:290,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:291,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:295,1
    - Dst: CHECK_SMALL_INT
      Src: /src/Python-3.8.3/Objects/longobject.c:296,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:298,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:300,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:300,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - src
    argTypes:
    - PyLongObject*
    assertStmts:
    - condition: (src != NULL)
      pos:
        line_end: 289
        line_start: 289
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 305
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 305
    functionName: _PyLong_Copy
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - CHECK_SMALL_INT
    - _PyLong_New
    - MEDIUM_VALUE
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Copy(PyLongObject *src)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SMALL_INT
      Src: /src/Python-3.8.3/Objects/longobject.c:318,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:333,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:335,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:336,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:345,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:347,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:348,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:350,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:363,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:366,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:369,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - ival
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 375
    functionName: PyLong_FromLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 342
    functionsReached:
    - CHECK_SMALL_INT
    - Py_SAFE_DOWNCAST
    - Py_SIZE
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromLong(long ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:387,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ival
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 403
    functionName: PyLong_FromUnsignedLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 64
    functionsReached:
    - PyLong_FromLong
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnsignedLong(unsigned long ival)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Objects/longobject.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:415,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Objects/longobject.c:419,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:420,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Objects/longobject.c:428,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:430,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:432,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/longobject.c:435,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/longobject.c:440,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:443,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:443,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - dval
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 445
    functionName: PyLong_FromDouble
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 7
    functionsReached:
    - PyLong_FromLong
    - Py_IS_NAN
    - _PyLong_New
    - Py_IS_INFINITY
    - ldexp
    - PyErr_SetString
    - Py_SIZE
    - frexp
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromDouble(double dval)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:482,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:486,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:490,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 543
    functionName: PyLong_AsLongAndOverflow
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 16
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_BadInternalCall
    - Py_SIZE
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLongAndOverflow(PyObject *vv, int *overflow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/longobject.c:552,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: PyLong_AsLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 80
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    linkageType: ''
    returnType: long
    signature: long PyLong_AsLong(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Objects/longobject.c:569,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 565
    functionDepth: 4
    functionLinenumber: 565
    functionLinenumberEnd: 578
    functionName: _PyLong_AsInt
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 228
    functionsReached:
    - PyLong_AsLongAndOverflow
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_AsInt(PyObject *obj)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:591,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:594,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:595,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:600,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:630,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 633
    functionName: PyLong_AsSsize_t
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 104
    functionsReached:
    - PyLong_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyLong_AsSsize_t(PyObject *vv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:646,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:649,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:650,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:655,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:658,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 677
    functionName: PyLong_AsUnsignedLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 15
    functionsReached:
    - PyLong_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyLong_AsUnsignedLong(PyObject *vv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:690,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:693,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:694,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:699,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:702,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:714,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 720
    functionName: PyLong_AsSize_t
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 4
    functionsReached:
    - PyLong_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    - PyErr_SetString
    linkageType: ''
    returnType: size_t
    signature: size_t PyLong_AsSize_t(PyObject *vv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:733,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:734,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 753
    functionName: _PyLong_AsUnsignedLongMask
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _PyLong_AsUnsignedLongMask(PyObject *vv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:762,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:766,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Objects/longobject.c:767,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:770,1
    - Dst: _PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Objects/longobject.c:774,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 777
    functionName: PyLong_AsUnsignedLongMask
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 24
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_BadInternalCall
    - _PyLong_AsUnsignedLongMask
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyLong_AsUnsignedLongMask(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:784,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:785,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:785,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:787,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 783
        line_start: 783
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 784
        line_start: 784
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: _PyLong_Sign
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 10
    functionsReached:
    - PyLong_Check
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyLong_Sign(PyObject *vv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - d
    argTypes:
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 808
    functionName: bits_in_digit
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bits_in_digit(digit d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:818,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:819,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:819,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:820,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:820,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:821,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:827,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:835,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 817
        line_start: 817
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 818
        line_start: 818
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (ndigits == 0 || v->ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 820
        line_start: 820
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 838
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 838
    functionName: _PyLong_NumBits
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 5
    functionsReached:
    - PyLong_Check
    - bits_in_digit
    - PyErr_SetString
    - Py_ABS
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: size_t
    signature: size_t _PyLong_NumBits(PyObject *vv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:853,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:897,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:902,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:931,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:936,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:939,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:941,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:947,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:948,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - bytes
    - n
    - little_endian
    - is_signed
    argTypes:
    - unsigned char*
    - size_t
    - int
    - int
    assertStmts:
    - condition: (idigit < ndigits)
      pos:
        line_end: 930
        line_start: 930
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 935
        line_start: 935
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (accumbits < PyLong_SHIFT)
      pos:
        line_end: 938
        line_start: 938
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (idigit < ndigits)
      pos:
        line_end: 940
        line_start: 940
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 949
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 949
    functionName: _PyLong_FromByteArray
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - PyLong_FromLong
    - _PyLong_New
    - long_normalize
    - PyErr_SetString
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyLong_FromByteArray(const unsigned char* bytes, size_t
      n,\n                      int little_endian, int is_signed)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:966,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:966,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:968,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:969,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:971,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:978,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:995,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1040,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1041,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1062,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1079,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 5
    argNames:
    - v
    - bytes
    - n
    - little_endian
    - is_signed
    argTypes:
    - PyLongObject*
    - unsigned char*
    - size_t
    - int
    - int
    assertStmts:
    - condition: (v != NULL && PyLong_Check(v))
      pos:
        line_end: 965
        line_start: 965
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (ndigits == 0 || v->ob_digit[ndigits - 1] != 0)
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (accumbits < 8)
      pos:
        line_end: 1039
        line_start: 1039
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 1040
        line_start: 1040
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (accumbits == 0)
      pos:
        line_end: 1061
        line_start: 1061
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1082
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1082
    functionName: _PyLong_AsByteArray
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 12
    functionsReached:
    - PyLong_Check
    - assert
    - Py_SIZE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int _PyLong_AsByteArray(PyLongObject* v,\n                    unsigned
      char* bytes, size_t n,\n                    int little_endian, int is_signed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1090,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1086
    functionDepth: 3
    functionLinenumber: 1086
    functionLinenumberEnd: 1099
    functionName: PyLong_FromVoidPtr
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 26
    functionsReached:
    - PyLong_FromUnsignedLongLong
    - PyLong_FromUnsignedLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromVoidPtr(void *p)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1109,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1109,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1110,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1112,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1120,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1120,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1121,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1103
    functionDepth: 5
    functionLinenumber: 1103
    functionLinenumberEnd: 1130
    functionName: PyLong_AsVoidPtr
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 12
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyLong_AsLong
    - _PyLong_Sign
    - PyErr_Occurred
    - PyLong_AsLongLong
    - PyLong_AsUnsignedLongLong
    linkageType: ''
    returnType: void
    signature: 'void *

      PyLong_AsVoidPtr(PyObject *vv)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SMALL_INT
      Src: /src/Python-3.8.3/Objects/longobject.c:1149,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1169,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ival
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1180
    functionName: PyLong_FromLongLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 33
    functionsReached:
    - CHECK_SMALL_INT
    - Py_SIZE
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromLongLong(long long ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1192,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ival
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1208
    functionName: PyLong_FromUnsignedLongLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 26
    functionsReached:
    - PyLong_FromLong
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnsignedLongLong(unsigned long long ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SMALL_INT
      Src: /src/Python-3.8.3/Objects/longobject.c:1221,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1237,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - ival
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1248
    functionName: PyLong_FromSsize_t
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 181
    functionsReached:
    - CHECK_SMALL_INT
    - Py_SIZE
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromSsize_t(Py_ssize_t ival)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1260,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1267,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ival
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1252
    functionDepth: 2
    functionLinenumber: 1252
    functionLinenumberEnd: 1277
    functionName: PyLong_FromSize_t
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 27
    functionsReached:
    - PyLong_FromLong
    - Py_SIZE
    - _PyLong_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromSize_t(size_t ival)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1291,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1295,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:1299,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1306,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Objects/longobject.c:1317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1282
    functionDepth: 3
    functionLinenumber: 1282
    functionLinenumberEnd: 1329
    functionName: PyLong_AsLongLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 12
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_BadInternalCall
    - _PyLong_AsByteArray
    - Py_SIZE
    linkageType: ''
    returnType: long long
    signature: long long PyLong_AsLongLong(PyObject *vv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1342,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1345,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1346,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1351,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Objects/longobject.c:1356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1334
    functionDepth: 2
    functionLinenumber: 1334
    functionLinenumberEnd: 1364
    functionName: PyLong_AsUnsignedLongLong
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 9
    functionsReached:
    - PyLong_Check
    - PyErr_BadInternalCall
    - PyErr_SetString
    - _PyLong_AsByteArray
    - Py_SIZE
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long PyLong_AsUnsignedLongLong(PyObject *vv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1377,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1378,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1382,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - vv
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1397
    functionName: _PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - Py_SIZE
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long _PyLong_AsUnsignedLongLongMask(PyObject *vv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1406,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1410,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Objects/longobject.c:1411,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:1414,1
    - Dst: _PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Objects/longobject.c:1418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1399
    functionDepth: 3
    functionLinenumber: 1399
    functionLinenumberEnd: 1421
    functionName: PyLong_AsUnsignedLongLongMask
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 7
    functionsReached:
    - PyLong_Check
    - _PyLong_AsUnsignedLongLongMask
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long PyLong_AsUnsignedLongLongMask(PyObject *op)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1446,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1450,1
    - Dst: _PyLong_FromNbIndexOrNbInt
      Src: /src/Python-3.8.3/Objects/longobject.c:1454,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 2
    argNames:
    - vv
    - overflow
    argTypes:
    - PyObject*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1507
    functionName: PyLong_AsLongLongAndOverflow
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 6
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - _PyLong_FromNbIndexOrNbInt
    - PyErr_BadInternalCall
    - Py_SIZE
    linkageType: ''
    returnType: long long
    signature: long long PyLong_AsLongLongAndOverflow(PyObject *vv, int *overflow)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1514,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1514,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1515,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1518,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1519,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1522,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:1527,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1529
    functionName: _PyLong_UnsignedShort_Converter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 4
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - Py_SAFE_DOWNCAST
    - _PyLong_Sign
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_UnsignedShort_Converter(PyObject *obj, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1536,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1536,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1537,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1540,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1541,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1544,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Objects/longobject.c:1549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1551
    functionName: _PyLong_UnsignedInt_Converter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - Py_SAFE_DOWNCAST
    - _PyLong_Sign
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_UnsignedInt_Converter(PyObject *obj, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1558,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1558,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1559,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1562,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1563,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1568
    functionName: _PyLong_UnsignedLong_Converter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 4
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - _PyLong_Sign
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_UnsignedLong_Converter(PyObject *obj, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1575,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1575,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1576,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:1579,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1580,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1570
    functionDepth: 3
    functionLinenumber: 1570
    functionLinenumberEnd: 1585
    functionName: _PyLong_UnsignedLongLong_Converter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyLong_Check
    - _PyLong_Sign
    - PyErr_Occurred
    - PyLong_AsUnsignedLongLong
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_UnsignedLongLong_Converter(PyObject *obj, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1592,1
    - Dst: _PyLong_Sign
      Src: /src/Python-3.8.3/Objects/longobject.c:1592,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1593,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:1596,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:1597,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1602
    functionName: _PyLong_Size_t_Converter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - _PyLong_Sign
    - PyErr_Occurred
    - PyLong_AsSize_t
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyLong_Size_t_Converter(PyObject *obj, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1605
    functionDepth: 0
    functionLinenumber: 1605
    functionLinenumberEnd: 1610
    functionName: CHECK_BINOP
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_BINOP(v,w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1626,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - x
    - m
    - y
    - n
    argTypes:
    - digit*
    - Py_ssize_t
    - digit*
    - Py_ssize_t
    assertStmts:
    - condition: (m >= n)
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1625
        line_start: 1625
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: ((carry & 1) == carry)
      pos:
        line_end: 1631
        line_start: 1631
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1635
      start: 1615
    functionDepth: 1
    functionLinenumber: 1615
    functionLinenumberEnd: 1635
    functionName: v_iadd
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit v_iadd(digit *x, Py_ssize_t m, digit *y, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - x
    - m
    - y
    - n
    argTypes:
    - digit*
    - Py_ssize_t
    - digit*
    - Py_ssize_t
    assertStmts:
    - condition: (m >= n)
      pos:
        line_end: 1646
        line_start: 1646
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1661
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1661
    functionName: v_isub
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit v_isub(digit *x, Py_ssize_t m, digit *y, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - z
    - a
    - m
    - d
    argTypes:
    - digit*
    - digit*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (0 <= d && d < PyLong_SHIFT)
      pos:
        line_end: 1671
        line_start: 1671
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1679
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1679
    functionName: v_lshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit v_lshift(digit *z, digit *a, Py_ssize_t m, int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - z
    - a
    - m
    - d
    argTypes:
    - digit*
    - digit*
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (0 <= d && d < PyLong_SHIFT)
      pos:
        line_end: 1690
        line_start: 1690
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1698
      start: 1684
    functionDepth: 1
    functionLinenumber: 1684
    functionLinenumberEnd: 1698
    functionName: v_rshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit v_rshift(digit *z, digit *a, Py_ssize_t m, int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pout
    - pin
    - size
    - n
    argTypes:
    - digit*
    - digit*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (n > 0 && n <= PyLong_MASK)
      pos:
        line_end: 1710
        line_start: 1710
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1721
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1721
    functionName: inplace_divrem1
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: digit
    signature: digit inplace_divrem1(digit *pout, digit *pin, Py_ssize_t size, digit
      n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:1730,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1730,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1733,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1734,1
    - Dst: inplace_divrem1
      Src: /src/Python-3.8.3/Objects/longobject.c:1737,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:1738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - a
    - n
    - prem
    argTypes:
    - PyLongObject*
    - digit
    - digit*
    assertStmts:
    - condition: (n > 0 && n <= PyLong_MASK)
      pos:
        line_end: 1732
        line_start: 1732
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1739
      start: 1727
    functionDepth: 2
    functionLinenumber: 1727
    functionLinenumberEnd: 1739
    functionName: divrem1
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - assert
    - inplace_divrem1
    - _PyLong_New
    - long_normalize
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      divrem1(PyLongObject *a, digit n, digit *prem)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1761,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1762,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:1765,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1765,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1766,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1784,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1786,1
    - Dst: SIGCHECK
      Src: /src/Python-3.8.3/Objects/longobject.c:1809,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1810,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/longobject.c:1828,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1829,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/longobject.c:1835,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1837,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/longobject.c:1842,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:1844,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/longobject.c:1847,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 5
    argNames:
    - aa
    - p_output
    - writer
    - bytes_writer
    - bytes_str
    argTypes:
    - PyObject*
    - PyObject**
    - _PyUnicodeWriter*
    - _PyBytesWriter*
    - char**
    assertStmts:
    - condition: (size_a < PY_SSIZE_T_MAX/2)
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 1871
      start: 1745
    functionDepth: 5
    functionLinenumber: 1745
    functionLinenumberEnd: 1871
    functionName: long_to_decimal_string_internal
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - assert
    - SIGCHECK
    - Py_DECREF
    - _PyLong_New
    - PyUnicode_KIND
    - PyErr_BadInternalCall
    - _PyUnicodeWriter_Prepare
    - _PyBytesWriter_Prepare
    - Py_ABS
    - Py_SIZE
    - PyUnicode_New
    linkageType: ''
    returnType: int
    signature: "int long_to_decimal_string_internal(PyObject *aa,\n                                PyObject
      **p_output,\n                                _PyUnicodeWriter *writer,\n                                _PyBytesWriter
      *bytes_writer,\n                                char **bytes_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1853
    functionName: WRITE_DIGITS
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_DIGITS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1882
    functionName: WRITE_UNICODE_DIGITS
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UNICODE_DIGITS(TYPE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_to_decimal_string_internal
      Src: /src/Python-3.8.3/Objects/longobject.c:1929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aa
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1925
    functionDepth: 6
    functionLinenumber: 1925
    functionLinenumberEnd: 1932
    functionName: long_to_decimal_string
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_to_decimal_string_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_to_decimal_string(PyObject *aa)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:1952,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:1953,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:1954,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:1957,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1957,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:1958,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/longobject.c:1972,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:1983,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:1988,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Objects/longobject.c:1998,1
    - Dst: _PyBytesWriter_Prepare
      Src: /src/Python-3.8.3/Objects/longobject.c:2003,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2008,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/longobject.c:2011,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2027,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 7
    argNames:
    - aa
    - base
    - alternate
    - p_output
    - writer
    - bytes_writer
    - bytes_str
    argTypes:
    - PyObject*
    - int
    - int
    - PyObject**
    - _PyUnicodeWriter*
    - _PyBytesWriter*
    - char**
    assertStmts:
    - condition: (base == 2 || base == 8 || base == 16)
      pos:
        line_end: 1951
        line_start: 1951
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (accumbits >= bits)
      pos:
        line_end: 2026
        line_start: 2026
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2037
      start: 1939
    functionDepth: 5
    functionLinenumber: 1939
    functionLinenumberEnd: 2037
    functionName: long_format_binary
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - bits_in_digit
    - PyUnicode_KIND
    - PyErr_BadInternalCall
    - Py_UNREACHABLE
    - _PyUnicodeWriter_Prepare
    - _PyBytesWriter_Prepare
    - PyErr_SetString
    - Py_ABS
    - assert
    - Py_SIZE
    - PyUnicode_New
    linkageType: ''
    returnType: int
    signature: "int long_format_binary(PyObject *aa, int base, int alternate,\n                   PyObject
      **p_output, _PyUnicodeWriter *writer,\n                   _PyBytesWriter *bytes_writer,
      char **bytes_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2014
    functionDepth: 0
    functionLinenumber: 2014
    functionLinenumberEnd: 2020
    functionName: WRITE_DIGITS
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_DIGITS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2066
    functionName: WRITE_UNICODE_DIGITS
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UNICODE_DIGITS(TYPE)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_to_decimal_string_internal
      Src: /src/Python-3.8.3/Objects/longobject.c:2107,1
    - Dst: long_format_binary
      Src: /src/Python-3.8.3/Objects/longobject.c:2109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2101
    functionDepth: 6
    functionLinenumber: 2101
    functionLinenumberEnd: 2113
    functionName: _PyLong_Format
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - long_format_binary
    - long_to_decimal_string_internal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Format(PyObject *obj, int base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_to_decimal_string_internal
      Src: /src/Python-3.8.3/Objects/longobject.c:2121,1
    - Dst: long_format_binary
      Src: /src/Python-3.8.3/Objects/longobject.c:2124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - writer
    - obj
    - base
    - alternate
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2115
    functionDepth: 6
    functionLinenumber: 2115
    functionLinenumberEnd: 2126
    functionName: _PyLong_FormatWriter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - long_format_binary
    - long_to_decimal_string_internal
    linkageType: ''
    returnType: int
    signature: "int _PyLong_FormatWriter(_PyUnicodeWriter *writer,\n                     PyObject
      *obj,\n                     int base, int alternate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: long_to_decimal_string_internal
      Src: /src/Python-3.8.3/Objects/longobject.c:2137,1
    - Dst: long_format_binary
      Src: /src/Python-3.8.3/Objects/longobject.c:2140,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - writer
    - str
    - obj
    - base
    - alternate
    argTypes:
    - _PyBytesWriter*
    - char*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (str2 != NULL)
      pos:
        line_end: 2143
        line_start: 2143
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2146
      start: 2128
    functionDepth: 6
    functionLinenumber: 2128
    functionLinenumberEnd: 2146
    functionName: _PyLong_FormatBytesWriter
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_format_binary
    - assert
    - long_to_decimal_string_internal
    linkageType: ''
    returnType: char
    signature: "char *\n_PyLong_FormatBytesWriter(_PyBytesWriter *writer, char *str,\n
      \                         PyObject *obj,\n                          int base,
      int alternate)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2198,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:2226,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2232,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2248,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2249,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2257,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2261,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2263,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:2267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 3
    argNames:
    - str
    - base
    - res
    argTypes:
    - char**
    - int
    - PyLongObject**
    assertStmts:
    - condition: (base >= 2 && base <= 32 && (base & (base - 1)) == 0)
      pos:
        line_end: 2197
        line_start: 2197
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (k >= 0 && k < base)
      pos:
        line_end: 2248
        line_start: 2248
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (pdigit - z->ob_digit <= n)
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (bits_in_accum < PyLong_SHIFT)
      pos:
        line_end: 2256
        line_start: 2256
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (bits_in_accum <= PyLong_SHIFT)
      pos:
        line_end: 2260
        line_start: 2260
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (pdigit - z->ob_digit <= n)
      pos:
        line_end: 2262
        line_start: 2262
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2269
      start: 2184
    functionDepth: 2
    functionLinenumber: 2184
    functionLinenumberEnd: 2269
    functionName: long_from_binary_base
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_New
    - long_normalize
    - PyErr_SetString
    - assert
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int long_from_binary_base(const char **str, int base, PyLongObject
      **res)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:2289,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/longobject.c:2293,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2293,1
    - Dst: long_from_binary_base
      Src: /src/Python-3.8.3/Objects/longobject.c:2340,1
    - Dst: log
      Src: /src/Python-3.8.3/Objects/longobject.c:2450,1
    - Dst: log
      Src: /src/Python-3.8.3/Objects/longobject.c:2451,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2461,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2469,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:2499,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2506,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2507,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2526,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2533,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2534,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2550,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2558,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2559,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2561,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2566,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2566,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2567,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2569,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:2572,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2575,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2590,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2600,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2600,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Objects/longobject.c:2602,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Objects/longobject.c:2602,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:2608,1
    - Dst: maybe_small_long
      Src: /src/Python-3.8.3/Objects/longobject.c:2609,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2622,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/longobject.c:2623,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/longobject.c:2623,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/longobject.c:2624,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:2628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2631,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 191
    argCount: 3
    argNames:
    - str
    - pend
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts:
    - condition: (i > 0)
      pos:
        line_end: 2460
        line_start: 2460
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2533
        line_start: 2533
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(z) == size_z)
      pos:
        line_end: 2565
        line_start: 2565
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (size_z > 0)
      pos:
        line_end: 2505
        line_start: 2505
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (c < PyLong_BASE)
      pos:
        line_end: 2557
        line_start: 2557
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2633
      start: 2279
    functionDepth: 4
    functionLinenumber: 2279
    functionLinenumberEnd: 2633
    functionName: PyLong_FromString
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - Py_ISSPACE
    - memcpy
    - Py_DECREF
    - _PyLong_New
    - PyUnicode_FromStringAndSize
    - Py_XDECREF
    - long_from_binary_base
    - strlen
    - log
    - long_normalize
    - PyErr_Format
    - PyErr_SetString
    - assert
    - Py_SIZE
    - maybe_small_long
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromString(const char *str, char **pend, int base)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2511
    functionDepth: 0
    functionLinenumber: 2511
    functionLinenumberEnd: 2511
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 232
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SIZE(z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Objects/longobject.c:2646,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2649,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/longobject.c:2650,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/longobject.c:2650,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:2652,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - s
    - len
    - base
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2640
    functionDepth: 5
    functionLinenumber: 2640
    functionLinenumberEnd: 2658
    functionName: _PyLong_FromBytes
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_DECREF
    - Py_MIN
    - PyErr_Format
    - PyLong_FromString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromBytes(const char *s, Py_ssize_t len, int base)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Objects/longobject.c:2663,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/Python-3.8.3/Objects/longobject.c:2666,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - u
    - length
    - base
    argTypes:
    - Py_UNICODE*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2660
    functionDepth: 5
    functionLinenumber: 2660
    functionLinenumberEnd: 2669
    functionName: PyLong_FromUnicode
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromWideChar
    - PyLong_FromUnicodeObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_TransformDecimalAndSpaceToASCII
      Src: /src/Python-3.8.3/Objects/longobject.c:2679,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2682,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/longobject.c:2682,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/longobject.c:2684,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2685,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Objects/longobject.c:2687,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2689,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2692,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2693,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/longobject.c:2694,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - u
    - base
    argTypes:
    - PyObject*
    - int
    assertStmts:
    - condition: (buffer != NULL)
      pos:
        line_end: 2684
        line_start: 2684
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyUnicode_IS_ASCII(asciidig))
      pos:
        line_end: 2681
        line_start: 2681
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2698
      start: 2671
    functionDepth: 5
    functionLinenumber: 2671
    functionLinenumberEnd: 2698
    functionName: PyLong_FromUnicodeObject
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsUTF8AndSize
    - PyUnicode_IS_ASCII
    - PyErr_Format
    - PyLong_FromString
    - _PyUnicode_TransformDecimalAndSpaceToASCII
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_FromUnicodeObject(PyObject *u, int base)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:2711,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2711,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:2711,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2711,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:2715,1
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:2723,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2727,1
    - Dst: divrem1
      Src: /src/Python-3.8.3/Objects/longobject.c:2733,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:2736,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2738,1
    - Dst: x_divrem
      Src: /src/Python-3.8.3/Objects/longobject.c:2743,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2751,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2751,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:2752,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:2754,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2758,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2758,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:2759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2761,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:2762,1
    - Dst: maybe_small_long
      Src: /src/Python-3.8.3/Objects/longobject.c:2766,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - a
    - b
    - pdiv
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2707
    functionDepth: 3
    functionLinenumber: 2707
    functionLinenumberEnd: 2768
    functionName: long_divrem
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - divrem1
    - long_long
    - x_divrem
    - PyErr_SetString
    - Py_ABS
    - Py_SIZE
    - maybe_small_long
    - _PyLong_Negate
    linkageType: ''
    returnType: int
    signature: "int long_divrem(PyLongObject *a, PyLongObject *b,\n            PyLongObject
      **pdiv, PyLongObject **prem)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:2791,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2791,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:2792,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2792,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2793,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2794,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2799,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2801,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:2808,1
    - Dst: v_lshift
      Src: /src/Python-3.8.3/Objects/longobject.c:2809,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2810,1
    - Dst: v_lshift
      Src: /src/Python-3.8.3/Objects/longobject.c:2811,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2820,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:2821,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2824,1
    - Dst: SIGCHECK
      Src: /src/Python-3.8.3/Objects/longobject.c:2836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2837,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2838,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2839,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2846,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2857,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/Python-3.8.3/Objects/longobject.c:2867,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2872,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2884,1
    - Dst: v_rshift
      Src: /src/Python-3.8.3/Objects/longobject.c:2889,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:2891,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:2893,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:2894,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 80
    argCount: 3
    argNames:
    - v1
    - w1
    - prem
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    assertStmts:
    - condition: (k >= 0)
      pos:
        line_end: 2819
        line_start: 2819
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (q <= PyLong_BASE)
      pos:
        line_end: 2856
        line_start: 2856
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (size_v >= size_w && size_w >= 2)
      pos:
        line_end: 2792
        line_start: 2792
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (carry == 0)
      pos:
        line_end: 2809
        line_start: 2809
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: ((sdigit)vtop + zhi == -1 || (sdigit)vtop + zhi == 0)
      pos:
        line_end: 2871
        line_start: 2871
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (carry==0)
      pos:
        line_end: 2889
        line_start: 2889
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (vtop <= wm1)
      pos:
        line_end: 2845
        line_start: 2845
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (q < PyLong_BASE)
      pos:
        line_end: 2883
        line_start: 2883
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 2895
      start: 2773
    functionDepth: 2
    functionLinenumber: 2773
    functionLinenumberEnd: 2895
    functionName: x_divrem
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - assert
    - Py_DECREF
    - SIGCHECK
    - _PyLong_New
    - bits_in_digit
    - long_normalize
    - v_lshift
    - Py_ARITHMETIC_RIGHT_SHIFT
    - Py_ABS
    - Py_SIZE
    - v_rshift
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_divrem(PyLongObject *v1, PyLongObject *w1, PyLongObject **prem)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:2923,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:2923,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:2929,1
    - Dst: v_lshift
      Src: /src/Python-3.8.3/Objects/longobject.c:2969,1
    - Dst: v_rshift
      Src: /src/Python-3.8.3/Objects/longobject.c:2977,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:2993,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Objects/longobject.c:2993,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3011,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:3015,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - PyLongObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (1 <= x_size && x_size <= (Py_ssize_t)Py_ARRAY_LENGTH(x_digits))
      pos:
        line_end: 2992
        line_start: 2992
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3019
      start: 2911
    functionDepth: 2
    functionLinenumber: 2911
    functionLinenumberEnd: 3019
    functionName: _PyLong_Frexp
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - assert
    - Py_ARRAY_LENGTH
    - bits_in_digit
    - v_lshift
    - PyErr_SetString
    - Py_ABS
    - Py_SIZE
    - v_rshift
    linkageType: ''
    returnType: double
    signature: double _PyLong_Frexp(PyLongObject *a, Py_ssize_t *e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/longobject.c:3031,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:3034,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:3035,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3038,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3038,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3043,1
    - Dst: _PyLong_Frexp
      Src: /src/Python-3.8.3/Objects/longobject.c:3045,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:3046,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:3047,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/longobject.c:3051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3024
    functionDepth: 3
    functionLinenumber: 3024
    functionLinenumberEnd: 3052
    functionName: PyLong_AsDouble
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 8
    functionsReached:
    - PyLong_Check
    - _PyLong_Frexp
    - PyErr_Occurred
    - PyErr_BadInternalCall
    - MEDIUM_VALUE
    - PyErr_SetString
    - ldexp
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: double
    signature: double PyLong_AsDouble(PyObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3061,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3061,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3062,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3062,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3065,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3065,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3072,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 3056
    functionDepth: 1
    functionLinenumber: 3056
    functionLinenumberEnd: 3077
    functionName: long_compare
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int long_compare(PyLongObject *a, PyLongObject *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3083,1
    - Dst: long_compare
      Src: /src/Python-3.8.3/Objects/longobject.c:3087,1
    - Dst: Py_RETURN_RICHCOMPARE
      Src: /src/Python-3.8.3/Objects/longobject.c:3088,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3079
    functionDepth: 2
    functionLinenumber: 3079
    functionLinenumberEnd: 3089
    functionName: long_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_compare
    - Py_RETURN_RICHCOMPARE
    - CHECK_BINOP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3146
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3146
    functionName: long_hash
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t long_hash(PyLongObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3154,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3154,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3154,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3154,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3166,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3151
    functionDepth: 2
    functionLinenumber: 3151
    functionLinenumberEnd: 3181
    functionName: x_add
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyLong_New
    - Py_ABS
    - Py_SIZE
    - long_normalize
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3188,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3188,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3188,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3188,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3208,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3215,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3232,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3234,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3234,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3236,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (borrow == 0)
      pos:
        line_end: 3231
        line_start: 3231
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3237
      start: 3185
    functionDepth: 2
    functionLinenumber: 3185
    functionLinenumberEnd: 3237
    functionName: x_sub
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - assert
    - _PyLong_New
    - long_normalize
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3244,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3246,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3246,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3246,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3246,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3247,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3247,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3247,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3249,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3250,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3257,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:3257,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3258,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3258,1
    - Dst: x_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:3262,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3265,1
    - Dst: x_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:3266,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_REFCNT(z) == 1)
      pos:
        line_end: 3256
        line_start: 3256
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3271
      start: 3239
    functionDepth: 3
    functionLinenumber: 3239
    functionLinenumberEnd: 3271
    functionName: long_add
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - x_sub
    - x_add
    - CHECK_BINOP
    - assert
    - Py_REFCNT
    - MEDIUM_VALUE
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_add(PyLongObject *a, PyLongObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3278,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3280,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3280,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3280,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3280,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3281,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3281,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3281,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3283,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3284,1
    - Dst: x_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:3285,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3287,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3289,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3289,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:3289,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3290,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3290,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3294,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3295,1
    - Dst: x_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:3297,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_SIZE(z) == 0 || Py_REFCNT(z) == 1)
      pos:
        line_end: 3288
        line_start: 3288
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3300
      start: 3273
    functionDepth: 3
    functionLinenumber: 3273
    functionLinenumberEnd: 3300
    functionName: long_sub
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - x_sub
    - x_add
    - CHECK_BINOP
    - assert
    - Py_REFCNT
    - MEDIUM_VALUE
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_sub(PyLongObject *a, PyLongObject *b)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3309,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3309,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3310,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3310,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3313,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/longobject.c:3317,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3317,1
    - Dst: SIGCHECK
      Src: /src/Python-3.8.3/Objects/longobject.c:3332,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3333,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3340,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3350,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3359,1
    - Dst: SIGCHECK
      Src: /src/Python-3.8.3/Objects/longobject.c:3370,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3371,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3379,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3383,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3386,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (carry <= (PyLong_MASK << 1))
      pos:
        line_end: 3349
        line_start: 3349
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 3378
        line_start: 3378
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: ((carry >> PyLong_SHIFT) == 0)
      pos:
        line_end: 3382
        line_start: 3382
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (carry <= PyLong_MASK)
      pos:
        line_end: 3339
        line_start: 3339
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: ((carry >> PyLong_SHIFT) == 0)
      pos:
        line_end: 3358
        line_start: 3358
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3387
      start: 3305
    functionDepth: 2
    functionLinenumber: 3305
    functionLinenumberEnd: 3387
    functionName: x_mul
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    - SIGCHECK
    - Py_DECREF
    - _PyLong_New
    - long_normalize
    - Py_ABS
    - Py_SIZE
    - memset
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      x_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3404,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3404,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/longobject.c:3406,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3409,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3411,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3412,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:3416,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:3417,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3419,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - n
    - size
    - high
    - low
    argTypes:
    - PyLongObject*
    - Py_ssize_t
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3396
    functionDepth: 2
    functionLinenumber: 3396
    functionLinenumberEnd: 3422
    functionName: kmul_split
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - _PyLong_New
    - long_normalize
    - Py_ABS
    - Py_SIZE
    - Py_MIN
    linkageType: ''
    returnType: int
    signature: "int kmul_split(PyLongObject *n,\n           Py_ssize_t size,\n           PyLongObject
      **high,\n           PyLongObject **low)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3433,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3433,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3434,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3434,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3469,1
    - Dst: x_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3471,1
    - Dst: k_lopsided_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3481,1
    - Dst: kmul_split
      Src: /src/Python-3.8.3/Objects/longobject.c:3485,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3486,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3486,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3491,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3492,1
    - Dst: kmul_split
      Src: /src/Python-3.8.3/Objects/longobject.c:3494,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3513,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/longobject.c:3517,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3517,1
    - Dst: k_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3521,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3522,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3522,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3523,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3523,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3523,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:3524,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3525,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3528,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3528,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/longobject.c:3530,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3530,1
    - Dst: k_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3534,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3535,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3538,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3538,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3539,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3539,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:3540,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3540,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3543,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/longobject.c:3545,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3545,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3550,1
    - Dst: v_isub
      Src: /src/Python-3.8.3/Objects/longobject.c:3551,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3552,1
    - Dst: v_isub
      Src: /src/Python-3.8.3/Objects/longobject.c:3554,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3554,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3555,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3558,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3559,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3560,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3565,1
    - Dst: x_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3567,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3568,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3572,1
    - Dst: k_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3575,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3577,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3579,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3579,1
    - Dst: v_iadd
      Src: /src/Python-3.8.3/Objects/longobject.c:3584,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3584,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3585,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3587,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3590,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3591,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3592,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3593,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3594,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_SIZE(t2) >= 0)
      pos:
        line_end: 3537
        line_start: 3537
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(t3) >= 0)
      pos:
        line_end: 3578
        line_start: 3578
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(t1) >= 0)
      pos:
        line_end: 3521
        line_start: 3521
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(ah) > 0)
      pos:
        line_end: 3485
        line_start: 3485
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(t2) <= 2*shift)
      pos:
        line_end: 3538
        line_start: 3538
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (2*shift + Py_SIZE(t1) <= Py_SIZE(ret))
      pos:
        line_end: 3522
        line_start: 3522
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3596
      start: 3430
    functionDepth: 3
    functionLinenumber: 3430
    functionLinenumberEnd: 3596
    functionName: k_mul
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - v_iadd
    - assert
    - k_mul
    - memcpy
    - Py_DECREF
    - Py_INCREF
    - _PyLong_New
    - v_isub
    - x_add
    - k_lopsided_mul
    - long_normalize
    - kmul_split
    - Py_ABS
    - x_mul
    - Py_SIZE
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      k_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3654,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3654,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3655,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3655,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3660,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3661,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3664,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/longobject.c:3667,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3667,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:3670,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Objects/longobject.c:3677,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:3680,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3682,1
    - Dst: k_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3683,1
    - Dst: v_iadd
      Src: /src/Python-3.8.3/Objects/longobject.c:3688,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3688,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3689,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3690,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3696,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:3697,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3700,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (asize > KARATSUBA_CUTOFF)
      pos:
        line_end: 3659
        line_start: 3659
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (2 * asize <= bsize)
      pos:
        line_end: 3660
        line_start: 3660
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3703
      start: 3651
    functionDepth: 4
    functionLinenumber: 3651
    functionLinenumberEnd: 3703
    functionName: k_lopsided_mul
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - v_iadd
    - assert
    - memcpy
    - k_mul
    - Py_DECREF
    - _PyLong_New
    - Py_XDECREF
    - long_normalize
    - Py_ABS
    - Py_SIZE
    - Py_MIN
    - memset
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      k_lopsided_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3710,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3713,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3713,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3713,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3713,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3714,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:3714,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3715,1
    - Dst: k_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:3718,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3720,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3720,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:3721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3726
      start: 3705
    functionDepth: 4
    functionLinenumber: 3705
    functionLinenumberEnd: 3726
    functionName: long_mul
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - k_mul
    - CHECK_BINOP
    - MEDIUM_VALUE
    - PyLong_FromLongLong
    - Py_ABS
    - Py_SIZE
    - _PyLong_Negate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mul(PyLongObject *a, PyLongObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3736,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3736,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3736,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3737,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3737,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3737,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3739,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3739,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3748,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_ABS(Py_SIZE(a)) == 1)
      pos:
        line_end: 3735
        line_start: 3735
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_ABS(Py_SIZE(b)) == 1)
      pos:
        line_end: 3736
        line_start: 3736
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3749
      start: 3729
    functionDepth: 1
    functionLinenumber: 3729
    functionLinenumberEnd: 3749
    functionName: fast_mod
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - assert
    - Py_SIZE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_mod(PyLongObject *a, PyLongObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3759,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3759,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3759,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:3760,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3760,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3760,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3762,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3762,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:3771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_ABS(Py_SIZE(a)) == 1)
      pos:
        line_end: 3758
        line_start: 3758
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_ABS(Py_SIZE(b)) == 1)
      pos:
        line_end: 3759
        line_start: 3759
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 3772
      start: 3752
    functionDepth: 1
    functionLinenumber: 3752
    functionLinenumberEnd: 3772
    functionName: fast_floor_div
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - assert
    - Py_SIZE
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fast_floor_div(PyLongObject *a, PyLongObject *b)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3801,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3801,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3801,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3801,1
    - Dst: fast_floor_div
      Src: /src/Python-3.8.3/Objects/longobject.c:3805,1
    - Dst: fast_mod
      Src: /src/Python-3.8.3/Objects/longobject.c:3811,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3813,1
    - Dst: long_divrem
      Src: /src/Python-3.8.3/Objects/longobject.c:3825,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3827,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3827,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3828,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3828,1
    - Dst: long_add
      Src: /src/Python-3.8.3/Objects/longobject.c:3830,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3831,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3834,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:3837,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3839,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3840,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3843,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:3854,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 4
    argNames:
    - v
    - w
    - pdiv
    - pmod
    argTypes:
    - PyLongObject*
    - PyLongObject*
    - PyLongObject**
    - PyLongObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3795
    functionDepth: 4
    functionLinenumber: 3795
    functionLinenumberEnd: 3857
    functionName: l_divmod
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - fast_floor_div
    - long_sub
    - long_add
    - Py_DECREF
    - long_divrem
    - Py_SIZE
    - Py_ABS
    - fast_mod
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int l_divmod(PyLongObject *v, PyLongObject *w,\n         PyLongObject
      **pdiv, PyLongObject **pmod)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3864,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3866,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3866,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3866,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3866,1
    - Dst: fast_floor_div
      Src: /src/Python-3.8.3/Objects/longobject.c:3867,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:3870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3859
    functionDepth: 5
    functionLinenumber: 3859
    functionLinenumberEnd: 3873
    functionName: long_div
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - fast_floor_div
    - CHECK_BINOP
    - Py_ABS
    - Py_SIZE
    - l_divmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_div(PyObject *a, PyObject *b)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:3889,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3981,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3981,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:3982,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3982,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3983,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:3983,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:3985,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:4023,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:4024,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/longobject.c:4032,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4045,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4049,1
    - Dst: v_lshift
      Src: /src/Python-3.8.3/Objects/longobject.c:4054,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4062,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4063,1
    - Dst: v_rshift
      Src: /src/Python-3.8.3/Objects/longobject.c:4066,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:4075,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4076,1
    - Dst: inplace_divrem1
      Src: /src/Python-3.8.3/Objects/longobject.c:4081,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:4083,1
    - Dst: x_divrem
      Src: /src/Python-3.8.3/Objects/longobject.c:4089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4090,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4094,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4096,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4098,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4098,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4099,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:4100,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/longobject.c:4103,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4117,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/longobject.c:4121,1
    - Dst: ldexp
      Src: /src/Python-3.8.3/Objects/longobject.c:4123,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/longobject.c:4126,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/longobject.c:4129,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4132,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 118
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (a_size >= shift_digits)
      pos:
        line_end: 4061
        line_start: 4061
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (x_size > 0)
      pos:
        line_end: 4098
        line_start: 4098
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (extra_bits == 2 || extra_bits == 3)
      pos:
        line_end: 4103
        line_start: 4103
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4136
      start: 3880
    functionDepth: 3
    functionLinenumber: 3880
    functionLinenumberEnd: 4136
    functionName: long_true_divide
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    - CHECK_BINOP
    - inplace_divrem1
    - Py_DECREF
    - _PyLong_New
    - bits_in_digit
    - Py_MAX
    - PyFloat_FromDouble
    - x_divrem
    - long_normalize
    - ldexp
    - PyErr_SetString
    - v_lshift
    - Py_ABS
    - Py_SIZE
    - v_rshift
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_true_divide(PyObject *v, PyObject *w)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4143,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4145,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4145,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4145,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4145,1
    - Dst: fast_mod
      Src: /src/Python-3.8.3/Objects/longobject.c:4146,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4152
      start: 4138
    functionDepth: 5
    functionLinenumber: 4138
    functionLinenumberEnd: 4152
    functionName: long_mod
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - Py_SIZE
    - Py_ABS
    - fast_mod
    - l_divmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_mod(PyObject *a, PyObject *b)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4160,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4162,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4165,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:4167,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:4168,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4154
    functionDepth: 5
    functionLinenumber: 4154
    functionLinenumberEnd: 4175
    functionName: long_divmod
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - Py_DECREF
    - l_divmod
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_divmod(PyObject *a, PyObject *b)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4204,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4204,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4206,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4212,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4215,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4216,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4219,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4225,1
    - Dst: long_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:4228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4229,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:4233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4245,1
    - Dst: long_compare
      Src: /src/Python-3.8.3/Objects/longobject.c:4246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4248,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4250,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4261,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4263,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 2
    argNames:
    - a
    - n
    argTypes:
    - PyLongObject*
    - PyLongObject*
    assertStmts:
    - condition: (Py_SIZE(n) > 0)
      pos:
        line_end: 4203
        line_start: 4203
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4266
      start: 4198
    functionDepth: 5
    functionLinenumber: 4198
    functionLinenumberEnd: 4266
    functionName: long_invmod
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - long_sub
    - Py_DECREF
    - Py_INCREF
    - long_compare
    - long_mul
    - PyErr_SetString
    - assert
    - Py_SIZE
    - l_divmod
    linkageType: ''
    returnType: PyLongObject
    signature: 'PyLongObject *

      long_invmod(PyLongObject *a, PyLongObject *n)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4288,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4289,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:4290,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4298,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4302,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4307,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4308,1
    - Dst: tp_as_number::nb_power
      Src: /src/Python-3.8.3/Objects/longobject.c:4309,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4316,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4324,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:4326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4329,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:4332,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4339,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4340,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4346,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:4347,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4350,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:4353,1
    - Dst: long_invmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4357,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4360,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4373,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4373,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4373,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4374,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4376,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4385,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4416,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4419,1
    - Dst: MULT
      Src: /src/Python-3.8.3/Objects/longobject.c:4423,1
    - Dst: MULT
      Src: /src/Python-3.8.3/Objects/longobject.c:4425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4431,1
    - Dst: MULT
      Src: /src/Python-3.8.3/Objects/longobject.c:4434,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4436,1
    - Dst: MULT
      Src: /src/Python-3.8.3/Objects/longobject.c:4442,1
    - Dst: MULT
      Src: /src/Python-3.8.3/Objects/longobject.c:4444,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4449,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:4450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4453,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:4460,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4463,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4467,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4468,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4469,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4470,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 125
    argCount: 3
    argNames:
    - v
    - w
    - x
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4270
    functionDepth: 6
    functionLinenumber: 4270
    functionLinenumberEnd: 4472
    functionName: long_pow
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - long_sub
    - CHECK_BINOP
    - Py_DECREF
    - MULT
    - Py_INCREF
    - _PyLong_Copy
    - Py_CLEAR
    - Py_XDECREF
    - long_invmod
    - PyErr_SetString
    - Py_SIZE
    - tp_as_number::nb_power
    - l_divmod
    - _PyLong_Negate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_pow(PyObject *v, PyObject *w, PyObject *x)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4392
    functionDepth: 0
    functionLinenumber: 4392
    functionLinenumberEnd: 4402
    functionName: REDUCE
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REDUCE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4405
    functionDepth: 0
    functionLinenumber: 4405
    functionLinenumberEnd: 4415
    functionName: MULT
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULT(X, Y, result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4479,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4479,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4480,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:4480,1
    - Dst: long_add
      Src: /src/Python-3.8.3/Objects/longobject.c:4481,1
    - Dst: _PyLong_Negate
      Src: /src/Python-3.8.3/Objects/longobject.c:4484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4474
    functionDepth: 4
    functionLinenumber: 4474
    functionLinenumberEnd: 4488
    functionName: long_invert
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - long_add
    - MEDIUM_VALUE
    - Py_ABS
    - Py_SIZE
    - _PyLong_Negate
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_invert(PyLongObject *v)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4494,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4494,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4495,1
    - Dst: MEDIUM_VALUE
      Src: /src/Python-3.8.3/Objects/longobject.c:4495,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:4496,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4498,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4490
    functionDepth: 3
    functionLinenumber: 4490
    functionLinenumberEnd: 4500
    functionName: long_neg
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyLong_Copy
    - MEDIUM_VALUE
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_neg(PyLongObject *v)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4505,1
    - Dst: long_neg
      Src: /src/Python-3.8.3/Objects/longobject.c:4506,1
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:4508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4502
    functionDepth: 4
    functionLinenumber: 4502
    functionLinenumberEnd: 4509
    functionName: long_abs
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - Py_SIZE
    - long_neg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_abs(PyLongObject *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4515
      start: 4511
    functionDepth: 0
    functionLinenumber: 4511
    functionLinenumberEnd: 4515
    functionName: long_bool
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int long_bool(PyLongObject *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4521,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:4521,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4522,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4522,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:4523,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4531,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/longobject.c:4531,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/longobject.c:4532,1
    - Dst: divrem1
      Src: /src/Python-3.8.3/Objects/longobject.c:4533,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:4537,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4538,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/longobject.c:4542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - shiftby
    - wordshift
    - remshift
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - digit*
    assertStmts:
    - condition: (PyLong_Check(shiftby))
      pos:
        line_end: 4520
        line_start: 4520
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_SIZE(shiftby) >= 0)
      pos:
        line_end: 4521
        line_start: 4521
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyErr_ExceptionMatches(PyExc_OverflowError))
      pos:
        line_end: 4530
        line_start: 4530
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4548
      start: 4518
    functionDepth: 3
    functionLinenumber: 4518
    functionLinenumberEnd: 4548
    functionName: divmod_shift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Clear
    - Py_DECREF
    - PyLong_AsSsize_t
    - divrem1
    - PyErr_ExceptionMatches
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int divmod_shift(PyObject *shiftby, Py_ssize_t *wordshift, digit *remshift)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4557,1
    - Dst: long_invert
      Src: /src/Python-3.8.3/Objects/longobject.c:4560,1
    - Dst: long_rshift1
      Src: /src/Python-3.8.3/Objects/longobject.c:4563,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4564,1
    - Dst: long_invert
      Src: /src/Python-3.8.3/Objects/longobject.c:4567,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4568,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4571,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4573,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4577,1
    - Dst: maybe_small_long
      Src: /src/Python-3.8.3/Objects/longobject.c:4585,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:4585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - a
    - wordshift
    - remshift
    argTypes:
    - PyLongObject*
    - Py_ssize_t
    - digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4550
    functionDepth: 5
    functionLinenumber: 4550
    functionLinenumberEnd: 4588
    functionName: long_rshift1
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - long_rshift1
    - PyLong_FromLong
    - Py_DECREF
    - _PyLong_New
    - long_normalize
    - long_invert
    - Py_SIZE
    - maybe_small_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_rshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4596,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4598,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4599,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4602,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4603,1
    - Dst: divmod_shift
      Src: /src/Python-3.8.3/Objects/longobject.c:4605,1
    - Dst: long_rshift1
      Src: /src/Python-3.8.3/Objects/longobject.c:4607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4608
      start: 4590
    functionDepth: 6
    functionLinenumber: 4590
    functionLinenumberEnd: 4608
    functionName: long_rshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - long_rshift1
    - CHECK_BINOP
    - divmod_shift
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_rshift(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4617,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:4617,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4618,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4619,1
    - Dst: long_rshift1
      Src: /src/Python-3.8.3/Objects/longobject.c:4623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - size_t
    assertStmts:
    - condition: (PyLong_Check(a))
      pos:
        line_end: 4616
        line_start: 4616
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4624
      start: 4611
    functionDepth: 6
    functionLinenumber: 4611
    functionLinenumberEnd: 4624
    functionName: _PyLong_Rshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - long_rshift1
    - PyLong_FromLong
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Rshift(PyObject *a, size_t shiftby)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4634,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4634,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4638,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4641,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4642,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:4642,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4643,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4643,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4656,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:4657,1
    - Dst: maybe_small_long
      Src: /src/Python-3.8.3/Objects/longobject.c:4658,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - a
    - wordshift
    - remshift
    argTypes:
    - PyLongObject*
    - Py_ssize_t
    - digit
    assertStmts:
    - condition: (Py_REFCNT(z) == 1)
      pos:
        line_end: 4641
        line_start: 4641
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (!accum)
      pos:
        line_end: 4655
        line_start: 4655
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4659
      start: 4626
    functionDepth: 2
    functionLinenumber: 4626
    functionLinenumberEnd: 4659
    functionName: long_lshift1
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyLong_New
    - Py_REFCNT
    - long_normalize
    - Py_ABS
    - Py_SIZE
    - maybe_small_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift1(PyLongObject *a, Py_ssize_t wordshift, digit remshift)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4667,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4669,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:4670,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4673,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4674,1
    - Dst: divmod_shift
      Src: /src/Python-3.8.3/Objects/longobject.c:4676,1
    - Dst: long_lshift1
      Src: /src/Python-3.8.3/Objects/longobject.c:4678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4679
      start: 4661
    functionDepth: 4
    functionLinenumber: 4661
    functionLinenumberEnd: 4679
    functionName: long_lshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - long_lshift1
    - CHECK_BINOP
    - divmod_shift
    - PyErr_SetString
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_lshift(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4688,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:4688,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4689,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:4690,1
    - Dst: long_lshift1
      Src: /src/Python-3.8.3/Objects/longobject.c:4694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - shiftby
    argTypes:
    - PyObject*
    - size_t
    assertStmts:
    - condition: (PyLong_Check(a))
      pos:
        line_end: 4687
        line_start: 4687
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4695
      start: 4682
    functionDepth: 3
    functionLinenumber: 4682
    functionLinenumberEnd: 4695
    functionName: _PyLong_Lshift
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 3
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - long_lshift1
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_Lshift(PyObject *a, size_t shiftby)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - z
    - a
    - m
    argTypes:
    - digit*
    - digit*
    - Py_ssize_t
    assertStmts:
    - condition: (carry == 0)
      pos:
        line_end: 4710
        line_start: 4710
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 4712
      start: 4701
    functionDepth: 1
    functionLinenumber: 4701
    functionLinenumberEnd: 4712
    functionName: v_complement
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void v_complement(digit *z, digit *a, Py_ssize_t m)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4731,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4731,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4732,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4734,1
    - Dst: v_complement
      Src: /src/Python-3.8.3/Objects/longobject.c:4737,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4742,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:4745,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4745,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4746,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4750,1
    - Dst: v_complement
      Src: /src/Python-3.8.3/Objects/longobject.c:4753,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4757,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/longobject.c:4787,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4794,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4795,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/longobject.c:4814,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/longobject.c:4822,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4827,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4827,1
    - Dst: v_complement
      Src: /src/Python-3.8.3/Objects/longobject.c:4829,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4833,1
    - Dst: maybe_small_long
      Src: /src/Python-3.8.3/Objects/longobject.c:4834,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:4834,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 3
    argNames:
    - a
    - op
    - b
    argTypes:
    - PyLongObject*
    - char
    - PyLongObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4716
    functionDepth: 2
    functionLinenumber: 4716
    functionLinenumberEnd: 4835
    functionName: long_bitwise
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Py_DECREF
    - Py_INCREF
    - _PyLong_New
    - Py_UNREACHABLE
    - long_normalize
    - Py_ABS
    - maybe_small_long
    - Py_SIZE
    - v_complement
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nlong_bitwise(PyLongObject *a,\n             char op,  /*
      '&', '|', '^' */\n             PyLongObject *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4841,1
    - Dst: long_bitwise
      Src: /src/Python-3.8.3/Objects/longobject.c:4842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4844
      start: 4837
    functionDepth: 3
    functionLinenumber: 4837
    functionLinenumberEnd: 4844
    functionName: long_and
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_bitwise
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_and(PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4850,1
    - Dst: long_bitwise
      Src: /src/Python-3.8.3/Objects/longobject.c:4851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4853
      start: 4846
    functionDepth: 3
    functionLinenumber: 4846
    functionLinenumberEnd: 4853
    functionName: long_xor
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_bitwise
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_xor(PyObject *a, PyObject *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_BINOP
      Src: /src/Python-3.8.3/Objects/longobject.c:4859,1
    - Dst: long_bitwise
      Src: /src/Python-3.8.3/Objects/longobject.c:4860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4862
      start: 4855
    functionDepth: 3
    functionLinenumber: 4855
    functionLinenumberEnd: 4862
    functionName: long_or
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - CHECK_BINOP
    - long_bitwise
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_or(PyObject *a, PyObject *b)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/longobject.c:4867,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4868,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:4870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4872
      start: 4864
    functionDepth: 3
    functionLinenumber: 4864
    functionLinenumberEnd: 4872
    functionName: long_long
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyLong_CheckExact
    - _PyLong_Copy
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long(PyObject *v)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4886,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4887,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4889,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4890,1
    - Dst: long_abs
      Src: /src/Python-3.8.3/Objects/longobject.c:4895,1
    - Dst: long_abs
      Src: /src/Python-3.8.3/Objects/longobject.c:4898,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4900,1
    - Dst: long_compare
      Src: /src/Python-3.8.3/Objects/longobject.c:4903,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4910,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4911,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4913,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:4914,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4917,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:4918,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:4921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4922,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4926,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4927,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4928,1
    - Dst: l_divmod
      Src: /src/Python-3.8.3/Objects/longobject.c:4956,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4958,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4962,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4975,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:4976,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4977,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4982,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4988,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:4989,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:4990,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:4992,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Objects/longobject.c:4996,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5026,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5027,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5029,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5030,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5031,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5032,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:5033,1
    - Dst: long_normalize
      Src: /src/Python-3.8.3/Objects/longobject.c:5034,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5036,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5037,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5040,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:5040,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5041,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:5041,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5046,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5047,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5049,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5050,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:5054,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:5055,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5056,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5057,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5066,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5068,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5074,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5075,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5076,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5077,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 168
    argCount: 2
    argNames:
    - aarg
    - barg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (size_b <= size_a)
      pos:
        line_end: 4917
        line_start: 4917
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (d_carry == 0)
      pos:
        line_end: 5026
        line_start: 5026
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (c_carry == 0)
      pos:
        line_end: 5025
        line_start: 5025
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_REFCNT(a) > 0)
      pos:
        line_end: 5039
        line_start: 5039
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (Py_REFCNT(b) > 0)
      pos:
        line_end: 5040
        line_start: 5040
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5079
      start: 4874
    functionDepth: 5
    functionLinenumber: 4874
    functionLinenumberEnd: 5079
    functionName: _PyLong_GCD
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 2
    functionsReached:
    - PyLong_FromLong
    - PyLong_AsLong
    - Py_DECREF
    - Py_INCREF
    - _PyLong_Copy
    - long_compare
    - bits_in_digit
    - Py_REFCNT
    - _PyLong_New
    - long_abs
    - PyLong_AsLongLong
    - long_normalize
    - PyLong_FromLongLong
    - Py_ABS
    - assert
    - Py_SIZE
    - Py_XDECREF
    - l_divmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_GCD(PyObject *aarg, PyObject *barg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsDouble
      Src: /src/Python-3.8.3/Objects/longobject.c:5085,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:5086,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Objects/longobject.c:5088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5089
      start: 5081
    functionDepth: 4
    functionLinenumber: 5081
    functionLinenumberEnd: 5089
    functionName: long_float
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyFloat_FromDouble
    - PyErr_Occurred
    - PyLong_AsDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_float(PyObject *v)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: long_subtype_new
      Src: /src/Python-3.8.3/Objects/longobject.c:5109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5112,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5116,1
    - Dst: PyNumber_Long
      Src: /src/Python-3.8.3/Objects/longobject.c:5119,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:5121,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:5122,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5125,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5130,1
    - Dst: PyLong_FromUnicodeObject
      Src: /src/Python-3.8.3/Objects/longobject.c:5131,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5132,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5132,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5134,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/longobject.c:5135,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/longobject.c:5137,1
    - Dst: _PyLong_FromBytes
      Src: /src/Python-3.8.3/Objects/longobject.c:5138,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5138,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5141,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5145
      start: 5102
    functionDepth: 6
    functionLinenumber: 5102
    functionLinenumberEnd: 5145
    functionName: long_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyNumber_Long
    - long_subtype_new
    - PyByteArray_Check
    - PyBytes_Check
    - _PyLong_FromBytes
    - PyLong_FromUnicodeObject
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - Py_SIZE
    - PyNumber_AsSsize_t
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_new_impl(PyTypeObject *type, PyObject *x, PyObject *obase)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5158,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Objects/longobject.c:5158,1
    - Dst: long_new_impl
      Src: /src/Python-3.8.3/Objects/longobject.c:5159,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5162,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5162,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5163,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/longobject.c:5166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5168,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5171,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5171,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5172,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - type
    - x
    - obase
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyType_IsSubtype(type, &PyLong_Type))
      pos:
        line_end: 5157
        line_start: 5157
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyLong_Check(tmp))
      pos:
        line_end: 5161
        line_start: 5161
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyLong_Check(newobj))
      pos:
        line_end: 5170
        line_start: 5170
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5177
      start: 5152
    functionDepth: 7
    functionLinenumber: 5152
    functionLinenumberEnd: 5177
    functionName: long_subtype_new
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - PyType_IsSubtype
    - assert
    - Py_SIZE
    - long_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_subtype_new(PyTypeObject *type, PyObject *x, PyObject *obase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Objects/longobject.c:5187,1
    - Dst: _PyLong_Copy
      Src: /src/Python-3.8.3/Objects/longobject.c:5187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5188
      start: 5183
    functionDepth: 3
    functionLinenumber: 5183
    functionLinenumberEnd: 5188
    functionName: int___getnewargs___impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - _PyLong_Copy
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___getnewargs___impl(PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(context)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5194
      start: 5190
    functionDepth: 0
    functionLinenumber: 5190
    functionLinenumberEnd: 5194
    functionName: long_get0
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_get0(PyObject *Py_UNUSED(self), void *Py_UNUSED(context))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Py_UNUSED(self)
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5200
      start: 5196
    functionDepth: 0
    functionLinenumber: 5196
    functionLinenumberEnd: 5200
    functionName: long_get1
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_get1(PyObject *Py_UNUSED(self), void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/longobject.c:5216,1
    - Dst: _PyLong_FormatAdvancedWriter
      Src: /src/Python-3.8.3/Objects/longobject.c:5217,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/longobject.c:5220,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/longobject.c:5222,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/longobject.c:5225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5226
      start: 5209
    functionDepth: 4
    functionLinenumber: 5209
    functionLinenumberEnd: 5226
    functionName: int___format___impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyLong_FormatAdvancedWriter
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___format___impl(PyObject *self, PyObject *format_spec)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5255,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5256,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5262,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5262,1
    - Dst: long_divrem
      Src: /src/Python-3.8.3/Objects/longobject.c:5264,1
    - Dst: long_lshift
      Src: /src/Python-3.8.3/Objects/longobject.c:5269,1
    - Dst: long_neg
      Src: /src/Python-3.8.3/Objects/longobject.c:5273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5274,1
    - Dst: long_compare
      Src: /src/Python-3.8.3/Objects/longobject.c:5279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5280,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5282,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5283,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:5286,1
    - Dst: long_add
      Src: /src/Python-3.8.3/Objects/longobject.c:5288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5289,1
    - Dst: long_add
      Src: /src/Python-3.8.3/Objects/longobject.c:5295,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:5297,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5298,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/longobject.c:5304,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:5309,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:5310,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5314,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5315,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5317
      start: 5233
    functionDepth: 5
    functionLinenumber: 5233
    functionLinenumberEnd: 5317
    functionName: _PyLong_DivmodNear
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - long_sub
    - long_add
    - Py_DECREF
    - long_compare
    - long_divrem
    - Py_XDECREF
    - long_neg
    - PyErr_SetString
    - long_lshift
    - Py_SIZE
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_DivmodNear(PyObject *a, PyObject *b)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/longobject.c:5338,1
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:5341,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/longobject.c:5343,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5349,1
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:5350,1
    - Dst: long_neg
      Src: /src/Python-3.8.3/Objects/longobject.c:5354,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5355,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5360,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5362,1
    - Dst: long_pow
      Src: /src/Python-3.8.3/Objects/longobject.c:5366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5367,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5368,1
    - Dst: _PyLong_DivmodNear
      Src: /src/Python-3.8.3/Objects/longobject.c:5373,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5374,1
    - Dst: long_sub
      Src: /src/Python-3.8.3/Objects/longobject.c:5379,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:5380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5319
    functionDepth: 7
    functionLinenumber: 5319
    functionLinenumberEnd: 5385
    functionName: long_round
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - long_sub
    - Py_DECREF
    - long_neg
    - _PyLong_DivmodNear
    - long_long
    - PyNumber_Index
    - long_pow
    - Py_SIZE
    - PyArg_ParseTuple
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_round(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:5399,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5401
      start: 5393
    functionDepth: 1
    functionLinenumber: 5393
    functionLinenumberEnd: 5401
    functionName: int___sizeof___impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t int___sizeof___impl(PyObject *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5423,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5424,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Objects/longobject.c:5424,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Objects/longobject.c:5426,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5426,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5428,1
    - Dst: bits_in_digit
      Src: /src/Python-3.8.3/Objects/longobject.c:5431,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:5434,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/longobject.c:5437,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5440,1
    - Dst: long_mul
      Src: /src/Python-3.8.3/Objects/longobject.c:5443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5447,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5450,1
    - Dst: long_add
      Src: /src/Python-3.8.3/Objects/longobject.c:5453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5454,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5463,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 5422
        line_start: 5422
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (PyLong_Check(self))
      pos:
        line_end: 5423
        line_start: 5423
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5465
      start: 5414
    functionDepth: 5
    functionLinenumber: 5414
    functionLinenumberEnd: 5465
    functionName: int_bit_length_impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - long_add
    - Py_DECREF
    - bits_in_digit
    - long_mul
    - PyLong_FromSsize_t
    - Py_ABS
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_length_impl(PyObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:5489,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/longobject.c:5493,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5496
      start: 5484
    functionDepth: 4
    functionLinenumber: 5484
    functionLinenumberEnd: 5496
    functionName: int_as_integer_ratio_impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    - Py_DECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_as_integer_ratio_impl(PyObject *self)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/longobject.c:5527,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/longobject.c:5529,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5532,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5538,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Objects/longobject.c:5543,1
    - Dst: _PyLong_AsByteArray
      Src: /src/Python-3.8.3/Objects/longobject.c:5547,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/longobject.c:5548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5550,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - self
    - length
    - byteorder
    - is_signed
    argTypes:
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5555
      start: 5519
    functionDepth: 4
    functionLinenumber: 5519
    functionLinenumberEnd: 5555
    functionName: int_to_bytes_impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _PyLong_AsByteArray
    - Py_DECREF
    - _PyUnicode_EqualToASCIIId
    - PyBytes_AS_STRING
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nint_to_bytes_impl(PyObject *self, Py_ssize_t length, PyObject
      *byteorder,\n                  int is_signed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/longobject.c:5587,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Objects/longobject.c:5589,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/longobject.c:5592,1
    - Dst: PyObject_Bytes
      Src: /src/Python-3.8.3/Objects/longobject.c:5597,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Objects/longobject.c:5601,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/longobject.c:5602,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5604,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/longobject.c:5607,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Objects/longobject.c:5607,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - type
    - bytes_obj
    - byteorder
    - is_signed
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5612
      start: 5579
    functionDepth: 4
    functionLinenumber: 5579
    functionLinenumberEnd: 5612
    functionName: int_from_bytes_impl
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyLong_FromByteArray
    - PyObject_Bytes
    - PyObject_CallFunctionObjArgs
    - _PyUnicode_EqualToASCIIId
    - PyBytes_AS_STRING
    - PyErr_SetString
    - Py_SIZE
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nint_from_bytes_impl(PyTypeObject *type, PyObject *bytes_obj,\n
      \                   PyObject *byteorder, int is_signed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_long
      Src: /src/Python-3.8.3/Objects/longobject.c:5617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5618
      start: 5614
    functionDepth: 4
    functionLinenumber: 5614
    functionLinenumberEnd: 5618
    functionName: long_long_meth
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - long_long
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_long_meth(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Objects/longobject.c:5784,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:5787,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5788,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Objects/longobject.c:5789,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5790,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/longobject.c:5791,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:5792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5779
    functionDepth: 2
    functionLinenumber: 5779
    functionLinenumberEnd: 5796
    functionName: PyLong_GetInfo
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - Py_CLEAR
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyLong_GetInfo(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/longobject.c:5807,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:5814,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:5814,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Objects/longobject.c:5815,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/longobject.c:5819,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5820,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5820,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/longobject.c:5821,1
    - Dst: abs
      Src: /src/Python-3.8.3/Objects/longobject.c:5821,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Objects/longobject.c:5824,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Objects/longobject.c:5826,1
    - Dst: abs
      Src: /src/Python-3.8.3/Objects/longobject.c:5827,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5830,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Objects/longobject.c:5833,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Objects/longobject.c:5839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (Py_SIZE(op) == size)
      pos:
        line_end: 5819
        line_start: 5819
        source_file: /src/Python-3.8.3/Objects/longobject.c
    - condition: (v->ob_digit[0] == (digit)abs(ival))
      pos:
        line_end: 5820
        line_start: 5820
        source_file: /src/Python-3.8.3/Objects/longobject.c
    constantsTouched: []
    func_position:
      end: 5845
      start: 5798
    functionDepth: 3
    functionLinenumber: 5798
    functionLinenumberEnd: 5845
    functionName: _PyLong_Init
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyStructSequence_InitType2
    - _Py_NewReference
    - Py_REFCNT
    - PyObject_INIT
    - Py_TYPE
    - abs
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int _PyLong_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:5853,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/longobject.c:5854,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Objects/longobject.c:5860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5863
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5863
    functionName: PyLong_Fini
    functionSourceFile: /src/Python-3.8.3/Objects/longobject.c
    functionUses: 0
    functionsReached:
    - _Py_ForgetReference
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void PyLong_Fini(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:26,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:27,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:30,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (type != NULL && type->tp_alloc != NULL)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: namespace_new
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - assert
    - PyDict_New
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:43,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:44,1
    - Dst: PyArg_ValidateKeywordArguments
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:50,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ns
    - args
    - kwds
    argTypes:
    - _PyNamespaceObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 7
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: namespace_init
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Update
    - PyErr_Format
    - PyArg_ValidateKeywordArguments
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int namespace_init(_PyNamespaceObject *ns, PyObject *args, PyObject
      *kwds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:60,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:61,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyNamespaceObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: namespace_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void namespace_dealloc(_PyNamespaceObject *ns)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:75,1
    - Dst: Py_ReprEnter
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:78,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:80,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:83,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:88,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:89,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:91,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:94,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:97,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:101,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:102,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:102,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:105,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:107,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:112,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:113,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:116,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:121,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:126,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:131,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:136,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:139,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:140,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:141,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:142,1
    - Dst: Py_ReprLeave
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:143,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 1
    argNames:
    - ns
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/Python-3.8.3/Objects/namespaceobject.c
    constantsTouched: []
    func_position:
      end: 146
      start: 66
    functionDepth: 8
    functionLinenumber: 66
    functionLinenumberEnd: 146
    functionName: namespace_repr
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyDict_Keys
    - PyUnicode_FromFormat
    - PyIter_Next
    - PyList_New
    - PyObject_GetIter
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - assert
    - Py_XDECREF
    - PyUnicode_GET_LENGTH
    - PyUnicode_FromString
    - Py_ReprLeave
    - Py_DECREF
    - Py_ReprEnter
    - Py_TYPE
    - PyUnicode_Join
    - PyList_Sort
    - PyList_Append
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_repr(PyObject *ns)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ns
    - visit
    - arg
    argTypes:
    - _PyNamespaceObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: namespace_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int namespace_traverse(_PyNamespaceObject *ns, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyNamespaceObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: namespace_clear
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int namespace_clear(_PyNamespaceObject *ns)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:168,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:169,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - self
    - other
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: namespace_richcompare
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyObject_RichCompare
    - PyObject_TypeCheck
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_richcompare(PyObject *self, PyObject *other, int op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:181,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:186,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ns
    - Py_UNUSED(ignored)
    argTypes:
    - _PyNamespaceObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 189
    functionName: namespace_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_New
    - Py_DECREF
    - PyTuple_Pack
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      namespace_reduce(_PyNamespaceObject *ns, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: namespace_new
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:251,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:257,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/namespaceobject.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - kwds
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 248
    functionDepth: 7
    functionLinenumber: 248
    functionLinenumberEnd: 263
    functionName: _PyNamespace_New
    functionSourceFile: /src/Python-3.8.3/Objects/namespaceobject.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - namespace_new
    - PyDict_Update
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyNamespace_New(PyObject *kwds)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Objects/funcobject.c:20,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/funcobject.c:25,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:30,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:32,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:35,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Objects/funcobject.c:42,1
    - Dst: PyTuple_GetItem
      Src: /src/Python-3.8.3/Objects/funcobject.c:43,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:44,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:49,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Objects/funcobject.c:58,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:60,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/funcobject.c:63,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:64,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:71,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Objects/funcobject.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 3
    argNames:
    - code
    - globals
    - qualname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 12
    functionDepth: 6
    functionLinenumber: 12
    functionLinenumberEnd: 75
    functionName: PyFunction_NewWithQualName
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    - PyTuple_Size
    - PyUnicode_InternFromString
    - PyUnicode_Check
    - PyTuple_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_NewWithQualName(PyObject *code, PyObject *globals, PyObject *qualname)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_NewWithQualName
      Src: /src/Python-3.8.3/Objects/funcobject.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - code
    - globals
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 7
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PyFunction_New
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyFunction_NewWithQualName
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_New(PyObject *code, PyObject *globals)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:86,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: PyFunction_GetCode
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetCode(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:96,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: PyFunction_GetGlobals
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetGlobals(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:106,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: PyFunction_GetModule
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetModule(PyObject *op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:116,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: PyFunction_GetDefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetDefaults(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:126,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:127,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:132,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:133,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:136,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:139,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: PyFunction_SetDefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:146,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: PyFunction_GetKwDefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetKwDefaults(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:156,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:157,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:162,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:166,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - defaults
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 172
    functionName: PyFunction_SetKwDefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetKwDefaults(PyObject *op, PyObject *defaults)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:177,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: PyFunction_GetClosure
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetClosure(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:187,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:188,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:193,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:194,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/funcobject.c:197,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - op
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 204
    functionName: PyFunction_SetClosure
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyTuple_Check
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetClosure(PyObject *op, PyObject *closure)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:209,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: PyFunction_GetAnnotations
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - PyFunction_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyFunction_GetAnnotations(PyObject *op)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:219,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/funcobject.c:220,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:225,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:229,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - op
    - annotations
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 235
    functionName: PyFunction_SetAnnotations
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyFunction_Check
    - Py_XSETREF
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyFunction_SetAnnotations(PyObject *op, PyObject *annotations)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 240
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:254,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 260
    functionName: func_get_code
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_code(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:269,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:270,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:275,1
    - Dst: PyCode_GetNumFree
      Src: /src/Python-3.8.3/Objects/funcobject.c:280,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/funcobject.c:282,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/funcobject.c:284,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:291,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 294
    functionName: func_set_code
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PySys_Audit
    - Py_INCREF
    - Py_XSETREF
    - PyErr_Format
    - PyCode_GetNumFree
    - PyErr_SetString
    - PyCode_Check
    linkageType: ''
    returnType: int
    signature: int func_set_code(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: func_get_name
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_name(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:308,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:309,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:313,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 316
    functionName: func_set_name
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int func_set_name(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: func_get_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_qualname(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:330,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:331,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:335,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: func_set_qualname
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_XSETREF
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int func_set_qualname(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:343,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: func_get_defaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_defaults(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:360,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:361,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:366,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:370,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:375,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:376,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 378
    functionName: func_set_defaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyTuple_Check
    - PyErr_SetString
    - PySys_Audit
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int func_set_defaults(PyFunctionObject *op, PyObject *value, void *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:383,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: func_get_kwdefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_kwdefaults(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:401,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:402,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:407,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:411,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:416,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 419
    functionName: func_set_kwdefaults
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - PyDict_Check
    - PyErr_SetString
    - PySys_Audit
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int func_set_kwdefaults(PyFunctionObject *op, PyObject *value, void
      *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/funcobject.c:425,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - op
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: func_get_annotations
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_get_annotations(PyFunctionObject *op, void *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:442,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:446,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - op
    - value
    - Py_UNUSED(ignored)
    argTypes:
    - PyFunctionObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 449
    functionName: func_set_annotations
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - Py_XINCREF
    - PyDict_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int func_set_annotations(PyFunctionObject *op, PyObject *value, void
      *Py_UNUSED(ignored))
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:507,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:508,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:512,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:513,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/funcobject.c:517,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:518,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:525,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/funcobject.c:532,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/funcobject.c:534,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/funcobject.c:540,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Objects/funcobject.c:541,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/funcobject.c:542,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Objects/funcobject.c:548,1
    - Dst: PyFunction_New
      Src: /src/Python-3.8.3/Objects/funcobject.c:552,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:558,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:559,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:562,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:566,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 6
    argNames:
    - type
    - code
    - globals
    - name
    - defaults
    - closure
    argTypes:
    - PyTypeObject*
    - PyCodeObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 499
    functionDepth: 8
    functionLinenumber: 499
    functionLinenumberEnd: 571
    functionName: func_new_impl
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PySys_Audit
    - Py_INCREF
    - PyTuple_Check
    - PyFunction_New
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyCell_Check
    - PyTuple_GET_ITEM
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nfunc_new_impl(PyTypeObject *type, PyCodeObject *code,
      PyObject *globals,\n              PyObject *name, PyObject *defaults, PyObject
      *closure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:576,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:577,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:578,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:579,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:580,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:581,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:582,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:583,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:584,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:585,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 588
    functionName: func_clear
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int func_clear(PyFunctionObject *op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/funcobject.c:593,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/funcobject.c:595,1
    - Dst: func_clear
      Src: /src/Python-3.8.3/Objects/funcobject.c:597,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Objects/funcobject.c:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 599
    functionName: func_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - func_clear
    - PyObject_GC_Del
    linkageType: ''
    returnType: void
    signature: void func_dealloc(PyFunctionObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Objects/funcobject.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyFunctionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 8
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: func_repr
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_repr(PyFunctionObject *op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:611,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:612,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:613,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:614,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:615,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:616,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:617,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:618,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:619,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:620,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - f
    - visit
    - arg
    argTypes:
    - PyFunctionObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 623
    functionName: func_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int func_traverse(PyFunctionObject *f, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Objects/funcobject.c:631,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/funcobject.c:632,1
    - Dst: _PyFunction_FastCallDict
      Src: /src/Python-3.8.3/Objects/funcobject.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - func
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: function_call
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyFunction_FastCallDict
    - _PyTuple_ITEMS
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      function_call(PyObject *func, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:641,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Objects/funcobject.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - func
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 645
    functionName: func_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_descr_get(PyObject *func, PyObject *obj, PyObject *type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/funcobject.c:720,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:721,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:722,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/funcobject.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cm
    argTypes:
    - classmethod*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: cm_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void cm_dealloc(classmethod *cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:729,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cm
    - visit
    - arg
    argTypes:
    - classmethod*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 732
    functionName: cm_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int cm_traverse(classmethod *cm, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:737,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cm
    argTypes:
    - classmethod*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 740
    functionName: cm_clear
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int cm_clear(classmethod *cm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:749,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/funcobject.c:754,1
    - Dst: PyMethod_New
      Src: /src/Python-3.8.3/Objects/funcobject.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: cm_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyMethod_New
    - Py_TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/funcobject.c:764,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/funcobject.c:766,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:768,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 771
    functionName: cm_init
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_XSETREF
    - Py_INCREF
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int cm_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Objects/funcobject.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - cm
    - closure
    argTypes:
    - classmethod*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 789
    functionName: cm_get___isabstractmethod__
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsAbstract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cm_get___isabstractmethod__(classmethod *cm, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Objects/funcobject.c:868,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 864
    functionDepth: 9
    functionLinenumber: 864
    functionLinenumberEnd: 874
    functionName: PyClassMethod_New
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 1
    functionsReached:
    - PyType_GenericAlloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyClassMethod_New(PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Objects/funcobject.c:904,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:905,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:906,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/funcobject.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sm
    argTypes:
    - staticmethod*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 908
    functionName: sm_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - Py_XDECREF
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void sm_dealloc(staticmethod *sm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:913,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/funcobject.c:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sm
    - visit
    - arg
    argTypes:
    - staticmethod*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 916
    functionName: sm_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int sm_traverse(staticmethod *sm, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:921,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/funcobject.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sm
    argTypes:
    - staticmethod*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 924
    functionName: sm_clear
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int sm_clear(staticmethod *sm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/funcobject.c:932,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - obj
    - type
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 938
    functionName: sm_descr_get
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_descr_get(PyObject *self, PyObject *obj, PyObject *type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/funcobject.c:946,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Objects/funcobject.c:948,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:950,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 953
    functionName: sm_init
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyArg_NoKeywords
    - Py_XSETREF
    - Py_INCREF
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: int
    signature: int sm_init(PyObject *self, PyObject *args, PyObject *kwds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_IsAbstract
      Src: /src/Python-3.8.3/Objects/funcobject.c:963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sm
    - closure
    argTypes:
    - staticmethod*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 971
    functionName: sm_get___isabstractmethod__
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 0
    functionsReached:
    - _PyObject_IsAbstract
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sm_get___isabstractmethod__(staticmethod *sm, void *closure)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericAlloc
      Src: /src/Python-3.8.3/Objects/funcobject.c:1048,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/funcobject.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1044
    functionDepth: 9
    functionLinenumber: 1044
    functionLinenumberEnd: 1054
    functionName: PyStaticMethod_New
    functionSourceFile: /src/Python-3.8.3/Objects/funcobject.c
    functionUses: 2
    functionsReached:
    - PyType_GenericAlloc
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyStaticMethod_New(PyObject *callable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/moduleobject.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - void*
    assertStmts:
    - condition: (self != NULL)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/Python-3.8.3/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: bad_traverse_test
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int bad_traverse_test(PyObject *self, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Objects/moduleobject.c:46,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Objects/moduleobject.c:50,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/moduleobject.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 11
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: PyModuleDef_Init
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 27
    functionsReached:
    - Py_REFCNT
    - PyType_Ready
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModuleDef_Init(struct PyModuleDef* def)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:61,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:62,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:63,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:64,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:65,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:72,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:74,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:76,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:78,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:80,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/moduleobject.c:82,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:83,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:84,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - mod
    - md_dict
    - name
    - doc
    argTypes:
    - PyModuleObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 6
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: module_init_dict
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - Py_XSETREF
    - _PyDict_SetItemId
    - _Py_IDENTIFIER
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: "int module_init_dict(PyModuleObject *mod, PyObject *md_dict,\n                 PyObject
      *name, PyObject *doc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Objects/moduleobject.c:95,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/moduleobject.c:102,1
    - Dst: module_init_dict
      Src: /src/Python-3.8.3/Objects/moduleobject.c:103,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Objects/moduleobject.c:105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 7
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: PyModule_NewObject
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - module_init_dict
    - PyDict_New
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_NewObject(PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:117,1
    - Dst: PyModule_NewObject
      Src: /src/Python-3.8.3/Objects/moduleobject.c:120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: PyModule_New
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyModule_NewObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_New(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Objects/moduleobject.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - name
    - module_api_version
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: check_api_version
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnFormat
    linkageType: ''
    returnType: int
    signature: int check_api_version(const char *name, int module_api_version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:154,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Objects/moduleobject.c:159,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:164,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - module
    - name
    - functions
    argTypes:
    - PyObject*
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 171
    functionName: _add_methods_to_object
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyCFunction_NewEx
    - Py_DECREF
    - PyErr_SetString
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int _add_methods_to_object(PyObject *module, PyObject *name, PyMethodDef
      *functions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_IsInitialized
      Src: /src/Python-3.8.3/Objects/moduleobject.c:176,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Objects/moduleobject.c:176,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Objects/moduleobject.c:177,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/Python-3.8.3/Objects/moduleobject.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - struct PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: PyModule_Create2
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyImport_IsInitialized
    - _PyInterpreterState_Get
    - Py_FatalError
    - _PyModule_CreateInitialized
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_Create2(struct PyModuleDef* module, int module_api_version)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Objects/moduleobject.c:187,1
    - Dst: check_api_version
      Src: /src/Python-3.8.3/Objects/moduleobject.c:190,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:194,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Objects/moduleobject.c:209,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Objects/moduleobject.c:210,1
    - Dst: PyModule_New
      Src: /src/Python-3.8.3/Objects/moduleobject.c:215,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/moduleobject.c:219,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/moduleobject.c:221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:222,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/moduleobject.c:225,1
    - Dst: PyModule_AddFunctions
      Src: /src/Python-3.8.3/Objects/moduleobject.c:229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:230,1
    - Dst: PyModule_SetDocString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:236,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - module
    - module_api_version
    argTypes:
    - struct PyModuleDef*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 181
    functionDepth: 12
    functionLinenumber: 181
    functionLinenumberEnd: 242
    functionName: _PyModule_CreateInitialized
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - strrchr
    - Py_DECREF
    - PyMem_MALLOC
    - PyErr_NoMemory
    - PyModule_AddFunctions
    - PyModuleDef_Init
    - PyModule_SetDocString
    - check_api_version
    - PyErr_Format
    - PyModule_New
    - strcmp
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyModule_CreateInitialized(struct PyModuleDef* module, int module_api_version)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/Objects/moduleobject.c:255,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:257,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/moduleobject.c:261,1
    - Dst: check_api_version
      Src: /src/Python-3.8.3/Objects/moduleobject.c:266,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:271,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:281,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:289,1
    - Dst: create
      Src: /src/Python-3.8.3/Objects/moduleobject.c:300,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/moduleobject.c:302,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:303,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/moduleobject.c:310,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:311,1
    - Dst: PyModule_NewObject
      Src: /src/Python-3.8.3/Objects/moduleobject.c:318,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:324,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:329,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:336,1
    - Dst: _add_methods_to_object
      Src: /src/Python-3.8.3/Objects/moduleobject.c:346,1
    - Dst: PyModule_SetDocString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:353,1
    - Dst: struct PyModuleDef*::m_traverse
      Src: /src/Python-3.8.3/Objects/moduleobject.c:366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:369,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:373,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:374,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 98
    argCount: 3
    argNames:
    - def
    - spec
    - module_api_version
    argTypes:
    - struct PyModuleDef*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 244
    functionDepth: 12
    functionLinenumber: 244
    functionLinenumberEnd: 376
    functionName: PyModule_FromDefAndSpec2
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_AsUTF8
    - struct PyModuleDef*::m_traverse
    - PyModule_NewObject
    - PyModuleDef_Init
    - PyModule_SetDocString
    - check_api_version
    - PyErr_Format
    - _add_methods_to_object
    - Py_XDECREF
    - create
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_FromDefAndSpec2(struct PyModuleDef* def, PyObject *spec, int module_api_version)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetName
      Src: /src/Python-3.8.3/Objects/moduleobject.c:385,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Objects/moduleobject.c:395,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/moduleobject.c:397,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/moduleobject.c:400,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/moduleobject.c:416,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:417,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/moduleobject.c:424,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:425,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:433,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 441
    functionName: PyModule_ExecDef
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyMem_MALLOC
    - PyModule_GetName
    - PyErr_NoMemory
    - PyErr_Format
    - memset
    linkageType: ''
    returnType: int
    signature: int PyModule_ExecDef(PyObject *module, PyModuleDef *def)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/Python-3.8.3/Objects/moduleobject.c:447,1
    - Dst: _add_methods_to_object
      Src: /src/Python-3.8.3/Objects/moduleobject.c:452,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - m
    - functions
    argTypes:
    - PyObject*
    - PyMethodDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 455
    functionName: PyModule_AddFunctions
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyModule_GetNameObject
    - _add_methods_to_object
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyModule_AddFunctions(PyObject *m, PyMethodDef *functions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:461,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:463,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:464,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - m
    - doc
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 470
    functionName: PyModule_SetDocString
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - _PyObject_SetAttrId
    - PyUnicode_FromString
    - Py_DECREF
    - _Py_IDENTIFIER
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyModule_SetDocString(PyObject *m, const char *doc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:476,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Objects/moduleobject.c:477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/moduleobject.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (d != NULL)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/Python-3.8.3/Objects/moduleobject.c
    constantsTouched: []
    func_position:
      end: 483
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 483
    functionName: PyModule_GetDict
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 25
    functionsReached:
    - PyModule_Check
    - assert
    - PyErr_BadInternalCall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetDict(PyObject *m)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:488,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:491,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/moduleobject.c:492,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:497,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:498,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:500,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:503,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 505
    functionName: PyModule_GetNameObject
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 2
    functionsReached:
    - PyModule_Check
    - Py_INCREF
    - PyErr_BadArgument
    - _Py_IDENTIFIER
    - _PyDict_GetItemId
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetNameObject(PyObject *m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetNameObject
      Src: /src/Python-3.8.3/Objects/moduleobject.c:510,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:513,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/moduleobject.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 6
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: PyModule_GetName
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyUnicode_AsUTF8
    - PyModule_GetNameObject
    - Py_DECREF
    linkageType: ''
    returnType: char
    signature: 'char *

      PyModule_GetName(PyObject *m)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:520,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:523,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/moduleobject.c:524,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:529,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:530,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:532,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 517
    functionDepth: 5
    functionLinenumber: 517
    functionLinenumberEnd: 537
    functionName: PyModule_GetFilenameObject
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - Py_INCREF
    - PyErr_BadArgument
    - _Py_IDENTIFIER
    - _PyDict_GetItemId
    - PyErr_SetString
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetFilenameObject(PyObject *m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_GetFilenameObject
      Src: /src/Python-3.8.3/Objects/moduleobject.c:544,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/moduleobject.c:547,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 539
    functionDepth: 6
    functionLinenumber: 539
    functionLinenumberEnd: 550
    functionName: PyModule_GetFilename
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsUTF8
    - PyModule_GetFilenameObject
    linkageType: ''
    returnType: char
    signature: 'char *

      PyModule_GetFilename(PyObject *m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:555,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/moduleobject.c:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 560
    functionName: PyModule_GetDef
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyModule_Check
    - PyErr_BadArgument
    linkageType: ''
    returnType: PyModuleDef
    signature: 'PyModuleDef *

      PyModule_GetDef(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:565,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Objects/moduleobject.c:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: PyModule_GetState
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 12
    functionsReached:
    - PyModule_Check
    - PyErr_BadArgument
    linkageType: ''
    returnType: void
    signature: 'void *

      PyModule_GetState(PyObject* m)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyModule_ClearDict
      Src: /src/Python-3.8.3/Objects/moduleobject.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: _PyModule_Clear
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyModule_ClearDict
    linkageType: ''
    returnType: void
    signature: void _PyModule_Clear(PyObject *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/moduleobject.c:593,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/moduleobject.c:597,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:598,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/moduleobject.c:599,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/moduleobject.c:600,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/moduleobject.c:602,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Objects/moduleobject.c:604,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/moduleobject.c:606,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/moduleobject.c:608,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/moduleobject.c:609,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Objects/moduleobject.c:617,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:618,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/moduleobject.c:619,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Objects/moduleobject.c:620,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Objects/moduleobject.c:623,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Objects/moduleobject.c:625,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/moduleobject.c:627,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Objects/moduleobject.c:629,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Objects/moduleobject.c:630,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - d
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 580
    functionDepth: 5
    functionLinenumber: 580
    functionLinenumberEnd: 640
    functionName: _PyModule_ClearDict
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyDict_Next
    - PyUnicode_AsUTF8
    - _PyInterpreterState_GET_UNSAFE
    - PySys_WriteStderr
    - PyErr_WriteUnraisable
    - PyDict_SetItem
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _PyModule_ClearDict(PyObject *d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Objects/moduleobject.c:667,1
    - Dst: module_init_dict
      Src: /src/Python-3.8.3/Objects/moduleobject.c:672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - self
    - name
    - doc
    argTypes:
    - PyModuleObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 661
    functionDepth: 7
    functionLinenumber: 661
    functionLinenumberEnd: 675
    functionName: module___init___impl
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - module_init_dict
    linkageType: ''
    returnType: int
    signature: int module___init___impl(PyModuleObject *self, PyObject *name, PyObject
      *doc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Objects/moduleobject.c:680,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Objects/moduleobject.c:682,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Objects/moduleobject.c:684,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Objects/moduleobject.c:687,1
    - Dst: PyModuleObject*::md_def::m_free
      Src: /src/Python-3.8.3/Objects/moduleobject.c:689,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:690,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:691,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/moduleobject.c:693,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/moduleobject.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: module_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - PyModuleObject*::md_def::m_free
    - _PyInterpreterState_GET_UNSAFE
    - Py_XDECREF
    - PyObject_ClearWeakRefs
    - Py_TYPE
    - PySys_FormatStderr
    - PyMem_FREE
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void module_dealloc(PyModuleObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Objects/moduleobject.c:700,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Objects/moduleobject.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 4
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: module_repr
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_repr(PyModuleObject *m)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:712,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:713,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/moduleobject.c:715,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:716,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/moduleobject.c:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 724
    functionName: _PyModuleSpec_IsInitializing
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - PyObject_IsTrue
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _PyModuleSpec_IsInitializing(PyObject *spec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GenericGetAttr
      Src: /src/Python-3.8.3/Objects/moduleobject.c:730,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Objects/moduleobject.c:731,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Objects/moduleobject.c:734,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:736,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:737,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Objects/moduleobject.c:740,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:742,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:743,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:744,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:745,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:746,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:747,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:748,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/Python-3.8.3/Objects/moduleobject.c:749,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:750,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:757,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:761,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:762,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:766,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - m
    - name
    argTypes:
    - PyModuleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 726
    functionDepth: 5
    functionLinenumber: 726
    functionLinenumberEnd: 769
    functionName: module_getattro
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XDECREF
    - _Py_IDENTIFIER
    - _PyDict_GetItemId
    - PyObject_GenericGetAttr
    - PyErr_ExceptionMatches
    - _PyObject_FastCall
    - PyErr_Format
    - PyUnicode_Check
    - PyErr_Clear
    - Py_XINCREF
    - _PyModuleSpec_IsInitializing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_getattro(PyModuleObject *m, PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleObject*::md_def::m_traverse
      Src: /src/Python-3.8.3/Objects/moduleobject.c:775,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Objects/moduleobject.c:779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - m
    - visit
    - arg
    argTypes:
    - PyModuleObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 781
    functionName: module_traverse
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - PyModuleObject*::md_def::m_traverse
    linkageType: ''
    returnType: int
    signature: int module_traverse(PyModuleObject *m, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleObject*::md_def::m_clear
      Src: /src/Python-3.8.3/Objects/moduleobject.c:787,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/moduleobject.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyModuleObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 793
    functionName: module_clear
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 1
    functionsReached:
    - PyModuleObject*::md_def::m_clear
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int module_clear(PyModuleObject *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:798,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Objects/moduleobject.c:799,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Objects/moduleobject.c:801,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/moduleobject.c:804,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Objects/moduleobject.c:805,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Objects/moduleobject.c:807,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/moduleobject.c:809,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Objects/moduleobject.c:810,1
    - Dst: PyModule_GetName
      Src: /src/Python-3.8.3/Objects/moduleobject.c:814,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/moduleobject.c:816,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/moduleobject.c:822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 795
    functionDepth: 7
    functionLinenumber: 795
    functionLinenumberEnd: 824
    functionName: module_dir
    functionSourceFile: /src/Python-3.8.3/Objects/moduleobject.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - _PyObject_GetAttrId
    - PyModule_GetName
    - PyDict_Check
    - _Py_IDENTIFIER
    - PyDict_Keys
    - PyErr_Format
    - _PyObject_CallNoArg
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_dir(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - grouping
    argTypes:
    - GroupGenerator*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 16
    functionName: GroupGenerator_init
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/localeutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GroupGenerator_init(GroupGenerator *self, const char *grouping)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - self
    argTypes:
    - GroupGenerator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    functionName: GroupGenerator_next
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/localeutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t GroupGenerator_next(GroupGenerator *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:55,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:56,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:65,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:72,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:78,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:79,1
    - Dst: unicode_fill
      Src: /src/Python-3.8.3/Objects/stringlib/localeutil.h:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 9
    argNames:
    - writer
    - buffer_pos
    - digits
    - digits_pos
    - n_chars
    - n_zeros
    - thousands_sep
    - thousands_sep_len
    - maxchar
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t*
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 82
    functionName: InsertThousandsGrouping_fill
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/localeutil.h
    functionUses: 1
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - unicode_fill
    - PyUnicode_DATA
    - PyUnicode_KIND
    linkageType: ''
    returnType: void
    signature: "void InsertThousandsGrouping_fill(_PyUnicodeWriter *writer, Py_ssize_t
      *buffer_pos,\n                             PyObject *digits, Py_ssize_t *digits_pos,\n
      \                            Py_ssize_t n_chars, Py_ssize_t n_zeros,\n                             PyObject
      *thousands_sep, Py_ssize_t thousands_sep_len,\n                             Py_UCS4
      *maxchar)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:12,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:12,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:13,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:16,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:16,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:18,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:20,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:20,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:22,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:22,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:22,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:23,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Objects/stringlib/eq.h:23,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - aa
    - bb
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 7
    functionDepth: 1
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: unicode_eq
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/eq.h
    functionUses: 4
    functionsReached:
    - PyUnicode_READY
    - Py_UNREACHABLE
    - PyUnicode_1BYTE_DATA
    - PyUnicode_KIND
    - memcmp
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: void unicode_eq(PyObject *aa, PyObject *bb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: IS_CONTINUATION_BYTE
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_CONTINUATION_BYTE(ch)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:27,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:41,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:111,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:116,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:135,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:143,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:160,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:166,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:185,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:192,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:199,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:213,1
    - Dst: IS_CONTINUATION_BYTE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:217,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:223,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 180
    argCount: 4
    argNames:
    - inptr
    - end
    - dest
    - outpos
    argTypes:
    - char**
    - char*
    - STRINGLIB_CHAR*
    - Py_ssize_t*
    assertStmts:
    - condition: ((ch > 0xFFFF) && (ch <= 0x10FFFF))
      pos:
        line_end: 222
        line_start: 222
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
    - condition: ((ch > 0x007F) && (ch <= 0x07FF))
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
    - condition: ((ch > 0x07FF) && (ch <= 0xFFFF))
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
    constantsTouched: []
    func_position:
      end: 251
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 251
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - _Py_IS_ALIGNED
    - assert
    - _Py_ALIGN_DOWN
    - IS_CONTINUATION_BYTE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf8_decode)(const char **inptr, const char *end,\n
      \                      STRINGLIB_CHAR *dest,\n                       Py_ssize_t
      *outpos)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetErrorHandler
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:316,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:322,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:331,1
    - Dst: backslashreplace
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:351,1
    - Dst: xmlcharrefreplace
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:361,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:380,1
    - Dst: unicode_encode_call_errorhandler
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:383,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:392,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:393,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:394,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:395,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:399,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:402,1
    - Dst: raise_encode_exception
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:403,1
    - Dst: _PyBytesWriter_WriteBytes
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:409,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:410,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:411,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:416,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:423,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (writer.overallocate || i == size)
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
    - condition: (startpos < endpos)
      pos:
        line_end: 379
        line_start: 379
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
    constantsTouched: []
    func_position:
      end: 424
      start: 312
    functionDepth: 6
    functionLinenumber: 312
    functionLinenumberEnd: 424
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 2
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - PyUnicode_READY
    - raise_encode_exception
    - _Py_GetErrorHandler
    - Py_CLEAR
    - PyUnicode_GET_LENGTH
    - xmlcharrefreplace
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_IS_ASCII
    - unicode_encode_call_errorhandler
    - PyBytes_AS_STRING
    - PyUnicode_DATA
    - assert
    - _PyBytesWriter_WriteBytes
    - backslashreplace
    - memset
    linkageType: ''
    returnType: else
    signature: else if (Py_UNICODE_IS_SURROGATE(ch))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 491
    functionName: SWAB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB(value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:499,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:514,1
    - Dst: SWAB
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:526,1
    - Dst: SWAB
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:531,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:565,1
    - Dst: Py_UNICODE_IS_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:576,1
    - Dst: Py_UNICODE_IS_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:582,1
    - Dst: Py_UNICODE_JOIN_SURROGATES
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:584,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 5
    argNames:
    - inptr
    - e
    - dest
    - outpos
    - native_ordering
    argTypes:
    - unsigned char**
    - unsigned char*
    - STRINGLIB_CHAR*
    - Py_ssize_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 606
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - Py_UNICODE_JOIN_SURROGATES
    - Py_UNICODE_IS_HIGH_SURROGATE
    - Py_UNICODE_IS_LOW_SURROGATE
    - SWAB
    - _Py_IS_ALIGNED
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf16_decode)(const unsigned char **inptr, const unsigned
      char *e,\n                        STRINGLIB_CHAR *dest, Py_ssize_t *outpos,\n
      \                       int native_ordering)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:624,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:637,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:639,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:640,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:641,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:642,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:647,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:656,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:681,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:682,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:692,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:700,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:701,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:702,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:703,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:710,1
    - Dst: Py_UNICODE_HIGH_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:716,1
    - Dst: Py_UNICODE_LOW_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:717,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:718,1
    - Dst: SWAB2
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:719,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 4
    argNames:
    - in
    - len
    - outptr
    - native_ordering
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - unsigned short**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 734
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - Py_UNICODE_HIGH_SURROGATE
    - SWAB2
    - _Py_SIZE_ROUND_DOWN
    - Py_UNICODE_LOW_SURROGATE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf16_encode)(const STRINGLIB_CHAR *in,\n                        Py_ssize_t
      len,\n                        unsigned short **outptr,\n                        int
      native_ordering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CH
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 637
    functionName: SWAB2
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB2(CH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CH
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 691
    functionName: SWAB2
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB2(CH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CH
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 738
    functionName: SWAB4
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB4(CH, tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CH
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 741
    functionName: SWAB4
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB4(CH, tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CH
    - ','
    - tmp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 746
    functionName: SWAB4
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAB4(CH, tmp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:756,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:776,1
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:784,1
    - Dst: SWAB4
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:795,1
    - Dst: SWAB4
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:796,1
    - Dst: SWAB4
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:797,1
    - Dst: SWAB4
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:798,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:804,1
    - Dst: SWAB4
      Src: /src/Python-3.8.3/Objects/stringlib/codecs.h:809,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - in
    - len
    - outptr
    - native_ordering
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - PY_UINT32_T**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 748
    functionDepth: 1
    functionLinenumber: 748
    functionLinenumberEnd: 819
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/codecs.h
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - SWAB4
    - _Py_SIZE_ROUND_DOWN
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(utf32_encode)(const STRINGLIB_CHAR *in,\n                        Py_ssize_t
      len,\n                        PY_UINT32_T **outptr,\n                        int
      native_ordering)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - auto_number
    argTypes:
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: AutoNumber_Init
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoNumber_Init(AutoNumber *auto_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - str
    - s
    - start
    - end
    argTypes:
    - SubString*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: SubString_init
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SubString_init(SubString *str, PyObject *s, Py_ssize_t start,
      Py_ssize_t end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 8
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: SubString_new_object
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Substring
    linkageType: ''
    returnType: void
    signature: void SubString_new_object(SubString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:73,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 9
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: SubString_new_object_or_empty
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_new_object
    - PyUnicode_New
    linkageType: ''
    returnType: void
    signature: void SubString_new_object_or_empty(SubString *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:86,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - field_name_is_empty
    argTypes:
    - AutoNumberState
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 101
    functionName: autonumber_state_error
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int autonumber_state_error(AutoNumberState state, int field_name_is_empty)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:120,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:120,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 137
    functionName: get_integer
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyErr_Format
    - Py_UNICODE_TODECIMAL
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t get_integer(const SubString *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:148,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 9
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: getattr
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 3
    functionsReached:
    - Py_DECREF
    - SubString_new_object
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getattr(PyObject *obj, SubString *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: getitem_sequence
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PySequence_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_sequence(PyObject *obj, Py_ssize_t idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:168,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - idx
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: getitem_idx
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - Py_DECREF
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_idx(PyObject *obj, Py_ssize_t idx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:181,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - PyObject*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 177
    functionDepth: 9
    functionLinenumber: 177
    functionLinenumberEnd: 187
    functionName: getitem_str
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - SubString_new_object
    - PyObject_GetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getitem_str(PyObject *obj, SubString *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - self
    - s
    - start
    - end
    argTypes:
    - FieldNameIterator*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: FieldNameIterator_init
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_init
    linkageType: ''
    returnType: int
    signature: "int FieldNameIterator_init(FieldNameIterator *self, PyObject *s,\n
      \                      Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: _FieldNameIterator_attr
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    linkageType: ''
    returnType: int
    signature: int _FieldNameIterator_attr(FieldNameIterator *self, SubString *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:247,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - name
    argTypes:
    - FieldNameIterator*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 267
    functionName: _FieldNameIterator_item
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _FieldNameIterator_item(FieldNameIterator *self, SubString *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:278,1
    - Dst: _FieldNameIterator_attr
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:281,1
    - Dst: _FieldNameIterator_item
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:287,1
    - Dst: get_integer
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:289,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:290,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:295,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - self
    - is_attribute
    - name_idx
    - name
    argTypes:
    - FieldNameIterator*
    - int*
    - Py_ssize_t*
    - SubString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 307
    functionName: FieldNameIterator_next
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - _FieldNameIterator_item
    - PyErr_Occurred
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    - _FieldNameIterator_attr
    - get_integer
    linkageType: ''
    returnType: int
    signature: "int FieldNameIterator_next(FieldNameIterator *self, int *is_attribute,\n
      \                      Py_ssize_t *name_idx, SubString *name)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:328,1
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:342,1
    - Dst: FieldNameIterator_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:343,1
    - Dst: get_integer
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:346,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:347,1
    - Dst: autonumber_state_error
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:375,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 7
    argNames:
    - str
    - start
    - end
    - first
    - first_idx
    - rest
    - auto_number
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - SubString*
    - Py_ssize_t*
    - FieldNameIterator*
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 385
    functionName: field_name_split
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - FieldNameIterator_init
    - PyErr_Occurred
    - SubString_init
    - autonumber_state_error
    - PyUnicode_READ_CHAR
    - get_integer
    linkageType: ''
    returnType: int
    signature: "int field_name_split(PyObject *str, Py_ssize_t start, Py_ssize_t end,
      SubString *first,\n                 Py_ssize_t *first_idx, FieldNameIterator
      *rest,\n                 AutoNumber *auto_number)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: field_name_split
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:405,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:412,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:417,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:418,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:424,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:425,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:436,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:442,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:444,1
    - Dst: FieldNameIterator_next
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:453,1
    - Dst: getattr
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:459,1
    - Dst: getitem_str
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:463,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:465,1
    - Dst: getitem_sequence
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:466,1
    - Dst: getitem_idx
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:469,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:474,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:481,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 4
    argNames:
    - input
    - args
    - kwargs
    - auto_number
    argTypes:
    - SubString*
    - PyObject*
    - PyObject*
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 393
    functionDepth: 10
    functionLinenumber: 393
    functionLinenumberEnd: 483
    functionName: get_field_object
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - getitem_str
    - getattr
    - PySequence_Check
    - Py_DECREF
    - SubString_new_object
    - getitem_sequence
    - PySequence_GetItem
    - PyObject_GetItem
    - field_name_split
    - PyErr_SetObject
    - getitem_idx
    - PyErr_Format
    - PyErr_SetString
    - Py_XDECREF
    - FieldNameIterator_next
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_field_object(SubString *input, PyObject *args, PyObject
      *kwargs,\n                 AutoNumber *auto_number)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:508,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:510,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:512,1
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:514,1
    - Dst: formatter
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:520,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:528,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:532,1
    - Dst: PyObject_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:536,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:541,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:546,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:547,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - fieldobj
    - format_spec
    - writer
    argTypes:
    - PyObject*
    - SubString*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 497
    functionDepth: 8
    functionLinenumber: 497
    functionLinenumberEnd: 549
    functionName: render_field
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - PyUnicode_Substring
    - PyObject_Format
    - formatter
    - PyLong_CheckExact
    - PyComplex_CheckExact
    - Py_XDECREF
    - PyFloat_CheckExact
    - PyUnicode_CheckExact
    - PyUnicode_New
    linkageType: ''
    returnType: int
    signature: int render_field(PyObject *fieldobj, SubString *format_spec, _PyUnicodeWriter
      *writer)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:563,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:570,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:572,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:576,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:599,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:604,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:607,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:611,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:621,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:638,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:642,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 5
    argNames:
    - str
    - field_name
    - format_spec
    - format_spec_needs_expanding
    - conversion
    argTypes:
    - SubString*
    - SubString*
    - SubString*
    - int*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 647
    functionName: parse_field
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READ_CHAR
    - SubString_init
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int parse_field(SubString *str, SubString *field_name, SubString *format_spec,\n
      \           int *format_spec_needs_expanding, Py_UCS4 *conversion)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - self
    - str
    - start
    - end
    argTypes:
    - MarkupIterator*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 668
    functionName: MarkupIterator_init
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_init
    linkageType: ''
    returnType: int
    signature: "int MarkupIterator_init(MarkupIterator *self, PyObject *str,\n                    Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:685,1
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:686,1
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:687,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:707,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:722,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:724,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:729,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:734,1
    - Dst: parse_field
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:754,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 7
    argNames:
    - self
    - literal
    - field_present
    - field_name
    - format_spec
    - conversion
    - format_spec_needs_expanding
    argTypes:
    - MarkupIterator*
    - SubString*
    - int*
    - SubString*
    - SubString*
    - Py_UCS4*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 758
    functionName: MarkupIterator_next
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - parse_field
    - PyUnicode_READ_CHAR
    - SubString_init
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int MarkupIterator_next(MarkupIterator *self, SubString *literal,\n
      \                   int *field_present, SubString *field_name,\n                    SubString
      *format_spec, Py_UCS4 *conversion,\n                    int *format_spec_needs_expanding)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:769,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:771,1
    - Dst: PyObject_ASCII
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:773,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:779,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - conversion
    argTypes:
    - PyObject*
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 762
    functionDepth: 5
    functionLinenumber: 762
    functionLinenumberEnd: 788
    functionName: do_conversion
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - PyErr_Format
    - PyObject_ASCII
    - PyObject_Str
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_conversion(PyObject *obj, Py_UCS4 conversion)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_field_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:816,1
    - Dst: do_conversion
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:821,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:826,1
    - Dst: build_string
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:833,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:835,1
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:841,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:841,1
    - Dst: render_field
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:847,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:853,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:854,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 9
    argNames:
    - field_name
    - format_spec
    - format_spec_needs_expanding
    - conversion
    - writer
    - args
    - kwargs
    - recursion_depth
    - auto_number
    argTypes:
    - SubString*
    - SubString*
    - int
    - Py_UCS4
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - int
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 803
    functionDepth: 11
    functionLinenumber: 803
    functionLinenumberEnd: 857
    functionName: output_markup
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - Py_XDECREF
    - SubString_init
    - render_field
    - do_conversion
    - get_field_object
    - build_string
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int output_markup(SubString *field_name, SubString *format_spec,\n
      \             int format_spec_needs_expanding, Py_UCS4 conversion,\n              _PyUnicodeWriter
      *writer, PyObject *args, PyObject *kwargs,\n              int recursion_depth,
      AutoNumber *auto_number)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MarkupIterator_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:878,1
    - Dst: MarkupIterator_next
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:879,1
    - Dst: _PyUnicodeWriter_WriteSubstring
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:886,1
    - Dst: output_markup
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:894,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - input
    - args
    - kwargs
    - writer
    - recursion_depth
    - auto_number
    argTypes:
    - SubString*
    - PyObject*
    - PyObject*
    - _PyUnicodeWriter*
    - int
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 865
    functionDepth: 12
    functionLinenumber: 865
    functionLinenumberEnd: 901
    functionName: do_markup
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteSubstring
    - output_markup
    - MarkupIterator_init
    - MarkupIterator_next
    linkageType: ''
    returnType: int
    signature: "int do_markup(SubString *input, PyObject *args, PyObject *kwargs,\n
      \         _PyUnicodeWriter *writer, int recursion_depth, AutoNumber *auto_number)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:916,1
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:921,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:923,1
    - Dst: do_markup
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:925,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:927,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - input
    - args
    - kwargs
    - recursion_depth
    - auto_number
    argTypes:
    - SubString*
    - PyObject*
    - PyObject*
    - int
    - AutoNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 908
    functionDepth: 13
    functionLinenumber: 908
    functionLinenumberEnd: 932
    functionName: build_string
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 1
    functionsReached:
    - do_markup
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyErr_SetString
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuild_string(SubString *input, PyObject *args, PyObject
      *kwargs,\n             int recursion_depth, AutoNumber *auto_number)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:952,1
    - Dst: AutoNumber_Init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:955,1
    - Dst: SubString_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:956,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:956,1
    - Dst: build_string
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 939
    functionDepth: 14
    functionLinenumber: 939
    functionLinenumberEnd: 958
    functionName: do_string_format
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - SubString_init
    - AutoNumber_Init
    - build_string
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_string_format(PyObject *self, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_string_format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 960
    functionDepth: 15
    functionLinenumber: 960
    functionLinenumberEnd: 964
    functionName: do_string_format_map
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - do_string_format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_string_format_map(PyObject *self, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:985,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - formatteriterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 987
    functionName: formatteriter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void formatteriter_dealloc(formatteriterobject *it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MarkupIterator_next
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1006,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1012,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1023,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1027,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1044,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1047,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1052,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1055,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1056,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1057,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1058,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - it
    argTypes:
    - formatteriterobject*
    assertStmts:
    - condition: (0 <= result && result <= 2)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    constantsTouched: []
    func_position:
      end: 1061
      start: 997
    functionDepth: 9
    functionLinenumber: 997
    functionLinenumberEnd: 1061
    functionName: formatteriter_next
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    - MarkupIterator_next
    - SubString_new_object
    - Py_INCREF
    - PyTuple_Pack
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatteriter_next(formatteriterobject *it)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1109,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1110,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1110,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1114,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1117,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1122,1
    - Dst: MarkupIterator_init
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1126,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ignored
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1128
    functionName: formatter_parser
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - MarkupIterator_init
    - Py_INCREF
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatter_parser(PyObject *ignored, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1149,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - fieldnameiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1151
    functionName: fieldnameiter_dealloc
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void fieldnameiter_dealloc(fieldnameiterobject *it)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FieldNameIterator_next
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1167,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1177,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1183,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1185,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1190,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1193,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - it
    argTypes:
    - fieldnameiterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1159
    functionDepth: 9
    functionLinenumber: 1159
    functionLinenumberEnd: 1197
    functionName: fieldnameiter_next
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - SubString_new_object
    - PyTuple_Pack
    - PyBool_FromLong
    - PyLong_FromSsize_t
    - Py_XDECREF
    - FieldNameIterator_next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      fieldnameiter_next(fieldnameiterobject *it)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1252,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1253,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1253,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1257,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1260,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1266,1
    - Dst: field_name_split
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1271,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1271,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1277,1
    - Dst: SubString_new_object
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1280,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1285,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1288,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Objects/stringlib/unicode_format.h:1289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ignored
    - self
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1242
    functionDepth: 9
    functionLinenumber: 1242
    functionLinenumberEnd: 1291
    functionName: formatter_field_name_split
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - SubString_new_object
    - Py_INCREF
    - Py_XDECREF
    - PyTuple_Pack
    - field_name_split
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - PyLong_FromSsize_t
    - PyUnicode_GET_LENGTH
    - PyObject_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      formatter_field_name_split(PyObject *ignored, PyObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/asciilib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STR
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: STRINGLIB_NEW
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/asciilib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_NEW(STR,LEN)
  - 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: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: STRINGLIB_ISLINEBREAK
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_ISLINEBREAK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: STRINGLIB_ISDECIMAL
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_ISDECIMAL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: STRINGLIB_TODECIMAL
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_TODECIMAL(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:19,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:20,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:24,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:24,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: return_self
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - STRINGLIB_STR
    - STRINGLIB_CHECK_EXACT
    - STRINGLIB_NEW
    - STRINGLIB_LEN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      return_self(PyObject *self)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:48,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:48,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:49,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:75,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:80,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:82,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:101,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 2
    argNames:
    - self
    - tabsize
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 103
    functionName: stringlib_expandtabs_impl
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_expandtabs_impl(PyObject *self, int tabsize)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:116,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:119,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:119,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:122,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:122,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:123,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:123,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:124,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:125,1
    - Dst: memset
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:127,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:127,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:127,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - self
    - left
    - right
    - fill
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: pad
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 12
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - return_self
    - STRINGLIB_LEN
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      pad(PyObject *self, Py_ssize_t left, Py_ssize_t right, char fill)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:150,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:151,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:154,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: stringlib_ljust_impl
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - return_self
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_ljust_impl(PyObject *self, Py_ssize_t width, char fillchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:174,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:175,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:178,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: stringlib_rjust_impl
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - return_self
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_rjust_impl(PyObject *self, Py_ssize_t width, char fillchar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:200,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:201,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:204,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - self
    - width
    - fillchar
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: stringlib_center_impl
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - return_self
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_center_impl(PyObject *self, Py_ssize_t width, char fillchar)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:229,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:230,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:233,1
    - Dst: pad
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:235,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - self
    - width
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 248
    functionName: stringlib_zfill_impl
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - return_self
    - pad
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_zfill_impl(PyObject *self, Py_ssize_t width)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - target
    - ','
    - target_len
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: findchar
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findchar(target, target_len, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - target
    - target_len
    - c
    - maxcount
    argTypes:
    - char*
    - Py_ssize_t
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 272
    functionName: countchar
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - findchar
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t countchar(const char *target, Py_ssize_t target_len, char
      c,\n          Py_ssize_t maxcount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:289,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:303,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:305,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:310,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:315,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:316,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:320,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:326,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - self
    - to_s
    - to_len
    - maxcount
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (count > 0)
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 345
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 345
    functionName: stringlib_replace_interleave
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - PyErr_SetString
    - STRINGLIB_LEN
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_interleave(PyObject *self,\n                             const
      char *to_s, Py_ssize_t to_len,\n                             Py_ssize_t maxcount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:359,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:360,1
    - Dst: countchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:362,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:364,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:368,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:370,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:374,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:379,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:382,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - self
    - from_c
    - maxcount
    argTypes:
    - PyObject*
    - char
    - Py_ssize_t
    assertStmts:
    - condition: (result_len>=0)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 389
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 389
    functionName: stringlib_replace_delete_single_character
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - return_self
    - STRINGLIB_NEW
    - findchar
    - STRINGLIB_LEN
    - assert
    - countchar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_delete_single_character(PyObject *self,\n
      \                                         char from_c, Py_ssize_t maxcount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:404,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:405,1
    - Dst: stringlib_count
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:407,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:413,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:417,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:419,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:423,1
    - Dst: stringlib_find
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:428,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:435,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - self
    - from_s
    - from_len
    - maxcount
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (result_len>=0)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 442
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 442
    functionName: stringlib_replace_delete_substring
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - return_self
    - STRINGLIB_NEW
    - stringlib_count
    - stringlib_find
    - STRINGLIB_LEN
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_delete_substring(PyObject *self,\n                                   const
      char *from_s, Py_ssize_t from_len,\n                                   Py_ssize_t
      maxcount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:456,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:457,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:459,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:463,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:467,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:471,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:472,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - self
    - from_c
    - to_c
    - maxcount
    argTypes:
    - PyObject*
    - char
    - char
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 489
    functionName: stringlib_replace_single_character_in_place
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - return_self
    - findchar
    - STRINGLIB_LEN
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_single_character_in_place(PyObject *self,\n
      \                                           char from_c, char to_c,\n                                            Py_ssize_t
      maxcount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:505,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:506,1
    - Dst: stringlib_find
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:508,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:513,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:517,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:521,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:522,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:526,1
    - Dst: stringlib_find
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:531,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:536,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - self
    - from_s
    - from_len
    - to_s
    - to_len
    - maxcount
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 541
    functionName: stringlib_replace_substring_in_place
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - return_self
    - stringlib_find
    - STRINGLIB_LEN
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_substring_in_place(PyObject *self,\n
      \                                    const char *from_s, Py_ssize_t from_len,\n
      \                                    const char *to_s, Py_ssize_t to_len,\n
      \                                    Py_ssize_t maxcount)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:556,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:557,1
    - Dst: countchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:559,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:562,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:567,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:569,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:574,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:578,1
    - Dst: findchar
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:583,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:589,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:594,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:596,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:602,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - self
    - from_c
    - to_s
    - to_len
    - maxcount
    argTypes:
    - PyObject*
    - char
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (count > 0)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 605
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 605
    functionName: stringlib_replace_single_character
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - return_self
    - STRINGLIB_NEW
    - findchar
    - PyErr_SetString
    - STRINGLIB_LEN
    - assert
    - countchar
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_single_character(PyObject *self,\n                                   char
      from_c,\n                                   const char *to_s, Py_ssize_t to_len,\n
      \                                  Py_ssize_t maxcount)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:620,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:621,1
    - Dst: stringlib_count
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:623,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:629,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:634,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:636,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:641,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:645,1
    - Dst: stringlib_find
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:650,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:658,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:663,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:665,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:671,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 6
    argNames:
    - self
    - from_s
    - from_len
    - to_s
    - to_len
    - maxcount
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (count > 0)
      pos:
        line_end: 633
        line_start: 633
        source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    constantsTouched: []
    func_position:
      end: 674
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 674
    functionName: stringlib_replace_substring
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 0
    functionsReached:
    - memcpy
    - STRINGLIB_STR
    - return_self
    - STRINGLIB_NEW
    - stringlib_count
    - PyErr_SetString
    - stringlib_find
    - STRINGLIB_LEN
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace_substring(PyObject *self,\n                            const
      char *from_s, Py_ssize_t from_len,\n                            const char *to_s,
      Py_ssize_t to_len,\n                            Py_ssize_t maxcount)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:685,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:687,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:694,1
    - Dst: stringlib_replace_interleave
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:699,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:705,1
    - Dst: return_self
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:706,1
    - Dst: stringlib_replace_delete_single_character
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:712,1
    - Dst: stringlib_replace_delete_substring
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:715,1
    - Dst: stringlib_replace_single_character_in_place
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:724,1
    - Dst: stringlib_replace_substring_in_place
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:727,1
    - Dst: stringlib_replace_single_character
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:734,1
    - Dst: stringlib_replace_substring
      Src: /src/Python-3.8.3/Objects/stringlib/transmogrify.h:738,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - self
    - from_s
    - from_len
    - to_s
    - to_len
    - maxcount
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 741
    functionName: stringlib_replace
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
    functionUses: 2
    functionsReached:
    - stringlib_replace_single_character_in_place
    - stringlib_replace_delete_substring
    - stringlib_replace_single_character
    - return_self
    - stringlib_replace_delete_single_character
    - stringlib_replace_substring
    - stringlib_replace_interleave
    - STRINGLIB_LEN
    - stringlib_replace_substring_in_place
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nstringlib_replace(PyObject *self,\n                  const
      char *from_s, Py_ssize_t from_len,\n                  const char *to_s, Py_ssize_t
      to_len,\n                  Py_ssize_t maxcount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - maxsplit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: PREALLOC_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREALLOC_SIZE(maxsplit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - left
    - ','
    - right
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: SPLIT_APPEND
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLIT_APPEND(data, left, right)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - data
    - ','
    - left
    - ','
    - right
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 48
    functionName: SPLIT_ADD
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLIT_ADD(data, left, right)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FIX_PREALLOC_SIZE
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIX_PREALLOC_SIZE(list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:59,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:59,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:67,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:71,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:74,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:76,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:77,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:82,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:88,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:91,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:93,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:97,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - str_obj
    - str
    - str_len
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 99
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_ISSPACE
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - SPLIT_ADD
    - PREALLOC_SIZE
    - PyList_New
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(split_whitespace)(PyObject* str_obj,\n                           const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                           Py_ssize_t
      maxcount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:108,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:108,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:119,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:126,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:128,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:129,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:134,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:136,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:140,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - str_obj
    - str
    - str_len
    - ch
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 142
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - SPLIT_ADD
    - PREALLOC_SIZE
    - PyList_New
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(split_char)(PyObject* str_obj,\n                     const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                     const STRINGLIB_CHAR
      ch,\n                     Py_ssize_t maxcount)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:154,1
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:158,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:160,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:160,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:166,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:170,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:174,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:176,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:177,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:182,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - str_obj
    - str
    - str_len
    - sep
    - sep_len
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - PyErr_SetString
    - PREALLOC_SIZE
    - PyList_New
    - FASTSEARCH
    - SPLIT_ADD
    - STRINGLIB
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(split)(PyObject* str_obj,\n                const STRINGLIB_CHAR*
      str, Py_ssize_t str_len,\n                const STRINGLIB_CHAR* sep, Py_ssize_t
      sep_len,\n                Py_ssize_t maxcount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:198,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:198,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:206,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:210,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:213,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:215,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:216,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:221,1
    - Dst: STRINGLIB_ISSPACE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:227,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:230,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:232,1
    - Dst: PyList_Reverse
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:238,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 4
    argNames:
    - str_obj
    - str
    - str_len
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 240
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 1
    functionsReached:
    - STRINGLIB_ISSPACE
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - SPLIT_ADD
    - PREALLOC_SIZE
    - PyList_New
    - PyList_Reverse
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rsplit_whitespace)(PyObject* str_obj,\n                            const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                            Py_ssize_t
      maxcount)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:249,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:249,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:259,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:266,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:268,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:269,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:274,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:276,1
    - Dst: PyList_Reverse
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:282,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - str_obj
    - str
    - str_len
    - ch
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 284
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - SPLIT_ADD
    - PREALLOC_SIZE
    - PyList_New
    - PyList_Reverse
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rsplit_char)(PyObject* str_obj,\n                      const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                      const STRINGLIB_CHAR
      ch,\n                      Py_ssize_t maxcount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:296,1
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:300,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:302,1
    - Dst: PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:302,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:308,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:311,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:315,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:317,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:318,1
    - Dst: SPLIT_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:323,1
    - Dst: FIX_PREALLOC_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:325,1
    - Dst: PyList_Reverse
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:331,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 6
    argNames:
    - str_obj
    - str
    - str_len
    - sep
    - sep_len
    - maxcount
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 333
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_CHECK_EXACT
    - PyList_SET_ITEM
    - PyErr_SetString
    - PREALLOC_SIZE
    - PyList_New
    - FASTSEARCH
    - SPLIT_ADD
    - PyList_Reverse
    - STRINGLIB
    - FIX_PREALLOC_SIZE
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rsplit)(PyObject* str_obj,\n                 const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                 const STRINGLIB_CHAR*
      sep, Py_ssize_t sep_len,\n                 Py_ssize_t maxcount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:350,1
    - Dst: STRINGLIB_ISLINEBREAK
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:360,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:374,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:376,1
    - Dst: SPLIT_APPEND
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/split.h:387,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 4
    argNames:
    - str_obj
    - str
    - str_len
    - keepends
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 389
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/split.h
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - STRINGLIB_ISLINEBREAK
    - STRINGLIB_CHECK_EXACT
    - PyList_Append
    - PyList_New
    - SPLIT_APPEND
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(splitlines)(PyObject* str_obj,\n                     const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                     int keepends)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:17,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:21,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:25,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:29,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:29,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:30,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:30,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:31,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:31,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:33,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:34,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:38,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:39,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:40,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:41,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:42,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:43,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:48,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:48,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:49,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:50,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:52,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:52,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:54,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 6
    argNames:
    - str_obj
    - str
    - str_len
    - sep_obj
    - sep
    - sep_len
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 60
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/partition.h
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_NEW
    - PyErr_SetString
    - FASTSEARCH
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(partition)(PyObject* str_obj,\n                    const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                    PyObject* sep_obj,\n
      \                   const STRINGLIB_CHAR* sep, Py_ssize_t sep_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:72,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:76,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:80,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:84,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:84,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:85,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:85,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:86,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:86,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:88,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:89,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:93,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:94,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:95,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:96,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:97,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:98,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:103,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:103,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:104,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:105,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:107,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:107,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:109,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/partition.h:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 6
    argNames:
    - str_obj
    - str
    - str_len
    - sep_obj
    - sep
    - sep_len
    argTypes:
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - PyObject*
    - STRINGLIB_CHAR*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 115
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/partition.h
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - STRINGLIB_NEW
    - PyErr_SetString
    - FASTSEARCH
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rpartition)(PyObject* str_obj,\n                     const
      STRINGLIB_CHAR* str, Py_ssize_t str_len,\n                     PyObject* sep_obj,\n
      \                    const STRINGLIB_CHAR* sep, Py_ssize_t sep_len)"
  - 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: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: STRINGLIB_BLOOM_ADD
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_BLOOM_ADD(mask, ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mask
    - ','
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: STRINGLIB_BLOOM
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB_BLOOM(mask, ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:50,1
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:64,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - s
    - n
    - ch
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 96
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
    functionUses: 2
    functionsReached:
    - memchr
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(find_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR
      ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memrchr
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:109,1
    - Dst: memrchr
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:124,1
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:130,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 3
    argNames:
    - s
    - n
    - ch
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 159
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
    functionUses: 2
    functionsReached:
    - memrchr
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(rfind_char)(const STRINGLIB_CHAR* s, Py_ssize_t n, STRINGLIB_CHAR
      ch)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:183,1
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:185,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:209,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:214,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:234,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:240,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:249,1
    - Dst: STRINGLIB_BLOOM_ADD
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:252,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:267,1
    - Dst: STRINGLIB_BLOOM
      Src: /src/Python-3.8.3/Objects/stringlib/fastsearch.h:273,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 78
    argCount: 6
    argNames:
    - s
    - n
    - p
    - m
    - maxcount
    - mode
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 282
    functionName: FASTSEARCH
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
    functionUses: 4
    functionsReached:
    - STRINGLIB_BLOOM_ADD
    - STRINGLIB_BLOOM
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: "void FASTSEARCH(const STRINGLIB_CHAR* s, Py_ssize_t n,\n           const
      STRINGLIB_CHAR* p, Py_ssize_t m,\n           Py_ssize_t maxcount, int mode)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:10,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:11,1
    - Dst: PySequence_Fast
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:22,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:27,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:29,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:30,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:34,1
    - Dst: STRINGLIB_CHECK_EXACT
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:35,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:36,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:37,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:43,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:45,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:46,1
    - Dst: PySequence_Fast_GET_ITEM
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:60,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:61,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:63,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:65,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:66,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:68,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:69,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:72,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:78,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:85,1
    - Dst: PySequence_Fast_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:91,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:92,1
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:99,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:104,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:110,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:119,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:132,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:134,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Objects/stringlib/join.h:136,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 99
    argCount: 2
    argNames:
    - sep
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 138
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/join.h
    functionUses: 3
    functionsReached:
    - STRINGLIB_STR
    - PyMem_NEW
    - STRINGLIB_CHECK_EXACT
    - PySequence_Fast
    - Py_INCREF
    - PySequence_Fast_GET_ITEM
    - PyErr_Format
    - STRINGLIB_LEN
    - PyMem_FREE
    - PySequence_Fast_GET_SIZE
    - Py_DECREF
    - PyBytes_GET_SIZE
    - Py_TYPE
    - PyBytes_AS_STRING
    - memcpy
    - PyErr_NoMemory
    - PyBytes_CheckExact
    - STRINGLIB_NEW
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(bytes_join)(PyObject *sep, PyObject *iterable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isspace
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:10,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:10,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 2
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: stringlib_isspace
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_isspace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isspace(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isalpha
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:16,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:16,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: stringlib_isalpha
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_isalpha
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isalpha(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isalnum
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:22,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:22,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: stringlib_isalnum
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_isalnum
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isascii
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:28,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:28,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: stringlib_isascii
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - _Py_bytes_isascii
    - STRINGLIB_STR
    - STRINGLIB_LEN
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isdigit
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:34,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:34,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: stringlib_isdigit
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_isdigit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_islower
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:40,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:40,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: stringlib_islower
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - _Py_bytes_islower
    - STRINGLIB_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_islower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_isupper
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:46,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:46,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: stringlib_isupper
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_isupper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_bytes_istitle
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:52,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:52,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: stringlib_istitle
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_istitle
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:62,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:62,1
    - Dst: _Py_bytes_lower
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:65,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: stringlib_lower
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - _Py_bytes_lower
    - STRINGLIB_STR
    - STRINGLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_lower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:74,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:74,1
    - Dst: _Py_bytes_upper
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:77,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: stringlib_upper
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - _Py_bytes_upper
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_upper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:86,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:86,1
    - Dst: _Py_bytes_title
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:89,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 92
    functionName: stringlib_title
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - _Py_bytes_title
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_title(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:98,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:98,1
    - Dst: _Py_bytes_capitalize
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:101,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: stringlib_capitalize
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - _Py_bytes_capitalize
    - STRINGLIB_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB_NEW
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:110,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:110,1
    - Dst: _Py_bytes_swapcase
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:113,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/ctype.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: stringlib_swapcase
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ctype.h
    functionUses: 0
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - STRINGLIB_NEW
    - _Py_bytes_swapcase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ALIGN_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/find_max_char.h:24,1
    - Dst: _Py_IS_ALIGNED
      Src: /src/Python-3.8.3/Objects/stringlib/find_max_char.h:27,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - STRINGLIB_CHAR*
    - STRINGLIB_CHAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 44
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
    functionUses: 3
    functionsReached:
    - _Py_IS_ALIGNED
    - _Py_ALIGN_DOWN
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(find_max_char)(const STRINGLIB_CHAR *begin, const STRINGLIB_CHAR
      *end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SIZE_ROUND_DOWN
      Src: /src/Python-3.8.3/Objects/stringlib/find_max_char.h:74,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/find_max_char.h:92,1
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/find_max_char.h:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - STRINGLIB_CHAR*
    - STRINGLIB_CHAR*
    assertStmts:
    - condition: (mask == MASK_UCS1)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
    - condition: (mask == MASK_UCS1)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
    constantsTouched: []
    func_position:
      end: 123
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 123
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
    functionUses: 3
    functionsReached:
    - assert
    - _Py_SIZE_ROUND_DOWN
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(find_max_char)(const STRINGLIB_CHAR *begin, const STRINGLIB_CHAR
      *end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:14,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - str
    - str_len
    - sub
    - sub_len
    - offset
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (str_len >= 0)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/find.h
    constantsTouched: []
    func_position:
      end: 24
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 24
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 3
    functionsReached:
    - assert
    - FASTSEARCH
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(find)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,\n
      \              const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,\n               Py_ssize_t
      offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:33,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - str
    - str_len
    - sub
    - sub_len
    - offset
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (str_len >= 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Objects/stringlib/find.h
    constantsTouched: []
    func_position:
      end: 43
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 43
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 3
    functionsReached:
    - assert
    - FASTSEARCH
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rfind)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,\n
      \               const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,\n                Py_ssize_t
      offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - str
    - str_len
    - sub
    - sub_len
    - start
    - end
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 4
    functionsReached:
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(find_slice)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,\n
      \                    const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,\n                     Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - str
    - str_len
    - sub
    - sub_len
    - start
    - end
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 5
    functionsReached:
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(rfind_slice)(const STRINGLIB_CHAR* str, Py_ssize_t
      str_len,\n                      const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,\n
      \                     Py_ssize_t start, Py_ssize_t end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRINGLIB
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:66,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:67,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:67,1
    - Dst: STRINGLIB_STR
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:68,1
    - Dst: STRINGLIB_LEN
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - sub
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 6
    functionsReached:
    - STRINGLIB_LEN
    - STRINGLIB_STR
    - STRINGLIB
    linkageType: ''
    returnType: void
    signature: void STRINGLIB(contains_obj)(PyObject* str, PyObject* sub)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:95,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:97,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:100,1
    - Dst: _PyEval_SliceIndex
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:107,1
    - Dst: _PyEval_SliceIndex
      Src: /src/Python-3.8.3/Objects/stringlib/find.h:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - function_name
    - args
    - subobj
    - start
    - end
    argTypes:
    - char*
    - PyObject*
    - PyObject**
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/find.h
    functionUses: 6
    functionsReached:
    - _PyEval_SliceIndex
    - strlen
    - PyArg_ParseTuple
    - strncpy
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(parse_args_finds)(const char * function_name, PyObject
      *args,\n                           PyObject **subobj,\n                           Py_ssize_t
      *start, Py_ssize_t *end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/count.h:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - str
    - str_len
    - sub
    - sub_len
    - maxcount
    argTypes:
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - STRINGLIB_CHAR*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 25
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/count.h
    functionUses: 6
    functionsReached:
    - FASTSEARCH
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(count)(const STRINGLIB_CHAR* str, Py_ssize_t str_len,\n
      \               const STRINGLIB_CHAR* sub, Py_ssize_t sub_len,\n                Py_ssize_t
      maxcount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/Python-3.8.3/Objects/stringlib/replace.h:34,1
    - Dst: FASTSEARCH
      Src: /src/Python-3.8.3/Objects/stringlib/replace.h:41,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 5
    argNames:
    - s
    - end
    - u1
    - u2
    - maxcount
    argTypes:
    - STRINGLIB_CHAR*
    - STRINGLIB_CHAR*
    - Py_UCS4
    - Py_UCS4
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 53
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/replace.h
    functionUses: 6
    functionsReached:
    - FASTSEARCH
    - memchr
    linkageType: ''
    returnType: void
    signature: "void STRINGLIB(replace_1char_inplace)(STRINGLIB_CHAR* s, STRINGLIB_CHAR*
      end,\n                                 Py_UCS4 u1, Py_UCS4 u2, Py_ssize_t maxcount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 8
    functionName: STRINGLIB
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGLIB(F)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:26,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:29,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:36,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:37,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:41,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:42,1
    - Dst: stringlib_expandtabs_impl
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:46,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: stringlib_expandtabs
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - stringlib_expandtabs_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:73,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:76,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:77,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:83,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:85,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:86,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:88,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:96,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:96,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:97,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:99,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:99,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:100,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:103,1
    - Dst: stringlib_ljust_impl
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:107,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 111
    functionName: stringlib_ljust
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - stringlib_ljust_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    - PyByteArray_Check
    - PyBytes_Check
    - PyNumber_Index
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:134,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:137,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:138,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:144,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:146,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:147,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:149,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:157,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:157,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:158,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:160,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:160,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:161,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:164,1
    - Dst: stringlib_rjust_impl
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:168,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 172
    functionName: stringlib_rjust
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - stringlib_rjust_impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    - PyByteArray_Check
    - PyBytes_Check
    - PyNumber_Index
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:195,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:199,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:205,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:208,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:210,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:218,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:218,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:219,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:221,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:221,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:222,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:225,1
    - Dst: stringlib_center_impl
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:229,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 233
    functionName: stringlib_center
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    - PyByteArray_Check
    - PyBytes_Check
    - PyNumber_Index
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - stringlib_center_impl
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:255,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:256,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:262,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:264,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:265,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:267,1
    - Dst: stringlib_zfill_impl
      Src: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: stringlib_zfill
    functionSourceFile: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsSsize_t
    - PyNumber_Index
    - stringlib_zfill_impl
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      stringlib_zfill(PyObject *self, PyObject *arg)'
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:36,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:54,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:62,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:63,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:67,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:68,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:76,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:77,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:81,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:82,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:90,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:91,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:95,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:96,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:104,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:105,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:109,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:110,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:118,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:119,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:123,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:124,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:132,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:133,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:137,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:138,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:146,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:147,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:151,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:152,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:160,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:161,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:170,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:171,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:180,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:181,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:190,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:191,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:200,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:201,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:210,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:211,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:220,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:221,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:224,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:233,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:234,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:237,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:245,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:246,1
    - Dst: code_replace_impl
      Src: /src/Python-3.8.3/Objects/clinic/codeobject.c.h:251,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 238
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyCodeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 255
    functionName: code_replace
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/codeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_READY
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - code_replace_impl
    - PyBytes_Check
    - PyTuple_Check
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      code_replace(PyCodeObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/structseq.c.h:16,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/structseq.c.h:17,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/structseq.c.h:21,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/structseq.c.h:21,1
    - Dst: structseq_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/structseq.c.h:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 8
    functionDepth: 6
    functionLinenumber: 8
    functionLinenumberEnd: 35
    functionName: structseq_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/structseq.c.h
    functionUses: 1
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - structseq_new_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type___instancecheck___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:23,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:24,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - instance
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: type___instancecheck__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - type___instancecheck___impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___instancecheck__(PyTypeObject *self, PyObject *instance)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type___subclasscheck___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:51,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:52,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - subclass
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: type___subclasscheck__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - type___subclasscheck___impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasscheck__(PyTypeObject *self, PyObject *subclass)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_mro_impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 9
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: type_mro
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type_mro_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type_mro(PyTypeObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___subclasses___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: type___subclasses__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___subclasses___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___subclasses__(PyTypeObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___dir___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 9
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: type___dir__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___dir___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___dir__(PyTypeObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type___sizeof___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: type___sizeof__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - type___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      type___sizeof__(PyTypeObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___reduce___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: object___reduce__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - object___reduce___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:169,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:170,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:174,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:175,1
    - Dst: object___reduce_ex___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 182
    functionName: object___reduce_ex__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - object___reduce_ex___impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___reduce_ex__(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:202,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:203,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:206,1
    - Dst: object___format___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 196
    functionDepth: 6
    functionLinenumber: 196
    functionLinenumberEnd: 214
    functionName: object___format__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - object___format___impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___sizeof___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: object___sizeof__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - object___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: object___dir___impl
      Src: /src/Python-3.8.3/Objects/clinic/typeobject.c.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: object___dir__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
    functionUses: 0
    functionsReached:
    - object___dir___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      object___dir__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:16,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:19,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:19,1
    - Dst: mappingproxy_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 28
    functionName: mappingproxy_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/descrobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - mappingproxy_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:79,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:80,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:86,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:86,1
    - Dst: property_init_impl
      Src: /src/Python-3.8.3/Objects/clinic/descrobject.c.h:113,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 117
    functionName: property_init
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/descrobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - property_init_impl
    linkageType: ''
    returnType: int
    signature: int property_init(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:32,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:36,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:49,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:50,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:56,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:58,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:59,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:61,1
    - Dst: bytes_split_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:67,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: bytes_split
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - bytes_split_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_split(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:98,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:101,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:102,1
    - Dst: bytes_partition_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:105,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: bytes_partition
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_partition_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_partition(PyBytesObject *self, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:141,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:144,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:145,1
    - Dst: bytes_rpartition_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:148,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyBytesObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 135
    functionDepth: 3
    functionLinenumber: 135
    functionLinenumberEnd: 157
    functionName: bytes_rpartition
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_rpartition_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rpartition(PyBytesObject *self, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:188,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:192,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:205,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:206,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:212,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:215,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:217,1
    - Dst: bytes_rsplit_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:223,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 227
    functionName: bytes_rsplit
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - bytes_rsplit_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rsplit(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:264,1
    - Dst: bytes_strip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: bytes_strip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_strip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_strip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:298,1
    - Dst: bytes_lstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: bytes_lstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_lstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_lstrip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:332,1
    - Dst: bytes_rstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 344
    functionName: bytes_rstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytes_rstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_rstrip(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:372,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:376,1
    - Dst: bytes_translate_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: bytes_translate
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_translate_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_translate(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:416,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:419,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:422,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:423,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:426,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:429,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:430,1
    - Dst: bytes_maketrans_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:433,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:438,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:442,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - void*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 446
    functionName: bytes_maketrans
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 2
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - bytes_maketrans_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:476,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:479,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:482,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:483,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:486,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:486,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:489,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:490,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:497,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:503,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:506,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:508,1
    - Dst: bytes_replace_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:514,1
    - Dst: count::count
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:514,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:519,1
    - Dst: obj::obj
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:522,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 527
    functionName: bytes_replace
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - Py_DECREF
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - obj::obj
    - PyNumber_Index
    - count::count
    - bytes_replace_impl
    - PyErr_SetString
    - PyBuffer_Release
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_replace(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:558,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:562,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:570,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:571,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:575,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:579,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:580,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:587,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:588,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:592,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:596,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:597,1
    - Dst: bytes_decode_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:601,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 605
    functionName: bytes_decode
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - bytes_decode_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_decode(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:629,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:632,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:640,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:644,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:645,1
    - Dst: bytes_splitlines_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 653
    functionName: bytes_splitlines
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - bytes_splitlines_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_splitlines(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:676,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:677,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:680,1
    - Dst: bytes_fromhex_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 688
    functionName: bytes_fromhex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - bytes_fromhex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_fromhex(PyTypeObject *type, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:726,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:730,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:744,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:748,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:749,1
    - Dst: bytes_hex_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h:753,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyBytesObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 757
    functionName: bytes_hex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - bytes_hex_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytes_hex(PyBytesObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:24,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:25,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:29,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:29,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:33,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:34,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:37,1
    - Dst: module___init___impl
      Src: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 50
    functionName: module___init__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - module___init___impl
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int module___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:28,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:35,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:41,1
    - Dst: tuple_index_impl
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:45,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyTupleObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 49
    functionName: tuple_index
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndexNotNone
    - tuple_index_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_index(PyTupleObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:81,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:84,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:84,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:87,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:90,1
    - Dst: tuple_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:92,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: tuple_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    - tuple_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tuple___getnewargs___impl
      Src: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTupleObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: tuple___getnewargs__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
    functionUses: 0
    functionsReached:
    - tuple___getnewargs___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tuple___getnewargs__(PyTupleObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:24,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:28,1
    - Dst: OrderedDict_fromkeys_impl
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:38,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 7
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: OrderedDict_fromkeys
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict_fromkeys_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:66,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:70,1
    - Dst: OrderedDict_setdefault_impl
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyODictObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 84
    functionName: OrderedDict_setdefault
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - OrderedDict_setdefault_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_setdefault(PyODictObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:107,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:110,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:117,1
    - Dst: OrderedDict_popitem_impl
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyODictObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: OrderedDict_popitem
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - OrderedDict_popitem_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_popitem(PyODictObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:149,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:153,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:161,1
    - Dst: OrderedDict_move_to_end_impl
      Src: /src/Python-3.8.3/Objects/clinic/odictobject.c.h:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyODictObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 142
    functionDepth: 5
    functionLinenumber: 142
    functionLinenumberEnd: 170
    functionName: OrderedDict_move_to_end
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - OrderedDict_move_to_end_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      OrderedDict_move_to_end(PyODictObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:34,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:35,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:42,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:42,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:46,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:47,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:51,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:52,1
    - Dst: func_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/funcobject.c.h:73,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 26
    functionDepth: 9
    functionLinenumber: 26
    functionLinenumberEnd: 77
    functionName: func_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/funcobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_BadArgument
    - PyDict_Check
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - func_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:16,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:17,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:21,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:21,1
    - Dst: long_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 8
    functionDepth: 7
    functionLinenumber: 8
    functionLinenumberEnd: 40
    functionName: long_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - long_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int___getnewargs___impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: int___getnewargs__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int___getnewargs___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:76,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:77,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:80,1
    - Dst: int___format___impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 88
    functionName: int___format__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - int___format___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___format__(PyObject *self, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: int___sizeof___impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:109,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: int___sizeof__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - int___sizeof___impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int___sizeof__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_bit_length_impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 6
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: int_bit_length
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int_bit_length_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_bit_length(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: int_as_integer_ratio_impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 5
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: int_as_integer_ratio
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int_as_integer_ratio_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:203,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:208,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:212,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:213,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:219,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:222,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:224,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:229,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:230,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:233,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:240,1
    - Dst: int_to_bytes_impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:245,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 249
    functionName: int_to_bytes
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyUnicode_READY
    - _PyArg_BadArgument
    - int_to_bytes_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - PyObject_IsTrue
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:285,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:290,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:295,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:296,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:299,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:306,1
    - Dst: int_from_bytes_impl
      Src: /src/Python-3.8.3/Objects/clinic/longobject.c.h:311,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - type
    - args
    - nargs
    - kwnames
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 278
    functionDepth: 5
    functionLinenumber: 278
    functionLinenumberEnd: 315
    functionName: int_from_bytes
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/longobject.c.h
    functionUses: 0
    functionsReached:
    - int_from_bytes_impl
    - PyUnicode_READY
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - _PyArg_UnpackKeywords
    - PyUnicode_Check
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      int_from_bytes(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/complexobject.c.h:24,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/complexobject.c.h:25,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/complexobject.c.h:29,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/complexobject.c.h:29,1
    - Dst: complex_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/complexobject.c.h:44,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 16
    functionDepth: 6
    functionLinenumber: 16
    functionLinenumberEnd: 48
    functionName: complex_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/complexobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - complex_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:24,1
    - Dst: dict_fromkeys_impl
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 17
    functionDepth: 7
    functionLinenumber: 17
    functionLinenumberEnd: 37
    functionName: dict_fromkeys
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - dict_fromkeys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_fromkeys(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:67,1
    - Dst: dict_get_impl
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyDictObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 80
    functionName: dict_get
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_get_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_get(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:104,1
    - Dst: dict_setdefault_impl
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyDictObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 117
    functionName: dict_setdefault
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - dict_setdefault_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_setdefault(PyDictObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict_popitem_impl
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: dict_popitem
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict_popitem_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_popitem(PyDictObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dict___reversed___impl
      Src: /src/Python-3.8.3/Objects/clinic/dictobject.c.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyDictObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: dict___reversed__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
    functionUses: 0
    functionsReached:
    - dict___reversed___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict___reversed__(PyDictObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:31,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:32,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:36,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:36,1
    - Dst: enum_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 4
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: enum_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/enumobject.c.h
    functionUses: 0
    functionsReached:
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - PyDict_GET_SIZE
    - _PyArg_UnpackKeywords
    - enum_new_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:68,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:71,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:71,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:74,1
    - Dst: reversed_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/enumobject.c.h:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 4
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: reversed_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/enumobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - reversed_new_impl
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:24,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:27,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:28,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:34,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:36,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:37,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:39,1
    - Dst: list_insert_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:45,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyListObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 49
    functionName: list_insert
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - list_insert_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_insert(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_clear_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: list_clear
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 4
    functionsReached:
    - list_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_clear(PyListObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_copy_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: list_copy
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 1
    functionsReached:
    - list_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_copy(PyListObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:125,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:131,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:132,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:138,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:141,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:143,1
    - Dst: list_pop_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyListObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 153
    functionName: list_pop
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list_pop_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_pop(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:182,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:186,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:200,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:204,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:205,1
    - Dst: list_sort_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:209,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyListObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 175
    functionDepth: 6
    functionLinenumber: 175
    functionLinenumberEnd: 213
    functionName: list_sort
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - list_sort_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_sort(PyListObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_reverse_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 3
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: list_reverse
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list_reverse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_reverse(PyListObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:256,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:263,1
    - Dst: _PyEval_SliceIndexNotNone
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:269,1
    - Dst: list_index_impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:273,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyListObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: list_index
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyEval_SliceIndexNotNone
    - list_index_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_index(PyListObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:317,1
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:318,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:321,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:321,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:324,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:327,1
    - Dst: list___init___impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - self
    - args
    - kwargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 311
    functionDepth: 6
    functionLinenumber: 311
    functionLinenumberEnd: 333
    functionName: list___init__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list___init___impl
    - PyTuple_GET_SIZE
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - Py_TYPE
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int list___init__(PyObject *self, PyObject *args, PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list___sizeof___impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: list___sizeof__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list___sizeof___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___sizeof__(PyListObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list___reversed___impl
      Src: /src/Python-3.8.3/Objects/clinic/listobject.c.h:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyListObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: list___reversed__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/listobject.c.h
    functionUses: 0
    functionsReached:
    - list___reversed___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list___reversed__(PyListObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:42,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:46,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:59,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:60,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:64,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:65,1
    - Dst: memoryview_hex_impl
      Src: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h:69,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyMemoryViewObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 73
    functionName: memoryview_hex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - memoryview_hex_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      memoryview_hex(PyMemoryViewObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_title_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: unicode_title
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_title_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_title(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_capitalize_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: unicode_capitalize
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_capitalize_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_capitalize(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_casefold_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: unicode_casefold
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_casefold_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_casefold(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:86,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:89,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:90,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:96,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:98,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:99,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:101,1
    - Dst: convert_uc
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:109,1
    - Dst: unicode_center_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: unicode_center
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - unicode_center_impl
    - convert_uc
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_center(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:147,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:151,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:159,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:160,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:164,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:168,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:169,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:176,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:177,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:181,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:185,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:186,1
    - Dst: unicode_encode_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:190,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 194
    functionName: unicode_encode
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - unicode_encode_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:217,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:220,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:228,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:232,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:233,1
    - Dst: unicode_expandtabs_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:237,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 210
    functionDepth: 5
    functionLinenumber: 210
    functionLinenumberEnd: 241
    functionName: unicode_expandtabs
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - unicode_expandtabs_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isascii_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: unicode_isascii
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isascii_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isascii(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_islower_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: unicode_islower
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_islower_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_islower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isupper_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: unicode_isupper
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isupper_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isupper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_istitle_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: unicode_istitle
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_istitle_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_istitle(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isspace_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 346
    functionName: unicode_isspace
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isspace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isspace(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isalpha_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: unicode_isalpha
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isalpha_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalpha(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isalnum_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: unicode_isalnum
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isalnum_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isalnum(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isdecimal_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: unicode_isdecimal
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isdecimal_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdecimal(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isdigit_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 430
    functionName: unicode_isdigit
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isdigit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isdigit(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isnumeric_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: unicode_isnumeric
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isnumeric_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isnumeric(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isidentifier_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 4
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: unicode_isidentifier
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isidentifier_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isidentifier(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_isprintable_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: unicode_isprintable
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_isprintable_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_isprintable(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:530,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:533,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:534,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:540,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:543,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:545,1
    - Dst: convert_uc
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:553,1
    - Dst: unicode_ljust_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:557,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 561
    functionName: unicode_ljust
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - unicode_ljust_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - convert_uc
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_ljust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_lower_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 5
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: unicode_lower
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_lower_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_lower(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:601,1
    - Dst: unicode_strip_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 613
    functionName: unicode_strip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_strip_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_strip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:635,1
    - Dst: unicode_lstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 647
    functionName: unicode_lstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_lstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_lstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:669,1
    - Dst: unicode_rstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 681
    functionName: unicode_rstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - unicode_rstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rstrip(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:711,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:714,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:715,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:718,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:722,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:723,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:726,1
    - Dst: args::args
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:729,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:734,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:740,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:742,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:743,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:745,1
    - Dst: unicode_replace_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:751,1
    - Dst: count::count
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:751,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 703
    functionDepth: 6
    functionLinenumber: 703
    functionLinenumberEnd: 755
    functionName: unicode_replace
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - Py_DECREF
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - args::args
    - _PyArg_BadArgument
    - PyLong_AsSsize_t
    - PyNumber_Index
    - count::count
    - PyErr_SetString
    - PyUnicode_Check
    - unicode_replace_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:778,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:782,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:788,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:791,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:793,1
    - Dst: convert_uc
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:801,1
    - Dst: unicode_rjust_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:805,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 809
    functionName: unicode_rjust
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_rjust_impl
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - convert_uc
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rjust(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:838,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:842,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:855,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:856,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:862,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:864,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:865,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:867,1
    - Dst: unicode_split_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:873,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 877
    functionName: unicode_split
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_split_impl
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:940,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:944,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:957,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:958,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:964,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:967,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:969,1
    - Dst: unicode_rsplit_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:975,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 933
    functionDepth: 4
    functionLinenumber: 933
    functionLinenumberEnd: 979
    functionName: unicode_rsplit
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_rsplit_impl
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1003,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1006,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1013,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1014,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1018,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1019,1
    - Dst: unicode_splitlines_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1023,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 996
    functionDepth: 5
    functionLinenumber: 996
    functionLinenumberEnd: 1027
    functionName: unicode_splitlines
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - unicode_splitlines_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_swapcase_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1041
    functionDepth: 5
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    functionName: unicode_swapcase
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_swapcase_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_swapcase(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1075,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1082,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1083,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1086,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1093,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1094,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1097,1
    - Dst: unicode_maketrans_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1102,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - void*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1067
    functionDepth: 6
    functionLinenumber: 1067
    functionLinenumberEnd: 1106
    functionName: unicode_maketrans
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - unicode_maketrans_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_upper_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1137
    functionDepth: 5
    functionLinenumber: 1137
    functionLinenumberEnd: 1141
    functionName: unicode_upper
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_upper_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_upper(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1164,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1170,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1172,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1173,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1175,1
    - Dst: unicode_zfill_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1184
    functionName: unicode_zfill
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - unicode_zfill_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_zfill(PyObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1204,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1205,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1208,1
    - Dst: unicode___format___impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1198
    functionDepth: 5
    functionLinenumber: 1198
    functionLinenumberEnd: 1216
    functionName: unicode___format__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - unicode___format___impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode___format__(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unicode_sizeof_impl
      Src: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1234
    functionName: unicode_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
    functionUses: 0
    functionsReached:
    - unicode_sizeof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unicode_sizeof(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_clear_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: bytearray_clear
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_clear_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_clear(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_copy_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: bytearray_copy
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_copy(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:67,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:71,1
    - Dst: bytearray_translate_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 85
    functionName: bytearray_translate
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - bytearray_translate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_translate(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:111,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:114,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:117,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:118,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:121,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:124,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:125,1
    - Dst: bytearray_maketrans_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:128,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:133,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:137,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - 'null'
    - args
    - nargs
    argTypes:
    - void*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: bytearray_maketrans
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - bytearray_maketrans_impl
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_maketrans(void *null, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:171,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:174,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:177,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:178,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:181,1
    - Dst: PyBUF_SIMPLE::PyBUF_SIMPLE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:181,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:184,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:185,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:191,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:192,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:198,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:200,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:201,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:203,1
    - Dst: bytearray_replace_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:209,1
    - Dst: count::count
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:209,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:214,1
    - Dst: obj::obj
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:217,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 222
    functionName: bytearray_replace
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyBUF_SIMPLE::PyBUF_SIMPLE
    - Py_DECREF
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - bytearray_replace_impl
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyLong_AsSsize_t
    - obj::obj
    - PyNumber_Index
    - count::count
    - PyBuffer_Release
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_replace(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:252,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:256,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:269,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:270,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:276,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:279,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:281,1
    - Dst: bytearray_split_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:287,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 291
    functionName: bytearray_split
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - bytearray_split_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_split(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:356,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:360,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:373,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:374,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:380,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:383,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:385,1
    - Dst: bytearray_rsplit_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:391,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 395
    functionName: bytearray_rsplit
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - bytearray_rsplit_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rsplit(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_reverse_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 413
    functionName: bytearray_reverse
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_reverse_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reverse(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:439,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:443,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:449,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:452,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:454,1
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:459,1
    - Dst: bytearray_insert_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 466
    functionName: bytearray_insert
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _getbytevalue
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - bytearray_insert_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_insert(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:489,1
    - Dst: bytearray_append_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 496
    functionName: bytearray_append
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_append_impl
    - _getbytevalue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_append(PyByteArrayObject *self, PyObject *arg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:534,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:540,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:541,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:547,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:549,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:550,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:552,1
    - Dst: bytearray_pop_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:558,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 562
    functionName: bytearray_pop
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyArg_CheckPositional
    - bytearray_pop_impl
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_pop(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _getbytevalue
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:585,1
    - Dst: bytearray_remove_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: bytearray_remove
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_remove_impl
    - _getbytevalue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_remove(PyByteArrayObject *self, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:614,1
    - Dst: bytearray_strip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 626
    functionName: bytearray_strip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_strip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_strip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:648,1
    - Dst: bytearray_lstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 642
    functionDepth: 3
    functionLinenumber: 642
    functionLinenumberEnd: 660
    functionName: bytearray_lstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - bytearray_lstrip_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_lstrip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:682,1
    - Dst: bytearray_rstrip_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 694
    functionName: bytearray_rstrip
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_rstrip_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_rstrip(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:725,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:729,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:737,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:738,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:742,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:746,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:747,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:754,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:755,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:759,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:763,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:764,1
    - Dst: bytearray_decode_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:768,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: bytearray_decode
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_decode_impl
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_decode(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:809,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:812,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:819,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:820,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:824,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:825,1
    - Dst: bytearray_splitlines_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:829,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 802
    functionDepth: 5
    functionLinenumber: 802
    functionLinenumberEnd: 833
    functionName: bytearray_splitlines
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - bytearray_splitlines_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_splitlines(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:856,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:857,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:860,1
    - Dst: bytearray_fromhex_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 868
    functionName: bytearray_fromhex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - bytearray_fromhex_impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_fromhex(PyTypeObject *type, PyObject *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:906,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:910,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:923,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:924,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:928,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:929,1
    - Dst: bytearray_hex_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:933,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 937
    functionName: bytearray_hex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - bytearray_hex_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_hex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_reduce_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 955
    functionName: bytearray_reduce
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_reduce_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:975,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:981,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:982,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:986,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:987,1
    - Dst: bytearray_reduce_ex_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:991,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyByteArrayObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 969
    functionDepth: 5
    functionLinenumber: 969
    functionLinenumberEnd: 995
    functionName: bytearray_reduce_ex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_reduce_ex_impl
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_reduce_ex(PyByteArrayObject *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytearray_sizeof_impl
      Src: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyByteArrayObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    functionName: bytearray_sizeof
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
    functionUses: 0
    functionsReached:
    - bytearray_sizeof_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      bytearray_sizeof(PyByteArrayObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_is_integer_impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: float_is_integer
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float_is_integer_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float___trunc___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: float___trunc__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___trunc___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___trunc__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:61,1
    - Dst: float___round___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: float___round__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - float___round___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___round__(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_conjugate_impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: float_conjugate
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float_conjugate_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_conjugate(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_hex_impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: float_hex
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float_hex_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_hex(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float_as_integer_ratio_impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: float_as_integer_ratio
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 2
    functionsReached:
    - float_as_integer_ratio_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_as_integer_ratio(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:176,1
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:179,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:179,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:182,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:185,1
    - Dst: float_new_impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 169
    functionDepth: 4
    functionLinenumber: 169
    functionLinenumberEnd: 191
    functionName: float_new
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - float_new_impl
    - _PyArg_CheckPositional
    - _PyArg_NoKeywords
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: float___getnewargs___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: float___getnewargs__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___getnewargs___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getnewargs__(PyObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:237,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:238,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:242,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:246,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:247,1
    - Dst: float___getformat___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - PyTypeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 254
    functionName: float___getformat__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - float___getformat___impl
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___getformat__(PyTypeObject *type, PyObject *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:288,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:291,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:292,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:296,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:301,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:304,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:305,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:309,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:313,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:314,1
    - Dst: float___set_format___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:317,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - type
    - args
    - nargs
    argTypes:
    - PyTypeObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 321
    functionName: float___set_format__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - float___set_format___impl
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - strlen
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___set_format__(PyTypeObject *type, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:341,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:342,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:345,1
    - Dst: float___format___impl
      Src: /src/Python-3.8.3/Objects/clinic/floatobject.c.h:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: float___format__
    functionSourceFile: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - float___format___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      float___format__(PyObject *self, PyObject *arg)'
  - BBCount: 24
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - c1
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 106
    functionName: PyToken_OneChar
    functionSourceFile: /src/Python-3.8.3/Parser/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyToken_OneChar(int c1)
  - BBCount: 35
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 100
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 190
    functionName: PyToken_TwoChars
    functionSourceFile: /src/Python-3.8.3/Parser/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyToken_TwoChars(int c1, int c2)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - c1
    - c2
    - c3
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 243
    functionName: PyToken_ThreeChars
    functionSourceFile: /src/Python-3.8.3/Parser/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyToken_ThreeChars(int c1, int c2, int c3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: listnode
      Src: /src/Python-3.8.3/Parser/listnode.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 16
    functionName: PyNode_ListTree
    functionSourceFile: /src/Python-3.8.3/Parser/listnode.c
    functionUses: 0
    functionsReached:
    - listnode
    linkageType: ''
    returnType: void
    signature: void PyNode_ListTree(node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list1node
      Src: /src/Python-3.8.3/Parser/listnode.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fp
    - n
    argTypes:
    - FILE*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: listnode
    functionSourceFile: /src/Python-3.8.3/Parser/listnode.c
    functionUses: 1
    functionsReached:
    - list1node
    linkageType: ''
    returnType: void
    signature: void listnode(FILE *fp, node *n)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Parser/listnode.c:33,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/listnode.c:33,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/listnode.c:35,1
    - Dst: list1node
      Src: /src/Python-3.8.3/Parser/listnode.c:36,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/listnode.c:36,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Parser/listnode.c:38,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/listnode.c:38,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/listnode.c:39,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/listnode.c:50,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/listnode.c:53,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/listnode.c:54,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/listnode.c:55,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/listnode.c:55,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/listnode.c:56,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/listnode.c:60,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/listnode.c:60,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/listnode.c:65,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - fp
    - n
    argTypes:
    - FILE*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 66
    functionName: list1node
    functionSourceFile: /src/Python-3.8.3/Parser/listnode.c
    functionUses: 2
    functionsReached:
    - NCH
    - STR
    - CHILD
    - ISNONTERMINAL
    - TYPE
    - list1node
    - fprintf
    - ISTERMINAL
    linkageType: ''
    returnType: void
    signature: void list1node(FILE *fp, node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: is_potential_identifier_start
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_potential_identifier_start(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: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: is_potential_identifier_char
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_potential_identifier_char(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 93
    functionName: tok_new
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyMem_MALLOC
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      tok_new(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:98,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - s
    - len
    - tok
    argTypes:
    - char*
    - Py_ssize_t
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: new_string
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_MALLOC
    linkageType: ''
    returnType: char
    signature: 'char *

      new_string(const char *s, Py_ssize_t len, struct tok_state *tok)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: error_ret
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    linkageType: ''
    returnType: char
    signature: 'char *

      error_ret(struct tok_state *tok)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/Python-3.8.3/Parser/tokenizer.c:132,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:135,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:136,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:138,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:139,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:140,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:141,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:142,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 147
    functionName: get_normal_name
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - tolower
    - strcmp
    - strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      get_normal_name(const char *s)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:166,1
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Parser/tokenizer.c:176,1
    - Dst: new_string
      Src: /src/Python-3.8.3/Parser/tokenizer.c:181,1
    - Dst: get_normal_name
      Src: /src/Python-3.8.3/Parser/tokenizer.c:185,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:187,1
    - Dst: new_string
      Src: /src/Python-3.8.3/Parser/tokenizer.c:188,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:188,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 35
    argCount: 4
    argNames:
    - s
    - spec
    - size
    - tok
    argTypes:
    - char*
    - char**
    - Py_ssize_t
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 198
    functionName: get_coding_spec
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strncmp
    - get_normal_name
    - new_string
    - strlen
    - PyMem_FREE
    - Py_ISALNUM
    linkageType: ''
    returnType: int
    signature: int get_coding_spec(const char *s, char **spec, Py_ssize_t size, struct
      tok_state *tok)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_coding_spec
      Src: /src/Python-3.8.3/Parser/tokenizer.c:217,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:235,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:236,1
    - Dst: set_readline
      Src: /src/Python-3.8.3/Parser/tokenizer.c:239,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Parser/tokenizer.c:245,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:247,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:251,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Parser/tokenizer.c:253,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:255,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - line
    - size
    - tok
    - set_readline
    argTypes:
    - char*
    - Py_ssize_t
    - struct tok_state*
    - int
    assertStmts:
    - condition: (tok->decoding_state == STATE_RAW)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    constantsTouched: []
    func_position:
      end: 258
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 258
    functionName: check_coding_spec
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - set_readline
    - get_coding_spec
    - PyMem_FREE
    - PyErr_Format
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int check_coding_spec(const char* line, Py_ssize_t size, struct tok_state
      *tok,\n                  int set_readline(struct tok_state *, const char *))"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:271,1
    - Dst: get_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:276,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:278,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:279,1
    - Dst: get_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:282,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:284,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:285,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:286,1
    - Dst: get_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:293,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:295,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:296,1
    - Dst: set_readline
      Src: /src/Python-3.8.3/Parser/tokenizer.c:299,1
    - Dst: get_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:303,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:305,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:306,1
    - Dst: set_readline
      Src: /src/Python-3.8.3/Parser/tokenizer.c:309,1
    - Dst: unget_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:314,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:318,1
    - Dst: new_string
      Src: /src/Python-3.8.3/Parser/tokenizer.c:319,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - get_char
    - unget_char
    - set_readline
    - tok
    argTypes:
    - int
    - void
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 324
    functionName: check_bom
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - set_readline
    - new_string
    - unget_char
    - PyMem_FREE
    - get_char
    linkageType: ''
    returnType: int
    signature: "int check_bom(int get_char(struct tok_state *),\n          void unget_char(int,
      struct tok_state *),\n          int set_readline(struct tok_state *, const char
      *),\n          struct tok_state *tok)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:349,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:354,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Parser/tokenizer.c:358,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Parser/tokenizer.c:362,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Parser/tokenizer.c:364,1
    - Dst: PyByteArray_AsString
      Src: /src/Python-3.8.3/Parser/tokenizer.c:371,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:375,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:378,1
    - Dst: PyByteArray_FromStringAndSize
      Src: /src/Python-3.8.3/Parser/tokenizer.c:381,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:394,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:398,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:399,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - s
    - size
    - tok
    argTypes:
    - char*
    - int
    - struct tok_state*
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 348
        line_start: 348
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    constantsTouched: []
    func_position:
      end: 400
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 400
    functionName: fp_readl
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyByteArray_AsString
    - memcpy
    - Py_DECREF
    - error_ret
    - Py_INCREF
    - PyUnicode_AsUTF8AndSize
    - PyByteArray_GET_SIZE
    - PyByteArray_FromStringAndSize
    - assert
    - _PyObject_CallNoArg
    - Py_XDECREF
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: char
    signature: 'char *

      fp_readl(char *s, int size, struct tok_state *tok)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Parser/tokenizer.c:416,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Parser/tokenizer.c:417,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Parser/tokenizer.c:421,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Parser/tokenizer.c:427,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Parser/tokenizer.c:429,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Parser/tokenizer.c:430,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Parser/tokenizer.c:434,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Parser/tokenizer.c:438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:440,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Parser/tokenizer.c:444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:445,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:448,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Parser/tokenizer.c:451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:454,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - tok
    - enc
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 458
    functionName: fp_setreadl
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - ftell
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyErr_SetFromErrnoWithFilename
    - Py_XSETREF
    - PyImport_ImportModuleNoBlock
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - lseek
    - _PyObject_CallNoArg
    - fileno
    linkageType: ''
    returnType: int
    signature: int fp_setreadl(struct tok_state *tok, const char* enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: fp_getc
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - getc
    linkageType: ''
    returnType: int
    signature: int fp_getc(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ungetc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - tok
    argTypes:
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: fp_ungetc
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - ungetc
    linkageType: ''
    returnType: void
    signature: void fp_ungetc(int c, struct tok_state *tok)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: valid_utf8
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int valid_utf8(const unsigned char* s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fp_readl
      Src: /src/Python-3.8.3/Parser/tokenizer.c:512,1
    - Dst: Py_UniversalNewlineFgets
      Src: /src/Python-3.8.3/Parser/tokenizer.c:516,1
    - Dst: check_bom
      Src: /src/Python-3.8.3/Parser/tokenizer.c:523,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:524,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:525,1
    - Dst: check_coding_spec
      Src: /src/Python-3.8.3/Parser/tokenizer.c:529,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:529,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:530,1
    - Dst: valid_utf8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:539,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Parser/tokenizer.c:547,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:553,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - s
    - size
    - tok
    argTypes:
    - char*
    - int
    - struct tok_state*
    assertStmts:
    - condition: (tok->decoding_state != STATE_INIT)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    constantsTouched: []
    func_position:
      end: 556
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 556
    functionName: decoding_fgets
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - error_ret
    - check_coding_spec
    - fp_readl
    - strlen
    - Py_UniversalNewlineFgets
    - PyErr_Format
    - valid_utf8
    - assert
    - check_bom
    linkageType: ''
    returnType: char
    signature: 'char *

      decoding_fgets(char *s, int size, struct tok_state *tok)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: feof
      Src: /src/Python-3.8.3/Parser/tokenizer.c:562,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Parser/tokenizer.c:566,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:568,1
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Parser/tokenizer.c:574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 576
    functionName: decoding_feof
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyObject_Length
    - _PyObject_CallNoArg
    - error_ret
    - feof
    linkageType: ''
    returnType: int
    signature: int decoding_feof(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Parser/tokenizer.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: buf_getc
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int buf_getc(struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:590,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Parser/tokenizer.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - tok
    argTypes:
    - int
    - struct tok_state*
    assertStmts:
    - condition: (Py_CHARMASK(*tok->str) == c)
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    constantsTouched: []
    func_position:
      end: 591
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 591
    functionName: buf_ungetc
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_CHARMASK
    linkageType: ''
    returnType: void
    signature: void buf_ungetc(int c, struct tok_state *tok)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tok
    - enc
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 600
    functionName: buf_setreadl
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int buf_setreadl(struct tok_state *tok, const char* enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Parser/tokenizer.c:608,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:608,1
    - Dst: PyUnicode_AsUTF8String
      Src: /src/Python-3.8.3/Parser/tokenizer.c:611,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - enc
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: translate_into_utf8
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strlen
    - Py_DECREF
    - PyUnicode_Decode
    - PyUnicode_AsUTF8String
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      translate_into_utf8(const char* str, const char* enc)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:620,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:623,1
    - Dst: PyMem_REALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:654,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:656,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - s
    - exec_input
    - tok
    argTypes:
    - char*
    - int
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 661
    functionName: translate_newlines
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyMem_FREE
    - PyMem_MALLOC
    - PyMem_REALLOC
    linkageType: ''
    returnType: char
    signature: 'char *

      translate_newlines(const char *s, int exec_input, struct tok_state *tok)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: translate_newlines
      Src: /src/Python-3.8.3/Parser/tokenizer.c:675,1
    - Dst: check_bom
      Src: /src/Python-3.8.3/Parser/tokenizer.c:680,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:681,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:683,1
    - Dst: translate_into_utf8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:685,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:687,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Parser/tokenizer.c:688,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:693,1
    - Dst: check_coding_spec
      Src: /src/Python-3.8.3/Parser/tokenizer.c:703,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:704,1
    - Dst: check_coding_spec
      Src: /src/Python-3.8.3/Parser/tokenizer.c:706,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:708,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:712,1
    - Dst: translate_into_utf8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:713,1
    - Dst: error_ret
      Src: /src/Python-3.8.3/Parser/tokenizer.c:715,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Parser/tokenizer.c:716,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/tokenizer.c:718,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - input
    - single
    - tok
    argTypes:
    - char*
    - int
    - struct tok_state*
    assertStmts:
    - condition: (str)
      pos:
        line_end: 682
        line_start: 682
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    - condition: (lineno < 2)
      pos:
        line_end: 692
        line_start: 692
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    - condition: (tok->decoding_buffer == NULL)
      pos:
        line_end: 717
        line_start: 717
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    - condition: (utf8 == NULL)
      pos:
        line_end: 711
        line_start: 711
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
    constantsTouched: []
    func_position:
      end: 721
      start: 667
    functionDepth: 7
    functionLinenumber: 667
    functionLinenumberEnd: 721
    functionName: decode_str
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - error_ret
    - translate_into_utf8
    - check_coding_spec
    - translate_newlines
    - PyBytes_AsString
    - PyBytes_AS_STRING
    - assert
    - check_bom
    linkageType: ''
    returnType: char
    signature: 'char *

      decode_str(const char *input, int single, struct tok_state *tok)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tok_new
      Src: /src/Python-3.8.3/Parser/tokenizer.c:728,1
    - Dst: decode_str
      Src: /src/Python-3.8.3/Parser/tokenizer.c:731,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - exec_input
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 725
    functionDepth: 8
    functionLinenumber: 725
    functionLinenumberEnd: 740
    functionName: PyTokenizer_FromString
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyTokenizer_Free
    - tok_new
    - decode_str
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      PyTokenizer_FromString(const char *str, int exec_input)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tok_new
      Src: /src/Python-3.8.3/Parser/tokenizer.c:745,1
    - Dst: translate_newlines
      Src: /src/Python-3.8.3/Parser/tokenizer.c:748,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:750,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:757,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:759,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - str
    - exec_input
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 767
    functionName: PyTokenizer_FromUTF8
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyMem_MALLOC
    - translate_newlines
    - PyTokenizer_Free
    - tok_new
    linkageType: ''
    returnType: struct tok_state
    signature: 'struct tok_state *

      PyTokenizer_FromUTF8(const char *str, int exec_input)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tok_new
      Src: /src/Python-3.8.3/Parser/tokenizer.c:775,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:778,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:779,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:790,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:790,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:792,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - fp
    - enc
    - ps1
    - ps2
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 799
    functionName: PyTokenizer_FromFile
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyMem_MALLOC
    - strlen
    - PyTokenizer_Free
    - tok_new
    linkageType: ''
    returnType: struct tok_state
    signature: "struct tok_state *\nPyTokenizer_FromFile(FILE *fp, const char* enc,\n
      \                    const char *ps1, const char *ps2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:808,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:809,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:810,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:811,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:813,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:815,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 817
    functionName: PyTokenizer_Free
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 3
    functionsReached:
    - PyMem_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyTokenizer_Free(struct tok_state *tok)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Parser/tokenizer.c:826,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:831,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:835,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Parser/tokenizer.c:846,1
    - Dst: PyOS_Readline
      Src: /src/Python-3.8.3/Parser/tokenizer.c:849,1
    - Dst: translate_newlines
      Src: /src/Python-3.8.3/Parser/tokenizer.c:851,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:852,1
    - Dst: translate_into_utf8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:861,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:862,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:867,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Parser/tokenizer.c:868,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:869,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:871,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:875,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:876,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:883,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:889,1
    - Dst: PyMem_REALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:892,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:895,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:897,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:905,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:906,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/tokenizer.c:914,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:918,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:929,1
    - Dst: decoding_fgets
      Src: /src/Python-3.8.3/Parser/tokenizer.c:936,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:944,1
    - Dst: decoding_feof
      Src: /src/Python-3.8.3/Parser/tokenizer.c:950,1
    - Dst: PyMem_REALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:966,1
    - Dst: decoding_fgets
      Src: /src/Python-3.8.3/Parser/tokenizer.c:981,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:992,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:994,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1012,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 153
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 821
    functionDepth: 7
    functionLinenumber: 821
    functionLinenumberEnd: 1018
    functionName: tok_nextc
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - strcpy
    - Py_DECREF
    - PyMem_MALLOC
    - translate_into_utf8
    - PySys_WriteStderr
    - translate_newlines
    - PyOS_Readline
    - PyMem_REALLOC
    - strlen
    - PyBytes_GET_SIZE
    - decoding_fgets
    - PyBytes_AS_STRING
    - strchr
    - PyMem_FREE
    - decoding_feof
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: int tok_nextc(struct tok_state *tok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - tok
    - c
    argTypes:
    - struct tok_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1032
    functionName: tok_backup
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void tok_backup(struct tok_state *tok, int c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1041,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1043,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1045,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1046,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1051,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1056,1
    - Dst: strcspn
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1059,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1060,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1067,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1070,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1071,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1075,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - tok
    - format
    argTypes:
    - struct tok_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1035
    functionDepth: 7
    functionLinenumber: 1035
    functionLinenumberEnd: 1078
    functionName: syntaxerror
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - va_start
    - Py_BuildValue
    - Py_DECREF
    - PyUnicode_GET_LENGTH
    - Py_XDECREF
    - PyErr_SetObject
    - PyUnicode_FromFormatV
    - PyUnicode_DecodeUTF8
    - strcspn
    - va_end
    linkageType: ''
    returnType: int
    signature: int syntaxerror(struct tok_state *tok, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1086
    functionName: indenterror
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int indenterror(struct tok_state *tok)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1098,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1100,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1101,1
    - Dst: PyUnicode_IsIdentifier
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1108,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1113
    functionName: verify_identifier
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_ExceptionMatches
    - PyUnicode_DecodeUTF8
    - PyErr_Clear
    - PyUnicode_IsIdentifier
    linkageType: ''
    returnType: int
    signature: int verify_identifier(struct tok_state *tok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1122,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1123,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1127,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1128,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1129,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - tok
    argTypes:
    - struct tok_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1115
    functionDepth: 8
    functionLinenumber: 1115
    functionLinenumberEnd: 1135
    functionName: tok_decimal_tail
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - syntaxerror
    - tok_backup
    - isdigit
    - tok_nextc
    linkageType: ''
    returnType: int
    signature: int tok_decimal_tail(struct tok_state *tok)
  - BBCount: 106
    BranchProfiles: []
    Callsites:
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1156,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1171,1
    - Dst: indenterror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1197,1
    - Dst: indenterror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1208,1
    - Dst: indenterror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1227,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1248,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1249,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1276,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1287,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1311,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1318,1
    - Dst: Py_ISALNUM
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1320,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1328,1
    - Dst: is_potential_identifier_start
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1348,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1370,1
    - Dst: is_potential_identifier_char
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1375,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1379,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1381,1
    - Dst: verify_identifier
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1382,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1400,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1403,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1407,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1415,1
    - Dst: tok_get
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1416,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1421,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1454,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1455,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1458,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1465,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1467,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1470,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1478,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1481,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1484,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1487,1
    - Dst: isxdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1489,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1490,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1491,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1494,1
    - Dst: isxdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1495,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1500,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1503,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1506,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1507,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1508,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1512,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1516,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1519,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1520,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1526,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1529,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1532,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1533,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1534,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1538,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1542,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1545,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1546,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1556,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1557,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1558,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1559,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1565,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1567,1
    - Dst: tok_decimal_tail
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1569,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1575,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1586,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1587,1
    - Dst: tok_decimal_tail
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1596,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1603,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1606,1
    - Dst: tok_decimal_tail
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1607,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1618,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1620,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1621,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1622,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1623,1
    - Dst: isdigit
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1625,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1626,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1627,1
    - Dst: tok_decimal_tail
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1632,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1640,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1644,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1665,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1667,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1676,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1681,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1703,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1715,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1721,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1727,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1735,1
    - Dst: PyToken_TwoChars
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1736,1
    - Dst: tok_nextc
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1738,1
    - Dst: PyToken_ThreeChars
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1739,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1744,1
    - Dst: tok_backup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1750,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1759,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1769,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1778,1
    - Dst: syntaxerror
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1784,1
    - Dst: PyToken_OneChar
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1796,1
    CyclomaticComplexity: 191
    EdgeCount: 191
    ICount: 487
    argCount: 3
    argNames:
    - tok
    - p_start
    - p_end
    argTypes:
    - struct tok_state*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1139
    functionDepth: 9
    functionLinenumber: 1139
    functionLinenumberEnd: 1797
    functionName: tok_get
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 1
    functionsReached:
    - tok_decimal_tail
    - isdigit
    - memcpy
    - is_potential_identifier_start
    - PyToken_TwoChars
    - PyToken_OneChar
    - tok_backup
    - isxdigit
    - tok_nextc
    - PyToken_ThreeChars
    - verify_identifier
    - is_potential_identifier_char
    - tok_get
    - memcmp
    - indenterror
    - Py_ISALNUM
    - syntaxerror
    linkageType: ''
    returnType: int
    signature: int tok_get(struct tok_state *tok, char **p_start, char **p_end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tok_get
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - tok
    - p_start
    - p_end
    argTypes:
    - struct tok_state*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1799
    functionDepth: 10
    functionLinenumber: 1799
    functionLinenumberEnd: 1808
    functionName: PyTokenizer_Get
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - tok_get
    linkageType: ''
    returnType: int
    signature: int PyTokenizer_Get(struct tok_state *tok, char **p_start, char **p_end)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dup
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1827,1
    - Dst: fdopen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1832,1
    - Dst: PyTokenizer_FromFile
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1836,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1838,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1842,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1846,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1848,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1849,1
    - Dst: PyTokenizer_Get
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1854,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1856,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1858,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1858,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1860,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1862,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - fd
    - filename
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1820
    functionDepth: 11
    functionLinenumber: 1820
    functionLinenumberEnd: 1864
    functionName: PyTokenizer_FindEncodingFilename
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyTokenizer_FromFile
    - PyUnicode_FromString
    - strcpy
    - PyMem_MALLOC
    - Py_INCREF
    - PyTokenizer_Free
    - strlen
    - fclose
    - fdopen
    - _Py_dup
    - PyTokenizer_Get
    linkageType: ''
    returnType: char
    signature: 'char *

      PyTokenizer_FindEncodingFilename(int fd, PyObject *filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTokenizer_FindEncodingFilename
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1866
    functionDepth: 12
    functionLinenumber: 1866
    functionLinenumberEnd: 1870
    functionName: PyTokenizer_FindEncoding
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - PyTokenizer_FindEncodingFilename
    linkageType: ''
    returnType: char
    signature: 'char *

      PyTokenizer_FindEncoding(int fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1877,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/tokenizer.c:1879,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 3
    argNames:
    - type
    - start
    - end
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1874
    functionDepth: 0
    functionLinenumber: 1874
    functionLinenumberEnd: 1880
    functionName: tok_dump
    functionSourceFile: /src/Python-3.8.3/Parser/tokenizer.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void tok_dump(int type, char *start, char *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fixdfa
      Src: /src/Python-3.8.3/Parser/acceler.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - grammar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: PyGrammar_AddAccelerators
    functionSourceFile: /src/Python-3.8.3/Parser/acceler.c
    functionUses: 0
    functionsReached:
    - fixdfa
    linkageType: ''
    returnType: void
    signature: void PyGrammar_AddAccelerators(grammar *g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/acceler.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - grammar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 49
    functionName: PyGrammar_RemoveAccelerators
    functionSourceFile: /src/Python-3.8.3/Parser/acceler.c
    functionUses: 0
    functionsReached:
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void PyGrammar_RemoveAccelerators(grammar *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fixstate
      Src: /src/Python-3.8.3/Parser/acceler.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - g
    - d
    argTypes:
    - grammar*
    - dfa*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: fixdfa
    functionSourceFile: /src/Python-3.8.3/Parser/acceler.c
    functionUses: 1
    functionsReached:
    - fixstate
    linkageType: ''
    returnType: void
    signature: void fixdfa(grammar *g, const dfa *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/acceler.c:69,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/acceler.c:71,1
    - Dst: exit
      Src: /src/Python-3.8.3/Parser/acceler.c:72,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/acceler.c:82,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Parser/acceler.c:85,1
    - Dst: PyGrammar_FindDFA
      Src: /src/Python-3.8.3/Parser/acceler.c:86,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/acceler.c:89,1
    - Dst: testbit
      Src: /src/Python-3.8.3/Parser/acceler.c:93,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/acceler.c:95,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/acceler.c:112,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/acceler.c:114,1
    - Dst: exit
      Src: /src/Python-3.8.3/Parser/acceler.c:115,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/acceler.c:122,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 2
    argNames:
    - g
    - s
    argTypes:
    - grammar*
    - state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 123
    functionName: fixstate
    functionSourceFile: /src/Python-3.8.3/Parser/acceler.c
    functionUses: 1
    functionsReached:
    - PyGrammar_FindDFA
    - ISNONTERMINAL
    - printf
    - testbit
    - fprintf
    - PyObject_FREE
    - exit
    - PyObject_MALLOC
    linkageType: ''
    returnType: void
    signature: void fixstate(grammar *g, state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: D
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 536
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: D(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: s_reset
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_reset(stack *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: s_empty
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_empty(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/parser.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - s
    - d
    - parent
    argTypes:
    - stack*
    - dfa*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: s_push
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int s_push(stack *s, const dfa *d, node *parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s_empty
      Src: /src/Python-3.8.3/Parser/parser.c:57,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Parser/parser.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: s_pop
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - s_empty
    linkageType: ''
    returnType: void
    signature: void s_pop(stack *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: s_pop
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_pop(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyGrammar_AddAccelerators
      Src: /src/Python-3.8.3/Parser/parser.c:77,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Parser/parser.c:78,1
    - Dst: PyNode_New
      Src: /src/Python-3.8.3/Parser/parser.c:85,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/parser.c:87,1
    - Dst: s_reset
      Src: /src/Python-3.8.3/Parser/parser.c:90,1
    - Dst: s_push
      Src: /src/Python-3.8.3/Parser/parser.c:91,1
    - Dst: PyGrammar_FindDFA
      Src: /src/Python-3.8.3/Parser/parser.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - g
    - start
    argTypes:
    - grammar*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 93
    functionName: PyParser_New
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - s_push
    - PyMem_MALLOC
    - PyGrammar_FindDFA
    - PyMem_FREE
    - PyNode_New
    - s_reset
    - PyGrammar_AddAccelerators
    linkageType: ''
    returnType: parser_state
    signature: 'parser_state *

      PyParser_New(grammar *g, int start)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Parser/parser.c:100,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/parser.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ps
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: PyParser_Delete
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - PyNode_Free
    linkageType: ''
    returnType: void
    signature: void PyParser_Delete(parser_state *ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/parser.c:112,1
    - Dst: s_empty
      Src: /src/Python-3.8.3/Parser/parser.c:112,1
    - Dst: PyNode_AddChild
      Src: /src/Python-3.8.3/Parser/parser.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - s
    - type
    - str
    - newstate
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - stack*
    - int
    - char*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (!s_empty(s))
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/Python-3.8.3/Parser/parser.c
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: shift
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 15
    functionsReached:
    - assert
    - s_empty
    - PyNode_AddChild
    linkageType: ''
    returnType: int
    signature: "int shift(stack *s, int type, char *str, int newstate, int lineno,
      int col_offset,\n      int end_lineno, int end_col_offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/parser.c:128,1
    - Dst: s_empty
      Src: /src/Python-3.8.3/Parser/parser.c:128,1
    - Dst: PyNode_AddChild
      Src: /src/Python-3.8.3/Parser/parser.c:129,1
    - Dst: s_push
      Src: /src/Python-3.8.3/Parser/parser.c:134,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:134,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - s
    - type
    - d
    - newstate
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - stack*
    - int
    - dfa*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: (!s_empty(s))
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/Python-3.8.3/Parser/parser.c
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: push
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 3
    functionsReached:
    - NCH
    - s_push
    - CHILD
    - PyNode_AddChild
    - assert
    - s_empty
    linkageType: ''
    returnType: int
    signature: "int push(stack *s, int type, const dfa *d, int newstate, int lineno,
      int col_offset,\n     int end_lineno, int end_col_offset)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:152,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:158,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:160,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:165,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:165,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:175,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:175,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:181,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:181,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 3
    argNames:
    - ps
    - type
    - str
    argTypes:
    - parser_state*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 183
    functionName: classify
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - printf
    - strcmp
    - D
    linkageType: ''
    returnType: int
    signature: int classify(parser_state *ps, int type, const char *str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:196,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:197,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:199,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:200,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:200,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:200,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:202,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:203,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:203,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:203,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:204,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:204,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:204,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:206,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:208,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:210,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:211,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:213,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:214,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:215,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:215,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:215,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:216,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:216,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:217,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:219,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 1
    argNames:
    - ps
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 226
    functionName: future_hack
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - NCH
    - STR
    - CHILD
    - TYPE
    - strcmp
    linkageType: ''
    returnType: void
    signature: void future_hack(parser_state *ps)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:239,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:239,1
    - Dst: classify
      Src: /src/Python-3.8.3/Parser/parser.c:242,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:252,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:252,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:267,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:267,1
    - Dst: PyGrammar_FindDFA
      Src: /src/Python-3.8.3/Parser/parser.c:270,1
    - Dst: push
      Src: /src/Python-3.8.3/Parser/parser.c:272,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:275,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:275,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:278,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:278,1
    - Dst: shift
      Src: /src/Python-3.8.3/Parser/parser.c:283,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:286,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:286,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:289,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:289,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:294,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:294,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:301,1
    - Dst: future_hack
      Src: /src/Python-3.8.3/Parser/parser.c:303,1
    - Dst: s_pop
      Src: /src/Python-3.8.3/Parser/parser.c:306,1
    - Dst: s_empty
      Src: /src/Python-3.8.3/Parser/parser.c:307,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:308,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:308,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parser.c:321,1
    - Dst: future_hack
      Src: /src/Python-3.8.3/Parser/parser.c:322,1
    - Dst: s_pop
      Src: /src/Python-3.8.3/Parser/parser.c:326,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:327,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:327,1
    - Dst: s_empty
      Src: /src/Python-3.8.3/Parser/parser.c:328,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:329,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:329,1
    - Dst: D
      Src: /src/Python-3.8.3/Parser/parser.c:336,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:336,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 8
    argNames:
    - ps
    - type
    - str
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - expected_ret
    argTypes:
    - parser_state*
    - int
    - char*
    - int
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 348
    functionName: PyParser_AddToken
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - PyGrammar_FindDFA
    - push
    - shift
    - future_hack
    - printf
    - D
    - classify
    - s_pop
    - strcmp
    - s_empty
    linkageType: ''
    returnType: int
    signature: "int PyParser_AddToken(parser_state *ps, int type, char *str,\n                  int
      lineno, int col_offset,\n                  int end_lineno, int end_col_offset,\n
      \                 int *expected_ret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:361,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:364,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:365,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:366,1
    - Dst: PyGrammar_LabelRepr
      Src: /src/Python-3.8.3/Parser/parser.c:366,1
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Parser/parser.c:367,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:367,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:368,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:369,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:371,1
    - Dst: dumptree
      Src: /src/Python-3.8.3/Parser/parser.c:372,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:372,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - g
    - n
    argTypes:
    - grammar*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 377
    functionName: dumptree
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 1
    functionsReached:
    - dumptree
    - NCH
    - STR
    - ISNONTERMINAL
    - CHILD
    - printf
    - TYPE
    - PyGrammar_LabelRepr
    linkageType: ''
    returnType: void
    signature: void dumptree(grammar *g, node *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Parser/parser.c:386,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:386,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parser.c:387,1
    - Dst: showtree
      Src: /src/Python-3.8.3/Parser/parser.c:388,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parser.c:388,1
    - Dst: ISTERMINAL
      Src: /src/Python-3.8.3/Parser/parser.c:390,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:390,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:391,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:391,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:392,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Parser/parser.c:392,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:393,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/parser.c:393,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:394,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - g
    - n
    argTypes:
    - grammar*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 398
    functionName: showtree
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 1
    functionsReached:
    - NCH
    - STR
    - showtree
    - CHILD
    - ISNONTERMINAL
    - printf
    - TYPE
    - ISTERMINAL
    linkageType: ''
    returnType: void
    signature: void showtree(grammar *g, node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:404,1
    - Dst: dumptree
      Src: /src/Python-3.8.3/Parser/parser.c:405,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:406,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:407,1
    - Dst: showtree
      Src: /src/Python-3.8.3/Parser/parser.c:408,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:409,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:411,1
    - Dst: PyNode_ListTree
      Src: /src/Python-3.8.3/Parser/parser.c:412,1
    - Dst: printf
      Src: /src/Python-3.8.3/Parser/parser.c:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ps
    argTypes:
    - parser_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: printtree
    functionSourceFile: /src/Python-3.8.3/Parser/parser.c
    functionUses: 0
    functionsReached:
    - printf
    - PyNode_ListTree
    - showtree
    - dumptree
    linkageType: ''
    returnType: void
    signature: void printtree(parser_state *ps)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: clearerr
      Src: /src/Python-3.8.3/Parser/myreadline.c:42,1
    - Dst: fgets
      Src: /src/Python-3.8.3/Parser/myreadline.c:43,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Parser/myreadline.c:61,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Parser/myreadline.c:62,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Parser/myreadline.c:63,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Parser/myreadline.c:65,1
    - Dst: feof
      Src: /src/Python-3.8.3/Parser/myreadline.c:72,1
    - Dst: clearerr
      Src: /src/Python-3.8.3/Parser/myreadline.c:73,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:79,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Parser/myreadline.c:80,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:81,1
    - Dst: PyOS_InterruptOccurred
      Src: /src/Python-3.8.3/Parser/myreadline.c:88,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - buf
    - len
    - fp
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 94
    functionName: my_fgets
    functionSourceFile: /src/Python-3.8.3/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - fgets
    - GetLastError
    - WaitForSingleObjectEx
    - PyEval_RestoreThread
    - PyErr_CheckSignals
    - ResetEvent
    - feof
    - PyEval_SaveThread
    - PyOS_InterruptOccurred
    - clearerr
    - _PyOS_SigintEvent
    linkageType: ''
    returnType: int
    signature: int my_fgets(char *buf, int len, FILE *fp)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ReadConsoleW
      Src: /src/Python-3.8.3/Parser/myreadline.c:120,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Parser/myreadline.c:121,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Parser/myreadline.c:124,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Parser/myreadline.c:129,1
    - Dst: _PyOS_SigintEvent
      Src: /src/Python-3.8.3/Parser/myreadline.c:133,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Parser/myreadline.c:134,1
    - Dst: ResetEvent
      Src: /src/Python-3.8.3/Parser/myreadline.c:136,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:137,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Parser/myreadline.c:138,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:139,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:153,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/Parser/myreadline.c:155,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:157,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:162,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:164,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:172,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:176,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Parser/myreadline.c:181,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:182,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:184,1
    - Dst: WideCharToMultiByte
      Src: /src/Python-3.8.3/Parser/myreadline.c:187,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:192,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:195,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Parser/myreadline.c:196,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Parser/myreadline.c:197,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 1
    argNames:
    - hStdIn
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 201
    functionName: _PyOS_WindowsConsoleReadline
    functionSourceFile: /src/Python-3.8.3/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - WaitForSingleObjectEx
    - PyEval_RestoreThread
    - _PyOS_SigintEvent
    - PyMem_RawRealloc
    - PyErr_CheckSignals
    - PyErr_NoMemory
    - PyMem_RawMalloc
    - ResetEvent
    - PyEval_SaveThread
    - PyMem_RawFree
    - WideCharToMultiByte
    - ReadConsoleW
    - wcscpy_s
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: char
    signature: 'char *

      _PyOS_WindowsConsoleReadline(HANDLE hStdIn)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Parser/myreadline.c:219,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Parser/myreadline.c:219,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Parser/myreadline.c:220,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Parser/myreadline.c:220,1
    - Dst: _get_console_type
      Src: /src/Python-3.8.3/Parser/myreadline.c:223,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Parser/myreadline.c:224,1
    - Dst: _get_console_type
      Src: /src/Python-3.8.3/Parser/myreadline.c:226,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Parser/myreadline.c:229,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:232,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:234,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Parser/myreadline.c:237,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Parser/myreadline.c:241,1
    - Dst: WriteConsoleW
      Src: /src/Python-3.8.3/Parser/myreadline.c:243,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:245,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/myreadline.c:248,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Parser/myreadline.c:249,1
    - Dst: clearerr
      Src: /src/Python-3.8.3/Parser/myreadline.c:252,1
    - Dst: _PyOS_WindowsConsoleReadline
      Src: /src/Python-3.8.3/Parser/myreadline.c:253,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:259,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:261,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Parser/myreadline.c:265,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Parser/myreadline.c:267,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Parser/myreadline.c:268,1
    - Dst: my_fgets
      Src: /src/Python-3.8.3/Parser/myreadline.c:270,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:274,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/myreadline.c:282,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:286,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Parser/myreadline.c:287,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:290,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:292,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:293,1
    - Dst: my_fgets
      Src: /src/Python-3.8.3/Parser/myreadline.c:297,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/myreadline.c:299,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:301,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:303,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:304,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 308
    functionName: PyOS_StdioReadline
    functionSourceFile: /src/Python-3.8.3/Parser/myreadline.c
    functionUses: 0
    functionsReached:
    - fflush
    - _get_osfhandle
    - _get_console_type
    - _PyOS_WindowsConsoleReadline
    - PyErr_NoMemory
    - PyMem_RawRealloc
    - my_fgets
    - MultiByteToWideChar
    - PyMem_RawMalloc
    - WriteConsoleW
    - strlen
    - fprintf
    - PyMem_RawFree
    - clearerr
    - PyErr_SetString
    - fileno
    linkageType: ''
    returnType: char
    signature: 'char *

      PyOS_StdioReadline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Parser/myreadline.c:327,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Parser/myreadline.c:328,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Parser/myreadline.c:339,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Parser/myreadline.c:341,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Parser/myreadline.c:346,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Parser/myreadline.c:355,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Parser/myreadline.c:355,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Parser/myreadline.c:355,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Parser/myreadline.c:355,1
    - Dst: PyOS_StdioReadline
      Src: /src/Python-3.8.3/Parser/myreadline.c:356,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/myreadline.c:369,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Parser/myreadline.c:370,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Parser/myreadline.c:372,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Parser/myreadline.c:375,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Parser/myreadline.c:377,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - sys_stdin
    - sys_stdout
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 380
    functionName: PyOS_Readline
    functionSourceFile: /src/Python-3.8.3/Parser/myreadline.c
    functionUses: 1
    functionsReached:
    - memcpy
    - _PyThreadState_GET
    - PyErr_NoMemory
    - PyOS_StdioReadline
    - isatty
    - strlen
    - PyThread_allocate_lock
    - PyErr_SetString
    - PyMem_Malloc
    - PyMem_RawFree
    - fileno
    linkageType: ''
    returnType: char
    signature: 'char *

      PyOS_Readline(FILE *sys_stdin, FILE *sys_stdout, const char *prompt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/parsetok.c:29,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Parser/parsetok.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - arr
    - initial_size
    argTypes:
    - growable_comment_array*
    - size_t
    assertStmts:
    - condition: (initial_size > 0)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/Python-3.8.3/Parser/parsetok.c
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: growable_comment_array_init
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - assert
    - malloc
    linkageType: ''
    returnType: int
    signature: int growable_comment_array_init(growable_comment_array *arr, size_t
      initial_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/Python-3.8.3/Parser/parsetok.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arr
    - lineno
    - comment
    argTypes:
    - growable_comment_array*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: growable_comment_array_add
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: int
    signature: int growable_comment_array_add(growable_comment_array *arr, int lineno,
      char *comment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:56,1
    - Dst: free
      Src: /src/Python-3.8.3/Parser/parsetok.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arr
    argTypes:
    - growable_comment_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: growable_comment_array_deallocate
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - free
    - PyObject_FREE
    linkageType: ''
    returnType: void
    signature: void growable_comment_array_deallocate(growable_comment_array *arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseStringFlagsFilename
      Src: /src/Python-3.8.3/Parser/parsetok.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - g
    - start
    - err_ret
    argTypes:
    - char*
    - grammar*
    - int
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: PyParser_ParseString
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - PyParser_ParseStringFlagsFilename
    linkageType: ''
    returnType: node
    signature: 'node *

      PyParser_ParseString(const char *s, grammar *g, int start, perrdetail *err_ret)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseStringFlagsFilename
      Src: /src/Python-3.8.3/Parser/parsetok.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - s
    - g
    - start
    - err_ret
    - flags
    argTypes:
    - char*
    - grammar*
    - int
    - perrdetail*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: PyParser_ParseStringFlags
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - PyParser_ParseStringFlagsFilename
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseStringFlags(const char *s, grammar *g, int start,\n
      \                         perrdetail *err_ret, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseStringFlagsFilenameEx
      Src: /src/Python-3.8.3/Parser/parsetok.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - s
    - filename
    - g
    - start
    - err_ret
    - flags
    argTypes:
    - char*
    - char*
    - grammar*
    - int
    - perrdetail*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: PyParser_ParseStringFlagsFilename
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 2
    functionsReached:
    - PyParser_ParseStringFlagsFilenameEx
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseStringFlagsFilename(const char *s, const char
      *filename,\n                          grammar *g, int start,\n                          perrdetail
      *err_ret, int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: initerr
      Src: /src/Python-3.8.3/Parser/parsetok.c:94,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Parser/parsetok.c:97,1
    - Dst: PyTokenizer_FromUTF8
      Src: /src/Python-3.8.3/Parser/parsetok.c:103,1
    - Dst: PyTokenizer_FromString
      Src: /src/Python-3.8.3/Parser/parsetok.c:105,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Parser/parsetok.c:107,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Parser/parsetok.c:114,1
    - Dst: parsetok
      Src: /src/Python-3.8.3/Parser/parsetok.c:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - s
    - filename
    - g
    - start
    - err_ret
    - flags
    argTypes:
    - char*
    - PyObject*
    - grammar*
    - int
    - perrdetail*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 86
    functionDepth: 9
    functionLinenumber: 86
    functionLinenumberEnd: 119
    functionName: PyParser_ParseStringObject
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - parsetok
    - PyErr_Occurred
    - Py_INCREF
    - PyTokenizer_FromUTF8
    - initerr
    - PySys_Audit
    - PyTokenizer_FromString
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseStringObject(const char *s, PyObject *filename,\n
      \                          grammar *g, int start,\n                           perrdetail
      *err_ret, int *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Parser/parsetok.c:129,1
    - Dst: PyParser_ParseStringObject
      Src: /src/Python-3.8.3/Parser/parsetok.c:135,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/parsetok.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - s
    - filename_str
    - g
    - start
    - err_ret
    - flags
    argTypes:
    - char*
    - char*
    - grammar*
    - int
    - perrdetail*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 121
    functionDepth: 10
    functionLinenumber: 121
    functionLinenumberEnd: 138
    functionName: PyParser_ParseStringFlagsFilenameEx
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 2
    functionsReached:
    - PyParser_ParseStringObject
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseStringFlagsFilenameEx(const char *s, const char
      *filename_str,\n                          grammar *g, int start,\n                          perrdetail
      *err_ret, int *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseFileFlags
      Src: /src/Python-3.8.3/Parser/parsetok.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - fp
    - filename
    - g
    - start
    - ps1
    - ps2
    - err_ret
    argTypes:
    - FILE*
    - char*
    - grammar*
    - int
    - char*
    - char*
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: PyParser_ParseFile
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - PyParser_ParseFileFlags
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseFile(FILE *fp, const char *filename, grammar
      *g, int start,\n                   const char *ps1, const char *ps2,\n                   perrdetail
      *err_ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseFileFlagsEx
      Src: /src/Python-3.8.3/Parser/parsetok.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - fp
    - filename
    - enc
    - g
    - start
    - ps1
    - ps2
    - err_ret
    - flags
    argTypes:
    - FILE*
    - char*
    - char*
    - grammar*
    - int
    - char*
    - char*
    - perrdetail*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: PyParser_ParseFileFlags
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 1
    functionsReached:
    - PyParser_ParseFileFlagsEx
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseFileFlags(FILE *fp, const char *filename, const
      char *enc,\n                        grammar *g, int start,\n                        const
      char *ps1, const char *ps2,\n                        perrdetail *err_ret, int
      flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initerr
      Src: /src/Python-3.8.3/Parser/parsetok.c:170,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Parser/parsetok.c:173,1
    - Dst: PyTokenizer_FromFile
      Src: /src/Python-3.8.3/Parser/parsetok.c:177,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Parser/parsetok.c:184,1
    - Dst: parsetok
      Src: /src/Python-3.8.3/Parser/parsetok.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 9
    argNames:
    - fp
    - filename
    - enc
    - g
    - start
    - ps1
    - ps2
    - err_ret
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - char*
    - grammar*
    - int
    - char*
    - char*
    - perrdetail*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 187
    functionName: PyParser_ParseFileObject
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 0
    functionsReached:
    - parsetok
    - PyTokenizer_FromFile
    - Py_INCREF
    - initerr
    - PySys_Audit
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseFileObject(FILE *fp, PyObject *filename,\n                         const
      char *enc, grammar *g, int start,\n                         const char *ps1,
      const char *ps2,\n                         perrdetail *err_ret, int *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Parser/parsetok.c:198,1
    - Dst: PyParser_ParseFileObject
      Src: /src/Python-3.8.3/Parser/parsetok.c:204,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Parser/parsetok.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 9
    argNames:
    - fp
    - filename
    - enc
    - g
    - start
    - ps1
    - ps2
    - err_ret
    - flags
    argTypes:
    - FILE*
    - char*
    - char*
    - grammar*
    - int
    - char*
    - char*
    - perrdetail*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: PyParser_ParseFileFlagsEx
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 1
    functionsReached:
    - PyParser_ParseFileObject
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_ParseFileFlagsEx(FILE *fp, const char *filename,\n
      \                         const char *enc, grammar *g, int start,\n                          const
      char *ps1, const char *ps2,\n                          perrdetail *err_ret,
      int *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Parser/parsetok.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - msg
    - filename
    - lineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    functionName: warn
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 4
    functionsReached:
    - PySys_WriteStderr
    linkageType: ''
    returnType: void
    signature: void warn(const char *msg, const char *filename, int lineno)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: growable_comment_array_init
      Src: /src/Python-3.8.3/Parser/parsetok.c:241,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/parsetok.c:243,1
    - Dst: PyParser_New
      Src: /src/Python-3.8.3/Parser/parsetok.c:247,1
    - Dst: growable_comment_array_deallocate
      Src: /src/Python-3.8.3/Parser/parsetok.c:249,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/parsetok.c:250,1
    - Dst: PyTokenizer_Get
      Src: /src/Python-3.8.3/Parser/parsetok.c:269,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/parsetok.c:290,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Parser/parsetok.c:296,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parsetok.c:302,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:303,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Parser/parsetok.c:308,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:309,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Parser/parsetok.c:324,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Parser/parsetok.c:332,1
    - Dst: growable_comment_array_add
      Src: /src/Python-3.8.3/Parser/parsetok.c:340,1
    - Dst: PyParser_AddToken
      Src: /src/Python-3.8.3/Parser/parsetok.c:348,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:352,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/parsetok.c:369,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/parsetok.c:370,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Parser/parsetok.c:371,1
    - Dst: PyNode_AddChild
      Src: /src/Python-3.8.3/Parser/parsetok.c:374,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Parser/parsetok.c:379,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Parser/parsetok.c:404,1
    - Dst: growable_comment_array_deallocate
      Src: /src/Python-3.8.3/Parser/parsetok.c:418,1
    - Dst: PyParser_Delete
      Src: /src/Python-3.8.3/Parser/parsetok.c:423,1
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/parsetok.c:431,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/parsetok.c:437,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Parser/parsetok.c:440,1
    - Dst: PyNode_New
      Src: /src/Python-3.8.3/Parser/parsetok.c:448,1
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/parsetok.c:450,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/parsetok.c:450,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:454,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Parser/parsetok.c:458,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Parser/parsetok.c:459,1
    - Dst: PyTokenizer_Free
      Src: /src/Python-3.8.3/Parser/parsetok.c:467,1
    - Dst: _PyNode_FinalizeEndPos
      Src: /src/Python-3.8.3/Parser/parsetok.c:470,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 160
    argCount: 5
    argNames:
    - tok
    - g
    - start
    - err_ret
    - flags
    argTypes:
    - struct tok_state*
    - grammar*
    - int
    - perrdetail*
    - int*
    assertStmts:
    - condition: (tok->cur - tok->buf < INT_MAX)
      pos:
        line_end: 430
        line_start: 430
        source_file: /src/Python-3.8.3/Parser/parsetok.c
    constantsTouched: []
    func_position:
      end: 473
      start: 231
    functionDepth: 11
    functionLinenumber: 231
    functionLinenumberEnd: 473
    functionName: parsetok
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 2
    functionsReached:
    - _PyNode_FinalizeEndPos
    - PyObject_FREE
    - PyObject_MALLOC
    - Py_SAFE_DOWNCAST
    - PyParser_AddToken
    - REQ
    - growable_comment_array_init
    - strlen
    - PyNode_New
    - assert
    - PyMem_FREE
    - growable_comment_array_deallocate
    - PyNode_Free
    - CHILD
    - PyParser_New
    - PyParser_Delete
    - PyTokenizer_Free
    - PyTokenizer_Get
    - strcpy
    - NCH
    - growable_comment_array_add
    - strncpy
    - PyNode_AddChild
    - strcmp
    linkageType: ''
    returnType: node
    signature: "node *\nparsetok(struct tok_state *tok, grammar *g, int start, perrdetail
      *err_ret,\n         int *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Parser/parsetok.c:485,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Parser/parsetok.c:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - err_ret
    - filename
    argTypes:
    - perrdetail*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 496
    functionName: initerr
    functionSourceFile: /src/Python-3.8.3/Parser/parsetok.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int initerr(perrdetail *err_ret, PyObject *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/Parser/node.c:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 21
    functionName: PyNode_New
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 3
    functionsReached:
    - PyObject_MALLOC
    linkageType: ''
    returnType: node
    signature: 'node *

      PyNode_New(int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/node.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts:
    - condition: (n > 128)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/Python-3.8.3/Parser/node.c
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: fancy_roundup
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fancy_roundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: XXXROUNDUP
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XXXROUNDUP(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/node.c:83,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/node.c:88,1
    - Dst: _PyNode_FinalizeEndPos
      Src: /src/Python-3.8.3/Parser/node.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: _PyNode_FinalizeEndPos
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 2
    functionsReached:
    - NCH
    - _PyNode_FinalizeEndPos
    - CHILD
    linkageType: ''
    returnType: void
    signature: void _PyNode_FinalizeEndPos(node *n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyNode_FinalizeEndPos
      Src: /src/Python-3.8.3/Parser/node.c:105,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/node.c:105,1
    - Dst: XXXROUNDUP
      Src: /src/Python-3.8.3/Parser/node.c:111,1
    - Dst: XXXROUNDUP
      Src: /src/Python-3.8.3/Parser/node.c:112,1
    - Dst: PyObject_REALLOC
      Src: /src/Python-3.8.3/Parser/node.c:120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - n1
    - type
    - str
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    argTypes:
    - node*
    - int
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 137
    functionName: PyNode_AddChild
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 4
    functionsReached:
    - XXXROUNDUP
    - CHILD
    - _PyNode_FinalizeEndPos
    - PyObject_REALLOC
    linkageType: ''
    returnType: int
    signature: "int PyNode_AddChild(node *n1, int type, char *str, int lineno, int
      col_offset,\n                int end_lineno, int end_col_offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freechildren
      Src: /src/Python-3.8.3/Parser/node.c:148,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/node.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: PyNode_Free
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 6
    functionsReached:
    - PyObject_FREE
    - freechildren
    linkageType: ''
    returnType: void
    signature: void PyNode_Free(node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sizeofchildren
      Src: /src/Python-3.8.3/Parser/node.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: _PyNode_SizeOf
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 1
    functionsReached:
    - sizeofchildren
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyNode_SizeOf(node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/node.c:167,1
    - Dst: freechildren
      Src: /src/Python-3.8.3/Parser/node.c:168,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/node.c:168,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/node.c:170,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/node.c:171,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Parser/node.c:172,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/node.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: freechildren
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 2
    functionsReached:
    - NCH
    - STR
    - CHILD
    - PyObject_FREE
    - freechildren
    linkageType: ''
    returnType: void
    signature: void freechildren(node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/node.c:180,1
    - Dst: sizeofchildren
      Src: /src/Python-3.8.3/Parser/node.c:181,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Parser/node.c:181,1
    - Dst: XXXROUNDUP
      Src: /src/Python-3.8.3/Parser/node.c:184,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Parser/node.c:184,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/node.c:185,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Parser/node.c:186,1
    - Dst: STR
      Src: /src/Python-3.8.3/Parser/node.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: sizeofchildren
    functionSourceFile: /src/Python-3.8.3/Parser/node.c
    functionUses: 2
    functionsReached:
    - XXXROUNDUP
    - NCH
    - STR
    - CHILD
    - strlen
    - sizeofchildren
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sizeofchildren(node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Parser/grammar1.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - g
    - type
    argTypes:
    - grammar*
    - int
    assertStmts:
    - condition: (d->d_type == type)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/Python-3.8.3/Parser/grammar1.c
    constantsTouched: []
    func_position:
      end: 17
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 17
    functionName: PyGrammar_FindDFA
    functionSourceFile: /src/Python-3.8.3/Parser/grammar1.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: dfa
    signature: 'dfa *

      PyGrammar_FindDFA(grammar *g, int type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ISNONTERMINAL
      Src: /src/Python-3.8.3/Parser/grammar1.c:26,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Parser/grammar1.c:28,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Parser/grammar1.c:38,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Parser/grammar1.c:44,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - lb
    argTypes:
    - label*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 47
    functionName: PyGrammar_LabelRepr
    functionSourceFile: /src/Python-3.8.3/Parser/grammar1.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - PyOS_snprintf
    - ISNONTERMINAL
    linkageType: ''
    returnType: char
    signature: 'char *

      PyGrammar_LabelRepr(label *lb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::DisableThreadLibraryCalls
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - HINSTANCE
    - dwReason
    - LPVOID
    argTypes:
    - IN
    - IN
    - IN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 37
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached:
    - ::DisableThreadLibraryCalls
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain(\n    IN HINSTANCE hInstance,\n    IN DWORD dwReason,\n
      \   IN LPVOID /* pvReserved */\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalInitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp:48,1
    - Dst: CreateBootstrapperApplication
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp:50,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - IBootstrapperEngine* pEngine
    - BOOTSTRAPPER_COMMAND* pCommand
    - IBootstrapperApplication** ppApplication
    argTypes:
    - __in
    - __in
    - __out
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: BootstrapperApplicationCreate
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached:
    - CreateBootstrapperApplication
    - BalExitOnFailure
    - BalInitialize
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT BootstrapperApplicationCreate(\n    __in IBootstrapperEngine*
      pEngine,\n    __in const BOOTSTRAPPER_COMMAND* pCommand,\n    __out IBootstrapperApplication**
      ppApplication\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalUninitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: BootstrapperApplicationDestroy
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached:
    - BalUninitialize
    linkageType: ''
    returnType: void
    signature: void BootstrapperApplicationDestroy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hrHostInitialization
    - IBootstrapperEngine* pEngine
    - BOOTSTRAPPER_COMMAND* pCommand
    - IBootstrapperApplication** ppApplication
    argTypes:
    - __in
    - __in
    - __in
    - __out
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: MbaPrereqBootstrapperApplicationCreate
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT MbaPrereqBootstrapperApplicationCreate(\n    __in HRESULT
      hrHostInitialization,\n    __in IBootstrapperEngine* pEngine,\n    __in const
      BOOTSTRAPPER_COMMAND* pCommand,\n    __out IBootstrapperApplication** ppApplication\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: MbaPrereqBootstrapperApplicationDestroy
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MbaPrereqBootstrapperApplicationDestroy()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::ProcessPageControls
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:223,1
    - Dst: ThemeGetPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:223,1
    - Dst: PythonBootstrapperApplication::InstallPage_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:229,1
    - Dst: PythonBootstrapperApplication::Custom1Page_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:231,1
    - Dst: PythonBootstrapperApplication::Custom2Page_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:233,1
    - Dst: PythonBootstrapperApplication::ModifyPage_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:235,1
    - Dst: PythonBootstrapperApplication::SuccessPage_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:237,1
    - Dst: PythonBootstrapperApplication::FailurePage_Show
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:239,1
    - Dst: ThemeShowPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:244,1
    - Dst: ThemeShowPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:245,1
    - Dst: InvalidateRect
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:247,1
    - Dst: ThemeSetFocus
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:253,1
    - Dst: ThemeSetFocus
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:255,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - newPageId
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 257
    functionName: PythonBootstrapperApplication::ShowPage
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::InstallPage_Show
    - PythonBootstrapperApplication::ProcessPageControls
    - PythonBootstrapperApplication::FailurePage_Show
    - PythonBootstrapperApplication::Custom1Page_Show
    - ThemeSetFocus
    - PythonBootstrapperApplication::ModifyPage_Show
    - PythonBootstrapperApplication::SuccessPage_Show
    - ThemeGetPage
    - InvalidateRect
    - PythonBootstrapperApplication::Custom2Page_Show
    - ThemeShowPage
    linkageType: ''
    returnType: void
    signature: void ShowPage(DWORD newPageId)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::OnClickCloseButton
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:275,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:282,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:284,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:285,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:287,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:288,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:290,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:291,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:293,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:297,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:299,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:301,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:303,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:310,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:311,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:315,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:316,1
    - Dst: PythonBootstrapperApplication::SavePageSettings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:320,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:322,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:323,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:325,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:326,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:328,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:331,1
    - Dst: ThemeIsControlChecked
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:335,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:336,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:338,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:338,1
    - Dst: ThemeIsControlChecked
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:342,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:343,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:345,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:345,1
    - Dst: ThemeIsControlChecked
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:349,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:350,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:352,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:352,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:353,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:355,1
    - Dst: ThemeSendControlMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:356,1
    - Dst: ThemeGetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:358,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:362,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:367,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:369,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:369,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:370,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:371,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:373,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:376,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:380,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:380,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:380,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:381,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:382,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:385,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:389,1
    - Dst: ::SHBrowseForFolderW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:399,1
    - Dst: ::SHGetPathFromIDListW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:400,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:401,1
    - Dst: ::CoTaskMemFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:405,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:412,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:413,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:414,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:415,1
    - Dst: PythonBootstrapperApplication::GoToPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:417,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:421,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:425,1
    - Dst: PythonBootstrapperApplication::EnableMaxPathSupport
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:429,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:430,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 129
    argCount: 1
    argNames:
    - id
    argTypes:
    - CONTROL_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 436
    functionName: PythonBootstrapperApplication::OnCommand
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - SetVariableNumeric
    - PythonBootstrapperApplication::GoToPage
    - BalGetStringVariable
    - ::SHBrowseForFolderW
    - ExitOnFailure
    - ThemeGetTextControl
    - wcscmp
    - ::SHGetPathFromIDListW
    - PythonBootstrapperApplication::WillElevate
    - SetVariableString
    - PythonBootstrapperApplication::EnableMaxPathSupport
    - PythonBootstrapperApplication::OnClickCloseButton
    - ThemeIsControlChecked
    - ReleaseStr
    - BalGetNumericVariable
    - ThemeSetTextControl
    - ThemeControlElevates
    - PythonBootstrapperApplication::OnPlan
    - ThemeSendControlMessage
    - PythonBootstrapperApplication::EnsureTargetDir
    - PythonBootstrapperApplication::SavePageSettings
    - ThemeControlEnable
    - ::CoTaskMemFree
    - BalFormatString
    linkageType: ''
    returnType: void
    signature: void OnCommand(CONTROL_ID id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:440,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:441,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:442,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: PythonBootstrapperApplication::InstallPage_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::WillElevate
    - ThemeControlElevates
    linkageType: ''
    returnType: void
    signature: void InstallPage_Show()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:449,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:449,1
    - Dst: ThemeSendControlMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:453,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:460,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:460,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:462,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:462,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:466,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:466,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:467,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 469
    functionName: PythonBootstrapperApplication::Custom1Page_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeSendControlMessage
    - SUCCEEDED
    - LocGetString
    - ThemeSetTextControl
    - BalGetNumericVariable
    - FAILED
    linkageType: ''
    returnType: void
    signature: void Custom1Page_Show()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:475,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:475,1
    - Dst: PythonBootstrapperApplication::WillElevate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:479,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:480,1
    - Dst: ThemeShowControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:481,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:483,1
    - Dst: ThemeShowControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:484,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:487,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:487,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:488,1
    - Dst: ThemeSendControlMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:490,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:491,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:495,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:496,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:497,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:498,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:499,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:500,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:504,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:505,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:506,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:509,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:514,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:515,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:515,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:516,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:517,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:519,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 522
    functionName: PythonBootstrapperApplication::Custom2Page_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeSendControlMessage
    - SUCCEEDED
    - ThemeShowControl
    - ThemeSetTextControl
    - StrFree
    - BalFormatString
    - PythonBootstrapperApplication::WillElevate
    - BalGetNumericVariable
    - FAILED
    - ThemeControlElevates
    - ThemeControlEnable
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: void Custom2Page_Show()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 526
    functionName: PythonBootstrapperApplication::ModifyPage_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeControlEnable
    linkageType: ''
    returnType: void
    signature: void ModifyPage_Show()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:542,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:545,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:548,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:551,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:557,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:559,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:560,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:564,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:565,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:568,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:569,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:573,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:581,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:583,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:586,1
    - Dst: ThemeControlElevates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:589,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:593,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:595,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:596,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 599
    functionName: PythonBootstrapperApplication::SuccessPage_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - RegQueryValueExW
    - BalLog
    - StrFree
    - RegCloseKey
    - ThemeControlEnable
    - ThemeSetTextControl
    - LocGetString
    - ThemeControlElevates
    - IsWindowsVersionOrGreater
    - BalFormatString
    - RegOpenKeyExW
    linkageType: ''
    returnType: void
    signature: void SuccessPage_Show()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:609,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:615,1
    - Dst: StrAllocFromError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:618,1
    - Dst: StrAllocFromError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:620,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:626,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:629,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:633,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:637,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:638,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:645,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:646,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:647,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:648,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 649
    functionName: PythonBootstrapperApplication::FailurePage_Show
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocFormatted
    - StrAllocString
    - StrAllocFromError
    - ReleaseStr
    - ThemeControlEnable
    - ThemeSetTextControl
    - FAILED
    linkageType: ''
    returnType: void
    signature: void FailurePage_Show()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:653,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:654,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:655,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:660,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:662,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:675,1
    - Dst: ShellExecuteW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:676,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 678
    functionName: PythonBootstrapperApplication::EnableMaxPathSupport
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocFormatted
    - BalLog
    - ShellExecuteW
    - FAILED
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: void EnableMaxPathSupport()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::CreateThread
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:686,1
    - Dst: ExitWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 693
    functionName: PythonBootstrapperApplication::OnStartup
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ExitWithLastError
    - ::CreateThread
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP OnStartup()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _winapi_WaitForSingleObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:701,1
    - Dst: ReleaseHandle
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 711
    functionName: PythonBootstrapperApplication::OnShutdown
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - _winapi_WaitForSingleObject
    - ReleaseHandle
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnShutdown()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:721,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:722,1
    - Dst: PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:723,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:725,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:726,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:727,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:731,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:731,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:733,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:734,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:736,1
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 5
    argNames:
    - wzPackageId
    - LPCWSTR
    - fPerMachine
    - DWORD64
    - BOOTSTRAPPER_RELATED_OPERATION
    argTypes:
    - __in_z
    - __in_z
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 739
    functionName: PythonBootstrapperApplication::OnDetectRelatedMsiPackage
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalGetNumericVariable
    - PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    - BalLog
    - CheckCanceled
    - SetVariableNumeric
    - ::CompareStringW
    - FAILED
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnDetectRelatedMsiPackage(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in_z LPCWSTR /*wzProductCode*/,\n        __in BOOL fPerMachine,\n
      \       __in DWORD64 /*dw64Version*/,\n        __in BOOTSTRAPPER_RELATED_OPERATION
      operation\n    )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BalInfoAddRelatedBundleAsPackage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:749,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:755,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:758,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:762,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:762,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:763,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:765,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:767,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:772,1
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - wzBundleId
    - BOOTSTRAPPER_RELATION_TYPE relationType
    - LPCWSTR
    - fPerMachine
    - DWORD64
    - BOOTSTRAPPER_RELATED_OPERATION
    argTypes:
    - __in
    - __in
    - __in
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 777
    functionName: PythonBootstrapperApplication::OnDetectRelatedBundle
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - BalLog
    - CheckCanceled
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - BalInfoAddRelatedBundleAsPackage
    - LocGetString
    - BalFormatString
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnDetectRelatedBundle(\n        __in LPCWSTR wzBundleId,\n
      \       __in BOOTSTRAPPER_RELATION_TYPE relationType,\n        __in LPCWSTR
      /*wzBundleTag*/,\n        __in BOOL fPerMachine,\n        __in DWORD64 /*dw64Version*/,\n
      \       __in BOOTSTRAPPER_RELATED_OPERATION operation\n    )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:785,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:791,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:794,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:796,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:799,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:804,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:804,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:811,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:812,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:813,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:814,1
    - Dst: PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:816,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:818,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:819,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:820,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - wzPackageId
    - hrStatus
    - BOOTSTRAPPER_PACKAGE_STATE
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 823
    functionName: PythonBootstrapperApplication::OnDetectPackageComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalGetNumericVariable
    - PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    - SUCCEEDED
    - BalLog
    - SetVariableString
    - SetVariableNumeric
    - ::CompareStringW
    - FAILED
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnDetectPackageComplete(\n        __in LPCWSTR wzPackageId,\n
      \       __in HRESULT hrStatus,\n        __in BOOTSTRAPPER_PACKAGE_STATE state\n
      \   )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:827,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:828,1
    - Dst: PythonBootstrapperApplication::OnDetectComplete
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:829,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:832,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:834,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:834,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:836,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:840,1
    - Dst: PythonBootstrapperApplication::EvaluateConditions
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:841,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:844,1
    - Dst: PythonBootstrapperApplication::EnsureTargetDir
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:846,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:849,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:857,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:858,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 861
    functionName: PythonBootstrapperApplication::OnDetectComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::PostMessageW
    - SUCCEEDED
    - BalLog
    - PythonBootstrapperApplication::EnsureTargetDir
    - PythonBootstrapperApplication::OnDetectComplete
    - SetVariableNumeric
    - PythonBootstrapperApplication::SetState
    - BalGetNumericVariable
    - PythonBootstrapperApplication::EvaluateConditions
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnDetectComplete(__in HRESULT hrStatus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LPCWSTR
    - BOOTSTRAPPER_REQUEST_STATE* pRequestedState
    argTypes:
    - __in_z
    - __inout_z
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: PythonBootstrapperApplication::OnPlanRelatedBundle
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - CheckCanceled
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnPlanRelatedBundle(\n        __in_z LPCWSTR /*wzBundleId*/,\n
      \       __inout_z BOOTSTRAPPER_REQUEST_STATE* pRequestedState\n    )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:882,1
    - Dst: ReleaseNullStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:888,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:891,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:896,1
    - Dst: BalInfoFindPackageById
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:896,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:898,1
    - Dst: EvaluateCondition
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:898,1
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:903,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - wzPackageId
    - BOOTSTRAPPER_REQUEST_STATE *pRequestState
    argTypes:
    - __in_z
    - __inout
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 904
    functionName: PythonBootstrapperApplication::OnPlanPackageBegin
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ReleaseNullStr
    - SUCCEEDED
    - BalLog
    - EvaluateCondition
    - CheckCanceled
    - BalInfoFindPackageById
    - ::CompareStringW
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnPlanPackageBegin(\n        __in_z LPCWSTR wzPackageId,\n
      \       __inout BOOTSTRAPPER_REQUEST_STATE *pRequestState\n    )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:913,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:913,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:914,1
    - Dst: GetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:914,1
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - wzPackageId
    - wzFeatureId
    - BOOTSTRAPPER_FEATURE_STATE* pRequestedState
    argTypes:
    - __in_z
    - __in_z
    - __inout
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 923
    functionName: PythonBootstrapperApplication::OnPlanMsiFeature
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - GetVariableNumeric
    - wcscmp
    - CheckCanceled
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnPlanMsiFeature(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in_z LPCWSTR wzFeatureId,\n        __inout BOOTSTRAPPER_FEATURE_STATE*
      pRequestedState\n    )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:926,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:927,1
    - Dst: PythonBootstrapperApplication::OnPlanComplete
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:928,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:931,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:933,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:934,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: PythonBootstrapperApplication::OnPlanComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::PostMessageW
    - SUCCEEDED
    - BalLog
    - PythonBootstrapperApplication::OnPlanComplete
    - PythonBootstrapperApplication::SetState
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnPlanComplete(__in HRESULT hrStatus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalInfoFindPackageById
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:950,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:951,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:953,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:957,1
    - Dst: PythonBootstrapperApplication::OnCachePackageBegin
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:961,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - wzPackageId
    - cCachePayloads
    - dw64PackageCacheSize
    argTypes:
    - __in_z
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 962
    functionName: PythonBootstrapperApplication::OnCachePackageBegin
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - SUCCEEDED
    - BalInfoFindPackageById
    - ThemeSetTextControl
    - PythonBootstrapperApplication::OnCachePackageBegin
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnCachePackageBegin(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in DWORD cCachePayloads,\n        __in DWORD64 dw64PackageCacheSize\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:975,1
    - Dst: ::StringCchPrintfW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:978,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:978,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:979,1
    - Dst: ThemeSetProgressControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:981,1
    - Dst: ThemeSetProgressControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:984,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:986,1
    - Dst: PythonBootstrapperApplication::OnCacheAcquireProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - wzPackageOrContainerId
    - wzPayloadId
    - dw64Progress
    - dw64Total
    - dwOverallPercentage
    argTypes:
    - __in_z
    - __in_z_opt
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 989
    functionName: PythonBootstrapperApplication::OnCacheAcquireProgress
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalLog
    - PythonBootstrapperApplication::OnCacheAcquireProgress
    - countof
    - ::StringCchPrintfW
    - ThemeSetTextControl
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnCacheAcquireProgress(\n        __in_z LPCWSTR wzPackageOrContainerId,\n
      \       __in_z_opt LPCWSTR wzPayloadId,\n        __in DWORD64 dw64Progress,\n
      \       __in DWORD64 dw64Total,\n        __in DWORD dwOverallPercentage\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:998,1
    - Dst: PythonBootstrapperApplication::OnCacheAcquireComplete
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - wzPackageOrContainerId
    - wzPayloadId
    - hrStatus
    - nRecommendation
    argTypes:
    - __in_z
    - __in_z_opt
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1000
    functionName: PythonBootstrapperApplication::OnCacheAcquireComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::SetProgressState
    - PythonBootstrapperApplication::OnCacheAcquireComplete
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnCacheAcquireComplete(\n        __in_z LPCWSTR wzPackageOrContainerId,\n
      \       __in_z_opt LPCWSTR wzPayloadId,\n        __in HRESULT hrStatus,\n        __in
      int nRecommendation\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1009,1
    - Dst: PythonBootstrapperApplication::OnCacheVerifyComplete
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - wzPackageId
    - wzPayloadId
    - hrStatus
    - nRecommendation
    argTypes:
    - __in_z
    - __in_z
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1011
    functionName: PythonBootstrapperApplication::OnCacheVerifyComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::SetProgressState
    - PythonBootstrapperApplication::OnCacheVerifyComplete
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnCacheVerifyComplete(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in_z LPCWSTR wzPayloadId,\n        __in HRESULT hrStatus,\n        __in
      int nRecommendation\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1015,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - HRESULT
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1017
    functionName: PythonBootstrapperApplication::OnCacheComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - ThemeSetTextControl
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnCacheComplete(__in HRESULT /*hrStatus*/)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SendEmbeddedError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1034,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1035,1
    - Dst: BalRetryErrorOccurred
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1044,1
    - Dst: StrAllocFromError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1049,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1050,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1051,1
    - Dst: ::MessageBoxW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1055,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1059,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1059,1
    - Dst: BalRetryErrorOccurred
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1062,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1065,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 7
    argNames:
    - BOOTSTRAPPER_ERROR_TYPE
    - wzPackageId
    - dwCode
    - LPCWSTR
    - dwUIHint
    - DWORD
    - nRecommendation
    argTypes:
    - __in
    - __in
    - __in
    - __in_z
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1067
    functionName: PythonBootstrapperApplication::OnError
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - StrAllocFormatted
    - StrAllocFromError
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication::SetProgressState
    - ReleaseStr
    - FAILED
    - ::MessageBoxW
    - SendEmbeddedError
    - BalRetryErrorOccurred
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnError(\n        __in BOOTSTRAPPER_ERROR_TYPE errorType,\n
      \       __in LPCWSTR wzPackageId,\n        __in DWORD dwCode,\n        __in_z
      LPCWSTR wzError,\n        __in DWORD dwUIHint,\n        __in DWORD /*cData*/,\n
      \       __in_ecount_z_opt(cData) LPCWSTR* /*rgwzData*/,\n        __in int nRecommendation\n
      \   )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1080,1
    - Dst: ::MessageBoxW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1083,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1088,1
    - Dst: PythonBootstrapperApplication::OnExecuteMsiMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1091,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 7
    argNames:
    - wzPackageId
    - INSTALLMESSAGE
    - uiFlags
    - wzMessage
    - DWORD
    - rgwzData
    - nRecommendation
    argTypes:
    - __in_z
    - __in
    - __in
    - __in_z
    - __in
    - __in_ecount_z_opt*
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1092
    functionName: PythonBootstrapperApplication::OnExecuteMsiMessage
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnExecuteMsiMessage
    - ThemeSetTextControl
    - BalLog
    - ::MessageBoxW
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnExecuteMsiMessage(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in INSTALLMESSAGE mt,\n        __in UINT uiFlags,\n        __in_z
      LPCWSTR wzMessage,\n        __in DWORD cData,\n        __in_ecount_z_opt(cData)
      LPCWSTR* rgwzData,\n        __in int nRecommendation\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1099,1
    - Dst: ::StringCchPrintfW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1102,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1102,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1103,1
    - Dst: ThemeSetProgressControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1105,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1106,1
    - Dst: PythonBootstrapperApplication::OnProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dwProgressPercentage
    - dwOverallProgressPercentage
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1109
    functionName: PythonBootstrapperApplication::OnProgress
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnProgress
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalLog
    - countof
    - ::StringCchPrintfW
    - ThemeSetTextControl
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnProgress(__in DWORD dwProgressPercentage, __in DWORD
      dwOverallProgressPercentage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BalInfoFindPackageById
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1119,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1127,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1131,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1135,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1142,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1150,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1151,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1156,1
    - Dst: PythonBootstrapperApplication::OnExecutePackageBegin
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1157,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - wzPackageId
    - fExecute
    argTypes:
    - __in_z
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1158
    functionName: PythonBootstrapperApplication::OnExecutePackageBegin
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::OnExecutePackageBegin
    - BalInfoFindPackageById
    - ReleaseStr
    - ThemeSetTextControl
    - LocGetString
    - BalFormatString
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnExecutePackageBegin(__in_z LPCWSTR wzPackageId, __in
      BOOL fExecute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1169,1
    - Dst: ::StringCchPrintfW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1172,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1172,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1173,1
    - Dst: ThemeSetProgressControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1175,1
    - Dst: ThemeSetProgressControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1178,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1180,1
    - Dst: PythonBootstrapperApplication::OnExecuteProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - wzPackageId
    - dwProgressPercentage
    - dwOverallProgressPercentage
    argTypes:
    - __in_z
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1183
    functionName: PythonBootstrapperApplication::OnExecuteProgress
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ThemeSetProgressControl
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - PythonBootstrapperApplication::OnExecuteProgress
    - BalLog
    - countof
    - ::StringCchPrintfW
    - ThemeSetTextControl
    linkageType: ''
    returnType: int
    signature: "int OnExecuteProgress(\n        __in_z LPCWSTR wzPackageId,\n        __in
      DWORD dwProgressPercentage,\n        __in DWORD dwOverallProgressPercentage\n
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1192,1
    - Dst: _wcsnicmp
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1194,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1194,1
    - Dst: SendMessageTimeoutW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1195,1
    - Dst: reinterpret_cast<LPARAM>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1199,1
    - Dst: PythonBootstrapperApplication::OnExecutePackageComplete
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - wzPackageId
    - hrExitCode
    - BOOTSTRAPPER_APPLY_RESTART
    - nRecommendation
    argTypes:
    - __in_z
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1209
    functionName: PythonBootstrapperApplication::OnExecutePackageComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - _wcsnicmp
    - SUCCEEDED
    - PythonBootstrapperApplication::SetProgressState
    - SendMessageTimeoutW
    - reinterpret_cast<LPARAM>
    - PythonBootstrapperApplication::OnExecutePackageComplete
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnExecutePackageComplete(\n        __in_z LPCWSTR wzPackageId,\n
      \       __in HRESULT hrExitCode,\n        __in BOOTSTRAPPER_APPLY_RESTART restart,\n
      \       __in int nRecommendation\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1213,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1214,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1215,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1216,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1218,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1220
    functionName: PythonBootstrapperApplication::OnExecuteComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ThemeControlEnable
    - ThemeSetTextControl
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::SetProgressState
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnExecuteComplete(__in HRESULT hrStatus)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ::StringCchCopyW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1239,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1239,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1244,1
    - Dst: ::GetOpenFileNameW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1250,1
    - Dst: SetLocalSource
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1251,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1252,1
    - Dst: CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - wzPackageOrContainerId
    - wzPayloadId
    - wzLocalSource
    - wzDownloadSource
    argTypes:
    - __in_z
    - __in_z_opt
    - __in_z
    - __in_z_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1264
    functionName: PythonBootstrapperApplication::OnResolveSource
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - ::GetOpenFileNameW
    - CheckCanceled
    - SetLocalSource
    - countof
    - ::StringCchCopyW
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: "STDMETHODIMP_ OnResolveSource(\n        __in_z LPCWSTR wzPackageOrContainerId,\n
      \       __in_z_opt LPCWSTR wzPayloadId,\n        __in_z LPCWSTR wzLocalSource,\n
      \       __in_z_opt LPCWSTR wzDownloadSource\n    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1277,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1280,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - hrStatus
    - BOOTSTRAPPER_APPLY_RESTART
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1284
    functionName: PythonBootstrapperApplication::OnApplyComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - Sleep
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnApplyComplete(__in HRESULT hrStatus, __in BOOTSTRAPPER_APPLY_RESTART
      restart)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hrStatus
    - DWORD
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1287
    functionName: PythonBootstrapperApplication::OnLaunchApprovedExeComplete
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP_
    signature: STDMETHODIMP_ OnLaunchApprovedExeComplete(__in HRESULT hrStatus, __in
      DWORD /*processId*/)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ::CoInitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1302,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1303,1
    - Dst: ThemeInitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1306,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1307,1
    - Dst: PythonBootstrapperApplication*::InitializeData
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1309,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1310,1
    - Dst: PythonBootstrapperApplication*::InitializeTaskbarButton
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1313,1
    - Dst: PythonBootstrapperApplication*::CreateMainWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1314,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1315,1
    - Dst: PythonBootstrapperApplication*::ValidateOperatingSystem
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1317,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1319,1
    - Dst: PythonBootstrapperApplication*::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1320,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1321,1
    - Dst: PythonBootstrapperApplication*::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1324,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1325,1
    - Dst: ::GetMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1329,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1332,1
    - Dst: ThemeHandleKeyboardMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1333,1
    - Dst: ::TranslateMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1334,1
    - Dst: ::DispatchMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1335,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1341,1
    - Dst: PythonBootstrapperApplication*::CheckCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1343,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1344,1
    - Dst: PythonBootstrapperApplication*::DestroyMainWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1349,1
    - Dst: HRESULT_CODE
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1352,1
    - Dst: PythonBootstrapperApplication*::_engine::Quit
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1358,1
    - Dst: ReleaseTheme
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1360,1
    - Dst: ThemeUninitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1361,1
    - Dst: ::CoUninitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1365,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 1
    argNames:
    - pvContext
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1369
    functionName: PythonBootstrapperApplication::UiThreadProc
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ThemeHandleKeyboardMessage
    - PythonBootstrapperApplication*::InitializeTaskbarButton
    - PythonBootstrapperApplication*::ValidateOperatingSystem
    - ::CoInitialize
    - PythonBootstrapperApplication*::DestroyMainWindow
    - FAILED
    - PythonBootstrapperApplication*::InitializeData
    - ::DispatchMessageW
    - PythonBootstrapperApplication*::CheckCanceled
    - ThemeInitialize
    - HRESULT_FROM_WIN32
    - ReleaseTheme
    - ::CoUninitialize
    - HRESULT_CODE
    - ThemeUninitialize
    - ::GetMessageW
    - PythonBootstrapperApplication*::CreateMainWindow
    - ::PostMessageW
    - BalExitOnFailure
    - ::TranslateMessage
    - PythonBootstrapperApplication*::_engine::Quit
    - PythonBootstrapperApplication*::SetState
    linkageType: ''
    returnType: DWORD
    signature: DWORD UiThreadProc(__in LPVOID pvContext)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1389,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1390,1
    - Dst: FileExistsEx
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1392,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1393,1
    - Dst: XmlLoadDocumentFromFile
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1398,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1399,1
    - Dst: XmlSelectNodes
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1402,1
    - Dst: ExitFunction1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1404,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1406,1
    - Dst: IXMLDOMNodeList*::get_length
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1408,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1409,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1411,1
    - Dst: XmlNextElement
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1414,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1415,1
    - Dst: XmlGetAttributeEx
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1418,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1419,1
    - Dst: XmlGetAttribute
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1422,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1423,1
    - Dst: XmlGetText
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1424,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1427,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1430,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1431,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1433,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1434,1
    - Dst: ::StrToIntExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1435,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1436,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1438,1
    - Dst: ReleaseNullBSTR
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1441,1
    - Dst: ReleaseNullStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1442,1
    - Dst: ReleaseNullObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1443,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1446,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1449,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1450,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1451,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1452,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1375
    functionDepth: 0
    functionLinenumber: 1375
    functionLinenumberEnd: 1455
    functionName: PythonBootstrapperApplication::ParseVariablesFromUnattendXml
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - XmlNextElement
    - SetVariableNumeric
    - ReleaseNullBSTR
    - ::StrToIntExW
    - ReleaseNullObject
    - ReleaseObject
    - SetVariableString
    - ::CompareStringW
    - FAILED
    - XmlSelectNodes
    - ReleaseNullStr
    - BalLog
    - XmlGetAttribute
    - XmlGetText
    - ReleaseStr
    - BalExitOnFailure1
    - BalExitOnFailure
    - FileExistsEx
    - XmlLoadDocumentFromFile
    - ExitFunction1
    - IXMLDOMNodeList*::get_length
    - XmlGetAttributeEx
    - BalFormatString
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ParseVariablesFromUnattendXml()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BalManifestLoad
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1466,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1467,1
    - Dst: PythonBootstrapperApplication::ParseOverridableVariablesFromXml
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1469,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1470,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStates
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1473,1
    - Dst: PythonBootstrapperApplication::ParseVariablesFromUnattendXml
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1476,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1477,1
    - Dst: PythonBootstrapperApplication::ProcessCommandLine
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1479,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1480,1
    - Dst: PathRelativeToModule
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1482,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1483,1
    - Dst: PythonBootstrapperApplication::LoadLocalization
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1485,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1486,1
    - Dst: PythonBootstrapperApplication::LoadTheme
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1488,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1489,1
    - Dst: BalInfoParseFromXml
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1491,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1492,1
    - Dst: BalConditionsParseFromXml
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1494,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1495,1
    - Dst: PythonBootstrapperApplication::LoadBootstrapperBAFunctions
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1497,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1498,1
    - Dst: PythonBootstrapperApplication::UpdateUIStrings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1500,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1501,1
    - Dst: PythonBootstrapperApplication::GetBundleFileVersion
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1503,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1506,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1510
    functionName: PythonBootstrapperApplication::InitializeData
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalManifestLoad
    - PythonBootstrapperApplication::ProcessCommandLine
    - PythonBootstrapperApplication::ParseVariablesFromUnattendXml
    - PathRelativeToModule
    - PythonBootstrapperApplication::LoadLocalization
    - PythonBootstrapperApplication::LoadBootstrapperBAFunctions
    - ExitOnFailure
    - BalExitOnFailure
    - PythonBootstrapperApplication::GetBundleFileVersion
    - PythonBootstrapperApplication::LoadTheme
    - ReleaseObject
    - PythonBootstrapperApplication::LoadOptionalFeatureStates
    - ReleaseStr
    - BalConditionsParseFromXml
    - PythonBootstrapperApplication::ParseOverridableVariablesFromXml
    - BalInfoParseFromXml
    - PythonBootstrapperApplication::UpdateUIStrings
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT InitializeData()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ::CommandLineToArgvW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1524,1
    - Dst: ExitOnNullWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1525,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1529,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1532,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1537,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1538,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1539,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1540,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1544,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1546,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1547,1
    - Dst: DictKeyExists
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1549,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1551,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1555,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1557,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1558,1
    - Dst: ::StrToIntEx
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1560,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1561,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1563,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1565,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1567,1
    - Dst: ::LocalFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1575,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1578,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1579,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - psczLanguage
    argTypes:
    - __inout*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1516
    functionDepth: 0
    functionLinenumber: 1516
    functionLinenumberEnd: 1582
    functionName: PythonBootstrapperApplication::ProcessCommandLine
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocString
    - wcschr
    - BalLog
    - BalExitOnFailure
    - ExitOnFailure
    - SetVariableString
    - ::StrToIntEx
    - SetVariableNumeric
    - DictKeyExists
    - ::CommandLineToArgvW
    - ReleaseStr
    - ::LocalFree
    - ::CompareStringW
    - ExitOnNullWithLastError
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ProcessCommandLine(__inout LPWSTR* psczLanguage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LocProbeForFile
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1589,1
    - Dst: BalExitOnFailure2
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1590,1
    - Dst: LocLoadFromFile
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1592,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1593,1
    - Dst: ::SetThreadLocale
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1596,1
    - Dst: StrAllocString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1599,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1600,1
    - Dst: LocLocalizeString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1602,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1603,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - wzModulePath
    - wzLanguage
    argTypes:
    - __in_z
    - __in_z_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1609
    functionName: PythonBootstrapperApplication::LoadLocalization
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocString
    - BalExitOnFailure1
    - LocLoadFromFile
    - BalExitOnFailure2
    - ::SetThreadLocale
    - ExitOnFailure
    - LocLocalizeString
    - ReleaseStr
    - LocProbeForFile
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT LoadLocalization(__in_z LPCWSTR wzModulePath, __in_z_opt LPCWSTR
      wzLanguage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LocProbeForFile
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1618,1
    - Dst: BalExitOnFailure2
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1619,1
    - Dst: ThemeLoadFromFile
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1621,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1622,1
    - Dst: ThemeLocalize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1624,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1625,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1631,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1632,1
    - Dst: ThemeUpdateCaption
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1633,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1637,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - wzModulePath
    - wzLanguage
    argTypes:
    - __in_z
    - __in_z_opt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1641
    functionName: PythonBootstrapperApplication::LoadTheme
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - BalExitOnFailure1
    - ThemeUpdateCaption
    - ThemeLocalize
    - SUCCEEDED
    - BalExitOnFailure2
    - ReleaseStr
    - ThemeLoadFromFile
    - BalFormatString
    - LocProbeForFile
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT LoadTheme(__in_z LPCWSTR wzModulePath, __in_z_opt LPCWSTR wzLanguage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XmlSelectNodes
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1653,1
    - Dst: ExitFunction1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1655,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1657,1
    - Dst: IXMLDOMNodeList*::get_length
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1659,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1660,1
    - Dst: DictCreateStringList
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1663,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1664,1
    - Dst: XmlNextElement
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1667,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1668,1
    - Dst: XmlGetAttributeEx
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1671,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1672,1
    - Dst: XmlGetYesNoAttribute
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1674,1
    - Dst: DictAddKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1677,1
    - Dst: ExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1678,1
    - Dst: ReleaseNullObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1682,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1687,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1688,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - IXMLDOMDocument* pixdManifest
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1691
    functionName: PythonBootstrapperApplication::ParseOverridableVariablesFromXml
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - XmlSelectNodes
    - XmlNextElement
    - ReleaseNullObject
    - ExitOnFailure
    - ExitOnFailure1
    - DictAddKey
    - ExitFunction1
    - XmlGetAttributeEx
    - ReleaseObject
    - ReleaseStr
    - XmlGetYesNoAttribute
    - IXMLDOMNodeList*::get_length
    - DictCreateStringList
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT ParseOverridableVariablesFromXml(__in IXMLDOMDocument* pixdManifest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PathForCurrentProcess
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1702,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1703,1
    - Dst: FileVersion
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1705,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1706,1
    - Dst: SetVariableVersion
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1708,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1709,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1715
    functionName: PythonBootstrapperApplication::GetBundleFileVersion
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - SetVariableVersion
    - BalExitOnFailure
    - ReleaseStr
    - PathForCurrentProcess
    - FileVersion
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT GetBundleFileVersion()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<HICON>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1723,1
    - Dst: ::GetModuleHandleW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1736,1
    - Dst: ::LoadIconW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1738,1
    - Dst: MAKEINTRESOURCEW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1738,1
    - Dst: RGB
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1742,1
    - Dst: RGB
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1743,1
    - Dst: PythonBootstrapperApplication::RemapColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1750,1
    - Dst: ::LoadCursorW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1757,1
    - Dst: ::RegisterClassW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1761,1
    - Dst: ExitWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1762,1
    - Dst: ::IsWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1774,1
    - Dst: ::GetCursorPos
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1779,1
    - Dst: ::MonitorFromPoint
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1780,1
    - Dst: ::GetMonitorInfoW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1783,1
    - Dst: ::CreateWindowExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1790,1
    - Dst: ExitOnNullWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1804,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1810
    functionName: PythonBootstrapperApplication::CreateMainWindow
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::GetMonitorInfoW
    - ::LoadIconW
    - ::GetCursorPos
    - ::LoadCursorW
    - ::CreateWindowExW
    - MAKEINTRESOURCEW
    - ::GetModuleHandleW
    - reinterpret_cast<HICON>
    - RGB
    - ::IsWindow
    - ::MonitorFromPoint
    - ExitWithLastError
    - PythonBootstrapperApplication::RemapColor
    - ::RegisterClassW
    - ExitOnNullWithLastError
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT CreateMainWindow()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::CoCreateInstance
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1819,1
    - Dst: __uuidof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1819,1
    - Dst: reinterpret_cast<LPVOID*>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1819,1
    - Dst: ExitFunction1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1822,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1824,1
    - Dst: ::RegisterWindowMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1826,1
    - Dst: BalExitOnNullWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1831
    functionName: PythonBootstrapperApplication::InitializeTaskbarButton
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - BalExitOnFailure
    - ::CoCreateInstance
    - BalExitOnNullWithLastError
    - ExitFunction1
    - __uuidof
    - ::RegisterWindowMessageW
    - reinterpret_cast<LPVOID*>
    linkageType: ''
    returnType: void
    signature: void InitializeTaskbarButton()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ::IsWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1837,1
    - Dst: ::DestroyWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1838,1
    - Dst: ::UnregisterClassW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1836
    functionDepth: 0
    functionLinenumber: 1836
    functionLinenumberEnd: 1847
    functionName: PythonBootstrapperApplication::DestroyMainWindow
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::DestroyWindow
    - ::IsWindow
    - ::UnregisterClassW
    linkageType: ''
    returnType: void
    signature: void DestroyMainWindow()
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PythonBootstrapperApplication*>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1860,1
    - Dst: ::GetWindowLongPtrW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1860,1
    - Dst: reinterpret_cast<LPCREATESTRUCT>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1864,1
    - Dst: reinterpret_cast<PythonBootstrapperApplication*>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1865,1
    - Dst: ::SetWindowLongPtrW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1867,1
    - Dst: reinterpret_cast<LONG_PTR>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1867,1
    - Dst: ThemeDefWindowProc
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1872,1
    - Dst: ::SetWindowLongPtrW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1873,1
    - Dst: auto::OnCreate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1878,1
    - Dst: auto::OnSystemShutdown
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1884,1
    - Dst: static_cast<DWORD>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1884,1
    - Dst: auto::OnClose
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1888,1
    - Dst: ::PostQuitMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1894,1
    - Dst: auto::OnShowHelp
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1905,1
    - Dst: auto::OnDetect
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1909,1
    - Dst: auto::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1913,1
    - Dst: static_cast<BOOTSTRAPPER_ACTION>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1913,1
    - Dst: auto::OnApply
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1917,1
    - Dst: auto::OnChangeState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1921,1
    - Dst: static_cast<PYBA_STATE>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1921,1
    - Dst: auto::OnShowFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1925,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1929,1
    - Dst: auto::OnClickRestartButton
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1934,1
    - Dst: auto::OnCommand
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1946,1
    - Dst: auto::OnCommand
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1950,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1950,1
    - Dst: reinterpret_cast<LPNMHDR>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1956,1
    - Dst: static_cast<DWORD>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1960,1
    - Dst: auto::OnClickLogFileLink
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1962,1
    - Dst: auto::SetControlColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1973,1
    - Dst: ThemeDefWindowProc
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1985,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 109
    argCount: 4
    argNames:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    argTypes:
    - __in
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1853
    functionDepth: 0
    functionLinenumber: 1853
    functionLinenumberEnd: 1986
    functionName: PythonBootstrapperApplication::WndProc
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - auto::OnDetect
    - static_cast<DWORD>
    - auto::OnChangeState
    - reinterpret_cast<LONG_PTR>
    - ThemeDefWindowProc
    - auto::SetControlColor
    - auto::OnSystemShutdown
    - reinterpret_cast<LPCREATESTRUCT>
    - auto::OnClickRestartButton
    - static_cast<PYBA_STATE>
    - auto::OnPlan
    - LOWORD
    - auto::OnCommand
    - static_cast<BOOTSTRAPPER_ACTION>
    - auto::OnShowFailure
    - ::GetWindowLongPtrW
    - reinterpret_cast<LPNMHDR>
    - ::PostQuitMessage
    - auto::OnClickLogFileLink
    - ::SetWindowLongPtrW
    - auto::OnCreate
    - auto::OnShowHelp
    - auto::OnApply
    - auto::OnClose
    - reinterpret_cast<PythonBootstrapperApplication*>
    linkageType: ''
    returnType: LRESULT
    signature: "LRESULT WndProc(\n        __in HWND hWnd,\n        __in UINT uMsg,\n
      \       __in WPARAM wParam,\n        __in LPARAM lParam\n    )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ThemeLoadControls
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1994,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1994,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1995,1
    - Dst: C_ASSERT
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1997,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1997,1
    - Dst: C_ASSERT
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1998,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1998,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:1998,1
    - Dst: ThemeGetPageIds
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2000,1
    - Dst: countof
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2000,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2014,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2015,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2016,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2017,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - HWND
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 1991
    functionDepth: 0
    functionLinenumber: 1991
    functionLinenumberEnd: 2024
    functionName: PythonBootstrapperApplication::OnCreate
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - SUCCEEDED
    - C_ASSERT
    - BalExitOnFailure
    - ThemeLoadControls
    - ThemeSetTextControl
    - ReleaseStr
    - ThemeGetPageIds
    - countof
    - BalFormatString
    linkageType: ''
    returnType: BOOL
    signature: BOOL OnCreate(__in HWND hWnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RGB
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2027,1
    - Dst: GetSysColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2028,1
    - Dst: RGB
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2029,1
    - Dst: GetSysColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2030,1
    - Dst: RGB
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2032,1
    - Dst: GetSysColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2033,1
    - Dst: GetSysColorBrush
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2034,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fg
    - bg
    - bgBrush
    argTypes:
    - COLORREF*
    - COLORREF*
    - HBRUSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2036
    functionName: PythonBootstrapperApplication::RemapColor
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - GetSysColor
    - RGB
    - GetSysColorBrush
    linkageType: ''
    returnType: void
    signature: void RemapColor(COLORREF *fg, COLORREF *bg, HBRUSH *bgBrush)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::RemapColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2052,1
    - Dst: ::SetTextColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2053,1
    - Dst: ::SetBkColor
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - hWnd
    - hDC
    - brush
    argTypes:
    - HWND
    - HDC
    - HBRUSH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2059
    functionName: PythonBootstrapperApplication::SetControlColor
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::RemapColor
    - ::SetBkColor
    - ::SetTextColor
    linkageType: ''
    returnType: BOOL
    signature: BOOL SetControlColor(HWND hWnd, HDC hDC, HBRUSH *brush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2065,1
    - Dst: ::ShowWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2069,1
    - Dst: CloseSplashScreen
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2064
    functionDepth: 1
    functionLinenumber: 2064
    functionLinenumberEnd: 2075
    functionName: PythonBootstrapperApplication::OnShowFailure
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - CloseSplashScreen
    - ::ShowWindow
    linkageType: ''
    returnType: void
    signature: void OnShowFailure()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2082,1
    - Dst: ::ShowWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2086,1
    - Dst: CloseSplashScreen
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2081
    functionDepth: 1
    functionLinenumber: 2081
    functionLinenumberEnd: 2092
    functionName: PythonBootstrapperApplication::OnShowHelp
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetState
    - CloseSplashScreen
    - ::ShowWindow
    linkageType: ''
    returnType: void
    signature: void OnShowHelp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2102,1
    - Dst: PythonBootstrapperApplication::OnDetect
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2103,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2104,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2107,1
    - Dst: ::ShowWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2111,1
    - Dst: CloseSplashScreen
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2114,1
    - Dst: Detect
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2117,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2118,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2121,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2126
    functionName: PythonBootstrapperApplication::OnDetect
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - CloseSplashScreen
    - PythonBootstrapperApplication::OnDetect
    - BalLog
    - Detect
    - BalExitOnFailure
    - PythonBootstrapperApplication::SetState
    - FAILED
    - ::ShowWindow
    linkageType: ''
    returnType: void
    signature: void OnDetect()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2156,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2157,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2158,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2159,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2161,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2163,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2170,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2171,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2172,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2173,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2175,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - BOOTSTRAPPER_ACTION
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2128
    functionDepth: 0
    functionLinenumber: 2128
    functionLinenumberEnd: 2181
    functionName: PythonBootstrapperApplication::UpdateUIStrings
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocFormatted
    - SUCCEEDED
    - ReleaseStr
    - SetVariableString
    - LocGetString
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT UpdateUIStrings(__in BOOTSTRAPPER_ACTION action)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::UpdateUIStrings
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2191,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2192,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2197,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2199,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2200,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2204,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2207,1
    - Dst: PythonBootstrapperApplication::OnPlan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2208,1
    - Dst: Plan
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2211,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2212,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2215,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - BOOTSTRAPPER_ACTION
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2186
    functionDepth: 1
    functionLinenumber: 2186
    functionLinenumberEnd: 2220
    functionName: PythonBootstrapperApplication::OnPlan
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - PythonBootstrapperApplication::OnPlan
    - BalLog
    - BalExitOnFailure
    - HRESULT_FROM_WIN32
    - PythonBootstrapperApplication::SetState
    - Plan
    - FAILED
    - PythonBootstrapperApplication::UpdateUIStrings
    linkageType: ''
    returnType: void
    signature: void OnPlan(__in BOOTSTRAPPER_ACTION action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2229,1
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2230,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonProgress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2231,1
    - Dst: Apply
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2233,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2234,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2236,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2239,1
    - Dst: PythonBootstrapperApplication::SetState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2226
    functionDepth: 1
    functionLinenumber: 2226
    functionLinenumberEnd: 2244
    functionName: PythonBootstrapperApplication::OnApply
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - Apply
    - PythonBootstrapperApplication::SetTaskbarButtonProgress
    - BalExitOnFailure
    - PythonBootstrapperApplication::SetProgressState
    - PythonBootstrapperApplication::SetState
    - ThemeControlEnable
    - FAILED
    linkageType: ''
    returnType: void
    signature: void OnApply()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StrAllocFromError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2261,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2261,1
    - Dst: ::MessageBoxW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2263,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2272,1
    - Dst: PythonBootstrapperApplication::DeterminePageId
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2275,1
    - Dst: PythonBootstrapperApplication::ShowPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2278,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - PYBA_STATE
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2250
    functionDepth: 2
    functionLinenumber: 2250
    functionLinenumberEnd: 2283
    functionName: PythonBootstrapperApplication::OnChangeState
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - StrAllocFromError
    - ::PostMessageW
    - PythonBootstrapperApplication::ShowPage
    - PythonBootstrapperApplication::DeterminePageId
    - HRESULT_FROM_WIN32
    - ReleaseStr
    - ::MessageBoxW
    linkageType: ''
    returnType: void
    signature: void OnChangeState(__in PYBA_STATE state)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::IsCheckable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2301,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2303,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2306,1
    - Dst: ThemeSendControlMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2309,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2313,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2321,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2322,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2324,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2325,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2328,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2328,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2329,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2334,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2335,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2337,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2338,1
    - Dst: ThemeShowControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2340,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2347,1
    - Dst: StrFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2349,1
    - Dst: StrAllocFormatted
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2356,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2357,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2359,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2360,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2362,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2363,1
    - Dst: ThemeSendControlMessage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2364,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2365,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2369,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2376,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2385,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2386,1
    - Dst: ThemeSetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2387,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - THEME_PAGE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2391
    functionName: PythonBootstrapperApplication::ProcessPageControls
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - StrAllocFormatted
    - ThemeSendControlMessage
    - PythonBootstrapperApplication::IsCheckable
    - SUCCEEDED
    - BalLog
    - ::CompareStringW
    - ThemeShowControl
    - ThemeSetTextControl
    - StrFree
    - BalFormatString
    - ReleaseStr
    - ThemeControlEnable
    - BalGetNumericVariable
    - LocGetString
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: void ProcessPageControls(THEME_PAGE *pPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PromptCancel
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2404,1
    - Dst: ThemeControlEnable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2396
    functionDepth: 0
    functionLinenumber: 2396
    functionLinenumberEnd: 2423
    functionName: PythonBootstrapperApplication::OnClose
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ThemeControlEnable
    - PromptCancel
    linkageType: ''
    returnType: BOOL
    signature: BOOL OnClose()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::SendMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2428
    functionDepth: 0
    functionLinenumber: 2428
    functionLinenumberEnd: 2430
    functionName: PythonBootstrapperApplication::OnClickCloseButton
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::SendMessageW
    linkageType: ''
    returnType: void
    signature: void OnClickCloseButton()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AssertSz
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2438,1
    - Dst: ::SendMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2437
    functionDepth: 0
    functionLinenumber: 2437
    functionLinenumberEnd: 2444
    functionName: PythonBootstrapperApplication::OnClickRestartButton
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - AssertSz
    - ::SendMessageW
    linkageType: ''
    returnType: void
    signature: void OnClickRestartButton()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2454,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2455,1
    - Dst: ShelExec
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2457,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2458,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2450
    functionDepth: 0
    functionLinenumber: 2450
    functionLinenumberEnd: 2464
    functionName: PythonBootstrapperApplication::OnClickLogFileLink
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ShelExec
    - BalExitOnFailure1
    - ReleaseStr
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: void OnClickLogFileLink()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2471,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2475,1
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - PYBA_STATE
    - hrStatus
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2470
    functionDepth: 0
    functionLinenumber: 2470
    functionLinenumberEnd: 2482
    functionName: PythonBootstrapperApplication::SetState
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 11
    functionsReached:
    - FAILED
    - ::PostMessageW
    linkageType: ''
    returnType: void
    signature: void SetState(__in PYBA_STATE state, __in HRESULT hrStatus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::PostMessageW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - PAGE
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2487
    functionDepth: 0
    functionLinenumber: 2487
    functionLinenumberEnd: 2490
    functionName: PythonBootstrapperApplication::GoToPage
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::PostMessageW
    linkageType: ''
    returnType: void
    signature: void GoToPage(__in PAGE page)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2558,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2558,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 2
    argNames:
    - PYBA_STATE
    - pdwPageId
    argTypes:
    - __in
    - __out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2492
    functionDepth: 0
    functionLinenumber: 2492
    functionLinenumberEnd: 2594
    functionName: PythonBootstrapperApplication::DeterminePageId
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - SUCCEEDED
    - BalGetNumericVariable
    linkageType: ''
    returnType: void
    signature: void DeterminePageId(__in PYBA_STATE state, __out DWORD* pdwPageId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2608,1
    - Dst: BalConditionEvaluate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2596
    functionDepth: 0
    functionLinenumber: 2596
    functionLinenumberEnd: 2609
    functionName: PythonBootstrapperApplication::WillElevate
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 3
    functionsReached:
    - SUCCEEDED
    - BalConditionEvaluate
    linkageType: ''
    returnType: BOOL
    signature: BOOL WillElevate()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GetFileVersionInfoSizeW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2623,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2629,1
    - Dst: GetFileVersionInfoW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2635,1
    - Dst: free
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2636,1
    - Dst: VerQueryValueW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2645,1
    - Dst: free
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2650,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2653
      start: 2611
    functionDepth: 0
    functionLinenumber: 2611
    functionLinenumberEnd: 2653
    functionName: PythonBootstrapperApplication::IsCrtInstalled
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - GetFileVersionInfoSizeW
    - VerQueryValueW
    - GetFileVersionInfoW
    - free
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsCrtInstalled()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BalConditionEvaluate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2662,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2663,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2667,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2671,1
    - Dst: ReleaseNullStrSecure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2679
      start: 2655
    functionDepth: 0
    functionLinenumber: 2655
    functionLinenumberEnd: 2679
    functionName: PythonBootstrapperApplication::EvaluateConditions
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ReleaseNullStrSecure
    - BalConditionEvaluate
    - BalExitOnFailure1
    - BalLog
    - BalExitOnFailure
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT EvaluateConditions()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SetProgressValue
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2686,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dwOverallPercentage
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2692
    functionName: PythonBootstrapperApplication::SetTaskbarButtonProgress
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 5
    functionsReached:
    - SetProgressValue
    - BalExitOnFailure1
    linkageType: ''
    returnType: void
    signature: void SetTaskbarButtonProgress(__in DWORD dwOverallPercentage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::SetProgressState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2699,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tbpFlags
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2695
    functionDepth: 1
    functionLinenumber: 2695
    functionLinenumberEnd: 2705
    functionName: PythonBootstrapperApplication::SetTaskbarButtonState
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::SetProgressState
    - BalExitOnFailure1
    linkageType: ''
    returnType: void
    signature: void SetTaskbarButtonState(__in TBPFLAG tbpFlags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsCanceled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2711,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2711,1
    - Dst: IsRollingBack
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2713,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2713,1
    - Dst: PythonBootstrapperApplication::SetTaskbarButtonState
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - hrStatus
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2708
    functionDepth: 2
    functionLinenumber: 2708
    functionLinenumberEnd: 2718
    functionName: PythonBootstrapperApplication::SetProgressState
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 7
    functionsReached:
    - IsCanceled
    - PythonBootstrapperApplication::SetTaskbarButtonState
    - HRESULT_FROM_WIN32
    - IsRollingBack
    - FAILED
    linkageType: ''
    returnType: void
    signature: void SetProgressState(__in HRESULT hrStatus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PathRelativeToModule
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2725,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2726,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2729,1
    - Dst: ::LoadLibraryW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2732,1
    - Dst: reinterpret_cast<PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2734,1
    - Dst: ::GetProcAddress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2734,1
    - Dst: BalExitOnNullWithLastError1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2735,1
    - Dst: pfnBAFunctionCreate
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2737,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2738,1
    - Dst: BalLogError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2742,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2742,1
    - Dst: _winapi_GetLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2742,1
    - Dst: ::FreeLibrary
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2748,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2721
    functionDepth: 2
    functionLinenumber: 2721
    functionLinenumberEnd: 2754
    functionName: PythonBootstrapperApplication::LoadBootstrapperBAFunctions
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ::FreeLibrary
    - PathRelativeToModule
    - BalLogError
    - BalLog
    - BalExitOnNullWithLastError1
    - BalExitOnFailure
    - HRESULT_FROM_WIN32
    - ::LoadLibraryW
    - _winapi_GetLastError
    - pfnBAFunctionCreate
    - ::GetProcAddress
    - ReleaseStr
    - reinterpret_cast<PFN_BOOTSTRAPPER_BA_FUNCTION_CREATE>
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT LoadBootstrapperBAFunctions()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pControl
    argTypes:
    - THEME_CONTROL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2756
    functionDepth: 0
    functionLinenumber: 2756
    functionLinenumberEnd: 2772
    functionName: PythonBootstrapperApplication::IsCheckable
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsCheckable(THEME_CONTROL* pControl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::DeterminePageId
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2778,1
    - Dst: ThemeGetPage
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2779,1
    - Dst: PythonBootstrapperApplication::IsCheckable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2788,1
    - Dst: ThemeControlEnabled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2788,1
    - Dst: ThemeIsControlChecked
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2789,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2790,1
    - Dst: ThemeGetTextControl
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2797,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2774
    functionDepth: 1
    functionLinenumber: 2774
    functionLinenumberEnd: 2801
    functionName: PythonBootstrapperApplication::SavePageSettings
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - PythonBootstrapperApplication::IsCheckable
    - PythonBootstrapperApplication::DeterminePageId
    - ThemeIsControlChecked
    - SetVariableNumeric
    - ThemeGetTextControl
    - ThemeGetPage
    - SetVariableString
    - ThemeControlEnabled
    linkageType: ''
    returnType: void
    signature: void SavePageSettings()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2807,1
    - Dst: GetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2807,1
    - Dst: ::CompareStringW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - IBootstrapperEngine* pEngine
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2812
      start: 2803
    functionDepth: 0
    functionLinenumber: 2803
    functionLinenumberEnd: 2812
    functionName: PythonBootstrapperApplication::IsTargetPlatformx64
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - GetVariableString
    - FAILED
    - ::CompareStringW
    linkageType: ''
    returnType: bool
    signature: bool IsTargetPlatformx64(__in IBootstrapperEngine* pEngine)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::IsTargetPlatformx64
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2822,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2823,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2825,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2831,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2835,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2837,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2839,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2841,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2842,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    - LPCWSTR
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2848
    functionName: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - HRESULT_FROM_WIN32
    - SetVariableNumeric
    - RegCloseKey
    - RegQueryValueExW
    - RegOpenKeyExW
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT LoadOptionalFeatureStatesFromKey(\n        __in IBootstrapperEngine*
      pEngine,\n        __in HKEY hkHive,\n        __in LPCWSTR subkey\n    )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PythonBootstrapperApplication::IsTargetPlatformx64
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2861,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2862,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2864,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2870,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2873,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2875,1
    - Dst: reinterpret_cast<wchar_t*>
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2875,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2877,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    - LPCWSTR
    argTypes:
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2850
    functionDepth: 1
    functionLinenumber: 2850
    functionLinenumberEnd: 2879
    functionName: PythonBootstrapperApplication::LoadTargetDirFromKey
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::IsTargetPlatformx64
    - HRESULT_FROM_WIN32
    - reinterpret_cast<wchar_t*>
    - RegCloseKey
    - SetVariableString
    - RegQueryValueExW
    - RegOpenKeyExW
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT LoadTargetDirFromKey(\n        __in IBootstrapperEngine* pEngine,\n
      \       __in HKEY hkHive,\n        __in LPCWSTR subkey\n    )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2890,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2896,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2899,1
    - Dst: HRESULT_FROM_WIN32
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2905,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - IBootstrapperEngine* pEngine
    - hkHive
    argTypes:
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2881
    functionDepth: 0
    functionLinenumber: 2881
    functionLinenumberEnd: 2910
    functionName: PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - RegCloseKey
    - HRESULT_FROM_WIN32
    - RegQueryValueExW
    - RegOpenKeyExW
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT LoadAssociateFilesStateFromKey(\n        __in IBootstrapperEngine*
      pEngine,\n        __in HKEY hkHive\n    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2923,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2924,1
    - Dst: GetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2929,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2930,1
    - Dst: FormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2932,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2933,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2937,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2938,1
    - Dst: PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2942,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2943,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2946,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2947,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2956,1
    - Dst: GetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2961,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2962,1
    - Dst: FormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2964,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2965,1
    - Dst: PythonBootstrapperApplication::LoadTargetDirFromKey
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2966,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - IBootstrapperEngine* pEngine
    argTypes:
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2912
    functionDepth: 2
    functionLinenumber: 2912
    functionLinenumberEnd: 2971
    functionName: PythonBootstrapperApplication::LoadOptionalFeatureStates
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - GetVariableString
    - BalExitOnFailure1
    - BalExitOnFailure
    - PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
    - SetVariableNumeric
    - FormatString
    - PythonBootstrapperApplication::LoadTargetDirFromKey
    - SetVariableString
    linkageType: ''
    returnType: void
    signature: void LoadOptionalFeatureStates(__in IBootstrapperEngine* pEngine)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2976,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2977,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2978,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2981,1
    - Dst: ExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2982,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2984,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2988,1
    - Dst: BalLogError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2991,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2994,1
    - Dst: BalExitOnFailure1
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2995,1
    - Dst: SetVariableString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2997,1
    - Dst: BalExitOnFailure
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:2998,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3001,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3002,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3004
      start: 2973
    functionDepth: 0
    functionLinenumber: 2973
    functionLinenumberEnd: 3004
    functionName: PythonBootstrapperApplication::EnsureTargetDir
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 2
    functionsReached:
    - BalExitOnFailure1
    - BalLogError
    - ExitOnFailure
    - BalExitOnFailure
    - SetVariableString
    - ReleaseStr
    - BalFormatString
    - BalGetNumericVariable
    - FAILED
    - BalGetStringVariable
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT EnsureTargetDir()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IsWindowsServer
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3009,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3010,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3011,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3013,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3014,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3015,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3016,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3017,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3019,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3021,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3024,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3025,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3026,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3027,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3028,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3029,1
    - Dst: IsWindowsVersionOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3031,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3032,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3033,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3034,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3036,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3037,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3038,1
    - Dst: IsWindows8OrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3041,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3042,1
    - Dst: IsWindows7SP1OrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3044,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3045,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3046,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3047,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3048,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3050,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3052,1
    - Dst: IsWindows7OrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3055,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3056,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3057,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3058,1
    - Dst: IsWindowsVistaSP2OrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3059,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3060,1
    - Dst: IsWindowsVistaOrGreater
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3062,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3063,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3064,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3065,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3067,1
    - Dst: BalLog
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3068,1
    - Dst: LocGetString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3069,1
    - Dst: BalFormatString
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3074,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3006
    functionDepth: 0
    functionLinenumber: 3006
    functionLinenumberEnd: 3078
    functionName: PythonBootstrapperApplication::ValidateOperatingSystem
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - IsWindowsVistaOrGreater
    - GetProcAddress
    - IsWindows7SP1OrGreater
    - IsWindows7OrGreater
    - BalLog
    - IsWindowsServer
    - IsWindows8OrGreater
    - GetModuleHandleW
    - IsWindowsVistaSP2OrGreater
    - LocGetString
    - IsWindowsVersionOrGreater
    - BalFormatString
    linkageType: ''
    returnType: void
    signature: void ValidateOperatingSystem()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy_s
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3092,1
    - Dst: BalGetNumericVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3095,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3096,1
    - Dst: BalGetStringVariable
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3111,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3112,1
    - Dst: ReleaseNullStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3113,1
    - Dst: SetVariableNumeric
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3118,1
    - Dst: PythonBootstrapperApplication::IsCrtInstalled
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3118,1
    - Dst: memset
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3121,1
    - Dst: memset
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3122,1
    - Dst: memset
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3128,1
    - Dst: AddRef
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - HMODULE
    - fPrereq
    - hrHostInitialization
    - IBootstrapperEngine* pEngine
    - BOOTSTRAPPER_COMMAND* pCommand
    argTypes:
    - __in
    - __in
    - __in
    - __in
    - __in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3084
    functionDepth: 1
    functionLinenumber: 3084
    functionLinenumberEnd: 3161
    functionName: PythonBootstrapperApplication::PythonBootstrapperApplication
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - PythonBootstrapperApplication::IsCrtInstalled
    - ReleaseNullStr
    - SUCCEEDED
    - SetVariableNumeric
    - AddRef
    - BalGetNumericVariable
    - FAILED
    - memcpy_s
    - memset
    - BalGetStringVariable
    linkageType: ''
    returnType: void
    signature: "void PythonBootstrapperApplication(\n        __in HMODULE hModule,\n
      \       __in BOOL fPrereq,\n        __in HRESULT hrHostInitialization,\n        __in
      IBootstrapperEngine* pEngine,\n        __in const BOOTSTRAPPER_COMMAND* pCommand\n
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AssertSz
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3168,1
    - Dst: ::IsWindow
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3168,1
    - Dst: AssertSz
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3169,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3171,1
    - Dst: ReleaseDict
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3172,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3173,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3174,1
    - Dst: BalConditionsUninitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3175,1
    - Dst: BalInfoUninitialize
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3176,1
    - Dst: LocFree
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3177,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3179,1
    - Dst: ReleaseStr
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3180,1
    - Dst: ReleaseNullObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3181,1
    - Dst: ::FreeLibrary
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3187
      start: 3167
    functionDepth: 0
    functionLinenumber: 3167
    functionLinenumberEnd: 3187
    functionName: ~PythonBootstrapperApplication()
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 0
    functionsReached:
    - ::FreeLibrary
    - BalConditionsUninitialize
    - ReleaseNullObject
    - ReleaseDict
    - ::IsWindow
    - ReleaseObject
    - ReleaseStr
    - BalInfoUninitialize
    - LocFree
    - AssertSz
    linkageType: ''
    returnType: void
    signature: void ~PythonBootstrapperApplication()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExitWithLastError
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3259,1
    - Dst: PythonBootstrapperApplication::PythonBootstrapperApplication
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3264,1
    - Dst: ExitOnNull
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3265,1
    - Dst: ReleaseObject
      Src: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp:3271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - HMODULE
    - fPrereq
    - hrHostInitialization
    - IBootstrapperEngine* pEngine
    - BOOTSTRAPPER_COMMAND* pCommand
    - IBootstrapperApplication** ppApplication
    argTypes:
    - __in
    - __in
    - __in
    - __in
    - __in
    - __out
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3247
    functionDepth: 2
    functionLinenumber: 3247
    functionLinenumberEnd: 3273
    functionName: CreateBootstrapperApplication
    functionSourceFile: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    functionUses: 1
    functionsReached:
    - ExitWithLastError
    - PythonBootstrapperApplication::PythonBootstrapperApplication
    - ExitOnNull
    - ReleaseObject
    linkageType: ''
    returnType: HRESULT
    signature: "HRESULT CreateBootstrapperApplication(\n    __in HMODULE hModule,\n
      \   __in BOOL fPrereq,\n    __in HRESULT hrHostInitialization,\n    __in IBootstrapperEngine*
      pEngine,\n    __in const BOOTSTRAPPER_COMMAND* pCommand,\n    __out IBootstrapperApplication**
      ppApplication\n    )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/importdl.c:41,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Python/importdl.c:44,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/importdl.c:45,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/importdl.c:49,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/importdl.c:55,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/importdl.c:59,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/importdl.c:63,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/importdl.c:64,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/importdl.c:65,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/importdl.c:76,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:80,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:81,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:84,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/importdl.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - name
    - hook_prefix
    argTypes:
    - PyObject*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 35
    functionDepth: 8
    functionLinenumber: 35
    functionLinenumberEnd: 87
    functionName: get_encoded_name
    functionSourceFile: /src/Python-3.8.3/Python/importdl.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_FindChar
    - _PyObject_CallMethodId
    - PyUnicode_Substring
    - _Py_IDENTIFIER
    - PyUnicode_GetLength
    - PyUnicode_AsEncodedString
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_encoded_name(PyObject *name, const char **hook_prefix)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/importdl.c:102,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/importdl.c:106,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/importdl.c:107,1
    - Dst: get_encoded_name
      Src: /src/Python-3.8.3/Python/importdl.c:112,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/importdl.c:116,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/importdl.c:118,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/importdl.c:122,1
    - Dst: _PyImport_FindSharedFuncptrWindows
      Src: /src/Python-3.8.3/Python/importdl.c:128,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Python/importdl.c:131,1
    - Dst: _PyImport_FindSharedFuncptr
      Src: /src/Python-3.8.3/Python/importdl.c:134,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/importdl.c:135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:137,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/importdl.c:141,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/importdl.c:143,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/importdl.c:149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:150,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/importdl.c:159,1
    - Dst: p0
      Src: /src/Python-3.8.3/Python/importdl.c:164,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/importdl.c:168,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/importdl.c:169,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/importdl.c:175,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/importdl.c:176,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/importdl.c:177,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/importdl.c:184,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/importdl.c:188,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/importdl.c:194,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:196,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:197,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/Python-3.8.3/Python/importdl.c:198,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/importdl.c:205,1
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Python/importdl.c:213,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/importdl.c:215,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/importdl.c:223,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/importdl.c:224,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/importdl.c:226,1
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/importdl.c:228,1
    - Dst: _PyImport_FixupExtensionObject
      Src: /src/Python-3.8.3/Python/importdl.c:229,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/importdl.c:239,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/importdl.c:240,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/importdl.c:241,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/importdl.c:242,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 107
    argCount: 2
    argNames:
    - spec
    - fp
    argTypes:
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 244
    functionName: _PyImport_LoadDynamicModuleWithSpec
    functionSourceFile: /src/Python-3.8.3/Python/importdl.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyModule_GetDef
    - PyObject_TypeCheck
    - PyUnicode_FromFormat
    - p0
    - PyErr_Occurred
    - PyObject_GetAttrString
    - PyModule_FromDefAndSpec
    - Py_INCREF
    - PyErr_Format
    - _PyImport_FindSharedFuncptr
    - PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - PyErr_SetImportError
    - Py_TYPE
    - PyImport_GetModuleDict
    - PyBytes_AS_STRING
    - _PyImport_FindSharedFuncptrWindows
    - _PyImport_FixupExtensionObject
    - PyUnicode_EncodeFSDefault
    - PyModule_AddObject
    - PyErr_SetString
    - PyUnicode_Check
    - PySys_Audit
    - get_encoded_name
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - writer
    - charp
    argTypes:
    - _PyUnicodeWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: append_charp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteASCIIString
    linkageType: ''
    returnType: int
    signature: int append_charp(_PyUnicodeWriter *writer, const char *charp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: APPEND_STR_FINISH
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STR_FINISH(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: APPEND_STR
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: APPEND_STR_IF
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STR_IF(cond, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: APPEND_STR_IF_NOT_FIRST
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_STR_IF_NOT_FIRST(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - pr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: APPEND_EXPR
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND_EXPR(expr, pr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: APPEND
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND(type, value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:66,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:70,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - obj
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: append_repr
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int append_repr(_PyUnicodeWriter *writer, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:106,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:109,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:112,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:113,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:113,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 118
    functionName: append_ast_boolop
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - APPEND_EXPR
    - asdl_seq_GET
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_boolop(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:142,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:147,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:148,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:149,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:150,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:151,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 153
    functionName: append_ast_binop
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - PyErr_SetString
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_binop(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:167,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:172,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:173,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:174,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:175,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 177
    functionName: append_ast_unaryop
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - PyErr_SetString
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_unaryop(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:182,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:186,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - arg
    argTypes:
    - _PyUnicodeWriter*
    - arg_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: append_ast_arg
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - _PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_ast_arg(_PyUnicodeWriter *writer, arg_ty arg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:201,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:202,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:203,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:205,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:207,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:207,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:209,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:209,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:214,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:215,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:215,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:218,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:223,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:224,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:225,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:227,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:232,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:233,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:235,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:236,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:236,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:240,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:242,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:243,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:250,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:251,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:252,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - writer
    - args
    argTypes:
    - _PyUnicodeWriter*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 256
    functionName: append_ast_args
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_IF_NOT_FIRST
    - APPEND
    - asdl_seq_LEN
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_args(_PyUnicodeWriter *writer, arguments_ty args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:261,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:262,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:263,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:264,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:265,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:266,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:267,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 270
    functionName: append_ast_lambda
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND
    - asdl_seq_LEN
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_lambda(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:275,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:276,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:277,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:278,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:279,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:280,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 283
    functionName: append_ast_ifexp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_ifexp(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:291,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:292,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:295,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:296,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:298,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:299,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:300,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:300,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:303,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:304,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:304,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 309
    functionName: append_ast_dict
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_LEN
    - APPEND_STR_IF
    - APPEND_STR_FINISH
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_dict(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:316,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:317,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:319,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:320,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:320,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 324
    functionName: append_ast_set
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_LEN
    - APPEND_STR_IF
    - APPEND_STR_FINISH
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_set(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:331,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:332,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:334,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:335,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:335,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 339
    functionName: append_ast_list
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_LEN
    - APPEND_STR_IF
    - APPEND_STR_FINISH
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_list(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:346,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:349,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:352,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:355,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:356,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:356,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:359,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: append_ast_tuple
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_EXPR
    - asdl_seq_LEN
    - APPEND_STR_IF
    - APPEND_STR_FINISH
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_tuple(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:369,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:370,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:371,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:372,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:374,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:376,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:377,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - gen
    argTypes:
    - _PyUnicodeWriter*
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: append_ast_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - asdl_seq_LEN
    - APPEND_EXPR
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_comprehension(_PyUnicodeWriter *writer, comprehension_ty
      gen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:386,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:389,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - comprehensions
    argTypes:
    - _PyUnicodeWriter*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 393
    functionName: append_ast_comprehensions
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_comprehensions(_PyUnicodeWriter *writer, asdl_seq *comprehensions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:398,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:399,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:400,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: append_ast_genexp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_STR_FINISH
    - APPEND_EXPR
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_genexp(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:407,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:408,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:409,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: append_ast_listcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_STR_FINISH
    - APPEND_EXPR
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_listcomp(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:416,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:417,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:418,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: append_ast_setcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_STR_FINISH
    - APPEND_EXPR
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_setcomp(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:425,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:426,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:427,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:428,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:429,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: append_ast_dictcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_STR_FINISH
    - APPEND_EXPR
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_dictcomp(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:441,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:445,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast_unparse.c:446,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast_unparse.c:447,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:447,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:449,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:484,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:489,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:490,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:490,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:493,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts:
    - condition: (comparator_count > 0)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/Python-3.8.3/Python/ast_unparse.c
    - condition: (comparator_count == asdl_seq_LEN(ops))
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/Python-3.8.3/Python/ast_unparse.c
    constantsTouched: []
    func_position:
      end: 495
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 495
    functionName: append_ast_compare
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - asdl_seq_LEN
    - APPEND_STR_IF
    - PyErr_SetString
    - assert
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_compare(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:501,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:504,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:508,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - kw
    argTypes:
    - _PyUnicodeWriter*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 513
    functionName: append_ast_keyword
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - _PyUnicodeWriter_WriteStr
    linkageType: ''
    returnType: int
    signature: int append_ast_keyword(_PyUnicodeWriter *writer, keyword_ty kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:522,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:524,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:525,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:527,1
    - Dst: append_ast_genexp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:530,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:534,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:538,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:539,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:539,1
    - Dst: APPEND_STR_IF_NOT_FIRST
      Src: /src/Python-3.8.3/Python/ast_unparse.c:543,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:544,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:544,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 548
    functionName: append_ast_call
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_ast_genexp
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_IF_NOT_FIRST
    - APPEND
    - asdl_seq_LEN
    - APPEND_STR_FINISH
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int append_ast_call(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Replace
      Src: /src/Python-3.8.3/Python/ast_unparse.c:555,1
    - Dst: PyUnicode_Replace
      Src: /src/Python-3.8.3/Python/ast_unparse.c:559,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - orig
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 550
    functionDepth: 6
    functionLinenumber: 550
    functionLinenumberEnd: 562
    functionName: escape_braces
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_Replace
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      escape_braces(PyObject *orig)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: escape_braces
      Src: /src/Python-3.8.3/Python/ast_unparse.c:569,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:571,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - unicode
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 564
    functionDepth: 7
    functionLinenumber: 564
    functionLinenumberEnd: 575
    functionName: append_fstring_unicode
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyUnicodeWriter_WriteStr
    - escape_braces
    linkageType: ''
    returnType: int
    signature: int append_fstring_unicode(_PyUnicodeWriter *writer, PyObject *unicode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: append_fstring_unicode
      Src: /src/Python-3.8.3/Python/ast_unparse.c:582,1
    - Dst: append_joinedstr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:584,1
    - Dst: append_formattedvalue
      Src: /src/Python-3.8.3/Python/ast_unparse.c:586,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - writer
    - e
    - is_format_spec
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 577
    functionDepth: 8
    functionLinenumber: 577
    functionLinenumberEnd: 592
    functionName: append_fstring_element
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_fstring_unicode
    - append_formattedvalue
    - PyErr_SetString
    - append_joinedstr
    linkageType: ''
    returnType: int
    signature: int append_fstring_element(_PyUnicodeWriter *writer, expr_ty e, bool
      is_format_spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Python/ast_unparse.c:601,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:605,1
    - Dst: append_fstring_element
      Src: /src/Python-3.8.3/Python/ast_unparse.c:607,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:608,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Python/ast_unparse.c:611,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Python/ast_unparse.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - values
    - is_format_spec
    argTypes:
    - asdl_seq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 596
    functionDepth: 9
    functionLinenumber: 596
    functionLinenumberEnd: 617
    functionName: build_fstring_body
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - asdl_seq_LEN
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - append_fstring_element
    - asdl_seq_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      build_fstring_body(asdl_seq *values, bool is_format_spec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: build_fstring_body
      Src: /src/Python-3.8.3/Python/ast_unparse.c:623,1
    - Dst: append_charp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:629,1
    - Dst: append_repr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:630,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:636,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - writer
    - e
    - is_format_spec
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 619
    functionDepth: 10
    functionLinenumber: 619
    functionLinenumberEnd: 640
    functionName: append_joinedstr
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - build_fstring_body
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - append_repr
    - append_charp
    linkageType: ''
    returnType: int
    signature: int append_joinedstr(_PyUnicodeWriter *writer, expr_ty e, bool is_format_spec)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: expr_as_unicode
      Src: /src/Python-3.8.3/Python/ast_unparse.c:649,1
    - Dst: PyUnicode_Find
      Src: /src/Python-3.8.3/Python/ast_unparse.c:653,1
    - Dst: append_charp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:658,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:659,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:662,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:663,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:666,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:680,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:684,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:687,1
    - Dst: append_fstring_element
      Src: /src/Python-3.8.3/Python/ast_unparse.c:688,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:697,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - writer
    - e
    - is_format_spec
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 642
    functionDepth: 9
    functionLinenumber: 642
    functionLinenumberEnd: 698
    functionName: append_formattedvalue
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - APPEND_STR
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - _PyUnicodeWriter_WriteASCIIString
    - APPEND_STR_FINISH
    - expr_as_unicode
    - PyErr_SetString
    - append_fstring_element
    - PyUnicode_Find
    - append_charp
    linkageType: ''
    returnType: int
    signature: int append_formattedvalue(_PyUnicodeWriter *writer, expr_ty e, bool
      is_format_spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:705,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/ast_unparse.c:709,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:715,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 700
    functionDepth: 5
    functionLinenumber: 700
    functionLinenumberEnd: 718
    functionName: append_ast_attribute
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - _PyUnicodeWriter_WriteStr
    - PyLong_CheckExact
    linkageType: ''
    returnType: int
    signature: int append_ast_attribute(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:724,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:727,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:730,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:734,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - slice
    argTypes:
    - _PyUnicodeWriter*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 738
    functionName: append_ast_simple_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_simple_slice(_PyUnicodeWriter *writer, slice_ty slice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_unparse.c:744,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:746,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:747,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_unparse.c:747,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - slice
    argTypes:
    - _PyUnicodeWriter*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 751
    functionName: append_ast_ext_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - APPEND
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_ext_slice(_PyUnicodeWriter *writer, slice_ty slice)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: append_ast_simple_slice
      Src: /src/Python-3.8.3/Python/ast_unparse.c:758,1
    - Dst: append_ast_ext_slice
      Src: /src/Python-3.8.3/Python/ast_unparse.c:760,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:762,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - writer
    - slice
    argTypes:
    - _PyUnicodeWriter*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 769
    functionName: append_ast_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - append_ast_simple_slice
    - APPEND_EXPR
    - PyErr_SetString
    - append_ast_ext_slice
    linkageType: ''
    returnType: int
    signature: int append_ast_slice(_PyUnicodeWriter *writer, slice_ty slice)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:774,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:775,1
    - Dst: APPEND
      Src: /src/Python-3.8.3/Python/ast_unparse.c:776,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 778
    functionName: append_ast_subscript
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_STR_FINISH
    - APPEND_EXPR
    - APPEND
    linkageType: ''
    returnType: int
    signature: int append_ast_subscript(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:783,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: append_ast_starred
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    linkageType: ''
    returnType: int
    signature: int append_ast_starred(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:792,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:795,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:796,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 798
    functionName: append_ast_yield
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_FINISH
    linkageType: ''
    returnType: int
    signature: int append_ast_yield(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:803,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:804,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - writer
    - e
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 806
    functionName: append_ast_yield_from
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_FINISH
    linkageType: ''
    returnType: int
    signature: int append_ast_yield_from(_PyUnicodeWriter *writer, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:811,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:812,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:813,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 816
    functionName: append_ast_await
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_ast_await(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:821,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:822,1
    - Dst: APPEND_STR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:823,1
    - Dst: APPEND_EXPR
      Src: /src/Python-3.8.3/Python/ast_unparse.c:824,1
    - Dst: APPEND_STR_IF
      Src: /src/Python-3.8.3/Python/ast_unparse.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: append_named_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - APPEND_STR
    - APPEND_EXPR
    - APPEND_STR_IF
    linkageType: ''
    returnType: int
    signature: int append_named_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: append_ast_boolop
      Src: /src/Python-3.8.3/Python/ast_unparse.c:834,1
    - Dst: append_ast_binop
      Src: /src/Python-3.8.3/Python/ast_unparse.c:836,1
    - Dst: append_ast_unaryop
      Src: /src/Python-3.8.3/Python/ast_unparse.c:838,1
    - Dst: append_ast_lambda
      Src: /src/Python-3.8.3/Python/ast_unparse.c:840,1
    - Dst: append_ast_ifexp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:842,1
    - Dst: append_ast_dict
      Src: /src/Python-3.8.3/Python/ast_unparse.c:844,1
    - Dst: append_ast_set
      Src: /src/Python-3.8.3/Python/ast_unparse.c:846,1
    - Dst: append_ast_genexp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:848,1
    - Dst: append_ast_listcomp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:850,1
    - Dst: append_ast_setcomp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:852,1
    - Dst: append_ast_dictcomp
      Src: /src/Python-3.8.3/Python/ast_unparse.c:854,1
    - Dst: append_ast_yield
      Src: /src/Python-3.8.3/Python/ast_unparse.c:856,1
    - Dst: append_ast_yield_from
      Src: /src/Python-3.8.3/Python/ast_unparse.c:858,1
    - Dst: append_ast_await
      Src: /src/Python-3.8.3/Python/ast_unparse.c:860,1
    - Dst: append_ast_compare
      Src: /src/Python-3.8.3/Python/ast_unparse.c:862,1
    - Dst: append_ast_call
      Src: /src/Python-3.8.3/Python/ast_unparse.c:864,1
    - Dst: APPEND_STR_FINISH
      Src: /src/Python-3.8.3/Python/ast_unparse.c:867,1
    - Dst: append_repr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:869,1
    - Dst: append_joinedstr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:871,1
    - Dst: append_formattedvalue
      Src: /src/Python-3.8.3/Python/ast_unparse.c:873,1
    - Dst: append_ast_attribute
      Src: /src/Python-3.8.3/Python/ast_unparse.c:876,1
    - Dst: append_ast_subscript
      Src: /src/Python-3.8.3/Python/ast_unparse.c:878,1
    - Dst: append_ast_starred
      Src: /src/Python-3.8.3/Python/ast_unparse.c:880,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:882,1
    - Dst: append_ast_list
      Src: /src/Python-3.8.3/Python/ast_unparse.c:884,1
    - Dst: append_ast_tuple
      Src: /src/Python-3.8.3/Python/ast_unparse.c:886,1
    - Dst: append_named_expr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:888,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 3
    argNames:
    - writer
    - e
    - level
    argTypes:
    - _PyUnicodeWriter*
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 829
    functionDepth: 11
    functionLinenumber: 829
    functionLinenumberEnd: 894
    functionName: append_ast_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - append_ast_dictcomp
    - append_ast_ifexp
    - append_ast_compare
    - append_joinedstr
    - append_ast_lambda
    - append_ast_dict
    - append_ast_list
    - append_ast_genexp
    - append_repr
    - append_named_expr
    - APPEND_STR_FINISH
    - append_ast_setcomp
    - append_ast_subscript
    - append_formattedvalue
    - append_ast_call
    - append_ast_set
    - append_ast_listcomp
    - append_ast_boolop
    - append_ast_yield_from
    - append_ast_await
    - append_ast_tuple
    - append_ast_starred
    - append_ast_attribute
    - append_ast_yield
    - append_ast_binop
    - append_ast_unaryop
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int append_ast_expr(_PyUnicodeWriter *writer, expr_ty e, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:900,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:904,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:908,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast_unparse.c:912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 896
    functionDepth: 6
    functionLinenumber: 896
    functionLinenumberEnd: 916
    functionName: maybe_init_static_strings
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int maybe_init_static_strings(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Python/ast_unparse.c:922,1
    - Dst: maybe_init_static_strings
      Src: /src/Python-3.8.3/Python/ast_unparse.c:925,1
    - Dst: append_ast_expr
      Src: /src/Python-3.8.3/Python/ast_unparse.c:926,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Python/ast_unparse.c:928,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Python/ast_unparse.c:931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e
    - level
    argTypes:
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 918
    functionDepth: 12
    functionLinenumber: 918
    functionLinenumberEnd: 932
    functionName: expr_as_unicode
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_Init
    - maybe_init_static_strings
    - append_ast_expr
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      expr_as_unicode(expr_ty e, int level)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expr_as_unicode
      Src: /src/Python-3.8.3/Python/ast_unparse.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 13
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: _PyAST_ExprAsUnicode
    functionSourceFile: /src/Python-3.8.3/Python/ast_unparse.c
    functionUses: 0
    functionsReached:
    - expr_as_unicode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAST_ExprAsUnicode(expr_ty e)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pyarena.c:80,1
    - Dst: _Py_ALIGN_UP
      Src: /src/Python-3.8.3/Python/pyarena.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: block_new
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - _Py_ALIGN_UP
    linkageType: ''
    returnType: block
    signature: 'block *

      block_new(size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pyarena.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: block_free
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void block_free(block *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pyarena.c:104,1
    - Dst: _Py_SIZE_ROUND_UP
      Src: /src/Python-3.8.3/Python/pyarena.c:105,1
    - Dst: block_new
      Src: /src/Python-3.8.3/Python/pyarena.c:111,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pyarena.c:116,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pyarena.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - b
    - size
    argTypes:
    - block*
    - size_t
    assertStmts:
    - condition: (b)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Python/pyarena.c
    - condition: (!b->ab_next)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/Python-3.8.3/Python/pyarena.c
    - condition: (b->ab_offset + size <= b->ab_size)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/Python-3.8.3/Python/pyarena.c
    constantsTouched: []
    func_position:
      end: 125
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 125
    functionName: block_alloc
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - assert
    - block_new
    - _Py_SIZE_ROUND_UP
    linkageType: ''
    returnType: void
    signature: 'void *

      block_alloc(block *b, size_t size)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pyarena.c:130,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pyarena.c:132,1
    - Dst: block_new
      Src: /src/Python-3.8.3/Python/pyarena.c:134,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pyarena.c:137,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pyarena.c:138,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/pyarena.c:140,1
    - Dst: block_free
      Src: /src/Python-3.8.3/Python/pyarena.c:142,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pyarena.c:143,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pyarena.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 154
    functionName: PyArena_New
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 1
    functionsReached:
    - block_free
    - PyErr_NoMemory
    - block_new
    - PyMem_Free
    - PyMem_Malloc
    - PyList_New
    linkageType: ''
    returnType: PyArena
    signature: 'PyArena *

      PyArena_New()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pyarena.c:159,1
    - Dst: block_free
      Src: /src/Python-3.8.3/Python/pyarena.c:169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pyarena.c:175,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pyarena.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PyArena*
    assertStmts:
    - condition: (arena)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/Python-3.8.3/Python/pyarena.c
    constantsTouched: []
    func_position:
      end: 177
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 177
    functionName: PyArena_Free
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 1
    functionsReached:
    - block_free
    - assert
    - Py_DECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PyArena_Free(PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_alloc
      Src: /src/Python-3.8.3/Python/pyarena.c:182,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pyarena.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PyArena*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: PyArena_Malloc
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - block_alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PyArena_Malloc(PyArena *arena, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/pyarena.c:205,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pyarena.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - obj
    argTypes:
    - PyArena*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: PyArena_AddPyObject
    functionSourceFile: /src/Python-3.8.3/Python/pyarena.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyArena_AddPyObject(PyArena *arena, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: Py_GetCopyright
    functionSourceFile: /src/Python-3.8.3/Python/getcopyright.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetCopyright(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: COMPUTE_EVAL_BREAKER
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPUTE_EVAL_BREAKER(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: SET_GIL_DROP_REQUEST
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_GIL_DROP_REQUEST(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: RESET_GIL_DROP_REQUEST
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET_GIL_DROP_REQUEST(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: SIGNAL_PENDING_CALLS
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNAL_PENDING_CALLS(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: UNSIGNAL_PENDING_CALLS
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSIGNAL_PENDING_CALLS(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: SIGNAL_PENDING_SIGNALS
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNAL_PENDING_SIGNALS(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: UNSIGNAL_PENDING_SIGNALS
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSIGNAL_PENDING_SIGNALS(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: SIGNAL_ASYNC_EXC
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGNAL_ASYNC_EXC(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: UNSIGNAL_ASYNC_EXC
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNSIGNAL_ASYNC_EXC(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: PyEval_ThreadsInitialized
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - gil_created
    linkageType: ''
    returnType: int
    signature: int PyEval_ThreadsInitialized(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:206,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/ceval.c:210,1
    - Dst: create_gil
      Src: /src/Python-3.8.3/Python/ceval.c:211,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:212,1
    - Dst: take_gil
      Src: /src/Python-3.8.3/Python/ceval.c:213,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/ceval.c:216,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 220
    functionName: PyEval_InitThreads
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 5
    functionsReached:
    - _PyRuntimeState_GetThreadState
    - PyThread_init_thread
    - Py_FatalError
    - take_gil
    - create_gil
    - PyThread_allocate_lock
    - gil_created
    linkageType: ''
    returnType: void
    signature: void PyEval_InitThreads(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:226,1
    - Dst: destroy_gil
      Src: /src/Python-3.8.3/Python/ceval.c:230,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:231,1
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:231,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/ceval.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ceval
    argTypes:
    - struct _ceval_runtime_state*
    assertStmts:
    - condition: (!gil_created(gil))
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: _PyEval_FiniThreads
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - destroy_gil
    - gil_created
    - assert
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void _PyEval_FiniThreads(struct _ceval_runtime_state *ceval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CURRENTLY_FINALIZING
      Src: /src/Python-3.8.3/Python/ceval.c:244,1
    - Dst: drop_gil
      Src: /src/Python-3.8.3/Python/ceval.c:245,1
    - Dst: PyThread_exit_thread
      Src: /src/Python-3.8.3/Python/ceval.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - runtime
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: exit_thread_if_finalizing
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - drop_gil
    - PyThread_exit_thread
    - _Py_CURRENTLY_FINALIZING
    linkageType: ''
    returnType: void
    signature: void exit_thread_if_finalizing(_PyRuntimeState *runtime, PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:254,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:257,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:260,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:262,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:267,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:272,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/ceval.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 277
    functionName: _PyEval_Fini
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyEval_Fini(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:284,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:286,1
    - Dst: take_gil
      Src: /src/Python-3.8.3/Python/ceval.c:288,1
    - Dst: exit_thread_if_finalizing
      Src: /src/Python-3.8.3/Python/ceval.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: PyEval_AcquireLock
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_FatalError
    - exit_thread_if_finalizing
    - take_gil
    - _PyRuntimeState_GetThreadState
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireLock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:296,1
    - Dst: drop_gil
      Src: /src/Python-3.8.3/Python/ceval.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: PyEval_ReleaseLock
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - drop_gil
    - _PyRuntimeState_GetThreadState
    linkageType: ''
    returnType: void
    signature: void PyEval_ReleaseLock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:308,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:315,1
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:315,1
    - Dst: take_gil
      Src: /src/Python-3.8.3/Python/ceval.c:316,1
    - Dst: exit_thread_if_finalizing
      Src: /src/Python-3.8.3/Python/ceval.c:317,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/ceval.c:318,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (gil_created(&ceval->gil))
      pos:
        line_end: 314
        line_start: 314
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 321
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 321
    functionName: PyEval_AcquireThread
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - exit_thread_if_finalizing
    - Py_FatalError
    - _PyThreadState_Swap
    - take_gil
    - assert
    - gil_created
    linkageType: ''
    returnType: void
    signature: void PyEval_AcquireThread(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:327,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/ceval.c:331,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:333,1
    - Dst: drop_gil
      Src: /src/Python-3.8.3/Python/ceval.c:335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 336
    functionName: PyEval_ReleaseThread
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - drop_gil
    - Py_FatalError
    - _PyThreadState_Swap
    linkageType: ''
    returnType: void
    signature: void PyEval_ReleaseThread(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:347,1
    - Dst: recreate_gil
      Src: /src/Python-3.8.3/Python/ceval.c:350,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:351,1
    - Dst: take_gil
      Src: /src/Python-3.8.3/Python/ceval.c:352,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/ceval.c:355,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:357,1
    - Dst: _PyThreadState_DeleteExcept
      Src: /src/Python-3.8.3/Python/ceval.c:361,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 362
    functionName: _PyEval_ReInitThreads
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyRuntimeState_GetThreadState
    - recreate_gil
    - _PyThreadState_DeleteExcept
    - Py_FatalError
    - take_gil
    - PyThread_allocate_lock
    - gil_created
    linkageType: ''
    returnType: void
    signature: void _PyEval_ReInitThreads(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIGNAL_ASYNC_EXC
      Src: /src/Python-3.8.3/Python/ceval.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ceval
    argTypes:
    - struct _ceval_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: _PyEval_SignalAsyncExc
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - SIGNAL_ASYNC_EXC
    linkageType: ''
    returnType: void
    signature: void _PyEval_SignalAsyncExc(struct _ceval_runtime_state *ceval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/ceval.c:378,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:380,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:382,1
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:382,1
    - Dst: drop_gil
      Src: /src/Python-3.8.3/Python/ceval.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gil_created(&ceval->gil))
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: PyEval_SaveThread
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 7
    functionsReached:
    - _PyThreadState_Swap
    - Py_FatalError
    - drop_gil
    - assert
    - gil_created
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyEval_SaveThread(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:394,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:396,1
    - Dst: gil_created
      Src: /src/Python-3.8.3/Python/ceval.c:396,1
    - Dst: take_gil
      Src: /src/Python-3.8.3/Python/ceval.c:399,1
    - Dst: exit_thread_if_finalizing
      Src: /src/Python-3.8.3/Python/ceval.c:400,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/ceval.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (gil_created(&ceval->gil))
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: PyEval_RestoreThread
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 7
    functionsReached:
    - exit_thread_if_finalizing
    - Py_FatalError
    - _PyThreadState_Swap
    - take_gil
    - assert
    - gil_created
    linkageType: ''
    returnType: void
    signature: void PyEval_RestoreThread(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIGNAL_PENDING_SIGNALS
      Src: /src/Python-3.8.3/Python/ceval.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ceval
    argTypes:
    - struct _ceval_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: _PyEval_SignalReceived
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - SIGNAL_PENDING_SIGNALS
    linkageType: ''
    returnType: void
    signature: void _PyEval_SignalReceived(struct _ceval_runtime_state *ceval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pending
    - arg
    argTypes:
    - struct _pending_calls*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: _push_pending_call
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int _push_pending_call(struct _pending_calls *pending,\n                   int
      (*func)(void *), void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pending
    - arg
    argTypes:
    - struct _pending_calls*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 467
    functionName: _pop_pending_call
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _pop_pending_call(struct _pending_calls *pending,\n                  int
      (**func)(void *), void **arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/ceval.c:481,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/ceval.c:483,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ceval.c:486,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:487,1
    - Dst: _PyErr_Print
      Src: /src/Python-3.8.3/Python/ceval.c:490,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:491,1
    - Dst: _push_pending_call
      Src: /src/Python-3.8.3/Python/ceval.c:494,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/ceval.c:495,1
    - Dst: SIGNAL_PENDING_CALLS
      Src: /src/Python-3.8.3/Python/ceval.c:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - tstate
    - ceval
    - arg
    argTypes:
    - PyThreadState*
    - struct _ceval_runtime_state*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 500
    functionName: _PyEval_AddPendingCall
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetString
    - _PyErr_Restore
    - SIGNAL_PENDING_CALLS
    - PyThread_acquire_lock
    - _push_pending_call
    - PyThread_release_lock
    - _PyErr_Print
    - _PyErr_Fetch
    linkageType: ''
    returnType: int
    signature: "int _PyEval_AddPendingCall(PyThreadState *tstate,\n                       struct
      _ceval_runtime_state *ceval,\n                       int (*func)(void *), void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:506,1
    - Dst: _PyEval_AddPendingCall
      Src: /src/Python-3.8.3/Python/ceval.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 508
    functionName: Py_AddPendingCall
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_AddPendingCall
    - _PyRuntimeState_GetThreadState
    linkageType: ''
    returnType: int
    signature: int Py_AddPendingCall(int (*func)(void *), void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/ceval.c:516,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:523,1
    - Dst: UNSIGNAL_PENDING_SIGNALS
      Src: /src/Python-3.8.3/Python/ceval.c:529,1
    - Dst: _PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/ceval.c:530,1
    - Dst: SIGNAL_PENDING_SIGNALS
      Src: /src/Python-3.8.3/Python/ceval.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 535
    functionName: handle_signals
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - UNSIGNAL_PENDING_SIGNALS
    - _PyRuntimeState_GetThreadState
    - SIGNAL_PENDING_SIGNALS
    - PyThread_get_thread_ident
    - _PyErr_CheckSignals
    linkageType: ''
    returnType: int
    signature: int handle_signals(_PyRuntimeState *runtime)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/ceval.c:543,1
    - Dst: UNSIGNAL_PENDING_CALLS
      Src: /src/Python-3.8.3/Python/ceval.c:555,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/ceval.c:565,1
    - Dst: _pop_pending_call
      Src: /src/Python-3.8.3/Python/ceval.c:566,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/ceval.c:567,1
    - Dst: func
      Src: /src/Python-3.8.3/Python/ceval.c:573,1
    - Dst: SIGNAL_PENDING_CALLS
      Src: /src/Python-3.8.3/Python/ceval.c:584,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 586
    functionName: make_pending_calls
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - UNSIGNAL_PENDING_CALLS
    - SIGNAL_PENDING_CALLS
    - func
    - PyThread_acquire_lock
    - PyThread_get_thread_ident
    - PyThread_release_lock
    - _pop_pending_call
    linkageType: ''
    returnType: int
    signature: int make_pending_calls(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:591,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/ceval.c:591,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:593,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/ceval.c:596,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/ceval.c:598,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval.c:600,1
    - Dst: make_pending_calls
      Src: /src/Python-3.8.3/Python/ceval.c:604,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ceval.c:606,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/ceval.c:607,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Python/ceval.c:608,1
    - Dst: _PyErr_Print
      Src: /src/Python-3.8.3/Python/ceval.c:609,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 611
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 611
    functionName: _Py_FinishPendingCalls
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _Py_atomic_load_relaxed
    - _PyErr_ChainExceptions
    - PyErr_BadInternalCall
    - _PyRuntimeState_GetThreadState
    - PyGILState_Check
    - PyThread_acquire_lock
    - make_pending_calls
    - PyThread_release_lock
    - assert
    - _PyErr_Print
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void _Py_FinishPendingCalls(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:618,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/ceval.c:618,1
    - Dst: handle_signals
      Src: /src/Python-3.8.3/Python/ceval.c:623,1
    - Dst: make_pending_calls
      Src: /src/Python-3.8.3/Python/ceval.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 617
        line_start: 617
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 634
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 634
    functionName: Py_MakePendingCalls
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 4
    functionsReached:
    - assert
    - handle_signals
    - make_pending_calls
    - PyGILState_Check
    linkageType: ''
    returnType: int
    signature: int Py_MakePendingCalls(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gil_initialize
      Src: /src/Python-3.8.3/Python/ceval.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct _ceval_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: _PyEval_Initialize
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _gil_initialize
    linkageType: ''
    returnType: void
    signature: void _PyEval_Initialize(struct _ceval_runtime_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 656
    functionName: Py_GetRecursionLimit
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_GetRecursionLimit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_limit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 664
    functionName: Py_SetRecursionLimit
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_SetRecursionLimit(int new_limit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:675,1
    - Dst: PyOS_CheckStack
      Src: /src/Python-3.8.3/Python/ceval.c:680,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:682,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval.c:694,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - where
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 707
    functionName: _Py_CheckRecursiveCall
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    - _PyErr_SetString
    - _PyRuntimeState_GetThreadState
    - Py_FatalError
    - PyOS_CheckStack
    linkageType: ''
    returnType: int
    signature: int _Py_CheckRecursiveCall(const char *where)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ceval
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 713
    functionName: _Py_TracingPossible
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_TracingPossible(ceval)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_EvalCodeEx
      Src: /src/Python-3.8.3/Python/ceval.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - co
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: PyEval_EvalCode
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 7
    functionsReached:
    - PyEval_EvalCodeEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_EvalFrameEx
      Src: /src/Python-3.8.3/Python/ceval.c:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 735
    functionName: PyEval_EvalFrame
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyEval_EvalFrameEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrame(PyFrameObject *f)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/ceval.c:740,1
    - Dst: PyInterpreterState*::eval_frame
      Src: /src/Python-3.8.3/Python/ceval.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - throwflag
    argTypes:
    - PyFrameObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 742
    functionName: PyEval_EvalFrameEx
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyInterpreterState*::eval_frame
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 843
    functionName: TARGET
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 854
    functionName: FAST_DISPATCH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 864
    functionName: FAST_DISPATCH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: DISPATCH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 876
    functionName: TARGET
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 877
    functionName: FAST_DISPATCH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAST_DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 878
    functionName: DISPATCH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DISPATCH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 885
    functionName: GETITEM
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETITEM(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 887
    functionName: GETITEM
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETITEM(v, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 894
    functionName: INSTR_OFFSET
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTR_OFFSET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 900
    functionName: NEXTOPARG
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXTOPARG()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 901
    functionName: JUMPTO
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPTO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 902
    functionName: JUMPBY
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPBY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 931
    functionName: PREDICT
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREDICT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 942
    functionName: PREDICT
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREDICT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 944
    functionName: PREDICTED
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PREDICTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    functionName: STACK_LEVEL
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_LEVEL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 952
    functionName: EMPTY
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMPTY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 953
    functionName: TOP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TOP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 954
    functionName: SECOND
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECOND()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 955
    functionName: THIRD
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THIRD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 956
    functionName: FOURTH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOURTH()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 957
    functionName: PEEK
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 958
    functionName: SET_TOP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_TOP(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 959
    functionName: SET_SECOND
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SECOND(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 960
    functionName: SET_THIRD
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_THIRD(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 961
    functionName: SET_FOURTH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_FOURTH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 962
    functionName: SET_VALUE
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_VALUE(n, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 963
    functionName: BASIC_STACKADJ
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASIC_STACKADJ(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: BASIC_PUSH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASIC_PUSH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 965
    functionName: BASIC_POP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BASIC_POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 970
    functionName: PUSH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 972
    functionName: POP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 978
    functionName: STACK_GROW
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_GROW(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 984
    functionName: STACK_SHRINK
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_SHRINK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STACK_POINTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 987
    functionName: EXT_POP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_POP(STACK_POINTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 989
    functionName: PUSH
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUSH(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 990
    functionName: POP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: POP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: STACK_GROW
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_GROW(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 992
    functionName: STACK_SHRINK
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STACK_SHRINK(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STACK_POINTER
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 993
    functionName: EXT_POP
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXT_POP(STACK_POINTER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 998
    functionName: GETLOCAL
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETLOCAL(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1008
    functionName: SETLOCAL
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETLOCAL(i, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1015
    functionName: UNWIND_BLOCK
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNWIND_BLOCK(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1036
    functionName: UNWIND_EXCEPT_HANDLER
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNWIND_EXCEPT_HANDLER(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1051
    functionName: OPCACHE_CHECK
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCACHE_CHECK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: OPCACHE_STAT_GLOBAL_HIT
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCACHE_STAT_GLOBAL_HIT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1063
    functionName: OPCACHE_STAT_GLOBAL_MISS
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCACHE_STAT_GLOBAL_MISS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1068
    functionName: OPCACHE_STAT_GLOBAL_OPT
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPCACHE_STAT_GLOBAL_OPT()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:3825,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:3828,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Python/ceval.c:3828,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:3829,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3833,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:3834,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:3837,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3838,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3839,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:3842,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3843,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3844,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Python/ceval.c:3849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3851,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/ceval.c:3855,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3857,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Python/ceval.c:3860,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3861,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3863,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Python/ceval.c:3866,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3868,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:3873,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3880,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - tstate
    - kind
    - co
    - names
    argTypes:
    - PyThreadState*
    - char*
    - PyCodeObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_CheckExact(names))
      pos:
        line_end: 3827
        line_start: 3827
        source_file: /src/Python-3.8.3/Python/ceval.c
    - condition: (len >= 1)
      pos:
        line_end: 3828
        line_start: 3828
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3881
      start: 3820
    functionDepth: 8
    functionLinenumber: 3820
    functionLinenumberEnd: 3881
    functionName: format_missing
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - PyUnicode_FromString
    - assert
    - PyUnicode_Join
    - Py_DECREF
    - PyUnicode_Concat
    - Py_INCREF
    - _PyErr_Format
    - PyList_GET_ITEM
    - PyUnicode_FromFormat
    - PyList_GET_SIZE
    - PyList_CheckExact
    linkageType: ''
    returnType: void
    signature: "void format_missing(PyThreadState *tstate, const char *kind,\n               PyCodeObject
      *co, PyObject *names)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/ceval.c:3895,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:3907,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3908,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/ceval.c:3909,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3911,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3914,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:3917,1
    - Dst: format_missing
      Src: /src/Python-3.8.3/Python/ceval.c:3918,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3919,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - tstate
    - co
    - missing
    - defcount
    - fastlocals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject**
    assertStmts:
    - condition: (j == missing)
      pos:
        line_end: 3916
        line_start: 3916
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3920
      start: 3883
    functionDepth: 9
    functionLinenumber: 3883
    functionLinenumberEnd: 3920
    functionName: missing_arguments
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_DECREF
    - format_missing
    - GETLOCAL
    - PyList_SET_ITEM
    - PyList_New
    - PyObject_Repr
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: void
    signature: "void missing_arguments(PyThreadState *tstate, PyCodeObject *co,\n
      \                 Py_ssize_t missing, Py_ssize_t defcount,\n                  PyObject
      **fastlocals)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:3933,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:3936,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:3943,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:3947,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:3953,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3958,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/ceval.c:3964,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:3965,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:3967,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3975,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:3976,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - tstate
    - co
    - given
    - defcount
    - fastlocals
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject**
    assertStmts:
    - condition: ((co->co_flags & CO_VARARGS) == 0)
      pos:
        line_end: 3932
        line_start: 3932
        source_file: /src/Python-3.8.3/Python/ceval.c
    - condition: (kwonly_sig != NULL)
      pos:
        line_end: 3964
        line_start: 3964
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 3977
      start: 3922
    functionDepth: 8
    functionLinenumber: 3922
    functionLinenumberEnd: 3977
    functionName: too_many_positional
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - _PyErr_Format
    - GETLOCAL
    - PyUnicode_FromFormat
    - assert
    linkageType: ''
    returnType: void
    signature: "void too_many_positional(PyThreadState *tstate, PyCodeObject *co,\n
      \                   Py_ssize_t given, Py_ssize_t defcount,\n                    PyObject
      **fastlocals)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/ceval.c:3984,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:3987,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/ceval.c:3993,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/ceval.c:4000,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/ceval.c:4003,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/ceval.c:4014,1
    - Dst: PyUnicode_Join
      Src: /src/Python-3.8.3/Python/ceval.c:4018,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4019,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4023,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4027,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4031,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4035,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - tstate
    - co
    - kwcount
    - kwnames
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - Py_ssize_t
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 3979
    functionDepth: 4
    functionLinenumber: 3979
    functionLinenumberEnd: 4038
    functionName: positional_only_passed_as_keyword
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_Join
    - Py_DECREF
    - _PyErr_Format
    - PyList_Append
    - PyObject_RichCompareBool
    - PyList_New
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int positional_only_passed_as_keyword(PyThreadState *tstate, PyCodeObject
      *co,\n                                  Py_ssize_t kwcount, PyObject* const*
      kwnames)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4062,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4063,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:4066,1
    - Dst: _PyFrame_New_NoTrack
      Src: /src/Python-3.8.3/Python/ceval.c:4072,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/ceval.c:4081,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4088,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4103,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4104,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Python/ceval.c:4109,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4113,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4124,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4125,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/ceval.c:4144,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4153,1
    - Dst: positional_only_passed_as_keyword
      Src: /src/Python-3.8.3/Python/ceval.c:4157,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4163,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/ceval.c:4169,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4175,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4176,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4181,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4182,1
    - Dst: too_many_positional
      Src: /src/Python-3.8.3/Python/ceval.c:4187,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4196,1
    - Dst: missing_arguments
      Src: /src/Python-3.8.3/Python/ceval.c:4201,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4209,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4211,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4212,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4222,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:4224,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/ceval.c:4226,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4228,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4229,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4232,1
    - Dst: missing_arguments
      Src: /src/Python-3.8.3/Python/ceval.c:4239,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4246,1
    - Dst: PyCell_New
      Src: /src/Python-3.8.3/Python/ceval.c:4252,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4252,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4254,1
    - Dst: PyCell_New
      Src: /src/Python-3.8.3/Python/ceval.c:4257,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:4261,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4265,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:4266,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4267,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4268,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/ceval.c:4278,1
    - Dst: PyCoro_New
      Src: /src/Python-3.8.3/Python/ceval.c:4283,1
    - Dst: PyAsyncGen_New
      Src: /src/Python-3.8.3/Python/ceval.c:4285,1
    - Dst: PyGen_NewWithQualName
      Src: /src/Python-3.8.3/Python/ceval.c:4287,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/ceval.c:4293,1
    - Dst: PyEval_EvalFrameEx
      Src: /src/Python-3.8.3/Python/ceval.c:4298,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4307,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Python/ceval.c:4308,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4309,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/ceval.c:4310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4314,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 187
    argCount: 15
    argNames:
    - _co
    - globals
    - locals
    - args
    - argcount
    - kwnames
    - kwargs
    - kwcount
    - kwstep
    - defs
    - defcount
    - kwdefs
    - closure
    - name
    - qualname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject**
    - PyObject**
    - Py_ssize_t
    - int
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (j >= total_args)
      pos:
        line_end: 4152
        line_start: 4152
        source_file: /src/Python-3.8.3/Python/ceval.c
    - condition: (tstate != NULL)
      pos:
        line_end: 4306
        line_start: 4306
        source_file: /src/Python-3.8.3/Python/ceval.c
    - condition: (tstate != NULL)
      pos:
        line_end: 4062
        line_start: 4062
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4318
      start: 4044
    functionDepth: 10
    functionLinenumber: 4044
    functionLinenumberEnd: 4318
    functionName: _PyEval_EvalCodeWithName
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyEval_EvalFrameEx
    - Py_CLEAR
    - PyTuple_GET_SIZE
    - PyAsyncGen_New
    - PyDict_SetItem
    - _PyErr_Occurred
    - PyDict_GetItemWithError
    - Py_INCREF
    - GETLOCAL
    - Py_REFCNT
    - SETLOCAL
    - missing_arguments
    - _PyObject_GC_TRACK
    - _PyTuple_FromArray
    - PyGen_NewWithQualName
    - assert
    - PyCoro_New
    - Py_DECREF
    - _PyErr_Format
    - PyCell_New
    - positional_only_passed_as_keyword
    - _PyErr_SetString
    - PyDict_New
    - _PyThreadState_GET
    - PyObject_RichCompareBool
    - too_many_positional
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - _PyFrame_New_NoTrack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals,
      PyObject *locals,\n           PyObject *const *args, Py_ssize_t argcount,\n
      \          PyObject *const *kwnames, PyObject *const *kwargs,\n           Py_ssize_t
      kwcount, int kwstep,\n           PyObject *const *defs, Py_ssize_t defcount,\n
      \          PyObject *kwdefs, PyObject *closure,\n           PyObject *name,
      PyObject *qualname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_EvalCodeWithName
      Src: /src/Python-3.8.3/Python/ceval.c:4327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - _co
    - globals
    - locals
    - args
    - argcount
    - kws
    - kwcount
    - defs
    - defcount
    - kwdefs
    - closure
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject**
    - int
    - PyObject**
    - int
    - PyObject**
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4320
    functionDepth: 11
    functionLinenumber: 4320
    functionLinenumberEnd: 4334
    functionName: PyEval_EvalCodeEx
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_EvalCodeWithName
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject
      *locals,\n                  PyObject *const *args, int argcount,\n                  PyObject
      *const *kws, int kwcount,\n                  PyObject *const *defs, int defcount,\n
      \                 PyObject *kwdefs, PyObject *closure)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Python/ceval.c:4340,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4341,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/ceval.c:4342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - o
    - id
    argTypes:
    - PyThreadState*
    - PyObject*
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4336
    functionDepth: 2
    functionLinenumber: 4336
    functionLinenumberEnd: 4346
    functionName: special_lookup
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Occurred
    - _PyErr_SetObject
    - _PyObject_LookupSpecial
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      special_lookup(PyThreadState *tstate, PyObject *o, _Py_Identifier *id)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/Python-3.8.3/Python/ceval.c:4358,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:4364,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4368,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4369,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4370,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:4371,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4380,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/ceval.c:4382,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4385,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4386,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4389,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4393,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/ceval.c:4395,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4401,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:4402,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4407,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4408,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4412,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/ceval.c:4413,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4416,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4422,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:4426,1
    - Dst: PyException_SetCause
      Src: /src/Python-3.8.3/Python/ceval.c:4431,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/ceval.c:4434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4436,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4437,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4441,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4442,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4443,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 3
    argNames:
    - tstate
    - exc
    - cause
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (value != NULL)
      pos:
        line_end: 4407
        line_start: 4407
        source_file: /src/Python-3.8.3/Python/ceval.c
    - condition: (type != NULL)
      pos:
        line_end: 4406
        line_start: 4406
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4445
      start: 4351
    functionDepth: 2
    functionLinenumber: 4351
    functionLinenumberEnd: 4445
    functionName: do_raise
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - Py_DECREF
    - _PyErr_Restore
    - _PyErr_SetString
    - _PyErr_Format
    - PyExceptionClass_Check
    - PyExceptionInstance_Class
    - Py_INCREF
    - Py_XDECREF
    - _PyErr_GetTopmostException
    - _PyErr_SetObject
    - Py_TYPE
    - assert
    - _PyObject_CallNoArg
    - Py_XINCREF
    - PyException_SetCause
    linkageType: ''
    returnType: int
    signature: int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4464,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/ceval.c:4466,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ceval.c:4468,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4469,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4471,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/ceval.c:4479,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4482,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4484,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4490,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/ceval.c:4503,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4510,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4511,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Python/ceval.c:4517,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4523,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:4525,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:4533,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4537,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4542,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4543,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 5
    argNames:
    - tstate
    - v
    - argcnt
    - argcntafter
    - sp
    argTypes:
    - PyThreadState*
    - PyObject*
    - int
    - int
    - PyObject**
    assertStmts:
    - condition: (v != NULL)
      pos:
        line_end: 4463
        line_start: 4463
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4545
      start: 4454
    functionDepth: 3
    functionLinenumber: 4454
    functionLinenumberEnd: 4545
    functionName: unpack_iterable
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - PySequence_Check
    - _PyErr_ExceptionMatches
    - Py_DECREF
    - _PyErr_Format
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyIter_Next
    - Py_SIZE
    - assert
    - PyObject_GetIter
    - Py_XDECREF
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: "int unpack_iterable(PyThreadState *tstate, PyObject *v,\n                int
      argcnt, int argcntafter, PyObject **sp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Python/ceval.c:4552,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Python/ceval.c:4553,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/ceval.c:4555,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/ceval.c:4557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - tstate
    - v
    - str
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4549
    functionDepth: 4
    functionLinenumber: 4549
    functionLinenumberEnd: 4559
    functionName: prtrace
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - printf
    - PyObject_Print
    - _PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int prtrace(PyThreadState *tstate, PyObject *v, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ceval.c:4568,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4571,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/ceval.c:4573,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/ceval.c:4575,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:4577,1
    - Dst: call_trace
      Src: /src/Python-3.8.3/Python/ceval.c:4580,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4581,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:4583,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4586,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4587,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - func
    - self
    - tstate
    - f
    argTypes:
    - Py_tracefunc
    - PyObject*
    - PyThreadState*
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4590
      start: 4562
    functionDepth: 3
    functionLinenumber: 4562
    functionLinenumberEnd: 4590
    functionName: call_exc_trace
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_Restore
    - Py_INCREF
    - PyTuple_Pack
    - call_trace
    - _PyErr_NormalizeException
    - Py_XDECREF
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: "void call_exc_trace(Py_tracefunc func, PyObject *self,\n               PyThreadState
      *tstate, PyFrameObject *f)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ceval.c:4599,1
    - Dst: call_trace
      Src: /src/Python-3.8.3/Python/ceval.c:4600,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:4603,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4607,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4608,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - func
    - obj
    - tstate
    - frame
    - what
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    - PyThreadState*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4612
      start: 4592
    functionDepth: 1
    functionLinenumber: 4592
    functionLinenumberEnd: 4612
    functionName: call_trace_protected
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - call_trace
    - Py_XDECREF
    - _PyErr_Restore
    - _PyErr_Fetch
    linkageType: ''
    returnType: int
    signature: "int call_trace_protected(Py_tracefunc func, PyObject *obj,\n                     PyThreadState
      *tstate, PyFrameObject *frame,\n                     int what, PyObject *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/Python-3.8.3/Python/ceval.c:4624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - func
    - obj
    - tstate
    - frame
    - what
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    - PyThreadState*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4614
    functionDepth: 0
    functionLinenumber: 4614
    functionLinenumberEnd: 4629
    functionName: call_trace
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 2
    functionsReached:
    - func
    linkageType: ''
    returnType: int
    signature: "int call_trace(Py_tracefunc func, PyObject *obj,\n           PyThreadState
      *tstate, PyFrameObject *frame,\n           int what, PyObject *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4634,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Python/ceval.c:4642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - func
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4646
      start: 4631
    functionDepth: 4
    functionLinenumber: 4631
    functionLinenumberEnd: 4646
    functionName: _PyEval_CallTracing
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_CallTracing(PyObject *func, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CheckLineNumber
      Src: /src/Python-3.8.3/Python/ceval.c:4662,1
    - Dst: call_trace
      Src: /src/Python-3.8.3/Python/ceval.c:4674,1
    - Dst: call_trace
      Src: /src/Python-3.8.3/Python/ceval.c:4679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 7
    argNames:
    - func
    - obj
    - tstate
    - frame
    - instr_lb
    - instr_ub
    - instr_prev
    argTypes:
    - Py_tracefunc
    - PyObject*
    - PyThreadState*
    - PyFrameObject*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4683
      start: 4649
    functionDepth: 2
    functionLinenumber: 4649
    functionLinenumberEnd: 4683
    functionName: maybe_call_line_trace
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - call_trace
    - _PyCode_CheckLineNumber
    linkageType: ''
    returnType: int
    signature: "int maybe_call_line_trace(Py_tracefunc func, PyObject *obj,\n                      PyThreadState
      *tstate, PyFrameObject *frame,\n                      int *instr_lb, int *instr_ub,
      int *instr_prev)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/ceval.c:4688,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Python/ceval.c:4689,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4693,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4695,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4705
      start: 4685
    functionDepth: 1
    functionLinenumber: 4685
    functionLinenumberEnd: 4705
    functionName: PyEval_SetProfile
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 3
    functionsReached:
    - PySys_Audit
    - Py_XDECREF
    - _PyThreadState_GET
    - _PyErr_WriteUnraisableMsg
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/ceval.c:4710,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Python/ceval.c:4711,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/ceval.c:4716,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4719,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - func
    - arg
    argTypes:
    - Py_tracefunc
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4730
      start: 4707
    functionDepth: 1
    functionLinenumber: 4707
    functionLinenumberEnd: 4730
    functionName: PyEval_SetTrace
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - Py_XDECREF
    - _PyRuntimeState_GetThreadState
    - _PyErr_WriteUnraisableMsg
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4735,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - new_depth
    argTypes:
    - int
    assertStmts:
    - condition: (new_depth >= 0)
      pos:
        line_end: 4734
        line_start: 4734
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4738
      start: 4732
    functionDepth: 1
    functionLinenumber: 4732
    functionLinenumberEnd: 4738
    functionName: _PyEval_SetCoroutineOriginTrackingDepth
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyThreadState_GET
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetCoroutineOriginTrackingDepth(int new_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4740
    functionDepth: 1
    functionLinenumber: 4740
    functionLinenumberEnd: 4745
    functionName: _PyEval_GetCoroutineOriginTrackingDepth
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int _PyEval_GetCoroutineOriginTrackingDepth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4752
      start: 4747
    functionDepth: 1
    functionLinenumber: 4747
    functionLinenumberEnd: 4752
    functionName: _PyEval_GetAsyncGenFirstiter
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetAsyncGenFirstiter(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4759
      start: 4754
    functionDepth: 1
    functionLinenumber: 4754
    functionLinenumberEnd: 4759
    functionName: _PyEval_GetAsyncGenFinalizer
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetAsyncGenFinalizer(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gilstate::getframe
      Src: /src/Python-3.8.3/Python/ceval.c:4764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4765
      start: 4761
    functionDepth: 0
    functionLinenumber: 4761
    functionLinenumberEnd: 4765
    functionName: _PyEval_GetFrame
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - gilstate::getframe
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      _PyEval_GetFrame(PyThreadState *tstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4770,1
    - Dst: _PyEval_GetFrame
      Src: /src/Python-3.8.3/Python/ceval.c:4771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4772
      start: 4767
    functionDepth: 1
    functionLinenumber: 4767
    functionLinenumberEnd: 4772
    functionName: PyEval_GetFrame
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 3
    functionsReached:
    - _PyEval_GetFrame
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      PyEval_GetFrame(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4777,1
    - Dst: _PyEval_GetFrame
      Src: /src/Python-3.8.3/Python/ceval.c:4778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4783
      start: 4774
    functionDepth: 1
    functionLinenumber: 4774
    functionLinenumberEnd: 4783
    functionName: PyEval_GetBuiltins
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetBuiltins(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4789,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/ceval.c:4790,1
    - Dst: PyEval_GetBuiltins
      Src: /src/Python-3.8.3/Python/ceval.c:4790,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:4792,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4794,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/ceval.c:4795,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/ceval.c:4795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4798
      start: 4786
    functionDepth: 5
    functionLinenumber: 4786
    functionLinenumberEnd: 4798
    functionName: _PyEval_GetBuiltinId
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 19
    functionsReached:
    - _PyDict_GetItemIdWithError
    - _PyUnicode_FromId
    - Py_INCREF
    - _PyThreadState_GET
    - _PyErr_SetObject
    - PyEval_GetBuiltins
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyEval_GetBuiltinId(_Py_Identifier *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4803,1
    - Dst: _PyEval_GetFrame
      Src: /src/Python-3.8.3/Python/ceval.c:4804,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:4806,1
    - Dst: PyFrame_FastToLocalsWithError
      Src: /src/Python-3.8.3/Python/ceval.c:4810,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4814,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current_frame->f_locals != NULL)
      pos:
        line_end: 4813
        line_start: 4813
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4816
      start: 4800
    functionDepth: 5
    functionLinenumber: 4800
    functionLinenumberEnd: 4816
    functionName: PyEval_GetLocals
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyErr_SetString
    - _PyThreadState_GET
    - _PyEval_GetFrame
    - PyFrame_FastToLocalsWithError
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetLocals(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4821,1
    - Dst: _PyEval_GetFrame
      Src: /src/Python-3.8.3/Python/ceval.c:4822,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (current_frame->f_globals != NULL)
      pos:
        line_end: 4826
        line_start: 4826
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4829
      start: 4818
    functionDepth: 1
    functionLinenumber: 4818
    functionLinenumberEnd: 4829
    functionName: PyEval_GetGlobals
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - _PyEval_GetFrame
    - _PyThreadState_GET
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyEval_GetGlobals(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:4834,1
    - Dst: _PyEval_GetFrame
      Src: /src/Python-3.8.3/Python/ceval.c:4835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cf
    argTypes:
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4853
      start: 4831
    functionDepth: 1
    functionLinenumber: 4831
    functionLinenumberEnd: 4853
    functionName: PyEval_MergeCompilerFlags
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetFrame
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4859,1
    - Dst: PyEval_GetFuncName
      Src: /src/Python-3.8.3/Python/ceval.c:4860,1
    - Dst: PyMethod_GET_FUNCTION
      Src: /src/Python-3.8.3/Python/ceval.c:4860,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4861,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:4862,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4867
      start: 4856
    functionDepth: 3
    functionLinenumber: 4856
    functionLinenumberEnd: 4867
    functionName: PyEval_GetFuncName
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - PyEval_GetFuncName
    - PyMethod_GET_FUNCTION
    - PyFunction_Check
    - PyUnicode_AsUTF8
    - PyCFunction_Check
    - PyMethod_Check
    linkageType: ''
    returnType: char
    signature: 'char *

      PyEval_GetFuncName(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMethod_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4872,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4874,1
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4869
    functionDepth: 1
    functionLinenumber: 4869
    functionLinenumberEnd: 4880
    functionName: PyEval_GetFuncDesc
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyCFunction_Check
    - PyMethod_Check
    - PyFunction_Check
    linkageType: ''
    returnType: char
    signature: 'char *

      PyEval_GetFuncDesc(PyObject *func)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4921,1
    - Dst: C_TRACE
      Src: /src/Python-3.8.3/Python/ceval.c:4922,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/ceval.c:4922,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4925,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4934,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4934,1
    - Dst: C_TRACE
      Src: /src/Python-3.8.3/Python/ceval.c:4938,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/ceval.c:4938,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4941,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/ceval.c:4944,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - tstate
    - func
    - args
    - nargs
    - kwnames
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4914
    functionDepth: 1
    functionLinenumber: 4914
    functionLinenumberEnd: 4945
    functionName: trace_call_function
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - C_TRACE
    - PyCFunction_Check
    - Py_TYPE
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntrace_call_function(PyThreadState *tstate,\n                    PyObject
      *func,\n                    PyObject **args, Py_ssize_t nargs,\n                    PyObject
      *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4955,1
    - Dst: trace_call_function
      Src: /src/Python-3.8.3/Python/ceval.c:4960,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/ceval.c:4963,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ceval.c:4966,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:4966,1
    - Dst: EXT_POP
      Src: /src/Python-3.8.3/Python/ceval.c:4970,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:4971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - tstate
    - pp_stack
    - oparg
    - kwnames
    argTypes:
    - PyThreadState*
    - PyObject***
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: ((x != NULL) ^ (_PyErr_Occurred(tstate) != NULL))
      pos:
        line_end: 4965
        line_start: 4965
        source_file: /src/Python-3.8.3/Python/ceval.c
    constantsTouched: []
    func_position:
      end: 4975
      start: 4949
    functionDepth: 2
    functionLinenumber: 4949
    functionLinenumberEnd: 4975
    functionName: call_function
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - EXT_POP
    - trace_call_function
    - assert
    - _PyObject_Vectorcall
    - _PyErr_Occurred
    linkageType: ''
    returnType: _Py_HOT_FUNCTION
    signature: _Py_HOT_FUNCTION call_function(PyThreadState *tstate, PyObject ***pp_stack,
      Py_ssize_t oparg, PyObject *kwnames)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCFunction_Check
      Src: /src/Python-3.8.3/Python/ceval.c:4982,1
    - Dst: C_TRACE
      Src: /src/Python-3.8.3/Python/ceval.c:4983,1
    - Dst: PyCFunction_Call
      Src: /src/Python-3.8.3/Python/ceval.c:4983,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4986,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:4987,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:4996,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4997,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:4997,1
    - Dst: C_TRACE
      Src: /src/Python-3.8.3/Python/ceval.c:5002,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Python/ceval.c:5002,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Python/ceval.c:5003,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5006,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Python/ceval.c:5010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - tstate
    - func
    - callargs
    - kwdict
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5011
      start: 4977
    functionDepth: 4
    functionLinenumber: 4977
    functionLinenumberEnd: 5011
    functionName: do_call_core
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - C_TRACE
    - _PyTuple_ITEMS
    - _PyObject_FastCallDict
    - PyCFunction_Check
    - PyCFunction_Call
    - Py_TYPE
    - PyObject_Call
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_call_core(PyThreadState *tstate, PyObject *func, PyObject *callargs, PyObject
      *kwdict)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:5022,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5025,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Python/ceval.c:5026,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5027,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5019
    functionDepth: 3
    functionLinenumber: 5019
    functionLinenumberEnd: 5039
    functionName: _PyEval_SliceIndex
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyIndex_Check
    - _PyErr_SetString
    - _PyThreadState_GET
    - PyNumber_AsSsize_t
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndex(PyObject *v, Py_ssize_t *pi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/ceval.c:5044,1
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5046,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Python/ceval.c:5047,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5048,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - v
    - pi
    argTypes:
    - PyObject*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5059
      start: 5041
    functionDepth: 3
    functionLinenumber: 5041
    functionLinenumberEnd: 5059
    functionName: _PyEval_SliceIndexNotNone
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 2
    functionsReached:
    - PyIndex_Check
    - _PyErr_SetString
    - _PyThreadState_GET
    - PyNumber_AsSsize_t
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyEval_SliceIndexNotNone(PyObject *v, Py_ssize_t *pi)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Python/ceval.c:5077,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Python/ceval.c:5082,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5088,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/ceval.c:5090,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5092,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5093,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5094,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5101,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5102,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Python/ceval.c:5107,1
    - Dst: PyObject_RichCompare
      Src: /src/Python-3.8.3/Python/ceval.c:5110,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:5113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - tstate
    - op
    - v
    - w
    argTypes:
    - PyThreadState*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5115
      start: 5065
    functionDepth: 6
    functionLinenumber: 5065
    functionLinenumberEnd: 5115
    functionName: cmp_outcome
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    - Py_INCREF
    - PyExceptionClass_Check
    - PyTuple_Check
    - PyErr_GivenExceptionMatches
    - PyObject_RichCompare
    - PyTuple_Size
    - PySequence_Contains
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      cmp_outcome(PyThreadState *tstate, int op, PyObject *v, PyObject *w)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5121,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/ceval.c:5125,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5127,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5128,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/ceval.c:5135,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5136,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/Python-3.8.3/Python/ceval.c:5139,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ceval.c:5148,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/ceval.c:5155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5156,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - tstate
    - f
    - name
    - fromlist
    - level
    argTypes:
    - PyThreadState*
    - PyFrameObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5158
      start: 5117
    functionDepth: 5
    functionLinenumber: 5117
    functionLinenumberEnd: 5158
    functionName: import_name
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - Py_DECREF
    - _PyErr_SetString
    - Py_INCREF
    - _Py_IDENTIFIER
    - PyImport_ImportModuleLevelObject
    - _PyObject_FastCall
    - _PyLong_AsInt
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nimport_name(PyThreadState *tstate, PyFrameObject *f,\n
      \           PyObject *name, PyObject *fromlist, PyObject *level)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5164,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Python/ceval.c:5167,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/ceval.c:5173,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5177,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/ceval.c:5178,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:5181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5183,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/ceval.c:5186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5187,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5188,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5191,1
    - Dst: PyModule_GetFilenameObject
      Src: /src/Python-3.8.3/Python/ceval.c:5194,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/ceval.c:5196,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5198,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5205,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/ceval.c:5206,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:5207,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/ceval.c:5212,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5215,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/ceval.c:5216,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/Python-3.8.3/Python/ceval.c:5218,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5222,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ceval.c:5224,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/ceval.c:5226,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5229,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5230,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5231,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - tstate
    - v
    - name
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5160
    functionDepth: 8
    functionLinenumber: 5160
    functionLinenumberEnd: 5233
    functionName: import_from
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_CLEAR
    - Py_DECREF
    - _PyModuleSpec_IsInitializing
    - _PyObject_GetAttrId
    - _PyErr_Clear
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyImport_GetModule
    - PyErr_SetImportError
    - _PyObject_LookupAttr
    - PyUnicode_Check
    - Py_XDECREF
    - PyModule_GetFilenameObject
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_from(PyThreadState *tstate, PyObject *v, PyObject *name)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5238,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5239,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ceval.c:5240,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/ceval.c:5245,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/ceval.c:5249,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/ceval.c:5253,1
    - Dst: PyMapping_Keys
      Src: /src/Python-3.8.3/Python/ceval.c:5257,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5258,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Python/ceval.c:5265,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ceval.c:5267,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/ceval.c:5271,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5275,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/ceval.c:5276,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5278,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5282,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5283,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:5285,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5288,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ceval.c:5293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5295,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5296,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/ceval.c:5301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5302,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/ceval.c:5306,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5307,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Python/ceval.c:5311,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/ceval.c:5314,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/ceval.c:5315,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Python/ceval.c:5317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5318,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5319,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5323,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 3
    argNames:
    - tstate
    - locals
    - v
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5325
      start: 5235
    functionDepth: 5
    functionLinenumber: 5235
    functionLinenumberEnd: 5325
    functionName: import_all_from
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyDict_SetItem
    - PyObject_GetAttr
    - _PyErr_ExceptionMatches
    - PyUnicode_READ_CHAR
    - Py_XDECREF
    - PyMapping_Keys
    - Py_DECREF
    - _PyErr_Format
    - Py_TYPE
    - PyObject_SetItem
    - _PyErr_SetString
    - PySequence_GetItem
    - _PyErr_Clear
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int import_all_from(PyThreadState *tstate, PyObject *locals, PyObject
      *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5330,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5331,1
    - Dst: PyEval_GetFuncName
      Src: /src/Python-3.8.3/Python/ceval.c:5334,1
    - Dst: PyEval_GetFuncDesc
      Src: /src/Python-3.8.3/Python/ceval.c:5335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - func
    - args
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5340
      start: 5327
    functionDepth: 4
    functionLinenumber: 5327
    functionLinenumberEnd: 5340
    functionName: check_args_iterable
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFuncName
    - PySequence_Check
    - PyEval_GetFuncDesc
    - _PyErr_Format
    linkageType: ''
    returnType: int
    signature: int check_args_iterable(PyThreadState *tstate, PyObject *func, PyObject
      *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ceval.c:5351,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5352,1
    - Dst: PyEval_GetFuncName
      Src: /src/Python-3.8.3/Python/ceval.c:5355,1
    - Dst: PyEval_GetFuncDesc
      Src: /src/Python-3.8.3/Python/ceval.c:5356,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ceval.c:5359,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ceval.c:5361,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5362,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:5362,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5363,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ceval.c:5364,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5365,1
    - Dst: PyEval_GetFuncName
      Src: /src/Python-3.8.3/Python/ceval.c:5367,1
    - Dst: PyEval_GetFuncDesc
      Src: /src/Python-3.8.3/Python/ceval.c:5368,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5371,1
    - Dst: PyEval_GetFuncName
      Src: /src/Python-3.8.3/Python/ceval.c:5374,1
    - Dst: PyEval_GetFuncDesc
      Src: /src/Python-3.8.3/Python/ceval.c:5375,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5378,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5379,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5380,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/ceval.c:5383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - tstate
    - func
    - kwargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5386
      start: 5342
    functionDepth: 4
    functionLinenumber: 5342
    functionLinenumberEnd: 5386
    functionName: format_kwargs_error
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyEval_GetFuncName
    - _PyErr_ExceptionMatches
    - _PyErr_Format
    - PyTuple_GET_SIZE
    - _PyErr_Restore
    - PyTuple_Check
    - PyEval_GetFuncDesc
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    - Py_XDECREF
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void format_kwargs_error(PyThreadState *tstate, PyObject *func, PyObject
      *kwargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5397,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - tstate
    - exc
    - format_str
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5388
    functionDepth: 3
    functionLinenumber: 5388
    functionLinenumberEnd: 5402
    functionName: format_exc_check_arg
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - _PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void format_exc_check_arg(PyThreadState *tstate, PyObject *exc,\n
      \                    const char *format_str, PyObject *obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5409,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:5411,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5412,1
    - Dst: format_exc_check_arg
      Src: /src/Python-3.8.3/Python/ceval.c:5414,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5419,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ceval.c:5420,1
    - Dst: format_exc_check_arg
      Src: /src/Python-3.8.3/Python/ceval.c:5421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tstate
    - co
    - oparg
    argTypes:
    - PyThreadState*
    - PyCodeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5424
      start: 5404
    functionDepth: 4
    functionLinenumber: 5404
    functionLinenumberEnd: 5424
    functionName: format_exc_unbound
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - format_exc_check_arg
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    - _PyErr_Occurred
    linkageType: ''
    returnType: void
    signature: void format_exc_unbound(PyThreadState *tstate, PyCodeObject *co, int
      oparg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5431,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/ceval.c:5437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - tstate
    - type
    - prevopcode
    argTypes:
    - PyThreadState*
    - PyTypeObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5443
      start: 5426
    functionDepth: 1
    functionLinenumber: 5426
    functionLinenumberEnd: 5443
    functionName: format_awaitable_error
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyErr_Format
    linkageType: ''
    returnType: void
    signature: void format_awaitable_error(PyThreadState *tstate, PyTypeObject *type,
      int prevopcode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Python/ceval.c:5450,1
    - Dst: NEXTOPARG
      Src: /src/Python-3.8.3/Python/ceval.c:5458,1
    - Dst: GETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:5463,1
    - Dst: SETLOCAL
      Src: /src/Python-3.8.3/Python/ceval.c:5464,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Python/ceval.c:5472,1
    - Dst: PyCell_SET
      Src: /src/Python-3.8.3/Python/ceval.c:5473,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5474,1
    - Dst: GETITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5481,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/ceval.c:5483,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/ceval.c:5484,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Python/ceval.c:5485,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ceval.c:5486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5488,1
    - Dst: PyUnicode_Append
      Src: /src/Python-3.8.3/Python/ceval.c:5497,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 5
    argNames:
    - tstate
    - v
    - w
    - f
    - next_instr
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyFrameObject*
    - _Py_CODEUNIT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5499
      start: 5445
    functionDepth: 5
    functionLinenumber: 5445
    functionLinenumberEnd: 5499
    functionName: unicode_concatenate
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyCell_GET
    - PyDict_GetItemWithError
    - Py_DECREF
    - GETLOCAL
    - Py_REFCNT
    - PyDict_DelItem
    - SETLOCAL
    - PyCell_SET
    - PyDict_CheckExact
    - GETITEM
    - NEXTOPARG
    - PyUnicode_Append
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nunicode_concatenate(PyThreadState *tstate, PyObject *v,
      PyObject *w,\n                    PyFrameObject *f, const _Py_CODEUNIT *next_instr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/ceval.c:5507,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/ceval.c:5510,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5512,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - a
    argTypes:
    - long[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5520
      start: 5503
    functionDepth: 2
    functionLinenumber: 5503
    functionLinenumberEnd: 5520
    functionName: getarray
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyLong_FromLong
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      getarray(long a[256])'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getarray
      Src: /src/Python-3.8.3/Python/ceval.c:5526,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/ceval.c:5529,1
    - Dst: getarray
      Src: /src/Python-3.8.3/Python/ceval.c:5532,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ceval.c:5534,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/ceval.c:5537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5541
      start: 5522
    functionDepth: 3
    functionLinenumber: 5522
    functionLinenumberEnd: 5541
    functionName: _Py_GetDXProfile
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - getarray
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetDXProfile(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/ceval.c:5548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - free
    argTypes:
    - freefunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5545
    functionDepth: 1
    functionLinenumber: 5545
    functionLinenumberEnd: 5557
    functionName: _PyEval_RequestCodeExtraIndex
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyEval_RequestCodeExtraIndex(freefunc free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5566,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5567,1
    - Dst: PyCode_Addr2Line
      Src: /src/Python-3.8.3/Python/ceval.c:5568,1
    - Dst: PyDTrace_FUNCTION_ENTRY
      Src: /src/Python-3.8.3/Python/ceval.c:5570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5559
    functionDepth: 3
    functionLinenumber: 5559
    functionLinenumberEnd: 5571
    functionName: dtrace_function_entry
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyCode_Addr2Line
    - PyDTrace_FUNCTION_ENTRY
    linkageType: ''
    returnType: void
    signature: void dtrace_function_entry(PyFrameObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5580,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5581,1
    - Dst: PyCode_Addr2Line
      Src: /src/Python-3.8.3/Python/ceval.c:5582,1
    - Dst: PyDTrace_FUNCTION_RETURN
      Src: /src/Python-3.8.3/Python/ceval.c:5584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5585
      start: 5573
    functionDepth: 3
    functionLinenumber: 5573
    functionLinenumberEnd: 5585
    functionName: dtrace_function_return
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyDTrace_FUNCTION_RETURN
    - PyUnicode_AsUTF8
    - PyCode_Addr2Line
    linkageType: ''
    returnType: void
    signature: void dtrace_function_return(PyFrameObject *f)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyCode_CheckLineNumber
      Src: /src/Python-3.8.3/Python/ceval.c:5600,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5610,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/ceval.c:5613,1
    - Dst: PyDTrace_LINE
      Src: /src/Python-3.8.3/Python/ceval.c:5616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - frame
    - instr_lb
    - instr_ub
    - instr_prev
    argTypes:
    - PyFrameObject*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5619
      start: 5588
    functionDepth: 3
    functionLinenumber: 5588
    functionLinenumberEnd: 5619
    functionName: maybe_dtrace_line
    functionSourceFile: /src/Python-3.8.3/Python/ceval.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyDTrace_LINE
    - _PyCode_CheckLineNumber
    linkageType: ''
    returnType: void
    signature: "void maybe_dtrace_line(PyFrameObject *frame,\n                  int
      *instr_lb, int *instr_ub, int *instr_prev)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dummy
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: PyFPE_dummy
    functionSourceFile: /src/Python-3.8.3/Python/pyfpe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double PyFPE_dummy(void *dummy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: UNCONDITIONAL_JUMP
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNCONDITIONAL_JUMP(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: CONDITIONAL_JUMP
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONDITIONAL_JUMP(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: ABSOLUTE_JUMP
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ABSOLUTE_JUMP(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: JUMPS_ON_TRUE
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JUMPS_ON_TRUE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arr
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: GETJUMPTGT
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETJUMPTGT(arr, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - blocks
    - ','
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ISBASICBLOCK
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISBASICBLOCK(blocks, start, end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:33,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:36,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:37,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:39,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:46,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - codestr
    - i
    - n
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (i >= 0)
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (_Py_OPCODE(codestr[i]) == EXTENDED_ARG)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/Python-3.8.3/Python/peephole.c
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: lastn_const_start
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - assert
    - _Py_OPCODE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t lastn_const_start(const _Py_CODEUNIT *codestr, Py_ssize_t
      i, Py_ssize_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - codestr
    - codelen
    - i
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: find_op
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - _Py_OPCODE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t find_op(const _Py_CODEUNIT *codestr, Py_ssize_t codelen,
      Py_ssize_t i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:67,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:68,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:69,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:70,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:71,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:72,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - codestr
    - i
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: get_arg
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 1
    functionsReached:
    - _Py_OPARG
    - _Py_OPCODE
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_arg(const _Py_CODEUNIT *codestr, Py_ssize_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/peephole.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - codestr
    - start
    - end
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: fill_nops
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fill_nops(_Py_CODEUNIT *codestr, Py_ssize_t start, Py_ssize_t
      end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:93,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/peephole.c:97,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/peephole.c:98,1
    - Dst: write_op_arg
      Src: /src/Python-3.8.3/Python/peephole.c:103,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:103,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - codestr
    - i
    - oparg
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: set_arg
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - _Py_OPCODE
    - write_op_arg
    - fill_nops
    - get_arg
    - instrsize
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t set_arg(_Py_CODEUNIT *codestr, Py_ssize_t i, unsigned int
      oparg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/peephole.c:115,1
    - Dst: write_op_arg
      Src: /src/Python-3.8.3/Python/peephole.c:119,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - codestr
    - i
    - op
    - oparg
    - maxi
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - unsigned char
    - unsigned int
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: copy_op_arg
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - write_op_arg
    - fill_nops
    - instrsize
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t copy_op_arg(_Py_CODEUNIT *codestr, Py_ssize_t i, unsigned
      char op,\n            unsigned int oparg, Py_ssize_t maxi)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:136,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Python/peephole.c:136,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/peephole.c:139,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:145,1
    - Dst: find_op
      Src: /src/Python-3.8.3/Python/peephole.c:146,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:147,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:147,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:149,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/peephole.c:150,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/peephole.c:151,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/peephole.c:152,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/peephole.c:155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/peephole.c:158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/peephole.c:159,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/peephole.c:165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/peephole.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/peephole.c:169,1
    - Dst: copy_op_arg
      Src: /src/Python-3.8.3/Python/peephole.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - codestr
    - codelen
    - c_start
    - opcode_end
    - consts
    - n
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts:
    - condition: (PyList_CheckExact(consts))
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (pos < opcode_end)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (_Py_OPCODE(codestr[pos]) == LOAD_CONST)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/Python-3.8.3/Python/peephole.c
    constantsTouched: []
    func_position:
      end: 173
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 173
    functionName: fold_tuple_on_constants
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_OPCODE
    - PyTuple_New
    - Py_INCREF
    - find_op
    - PyList_GET_ITEM
    - copy_op_arg
    - PyList_GET_SIZE
    - PyList_Append
    - get_arg
    - PyErr_SetString
    - assert
    - PyList_CheckExact
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t fold_tuple_on_constants(_Py_CODEUNIT *codestr, Py_ssize_t
      codelen,\n                        Py_ssize_t c_start, Py_ssize_t opcode_end,\n
      \                       PyObject *consts, int n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/Python/peephole.c:178,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/peephole.c:182,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/peephole.c:185,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:189,1
    - Dst: GETJUMPTGT
      Src: /src/Python-3.8.3/Python/peephole.c:202,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - code
    - len
    argTypes:
    - _Py_CODEUNIT*
    - Py_ssize_t
    assertStmts:
    - condition: (j < len)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/Python-3.8.3/Python/peephole.c
    constantsTouched: []
    func_position:
      end: 214
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 214
    functionName: markblocks
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - _Py_OPCODE
    - GETJUMPTGT
    - PyErr_NoMemory
    - assert
    - memset
    linkageType: ''
    returnType: unsigned int
    signature: 'unsigned int *

      markblocks(_Py_CODEUNIT *code, Py_ssize_t len)'
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/peephole.c:245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:249,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/peephole.c:249,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/peephole.c:250,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/peephole.c:251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:252,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Python/peephole.c:252,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:264,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/peephole.c:264,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/peephole.c:265,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:266,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/peephole.c:275,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/peephole.c:277,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/peephole.c:280,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/peephole.c:280,1
    - Dst: markblocks
      Src: /src/Python-3.8.3/Python/peephole.c:282,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:285,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/peephole.c:285,1
    - Dst: find_op
      Src: /src/Python-3.8.3/Python/peephole.c:287,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:288,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:290,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:295,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:297,1
    - Dst: ISBASICBLOCK
      Src: /src/Python-3.8.3/Python/peephole.c:309,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/peephole.c:312,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:312,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/peephole.c:313,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:318,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:328,1
    - Dst: lastn_const_start
      Src: /src/Python-3.8.3/Python/peephole.c:330,1
    - Dst: ISBASICBLOCK
      Src: /src/Python-3.8.3/Python/peephole.c:331,1
    - Dst: fold_tuple_on_constants
      Src: /src/Python-3.8.3/Python/peephole.c:332,1
    - Dst: ISBASICBLOCK
      Src: /src/Python-3.8.3/Python/peephole.c:338,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:339,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:342,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/peephole.c:344,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:345,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/peephole.c:347,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/peephole.c:348,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:349,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:369,1
    - Dst: find_op
      Src: /src/Python-3.8.3/Python/peephole.c:370,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:372,1
    - Dst: CONDITIONAL_JUMP
      Src: /src/Python-3.8.3/Python/peephole.c:373,1
    - Dst: JUMPS_ON_TRUE
      Src: /src/Python-3.8.3/Python/peephole.c:375,1
    - Dst: JUMPS_ON_TRUE
      Src: /src/Python-3.8.3/Python/peephole.c:375,1
    - Dst: set_arg
      Src: /src/Python-3.8.3/Python/peephole.c:379,1
    - Dst: get_arg
      Src: /src/Python-3.8.3/Python/peephole.c:379,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:387,1
    - Dst: set_arg
      Src: /src/Python-3.8.3/Python/peephole.c:389,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/peephole.c:396,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:396,1
    - Dst: GETJUMPTGT
      Src: /src/Python-3.8.3/Python/peephole.c:407,1
    - Dst: find_op
      Src: /src/Python-3.8.3/Python/peephole.c:408,1
    - Dst: UNCONDITIONAL_JUMP
      Src: /src/Python-3.8.3/Python/peephole.c:410,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:411,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/peephole.c:412,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:413,1
    - Dst: UNCONDITIONAL_JUMP
      Src: /src/Python-3.8.3/Python/peephole.c:414,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:414,1
    - Dst: GETJUMPTGT
      Src: /src/Python-3.8.3/Python/peephole.c:415,1
    - Dst: ABSOLUTE_JUMP
      Src: /src/Python-3.8.3/Python/peephole.c:418,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:425,1
    - Dst: copy_op_arg
      Src: /src/Python-3.8.3/Python/peephole.c:427,1
    - Dst: ISBASICBLOCK
      Src: /src/Python-3.8.3/Python/peephole.c:439,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:440,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:442,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:444,1
    - Dst: fill_nops
      Src: /src/Python-3.8.3/Python/peephole.c:453,1
    - Dst: find_op
      Src: /src/Python-3.8.3/Python/peephole.c:454,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:464,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:467,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:476,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:480,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:487,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:488,1
    - Dst: _Py_OPARG
      Src: /src/Python-3.8.3/Python/peephole.c:490,1
    - Dst: _Py_OPCODE
      Src: /src/Python-3.8.3/Python/peephole.c:492,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/peephole.c:515,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:518,1
    - Dst: write_op_arg
      Src: /src/Python-3.8.3/Python/peephole.c:520,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/peephole.c:523,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/peephole.c:525,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/peephole.c:526,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/peephole.c:527,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/peephole.c:534,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/peephole.c:535,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/peephole.c:536,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 213
    argCount: 4
    argNames:
    - code
    - consts
    - names
    - lnotab_obj
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(code))
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (arg <= (UINT_MAX / sizeof(_Py_CODEUNIT)))
      pos:
        line_end: 424
        line_start: 424
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: ((size_t)arg <= UINT_MAX / sizeof(_Py_CODEUNIT))
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (cum_orig_offset % sizeof(_Py_CODEUNIT) == 0)
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (PyList_Check(consts))
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (h + (Py_ssize_t)nops == codelen)
      pos:
        line_end: 522
        line_start: 522
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (ilen <= INT_MAX)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (block <= UINT_MAX)
      pos:
        line_end: 463
        line_start: 463
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (tabsiz == 0 || Py_REFCNT(lnotab_obj) == 1)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (PyBytes_Check(lnotab_obj))
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (codesize % sizeof(_Py_CODEUNIT) == 0)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/Python-3.8.3/Python/peephole.c
    - condition: (offset_delta <= 255)
      pos:
        line_end: 479
        line_start: 479
        source_file: /src/Python-3.8.3/Python/peephole.c
    constantsTouched: []
    func_position:
      end: 538
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 538
    functionName: PyCode_Optimize
    functionSourceFile: /src/Python-3.8.3/Python/peephole.c
    functionUses: 0
    functionsReached:
    - _Py_OPARG
    - fold_tuple_on_constants
    - ISBASICBLOCK
    - markblocks
    - fill_nops
    - UNCONDITIONAL_JUMP
    - write_op_arg
    - ABSOLUTE_JUMP
    - JUMPS_ON_TRUE
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_REFCNT
    - CONDITIONAL_JUMP
    - PyList_GET_ITEM
    - get_arg
    - instrsize
    - assert
    - set_arg
    - find_op
    - PyList_Check
    - copy_op_arg
    - PyBytes_GET_SIZE
    - PyMem_Free
    - PyBytes_AS_STRING
    - PACKOPARG
    - memcpy
    - _Py_OPCODE
    - PyErr_NoMemory
    - lastn_const_start
    - GETJUMPTGT
    - PyBytes_Check
    - PyMem_Malloc
    - PyObject_IsTrue
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyCode_Optimize(PyObject *code, PyObject* consts, PyObject
      *names,\n                PyObject *lnotab_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PUTS
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTS(fd, str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/traceback.c:42,1
    - Dst: PyFrame_Check
      Src: /src/Python-3.8.3/Python/traceback.c:43,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/traceback.c:44,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/traceback.c:47,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/traceback.c:49,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/traceback.c:51,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Python/traceback.c:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - next
    - frame
    - lasti
    - lineno
    argTypes:
    - PyTracebackObject*
    - PyFrameObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 58
    functionName: tb_create_raw
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Check
    - PyErr_BadInternalCall
    - Py_XINCREF
    - PyObject_GC_New
    - PyObject_GC_Track
    - PyFrame_Check
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntb_create_raw(PyTracebackObject *next, PyFrameObject *frame,
      int lasti,\n              int lineno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/traceback.c:79,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/traceback.c:80,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/traceback.c:82,1
    - Dst: tb_create_raw
      Src: /src/Python-3.8.3/Python/traceback.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - type
    - tb_next
    - tb_frame
    - tb_lasti
    - tb_lineno
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyFrameObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 87
    functionName: tb_new_impl
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Check
    - PyErr_Format
    - tb_create_raw
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ntb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject
      *tb_frame,\n            int tb_lasti, int tb_lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/traceback.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyTracebackObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: tb_dir
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_dir(PyTracebackObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/traceback.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(_)
    argTypes:
    - PyTracebackObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: tb_next_get
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_next_get(PyTracebackObject *self, void *Py_UNUSED(_))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/traceback.c:111,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/traceback.c:119,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/traceback.c:120,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/traceback.c:122,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/traceback.c:130,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/traceback.c:137,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - self
    - new_next
    - Py_UNUSED(_)
    argTypes:
    - PyTracebackObject*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 142
    functionName: tb_next_set
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Check
    - Py_XINCREF
    - PyErr_Format
    - Py_TYPE
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int tb_next_set(PyTracebackObject *self, PyObject *new_next, void *Py_UNUSED(_))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/traceback.c:165,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Python/traceback.c:166,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:167,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:168,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Python/traceback.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tb
    argTypes:
    - PyTracebackObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: tb_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void tb_dealloc(PyTracebackObject *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/traceback.c:176,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/traceback.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tb
    - visit
    - arg
    argTypes:
    - PyTracebackObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: tb_traverse
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/traceback.c:184,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/traceback.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tb
    argTypes:
    - PyTracebackObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: tb_clear
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int tb_clear(PyTracebackObject *tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:234,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/traceback.c:234,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:235,1
    - Dst: tb_create_raw
      Src: /src/Python-3.8.3/Python/traceback.c:237,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Python/traceback.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - tb_next
    - frame
    argTypes:
    - PyObject*
    - PyFrameObject*
    assertStmts:
    - condition: (tb_next == NULL || PyTraceBack_Check(tb_next))
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/Python-3.8.3/Python/traceback.c
    - condition: (frame != NULL)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/Python-3.8.3/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 239
    functionName: _PyTraceBack_FromFrame
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - assert
    - PyFrame_GetLineNumber
    - PyTraceBack_Check
    - tb_create_raw
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTraceBack_FromFrame(PyObject *tb_next, PyFrameObject *frame)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/traceback.c:246,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/Python-3.8.3/Python/traceback.c:247,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Python/traceback.c:249,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/traceback.c:252,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: PyTraceBack_Here
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _PyErr_ChainExceptions
    - PyErr_Fetch
    - _PyTraceBack_FromFrame
    - PyErr_Restore
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyTraceBack_Here(PyFrameObject *frame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/traceback.c:268,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/traceback.c:270,1
    - Dst: PyCode_NewEmpty
      Src: /src/Python-3.8.3/Python/traceback.c:273,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:275,1
    - Dst: PyFrame_New
      Src: /src/Python-3.8.3/Python/traceback.c:278,1
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Python/traceback.c:278,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:279,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:280,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/traceback.c:285,1
    - Dst: PyTraceBack_Here
      Src: /src/Python-3.8.3/Python/traceback.c:286,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:287,1
    - Dst: _PyErr_ChainExceptions
      Src: /src/Python-3.8.3/Python/traceback.c:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - funcname
    - filename
    - lineno
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 258
    functionDepth: 12
    functionLinenumber: 258
    functionLinenumberEnd: 292
    functionName: _PyTraceback_Add
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - PyErr_Fetch
    - PyDict_New
    - PyTraceBack_Here
    - PyThreadState_Get
    - _PyErr_ChainExceptions
    - PyFrame_New
    - PyErr_Restore
    - PyCode_NewEmpty
    linkageType: ''
    returnType: void
    signature: void _PyTraceback_Add(const char *funcname, const char *filename, int
      lineno)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Python/traceback.c:310,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:312,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/traceback.c:315,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Python/traceback.c:318,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/traceback.c:323,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/traceback.c:325,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/traceback.c:326,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Python/traceback.c:328,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Python/traceback.c:331,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:333,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/traceback.c:336,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Python/traceback.c:338,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:340,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/traceback.c:343,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:345,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/traceback.c:348,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/traceback.c:348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:349,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/traceback.c:350,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/traceback.c:354,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/traceback.c:356,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:368,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 4
    argNames:
    - filename
    - namebuf
    - namelen
    - io
    argTypes:
    - PyObject*
    - char*
    - size_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 294
    functionDepth: 5
    functionLinenumber: 294
    functionLinenumberEnd: 370
    functionName: _Py_FindSourceFile
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PyUnicode_EncodeFSDefault
    - strrchr
    - _PySys_GetObjectId
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyList_Check
    - PyList_Size
    - PyList_GetItem
    - strlen
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_FindSourceFile(PyObject *filename, char* namebuf, size_t namelen, PyObject
      *io)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Python/traceback.c:393,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/traceback.c:396,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:399,1
    - Dst: _Py_FindSourceFile
      Src: /src/Python-3.8.3/Python/traceback.c:401,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:403,1
    - Dst: PyObject_AsFileDescriptor
      Src: /src/Python-3.8.3/Python/traceback.c:409,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:411,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:412,1
    - Dst: PyTokenizer_FindEncodingFilename
      Src: /src/Python-3.8.3/Python/traceback.c:415,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:417,1
    - Dst: lseek
      Src: /src/Python-3.8.3/Python/traceback.c:420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:421,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:422,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/traceback.c:423,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/traceback.c:426,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:427,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/traceback.c:428,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:431,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/traceback.c:433,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:436,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:438,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:441,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:445,1
    - Dst: PyFile_GetLine
      Src: /src/Python-3.8.3/Python/traceback.c:446,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:448,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/traceback.c:453,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:455,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:457,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:458,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/traceback.c:459,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/traceback.c:460,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/traceback.c:465,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/traceback.c:466,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/traceback.c:467,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/traceback.c:468,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/traceback.c:474,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/traceback.c:474,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:476,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:479,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/traceback.c:484,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:485,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/traceback.c:485,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/traceback.c:489,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/traceback.c:497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:498,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/traceback.c:500,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 93
    argCount: 4
    argNames:
    - f
    - filename
    - lineno
    - indent
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (strlen(buf) == 10)
      pos:
        line_end: 484
        line_start: 484
        source_file: /src/Python-3.8.3/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 502
      start: 372
    functionDepth: 12
    functionLinenumber: 372
    functionLinenumberEnd: 502
    functionName: _Py_DisplaySourceLine
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - PyUnicode_READ
    - PyFile_GetLine
    - lseek
    - PyFile_WriteObject
    - PyUnicode_KIND
    - PyUnicode_Substring
    - strlen
    - PyUnicode_DATA
    - assert
    - PyMem_FREE
    - PyUnicode_GET_LENGTH
    - PyErr_Clear
    - Py_XDECREF
    - Py_DECREF
    - PyImport_ImportModuleNoBlock
    - strcpy
    - PyObject_AsFileDescriptor
    - PyTokenizer_FindEncodingFilename
    - _PyObject_CallMethodId
    - _Py_FindSourceFile
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno,
      int indent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/traceback.c:512,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/traceback.c:516,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:517,1
    - Dst: _Py_DisplaySourceLine
      Src: /src/Python-3.8.3/Python/traceback.c:521,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/traceback.c:522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - f
    - filename
    - lineno
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 504
    functionDepth: 13
    functionLinenumber: 504
    functionLinenumberEnd: 524
    functionName: tb_displayline
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyFile_WriteObject
    - _Py_DisplaySourceLine
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int tb_displayline(PyObject *f, PyObject *filename, int lineno, PyObject
      *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/traceback.c:532,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/traceback.c:540,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/traceback.c:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - f
    - cnt
    argTypes:
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 528
    functionDepth: 8
    functionLinenumber: 528
    functionLinenumberEnd: 543
    functionName: tb_print_line_repeated
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteObject
    - Py_DECREF
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: int
    signature: int tb_print_line_repeated(PyObject *f, long cnt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tb_print_line_repeated
      Src: /src/Python-3.8.3/Python/traceback.c:569,1
    - Dst: tb_displayline
      Src: /src/Python-3.8.3/Python/traceback.c:578,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/traceback.c:583,1
    - Dst: tb_print_line_repeated
      Src: /src/Python-3.8.3/Python/traceback.c:589,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - tb
    - f
    - limit
    argTypes:
    - PyTracebackObject*
    - PyObject*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 545
    functionDepth: 14
    functionLinenumber: 545
    functionLinenumberEnd: 592
    functionName: tb_printinternal
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - tb_displayline
    - PyErr_CheckSignals
    - tb_print_line_repeated
    linkageType: ''
    returnType: int
    signature: int tb_printinternal(PyTracebackObject *tb, PyObject *f, long limit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/traceback.c:605,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/traceback.c:606,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/traceback.c:609,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/traceback.c:610,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Python/traceback.c:612,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/traceback.c:620,1
    - Dst: tb_printinternal
      Src: /src/Python-3.8.3/Python/traceback.c:622,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - v
    - f
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 596
    functionDepth: 15
    functionLinenumber: 596
    functionLinenumberEnd: 624
    functionName: PyTraceBack_Print
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - PyFile_WriteString
    - PyTraceBack_Check
    - PyErr_BadInternalCall
    - tb_printinternal
    - PyLong_AsLongAndOverflow
    - PySys_GetObject
    linkageType: ''
    returnType: int
    signature: int PyTraceBack_Print(PyObject *v, PyObject *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/traceback.c:639,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:644,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Python/traceback.c:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - value
    argTypes:
    - int
    - unsigned long
    assertStmts:
    - condition: (ptr >= buffer)
      pos:
        line_end: 643
        line_start: 643
        source_file: /src/Python-3.8.3/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 650
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 650
    functionName: _Py_DumpDecimal
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 1
    functionsReached:
    - assert
    - _Py_write_noraise
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void _Py_DumpDecimal(int fd, unsigned long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/traceback.c:661,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:672,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Python/traceback.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - value
    - width
    argTypes:
    - int
    - unsigned long
    - Py_ssize_t
    assertStmts:
    - condition: (ptr >= buffer)
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/Python-3.8.3/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 678
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 678
    functionName: _Py_DumpHexadecimal
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 1
    functionsReached:
    - assert
    - _Py_write_noraise
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void _Py_DumpHexadecimal(int fd, unsigned long value, Py_ssize_t width)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/traceback.c:691,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/traceback.c:724,1
    - Dst: _Py_write_noraise
      Src: /src/Python-3.8.3/Python/traceback.c:730,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:733,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/Python-3.8.3/Python/traceback.c:734,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:737,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/Python-3.8.3/Python/traceback.c:738,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:741,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/Python-3.8.3/Python/traceback.c:742,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:746,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - fd
    - text
    argTypes:
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 748
    functionName: _Py_DumpASCII
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 1
    functionsReached:
    - PyUnicode_READ
    - PUTS
    - _Py_write_noraise
    - PyUnicode_Check
    - _Py_DumpHexadecimal
    linkageType: ''
    returnType: void
    signature: void _Py_DumpASCII(int fd, PyObject *text)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:761,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/traceback.c:763,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:765,1
    - Dst: _Py_DumpASCII
      Src: /src/Python-3.8.3/Python/traceback.c:766,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:767,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:769,1
    - Dst: PyCode_Addr2Line
      Src: /src/Python-3.8.3/Python/traceback.c:773,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:774,1
    - Dst: _Py_DumpDecimal
      Src: /src/Python-3.8.3/Python/traceback.c:776,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:779,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:781,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/traceback.c:784,1
    - Dst: _Py_DumpASCII
      Src: /src/Python-3.8.3/Python/traceback.c:785,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:788,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - fd
    - frame
    argTypes:
    - int
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 792
    functionName: dump_frame
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - _Py_DumpASCII
    - _Py_DumpDecimal
    - PUTS
    - PyCode_Addr2Line
    - PyUnicode_Check
    linkageType: ''
    returnType: void
    signature: void dump_frame(int fd, PyFrameObject *frame)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:801,1
    - Dst: _PyThreadState_GetFrame
      Src: /src/Python-3.8.3/Python/traceback.c:804,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:806,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:813,1
    - Dst: PyFrame_Check
      Src: /src/Python-3.8.3/Python/traceback.c:816,1
    - Dst: dump_frame
      Src: /src/Python-3.8.3/Python/traceback.c:818,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - fd
    - tstate
    - write_header
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 822
    functionName: dump_traceback
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 3
    functionsReached:
    - PyFrame_Check
    - PUTS
    - _PyThreadState_GetFrame
    - dump_frame
    linkageType: ''
    returnType: void
    signature: void dump_traceback(int fd, PyThreadState *tstate, int write_header)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_traceback
      Src: /src/Python-3.8.3/Python/traceback.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fd
    - tstate
    argTypes:
    - int
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 5
    functionLinenumber: 830
    functionLinenumberEnd: 834
    functionName: _Py_DumpTraceback
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 2
    functionsReached:
    - dump_traceback
    linkageType: ''
    returnType: void
    signature: void _Py_DumpTraceback(int fd, PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:845,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:847,1
    - Dst: _Py_DumpHexadecimal
      Src: /src/Python-3.8.3/Python/traceback.c:848,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - tstate
    - is_current
    argTypes:
    - int
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 852
    functionName: write_thread_id
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - PUTS
    - _Py_DumpHexadecimal
    linkageType: ''
    returnType: void
    signature: void write_thread_id(int fd, PyThreadState *tstate, int is_current)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/traceback.c:879,1
    - Dst: _PyGILState_GetInterpreterStateUnsafe
      Src: /src/Python-3.8.3/Python/traceback.c:884,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/traceback.c:894,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Python/traceback.c:897,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Python/traceback.c:902,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:908,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:910,1
    - Dst: write_thread_id
      Src: /src/Python-3.8.3/Python/traceback.c:913,1
    - Dst: dump_traceback
      Src: /src/Python-3.8.3/Python/traceback.c:914,1
    - Dst: PyThreadState_Next
      Src: /src/Python-3.8.3/Python/traceback.c:915,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - fd
    - interp
    - current_tstate
    argTypes:
    - int
    - PyInterpreterState*
    - PyThreadState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 893
        line_start: 893
        source_file: /src/Python-3.8.3/Python/traceback.c
    constantsTouched: []
    func_position:
      end: 921
      start: 860
    functionDepth: 5
    functionLinenumber: 860
    functionLinenumberEnd: 921
    functionName: _Py_DumpTracebackThreads
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 3
    functionsReached:
    - write_thread_id
    - _PyGILState_GetInterpreterStateUnsafe
    - PUTS
    - dump_traceback
    - assert
    - PyThreadState_Next
    - PyGILState_GetThisThreadState
    - PyInterpreterState_ThreadHead
    linkageType: ''
    returnType: char
    signature: "char *\n_Py_DumpTracebackThreads(int fd, PyInterpreterState *interp,\n
      \                        PyThreadState *current_tstate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:908,1
    - Dst: PUTS
      Src: /src/Python-3.8.3/Python/traceback.c:910,1
    - Dst: write_thread_id
      Src: /src/Python-3.8.3/Python/traceback.c:913,1
    - Dst: dump_traceback
      Src: /src/Python-3.8.3/Python/traceback.c:914,1
    - Dst: PyThreadState_Next
      Src: /src/Python-3.8.3/Python/traceback.c:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 904
    functionDepth: 5
    functionLinenumber: 904
    functionLinenumberEnd: 917
    functionName: do
    functionSourceFile: /src/Python-3.8.3/Python/traceback.c
    functionUses: 0
    functionsReached:
    - dump_traceback
    - PyThreadState_Next
    - write_thread_id
    - PUTS
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - gilstate
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: _PyRuntimeGILState_GetThreadState
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyRuntimeGILState_GetThreadState(gilstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - gilstate
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: _PyRuntimeGILState_SetThreadState
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyRuntimeGILState_SetThreadState(gilstate, value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystate.c:55,1
    - Dst: _PyGC_Initialize
      Src: /src/Python-3.8.3/Python/pystate.c:61,1
    - Dst: _PyEval_Initialize
      Src: /src/Python-3.8.3/Python/pystate.c:62,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Python/pystate.c:64,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:73,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pystate.c:75,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:79,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pystate.c:81,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/pystate.c:85,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pystate.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 88
    functionName: _PyRuntimeState_Init_impl
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyStatus_ERR
    - _PyGC_Initialize
    - PyThread_get_thread_ident
    - PyThread_allocate_lock
    - _PyEval_Initialize
    - _PyStatus_OK
    - PyPreConfig_InitPythonConfig
    - memset
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntimeState_Init_impl(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:96,1
    - Dst: _PyRuntimeState_Init_impl
      Src: /src/Python-3.8.3/Python/pystate.c:98,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: _PyRuntimeState_Init
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - _PyRuntimeState_Init_impl
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:109,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/pystate.c:112,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/pystate.c:117,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: _PyRuntimeState_Fini
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void _PyRuntimeState_Fini(_PyRuntimeState *runtime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/pystate.c:132,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:137,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:139,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:140,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:141,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:143,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:146,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:150,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: _PyRuntimeState_ReInitThreads
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - Py_FatalError
    - PyThread_get_thread_ident
    - PyThread_allocate_lock
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: void
    signature: void _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runtime
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: HEAD_LOCK
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAD_LOCK(runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runtime
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: HEAD_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEAD_UNLOCK(runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:179,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:181,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pystate.c:183,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pystate.c:186,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pystate.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 191
    functionName: _PyInterpreterState_Enable
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyStatus_ERR
    - PyThread_allocate_lock
    - _PyMem_SetDefaultAllocator
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyInterpreterState_Enable(_PyRuntimeState *runtime)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/pystate.c:196,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/pystate.c:200,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystate.c:205,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Python/pystate.c:209,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:223,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:226,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pystate.c:228,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 251
    functionName: PyInterpreterState_New
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - PyMem_RawMalloc
    - PyConfig_InitPythonConfig
    - PyErr_SetString
    - PyMem_RawFree
    - HEAD_UNLOCK
    - PySys_Audit
    - memset
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/pystate.c:257,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:258,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:261,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:263,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:265,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:267,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:269,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:270,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:271,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:272,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:273,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:274,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:275,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:276,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:277,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:278,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:279,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:280,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:282,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:283,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:284,1
    - Dst: _PyWarnings_Fini
      Src: /src/Python-3.8.3/Python/pystate.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 292
    functionName: _PyInterpreterState_Clear
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PySys_Audit
    - PyThreadState_Clear
    - PyConfig_Clear
    - HEAD_LOCK
    - HEAD_UNLOCK
    - _PyWarnings_Fini
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_Clear(_PyRuntimeState *runtime, PyInterpreterState
      *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: PyInterpreterState_Clear
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Clear
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Clear(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Delete
      Src: /src/Python-3.8.3/Python/pystate.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: zapthreads
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Delete
    linkageType: ''
    returnType: void
    signature: void zapthreads(_PyRuntimeState *runtime, PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: zapthreads
      Src: /src/Python-3.8.3/Python/pystate.c:318,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:319,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:323,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:330,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:336,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:339,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/pystate.c:341,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pystate.c:343,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 344
    functionName: _PyInterpreterState_Delete
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThread_free_lock
    - zapthreads
    - HEAD_LOCK
    - Py_FatalError
    - PyMem_RawFree
    - HEAD_UNLOCK
    linkageType: ''
    returnType: void
    signature: "void _PyInterpreterState_Delete(_PyRuntimeState *runtime,\n                           PyInterpreterState
      *interp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Delete
      Src: /src/Python-3.8.3/Python/pystate.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: PyInterpreterState_Delete
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Delete
    linkageType: ''
    returnType: void
    signature: void PyInterpreterState_Delete(PyInterpreterState *interp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:364,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:366,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:369,1
    - Dst: _PyInterpreterState_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:380,1
    - Dst: zapthreads
      Src: /src/Python-3.8.3/Python/pystate.c:381,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/pystate.c:383,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pystate.c:387,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:389,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:392,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 395
    functionName: _PyInterpreterState_DeleteExceptMain
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Clear
    - PyThread_free_lock
    - zapthreads
    - HEAD_LOCK
    - _PyThreadState_Swap
    - Py_FatalError
    - PyMem_RawFree
    - HEAD_UNLOCK
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pystate.c:401,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:403,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: _PyInterpreterState_Get
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 18
    functionsReached:
    - Py_FatalError
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterState_Get(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: PyInterpreterState_GetID
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 4
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int64_t
    signature: int64_t PyInterpreterState_GetID(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Python/pystate.c:429,1
    - Dst: PyInterpreterState_Next
      Src: /src/Python-3.8.3/Python/pystate.c:436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - runtime
    - requested_id
    argTypes:
    - _PyRuntimeState*
    - PY_INT64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: interp_look_up_id
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyInterpreterState_Next
    - PyInterpreterState_GetID
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      interp_look_up_id(_PyRuntimeState *runtime, PY_INT64_T requested_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:447,1
    - Dst: interp_look_up_id
      Src: /src/Python-3.8.3/Python/pystate.c:448,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:449,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pystate.c:451,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystate.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - requested_id
    argTypes:
    - PY_INT64_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 456
    functionName: _PyInterpreterState_LookUpID
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 3
    functionsReached:
    - PyErr_Occurred
    - HEAD_LOCK
    - PyErr_Format
    - interp_look_up_id
    - HEAD_UNLOCK
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyInterpreterState_LookUpID(PY_INT64_T requested_id)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/pystate.c:465,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:467,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: _PyInterpreterState_IDInitref
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyThread_allocate_lock
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_IDInitref(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/pystate.c:482,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/pystate.c:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 485
    functionName: _PyInterpreterState_IDIncref
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_IDIncref(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/pystate.c:495,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:496,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/pystate.c:499,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Python/pystate.c:503,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:505,1
    - Dst: Py_EndInterpreter
      Src: /src/Python-3.8.3/Python/pystate.c:506,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (interp->id_refcount != 0)
      pos:
        line_end: 495
        line_start: 495
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 509
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 509
    functionName: _PyInterpreterState_IDDecref
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_EndInterpreter
    - PyThread_acquire_lock
    - _PyThreadState_Swap
    - PyThread_release_lock
    - assert
    - PyInterpreterState_ThreadHead
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_IDDecref(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 515
    functionName: _PyInterpreterState_RequiresIDRef
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyInterpreterState_RequiresIDRef(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - interp
    - required
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: _PyInterpreterState_RequireIDRef
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyInterpreterState_RequireIDRef(PyInterpreterState *interp, int
      required)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:527,1
    - Dst: PyMapping_GetItemString
      Src: /src/Python-3.8.3/Python/pystate.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 531
    functionName: _PyInterpreterState_GetMainModule
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyMapping_GetItemString
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyInterpreterState_GetMainModule(PyInterpreterState *interp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/pystate.c:537,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 4
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: PyInterpreterState_GetDict
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyInterpreterState_GetDict(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 551
    functionName: threadstate_getframe
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct _frame
    signature: 'struct _frame *

      threadstate_getframe(PyThreadState *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/pystate.c:557,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/pystate.c:577,1
    - Dst: _PyThreadState_Init
      Src: /src/Python-3.8.3/Python/pystate.c:610,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:613,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 2
    argNames:
    - interp
    - init
    argTypes:
    - PyInterpreterState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 623
    functionName: new_threadstate
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - _PyThreadState_Init
    - PyMem_RawMalloc
    - PyThread_get_thread_ident
    - HEAD_UNLOCK
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      new_threadstate(PyInterpreterState *interp, int init)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_threadstate
      Src: /src/Python-3.8.3/Python/pystate.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 629
    functionName: PyThreadState_New
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - new_threadstate
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_New(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_threadstate
      Src: /src/Python-3.8.3/Python/pystate.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: _PyThreadState_Prealloc
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - new_threadstate
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_Prealloc(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGILState_NoteThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - runtime
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: _PyThreadState_Init
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyGILState_NoteThreadState
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Init(_PyRuntimeState *runtime, PyThreadState *tstate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pystate.c:647,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:656,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/pystate.c:658,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - struct PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 660
    functionName: PyState_FindModule
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 6
    functionsReached:
    - PyList_GET_SIZE
    - _PyInterpreterState_GET_UNSAFE
    - PyList_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyState_FindModule(struct PyModuleDef* module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:667,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pystate.c:667,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:671,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pystate.c:675,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/pystate.c:677,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:681,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/pystate.c:682,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:684,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Python/pystate.c:685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - struct PyModuleDef*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 666
        line_start: 666
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 687
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 687
    functionName: _PyState_AddModule
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PyList_SetItem
    - PyList_GET_SIZE
    - PyList_Append
    - PyErr_SetString
    - PyList_New
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyState_AddModule(PyObject* module, struct PyModuleDef* def)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pystate.c:693,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:695,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:700,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/pystate.c:701,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:702,1
    - Dst: _PyState_AddModule
      Src: /src/Python-3.8.3/Python/pystate.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - module
    - def
    argTypes:
    - PyObject*
    - struct PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 689
    functionDepth: 5
    functionLinenumber: 689
    functionLinenumberEnd: 706
    functionName: PyState_AddModule
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 3
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyList_GET_ITEM
    - _PyState_AddModule
    - Py_FatalError
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyState_AddModule(PyObject* module, struct PyModuleDef* def)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:714,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pystate.c:718,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:720,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:724,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:727,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:728,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:731,1
    - Dst: PyList_SetItem
      Src: /src/Python-3.8.3/Python/pystate.c:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct PyModuleDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 733
    functionName: PyState_RemoveModule
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PyList_SetItem
    - Py_FatalError
    - PyErr_SetString
    - PyList_GET_SIZE
    linkageType: ''
    returnType: int
    signature: int PyState_RemoveModule(struct PyModuleDef* def)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pystate.c:739,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:742,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/pystate.c:743,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/pystate.c:744,1
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Python/pystate.c:746,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:748,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Python/pystate.c:753,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/pystate.c:754,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/pystate.c:756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 736
    functionDepth: 6
    functionLinenumber: 736
    functionLinenumberEnd: 758
    functionName: _PyState_ClearModules
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyList_SetSlice
    - Py_CLEAR
    - PyModule_GetDef
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_WriteUnraisable
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    linkageType: ''
    returnType: void
    signature: void _PyState_ClearModules(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pystate.c:773,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:779,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:780,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:782,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:783,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:784,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:786,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:787,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:788,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pystate.c:792,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:798,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:799,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:801,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:802,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pystate.c:804,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 805
    functionName: PyThreadState_Clear
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 3
    functionsReached:
    - fprintf
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Clear(PyThreadState *tstate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:813,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:817,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:819,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:826,1
    - Dst: PyThreadState*::on_delete
      Src: /src/Python-3.8.3/Python/pystate.c:828,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pystate.c:830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - runtime
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 831
    functionName: tstate_delete_common
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - Py_FatalError
    - PyThreadState*::on_delete
    - PyMem_RawFree
    - HEAD_UNLOCK
    linkageType: ''
    returnType: void
    signature: void tstate_delete_common(_PyRuntimeState *runtime, PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:838,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:839,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:842,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Python/pystate.c:844,1
    - Dst: tstate_delete_common
      Src: /src/Python-3.8.3/Python/pystate.c:846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - runtime
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 847
    functionName: _PyThreadState_Delete
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - tstate_delete_common
    - PyThread_tss_set
    - Py_FatalError
    - PyThread_tss_get
    - _PyRuntimeGILState_GetThreadState
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_Delete(_PyRuntimeState *runtime, PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Delete
      Src: /src/Python-3.8.3/Python/pystate.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: PyThreadState_Delete
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_Delete
    linkageType: ''
    returnType: void
    signature: void PyThreadState_Delete(PyThreadState *tstate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:861,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:863,1
    - Dst: tstate_delete_common
      Src: /src/Python-3.8.3/Python/pystate.c:865,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:867,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Python/pystate.c:869,1
    - Dst: _PyRuntimeGILState_SetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:871,1
    - Dst: PyEval_ReleaseLock
      Src: /src/Python-3.8.3/Python/pystate.c:872,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 873
    functionName: _PyThreadState_DeleteCurrent
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - tstate_delete_common
    - PyThread_tss_set
    - PyEval_ReleaseLock
    - _PyRuntimeGILState_SetThreadState
    - Py_FatalError
    - PyThread_tss_get
    - _PyRuntimeGILState_GetThreadState
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_DeleteCurrent(_PyRuntimeState *runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/Python-3.8.3/Python/pystate.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 3
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: PyThreadState_DeleteCurrent
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_DeleteCurrent
    linkageType: ''
    returnType: void
    signature: void PyThreadState_DeleteCurrent()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:894,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:907,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:913,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pystate.c:914,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - runtime
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 916
    functionName: _PyThreadState_DeleteExcept
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - HEAD_UNLOCK
    - PyThreadState_Clear
    - HEAD_LOCK
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyThreadState_DeleteExcept(_PyRuntimeState *runtime, PyThreadState
      *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pystate.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 923
    functionName: _PyThreadState_UncheckedGet
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_UncheckedGet(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pystate.c:929,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 934
    functionName: PyThreadState_Get
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 9
    functionsReached:
    - Py_FatalError
    - _PyThreadState_GET
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Get(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:940,1
    - Dst: _PyRuntimeGILState_SetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:942,1
    - Dst: _PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:953,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - gilstate
    - newts
    argTypes:
    - struct _gilstate_runtime_state*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 960
    functionName: _PyThreadState_Swap
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 6
    functionsReached:
    - _PyGILState_GetThisThreadState
    - Py_FatalError
    - _PyRuntimeGILState_GetThreadState
    - _PyRuntimeGILState_SetThreadState
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyThreadState_Swap(struct _gilstate_runtime_state *gilstate, PyThreadState
      *newts)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newts
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 962
    functionDepth: 2
    functionLinenumber: 962
    functionLinenumberEnd: 966
    functionName: PyThreadState_Swap
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 11
    functionsReached:
    - _PyThreadState_Swap
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Swap(PyThreadState *newts)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pystate.c:977,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/pystate.c:983,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:985,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: PyThreadState_GetDict
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 8
    functionsReached:
    - _PyThreadState_GET
    - PyErr_Clear
    - PyDict_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThreadState_GetDict(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1003,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1011,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1022,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1024,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1025,1
    - Dst: _PyEval_SignalAsyncExc
      Src: /src/Python-3.8.3/Python/pystate.c:1026,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - id
    - exc
    argTypes:
    - unsigned long
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1032
    functionName: PyThreadState_SetAsyncExc
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - HEAD_LOCK
    - Py_XINCREF
    - _PyRuntimeState_GetThreadState
    - HEAD_UNLOCK
    - _PyEval_SignalAsyncExc
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: PyInterpreterState_Head
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Head(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: PyInterpreterState_Main
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Main(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1053
    functionName: PyInterpreterState_Next
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      PyInterpreterState_Next(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1058
    functionName: PyInterpreterState_ThreadHead
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyInterpreterState_ThreadHead(PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1063
    functionName: PyThreadState_Next
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyThreadState_Next(PyThreadState *tstate)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/pystate.c:1076,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/pystate.c:1080,1
    - Dst: HEAD_LOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1091,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/pystate.c:1100,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/pystate.c:1103,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1104,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1109,1
    - Dst: HEAD_UNLOCK
      Src: /src/Python-3.8.3/Python/pystate.c:1113,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1070
    functionDepth: 5
    functionLinenumber: 1070
    functionLinenumberEnd: 1116
    functionName: _PyThread_CurrentFrames
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - HEAD_LOCK
    - PyDict_SetItem
    - PyLong_FromUnsignedLong
    - HEAD_UNLOCK
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyThread_CurrentFrames(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1133,1
    - Dst: _PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1133,1
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts:
    - condition: (_PyGILState_GetThisThreadState(gilstate) == tstate)
      pos:
        line_end: 1132
        line_start: 1132
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1135
      start: 1128
    functionDepth: 1
    functionLinenumber: 1128
    functionLinenumberEnd: 1135
    functionName: PyThreadState_IsCurrent
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyGILState_GetThisThreadState
    - assert
    - _PyRuntimeGILState_GetThreadState
    linkageType: ''
    returnType: int
    signature: int PyThreadState_IsCurrent(PyThreadState *tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1145,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1146,1
    - Dst: PyThread_tss_create
      Src: /src/Python-3.8.3/Python/pystate.c:1150,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1151,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1154,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:1154,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1155,1
    - Dst: _PyGILState_NoteThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - runtime
    - interp
    - tstate
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    - PyThreadState*
    assertStmts:
    - condition: (interp != NULL)
      pos:
        line_end: 1144
        line_start: 1144
        source_file: /src/Python-3.8.3/Python/pystate.c
    - condition: (tstate != NULL)
      pos:
        line_end: 1145
        line_start: 1145
        source_file: /src/Python-3.8.3/Python/pystate.c
    - condition: (PyThread_tss_get(&gilstate->autoTSSkey) == NULL)
      pos:
        line_end: 1153
        line_start: 1153
        source_file: /src/Python-3.8.3/Python/pystate.c
    - condition: (tstate->gilstate_counter == 0)
      pos:
        line_end: 1154
        line_start: 1154
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1158
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1158
    functionName: _PyGILState_Init
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_create
    - _PyGILState_NoteThreadState
    - Py_FatalError
    - PyThread_tss_get
    - assert
    linkageType: ''
    returnType: void
    signature: "void _PyGILState_Init(_PyRuntimeState *runtime,\n                 PyInterpreterState
      *interp, PyThreadState *tstate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1164
    functionName: _PyGILState_GetInterpreterStateUnsafe
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PyInterpreterState
    signature: 'PyInterpreterState *

      _PyGILState_GetInterpreterStateUnsafe(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_delete
      Src: /src/Python-3.8.3/Python/pystate.c:1170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1172
    functionName: _PyGILState_Fini
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyThread_tss_delete
    linkageType: ''
    returnType: void
    signature: void _PyGILState_Fini(_PyRuntimeState *runtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1182,1
    - Dst: PyThread_tss_delete
      Src: /src/Python-3.8.3/Python/pystate.c:1184,1
    - Dst: PyThread_tss_create
      Src: /src/Python-3.8.3/Python/pystate.c:1185,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1186,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Python/pystate.c:1192,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1196
    functionName: _PyGILState_Reinit
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - PyThread_tss_create
    - PyThread_tss_set
    - PyThread_tss_delete
    - _PyGILState_GetThisThreadState
    - Py_FatalError
    linkageType: ''
    returnType: void
    signature: void _PyGILState_Reinit(_PyRuntimeState *runtime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:1225,1
    - Dst: PyThread_tss_set
      Src: /src/Python-3.8.3/Python/pystate.c:1226,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - gilstate
    - tstate
    argTypes:
    - struct _gilstate_runtime_state*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1233
    functionName: _PyGILState_NoteThreadState
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - Py_FatalError
    - PyThread_tss_set
    - PyThread_tss_get
    linkageType: ''
    returnType: void
    signature: void _PyGILState_NoteThreadState(struct _gilstate_runtime_state *gilstate,
      PyThreadState* tstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - gilstate
    argTypes:
    - struct _gilstate_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1242
    functionName: _PyGILState_GetThisThreadState
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 3
    functionsReached:
    - PyThread_tss_get
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      _PyGILState_GetThisThreadState(struct _gilstate_runtime_state *gilstate)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1248
    functionName: PyGILState_GetThisThreadState
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 7
    functionsReached:
    - _PyGILState_GetThisThreadState
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      PyGILState_GetThisThreadState(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_is_created
      Src: /src/Python-3.8.3/Python/pystate.c:1259,1
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1263,1
    - Dst: _PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1250
    functionDepth: 1
    functionLinenumber: 1250
    functionLinenumberEnd: 1269
    functionName: PyGILState_Check
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 10
    functionsReached:
    - _PyGILState_GetThisThreadState
    - PyThread_tss_is_created
    - _PyRuntimeGILState_GetThreadState
    linkageType: ''
    returnType: int
    signature: int PyGILState_Check(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1285,1
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:1287,1
    - Dst: PyThreadState_New
      Src: /src/Python-3.8.3/Python/pystate.c:1292,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1294,1
    - Dst: PyThreadState_IsCurrent
      Src: /src/Python-3.8.3/Python/pystate.c:1301,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Python/pystate.c:1305,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Python/pystate.c:1319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (gilstate->autoInterpreterState)
      pos:
        line_end: 1284
        line_start: 1284
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1323
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1323
    functionName: PyGILState_Ensure
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 22
    functionsReached:
    - PyEval_InitThreads
    - PyEval_RestoreThread
    - PyThreadState_New
    - Py_FatalError
    - PyThread_tss_get
    - PyThreadState_IsCurrent
    - assert
    linkageType: ''
    returnType: PyGILState_STATE
    signature: PyGILState_STATE PyGILState_Ensure(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_get
      Src: /src/Python-3.8.3/Python/pystate.c:1329,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1331,1
    - Dst: PyThreadState_IsCurrent
      Src: /src/Python-3.8.3/Python/pystate.c:1340,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1341,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1343,1
    - Dst: PyThreadState_IsCurrent
      Src: /src/Python-3.8.3/Python/pystate.c:1343,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1345,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystate.c:1352,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Python/pystate.c:1353,1
    - Dst: _PyThreadState_DeleteCurrent
      Src: /src/Python-3.8.3/Python/pystate.c:1359,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Python/pystate.c:1363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - oldstate
    argTypes:
    - PyGILState_STATE
    assertStmts:
    - condition: (PyThreadState_IsCurrent(tcur))
      pos:
        line_end: 1342
        line_start: 1342
        source_file: /src/Python-3.8.3/Python/pystate.c
    - condition: (tcur->gilstate_counter >= 0)
      pos:
        line_end: 1344
        line_start: 1344
        source_file: /src/Python-3.8.3/Python/pystate.c
    - condition: (oldstate == PyGILState_UNLOCKED)
      pos:
        line_end: 1351
        line_start: 1351
        source_file: /src/Python-3.8.3/Python/pystate.c
    constantsTouched: []
    func_position:
      end: 1364
      start: 1325
    functionDepth: 3
    functionLinenumber: 1325
    functionLinenumberEnd: 1364
    functionName: PyGILState_Release
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 22
    functionsReached:
    - Py_FatalError
    - PyEval_SaveThread
    - PyThread_tss_get
    - _PyThreadState_DeleteCurrent
    - PyThreadState_IsCurrent
    - assert
    - PyThreadState_Clear
    linkageType: ''
    returnType: void
    signature: void PyGILState_Release(PyGILState_STATE oldstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCrossInterpreterData_Lookup
      Src: /src/Python-3.8.3/Python/pystate.c:1380,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pystate.c:1381,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystate.c:1382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1385
    functionName: _lookup_getdata
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyErr_Occurred
    - _PyCrossInterpreterData_Lookup
    linkageType: ''
    returnType: crossinterpdatafunc
    signature: crossinterpdatafunc _lookup_getdata(PyObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lookup_getdata
      Src: /src/Python-3.8.3/Python/pystate.c:1390,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1387
    functionDepth: 2
    functionLinenumber: 1387
    functionLinenumberEnd: 1395
    functionName: _PyObject_CheckCrossInterpreterData
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - _lookup_getdata
    linkageType: ''
    returnType: int
    signature: int _PyObject_CheckCrossInterpreterData(PyObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:1405,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1417
    functionName: _check_xidata
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _check_xidata(_PyCrossInterpreterData *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/pystate.c:1424,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1431,1
    - Dst: _lookup_getdata
      Src: /src/Python-3.8.3/Python/pystate.c:1432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1434,1
    - Dst: getdata
      Src: /src/Python-3.8.3/Python/pystate.c:1437,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1438,1
    - Dst: _check_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1445,1
    - Dst: _PyCrossInterpreterData_Release
      Src: /src/Python-3.8.3/Python/pystate.c:1446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1419
    functionDepth: 2
    functionLinenumber: 1419
    functionLinenumberEnd: 1451
    functionName: _PyObject_GetCrossInterpreterData
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyInterpreterState_Get
    - Py_DECREF
    - Py_INCREF
    - getdata
    - _check_xidata
    - _lookup_getdata
    - _PyCrossInterpreterData_Release
    linkageType: ''
    returnType: int
    signature: int _PyObject_GetCrossInterpreterData(PyObject *obj, _PyCrossInterpreterData
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCrossInterpreterData*::free
      Src: /src/Python-3.8.3/Python/pystate.c:1458,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1461
    functionName: _release_xidata
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _PyCrossInterpreterData*::free
    linkageType: ''
    returnType: void
    signature: void _release_xidata(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeGILState_GetThreadState
      Src: /src/Python-3.8.3/Python/pystate.c:1473,1
    - Dst: PyInterpreterState_ThreadHead
      Src: /src/Python-3.8.3/Python/pystate.c:1475,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:1477,1
    - Dst: func
      Src: /src/Python-3.8.3/Python/pystate.c:1480,1
    - Dst: _PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pystate.c:1484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - gilstate
    - interp
    - arg
    argTypes:
    - struct _gilstate_runtime_state*
    - PyInterpreterState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1463
    functionDepth: 2
    functionLinenumber: 1463
    functionLinenumberEnd: 1486
    functionName: _call_in_interpreter
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_Swap
    - _PyRuntimeGILState_GetThreadState
    - PyInterpreterState_ThreadHead
    - func
    linkageType: ''
    returnType: void
    signature: "void _call_in_interpreter(struct _gilstate_runtime_state *gilstate,\n
      \                    PyInterpreterState *interp,\n                     void
      (*func)(void *), void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_LookUpID
      Src: /src/Python-3.8.3/Python/pystate.c:1497,1
    - Dst: _call_in_interpreter
      Src: /src/Python-3.8.3/Python/pystate.c:1508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1488
    functionDepth: 4
    functionLinenumber: 1488
    functionLinenumberEnd: 1509
    functionName: _PyCrossInterpreterData_Release
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 5
    functionsReached:
    - _PyInterpreterState_LookUpID
    - _call_in_interpreter
    linkageType: ''
    returnType: void
    signature: void _PyCrossInterpreterData_Release(_PyCrossInterpreterData *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCrossInterpreterData*::new_object
      Src: /src/Python-3.8.3/Python/pystate.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1515
    functionName: _PyCrossInterpreterData_NewObject
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _PyCrossInterpreterData*::new_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/pystate.c:1529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - xidregistry
    - cls
    - getdata
    argTypes:
    - struct _xidregistry*
    - PyTypeObject*
    - crossinterpdatafunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1537
    functionName: _register_xidata
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: "int _register_xidata(struct _xidregistry *xidregistry, PyTypeObject
      *cls,\n                 crossinterpdatafunc getdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Python/pystate.c:1545,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystate.c:1546,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystate.c:1550,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1555,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/pystate.c:1558,1
    - Dst: _register_builtins_for_crossinterpreter_data
      Src: /src/Python-3.8.3/Python/pystate.c:1560,1
    - Dst: _register_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1562,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/pystate.c:1563,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - cls
    - getdata
    argTypes:
    - PyTypeObject*
    - crossinterpdatafunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1565
    functionName: _PyCrossInterpreterData_RegisterClass
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_INCREF
    - _register_builtins_for_crossinterpreter_data
    - _register_xidata
    - PyThread_acquire_lock
    - PyType_Check
    - PyErr_Format
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: "int _PyCrossInterpreterData_RegisterClass(PyTypeObject *cls,\n                                       crossinterpdatafunc
      getdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Type
      Src: /src/Python-3.8.3/Python/pystate.c:1575,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/pystate.c:1577,1
    - Dst: _register_builtins_for_crossinterpreter_data
      Src: /src/Python-3.8.3/Python/pystate.c:1580,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pystate.c:1589,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/pystate.c:1590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1571
    functionDepth: 2
    functionLinenumber: 1571
    functionLinenumberEnd: 1592
    functionName: _PyCrossInterpreterData_Lookup
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _register_builtins_for_crossinterpreter_data
    - PyObject_Type
    - PyThread_acquire_lock
    - PyThread_release_lock
    linkageType: ''
    returnType: crossinterpdatafunc
    signature: crossinterpdatafunc _PyCrossInterpreterData_Lookup(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/pystate.c:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1601
    functionDepth: 3
    functionLinenumber: 1601
    functionLinenumberEnd: 1606
    functionName: _new_bytes_object
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_bytes_object(_PyCrossInterpreterData *data)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/pystate.c:1611,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Python/pystate.c:1612,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1608
    functionDepth: 2
    functionLinenumber: 1608
    functionLinenumberEnd: 1621
    functionName: _bytes_shared
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyMem_NEW
    - PyBytes_AsStringAndSize
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: int _bytes_shared(PyObject *obj, _PyCrossInterpreterData *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Python/pystate.c:1633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1629
    functionDepth: 7
    functionLinenumber: 1629
    functionLinenumberEnd: 1634
    functionName: _new_str_object
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromKindAndData
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_str_object(_PyCrossInterpreterData *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/pystate.c:1639,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/pystate.c:1640,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/pystate.c:1641,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/pystate.c:1642,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1649
    functionName: _str_shared
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyMem_NEW
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: int _str_shared(PyObject *obj, _PyCrossInterpreterData *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/pystate.c:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1655
    functionName: _new_long_object
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_long_object(_PyCrossInterpreterData *data)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/pystate.c:1664,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pystate.c:1665,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pystate.c:1666,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystate.c:1667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1676
    functionName: _long_shared
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyLong_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _long_shared(PyObject *obj, _PyCrossInterpreterData *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pystate.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1684
    functionName: _new_none_object
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _new_none_object(_PyCrossInterpreterData *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - data
    argTypes:
    - PyObject*
    - _PyCrossInterpreterData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1694
    functionName: _none_shared
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _none_shared(PyObject *obj, _PyCrossInterpreterData *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _register_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1700,1
    - Dst: PyObject_Type
      Src: /src/Python-3.8.3/Python/pystate.c:1700,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1701,1
    - Dst: _register_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1705,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1706,1
    - Dst: _register_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1710,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1711,1
    - Dst: _register_xidata
      Src: /src/Python-3.8.3/Python/pystate.c:1715,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pystate.c:1716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - xidregistry
    argTypes:
    - struct _xidregistry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1718
    functionName: _register_builtins_for_crossinterpreter_data
    functionSourceFile: /src/Python-3.8.3/Python/pystate.c
    functionUses: 2
    functionsReached:
    - _register_xidata
    - Py_FatalError
    - PyObject_Type
    linkageType: ''
    returnType: void
    signature: void _register_builtins_for_crossinterpreter_data(struct _xidregistry
      *xidregistry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:12,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:12,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:16,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:16,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 3
    argNames:
    - s1
    - s2
    - size
    argTypes:
    - char*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 17
    functionName: PyOS_mystrnicmp
    functionSourceFile: /src/Python-3.8.3/Python/pystrcmp.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int PyOS_mystrnicmp(const char *s1, const char *s2, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:22,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:22,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:25,1
    - Dst: tolower
      Src: /src/Python-3.8.3/Python/pystrcmp.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: PyOS_mystricmp
    functionSourceFile: /src/Python-3.8.3/Python/pystrcmp.c
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: int
    signature: int PyOS_mystricmp(const char *s1, const char *s2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opcode
    - ','
    - oparg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 7
    functionName: PACKOPARG
    functionSourceFile: /src/Python-3.8.3/Python/wordcode_helpers.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKOPARG(opcode, oparg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opcode
    - ','
    - oparg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: PACKOPARG
    functionSourceFile: /src/Python-3.8.3/Python/wordcode_helpers.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PACKOPARG(opcode, oparg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oparg
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: instrsize
    functionSourceFile: /src/Python-3.8.3/Python/wordcode_helpers.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int instrsize(unsigned int oparg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/wordcode_helpers.h:30,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/wordcode_helpers.h:33,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/wordcode_helpers.h:36,1
    - Dst: PACKOPARG
      Src: /src/Python-3.8.3/Python/wordcode_helpers.h:39,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/wordcode_helpers.h:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - codestr
    - opcode
    - oparg
    - ilen
    argTypes:
    - _Py_CODEUNIT*
    - unsigned char
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: write_op_arg
    functionSourceFile: /src/Python-3.8.3/Python/wordcode_helpers.h
    functionUses: 3
    functionsReached:
    - Py_UNREACHABLE
    - PACKOPARG
    linkageType: ''
    returnType: void
    signature: "void write_op_arg(_Py_CODEUNIT *codestr, unsigned char opcode,\n    unsigned
      int oparg, int ilen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/mysnprintf.c:46,1
    - Dst: PyOS_vsnprintf
      Src: /src/Python-3.8.3/Python/mysnprintf.c:47,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/mysnprintf.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - str
    - size
    - format
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: PyOS_snprintf
    functionSourceFile: /src/Python-3.8.3/Python/mysnprintf.c
    functionUses: 22
    functionsReached:
    - va_start
    - PyOS_vsnprintf
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyOS_snprintf(char *str, size_t size, const  char  *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/mysnprintf.c:62,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/mysnprintf.c:63,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/mysnprintf.c:64,1
    - Dst: vsnprintf
      Src: /src/Python-3.8.3/Python/mysnprintf.c:74,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Python/mysnprintf.c:77,1
    - Dst: vsprintf
      Src: /src/Python-3.8.3/Python/mysnprintf.c:83,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/mysnprintf.c:88,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/mysnprintf.c:93,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/mysnprintf.c:94,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/mysnprintf.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - str
    - size
    - format
    - va
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts:
    - condition: (str != NULL)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
    - condition: (size > 0)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
    - condition: (format != NULL)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
    - condition: (to_copy < size)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
    constantsTouched: []
    func_position:
      end: 104
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 104
    functionName: PyOS_vsnprintf
    functionSourceFile: /src/Python-3.8.3/Python/mysnprintf.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PyMem_MALLOC
    - vsnprintf
    - PyMem_FREE
    - Py_FatalError
    - assert
    - vsprintf
    linkageType: ''
    returnType: int
    signature: int PyOS_vsnprintf(char *str, size_t size, const char  *format, va_list
      va)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/symtable.c:53,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Python/symtable.c:56,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:58,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/symtable.c:64,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/symtable.c:96,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/symtable.c:97,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/symtable.c:98,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:104,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:109,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 6
    argNames:
    - st
    - name
    - block
    - key
    - lineno
    - col_offset
    argTypes:
    - struct symtable*
    - identifier
    - _Py_block_ty
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: ste_new
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_New
    - PyDict_SetItem
    - PyList_New
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - PyObject_New
    linkageType: ''
    returnType: PySTEntryObject
    signature: "PySTEntryObject *\nste_new(struct symtable *st, identifier name, _Py_block_ty
      block,\n        void *key, int lineno, int col_offset)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/symtable.c:116,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ste
    argTypes:
    - PySTEntryObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 8
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: ste_repr
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ste_repr(PySTEntryObject *ste)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:125,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:126,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:127,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:128,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:129,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:130,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/Python/symtable.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ste
    argTypes:
    - PySTEntryObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: ste_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyObject_Del
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void ste_dealloc(PySTEntryObject *ste)
  - 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: 'OFF'
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: GET_IDENTIFIER
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_IDENTIFIER(VAR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/symtable.c:228,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/symtable.c:230,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/symtable.c:237,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/symtable.c:239,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 247
    functionName: symtable_new
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySymtable_Free
    - PyErr_NoMemory
    - PyDict_New
    - PyMem_Malloc
    - PyList_New
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      symtable_new(void)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: symtable_new
      Src: /src/Python-3.8.3/Python/symtable.c:264,1
    - Dst: Py_GetRecursionLimit
      Src: /src/Python-3.8.3/Python/symtable.c:268,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:274,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/symtable.c:277,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/symtable.c:282,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:284,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:295,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:296,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:297,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:305,1
    - Dst: symtable_visit_stmt
      Src: /src/Python-3.8.3/Python/symtable.c:306,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:307,1
    - Dst: symtable_visit_expr
      Src: /src/Python-3.8.3/Python/symtable.c:311,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:316,1
    - Dst: symtable_visit_stmt
      Src: /src/Python-3.8.3/Python/symtable.c:317,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:318,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:322,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:326,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:330,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:331,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:336,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:339,1
    - Dst: symtable_analyze
      Src: /src/Python-3.8.3/Python/symtable.c:343,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:345,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:348,1
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/symtable.c:349,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 3
    argNames:
    - mod
    - filename
    - future
    argTypes:
    - mod_ty
    - PyObject*
    - PyFutureFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 261
    functionDepth: 5
    functionLinenumber: 261
    functionLinenumberEnd: 351
    functionName: PySymtable_BuildObject
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_visit_expr
    - PySymtable_Free
    - Py_GetRecursionLimit
    - Py_INCREF
    - GET_IDENTIFIER
    - asdl_seq_LEN
    - _PyThreadState_GET
    - symtable_analyze
    - symtable_enter_block
    - PyErr_Format
    - symtable_visit_stmt
    - PyErr_SetString
    - asdl_seq_GET
    - symtable_exit_block
    - symtable_new
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      PySymtable_BuildObject(mod_ty mod, PyObject *filename, PyFutureFeatures *future)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/symtable.c:358,1
    - Dst: PySymtable_BuildObject
      Src: /src/Python-3.8.3/Python/symtable.c:361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - filename_str
    - future
    argTypes:
    - mod_ty
    - char*
    - PyFutureFeatures*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 364
    functionName: PySymtable_Build
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySymtable_BuildObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      PySymtable_Build(mod_ty mod, const char *filename_str, PyFutureFeatures *future)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:369,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:370,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:371,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/symtable.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: PySymtable_Free
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void PySymtable_Free(struct symtable *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/symtable.c:380,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/symtable.c:383,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:385,1
    - Dst: PySTEntry_Check
      Src: /src/Python-3.8.3/Python/symtable.c:385,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/symtable.c:386,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/symtable.c:388,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:389,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - st
    - key
    argTypes:
    - struct symtable*
    - void*
    assertStmts:
    - condition: (PySTEntry_Check(v))
      pos:
        line_end: 384
        line_start: 384
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 395
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 395
    functionName: PySymtable_Lookup
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySTEntry_Check
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyErr_SetString
    - assert
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PySTEntryObject
    signature: 'PySTEntryObject *

      PySymtable_Lookup(struct symtable *st, void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Python/symtable.c:400,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:403,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/symtable.c:403,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: _PyST_GetSymbol
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - assert
    - PyLong_AS_LONG
    - PyDict_GetItem
    linkageType: ''
    returnType: long
    signature: long _PyST_GetSymbol(PySTEntryObject *ste, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyST_GetSymbol
      Src: /src/Python-3.8.3/Python/symtable.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 5
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: PyST_GetScope
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PyST_GetSymbol
    linkageType: ''
    returnType: int
    signature: int PyST_GetScope(PySTEntryObject *ste, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:419,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/symtable.c:420,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:421,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:422,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/symtable.c:422,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:423,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/symtable.c:423,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:423,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Python/symtable.c:424,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:424,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:425,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/symtable.c:426,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:426,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/symtable.c:427,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:427,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ste
    - name
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts:
    - condition: (ste->ste_directives)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (PyTuple_CheckExact(data))
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (PyUnicode_CheckExact(PyTuple_GET_ITEM(data, 0)))
      pos:
        line_end: 422
        line_start: 422
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 435
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 435
    functionName: error_at_directive
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyList_GET_ITEM
    - PyErr_SyntaxLocationObject
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyTuple_CheckExact
    - assert
    - PyTuple_GET_ITEM
    - PyUnicode_CheckExact
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: int error_at_directive(PySTEntryObject *ste, PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - DICT
    - ','
    - NAME
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 493
    functionName: SET_SCOPE
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SCOPE(DICT, NAME, I)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:508,1
    - Dst: error_at_directive
      Src: /src/Python-3.8.3/Python/symtable.c:511,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:513,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/symtable.c:514,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Python/symtable.c:516,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:522,1
    - Dst: error_at_directive
      Src: /src/Python-3.8.3/Python/symtable.c:524,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/symtable.c:526,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:527,1
    - Dst: error_at_directive
      Src: /src/Python-3.8.3/Python/symtable.c:531,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:533,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/symtable.c:535,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:538,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/symtable.c:539,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Python/symtable.c:541,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/symtable.c:550,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:551,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/symtable.c:553,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/symtable.c:558,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:559,1
    - Dst: SET_SCOPE
      Src: /src/Python-3.8.3/Python/symtable.c:564,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 8
    argNames:
    - ste
    - scopes
    - name
    - flags
    - bound
    - local
    - free
    - global
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - long
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 501
    functionDepth: 8
    functionLinenumber: 501
    functionLinenumberEnd: 566
    functionName: analyze_name
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - SET_SCOPE
    - error_at_directive
    - PyErr_Format
    - PySet_Discard
    - PySet_Contains
    - PySet_Add
    linkageType: ''
    returnType: int
    signature: "int analyze_name(PySTEntryObject *ste, PyObject *scopes, PyObject
      *name, long flags,\n             PyObject *bound, PyObject *local, PyObject
      *free,\n             PyObject *global)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:585,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/symtable.c:588,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:590,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/symtable.c:590,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:591,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/symtable.c:594,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:600,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Python/symtable.c:602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:607,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - scopes
    - free
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 589
        line_start: 589
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 609
      start: 578
    functionDepth: 8
    functionLinenumber: 578
    functionLinenumberEnd: 609
    functionName: analyze_cells
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyLong_Check
    - PyLong_AS_LONG
    - PyDict_Next
    - Py_DECREF
    - PyDict_SetItem
    - PySet_Discard
    - PySet_Contains
    - assert
    linkageType: ''
    returnType: int
    signature: int analyze_cells(PyObject *scopes, PyObject *free)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:615,1
    - Dst: PySet_Discard
      Src: /src/Python-3.8.3/Python/symtable.c:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ste
    - free
    argTypes:
    - PySTEntryObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 611
    functionDepth: 8
    functionLinenumber: 611
    functionLinenumberEnd: 623
    functionName: drop_class_free
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PySet_Discard
    - GET_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int drop_class_free(PySTEntryObject *ste, PyObject *free)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/symtable.c:638,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:640,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/symtable.c:640,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:641,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Python/symtable.c:642,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:643,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/symtable.c:643,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:644,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:646,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:649,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:653,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:657,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/symtable.c:661,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:663,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/symtable.c:667,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/symtable.c:668,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:677,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:678,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:679,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:684,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:687,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:690,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/symtable.c:693,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/symtable.c:697,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:698,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:707,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:708,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:711,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:712,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:713,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 5
    argNames:
    - symbols
    - scopes
    - bound
    - free
    - classflag
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (PyLong_Check(v))
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (v_scope && PyLong_Check(v_scope))
      pos:
        line_end: 642
        line_start: 642
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 715
      start: 629
    functionDepth: 8
    functionLinenumber: 629
    functionLinenumberEnd: 715
    functionName: update_symbols
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_FromLong
    - PyLong_AS_LONG
    - PyDict_GetItem
    - PyDict_Next
    - Py_DECREF
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - PyIter_Next
    - PyDict_SetItem
    - PySet_Contains
    - assert
    - PyObject_GetIter
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int update_symbols(PyObject *symbols, PyObject *scopes,\n               PyObject
      *bound, PyObject *free, int classflag)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:751,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/symtable.c:754,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:769,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:772,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:775,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:786,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:789,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:792,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:795,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/symtable.c:799,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:800,1
    - Dst: analyze_name
      Src: /src/Python-3.8.3/Python/symtable.c:801,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:810,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:813,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:817,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:820,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:823,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:826,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:830,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/symtable.c:832,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:842,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/symtable.c:845,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:846,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:848,1
    - Dst: PySTEntry_Check
      Src: /src/Python-3.8.3/Python/symtable.c:848,1
    - Dst: analyze_child_block
      Src: /src/Python-3.8.3/Python/symtable.c:850,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:858,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:861,1
    - Dst: analyze_cells
      Src: /src/Python-3.8.3/Python/symtable.c:864,1
    - Dst: drop_class_free
      Src: /src/Python-3.8.3/Python/symtable.c:866,1
    - Dst: update_symbols
      Src: /src/Python-3.8.3/Python/symtable.c:869,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:873,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:876,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:879,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:880,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:881,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:882,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:883,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:884,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:886,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/symtable.c:886,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 112
    argCount: 4
    argNames:
    - ste
    - bound
    - free
    - global
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (c && PySTEntry_Check(c))
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 888
      start: 741
    functionDepth: 9
    functionLinenumber: 741
    functionLinenumberEnd: 888
    functionName: analyze_block
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyNumber_InPlaceOr
    - PySTEntry_Check
    - PyErr_Occurred
    - GET_IDENTIFIER
    - update_symbols
    - analyze_name
    - PyList_GET_ITEM
    - analyze_cells
    - assert
    - Py_XDECREF
    - PySet_Add
    - PyDict_Next
    - Py_DECREF
    - analyze_child_block
    - drop_class_free
    - PyLong_AS_LONG
    - PyDict_New
    - PyList_GET_SIZE
    - PySet_New
    linkageType: ''
    returnType: int
    signature: "int analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject
      *free,\n              PyObject *global)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:904,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:907,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:910,1
    - Dst: analyze_block
      Src: /src/Python-3.8.3/Python/symtable.c:914,1
    - Dst: PyNumber_InPlaceOr
      Src: /src/Python-3.8.3/Python/symtable.c:916,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:919,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:922,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:925,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:926,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/symtable.c:927,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - entry
    - bound
    - free
    - global
    - child_free
    argTypes:
    - PySTEntryObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 890
    functionDepth: 10
    functionLinenumber: 890
    functionLinenumberEnd: 929
    functionName: analyze_child_block
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyNumber_InPlaceOr
    - Py_DECREF
    - analyze_block
    - PySet_New
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int analyze_child_block(PySTEntryObject *entry, PyObject *bound, PyObject
      *free,\n                    PyObject *global, PyObject* child_free)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:937,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/symtable.c:940,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:942,1
    - Dst: analyze_block
      Src: /src/Python-3.8.3/Python/symtable.c:945,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct symtable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 931
    functionDepth: 10
    functionLinenumber: 931
    functionLinenumberEnd: 949
    functionName: symtable_analyze
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PySet_New
    - Py_DECREF
    - analyze_block
    linkageType: ''
    returnType: int
    signature: int symtable_analyze(struct symtable *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/symtable.c:962,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Python/symtable.c:964,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - st
    - ast
    argTypes:
    - struct symtable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 956
    functionDepth: 6
    functionLinenumber: 956
    functionLinenumberEnd: 970
    functionName: symtable_exit_block
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyList_SetSlice
    linkageType: ''
    returnType: int
    signature: int symtable_exit_block(struct symtable *st, void *ast)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ste_new
      Src: /src/Python-3.8.3/Python/symtable.c:978,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/symtable.c:981,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:994,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/symtable.c:999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - st
    - name
    - block
    - ast
    - lineno
    - col_offset
    argTypes:
    - struct symtable*
    - identifier
    - _Py_block_ty
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 1004
    functionName: symtable_enter_block
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - PyList_Append
    - ste_new
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int symtable_enter_block(struct symtable *st, identifier name, _Py_block_ty
      block,\n                     void *ast, int lineno, int col_offset)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/symtable.c:1009,1
    - Dst: _PyST_GetSymbol
      Src: /src/Python-3.8.3/Python/symtable.c:1012,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - st
    - name
    argTypes:
    - struct symtable*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1006
    functionDepth: 5
    functionLinenumber: 1006
    functionLinenumberEnd: 1015
    functionName: symtable_lookup
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _Py_Mangle
    - _PyST_GetSymbol
    linkageType: ''
    returnType: long
    signature: long symtable_lookup(struct symtable *st, PyObject *name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/symtable.c:1023,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/symtable.c:1029,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:1030,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1033,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1034,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/symtable.c:1041,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1054,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1056,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:1063,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:1066,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1067,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1070,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/symtable.c:1073,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Python/symtable.c:1079,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/symtable.c:1080,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/symtable.c:1082,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/symtable.c:1085,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1086,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1089,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1091,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1095,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 4
    argNames:
    - st
    - name
    - flag
    - ste
    argTypes:
    - struct symtable*
    - PyObject*
    - int
    - struct _symtable_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1017
    functionDepth: 5
    functionLinenumber: 1017
    functionLinenumberEnd: 1097
    functionName: symtable_add_def_helper
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_GetItemWithError
    - PyLong_AS_LONG
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_GetItem
    - _Py_Mangle
    - PyErr_SyntaxLocationObject
    - PyList_Append
    - PyErr_Format
    - PyDict_SetItem
    linkageType: ''
    returnType: int
    signature: int symtable_add_def_helper(struct symtable *st, PyObject *name, int
      flag, struct _symtable_entry *ste)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_add_def_helper
      Src: /src/Python-3.8.3/Python/symtable.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - name
    - flag
    argTypes:
    - struct symtable*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1099
    functionDepth: 6
    functionLinenumber: 1099
    functionLinenumberEnd: 1102
    functionName: symtable_add_def
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_add_def_helper
    linkageType: ''
    returnType: int
    signature: int symtable_add_def(struct symtable *st, PyObject *name, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ST
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: VISIT_QUIT
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_QUIT(ST, X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ST
    - ','
    - TYPE
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    functionName: VISIT
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 146
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT(ST, TYPE, V)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/symtable.c:1159,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/symtable.c:1163,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/symtable.c:1166,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/symtable.c:1169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - st
    - name
    - lineno
    - col_offset
    argTypes:
    - struct symtable*
    - identifier
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1153
    functionDepth: 4
    functionLinenumber: 1153
    functionLinenumberEnd: 1172
    functionName: symtable_record_directive
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - _Py_Mangle
    - PyList_Append
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int symtable_record_directive(struct symtable *st, identifier name,
      int lineno, int col_offset)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:1179,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1181,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1185,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1186,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1188,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/Python-3.8.3/Python/symtable.c:1190,1
    - Dst: symtable_visit_annotations
      Src: /src/Python-3.8.3/Python/symtable.c:1191,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1193,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1195,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:1196,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1199,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1200,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1201,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1202,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1203,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1207,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1208,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1209,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1210,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1212,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:1213,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1215,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1218,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1220,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1221,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1226,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1231,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1234,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1235,1
    - Dst: symtable_lookup
      Src: /src/Python-3.8.3/Python/symtable.c:1240,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1242,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1247,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1250,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1253,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1256,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1258,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1262,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1263,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1268,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1270,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1272,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1276,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1277,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1280,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1281,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1282,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1284,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1287,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1288,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1290,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1294,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1295,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1297,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1301,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1303,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1308,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1309,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1310,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1311,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1314,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1316,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1319,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1322,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:1327,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:1328,1
    - Dst: symtable_lookup
      Src: /src/Python-3.8.3/Python/symtable.c:1329,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1331,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1343,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1345,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1348,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1350,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1351,1
    - Dst: symtable_record_directive
      Src: /src/Python-3.8.3/Python/symtable.c:1352,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1353,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:1360,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:1361,1
    - Dst: symtable_lookup
      Src: /src/Python-3.8.3/Python/symtable.c:1362,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1364,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1376,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1377,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1380,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1382,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1383,1
    - Dst: symtable_record_directive
      Src: /src/Python-3.8.3/Python/symtable.c:1384,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1385,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1390,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1398,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1399,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1402,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1403,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1405,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/Python-3.8.3/Python/symtable.c:1407,1
    - Dst: symtable_visit_annotations
      Src: /src/Python-3.8.3/Python/symtable.c:1409,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1411,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1413,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:1414,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1417,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1419,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1420,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1421,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1422,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1425,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1426,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1429,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1430,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1431,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1433,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1436,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 224
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1175
    functionDepth: 7
    functionLinenumber: 1175
    functionLinenumberEnd: 1437
    functionName: symtable_visit_stmt
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - VISIT_QUIT
    - symtable_exit_block
    - symtable_record_directive
    - asdl_seq_LEN
    - VISIT
    - PyErr_SyntaxLocationObject
    - symtable_visit_annotations
    - symtable_enter_block
    - PyErr_Format
    - PyErr_SetString
    - VISIT_SEQ
    - asdl_seq_GET
    - VISIT_SEQ_WITH_NULL
    - symtable_lookup
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_stmt(struct symtable *st, stmt_ty s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:1442,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:1443,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/symtable.c:1448,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:1449,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/symtable.c:1453,1
    - Dst: _PyST_GetSymbol
      Src: /src/Python-3.8.3/Python/symtable.c:1459,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1461,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1462,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1465,1
    - Dst: _PyST_GetSymbol
      Src: /src/Python-3.8.3/Python/symtable.c:1472,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1474,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1475,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1477,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1478,1
    - Dst: symtable_record_directive
      Src: /src/Python-3.8.3/Python/symtable.c:1480,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1481,1
    - Dst: symtable_add_def_helper
      Src: /src/Python-3.8.3/Python/symtable.c:1483,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1487,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1488,1
    - Dst: symtable_record_directive
      Src: /src/Python-3.8.3/Python/symtable.c:1489,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1490,1
    - Dst: symtable_add_def_helper
      Src: /src/Python-3.8.3/Python/symtable.c:1492,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1496,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1497,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1500,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/symtable.c:1507,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts:
    - condition: (e->kind == Name_kind)
      pos:
        line_end: 1442
        line_start: 1442
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (0)
      pos:
        line_end: 1506
        line_start: 1506
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (st->st_stack)
      pos:
        line_end: 1441
        line_start: 1441
        source_file: /src/Python-3.8.3/Python/symtable.c
    - condition: (size)
      pos:
        line_end: 1448
        line_start: 1448
        source_file: /src/Python-3.8.3/Python/symtable.c
    constantsTouched: []
    func_position:
      end: 1509
      start: 1439
    functionDepth: 7
    functionLinenumber: 1439
    functionLinenumberEnd: 1509
    functionName: symtable_extend_namedexpr_scope
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_QUIT
    - _PyST_GetSymbol
    - symtable_record_directive
    - PyList_GET_ITEM
    - PyErr_SyntaxLocationObject
    - PyList_GET_SIZE
    - symtable_add_def_helper
    - PyErr_Format
    - assert
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_extend_namedexpr_scope(struct symtable *st, expr_ty e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/symtable.c:1516,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1517,1
    - Dst: symtable_extend_namedexpr_scope
      Src: /src/Python-3.8.3/Python/symtable.c:1524,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1527,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1511
    functionDepth: 8
    functionLinenumber: 1511
    functionLinenumberEnd: 1530
    functionName: symtable_handle_namedexpr
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_extend_namedexpr_scope
    - VISIT
    - PyErr_Format
    - PyErr_SyntaxLocationObject
    linkageType: ''
    returnType: int
    signature: int symtable_handle_namedexpr(struct symtable *st, expr_ty e)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:1536,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1538,1
    - Dst: symtable_handle_namedexpr
      Src: /src/Python-3.8.3/Python/symtable.c:1542,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1543,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1546,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1549,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1550,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1553,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1556,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1557,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1559,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/Python-3.8.3/Python/symtable.c:1561,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:1562,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1565,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1566,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1567,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1568,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1569,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1573,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1574,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1575,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/Python-3.8.3/Python/symtable.c:1578,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1579,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1582,1
    - Dst: symtable_visit_genexp
      Src: /src/Python-3.8.3/Python/symtable.c:1585,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1586,1
    - Dst: symtable_visit_listcomp
      Src: /src/Python-3.8.3/Python/symtable.c:1589,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1590,1
    - Dst: symtable_visit_setcomp
      Src: /src/Python-3.8.3/Python/symtable.c:1593,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1594,1
    - Dst: symtable_visit_dictcomp
      Src: /src/Python-3.8.3/Python/symtable.c:1597,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1598,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1602,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1606,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1610,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1614,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1615,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1618,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1619,1
    - Dst: VISIT_SEQ_WITH_NULL
      Src: /src/Python-3.8.3/Python/symtable.c:1620,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1623,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1625,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1628,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1635,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1638,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1639,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1642,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1645,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1647,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/symtable.c:1651,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1652,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1653,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1654,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1659,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1662,1
    - Dst: VISIT_QUIT
      Src: /src/Python-3.8.3/Python/symtable.c:1665,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 121
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1532
    functionDepth: 9
    functionLinenumber: 1532
    functionLinenumberEnd: 1666
    functionName: symtable_visit_expr
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_visit_listcomp
    - VISIT_QUIT
    - _PyUnicode_EqualToASCIIString
    - GET_IDENTIFIER
    - symtable_exit_block
    - VISIT
    - symtable_visit_genexp
    - symtable_enter_block
    - symtable_visit_dictcomp
    - symtable_handle_namedexpr
    - PyErr_SetString
    - VISIT_SEQ
    - symtable_visit_setcomp
    - VISIT_SEQ_WITH_NULL
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_expr(struct symtable *st, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/symtable.c:1671,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1674,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1675,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - st
    - pos
    argTypes:
    - struct symtable*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1668
    functionDepth: 8
    functionLinenumber: 1668
    functionLinenumberEnd: 1680
    functionName: symtable_implicit_arg
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - symtable_add_def
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: int
    signature: int symtable_implicit_arg(struct symtable *st, int pos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:1690,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:1691,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1682
    functionDepth: 7
    functionLinenumber: 1682
    functionLinenumberEnd: 1697
    functionName: symtable_visit_params
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_params(struct symtable *st, asdl_seq *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/symtable.c:1707,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:1708,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - args
    argTypes:
    - struct symtable*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1714
    functionName: symtable_visit_argannotations
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_argannotations(struct symtable *st, asdl_seq *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: symtable_visit_argannotations
      Src: /src/Python-3.8.3/Python/symtable.c:1720,1
    - Dst: symtable_visit_argannotations
      Src: /src/Python-3.8.3/Python/symtable.c:1722,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1725,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1727,1
    - Dst: symtable_visit_argannotations
      Src: /src/Python-3.8.3/Python/symtable.c:1728,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1731,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 4
    argNames:
    - st
    - s
    - a
    - returns
    argTypes:
    - struct symtable*
    - stmt_ty
    - arguments_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1716
    functionDepth: 2
    functionLinenumber: 1716
    functionLinenumberEnd: 1733
    functionName: symtable_visit_annotations
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_visit_argannotations
    - VISIT
    linkageType: ''
    returnType: int
    signature: "int symtable_visit_annotations(struct symtable *st, stmt_ty s,\n                           arguments_ty
      a, expr_ty returns)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: symtable_visit_params
      Src: /src/Python-3.8.3/Python/symtable.c:1741,1
    - Dst: symtable_visit_params
      Src: /src/Python-3.8.3/Python/symtable.c:1743,1
    - Dst: symtable_visit_params
      Src: /src/Python-3.8.3/Python/symtable.c:1745,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1748,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1753,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1735
    functionDepth: 8
    functionLinenumber: 1735
    functionLinenumberEnd: 1758
    functionName: symtable_visit_arguments
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_visit_params
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_arguments(struct symtable *st, arguments_ty a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1765,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1767,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - eh
    argTypes:
    - struct symtable*
    - excepthandler_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1761
    functionDepth: 7
    functionLinenumber: 1761
    functionLinenumberEnd: 1771
    functionName: symtable_visit_excepthandler
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - VISIT
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_excepthandler(struct symtable *st, excepthandler_ty
      eh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1776,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - st
    - item
    argTypes:
    - struct symtable*
    - withitem_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1781
    functionName: symtable_visit_withitem
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_withitem(struct symtable *st, withitem_ty item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/symtable.c:1793,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/symtable.c:1794,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/symtable.c:1796,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/symtable.c:1802,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/symtable.c:1804,1
    - Dst: symtable_add_def
      Src: /src/Python-3.8.3/Python/symtable.c:1805,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1806,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:1813,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1814,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1815,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/symtable.c:1818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - st
    - a
    argTypes:
    - struct symtable*
    - alias_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1784
    functionDepth: 8
    functionLinenumber: 1784
    functionLinenumberEnd: 1821
    functionName: symtable_visit_alias
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - PyErr_SyntaxLocationObject
    - PyErr_SetString
    - PyUnicode_GET_LENGTH
    - symtable_add_def
    linkageType: ''
    returnType: int
    signature: int symtable_visit_alias(struct symtable *st, alias_ty a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1828,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1831,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - st
    - lc
    argTypes:
    - struct symtable*
    - comprehension_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1824
    functionDepth: 0
    functionLinenumber: 1824
    functionLinenumberEnd: 1838
    functionName: symtable_visit_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_comprehension(struct symtable *st, comprehension_ty
      lc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - st
    - k
    argTypes:
    - struct symtable*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1841
    functionDepth: 0
    functionLinenumber: 1841
    functionLinenumberEnd: 1846
    functionName: symtable_visit_keyword
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_keyword(struct symtable *st, keyword_ty k)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1855,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1857,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1859,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1862,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - st
    - s
    argTypes:
    - struct symtable*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1869
    functionName: symtable_visit_slice
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - VISIT
    linkageType: ''
    returnType: int
    signature: int symtable_visit_slice(struct symtable *st, slice_ty s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/symtable.c:1878,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1881,1
    - Dst: symtable_enter_block
      Src: /src/Python-3.8.3/Python/symtable.c:1885,1
    - Dst: symtable_implicit_arg
      Src: /src/Python-3.8.3/Python/symtable.c:1895,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1896,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1901,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/symtable.c:1904,1
    - Dst: VISIT_SEQ_TAIL
      Src: /src/Python-3.8.3/Python/symtable.c:1905,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1907,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/symtable.c:1908,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/symtable.c:1910,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/symtable.c:1915,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1918,1
    - Dst: symtable_exit_block
      Src: /src/Python-3.8.3/Python/symtable.c:1922,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 6
    argNames:
    - st
    - e
    - scope_name
    - generators
    - elt
    - value
    argTypes:
    - struct symtable*
    - expr_ty
    - identifier
    - asdl_seq*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1871
    functionDepth: 9
    functionLinenumber: 1871
    functionLinenumberEnd: 1923
    functionName: symtable_handle_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 0
    functionsReached:
    - symtable_implicit_arg
    - VISIT
    - PyErr_SyntaxLocationObject
    - symtable_enter_block
    - PyErr_SetString
    - VISIT_SEQ
    - asdl_seq_GET
    - symtable_exit_block
    - VISIT_SEQ_TAIL
    linkageType: ''
    returnType: int
    signature: "int symtable_handle_comprehension(struct symtable *st, expr_ty e,\n
      \                             identifier scope_name, asdl_seq *generators,\n
      \                             expr_ty elt, expr_ty value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/Python-3.8.3/Python/symtable.c:1928,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1925
    functionDepth: 10
    functionLinenumber: 1925
    functionLinenumberEnd: 1931
    functionName: symtable_visit_genexp
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - GET_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int symtable_visit_genexp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/Python-3.8.3/Python/symtable.c:1936,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1933
    functionDepth: 10
    functionLinenumber: 1933
    functionLinenumberEnd: 1939
    functionName: symtable_visit_listcomp
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - GET_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int symtable_visit_listcomp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/Python-3.8.3/Python/symtable.c:1944,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1941
    functionDepth: 10
    functionLinenumber: 1941
    functionLinenumberEnd: 1947
    functionName: symtable_visit_setcomp
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - GET_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int symtable_visit_setcomp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symtable_handle_comprehension
      Src: /src/Python-3.8.3/Python/symtable.c:1952,1
    - Dst: GET_IDENTIFIER
      Src: /src/Python-3.8.3/Python/symtable.c:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - e
    argTypes:
    - struct symtable*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1949
    functionDepth: 10
    functionLinenumber: 1949
    functionLinenumberEnd: 1956
    functionName: symtable_visit_dictcomp
    functionSourceFile: /src/Python-3.8.3/Python/symtable.c
    functionUses: 1
    functionsReached:
    - symtable_handle_comprehension
    - GET_IDENTIFIER
    linkageType: ''
    returnType: int
    signature: int symtable_visit_dictcomp(struct symtable *st, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: _Py_force_double
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _Py_force_double(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: _Py_get_387controlword
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned short
    signature: unsigned short _Py_get_387controlword(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cw
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: _Py_set_387controlword
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_set_387controlword(unsigned short cw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pymath.c:41,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pymath.c:42,1
    - Dst: sqrt
      Src: /src/Python-3.8.3/Python/pymath.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: hypot
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 8
    functionsReached:
    - fabs
    - sqrt
    linkageType: ''
    returnType: double
    signature: double hypot(double x, double y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: atan2
      Src: /src/Python-3.8.3/Python/pymath.c:62,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pymath.c:63,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pymath.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: copysign
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 28
    functionsReached:
    - fabs
    - atan2
    linkageType: ''
    returnType: double
    signature: double copysign(double x, double y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pymath.c:75,1
    - Dst: floor
      Src: /src/Python-3.8.3/Python/pymath.c:76,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Python/pymath.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: round
    functionSourceFile: /src/Python-3.8.3/Python/pymath.c
    functionUses: 21
    functionsReached:
    - fabs
    - copysign
    - floor
    linkageType: ''
    returnType: double
    signature: double round(double x)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Length
      Src: /src/Python-3.8.3/Python/pystrhex.c:18,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystrhex.c:23,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pystrhex.c:26,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/pystrhex.c:27,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/pystrhex.c:29,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystrhex.c:30,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/pystrhex.c:33,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/pystrhex.c:34,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/pystrhex.c:35,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystrhex.c:37,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pystrhex.c:41,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrhex.c:48,1
    - Dst: abs
      Src: /src/Python-3.8.3/Python/pystrhex.c:49,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrhex.c:56,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pystrhex.c:67,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrhex.c:69,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/pystrhex.c:72,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/pystrhex.c:75,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrhex.c:80,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrhex.c:94,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/pystrhex.c:97,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pystrhex.c:98,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrhex.c:102,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/pystrhex.c:102,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 5
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_sep_group
    - return_bytes
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    - int
    assertStmts:
    - condition: (j < resultlen)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/Python-3.8.3/Python/pystrhex.c
    - condition: (_PyUnicode_CheckConsistency(retval, 1))
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/Python-3.8.3/Python/pystrhex.c
    - condition: (arglen >= 0)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/Python-3.8.3/Python/pystrhex.c
    - condition: (j == resultlen)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/Python-3.8.3/Python/pystrhex.c
    constantsTouched: []
    func_position:
      end: 107
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 107
    functionName: _Py_strhex_impl
    functionSourceFile: /src/Python-3.8.3/Python/pystrhex.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - assert
    - PyUnicode_READY
    - PyMem_Malloc
    - PyErr_NoMemory
    - PyBytes_Check
    - _PyUnicode_CheckConsistency
    - abs
    - PyErr_SetString
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_KIND
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ_CHAR
    - PyMem_Free
    - PyObject_Length
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_Py_strhex_impl(const char* argbuf, const Py_ssize_t arglen,\n
      \                                const PyObject* sep, int bytes_per_sep_group,\n
      \                                const int return_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/Python-3.8.3/Python/pystrhex.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: _Py_strhex
    functionSourceFile: /src/Python-3.8.3/Python/pystrhex.c
    functionUses: 9
    functionsReached:
    - _Py_strhex_impl
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_strhex(const char* argbuf, const Py_ssize_t arglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/Python-3.8.3/Python/pystrhex.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argbuf
    - arglen
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: _Py_strhex_bytes
    functionSourceFile: /src/Python-3.8.3/Python/pystrhex.c
    functionUses: 0
    functionsReached:
    - _Py_strhex_impl
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_strhex_bytes(const char* argbuf, const Py_ssize_t arglen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/Python-3.8.3/Python/pystrhex.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_group
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: _Py_strhex_with_sep
    functionSourceFile: /src/Python-3.8.3/Python/pystrhex.c
    functionUses: 3
    functionsReached:
    - _Py_strhex_impl
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_strhex_with_sep(const char* argbuf, const Py_ssize_t
      arglen, const PyObject* sep, const int bytes_per_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_strhex_impl
      Src: /src/Python-3.8.3/Python/pystrhex.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - argbuf
    - arglen
    - sep
    - bytes_per_group
    argTypes:
    - char*
    - Py_ssize_t
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: _Py_strhex_bytes_with_sep
    functionSourceFile: /src/Python-3.8.3/Python/pystrhex.c
    functionUses: 2
    functionsReached:
    - _Py_strhex_impl
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _Py_strhex_bytes_with_sep(const char* argbuf, const Py_ssize_t
      arglen, const PyObject* sep, const int bytes_per_group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - lock
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: AnnotateRWLockCreate
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateRWLockCreate(const char *file, int line,\n                          const
      volatile void *lock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - lock
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: AnnotateRWLockDestroy
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateRWLockDestroy(const char *file, int line,\n                           const
      volatile void *lock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - lock
    - is_w
    argTypes:
    - char*
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: AnnotateRWLockAcquired
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateRWLockAcquired(const char *file, int line,\n                            const
      volatile void *lock, long is_w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - lock
    - is_w
    argTypes:
    - char*
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: AnnotateRWLockReleased
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateRWLockReleased(const char *file, int line,\n                            const
      volatile void *lock, long is_w)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - file
    - line
    - barrier
    - count
    - reinitialization_allowed
    argTypes:
    - char*
    - int
    - void*
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: AnnotateBarrierInit
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBarrierInit(const char *file, int line,\n                         const
      volatile void *barrier, long count,\n                         long reinitialization_allowed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - barrier
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: AnnotateBarrierWaitBefore
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBarrierWaitBefore(const char *file, int line,\n                               const
      volatile void *barrier)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - barrier
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: AnnotateBarrierWaitAfter
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBarrierWaitAfter(const char *file, int line,\n                              const
      volatile void *barrier)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - barrier
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: AnnotateBarrierDestroy
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBarrierDestroy(const char *file, int line,\n                            const
      volatile void *barrier)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - cv
    - lock
    argTypes:
    - char*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: AnnotateCondVarWait
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateCondVarWait(const char *file, int line,\n                         const
      volatile void *cv,\n                         const volatile void *lock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - cv
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: AnnotateCondVarSignal
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateCondVarSignal(const char *file, int line,\n                           const
      volatile void *cv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - cv
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: AnnotateCondVarSignalAll
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateCondVarSignalAll(const char *file, int line,\n                              const
      volatile void *cv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - address
    - size
    argTypes:
    - char*
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: AnnotatePublishMemoryRange
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotatePublishMemoryRange(const char *file, int line,\n                                const
      volatile void *address,\n                                long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - address
    - size
    argTypes:
    - char*
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: AnnotateUnpublishMemoryRange
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateUnpublishMemoryRange(const char *file, int line,\n                                  const
      volatile void *address,\n                                  long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - pcq
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: AnnotatePCQCreate
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotatePCQCreate(const char *file, int line,\n                       const
      volatile void *pcq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - pcq
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: AnnotatePCQDestroy
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotatePCQDestroy(const char *file, int line,\n                        const
      volatile void *pcq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - pcq
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: AnnotatePCQPut
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotatePCQPut(const char *file, int line,\n                    const
      volatile void *pcq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - pcq
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: AnnotatePCQGet
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotatePCQGet(const char *file, int line,\n                    const
      volatile void *pcq)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - mem
    - size
    argTypes:
    - char*
    - int
    - void*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: AnnotateNewMemory
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateNewMemory(const char *file, int line,\n                       const
      volatile void *mem,\n                       long size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - mem
    - description
    argTypes:
    - char*
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: AnnotateExpectRace
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateExpectRace(const char *file, int line,\n                        const
      volatile void *mem,\n                        const char *description)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - file
    - line
    - mem
    - description
    argTypes:
    - char*
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: AnnotateBenignRace
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBenignRace(const char *file, int line,\n                        const
      volatile void *mem,\n                        const char *description)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - file
    - line
    - mem
    - size
    - description
    argTypes:
    - char*
    - int
    - void*
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: AnnotateBenignRaceSized
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateBenignRaceSized(const char *file, int line,\n                             const
      volatile void *mem,\n                             long size,\n                             const
      char *description)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - mu
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: AnnotateMutexIsUsedAsCondVar
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateMutexIsUsedAsCondVar(const char *file, int line,\n                                  const
      volatile void *mu)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: AnnotateTraceMemory
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateTraceMemory(const char *file, int line,\n                         const
      volatile void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - name
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: AnnotateThreadName
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateThreadName(const char *file, int line,\n                        const
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: AnnotateIgnoreReadsBegin
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreReadsBegin(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: AnnotateIgnoreReadsEnd
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreReadsEnd(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: AnnotateIgnoreWritesBegin
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreWritesBegin(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: AnnotateIgnoreWritesEnd
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreWritesEnd(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: AnnotateIgnoreSyncBegin
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreSyncBegin(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: AnnotateIgnoreSyncEnd
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateIgnoreSyncEnd(const char *file, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - enable
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: AnnotateEnableRaceDetection
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateEnableRaceDetection(const char *file, int line, int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - file
    - line
    - arg
    argTypes:
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: AnnotateNoOp
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void AnnotateNoOp(const char *file, int line,\n                  const
      volatile void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - file
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: AnnotateFlushState
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AnnotateFlushState(const char *file, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/dynamic_annotations.c:123,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/dynamic_annotations.c:125,1
    - Dst: GetEnvironmentVariableA
      Src: /src/Python-3.8.3/Python/dynamic_annotations.c:132,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/dynamic_annotations.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: GetRunningOnValgrind
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 0
    functionsReached:
    - GetEnvironmentVariableA
    - strcmp
    - getenv
    linkageType: ''
    returnType: int
    signature: int GetRunningOnValgrind(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetRunningOnValgrind
      Src: /src/Python-3.8.3/Python/dynamic_annotations.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: RunningOnValgrind
    functionSourceFile: /src/Python-3.8.3/Python/dynamic_annotations.c
    functionUses: 1
    functionsReached:
    - GetRunningOnValgrind
    linkageType: ''
    returnType: int
    signature: int RunningOnValgrind(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/pystrtod.c:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 17
    functionName: case_insensitive_match
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - Py_TOLOWER
    linkageType: ''
    returnType: int
    signature: int case_insensitive_match(const char *s, const char *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:42,1
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:44,1
    - Dst: _Py_dg_infinity
      Src: /src/Python-3.8.3/Python/pystrtod.c:46,1
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:48,1
    - Dst: _Py_dg_stdnan
      Src: /src/Python-3.8.3/Python/pystrtod.c:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - p
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 58
    functionName: _Py_parse_inf_or_nan
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 1
    functionsReached:
    - case_insensitive_match
    - _Py_dg_stdnan
    - _Py_dg_infinity
    linkageType: ''
    returnType: double
    signature: double _Py_parse_inf_or_nan(const char *p, char **endptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:77,1
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:79,1
    - Dst: case_insensitive_match
      Src: /src/Python-3.8.3/Python/pystrtod.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: _Py_parse_inf_or_nan
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 1
    functionsReached:
    - case_insensitive_match
    linkageType: ''
    returnType: double
    signature: double _Py_parse_inf_or_nan(const char *p, char **endptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:136,1
    - Dst: _Py_dg_strtod
      Src: /src/Python-3.8.3/Python/pystrtod.c:142,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/Python-3.8.3/Python/pystrtod.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - nptr
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: (nptr != NULL)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: _PyOS_ascii_strtod
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - _Py_parse_inf_or_nan
    - assert
    - _Py_dg_strtod
    linkageType: ''
    returnType: double
    signature: double _PyOS_ascii_strtod(const char *nptr, char **endptr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:176,1
    - Dst: localeconv
      Src: /src/Python-3.8.3/Python/pystrtod.c:180,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:182,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:184,1
    - Dst: _Py_parse_inf_or_nan
      Src: /src/Python-3.8.3/Python/pystrtod.c:189,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:216,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:227,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:235,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:242,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Python/pystrtod.c:246,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Python/pystrtod.c:257,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:266,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:268,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:270,1
    - Dst: strtod
      Src: /src/Python-3.8.3/Python/pystrtod.c:275,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/pystrtod.c:288,1
    - Dst: strtod
      Src: /src/Python-3.8.3/Python/pystrtod.c:292,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 83
    argCount: 2
    argNames:
    - nptr
    - endptr
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: (nptr != NULL)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (decimal_point_len != 0)
      pos:
        line_end: 183
        line_start: 183
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 308
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 308
    functionName: _PyOS_ascii_strtod
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strtod
    - memcpy
    - PyMem_MALLOC
    - _Py_parse_inf_or_nan
    - Py_ISDIGIT
    - strlen
    - localeconv
    - assert
    - PyMem_FREE
    - strncmp
    linkageType: ''
    returnType: double
    signature: double _PyOS_ascii_strtod(const char *nptr, char **endptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Python/pystrtod.c:345,1
    - Dst: _PyOS_ascii_strtod
      Src: /src/Python-3.8.3/Python/pystrtod.c:346,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Python/pystrtod.c:347,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:350,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystrtod.c:354,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystrtod.c:358,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pystrtod.c:361,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystrtod.c:362,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - s
    - endptr
    - overflow_exception
    argTypes:
    - char*
    - char**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 371
    functionName: PyOS_string_to_double
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 3
    functionsReached:
    - PyFPE_END_PROTECT
    - _PyOS_ascii_strtod
    - PyFPE_START_PROTECT
    - PyErr_NoMemory
    - fabs
    - PyErr_Format
    linkageType: ''
    returnType: double
    signature: "double PyOS_string_to_double(const char *s,\n                      char
      **endptr,\n                      PyObject *overflow_exception)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:394,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/pystrtod.c:396,1
    - Dst: innerfunc
      Src: /src/Python-3.8.3/Python/pystrtod.c:397,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pystrtod.c:400,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:402,1
    - Dst: innerfunc
      Src: /src/Python-3.8.3/Python/pystrtod.c:432,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pystrtod.c:433,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/pystrtod.c:437,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pystrtod.c:438,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 6
    argNames:
    - s
    - orig_len
    - what
    - obj
    - arg
    - (*innerfunc)(const char *, Py_ssize_t, void *)
    argTypes:
    - char*
    - Py_ssize_t
    - char*
    - PyObject*
    - void*
    - PyObject*
    assertStmts:
    - condition: (s[orig_len] == '\0')
      pos:
        line_end: 393
        line_start: 393
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 442
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 442
    functionName: _Py_string_to_number_with_underscores
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 2
    functionsReached:
    - innerfunc
    - PyErr_NoMemory
    - PyErr_Format
    - PyMem_Free
    - PyMem_Malloc
    - assert
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_Py_string_to_number_with_underscores(\n    const char
      *s, Py_ssize_t orig_len, const char *what, PyObject *obj, void *arg,\n    PyObject
      *(*innerfunc)(const char *, Py_ssize_t, void *))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/Python-3.8.3/Python/pystrtod.c:452,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:456,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:460,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Python/pystrtod.c:462,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:467,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 476
    functionName: change_decimal_from_locale_to_dot
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - Py_ISDIGIT
    - strlen
    - localeconv
    - memmove
    - strncmp
    linkageType: ''
    returnType: void
    signature: void change_decimal_from_locale_to_dot(char* buffer)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/Python-3.8.3/Python/pystrtod.c:490,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:503,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:529,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:533,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:543,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:545,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - buffer
    - buf_size
    argTypes:
    - char*
    - size_t
    assertStmts:
    - condition: (extra_zeros_cnt >= 0)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 549
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 549
    functionName: ensure_minimum_exponent_length
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - Py_ISDIGIT
    - strpbrk
    - memmove
    - assert
    - memset
    linkageType: ''
    returnType: void
    signature: void ensure_minimum_exponent_length(char* buffer, size_t buf_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:564,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:572,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 592
    functionName: remove_trailing_zeros
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - memmove
    - Py_ISDIGIT
    linkageType: ''
    returnType: void
    signature: void remove_trailing_zeros(char *buffer)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:615,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/pystrtod.c:617,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:620,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:628,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:645,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:648,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:654,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:661,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:662,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:663,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:671,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:672,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:675,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/pystrtod.c:682,1
    - Dst: remove_trailing_zeros
      Src: /src/Python-3.8.3/Python/pystrtod.c:687,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - buffer
    - buf_size
    - precision
    argTypes:
    - char*
    - size_t
    - int
    assertStmts:
    - condition: (precision == -1)
      pos:
        line_end: 627
        line_start: 627
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (*p == '\0')
      pos:
        line_end: 644
        line_start: 644
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (precision == -1 || digit_count < precision)
      pos:
        line_end: 647
        line_start: 647
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (digit_count >= 1)
      pos:
        line_end: 670
        line_start: 670
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (p <= buf_size+buffer)
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 690
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 690
    functionName: ensure_decimal_point
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - memcpy
    - PyOS_snprintf
    - Py_ISDIGIT
    - strlen
    - remove_trailing_zeros
    - memmove
    - assert
    linkageType: ''
    returnType: void
    signature: void ensure_decimal_point(char* buffer, size_t buf_size, int precision)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:723,1
    - Dst: strpbrk
      Src: /src/Python-3.8.3/Python/pystrtod.c:739,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:762,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/pystrtod.c:769,1
    - Dst: change_decimal_from_locale_to_dot
      Src: /src/Python-3.8.3/Python/pystrtod.c:775,1
    - Dst: ensure_minimum_exponent_length
      Src: /src/Python-3.8.3/Python/pystrtod.c:782,1
    - Dst: ensure_decimal_point
      Src: /src/Python-3.8.3/Python/pystrtod.c:790,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 5
    argNames:
    - buffer
    - buf_size
    - format
    - d
    - precision
    argTypes:
    - char*
    - size_t
    - char*
    - double
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 793
    functionName: _PyOS_ascii_formatd
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - strcpy
    - ensure_minimum_exponent_length
    - PyOS_snprintf
    - strpbrk
    - change_decimal_from_locale_to_dot
    - strlen
    - ensure_decimal_point
    linkageType: ''
    returnType: char
    signature: "char *\n_PyOS_ascii_formatd(char       *buffer,\n                   size_t
      \     buf_size,\n                   const char *format,\n                   double
      \     d,\n                   int         precision)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/pystrtod.c:830,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/pystrtod.c:843,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Python/pystrtod.c:885,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Python/pystrtod.c:885,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pystrtod.c:890,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Python/pystrtod.c:891,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pystrtod.c:896,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:898,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Python/pystrtod.c:903,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:904,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Python/pystrtod.c:906,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Python/pystrtod.c:907,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:908,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:910,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/pystrtod.c:917,1
    - Dst: _PyOS_ascii_formatd
      Src: /src/Python-3.8.3/Python/pystrtod.c:920,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pystrtod.c:926,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:929,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/pystrtod.c:930,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Python/pystrtod.c:937,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 5
    argNames:
    - val
    - format_code
    - precision
    - flags
    - type
    argTypes:
    - double
    - char
    - int
    - int
    - int*
    assertStmts:
    - condition: ((size_t)bufsize >= len+2)
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 943
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 943
    functionName: PyOS_double_to_string
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 5
    functionsReached:
    - strcpy
    - PyOS_snprintf
    - Py_TOUPPER
    - Py_IS_NAN
    - Py_IS_INFINITY
    - PyErr_NoMemory
    - PyErr_BadInternalCall
    - copysign
    - _PyOS_ascii_formatd
    - fabs
    - strlen
    - memmove
    - PyMem_Malloc
    - assert
    - frexp
    linkageType: ''
    returnType: char
    signature: "char * PyOS_double_to_string(double val,\n                                         char
      format_code,\n                                         int precision,\n                                         int
      flags,\n                                         int *type)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: _Py_dg_dtoa
      Src: /src/Python-3.8.3/Python/pystrtod.c:1014,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:1021,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:1024,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/pystrtod.c:1027,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pystrtod.c:1038,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:1040,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:1052,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:1059,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pystrtod.c:1068,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/pystrtod.c:1126,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:1145,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:1149,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/pystrtod.c:1165,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pystrtod.c:1167,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1183,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1186,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1190,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:1196,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:1199,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/pystrtod.c:1203,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1209,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1212,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/pystrtod.c:1216,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Python/pystrtod.c:1227,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pystrtod.c:1235,1
    - Dst: _Py_dg_freedtoa
      Src: /src/Python-3.8.3/Python/pystrtod.c:1238,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 141
    argCount: 9
    argNames:
    - d
    - format_code
    - mode
    - precision
    - always_add_sign
    - add_dot_0_if_integer
    - use_alt_formatting
    - float_strings
    - type
    argTypes:
    - double
    - char
    - int
    - int
    - int
    - int
    - int
    - char**
    - int*
    assertStmts:
    - condition: (vdigits_start < decpt && decpt <= vdigits_end)
      pos:
        line_end: 1148
        line_start: 1148
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (digits_end != NULL && digits_end >= digits)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: "(vdigits_start <= 0 &&\n           0 <= digits_len &&\n           digits_len
        <= vdigits_end)"
      pos:
        line_end: 1146
        line_start: 1144
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    - condition: (p-buf < bufsize)
      pos:
        line_end: 1234
        line_start: 1234
        source_file: /src/Python-3.8.3/Python/pystrtod.c
    constantsTouched: []
    func_position:
      end: 1241
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1241
    functionName: format_float_short
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 0
    functionsReached:
    - PyMem_Malloc
    - strncpy
    - PyErr_NoMemory
    - Py_ISDIGIT
    - PyErr_BadInternalCall
    - _Py_dg_freedtoa
    - Py_UNREACHABLE
    - _Py_dg_dtoa
    - assert
    - memset
    - sprintf
    linkageType: ''
    returnType: char
    signature: "char *\nformat_float_short(double d, char format_code,\n                   int
      mode, int precision,\n                   int always_add_sign, int add_dot_0_if_integer,\n
      \                  int use_alt_formatting, const char * const *float_strings,\n
      \                  int *type)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/pystrtod.c:1292,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/pystrtod.c:1298,1
    - Dst: format_float_short
      Src: /src/Python-3.8.3/Python/pystrtod.c:1302,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 5
    argNames:
    - val
    - format_code
    - precision
    - flags
    - type
    argTypes:
    - double
    - char
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1307
    functionName: PyOS_double_to_string
    functionSourceFile: /src/Python-3.8.3/Python/pystrtod.c
    functionUses: 5
    functionsReached:
    - PyErr_BadInternalCall
    - format_float_short
    linkageType: ''
    returnType: char
    signature: "char * PyOS_double_to_string(double val,\n                                         char
      format_code,\n                                         int precision,\n                                         int
      flags,\n                                         int *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: _PyOS_ResetGetOpt
    functionSourceFile: /src/Python-3.8.3/Python/getopt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyOS_ResetGetOpt(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/getopt.c:74,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/getopt.c:84,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/getopt.c:89,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/getopt.c:94,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:109,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/getopt.c:116,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:121,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:131,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:142,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/getopt.c:147,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:149,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/getopt.c:163,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 3
    argNames:
    - argc
    - argv
    - longindex
    argTypes:
    - Py_ssize_t
    - wchar_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 174
    functionName: _PyOS_GetOpt
    functionSourceFile: /src/Python-3.8.3/Python/getopt.c
    functionUses: 0
    functionsReached:
    - wcschr
    - fprintf
    - wcscmp
    linkageType: ''
    returnType: int
    signature: int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: IS_TOP_LEVEL_AWAIT
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_TOP_LEVEL_AWAIT(c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/compile.c:236,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:237,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:238,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:239,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/compile.c:242,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/compile.c:243,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:253,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:254,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/compile.c:255,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:256,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:261,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:264,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:270,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Python/compile.c:275,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Python/compile.c:276,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Python/compile.c:277,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/compile.c:279,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/compile.c:283,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/compile.c:283,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/compile.c:283,1
    - Dst: PyUnicode_CopyCharacters
      Src: /src/Python-3.8.3/Python/compile.c:284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:285,1
    - Dst: PyUnicode_CopyCharacters
      Src: /src/Python-3.8.3/Python/compile.c:288,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:289,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:292,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/compile.c:292,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - privateobj
    - ident
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(result, 1))
      pos:
        line_end: 291
        line_start: 291
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 294
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 294
    functionName: _Py_Mangle
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 4
    functionsReached:
    - assert
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_FindChar
    - PyUnicode_MAX_CHAR_VALUE
    - PyUnicode_WRITE
    - PyUnicode_KIND
    - PyUnicode_DATA
    - PyUnicode_CopyCharacters
    - _PyUnicode_CheckConsistency
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_Mangle(PyObject *privateobj, PyObject *ident)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:299,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/compile.c:301,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/compile.c:306,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: compiler_init
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyDict_New
    - Py_CLEAR
    - memset
    linkageType: ''
    returnType: int
    signature: int compiler_init(struct compiler *c)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/compile.c:323,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:326,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:331,1
    - Dst: compiler_init
      Src: /src/Python-3.8.3/Python/compile.c:335,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:337,1
    - Dst: PyFuture_FromASTObject
      Src: /src/Python-3.8.3/Python/compile.c:340,1
    - Dst: _PyAST_Optimize
      Src: /src/Python-3.8.3/Python/compile.c:354,1
    - Dst: PySymtable_BuildObject
      Src: /src/Python-3.8.3/Python/compile.c:358,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/compile.c:360,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:361,1
    - Dst: compiler_mod
      Src: /src/Python-3.8.3/Python/compile.c:365,1
    - Dst: compiler_free
      Src: /src/Python-3.8.3/Python/compile.c:368,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:369,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/compile.c:369,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - mod
    - filename
    - flags
    - optimize
    - arena
    argTypes:
    - mod_ty
    - PyObject*
    - PyCompilerFlags*
    - int
    - PyArena*
    assertStmts:
    - condition: (co || PyErr_Occurred())
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 371
      start: 315
    functionDepth: 6
    functionLinenumber: 315
    functionLinenumberEnd: 371
    functionName: PyAST_CompileObject
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PySymtable_BuildObject
    - PyFuture_FromASTObject
    - _PyAST_Optimize
    - PyErr_SetString
    - PyUnicode_InternFromString
    - compiler_free
    - assert
    - compiler_init
    - compiler_mod
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyAST_CompileObject(mod_ty mod, PyObject *filename,
      PyCompilerFlags *flags,\n                   int optimize, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/compile.c:379,1
    - Dst: PyAST_CompileObject
      Src: /src/Python-3.8.3/Python/compile.c:382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - mod
    - filename_str
    - flags
    - optimize
    - arena
    argTypes:
    - mod_ty
    - char*
    - PyCompilerFlags*
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 386
    functionName: PyAST_CompileEx
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyAST_CompileObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyAST_CompileEx(mod_ty mod, const char *filename_str,
      PyCompilerFlags *flags,\n                int optimize, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/compile.c:393,1
    - Dst: PyAST_FromNode
      Src: /src/Python-3.8.3/Python/compile.c:396,1
    - Dst: PyAST_Compile
      Src: /src/Python-3.8.3/Python/compile.c:398,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/compile.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - n
    - filename
    argTypes:
    - struct _node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: PyNode_Compile
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyArena_New
    - PyAST_Compile
    - PyArena_Free
    - PyAST_FromNode
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      PyNode_Compile(struct _node *n, const char *filename)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySymtable_Free
      Src: /src/Python-3.8.3/Python/compile.c:407,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:409,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:410,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:411,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 413
    functionName: compiler_free
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyObject_Free
    - Py_DECREF
    - Py_XDECREF
    - PySymtable_Free
    linkageType: ''
    returnType: void
    signature: void compiler_free(struct compiler *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/compile.c:420,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Python/compile.c:423,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/compile.c:425,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:427,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:430,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/compile.c:431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:433,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 415
    functionDepth: 5
    functionLinenumber: 415
    functionLinenumberEnd: 439
    functionName: list2dict
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - PyList_GET_ITEM
    - PyList_Size
    - PyDict_SetItem
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list2dict(PyObject *list)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/compile.c:453,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:456,1
    - Dst: PyDict_Keys
      Src: /src/Python-3.8.3/Python/compile.c:465,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Python/compile.c:468,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:469,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:472,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:477,1
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Python/compile.c:478,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:479,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/compile.c:479,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/compile.c:480,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/compile.c:484,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:486,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:487,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/compile.c:491,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:492,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:493,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:494,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:497,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:500,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - src
    - scope_type
    - flag
    - offset
    argTypes:
    - PyObject*
    - int
    - int
    - Py_ssize_t
    assertStmts:
    - condition: (offset >= 0)
      pos:
        line_end: 455
        line_start: 455
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (PyLong_Check(v))
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 502
      start: 449
    functionDepth: 7
    functionLinenumber: 449
    functionLinenumberEnd: 502
    functionName: dictbytype
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyLong_AS_LONG
    - PyDict_GetItem
    - Py_DECREF
    - PyDict_New
    - PyList_Sort
    - PyDict_Keys
    - PyList_GET_ITEM
    - PyList_GET_SIZE
    - PyDict_SetItem
    - assert
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dictbytype(PyObject *src, int scope_type, int flag, Py_ssize_t offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:509,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:510,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:511,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:513,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:514,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:515,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:518,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - u
    argTypes:
    - struct compiler_unit*
    assertStmts:
    - condition: ((uintptr_t)block != 0xcbcbcbcbU)
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: ((uintptr_t)block != 0xfbfbfbfbU)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (block->b_ialloc > 0)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: ((uintptr_t)block != 0xdbdbdbdbU)
      pos:
        line_end: 510
        line_start: 510
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (block->b_iused > 0)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (block->b_ialloc >= block->b_iused)
      pos:
        line_end: 514
        line_start: 514
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (block->b_iused == 0)
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (block->b_ialloc == 0)
      pos:
        line_end: 518
        line_start: 518
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 522
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 522
    functionName: compiler_unit_check
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void compiler_unit_check(struct compiler_unit *u)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compiler_unit_check
      Src: /src/Python-3.8.3/Python/compile.c:529,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:533,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:535,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:538,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:539,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:540,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:541,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:542,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:543,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:544,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:545,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/compile.c:546,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - u
    argTypes:
    - struct compiler_unit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 548
    functionName: compiler_unit_free
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - compiler_unit_check
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void compiler_unit_free(struct compiler_unit *u)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/compile.c:557,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:560,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:563,1
    - Dst: PySymtable_Lookup
      Src: /src/Python-3.8.3/Python/compile.c:568,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:570,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:573,1
    - Dst: list2dict
      Src: /src/Python-3.8.3/Python/compile.c:575,1
    - Dst: dictbytype
      Src: /src/Python-3.8.3/Python/compile.c:576,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:578,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/compile.c:583,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:586,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:587,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:587,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/compile.c:588,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:590,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/compile.c:593,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:595,1
    - Dst: dictbytype
      Src: /src/Python-3.8.3/Python/compile.c:600,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:601,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:603,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/compile.c:613,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:615,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/compile.c:618,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:620,1
    - Dst: PyCapsule_New
      Src: /src/Python-3.8.3/Python/compile.c:628,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/compile.c:629,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:630,1
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:631,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:634,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/compile.c:636,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:642,1
    - Dst: compiler_set_qualname
      Src: /src/Python-3.8.3/Python/compile.c:648,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 82
    argCount: 5
    argNames:
    - c
    - name
    - scope_type
    - key
    - lineno
    argTypes:
    - struct compiler*
    - identifier
    - int
    - void*
    - int
    assertStmts:
    - condition: (u->u_scope_type == COMPILER_SCOPE_CLASS)
      pos:
        line_end: 585
        line_start: 585
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (PyDict_GET_SIZE(u->u_cellvars) == 0)
      pos:
        line_end: 586
        line_start: 586
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 653
      start: 550
    functionDepth: 8
    functionLinenumber: 550
    functionLinenumberEnd: 653
    functionName: compiler_enter_scope
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - PyDict_SetItem
    - compiler_new_block
    - Py_INCREF
    - PyDict_GET_SIZE
    - dictbytype
    - PyCapsule_New
    - compiler_set_qualname
    - PySymtable_Lookup
    - assert
    - Py_XDECREF
    - memset
    - list2dict
    - PyObject_Malloc
    - Py_DECREF
    - compiler_unit_free
    - PyErr_NoMemory
    - PyDict_New
    - PyList_Append
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: "int compiler_enter_scope(struct compiler *c, identifier name,\n                     int
      scope_type, void *key, int lineno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_unit_free
      Src: /src/Python-3.8.3/Python/compile.c:662,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:664,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:666,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Python/compile.c:667,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:668,1
    - Dst: PySequence_DelItem
      Src: /src/Python-3.8.3/Python/compile.c:670,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/compile.c:671,1
    - Dst: compiler_unit_check
      Src: /src/Python-3.8.3/Python/compile.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts:
    - condition: (c->u)
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 677
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 677
    functionName: compiler_exit_scope
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - PyCapsule_GetPointer
    - compiler_unit_check
    - PyList_GET_ITEM
    - compiler_unit_free
    - Py_FatalError
    - PyList_GET_SIZE
    - PySequence_DelItem
    linkageType: ''
    returnType: void
    signature: void compiler_exit_scope(struct compiler *c)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_static_string
      Src: /src/Python-3.8.3/Python/compile.c:682,1
    - Dst: _Py_static_string
      Src: /src/Python-3.8.3/Python/compile.c:683,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:689,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:690,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:696,1
    - Dst: PyCapsule_GetPointer
      Src: /src/Python-3.8.3/Python/compile.c:697,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:698,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:703,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:704,1
    - Dst: PyST_GetScope
      Src: /src/Python-3.8.3/Python/compile.c:707,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:708,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:709,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/compile.c:718,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Python/compile.c:721,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:726,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/compile.c:733,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:735,1
    - Dst: PyUnicode_Concat
      Src: /src/Python-3.8.3/Python/compile.c:738,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:739,1
    - Dst: PyUnicode_Append
      Src: /src/Python-3.8.3/Python/compile.c:742,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:747,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts:
    - condition: (u->u_name)
      pos:
        line_end: 702
        line_start: 702
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (stack_size >= 1)
      pos:
        line_end: 689
        line_start: 689
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (scope != GLOBAL_IMPLICIT)
      pos:
        line_end: 708
        line_start: 708
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (parent)
      pos:
        line_end: 697
        line_start: 697
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 753
      start: 679
    functionDepth: 6
    functionLinenumber: 679
    functionLinenumberEnd: 753
    functionName: compiler_set_qualname
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyUnicode_Concat
    - assert
    - Py_DECREF
    - _PyUnicode_FromId
    - PyCapsule_GetPointer
    - Py_INCREF
    - _Py_Mangle
    - PyList_GET_ITEM
    - _Py_static_string
    - PyST_GetScope
    - PyList_GET_SIZE
    - PyUnicode_Append
    linkageType: ''
    returnType: int
    signature: int compiler_set_qualname(struct compiler *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/compile.c:767,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:769,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 777
    functionName: compiler_new_block
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyObject_Malloc
    - memset
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      compiler_new_block(struct compiler *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: compiler_next_block
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_new_block
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      compiler_next_block(struct compiler *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c
    - block
    argTypes:
    - struct compiler*
    - basicblock*
    assertStmts:
    - condition: (block != NULL)
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: compiler_use_next_block
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: basicblock
    signature: 'basicblock *

      compiler_use_next_block(struct compiler *c, basicblock *block)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:807,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/compile.c:809,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:812,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:816,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:826,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:831,1
    - Dst: PyObject_Realloc
      Src: /src/Python-3.8.3/Python/compile.c:835,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:838,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - c
    - b
    argTypes:
    - struct compiler*
    - basicblock*
    assertStmts:
    - condition: (b != NULL)
      pos:
        line_end: 806
        line_start: 806
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 845
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 845
    functionName: compiler_next_instr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - PyErr_NoMemory
    - assert
    - memset
    - PyObject_Realloc
    linkageType: ''
    returnType: int
    signature: int compiler_next_instr(struct compiler *c, basicblock *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - 'off'
    argTypes:
    - struct compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 868
    functionName: compiler_set_lineno
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void compiler_set_lineno(struct compiler *c, int off)
  - BBCount: 123
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 207
    argCount: 3
    argNames:
    - opcode
    - oparg
    - jump
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 1140
    functionName: stack_effect
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stack_effect(int opcode, int oparg, int jump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_effect
      Src: /src/Python-3.8.3/Python/compile.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opcode
    - oparg
    - jump
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1146
    functionName: PyCompile_OpcodeStackEffectWithJump
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - stack_effect
    linkageType: ''
    returnType: int
    signature: int PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int
      jump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stack_effect
      Src: /src/Python-3.8.3/Python/compile.c:1151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opcode
    - oparg
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1152
    functionName: PyCompile_OpcodeStackEffect
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - stack_effect
    linkageType: ''
    returnType: int
    signature: int PyCompile_OpcodeStackEffect(int opcode, int oparg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1164,1
    - Dst: HAS_ARG
      Src: /src/Python-3.8.3/Python/compile.c:1164,1
    - Dst: compiler_next_instr
      Src: /src/Python-3.8.3/Python/compile.c:1168,1
    - Dst: compiler_set_lineno
      Src: /src/Python-3.8.3/Python/compile.c:1177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - c
    - opcode
    argTypes:
    - struct compiler*
    - int
    assertStmts:
    - condition: (!HAS_ARG(opcode))
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1179
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1179
    functionName: compiler_addop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_set_lineno
    - assert
    - compiler_next_instr
    - HAS_ARG
    linkageType: ''
    returnType: int
    signature: int compiler_addop(struct compiler *c, int opcode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/compile.c:1187,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/compile.c:1189,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:1192,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/compile.c:1193,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/compile.c:1197,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1201,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/compile.c:1204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - c
    - dict
    - o
    argTypes:
    - struct compiler*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1181
    functionDepth: 5
    functionLinenumber: 1181
    functionLinenumberEnd: 1206
    functionName: compiler_add_o
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyLong_AsLong
    - PyDict_GET_SIZE
    - PyDict_SetItem
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t compiler_add_o(struct compiler *c, PyObject *dict, PyObject
      *o)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:1215,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Python/compile.c:1219,1
    - Dst: PyDict_SetDefault
      Src: /src/Python-3.8.3/Python/compile.c:1225,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/compile.c:1228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1229,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:1236,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:1237,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1239,1
    - Dst: merge_consts_recursive
      Src: /src/Python-3.8.3/Python/compile.c:1240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1242,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:1248,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1249,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:1255,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1257,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1260,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:1263,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1267,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:1267,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1268,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:1268,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:1270,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:1274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1276,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Python/compile.c:1282,1
    - Dst: merge_consts_recursive
      Src: /src/Python-3.8.3/Python/compile.c:1283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1286,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:1290,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1291,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:1292,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1293,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1298,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Python/compile.c:1304,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1307,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1310,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1311,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1312,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - struct compiler*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_CheckExact(key))
      pos:
        line_end: 1266
        line_start: 1266
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (PyTuple_GET_SIZE(key) == 2)
      pos:
        line_end: 1267
        line_start: 1267
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (PyTuple_GET_ITEM(key, 1) == o)
      pos:
        line_end: 1309
        line_start: 1309
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1316
      start: 1209
    functionDepth: 10
    functionLinenumber: 1209
    functionLinenumberEnd: 1316
    functionName: merge_consts_recursive
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTuple_New
    - PyFrozenSet_New
    - PySet_GET_SIZE
    - PyDict_SetDefault
    - merge_consts_recursive
    - PyFrozenSet_CheckExact
    - PyTuple_CheckExact
    - _PySet_NextEntry
    - assert
    - PyTuple_GET_ITEM
    - Py_XINCREF
    - PyTuple_SET_ITEM
    - _PyCode_ConstantKey
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      merge_consts_recursive(struct compiler *c, PyObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: merge_consts_recursive
      Src: /src/Python-3.8.3/Python/compile.c:1325,1
    - Dst: compiler_add_o
      Src: /src/Python-3.8.3/Python/compile.c:1330,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - struct compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1318
    functionDepth: 11
    functionLinenumber: 1318
    functionLinenumberEnd: 1333
    functionName: compiler_add_const
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - merge_consts_recursive
    - Py_DECREF
    - compiler_add_o
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t compiler_add_const(struct compiler *c, PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_add_const
      Src: /src/Python-3.8.3/Python/compile.c:1342,1
    - Dst: compiler_addop_i
      Src: /src/Python-3.8.3/Python/compile.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - o
    argTypes:
    - struct compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1335
    functionDepth: 12
    functionLinenumber: 1335
    functionLinenumberEnd: 1346
    functionName: compiler_addop_load_const
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_add_const
    - compiler_addop_i
    linkageType: ''
    returnType: int
    signature: int compiler_addop_load_const(struct compiler *c, PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_add_o
      Src: /src/Python-3.8.3/Python/compile.c:1356,1
    - Dst: compiler_addop_i
      Src: /src/Python-3.8.3/Python/compile.c:1359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - c
    - opcode
    - dict
    - o
    argTypes:
    - struct compiler*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1348
    functionDepth: 6
    functionLinenumber: 1348
    functionLinenumberEnd: 1360
    functionName: compiler_addop_o
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_addop_i
    - compiler_add_o
    linkageType: ''
    returnType: int
    signature: "int compiler_addop_o(struct compiler *c, int opcode, PyObject *dict,\n
      \                    PyObject *o)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:1372,1
    - Dst: compiler_add_o
      Src: /src/Python-3.8.3/Python/compile.c:1375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1376,1
    - Dst: compiler_addop_i
      Src: /src/Python-3.8.3/Python/compile.c:1379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - c
    - opcode
    - dict
    - o
    argTypes:
    - struct compiler*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1362
    functionDepth: 6
    functionLinenumber: 1362
    functionLinenumberEnd: 1380
    functionName: compiler_addop_name
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - _Py_Mangle
    - compiler_addop_i
    - Py_DECREF
    - compiler_add_o
    linkageType: ''
    returnType: int
    signature: "int compiler_addop_name(struct compiler *c, int opcode, PyObject *dict,\n
      \                   PyObject *o)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1403,1
    - Dst: HAS_ARG
      Src: /src/Python-3.8.3/Python/compile.c:1403,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1404,1
    - Dst: compiler_next_instr
      Src: /src/Python-3.8.3/Python/compile.c:1406,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/compile.c:1411,1
    - Dst: compiler_set_lineno
      Src: /src/Python-3.8.3/Python/compile.c:1412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - c
    - opcode
    - oparg
    argTypes:
    - struct compiler*
    - int
    - Py_ssize_t
    assertStmts:
    - condition: (HAS_ARG(opcode))
      pos:
        line_end: 1402
        line_start: 1402
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (0 <= oparg && oparg <= 2147483647)
      pos:
        line_end: 1403
        line_start: 1403
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1414
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1414
    functionName: compiler_addop_i
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 3
    functionsReached:
    - Py_SAFE_DOWNCAST
    - HAS_ARG
    - compiler_next_instr
    - compiler_set_lineno
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1426,1
    - Dst: HAS_ARG
      Src: /src/Python-3.8.3/Python/compile.c:1426,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1427,1
    - Dst: compiler_next_instr
      Src: /src/Python-3.8.3/Python/compile.c:1428,1
    - Dst: compiler_set_lineno
      Src: /src/Python-3.8.3/Python/compile.c:1438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - c
    - opcode
    - b
    - absolute
    argTypes:
    - struct compiler*
    - int
    - basicblock*
    - int
    assertStmts:
    - condition: (HAS_ARG(opcode))
      pos:
        line_end: 1425
        line_start: 1425
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (b != NULL)
      pos:
        line_end: 1426
        line_start: 1426
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1440
      start: 1416
    functionDepth: 2
    functionLinenumber: 1416
    functionLinenumberEnd: 1440
    functionName: compiler_addop_j
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_set_lineno
    - assert
    - compiler_next_instr
    - HAS_ARG
    linkageType: ''
    returnType: int
    signature: int compiler_addop_j(struct compiler *c, int opcode, basicblock *b,
      int absolute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1452
    functionName: NEXT_BLOCK
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_BLOCK(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1457
    functionName: ADDOP
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP(C, OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1464
    functionName: ADDOP_IN_SCOPE
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_IN_SCOPE(C, OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1469
    functionName: ADDOP_LOAD_CONST
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_LOAD_CONST(C, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1482
    functionName: ADDOP_LOAD_CONST_NEW
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_LOAD_CONST_NEW(C, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1487
    functionName: ADDOP_O
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_O(C, OP, O, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1496
    functionName: ADDOP_N
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_N(C, OP, O, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - ','
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1497
    functionDepth: 0
    functionLinenumber: 1497
    functionLinenumberEnd: 1501
    functionName: ADDOP_NAME
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_NAME(C, OP, O, TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1506
    functionName: ADDOP_I
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_I(C, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1511
    functionName: ADDOP_JABS
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_JABS(C, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - OP
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1516
    functionName: ADDOP_JREL
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDOP_JREL(C, OP, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - TYPE
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1525
    functionName: VISIT
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT(C, TYPE, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - TYPE
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1532
    functionName: VISIT_IN_SCOPE
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_IN_SCOPE(C, TYPE, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - C
    - ','
    - V
    - ','
    - CTX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1533
    functionDepth: 0
    functionLinenumber: 1533
    functionLinenumberEnd: 1537
    functionName: VISIT_SLICE
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VISIT_SLICE(C, V, CTX)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1579,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1580,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1585,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1586,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1589,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1590,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1593,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1594,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1597,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1598,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1601,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1604,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1607,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1608,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1610,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1614,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1615,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1616,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 1
    argNames:
    - stmts
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1573
    functionDepth: 1
    functionLinenumber: 1573
    functionLinenumberEnd: 1626
    functionName: find_ann
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - find_ann
    linkageType: ''
    returnType: int
    signature: int find_ann(asdl_seq *stmts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - c
    - t
    - b
    - exit
    argTypes:
    - struct compiler*
    - enum fblocktype
    - basicblock*
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1647
    functionName: compiler_push_fblock
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int compiler_push_fblock(struct compiler *c, enum fblocktype t, basicblock
      *b,\n                     basicblock *exit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1653,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1655,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - t
    - b
    argTypes:
    - struct compiler*
    - enum fblocktype
    - basicblock*
    assertStmts:
    - condition: (u->u_nfblocks > 0)
      pos:
        line_end: 1652
        line_start: 1652
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (u->u_fblock[u->u_nfblocks].fb_block == b)
      pos:
        line_end: 1655
        line_start: 1655
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (u->u_fblock[u->u_nfblocks].fb_type == t)
      pos:
        line_end: 1654
        line_start: 1654
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1657
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1657
    functionName: compiler_pop_fblock
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void compiler_pop_fblock(struct compiler *c, enum fblocktype t, basicblock
      *b)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1672,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1674,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1676,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1682,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1684,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1688,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1692,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:1693,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1697,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1699,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1700,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:1701,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:1704,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1705,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1711,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1713,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1715,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1716,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1718,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:1719,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1720,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1722,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1723,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1728,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1731,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1732,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:1733,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1736,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/compile.c:1740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 3
    argNames:
    - c
    - info
    - preserve_tos
    argTypes:
    - struct compiler*
    - struct fblockinfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1741
    functionName: compiler_unwind_fblock
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - ADDOP_JREL
    - Py_UNREACHABLE
    - ADDOP_LOAD_CONST
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_unwind_fblock(struct compiler *c, struct fblockinfo *info,\n
      \                      int preserve_tos)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1758,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1759,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1763,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1764,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1766,1
    - Dst: _PyAST_GetDocString
      Src: /src/Python-3.8.3/Python/compile.c:1770,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1773,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1774,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:1775,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:1776,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1780,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:1781,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1781,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - c
    - stmts
    argTypes:
    - struct compiler*
    - asdl_seq*
    assertStmts:
    - condition: (st->kind == Expr_kind)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1783
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1783
    functionName: compiler_body
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - find_ann
    - ADDOP
    - asdl_seq_LEN
    - VISIT
    - assert
    - asdl_seq_GET
    - _PyAST_GetDocString
    - compiler_nameop
    linkageType: ''
    returnType: int
    signature: int compiler_body(struct compiler *c, asdl_seq *stmts)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:1792,1
    - Dst: compiler_enter_scope
      Src: /src/Python-3.8.3/Python/compile.c:1797,1
    - Dst: compiler_body
      Src: /src/Python-3.8.3/Python/compile.c:1801,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:1802,1
    - Dst: find_ann
      Src: /src/Python-3.8.3/Python/compile.c:1807,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:1808,1
    - Dst: VISIT_SEQ_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:1811,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:1815,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:1819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:1823,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:1828,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:1829,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - c
    - mod
    argTypes:
    - struct compiler*
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1785
    functionDepth: 9
    functionLinenumber: 1785
    functionLinenumberEnd: 1831
    functionName: compiler_mod
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - compiler_exit_scope
    - find_ann
    - ADDOP
    - VISIT_IN_SCOPE
    - assemble
    - VISIT_SEQ_IN_SCOPE
    - compiler_body
    - PyErr_Format
    - compiler_enter_scope
    - PyUnicode_InternFromString
    - PyErr_SetString
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      compiler_mod(struct compiler *c, mod_ty mod)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/compile.c:1843,1
    - Dst: PyST_GetScope
      Src: /src/Python-3.8.3/Python/compile.c:1845,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/compile.c:1848,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1851,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1852,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1853,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1853,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1854,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1854,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1855,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1855,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1856,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1856,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/compile.c:1858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - c
    - name
    argTypes:
    - struct compiler*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1838
    functionDepth: 6
    functionLinenumber: 1838
    functionLinenumberEnd: 1862
    functionName: get_ref_type
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyOS_snprintf
    - PyUnicode_AsUTF8
    - PyST_GetScope
    - Py_FatalError
    - PyObject_Repr
    linkageType: ''
    returnType: int
    signature: int get_ref_type(struct compiler *c, PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItem
      Src: /src/Python-3.8.3/Python/compile.c:1868,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/compile.c:1871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dict
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1864
    functionDepth: 4
    functionLinenumber: 1864
    functionLinenumberEnd: 1872
    functionName: compiler_lookup_arg
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyDict_GetItem
    linkageType: ''
    returnType: int
    signature: int compiler_lookup_arg(PyObject *dict, PyObject *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyCode_GetNumFree
      Src: /src/Python-3.8.3/Python/compile.c:1877,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1886,1
    - Dst: get_ref_type
      Src: /src/Python-3.8.3/Python/compile.c:1895,1
    - Dst: compiler_lookup_arg
      Src: /src/Python-3.8.3/Python/compile.c:1897,1
    - Dst: compiler_lookup_arg
      Src: /src/Python-3.8.3/Python/compile.c:1899,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/compile.c:1901,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1904,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1904,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1905,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1907,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:1908,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/compile.c:1908,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/compile.c:1909,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1911,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1914,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:1916,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:1917,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1918,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - c
    - co
    - flags
    - qualname
    argTypes:
    - struct compiler*
    - PyCodeObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1874
    functionDepth: 7
    functionLinenumber: 1874
    functionLinenumberEnd: 1920
    functionName: compiler_make_closure
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - get_ref_type
    - compiler_lookup_arg
    - PyUnicode_AsUTF8
    - Py_FatalError
    - fprintf
    - PyCode_GetNumFree
    - ADDOP_LOAD_CONST
    - PyObject_Repr
    - PyTuple_GET_ITEM
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_make_closure(struct compiler *c, PyCodeObject *co, Py_ssize_t
      flags, PyObject *qualname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1930,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:1931,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - decos
    argTypes:
    - struct compiler*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1922
    functionDepth: 1
    functionLinenumber: 1922
    functionLinenumberEnd: 1934
    functionName: compiler_decorators
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - VISIT
    linkageType: ''
    returnType: int
    signature: int compiler_decorators(struct compiler *c, asdl_seq* decos)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:1947,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1948,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:1949,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:1951,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/compile.c:1956,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1958,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:1961,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/compile.c:1964,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1965,1
    - Dst: compiler_visit_expr
      Src: /src/Python-3.8.3/Python/compile.c:1970,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:1976,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Python/compile.c:1977,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:1978,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:1979,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:1980,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:1981,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:1989,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - c
    - kwonlyargs
    - kw_defaults
    argTypes:
    - struct compiler*
    - asdl_seq*
    - asdl_seq*
    assertStmts:
    - condition: (default_count > 0)
      pos:
        line_end: 1980
        line_start: 1980
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 1991
      start: 1936
    functionDepth: 4
    functionLinenumber: 1936
    functionLinenumberEnd: 1991
    functionName: compiler_visit_kwonlydefaults
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - PyList_AsTuple
    - Py_DECREF
    - ADDOP_LOAD_CONST_NEW
    - asdl_seq_LEN
    - _Py_Mangle
    - compiler_visit_expr
    - PyList_SET_ITEM
    - PyList_Append
    - PyList_New
    - PyList_GET_SIZE
    - asdl_seq_GET
    - Py_XDECREF
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_visit_kwonlydefaults(struct compiler *c, asdl_seq *kwonlyargs,\n
      \                             asdl_seq *kw_defaults)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:1996,1
    - Dst: _PyAST_ExprAsUnicode
      Src: /src/Python-3.8.3/Python/compile.c:1996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - annotation
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1993
    functionDepth: 14
    functionLinenumber: 1993
    functionLinenumberEnd: 1998
    functionName: compiler_visit_annexpr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - _PyAST_ExprAsUnicode
    - ADDOP_LOAD_CONST_NEW
    linkageType: ''
    returnType: int
    signature: int compiler_visit_annexpr(struct compiler *c, expr_ty annotation)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2007,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2010,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:2012,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/compile.c:2015,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - c
    - id
    - annotation
    - names
    argTypes:
    - struct compiler*
    - identifier
    - expr_ty
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2000
    functionDepth: 4
    functionLinenumber: 2000
    functionLinenumberEnd: 2022
    functionName: compiler_visit_argannotation
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_Append
    - VISIT
    - Py_DECREF
    - _Py_Mangle
    linkageType: ''
    returnType: int
    signature: "int compiler_visit_argannotation(struct compiler *c, identifier id,\n
      \   expr_ty annotation, PyObject *names)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2029,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2030,1
    - Dst: compiler_visit_argannotation
      Src: /src/Python-3.8.3/Python/compile.c:2031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - c
    - args
    - names
    argTypes:
    - struct compiler*
    - asdl_seq*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2024
    functionDepth: 5
    functionLinenumber: 2024
    functionLinenumberEnd: 2039
    functionName: compiler_visit_argannotations
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - compiler_visit_argannotation
    linkageType: ''
    returnType: int
    signature: "int compiler_visit_argannotations(struct compiler *c, asdl_seq* args,\n
      \                             PyObject *names)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/compile.c:2053,1
    - Dst: compiler_visit_argannotations
      Src: /src/Python-3.8.3/Python/compile.c:2057,1
    - Dst: compiler_visit_argannotations
      Src: /src/Python-3.8.3/Python/compile.c:2059,1
    - Dst: compiler_visit_argannotation
      Src: /src/Python-3.8.3/Python/compile.c:2062,1
    - Dst: compiler_visit_argannotations
      Src: /src/Python-3.8.3/Python/compile.c:2065,1
    - Dst: compiler_visit_argannotation
      Src: /src/Python-3.8.3/Python/compile.c:2068,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2073,1
    - Dst: compiler_visit_argannotation
      Src: /src/Python-3.8.3/Python/compile.c:2077,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:2081,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Python/compile.c:2083,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2084,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:2085,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2086,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2090,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2095,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 3
    argNames:
    - c
    - args
    - returns
    argTypes:
    - struct compiler*
    - arguments_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2041
    functionDepth: 6
    functionLinenumber: 2041
    functionLinenumberEnd: 2097
    functionName: compiler_visit_annotations
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyList_AsTuple
    - Py_DECREF
    - compiler_visit_argannotation
    - compiler_visit_argannotations
    - ADDOP_LOAD_CONST_NEW
    - PyUnicode_InternFromString
    - PyList_New
    - PyList_GET_SIZE
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_visit_annotations(struct compiler *c, arguments_ty args,\n
      \                          expr_ty returns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2102,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2103,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - args
    argTypes:
    - struct compiler*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2105
    functionName: compiler_visit_defaults
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_LEN
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_visit_defaults(struct compiler *c, arguments_ty args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2111,1
    - Dst: compiler_visit_defaults
      Src: /src/Python-3.8.3/Python/compile.c:2112,1
    - Dst: compiler_visit_kwonlydefaults
      Src: /src/Python-3.8.3/Python/compile.c:2117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - c
    - args
    argTypes:
    - struct compiler*
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2107
    functionDepth: 5
    functionLinenumber: 2107
    functionLinenumberEnd: 2127
    functionName: compiler_default_arguments
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - compiler_visit_defaults
    - compiler_visit_kwonlydefaults
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t compiler_default_arguments(struct compiler *c, arguments_ty
      args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2145,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2155,1
    - Dst: compiler_decorators
      Src: /src/Python-3.8.3/Python/compile.c:2166,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2170,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2171,1
    - Dst: compiler_default_arguments
      Src: /src/Python-3.8.3/Python/compile.c:2174,1
    - Dst: compiler_visit_annotations
      Src: /src/Python-3.8.3/Python/compile.c:2179,1
    - Dst: compiler_enter_scope
      Src: /src/Python-3.8.3/Python/compile.c:2187,1
    - Dst: _PyAST_GetDocString
      Src: /src/Python-3.8.3/Python/compile.c:2193,1
    - Dst: compiler_add_const
      Src: /src/Python-3.8.3/Python/compile.c:2195,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2196,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2200,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2201,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2202,1
    - Dst: VISIT_SEQ_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:2203,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:2204,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:2206,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2207,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2209,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2210,1
    - Dst: compiler_make_closure
      Src: /src/Python-3.8.3/Python/compile.c:2214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2216,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2219,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2220,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2223,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 3
    argNames:
    - c
    - s
    - is_async
    argTypes:
    - struct compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == AsyncFunctionDef_kind)
      pos:
        line_end: 2144
        line_start: 2144
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (s->kind == FunctionDef_kind)
      pos:
        line_end: 2154
        line_start: 2154
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2224
      start: 2129
    functionDepth: 12
    functionLinenumber: 2129
    functionLinenumberEnd: 2224
    functionName: compiler_function
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_visit_annotations
    - compiler_add_const
    - compiler_exit_scope
    - Py_DECREF
    - Py_INCREF
    - asdl_seq_LEN
    - Py_XDECREF
    - compiler_default_arguments
    - VISIT_SEQ_IN_SCOPE
    - compiler_make_closure
    - compiler_enter_scope
    - assemble
    - compiler_decorators
    - assert
    - asdl_seq_GET
    - compiler_nameop
    - _PyAST_GetDocString
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_function(struct compiler *c, stmt_ty s, int is_async)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: compiler_decorators
      Src: /src/Python-3.8.3/Python/compile.c:2234,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2238,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2239,1
    - Dst: compiler_enter_scope
      Src: /src/Python-3.8.3/Python/compile.c:2255,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:2261,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/compile.c:2262,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2264,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2265,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2266,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2270,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2272,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2273,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2274,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2275,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2278,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2279,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2280,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2281,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2282,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2283,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2287,1
    - Dst: compiler_body
      Src: /src/Python-3.8.3/Python/compile.c:2289,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2290,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2296,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2298,1
    - Dst: compiler_lookup_arg
      Src: /src/Python-3.8.3/Python/compile.c:2301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2302,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2304,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2307,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2309,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2310,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2311,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2312,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:2313,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2314,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2317,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2321,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:2321,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2322,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:2324,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:2326,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2329,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2334,1
    - Dst: compiler_make_closure
      Src: /src/Python-3.8.3/Python/compile.c:2337,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2338,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2341,1
    - Dst: compiler_call_helper
      Src: /src/Python-3.8.3/Python/compile.c:2344,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2350,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2351,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:2355,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts:
    - condition: (c->u->u_qualname)
      pos:
        line_end: 2278
        line_start: 2278
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (PyDict_GET_SIZE(c->u->u_cellvars) == 0)
      pos:
        line_end: 2320
        line_start: 2320
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (i == 0)
      pos:
        line_end: 2306
        line_start: 2306
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2358
      start: 2226
    functionDepth: 9
    functionLinenumber: 2226
    functionLinenumberEnd: 2358
    functionName: compiler_class
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_call_helper
    - Py_XSETREF
    - compiler_lookup_arg
    - compiler_make_closure
    - ADDOP_LOAD_CONST
    - PyUnicode_InternFromString
    - assemble
    - ADDOP_I
    - compiler_exit_scope
    - Py_INCREF
    - PyDict_GET_SIZE
    - compiler_decorators
    - assert
    - Py_XDECREF
    - Py_DECREF
    - compiler_enter_scope
    - asdl_seq_GET
    - compiler_nameop
    - ADDOP
    - asdl_seq_LEN
    - ADDOP_IN_SCOPE
    - compiler_body
    linkageType: ''
    returnType: int
    signature: int compiler_class(struct compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2373
    functionName: check_is_arg
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int check_is_arg(expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_is_arg
      Src: /src/Python-3.8.3/Python/compile.c:2383,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2384,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2386,1
    - Dst: check_is_arg
      Src: /src/Python-3.8.3/Python/compile.c:2387,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2387,1
    - Dst: compiler_warn
      Src: /src/Python-3.8.3/Python/compile.c:2393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2379
    functionDepth: 1
    functionLinenumber: 2379
    functionLinenumberEnd: 2399
    functionName: check_compare
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - check_is_arg
    - compiler_warn
    linkageType: ''
    returnType: int
    signature: int check_compare(struct compiler *c, expr_ty e)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - op
    argTypes:
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2401
    functionDepth: 0
    functionLinenumber: 2401
    functionLinenumberEnd: 2428
    functionName: cmpop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmpop(cmpop_ty op)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2436,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2441,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2442,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2446,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2451,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2451,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2454,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2454,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2457,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2462,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2465,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2468,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2470,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2472,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2473,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2474,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2476,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2480,1
    - Dst: check_compare
      Src: /src/Python-3.8.3/Python/compile.c:2482,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2485,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2488,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2490,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2491,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2492,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2493,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2494,1
    - Dst: cmpop
      Src: /src/Python-3.8.3/Python/compile.c:2495,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2495,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2496,1
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:2497,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2499,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2499,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:2500,1
    - Dst: cmpop
      Src: /src/Python-3.8.3/Python/compile.c:2501,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:2501,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2502,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2503,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2506,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2507,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2508,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2510,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2512,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2524,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2525,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 4
    argNames:
    - c
    - e
    - next
    - cond
    argTypes:
    - struct compiler*
    - expr_ty
    - basicblock*
    - int
    assertStmts:
    - condition: (n >= 0)
      pos:
        line_end: 2441
        line_start: 2441
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2527
      start: 2430
    functionDepth: 2
    functionLinenumber: 2430
    functionLinenumberEnd: 2527
    functionName: compiler_jump_if
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - cmpop
    - ADDOP
    - asdl_seq_LEN
    - ADDOP_JREL
    - VISIT
    - NEXT_BLOCK
    - ADDOP_JABS
    - compiler_use_next_block
    - compiler_new_block
    - compiler_jump_if
    - assert
    - asdl_seq_GET
    - ADDOP_I
    - check_compare
    linkageType: ''
    returnType: int
    signature: int compiler_jump_if(struct compiler *c, expr_ty e, basicblock *next,
      int cond)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2534,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2535,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2538,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2541,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2543,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2544,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2545,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2546,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2547,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == IfExp_kind)
      pos:
        line_end: 2533
        line_start: 2533
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2549
      start: 2529
    functionDepth: 3
    functionLinenumber: 2529
    functionLinenumberEnd: 2549
    functionName: compiler_ifexp
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - ADDOP_JREL
    - VISIT
    - compiler_use_next_block
    - compiler_new_block
    - compiler_jump_if
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_ifexp(struct compiler *c, expr_ty e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2559,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:2562,1
    - Dst: compiler_default_arguments
      Src: /src/Python-3.8.3/Python/compile.c:2567,1
    - Dst: compiler_enter_scope
      Src: /src/Python-3.8.3/Python/compile.c:2572,1
    - Dst: compiler_add_const
      Src: /src/Python-3.8.3/Python/compile.c:2578,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2581,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2582,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2583,1
    - Dst: VISIT_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:2584,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:2586,1
    - Dst: ADDOP_IN_SCOPE
      Src: /src/Python-3.8.3/Python/compile.c:2589,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:2590,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:2593,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:2594,1
    - Dst: compiler_make_closure
      Src: /src/Python-3.8.3/Python/compile.c:2598,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2599,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:2600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == Lambda_kind)
      pos:
        line_end: 2558
        line_start: 2558
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2603
      start: 2551
    functionDepth: 12
    functionLinenumber: 2551
    functionLinenumberEnd: 2603
    functionName: compiler_lambda
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_add_const
    - compiler_exit_scope
    - Py_DECREF
    - VISIT_IN_SCOPE
    - Py_INCREF
    - asdl_seq_LEN
    - ADDOP_IN_SCOPE
    - assemble
    - compiler_default_arguments
    - compiler_make_closure
    - compiler_enter_scope
    - PyUnicode_InternFromString
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_lambda(struct compiler *c, expr_ty e)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:2610,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2611,1
    - Dst: expr_constant
      Src: /src/Python-3.8.3/Python/compile.c:2615,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2624,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2627,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2634,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2635,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2641,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2643,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2644,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2645,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2646,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2647,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2650,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == If_kind)
      pos:
        line_end: 2609
        line_start: 2609
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 2652
      start: 2605
    functionDepth: 3
    functionLinenumber: 2605
    functionLinenumberEnd: 2652
    functionName: compiler_if
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - ADDOP_JREL
    - compiler_jump_if
    - compiler_use_next_block
    - compiler_new_block
    - expr_constant
    - VISIT_SEQ
    - assert
    linkageType: ''
    returnType: int
    signature: int compiler_if(struct compiler *c, stmt_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2659,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2660,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2661,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2665,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2668,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2669,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2670,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2671,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2672,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2673,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2674,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2675,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2677,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2679,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2654
    functionDepth: 2
    functionLinenumber: 2654
    functionLinenumberEnd: 2682
    functionName: compiler_for
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_pop_fblock
    - ADDOP
    - ADDOP_JREL
    - compiler_push_fblock
    - VISIT
    - compiler_use_next_block
    - compiler_new_block
    - VISIT_SEQ
    - ADDOP_JABS
    linkageType: ''
    returnType: int
    signature: int compiler_for(struct compiler *c, stmt_ty s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_TOP_LEVEL_AWAIT
      Src: /src/Python-3.8.3/Python/compile.c:2689,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:2692,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2695,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2696,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2697,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2702,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2703,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2705,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2706,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2710,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2711,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2712,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2713,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2714,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2717,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2718,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2719,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2721,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2724,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2725,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2728,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2730,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2685
    functionDepth: 2
    functionLinenumber: 2685
    functionLinenumberEnd: 2733
    functionName: compiler_async_for
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_pop_fblock
    - compiler_error
    - ADDOP
    - ADDOP_JREL
    - compiler_push_fblock
    - VISIT
    - compiler_use_next_block
    - compiler_new_block
    - ADDOP_LOAD_CONST
    - VISIT_SEQ
    - IS_TOP_LEVEL_AWAIT
    - ADDOP_JABS
    linkageType: ''
    returnType: int
    signature: int compiler_async_for(struct compiler *c, stmt_ty s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: expr_constant
      Src: /src/Python-3.8.3/Python/compile.c:2739,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2746,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2749,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2751,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2754,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2758,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2759,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2761,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2768,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2775,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2776,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:2779,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2782,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2783,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2790,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2791,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2794,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2795,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2735
    functionDepth: 3
    functionLinenumber: 2735
    functionLinenumberEnd: 2798
    functionName: compiler_while
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_pop_fblock
    - compiler_push_fblock
    - compiler_use_next_block
    - expr_constant
    - compiler_new_block
    - VISIT_SEQ
    - compiler_jump_if
    - ADDOP_JABS
    linkageType: ''
    returnType: int
    signature: int compiler_while(struct compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:2806,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:2810,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2814,1
    - Dst: compiler_unwind_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2819,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2823,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:2826,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2828,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2800
    functionDepth: 2
    functionLinenumber: 2800
    functionLinenumberEnd: 2831
    functionName: compiler_return
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_error
    - ADDOP
    - VISIT
    - ADDOP_LOAD_CONST
    - compiler_unwind_fblock
    linkageType: ''
    returnType: int
    signature: int compiler_return(struct compiler *c, stmt_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_unwind_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2839,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2842,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:2846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2833
    functionDepth: 2
    functionLinenumber: 2833
    functionLinenumberEnd: 2847
    functionName: compiler_break
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_error
    - ADDOP_JABS
    - compiler_unwind_fblock
    linkageType: ''
    returnType: int
    signature: int compiler_break(struct compiler *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:2856,1
    - Dst: compiler_unwind_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2859,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:2862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2849
    functionDepth: 2
    functionLinenumber: 2849
    functionLinenumberEnd: 2863
    functionName: compiler_continue
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_unwind_fblock
    - compiler_error
    - ADDOP_JABS
    linkageType: ''
    returnType: int
    signature: int compiler_continue(struct compiler *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2905,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2906,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2914,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2915,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2917,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2918,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2922,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2924,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:2938,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:2940,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:2941,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2942,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:2944,1
    - Dst: compiler_try_except
      Src: /src/Python-3.8.3/Python/compile.c:2945,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:2949,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2951,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:2952,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:2953,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2899
    functionDepth: 2
    functionLinenumber: 2899
    functionLinenumberEnd: 2959
    functionName: compiler_try_finally
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_pop_fblock
    - ADDOP
    - ADDOP_JREL
    - compiler_push_fblock
    - asdl_seq_LEN
    - compiler_use_next_block
    - compiler_new_block
    - ADDOP_LOAD_CONST
    - compiler_try_except
    - VISIT_SEQ
    linkageType: ''
    returnType: int
    signature: int compiler_try_finally(struct compiler *c, stmt_ty s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2998,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:2999,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3000,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3001,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:3004,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3005,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3006,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3008,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3009,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3010,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:3011,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3012,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3013,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3015,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:3018,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3022,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3026,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3027,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3028,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:3029,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3031,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3035,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3036,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3041,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3042,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:3056,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3057,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3058,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3062,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3063,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3064,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3065,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3068,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3069,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:3073,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3074,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3075,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3077,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3078,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3079,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3084,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3088,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3089,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3090,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3091,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3093,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3094,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:3095,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:3097,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3098,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3100,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3101,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3102,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3103,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 2992
    functionDepth: 2
    functionLinenumber: 2992
    functionLinenumberEnd: 3105
    functionName: compiler_try_except
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - compiler_pop_fblock
    - ADDOP
    - compiler_error
    - ADDOP_JREL
    - compiler_push_fblock
    - asdl_seq_LEN
    - VISIT
    - ADDOP_JABS
    - compiler_use_next_block
    - compiler_new_block
    - compiler_nameop
    - ADDOP_LOAD_CONST
    - VISIT_SEQ
    - asdl_seq_GET
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_try_except(struct compiler *c, stmt_ty s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3109,1
    - Dst: compiler_try_finally
      Src: /src/Python-3.8.3/Python/compile.c:3110,1
    - Dst: compiler_try_except
      Src: /src/Python-3.8.3/Python/compile.c:3112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3107
    functionDepth: 3
    functionLinenumber: 3107
    functionLinenumberEnd: 3113
    functionName: compiler_try
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - compiler_try_finally
    - compiler_try_except
    linkageType: ''
    returnType: int
    signature: int compiler_try(struct compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/compile.c:3125,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/compile.c:3126,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/compile.c:3134,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/compile.c:3137,1
    - Dst: ADDOP_N
      Src: /src/Python-3.8.3/Python/compile.c:3140,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3144,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3145,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3147,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3150,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - c
    - name
    - asname
    argTypes:
    - struct compiler*
    - identifier
    - identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3116
    functionDepth: 8
    functionLinenumber: 3116
    functionLinenumberEnd: 3154
    functionName: compiler_import_as
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - PyUnicode_FindChar
    - PyUnicode_Substring
    - ADDOP_N
    - PyUnicode_GET_LENGTH
    - compiler_nameop
    linkageType: ''
    returnType: int
    signature: int compiler_import_as(struct compiler *c, identifier name, identifier
      asname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3166,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3169,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:3172,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:3173,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:3174,1
    - Dst: compiler_import_as
      Src: /src/Python-3.8.3/Python/compile.c:3177,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/compile.c:3183,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/compile.c:3184,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/compile.c:3186,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3190,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:3192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3156
    functionDepth: 9
    functionLinenumber: 3156
    functionLinenumberEnd: 3199
    functionName: compiler_import
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_FindChar
    - asdl_seq_LEN
    - PyUnicode_Substring
    - ADDOP_NAME
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - PyUnicode_GET_LENGTH
    - compiler_import_as
    - compiler_nameop
    linkageType: ''
    returnType: int
    signature: int compiler_import(struct compiler *c, stmt_ty s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3204,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/compile.c:3209,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:3214,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/compile.c:3214,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:3216,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3222,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:3223,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:3224,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/compile.c:3228,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:3229,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:3230,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:3233,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:3236,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:3239,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3242,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:3245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3246,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3247,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:3251,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:3256,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3261,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts:
    - condition: (n == 1)
      pos:
        line_end: 3245
        line_start: 3245
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 3263
      start: 3201
    functionDepth: 3
    functionLinenumber: 3201
    functionLinenumberEnd: 3263
    functionName: compiler_from_import
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - _PyUnicode_EqualToASCIIString
    - compiler_error
    - Py_DECREF
    - assert
    - ADDOP_LOAD_CONST_NEW
    - Py_INCREF
    - asdl_seq_LEN
    - ADDOP
    - ADDOP_NAME
    - PyUnicode_READ_CHAR
    - asdl_seq_GET
    - PyTuple_New
    - PyTuple_SET_ITEM
    - compiler_nameop
    linkageType: ''
    returnType: int
    signature: int compiler_from_import(struct compiler *c, stmt_ty s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:3274,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3279,1
    - Dst: compiler_warn
      Src: /src/Python-3.8.3/Python/compile.c:3281,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3287,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:3290,1
    - Dst: ADDOP_O
      Src: /src/Python-3.8.3/Python/compile.c:3292,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3294,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3295,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3297,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3300
      start: 3265
    functionDepth: 6
    functionLinenumber: 3265
    functionLinenumberEnd: 3300
    functionName: compiler_assert
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_warn
    - asdl_seq_LEN
    - VISIT
    - compiler_use_next_block
    - compiler_new_block
    - PyUnicode_InternFromString
    - compiler_jump_if
    - ADDOP_O
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_assert(struct compiler *c, stmt_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3306,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3307,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3316,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - value
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3302
    functionDepth: 1
    functionLinenumber: 3302
    functionLinenumberEnd: 3319
    functionName: compiler_visit_stmt_expr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int compiler_visit_stmt_expr(struct compiler *c, expr_ty value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: compiler_function
      Src: /src/Python-3.8.3/Python/compile.c:3333,1
    - Dst: compiler_class
      Src: /src/Python-3.8.3/Python/compile.c:3335,1
    - Dst: compiler_return
      Src: /src/Python-3.8.3/Python/compile.c:3337,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3339,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3342,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3343,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3346,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3347,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3348,1
    - Dst: compiler_augassign
      Src: /src/Python-3.8.3/Python/compile.c:3352,1
    - Dst: compiler_annassign
      Src: /src/Python-3.8.3/Python/compile.c:3354,1
    - Dst: compiler_for
      Src: /src/Python-3.8.3/Python/compile.c:3356,1
    - Dst: compiler_while
      Src: /src/Python-3.8.3/Python/compile.c:3358,1
    - Dst: compiler_if
      Src: /src/Python-3.8.3/Python/compile.c:3360,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3364,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3367,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3371,1
    - Dst: compiler_try
      Src: /src/Python-3.8.3/Python/compile.c:3374,1
    - Dst: compiler_assert
      Src: /src/Python-3.8.3/Python/compile.c:3376,1
    - Dst: compiler_import
      Src: /src/Python-3.8.3/Python/compile.c:3378,1
    - Dst: compiler_from_import
      Src: /src/Python-3.8.3/Python/compile.c:3380,1
    - Dst: compiler_visit_stmt_expr
      Src: /src/Python-3.8.3/Python/compile.c:3385,1
    - Dst: compiler_break
      Src: /src/Python-3.8.3/Python/compile.c:3389,1
    - Dst: compiler_continue
      Src: /src/Python-3.8.3/Python/compile.c:3391,1
    - Dst: compiler_with
      Src: /src/Python-3.8.3/Python/compile.c:3393,1
    - Dst: compiler_function
      Src: /src/Python-3.8.3/Python/compile.c:3395,1
    - Dst: compiler_async_with
      Src: /src/Python-3.8.3/Python/compile.c:3397,1
    - Dst: compiler_async_for
      Src: /src/Python-3.8.3/Python/compile.c:3399,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 73
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3321
    functionDepth: 13
    functionLinenumber: 3321
    functionLinenumberEnd: 3403
    functionName: compiler_visit_stmt
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_async_with
    - compiler_class
    - compiler_while
    - compiler_break
    - compiler_augassign
    - compiler_try
    - compiler_from_import
    - ADDOP_I
    - compiler_continue
    - compiler_import
    - VISIT
    - compiler_annassign
    - VISIT_SEQ
    - compiler_visit_stmt_expr
    - compiler_if
    - compiler_with
    - compiler_assert
    - asdl_seq_GET
    - compiler_function
    - ADDOP
    - asdl_seq_LEN
    - compiler_for
    - compiler_async_for
    - compiler_return
    linkageType: ''
    returnType: int
    signature: int compiler_visit_stmt(struct compiler *c, stmt_ty s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:3418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3405
    functionDepth: 1
    functionLinenumber: 3405
    functionLinenumberEnd: 3422
    functionName: unaryop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int unaryop(unaryop_ty op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:3455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - struct compiler*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3459
      start: 3424
    functionDepth: 1
    functionLinenumber: 3424
    functionLinenumberEnd: 3459
    functionName: binop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int binop(struct compiler *c, operator_ty op)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:3492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - c
    - op
    argTypes:
    - struct compiler*
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3496
      start: 3461
    functionDepth: 1
    functionLinenumber: 3461
    functionLinenumberEnd: 3496
    functionName: inplace_binop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int inplace_binop(struct compiler *c, operator_ty op)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3509,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/compile.c:3509,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/compile.c:3510,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/compile.c:3511,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:3513,1
    - Dst: PyST_GetScope
      Src: /src/Python-3.8.3/Python/compile.c:3519,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3546,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/compile.c:3546,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:3563,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:3580,1
    - Dst: ADDOP_N
      Src: /src/Python-3.8.3/Python/compile.c:3584,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:3598,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:3615,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3622,1
    - Dst: compiler_add_o
      Src: /src/Python-3.8.3/Python/compile.c:3623,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:3624,1
    - Dst: compiler_addop_i
      Src: /src/Python-3.8.3/Python/compile.c:3627,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 121
    argCount: 3
    argNames:
    - c
    - name
    - ctx
    argTypes:
    - struct compiler*
    - identifier
    - expr_context_ty
    assertStmts:
    - condition: "(!_PyUnicode_EqualToASCIIString(name, \"None\") &&\n           !_PyUnicode_EqualToASCIIString(name,
        \"True\") &&\n           !_PyUnicode_EqualToASCIIString(name, \"False\"))"
      pos:
        line_end: 3510
        line_start: 3508
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (scope || PyUnicode_READ_CHAR(name, 0) == '_')
      pos:
        line_end: 3545
        line_start: 3545
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (op)
      pos:
        line_end: 3621
        line_start: 3621
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 3628
      start: 3498
    functionDepth: 6
    functionLinenumber: 3498
    functionLinenumberEnd: 3628
    functionName: compiler_nameop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 7
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - assert
    - Py_DECREF
    - _Py_Mangle
    - compiler_addop_i
    - PyST_GetScope
    - ADDOP_N
    - PyErr_SetString
    - PyUnicode_READ_CHAR
    - compiler_add_o
    linkageType: ''
    returnType: int
    signature: int compiler_nameop(struct compiler *c, identifier name, expr_context_ty
      ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3638,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3643,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3647,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3648,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3650,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3650,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:3651,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3653,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3653,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == BoolOp_kind)
      pos:
        line_end: 3637
        line_start: 3637
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (n >= 0)
      pos:
        line_end: 3647
        line_start: 3647
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 3656
      start: 3630
    functionDepth: 2
    functionLinenumber: 3630
    functionLinenumberEnd: 3656
    functionName: compiler_boolop
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - VISIT
    - compiler_use_next_block
    - compiler_new_block
    - assert
    - asdl_seq_GET
    - ADDOP_JABS
    linkageType: ''
    returnType: int
    signature: int compiler_boolop(struct compiler *c, expr_ty e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3662,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3665,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3668,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3672,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3676,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3682,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3685,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3688,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - c
    - elts
    - single_op
    - inner_op
    - outer_op
    argTypes:
    - struct compiler*
    - asdl_seq*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3690
      start: 3658
    functionDepth: 1
    functionLinenumber: 3658
    functionLinenumberEnd: 3690
    functionName: starunpack_helper
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - VISIT
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int starunpack_helper(struct compiler *c, asdl_seq *elts,\n                  int
      single_op, int inner_op, int outer_op)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3695,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3699,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:3703,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3706,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/compile.c:3708,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:3711,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3716,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - c
    - elts
    argTypes:
    - struct compiler*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3720
      start: 3692
    functionDepth: 1
    functionLinenumber: 3692
    functionLinenumberEnd: 3720
    functionName: assignment_helper
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_error
    - asdl_seq_LEN
    - asdl_seq_SET
    - VISIT_SEQ
    - asdl_seq_GET
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int assignment_helper(struct compiler *c, asdl_seq *elts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assignment_helper
      Src: /src/Python-3.8.3/Python/compile.c:3727,1
    - Dst: starunpack_helper
      Src: /src/Python-3.8.3/Python/compile.c:3730,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3736
      start: 3722
    functionDepth: 2
    functionLinenumber: 3722
    functionLinenumberEnd: 3736
    functionName: compiler_list
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assignment_helper
    - VISIT_SEQ
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int compiler_list(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assignment_helper
      Src: /src/Python-3.8.3/Python/compile.c:3743,1
    - Dst: starunpack_helper
      Src: /src/Python-3.8.3/Python/compile.c:3746,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:3750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3738
    functionDepth: 2
    functionLinenumber: 3738
    functionLinenumberEnd: 3752
    functionName: compiler_tuple
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assignment_helper
    - VISIT_SEQ
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int compiler_tuple(struct compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: starunpack_helper
      Src: /src/Python-3.8.3/Python/compile.c:3757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3754
    functionDepth: 2
    functionLinenumber: 3754
    functionLinenumberEnd: 3759
    functionName: compiler_set
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - starunpack_helper
    linkageType: ''
    returnType: int
    signature: int compiler_set(struct compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - seq
    - begin
    - end
    argTypes:
    - asdl_seq*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3771
    functionName: are_all_items_const
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int are_all_items_const(asdl_seq *seq, Py_ssize_t begin, Py_ssize_t
      end)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: are_all_items_const
      Src: /src/Python-3.8.3/Python/compile.c:3778,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3780,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3780,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:3782,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3787,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:3788,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:3789,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:3791,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3792,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3796,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3796,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3797,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3797,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - c
    - e
    - begin
    - end
    argTypes:
    - struct compiler*
    - expr_ty
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3773
    functionDepth: 2
    functionLinenumber: 3773
    functionLinenumberEnd: 3802
    functionName: compiler_subdict
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - ADDOP_LOAD_CONST_NEW
    - VISIT
    - are_all_items_const
    - asdl_seq_GET
    - PyTuple_New
    - PyTuple_SET_ITEM
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_subdict(struct compiler *c, expr_ty e, Py_ssize_t begin,
      Py_ssize_t end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3810,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3814,1
    - Dst: compiler_subdict
      Src: /src/Python-3.8.3/Python/compile.c:3816,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3822,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3822,1
    - Dst: compiler_subdict
      Src: /src/Python-3.8.3/Python/compile.c:3830,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3838,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3841
      start: 3804
    functionDepth: 3
    functionLinenumber: 3804
    functionLinenumberEnd: 3841
    functionName: compiler_dict
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_subdict
    - asdl_seq_LEN
    - VISIT
    - asdl_seq_GET
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_dict(struct compiler *c, expr_ty e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: check_compare
      Src: /src/Python-3.8.3/Python/compile.c:3848,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3851,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:3852,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3852,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:3853,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3855,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3855,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3856,1
    - Dst: cmpop
      Src: /src/Python-3.8.3/Python/compile.c:3857,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3857,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3860,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3864,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3865,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3866,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3867,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3868,1
    - Dst: cmpop
      Src: /src/Python-3.8.3/Python/compile.c:3869,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3869,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:3870,1
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:3871,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:3873,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3873,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:3874,1
    - Dst: cmpop
      Src: /src/Python-3.8.3/Python/compile.c:3875,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:3875,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:3876,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:3879,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3880,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3881,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:3882,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:3883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (asdl_seq_LEN(e->v.Compare.ops) > 0)
      pos:
        line_end: 3851
        line_start: 3851
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 3886
      start: 3843
    functionDepth: 2
    functionLinenumber: 3843
    functionLinenumberEnd: 3886
    functionName: compiler_compare
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - cmpop
    - ADDOP
    - asdl_seq_LEN
    - ADDOP_JREL
    - VISIT
    - NEXT_BLOCK
    - ADDOP_JABS
    - compiler_use_next_block
    - compiler_new_block
    - assert
    - asdl_seq_GET
    - ADDOP_I
    - check_compare
    linkageType: ''
    returnType: int
    signature: int compiler_compare(struct compiler *c, expr_ty e)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3888
    functionDepth: 0
    functionLinenumber: 3888
    functionLinenumberEnd: 3915
    functionName: infer_type
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyTypeObject
    signature: 'PyTypeObject *

      infer_type(expr_ty e)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: compiler_warn
      Src: /src/Python-3.8.3/Python/compile.c:3932,1
    - Dst: infer_type
      Src: /src/Python-3.8.3/Python/compile.c:3934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3938
      start: 3917
    functionDepth: 1
    functionLinenumber: 3917
    functionLinenumberEnd: 3938
    functionName: check_caller
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - infer_type
    - compiler_warn
    linkageType: ''
    returnType: int
    signature: int check_caller(struct compiler *c, expr_ty e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/compile.c:3949,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/compile.c:3949,1
    - Dst: PyComplex_Check
      Src: /src/Python-3.8.3/Python/compile.c:3949,1
    - Dst: PyAnySet_Check
      Src: /src/Python-3.8.3/Python/compile.c:3950,1
    - Dst: compiler_warn
      Src: /src/Python-3.8.3/Python/compile.c:3959,1
    - Dst: infer_type
      Src: /src/Python-3.8.3/Python/compile.c:3961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3940
    functionDepth: 1
    functionLinenumber: 3940
    functionLinenumberEnd: 3965
    functionName: check_subscripter
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - infer_type
    - compiler_warn
    - PyFloat_Check
    - PyComplex_Check
    - PyAnySet_Check
    linkageType: ''
    returnType: int
    signature: int check_subscripter(struct compiler *c, expr_ty e)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: infer_type
      Src: /src/Python-3.8.3/Python/compile.c:3975,1
    - Dst: PyType_FastSubclass
      Src: /src/Python-3.8.3/Python/compile.c:3977,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/compile.c:3985,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/compile.c:3985,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/compile.c:3985,1
    - Dst: compiler_warn
      Src: /src/Python-3.8.3/Python/compile.c:3994,1
    - Dst: infer_type
      Src: /src/Python-3.8.3/Python/compile.c:3997,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - c
    - e
    - s
    argTypes:
    - struct compiler*
    - expr_ty
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3967
    functionDepth: 1
    functionLinenumber: 3967
    functionLinenumberEnd: 4002
    functionName: check_index
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - infer_type
    - PyType_FastSubclass
    - compiler_warn
    - PyBytes_Check
    - PyTuple_Check
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int check_index(struct compiler *c, expr_ty e, slice_ty s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4015,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4019,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4021,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4028,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:4029,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:4030,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4031,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4033
      start: 4005
    functionDepth: 1
    functionLinenumber: 4005
    functionLinenumberEnd: 4033
    functionName: maybe_optimize_method_call
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - VISIT
    - ADDOP_NAME
    - VISIT_SEQ
    - asdl_seq_GET
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int maybe_optimize_method_call(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: maybe_optimize_method_call
      Src: /src/Python-3.8.3/Python/compile.c:4038,1
    - Dst: check_caller
      Src: /src/Python-3.8.3/Python/compile.c:4042,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4045,1
    - Dst: compiler_call_helper
      Src: /src/Python-3.8.3/Python/compile.c:4046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4035
    functionDepth: 2
    functionLinenumber: 4035
    functionLinenumberEnd: 4049
    functionName: compiler_call
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - maybe_optimize_method_call
    - compiler_call_helper
    - VISIT
    - check_caller
    linkageType: ''
    returnType: int
    signature: int compiler_call(struct compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:4054,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4055,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4056,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4058
      start: 4051
    functionDepth: 1
    functionLinenumber: 4051
    functionLinenumberEnd: 4058
    functionName: compiler_joined_str
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT_SEQ
    - asdl_seq_LEN
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_joined_str(struct compiler *c, expr_ty e)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4082,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:4090,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4096,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4104
      start: 4061
    functionDepth: 1
    functionLinenumber: 4061
    functionLinenumberEnd: 4104
    functionName: compiler_formatted_value
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT
    - PyErr_Format
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_formatted_value(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4112,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4115,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4116,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:4118,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4123,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:4124,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:4125,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:4127,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4128,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4133,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4134,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4135,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - c
    - keywords
    - begin
    - end
    argTypes:
    - struct compiler*
    - asdl_seq*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (n > 0)
      pos:
        line_end: 4111
        line_start: 4111
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4140
      start: 4106
    functionDepth: 2
    functionLinenumber: 4106
    functionLinenumberEnd: 4140
    functionName: compiler_subkwargs
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - ADDOP_LOAD_CONST_NEW
    - VISIT
    - ADDOP_LOAD_CONST
    - assert
    - asdl_seq_GET
    - PyTuple_New
    - PyTuple_SET_ITEM
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_subkwargs(struct compiler *c, asdl_seq *keywords, Py_ssize_t
      begin, Py_ssize_t end)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4155,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4156,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4159,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4168,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4173,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4177,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4181,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4190,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4196,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4199,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4203,1
    - Dst: compiler_subkwargs
      Src: /src/Python-3.8.3/Python/compile.c:4207,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4212,1
    - Dst: compiler_subkwargs
      Src: /src/Python-3.8.3/Python/compile.c:4221,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4227,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4229,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:4234,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:4235,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4240,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:4241,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:4242,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:4244,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4245,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4249,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 4
    argNames:
    - c
    - n
    - args
    - keywords
    argTypes:
    - struct compiler*
    - int
    - asdl_seq*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4143
    functionDepth: 3
    functionLinenumber: 4143
    functionLinenumberEnd: 4252
    functionName: compiler_call_helper
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 2
    functionsReached:
    - PyTuple_New
    - Py_INCREF
    - asdl_seq_LEN
    - ADDOP_LOAD_CONST_NEW
    - VISIT
    - VISIT_SEQ
    - asdl_seq_GET
    - compiler_subkwargs
    - PyTuple_SET_ITEM
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_call_helper(struct compiler *c,\n                     int
      n, /* Args already pushed */\n                     asdl_seq *args,\n                     asdl_seq
      *keywords)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4275,1
    - Dst: compiler_async_comprehension_generator
      Src: /src/Python-3.8.3/Python/compile.c:4277,1
    - Dst: compiler_sync_comprehension_generator
      Src: /src/Python-3.8.3/Python/compile.c:4280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - c
    - generators
    - gen_index
    - elt
    - val
    - type
    argTypes:
    - struct compiler*
    - asdl_seq*
    - int
    - expr_ty
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4283
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4283
    functionName: compiler_comprehension_generator
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_GET
    - compiler_sync_comprehension_generator
    - compiler_async_comprehension_generator
    linkageType: ''
    returnType: int
    signature: "int compiler_comprehension_generator(struct compiler *c,\n                                 asdl_seq
      *generators, int gen_index,\n                                 expr_ty elt, expr_ty
      val, int type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4297,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4298,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4299,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4300,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4306,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4311,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4315,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4316,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4318,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:4319,1
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:4320,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4321,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4324,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4326,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:4327,1
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:4329,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4332,1
    - Dst: compiler_comprehension_generator
      Src: /src/Python-3.8.3/Python/compile.c:4333,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4339,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4343,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4344,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4345,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4348,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4349,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4352,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4353,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4358,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4359,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4360,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4366,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4368,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:4369,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4370,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 6
    argNames:
    - c
    - generators
    - gen_index
    - elt
    - val
    - type
    argTypes:
    - struct compiler*
    - asdl_seq*
    - int
    - expr_ty
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4373
      start: 4285
    functionDepth: 3
    functionLinenumber: 4285
    functionLinenumberEnd: 4373
    functionName: compiler_sync_comprehension_generator
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - ADDOP
    - ADDOP_JREL
    - asdl_seq_LEN
    - VISIT
    - NEXT_BLOCK
    - ADDOP_JABS
    - compiler_use_next_block
    - compiler_new_block
    - compiler_jump_if
    - asdl_seq_GET
    - compiler_comprehension_generator
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_sync_comprehension_generator(struct compiler *c,\n                                      asdl_seq
      *generators, int gen_index,\n                                      expr_ty elt,
      expr_ty val, int type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4383,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4384,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4385,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4391,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4396,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4400,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4401,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4404,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:4406,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4407,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4408,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4409,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4410,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4411,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4413,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4415,1
    - Dst: compiler_jump_if
      Src: /src/Python-3.8.3/Python/compile.c:4416,1
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:4418,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4421,1
    - Dst: compiler_comprehension_generator
      Src: /src/Python-3.8.3/Python/compile.c:4422,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4428,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4432,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4433,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4434,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4437,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4438,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4441,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4442,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4447,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4448,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4449,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4455,1
    - Dst: ADDOP_JABS
      Src: /src/Python-3.8.3/Python/compile.c:4456,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4458,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4459,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 6
    argNames:
    - c
    - generators
    - gen_index
    - elt
    - val
    - type
    argTypes:
    - struct compiler*
    - asdl_seq*
    - int
    - expr_ty
    - expr_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4375
    functionDepth: 3
    functionLinenumber: 4375
    functionLinenumberEnd: 4462
    functionName: compiler_async_comprehension_generator
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - ADDOP
    - ADDOP_JREL
    - asdl_seq_LEN
    - VISIT
    - NEXT_BLOCK
    - ADDOP_JABS
    - compiler_use_next_block
    - compiler_new_block
    - ADDOP_LOAD_CONST
    - compiler_jump_if
    - asdl_seq_GET
    - compiler_comprehension_generator
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_async_comprehension_generator(struct compiler *c,\n                                      asdl_seq
      *generators, int gen_index,\n                                      expr_ty elt,
      expr_ty val, int type)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IS_TOP_LEVEL_AWAIT
      Src: /src/Python-3.8.3/Python/compile.c:4474,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4479,1
    - Dst: compiler_enter_scope
      Src: /src/Python-3.8.3/Python/compile.c:4480,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4489,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:4507,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4512,1
    - Dst: compiler_comprehension_generator
      Src: /src/Python-3.8.3/Python/compile.c:4515,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4520,1
    - Dst: assemble
      Src: /src/Python-3.8.3/Python/compile.c:4523,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:4525,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:4526,1
    - Dst: compiler_make_closure
      Src: /src/Python-3.8.3/Python/compile.c:4530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:4532,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:4533,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4535,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4538,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4540,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:4543,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4546,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4547,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4548,1
    - Dst: compiler_exit_scope
      Src: /src/Python-3.8.3/Python/compile.c:4553,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:4555,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:4556,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 7
    argNames:
    - c
    - e
    - type
    - name
    - generators
    - elt
    - val
    argTypes:
    - struct compiler*
    - expr_ty
    - int
    - identifier
    - asdl_seq*
    - expr_ty
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4464
    functionDepth: 9
    functionLinenumber: 4464
    functionLinenumberEnd: 4558
    functionName: compiler_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_error
    - ADDOP
    - compiler_exit_scope
    - Py_DECREF
    - compiler_comprehension_generator
    - Py_INCREF
    - VISIT
    - PyErr_Format
    - compiler_make_closure
    - compiler_enter_scope
    - assemble
    - ADDOP_LOAD_CONST
    - asdl_seq_GET
    - Py_XDECREF
    - IS_TOP_LEVEL_AWAIT
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: "int compiler_comprehension(struct compiler *c, expr_ty e, int type,\n
      \                      identifier name, asdl_seq *generators, expr_ty elt,\n
      \                      expr_ty val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:4565,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4569,1
    - Dst: compiler_comprehension
      Src: /src/Python-3.8.3/Python/compile.c:4570,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == GeneratorExp_kind)
      pos:
        line_end: 4568
        line_start: 4568
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4573
      start: 4560
    functionDepth: 10
    functionLinenumber: 4560
    functionLinenumberEnd: 4573
    functionName: compiler_genexp
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - compiler_comprehension
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int compiler_genexp(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:4580,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4584,1
    - Dst: compiler_comprehension
      Src: /src/Python-3.8.3/Python/compile.c:4585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == ListComp_kind)
      pos:
        line_end: 4583
        line_start: 4583
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4588
      start: 4575
    functionDepth: 10
    functionLinenumber: 4575
    functionLinenumberEnd: 4588
    functionName: compiler_listcomp
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - compiler_comprehension
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int compiler_listcomp(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:4595,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4599,1
    - Dst: compiler_comprehension
      Src: /src/Python-3.8.3/Python/compile.c:4600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == SetComp_kind)
      pos:
        line_end: 4598
        line_start: 4598
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4603
      start: 4590
    functionDepth: 10
    functionLinenumber: 4590
    functionLinenumberEnd: 4603
    functionName: compiler_setcomp
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - compiler_comprehension
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int compiler_setcomp(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/compile.c:4611,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4615,1
    - Dst: compiler_comprehension
      Src: /src/Python-3.8.3/Python/compile.c:4616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts:
    - condition: (e->kind == DictComp_kind)
      pos:
        line_end: 4614
        line_start: 4614
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4619
      start: 4606
    functionDepth: 10
    functionLinenumber: 4606
    functionLinenumberEnd: 4619
    functionName: compiler_dictcomp
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - compiler_comprehension
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int compiler_dictcomp(struct compiler *c, expr_ty e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - k
    argTypes:
    - struct compiler*
    - keyword_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4627
      start: 4622
    functionDepth: 0
    functionLinenumber: 4622
    functionLinenumberEnd: 4627
    functionName: compiler_visit_keyword
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT
    linkageType: ''
    returnType: int
    signature: int compiler_visit_keyword(struct compiler *c, keyword_ty k)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/compile.c:4639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4635
    functionDepth: 2
    functionLinenumber: 4635
    functionLinenumberEnd: 4642
    functionName: expr_constant
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 2
    functionsReached:
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int expr_constant(expr_ty e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4673,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4675,1
    - Dst: IS_TOP_LEVEL_AWAIT
      Src: /src/Python-3.8.3/Python/compile.c:4676,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4679,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4682,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4683,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4688,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4690,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4691,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4692,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4693,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:4695,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4698,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4699,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4704,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4708,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4712,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:4714,1
    - Dst: compiler_async_with
      Src: /src/Python-3.8.3/Python/compile.c:4715,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4719,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4720,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4721,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4723,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4724,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4730,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4732,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4733,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4734,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4736,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4739,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4740,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 3
    argNames:
    - c
    - s
    - pos
    argTypes:
    - struct compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == AsyncWith_kind)
      pos:
        line_end: 4674
        line_start: 4674
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4742
      start: 4669
    functionDepth: 2
    functionLinenumber: 4669
    functionLinenumberEnd: 4742
    functionName: compiler_async_with
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 2
    functionsReached:
    - compiler_pop_fblock
    - compiler_error
    - ADDOP
    - ADDOP_JREL
    - compiler_push_fblock
    - VISIT
    - asdl_seq_LEN
    - compiler_async_with
    - compiler_use_next_block
    - compiler_new_block
    - ADDOP_LOAD_CONST
    - VISIT_SEQ
    - assert
    - asdl_seq_GET
    - IS_TOP_LEVEL_AWAIT
    linkageType: ''
    returnType: int
    signature: int compiler_async_with(struct compiler *c, stmt_ty s, int pos)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:4772,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:4774,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4776,1
    - Dst: compiler_new_block
      Src: /src/Python-3.8.3/Python/compile.c:4777,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4782,1
    - Dst: ADDOP_JREL
      Src: /src/Python-3.8.3/Python/compile.c:4783,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4786,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4787,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4792,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4796,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:4800,1
    - Dst: VISIT_SEQ
      Src: /src/Python-3.8.3/Python/compile.c:4802,1
    - Dst: compiler_with
      Src: /src/Python-3.8.3/Python/compile.c:4803,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4807,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4808,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4809,1
    - Dst: compiler_use_next_block
      Src: /src/Python-3.8.3/Python/compile.c:4811,1
    - Dst: compiler_push_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4812,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4818,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4819,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4822,1
    - Dst: compiler_pop_fblock
      Src: /src/Python-3.8.3/Python/compile.c:4823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - c
    - s
    - pos
    argTypes:
    - struct compiler*
    - stmt_ty
    - int
    assertStmts:
    - condition: (s->kind == With_kind)
      pos:
        line_end: 4773
        line_start: 4773
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 4825
      start: 4768
    functionDepth: 2
    functionLinenumber: 4768
    functionLinenumberEnd: 4825
    functionName: compiler_with
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 2
    functionsReached:
    - compiler_pop_fblock
    - ADDOP
    - compiler_with
    - ADDOP_JREL
    - compiler_push_fblock
    - VISIT
    - asdl_seq_LEN
    - compiler_use_next_block
    - compiler_new_block
    - VISIT_SEQ
    - assert
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int compiler_with(struct compiler *c, stmt_ty s, int pos)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4832,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4833,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4834,1
    - Dst: compiler_boolop
      Src: /src/Python-3.8.3/Python/compile.c:4837,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4839,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4840,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4841,1
    - Dst: binop
      Src: /src/Python-3.8.3/Python/compile.c:4841,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4844,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4845,1
    - Dst: unaryop
      Src: /src/Python-3.8.3/Python/compile.c:4845,1
    - Dst: compiler_lambda
      Src: /src/Python-3.8.3/Python/compile.c:4848,1
    - Dst: compiler_ifexp
      Src: /src/Python-3.8.3/Python/compile.c:4850,1
    - Dst: compiler_dict
      Src: /src/Python-3.8.3/Python/compile.c:4852,1
    - Dst: compiler_set
      Src: /src/Python-3.8.3/Python/compile.c:4854,1
    - Dst: compiler_genexp
      Src: /src/Python-3.8.3/Python/compile.c:4856,1
    - Dst: compiler_listcomp
      Src: /src/Python-3.8.3/Python/compile.c:4858,1
    - Dst: compiler_setcomp
      Src: /src/Python-3.8.3/Python/compile.c:4860,1
    - Dst: compiler_dictcomp
      Src: /src/Python-3.8.3/Python/compile.c:4862,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4865,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4867,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4870,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4872,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4876,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4879,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4881,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4882,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4883,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4884,1
    - Dst: IS_TOP_LEVEL_AWAIT
      Src: /src/Python-3.8.3/Python/compile.c:4887,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4889,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4894,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4898,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4899,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4900,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4901,1
    - Dst: compiler_compare
      Src: /src/Python-3.8.3/Python/compile.c:4904,1
    - Dst: compiler_call
      Src: /src/Python-3.8.3/Python/compile.c:4906,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:4908,1
    - Dst: compiler_joined_str
      Src: /src/Python-3.8.3/Python/compile.c:4911,1
    - Dst: compiler_formatted_value
      Src: /src/Python-3.8.3/Python/compile.c:4913,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4917,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4920,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:4923,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:4926,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:4929,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:4932,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:4936,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4944,1
    - Dst: VISIT_SLICE
      Src: /src/Python-3.8.3/Python/compile.c:4945,1
    - Dst: check_subscripter
      Src: /src/Python-3.8.3/Python/compile.c:4948,1
    - Dst: check_index
      Src: /src/Python-3.8.3/Python/compile.c:4951,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4954,1
    - Dst: VISIT_SLICE
      Src: /src/Python-3.8.3/Python/compile.c:4955,1
    - Dst: VISIT_SLICE
      Src: /src/Python-3.8.3/Python/compile.c:4958,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4961,1
    - Dst: VISIT_SLICE
      Src: /src/Python-3.8.3/Python/compile.c:4962,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:4965,1
    - Dst: VISIT_SLICE
      Src: /src/Python-3.8.3/Python/compile.c:4966,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:4970,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4980,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:4983,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:4987,1
    - Dst: compiler_list
      Src: /src/Python-3.8.3/Python/compile.c:4990,1
    - Dst: compiler_tuple
      Src: /src/Python-3.8.3/Python/compile.c:4992,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 150
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4995
      start: 4827
    functionDepth: 13
    functionLinenumber: 4827
    functionLinenumberEnd: 4995
    functionName: compiler_visit_expr1
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_error
    - compiler_call
    - compiler_genexp
    - VISIT_SLICE
    - compiler_list
    - ADDOP_NAME
    - ADDOP_LOAD_CONST
    - compiler_joined_str
    - unaryop
    - VISIT
    - check_subscripter
    - compiler_ifexp
    - compiler_formatted_value
    - compiler_set
    - compiler_dict
    - binop
    - IS_TOP_LEVEL_AWAIT
    - compiler_nameop
    - compiler_lambda
    - compiler_boolop
    - ADDOP
    - check_index
    - compiler_setcomp
    - compiler_tuple
    - compiler_listcomp
    - PyErr_SetString
    - compiler_dictcomp
    - compiler_compare
    linkageType: ''
    returnType: int
    signature: int compiler_visit_expr1(struct compiler *c, expr_ty e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compiler_visit_expr1
      Src: /src/Python-3.8.3/Python/compile.c:5012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5020
      start: 4997
    functionDepth: 14
    functionLinenumber: 4997
    functionLinenumberEnd: 5020
    functionName: compiler_visit_expr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - compiler_visit_expr1
    linkageType: ''
    returnType: int
    signature: int compiler_visit_expr(struct compiler *c, expr_ty e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5028,1
    - Dst: Attribute
      Src: /src/Python-3.8.3/Python/compile.c:5032,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5037,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5038,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5039,1
    - Dst: inplace_binop
      Src: /src/Python-3.8.3/Python/compile.c:5039,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5041,1
    - Dst: Subscript
      Src: /src/Python-3.8.3/Python/compile.c:5044,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5049,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5050,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5051,1
    - Dst: inplace_binop
      Src: /src/Python-3.8.3/Python/compile.c:5051,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5053,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:5056,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5058,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5059,1
    - Dst: inplace_binop
      Src: /src/Python-3.8.3/Python/compile.c:5059,1
    - Dst: compiler_nameop
      Src: /src/Python-3.8.3/Python/compile.c:5060,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:5062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == AugAssign_kind)
      pos:
        line_end: 5027
        line_start: 5027
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5068
      start: 5022
    functionDepth: 7
    functionLinenumber: 5022
    functionLinenumberEnd: 5068
    functionName: compiler_augassign
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - ADDOP
    - Attribute
    - VISIT
    - inplace_binop
    - Subscript
    - PyErr_Format
    - assert
    - compiler_nameop
    linkageType: ''
    returnType: int
    signature: int compiler_augassign(struct compiler *c, stmt_ty s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5073,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - c
    - e
    argTypes:
    - struct compiler*
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5076
      start: 5070
    functionDepth: 1
    functionLinenumber: 5070
    functionLinenumberEnd: 5076
    functionName: check_ann_expr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - VISIT
    - ADDOP
    linkageType: ''
    returnType: int
    signature: int check_ann_expr(struct compiler *c, expr_ty e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5084,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5087
      start: 5078
    functionDepth: 2
    functionLinenumber: 5078
    functionLinenumberEnd: 5087
    functionName: check_annotation
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - check_ann_expr
    linkageType: ''
    returnType: int
    signature: int check_annotation(struct compiler *c, stmt_ty s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5094,1
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5096,1
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5099,1
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:5107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - c
    - sl
    argTypes:
    - struct compiler*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5089
    functionDepth: 2
    functionLinenumber: 5089
    functionLinenumberEnd: 5112
    functionName: check_ann_slice
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - check_ann_expr
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int check_ann_slice(struct compiler *c, slice_ty sl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: check_ann_slice
      Src: /src/Python-3.8.3/Python/compile.c:5123,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:5128,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:5130,1
    - Dst: check_ann_slice
      Src: /src/Python-3.8.3/Python/compile.c:5134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:5140,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:5147,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - c
    - sl
    argTypes:
    - struct compiler*
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5152
      start: 5114
    functionDepth: 3
    functionLinenumber: 5114
    functionLinenumberEnd: 5152
    functionName: check_ann_subscr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - check_ann_slice
    - asdl_seq_LEN
    - PyErr_Format
    - PyErr_SetString
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int check_ann_subscr(struct compiler *c, slice_ty sl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5160,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5164,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5165,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5174,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5177,1
    - Dst: ADDOP_NAME
      Src: /src/Python-3.8.3/Python/compile.c:5179,1
    - Dst: _Py_Mangle
      Src: /src/Python-3.8.3/Python/compile.c:5180,1
    - Dst: ADDOP_LOAD_CONST_NEW
      Src: /src/Python-3.8.3/Python/compile.c:5181,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5182,1
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5187,1
    - Dst: check_ann_expr
      Src: /src/Python-3.8.3/Python/compile.c:5193,1
    - Dst: check_ann_subscr
      Src: /src/Python-3.8.3/Python/compile.c:5194,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:5199,1
    - Dst: check_annotation
      Src: /src/Python-3.8.3/Python/compile.c:5205,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiler*
    - stmt_ty
    assertStmts:
    - condition: (s->kind == AnnAssign_kind)
      pos:
        line_end: 5159
        line_start: 5159
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5209
      start: 5154
    functionDepth: 4
    functionLinenumber: 5154
    functionLinenumberEnd: 5209
    functionName: compiler_annassign
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - check_ann_subscr
    - ADDOP
    - ADDOP_LOAD_CONST_NEW
    - VISIT
    - _Py_Mangle
    - check_annotation
    - ADDOP_NAME
    - PyErr_Format
    - assert
    - check_ann_expr
    linkageType: ''
    returnType: int
    signature: int compiler_annassign(struct compiler *c, stmt_ty s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ProgramTextObject
      Src: /src/Python-3.8.3/Python/compile.c:5221,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:5223,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/compile.c:5226,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/compile.c:5230,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/compile.c:5233,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5235,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5236,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - c
    - errstr
    argTypes:
    - struct compiler*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5239
      start: 5215
    functionDepth: 1
    functionLinenumber: 5215
    functionLinenumberEnd: 5239
    functionName: compiler_error
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 10
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyErr_ProgramTextObject
    - PyErr_SetObject
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int compiler_error(struct compiler *c, const char *errstr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/compile.c:5250,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/compile.c:5252,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/compile.c:5254,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/compile.c:5255,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/Python-3.8.3/Python/compile.c:5259,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/compile.c:5262,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/compile.c:5265,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5266,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:5266,1
    - Dst: compiler_error
      Src: /src/Python-3.8.3/Python/compile.c:5267,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/compile.c:5267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - c
    - format
    argTypes:
    - struct compiler*
    - char*
    assertStmts:
    - condition: (PyUnicode_AsUTF8(msg) != NULL)
      pos:
        line_end: 5265
        line_start: 5265
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5274
      start: 5245
    functionDepth: 7
    functionLinenumber: 5245
    functionLinenumberEnd: 5274
    functionName: compiler_warn
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 5
    functionsReached:
    - va_start
    - compiler_error
    - Py_DECREF
    - PyUnicode_AsUTF8
    - PyErr_ExceptionMatches
    - PyUnicode_FromFormatV
    - PyErr_WarnExplicitObject
    - assert
    - PyErr_Clear
    - va_end
    linkageType: ''
    returnType: int
    signature: int compiler_warn(struct compiler *c, const char *format, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:5290,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5296,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5299,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:5301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - c
    - kind
    - ctx
    argTypes:
    - struct compiler*
    - char*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5276
    functionDepth: 1
    functionLinenumber: 5276
    functionLinenumberEnd: 5303
    functionName: compiler_handle_subscr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - ADDOP
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int compiler_handle_subscr(struct compiler *c, const char *kind,\n
      \                      expr_context_ty ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5309,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5313,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:5316,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5320,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:5323,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5328,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:5330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - c
    - s
    - ctx
    argTypes:
    - struct compiler*
    - slice_ty
    - expr_context_ty
    assertStmts:
    - condition: (s->kind == Slice_kind)
      pos:
        line_end: 5308
        line_start: 5308
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5332
      start: 5305
    functionDepth: 1
    functionLinenumber: 5305
    functionLinenumberEnd: 5332
    functionName: compiler_slice
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    - VISIT
    - ADDOP_LOAD_CONST
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_slice(struct compiler *c, slice_ty s, expr_context_ty
      ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: compiler_slice
      Src: /src/Python-3.8.3/Python/compile.c:5340,1
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5342,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/compile.c:5346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - c
    - s
    - ctx
    argTypes:
    - struct compiler*
    - slice_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5351
      start: 5334
    functionDepth: 2
    functionLinenumber: 5334
    functionLinenumberEnd: 5351
    functionName: compiler_visit_nested_slice
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - compiler_slice
    - VISIT
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int compiler_visit_nested_slice(struct compiler *c, slice_ty s,\n
      \                           expr_context_ty ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: VISIT
      Src: /src/Python-3.8.3/Python/compile.c:5361,1
    - Dst: compiler_slice
      Src: /src/Python-3.8.3/Python/compile.c:5367,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/compile.c:5374,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/compile.c:5376,1
    - Dst: compiler_visit_nested_slice
      Src: /src/Python-3.8.3/Python/compile.c:5378,1
    - Dst: ADDOP_I
      Src: /src/Python-3.8.3/Python/compile.c:5381,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/compile.c:5385,1
    - Dst: compiler_handle_subscr
      Src: /src/Python-3.8.3/Python/compile.c:5389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - c
    - s
    - ctx
    argTypes:
    - struct compiler*
    - slice_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5390
      start: 5353
    functionDepth: 3
    functionLinenumber: 5353
    functionLinenumberEnd: 5390
    functionName: compiler_visit_slice
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - VISIT
    - compiler_handle_subscr
    - compiler_visit_nested_slice
    - compiler_slice
    - PyErr_Format
    - asdl_seq_GET
    - ADDOP_I
    linkageType: ''
    returnType: int
    signature: int compiler_visit_slice(struct compiler *c, slice_ty s, expr_context_ty
      ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5422,1
    - Dst: dfs
      Src: /src/Python-3.8.3/Python/compile.c:5430,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - c
    - b
    - a
    - end
    argTypes:
    - struct compiler*
    - basicblock*
    - struct assembler*
    - int
    assertStmts:
    - condition: (a->a_nblocks < j)
      pos:
        line_end: 5421
        line_start: 5421
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (a->a_nblocks < j)
      pos:
        line_end: 5431
        line_start: 5431
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5435
      start: 5411
    functionDepth: 1
    functionLinenumber: 5411
    functionLinenumberEnd: 5435
    functionName: dfs
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - assert
    - dfs
    linkageType: ''
    returnType: void
    signature: void dfs(struct compiler *c, basicblock *b, struct assembler *a, int
      end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5440,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sp
    - b
    - depth
    argTypes:
    - basicblock***
    - basicblock*
    - int
    assertStmts:
    - condition: (b->b_startdepth < 0 || b->b_startdepth == depth)
      pos:
        line_end: 5439
        line_start: 5439
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (b->b_startdepth < 0)
      pos:
        line_end: 5441
        line_start: 5441
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5446
      start: 5438
    functionDepth: 1
    functionLinenumber: 5438
    functionLinenumberEnd: 5446
    functionName: stackdepth_push
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void stackdepth_push(basicblock ***sp, basicblock *b, int depth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/compile.c:5464,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:5466,1
    - Dst: stackdepth_push
      Src: /src/Python-3.8.3/Python/compile.c:5471,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5475,1
    - Dst: stack_effect
      Src: /src/Python-3.8.3/Python/compile.c:5479,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/compile.c:5481,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/compile.c:5482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5488,1
    - Dst: stack_effect
      Src: /src/Python-3.8.3/Python/compile.c:5490,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5491,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5496,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5498,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5499,1
    - Dst: stackdepth_push
      Src: /src/Python-3.8.3/Python/compile.c:5503,1
    - Dst: stackdepth_push
      Src: /src/Python-3.8.3/Python/compile.c:5517,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:5520,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts:
    - condition: (depth >= 0)
      pos:
        line_end: 5474
        line_start: 5474
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (depth >= 0)
      pos:
        line_end: 5487
        line_start: 5487
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (effect != PY_INVALID_STACK_EFFECT)
      pos:
        line_end: 5490
        line_start: 5490
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (instr->i_target->b_startdepth >= target_depth)
      pos:
        line_end: 5498
        line_start: 5498
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (instr->i_target->b_startdepth >= 0)
      pos:
        line_end: 5497
        line_start: 5497
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (target_depth >= 0)
      pos:
        line_end: 5495
        line_start: 5495
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5522
      start: 5451
    functionDepth: 2
    functionLinenumber: 5451
    functionLinenumberEnd: 5522
    functionName: stackdepth
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - stackdepth_push
    - PyErr_NoMemory
    - Py_FatalError
    - stack_effect
    - fprintf
    - PyObject_Free
    - assert
    linkageType: ''
    returnType: int
    signature: int stackdepth(struct compiler *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/compile.c:5527,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/compile.c:5529,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/compile.c:5532,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:5536,1
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/compile.c:5539,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:5542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - a
    - nblocks
    - firstlineno
    argTypes:
    - struct assembler*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5546
      start: 5524
    functionDepth: 3
    functionLinenumber: 5524
    functionLinenumberEnd: 5546
    functionName: assemble_init
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyObject_Malloc
    - PyBytes_FromStringAndSize
    - PyErr_NoMemory
    - memset
    linkageType: ''
    returnType: int
    signature: int assemble_init(struct assembler *a, int nblocks, int firstlineno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5551,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5552,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/compile.c:5554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - struct assembler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5555
      start: 5548
    functionDepth: 1
    functionLinenumber: 5548
    functionLinenumberEnd: 5555
    functionName: assemble_free
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyObject_Free
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void assemble_free(struct assembler *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/compile.c:5564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5566
      start: 5557
    functionDepth: 1
    functionLinenumber: 5557
    functionLinenumberEnd: 5566
    functionName: blocksize
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - instrsize
    linkageType: ''
    returnType: int
    signature: int blocksize(basicblock *b)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5582,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5590,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:5597,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:5600,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/compile.c:5604,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5612,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5626,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5628,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/compile.c:5635,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:5638,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/compile.c:5642,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5652,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5654,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:5656,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/compile.c:5660,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - struct assembler*
    - struct instr*
    assertStmts:
    - condition: (d_bytecode >= 0)
      pos:
        line_end: 5581
        line_start: 5581
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (0 <= d_bytecode && d_bytecode <= 255)
      pos:
        line_end: 5611
        line_start: 5611
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (ncodes >= 1)
      pos:
        line_end: 5625
        line_start: 5625
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (-128 <= d_lineno && d_lineno <= 127)
      pos:
        line_end: 5651
        line_start: 5651
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5674
      start: 5572
    functionDepth: 3
    functionLinenumber: 5572
    functionLinenumberEnd: 5674
    functionName: assemble_lnotab
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _PyBytes_Resize
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int assemble_lnotab(struct assembler *a, struct instr *i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5685,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/compile.c:5689,1
    - Dst: assemble_lnotab
      Src: /src/Python-3.8.3/Python/compile.c:5690,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:5695,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/compile.c:5698,1
    - Dst: write_op_arg
      Src: /src/Python-3.8.3/Python/compile.c:5700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - a
    - i
    argTypes:
    - struct assembler*
    - struct instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5702
      start: 5681
    functionDepth: 4
    functionLinenumber: 5681
    functionLinenumberEnd: 5702
    functionName: assemble_emit
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - assemble_lnotab
    - _PyBytes_Resize
    - write_op_arg
    - PyBytes_GET_SIZE
    - instrsize
    - PyBytes_AS_STRING
    linkageType: ''
    returnType: int
    signature: int assemble_emit(struct assembler *a, struct instr *i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blocksize
      Src: /src/Python-3.8.3/Python/compile.c:5717,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/compile.c:5726,1
    - Dst: instrsize
      Src: /src/Python-3.8.3/Python/compile.c:5738,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - a
    - c
    argTypes:
    - struct assembler*
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5760
      start: 5704
    functionDepth: 2
    functionLinenumber: 5704
    functionLinenumberEnd: 5760
    functionName: assemble_jump_offsets
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - instrsize
    - blocksize
    linkageType: ''
    returnType: void
    signature: void assemble_jump_offsets(struct assembler *a, struct compiler *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5766,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/compile.c:5768,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/compile.c:5771,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/compile.c:5772,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:5773,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5774,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5775,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:5776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dict
    - offset
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts:
    - condition: ((i - offset) < size)
      pos:
        line_end: 5773
        line_start: 5773
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: ((i - offset) >= 0)
      pos:
        line_end: 5774
        line_start: 5774
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5779
      start: 5762
    functionDepth: 3
    functionLinenumber: 5762
    functionLinenumberEnd: 5779
    functionName: dict_keys_inorder
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyDict_Next
    - Py_INCREF
    - PyDict_GET_SIZE
    - assert
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      dict_keys_inorder(PyObject *dict, Py_ssize_t offset)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5785,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/compile.c:5787,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/compile.c:5790,1
    - Dst: PyLong_AS_LONG
      Src: /src/Python-3.8.3/Python/compile.c:5791,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:5795,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:5796,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:5798,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5799,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5800,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:5801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dict
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (i < size)
      pos:
        line_end: 5798
        line_start: 5798
        source_file: /src/Python-3.8.3/Python/compile.c
    - condition: (i >= 0)
      pos:
        line_end: 5799
        line_start: 5799
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5804
      start: 5781
    functionDepth: 3
    functionLinenumber: 5781
    functionLinenumberEnd: 5804
    functionName: consts_dict_keys_inorder
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - PyLong_AS_LONG
    - PyDict_Next
    - Py_INCREF
    - PyDict_GET_SIZE
    - PyList_SET_ITEM
    - PyTuple_CheckExact
    - PyList_New
    - assert
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      consts_dict_keys_inorder(PyObject *dict)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_TOP_LEVEL_AWAIT
      Src: /src/Python-3.8.3/Python/compile.c:5830,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5837
      start: 5806
    functionDepth: 1
    functionLinenumber: 5806
    functionLinenumberEnd: 5837
    functionName: compute_code_flags
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - IS_TOP_LEVEL_AWAIT
    linkageType: ''
    returnType: int
    signature: int compute_code_flags(struct compiler *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5844,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/compile.c:5844,1
    - Dst: _PyCode_ConstantKey
      Src: /src/Python-3.8.3/Python/compile.c:5846,1
    - Dst: PyDict_SetDefault
      Src: /src/Python-3.8.3/Python/compile.c:5852,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5853,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/compile.c:5861,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/compile.c:5862,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - c
    - tuple
    argTypes:
    - struct compiler*
    - PyObject**
    assertStmts:
    - condition: (PyTuple_CheckExact(*tuple))
      pos:
        line_end: 5843
        line_start: 5843
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5866
      start: 5841
    functionDepth: 10
    functionLinenumber: 5841
    functionLinenumberEnd: 5866
    functionName: merge_const_tuple
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PyDict_SetDefault
    - PyTuple_CheckExact
    - assert
    - PyTuple_GET_ITEM
    - _PyCode_ConstantKey
    linkageType: ''
    returnType: int
    signature: int merge_const_tuple(struct compiler *c, PyObject **tuple)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: consts_dict_keys_inorder
      Src: /src/Python-3.8.3/Python/compile.c:5885,1
    - Dst: dict_keys_inorder
      Src: /src/Python-3.8.3/Python/compile.c:5886,1
    - Dst: dict_keys_inorder
      Src: /src/Python-3.8.3/Python/compile.c:5887,1
    - Dst: dict_keys_inorder
      Src: /src/Python-3.8.3/Python/compile.c:5891,1
    - Dst: dict_keys_inorder
      Src: /src/Python-3.8.3/Python/compile.c:5894,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5894,1
    - Dst: merge_const_tuple
      Src: /src/Python-3.8.3/Python/compile.c:5898,1
    - Dst: merge_const_tuple
      Src: /src/Python-3.8.3/Python/compile.c:5899,1
    - Dst: merge_const_tuple
      Src: /src/Python-3.8.3/Python/compile.c:5900,1
    - Dst: merge_const_tuple
      Src: /src/Python-3.8.3/Python/compile.c:5901,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/compile.c:5906,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/compile.c:5907,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/compile.c:5908,1
    - Dst: compute_code_flags
      Src: /src/Python-3.8.3/Python/compile.c:5910,1
    - Dst: PyCode_Optimize
      Src: /src/Python-3.8.3/Python/compile.c:5914,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Python/compile.c:5918,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/compile.c:5921,1
    - Dst: merge_const_tuple
      Src: /src/Python-3.8.3/Python/compile.c:5923,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/compile.c:5927,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/compile.c:5928,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/compile.c:5929,1
    - Dst: stackdepth
      Src: /src/Python-3.8.3/Python/compile.c:5930,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Python/compile.c:5934,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5940,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5941,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5942,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5943,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5944,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/compile.c:5946,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 59
    argCount: 2
    argNames:
    - c
    - a
    argTypes:
    - struct compiler*
    - struct assembler*
    assertStmts:
    - condition: (nlocals < INT_MAX)
      pos:
        line_end: 5906
        line_start: 5906
        source_file: /src/Python-3.8.3/Python/compile.c
    constantsTouched: []
    func_position:
      end: 5948
      start: 5868
    functionDepth: 11
    functionLinenumber: 5868
    functionLinenumberEnd: 5948
    functionName: makecode
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - merge_const_tuple
    - PyList_AsTuple
    - Py_DECREF
    - PyTuple_GET_SIZE
    - consts_dict_keys_inorder
    - PyDict_GET_SIZE
    - PyCode_Optimize
    - compute_code_flags
    - PyCode_NewWithPosOnlyArgs
    - assert
    - dict_keys_inorder
    - Py_XDECREF
    - stackdepth
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      makecode(struct compiler *c, struct assembler *a)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HAS_ARG
      Src: /src/Python-3.8.3/Python/compile.c:5961,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Python/compile.c:5962,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/compile.c:5964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - i
    argTypes:
    - struct instr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5966
      start: 5953
    functionDepth: 1
    functionLinenumber: 5953
    functionLinenumberEnd: 5966
    functionName: dump_instr
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sprintf
    - HAS_ARG
    linkageType: ''
    returnType: void
    signature: void dump_instr(const struct instr *i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/compile.c:5973,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/compile.c:5978,1
    - Dst: dump_instr
      Src: /src/Python-3.8.3/Python/compile.c:5979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - b
    argTypes:
    - basicblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5982
      start: 5968
    functionDepth: 2
    functionLinenumber: 5968
    functionLinenumberEnd: 5982
    functionName: dump_basicblock
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 0
    functionsReached:
    - dump_instr
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_basicblock(const basicblock *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NEXT_BLOCK
      Src: /src/Python-3.8.3/Python/compile.c:5998,1
    - Dst: ADDOP_LOAD_CONST
      Src: /src/Python-3.8.3/Python/compile.c:6000,1
    - Dst: ADDOP
      Src: /src/Python-3.8.3/Python/compile.c:6001,1
    - Dst: assemble_init
      Src: /src/Python-3.8.3/Python/compile.c:6018,1
    - Dst: dfs
      Src: /src/Python-3.8.3/Python/compile.c:6020,1
    - Dst: assemble_jump_offsets
      Src: /src/Python-3.8.3/Python/compile.c:6023,1
    - Dst: assemble_emit
      Src: /src/Python-3.8.3/Python/compile.c:6029,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:6033,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/compile.c:6035,1
    - Dst: makecode
      Src: /src/Python-3.8.3/Python/compile.c:6038,1
    - Dst: assemble_free
      Src: /src/Python-3.8.3/Python/compile.c:6040,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 2
    argNames:
    - c
    - addNone
    argTypes:
    - struct compiler*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6042
      start: 5985
    functionDepth: 12
    functionLinenumber: 5985
    functionLinenumberEnd: 6042
    functionName: assemble
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 5
    functionsReached:
    - assemble_jump_offsets
    - ADDOP
    - assemble_emit
    - assemble_free
    - NEXT_BLOCK
    - _PyBytes_Resize
    - dfs
    - makecode
    - ADDOP_LOAD_CONST
    - assemble_init
    linkageType: ''
    returnType: PyCodeObject
    signature: 'PyCodeObject *

      assemble(struct compiler *c, int addNone)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyAST_CompileEx
      Src: /src/Python-3.8.3/Python/compile.c:6049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mod
    - filename
    - flags
    - arena
    argTypes:
    - mod_ty
    - char*
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6050
      start: 6045
    functionDepth: 8
    functionLinenumber: 6045
    functionLinenumberEnd: 6050
    functionName: PyAST_Compile
    functionSourceFile: /src/Python-3.8.3/Python/compile.c
    functionUses: 1
    functionsReached:
    - PyAST_CompileEx
    linkageType: ''
    returnType: PyCodeObject
    signature: "PyCodeObject *\nPyAST_Compile(mod_ty mod, const char *filename, PyCompilerFlags
      *flags,\n              PyArena *arena)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:24,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:28,1
    - Dst: shl_load
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:31,1
    - Dst: perror
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:35,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:38,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:40,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:41,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:42,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:43,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:44,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:45,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:46,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:51,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:54,1
    - Dst: shl_findsym
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:58,1
    - Dst: shl_unload
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:59,1
    - Dst: perror
      Src: /src/Python-3.8.3/Python/dynload_hpux.c:63,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 66
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/Python-3.8.3/Python/dynload_hpux.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - PyOS_snprintf
    - Py_DECREF
    - perror
    - _PyInterpreterState_GET_UNSAFE
    - shl_findsym
    - printf
    - shl_load
    - PyErr_SetImportError
    - shl_unload
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,\n                                       const
      char *shortname,\n                                       const char *pathname,
      FILE *fp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/frozenmain.c:19,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Python/frozenmain.c:20,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/frozenmain.c:21,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/frozenmain.c:34,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/frozenmain.c:35,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/frozenmain.c:37,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Python/frozenmain.c:43,1
    - Dst: Py_GETENV
      Src: /src/Python-3.8.3/Python/frozenmain.c:46,1
    - Dst: Py_GETENV
      Src: /src/Python-3.8.3/Python/frozenmain.c:48,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/frozenmain.c:52,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/frozenmain.c:53,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/frozenmain.c:54,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/frozenmain.c:57,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/frozenmain.c:57,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/frozenmain.c:59,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/frozenmain.c:63,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/frozenmain.c:65,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/frozenmain.c:68,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/frozenmain.c:74,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/frozenmain.c:75,1
    - Dst: PyInitFrozenExtensions
      Src: /src/Python-3.8.3/Python/frozenmain.c:79,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Python/frozenmain.c:82,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Python/frozenmain.c:84,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Python/frozenmain.c:85,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Python/frozenmain.c:86,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/frozenmain.c:87,1
    - Dst: PyWinFreeze_ExeInit
      Src: /src/Python-3.8.3/Python/frozenmain.c:91,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/frozenmain.c:95,1
    - Dst: Py_GetVersion
      Src: /src/Python-3.8.3/Python/frozenmain.c:96,1
    - Dst: Py_GetCopyright
      Src: /src/Python-3.8.3/Python/frozenmain.c:96,1
    - Dst: PySys_SetArgv
      Src: /src/Python-3.8.3/Python/frozenmain.c:98,1
    - Dst: PyImport_ImportFrozenModule
      Src: /src/Python-3.8.3/Python/frozenmain.c:100,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/frozenmain.c:102,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/frozenmain.c:104,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/frozenmain.c:110,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/frozenmain.c:110,1
    - Dst: PyRun_AnyFile
      Src: /src/Python-3.8.3/Python/frozenmain.c:111,1
    - Dst: PyWinFreeze_ExeTerm
      Src: /src/Python-3.8.3/Python/frozenmain.c:114,1
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/Python/frozenmain.c:116,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/frozenmain.c:121,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/frozenmain.c:124,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/frozenmain.c:125,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/frozenmain.c:127,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 129
    functionName: Py_FrozenMain
    functionSourceFile: /src/Python-3.8.3/Python/frozenmain.c
    functionUses: 0
    functionsReached:
    - PyRun_AnyFile
    - Py_GetVersion
    - isatty
    - setbuf
    - Py_FinalizeEx
    - Py_ExitStatusException
    - PyConfig_Clear
    - PySys_SetArgv
    - PyStatus_Exception
    - PyImport_ImportFrozenModule
    - _PyRuntime_Initialize
    - PyConfig_InitPythonConfig
    - fileno
    - PyErr_Print
    - PyWinFreeze_ExeInit
    - Py_GETENV
    - setlocale
    - Py_InitializeFromConfig
    - PyMem_RawMalloc
    - Py_FatalError
    - fprintf
    - PyMem_RawFree
    - PyWinFreeze_ExeTerm
    - Py_SetProgramName
    - PyInitFrozenExtensions
    - Py_DecodeLocale
    - Py_GetCopyright
    - _PyMem_RawStrdup
    linkageType: ''
    returnType: int
    signature: int Py_FrozenMain(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: DWORD_AT
    functionSourceFile: /src/Python-3.8.3/Python/dynload_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DWORD_AT(mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: WORD_AT
    functionSourceFile: /src/Python-3.8.3/Python/dynload_win.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD_AT(mem)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:78,1
    - Dst: memcmp
      Src: /src/Python-3.8.3/Python/dynload_win.c:81,1
    - Dst: WORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:98,1
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:118,1
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:121,1
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:123,1
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:126,1
    - Dst: DWORD_AT
      Src: /src/Python-3.8.3/Python/dynload_win.c:127,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/dynload_win.c:128,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/Python/dynload_win.c:129,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/dynload_win.c:135,1
    - Dst: _Py_CheckPython3
      Src: /src/Python-3.8.3/Python/dynload_win.c:178,1
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Python/dynload_win.c:181,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_win.c:185,1
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Python/dynload_win.c:195,1
    - Dst: _Py_ActivateActCtx
      Src: /src/Python-3.8.3/Python/dynload_win.c:198,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/Python/dynload_win.c:205,1
    - Dst: _Py_DeactivateActCtx
      Src: /src/Python-3.8.3/Python/dynload_win.c:210,1
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Python/dynload_win.c:214,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/dynload_win.c:225,1
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Python/dynload_win.c:227,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Python/dynload_win.c:232,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/dynload_win.c:242,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/dynload_win.c:254,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Python/dynload_win.c:257,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/dynload_win.c:258,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_win.c:263,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/dynload_win.c:264,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/dynload_win.c:265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_win.c:266,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_win.c:272,1
    - Dst: GetPythonImport
      Src: /src/Python-3.8.3/Python/dynload_win.c:279,1
    - Dst: _stricmp
      Src: /src/Python-3.8.3/Python/dynload_win.c:282,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/dynload_win.c:283,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Python/dynload_win.c:294,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 1
    argNames:
    - hModule
    argTypes:
    - HINSTANCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 62
    functionDepth: 8
    functionLinenumber: 62
    functionLinenumberEnd: 299
    functionName: GetPythonImport
    functionSourceFile: /src/Python-3.8.3/Python/dynload_win.c
    functionUses: 1
    functionsReached:
    - DWORD_AT
    - PyUnicode_FromFormat
    - GetLastError
    - _Py_ActivateActCtx
    - strlen
    - PyUnicode_FromWideChar
    - PyErr_Format
    - Py_XDECREF
    - strncmp
    - LoadLibraryExW
    - PyUnicode_FromString
    - PyOS_snprintf
    - Py_DECREF
    - _Py_CheckPython3
    - _PyUnicode_AsUnicode
    - MAKELANGID
    - memcmp
    - PyErr_SetImportError
    - GetPythonImport
    - _Py_DeactivateActCtx
    - PyUnicode_AppendAndDel
    - GetProcAddress
    - FormatMessageW
    - WORD_AT
    - SetErrorMode
    - _stricmp
    - strcmp
    linkageType: ''
    returnType: char
    signature: char *GetPythonImport (HINSTANCE hModule)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_CheckPython3
      Src: /src/Python-3.8.3/Python/dynload_win.c:178,1
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Python/dynload_win.c:181,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_win.c:185,1
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Python/dynload_win.c:195,1
    - Dst: _Py_ActivateActCtx
      Src: /src/Python-3.8.3/Python/dynload_win.c:198,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/Python/dynload_win.c:205,1
    - Dst: _Py_DeactivateActCtx
      Src: /src/Python-3.8.3/Python/dynload_win.c:210,1
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/Python/dynload_win.c:214,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/dynload_win.c:225,1
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Python/dynload_win.c:227,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Python/dynload_win.c:232,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/dynload_win.c:242,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/dynload_win.c:254,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Python/dynload_win.c:257,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/dynload_win.c:258,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_win.c:263,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/dynload_win.c:264,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/dynload_win.c:265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_win.c:266,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_win.c:272,1
    - Dst: GetPythonImport
      Src: /src/Python-3.8.3/Python/dynload_win.c:279,1
    - Dst: _stricmp
      Src: /src/Python-3.8.3/Python/dynload_win.c:282,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/dynload_win.c:283,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/Python/dynload_win.c:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - PyObject*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 169
    functionDepth: 9
    functionLinenumber: 169
    functionLinenumberEnd: 299
    functionName: _PyImport_FindSharedFuncptrWindows
    functionSourceFile: /src/Python-3.8.3/Python/dynload_win.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromFormat
    - GetLastError
    - _Py_ActivateActCtx
    - PyUnicode_FromWideChar
    - PyErr_Format
    - Py_XDECREF
    - LoadLibraryExW
    - PyUnicode_FromString
    - PyOS_snprintf
    - Py_DECREF
    - _Py_CheckPython3
    - _PyUnicode_AsUnicode
    - MAKELANGID
    - PyErr_SetImportError
    - GetPythonImport
    - _Py_DeactivateActCtx
    - PyUnicode_AppendAndDel
    - GetProcAddress
    - FormatMessageW
    - SetErrorMode
    - _stricmp
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptrWindows(const char *prefix,\n
      \                                             const char *shortname,\n                                              PyObject
      *pathname, FILE *fp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_GetProgramName
      Src: /src/Python-3.8.3/Python/dynload_aix.c:38,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Python/dynload_aix.c:43,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:44,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:44,1
    - Dst: loadquery
      Src: /src/Python-3.8.3/Python/dynload_aix.c:47,1
    - Dst: free
      Src: /src/Python-3.8.3/Python/dynload_aix.c:49,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Python/dynload_aix.c:51,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:52,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:52,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:57,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:57,1
    - Dst: strstr
      Src: /src/Python-3.8.3/Python/dynload_aix.c:66,1
    - Dst: strstr
      Src: /src/Python-3.8.3/Python/dynload_aix.c:67,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Python/dynload_aix.c:78,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:79,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:79,1
    - Dst: free
      Src: /src/Python-3.8.3/Python/dynload_aix.c:83,1
    - Dst: free
      Src: /src/Python-3.8.3/Python/dynload_aix.c:97,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - modlistptr
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 99
    functionName: aix_getoldmodules
    functionSourceFile: /src/Python-3.8.3/Python/dynload_aix.c
    functionUses: 0
    functionsReached:
    - malloc
    - strerror
    - Py_GetProgramName
    - PyErr_SetString
    - free
    - strstr
    - loadquery
    linkageType: ''
    returnType: int
    signature: int aix_getoldmodules(void **modlistptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_aix.c:131,1
    - Dst: loadquery
      Src: /src/Python-3.8.3/Python/dynload_aix.c:133,1
    - Dst: ERRBUF_APPEND
      Src: /src/Python-3.8.3/Python/dynload_aix.c:134,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:134,1
    - Dst: ERRBUF_APPEND
      Src: /src/Python-3.8.3/Python/dynload_aix.c:135,1
    - Dst: atoi
      Src: /src/Python-3.8.3/Python/dynload_aix.c:138,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/dynload_aix.c:139,1
    - Dst: ERRBUF_APPEND
      Src: /src/Python-3.8.3/Python/dynload_aix.c:141,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/dynload_aix.c:143,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/dynload_aix.c:143,1
    - Dst: ERRBUF_APPEND
      Src: /src/Python-3.8.3/Python/dynload_aix.c:144,1
    - Dst: ERRBUF_APPEND
      Src: /src/Python-3.8.3/Python/dynload_aix.c:145,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/dynload_aix.c:147,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:148,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_aix.c:149,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/dynload_aix.c:150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_aix.c:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_aix.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - pathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 154
    functionName: aix_loaderror
    functionSourceFile: /src/Python-3.8.3/Python/dynload_aix.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyOS_snprintf
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - atoi
    - strerror
    - Py_ISDIGIT
    - ERRBUF_APPEND
    - strlen
    - PyErr_SetImportError
    - loadquery
    - Py_CHARMASK
    linkageType: ''
    returnType: void
    signature: void aix_loaderror(const char *pathname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ERRBUF_APPEND
    functionSourceFile: /src/Python-3.8.3/Python/dynload_aix.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRBUF_APPEND(s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: aix_getoldmodules
      Src: /src/Python-3.8.3/Python/dynload_aix.c:175,1
    - Dst: aix_load
      Src: /src/Python-3.8.3/Python/dynload_aix.c:177,1
    - Dst: aix_loaderror
      Src: /src/Python-3.8.3/Python/dynload_aix.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 184
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/Python-3.8.3/Python/dynload_aix.c
    functionUses: 1
    functionsReached:
    - aix_getoldmodules
    - aix_load
    - aix_loaderror
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,\n                                       const
      char *shortname,\n                                       const char *pathname,
      FILE *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Python/import.c:49,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/import.c:51,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/import.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 8
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: _PyImport_Init
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyDict_Copy
    - _PyStatus_OK
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImport_Init(PyInterpreterState *interp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:63,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/import.c:66,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:67,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/import.c:70,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/import.c:73,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:74,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:77,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/import.c:80,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:84,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/import.c:85,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/import.c:88,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/import.c:89,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 4
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: _PyImportHooks_Init
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - Py_DECREF
    - PyDict_New
    - _PyStatus_ERR
    - PySys_SetObject
    - PyList_New
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImportHooks_Init(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:99,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:101,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:107,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/import.c:110,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:112,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:114,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:118,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/import.c:119,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:121,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:123,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:125,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Python/import.c:130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:131,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:136,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/import.c:141,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/import.c:144,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/import.c:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 146
    functionName: _PyImportZip_Init
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyList_Insert
    - PyErr_Print
    - Py_DECREF
    - _PyObject_GetAttrId
    - PySys_WriteStderr
    - _Py_IDENTIFIER
    - _PyStatus_ERR
    - PySys_GetObject
    - PyErr_SetString
    - PyErr_Clear
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyImportZip_Init(PyInterpreterState *interp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/import.c:161,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/import.c:165,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/import.c:174,1
    - Dst: PyEval_SaveThread
      Src: /src/Python-3.8.3/Python/import.c:176,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/import.c:177,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Python/import.c:178,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (import_lock_level == 0)
      pos:
        line_end: 179
        line_start: 179
        source_file: /src/Python-3.8.3/Python/import.c
    constantsTouched: []
    func_position:
      end: 183
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 183
    functionName: _PyImport_AcquireLock
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyEval_RestoreThread
    - PyThread_acquire_lock
    - PyEval_SaveThread
    - PyThread_get_thread_ident
    - PyThread_allocate_lock
    - assert
    linkageType: ''
    returnType: void
    signature: void _PyImport_AcquireLock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/import.c:188,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:194,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Python/import.c:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (import_lock_level >= 0)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/Python-3.8.3/Python/import.c
    constantsTouched: []
    func_position:
      end: 200
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 200
    functionName: _PyImport_ReleaseLock
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - assert
    - PyThread_get_thread_ident
    - PyThread_release_lock
    linkageType: ''
    returnType: int
    signature: int _PyImport_ReleaseLock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Python/import.c:211,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/import.c:213,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/import.c:218,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Python/import.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 230
    functionName: _PyImport_ReInitLock
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyThread_acquire_lock
    - Py_FatalError
    - PyThread_get_thread_ident
    - PyThread_allocate_lock
    linkageType: ''
    returnType: void
    signature: void _PyImport_ReInitLock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/import.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: _imp_lock_held_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_lock_held_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_AcquireLock
      Src: /src/Python-3.8.3/Python/import.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: _imp_acquire_lock_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_AcquireLock
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_acquire_lock_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_ReleaseLock
      Src: /src/Python-3.8.3/Python/import.c:276,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 282
    functionName: _imp_release_lock_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_ReleaseLock
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_release_lock_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/import.c:287,1
    - Dst: PyThread_free_lock
      Src: /src/Python-3.8.3/Python/import.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 292
    functionName: _PyImport_Fini
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyThread_free_lock
    linkageType: ''
    returnType: void
    signature: void _PyImport_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/import.c:299,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/import.c:302,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/import.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 306
    functionName: _PyImport_Fini2
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyImport_Fini2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/import.c:313,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/import.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 318
    functionName: PyImport_GetModuleDict
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - Py_FatalError
    - _PyInterpreterState_GET_UNSAFE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetModuleDict(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: _PyImport_IsInitialized
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyImport_IsInitialized(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/import.c:335,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/import.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nameid
    argTypes:
    - struct _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: _PyImport_GetModuleId
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetModule
    - _PyUnicode_FromId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_GetModuleId(struct _Py_Identifier *nameid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:345,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Python/import.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 347
    functionName: _PyImport_SetModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyImport_GetModuleDict
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: int _PyImport_SetModule(PyObject *name, PyObject *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:352,1
    - Dst: PyMapping_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - m
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 354
    functionName: _PyImport_SetModuleString
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMapping_SetItemString
    - PyImport_GetModuleDict
    linkageType: ''
    returnType: int
    signature: int _PyImport_SetModuleString(const char *name, PyObject *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:360,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:362,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:365,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/import.c:366,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/import.c:367,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:368,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/import.c:371,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/import.c:372,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:373,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 378
    functionName: PyImport_GetModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 3
    functionsReached:
    - PyDict_GetItemWithError
    - Py_DECREF
    - Py_INCREF
    - PyObject_GetItem
    - PyDict_CheckExact
    - PyImport_GetModuleDict
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - PyErr_Clear
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetModule(PyObject *name)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/import.c:404,1
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:405,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:422,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:424,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:425,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:430,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:432,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:433,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/import.c:438,1
    - Dst: _PyDict_GetItemStringWithError
      Src: /src/Python-3.8.3/Python/import.c:440,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:442,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:443,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:447,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:448,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:456,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:458,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/import.c:489,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/import.c:491,1
    - Dst: CLEAR_MODULE
      Src: /src/Python-3.8.3/Python/import.c:492,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/import.c:496,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:498,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/import.c:501,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/import.c:502,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:504,1
    - Dst: CLEAR_MODULE
      Src: /src/Python-3.8.3/Python/import.c:507,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:509,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:511,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:512,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:514,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/import.c:519,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Python/import.c:520,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:523,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/import.c:524,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:525,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Python/import.c:530,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/import.c:532,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Python/import.c:534,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Python/import.c:535,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:536,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:538,1
    - Dst: _PyState_ClearModules
      Src: /src/Python-3.8.3/Python/import.c:540,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/Python-3.8.3/Python/import.c:542,1
    - Dst: _PyGC_DumpShutdownStats
      Src: /src/Python-3.8.3/Python/import.c:545,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/import.c:562,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/import.c:563,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/import.c:564,1
    - Dst: PyWeakref_GET_OBJECT
      Src: /src/Python-3.8.3/Python/import.c:565,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/import.c:565,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:568,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/import.c:568,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:569,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:572,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/import.c:573,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/import.c:574,1
    - Dst: _PyModule_Clear
      Src: /src/Python-3.8.3/Python/import.c:576,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:579,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/import.c:584,1
    - Dst: _PyModule_ClearDict
      Src: /src/Python-3.8.3/Python/import.c:586,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/import.c:588,1
    - Dst: _PyModule_ClearDict
      Src: /src/Python-3.8.3/Python/import.c:590,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:596,1
    - Dst: _PyGC_CollectNoFail
      Src: /src/Python-3.8.3/Python/import.c:599,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (PyModule_Check(mod))
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/Python-3.8.3/Python/import.c
    constantsTouched: []
    func_position:
      end: 603
      start: 399
    functionDepth: 8
    functionLinenumber: 399
    functionLinenumberEnd: 603
    functionName: PyImport_Cleanup
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyGC_DumpShutdownStats
    - PyModule_Check
    - PyModule_GetDict
    - _PyState_ClearModules
    - _Py_IDENTIFIER
    - PyDict_CheckExact
    - PyIter_Next
    - PySys_FormatStderr
    - PyList_New
    - PyObject_GetIter
    - PyDict_Clear
    - PyErr_Occurred
    - Py_INCREF
    - PyObject_GetItem
    - PyList_GET_ITEM
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - _PyDict_GetItemStringWithError
    - _PyModule_Clear
    - _PyInterpreterState_Get
    - PyDict_Next
    - Py_DECREF
    - PyWeakref_GET_OBJECT
    - PyErr_WriteUnraisable
    - PyImport_GetModuleDict
    - _PyModule_ClearDict
    - _PyGC_CollectNoFail
    - PyDict_Update
    - PySys_WriteStderr
    - _PyObject_CallMethodId
    - PyList_GET_SIZE
    - PyUnicode_Check
    - PyDict_Copy
    - PyDict_SetItemString
    - PyTuple_GET_ITEM
    - CLEAR_MODULE
    linkageType: ''
    returnType: void
    signature: void PyImport_Cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: STORE_MODULE_WEAKREF
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_MODULE_WEAKREF(name, mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mod
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 486
    functionName: CLEAR_MODULE
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_MODULE(name, mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/import.c:612,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:615,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:618,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:619,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/import.c:622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 608
    functionDepth: 5
    functionLinenumber: 608
    functionLinenumberEnd: 625
    functionName: PyImport_GetMagicNumber
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PyLong_AsLong
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: long
    signature: long PyImport_GetMagicNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 634
    functionName: PyImport_GetMagicTag
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PyImport_GetMagicTag(void)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/import.c:661,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/import.c:665,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/import.c:666,1
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Python/import.c:669,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/import.c:671,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Python/import.c:674,1
    - Dst: _PyState_AddModule
      Src: /src/Python-3.8.3/Python/import.c:676,1
    - Dst: PyMapping_DelItem
      Src: /src/Python-3.8.3/Python/import.c:677,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/import.c:685,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:687,1
    - Dst: PyDict_Copy
      Src: /src/Python-3.8.3/Python/import.c:690,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/import.c:694,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/import.c:697,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:698,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 4
    argNames:
    - mod
    - name
    - filename
    - modules
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 653
    functionDepth: 8
    functionLinenumber: 653
    functionLinenumberEnd: 702
    functionName: _PyImport_FixupExtensionObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyMapping_DelItem
    - PyModule_Check
    - Py_CLEAR
    - Py_DECREF
    - PyModule_GetDict
    - PyModule_GetDef
    - PyDict_New
    - PyErr_BadInternalCall
    - _PyState_AddModule
    - PyTuple_Pack
    - PyDict_SetItem
    - PyDict_Copy
    - PyObject_SetItem
    linkageType: ''
    returnType: int
    signature: "int _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,\n
      \                                PyObject *filename, PyObject *modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/import.c:709,1
    - Dst: _PyImport_FixupExtensionObject
      Src: /src/Python-3.8.3/Python/import.c:712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - mod
    - name
    - modules
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 704
    functionDepth: 9
    functionLinenumber: 704
    functionLinenumberEnd: 715
    functionName: _PyImport_FixupBuiltin
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_FixupExtensionObject
    - Py_DECREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int _PyImport_FixupBuiltin(PyObject *mod, const char *name, PyObject
      *modules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:720,1
    - Dst: _PyImport_FindExtensionObjectEx
      Src: /src/Python-3.8.3/Python/import.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - filename
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: _PyImport_FindExtensionObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_GetModuleDict
    - _PyImport_FindExtensionObjectEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_FindExtensionObject(PyObject *name, PyObject *filename)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/import.c:732,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/import.c:735,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:736,1
    - Dst: _PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:743,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:746,1
    - Dst: PyDict_Update
      Src: /src/Python-3.8.3/Python/import.c:749,1
    - Dst: PyModuleDef*::m_base::m_init
      Src: /src/Python-3.8.3/Python/import.c:755,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Python/import.c:758,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:762,1
    - Dst: _PyState_AddModule
      Src: /src/Python-3.8.3/Python/import.c:764,1
    - Dst: PyMapping_DelItem
      Src: /src/Python-3.8.3/Python/import.c:765,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/import.c:768,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/import.c:770,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - name
    - filename
    - modules
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 724
    functionDepth: 7
    functionLinenumber: 724
    functionLinenumberEnd: 775
    functionName: _PyImport_FindExtensionObjectEx
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyMapping_DelItem
    - _PyInterpreterState_Get
    - PyDict_GetItemWithError
    - Py_DECREF
    - PyModule_GetDict
    - _PyImport_AddModuleObject
    - PyModuleDef*::m_base::m_init
    - PyTuple_Pack
    - _PyState_AddModule
    - PySys_FormatStderr
    - PyDict_Update
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyImport_FindExtensionObjectEx(PyObject *name, PyObject
      *filename,\n                                PyObject *modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/import.c:781,1
    - Dst: _PyImport_FindExtensionObjectEx
      Src: /src/Python-3.8.3/Python/import.c:784,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - name
    - modules
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 777
    functionDepth: 8
    functionLinenumber: 777
    functionLinenumberEnd: 787
    functionName: _PyImport_FindBuiltin
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyImport_FindExtensionObjectEx
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_FindBuiltin(const char *name, PyObject *modules)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:798,1
    - Dst: _PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 800
    functionName: PyImport_AddModuleObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 2
    functionsReached:
    - PyImport_GetModuleDict
    - _PyImport_AddModuleObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModuleObject(PyObject *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/import.c:806,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/import.c:807,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/import.c:810,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/import.c:813,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:814,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:817,1
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/import.c:820,1
    - Dst: PyModule_NewObject
      Src: /src/Python-3.8.3/Python/import.c:823,1
    - Dst: PyObject_SetItem
      Src: /src/Python-3.8.3/Python/import.c:826,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:827,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:830,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - name
    - modules
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 802
    functionDepth: 8
    functionLinenumber: 802
    functionLinenumberEnd: 833
    functionName: _PyImport_AddModuleObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 2
    functionsReached:
    - PyModule_Check
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetItem
    - PyDict_CheckExact
    - PyModule_NewObject
    - PyErr_ExceptionMatches
    - PyErr_Clear
    - PyObject_SetItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyImport_AddModuleObject(PyObject *name, PyObject *modules)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/import.c:839,1
    - Dst: PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:842,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 845
    functionName: PyImport_AddModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - PyImport_AddModuleObject
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_AddModule(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/import.c:853,1
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:854,1
    - Dst: PyMapping_HasKey
      Src: /src/Python-3.8.3/Python/import.c:855,1
    - Dst: PyMapping_DelItem
      Src: /src/Python-3.8.3/Python/import.c:858,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/import.c:859,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/import.c:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 849
    functionDepth: 5
    functionLinenumber: 849
    functionLinenumberEnd: 864
    functionName: remove_module
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMapping_DelItem
    - PyErr_Fetch
    - PyMapping_HasKey
    - Py_FatalError
    - PyImport_GetModuleDict
    - PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void remove_module(PyObject *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ExecCodeModuleWithPathnames
      Src: /src/Python-3.8.3/Python/import.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - co
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 882
    functionName: PyImport_ExecCodeModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModuleWithPathnames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ExecCodeModule(const char *name, PyObject *co)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ExecCodeModuleWithPathnames
      Src: /src/Python-3.8.3/Python/import.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - co
    - pathname
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 889
    functionName: PyImport_ExecCodeModuleEx
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExecCodeModuleWithPathnames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ExecCodeModuleEx(const char *name, PyObject *co, const char *pathname)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/import.c:899,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/import.c:904,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/import.c:912,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/import.c:917,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:918,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/import.c:921,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:925,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:928,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:931,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:934,1
    - Dst: PyImport_ExecCodeModuleObject
      Src: /src/Python-3.8.3/Python/import.c:939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:941,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:942,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:943,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - char*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 891
    functionDepth: 4
    functionLinenumber: 891
    functionLinenumberEnd: 945
    functionName: PyImport_ExecCodeModuleWithPathnames
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_DecodeFSDefault
    - _PyObject_CallMethodIdObjArgs
    - _PyInterpreterState_GET_UNSAFE
    - Py_XDECREF
    - _Py_IDENTIFIER
    - Py_FatalError
    - PyErr_Clear
    - PyImport_ExecCodeModuleObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ExecCodeModuleWithPathnames(const char *name,
      PyObject *co,\n                                     const char *pathname,\n
      \                                    const char *cpathname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:950,1
    - Dst: PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:953,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:958,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/import.c:959,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:960,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/import.c:961,1
    - Dst: PyEval_GetBuiltins
      Src: /src/Python-3.8.3/Python/import.c:962,1
    - Dst: remove_module
      Src: /src/Python-3.8.3/Python/import.c:964,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 947
    functionDepth: 6
    functionLinenumber: 947
    functionLinenumberEnd: 970
    functionName: module_dict_for_exec
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - remove_module
    - PyErr_Occurred
    - PyModule_GetDict
    - PyImport_AddModuleObject
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyEval_GetBuiltins
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      module_dict_for_exec(PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_EvalCode
      Src: /src/Python-3.8.3/Python/import.c:977,1
    - Dst: remove_module
      Src: /src/Python-3.8.3/Python/import.c:979,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:982,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/import.c:984,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:985,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - name
    - module_dict
    - code_object
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 972
    functionDepth: 6
    functionLinenumber: 972
    functionLinenumberEnd: 992
    functionName: exec_code_in_module
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - remove_module
    - PyErr_Occurred
    - Py_DECREF
    - PyImport_GetModule
    - PyErr_Format
    - PyEval_EvalCode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      exec_code_in_module(PyObject *name, PyObject *module_dict, PyObject *code_object)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/import.c:999,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1000,1
    - Dst: module_dict_for_exec
      Src: /src/Python-3.8.3/Python/import.c:1002,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:1010,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1013,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1018,1
    - Dst: exec_code_in_module
      Src: /src/Python-3.8.3/Python/import.c:1019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - name
    - co
    - pathname
    - cpathname
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 994
    functionDepth: 7
    functionLinenumber: 994
    functionLinenumberEnd: 1022
    functionName: PyImport_ExecCodeModuleObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - module_dict_for_exec
    - exec_code_in_module
    - Py_DECREF
    - PyObject_GetAttrString
    - _PyObject_CallMethodIdObjArgs
    - _PyInterpreterState_GET_UNSAFE
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ExecCodeModuleObject(PyObject *name, PyObject
      *co, PyObject *pathname,\n                              PyObject *cpathname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Python/import.c:1031,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1034,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/import.c:1035,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/import.c:1038,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/import.c:1040,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/import.c:1041,1
    - Dst: update_code_filenames
      Src: /src/Python-3.8.3/Python/import.c:1042,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - co
    - oldname
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1045
    functionName: update_code_filenames
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_XSETREF
    - PyCode_Check
    - update_code_filenames
    - PyTuple_GET_ITEM
    - PyUnicode_Compare
    linkageType: ''
    returnType: void
    signature: void update_code_filenames(PyCodeObject *co, PyObject *oldname, PyObject
      *newname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Python/import.c:1052,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1056,1
    - Dst: update_code_filenames
      Src: /src/Python-3.8.3/Python/import.c:1057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - co
    - newname
    argTypes:
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1059
    functionName: update_compiled_module
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - update_code_filenames
    - PyUnicode_Compare
    linkageType: ''
    returnType: void
    signature: void update_compiled_module(PyCodeObject *co, PyObject *newname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update_compiled_module
      Src: /src/Python-3.8.3/Python/import.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - code
    - path
    argTypes:
    - PyObject*
    - PyCodeObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1083
    functionName: _imp__fix_co_filename_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - update_compiled_module
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_imp__fix_co_filename_impl(PyObject *module, PyCodeObject
      *code,\n                           PyObject *path)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1105
    functionName: is_builtin
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: int
    signature: int is_builtin(PyObject *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:1125,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/import.c:1125,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:1126,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/import.c:1126,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Python/import.c:1128,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/import.c:1132,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1133,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/import.c:1137,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Python/import.c:1141,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1144,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/import.c:1148,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/import.c:1151,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/import.c:1157,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1158,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - path_importer_cache
    - path_hooks
    - p
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyList_Check(path_hooks))
      pos:
        line_end: 1124
        line_start: 1124
        source_file: /src/Python-3.8.3/Python/import.c
    - condition: (PyDict_Check(path_importer_cache))
      pos:
        line_end: 1125
        line_start: 1125
        source_file: /src/Python-3.8.3/Python/import.c
    constantsTouched: []
    func_position:
      end: 1163
      start: 1117
    functionDepth: 5
    functionLinenumber: 1117
    functionLinenumberEnd: 1163
    functionName: get_path_importer
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_Check
    - PyList_Check
    - PyList_Size
    - PyList_GetItem
    - PyObject_CallFunctionObjArgs
    - PyDict_SetItem
    - PyErr_ExceptionMatches
    - assert
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_path_importer(PyObject *path_importer_cache, PyObject
      *path_hooks,\n                  PyObject *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:1169,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:1170,1
    - Dst: get_path_importer
      Src: /src/Python-3.8.3/Python/import.c:1172,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1165
    functionDepth: 6
    functionLinenumber: 1165
    functionLinenumberEnd: 1177
    functionName: PyImport_GetImporter
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - get_path_importer
    - Py_XINCREF
    - PySys_GetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_GetImporter(PyObject *path)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:1197,1
    - Dst: _PyImport_FindExtensionObject
      Src: /src/Python-3.8.3/Python/import.c:1202,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1204,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:1205,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/import.c:1209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1211,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1218,1
    - Dst: PyImport_AddModule
      Src: /src/Python-3.8.3/Python/import.c:1221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1227,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/import.c:1230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1231,1
    - Dst: PyModule_FromDefAndSpec
      Src: /src/Python-3.8.3/Python/import.c:1232,1
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Python/import.c:1235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1237,1
    - Dst: PyImport_GetModuleDict
      Src: /src/Python-3.8.3/Python/import.c:1242,1
    - Dst: _PyImport_FixupExtensionObject
      Src: /src/Python-3.8.3/Python/import.c:1244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1254,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - module
    - spec
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1188
    functionDepth: 9
    functionLinenumber: 1188
    functionLinenumberEnd: 1256
    functionName: _imp_create_builtin
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - PyImport_AddModule
    - PyModule_FromDefAndSpec
    - PyUnicode_AsUTF8
    - PyModule_GetDef
    - PyObject_TypeCheck
    - PyImport_GetModuleDict
    - _PyImport_FindExtensionObject
    - _PyImport_FixupExtensionObject
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_create_builtin(PyObject *module, PyObject *spec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1261
    functionDepth: 3
    functionLinenumber: 1261
    functionLinenumberEnd: 1276
    functionName: find_frozen
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    linkageType: ''
    returnType: struct _frozen
    signature: 'struct _frozen *

      find_frozen(PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/Python-3.8.3/Python/import.c:1281,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1285,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1291,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/Python-3.8.3/Python/import.c:1299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1278
    functionDepth: 4
    functionLinenumber: 1278
    functionLinenumberEnd: 1300
    functionName: get_frozen_object
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMarshal_ReadObjectFromString
    - PyErr_Format
    - find_frozen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_frozen_object(PyObject *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/Python-3.8.3/Python/import.c:1305,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1302
    functionDepth: 4
    functionLinenumber: 1302
    functionLinenumberEnd: 1321
    functionName: is_frozen_package
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - find_frozen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      is_frozen_package(PyObject *name)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/Python-3.8.3/Python/import.c:1337,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1342,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/Python-3.8.3/Python/import.c:1351,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/import.c:1354,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1355,1
    - Dst: PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:1364,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:1367,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:1368,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:1372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1373,1
    - Dst: module_dict_for_exec
      Src: /src/Python-3.8.3/Python/import.c:1377,1
    - Dst: exec_code_in_module
      Src: /src/Python-3.8.3/Python/import.c:1381,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1384,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1388,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1329
    functionDepth: 7
    functionLinenumber: 1329
    functionLinenumberEnd: 1390
    functionName: PyImport_ImportFrozenModuleObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - module_dict_for_exec
    - exec_code_in_module
    - Py_DECREF
    - PyModule_GetDict
    - PyImport_AddModuleObject
    - PyMarshal_ReadObjectFromString
    - PyErr_Format
    - PyList_New
    - PyDict_SetItemString
    - PyCode_Check
    - find_frozen
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModuleObject(PyObject *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/import.c:1397,1
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/Python-3.8.3/Python/import.c:1400,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1392
    functionDepth: 8
    functionLinenumber: 1392
    functionLinenumberEnd: 1403
    functionName: PyImport_ImportFrozenModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 1
    functionsReached:
    - PyImport_ImportFrozenModuleObject
    - Py_DECREF
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int PyImport_ImportFrozenModule(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/import.c:1415,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Python/import.c:1418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1409
    functionDepth: 2
    functionLinenumber: 1409
    functionLinenumberEnd: 1421
    functionName: PyImport_ImportModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 36
    functionsReached:
    - PyImport_Import
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModule(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/import.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1436
    functionName: PyImport_ImportModuleNoBlock
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 17
    functionsReached:
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ImportModuleNoBlock(const char *name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/import.c:1456,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Python/import.c:1461,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/import.c:1474,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/import.c:1474,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1475,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1476,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/import.c:1485,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:1486,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/import.c:1487,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/import.c:1496,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts:
    - condition: (PyTraceBack_Check(tb))
      pos:
        line_end: 1473
        line_start: 1473
        source_file: /src/Python-3.8.3/Python/import.c
    constantsTouched: []
    func_position:
      end: 1497
      start: 1441
    functionDepth: 3
    functionLinenumber: 1441
    functionLinenumberEnd: 1497
    functionName: remove_importlib_frames
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - Py_XSETREF
    - PyErr_Fetch
    - PyTraceBack_Check
    - PyErr_Restore
    - PyType_IsSubtype
    - assert
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void remove_importlib_frames(PyInterpreterState *interp)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1503,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1504,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1505,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1506,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1507,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1516,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/import.c:1519,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1520,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/import.c:1523,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1527,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/import.c:1530,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1531,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1536,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/import.c:1537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1538,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/import.c:1543,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/import.c:1548,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1549,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/import.c:1554,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/import.c:1562,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/import.c:1566,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1567,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/import.c:1573,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/import.c:1579,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1581,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1582,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1587,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/import.c:1588,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1589,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/import.c:1593,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1596,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/import.c:1596,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/import.c:1600,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1601,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/import.c:1608,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/import.c:1612,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1616,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/import.c:1622,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1627,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/import.c:1634,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1635,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1636,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/import.c:1640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1641,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1650,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 138
    argCount: 3
    argNames:
    - name
    - globals
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1500
    functionDepth: 8
    functionLinenumber: 1500
    functionLinenumberEnd: 1652
    functionName: resolve_name
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - Py_DECREF
    - PyUnicode_READY
    - Py_INCREF
    - _PyObject_GetAttrId
    - PyUnicode_FindChar
    - Py_SETREF
    - Py_XDECREF
    - PyDict_Check
    - _Py_IDENTIFIER
    - PyUnicode_Substring
    - PyUnicode_FromFormat
    - PyObject_RichCompareBool
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_GET_LENGTH
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      resolve_name(PyObject *name, PyObject *globals, int level)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1657,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/import.c:1659,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:1666,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:1667,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/import.c:1668,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/import.c:1669,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/import.c:1685,1
    - Dst: _PyTime_GetPerfCounter
      Src: /src/Python-3.8.3/Python/import.c:1691,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
      Src: /src/Python-3.8.3/Python/import.c:1695,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_START
      Src: /src/Python-3.8.3/Python/import.c:1696,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/import.c:1696,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1698,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
      Src: /src/Python-3.8.3/Python/import.c:1702,1
    - Dst: PyDTrace_IMPORT_FIND_LOAD_DONE
      Src: /src/Python-3.8.3/Python/import.c:1703,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/import.c:1703,1
    - Dst: _PyTime_GetPerfCounter
      Src: /src/Python-3.8.3/Python/import.c:1707,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/import.c:1710,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Python/import.c:1711,1
    - Dst: _PyTime_AsMicroseconds
      Src: /src/Python-3.8.3/Python/import.c:1712,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/import.c:1713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - abs_name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1654
    functionDepth: 4
    functionLinenumber: 1654
    functionLinenumberEnd: 1719
    functionName: import_find_and_load
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyDTrace_IMPORT_FIND_LOAD_DONE
    - PyUnicode_AsUTF8
    - _PyInterpreterState_GET_UNSAFE
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - _PyTime_GetPerfCounter
    - PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
    - PySys_GetObject
    - fprintf
    - _PyTime_AsMicroseconds
    - PySys_Audit
    - fputs
    - PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
    - PyDTrace_IMPORT_FIND_LOAD_START
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      import_find_and_load(PyObject *abs_name)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1726,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/import.c:1731,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1735,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/import.c:1742,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1743,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/import.c:1746,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1750,1
    - Dst: resolve_name
      Src: /src/Python-3.8.3/Python/import.c:1755,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1760,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/import.c:1761,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1765,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/import.c:1768,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1769,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1774,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1775,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/import.c:1783,1
    - Dst: _PyModuleSpec_IsInitializing
      Src: /src/Python-3.8.3/Python/import.c:1784,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1792,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1794,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1797,1
    - Dst: import_find_and_load
      Src: /src/Python-3.8.3/Python/import.c:1798,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/import.c:1806,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1811,1
    - Dst: PyUnicode_FindChar
      Src: /src/Python-3.8.3/Python/import.c:1815,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1823,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/import.c:1828,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/Python-3.8.3/Python/import.c:1833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1834,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/import.c:1838,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/import.c:1839,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/import.c:1845,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1846,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1848,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/import.c:1849,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1859,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1863,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/import.c:1865,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1869,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1870,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1876,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1881,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1882,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:1883,1
    - Dst: remove_importlib_frames
      Src: /src/Python-3.8.3/Python/import.c:1885,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 130
    argCount: 5
    argNames:
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1721
    functionDepth: 9
    functionLinenumber: 1721
    functionLinenumberEnd: 1888
    functionName: PyImport_ImportModuleLevelObject
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 2
    functionsReached:
    - PyUnicode_READY
    - _PyObject_GetAttrId
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyImport_ImportModuleLevelObject
    - PyErr_Occurred
    - import_find_and_load
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PyUnicode_Substring
    - PyErr_Format
    - Py_XDECREF
    - PyUnicode_GET_LENGTH
    - remove_importlib_frames
    - Py_DECREF
    - PyUnicode_FindChar
    - _PyObject_CallMethodIdObjArgs
    - resolve_name
    - PyImport_GetModule
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    - _PyModuleSpec_IsInitializing
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ImportModuleLevelObject(PyObject *name, PyObject
      *globals,\n                                 PyObject *locals, PyObject *fromlist,\n
      \                                int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/import.c:1895,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/Python-3.8.3/Python/import.c:1898,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - name
    - globals
    - locals
    - fromlist
    - level
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1890
    functionDepth: 10
    functionLinenumber: 1890
    functionLinenumberEnd: 1902
    functionName: PyImport_ImportModuleLevel
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyImport_ImportModuleLevelObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyImport_ImportModuleLevel(const char *name, PyObject
      *globals, PyObject *locals,\n                           PyObject *fromlist,
      int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1911,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/import.c:1912,1
    - Dst: _PyImport_GetModuleId
      Src: /src/Python-3.8.3/Python/import.c:1914,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:1916,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/import.c:1920,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/import.c:1926,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:1927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1908
    functionDepth: 4
    functionLinenumber: 1908
    functionLinenumberEnd: 1929
    functionName: PyImport_ReloadModule
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - _PyImport_GetModuleId
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_ReloadModule(PyObject *m)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/import.c:1954,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/import.c:1957,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:1960,1
    - Dst: PyEval_GetGlobals
      Src: /src/Python-3.8.3/Python/import.c:1966,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/import.c:1968,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/import.c:1969,1
    - Dst: PyImport_ImportModuleLevel
      Src: /src/Python-3.8.3/Python/import.c:1975,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/import.c:1979,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/import.c:1985,1
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/import.c:1986,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/import.c:1988,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Python/import.c:1991,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/import.c:1998,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2002,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/import.c:2004,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:2005,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/import.c:2006,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:2010,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:2011,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:2012,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - module_name
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1941
    functionDepth: 11
    functionLinenumber: 1941
    functionLinenumberEnd: 2015
    functionName: PyImport_Import
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 6
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyDict_Check
    - PyObject_GetItem
    - PyErr_SetObject
    - PyImport_GetModule
    - PyObject_CallFunction
    - PyEval_GetGlobals
    - PyUnicode_InternFromString
    - PyList_New
    - Py_XDECREF
    - PyObject_GetAttr
    - PyImport_ImportModuleLevel
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyImport_Import(PyObject *module_name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/import.c:2029,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/import.c:2037,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2039,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/import.c:2042,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2043,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2047,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2023
    functionDepth: 4
    functionLinenumber: 2023
    functionLinenumberEnd: 2052
    functionName: _imp_extension_suffixes_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_Append
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_extension_suffixes_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportFrozenModuleObject
      Src: /src/Python-3.8.3/Python/import.c:2070,1
    - Dst: PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/import.c:2076,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:2077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 2063
    functionDepth: 8
    functionLinenumber: 2063
    functionLinenumberEnd: 2079
    functionName: _imp_init_frozen_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_AddModuleObject
    - Py_XINCREF
    - PyImport_ImportFrozenModuleObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_init_frozen_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_frozen_object
      Src: /src/Python-3.8.3/Python/import.c:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2090
    functionDepth: 5
    functionLinenumber: 2090
    functionLinenumberEnd: 2095
    functionName: _imp_get_frozen_object_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - get_frozen_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_get_frozen_object_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_frozen_package
      Src: /src/Python-3.8.3/Python/import.c:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2106
    functionDepth: 5
    functionLinenumber: 2106
    functionLinenumberEnd: 2111
    functionName: _imp_is_frozen_package_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - is_frozen_package
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_package_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/import.c:2126,1
    - Dst: is_builtin
      Src: /src/Python-3.8.3/Python/import.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2122
    functionDepth: 4
    functionLinenumber: 2122
    functionLinenumberEnd: 2127
    functionName: _imp_is_builtin_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - is_builtin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_builtin_impl(PyObject *module, PyObject *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_frozen
      Src: /src/Python-3.8.3/Python/import.c:2144,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/import.c:2145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2146
    functionName: _imp_is_frozen_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - find_frozen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_impl(PyObject *module, PyObject *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/import.c:2154,1
    - Dst: PyModule_GetDef
      Src: /src/Python-3.8.3/Python/import.c:2158,1
    - Dst: PyModule_GetState
      Src: /src/Python-3.8.3/Python/import.c:2163,1
    - Dst: PyModule_ExecDef
      Src: /src/Python-3.8.3/Python/import.c:2169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2149
    functionDepth: 2
    functionLinenumber: 2149
    functionLinenumberEnd: 2170
    functionName: exec_builtin_or_dynamic
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyModule_Check
    - PyModule_GetDef
    - PyModule_ExecDef
    - PyModule_GetState
    linkageType: ''
    returnType: int
    signature: int exec_builtin_or_dynamic(PyObject *mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:2191,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/import.c:2196,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2198,1
    - Dst: _PyImport_FindExtensionObject
      Src: /src/Python-3.8.3/Python/import.c:2202,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/import.c:2203,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2205,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/import.c:2206,1
    - Dst: _Py_fopen_obj
      Src: /src/Python-3.8.3/Python/import.c:2211,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2214,1
    - Dst: _PyImport_LoadDynamicModuleWithSpec
      Src: /src/Python-3.8.3/Python/import.c:2221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2224,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/import.c:2226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - module
    - spec
    - file
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2184
    functionDepth: 10
    functionLinenumber: 2184
    functionLinenumberEnd: 2228
    functionName: _imp_create_dynamic_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyImport_LoadDynamicModuleWithSpec
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - _Py_fopen_obj
    - fclose
    - _PyImport_FindExtensionObject
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exec_builtin_or_dynamic
      Src: /src/Python-3.8.3/Python/import.c:2243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2239
    functionDepth: 3
    functionLinenumber: 2239
    functionLinenumberEnd: 2244
    functionName: _imp_exec_dynamic_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - exec_builtin_or_dynamic
    linkageType: ''
    returnType: int
    signature: int _imp_exec_dynamic_impl(PyObject *module, PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exec_builtin_or_dynamic
      Src: /src/Python-3.8.3/Python/import.c:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2258
    functionDepth: 3
    functionLinenumber: 2258
    functionLinenumberEnd: 2263
    functionName: _imp_exec_builtin_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - exec_builtin_or_dynamic
    linkageType: ''
    returnType: int
    signature: int _imp_exec_builtin_impl(PyObject *module, PyObject *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_KeyedHash
      Src: /src/Python-3.8.3/Python/import.c:2280,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/import.c:2290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - key
    - source
    argTypes:
    - PyObject*
    - long
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2272
    functionDepth: 3
    functionLinenumber: 2272
    functionLinenumberEnd: 2291
    functionName: _imp_source_hash_impl
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - _Py_KeyedHash
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_source_hash_impl(PyObject *module, long key, Py_buffer *source)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Python/import.c:2334,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/import.c:2338,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/import.c:2343,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/import.c:2344,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/import.c:2348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2349,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/import.c:2352,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/import.c:2356,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2329
    functionDepth: 6
    functionLinenumber: 2329
    functionLinenumberEnd: 2358
    functionName: PyInit__imp
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - Py_DECREF
    - PyModule_GetDict
    - PyModule_Create
    - PyUnicode_FromWideChar
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__imp(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/import.c:2386,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Python/import.c:2392,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/import.c:2402,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/import.c:2404,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/import.c:2408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - newtab
    argTypes:
    - struct _inittab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2368
    functionDepth: 3
    functionLinenumber: 2368
    functionLinenumberEnd: 2410
    functionName: PyImport_ExtendInittab
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyMem_RawRealloc
    - _PyMem_SetDefaultAllocator
    - memcpy
    - PyMem_SetAllocator
    linkageType: ''
    returnType: int
    signature: int PyImport_ExtendInittab(struct _inittab *newtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/import.c:2419,1
    - Dst: PyImport_ExtendInittab
      Src: /src/Python-3.8.3/Python/import.c:2424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - name
    - (*initfunc)(void)
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2414
    functionDepth: 4
    functionLinenumber: 2414
    functionLinenumberEnd: 2425
    functionName: PyImport_AppendInittab
    functionSourceFile: /src/Python-3.8.3/Python/import.c
    functionUses: 0
    functionsReached:
    - PyImport_ExtendInittab
    - memset
    linkageType: ''
    returnType: int
    signature: int PyImport_AppendInittab(const char *name, PyObject* (*initfunc)(void))
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/structmember.c:16,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/structmember.c:19,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:22,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/structmember.c:25,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:28,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/structmember.c:31,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:34,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/structmember.c:37,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:40,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/structmember.c:43,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/structmember.c:46,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/structmember.c:49,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/structmember.c:53,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/structmember.c:57,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/structmember.c:60,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/structmember.c:63,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/structmember.c:69,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:74,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/structmember.c:75,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Python/structmember.c:78,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Python/structmember.c:81,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/structmember.c:85,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:88,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 2
    argNames:
    - addr
    - l
    argTypes:
    - char*
    - PyMemberDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 8
    functionDepth: 4
    functionLinenumber: 8
    functionLinenumberEnd: 92
    functionName: PyMember_GetOne
    functionSourceFile: /src/Python-3.8.3/Python/structmember.c
    functionUses: 1
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - PyFloat_FromDouble
    - PyErr_SetString
    - PyLong_FromUnsignedLong
    - PyBool_FromLong
    - PyLong_FromSsize_t
    - Py_XINCREF
    - PyLong_FromLongLong
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMember_GetOne(const char *addr, PyMemberDef *l)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: WARN
    functionSourceFile: /src/Python-3.8.3/Python/structmember.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(msg)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:116,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:121,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Python/structmember.c:128,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:129,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:140,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:141,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:147,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:151,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:152,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:156,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:160,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:161,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:165,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:169,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:170,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:174,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:178,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:179,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:183,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:187,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:188,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/structmember.c:191,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:192,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:194,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:197,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:201,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:205,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:206,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/Python/structmember.c:211,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:213,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/structmember.c:216,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:217,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:219,1
    - Dst: WARN
      Src: /src/Python-3.8.3/Python/structmember.c:221,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/structmember.c:226,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:228,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/structmember.c:233,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:234,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/structmember.c:240,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:241,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/structmember.c:246,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/structmember.c:249,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/structmember.c:255,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Python/structmember.c:257,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/structmember.c:265,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Python/structmember.c:269,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:270,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/structmember.c:278,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/Python/structmember.c:279,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/structmember.c:281,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/structmember.c:282,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/structmember.c:287,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 156
    argCount: 3
    argNames:
    - addr
    - l
    - v
    argTypes:
    - char*
    - PyMemberDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 292
    functionName: PyMember_SetOne
    functionSourceFile: /src/Python-3.8.3/Python/structmember.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - PyLong_AsUnsignedLong
    - PyFloat_AsDouble
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_XDECREF
    - PyErr_BadArgument
    - PyLong_AsSsize_t
    - PyLong_AsLongLong
    - WARN
    - PyLong_AsUnsignedLongLong
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_AsUTF8AndSize
    - PyErr_Clear
    - Py_XINCREF
    - PyBool_Check
    linkageType: ''
    returnType: int
    signature: int PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 278
    functionName: IS_ARRAY_NODE
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ARRAY_NODE(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 279
    functionName: IS_BITMAP_NODE
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BITMAP_NODE(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 280
    functionName: IS_COLLISION_NODE
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COLLISION_NODE(node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CAST
      Src: /src/Python-3.8.3/Python/hamt.c:378,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:379,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:379,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - obj_raw
    argTypes:
    - void*
    assertStmts:
    - condition: (count == node->a_count)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (IS_ARRAY_NODE(obj))
      pos:
        line_end: 378
        line_start: 378
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: _hamt_node_array_validate
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - IS_ARRAY_NODE
    - _PyObject_CAST
    linkageType: ''
    returnType: void
    signature: void _hamt_node_array_validate(void *obj_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: VALIDATE_ARRAY_NODE
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALIDATE_ARRAY_NODE(NODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Python/hamt.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 423
    functionName: hamt_hash
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    linkageType: ''
    returnType: int32_t
    signature: int32_t hamt_hash(PyObject *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - shift
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: hamt_mask
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hamt_mask(int32_t hash, uint32_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_mask
      Src: /src/Python-3.8.3/Python/hamt.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hash
    - shift
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: hamt_bitpos
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_mask
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hamt_bitpos(int32_t hash, uint32_t shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 455
    functionName: hamt_bitcount
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hamt_bitcount(uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_bitcount
      Src: /src/Python-3.8.3/Python/hamt.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bitmap
    - bit
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: hamt_bitindex
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_bitcount
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hamt_bitindex(uint32_t bitmap, uint32_t bit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/hamt.c:476,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/hamt.c:481,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Python/hamt.c:486,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/hamt.c:491,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:494,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:495,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - level
    argTypes:
    - _PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 498
    functionName: _hamt_dump_ident
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - _PyUnicodeWriter_WriteStr
    - PyNumber_Multiply
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _hamt_dump_ident(_PyUnicodeWriter *writer, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/hamt.c:511,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/hamt.c:513,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/hamt.c:515,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/hamt.c:516,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/hamt.c:522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - _PyUnicodeWriter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 500
    functionDepth: 7
    functionLinenumber: 500
    functionLinenumberEnd: 525
    functionName: _hamt_dump_format
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - va_start
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: int _hamt_dump_format(_PyUnicodeWriter *writer, const char *format,
      ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:539,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:540,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:543,1
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Python/hamt.c:548,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:554,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/hamt.c:562,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - size
    argTypes:
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 0)
      pos:
        line_end: 538
        line_start: 538
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (size % 2 == 0)
      pos:
        line_end: 539
        line_start: 539
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 573
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 573
    functionName: hamt_node_bitmap_new
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_NewVar
    - Py_INCREF
    - _PyObject_GC_TRACK
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_bitmap_new(Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: hamt_node_bitmap_count
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_node_bitmap_count(PyHamtNode_Bitmap *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:589,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:589,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:594,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 601
    functionName: hamt_node_bitmap_clone
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_new
    - Py_XINCREF
    - Py_SIZE
    linkageType: ''
    returnType: PyHamtNode_Bitmap
    signature: 'PyHamtNode_Bitmap *

      hamt_node_bitmap_clone(PyHamtNode_Bitmap *node)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:606,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:607,1
    - Dst: hamt_node_bitmap_count
      Src: /src/Python-3.8.3/Python/hamt.c:607,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:609,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:610,1
    - Dst: hamt_bitindex
      Src: /src/Python-3.8.3/Python/hamt.c:615,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:621,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:625,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:625,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:625,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:626,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - o
    - bit
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    assertStmts:
    - condition: (bit & o->b_bitmap)
      pos:
        line_end: 605
        line_start: 605
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (hamt_node_bitmap_count(o) > 1)
      pos:
        line_end: 606
        line_start: 606
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (Py_SIZE(o) >= 0 && Py_SIZE(o) <= 32)
      pos:
        line_end: 624
        line_start: 624
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 633
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 633
    functionName: hamt_node_bitmap_clone_without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_bitmap_count
    - hamt_node_bitmap_new
    - hamt_bitindex
    - assert
    - Py_SIZE
    - Py_XINCREF
    linkageType: ''
    returnType: PyHamtNode_Bitmap
    signature: 'PyHamtNode_Bitmap *

      hamt_node_bitmap_clone_without(PyHamtNode_Bitmap *o, uint32_t bit)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/Python-3.8.3/Python/hamt.c:649,1
    - Dst: hamt_node_collision_new
      Src: /src/Python-3.8.3/Python/hamt.c:656,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:661,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:666,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:668,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:675,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:680,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:682,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:687,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 6
    argNames:
    - shift
    - key1
    - val1
    - key2_hash
    - key2
    - val2
    argTypes:
    - uint32_t
    - PyObject*
    - PyObject*
    - int32_t
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 695
    functionName: hamt_node_new_bitmap_or_collision
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - Py_DECREF
    - Py_INCREF
    - hamt_node_bitmap_new
    - hamt_node_collision_new
    - hamt_node_assoc
    linkageType: ''
    returnType: PyHamtNode
    signature: "PyHamtNode *\nhamt_node_new_bitmap_or_collision(uint32_t shift,\n
      \                                 PyObject *key1, PyObject *val1,\n                                  int32_t
      key2_hash,\n                                  PyObject *key2, PyObject *val2)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: hamt_bitpos
      Src: /src/Python-3.8.3/Python/hamt.c:711,1
    - Dst: hamt_bitindex
      Src: /src/Python-3.8.3/Python/hamt.c:712,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:734,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:734,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:743,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:745,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:753,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:754,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/Python-3.8.3/Python/hamt.c:758,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:762,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:766,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/hamt.c:770,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:777,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/Python-3.8.3/Python/hamt.c:783,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:787,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:788,1
    - Dst: hamt_node_new_bitmap_or_collision
      Src: /src/Python-3.8.3/Python/hamt.c:800,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/Python-3.8.3/Python/hamt.c:810,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:812,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:815,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:816,1
    - Dst: hamt_bitcount
      Src: /src/Python-3.8.3/Python/hamt.c:824,1
    - Dst: hamt_mask
      Src: /src/Python-3.8.3/Python/hamt.c:842,1
    - Dst: hamt_node_array_new
      Src: /src/Python-3.8.3/Python/hamt.c:851,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:858,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:865,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:879,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:884,1
    - Dst: hamt_hash
      Src: /src/Python-3.8.3/Python/hamt.c:887,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:892,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:907,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:913,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:915,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:933,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:941,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:946,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:948,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:953,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:953,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:953,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:954,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:955,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 113
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (val_or_node != NULL)
      pos:
        line_end: 742
        line_start: 742
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (new_node->a_array[i] == NULL)
      pos:
        line_end: 878
        line_start: 878
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (Py_SIZE(self) >= 0 && Py_SIZE(self) <= 32)
      pos:
        line_end: 952
        line_start: 952
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (val_idx < (size_t)Py_SIZE(self))
      pos:
        line_end: 733
        line_start: 733
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 963
      start: 697
    functionDepth: 5
    functionLinenumber: 697
    functionLinenumberEnd: 963
    functionName: hamt_node_bitmap_assoc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_hash
    - hamt_node_bitmap_clone
    - hamt_node_array_new
    - hamt_node_assoc
    - VALIDATE_ARRAY_NODE
    - hamt_mask
    - Py_INCREF
    - hamt_node_new_bitmap_or_collision
    - assert
    - Py_XDECREF
    - Py_DECREF
    - hamt_node_bitmap_new
    - hamt_bitcount
    - Py_SIZE
    - Py_SETREF
    - hamt_bitpos
    - PyObject_RichCompareBool
    - hamt_bitindex
    - Py_XINCREF
    linkageType: ''
    returnType: PyHamtNode
    signature: "PyHamtNode *\nhamt_node_bitmap_assoc(PyHamtNode_Bitmap *self,\n                       uint32_t
      shift, int32_t hash,\n                       PyObject *key, PyObject *val, int*
      added_leaf)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: hamt_bitpos
      Src: /src/Python-3.8.3/Python/hamt.c:971,1
    - Dst: hamt_bitindex
      Src: /src/Python-3.8.3/Python/hamt.c:976,1
    - Dst: hamt_node_without
      Src: /src/Python-3.8.3/Python/hamt.c:989,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:1009,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1012,1
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1014,1
    - Dst: hamt_node_bitmap_count
      Src: /src/Python-3.8.3/Python/hamt.c:1016,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/Python-3.8.3/Python/hamt.c:1028,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1030,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1037,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/hamt.c:1038,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1039,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:1040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1042,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1053,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1054,1
    - Dst: hamt_node_collision_count
      Src: /src/Python-3.8.3/Python/hamt.c:1054,1
    - Dst: hamt_node_bitmap_clone
      Src: /src/Python-3.8.3/Python/hamt.c:1059,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:1064,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1073,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:1077,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/hamt.c:1083,1
    - Dst: hamt_node_bitmap_count
      Src: /src/Python-3.8.3/Python/hamt.c:1091,1
    - Dst: hamt_node_bitmap_clone_without
      Src: /src/Python-3.8.3/Python/hamt.c:1096,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (sub_node != NULL)
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1072
        line_start: 1072
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: "(hamt_node_collision_count(\n                            (PyHamtNode_Collision*)sub_node)
        > 1)"
      pos:
        line_end: 1054
        line_start: 1053
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1103
      start: 965
    functionDepth: 4
    functionLinenumber: 965
    functionLinenumberEnd: 1103
    functionName: hamt_node_bitmap_without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_XSETREF
    - hamt_node_without
    - hamt_node_bitmap_count
    - hamt_node_bitmap_clone_without
    - hamt_bitpos
    - Py_UNREACHABLE
    - hamt_node_bitmap_clone
    - IS_BITMAP_NODE
    - PyObject_RichCompareBool
    - hamt_bitindex
    - hamt_node_collision_count
    - assert
    - Py_SETREF
    - IS_COLLISION_NODE
    linkageType: ''
    returnType: hamt_without_t
    signature: "hamt_without_t hamt_node_bitmap_without(PyHamtNode_Bitmap *self,\n
      \                        uint32_t shift, int32_t hash,\n                         PyObject
      *key,\n                         PyHamtNode **new_node)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hamt_bitpos
      Src: /src/Python-3.8.3/Python/hamt.c:1112,1
    - Dst: hamt_bitindex
      Src: /src/Python-3.8.3/Python/hamt.c:1124,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1128,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1128,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1136,1
    - Dst: hamt_node_find
      Src: /src/Python-3.8.3/Python/hamt.c:1137,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1143,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/hamt.c:1144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    argTypes:
    - PyHamtNode_Bitmap*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (val_idx < (size_t)Py_SIZE(self))
      pos:
        line_end: 1127
        line_start: 1127
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (val_or_node != NULL)
      pos:
        line_end: 1135
        line_start: 1135
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (key != NULL)
      pos:
        line_end: 1142
        line_start: 1142
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1154
      start: 1105
    functionDepth: 4
    functionLinenumber: 1105
    functionLinenumberEnd: 1154
    functionName: hamt_node_bitmap_find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_find
    - hamt_bitpos
    - PyObject_RichCompareBool
    - hamt_bitindex
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: hamt_find_t
    signature: "hamt_find_t hamt_node_bitmap_find(PyHamtNode_Bitmap *self,\n                      uint32_t
      shift, int32_t hash,\n                      PyObject *key, PyObject **val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1163,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/hamt.c:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyHamtNode_Bitmap*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1168
    functionName: hamt_node_bitmap_traverse
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: int hamt_node_bitmap_traverse(PyHamtNode_Bitmap *self, visitproc visit,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1175,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/hamt.c:1178,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Python/hamt.c:1179,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1184,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/hamt.c:1188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtNode_Bitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1170
    functionDepth: 2
    functionLinenumber: 1170
    functionLinenumberEnd: 1190
    functionName: hamt_node_bitmap_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_TYPE
    - Py_SIZE
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void hamt_node_bitmap_dealloc(PyHamtNode_Bitmap *self)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:1203,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1207,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1208,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1208,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/hamt.c:1213,1
    - Dst: _PyLong_Format
      Src: /src/Python-3.8.3/Python/hamt.c:1217,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1218,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1226,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1228,1
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:1232,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1237,1
    - Dst: hamt_node_dump
      Src: /src/Python-3.8.3/Python/hamt.c:1241,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1248,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1255,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Bitmap*
    - _PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1193
    functionDepth: 8
    functionLinenumber: 1193
    functionLinenumberEnd: 1263
    functionName: hamt_node_bitmap_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyLong_Format
    - _hamt_dump_ident
    - Py_DECREF
    - Py_SIZE
    - PyLong_FromUnsignedLong
    - hamt_node_dump
    - _hamt_dump_format
    linkageType: ''
    returnType: int
    signature: "int hamt_node_bitmap_dump(PyHamtNode_Bitmap *node,\n                      _PyUnicodeWriter
      *writer, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1278,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1279,1
    - Dst: PyObject_GC_NewVar
      Src: /src/Python-3.8.3/Python/hamt.c:1281,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1291,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/hamt.c:1294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - hash
    - size
    argTypes:
    - int32_t
    - Py_ssize_t
    assertStmts:
    - condition: (size >= 4)
      pos:
        line_end: 1277
        line_start: 1277
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (size % 2 == 0)
      pos:
        line_end: 1278
        line_start: 1278
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1297
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1297
    functionName: hamt_node_collision_new
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyObject_GC_TRACK
    - Py_SIZE
    - PyObject_GC_NewVar
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_collision_new(int32_t hash, Py_ssize_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1309,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1312,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/hamt.c:1313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - idx
    argTypes:
    - PyHamtNode_Collision*
    - PyObject*
    - Py_ssize_t*
    assertStmts:
    - condition: (el != NULL)
      pos:
        line_end: 1311
        line_start: 1311
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1324
      start: 1299
    functionDepth: 4
    functionLinenumber: 1299
    functionLinenumberEnd: 1324
    functionName: hamt_node_collision_find_index
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - PyObject_RichCompareBool
    linkageType: ''
    returnType: hamt_find_t
    signature: "hamt_find_t hamt_node_collision_find_index(PyHamtNode_Collision *self,
      PyObject *key,\n                               Py_ssize_t *idx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hamt_node_collision_find_index
      Src: /src/Python-3.8.3/Python/hamt.c:1344,1
    - Dst: hamt_node_collision_new
      Src: /src/Python-3.8.3/Python/hamt.c:1354,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1355,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1360,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1361,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1365,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1367,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1376,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1377,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1377,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1382,1
    - Dst: hamt_node_collision_new
      Src: /src/Python-3.8.3/Python/hamt.c:1388,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1389,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1395,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1401,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1402,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:1408,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:1423,1
    - Dst: hamt_bitpos
      Src: /src/Python-3.8.3/Python/hamt.c:1427,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1428,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:1431,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1433,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Collision*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (key_idx >= 0)
      pos:
        line_end: 1375
        line_start: 1375
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (key_idx < Py_SIZE(self))
      pos:
        line_end: 1376
        line_start: 1376
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1436
      start: 1326
    functionDepth: 6
    functionLinenumber: 1326
    functionLinenumberEnd: 1436
    functionName: hamt_node_collision_assoc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - hamt_node_bitmap_new
    - hamt_bitpos
    - Py_UNREACHABLE
    - hamt_node_collision_find_index
    - hamt_node_bitmap_assoc
    - hamt_node_collision_new
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: PyHamtNode
    signature: "PyHamtNode *\nhamt_node_collision_assoc(PyHamtNode_Collision *self,\n
      \                         uint32_t shift, int32_t hash,\n                          PyObject
      *key, PyObject *val, int* added_leaf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Collision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1442
    functionName: hamt_node_collision_count
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 1
    functionsReached:
    - Py_SIZE
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_node_collision_count(PyHamtNode_Collision *node)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: hamt_node_collision_find_index
      Src: /src/Python-3.8.3/Python/hamt.c:1455,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1465,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1466,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1466,1
    - Dst: hamt_node_collision_count
      Src: /src/Python-3.8.3/Python/hamt.c:1468,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:1485,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1491,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1493,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1497,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1498,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1500,1
    - Dst: hamt_bitpos
      Src: /src/Python-3.8.3/Python/hamt.c:1504,1
    - Dst: hamt_node_collision_new
      Src: /src/Python-3.8.3/Python/hamt.c:1513,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1514,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1522,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1525,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1526,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:1534,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Collision*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (key_idx < Py_SIZE(self))
      pos:
        line_end: 1465
        line_start: 1465
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (key_idx >= 0)
      pos:
        line_end: 1464
        line_start: 1464
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (key_idx == 2)
      pos:
        line_end: 1496
        line_start: 1496
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1536
      start: 1444
    functionDepth: 5
    functionLinenumber: 1444
    functionLinenumberEnd: 1536
    functionName: hamt_node_collision_without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - hamt_node_bitmap_new
    - hamt_bitpos
    - Py_UNREACHABLE
    - hamt_node_collision_find_index
    - hamt_node_collision_count
    - hamt_node_collision_new
    - assert
    - Py_SIZE
    linkageType: ''
    returnType: hamt_without_t
    signature: "hamt_without_t hamt_node_collision_without(PyHamtNode_Collision *self,\n
      \                           uint32_t shift, int32_t hash,\n                            PyObject
      *key,\n                            PyHamtNode **new_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hamt_node_collision_find_index
      Src: /src/Python-3.8.3/Python/hamt.c:1549,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1554,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1555,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1555,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    argTypes:
    - PyHamtNode_Collision*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (idx >= 0)
      pos:
        line_end: 1553
        line_start: 1553
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (idx + 1 < Py_SIZE(self))
      pos:
        line_end: 1554
        line_start: 1554
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (*val != NULL)
      pos:
        line_end: 1557
        line_start: 1557
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1561
      start: 1538
    functionDepth: 5
    functionLinenumber: 1538
    functionLinenumberEnd: 1561
    functionName: hamt_node_collision_find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - hamt_node_collision_find_index
    - Py_SIZE
    linkageType: ''
    returnType: hamt_find_t
    signature: "hamt_find_t hamt_node_collision_find(PyHamtNode_Collision *self,\n
      \                        uint32_t shift, int32_t hash,\n                         PyObject
      *key, PyObject **val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1572,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/hamt.c:1573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyHamtNode_Collision*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1577
    functionName: hamt_node_collision_traverse
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: "int hamt_node_collision_traverse(PyHamtNode_Collision *self,\n                             visitproc
      visit, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1584,1
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/hamt.c:1586,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Python/hamt.c:1587,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1592,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/hamt.c:1596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtNode_Collision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1598
    functionName: hamt_node_collision_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_TYPE
    - Py_SIZE
    - Py_XDECREF
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void hamt_node_collision_dealloc(PyHamtNode_Collision *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:1609,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1613,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1614,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:1619,1
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:1623,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1627,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Collision*
    - _PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1601
    functionDepth: 8
    functionLinenumber: 1601
    functionLinenumberEnd: 1635
    functionName: hamt_node_collision_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _hamt_dump_format
    - _hamt_dump_ident
    - Py_SIZE
    linkageType: ''
    returnType: int
    signature: "int hamt_node_collision_dump(PyHamtNode_Collision *node,\n                         _PyUnicodeWriter
      *writer, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/hamt.c:1647,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/hamt.c:1659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - count
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1661
    functionName: hamt_node_array_new
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - _PyObject_GC_TRACK
    linkageType: ''
    returnType: PyHamtNode
    signature: 'PyHamtNode *

      hamt_node_array_new(Py_ssize_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1669,1
    - Dst: hamt_node_array_new
      Src: /src/Python-3.8.3/Python/hamt.c:1672,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1679,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - PyHamtNode_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1685
    functionName: hamt_node_array_clone
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - VALIDATE_ARRAY_NODE
    - hamt_node_array_new
    - Py_XINCREF
    linkageType: ''
    returnType: PyHamtNode_Array
    signature: 'PyHamtNode_Array *

      hamt_node_array_clone(PyHamtNode_Array *node)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hamt_mask
      Src: /src/Python-3.8.3/Python/hamt.c:1699,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:1712,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:1719,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1722,1
    - Dst: hamt_node_array_new
      Src: /src/Python-3.8.3/Python/hamt.c:1728,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1730,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1737,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1741,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1743,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:1748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1754,1
    - Dst: hamt_node_array_clone
      Src: /src/Python-3.8.3/Python/hamt.c:1758,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1760,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:1764,1
    - Dst: VALIDATE_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1765,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 6
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode_Array*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (new_node->a_array[idx] == NULL)
      pos:
        line_end: 1740
        line_start: 1740
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1769
      start: 1687
    functionDepth: 6
    functionLinenumber: 1687
    functionLinenumberEnd: 1769
    functionName: hamt_node_array_assoc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - VALIDATE_ARRAY_NODE
    - hamt_mask
    - Py_DECREF
    - hamt_node_array_clone
    - hamt_node_bitmap_new
    - hamt_node_array_new
    - hamt_node_bitmap_assoc
    - assert
    - hamt_node_assoc
    - Py_XINCREF
    - Py_SETREF
    linkageType: ''
    returnType: PyHamtNode
    signature: "PyHamtNode *\nhamt_node_array_assoc(PyHamtNode_Array *self,\n                      uint32_t
      shift, int32_t hash,\n                      PyObject *key, PyObject *val, int*
      added_leaf)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: hamt_mask
      Src: /src/Python-3.8.3/Python/hamt.c:1777,1
    - Dst: hamt_node_without
      Src: /src/Python-3.8.3/Python/hamt.c:1785,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1792,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1799,1
    - Dst: hamt_node_array_clone
      Src: /src/Python-3.8.3/Python/hamt.c:1801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1803,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/hamt.c:1807,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1813,1
    - Dst: hamt_node_array_clone
      Src: /src/Python-3.8.3/Python/hamt.c:1831,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/hamt.c:1836,1
    - Dst: a_array::a_array
      Src: /src/Python-3.8.3/Python/hamt.c:1836,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:1849,1
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1869,1
    - Dst: hamt_node_bitmap_count
      Src: /src/Python-3.8.3/Python/hamt.c:1872,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1886,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1888,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1893,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1900,1
    - Dst: hamt_node_collision_count
      Src: /src/Python-3.8.3/Python/hamt.c:1901,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1903,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:1905,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:1906,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:1912,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:1925,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 75
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode_Array*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (child_count > 1)
      pos:
        line_end: 1902
        line_start: 1902
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (sub_node != NULL)
      pos:
        line_end: 1798
        line_start: 1798
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1812
        line_start: 1812
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (((PyHamtNode_Array*)node)->a_count >= 16)
      pos:
        line_end: 1905
        line_start: 1905
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (sub_node == NULL)
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 1927
      start: 1771
    functionDepth: 3
    functionLinenumber: 1771
    functionLinenumberEnd: 1927
    functionName: hamt_node_array_without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - IS_COLLISION_NODE
    - hamt_mask
    - Py_DECREF
    - hamt_node_array_clone
    - Py_CLEAR
    - Py_INCREF
    - hamt_node_without
    - hamt_node_bitmap_count
    - hamt_node_bitmap_new
    - IS_ARRAY_NODE
    - Py_UNREACHABLE
    - IS_BITMAP_NODE
    - hamt_node_collision_count
    - assert
    - Py_SETREF
    - a_array::a_array
    linkageType: ''
    returnType: hamt_without_t
    signature: "hamt_without_t hamt_node_array_without(PyHamtNode_Array *self,\n                        uint32_t
      shift, int32_t hash,\n                        PyObject *key,\n                        PyHamtNode
      **new_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hamt_mask
      Src: /src/Python-3.8.3/Python/hamt.c:1937,1
    - Dst: hamt_node_find
      Src: /src/Python-3.8.3/Python/hamt.c:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - self
    - shift
    - hash
    - key
    - val
    argTypes:
    - PyHamtNode_Array*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1947
    functionName: hamt_node_array_find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_find
    - hamt_mask
    linkageType: ''
    returnType: hamt_find_t
    signature: "hamt_find_t hamt_node_array_find(PyHamtNode_Array *self,\n                     uint32_t
      shift, int32_t hash,\n                     PyObject *key, PyObject **val)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/hamt.c:1958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyHamtNode_Array*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1962
    functionName: hamt_node_array_traverse
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: "int hamt_node_array_traverse(PyHamtNode_Array *self,\n                         visitproc
      visit, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/hamt.c:1971,1
    - Dst: Py_TRASHCAN_BEGIN
      Src: /src/Python-3.8.3/Python/hamt.c:1972,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/hamt.c:1975,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/hamt.c:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtNode_Array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 1980
    functionName: hamt_node_array_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_TYPE
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TRASHCAN_BEGIN
    linkageType: ''
    returnType: void
    signature: void hamt_node_array_dealloc(PyHamtNode_Array *self)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:1991,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:1995,1
    - Dst: _hamt_dump_ident
      Src: /src/Python-3.8.3/Python/hamt.c:2004,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:2008,1
    - Dst: hamt_node_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2012,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:2016,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode_Array*
    - _PyUnicodeWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 1983
    functionDepth: 8
    functionLinenumber: 1983
    functionLinenumberEnd: 2024
    functionName: hamt_node_array_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_dump
    - _hamt_dump_format
    - _hamt_dump_ident
    linkageType: ''
    returnType: int
    signature: "int hamt_node_array_dump(PyHamtNode_Array *node,\n                     _PyUnicodeWriter
      *writer, int level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2047,1
    - Dst: hamt_node_bitmap_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:2048,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2052,1
    - Dst: hamt_node_array_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:2053,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2058,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2058,1
    - Dst: hamt_node_collision_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:2059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - node
    - shift
    - hash
    - key
    - val
    - added_leaf
    argTypes:
    - PyHamtNode*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject*
    - int*
    assertStmts:
    - condition: (IS_COLLISION_NODE(node))
      pos:
        line_end: 2057
        line_start: 2057
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2063
      start: 2031
    functionDepth: 7
    functionLinenumber: 2031
    functionLinenumberEnd: 2063
    functionName: hamt_node_assoc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 3
    functionsReached:
    - hamt_node_collision_assoc
    - hamt_node_array_assoc
    - IS_ARRAY_NODE
    - IS_BITMAP_NODE
    - hamt_node_bitmap_assoc
    - assert
    - IS_COLLISION_NODE
    linkageType: ''
    returnType: PyHamtNode
    signature: "PyHamtNode *\nhamt_node_assoc(PyHamtNode *node,\n                uint32_t
      shift, int32_t hash,\n                PyObject *key, PyObject *val, int* added_leaf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2071,1
    - Dst: hamt_node_bitmap_without
      Src: /src/Python-3.8.3/Python/hamt.c:2072,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2077,1
    - Dst: hamt_node_array_without
      Src: /src/Python-3.8.3/Python/hamt.c:2078,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2084,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2084,1
    - Dst: hamt_node_collision_without
      Src: /src/Python-3.8.3/Python/hamt.c:2085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - node
    - shift
    - hash
    - key
    - new_node
    argTypes:
    - PyHamtNode*
    - uint32_t
    - int32_t
    - PyObject*
    - PyHamtNode**
    assertStmts:
    - condition: (IS_COLLISION_NODE(node))
      pos:
        line_end: 2083
        line_start: 2083
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2090
      start: 2065
    functionDepth: 6
    functionLinenumber: 2065
    functionLinenumberEnd: 2090
    functionName: hamt_node_without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 2
    functionsReached:
    - hamt_node_array_without
    - hamt_node_collision_without
    - IS_ARRAY_NODE
    - IS_BITMAP_NODE
    - assert
    - IS_COLLISION_NODE
    - hamt_node_bitmap_without
    linkageType: ''
    returnType: hamt_without_t
    signature: "hamt_without_t hamt_node_without(PyHamtNode *node,\n                  uint32_t
      shift, int32_t hash,\n                  PyObject *key,\n                  PyHamtNode
      **new_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2110,1
    - Dst: hamt_node_bitmap_find
      Src: /src/Python-3.8.3/Python/hamt.c:2111,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2116,1
    - Dst: hamt_node_array_find
      Src: /src/Python-3.8.3/Python/hamt.c:2117,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2122,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2122,1
    - Dst: hamt_node_collision_find
      Src: /src/Python-3.8.3/Python/hamt.c:2123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - node
    - shift
    - hash
    - key
    - val
    argTypes:
    - PyHamtNode*
    - uint32_t
    - int32_t
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (IS_COLLISION_NODE(node))
      pos:
        line_end: 2121
        line_start: 2121
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2127
      start: 2092
    functionDepth: 6
    functionLinenumber: 2092
    functionLinenumberEnd: 2127
    functionName: hamt_node_find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 2
    functionsReached:
    - hamt_node_array_find
    - hamt_node_collision_find
    - IS_ARRAY_NODE
    - hamt_node_bitmap_find
    - IS_BITMAP_NODE
    - assert
    - IS_COLLISION_NODE
    linkageType: ''
    returnType: hamt_find_t
    signature: "hamt_find_t hamt_node_find(PyHamtNode *node,\n               uint32_t
      shift, int32_t hash,\n               PyObject *key, PyObject **val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2140,1
    - Dst: hamt_node_bitmap_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2141,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2144,1
    - Dst: hamt_node_array_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2145,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2149,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2149,1
    - Dst: hamt_node_collision_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - node
    - writer
    - level
    argTypes:
    - PyHamtNode*
    - _PyUnicodeWriter*
    - int
    assertStmts:
    - condition: (IS_COLLISION_NODE(node))
      pos:
        line_end: 2148
        line_start: 2148
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2153
      start: 2130
    functionDepth: 9
    functionLinenumber: 2130
    functionLinenumberEnd: 2153
    functionName: hamt_node_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 2
    functionsReached:
    - hamt_node_bitmap_dump
    - IS_ARRAY_NODE
    - hamt_node_array_dump
    - IS_BITMAP_NODE
    - assert
    - IS_COLLISION_NODE
    - hamt_node_collision_dump
    linkageType: ''
    returnType: int
    signature: "int hamt_node_dump(PyHamtNode *node,\n               _PyUnicodeWriter
      *writer, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - iter
    - root
    argTypes:
    - PyHamtIteratorState*
    - PyHamtNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2164
    functionDepth: 0
    functionLinenumber: 2164
    functionLinenumberEnd: 2176
    functionName: hamt_iterator_init
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hamt_iterator_init(PyHamtIteratorState *iter, PyHamtNode *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:2187,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2189,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2193,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2200,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - iter
    - key
    - val
    argTypes:
    - PyHamtIteratorState*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (next_level < _Py_HAMT_MAX_TREE_DEPTH)
      pos:
        line_end: 2199
        line_start: 2199
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2188
        line_start: 2188
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2213
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2213
    functionName: hamt_iterator_bitmap_next
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - hamt_iterator_next
    linkageType: ''
    returnType: hamt_iter_t
    signature: "hamt_iter_t hamt_iterator_bitmap_next(PyHamtIteratorState *iter,\n
      \                         PyObject **key, PyObject **val)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/hamt.c:2224,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2226,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - iter
    - key
    - val
    argTypes:
    - PyHamtIteratorState*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2225
        line_start: 2225
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2237
      start: 2215
    functionDepth: 1
    functionLinenumber: 2215
    functionLinenumberEnd: 2237
    functionName: hamt_iterator_collision_next
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - hamt_iterator_next
    linkageType: ''
    returnType: hamt_iter_t
    signature: "hamt_iter_t hamt_iterator_collision_next(PyHamtIteratorState *iter,\n
      \                            PyObject **key, PyObject **val)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2250,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2254,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2262,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2267,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2272,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - iter
    - key
    - val
    argTypes:
    - PyHamtIteratorState*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2249
        line_start: 2249
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (next_level < _Py_HAMT_MAX_TREE_DEPTH)
      pos:
        line_end: 2261
        line_start: 2261
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (iter->i_level >= 0)
      pos:
        line_end: 2271
        line_start: 2271
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2278
      start: 2239
    functionDepth: 1
    functionLinenumber: 2239
    functionLinenumberEnd: 2278
    functionName: hamt_iterator_array_next
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - assert
    - hamt_iterator_next
    linkageType: ''
    returnType: hamt_iter_t
    signature: "hamt_iter_t hamt_iterator_array_next(PyHamtIteratorState *iter,\n
      \                        PyObject **key, PyObject **val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2287,1
    - Dst: IS_BITMAP_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2291,1
    - Dst: hamt_iterator_bitmap_next
      Src: /src/Python-3.8.3/Python/hamt.c:2292,1
    - Dst: IS_ARRAY_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2294,1
    - Dst: hamt_iterator_array_next
      Src: /src/Python-3.8.3/Python/hamt.c:2295,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2298,1
    - Dst: IS_COLLISION_NODE
      Src: /src/Python-3.8.3/Python/hamt.c:2298,1
    - Dst: hamt_iterator_collision_next
      Src: /src/Python-3.8.3/Python/hamt.c:2299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - iter
    - key
    - val
    argTypes:
    - PyHamtIteratorState*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (iter->i_level < _Py_HAMT_MAX_TREE_DEPTH)
      pos:
        line_end: 2286
        line_start: 2286
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (IS_COLLISION_NODE(current))
      pos:
        line_end: 2297
        line_start: 2297
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2301
      start: 2280
    functionDepth: 2
    functionLinenumber: 2280
    functionLinenumberEnd: 2301
    functionName: hamt_iterator_next
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 3
    functionsReached:
    - hamt_iterator_collision_next
    - IS_ARRAY_NODE
    - hamt_iterator_array_next
    - IS_BITMAP_NODE
    - hamt_iterator_bitmap_next
    - assert
    - IS_COLLISION_NODE
    linkageType: ''
    returnType: hamt_iter_t
    signature: hamt_iter_t hamt_iterator_next(PyHamtIteratorState *iter, PyObject
      **key, PyObject **val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/Python-3.8.3/Python/hamt.c:2315,1
    - Dst: hamt_node_assoc
      Src: /src/Python-3.8.3/Python/hamt.c:2320,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:2328,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2329,1
    - Dst: hamt_alloc
      Src: /src/Python-3.8.3/Python/hamt.c:2333,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:2335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2307
    functionDepth: 8
    functionLinenumber: 2307
    functionLinenumberEnd: 2343
    functionName: _PyHamt_Assoc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_alloc
    - hamt_hash
    - Py_DECREF
    - Py_INCREF
    - hamt_node_assoc
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_Assoc(PyHamtObject *o, PyObject *key, PyObject *val)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/Python-3.8.3/Python/hamt.c:2348,1
    - Dst: hamt_node_without
      Src: /src/Python-3.8.3/Python/hamt.c:2355,1
    - Dst: _PyHamt_New
      Src: /src/Python-3.8.3/Python/hamt.c:2364,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2366,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2369,1
    - Dst: hamt_alloc
      Src: /src/Python-3.8.3/Python/hamt.c:2371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:2373,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/hamt.c:2379,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:2383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - o
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts:
    - condition: (new_root != NULL)
      pos:
        line_end: 2368
        line_start: 2368
        source_file: /src/Python-3.8.3/Python/hamt.c
    - condition: (new_o->h_count >= 0)
      pos:
        line_end: 2378
        line_start: 2378
        source_file: /src/Python-3.8.3/Python/hamt.c
    constantsTouched: []
    func_position:
      end: 2385
      start: 2345
    functionDepth: 7
    functionLinenumber: 2345
    functionLinenumberEnd: 2385
    functionName: _PyHamt_Without
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_alloc
    - hamt_hash
    - Py_DECREF
    - Py_INCREF
    - hamt_node_without
    - Py_UNREACHABLE
    - assert
    - _PyHamt_New
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_Without(PyHamtObject *o, PyObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hamt_hash
      Src: /src/Python-3.8.3/Python/hamt.c:2394,1
    - Dst: hamt_node_find
      Src: /src/Python-3.8.3/Python/hamt.c:2399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2387
    functionDepth: 7
    functionLinenumber: 2387
    functionLinenumberEnd: 2400
    functionName: hamt_find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_node_find
    - hamt_hash
    linkageType: ''
    returnType: hamt_find_t
    signature: hamt_find_t hamt_find(PyHamtObject *o, PyObject *key, PyObject **val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hamt_find
      Src: /src/Python-3.8.3/Python/hamt.c:2406,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:2415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - o
    - key
    - val
    argTypes:
    - PyHamtObject*
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2403
    functionDepth: 8
    functionLinenumber: 2403
    functionLinenumberEnd: 2417
    functionName: _PyHamt_Find
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - hamt_find
    linkageType: ''
    returnType: int
    signature: int _PyHamt_Find(PyHamtObject *o, PyObject *key, PyObject **val)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hamt_iterator_init
      Src: /src/Python-3.8.3/Python/hamt.c:2438,1
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2441,1
    - Dst: hamt_find
      Src: /src/Python-3.8.3/Python/hamt.c:2443,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/hamt.c:2452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyHamtObject*
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2420
    functionDepth: 8
    functionLinenumber: 2420
    functionLinenumberEnd: 2465
    functionName: _PyHamt_Eq
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_find
    - hamt_iterator_next
    - PyObject_RichCompareBool
    - hamt_iterator_init
    linkageType: ''
    returnType: int
    signature: int _PyHamt_Eq(PyHamtObject *v, PyHamtObject *w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2467
    functionDepth: 0
    functionLinenumber: 2467
    functionLinenumberEnd: 2471
    functionName: _PyHamt_Len
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _PyHamt_Len(PyHamtObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/hamt.c:2477,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Python/hamt.c:2484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2473
    functionDepth: 2
    functionLinenumber: 2473
    functionLinenumberEnd: 2486
    functionName: hamt_alloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 2
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      hamt_alloc(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2494,1
    - Dst: hamt_alloc
      Src: /src/Python-3.8.3/Python/hamt.c:2498,1
    - Dst: hamt_node_bitmap_new
      Src: /src/Python-3.8.3/Python/hamt.c:2503,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/hamt.c:2505,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2488
    functionDepth: 3
    functionLinenumber: 2488
    functionLinenumberEnd: 2517
    functionName: _PyHamt_New
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 1
    functionsReached:
    - hamt_alloc
    - hamt_node_bitmap_new
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyHamtObject
    signature: 'PyHamtObject *

      _PyHamt_New(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Python/hamt.c:2525,1
    - Dst: _hamt_dump_format
      Src: /src/Python-3.8.3/Python/hamt.c:2527,1
    - Dst: hamt_node_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2531,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Python/hamt.c:2535,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Python/hamt.c:2538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2520
    functionDepth: 10
    functionLinenumber: 2520
    functionLinenumberEnd: 2540
    functionName: hamt_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_Init
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - hamt_node_dump
    - _hamt_dump_format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_dump(PyHamtObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/hamt.c:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyHamtIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2547
    functionDepth: 1
    functionLinenumber: 2547
    functionLinenumberEnd: 2552
    functionName: hamt_baseiter_tp_clear
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int hamt_baseiter_tp_clear(PyHamtIterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/hamt.c:2557,1
    - Dst: hamt_baseiter_tp_clear
      Src: /src/Python-3.8.3/Python/hamt.c:2558,1
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Python/hamt.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyHamtIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2560
      start: 2554
    functionDepth: 3
    functionLinenumber: 2554
    functionLinenumberEnd: 2560
    functionName: hamt_baseiter_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_Del
    - hamt_baseiter_tp_clear
    - PyObject_GC_UnTrack
    linkageType: ''
    returnType: void
    signature: void hamt_baseiter_tp_dealloc(PyHamtIterator *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/hamt.c:2565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - it
    - visit
    - arg
    argTypes:
    - PyHamtIterator*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2562
    functionDepth: 1
    functionLinenumber: 2562
    functionLinenumberEnd: 2567
    functionName: hamt_baseiter_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_baseiter_tp_traverse(PyHamtIterator *it, visitproc visit,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hamt_iterator_next
      Src: /src/Python-3.8.3/Python/hamt.c:2574,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Python/hamt.c:2578,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:2586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyHamtIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2569
    functionDepth: 3
    functionLinenumber: 2569
    functionLinenumberEnd: 2589
    functionName: hamt_baseiter_tp_iternext
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - PyErr_SetNone
    - hamt_iterator_next
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_baseiter_tp_iternext(PyHamtIterator *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - PyHamtIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2591
    functionDepth: 0
    functionLinenumber: 2591
    functionLinenumberEnd: 2595
    functionName: hamt_baseiter_tp_len
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_baseiter_tp_len(PyHamtIterator *it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/hamt.c:2604,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2609,1
    - Dst: hamt_iterator_init
      Src: /src/Python-3.8.3/Python/hamt.c:2613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - type
    - yield
    - o
    argTypes:
    - PyTypeObject*
    - binaryfunc
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2601
    functionDepth: 1
    functionLinenumber: 2601
    functionLinenumberEnd: 2616
    functionName: hamt_baseiter_new
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_New
    - hamt_iterator_init
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_baseiter_new(PyTypeObject *type, binaryfunc yield, PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/hamt.c:2643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2640
    functionDepth: 3
    functionLinenumber: 2640
    functionLinenumberEnd: 2644
    functionName: hamt_iter_yield_items
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_iter_yield_items(PyObject *key, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_baseiter_new
      Src: /src/Python-3.8.3/Python/hamt.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2646
    functionDepth: 2
    functionLinenumber: 2646
    functionLinenumberEnd: 2651
    functionName: _PyHamt_NewIterItems
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterItems(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2663
    functionDepth: 1
    functionLinenumber: 2663
    functionLinenumberEnd: 2668
    functionName: hamt_iter_yield_keys
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_iter_yield_keys(PyObject *key, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_baseiter_new
      Src: /src/Python-3.8.3/Python/hamt.c:2673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2670
    functionDepth: 2
    functionLinenumber: 2670
    functionLinenumberEnd: 2675
    functionName: _PyHamt_NewIterKeys
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterKeys(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2687
    functionDepth: 1
    functionLinenumber: 2687
    functionLinenumberEnd: 2692
    functionName: hamt_iter_yield_values
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_iter_yield_values(PyObject *key, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_baseiter_new
      Src: /src/Python-3.8.3/Python/hamt.c:2697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2694
    functionDepth: 2
    functionLinenumber: 2694
    functionLinenumberEnd: 2699
    functionName: _PyHamt_NewIterValues
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_baseiter_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyHamt_NewIterValues(PyHamtObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_New
      Src: /src/Python-3.8.3/Python/hamt.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2711
    functionDepth: 4
    functionLinenumber: 2711
    functionLinenumberEnd: 2715
    functionName: hamt_tp_new
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/hamt.c:2720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2722
    functionName: hamt_tp_clear
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int hamt_tp_clear(PyHamtObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/hamt.c:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyHamtObject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2725
    functionDepth: 1
    functionLinenumber: 2725
    functionLinenumberEnd: 2730
    functionName: hamt_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int hamt_tp_traverse(PyHamtObject *self, visitproc visit, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/hamt.c:2735,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Python/hamt.c:2737,1
    - Dst: hamt_tp_clear
      Src: /src/Python-3.8.3/Python/hamt.c:2739,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/hamt.c:2740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2732
    functionDepth: 3
    functionLinenumber: 2732
    functionLinenumberEnd: 2741
    functionName: hamt_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyObject_ClearWeakRefs
    - PyObject_GC_UnTrack
    - hamt_tp_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void hamt_tp_dealloc(PyHamtObject *self)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyHamt_Check
      Src: /src/Python-3.8.3/Python/hamt.c:2747,1
    - Dst: PyHamt_Check
      Src: /src/Python-3.8.3/Python/hamt.c:2747,1
    - Dst: _PyHamt_Eq
      Src: /src/Python-3.8.3/Python/hamt.c:2751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2744
    functionDepth: 9
    functionLinenumber: 2744
    functionLinenumberEnd: 2766
    functionName: hamt_tp_richcompare
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Eq
    - PyHamt_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/hamt.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2768
    functionDepth: 9
    functionLinenumber: 2768
    functionLinenumberEnd: 2773
    functionName: hamt_tp_contains
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Find
    linkageType: ''
    returnType: int
    signature: int hamt_tp_contains(PyHamtObject *self, PyObject *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hamt_find
      Src: /src/Python-3.8.3/Python/hamt.c:2779,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2784,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/hamt.c:2787,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:2790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2775
    functionDepth: 8
    functionLinenumber: 2775
    functionLinenumberEnd: 2792
    functionName: hamt_tp_subscript
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - hamt_find
    - Py_UNREACHABLE
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_subscript(PyHamtObject *self, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_Len
      Src: /src/Python-3.8.3/Python/hamt.c:2797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2794
    functionDepth: 1
    functionLinenumber: 2794
    functionLinenumberEnd: 2798
    functionName: hamt_tp_len
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Len
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t hamt_tp_len(PyHamtObject *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterKeys
      Src: /src/Python-3.8.3/Python/hamt.c:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2800
    functionDepth: 3
    functionLinenumber: 2800
    functionLinenumberEnd: 2804
    functionName: hamt_tp_iter
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_tp_iter(PyHamtObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/hamt.c:2812,1
    - Dst: _PyHamt_Assoc
      Src: /src/Python-3.8.3/Python/hamt.c:2816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2806
    functionDepth: 9
    functionLinenumber: 2806
    functionLinenumberEnd: 2817
    functionName: hamt_py_set
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Assoc
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_set(PyHamtObject *self, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/hamt.c:2825,1
    - Dst: hamt_find
      Src: /src/Python-3.8.3/Python/hamt.c:2830,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2835,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/hamt.c:2841,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/hamt.c:2844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2819
    functionDepth: 8
    functionLinenumber: 2819
    functionLinenumberEnd: 2846
    functionName: hamt_py_get
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    - hamt_find
    - Py_INCREF
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_get(PyHamtObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_Without
      Src: /src/Python-3.8.3/Python/hamt.c:2851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2848
    functionDepth: 8
    functionLinenumber: 2848
    functionLinenumberEnd: 2852
    functionName: hamt_py_delete
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Without
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_delete(PyHamtObject *self, PyObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterItems
      Src: /src/Python-3.8.3/Python/hamt.c:2857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2854
    functionDepth: 3
    functionLinenumber: 2854
    functionLinenumberEnd: 2858
    functionName: hamt_py_items
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterItems
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_items(PyHamtObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterValues
      Src: /src/Python-3.8.3/Python/hamt.c:2863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2864
      start: 2860
    functionDepth: 3
    functionLinenumber: 2860
    functionLinenumberEnd: 2864
    functionName: hamt_py_values
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterValues
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_values(PyHamtObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterKeys
      Src: /src/Python-3.8.3/Python/hamt.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2866
    functionDepth: 3
    functionLinenumber: 2866
    functionLinenumberEnd: 2870
    functionName: hamt_py_keys
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_keys(PyHamtObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hamt_dump
      Src: /src/Python-3.8.3/Python/hamt.c:2876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyHamtObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2873
    functionDepth: 11
    functionLinenumber: 2873
    functionLinenumberEnd: 2877
    functionName: hamt_py_dump
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - hamt_dump
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      hamt_py_dump(PyHamtObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2978,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2979,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2980,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2981,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2982,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2983,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/hamt.c:2984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2990
      start: 2975
    functionDepth: 11
    functionLinenumber: 2975
    functionLinenumberEnd: 2990
    functionName: _PyHamt_Init
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - PyType_Ready
    linkageType: ''
    returnType: int
    signature: int _PyHamt_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/hamt.c:2995,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/hamt.c:2996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2997
      start: 2992
    functionDepth: 1
    functionLinenumber: 2992
    functionLinenumberEnd: 2997
    functionName: _PyHamt_Fini
    functionSourceFile: /src/Python-3.8.3/Python/hamt.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyHamt_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - err_ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: ENSURE_Context
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_Context(o, err_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - err_ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: ENSURE_ContextVar
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_ContextVar(o, err_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - err_ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: ENSURE_ContextToken
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENSURE_ContextToken(o, err_ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_New
      Src: /src/Python-3.8.3/Python/context.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: _PyContext_NewHamtForTests
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyHamt_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyContext_NewHamtForTests(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_new_empty
      Src: /src/Python-3.8.3/Python/context.c:79,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: PyContext_New
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - context_new_empty
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContext_New(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/Python-3.8.3/Python/context.c:86,1
    - Dst: context_new_from_vars
      Src: /src/Python-3.8.3/Python/context.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: PyContext_Copy
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - context_new_from_vars
    - ENSURE_Context
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContext_Copy(PyObject * octx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_get
      Src: /src/Python-3.8.3/Python/context.c:95,1
    - Dst: context_new_from_vars
      Src: /src/Python-3.8.3/Python/context.c:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: PyContext_CopyCurrent
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 3
    functionsReached:
    - context_new_from_vars
    - context_get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContext_CopyCurrent(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/Python-3.8.3/Python/context.c:107,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:111,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/context.c:116,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:117,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/Python-3.8.3/Python/context.c
    constantsTouched: []
    func_position:
      end: 127
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 127
    functionName: PyContext_Enter
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - ENSURE_Context
    - Py_INCREF
    - _PyThreadState_GET
    - PyErr_Format
    - assert
    linkageType: ''
    returnType: int
    signature: int PyContext_Enter(PyObject *octx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_Context
      Src: /src/Python-3.8.3/Python/context.c:133,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:137,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/context.c:142,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:143,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:147,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/context.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - octx
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/Python-3.8.3/Python/context.c
    constantsTouched: []
    func_position:
      end: 160
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 160
    functionName: PyContext_Exit
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - ENSURE_Context
    - _PyThreadState_GET
    - PyErr_Format
    - PyErr_SetString
    - assert
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int PyContext_Exit(PyObject *octx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/context.c:166,1
    - Dst: contextvar_new
      Src: /src/Python-3.8.3/Python/context.c:170,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: PyContextVar_New
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - PyUnicode_FromString
    - contextvar_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContextVar_New(const char *name, PyObject *def)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/Python-3.8.3/Python/context.c:179,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/context.c:182,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:183,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:196,1
    - Dst: PyContext_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:196,1
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/context.c:200,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:205,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/context.c:230,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 3
    argNames:
    - ovar
    - def
    - val
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject**
    assertStmts:
    - condition: (PyContext_CheckExact(ts->context))
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/Python-3.8.3/Python/context.c
    - condition: (ts != NULL)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/Python-3.8.3/Python/context.c
    - condition: (found != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/Python-3.8.3/Python/context.c
    constantsTouched: []
    func_position:
      end: 236
      start: 176
    functionDepth: 9
    functionLinenumber: 176
    functionLinenumberEnd: 236
    functionName: PyContextVar_Get
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - ENSURE_ContextVar
    - PyContext_CheckExact
    - assert
    - Py_XINCREF
    - _PyHamt_Find
    linkageType: ''
    returnType: int
    signature: int PyContextVar_Get(PyObject *ovar, PyObject *def, PyObject **val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/Python-3.8.3/Python/context.c:242,1
    - Dst: PyContextVar_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:245,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:246,1
    - Dst: context_get
      Src: /src/Python-3.8.3/Python/context.c:251,1
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/context.c:257,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/context.c:262,1
    - Dst: token_new
      Src: /src/Python-3.8.3/Python/context.c:263,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/context.c:264,1
    - Dst: contextvar_set
      Src: /src/Python-3.8.3/Python/context.c:266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ovar
    - val
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 239
    functionDepth: 9
    functionLinenumber: 239
    functionLinenumberEnd: 272
    functionName: PyContextVar_Set
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - Py_XDECREF
    - ENSURE_ContextVar
    - context_get
    - contextvar_set
    - PyContextVar_CheckExact
    - PyErr_SetString
    - token_new
    - Py_XINCREF
    - _PyHamt_Find
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyContextVar_Set(PyObject *ovar, PyObject *val)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ENSURE_ContextVar
      Src: /src/Python-3.8.3/Python/context.c:278,1
    - Dst: ENSURE_ContextToken
      Src: /src/Python-3.8.3/Python/context.c:279,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:284,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:290,1
    - Dst: context_get
      Src: /src/Python-3.8.3/Python/context.c:295,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:297,1
    - Dst: contextvar_del
      Src: /src/Python-3.8.3/Python/context.c:305,1
    - Dst: contextvar_set
      Src: /src/Python-3.8.3/Python/context.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ovar
    - otok
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 310
    functionName: PyContextVar_Reset
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - ENSURE_ContextToken
    - contextvar_del
    - ENSURE_ContextVar
    - context_get
    - contextvar_set
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int PyContextVar_Reset(PyObject *ovar, PyObject *otok)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Python/context.c:330,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/context.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 345
    functionName: _context_alloc
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _Py_NewReference
    - PyObject_GC_New
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      _context_alloc(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _context_alloc
      Src: /src/Python-3.8.3/Python/context.c:351,1
    - Dst: _PyHamt_New
      Src: /src/Python-3.8.3/Python/context.c:356,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:358,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/context.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 4
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: context_new_empty
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_TRACK
    - _context_alloc
    - Py_DECREF
    - _PyHamt_New
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_empty(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _context_alloc
      Src: /src/Python-3.8.3/Python/context.c:370,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:375,1
    - Dst: _PyObject_GC_TRACK
      Src: /src/Python-3.8.3/Python/context.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vars
    argTypes:
    - PyHamtObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: context_new_from_vars
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 2
    functionsReached:
    - _PyObject_GC_TRACK
    - _context_alloc
    - Py_INCREF
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_new_from_vars(PyHamtObject *vars)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/context.c:386,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/context.c:387,1
    - Dst: context_new_empty
      Src: /src/Python-3.8.3/Python/context.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (ts != NULL)
      pos:
        line_end: 386
        line_start: 386
        source_file: /src/Python-3.8.3/Python/context.c
    constantsTouched: []
    func_position:
      end: 397
      start: 383
    functionDepth: 5
    functionLinenumber: 383
    functionLinenumberEnd: 397
    functionName: context_get
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 3
    functionsReached:
    - assert
    - _PyThreadState_GET
    - context_new_empty
    linkageType: ''
    returnType: PyContext
    signature: 'PyContext *

      context_get(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:402,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: context_check_key_type
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyContextVar_CheckExact
    linkageType: ''
    returnType: int
    signature: int context_check_key_type(PyObject *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/context.c:414,1
    - Dst: PyDict_Size
      Src: /src/Python-3.8.3/Python/context.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:415,1
    - Dst: PyContext_New
      Src: /src/Python-3.8.3/Python/context.c:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: context_tp_new
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyDict_Size
    - PyContext_New
    - PyTuple_Size
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:425,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: context_tp_clear
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int context_tp_clear(PyContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:433,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyContext*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: context_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int context_tp_traverse(PyContext *self, visitproc visit, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GC_UNTRACK
      Src: /src/Python-3.8.3/Python/context.c:441,1
    - Dst: PyObject_ClearWeakRefs
      Src: /src/Python-3.8.3/Python/context.c:444,1
    - Dst: context_tp_clear
      Src: /src/Python-3.8.3/Python/context.c:446,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/context.c:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 456
    functionName: context_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyObject_GC_UNTRACK
    - PyObject_ClearWeakRefs
    - context_tp_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void context_tp_dealloc(PyContext *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterKeys
      Src: /src/Python-3.8.3/Python/context.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: context_tp_iter
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_iter(PyContext *self)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyContext_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:467,1
    - Dst: PyContext_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:467,1
    - Dst: _PyHamt_Eq
      Src: /src/Python-3.8.3/Python/context.c:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - v
    - w
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 464
    functionDepth: 9
    functionLinenumber: 464
    functionLinenumberEnd: 489
    functionName: context_tp_richcompare
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Eq
    - PyContext_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_richcompare(PyObject *v, PyObject *w, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_Len
      Src: /src/Python-3.8.3/Python/context.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: context_tp_len
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_Len
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t context_tp_len(PyContext *self)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/Python-3.8.3/Python/context.c:500,1
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/context.c:504,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/context.c:509,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 497
    functionDepth: 9
    functionLinenumber: 497
    functionLinenumberEnd: 514
    functionName: context_tp_subscript
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - context_check_key_type
    - _PyHamt_Find
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_tp_subscript(PyContext *self, PyObject *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/Python-3.8.3/Python/context.c:519,1
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/context.c:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - key
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 516
    functionDepth: 9
    functionLinenumber: 516
    functionLinenumberEnd: 524
    functionName: context_tp_contains
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - context_check_key_type
    - _PyHamt_Find
    linkageType: ''
    returnType: int
    signature: int context_tp_contains(PyContext *self, PyObject *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_check_key_type
      Src: /src/Python-3.8.3/Python/context.c:544,1
    - Dst: _PyHamt_Find
      Src: /src/Python-3.8.3/Python/context.c:549,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:554,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - self
    - key
    - default_value
    argTypes:
    - PyContext*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 539
    functionDepth: 9
    functionLinenumber: 539
    functionLinenumberEnd: 559
    functionName: _contextvars_Context_get_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - context_check_key_type
    - _PyHamt_Find
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_contextvars_Context_get_impl(PyContext *self, PyObject
      *key,\n                              PyObject *default_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterItems
      Src: /src/Python-3.8.3/Python/context.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 3
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: _contextvars_Context_items_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterItems
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_items_impl(PyContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterKeys
      Src: /src/Python-3.8.3/Python/context.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 589
    functionName: _contextvars_Context_keys_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterKeys
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_keys_impl(PyContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_NewIterValues
      Src: /src/Python-3.8.3/Python/context.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: _contextvars_Context_values_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyHamt_NewIterValues
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_values_impl(PyContext *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_new_from_vars
      Src: /src/Python-3.8.3/Python/context.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 617
    functionName: _contextvars_Context_copy_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - context_new_from_vars
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_copy_impl(PyContext *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:625,1
    - Dst: PyContext_Enter
      Src: /src/Python-3.8.3/Python/context.c:630,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/context.c:634,1
    - Dst: PyContext_Exit
      Src: /src/Python-3.8.3/Python/context.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyContext*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 642
    functionName: context_run
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContext_Exit
    - _PyObject_Vectorcall
    - PyErr_SetString
    - PyContext_Enter
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncontext_run(PyContext *self, PyObject *const *args,\n
      \           Py_ssize_t nargs, PyObject *kwnames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Python/context.c:700,1
    - Dst: context_get
      Src: /src/Python-3.8.3/Python/context.c:702,1
    - Dst: _PyHamt_Assoc
      Src: /src/Python-3.8.3/Python/context.c:707,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/context.c:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - var
    - val
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 696
    functionDepth: 9
    functionLinenumber: 696
    functionLinenumberEnd: 719
    functionName: contextvar_set
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 2
    functionsReached:
    - Py_SETREF
    - _PyHamt_Assoc
    - PyThreadState_Get
    - context_get
    linkageType: ''
    returnType: int
    signature: int contextvar_set(PyContextVar *var, PyObject *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_get
      Src: /src/Python-3.8.3/Python/context.c:726,1
    - Dst: _PyHamt_Without
      Src: /src/Python-3.8.3/Python/context.c:732,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:738,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/context.c:739,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/context.c:743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - var
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 721
    functionDepth: 8
    functionLinenumber: 721
    functionLinenumberEnd: 745
    functionName: contextvar_del
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyHamt_Without
    - Py_DECREF
    - context_get
    - PyErr_SetObject
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int contextvar_del(PyContextVar *var)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Python/context.c:766,1
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/Python/context.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - name
    argTypes:
    - void*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 747
    functionDepth: 3
    functionLinenumber: 747
    functionLinenumberEnd: 773
    functionName: contextvar_generate_hash
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - _Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t contextvar_generate_hash(void *addr, PyObject *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/context.c:778,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:779,1
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/context.c:784,1
    - Dst: contextvar_generate_hash
      Src: /src/Python-3.8.3/Python/context.c:789,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:791,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:795,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/context.c:798,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Python/context.c:805,1
    - Dst: _PyObject_GC_MAY_BE_TRACKED
      Src: /src/Python-3.8.3/Python/context.c:806,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Python/context.c:808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - name
    - def
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 775
    functionDepth: 4
    functionLinenumber: 775
    functionLinenumberEnd: 811
    functionName: contextvar_new
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - _PyObject_GC_MAY_BE_TRACKED
    - Py_DECREF
    - Py_INCREF
    - PyObject_GC_New
    - contextvar_generate_hash
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_GC_Track
    - Py_XINCREF
    linkageType: ''
    returnType: PyContextVar
    signature: 'PyContextVar *

      contextvar_new(PyObject *name, PyObject *def)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/context.c:827,1
    - Dst: contextvar_new
      Src: /src/Python-3.8.3/Python/context.c:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 834
    functionName: contextvar_tp_new
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - contextvar_new
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:839,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 845
    functionName: contextvar_tp_clear
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int contextvar_tp_clear(PyContextVar *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:850,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyContextVar*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 853
    functionName: contextvar_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int contextvar_tp_traverse(PyContextVar *self, visitproc visit, void
      *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/context.c:858,1
    - Dst: contextvar_tp_clear
      Src: /src/Python-3.8.3/Python/context.c:859,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/context.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 2
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: contextvar_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - contextvar_tp_clear
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void contextvar_tp_dealloc(PyContextVar *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 867
    functionName: contextvar_tp_hash
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t contextvar_tp_hash(PyContextVar *self)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Python/context.c:874,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/context.c:876,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/context.c:882,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/context.c:886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:887,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:890,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/context.c:893,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/context.c:897,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/context.c:901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:902,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:905,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/context.c:908,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/context.c:912,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:913,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:916,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Python/context.c:918,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Python/context.c:921,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 869
    functionDepth: 8
    functionLinenumber: 869
    functionLinenumberEnd: 923
    functionName: contextvar_tp_repr
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - _PyUnicodeWriter_WriteASCIIString
    - _PyUnicodeWriter_Init
    - PyUnicode_FromFormat
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_tp_repr(PyContextVar *self)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:944,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:945,1
    - Dst: PyContextVar_Get
      Src: /src/Python-3.8.3/Python/context.c:951,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/context.c:956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - self
    - default_value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 940
    functionDepth: 10
    functionLinenumber: 940
    functionLinenumberEnd: 961
    functionName: _contextvars_ContextVar_get_impl
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    - PyContextVar_CheckExact
    - PyErr_SetString
    - PyContextVar_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_get_impl(PyContextVar *self, PyObject *default_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyContextVar_Set
      Src: /src/Python-3.8.3/Python/context.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - value
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 10
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: _contextvars_ContextVar_set
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Set
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_set(PyContextVar *self, PyObject *value)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyContextToken_CheckExact
      Src: /src/Python-3.8.3/Python/context.c:998,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/context.c:999,1
    - Dst: PyContextVar_Reset
      Src: /src/Python-3.8.3/Python/context.c:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - token
    argTypes:
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1009
    functionName: _contextvars_ContextVar_reset
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContextVar_Reset
    - PyErr_Format
    - PyContextToken_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_reset(PyContextVar *self, PyObject *token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: contextvar_cls_getitem
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      contextvar_cls_getitem(PyObject *self, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/context.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1068
    functionName: token_tp_new
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:1073,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:1074,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1077
    functionName: token_tp_clear
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int token_tp_clear(PyContextToken *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:1082,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:1083,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/context.c:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - PyContextToken*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1086
    functionName: token_tp_traverse
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int token_tp_traverse(PyContextToken *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/context.c:1091,1
    - Dst: token_tp_clear
      Src: /src/Python-3.8.3/Python/context.c:1092,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/context.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1094
    functionName: token_tp_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - token_tp_clear
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void token_tp_dealloc(PyContextToken *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicodeWriter_Init
      Src: /src/Python-3.8.3/Python/context.c:1101,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/context.c:1103,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/context.c:1108,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/context.c:1113,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/context.c:1117,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/context.c:1121,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1122,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1125,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/context.c:1127,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/context.c:1131,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1132,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1135,1
    - Dst: _PyUnicodeWriter_Finish
      Src: /src/Python-3.8.3/Python/context.c:1137,1
    - Dst: _PyUnicodeWriter_Dealloc
      Src: /src/Python-3.8.3/Python/context.c:1140,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyContextToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1096
    functionDepth: 8
    functionLinenumber: 1096
    functionLinenumberEnd: 1142
    functionName: token_tp_repr
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    - _PyUnicodeWriter_WriteASCIIString
    - _PyUnicodeWriter_Init
    - PyUnicode_FromFormat
    - _PyUnicodeWriter_Finish
    - _PyUnicodeWriter_Dealloc
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_tp_repr(PyContextToken *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContextToken*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1149
    functionName: token_get_var
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_get_var(PyContextToken *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_token_missing
      Src: /src/Python-3.8.3/Python/context.c:1155,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContextToken*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1160
    functionName: token_get_old_value
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - get_token_missing
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      token_get_old_value(PyContextToken *self, void *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_New
      Src: /src/Python-3.8.3/Python/context.c:1187,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1192,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1195,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/context.c:1198,1
    - Dst: PyObject_GC_Track
      Src: /src/Python-3.8.3/Python/context.c:1203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - var
    - val
    argTypes:
    - PyContext*
    - PyContextVar*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1205
    functionName: token_new
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_New
    - PyObject_GC_Track
    - Py_XINCREF
    - Py_INCREF
    linkageType: ''
    returnType: PyContextToken
    signature: 'PyContextToken *

      token_new(PyContext *ctx, PyContextVar *var, PyObject *val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/context.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1223
    functionName: context_token_missing_tp_repr
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      context_token_missing_tp_repr(PyObject *self)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1240,1
    - Dst: PyObject_New
      Src: /src/Python-3.8.3/Python/context.c:1244,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/context.c:1250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1252
    functionName: get_token_missing
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - PyObject_New
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_token_missing(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_Del
      Src: /src/Python-3.8.3/Python/context.c:1266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1270
    functionName: PyContext_ClearFreeList
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 1
    functionsReached:
    - PyObject_GC_Del
    linkageType: ''
    returnType: int
    signature: int PyContext_ClearFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/context.c:1276,1
    - Dst: PyContext_ClearFreeList
      Src: /src/Python-3.8.3/Python/context.c:1277,1
    - Dst: _PyHamt_Fini
      Src: /src/Python-3.8.3/Python/context.c:1278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1273
    functionDepth: 4
    functionLinenumber: 1273
    functionLinenumberEnd: 1279
    functionName: _PyContext_Fini
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - PyContext_ClearFreeList
    - _PyHamt_Fini
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _PyContext_Fini(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyHamt_Init
      Src: /src/Python-3.8.3/Python/context.c:1285,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/context.c:1289,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/context.c:1290,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/context.c:1291,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/context.c:1292,1
    - Dst: get_token_missing
      Src: /src/Python-3.8.3/Python/context.c:1297,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/context.c:1298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/context.c:1304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1282
    functionDepth: 12
    functionLinenumber: 1282
    functionLinenumberEnd: 1307
    functionName: _PyContext_Init
    functionSourceFile: /src/Python-3.8.3/Python/context.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyType_Ready
    - get_token_missing
    - _PyHamt_Init
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int _PyContext_Init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - errors
    - surrogateescape
    argTypes:
    - _Py_error_handler
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: get_surrogateescape
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_surrogateescape(_Py_error_handler errors, int *surrogateescape)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/fileutils.c:62,1
    - Dst: GetConsoleCP
      Src: /src/Python-3.8.3/Python/fileutils.c:69,1
    - Dst: GetConsoleOutputCP
      Src: /src/Python-3.8.3/Python/fileutils.c:71,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/fileutils.c:77,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Python/fileutils.c:80,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/fileutils.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 54
    functionDepth: 8
    functionLinenumber: 54
    functionLinenumberEnd: 86
    functionName: _Py_device_encoding
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_FromFormat
    - isatty
    - nl_langinfo
    - GetConsoleCP
    - GetConsoleOutputCP
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_device_encoding(int fd)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/fileutils.c:126,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/fileutils.c:130,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/fileutils.c:130,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Python/fileutils.c:136,1
    - Dst: _Py_normalize_encoding
      Src: /src/Python-3.8.3/Python/fileutils.c:143,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/fileutils.c:148,1
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/Python/fileutils.c:154,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/fileutils.c:185,1
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/Python/fileutils.c:202,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 221
    functionName: check_force_ascii
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - setlocale
    - mbstowcs
    - nl_langinfo
    - _Py_normalize_encoding
    - strcmp
    linkageType: ''
    returnType: int
    signature: int check_force_ascii(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_force_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: _Py_GetForceASCII
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - check_force_ascii
    linkageType: ''
    returnType: int
    signature: int _Py_GetForceASCII(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: _Py_ResetForceASCII
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_ResetForceASCII(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_surrogateescape
      Src: /src/Python-3.8.3/Python/fileutils.c:251,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/fileutils.c:255,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/fileutils.c:259,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/fileutils.c:262,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:282,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/fileutils.c:285,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 6
    argNames:
    - text
    - str
    - error_pos
    - reason
    - raw_malloc
    - errors
    argTypes:
    - wchar_t*
    - char**
    - size_t*
    - char**
    - int
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 299
    functionName: encode_ascii
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - get_surrogateescape
    - PyMem_RawMalloc
    - PyMem_Free
    - PyMem_RawFree
    - PyMem_Malloc
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int encode_ascii(const wchar_t *text, char **str,\n             size_t
      *error_pos, const char **reason,\n             int raw_malloc, _Py_error_handler
      errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: _Py_GetForceASCII
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_GetForceASCII(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: _Py_ResetForceASCII
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_ResetForceASCII(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:323,1
    - Dst: get_surrogateescape
      Src: /src/Python-3.8.3/Python/fileutils.c:326,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/fileutils.c:333,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - arg
    - wstr
    - wlen
    - reason
    - errors
    argTypes:
    - char*
    - wchar_t**
    - size_t*
    - char**
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 365
    functionName: decode_ascii
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - strlen
    - PyMem_RawFree
    - get_surrogateescape
    - PyMem_RawMalloc
    linkageType: ''
    returnType: int
    signature: "int decode_ascii(const char *arg, wchar_t **wstr, size_t *wlen,\n
      \            const char **reason, _Py_error_handler errors)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: get_surrogateescape
      Src: /src/Python-3.8.3/Python/fileutils.c:382,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:391,1
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/Python/fileutils.c:393,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/fileutils.c:399,1
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/Python/fileutils.c:404,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Python/fileutils.c:410,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:420,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:429,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/fileutils.c:433,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/fileutils.c:440,1
    - Dst: mbrtowc
      Src: /src/Python-3.8.3/Python/fileutils.c:442,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/fileutils.c:465,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Python/fileutils.c:469,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:494,1
    - Dst: decode_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:506,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 5
    argNames:
    - arg
    - wstr
    - wlen
    - reason
    - errors
    argTypes:
    - char*
    - wchar_t**
    - size_t*
    - char**
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 508
    functionName: decode_current_locale
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - Py_UNICODE_IS_SURROGATE
    - get_surrogateescape
    - mbstowcs
    - PyMem_RawMalloc
    - mbrtowc
    - strlen
    - PyMem_RawFree
    - decode_ascii
    - memset
    linkageType: ''
    returnType: int
    signature: "int decode_current_locale(const char* arg, wchar_t **wstr, size_t
      *wlen,\n                      const char **reason, _Py_error_handler errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:540,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:540,1
    - Dst: decode_current_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:543,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:548,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:548,1
    - Dst: _Py_DecodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:556,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:556,1
    - Dst: check_force_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:562,1
    - Dst: decode_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:567,1
    - Dst: decode_current_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - arg
    - wstr
    - wlen
    - reason
    - current_locale
    - errors
    argTypes:
    - char*
    - wchar_t**
    - size_t*
    - char**
    - int
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 573
    functionName: _Py_DecodeLocaleEx
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - strlen
    - decode_ascii
    - _Py_DecodeUTF8Ex
    - check_force_ascii
    - decode_current_locale
    linkageType: ''
    returnType: int
    signature: "int _Py_DecodeLocaleEx(const char* arg, wchar_t **wstr, size_t *wlen,\n
      \                  const char **reason,\n                   int current_locale,
      _Py_error_handler errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_DecodeLocaleEx
      Src: /src/Python-3.8.3/Python/fileutils.c:599,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - arg
    - wlen
    argTypes:
    - char*
    - size_t*
    assertStmts:
    - condition: (res != -3)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 610
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 610
    functionName: Py_DecodeLocale
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 7
    functionsReached:
    - assert
    - _Py_DecodeLocaleEx
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_DecodeLocale(const char* arg, size_t *wlen)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/fileutils.c:618,1
    - Dst: get_surrogateescape
      Src: /src/Python-3.8.3/Python/fileutils.c:624,1
    - Dst: wcstombs
      Src: /src/Python-3.8.3/Python/fileutils.c:653,1
    - Dst: wcstombs
      Src: /src/Python-3.8.3/Python/fileutils.c:656,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/fileutils.c:677,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/fileutils.c:680,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:692,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/fileutils.c:695,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 6
    argNames:
    - text
    - str
    - error_pos
    - reason
    - raw_malloc
    - errors
    argTypes:
    - wchar_t*
    - char**
    - size_t*
    - char**
    - int
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 704
    functionName: encode_current_locale
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - get_surrogateescape
    - PyMem_RawMalloc
    - PyMem_Free
    - wcstombs
    - PyMem_RawFree
    - PyMem_Malloc
    - wcslen
    linkageType: ''
    returnType: int
    signature: "int encode_current_locale(const wchar_t *text, char **str,\n                      size_t
      *error_pos, const char **reason,\n                      int raw_malloc, _Py_error_handler
      errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:731,1
    - Dst: encode_current_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:734,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:740,1
    - Dst: _Py_EncodeUTF8Ex
      Src: /src/Python-3.8.3/Python/fileutils.c:748,1
    - Dst: check_force_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:754,1
    - Dst: encode_ascii
      Src: /src/Python-3.8.3/Python/fileutils.c:758,1
    - Dst: encode_current_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - text
    - str
    - error_pos
    - reason
    - raw_malloc
    - current_locale
    - errors
    argTypes:
    - wchar_t*
    - char**
    - size_t*
    - char**
    - int
    - int
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 766
    functionName: encode_locale_ex
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - check_force_ascii
    - _Py_EncodeUTF8Ex
    - encode_ascii
    - encode_current_locale
    linkageType: ''
    returnType: int
    signature: "int encode_locale_ex(const wchar_t *text, char **str, size_t *error_pos,\n
      \                const char **reason,\n                 int raw_malloc, int
      current_locale, _Py_error_handler errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: encode_locale_ex
      Src: /src/Python-3.8.3/Python/fileutils.c:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - text
    - error_pos
    - raw_malloc
    - current_locale
    argTypes:
    - wchar_t*
    - size_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 783
    functionName: encode_locale
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - encode_locale_ex
    linkageType: ''
    returnType: char
    signature: "char *\nencode_locale(const wchar_t *text, size_t *error_pos,\n              int
      raw_malloc, int current_locale)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 801
    functionName: Py_EncodeLocale
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - encode_locale
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_EncodeLocale(const wchar_t *text, size_t *error_pos)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_locale
      Src: /src/Python-3.8.3/Python/fileutils.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - text
    - error_pos
    argTypes:
    - wchar_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: _Py_EncodeLocaleRaw
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - encode_locale
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_EncodeLocaleRaw(const wchar_t *text, size_t *error_pos)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: encode_locale_ex
      Src: /src/Python-3.8.3/Python/fileutils.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - text
    - str
    - error_pos
    - reason
    - current_locale
    - errors
    argTypes:
    - wchar_t*
    - char**
    - size_t*
    - char**
    - int
    - _Py_error_handler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: _Py_EncodeLocaleEx
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - encode_locale_ex
    linkageType: ''
    returnType: int
    signature: "int _Py_EncodeLocaleEx(const wchar_t *text, char **str,\n                   size_t
      *error_pos, const char **reason,\n                   int current_locale, _Py_error_handler
      errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/fileutils.c:833,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/fileutils.c:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - in_ptr
    - time_out
    - nsec_out
    argTypes:
    - FILETIME*
    - time_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 836
    functionName: FILE_TIME_to_time_t_nsec
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - memcpy
    linkageType: ''
    returnType: void
    signature: void FILE_TIME_to_time_t_nsec(FILETIME *in_ptr, time_t *time_out, int*
      nsec_out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/fileutils.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - time_in
    - nsec_in
    - out_ptr
    argTypes:
    - time_t
    - int
    - FILETIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 846
    functionName: _Py_time_t_to_FILE_TIME
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void _Py_time_t_to_FILE_TIME(time_t time_in, int nsec_in, FILETIME
      *out_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - attr
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 865
    functionName: attributes_to_mode
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int attributes_to_mode(DWORD attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/fileutils.c:871,1
    - Dst: attributes_to_mode
      Src: /src/Python-3.8.3/Python/fileutils.c:872,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/Python-3.8.3/Python/fileutils.c:876,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/Python-3.8.3/Python/fileutils.c:877,1
    - Dst: FILE_TIME_to_time_t_nsec
      Src: /src/Python-3.8.3/Python/fileutils.c:878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - info
    - reparse_tag
    - result
    argTypes:
    - BY_HANDLE_FILE_INFORMATION*
    - ULONG
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 867
    functionDepth: 2
    functionLinenumber: 867
    functionLinenumberEnd: 893
    functionName: _Py_attribute_data_to_stat
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - attributes_to_mode
    - FILE_TIME_to_time_t_nsec
    - memset
    linkageType: ''
    returnType: void
    signature: "void _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info,
      ULONG reparse_tag,\n                           struct _Py_stat_struct *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Python/fileutils.c:917,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Python/fileutils.c:923,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/fileutils.c:926,1
    - Dst: GetFileType
      Src: /src/Python-3.8.3/Python/fileutils.c:928,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/fileutils.c:930,1
    - Dst: winerror_to_errno
      Src: /src/Python-3.8.3/Python/fileutils.c:932,1
    - Dst: GetFileInformationByHandle
      Src: /src/Python-3.8.3/Python/fileutils.c:946,1
    - Dst: winerror_to_errno
      Src: /src/Python-3.8.3/Python/fileutils.c:949,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/fileutils.c:949,1
    - Dst: _Py_attribute_data_to_stat
      Src: /src/Python-3.8.3/Python/fileutils.c:953,1
    - Dst: fstat
      Src: /src/Python-3.8.3/Python/fileutils.c:958,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 908
    functionDepth: 3
    functionLinenumber: 908
    functionLinenumberEnd: 960
    functionName: _Py_fstat_noraise
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - _Py_attribute_data_to_stat
    - GetLastError
    - GetFileType
    - _get_osfhandle
    - SetLastError
    - winerror_to_errno
    - GetFileInformationByHandle
    - fstat
    - memset
    linkageType: ''
    returnType: int
    signature: int _Py_fstat_noraise(int fd, struct _Py_stat_struct *status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:982,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:982,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Python/fileutils.c:985,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/fileutils.c:990,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - status
    argTypes:
    - int
    - struct _Py_stat_struct*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 981
        line_start: 981
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 997
      start: 977
    functionDepth: 4
    functionLinenumber: 977
    functionLinenumberEnd: 997
    functionName: _Py_fstat
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - PyErr_SetFromErrno
    - PyGILState_Check
    - _Py_fstat_noraise
    - assert
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int _Py_fstat(int fd, struct _Py_stat_struct *status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Python/fileutils.c:1013,1
    - Dst: _wstat
      Src: /src/Python-3.8.3/Python/fileutils.c:1017,1
    - Dst: PyUnicode_EncodeFSDefault
      Src: /src/Python-3.8.3/Python/fileutils.c:1026,1
    - Dst: PyBytes_AsStringAndSize
      Src: /src/Python-3.8.3/Python/fileutils.c:1031,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/fileutils.c:1032,1
    - Dst: stat
      Src: /src/Python-3.8.3/Python/fileutils.c:1036,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/fileutils.c:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - path
    - statbuf
    argTypes:
    - PyObject*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1005
    functionDepth: 5
    functionLinenumber: 1005
    functionLinenumberEnd: 1040
    functionName: _Py_stat
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - PyUnicode_EncodeFSDefault
    - Py_DECREF
    - stat
    - _wstat
    - _PyUnicode_AsUnicode
    - PyBytes_AsStringAndSize
    linkageType: ''
    returnType: int
    signature: int _Py_stat(PyObject *path, struct stat *statbuf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Python/fileutils.c:1052,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1056,1
    - Dst: GetHandleInformation
      Src: /src/Python-3.8.3/Python/fileutils.c:1060,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/fileutils.c:1062,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1070,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - fd
    - raise
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1078
    functionName: get_inheritable
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - GetHandleInformation
    - _get_osfhandle
    - PyErr_SetFromErrno
    - fcntl
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int get_inheritable(int fd, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1087
    functionName: _Py_get_inheritable
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - get_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_get_inheritable(int fd)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1109,1
    - Dst: get_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1113,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Python/fileutils.c:1125,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1129,1
    - Dst: CONSOLE_PSEUDOHANDLE
      Src: /src/Python-3.8.3/Python/fileutils.c:1142,1
    - Dst: SetHandleInformation
      Src: /src/Python-3.8.3/Python/fileutils.c:1143,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/fileutils.c:1145,1
    - Dst: ioctl
      Src: /src/Python-3.8.3/Python/fileutils.c:1162,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1170,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1190,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1193,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1209,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1212,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 4
    argNames:
    - fd
    - inheritable
    - raise
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int
    - int*
    assertStmts:
    - condition: (!(atomic_flag_works != NULL && inheritable))
      pos:
        line_end: 1108
        line_start: 1108
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1217
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1217
    functionName: set_inheritable
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 9
    functionsReached:
    - ioctl
    - CONSOLE_PSEUDOHANDLE
    - _get_osfhandle
    - PyErr_SetFromErrno
    - get_inheritable
    - fcntl
    - SetHandleInformation
    - assert
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1141
    functionName: CONSOLE_PSEUDOHANDLE
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONSOLE_PSEUDOHANDLE(handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1221
    functionDepth: 3
    functionLinenumber: 1221
    functionLinenumberEnd: 1225
    functionName: make_non_inheritable
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - set_inheritable
    linkageType: ''
    returnType: int
    signature: int make_non_inheritable(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1243
    functionDepth: 3
    functionLinenumber: 1243
    functionLinenumberEnd: 1247
    functionName: _Py_set_inheritable
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 9
    functionsReached:
    - set_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_set_inheritable(int fd, int inheritable, int *atomic_flag_works)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - inheritable
    - atomic_flag_works
    argTypes:
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1256
    functionName: _Py_set_inheritable_async_safe
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - set_inheritable
    linkageType: ''
    returnType: int
    signature: int _Py_set_inheritable_async_safe(int fd, int inheritable, int *atomic_flag_works)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/fileutils.c:1277,1
    - Dst: open
      Src: /src/Python-3.8.3/Python/fileutils.c:1283,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/fileutils.c:1286,1
    - Dst: PyErr_SetFromErrnoWithFilename
      Src: /src/Python-3.8.3/Python/fileutils.c:1290,1
    - Dst: open
      Src: /src/Python-3.8.3/Python/fileutils.c:1295,1
    - Dst: set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1301,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/fileutils.c:1302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - pathname
    - flags
    - gil_held
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1308
    functionName: _Py_open_impl
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - set_inheritable
    - PyErr_SetFromErrnoWithFilename
    - close
    - open
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int _Py_open_impl(const char *pathname, int flags, int gil_held)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1324,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1324,1
    - Dst: _Py_open_impl
      Src: /src/Python-3.8.3/Python/fileutils.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1323
        line_start: 1323
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1326
      start: 1320
    functionDepth: 4
    functionLinenumber: 1320
    functionLinenumberEnd: 1326
    functionName: _Py_open
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 5
    functionsReached:
    - assert
    - _Py_open_impl
    - PyGILState_Check
    linkageType: ''
    returnType: int
    signature: int _Py_open(const char *pathname, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_open_impl
      Src: /src/Python-3.8.3/Python/fileutils.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1334
    functionDepth: 4
    functionLinenumber: 1334
    functionLinenumberEnd: 1338
    functionName: _Py_open_noraise
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _Py_open_impl
    linkageType: ''
    returnType: int
    signature: int _Py_open_noraise(const char *pathname, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/fileutils.c:1350,1
    - Dst: wcstombs
      Src: /src/Python-3.8.3/Python/fileutils.c:1357,1
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/Python-3.8.3/Python/fileutils.c:1362,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Python/fileutils.c:1366,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1367,1
    - Dst: _wfopen
      Src: /src/Python-3.8.3/Python/fileutils.c:1369,1
    - Dst: make_non_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1373,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/fileutils.c:1373,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/fileutils.c:1374,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1346
    functionDepth: 4
    functionLinenumber: 1346
    functionLinenumberEnd: 1378
    functionName: _Py_wfopen
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - fileno
    - make_non_inheritable
    - PyMem_RawFree
    - wcstombs
    - fclose
    - fopen
    - PySys_Audit
    - _Py_EncodeLocaleRaw
    - _wfopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      _Py_wfopen(const wchar_t *path, const wchar_t *mode)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/fileutils.c:1388,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Python/fileutils.c:1392,1
    - Dst: make_non_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1395,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/fileutils.c:1395,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/fileutils.c:1396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pathname
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1400
    functionName: _Py_fopen
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - fclose
    - make_non_inheritable
    - fopen
    - PySys_Audit
    - fileno
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      _Py_fopen(const char *pathname, const char *mode)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1425,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1425,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/fileutils.c:1427,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1430,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/fileutils.c:1431,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/fileutils.c:1433,1
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/Python/fileutils.c:1436,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/Python/fileutils.c:1440,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/fileutils.c:1441,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/fileutils.c:1443,1
    - Dst: _wfopen
      Src: /src/Python-3.8.3/Python/fileutils.c:1449,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/fileutils.c:1452,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1457,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1457,1
    - Dst: PyUnicode_FSConverter
      Src: /src/Python-3.8.3/Python/fileutils.c:1459,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/fileutils.c:1461,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/fileutils.c:1463,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Python/fileutils.c:1469,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/fileutils.c:1472,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/fileutils.c:1474,1
    - Dst: PyErr_SetFromErrnoWithFilenameObject
      Src: /src/Python-3.8.3/Python/fileutils.c:1480,1
    - Dst: set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1484,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/fileutils.c:1484,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/fileutils.c:1485,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - PyObject*
    - char*
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1424
        line_start: 1424
        source_file: /src/Python-3.8.3/Python/fileutils.c
    - condition: (PyGILState_Check())
      pos:
        line_end: 1456
        line_start: 1456
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1489
      start: 1415
    functionDepth: 6
    functionLinenumber: 1415
    functionLinenumberEnd: 1489
    functionName: _Py_fopen_obj
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 3
    functionsReached:
    - Py_ARRAY_LENGTH
    - PyGILState_Check
    - PyErr_CheckSignals
    - MultiByteToWideChar
    - PyErr_Format
    - assert
    - fileno
    - PyErr_SetFromWindowsErr
    - Py_DECREF
    - _PyUnicode_AsUnicode
    - Py_TYPE
    - fclose
    - PyBytes_AS_STRING
    - _wfopen
    - PyUnicode_FSConverter
    - set_inheritable
    - PyUnicode_Check
    - fopen
    - PySys_Audit
    - PyErr_SetFromErrnoWithFilenameObject
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      _Py_fopen_obj(PyObject *path, const char *mode)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1511,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1511,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1516,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1516,1
    - Dst: read
      Src: /src/Python-3.8.3/Python/fileutils.c:1527,1
    - Dst: read
      Src: /src/Python-3.8.3/Python/fileutils.c:1529,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/fileutils.c:1536,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1543,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1543,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1510
        line_start: 1510
        source_file: /src/Python-3.8.3/Python/fileutils.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1515
        line_start: 1515
        source_file: /src/Python-3.8.3/Python/fileutils.c
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1553
      start: 1504
    functionDepth: 3
    functionLinenumber: 1504
    functionLinenumberEnd: 1553
    functionName: _Py_read
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 5
    functionsReached:
    - PyErr_Occurred
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - PyGILState_Check
    - assert
    - read
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_read(int fd, void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/Python-3.8.3/Python/fileutils.c:1527,1
    - Dst: read
      Src: /src/Python-3.8.3/Python/fileutils.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1535
    functionName: do
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: _Py_BEGIN_SUPPRESS_IPH
    signature: _Py_BEGIN_SUPPRESS_IPH do
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1543,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && PyErr_Occurred())
      pos:
        line_end: 1542
        line_start: 1542
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1545
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1545
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 10
    functionsReached:
    - assert
    - PyErr_Occurred
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: _Py_END_SUPPRESS_IPH if (async_err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/fileutils.c:1564,1
    - Dst: write
      Src: /src/Python-3.8.3/Python/fileutils.c:1581,1
    - Dst: write
      Src: /src/Python-3.8.3/Python/fileutils.c:1583,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/fileutils.c:1590,1
    - Dst: write
      Src: /src/Python-3.8.3/Python/fileutils.c:1596,1
    - Dst: write
      Src: /src/Python-3.8.3/Python/fileutils.c:1598,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1610,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1610,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1615,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 4
    argNames:
    - fd
    - buf
    - count
    - gil_held
    argTypes:
    - int
    - void*
    - size_t
    - int
    assertStmts:
    - condition: (errno == EINTR && (!gil_held || PyErr_Occurred()))
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1621
      start: 1555
    functionDepth: 3
    functionLinenumber: 1555
    functionLinenumberEnd: 1621
    functionName: _Py_write_impl
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_CheckSignals
    - PyErr_SetFromErrno
    - isatty
    - assert
    - write
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_write_impl(int fd, const void *buf, size_t count, int
      gil_held)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1610,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (errno == EINTR && (!gil_held || PyErr_Occurred()))
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1612
      start: 1603
    functionDepth: 1
    functionLinenumber: 1603
    functionLinenumberEnd: 1612
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 10
    functionsReached:
    - assert
    - PyErr_Occurred
    linkageType: ''
    returnType: _Py_END_SUPPRESS_IPH
    signature: _Py_END_SUPPRESS_IPH if (async_err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1636,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1636,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1641,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/fileutils.c:1641,1
    - Dst: _Py_write_impl
      Src: /src/Python-3.8.3/Python/fileutils.c:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1635
        line_start: 1635
        source_file: /src/Python-3.8.3/Python/fileutils.c
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 1640
        line_start: 1640
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1644
      start: 1633
    functionDepth: 4
    functionLinenumber: 1633
    functionLinenumberEnd: 1644
    functionName: _Py_write
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - assert
    - _Py_write_impl
    - PyErr_Occurred
    - PyGILState_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_write(int fd, const void *buf, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_write_impl
      Src: /src/Python-3.8.3/Python/fileutils.c:1656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1653
    functionDepth: 4
    functionLinenumber: 1653
    functionLinenumberEnd: 1657
    functionName: _Py_write_noraise
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - _Py_write_impl
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t _Py_write_noraise(int fd, const void *buf, size_t count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/Python-3.8.3/Python/fileutils.c:1675,1
    - Dst: readlink
      Src: /src/Python-3.8.3/Python/fileutils.c:1680,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/fileutils.c:1680,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1681,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/fileutils.c:1684,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1689,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1696,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/fileutils.c:1700,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1701,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - path
    - buf
    - buflen
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1666
    functionDepth: 2
    functionLinenumber: 1666
    functionLinenumberEnd: 1703
    functionName: _Py_wreadlink
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - wcsncpy
    - Py_ARRAY_LENGTH
    - readlink
    - Py_DecodeLocale
    - PyMem_RawFree
    - _Py_EncodeLocaleRaw
    linkageType: ''
    returnType: int
    signature: int _Py_wreadlink(const wchar_t *path, wchar_t *buf, size_t buflen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_EncodeLocaleRaw
      Src: /src/Python-3.8.3/Python/fileutils.c:1722,1
    - Dst: realpath
      Src: /src/Python-3.8.3/Python/fileutils.c:1727,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1728,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1732,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1739,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/fileutils.c:1743,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - path
    - resolved_path
    - resolved_path_len
    argTypes:
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1713
    functionDepth: 2
    functionLinenumber: 1713
    functionLinenumberEnd: 1746
    functionName: _Py_wrealpath
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 0
    functionsReached:
    - wcsncpy
    - realpath
    - Py_DecodeLocale
    - PyMem_RawFree
    - _Py_EncodeLocaleRaw
    linkageType: ''
    returnType: wchar_t
    signature: "wchar_t *\n_Py_wrealpath(const wchar_t *path,\n              wchar_t
      *resolved_path, size_t resolved_path_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/fileutils.c:1758,1
    - Dst: _wgetcwd
      Src: /src/Python-3.8.3/Python/fileutils.c:1759,1
    - Dst: getcwd
      Src: /src/Python-3.8.3/Python/fileutils.c:1765,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/fileutils.c:1765,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1767,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1772,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/fileutils.c:1775,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/fileutils.c:1776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1779
    functionName: _Py_wgetcwd
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - wcsncpy
    - Py_ARRAY_LENGTH
    - _wgetcwd
    - getcwd
    - Py_DecodeLocale
    - PyMem_RawFree
    - Py_MIN
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_wgetcwd(wchar_t *buf, size_t buflen)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1793,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Python/fileutils.c:1793,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/Python/fileutils.c:1797,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1800,1
    - Dst: dup
      Src: /src/Python-3.8.3/Python/fileutils.c:1806,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1810,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1814,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1823,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1827,1
    - Dst: dup
      Src: /src/Python-3.8.3/Python/fileutils.c:1834,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1838,1
    - Dst: _Py_set_inheritable
      Src: /src/Python-3.8.3/Python/fileutils.c:1842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts:
    - condition: (PyGILState_Check())
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1850
      start: 1786
    functionDepth: 4
    functionLinenumber: 1786
    functionLinenumberEnd: 1850
    functionName: _Py_dup
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 6
    functionsReached:
    - _Py_set_inheritable
    - _get_osfhandle
    - PyErr_SetFromErrno
    - PyGILState_Check
    - fcntl
    - assert
    - dup
    linkageType: ''
    returnType: int
    signature: int _Py_dup(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1861,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1869
    functionName: _Py_get_blocking
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 2
    functionsReached:
    - fcntl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _Py_get_blocking(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/Python-3.8.3/Python/fileutils.c:1882,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1888,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/fileutils.c:1895,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/fileutils.c:1907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - blocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1909
    functionName: _Py_set_blocking
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - fcntl
    - ioctl
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _Py_set_blocking(int fd, int blocking)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1917,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/fileutils.c:1918,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:1921,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/fileutils.c:1924,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1931,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/fileutils.c:1933,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Python/fileutils.c:1938,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/fileutils.c:1940,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1944,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/fileutils.c:1945,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1954,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1960,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1965,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/fileutils.c:1974,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/fileutils.c:1976,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - lc
    - decimal_point
    - thousands_sep
    argTypes:
    - struct lconv*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (decimal_point != NULL)
      pos:
        line_end: 1916
        line_start: 1916
        source_file: /src/Python-3.8.3/Python/fileutils.c
    - condition: (thousands_sep != NULL)
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/Python-3.8.3/Python/fileutils.c
    constantsTouched: []
    func_position:
      end: 1978
      start: 1913
    functionDepth: 7
    functionLinenumber: 1913
    functionLinenumberEnd: 1978
    functionName: _Py_GetLocaleconvNumeric
    functionSourceFile: /src/Python-3.8.3/Python/fileutils.c
    functionUses: 1
    functionsReached:
    - _PyMem_Strdup
    - setlocale
    - PyErr_NoMemory
    - strlen
    - PyUnicode_DecodeLocale
    - PyMem_Free
    - PyErr_SetString
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int _Py_GetLocaleconvNumeric(struct lconv *lc,\n                         PyObject
      **decimal_point, PyObject **thousands_sep)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: PyMUTEX_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMUTEX_INIT(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMUTEX_FINI(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMUTEX_LOCK(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMUTEX_UNLOCK(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PyCOND_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_INIT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: PyCOND_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_FINI(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_BROADCAST(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PyCOND_WAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCOND_WAIT(cond, mut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThread_cond_after
      Src: /src/Python-3.8.3/Python/condvar.h:72,1
    - Dst: pthread_cond_timedwait
      Src: /src/Python-3.8.3/Python/condvar.h:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cond
    - mut
    - us
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 81
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - pthread_cond_timedwait
    - _PyThread_cond_after
    linkageType: ''
    returnType: void
    signature: void PyCOND_TIMEDWAIT(PyCOND_T *cond, PyMUTEX_T *mut, long long us)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeCriticalSection
      Src: /src/Python-3.8.3/Python/condvar.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: PyMUTEX_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - InitializeCriticalSection
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_INIT(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DeleteCriticalSection
      Src: /src/Python-3.8.3/Python/condvar.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_FINI(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EnterCriticalSection
      Src: /src/Python-3.8.3/Python/condvar.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_LOCK(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LeaveCriticalSection
      Src: /src/Python-3.8.3/Python/condvar.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - LeaveCriticalSection
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_UNLOCK(PyMUTEX_T *cs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CreateSemaphore
      Src: /src/Python-3.8.3/Python/condvar.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: PyCOND_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - CreateSemaphore
    linkageType: ''
    returnType: void
    signature: void PyCOND_INIT(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Python/condvar.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: PyCOND_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void PyCOND_FINI(PyCOND_T *cv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/condvar.h:165,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Python/condvar.h:170,1
    - Dst: PyMUTEX_LOCK
      Src: /src/Python-3.8.3/Python/condvar.h:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cv
    - cs
    - ms
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 189
    functionName: _PyCOND_WAIT_MS
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - PyMUTEX_UNLOCK
    - PyMUTEX_LOCK
    - WaitForSingleObjectEx
    linkageType: ''
    returnType: void
    signature: void _PyCOND_WAIT_MS(PyCOND_T *cv, PyMUTEX_T *cs, DWORD ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCOND_WAIT_MS
      Src: /src/Python-3.8.3/Python/condvar.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cv
    - cs
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: PyCOND_WAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - _PyCOND_WAIT_MS
    linkageType: ''
    returnType: void
    signature: void PyCOND_WAIT(PyCOND_T *cv, PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyCOND_WAIT_MS
      Src: /src/Python-3.8.3/Python/condvar.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cv
    - cs
    - us
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 202
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - _PyCOND_WAIT_MS
    linkageType: ''
    returnType: void
    signature: void PyCOND_TIMEDWAIT(PyCOND_T *cv, PyMUTEX_T *cs, long long us)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSemaphore
      Src: /src/Python-3.8.3/Python/condvar.h:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - ReleaseSemaphore
    linkageType: ''
    returnType: void
    signature: void PyCOND_SIGNAL(PyCOND_T *cv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSemaphore
      Src: /src/Python-3.8.3/Python/condvar.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - ReleaseSemaphore
    linkageType: ''
    returnType: void
    signature: void PyCOND_BROADCAST(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeSRWLock
      Src: /src/Python-3.8.3/Python/condvar.h:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: PyMUTEX_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - InitializeSRWLock
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_INIT(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: PyMUTEX_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_FINI(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AcquireSRWLockExclusive
      Src: /src/Python-3.8.3/Python/condvar.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: PyMUTEX_LOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 1
    functionsReached:
    - AcquireSRWLockExclusive
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_LOCK(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSRWLockExclusive
      Src: /src/Python-3.8.3/Python/condvar.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cs
    argTypes:
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: PyMUTEX_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 1
    functionsReached:
    - ReleaseSRWLockExclusive
    linkageType: ''
    returnType: void
    signature: void PyMUTEX_UNLOCK(PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializeConditionVariable
      Src: /src/Python-3.8.3/Python/condvar.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: PyCOND_INIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - InitializeConditionVariable
    linkageType: ''
    returnType: void
    signature: void PyCOND_INIT(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: PyCOND_FINI
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyCOND_FINI(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/Python-3.8.3/Python/condvar.h:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cv
    - cs
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: PyCOND_WAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - SleepConditionVariableSRW
    linkageType: ''
    returnType: void
    signature: void PyCOND_WAIT(PyCOND_T *cv, PyMUTEX_T *cs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SleepConditionVariableSRW
      Src: /src/Python-3.8.3/Python/condvar.h:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cv
    - cs
    - us
    argTypes:
    - PyCOND_T*
    - PyMUTEX_T*
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    functionName: PyCOND_TIMEDWAIT
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - SleepConditionVariableSRW
    linkageType: ''
    returnType: void
    signature: void PyCOND_TIMEDWAIT(PyCOND_T *cv, PyMUTEX_T *cs, long long us)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeConditionVariable
      Src: /src/Python-3.8.3/Python/condvar.h:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: PyCOND_SIGNAL
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - WakeConditionVariable
    linkageType: ''
    returnType: void
    signature: void PyCOND_SIGNAL(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WakeAllConditionVariable
      Src: /src/Python-3.8.3/Python/condvar.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cv
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: PyCOND_BROADCAST
    functionSourceFile: /src/Python-3.8.3/Python/condvar.h
    functionUses: 0
    functionsReached:
    - WakeAllConditionVariable
    linkageType: ''
    returnType: void
    signature: void PyCOND_BROADCAST(PyCOND_T *cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_dl.c:21,1
    - Dst: dl_loadmod
      Src: /src/Python-3.8.3/Python/dynload_dl.c:22,1
    - Dst: Py_GetProgramName
      Src: /src/Python-3.8.3/Python/dynload_dl.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/Python-3.8.3/Python/dynload_dl.c
    functionUses: 1
    functionsReached:
    - dl_loadmod
    - PyOS_snprintf
    - Py_GetProgramName
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,\n                                       const
      char *shortname,\n                                       const char *pathname,
      FILE *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: MUTEX_INIT
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_INIT(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: MUTEX_FINI
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_FINI(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: MUTEX_LOCK
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_LOCK(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: MUTEX_UNLOCK
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_UNLOCK(mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: COND_INIT
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_INIT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: COND_FINI
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_FINI(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: COND_SIGNAL
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_SIGNAL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - mut
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: COND_WAIT
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_WAIT(cond, mut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - cond
    - ','
    - mut
    - ','
    - microseconds
    - ','
    - timeout_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: COND_TIMED_WAIT
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COND_TIMED_WAIT(cond, mut, microseconds, timeout_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: _gil_initialize
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _gil_initialize(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_explicit
      Src: /src/Python-3.8.3/Python/ceval_gil.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: gil_created
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 7
    functionsReached:
    - _Py_atomic_load_explicit
    linkageType: ''
    returnType: int
    signature: int gil_created(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_INIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:107,1
    - Dst: MUTEX_INIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:109,1
    - Dst: COND_INIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:111,1
    - Dst: COND_INIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:113,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:115,1
    - Dst: _Py_ANNOTATE_RWLOCK_CREATE
      Src: /src/Python-3.8.3/Python/ceval_gil.h:116,1
    - Dst: _Py_atomic_store_explicit
      Src: /src/Python-3.8.3/Python/ceval_gil.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: create_gil
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 2
    functionsReached:
    - _Py_atomic_store_explicit
    - MUTEX_INIT
    - COND_INIT
    - _Py_atomic_store_relaxed
    - _Py_ANNOTATE_RWLOCK_CREATE
    linkageType: ''
    returnType: void
    signature: void create_gil(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COND_FINI
      Src: /src/Python-3.8.3/Python/ceval_gil.h:125,1
    - Dst: MUTEX_FINI
      Src: /src/Python-3.8.3/Python/ceval_gil.h:126,1
    - Dst: COND_FINI
      Src: /src/Python-3.8.3/Python/ceval_gil.h:128,1
    - Dst: MUTEX_FINI
      Src: /src/Python-3.8.3/Python/ceval_gil.h:129,1
    - Dst: _Py_atomic_store_explicit
      Src: /src/Python-3.8.3/Python/ceval_gil.h:131,1
    - Dst: _Py_ANNOTATE_RWLOCK_DESTROY
      Src: /src/Python-3.8.3/Python/ceval_gil.h:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: destroy_gil
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 1
    functionsReached:
    - COND_FINI
    - _Py_atomic_store_explicit
    - MUTEX_FINI
    - _Py_ANNOTATE_RWLOCK_DESTROY
    linkageType: ''
    returnType: void
    signature: void destroy_gil(struct _gil_runtime_state *gil)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ANNOTATE_RWLOCK_DESTROY
      Src: /src/Python-3.8.3/Python/ceval_gil.h:138,1
    - Dst: create_gil
      Src: /src/Python-3.8.3/Python/ceval_gil.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gil
    argTypes:
    - struct _gil_runtime_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: recreate_gil
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 1
    functionsReached:
    - create_gil
    - _Py_ANNOTATE_RWLOCK_DESTROY
    linkageType: ''
    returnType: void
    signature: void recreate_gil(struct _gil_runtime_state *gil)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:147,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval_gil.h:148,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:156,1
    - Dst: MUTEX_LOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:159,1
    - Dst: _Py_ANNOTATE_RWLOCK_RELEASED
      Src: /src/Python-3.8.3/Python/ceval_gil.h:160,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:161,1
    - Dst: COND_SIGNAL
      Src: /src/Python-3.8.3/Python/ceval_gil.h:162,1
    - Dst: MUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:163,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:166,1
    - Dst: MUTEX_LOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:167,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:169,1
    - Dst: RESET_GIL_DROP_REQUEST
      Src: /src/Python-3.8.3/Python/ceval_gil.h:171,1
    - Dst: COND_WAIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:176,1
    - Dst: MUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ceval
    - tstate
    argTypes:
    - struct _ceval_runtime_state*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: drop_gil
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 4
    functionsReached:
    - COND_SIGNAL
    - _Py_atomic_load_relaxed
    - COND_WAIT
    - _Py_atomic_store_relaxed
    - Py_FatalError
    - MUTEX_UNLOCK
    - RESET_GIL_DROP_REQUEST
    - MUTEX_LOCK
    - _Py_ANNOTATE_RWLOCK_RELEASED
    linkageType: ''
    returnType: void
    signature: void drop_gil(struct _ceval_runtime_state *ceval, PyThreadState *tstate)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ceval_gil.h:187,1
    - Dst: MUTEX_LOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:192,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:194,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:198,1
    - Dst: COND_TIMED_WAIT
      Src: /src/Python-3.8.3/Python/ceval_gil.h:206,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:210,1
    - Dst: SET_GIL_DROP_REQUEST
      Src: /src/Python-3.8.3/Python/ceval_gil.h:213,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:223,1
    - Dst: _Py_ANNOTATE_RWLOCK_ACQUIRED
      Src: /src/Python-3.8.3/Python/ceval_gil.h:224,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:226,1
    - Dst: _Py_atomic_store_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:227,1
    - Dst: COND_SIGNAL
      Src: /src/Python-3.8.3/Python/ceval_gil.h:232,1
    - Dst: MUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:233,1
    - Dst: _Py_atomic_load_relaxed
      Src: /src/Python-3.8.3/Python/ceval_gil.h:235,1
    - Dst: RESET_GIL_DROP_REQUEST
      Src: /src/Python-3.8.3/Python/ceval_gil.h:236,1
    - Dst: _PyEval_SignalAsyncExc
      Src: /src/Python-3.8.3/Python/ceval_gil.h:239,1
    - Dst: MUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/ceval_gil.h:242,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - ceval
    - tstate
    argTypes:
    - struct _ceval_runtime_state*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 244
    functionName: take_gil
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 5
    functionsReached:
    - COND_SIGNAL
    - _Py_atomic_load_relaxed
    - SET_GIL_DROP_REQUEST
    - COND_TIMED_WAIT
    - Py_FatalError
    - _Py_atomic_store_relaxed
    - MUTEX_UNLOCK
    - RESET_GIL_DROP_REQUEST
    - MUTEX_LOCK
    - _PyEval_SignalAsyncExc
    - _Py_ANNOTATE_RWLOCK_ACQUIRED
    linkageType: ''
    returnType: void
    signature: void take_gil(struct _ceval_runtime_state *ceval, PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - microseconds
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: _PyEval_SetSwitchInterval
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetSwitchInterval(unsigned long microseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: _PyEval_GetSwitchInterval
    functionSourceFile: /src/Python-3.8.3/Python/ceval_gil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long _PyEval_GetSwitchInterval()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_GET
      Src: /src/Python-3.8.3/Python/_warnings.c:30,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/_warnings.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: _Warnings_GetState
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyThreadState_GET
    - PyErr_SetString
    linkageType: ''
    returnType: WarningsState
    signature: 'WarningsState *

      _Warnings_GetState()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/_warnings.c:43,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/_warnings.c:44,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/_warnings.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: _Warnings_ClearState
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void _Warnings_ClearState(WarningsState *st)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/_warnings.c:53,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/_warnings.c:60,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/_warnings.c:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - category
    - id
    - modname
    argTypes:
    - PyObject*
    - _Py_Identifier*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 6
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: create_filter
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyTuple_Pack
    - _PyUnicode_FromId
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      create_filter(PyObject *category, _Py_Identifier *id, const char *modname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/_warnings.c:79,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/_warnings.c:82,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:88,1
    - Dst: create_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:89,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:90,1
    - Dst: create_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:91,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:92,1
    - Dst: create_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:93,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:94,1
    - Dst: create_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:95,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:96,1
    - Dst: create_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:97,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 74
    functionDepth: 7
    functionLinenumber: 74
    functionLinenumberEnd: 107
    functionName: init_filters
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - create_filter
    - PyList_GET_ITEM
    - PyList_SET_ITEM
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      init_filters(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_filters
      Src: /src/Python-3.8.3/Python/_warnings.c:114,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/_warnings.c:121,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:128,1
    - Dst: _Warnings_ClearState
      Src: /src/Python-3.8.3/Python/_warnings.c:139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 110
    functionDepth: 8
    functionLinenumber: 110
    functionLinenumberEnd: 141
    functionName: _Warnings_InitState
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyDict_New
    - init_filters
    - _Warnings_ClearState
    linkageType: ''
    returnType: int
    signature: int _Warnings_InitState(WarningsState *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:150,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/_warnings.c:158,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Python/_warnings.c:159,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:160,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:167,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/_warnings.c:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - obj
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 174
    functionName: check_matched
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - _Py_IDENTIFIER
    - PyObject_IsTrue
    - PyUnicode_CheckExact
    - PyUnicode_Compare
    linkageType: ''
    returnType: int
    signature: int check_matched(PyObject *obj, PyObject *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:185,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/_warnings.c:187,1
    - Dst: _Py_IsFinalizing
      Src: /src/Python-3.8.3/Python/_warnings.c:193,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Python/_warnings.c:194,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/_warnings.c:198,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/_warnings.c:199,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/_warnings.c:209,1
    - Dst: PyImport_GetModule
      Src: /src/Python-3.8.3/Python/_warnings.c:212,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/_warnings.c:217,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - attr_id
    - try_import
    argTypes:
    - _Py_Identifier*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 180
    functionDepth: 12
    functionLinenumber: 180
    functionLinenumberEnd: 220
    functionName: get_warnings_attr
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyUnicode_FromId
    - _PyInterpreterState_GET_UNSAFE
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - _Py_IsFinalizing
    - PyImport_GetModule
    - PyErr_ExceptionMatches
    - PyImport_Import
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnings_attr(_Py_Identifier *attr_id, int try_import)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:227,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:229,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:231,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/_warnings.c:233,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:236,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:237,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/_warnings.c:240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:241,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/_warnings.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts:
    - condition: (st->once_registry)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/Python-3.8.3/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 13
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: get_once_registry
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_Check
    - _Py_IDENTIFIER
    - get_warnings_attr
    - PyErr_Format
    - Py_TYPE
    - assert
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_once_registry(WarningsState *st)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:253,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:255,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:257,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/_warnings.c:260,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:263,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:264,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/_warnings.c:267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:268,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/_warnings.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - WarningsState*
    assertStmts:
    - condition: (st->default_action)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/Python-3.8.3/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 273
      start: 249
    functionDepth: 13
    functionLinenumber: 249
    functionLinenumberEnd: 273
    functionName: get_default_action
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _Py_IDENTIFIER
    - get_warnings_attr
    - PyErr_Format
    - Py_TYPE
    - PyUnicode_Check
    - assert
    - Py_SETREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_default_action(WarningsState *st)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:284,1
    - Dst: _Warnings_GetState
      Src: /src/Python-3.8.3/Python/_warnings.c:285,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:290,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:292,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/_warnings.c:296,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:300,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/_warnings.c:301,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/_warnings.c:307,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:312,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:313,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/_warnings.c:313,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:314,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:321,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:322,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:323,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:324,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/_warnings.c:325,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:327,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:328,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/_warnings.c:330,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:331,1
    - Dst: check_matched
      Src: /src/Python-3.8.3/Python/_warnings.c:335,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:337,1
    - Dst: check_matched
      Src: /src/Python-3.8.3/Python/_warnings.c:341,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:343,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Python/_warnings.c:347,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:349,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/_warnings.c:353,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:354,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:355,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:364,1
    - Dst: get_default_action
      Src: /src/Python-3.8.3/Python/_warnings.c:367,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:369,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 5
    argNames:
    - category
    - text
    - lineno
    - module
    - item
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 277
    functionDepth: 14
    functionLinenumber: 277
    functionLinenumberEnd: 375
    functionName: get_filter
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - _Py_IDENTIFIER
    - PyObject_IsSubclass
    - _Warnings_GetState
    - PyErr_Occurred
    - Py_INCREF
    - PyList_GET_ITEM
    - PyLong_AsSsize_t
    - PyTuple_Check
    - PyErr_Format
    - get_default_action
    - Py_DECREF
    - PyList_Check
    - Py_TYPE
    - Py_SETREF
    - get_warnings_attr
    - PyErr_SetString
    - PyUnicode_Check
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - check_matched
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nget_filter(PyObject *category, PyObject *text, Py_ssize_t
      lineno,\n           PyObject *module, PyObject **item)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:382,1
    - Dst: _Warnings_GetState
      Src: /src/Python-3.8.3/Python/_warnings.c:387,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:391,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/_warnings.c:393,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/_warnings.c:394,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:396,1
    - Dst: PyDict_Clear
      Src: /src/Python-3.8.3/Python/_warnings.c:399,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/_warnings.c:400,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/_warnings.c:403,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:407,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:410,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/_warnings.c:412,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:416,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/_warnings.c:423,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - registry
    - key
    - should_set
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 378
    functionDepth: 6
    functionLinenumber: 378
    functionLinenumberEnd: 425
    functionName: already_warned
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyLong_FromLong
    - _Warnings_GetState
    - PyLong_AsLong
    - PyErr_Occurred
    - Py_DECREF
    - PyDict_GetItemWithError
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyLong_CheckExact
    - PyDict_SetItem
    - PyObject_IsTrue
    - PyDict_Clear
    linkageType: ''
    returnType: int
    signature: int already_warned(PyObject *registry, PyObject *key, int should_set)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Python/_warnings.c:436,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:441,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/_warnings.c:443,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/_warnings.c:444,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/_warnings.c:448,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/_warnings.c:449,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/_warnings.c:450,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/_warnings.c:452,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - filename
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 428
    functionDepth: 8
    functionLinenumber: 428
    functionLinenumberEnd: 459
    functionName: normalize_module
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_READ
    - Py_INCREF
    - PyUnicode_Substring
    - PyUnicode_GetLength
    - PyUnicode_DATA
    - PyUnicode_KIND
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      normalize_module(PyObject *filename)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/_warnings.c:469,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/_warnings.c:471,1
    - Dst: already_warned
      Src: /src/Python-3.8.3/Python/_warnings.c:473,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - registry
    - text
    - category
    - add_zero
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 461
    functionDepth: 7
    functionLinenumber: 461
    functionLinenumberEnd: 476
    functionName: update_registry
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyTuple_Pack
    - already_warned
    linkageType: ''
    returnType: int
    signature: "int update_registry(PyObject *registry, PyObject *text, PyObject *category,\n
      \               int add_zero)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:485,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/_warnings.c:487,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/_warnings.c:489,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/_warnings.c:493,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/_warnings.c:495,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/_warnings.c:500,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/_warnings.c:502,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/_warnings.c:504,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/_warnings.c:506,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/_warnings.c:508,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/_warnings.c:510,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/_warnings.c:512,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/_warnings.c:522,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/_warnings.c:525,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/_warnings.c:526,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/_warnings.c:527,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/_warnings.c:529,1
    - Dst: PyUnicode_Substring
      Src: /src/Python-3.8.3/Python/_warnings.c:534,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/_warnings.c:538,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:539,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/_warnings.c:540,1
    - Dst: _Py_DisplaySourceLine
      Src: /src/Python-3.8.3/Python/_warnings.c:543,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:547,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/_warnings.c:548,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 5
    argNames:
    - filename
    - lineno
    - text
    - category
    - sourceline
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 478
    functionDepth: 13
    functionLinenumber: 478
    functionLinenumberEnd: 549
    functionName: show_warning
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - PyOS_snprintf
    - _PySys_GetObjectId
    - Py_CLEAR
    - PyUnicode_READY
    - _PyObject_GetAttrId
    - PyUnicode_READ
    - Py_DECREF
    - Py_XDECREF
    - _Py_IDENTIFIER
    - PyUnicode_Substring
    - PyFile_WriteObject
    - fprintf
    - _Py_DisplaySourceLine
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: void
    signature: "void show_warning(PyObject *filename, int lineno, PyObject *text,\n
      \            PyObject *category, PyObject *sourceline)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:557,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:558,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:563,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:565,1
    - Dst: show_warning
      Src: /src/Python-3.8.3/Python/_warnings.c:567,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:571,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/_warnings.c:572,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:577,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:579,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/_warnings.c:580,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:586,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:589,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:593,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:595,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:600,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:604,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 8
    argNames:
    - category
    - text
    - message
    - filename
    - lineno
    - lineno_obj
    - sourceline
    - source
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 551
    functionDepth: 14
    functionLinenumber: 551
    functionLinenumberEnd: 606
    functionName: call_show_warning
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyCallable_Check
    - _Py_IDENTIFIER
    - show_warning
    - get_warnings_attr
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int call_show_warning(PyObject *category, PyObject *text, PyObject
      *message,\n                  PyObject *filename, int lineno, PyObject *lineno_obj,\n
      \                 PyObject *sourceline, PyObject *source)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:626,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/_warnings.c:627,1
    - Dst: normalize_module
      Src: /src/Python-3.8.3/Python/_warnings.c:633,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:638,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:641,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/_warnings.c:642,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/_warnings.c:647,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:654,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/_warnings.c:659,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/_warnings.c:668,1
    - Dst: already_warned
      Src: /src/Python-3.8.3/Python/_warnings.c:673,1
    - Dst: get_filter
      Src: /src/Python-3.8.3/Python/_warnings.c:681,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:685,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/_warnings.c:686,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:690,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:697,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/_warnings.c:699,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:704,1
    - Dst: _Warnings_GetState
      Src: /src/Python-3.8.3/Python/_warnings.c:706,1
    - Dst: get_once_registry
      Src: /src/Python-3.8.3/Python/_warnings.c:710,1
    - Dst: update_registry
      Src: /src/Python-3.8.3/Python/_warnings.c:715,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:717,1
    - Dst: update_registry
      Src: /src/Python-3.8.3/Python/_warnings.c:720,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/_warnings.c:722,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:723,1
    - Dst: call_show_warning
      Src: /src/Python-3.8.3/Python/_warnings.c:733,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:742,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:745,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:746,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:747,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:749,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:750,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 117
    argCount: 8
    argNames:
    - category
    - message
    - filename
    - lineno
    - module
    - registry
    - sourceline
    - source
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 608
    functionDepth: 15
    functionLinenumber: 608
    functionLinenumberEnd: 752
    functionName: warn_explicit
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyObject_IsInstance
    - update_registry
    - normalize_module
    - call_show_warning
    - PyDict_SetItem
    - _Warnings_GetState
    - Py_INCREF
    - PyTuple_Pack
    - PyObject_Str
    - PyErr_Format
    - get_once_registry
    - Py_XDECREF
    - already_warned
    - _PyUnicode_EqualToASCIIString
    - Py_DECREF
    - PyDict_Check
    - PyErr_SetObject
    - get_filter
    - PyObject_CallFunctionObjArgs
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwarn_explicit(PyObject *category, PyObject *message,\n
      \             PyObject *filename, int lineno,\n              PyObject *module,
      PyObject *registry, PyObject *sourceline,\n              PyObject *source)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:763,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:768,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:770,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:773,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:774,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:782,1
    - Dst: PyUnicode_Contains
      Src: /src/Python-3.8.3/Python/_warnings.c:785,1
    - Dst: PyUnicode_Contains
      Src: /src/Python-3.8.3/Python/_warnings.c:790,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 800
    functionName: is_internal_frame
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_Contains
    - PyUnicode_Check
    linkageType: ''
    returnType: int
    signature: int is_internal_frame(PyFrameObject *frame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_internal_frame
      Src: /src/Python-3.8.3/Python/_warnings.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - frame
    argTypes:
    - PyFrameObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 810
    functionName: next_external_frame
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - is_internal_frame
    linkageType: ''
    returnType: PyFrameObject
    signature: 'PyFrameObject *

      next_external_frame(PyFrameObject *frame)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:818,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:819,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/_warnings.c:823,1
    - Dst: is_internal_frame
      Src: /src/Python-3.8.3/Python/_warnings.c:826,1
    - Dst: next_external_frame
      Src: /src/Python-3.8.3/Python/_warnings.c:833,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/_warnings.c:838,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:839,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:845,1
    - Dst: PyFrame_GetLineNumber
      Src: /src/Python-3.8.3/Python/_warnings.c:846,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/_warnings.c:852,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/_warnings.c:853,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:853,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:854,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:858,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/_warnings.c:861,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/_warnings.c:865,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:870,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:873,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:874,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:875,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:877,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:881,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:889,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:890,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:891,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 5
    argNames:
    - stack_level
    - filename
    - lineno
    - module
    - registry
    argTypes:
    - Py_ssize_t
    - PyObject**
    - int*
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (globals != NULL)
      pos:
        line_end: 851
        line_start: 851
        source_file: /src/Python-3.8.3/Python/_warnings.c
    - condition: (PyDict_Check(globals))
      pos:
        line_end: 852
        line_start: 852
        source_file: /src/Python-3.8.3/Python/_warnings.c
    constantsTouched: []
    func_position:
      end: 893
      start: 814
    functionDepth: 6
    functionLinenumber: 814
    functionLinenumberEnd: 893
    functionName: setup_context
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - is_internal_frame
    - _PyDict_GetItemIdWithError
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - _PyThreadState_GET
    - _PyInterpreterState_GET_UNSAFE
    - PyDict_New
    - _Py_IDENTIFIER
    - next_external_frame
    - PyDict_Check
    - _PyDict_SetItemId
    - PyFrame_GetLineNumber
    - PyUnicode_Check
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int setup_context(Py_ssize_t stack_level, PyObject **filename, int
      *lineno,\n              PyObject **module, PyObject **registry)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/_warnings.c:901,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Python/_warnings.c:911,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:915,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/_warnings.c:917,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - message
    - category
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 895
    functionDepth: 7
    functionLinenumber: 895
    functionLinenumberEnd: 922
    functionName: get_category
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    - PyObject_IsSubclass
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_category(PyObject *message, PyObject *category)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_context
      Src: /src/Python-3.8.3/Python/_warnings.c:931,1
    - Dst: warn_explicit
      Src: /src/Python-3.8.3/Python/_warnings.c:934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:936,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:937,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - message
    - category
    - stack_level
    - source
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 924
    functionDepth: 16
    functionLinenumber: 924
    functionLinenumberEnd: 940
    functionName: do_warn
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - setup_context
    - warn_explicit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndo_warn(PyObject *message, PyObject *category, Py_ssize_t
      stack_level,\n        PyObject *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_category
      Src: /src/Python-3.8.3/Python/_warnings.c:958,1
    - Dst: do_warn
      Src: /src/Python-3.8.3/Python/_warnings.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - module
    - message
    - category
    - stacklevel
    - source
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 953
    functionDepth: 17
    functionLinenumber: 953
    functionLinenumberEnd: 962
    functionName: warnings_warn_impl
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - do_warn
    - get_category
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwarnings_warn_impl(PyObject *module, PyObject *message,
      PyObject *category,\n                   Py_ssize_t stacklevel, PyObject *source)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:967,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:968,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:969,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:978,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:982,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/_warnings.c:983,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:985,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:988,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/_warnings.c:991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:994,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:998,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:999,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1000,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1005,1
    - Dst: PyUnicode_Splitlines
      Src: /src/Python-3.8.3/Python/_warnings.c:1010,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1011,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Python/_warnings.c:1017,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1018,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - module_globals
    - lineno
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 964
    functionDepth: 5
    functionLinenumber: 964
    functionLinenumberEnd: 1021
    functionName: get_source_line
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - Py_DECREF
    - Py_INCREF
    - PyUnicode_Splitlines
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyList_GetItem
    - PyObject_CallFunctionObjArgs
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_source_line(PyObject *module_globals, int lineno)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/_warnings.c:1040,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/_warnings.c:1046,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/_warnings.c:1047,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/_warnings.c:1049,1
    - Dst: get_source_line
      Src: /src/Python-3.8.3/Python/_warnings.c:1053,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:1054,1
    - Dst: warn_explicit
      Src: /src/Python-3.8.3/Python/_warnings.c:1058,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1023
    functionDepth: 16
    functionLinenumber: 1023
    functionLinenumberEnd: 1062
    functionName: warnings_warn_explicit
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - warn_explicit
    - PyDict_Check
    - PyErr_Format
    - get_source_line
    - Py_TYPE
    - PyArg_ParseTupleAndKeywords
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Warnings_GetState
      Src: /src/Python-3.8.3/Python/_warnings.c:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1073
    functionName: warnings_filters_mutated
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _Warnings_GetState
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_filters_mutated(PyObject *self, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_warn
      Src: /src/Python-3.8.3/Python/_warnings.c:1087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - category
    - message
    - stack_level
    - source
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1078
    functionDepth: 17
    functionLinenumber: 1078
    functionLinenumberEnd: 1093
    functionName: warn_unicode
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - do_warn
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: "int warn_unicode(PyObject *category, PyObject *message,\n             Py_ssize_t
      stack_level, PyObject *source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/_warnings.c:1103,1
    - Dst: warn_unicode
      Src: /src/Python-3.8.3/Python/_warnings.c:1107,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - source
    - category
    - stack_level
    - format
    - vargs
    argTypes:
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1095
    functionDepth: 18
    functionLinenumber: 1095
    functionLinenumberEnd: 1110
    functionName: _PyErr_WarnFormatV
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - warn_unicode
    - PyUnicode_FromFormatV
    linkageType: ''
    returnType: int
    signature: "int _PyErr_WarnFormatV(PyObject *source,\n                   PyObject
      *category, Py_ssize_t stack_level,\n                   const char *format, va_list
      vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1120,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1122,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/Python-3.8.3/Python/_warnings.c:1124,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/_warnings.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - category
    - stack_level
    - format
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1112
    functionDepth: 19
    functionLinenumber: 1112
    functionLinenumberEnd: 1127
    functionName: PyErr_WarnFormat
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 16
    functionsReached:
    - va_start
    - _PyErr_WarnFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnFormat(PyObject *category, Py_ssize_t stack_level,\n
      \                const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1137,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1139,1
    - Dst: _PyErr_WarnFormatV
      Src: /src/Python-3.8.3/Python/_warnings.c:1141,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/_warnings.c:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - stack_level
    - format
    argTypes:
    - PyObject*
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1129
    functionDepth: 19
    functionLinenumber: 1129
    functionLinenumberEnd: 1145
    functionName: PyErr_ResourceWarning
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 2
    functionsReached:
    - va_start
    - _PyErr_WarnFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyErr_ResourceWarning(PyObject *source, Py_ssize_t stack_level,\n
      \                     const char *format, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:1152,1
    - Dst: warn_unicode
      Src: /src/Python-3.8.3/Python/_warnings.c:1155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - category
    - text
    - stack_level
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1148
    functionDepth: 18
    functionLinenumber: 1148
    functionLinenumberEnd: 1158
    functionName: PyErr_WarnEx
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 21
    functionsReached:
    - PyUnicode_FromString
    - warn_unicode
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int PyErr_WarnEx(PyObject *category, const char *text, Py_ssize_t stack_level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/_warnings.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - category
    - text
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1165
    functionDepth: 19
    functionLinenumber: 1165
    functionLinenumberEnd: 1169
    functionName: PyErr_Warn
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    linkageType: ''
    returnType: int
    signature: int PyErr_Warn(PyObject *category, const char *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: warn_explicit
      Src: /src/Python-3.8.3/Python/_warnings.c:1180,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - category
    - message
    - filename
    - lineno
    - module
    - registry
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1172
    functionDepth: 16
    functionLinenumber: 1172
    functionLinenumberEnd: 1186
    functionName: PyErr_WarnExplicitObject
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - warn_explicit
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicitObject(PyObject *category, PyObject *message,\n
      \                        PyObject *filename, int lineno,\n                         PyObject
      *module, PyObject *registry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:1193,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/_warnings.c:1194,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:1201,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/Python-3.8.3/Python/_warnings.c:1206,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1211,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - category
    - text
    - filename_str
    - lineno
    - module_str
    - registry
    argTypes:
    - PyObject*
    - char*
    - char*
    - int
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1188
    functionDepth: 17
    functionLinenumber: 1188
    functionLinenumberEnd: 1214
    functionName: PyErr_WarnExplicit
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_XDECREF
    - PyErr_WarnExplicitObject
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicit(PyObject *category, const char *text,\n                   const
      char *filename_str, int lineno,\n                   const char *module_str,
      PyObject *registry)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/_warnings.c:1224,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/_warnings.c:1231,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1237,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/_warnings.c:1239,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/_warnings.c:1241,1
    - Dst: warn_explicit
      Src: /src/Python-3.8.3/Python/_warnings.c:1244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1248,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/_warnings.c:1252,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1254,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - category
    - filename_str
    - lineno
    - module_str
    - registry
    - format
    argTypes:
    - PyObject*
    - char*
    - int
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1216
    functionDepth: 16
    functionLinenumber: 1216
    functionLinenumberEnd: 1257
    functionName: PyErr_WarnExplicitFormat
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - PyUnicode_FromString
    - va_start
    - Py_DECREF
    - warn_explicit
    - PyUnicode_DecodeFSDefault
    - Py_XDECREF
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyErr_WarnExplicitFormat(PyObject *category,\n                         const
      char *filename_str, int lineno,\n                         const char *module_str,
      PyObject *registry,\n                         const char *format, ...)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/_warnings.c:1281,1
    - Dst: get_warnings_attr
      Src: /src/Python-3.8.3/Python/_warnings.c:1283,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/_warnings.c:1285,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1286,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/_warnings.c:1287,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1290,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/_warnings.c:1293,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/_warnings.c:1294,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Python/_warnings.c:1297,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/_warnings.c:1301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - coro
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1259
    functionDepth: 20
    functionLinenumber: 1259
    functionLinenumberEnd: 1304
    functionName: _PyErr_WarnUnawaitedCoroutine
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_WarnFormat
    - _Py_IDENTIFIER
    - PyErr_WriteUnraisable
    - get_warnings_attr
    - PyObject_CallFunctionObjArgs
    - PyErr_ExceptionMatches
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void _PyErr_WarnUnawaitedCoroutine(PyObject *coro)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Python/_warnings.c:1339,1
    - Dst: _Warnings_GetState
      Src: /src/Python-3.8.3/Python/_warnings.c:1344,1
    - Dst: _Warnings_InitState
      Src: /src/Python-3.8.3/Python/_warnings.c:1348,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1352,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/_warnings.c:1353,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1357,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/_warnings.c:1358,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1362,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/_warnings.c:1363,1
    - Dst: _Warnings_ClearState
      Src: /src/Python-3.8.3/Python/_warnings.c:1371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/_warnings.c:1373,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1334
    functionDepth: 9
    functionLinenumber: 1334
    functionLinenumberEnd: 1375
    functionName: _PyWarnings_Init
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 0
    functionsReached:
    - _Warnings_GetState
    - Py_DECREF
    - Py_INCREF
    - PyModule_Create
    - _Warnings_ClearState
    - PyModule_AddObject
    - _Warnings_InitState
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC _PyWarnings_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Warnings_ClearState
      Src: /src/Python-3.8.3/Python/_warnings.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1382
    functionName: _PyWarnings_Fini
    functionSourceFile: /src/Python-3.8.3/Python/_warnings.c
    functionUses: 1
    functionsReached:
    - _Warnings_ClearState
    linkageType: ''
    returnType: void
    signature: void _PyWarnings_Fini(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: Py_GetCompiler
    functionSourceFile: /src/Python-3.8.3/Python/getcompiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetCompiler(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: DECODE_LOCALE_ERR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_LOCALE_ERR(NAME, LEN)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/preconfig.c:35,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/preconfig.c:39,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: _Py_ClearFileSystemEncoding
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _Py_ClearFileSystemEncoding(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/preconfig.c:50,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/preconfig.c:55,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/preconfig.c:57,1
    - Dst: _Py_ClearFileSystemEncoding
      Src: /src/Python-3.8.3/Python/preconfig.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: _Py_SetFileSystemEncoding
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached:
    - _Py_ClearFileSystemEncoding
    - _PyMem_RawStrdup
    - PyMem_RawFree
    linkageType: ''
    returnType: int
    signature: int _Py_SetFileSystemEncoding(const char *encoding, const char *errors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/preconfig.c:81,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/preconfig.c:83,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/preconfig.c:88,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/preconfig.c:90,1
    - Dst: DECODE_LOCALE_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:91,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/preconfig.c:98,1
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/preconfig.c:104,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/preconfig.c:105,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - args
    - list
    argTypes:
    - _PyArgv*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 109
    functionName: _PyArgv_AsWstrList
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - PyMem_RawMalloc
    - Py_DecodeLocale
    - DECODE_LOCALE_ERR
    - _PyWideStringList_Copy
    - _PyStatus_OK
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyArgv_AsWstrList(const _PyArgv *args, PyWideStringList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/preconfig.c:117,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/preconfig.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: _PyPreCmdline_Clear
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: void
    signature: void _PyPreCmdline_Clear(_PyPreCmdline *cmdline)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyArgv_AsWstrList
      Src: /src/Python-3.8.3/Python/preconfig.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmdline
    - args
    argTypes:
    - _PyPreCmdline*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: _PyPreCmdline_SetArgv
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyArgv_AsWstrList
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreCmdline_SetArgv(_PyPreCmdline *cmdline, const _PyArgv
      *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:137,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:138,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    functionName: precmdline_get_preconfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_ATTR
    linkageType: ''
    returnType: void
    signature: void precmdline_get_preconfig(_PyPreCmdline *cmdline, const PyPreConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:151,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:152,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: precmdline_set_preconfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_ATTR
    linkageType: ''
    returnType: void
    signature: void precmdline_set_preconfig(const _PyPreCmdline *cmdline, PyPreConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Extend
      Src: /src/Python-3.8.3/Python/preconfig.c:165,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:166,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:170,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:171,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:172,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cmdline
    - config
    argTypes:
    - _PyPreCmdline*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 176
    functionName: _PyPreCmdline_SetConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyWideStringList_Extend
    - _PyStatus_OK
    - COPY_ATTR
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreCmdline_SetConfig(const _PyPreCmdline *cmdline, PyConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_ResetGetOpt
      Src: /src/Python-3.8.3/Python/preconfig.c:185,1
    - Dst: _PyOS_GetOpt
      Src: /src/Python-3.8.3/Python/preconfig.c:191,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/preconfig.c:208,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:210,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:223,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 224
    functionName: precmdline_parse_cmdline
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - PyWideStringList_Append
    - _PyOS_GetOpt
    - _PyOS_ResetGetOpt
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus precmdline_parse_cmdline(_PyPreCmdline *cmdline)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: precmdline_get_preconfig
      Src: /src/Python-3.8.3/Python/preconfig.c:230,1
    - Dst: precmdline_parse_cmdline
      Src: /src/Python-3.8.3/Python/preconfig.c:233,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:234,1
    - Dst: _Py_get_xoption
      Src: /src/Python-3.8.3/Python/preconfig.c:252,1
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:253,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:261,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:262,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:263,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - cmdline
    - preconfig
    argTypes:
    - _PyPreCmdline*
    - PyPreConfig*
    assertStmts:
    - condition: (cmdline->use_environment >= 0)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (cmdline->isolated >= 0)
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (cmdline->dev_mode >= 0)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/Python-3.8.3/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 266
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 266
    functionName: _PyPreCmdline_Read
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - precmdline_parse_cmdline
    - _Py_GetEnv
    - _Py_get_xoption
    - _PyStatus_EXCEPTION
    - precmdline_get_preconfig
    - assert
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreCmdline_Read(_PyPreCmdline *cmdline, const PyPreConfig
      *preconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/preconfig.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 297
    functionName: _PyPreConfig_InitCompatConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyPreConfig_InitCompatConfig(PyPreConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 318
    functionName: PyPreConfig_InitPythonConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 2
    functionsReached:
    - _PyPreConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void PyPreConfig_InitPythonConfig(PyPreConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: PyPreConfig_InitIsolatedConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyPreConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void PyPreConfig_InitIsolatedConfig(PyPreConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:342,1
    - Dst: preconfig_copy
      Src: /src/Python-3.8.3/Python/preconfig.c:343,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyPreConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 345
    functionName: _PyPreConfig_InitFromPreConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - preconfig_copy
    - _PyStatus_OK
    - PyPreConfig_InitPythonConfig
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _PyPreConfig_InitFromPreConfig(PyPreConfig *config,\n                               const
      PyPreConfig *config2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:354,1
    - Dst: PyPreConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:357,1
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:361,1
    - Dst: _PyPreConfig_GetConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - preconfig
    - config
    argTypes:
    - PyPreConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 365
    functionName: _PyPreConfig_InitFromConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - PyPreConfig_InitIsolatedConfig
    - PyPreConfig_InitPythonConfig
    - _PyPreConfig_GetConfig
    - _PyPreConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void _PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:373,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:374,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:375,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:376,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:377,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:378,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:379,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:380,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:381,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:382,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyPreConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 388
    functionName: preconfig_copy
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached:
    - COPY_ATTR
    linkageType: ''
    returnType: void
    signature: void preconfig_copy(PyPreConfig *config, const PyPreConfig *config2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/preconfig.c:396,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:414,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:415,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:416,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:417,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:418,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:419,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:420,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:421,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:423,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:425,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/preconfig.c:426,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/preconfig.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 434
    functionName: _PyPreConfig_AsDict
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - SET_ITEM_INT
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyPreConfig_AsDict(const PyPreConfig *config)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: SET_ITEM_INT
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_INT(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:445,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:446,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:447,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/preconfig.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - preconfig
    - config
    argTypes:
    - PyPreConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 451
    functionName: _PyPreConfig_GetConfig
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached:
    - COPY_ATTR
    linkageType: ''
    returnType: void
    signature: void _PyPreConfig_GetConfig(PyPreConfig *preconfig, const PyConfig
      *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:471,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:472,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 482
    functionName: preconfig_get_global_vars
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_NOT_FLAG
    - COPY_FLAG
    linkageType: ''
    returnType: void
    signature: void preconfig_get_global_vars(PyPreConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: COPY_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:497,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:498,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:500,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/preconfig.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: preconfig_set_global_vars
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - COPY_NOT_FLAG
    - COPY_FLAG
    linkageType: ''
    returnType: void
    signature: void preconfig_set_global_vars(const PyPreConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: COPY_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FLAG(ATTR, VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VAR)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:512,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/preconfig.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - use_environment
    - name
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: (use_environment >= 0)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/Python-3.8.3/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 525
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 525
    functionName: _Py_GetEnv
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 3
    functionsReached:
    - assert
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_GetEnv(int use_environment, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/Python-3.8.3/Python/preconfig.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 543
    functionName: _Py_str_to_int
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: int
    signature: int _Py_str_to_int(const char *str, int *result)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:549,1
    - Dst: _Py_str_to_int
      Src: /src/Python-3.8.3/Python/preconfig.c:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - use_environment
    - flag
    - name
    argTypes:
    - int
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 561
    functionName: _Py_get_env_flag
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    - _Py_str_to_int
    linkageType: ''
    returnType: void
    signature: void _Py_get_env_flag(int use_environment, int *flag, const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/preconfig.c:570,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/preconfig.c:575,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/Python/preconfig.c:577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - xoptions
    - name
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 582
    functionName: _Py_get_xoption
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 1
    functionsReached:
    - wcsncmp
    - wcschr
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_get_xoption(const PyWideStringList *xoptions, const wchar_t *name)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:595,1
    - Dst: _Py_get_xoption
      Src: /src/Python-3.8.3/Python/preconfig.c:599,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/preconfig.c:601,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/preconfig.c:604,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/preconfig.c:607,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:611,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:617,1
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:620,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:622,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:625,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:629,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:632,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/preconfig.c:639,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:641,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:642,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:652,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - config
    - cmdline
    argTypes:
    - PyPreConfig*
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 653
    functionName: preconfig_init_utf8_mode
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    - strcmp
    - setlocale
    - wcschr
    - _PyStatus_ERR
    - _Py_get_xoption
    - wcscmp
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline
      *cmdline)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:665,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:667,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/preconfig.c:672,1
    - Dst: _Py_LegacyLocaleDetected
      Src: /src/Python-3.8.3/Python/preconfig.c:689,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 700
    functionName: preconfig_init_coerce_c_locale
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_LegacyLocaleDetected
    - _Py_GetEnv
    - strcmp
    linkageType: ''
    returnType: void
    signature: void preconfig_init_coerce_c_locale(PyPreConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:711,1
    - Dst: _PyMem_GetAllocatorName
      Src: /src/Python-3.8.3/Python/preconfig.c:714,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:715,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:724,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 725
    functionName: preconfig_init_allocator
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    - _PyStatus_ERR
    - _PyMem_GetAllocatorName
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_init_allocator(PyPreConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreCmdline_Read
      Src: /src/Python-3.8.3/Python/preconfig.c:733,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:734,1
    - Dst: precmdline_set_preconfig
      Src: /src/Python-3.8.3/Python/preconfig.c:738,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/preconfig.c:742,1
    - Dst: preconfig_init_coerce_c_locale
      Src: /src/Python-3.8.3/Python/preconfig.c:747,1
    - Dst: preconfig_init_utf8_mode
      Src: /src/Python-3.8.3/Python/preconfig.c:749,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:750,1
    - Dst: preconfig_init_allocator
      Src: /src/Python-3.8.3/Python/preconfig.c:755,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:756,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:760,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:761,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:763,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:765,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:766,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:767,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/preconfig.c:768,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - config
    - cmdline
    argTypes:
    - PyPreConfig*
    - _PyPreCmdline*
    assertStmts:
    - condition: (config->coerce_c_locale >= 0)
      pos:
        line_end: 759
        line_start: 759
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->legacy_windows_fs_encoding >= 0)
      pos:
        line_end: 762
        line_start: 762
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->coerce_c_locale_warn >= 0)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->isolated >= 0)
      pos:
        line_end: 765
        line_start: 765
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->utf8_mode >= 0)
      pos:
        line_end: 764
        line_start: 764
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->dev_mode >= 0)
      pos:
        line_end: 767
        line_start: 767
        source_file: /src/Python-3.8.3/Python/preconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 766
        line_start: 766
        source_file: /src/Python-3.8.3/Python/preconfig.c
    constantsTouched: []
    func_position:
      end: 771
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 771
    functionName: preconfig_read
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _Py_get_env_flag
    - precmdline_set_preconfig
    - preconfig_init_utf8_mode
    - preconfig_init_allocator
    - _PyPreCmdline_Read
    - _PyStatus_EXCEPTION
    - assert
    - _PyStatus_OK
    - preconfig_init_coerce_c_locale
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/preconfig.c:785,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:786,1
    - Dst: preconfig_get_global_vars
      Src: /src/Python-3.8.3/Python/preconfig.c:790,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/preconfig.c:793,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:795,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/preconfig.c:797,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/preconfig.c:799,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:805,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:806,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:812,1
    - Dst: _PyPreCmdline_SetArgv
      Src: /src/Python-3.8.3/Python/preconfig.c:822,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:823,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:837,1
    - Dst: preconfig_read
      Src: /src/Python-3.8.3/Python/preconfig.c:849,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:850,1
    - Dst: _Py_CoerceLegacyLocale
      Src: /src/Python-3.8.3/Python/preconfig.c:867,1
    - Dst: preconfig_copy
      Src: /src/Python-3.8.3/Python/preconfig.c:891,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:898,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/preconfig.c:902,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/preconfig.c:903,1
    - Dst: _PyPreCmdline_Clear
      Src: /src/Python-3.8.3/Python/preconfig.c:909,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyPreConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 911
    functionName: _PyPreConfig_Read
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - preconfig_read
    - _PyPreCmdline_SetArgv
    - _PyStatus_NO_MEMORY
    - setlocale
    - preconfig_get_global_vars
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    - preconfig_copy
    - _PyRuntime_Initialize
    - _Py_CoerceLegacyLocale
    - _PyPreCmdline_Clear
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - _PyMem_RawStrdup
    - _PyStatus_OK
    - _Py_SetLocaleFromEnv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/Python-3.8.3/Python/preconfig.c:931,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/preconfig.c:932,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:939,1
    - Dst: _PyMem_SetupAllocators
      Src: /src/Python-3.8.3/Python/preconfig.c:944,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/preconfig.c:945,1
    - Dst: preconfig_set_global_vars
      Src: /src/Python-3.8.3/Python/preconfig.c:949,1
    - Dst: _Py_CoerceLegacyLocale
      Src: /src/Python-3.8.3/Python/preconfig.c:953,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Python/preconfig.c:960,1
    - Dst: preconfig_copy
      Src: /src/Python-3.8.3/Python/preconfig.c:964,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/preconfig.c:966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - src_config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 967
    functionName: _PyPreConfig_Write
    functionSourceFile: /src/Python-3.8.3/Python/preconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    - preconfig_set_global_vars
    - preconfig_copy
    - _Py_CoerceLegacyLocale
    - _PyMem_SetupAllocators
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _Py_SetLocaleFromEnv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPreConfig_Write(const PyPreConfig *src_config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyIndex_Check
      Src: /src/Python-3.8.3/Python/modsupport.c:23,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Python/modsupport.c:24,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/modsupport.c:25,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/modsupport.c:30,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/modsupport.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - result
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: _Py_convert_optional_to_ssize_t
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 15
    functionsReached:
    - PyIndex_Check
    - PyErr_Occurred
    - PyErr_Format
    - Py_TYPE
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: int
    signature: int _Py_convert_optional_to_ssize_t(PyObject *obj, void *result)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:51,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - format
    - endchar
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 82
    functionName: countformat
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t countformat(const char *format, char endchar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/modsupport.c:100,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/modsupport.c:100,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/modsupport.c:101,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/modsupport.c:105,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:106,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/modsupport.c:107,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/modsupport.c:110,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:113,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    - flags
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    - int
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/Python-3.8.3/Python/modsupport.c
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: do_ignore
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_Fetch
    - Py_XDECREF
    - PyErr_Restore
    - do_mkvalue
    - PyErr_SetString
    - assert
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: void
    signature: void do_ignore(const char **p_format, va_list *p_va, char endchar,
      Py_ssize_t n, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:136,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:138,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/modsupport.c:143,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:144,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:150,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:152,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:153,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:156,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/modsupport.c:157,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:159,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:161,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:164,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:168,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:169,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    - flags
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 176
    functionName: do_mkdict
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - do_mkvalue
    - PyDict_SetItem
    - PyErr_SetString
    - Py_XDECREF
    - do_ignore
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n,
      int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/modsupport.c:187,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:189,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:193,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:195,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:196,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/modsupport.c:199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:202,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    - flags
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 210
    functionName: do_mklist
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyList_SET_ITEM
    - do_mkvalue
    - PyErr_SetString
    - PyList_New
    - do_ignore
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n,
      int flags)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:224,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:226,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 6
    argNames:
    - stack
    - p_format
    - p_va
    - endchar
    - n
    - flags
    argTypes:
    - PyObject**
    - char**
    - va_list*
    - char
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 247
    functionName: do_mkstack
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - do_mkvalue
    - Py_DECREF
    - do_ignore
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: "int do_mkstack(PyObject **stack, const char **p_format, va_list *p_va,\n
      \          char endchar, Py_ssize_t n, int flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/modsupport.c:258,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:259,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:263,1
    - Dst: do_ignore
      Src: /src/Python-3.8.3/Python/modsupport.c:265,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:266,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/modsupport.c:269,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:272,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:273,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - p_format
    - p_va
    - endchar
    - n
    - flags
    argTypes:
    - char**
    - va_list*
    - char
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 280
    functionName: do_mktuple
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - do_mkvalue
    - PyErr_SetString
    - PyTuple_New
    - PyTuple_SET_ITEM
    - do_ignore
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n,
      int flags)'
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: do_mktuple
      Src: /src/Python-3.8.3/Python/modsupport.c:288,1
    - Dst: countformat
      Src: /src/Python-3.8.3/Python/modsupport.c:289,1
    - Dst: do_mklist
      Src: /src/Python-3.8.3/Python/modsupport.c:292,1
    - Dst: countformat
      Src: /src/Python-3.8.3/Python/modsupport.c:293,1
    - Dst: do_mkdict
      Src: /src/Python-3.8.3/Python/modsupport.c:296,1
    - Dst: countformat
      Src: /src/Python-3.8.3/Python/modsupport.c:297,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/modsupport.c:303,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:303,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/modsupport.c:306,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:306,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:311,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/modsupport.c:312,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/modsupport.c:317,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:317,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/modsupport.c:321,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:321,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:326,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/Python/modsupport.c:327,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Python/modsupport.c:331,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:331,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/Python/modsupport.c:334,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:334,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:339,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:344,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:346,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/modsupport.c:347,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/modsupport.c:357,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/modsupport.c:361,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/modsupport.c:362,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/modsupport.c:368,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:369,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Python/modsupport.c:372,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:373,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:378,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/modsupport.c:379,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:383,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/modsupport.c:384,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:392,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:397,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:399,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/modsupport.c:400,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/modsupport.c:410,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/modsupport.c:414,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:416,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/modsupport.c:422,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:430,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:435,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:437,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/modsupport.c:438,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/modsupport.c:448,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/modsupport.c:452,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:454,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/modsupport.c:460,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:470,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:471,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/modsupport.c:477,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/modsupport.c:480,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/modsupport.c:482,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:491,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:503,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 148
    argCount: 3
    argNames:
    - p_format
    - p_va
    - flags
    argTypes:
    - char**
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 282
    functionDepth: 19
    functionLinenumber: 282
    functionLinenumberEnd: 509
    functionName: do_mkvalue
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 5
    functionsReached:
    - PyLong_FromLong
    - do_mkdict
    - do_mktuple
    - PyLong_FromUnsignedLong
    - PyLong_FromLongLong
    - wcslen
    - PyBytes_FromStringAndSize
    - PyErr_Occurred
    - Py_INCREF
    - do_mklist
    - va_arg
    - strlen
    - PyUnicode_FromWideChar
    - PyFloat_FromDouble
    - PyComplex_FromCComplex
    - PyErr_WarnEx
    - PyLong_FromUnsignedLongLong
    - PyUnicode_FromStringAndSize
    - countformat
    - PyUnicode_FromOrdinal
    - PyErr_SetString
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      do_mkvalue(const char **p_format, va_list *p_va, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/modsupport.c:517,1
    - Dst: va_build_value
      Src: /src/Python-3.8.3/Python/modsupport.c:518,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/modsupport.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: Py_BuildValue
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 254
    functionsReached:
    - va_start
    - va_build_value
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_BuildValue(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/modsupport.c:528,1
    - Dst: va_build_value
      Src: /src/Python-3.8.3/Python/modsupport.c:529,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/modsupport.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 532
    functionName: _Py_BuildValue_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_build_value
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_BuildValue_SizeT(const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_build_value
      Src: /src/Python-3.8.3/Python/modsupport.c:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 538
    functionName: Py_VaBuildValue
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_build_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Py_VaBuildValue(const char *format, va_list va)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_build_value
      Src: /src/Python-3.8.3/Python/modsupport.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - format
    - va
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 544
    functionName: _Py_VaBuildValue_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 0
    functionsReached:
    - va_build_value
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_VaBuildValue_SizeT(const char *format, va_list va)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: countformat
      Src: /src/Python-3.8.3/Python/modsupport.c:550,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/modsupport.c:559,1
    - Dst: do_mkvalue
      Src: /src/Python-3.8.3/Python/modsupport.c:561,1
    - Dst: do_mktuple
      Src: /src/Python-3.8.3/Python/modsupport.c:563,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/modsupport.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - format
    - va
    - flags
    argTypes:
    - char*
    - va_list
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 546
    functionDepth: 20
    functionLinenumber: 546
    functionLinenumberEnd: 567
    functionName: va_build_value
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 4
    functionsReached:
    - countformat
    - va_copy
    - do_mkvalue
    - do_mktuple
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      va_build_value(const char *format, va_list va, int flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_build_stack
      Src: /src/Python-3.8.3/Python/modsupport.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 574
    functionName: _Py_VaBuildStack
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 1
    functionsReached:
    - va_build_stack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject **\n_Py_VaBuildStack(PyObject **small_stack, Py_ssize_t small_stack_len,\n
      \               const char *format, va_list va, Py_ssize_t *p_nargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_build_stack
      Src: /src/Python-3.8.3/Python/modsupport.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 581
    functionName: _Py_VaBuildStack_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 1
    functionsReached:
    - va_build_stack
    linkageType: ''
    returnType: PyObject
    signature: "PyObject **\n_Py_VaBuildStack_SizeT(PyObject **small_stack, Py_ssize_t
      small_stack_len,\n                       const char *format, va_list va, Py_ssize_t
      *p_nargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: countformat
      Src: /src/Python-3.8.3/Python/modsupport.c:593,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/modsupport.c:608,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/modsupport.c:610,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/modsupport.c:615,1
    - Dst: do_mkstack
      Src: /src/Python-3.8.3/Python/modsupport.c:617,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/modsupport.c:618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 626
    functionName: va_build_stack
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 2
    functionsReached:
    - do_mkstack
    - countformat
    - PyErr_NoMemory
    - va_copy
    - PyMem_Malloc
    - va_end
    linkageType: ''
    returnType: PyObject
    signature: "PyObject **\nva_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len,\n
      \              const char *format, va_list va, int flags, Py_ssize_t *p_nargs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Check
      Src: /src/Python-3.8.3/Python/modsupport.c:633,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:634,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/modsupport.c:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/modsupport.c:640,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/modsupport.c:645,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/modsupport.c:648,1
    - Dst: PyModule_GetName
      Src: /src/Python-3.8.3/Python/modsupport.c:649,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/modsupport.c:652,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - m
    - name
    - o
    argTypes:
    - PyObject*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 629
    functionDepth: 7
    functionLinenumber: 629
    functionLinenumberEnd: 656
    functionName: PyModule_AddObject
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 96
    functionsReached:
    - PyModule_Check
    - PyErr_Occurred
    - Py_DECREF
    - PyModule_GetDict
    - PyModule_GetName
    - PyErr_Format
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int PyModule_AddObject(PyObject *m, const char *name, PyObject *o)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/modsupport.c:661,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/modsupport.c:664,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 668
    functionName: PyModule_AddIntConstant
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 25
    functionsReached:
    - PyLong_FromLong
    - Py_DECREF
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int PyModule_AddIntConstant(PyObject *m, const char *name, long value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/modsupport.c:673,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/Python/modsupport.c:676,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/modsupport.c:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - m
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 8
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: PyModule_AddStringConstant
    functionSourceFile: /src/Python-3.8.3/Python/modsupport.c
    functionUses: 15
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyModule_AddObject
    linkageType: ''
    returnType: int
    signature: int PyModule_AddStringConstant(PyObject *m, const char *name, const
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: GETTIMEOFDAY
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETTIMEOFDAY(ptv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: GETTIMEOFDAY
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETTIMEOFDAY(ptv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - microseconds
    - ','
    - ts
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: MICROSECONDS_TO_TIMESPEC
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MICROSECONDS_TO_TIMESPEC(microseconds, ts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_condattr_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:137,1
    - Dst: pthread_condattr_setclock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: init_condattr
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_condattr_init
    - pthread_condattr_setclock
    linkageType: ''
    returnType: void
    signature: void init_condattr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_cond_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - PyCOND_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: _PyThread_cond_init
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_cond_init
    linkageType: ''
    returnType: int
    signature: int _PyThread_cond_init(PyCOND_T *cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Python/thread_pthread.h:155,1
    - Dst: MICROSECONDS_TO_TIMESPEC
      Src: /src/Python-3.8.3/Python/thread_pthread.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - us
    - abs
    argTypes:
    - long long
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: _PyThread_cond_after
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - MICROSECONDS_TO_TIMESPEC
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void _PyThread_cond_after(long long us, struct timespec *abs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: CHECK_STATUS
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STATUS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: CHECK_STATUS_PTHREAD
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_STATUS_PTHREAD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:204,1
    - Dst: init_condattr
      Src: /src/Python-3.8.3/Python/thread_pthread.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: PyThread__init_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_init
    - init_condattr
    linkageType: ''
    returnType: void
    signature: void PyThread__init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:230,1
    - Dst: func
      Src: /src/Python-3.8.3/Python/thread_pthread.h:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 234
    functionName: pythread_wrapper
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - PyMem_RawFree
    - func
    linkageType: ''
    returnType: void
    signature: 'void *

      pythread_wrapper(void *arg)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:248,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_pthread.h:250,1
    - Dst: pthread_attr_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:253,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/thread_pthread.h:257,1
    - Dst: pthread_attr_setstacksize
      Src: /src/Python-3.8.3/Python/thread_pthread.h:261,1
    - Dst: pthread_attr_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:262,1
    - Dst: pthread_attr_setscope
      Src: /src/Python-3.8.3/Python/thread_pthread.h:268,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/thread_pthread.h:271,1
    - Dst: pthread_create
      Src: /src/Python-3.8.3/Python/thread_pthread.h:280,1
    - Dst: defined
      Src: /src/Python-3.8.3/Python/thread_pthread.h:281,1
    - Dst: pthread_attr_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:289,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:293,1
    - Dst: pthread_detach
      Src: /src/Python-3.8.3/Python/thread_pthread.h:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 304
    functionName: PyThread_start_new_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 5
    functionsReached:
    - pthread_attr_setstacksize
    - pthread_create
    - dprintf
    - _PyThreadState_GET
    - pthread_attr_setscope
    - defined
    - PyMem_RawMalloc
    - PyThread_init_thread
    - PyMem_RawFree
    - pthread_attr_init
    - pthread_attr_destroy
    - pthread_detach
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_start_new_thread(void (*func)(void *), void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_pthread.h:317,1
    - Dst: pthread_self
      Src: /src/Python-3.8.3/Python/thread_pthread.h:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 320
    functionName: PyThread_get_thread_ident
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 21
    functionsReached:
    - PyThread_init_thread
    - pthread_self
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_ident(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_pthread.h:327,1
    - Dst: pthread_threadid_np
      Src: /src/Python-3.8.3/Python/thread_pthread.h:330,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Python/thread_pthread.h:333,1
    - Dst: pthread_getthreadid_np
      Src: /src/Python-3.8.3/Python/thread_pthread.h:336,1
    - Dst: getthrid
      Src: /src/Python-3.8.3/Python/thread_pthread.h:339,1
    - Dst: thread_self
      Src: /src/Python-3.8.3/Python/thread_pthread.h:342,1
    - Dst: _lwp_self
      Src: /src/Python-3.8.3/Python/thread_pthread.h:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 348
    functionName: PyThread_get_thread_native_id
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 1
    functionsReached:
    - _lwp_self
    - pthread_getthreadid_np
    - thread_self
    - syscall
    - pthread_threadid_np
    - PyThread_init_thread
    - getthrid
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_native_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:354,1
    - Dst: exit
      Src: /src/Python-3.8.3/Python/thread_pthread.h:356,1
    - Dst: pthread_exit
      Src: /src/Python-3.8.3/Python/thread_pthread.h:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 358
    functionName: _Py_NO_RETURN::PyThread_exit_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - exit
    - dprintf
    - pthread_exit
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_exit_thread(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:372,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_pthread.h:374,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/thread_pthread.h:376,1
    - Dst: sem_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:379,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:380,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:383,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 390
    functionName: PyThread_allocate_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 33
    functionsReached:
    - dprintf
    - PyMem_RawMalloc
    - PyThread_init_thread
    - CHECK_STATUS
    - PyMem_RawFree
    - sem_init
    linkageType: ''
    returnType: PyThread_type_lock
    signature: PyThread_type_lock PyThread_allocate_lock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:399,1
    - Dst: sem_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:404,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:405,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 408
    functionName: PyThread_free_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 31
    functionsReached:
    - sem_destroy
    - dprintf
    - CHECK_STATUS
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyThread_free_lock(PyThread_type_lock lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: fix_status
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fix_status(int status)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:433,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/thread_pthread.h:437,1
    - Dst: MICROSECONDS_TO_TIMESPEC
      Src: /src/Python-3.8.3/Python/thread_pthread.h:441,1
    - Dst: _PyTime_FromNanoseconds
      Src: /src/Python-3.8.3/Python/thread_pthread.h:446,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:447,1
    - Dst: fix_status
      Src: /src/Python-3.8.3/Python/thread_pthread.h:453,1
    - Dst: sem_timedwait
      Src: /src/Python-3.8.3/Python/thread_pthread.h:453,1
    - Dst: fix_status
      Src: /src/Python-3.8.3/Python/thread_pthread.h:456,1
    - Dst: sem_trywait
      Src: /src/Python-3.8.3/Python/thread_pthread.h:456,1
    - Dst: fix_status
      Src: /src/Python-3.8.3/Python/thread_pthread.h:459,1
    - Dst: sem_wait
      Src: /src/Python-3.8.3/Python/thread_pthread.h:459,1
    - Dst: _PyTime_GetMonotonicClock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:470,1
    - Dst: _PyTime_GetSystemClock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:476,1
    - Dst: _PyTime_AsTimespec
      Src: /src/Python-3.8.3/Python/thread_pthread.h:477,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/thread_pthread.h:480,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:495,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:499,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:502,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:514,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 60
    argCount: 3
    argNames:
    - lock
    - microseconds
    - intr_flag
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 517
    functionName: PyThread_acquire_lock_timed
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 4
    functionsReached:
    - _PyTime_AsTimespec
    - fix_status
    - sem_timedwait
    - _PyTime_GetSystemClock
    - dprintf
    - _PyTime_GetMonotonicClock
    - sem_trywait
    - Py_FatalError
    - MICROSECONDS_TO_TIMESPEC
    - _PyTime_FromNanoseconds
    - Py_UNREACHABLE
    - CHECK_STATUS
    - sem_wait
    linkageType: ''
    returnType: PyLockStatus
    signature: "PyLockStatus PyThread_acquire_lock_timed(PyThread_type_lock lock,
      PY_TIMEOUT_T microseconds,\n                            int intr_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:526,1
    - Dst: sem_post
      Src: /src/Python-3.8.3/Python/thread_pthread.h:528,1
    - Dst: CHECK_STATUS
      Src: /src/Python-3.8.3/Python/thread_pthread.h:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: PyThread_release_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 54
    functionsReached:
    - sem_post
    - dprintf
    - CHECK_STATUS
    linkageType: ''
    returnType: void
    signature: void PyThread_release_lock(PyThread_type_lock lock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:543,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_pthread.h:545,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/thread_pthread.h:547,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/thread_pthread.h:549,1
    - Dst: pthread_mutex_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:552,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:553,1
    - Dst: _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX
      Src: /src/Python-3.8.3/Python/thread_pthread.h:559,1
    - Dst: _PyThread_cond_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:561,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:562,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:565,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:570,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 572
    functionName: PyThread_allocate_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 33
    functionsReached:
    - _PyThread_cond_init
    - dprintf
    - CHECK_STATUS_PTHREAD
    - PyMem_RawMalloc
    - _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX
    - pthread_mutex_init
    - PyThread_init_thread
    - PyMem_RawFree
    - memset
    linkageType: ''
    returnType: PyThread_type_lock
    signature: PyThread_type_lock PyThread_allocate_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:581,1
    - Dst: pthread_cond_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:586,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:587,1
    - Dst: pthread_mutex_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:589,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:590,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_pthread.h:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: PyThread_free_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 31
    functionsReached:
    - dprintf
    - CHECK_STATUS_PTHREAD
    - PyMem_RawFree
    - pthread_cond_destroy
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void PyThread_free_lock(PyThread_type_lock lock)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:603,1
    - Dst: pthread_mutex_trylock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:607,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:609,1
    - Dst: pthread_mutex_lock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:612,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:613,1
    - Dst: _PyThread_cond_after
      Src: /src/Python-3.8.3/Python/thread_pthread.h:622,1
    - Dst: pthread_cond_timedwait
      Src: /src/Python-3.8.3/Python/thread_pthread.h:630,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:638,1
    - Dst: pthread_cond_wait
      Src: /src/Python-3.8.3/Python/thread_pthread.h:641,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:644,1
    - Dst: pthread_mutex_unlock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:660,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:661,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:665,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - lock
    - microseconds
    - intr_flag
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 668
    functionName: PyThread_acquire_lock_timed
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 4
    functionsReached:
    - pthread_mutex_unlock
    - dprintf
    - pthread_cond_timedwait
    - CHECK_STATUS_PTHREAD
    - _PyThread_cond_after
    - pthread_cond_wait
    - pthread_mutex_lock
    - pthread_mutex_trylock
    linkageType: ''
    returnType: PyLockStatus
    signature: "PyLockStatus PyThread_acquire_lock_timed(PyThread_type_lock lock,
      PY_TIMEOUT_T microseconds,\n                            int intr_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_pthread.h:677,1
    - Dst: pthread_mutex_lock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:679,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:680,1
    - Dst: pthread_cond_signal
      Src: /src/Python-3.8.3/Python/thread_pthread.h:685,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:686,1
    - Dst: pthread_mutex_unlock
      Src: /src/Python-3.8.3/Python/thread_pthread.h:688,1
    - Dst: CHECK_STATUS_PTHREAD
      Src: /src/Python-3.8.3/Python/thread_pthread.h:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 690
    functionName: PyThread_release_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 54
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_signal
    - dprintf
    - CHECK_STATUS_PTHREAD
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void PyThread_release_lock(PyThread_type_lock lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Python/thread_pthread.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock
    - waitflag
    argTypes:
    - PyThread_type_lock
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    functionName: PyThread_acquire_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 37
    functionsReached:
    - PyThread_acquire_lock_timed
    linkageType: ''
    returnType: int
    signature: int PyThread_acquire_lock(PyThread_type_lock lock, int waitflag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/thread_pthread.h:715,1
    - Dst: pthread_attr_init
      Src: /src/Python-3.8.3/Python/thread_pthread.h:728,1
    - Dst: pthread_attr_setstacksize
      Src: /src/Python-3.8.3/Python/thread_pthread.h:729,1
    - Dst: pthread_attr_destroy
      Src: /src/Python-3.8.3/Python/thread_pthread.h:730,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/thread_pthread.h:732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 741
    functionName: _pythread_pthread_set_stacksize
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - pthread_attr_setstacksize
    - pthread_attr_destroy
    - pthread_attr_init
    linkageType: ''
    returnType: int
    signature: int _pythread_pthread_set_stacksize(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 744
    functionName: THREAD_SET_STACKSIZE
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SET_STACKSIZE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_create
      Src: /src/Python-3.8.3/Python/thread_pthread.h:766,1
    - Dst: pthread_key_delete
      Src: /src/Python-3.8.3/Python/thread_pthread.h:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 779
    functionName: PyThread_create_key
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: int PyThread_create_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_key_delete
      Src: /src/Python-3.8.3/Python/thread_pthread.h:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 787
    functionName: PyThread_delete_key
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_key_delete
    linkageType: ''
    returnType: void
    signature: void PyThread_delete_key(int key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/Python-3.8.3/Python/thread_pthread.h:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 795
    functionName: PyThread_delete_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: void
    signature: void PyThread_delete_key_value(int key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_setspecific
      Src: /src/Python-3.8.3/Python/thread_pthread.h:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 806
    functionName: PyThread_set_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_setspecific
    linkageType: ''
    returnType: int
    signature: int PyThread_set_key_value(int key, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_getspecific
      Src: /src/Python-3.8.3/Python/thread_pthread.h:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 816
    functionName: PyThread_get_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached:
    - pthread_getspecific
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_get_key_value(int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: PyThread_ReInitTLS
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread_ReInitTLS(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_pthread.h:833,1
    - Dst: pthread_key_create
      Src: /src/Python-3.8.3/Python/thread_pthread.h:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 832
        line_start: 832
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 845
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 845
    functionName: PyThread_tss_create
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 4
    functionsReached:
    - assert
    - pthread_key_create
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_create(Py_tss_t *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_pthread.h:850,1
    - Dst: pthread_key_delete
      Src: /src/Python-3.8.3/Python/thread_pthread.h:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 859
      start: 847
    functionDepth: 1
    functionLinenumber: 847
    functionLinenumberEnd: 859
    functionName: PyThread_tss_delete
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 4
    functionsReached:
    - assert
    - pthread_key_delete
    linkageType: ''
    returnType: void
    signature: void PyThread_tss_delete(Py_tss_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_pthread.h:864,1
    - Dst: pthread_setspecific
      Src: /src/Python-3.8.3/Python/thread_pthread.h:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - Py_tss_t*
    - void*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 867
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 867
    functionName: PyThread_tss_set
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 6
    functionsReached:
    - pthread_setspecific
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_set(Py_tss_t *key, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_pthread.h:872,1
    - Dst: pthread_getspecific
      Src: /src/Python-3.8.3/Python/thread_pthread.h:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 871
        line_start: 871
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: PyThread_tss_get
    functionSourceFile: /src/Python-3.8.3/Python/thread_pthread.h
    functionUses: 9
    functionsReached:
    - assert
    - pthread_getspecific
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_tss_get(Py_tss_t *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:28,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:29,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:32,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:33,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:34,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:35,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:36,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - gens
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: validate_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - asdl_seq_LEN
    - validate_exprs
    - PyErr_SetString
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int validate_comprehension(asdl_seq *gens)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:47,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:48,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:49,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:52,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:54,1
    - Dst: validate_slice
      Src: /src/Python-3.8.3/Python/ast.c:55,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:55,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:60,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - slice
    argTypes:
    - slice_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: validate_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - validate_expr
    - asdl_seq_LEN
    - validate_nonempty_seq
    - validate_slice
    - PyErr_SetString
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int validate_slice(slice_ty slice)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:71,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:72,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - keywords
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: validate_keywords
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - validate_expr
    linkageType: ''
    returnType: int
    signature: int validate_keywords(asdl_seq *keywords)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:81,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:82,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: validate_args
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - validate_expr
    linkageType: ''
    returnType: int
    signature: int validate_args(asdl_seq *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/ast.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: expr_context_name
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: char
    signature: 'char *

      expr_context_name(expr_context_ty ctx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_args
      Src: /src/Python-3.8.3/Python/ast.c:113,1
    - Dst: validate_args
      Src: /src/Python-3.8.3/Python/ast.c:113,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:117,1
    - Dst: validate_args
      Src: /src/Python-3.8.3/Python/ast.c:120,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:123,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:126,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:126,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:126,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:127,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:130,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:130,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:131,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:135,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - args
    argTypes:
    - arguments_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: validate_arguments
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_args
    - validate_expr
    - asdl_seq_LEN
    - PyErr_SetString
    - validate_exprs
    linkageType: ''
    returnType: int
    signature: int validate_arguments(arguments_ty args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:144,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:145,1
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:146,1
    - Dst: PyBool_Check
      Src: /src/Python-3.8.3/Python/ast.c:147,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:148,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:149,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:152,1
    - Dst: PyFrozenSet_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:152,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/ast.c:155,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/ast.c:160,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ast.c:162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:163,1
    - Dst: validate_constant
      Src: /src/Python-3.8.3/Python/ast.c:169,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:170,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:174,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:177,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 1
    argNames:
    - value
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 182
    functionName: validate_constant
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyBytes_CheckExact
    - validate_constant
    - PyLong_CheckExact
    - PyComplex_CheckExact
    - PyIter_Next
    - PyFrozenSet_CheckExact
    - PyTuple_CheckExact
    - PyFloat_CheckExact
    - PyObject_GetIter
    - PyBool_Check
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int validate_constant(PyObject *value)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:212,1
    - Dst: expr_context_name
      Src: /src/Python-3.8.3/Python/ast.c:213,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:221,1
    - Dst: expr_context_name
      Src: /src/Python-3.8.3/Python/ast.c:222,1
    - Dst: expr_context_name
      Src: /src/Python-3.8.3/Python/ast.c:222,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:229,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:230,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:233,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:235,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:236,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:238,1
    - Dst: validate_arguments
      Src: /src/Python-3.8.3/Python/ast.c:240,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:241,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:243,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:244,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:245,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:247,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:247,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:248,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:254,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:255,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:257,1
    - Dst: COMP
      Src: /src/Python-3.8.3/Python/ast.c:262,1
    - Dst: COMP
      Src: /src/Python-3.8.3/Python/ast.c:263,1
    - Dst: COMP
      Src: /src/Python-3.8.3/Python/ast.c:264,1
    - Dst: validate_comprehension
      Src: /src/Python-3.8.3/Python/ast.c:267,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:268,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:269,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:271,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:273,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:275,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:277,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:278,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:281,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:282,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:283,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:287,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:288,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:290,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:291,1
    - Dst: validate_keywords
      Src: /src/Python-3.8.3/Python/ast.c:292,1
    - Dst: validate_constant
      Src: /src/Python-3.8.3/Python/ast.c:294,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:295,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ast.c:297,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:302,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:304,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:307,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:310,1
    - Dst: validate_slice
      Src: /src/Python-3.8.3/Python/ast.c:312,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:313,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:315,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:317,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:319,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:321,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:326,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 109
    argCount: 2
    argNames:
    - exp
    - ctx
    argTypes:
    - expr_ty
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 328
    functionName: validate_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 6
    functionsReached:
    - validate_expr
    - expr_context_name
    - asdl_seq_LEN
    - validate_keywords
    - validate_constant
    - PyErr_Format
    - validate_arguments
    - validate_exprs
    - PyErr_SetString
    - Py_TYPE
    - validate_slice
    - validate_comprehension
    - COMP
    linkageType: ''
    returnType: int
    signature: int validate_expr(expr_ty exp, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: COMP
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMP(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:333,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - seq
    - what
    - owner
    argTypes:
    - asdl_seq*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: validate_nonempty_seq
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int validate_nonempty_seq(asdl_seq *seq, const char *what, const char
      *owner)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:342,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - targets
    - ctx
    argTypes:
    - asdl_seq*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: validate_assignlist
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_nonempty_seq
    - validate_exprs
    linkageType: ''
    returnType: int
    signature: int validate_assignlist(asdl_seq *targets, expr_context_ty ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:349,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - body
    - owner
    argTypes:
    - asdl_seq*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: validate_body
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_stmts
    - validate_nonempty_seq
    linkageType: ''
    returnType: int
    signature: int validate_body(asdl_seq *body, const char *owner)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:358,1
    - Dst: validate_arguments
      Src: /src/Python-3.8.3/Python/ast.c:359,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:360,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:362,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:364,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:365,1
    - Dst: validate_keywords
      Src: /src/Python-3.8.3/Python/ast.c:366,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:367,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:369,1
    - Dst: validate_assignlist
      Src: /src/Python-3.8.3/Python/ast.c:371,1
    - Dst: validate_assignlist
      Src: /src/Python-3.8.3/Python/ast.c:373,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:374,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:376,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:377,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:381,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:385,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:387,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:388,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:390,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:391,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:392,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:393,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:395,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:396,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:397,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:398,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:400,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:401,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:402,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:404,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:405,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:406,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:408,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:410,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:411,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:412,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:413,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:416,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:418,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:420,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:421,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:422,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:423,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:426,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:429,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:430,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:433,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:438,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:440,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:441,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:442,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:445,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:446,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:447,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:450,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:451,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:453,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:454,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:457,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:458,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:459,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:460,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:462,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:463,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:465,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:468,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:471,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:473,1
    - Dst: validate_nonempty_seq
      Src: /src/Python-3.8.3/Python/ast.c:475,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:477,1
    - Dst: validate_body
      Src: /src/Python-3.8.3/Python/ast.c:479,1
    - Dst: validate_arguments
      Src: /src/Python-3.8.3/Python/ast.c:480,1
    - Dst: validate_exprs
      Src: /src/Python-3.8.3/Python/ast.c:481,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:483,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:489,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 95
    argCount: 1
    argNames:
    - stmt
    argTypes:
    - stmt_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 492
    functionName: validate_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - validate_stmts
    - asdl_seq_LEN
    - validate_nonempty_seq
    - validate_keywords
    - validate_arguments
    - validate_exprs
    - PyErr_SetString
    - validate_assignlist
    - validate_body
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int validate_stmt(stmt_ty stmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:498,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:499,1
    - Dst: validate_stmt
      Src: /src/Python-3.8.3/Python/ast.c:501,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - seq
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 494
    functionDepth: 6
    functionLinenumber: 494
    functionLinenumberEnd: 511
    functionName: validate_stmts
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 2
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - PyErr_SetString
    - validate_stmt
    linkageType: ''
    returnType: int
    signature: int validate_stmts(asdl_seq *seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:517,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:518,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:520,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - exprs
    - ctx
    - null_ok
    argTypes:
    - asdl_seq*
    - expr_context_ty
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 531
    functionName: validate_exprs
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 5
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - validate_expr
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int validate_exprs(asdl_seq *exprs, expr_context_ty ctx, int null_ok)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:540,1
    - Dst: validate_stmts
      Src: /src/Python-3.8.3/Python/ast.c:543,1
    - Dst: validate_expr
      Src: /src/Python-3.8.3/Python/ast.c:546,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:549,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - mod
    argTypes:
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 533
    functionDepth: 7
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: PyAST_Validate
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - validate_expr
    - validate_stmts
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyAST_Validate(mod_ty mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Python/ast.c:599,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/ast.c:602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct compiling*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 607
    functionName: init_normalization
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModuleNoBlock
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int init_normalization(struct compiling *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/ast.c:612,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:612,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:616,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Python/ast.c:616,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Python/ast.c:619,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:621,1
    - Dst: init_normalization
      Src: /src/Python-3.8.3/Python/ast.c:622,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:623,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/ast.c:626,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:628,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/ast.c:632,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:633,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast.c:636,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:637,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/ast.c:640,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:641,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/ast.c:646,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:647,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - n
    - c
    argTypes:
    - char*
    - struct compiling*
    assertStmts:
    - condition: (PyUnicode_IS_READY(id))
      pos:
        line_end: 615
        line_start: 615
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 652
      start: 609
    functionDepth: 5
    functionLinenumber: 609
    functionLinenumberEnd: 652
    functionName: new_identifier
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - Py_DECREF
    - _PyUnicode_FromId
    - PyUnicode_InternInPlace
    - PyArena_AddPyObject
    - _Py_IDENTIFIER
    - strlen
    - PyUnicode_IS_ASCII
    - PyUnicode_DecodeUTF8
    - _PyObject_FastCall
    - PyErr_Format
    - PyUnicode_Check
    - assert
    - Py_TYPE
    - init_normalization
    linkageType: ''
    returnType: identifier
    signature: identifier new_identifier(const char *n, struct compiling *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 655
    functionName: NEW_IDENTIFIER
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_IDENTIFIER(n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/ast.c:662,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/ast.c:663,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/ast.c:664,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/Python-3.8.3/Python/ast.c:668,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:668,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ast.c:670,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/ast.c:673,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:673,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:675,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/ast.c:678,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:679,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:680,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/ast.c:682,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - c
    - n
    - errmsg
    argTypes:
    - struct compiling*
    - node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 656
    functionDepth: 7
    functionLinenumber: 656
    functionLinenumberEnd: 686
    functionName: ast_error
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 4
    functionsReached:
    - va_start
    - Py_BuildValue
    - Py_DECREF
    - Py_INCREF
    - PyErr_ProgramTextObject
    - PyTuple_Pack
    - PyErr_SetObject
    - LINENO
    - PyUnicode_FromFormatV
    - va_end
    linkageType: ''
    returnType: int
    signature: int ast_error(struct compiling *c, const node *n, const char *errmsg,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/ast.c:705,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:705,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:708,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - struct compiling*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 702
    functionDepth: 5
    functionLinenumber: 702
    functionLinenumberEnd: 713
    functionName: new_type_comment
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strlen
    - PyUnicode_DecodeUTF8
    - PyArena_AddPyObject
    linkageType: ''
    returnType: string
    signature: string new_type_comment(const char *s, struct compiling *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 715
    functionName: NEW_TYPE_COMMENT
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_TYPE_COMMENT(n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:722,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:724,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:724,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:727,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:727,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:730,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:731,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:732,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:733,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:737,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:737,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:741,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:746,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:747,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:747,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:751,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:751,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:753,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:754,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:754,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Python/ast.c:760,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:761,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:761,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/ast.c:762,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/ast.c:765,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - n
    argTypes:
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 766
    functionName: num_stmts
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - num_stmts
    - CHILD
    - Py_UNREACHABLE
    - Py_FatalError
    - TYPE
    - sprintf
    linkageType: ''
    returnType: int
    signature: int num_stmts(const node *n)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:791,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:792,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:795,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:797,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:797,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:800,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:801,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:802,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:804,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:805,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:807,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:810,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:813,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:814,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:816,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:816,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:819,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:825,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:825,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:826,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:827,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:828,1
    - Dst: new_type_comment
      Src: /src/Python-3.8.3/Python/ast.c:833,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:833,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:833,1
    - Dst: TypeIgnore
      Src: /src/Python-3.8.3/Python/ast.c:836,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:836,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:836,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:839,1
    - Dst: Module
      Src: /src/Python-3.8.3/Python/ast.c:842,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:848,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:848,1
    - Dst: Expression
      Src: /src/Python-3.8.3/Python/ast.c:851,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:855,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:855,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:856,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:859,1
    - Dst: Pass
      Src: /src/Python-3.8.3/Python/ast.c:859,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:862,1
    - Dst: Interactive
      Src: /src/Python-3.8.3/Python/ast.c:864,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:867,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:868,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:869,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:873,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:876,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:880,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:881,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:882,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:882,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:884,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:884,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:887,1
    - Dst: Interactive
      Src: /src/Python-3.8.3/Python/ast.c:891,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:895,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:896,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:898,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:898,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:899,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:903,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:904,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:904,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:909,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:914,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:915,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:915,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:916,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:916,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:919,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:924,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:929,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:929,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:929,1
    - Dst: FunctionType
      Src: /src/Python-3.8.3/Python/ast.c:932,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:935,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:936,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:941,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 151
    argCount: 4
    argNames:
    - n
    - flags
    - filename
    - arena
    argTypes:
    - node*
    - PyCompilerFlags*
    - PyObject*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 771
    functionDepth: 6
    functionLinenumber: 771
    functionLinenumberEnd: 944
    functionName: PyAST_FromNodeObject
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - STR
    - Interactive
    - FunctionType
    - _Py_asdl_seq_new
    - REQ
    - PyErr_Format
    - Expression
    - Py_DECREF
    - Module
    - Pass
    - CHILD
    - TYPE
    - asdl_seq_SET
    - asdl_seq_GET
    - NCH
    - ast_for_stmt
    - num_stmts
    - ast_for_testlist
    - LINENO
    - TypeIgnore
    - new_type_comment
    - ast_for_expr
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyAST_FromNodeObject(const node *n, PyCompilerFlags *flags,\n
      \                    PyObject *filename, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/ast.c:952,1
    - Dst: PyAST_FromNodeObject
      Src: /src/Python-3.8.3/Python/ast.c:955,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - n
    - flags
    - filename_str
    - arena
    argTypes:
    - node*
    - PyCompilerFlags*
    - char*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 7
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: PyAST_FromNode
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - PyAST_FromNodeObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyAST_FromNode(const node *n, PyCompilerFlags *flags, const
      char *filename_str,\n               PyArena *arena)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:967,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 964
    functionDepth: 8
    functionLinenumber: 964
    functionLinenumberEnd: 1000
    functionName: get_operator
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - TYPE
    - ast_error
    linkageType: ''
    returnType: operator_ty
    signature: operator_ty get_operator(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1014,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast.c:1014,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/ast.c:1022,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - c
    - name
    - n
    - full_checks
    argTypes:
    - struct compiling*
    - identifier
    - node*
    - int
    assertStmts:
    - condition: (PyUnicode_Check(name))
      pos:
        line_end: 1013
        line_start: 1013
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1028
      start: 1010
    functionDepth: 8
    functionLinenumber: 1010
    functionLinenumberEnd: 1028
    functionName: forbidden_name
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - assert
    - _PyUnicode_EqualToASCIIString
    - ast_error
    linkageType: ''
    returnType: int
    signature: "int forbidden_name(struct compiling *c, identifier name, const node
      *n,\n               int full_checks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - e
    - n
    - end
    argTypes:
    - expr_ty
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1040
    functionName: copy_location
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - LINENO
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty copy_location(expr_ty e, const node *n, const node *end)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 67
    argCount: 1
    argNames:
    - e
    argTypes:
    - expr_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1114
    functionName: get_expr_name
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: char
    signature: 'char *

      get_expr_name(expr_ty e)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1135,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:1140,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:1148,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:1153,1
    - Dst: get_expr_name
      Src: /src/Python-3.8.3/Python/ast.c:1167,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1169,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:1183,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:1184,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:1184,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - c
    - e
    - ctx
    - n
    argTypes:
    - struct compiling*
    - expr_ty
    - expr_context_ty
    - node*
    assertStmts:
    - condition: (ctx != AugStore && ctx != AugLoad)
      pos:
        line_end: 1134
        line_start: 1134
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1189
      start: 1123
    functionDepth: 9
    functionLinenumber: 1123
    functionLinenumberEnd: 1189
    functionName: set_context
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - get_expr_name
    - ast_error
    - asdl_seq_LEN
    - forbidden_name
    - set_context
    - assert
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int set_context(struct compiling *c, expr_ty e, expr_context_ty ctx,
      const node *n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1194,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1195,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1196,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1202,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1219,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1225,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1231,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1191
    functionDepth: 8
    functionLinenumber: 1191
    functionLinenumberEnd: 1234
    functionName: ast_for_augassign
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_error
    - STR
    - CHILD
    - REQ
    - PyErr_Format
    linkageType: ''
    returnType: operator_ty
    signature: operator_ty ast_for_augassign(struct compiling *c, const node *n)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1242,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1243,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1244,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1245,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:1259,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1259,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:1261,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1261,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1265,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1266,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1270,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1272,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1272,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:1274,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1274,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1274,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:1276,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1276,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1276,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1280,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1281,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1281,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1281,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1281,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1285,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1286,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1236
    functionDepth: 1
    functionLinenumber: 1236
    functionLinenumberEnd: 1288
    functionName: ast_for_comp_op
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - STR
    - CHILD
    - REQ
    - TYPE
    - PyErr_Format
    - strcmp
    linkageType: ''
    returnType: cmpop_ty
    signature: cmpop_ty ast_for_comp_op(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1299,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1299,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1299,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1299,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1301,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1301,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1305,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1306,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1307,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1307,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1307,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1307,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1307,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1309,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1313,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == testlist || TYPE(n) == testlist_star_expr || TYPE(n)
        == testlist_comp)
      pos:
        line_end: 1298
        line_start: 1298
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (TYPE(ch) == test || TYPE(ch) == test_nocond || TYPE(ch) == star_expr
        || TYPE(ch) == namedexpr_test)
      pos:
        line_end: 1306
        line_start: 1306
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (i / 2 < seq->size)
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1317
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1317
    functionName: seq_for_testlist
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - _Py_asdl_seq_new
    - CHILD
    - TYPE
    - asdl_seq_SET
    - assert
    - ast_for_expr
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      seq_for_testlist(struct compiling *c, const node *n)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1327,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1327,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1327,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1328,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:1329,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:1332,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1335,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1335,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1335,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1336,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1336,1
    - Dst: arg
      Src: /src/Python-3.8.3/Python/ast.c:1341,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1341,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == tfpdef || TYPE(n) == vfpdef)
      pos:
        line_end: 1326
        line_start: 1326
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1346
      start: 1319
    functionDepth: 9
    functionLinenumber: 1319
    functionLinenumberEnd: 1346
    functionName: ast_for_arg
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - CHILD
    - TYPE
    - forbidden_name
    - LINENO
    - assert
    - ast_for_expr
    - arg
    linkageType: ''
    returnType: arg_ty
    signature: arg_ty ast_for_arg(struct compiling *c, const node *n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1366,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1366,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1369,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1370,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1371,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1372,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1375,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1375,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1375,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1376,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1376,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1379,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1383,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1385,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1387,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1387,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1394,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:1395,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:1398,1
    - Dst: arg
      Src: /src/Python-3.8.3/Python/ast.c:1400,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1400,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1405,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1407,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1407,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1407,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:1412,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1420,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 5
    argNames:
    - c
    - n
    - start
    - kwonlyargs
    - kwdefaults
    argTypes:
    - struct compiling*
    - node*
    - int
    - asdl_seq*
    - asdl_seq*
    assertStmts:
    - condition: (kwdefaults != NULL)
      pos:
        line_end: 1368
        line_start: 1368
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1427
      start: 1354
    functionDepth: 9
    functionLinenumber: 1354
    functionLinenumberEnd: 1427
    functionName: handle_keywordonly_args
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_error
    - NEW_IDENTIFIER
    - NEW_TYPE_COMMENT
    - CHILD
    - TYPE
    - forbidden_name
    - asdl_seq_SET
    - LINENO
    - assert
    - ast_for_expr
    - arg
    linkageType: ''
    returnType: int
    signature: "int handle_keywordonly_args(struct compiling *c, const node *n, int
      start,\n                        asdl_seq *kwonlyargs, asdl_seq *kwdefaults)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1502,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1503,1
    - Dst: arguments
      Src: /src/Python-3.8.3/Python/ast.c:1504,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1505,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1507,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1507,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1507,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1513,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1514,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1515,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1518,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1519,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1519,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1520,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1520,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1525,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1526,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1526,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1527,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1528,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1535,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1536,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1537,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1538,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1538,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1540,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1544,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1548,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1552,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1559,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1570,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1571,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1572,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1578,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1578,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1578,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1579,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1579,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1582,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1583,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1588,1
    - Dst: ast_for_arg
      Src: /src/Python-3.8.3/Python/ast.c:1592,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1596,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1598,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1601,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1601,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1601,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1613,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1614,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1614,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1614,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1615,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1615,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1616,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1616,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1620,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1621,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1625,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1625,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1625,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1626,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1626,1
    - Dst: handle_keywordonly_args
      Src: /src/Python-3.8.3/Python/ast.c:1631,1
    - Dst: ast_for_arg
      Src: /src/Python-3.8.3/Python/ast.c:1637,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1642,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1642,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1642,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1645,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1645,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1645,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:1646,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1646,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1652,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1652,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1652,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1653,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1653,1
    - Dst: handle_keywordonly_args
      Src: /src/Python-3.8.3/Python/ast.c:1655,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1663,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1664,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1664,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1664,1
    - Dst: ast_for_arg
      Src: /src/Python-3.8.3/Python/ast.c:1665,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1669,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1669,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1669,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1673,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:1679,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1685,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1687,1
    - Dst: arguments
      Src: /src/Python-3.8.3/Python/ast.c:1691,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 148
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(ch) == tfpdef || TYPE(ch) == vfpdef)
      pos:
        line_end: 1663
        line_start: 1663
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (posdefaults != NULL)
      pos:
        line_end: 1581
        line_start: 1581
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (TYPE(n) == typedargslist || TYPE(n) == varargslist)
      pos:
        line_end: 1506
        line_start: 1506
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (i)
      pos:
        line_end: 1672
        line_start: 1672
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1692
      start: 1431
    functionDepth: 10
    functionLinenumber: 1431
    functionLinenumberEnd: 1692
    functionName: ast_for_arguments
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_error
    - _Py_asdl_seq_new
    - NEW_TYPE_COMMENT
    - ast_for_arg
    - CHILD
    - TYPE
    - arguments
    - asdl_seq_SET
    - PyErr_Format
    - assert
    - ast_for_expr
    - handle_keywordonly_args
    linkageType: ''
    returnType: arguments_ty
    signature: arguments_ty ast_for_arguments(struct compiling *c, const node *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1703,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1705,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1708,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:1709,1
    - Dst: Name
      Src: /src/Python-3.8.3/Python/ast.c:1712,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1717,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1718,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:1719,1
    - Dst: Attribute
      Src: /src/Python-3.8.3/Python/ast.c:1722,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1729
    functionName: ast_for_dotted_name
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - Attribute
    - REQ
    - CHILD
    - LINENO
    - Name
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_dotted_name(struct compiling *c, const node *n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1738,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1739,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1739,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1740,1
    - Dst: RCHILD
      Src: /src/Python-3.8.3/Python/ast.c:1740,1
    - Dst: ast_for_dotted_name
      Src: /src/Python-3.8.3/Python/ast.c:1742,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1742,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1746,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1750,1
    - Dst: Call
      Src: /src/Python-3.8.3/Python/ast.c:1751,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1753,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1753,1
    - Dst: ast_for_call
      Src: /src/Python-3.8.3/Python/ast.c:1760,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1760,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1761,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1761,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1731
    functionDepth: 2
    functionLinenumber: 1731
    functionLinenumberEnd: 1768
    functionName: ast_for_decorator
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - RCHILD
    - ast_for_call
    - CHILD
    - REQ
    - Call
    - ast_for_dotted_name
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_decorator(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1777,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:1778,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1778,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1782,1
    - Dst: ast_for_decorator
      Src: /src/Python-3.8.3/Python/ast.c:1783,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1783,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:1786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1770
    functionDepth: 3
    functionLinenumber: 1770
    functionLinenumberEnd: 1789
    functionName: ast_for_decorators
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - _Py_asdl_seq_new
    - ast_for_decorator
    - CHILD
    - REQ
    - asdl_seq_SET
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      ast_for_decorators(struct compiling *c, const node *n)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1796,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1807,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1812,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:1814,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1814,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:1817,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1817,1
    - Dst: ast_for_arguments
      Src: /src/Python-3.8.3/Python/ast.c:1819,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1819,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1822,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1822,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1823,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1823,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1828,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1828,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:1829,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1829,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:1834,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1834,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:1837,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1839,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1839,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1841,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1841,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1843,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1845,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:1848,1
    - Dst: AsyncFunctionDef
      Src: /src/Python-3.8.3/Python/ast.c:1855,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1856,1
    - Dst: FunctionDef
      Src: /src/Python-3.8.3/Python/ast.c:1858,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1859,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - c
    - n0
    - decorator_seq
    - is_async
    argTypes:
    - struct compiling*
    - node*
    - asdl_seq*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1791
    functionDepth: 11
    functionLinenumber: 1791
    functionLinenumberEnd: 1860
    functionName: ast_for_funcdef_impl
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_for_arguments
    - ast_error
    - NEW_IDENTIFIER
    - NEW_TYPE_COMMENT
    - ast_for_suite
    - REQ
    - CHILD
    - AsyncFunctionDef
    - forbidden_name
    - TYPE
    - FunctionDef
    - LINENO
    - get_last_end_pos
    - ast_for_expr
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty ast_for_funcdef_impl(struct compiling *c, const node *n0,\n
      \                    asdl_seq *decorator_seq, bool is_async)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1866,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1867,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1867,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1868,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1868,1
    - Dst: ast_for_funcdef_impl
      Src: /src/Python-3.8.3/Python/ast.c:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - c
    - n
    - decorator_seq
    argTypes:
    - struct compiling*
    - node*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1862
    functionDepth: 12
    functionLinenumber: 1862
    functionLinenumberEnd: 1872
    functionName: ast_for_async_funcdef
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_funcdef_impl
    - CHILD
    - REQ
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_async_funcdef(struct compiling *c, const node *n, asdl_seq
      *decorator_seq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ast_for_funcdef_impl
      Src: /src/Python-3.8.3/Python/ast.c:1878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - n
    - decorator_seq
    argTypes:
    - struct compiling*
    - node*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1874
    functionDepth: 12
    functionLinenumber: 1874
    functionLinenumberEnd: 1880
    functionName: ast_for_funcdef
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_funcdef_impl
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_funcdef(struct compiling *c, const node *n, asdl_seq
      *decorator_seq)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1887,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1888,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1888,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1890,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1890,1
    - Dst: ast_for_funcdef_impl
      Src: /src/Python-3.8.3/Python/ast.c:1892,1
    - Dst: ast_for_with_stmt
      Src: /src/Python-3.8.3/Python/ast.c:1895,1
    - Dst: ast_for_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:1899,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:1903,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:1905,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1883
    functionDepth: 12
    functionLinenumber: 1883
    functionLinenumberEnd: 1908
    functionName: ast_for_async_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_with_stmt
    - STR
    - ast_for_for_stmt
    - CHILD
    - REQ
    - TYPE
    - ast_for_funcdef_impl
    - PyErr_Format
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_async_stmt(struct compiling *c, const node *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:1917,1
    - Dst: ast_for_decorators
      Src: /src/Python-3.8.3/Python/ast.c:1919,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1919,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:1923,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1923,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1923,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1924,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1924,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1925,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1925,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1927,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1927,1
    - Dst: ast_for_funcdef
      Src: /src/Python-3.8.3/Python/ast.c:1928,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1928,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1929,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1929,1
    - Dst: ast_for_classdef
      Src: /src/Python-3.8.3/Python/ast.c:1930,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1930,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:1931,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1931,1
    - Dst: ast_for_async_funcdef
      Src: /src/Python-3.8.3/Python/ast.c:1932,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1932,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: "(TYPE(CHILD(n, 1)) == funcdef ||\n           TYPE(CHILD(n, 1)) ==
        async_funcdef ||\n           TYPE(CHILD(n, 1)) == classdef)"
      pos:
        line_end: 1924
        line_start: 1922
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 1935
      start: 1910
    functionDepth: 13
    functionLinenumber: 1910
    functionLinenumberEnd: 1935
    functionName: ast_for_decorated
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_funcdef
    - CHILD
    - REQ
    - TYPE
    - ast_for_async_funcdef
    - assert
    - ast_for_decorators
    - ast_for_classdef
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_decorated(struct compiling *c, const node *n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1949,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1949,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1953,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1953,1
    - Dst: get_expr_name
      Src: /src/Python-3.8.3/Python/ast.c:1958,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:1960,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:1965,1
    - Dst: NamedExpr
      Src: /src/Python-3.8.3/Python/ast.c:1968,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1937
    functionDepth: 10
    functionLinenumber: 1937
    functionLinenumberEnd: 1970
    functionName: ast_for_namedexpr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - get_expr_name
    - ast_error
    - NamedExpr
    - CHILD
    - set_context
    - LINENO
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_namedexpr(struct compiling *c, const node *n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:1980,1
    - Dst: arguments
      Src: /src/Python-3.8.3/Python/ast.c:1981,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1984,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1984,1
    - Dst: ast_for_arguments
      Src: /src/Python-3.8.3/Python/ast.c:1989,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1989,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:1992,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:1992,1
    - Dst: Lambda
      Src: /src/Python-3.8.3/Python/ast.c:1997,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:1997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1972
    functionDepth: 11
    functionLinenumber: 1972
    functionLinenumberEnd: 1999
    functionName: ast_for_lambdef
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_for_arguments
    - CHILD
    - arguments
    - Lambda
    - LINENO
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_lambdef(struct compiling *c, const node *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2007,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2007,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2008,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2008,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2011,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2011,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2014,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2014,1
    - Dst: IfExp
      Src: /src/Python-3.8.3/Python/ast.c:2017,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (NCH(n) == 5)
      pos:
        line_end: 2006
        line_start: 2006
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2020
      start: 2001
    functionDepth: 1
    functionLinenumber: 2001
    functionLinenumberEnd: 2020
    functionName: ast_for_ifexpr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - IfExp
    - LINENO
    - assert
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_ifexpr(struct compiling *c, const node *n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2035,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2036,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2037,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2037,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2038,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2040,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2041,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2046,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2047,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2053,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2054,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2055,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2057,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2058,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2059,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:2068,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2071
    functionName: count_comp_fors
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - REQ
    - TYPE
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int count_comp_fors(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2084,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2085,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2085,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2087,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2088,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2090,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2092,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 2078
    functionDepth: 1
    functionLinenumber: 2078
    functionLinenumberEnd: 2094
    functionName: count_comp_ifs
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - TYPE
    - CHILD
    - REQ
    - NCH
    linkageType: ''
    returnType: int
    signature: int count_comp_ifs(struct compiling *c, const node *n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: count_comp_fors
      Src: /src/Python-3.8.3/Python/ast.c:2102,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2106,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2118,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2120,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2122,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2122,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2123,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2126,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2128,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2132,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2137,1
    - Dst: ast_for_exprlist
      Src: /src/Python-3.8.3/Python/ast.c:2138,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2141,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2141,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:2147,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2148,1
    - Dst: comprehension
      Src: /src/Python-3.8.3/Python/ast.c:2149,1
    - Dst: comprehension
      Src: /src/Python-3.8.3/Python/ast.c:2152,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/ast.c:2152,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2159,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2163,1
    - Dst: count_comp_ifs
      Src: /src/Python-3.8.3/Python/ast.c:2164,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2168,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2173,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2174,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2175,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2177,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2177,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2180,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2181,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2182,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2185,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2186,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2189,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2096
    functionDepth: 8
    functionLinenumber: 2096
    functionLinenumberEnd: 2192
    functionName: ast_for_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_error
    - count_comp_ifs
    - _Py_asdl_seq_new
    - ast_for_exprlist
    - REQ
    - CHILD
    - TYPE
    - Tuple
    - asdl_seq_SET
    - asdl_seq_GET
    - ast_for_expr
    - count_comp_fors
    - comprehension
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      ast_for_comprehension(struct compiling *c, const node *n)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2203,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2203,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2205,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2206,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2210,1
    - Dst: ast_for_comprehension
      Src: /src/Python-3.8.3/Python/ast.c:2214,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2214,1
    - Dst: GeneratorExp
      Src: /src/Python-3.8.3/Python/ast.c:2219,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2219,1
    - Dst: ListComp
      Src: /src/Python-3.8.3/Python/ast.c:2222,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2222,1
    - Dst: SetComp
      Src: /src/Python-3.8.3/Python/ast.c:2225,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - c
    - n
    - type
    argTypes:
    - struct compiling*
    - node*
    - int
    assertStmts:
    - condition: (NCH(n) > 1)
      pos:
        line_end: 2202
        line_start: 2202
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2230
      start: 2194
    functionDepth: 9
    functionLinenumber: 2194
    functionLinenumberEnd: 2230
    functionName: ast_for_itercomp
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - GeneratorExp
    - NCH
    - ast_error
    - ast_for_comprehension
    - SetComp
    - CHILD
    - LINENO
    - assert
    - ast_for_expr
    - ListComp
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_itercomp(struct compiling *c, const node *n, int type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2241,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2241,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2242,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2242,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2244,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2244,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2253,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2253,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2255,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2255,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2260,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2260,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2262,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - c
    - n
    - i
    - key
    - value
    argTypes:
    - struct compiling*
    - node*
    - int*
    - expr_ty*
    - expr_ty*
    assertStmts:
    - condition: (NCH(n) - *i >= 2)
      pos:
        line_end: 2241
        line_start: 2241
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (NCH(n) - *i >= 3)
      pos:
        line_end: 2252
        line_start: 2252
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2270
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2270
    functionName: ast_for_dictelement
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - REQ
    - TYPE
    - assert
    - ast_for_expr
    linkageType: ''
    returnType: int
    signature: "int ast_for_dictelement(struct compiling *c, const node *n, int *i,\n
      \                   expr_ty *key, expr_ty *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ast_for_dictelement
      Src: /src/Python-3.8.3/Python/ast.c:2279,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2281,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2282,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2282,1
    - Dst: ast_for_comprehension
      Src: /src/Python-3.8.3/Python/ast.c:2284,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2284,1
    - Dst: DictComp
      Src: /src/Python-3.8.3/Python/ast.c:2288,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (NCH(n) - i >= 1)
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (key)
      pos:
        line_end: 2280
        line_start: 2280
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2290
      start: 2272
    functionDepth: 9
    functionLinenumber: 2272
    functionLinenumberEnd: 2290
    functionName: ast_for_dictcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_for_comprehension
    - CHILD
    - LINENO
    - DictComp
    - assert
    - ast_for_dictelement
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_dictcomp(struct compiling *c, const node *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2300,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2301,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2305,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2310,1
    - Dst: ast_for_dictelement
      Src: /src/Python-3.8.3/Python/ast.c:2313,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2315,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2316,1
    - Dst: Dict
      Src: /src/Python-3.8.3/Python/ast.c:2322,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2292
    functionDepth: 2
    functionLinenumber: 2292
    functionLinenumberEnd: 2324
    functionName: ast_for_dictdisplay
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - _Py_asdl_seq_new
    - Dict
    - asdl_seq_SET
    - LINENO
    - ast_for_dictelement
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_dictdisplay(struct compiling *c, const node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2329,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2329,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2329,1
    - Dst: ast_for_itercomp
      Src: /src/Python-3.8.3/Python/ast.c:2330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == (testlist_comp) || TYPE(n) == (argument))
      pos:
        line_end: 2328
        line_start: 2328
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2331
      start: 2326
    functionDepth: 10
    functionLinenumber: 2326
    functionLinenumberEnd: 2331
    functionName: ast_for_genexp
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_itercomp
    - assert
    - TYPE
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_genexp(struct compiling *c, const node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2336,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2336,1
    - Dst: ast_for_itercomp
      Src: /src/Python-3.8.3/Python/ast.c:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == (testlist_comp))
      pos:
        line_end: 2335
        line_start: 2335
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2338
      start: 2333
    functionDepth: 10
    functionLinenumber: 2333
    functionLinenumberEnd: 2338
    functionName: ast_for_listcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_itercomp
    - assert
    - TYPE
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_listcomp(struct compiling *c, const node *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2343,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2343,1
    - Dst: ast_for_itercomp
      Src: /src/Python-3.8.3/Python/ast.c:2344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == (dictorsetmaker))
      pos:
        line_end: 2342
        line_start: 2342
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2345
      start: 2340
    functionDepth: 10
    functionLinenumber: 2340
    functionLinenumberEnd: 2345
    functionName: ast_for_setcomp
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_itercomp
    - assert
    - TYPE
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_setcomp(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2354,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2354,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2355,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2356,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2359,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2361,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2361,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2364,1
    - Dst: Set
      Src: /src/Python-3.8.3/Python/ast.c:2366,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (TYPE(n) == (dictorsetmaker))
      pos:
        line_end: 2353
        line_start: 2353
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2368
      start: 2347
    functionDepth: 1
    functionLinenumber: 2347
    functionLinenumberEnd: 2368
    functionName: ast_for_setdisplay
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - Set
    - _Py_asdl_seq_new
    - CHILD
    - TYPE
    - asdl_seq_SET
    - LINENO
    - assert
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_setdisplay(struct compiling *c, const node *n)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2377,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2379,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:2382,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:2383,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:2385,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:2386,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2386,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:2388,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:2389,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2389,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:2391,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:2392,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2392,1
    - Dst: new_identifier
      Src: /src/Python-3.8.3/Python/ast.c:2395,1
    - Dst: Name
      Src: /src/Python-3.8.3/Python/ast.c:2399,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2399,1
    - Dst: parsestrplus
      Src: /src/Python-3.8.3/Python/ast.c:2403,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ast.c:2406,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ast.c:2408,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/ast.c:2412,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/ast.c:2413,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2415,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:2416,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/ast.c:2419,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:2422,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:2423,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:2424,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/ast.c:2434,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:2434,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2435,1
    - Dst: parsenumber
      Src: /src/Python-3.8.3/Python/ast.c:2439,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:2439,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:2443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:2444,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:2447,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2447,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:2451,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2451,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2454,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2456,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/ast.c:2457,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2457,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2460,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2461,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2464,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:2465,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2468,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2468,1
    - Dst: copy_location
      Src: /src/Python-3.8.3/Python/ast.c:2469,1
    - Dst: ast_for_genexp
      Src: /src/Python-3.8.3/Python/ast.c:2469,1
    - Dst: copy_location
      Src: /src/Python-3.8.3/Python/ast.c:2472,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:2472,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2475,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2477,1
    - Dst: List
      Src: /src/Python-3.8.3/Python/ast.c:2478,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2478,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2481,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2482,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2482,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2482,1
    - Dst: seq_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:2483,1
    - Dst: List
      Src: /src/Python-3.8.3/Python/ast.c:2487,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2487,1
    - Dst: copy_location
      Src: /src/Python-3.8.3/Python/ast.c:2491,1
    - Dst: ast_for_listcomp
      Src: /src/Python-3.8.3/Python/ast.c:2491,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2499,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2500,1
    - Dst: Dict
      Src: /src/Python-3.8.3/Python/ast.c:2502,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2502,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2506,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2506,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2507,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2508,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2509,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2509,1
    - Dst: ast_for_setdisplay
      Src: /src/Python-3.8.3/Python/ast.c:2511,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2513,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2514,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2514,1
    - Dst: ast_for_setcomp
      Src: /src/Python-3.8.3/Python/ast.c:2516,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2518,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2519,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2519,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2522,1
    - Dst: ast_for_dictcomp
      Src: /src/Python-3.8.3/Python/ast.c:2526,1
    - Dst: ast_for_dictdisplay
      Src: /src/Python-3.8.3/Python/ast.c:2530,1
    - Dst: copy_location
      Src: /src/Python-3.8.3/Python/ast.c:2532,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:2536,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2536,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 109
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2370
    functionDepth: 11
    functionLinenumber: 2370
    functionLinenumberEnd: 2539
    functionName: ast_for_atom
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - STR
    - Name
    - copy_location
    - ast_for_dictcomp
    - ast_for_listcomp
    - REQ
    - strlen
    - PyObject_Str
    - List
    - Dict
    - PyErr_ExceptionMatches
    - PyErr_Format
    - Constant
    - PyErr_Clear
    - Py_XDECREF
    - ast_for_setcomp
    - new_identifier
    - Py_DECREF
    - PyArena_AddPyObject
    - parsenumber
    - ast_for_dictdisplay
    - ast_for_expr
    - CHILD
    - TYPE
    - Tuple
    - parsestrplus
    - strchr
    - ast_for_setdisplay
    - NCH
    - ast_error
    - seq_for_testlist
    - PyErr_Fetch
    - ast_for_testlist
    - ast_for_genexp
    - LINENO
    - strcmp
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_atom(struct compiling *c, const node *n)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2547,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2553,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2554,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2554,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2557,1
    - Dst: Index
      Src: /src/Python-3.8.3/Python/ast.c:2561,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2564,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2565,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2571,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2572,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2573,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2575,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2576,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2581,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2582,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2584,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2585,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2591,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2591,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2592,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2593,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2594,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2595,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2596,1
    - Dst: Slice
      Src: /src/Python-3.8.3/Python/ast.c:2603,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2604
    functionName: ast_for_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - Slice
    - CHILD
    - REQ
    - TYPE
    - Index
    - ast_for_expr
    linkageType: ''
    returnType: slice_ty
    signature: slice_ty ast_for_slice(struct compiling *c, const node *n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2618,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2618,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2622,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2622,1
    - Dst: get_operator
      Src: /src/Python-3.8.3/Python/ast.c:2626,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2626,1
    - Dst: BinOp
      Src: /src/Python-3.8.3/Python/ast.c:2630,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2630,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2631,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2631,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2636,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2639,1
    - Dst: get_operator
      Src: /src/Python-3.8.3/Python/ast.c:2641,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2645,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2645,1
    - Dst: BinOp
      Src: /src/Python-3.8.3/Python/ast.c:2649,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2650,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2651,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2659
      start: 2606
    functionDepth: 9
    functionLinenumber: 2606
    functionLinenumberEnd: 2659
    functionName: ast_for_binop
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - BinOp
    - LINENO
    - get_operator
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_binop(struct compiling *c, const node *n)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2669,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2670,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2670,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2671,1
    - Dst: Call
      Src: /src/Python-3.8.3/Python/ast.c:2672,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2672,1
    - Dst: ast_for_call
      Src: /src/Python-3.8.3/Python/ast.c:2675,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2675,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2676,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2676,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2678,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2678,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:2679,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2679,1
    - Dst: Attribute
      Src: /src/Python-3.8.3/Python/ast.c:2682,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2683,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2687,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2687,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2688,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2688,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2689,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2690,1
    - Dst: ast_for_slice
      Src: /src/Python-3.8.3/Python/ast.c:2691,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2691,1
    - Dst: Subscript
      Src: /src/Python-3.8.3/Python/ast.c:2694,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2694,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2708,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2708,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2711,1
    - Dst: ast_for_slice
      Src: /src/Python-3.8.3/Python/ast.c:2712,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2712,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2717,1
    - Dst: Subscript
      Src: /src/Python-3.8.3/Python/ast.c:2720,1
    - Dst: ExtSlice
      Src: /src/Python-3.8.3/Python/ast.c:2720,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2721,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2725,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:2725,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:2728,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:2729,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2730,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2731,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/ast.c:2733,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2733,1
    - Dst: Subscript
      Src: /src/Python-3.8.3/Python/ast.c:2737,1
    - Dst: Index
      Src: /src/Python-3.8.3/Python/ast.c:2737,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2738,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - c
    - n
    - left_expr
    - start
    argTypes:
    - struct compiling*
    - node*
    - expr_ty
    - node*
    assertStmts:
    - condition: (slc->kind == Index_kind  && slc->v.Index.value)
      pos:
        line_end: 2729
        line_start: 2729
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2742
      start: 2661
    functionDepth: 2
    functionLinenumber: 2661
    functionLinenumberEnd: 2742
    functionName: ast_for_trailer
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Index
    - ast_for_call
    - _Py_asdl_seq_new
    - REQ
    - ExtSlice
    - assert
    - Attribute
    - CHILD
    - TYPE
    - Tuple
    - asdl_seq_SET
    - asdl_seq_GET
    - ast_for_slice
    - NCH
    - NEW_IDENTIFIER
    - asdl_seq_LEN
    - Subscript
    - Call
    - LINENO
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_trailer(struct compiling *c, const node *n, expr_ty
      left_expr, const node *start)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2749,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2749,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2753,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2753,1
    - Dst: UnaryOp
      Src: /src/Python-3.8.3/Python/ast.c:2755,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2755,1
    - Dst: UnaryOp
      Src: /src/Python-3.8.3/Python/ast.c:2759,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2759,1
    - Dst: UnaryOp
      Src: /src/Python-3.8.3/Python/ast.c:2763,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2763,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:2767,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2768,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2744
    functionDepth: 1
    functionLinenumber: 2744
    functionLinenumberEnd: 2770
    functionName: ast_for_factor
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - UnaryOp
    - CHILD
    - TYPE
    - PyErr_Format
    - LINENO
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_factor(struct compiling *c, const node *n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2778,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2779,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2781,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2781,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:2783,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2788,1
    - Dst: ast_for_atom
      Src: /src/Python-3.8.3/Python/ast.c:2791,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2791,1
    - Dst: Await
      Src: /src/Python-3.8.3/Python/ast.c:2797,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2797,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2802,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2803,1
    - Dst: ast_for_trailer
      Src: /src/Python-3.8.3/Python/ast.c:2805,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2805,1
    - Dst: Await
      Src: /src/Python-3.8.3/Python/ast.c:2812,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2812,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (nch > 1)
      pos:
        line_end: 2787
        line_start: 2787
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 2818
      start: 2772
    functionDepth: 12
    functionLinenumber: 2772
    functionLinenumberEnd: 2818
    functionName: ast_for_atom_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_for_atom
    - ast_error
    - ast_for_trailer
    - REQ
    - CHILD
    - Await
    - TYPE
    - LINENO
    - assert
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_atom_expr(struct compiling *c, const node *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2826,1
    - Dst: ast_for_atom_expr
      Src: /src/Python-3.8.3/Python/ast.c:2827,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2827,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2830,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2832,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2832,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2832,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2833,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2833,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2833,1
    - Dst: BinOp
      Src: /src/Python-3.8.3/Python/ast.c:2836,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2820
    functionDepth: 13
    functionLinenumber: 2820
    functionLinenumberEnd: 2840
    functionName: ast_for_power
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - REQ
    - BinOp
    - TYPE
    - LINENO
    - ast_for_atom_expr
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_power(struct compiling *c, const node *n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:2846,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2848,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2848,1
    - Dst: Starred
      Src: /src/Python-3.8.3/Python/ast.c:2853,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2842
    functionDepth: 1
    functionLinenumber: 2842
    functionLinenumberEnd: 2855
    functionName: ast_for_starred
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - CHILD
    - REQ
    - Starred
    - LINENO
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_starred(struct compiling *c, const node *n)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2888,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2890,1
    - Dst: ast_for_namedexpr
      Src: /src/Python-3.8.3/Python/ast.c:2891,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2895,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2895,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:2896,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2896,1
    - Dst: ast_for_lambdef
      Src: /src/Python-3.8.3/Python/ast.c:2897,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2897,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2898,1
    - Dst: ast_for_ifexpr
      Src: /src/Python-3.8.3/Python/ast.c:2899,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2903,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2904,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2907,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2907,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2910,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2911,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2911,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2914,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:2916,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:2916,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2916,1
    - Dst: BoolOp
      Src: /src/Python-3.8.3/Python/ast.c:2917,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2917,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:2920,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:2920,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:2920,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2920,1
    - Dst: BoolOp
      Src: /src/Python-3.8.3/Python/ast.c:2921,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2921,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2924,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2925,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2929,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2929,1
    - Dst: UnaryOp
      Src: /src/Python-3.8.3/Python/ast.c:2933,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2933,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2938,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2939,1
    - Dst: _Py_asdl_int_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2946,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2946,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:2949,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2949,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2953,1
    - Dst: ast_for_comp_op
      Src: /src/Python-3.8.3/Python/ast.c:2956,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2956,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2961,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2961,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2966,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:2967,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:2969,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2969,1
    - Dst: Compare
      Src: /src/Python-3.8.3/Python/ast.c:2974,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:2974,1
    - Dst: ast_for_starred
      Src: /src/Python-3.8.3/Python/ast.c:2979,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:2990,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:2991,1
    - Dst: ast_for_binop
      Src: /src/Python-3.8.3/Python/ast.c:2994,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3000,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3001,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3003,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3003,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3004,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3006,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3009,1
    - Dst: YieldFrom
      Src: /src/Python-3.8.3/Python/ast.c:3014,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3014,1
    - Dst: Yield
      Src: /src/Python-3.8.3/Python/ast.c:3016,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3016,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3020,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3021,1
    - Dst: ast_for_factor
      Src: /src/Python-3.8.3/Python/ast.c:3024,1
    - Dst: ast_for_power
      Src: /src/Python-3.8.3/Python/ast.c:3026,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:3028,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3028,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (!strcmp(STR(CHILD(n, 1)), "or"))
      pos:
        line_end: 2919
        line_start: 2919
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 3033
      start: 2861
    functionDepth: 14
    functionLinenumber: 2861
    functionLinenumberEnd: 3033
    functionName: ast_for_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 20
    functionsReached:
    - UnaryOp
    - STR
    - _Py_asdl_seq_new
    - ast_for_starred
    - PyErr_Format
    - assert
    - YieldFrom
    - BoolOp
    - ast_for_binop
    - ast_for_power
    - ast_for_namedexpr
    - _Py_asdl_int_seq_new
    - ast_for_expr
    - CHILD
    - TYPE
    - Compare
    - asdl_seq_SET
    - Yield
    - ast_for_factor
    - ast_for_comp_op
    - ast_for_lambdef
    - NCH
    - ast_for_testlist
    - ast_for_ifexpr
    - LINENO
    - strcmp
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_expr(struct compiling *c, const node *n)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3049,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3053,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3054,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3055,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3056,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3058,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3058,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3061,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3064,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3065,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3069,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3069,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3071,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3071,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3080,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3083,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3090,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3091,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3092,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3094,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3095,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3099,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3104,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3110,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3113,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3115,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3119,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3124,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3124,1
    - Dst: Starred
      Src: /src/Python-3.8.3/Python/ast.c:3127,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3127,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3133,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3136,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3140,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3140,1
    - Dst: keyword
      Src: /src/Python-3.8.3/Python/ast.c:3143,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3144,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3147,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3147,1
    - Dst: copy_location
      Src: /src/Python-3.8.3/Python/ast.c:3149,1
    - Dst: ast_for_genexp
      Src: /src/Python-3.8.3/Python/ast.c:3149,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3152,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3154,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3154,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3158,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3163,1
    - Dst: ast_for_namedexpr
      Src: /src/Python-3.8.3/Python/ast.c:3169,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3172,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3203,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3205,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3207,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3209,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3210,1
    - Dst: new_identifier
      Src: /src/Python-3.8.3/Python/ast.c:3215,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3215,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3219,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:3223,1
    - Dst: PyUnicode_Compare
      Src: /src/Python-3.8.3/Python/ast.c:3224,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3225,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3230,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3230,1
    - Dst: keyword
      Src: /src/Python-3.8.3/Python/ast.c:3233,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3236,1
    - Dst: Call
      Src: /src/Python-3.8.3/Python/ast.c:3241,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3241,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 130
    argCount: 6
    argNames:
    - c
    - n
    - func
    - start
    - maybegenbeg
    - closepar
    argTypes:
    - struct compiling*
    - node*
    - expr_ty
    - node*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3035
    functionDepth: 15
    functionLinenumber: 3035
    functionLinenumberEnd: 3243
    functionName: ast_for_call
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 2
    functionsReached:
    - STR
    - keyword
    - Starred
    - copy_location
    - _Py_asdl_seq_new
    - REQ
    - new_identifier
    - ast_for_namedexpr
    - CHILD
    - TYPE
    - asdl_seq_SET
    - asdl_seq_GET
    - NCH
    - ast_error
    - ast_for_genexp
    - forbidden_name
    - Call
    - LINENO
    - ast_for_expr
    - PyUnicode_Compare
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty ast_for_call(struct compiling *c, const node *n, expr_ty func,\n
      \            const node *start, const node *maybegenbeg, const node *closepar)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3250,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3250,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3251,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3252,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3253,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3253,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3253,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3256,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3256,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3257,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3259,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3260,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3260,1
    - Dst: seq_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3262,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/ast.c:3265,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (NCH(n) > 0)
      pos:
        line_end: 3249
        line_start: 3249
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (TYPE(CHILD(n, 1)) != comp_for)
      pos:
        line_end: 3252
        line_start: 3252
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: "(TYPE(n) == testlist ||\n               TYPE(n) == testlist_star_expr)"
      pos:
        line_end: 3256
        line_start: 3255
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 3268
      start: 3245
    functionDepth: 15
    functionLinenumber: 3245
    functionLinenumberEnd: 3268
    functionName: ast_for_testlist
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 3
    functionsReached:
    - NCH
    - seq_for_testlist
    - CHILD
    - TYPE
    - Tuple
    - LINENO
    - assert
    - ast_for_expr
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty ast_for_testlist(struct compiling *c, const node* n)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3273,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3282,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3285,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3285,1
    - Dst: Expr
      Src: /src/Python-3.8.3/Python/ast.c:3289,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3289,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3292,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3292,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3295,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3297,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:3300,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3312,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3316,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3317,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3318,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3320,1
    - Dst: ast_for_augassign
      Src: /src/Python-3.8.3/Python/ast.c:3324,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3324,1
    - Dst: AugAssign
      Src: /src/Python-3.8.3/Python/ast.c:3328,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3328,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3331,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3331,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3333,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3334,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3339,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3346,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3347,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3349,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3349,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3349,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3352,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3358,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3364,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3373,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3377,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3381,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3389,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3390,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3394,1
    - Dst: AnnAssign
      Src: /src/Python-3.8.3/Python/ast.c:3395,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3396,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3400,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3401,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3402,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3405,1
    - Dst: AnnAssign
      Src: /src/Python-3.8.3/Python/ast.c:3410,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3411,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3423,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3423,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3425,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3425,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3428,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3433,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3434,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3435,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3438,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:3443,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3443,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3446,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3448,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3449,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3450,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3452,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:3456,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3456,1
    - Dst: Assign
      Src: /src/Python-3.8.3/Python/ast.c:3462,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3462,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 130
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3270
    functionDepth: 16
    functionLinenumber: 3270
    functionLinenumberEnd: 3465
    functionName: ast_for_expr_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Expr
    - NCH
    - ast_error
    - _Py_asdl_seq_new
    - AugAssign
    - NEW_TYPE_COMMENT
    - ast_for_testlist
    - ast_for_augassign
    - CHILD
    - REQ
    - TYPE
    - forbidden_name
    - asdl_seq_SET
    - LINENO
    - set_context
    - AnnAssign
    - ast_for_expr
    - Assign
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_expr_stmt(struct compiling *c, const node *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3475,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3477,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3477,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3480,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3481,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3481,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3484,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:3485,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3485,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - c
    - n
    - context
    argTypes:
    - struct compiling*
    - node*
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3468
    functionDepth: 15
    functionLinenumber: 3468
    functionLinenumberEnd: 3489
    functionName: ast_for_exprlist
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - _Py_asdl_seq_new
    - CHILD
    - REQ
    - asdl_seq_SET
    - set_context
    - ast_for_expr
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      ast_for_exprlist(struct compiling *c, const node *n, expr_context_ty context)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3497,1
    - Dst: ast_for_exprlist
      Src: /src/Python-3.8.3/Python/ast.c:3499,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3499,1
    - Dst: Delete
      Src: /src/Python-3.8.3/Python/ast.c:3502,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3504
      start: 3491
    functionDepth: 16
    functionLinenumber: 3491
    functionLinenumberEnd: 3504
    functionName: ast_for_del_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_for_exprlist
    - REQ
    - CHILD
    - LINENO
    - Delete
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_del_stmt(struct compiling *c, const node *n)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3521,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3522,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3523,1
    - Dst: Break
      Src: /src/Python-3.8.3/Python/ast.c:3525,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3525,1
    - Dst: Continue
      Src: /src/Python-3.8.3/Python/ast.c:3528,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3528,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3531,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3531,1
    - Dst: Expr
      Src: /src/Python-3.8.3/Python/ast.c:3534,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3534,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3538,1
    - Dst: Return
      Src: /src/Python-3.8.3/Python/ast.c:3539,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3539,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:3542,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3542,1
    - Dst: Return
      Src: /src/Python-3.8.3/Python/ast.c:3545,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3545,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3549,1
    - Dst: Raise
      Src: /src/Python-3.8.3/Python/ast.c:3550,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3550,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3552,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3554,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3554,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3557,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3558,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3558,1
    - Dst: Raise
      Src: /src/Python-3.8.3/Python/ast.c:3562,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3562,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:3567,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3568,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3506
    functionDepth: 16
    functionLinenumber: 3506
    functionLinenumberEnd: 3571
    functionName: ast_for_flow_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Expr
    - NCH
    - Break
    - ast_for_testlist
    - Raise
    - CHILD
    - REQ
    - TYPE
    - Return
    - LINENO
    - PyErr_Format
    - ast_for_expr
    - Continue
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_flow_stmt(struct compiling *c, const node *n)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3584,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3586,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3588,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3591,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3592,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3593,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3596,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3600,1
    - Dst: alias
      Src: /src/Python-3.8.3/Python/ast.c:3603,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3606,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3607,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3611,1
    - Dst: alias_for_import_name
      Src: /src/Python-3.8.3/Python/ast.c:3612,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3612,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3615,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3616,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3619,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3624,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3625,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3626,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:3629,1
    - Dst: alias
      Src: /src/Python-3.8.3/Python/ast.c:3631,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3641,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:3643,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3643,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3643,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/ast.c:3645,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/ast.c:3648,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3651,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3652,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3652,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/ast.c:3653,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3653,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3653,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:3654,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/ast.c:3659,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/ast.c:3659,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast.c:3660,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:3662,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/ast.c:3666,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:3667,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:3668,1
    - Dst: alias
      Src: /src/Python-3.8.3/Python/ast.c:3671,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast.c:3674,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:3677,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:3678,1
    - Dst: alias
      Src: /src/Python-3.8.3/Python/ast.c:3681,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:3683,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3684,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:3688,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 90
    argCount: 3
    argNames:
    - c
    - n
    - store
    argTypes:
    - struct compiling*
    - node*
    - int
    assertStmts:
    - condition: (!a->asname)
      pos:
        line_end: 3614
        line_start: 3614
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 3690
      start: 3573
    functionDepth: 9
    functionLinenumber: 3573
    functionLinenumberEnd: 3690
    functionName: alias_for_import_name
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - STR
    - PyUnicode_InternFromString
    - PyBytes_FromStringAndSize
    - alias
    - strlen
    - PyErr_Format
    - PyUnicode_DecodeUTF8
    - assert
    - Py_DECREF
    - PyArena_AddPyObject
    - CHILD
    - TYPE
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - alias_for_import_name
    - NCH
    - strcpy
    - PyUnicode_InternInPlace
    - NEW_IDENTIFIER
    - forbidden_name
    - PyErr_SetString
    linkageType: ''
    returnType: alias_ty
    signature: alias_ty alias_for_import_name(struct compiling *c, const node *n,
      int store)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3706,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3707,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3709,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3710,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3711,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3712,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3713,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3713,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3716,1
    - Dst: alias_for_import_name
      Src: /src/Python-3.8.3/Python/ast.c:3717,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3717,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3720,1
    - Dst: Import
      Src: /src/Python-3.8.3/Python/ast.c:3723,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3726,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3735,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3736,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3736,1
    - Dst: alias_for_import_name
      Src: /src/Python-3.8.3/Python/ast.c:3737,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3737,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3742,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3742,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3746,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3746,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3752,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3752,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3755,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3760,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3761,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3765,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3766,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3768,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:3775,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3779,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3784,1
    - Dst: alias_for_import_name
      Src: /src/Python-3.8.3/Python/ast.c:3785,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3788,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3791,1
    - Dst: alias_for_import_name
      Src: /src/Python-3.8.3/Python/ast.c:3792,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3792,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3795,1
    - Dst: ImportFrom
      Src: /src/Python-3.8.3/Python/ast.c:3800,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:3804,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3806,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3806,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3692
    functionDepth: 10
    functionLinenumber: 3692
    functionLinenumberEnd: 3808
    functionName: ast_for_import_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - alias_for_import_name
    - NCH
    - ast_error
    - STR
    - _Py_asdl_seq_new
    - REQ
    - CHILD
    - TYPE
    - asdl_seq_SET
    - LINENO
    - PyErr_Format
    - Import
    - ImportFrom
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_import_stmt(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3818,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3819,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3819,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3822,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3823,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3823,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3826,1
    - Dst: Global
      Src: /src/Python-3.8.3/Python/ast.c:3828,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3810
    functionDepth: 1
    functionLinenumber: 3810
    functionLinenumberEnd: 3830
    functionName: ast_for_global_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - _Py_asdl_seq_new
    - CHILD
    - REQ
    - asdl_seq_SET
    - LINENO
    - Global
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_global_stmt(struct compiling *c, const node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3840,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3841,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3841,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3844,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:3845,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3845,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3848,1
    - Dst: Nonlocal
      Src: /src/Python-3.8.3/Python/ast.c:3850,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3850,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3852
      start: 3832
    functionDepth: 1
    functionLinenumber: 3832
    functionLinenumberEnd: 3852
    functionName: ast_for_nonlocal_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - _Py_asdl_seq_new
    - CHILD
    - REQ
    - asdl_seq_SET
    - LINENO
    - Nonlocal
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_nonlocal_stmt(struct compiling *c, const node *n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3858,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3859,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3860,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3860,1
    - Dst: Assert
      Src: /src/Python-3.8.3/Python/ast.c:3863,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3863,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3866,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3869,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3869,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3872,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3872,1
    - Dst: Assert
      Src: /src/Python-3.8.3/Python/ast.c:3876,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3876,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:3879,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3881,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3883
      start: 3854
    functionDepth: 15
    functionLinenumber: 3854
    functionLinenumberEnd: 3883
    functionName: ast_for_assert_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - CHILD
    - REQ
    - PyErr_Format
    - LINENO
    - Assert
    - ast_for_expr
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_assert_stmt(struct compiling *c, const node *n)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3894,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3895,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:3898,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:3899,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3902,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3902,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3903,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3907,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3908,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3908,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3912,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:3913,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3916,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:3921,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3921,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3923,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3923,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3926,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3927,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3928,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:3929,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:3932,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3935,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3939,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3940,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3941,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3943,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3943,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3944,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3944,1
    - Dst: ast_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:3947,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3947,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:3950,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3955,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: ((j + 1) == NCH(ch))
      pos:
        line_end: 3943
        line_start: 3943
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (pos == seq->size)
      pos:
        line_end: 3954
        line_start: 3954
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 3957
      start: 3885
    functionDepth: 2
    functionLinenumber: 3885
    functionLinenumberEnd: 3957
    functionName: ast_for_suite
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - ast_for_stmt
    - num_stmts
    - _Py_asdl_seq_new
    - CHILD
    - REQ
    - TYPE
    - asdl_seq_SET
    - assert
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      ast_for_suite(struct compiling *c, const node *n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:3962,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:3964,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:3965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - end_lineno
    - end_col_offset
    argTypes:
    - asdl_seq*
    - int*
    - int*
    assertStmts:
    - condition: (tot > 0)
      pos:
        line_end: 3963
        line_start: 3963
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 3968
      start: 3959
    functionDepth: 1
    functionLinenumber: 3959
    functionLinenumberEnd: 3968
    functionName: get_last_end_pos
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - assert
    linkageType: ''
    returnType: void
    signature: void get_last_end_pos(asdl_seq *s, int *end_lineno, int *end_col_offset)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:3979,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:3981,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:3985,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3985,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:3988,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3988,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:3991,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/ast.c:3993,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:3993,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:3997,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:3997,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4006,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4006,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4009,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4009,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4012,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4012,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4015,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/ast.c:4017,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4017,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4025,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4028,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4028,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:4029,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4029,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:4038,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4041,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4041,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4041,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4044,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4044,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4044,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4047,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4047,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4047,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4050,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:4052,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/ast.c:4053,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4054,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4054,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4054,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4055,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4055,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:4063,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4066,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4066,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4069,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4069,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4074,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4076,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:4078,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/ast.c:4079,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4080,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4080,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4081,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4085,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4085,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4088,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4088,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4091,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/ast.c:4092,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4093,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:4097,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4100
      start: 3970
    functionDepth: 15
    functionLinenumber: 3970
    functionLinenumberEnd: 4100
    functionName: ast_for_if_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - STR
    - _Py_asdl_seq_new
    - ast_for_suite
    - CHILD
    - REQ
    - TYPE
    - If
    - LINENO
    - asdl_seq_SET
    - PyErr_Format
    - get_last_end_pos
    - ast_for_expr
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_if_stmt(struct compiling *c, const node *n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4106,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4109,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4113,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4113,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4116,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4116,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4119,1
    - Dst: While
      Src: /src/Python-3.8.3/Python/ast.c:4120,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4120,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4123,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4127,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4127,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4130,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4130,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4133,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4133,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4136,1
    - Dst: While
      Src: /src/Python-3.8.3/Python/ast.c:4138,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4138,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:4142,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4102
    functionDepth: 15
    functionLinenumber: 4102
    functionLinenumberEnd: 4146
    functionName: ast_for_while_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - ast_for_suite
    - CHILD
    - REQ
    - PyErr_Format
    - LINENO
    - While
    - get_last_end_pos
    - ast_for_expr
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_while_stmt(struct compiling *c, const node *n)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4151,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4161,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4167,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4169,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4169,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4171,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4172,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4172,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4177,1
    - Dst: ast_for_exprlist
      Src: /src/Python-3.8.3/Python/ast.c:4178,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:4183,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4184,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/ast.c:4187,1
    - Dst: ast_for_testlist
      Src: /src/Python-3.8.3/Python/ast.c:4191,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4191,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4194,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4194,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4199,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4201,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:4205,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4205,1
    - Dst: AsyncFor
      Src: /src/Python-3.8.3/Python/ast.c:4213,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4214,1
    - Dst: For
      Src: /src/Python-3.8.3/Python/ast.c:4217,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4218,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - c
    - n0
    - is_async
    argTypes:
    - struct compiling*
    - node*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4148
    functionDepth: 16
    functionLinenumber: 4148
    functionLinenumberEnd: 4220
    functionName: ast_for_for_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - For
    - ast_error
    - NEW_TYPE_COMMENT
    - ast_for_testlist
    - ast_for_suite
    - REQ
    - CHILD
    - ast_for_exprlist
    - TYPE
    - Tuple
    - LINENO
    - AsyncFor
    - get_last_end_pos
    - asdl_seq_GET
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_for_stmt(struct compiling *c, const node *n0, bool
      is_async)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4227,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4228,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4230,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4231,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4234,1
    - Dst: ExceptHandler
      Src: /src/Python-3.8.3/Python/ast.c:4236,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4236,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4240,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4244,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4244,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4247,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4250,1
    - Dst: ExceptHandler
      Src: /src/Python-3.8.3/Python/ast.c:4252,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4252,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4256,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:4259,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4259,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:4262,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4262,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4264,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4264,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4267,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4270,1
    - Dst: ExceptHandler
      Src: /src/Python-3.8.3/Python/ast.c:4272,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4272,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:4277,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - c
    - exc
    - body
    argTypes:
    - struct compiling*
    - node*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4222
    functionDepth: 15
    functionLinenumber: 4222
    functionLinenumberEnd: 4281
    functionName: ast_for_except_clause
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - ast_for_suite
    - REQ
    - CHILD
    - forbidden_name
    - PyErr_Format
    - LINENO
    - ExceptHandler
    - get_last_end_pos
    - ast_for_expr
    linkageType: ''
    returnType: excepthandler_ty
    signature: excepthandler_ty ast_for_except_clause(struct compiling *c, const node
      *exc, node *body)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4286,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4291,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4293,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4293,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4297,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4297,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/ast.c:4298,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:4298,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4298,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4299,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4299,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4303,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4303,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4309,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4309,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4317,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4317,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4323,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4323,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4324,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:4331,1
    - Dst: ast_for_except_clause
      Src: /src/Python-3.8.3/Python/ast.c:4336,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4336,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4337,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:4340,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4344,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:4344,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4347,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4350,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:4353,1
    - Dst: Try
      Src: /src/Python-3.8.3/Python/ast.c:4357,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4357,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (finally != NULL || asdl_seq_LEN(handlers))
      pos:
        line_end: 4343
        line_start: 4343
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4359
      start: 4283
    functionDepth: 16
    functionLinenumber: 4283
    functionLinenumberEnd: 4359
    functionName: ast_for_try_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - STR
    - ast_error
    - Try
    - _Py_asdl_seq_new
    - ast_for_except_clause
    - asdl_seq_LEN
    - ast_for_suite
    - REQ
    - CHILD
    - TYPE
    - asdl_seq_SET
    - LINENO
    - get_last_end_pos
    - assert
    - asdl_seq_GET
    - strcmp
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_try_stmt(struct compiling *c, const node *n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4367,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4368,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4368,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4371,1
    - Dst: ast_for_expr
      Src: /src/Python-3.8.3/Python/ast.c:4372,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4372,1
    - Dst: set_context
      Src: /src/Python-3.8.3/Python/ast.c:4377,1
    - Dst: withitem
      Src: /src/Python-3.8.3/Python/ast.c:4382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4383
      start: 4362
    functionDepth: 15
    functionLinenumber: 4362
    functionLinenumberEnd: 4383
    functionName: ast_for_with_item
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - withitem
    - CHILD
    - REQ
    - set_context
    - ast_for_expr
    linkageType: ''
    returnType: withitem_ty
    signature: withitem_ty ast_for_with_item(struct compiling *c, const node *n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4389,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4395,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4400,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4402,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4402,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4402,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4403,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:4406,1
    - Dst: ast_for_with_item
      Src: /src/Python-3.8.3/Python/ast.c:4410,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4410,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:4413,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4416,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4416,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4416,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4419,1
    - Dst: NEW_TYPE_COMMENT
      Src: /src/Python-3.8.3/Python/ast.c:4422,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4422,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4422,1
    - Dst: AsyncWith
      Src: /src/Python-3.8.3/Python/ast.c:4430,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4430,1
    - Dst: With
      Src: /src/Python-3.8.3/Python/ast.c:4433,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4433,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - c
    - n0
    - is_async
    argTypes:
    - struct compiling*
    - node*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4386
    functionDepth: 16
    functionLinenumber: 4386
    functionLinenumberEnd: 4435
    functionName: ast_for_with_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - AsyncWith
    - ast_error
    - With
    - _Py_asdl_seq_new
    - NEW_TYPE_COMMENT
    - ast_for_suite
    - REQ
    - CHILD
    - ast_for_with_item
    - TYPE
    - asdl_seq_SET
    - LINENO
    - get_last_end_pos
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_with_stmt(struct compiling *c, const node *n0, bool
      is_async)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4446,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4448,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4449,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4449,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4452,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:4454,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4454,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:4457,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4457,1
    - Dst: ClassDef
      Src: /src/Python-3.8.3/Python/ast.c:4459,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4460,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4464,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4464,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4465,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4465,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4468,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:4470,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4470,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:4473,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4473,1
    - Dst: ClassDef
      Src: /src/Python-3.8.3/Python/ast.c:4475,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4476,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:4485,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4485,1
    - Dst: Name
      Src: /src/Python-3.8.3/Python/ast.c:4488,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4488,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4489,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4489,1
    - Dst: ast_for_call
      Src: /src/Python-3.8.3/Python/ast.c:4491,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4491,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4492,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4492,1
    - Dst: ast_for_suite
      Src: /src/Python-3.8.3/Python/ast.c:4496,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4496,1
    - Dst: get_last_end_pos
      Src: /src/Python-3.8.3/Python/ast.c:4499,1
    - Dst: NEW_IDENTIFIER
      Src: /src/Python-3.8.3/Python/ast.c:4501,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4501,1
    - Dst: forbidden_name
      Src: /src/Python-3.8.3/Python/ast.c:4504,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4504,1
    - Dst: ClassDef
      Src: /src/Python-3.8.3/Python/ast.c:4507,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4508,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - c
    - n
    - decorator_seq
    argTypes:
    - struct compiling*
    - node*
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4437
    functionDepth: 16
    functionLinenumber: 4437
    functionLinenumberEnd: 4510
    functionName: ast_for_classdef
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - NEW_IDENTIFIER
    - ClassDef
    - ast_for_call
    - ast_for_suite
    - REQ
    - CHILD
    - forbidden_name
    - TYPE
    - LINENO
    - get_last_end_pos
    - Name
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_classdef(struct compiling *c, const node *n, asdl_seq
      *decorator_seq)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4515,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4516,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4516,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4517,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4519,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4520,1
    - Dst: num_stmts
      Src: /src/Python-3.8.3/Python/ast.c:4520,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4521,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4523,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4524,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4528,1
    - Dst: ast_for_expr_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4530,1
    - Dst: ast_for_del_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4532,1
    - Dst: Pass
      Src: /src/Python-3.8.3/Python/ast.c:4534,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4534,1
    - Dst: ast_for_flow_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4537,1
    - Dst: ast_for_import_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4539,1
    - Dst: ast_for_global_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4541,1
    - Dst: ast_for_nonlocal_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4543,1
    - Dst: ast_for_assert_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4545,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:4547,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4549,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4549,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4557,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:4558,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4559,1
    - Dst: ast_for_if_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4561,1
    - Dst: ast_for_while_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4563,1
    - Dst: ast_for_for_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4565,1
    - Dst: ast_for_try_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4567,1
    - Dst: ast_for_with_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4569,1
    - Dst: ast_for_funcdef
      Src: /src/Python-3.8.3/Python/ast.c:4571,1
    - Dst: ast_for_classdef
      Src: /src/Python-3.8.3/Python/ast.c:4573,1
    - Dst: ast_for_decorated
      Src: /src/Python-3.8.3/Python/ast.c:4575,1
    - Dst: ast_for_async_stmt
      Src: /src/Python-3.8.3/Python/ast.c:4577,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/ast.c:4579,1
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:4581,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (num_stmts(n) == 1)
      pos:
        line_end: 4519
        line_start: 4519
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (NCH(n) == 1)
      pos:
        line_end: 4515
        line_start: 4515
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4585
      start: 4512
    functionDepth: 17
    functionLinenumber: 4512
    functionLinenumberEnd: 4585
    functionName: ast_for_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 2
    functionsReached:
    - ast_for_funcdef
    - ast_for_if_stmt
    - ast_for_for_stmt
    - ast_for_async_stmt
    - ast_for_assert_stmt
    - ast_for_with_stmt
    - ast_for_import_stmt
    - REQ
    - PyErr_Format
    - assert
    - ast_for_classdef
    - ast_for_nonlocal_stmt
    - ast_for_try_stmt
    - Pass
    - CHILD
    - TYPE
    - ast_for_flow_stmt
    - ast_for_decorated
    - NCH
    - num_stmts
    - ast_for_while_stmt
    - ast_for_global_stmt
    - ast_for_del_stmt
    - LINENO
    - ast_for_expr_stmt
    linkageType: ''
    returnType: stmt_ty
    signature: stmt_ty ast_for_stmt(struct compiling *c, const node *n)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4596,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:4598,1
    - Dst: PyOS_strtoul
      Src: /src/Python-3.8.3/Python/ast.c:4601,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Python/ast.c:4603,1
    - Dst: PyOS_strtol
      Src: /src/Python-3.8.3/Python/ast.c:4607,1
    - Dst: PyLong_FromString
      Src: /src/Python-3.8.3/Python/ast.c:4610,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/ast.c:4611,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Python/ast.c:4616,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ast.c:4617,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Python/ast.c:4619,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Python/ast.c:4623,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ast.c:4624,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/ast.c:4626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiling*
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 4595
        line_start: 4595
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4628
      start: 4587
    functionDepth: 5
    functionLinenumber: 4587
    functionLinenumberEnd: 4628
    functionName: parsenumber_raw
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - PyOS_string_to_double
    - strlen
    - PyComplex_FromCComplex
    - PyOS_strtol
    - PyOS_strtoul
    - PyLong_FromString
    - assert
    - PyFloat_FromDouble
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber_raw(struct compiling *c, const char *s)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4636,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/ast.c:4638,1
    - Dst: parsenumber_raw
      Src: /src/Python-3.8.3/Python/ast.c:4639,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/ast.c:4642,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:4642,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/ast.c:4644,1
    - Dst: parsenumber_raw
      Src: /src/Python-3.8.3/Python/ast.c:4653,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/ast.c:4654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - c
    - s
    argTypes:
    - struct compiling*
    - char*
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 4635
        line_start: 4635
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4656
      start: 4630
    functionDepth: 6
    functionLinenumber: 4630
    functionLinenumberEnd: 4656
    functionName: parsenumber
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - parsenumber_raw
    - PyErr_NoMemory
    - strlen
    - PyMem_Free
    - PyMem_Malloc
    - assert
    - strchr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      parsenumber(struct compiling *c, const char *s)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/ast.c:4666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - c
    - sPtr
    - end
    argTypes:
    - struct compiling*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4667
      start: 4658
    functionDepth: 2
    functionLinenumber: 4658
    functionLinenumberEnd: 4667
    functionName: decode_utf8
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 2
    functionsReached:
    - PyUnicode_DecodeUTF8
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      decode_utf8(struct compiling *c, const char **sPtr, const char *end)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/ast.c:4673,1
    - Dst: PyErr_WarnExplicitObject
      Src: /src/Python-3.8.3/Python/ast.c:4678,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4679,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ast.c:4682,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/ast.c:4685,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4686,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4688,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - c
    - n
    - first_invalid_escape_char
    argTypes:
    - struct compiling*
    - node*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4693
      start: 4669
    functionDepth: 17
    functionLinenumber: 4669
    functionLinenumberEnd: 4693
    functionName: warn_invalid_escape_sequence
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_error
    - Py_DECREF
    - PyUnicode_FromFormat
    - PyErr_ExceptionMatches
    - LINENO
    - PyErr_WarnExplicitObject
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: "int warn_invalid_escape_sequence(struct compiling *c, const node *n,\n
      \                            unsigned char first_invalid_escape_char)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/ast.c:4709,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Python/ast.c:4712,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/ast.c:4718,1
    - Dst: decode_utf8
      Src: /src/Python-3.8.3/Python/ast.c:4729,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4731,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/ast.c:4734,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/ast.c:4735,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/ast.c:4736,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/ast.c:4738,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Python/ast.c:4739,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4743,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast.c:4743,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4744,1
    - Dst: _PyUnicode_DecodeUnicodeEscape
      Src: /src/Python-3.8.3/Python/ast.c:4753,1
    - Dst: warn_invalid_escape_sequence
      Src: /src/Python-3.8.3/Python/ast.c:4756,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:4759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4760,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:4764,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - c
    - n
    - s
    - len
    argTypes:
    - struct compiling*
    - node*
    - char*
    - size_t
    assertStmts:
    - condition: (p - buf <= PyBytes_GET_SIZE(u))
      pos:
        line_end: 4742
        line_start: 4742
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4766
      start: 4695
    functionDepth: 18
    functionLinenumber: 4695
    functionLinenumberEnd: 4766
    functionName: decode_unicode_with_escapes
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - strcpy
    - assert
    - PyUnicode_READ
    - Py_DECREF
    - Py_XDECREF
    - _PyUnicode_DecodeUnicodeEscape
    - PyBytes_AsString
    - PyBytes_GET_SIZE
    - warn_invalid_escape_sequence
    - decode_utf8
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_GET_LENGTH
    - sprintf
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndecode_unicode_with_escapes(struct compiling *c, const
      node *n, const char *s,\n                            size_t len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBytes_DecodeEscape
      Src: /src/Python-3.8.3/Python/ast.c:4773,1
    - Dst: warn_invalid_escape_sequence
      Src: /src/Python-3.8.3/Python/ast.c:4779,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:4780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - c
    - n
    - s
    - len
    argTypes:
    - struct compiling*
    - node*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4785
      start: 4768
    functionDepth: 18
    functionLinenumber: 4768
    functionLinenumberEnd: 4785
    functionName: decode_bytes_with_escapes
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - _PyBytes_DecodeEscape
    - warn_invalid_escape_sequence
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ndecode_bytes_with_escapes(struct compiling *c, const node
      *n, const char *s,\n                          size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:4793,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4794,1
    - Dst: fstring_shift_node_locations
      Src: /src/Python-3.8.3/Python/ast.c:4798,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:4798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - n
    - lineno
    - col_offset
    argTypes:
    - node*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4789
    functionDepth: 1
    functionLinenumber: 4789
    functionLinenumberEnd: 4802
    functionName: fstring_shift_node_locations
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - fstring_shift_node_locations
    - NCH
    - CHILD
    linkageType: ''
    returnType: void
    signature: void fstring_shift_node_locations(node *n, int lineno, int col_offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:4815,1
    - Dst: strstr
      Src: /src/Python-3.8.3/Python/ast.c:4821,1
    - Dst: fstring_shift_node_locations
      Src: /src/Python-3.8.3/Python/ast.c:4839,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - parent
    - n
    - expr_str
    argTypes:
    - node*
    - node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4840
      start: 4810
    functionDepth: 2
    functionLinenumber: 4810
    functionLinenumberEnd: 4840
    functionName: fstring_fix_node_location
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - fstring_shift_node_locations
    - strstr
    - LINENO
    linkageType: ''
    returnType: void
    signature: void fstring_fix_node_location(const node *parent, node *n, char *expr_str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4855,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4856,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4857,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4873,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/ast.c:4879,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/ast.c:4881,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/ast.c:4886,1
    - Dst: PyParser_SimpleParseStringFlagsFilename
      Src: /src/Python-3.8.3/Python/ast.c:4892,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/ast.c:4895,1
    - Dst: fstring_fix_node_location
      Src: /src/Python-3.8.3/Python/ast.c:4901,1
    - Dst: PyAST_FromNode
      Src: /src/Python-3.8.3/Python/ast.c:4902,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/ast.c:4903,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Python/ast.c:4904,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 4
    argNames:
    - expr_start
    - expr_end
    - c
    - n
    argTypes:
    - char*
    - char*
    - struct compiling*
    - node*
    assertStmts:
    - condition: (expr_end >= expr_start)
      pos:
        line_end: 4854
        line_start: 4854
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (*(expr_start-1) == '{')
      pos:
        line_end: 4855
        line_start: 4855
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: "(*expr_end == '}' || *expr_end == '!' || *expr_end == ':' ||\n           *expr_end
        == '=')"
      pos:
        line_end: 4857
        line_start: 4856
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4908
      start: 4844
    functionDepth: 8
    functionLinenumber: 4844
    functionLinenumberEnd: 4908
    functionName: fstring_compile_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ast_error
    - PyNode_Free
    - PyErr_NoMemory
    - PyParser_SimpleParseStringFlagsFilename
    - PyMem_RawMalloc
    - PyAST_FromNode
    - PyMem_RawFree
    - assert
    - fstring_fix_node_location
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty fstring_compile_expr(const char *expr_start, const char *expr_end,\n
      \                    struct compiling *c, const node *n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4931,1
    - Dst: warn_invalid_escape_sequence
      Src: /src/Python-3.8.3/Python/ast.c:4944,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:4966,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4978,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:4979,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Python/ast.c:4983,1
    - Dst: decode_unicode_with_escapes
      Src: /src/Python-3.8.3/Python/ast.c:4987,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 7
    argNames:
    - str
    - end
    - raw
    - literal
    - recurse_lvl
    - c
    - n
    argTypes:
    - char**
    - char*
    - int
    - PyObject**
    - int
    - struct compiling*
    - node*
    assertStmts:
    - condition: (*literal == NULL)
      pos:
        line_end: 4930
        line_start: 4930
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (s <= end)
      pos:
        line_end: 4977
        line_start: 4977
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (s == end || *s == '{' || *s == '}')
      pos:
        line_end: 4978
        line_start: 4978
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 4993
      start: 4918
    functionDepth: 19
    functionLinenumber: 4918
    functionLinenumberEnd: 4993
    functionName: fstring_find_literal
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - decode_unicode_with_escapes
    - ast_error
    - warn_invalid_escape_sequence
    - PyUnicode_DecodeUTF8Stateful
    - assert
    linkageType: ''
    returnType: int
    signature: "int fstring_find_literal(const char **str, const char *end, int raw,\n
      \                    PyObject **literal, int recurse_lvl,\n                     struct
      compiling *c, const node *n)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5046,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5052,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5060,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5061,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5063,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5065,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5072,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5119,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5127,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5158,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5167,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5183,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5188,1
    - Dst: fstring_compile_expr
      Src: /src/Python-3.8.3/Python/ast.c:5198,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Python/ast.c:5210,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/ast.c:5215,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5232,1
    - Dst: fstring_parse
      Src: /src/Python-3.8.3/Python/ast.c:5249,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5258,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5259,1
    - Dst: FormattedValue
      Src: /src/Python-3.8.3/Python/ast.c:5270,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:5271,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5280,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:5284,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 164
    argCount: 8
    argNames:
    - str
    - end
    - raw
    - recurse_lvl
    - expr_text
    - expression
    - c
    - n
    argTypes:
    - char**
    - char*
    - int
    - int
    - PyObject**
    - expr_ty*
    - struct compiling*
    - node*
    assertStmts:
    - condition: (*str >= expr_start && *str < end)
      pos:
        line_end: 5060
        line_start: 5060
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (nested_depth >= 0)
      pos:
        line_end: 5059
        line_start: 5059
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (*str < end)
      pos:
        line_end: 5257
        line_start: 5257
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (**str == '}')
      pos:
        line_end: 5258
        line_start: 5258
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (string_type == 1 || string_type == 3)
      pos:
        line_end: 5062
        line_start: 5062
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (**str == '{')
      pos:
        line_end: 5051
        line_start: 5051
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (string_type == 0)
      pos:
        line_end: 5064
        line_start: 5064
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5287
      start: 5015
    functionDepth: 9
    functionLinenumber: 5015
    functionLinenumberEnd: 5287
    functionName: fstring_find_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Py_ISSPACE
    - FormattedValue
    - ast_error
    - fstring_parse
    - fstring_compile_expr
    - PyUnicode_FromStringAndSize
    - LINENO
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int fstring_find_expr(const char **str, const char *end, int raw,
      int recurse_lvl,\n                  PyObject **expr_text, expr_ty *expression,\n
      \                 struct compiling *c, const node *n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5320,1
    - Dst: fstring_find_literal
      Src: /src/Python-3.8.3/Python/ast.c:5323,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5327,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5341,1
    - Dst: fstring_find_expr
      Src: /src/Python-3.8.3/Python/ast.c:5343,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/ast.c:5350,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 9
    argNames:
    - str
    - end
    - raw
    - recurse_lvl
    - literal
    - expr_text
    - expression
    - c
    - n
    argTypes:
    - char**
    - char*
    - int
    - int
    - PyObject**
    - PyObject**
    - expr_ty*
    - struct compiling*
    - node*
    assertStmts:
    - condition: (*literal == NULL && *expression == NULL)
      pos:
        line_end: 5319
        line_start: 5319
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (result == 0 || result == 1)
      pos:
        line_end: 5326
        line_start: 5326
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (**str == '{')
      pos:
        line_end: 5340
        line_start: 5340
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5352
      start: 5312
    functionDepth: 20
    functionLinenumber: 5312
    functionLinenumberEnd: 5352
    functionName: fstring_find_literal_and_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - fstring_find_expr
    - assert
    - fstring_find_literal
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: "int fstring_find_literal_and_expr(const char **str, const char *end,
      int raw,\n                              int recurse_lvl, PyObject **literal,\n
      \                             PyObject **expr_text, expr_ty *expression,\n                              struct
      compiling *c, const node *n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5381,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5382,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - ExprList*
    assertStmts:
    - condition: (l->size >= 0)
      pos:
        line_end: 5380
        line_start: 5380
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (l->p != NULL)
      pos:
        line_end: 5381
        line_start: 5381
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (l->data == l->p)
      pos:
        line_end: 5383
        line_start: 5383
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5385
      start: 5376
    functionDepth: 1
    functionLinenumber: 5376
    functionLinenumberEnd: 5385
    functionName: ExprList_check_invariants
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void ExprList_check_invariants(ExprList *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - l
    argTypes:
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5398
      start: 5388
    functionDepth: 2
    functionLinenumber: 5388
    functionLinenumberEnd: 5398
    functionName: ExprList_Init
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_check_invariants
    linkageType: ''
    returnType: void
    signature: void ExprList_Init(ExprList *l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5403,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/ast.c:5413,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Python/ast.c:5421,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/ast.c:5423,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5431,1
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - l
    - exp
    argTypes:
    - ExprList*
    - expr_ty
    assertStmts:
    - condition: (l->allocated == 2 * l->size)
      pos:
        line_end: 5430
        line_start: 5430
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5438
      start: 5400
    functionDepth: 2
    functionLinenumber: 5400
    functionLinenumberEnd: 5438
    functionName: ExprList_Append
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_check_invariants
    - PyMem_RawRealloc
    - PyMem_RawMalloc
    - PyMem_RawFree
    - assert
    linkageType: ''
    returnType: int
    signature: int ExprList_Append(ExprList *l, expr_ty exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5443,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/ast.c:5451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - l
    argTypes:
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5455
      start: 5440
    functionDepth: 2
    functionLinenumber: 5440
    functionLinenumberEnd: 5455
    functionName: ExprList_Dealloc
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_check_invariants
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void ExprList_Dealloc(ExprList *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5462,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast.c:5465,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast.c:5469,1
    - Dst: ExprList_Dealloc
      Src: /src/Python-3.8.3/Python/ast.c:5471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - l
    - arena
    argTypes:
    - ExprList*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5473
      start: 5457
    functionDepth: 3
    functionLinenumber: 5457
    functionLinenumberEnd: 5473
    functionName: ExprList_Finish
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_check_invariants
    - _Py_asdl_seq_new
    - asdl_seq_SET
    - ExprList_Dealloc
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      ExprList_Finish(ExprList *l, PyArena *arena)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5491,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5491,1
    - Dst: ExprList_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - FstringParser*
    assertStmts:
    - condition: (PyUnicode_CheckExact(state->last_str))
      pos:
        line_end: 5490
        line_start: 5490
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5493
      start: 5487
    functionDepth: 2
    functionLinenumber: 5487
    functionLinenumberEnd: 5493
    functionName: FstringParser_check_invariants
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_check_invariants
    - assert
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: void
    signature: void FstringParser_check_invariants(FstringParser *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExprList_Init
      Src: /src/Python-3.8.3/Python/ast.c:5501,1
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - FstringParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5503
      start: 5496
    functionDepth: 3
    functionLinenumber: 5496
    functionLinenumberEnd: 5503
    functionName: FstringParser_Init
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_Init
    - FstringParser_check_invariants
    linkageType: ''
    returnType: void
    signature: void FstringParser_Init(FstringParser *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5508,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:5510,1
    - Dst: ExprList_Dealloc
      Src: /src/Python-3.8.3/Python/ast.c:5511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - FstringParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5505
    functionDepth: 3
    functionLinenumber: 5505
    functionLinenumberEnd: 5512
    functionName: FstringParser_Dealloc
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_Dealloc
    - Py_XDECREF
    - FstringParser_check_invariants
    linkageType: ''
    returnType: void
    signature: void FstringParser_Dealloc(FstringParser *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TYPE
      Src: /src/Python-3.8.3/Python/ast.c:5525,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:5526,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:5528,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:5530,1
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:5533,1
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/ast.c:5536,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:5541,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ast.c:5544,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5547
      start: 5518
    functionDepth: 6
    functionLinenumber: 5518
    functionLinenumberEnd: 5547
    functionName: make_kind
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - NCH
    - STR
    - PyArena_AddPyObject
    - Py_INCREF
    - REQ
    - CHILD
    - TYPE
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_kind(struct compiling *c, const node *n)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5556,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5556,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:5557,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:5558,1
    - Dst: make_kind
      Src: /src/Python-3.8.3/Python/ast.c:5561,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ast.c:5562,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:5564,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:5564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - c
    - n
    argTypes:
    - PyObject**
    - struct compiling*
    - node*
    assertStmts:
    - condition: (PyUnicode_CheckExact(s))
      pos:
        line_end: 5555
        line_start: 5555
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5566
      start: 5550
    functionDepth: 7
    functionLinenumber: 5550
    functionLinenumberEnd: 5566
    functionName: make_str_node_and_del
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyArena_AddPyObject
    - LINENO
    - assert
    - Constant
    - make_kind
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty make_str_node_and_del(PyObject **str, struct compiling *c,
      const node* n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5573,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5575,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5575,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/ast.c:5577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast.c:5578,1
    - Dst: PyUnicode_AppendAndDel
      Src: /src/Python-3.8.3/Python/ast.c:5587,1
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - str
    argTypes:
    - FstringParser*
    - PyObject*
    assertStmts:
    - condition: (PyUnicode_CheckExact(str))
      pos:
        line_end: 5574
        line_start: 5574
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5593
      start: 5570
    functionDepth: 6
    functionLinenumber: 5570
    functionLinenumberEnd: 5593
    functionName: FstringParser_ConcatAndDel
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AppendAndDel
    - assert
    - PyUnicode_GET_LENGTH
    - FstringParser_check_invariants
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: int FstringParser_ConcatAndDel(FstringParser *state, PyObject *str)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5602,1
    - Dst: fstring_find_literal_and_expr
      Src: /src/Python-3.8.3/Python/ast.c:5615,1
    - Dst: FstringParser_ConcatAndDel
      Src: /src/Python-3.8.3/Python/ast.c:5622,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:5623,1
    - Dst: FstringParser_ConcatAndDel
      Src: /src/Python-3.8.3/Python/ast.c:5627,1
    - Dst: make_str_node_and_del
      Src: /src/Python-3.8.3/Python/ast.c:5651,1
    - Dst: ExprList_Append
      Src: /src/Python-3.8.3/Python/ast.c:5652,1
    - Dst: ExprList_Append
      Src: /src/Python-3.8.3/Python/ast.c:5656,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5664,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5668,1
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5672,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 7
    argNames:
    - state
    - str
    - end
    - raw
    - recurse_lvl
    - c
    - n
    argTypes:
    - FstringParser*
    - char**
    - char*
    - int
    - int
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5674
      start: 5597
    functionDepth: 21
    functionLinenumber: 5597
    functionLinenumberEnd: 5674
    functionName: FstringParser_ConcatFstring
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ast_error
    - make_str_node_and_del
    - ExprList_Append
    - fstring_find_literal_and_expr
    - FstringParser_ConcatAndDel
    - Py_XDECREF
    - FstringParser_check_invariants
    linkageType: ''
    returnType: int
    signature: "int FstringParser_ConcatFstring(FstringParser *state, const char **str,\n
      \                           const char *end, int raw, int recurse_lvl,\n                            struct
      compiling *c, const node *n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_check_invariants
      Src: /src/Python-3.8.3/Python/ast.c:5684,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5689,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/ast.c:5692,1
    - Dst: make_str_node_and_del
      Src: /src/Python-3.8.3/Python/ast.c:5696,1
    - Dst: make_str_node_and_del
      Src: /src/Python-3.8.3/Python/ast.c:5702,1
    - Dst: ExprList_Append
      Src: /src/Python-3.8.3/Python/ast.c:5703,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5707,1
    - Dst: ExprList_Finish
      Src: /src/Python-3.8.3/Python/ast.c:5709,1
    - Dst: JoinedStr
      Src: /src/Python-3.8.3/Python/ast.c:5713,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:5713,1
    - Dst: FstringParser_Dealloc
      Src: /src/Python-3.8.3/Python/ast.c:5717,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - state
    - c
    - n
    argTypes:
    - FstringParser*
    - struct compiling*
    - node*
    assertStmts:
    - condition: (!state->expr_list.size)
      pos:
        line_end: 5688
        line_start: 5688
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (state->last_str == NULL)
      pos:
        line_end: 5706
        line_start: 5706
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5719
      start: 5678
    functionDepth: 8
    functionLinenumber: 5678
    functionLinenumberEnd: 5719
    functionName: FstringParser_Finish
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - ExprList_Finish
    - make_str_node_and_del
    - PyUnicode_FromStringAndSize
    - JoinedStr
    - ExprList_Append
    - FstringParser_Dealloc
    - LINENO
    - assert
    - FstringParser_check_invariants
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty FstringParser_Finish(FstringParser *state, struct compiling
      *c,\n                     const node *n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_Init
      Src: /src/Python-3.8.3/Python/ast.c:5730,1
    - Dst: FstringParser_ConcatFstring
      Src: /src/Python-3.8.3/Python/ast.c:5731,1
    - Dst: FstringParser_Dealloc
      Src: /src/Python-3.8.3/Python/ast.c:5733,1
    - Dst: FstringParser_Finish
      Src: /src/Python-3.8.3/Python/ast.c:5737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - str
    - end
    - raw
    - recurse_lvl
    - c
    - n
    argTypes:
    - char**
    - char*
    - int
    - int
    - struct compiling*
    - node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5738
      start: 5724
    functionDepth: 22
    functionLinenumber: 5724
    functionLinenumberEnd: 5738
    functionName: fstring_parse
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - FstringParser_ConcatFstring
    - FstringParser_Dealloc
    - FstringParser_Init
    - FstringParser_Finish
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty fstring_parse(const char **str, const char *end, int raw,
      int recurse_lvl,\n              struct compiling *c, const node *n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/Python-3.8.3/Python/ast.c:5752,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/ast.c:5753,1
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Python/ast.c:5759,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5784,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/ast.c:5789,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/ast.c:5793,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/ast.c:5798,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/ast.c:5800,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/ast.c:5806,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/ast.c:5817,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/ast.c:5832,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/ast.c:5837,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5838,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/ast.c:5845,1
    - Dst: decode_bytes_with_escapes
      Src: /src/Python-3.8.3/Python/ast.c:5847,1
    - Dst: PyUnicode_DecodeUTF8Stateful
      Src: /src/Python-3.8.3/Python/ast.c:5850,1
    - Dst: decode_unicode_with_escapes
      Src: /src/Python-3.8.3/Python/ast.c:5852,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 78
    argCount: 7
    argNames:
    - c
    - n
    - bytesmode
    - rawmode
    - result
    - fstr
    - fstrlen
    argTypes:
    - struct compiling*
    - node*
    - int*
    - int*
    - PyObject**
    - char**
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5855
      start: 5747
    functionDepth: 19
    functionLinenumber: 5747
    functionLinenumberEnd: 5855
    functionName: parsestr
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 0
    functionsReached:
    - decode_unicode_with_escapes
    - PyBytes_FromStringAndSize
    - decode_bytes_with_escapes
    - ast_error
    - STR
    - PyErr_BadInternalCall
    - strlen
    - PyUnicode_DecodeUTF8Stateful
    - PyErr_SetString
    - strchr
    - Py_ISALPHA
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: "int parsestr(struct compiling *c, const node *n, int *bytesmode, int
      *rawmode,\n         PyObject **result, const char **fstr, Py_ssize_t *fstrlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FstringParser_Init
      Src: /src/Python-3.8.3/Python/ast.c:5873,1
    - Dst: NCH
      Src: /src/Python-3.8.3/Python/ast.c:5875,1
    - Dst: REQ
      Src: /src/Python-3.8.3/Python/ast.c:5882,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:5882,1
    - Dst: parsestr
      Src: /src/Python-3.8.3/Python/ast.c:5883,1
    - Dst: CHILD
      Src: /src/Python-3.8.3/Python/ast.c:5883,1
    - Dst: ast_error
      Src: /src/Python-3.8.3/Python/ast.c:5889,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:5891,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5898,1
    - Dst: FstringParser_ConcatFstring
      Src: /src/Python-3.8.3/Python/ast.c:5900,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5906,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5908,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5908,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5909,1
    - Dst: PyBytes_ConcatAndDel
      Src: /src/Python-3.8.3/Python/ast.c:5917,1
    - Dst: FstringParser_ConcatAndDel
      Src: /src/Python-3.8.3/Python/ast.c:5923,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast.c:5930,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/ast.c:5932,1
    - Dst: LINENO
      Src: /src/Python-3.8.3/Python/ast.c:5932,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast.c:5937,1
    - Dst: FstringParser_Finish
      Src: /src/Python-3.8.3/Python/ast.c:5939,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/ast.c:5942,1
    - Dst: FstringParser_Dealloc
      Src: /src/Python-3.8.3/Python/ast.c:5943,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 2
    argNames:
    - c
    - n
    argTypes:
    - struct compiling*
    - node*
    assertStmts:
    - condition: (s == NULL && !bytesmode)
      pos:
        line_end: 5897
        line_start: 5897
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (s != NULL && fstr == NULL)
      pos:
        line_end: 5905
        line_start: 5905
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: "(bytesmode ? PyBytes_CheckExact(s) :\n                   PyUnicode_CheckExact(s))"
      pos:
        line_end: 5908
        line_start: 5907
        source_file: /src/Python-3.8.3/Python/ast.c
    - condition: (bytes_str == NULL)
      pos:
        line_end: 5936
        line_start: 5936
        source_file: /src/Python-3.8.3/Python/ast.c
    constantsTouched: []
    func_position:
      end: 5945
      start: 5865
    functionDepth: 22
    functionLinenumber: 5865
    functionLinenumberEnd: 5945
    functionName: parsestrplus
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 1
    functionsReached:
    - NCH
    - ast_error
    - PyBytes_ConcatAndDel
    - PyArena_AddPyObject
    - PyBytes_CheckExact
    - FstringParser_ConcatAndDel
    - REQ
    - CHILD
    - FstringParser_Finish
    - FstringParser_Dealloc
    - LINENO
    - parsestr
    - FstringParser_ConcatFstring
    - assert
    - Constant
    - Py_XDECREF
    - FstringParser_Init
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: expr_ty
    signature: expr_ty parsestrplus(struct compiling *c, const node *n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast.c:5950,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast.c:5953,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/ast.c:5958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - body
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5962
      start: 5947
    functionDepth: 1
    functionLinenumber: 5947
    functionLinenumberEnd: 5962
    functionName: _PyAST_GetDocString
    functionSourceFile: /src/Python-3.8.3/Python/ast.c
    functionUses: 2
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyAST_GetDocString(asdl_seq *body)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: Py_GetPlatform
    functionSourceFile: /src/Python-3.8.3/Python/getplatform.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetPlatform(void)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:33,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:33,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:37,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/bltinmodule.c:41,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:47,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/bltinmodule.c:52,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/bltinmodule.c:58,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:59,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:63,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:64,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:66,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:72,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:77,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:78,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:81,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Python/bltinmodule.c:82,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:85,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Python/bltinmodule.c:90,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:91,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:95,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - bases
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts:
    - condition: (PyTuple_Check(bases))
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 97
      start: 27
    functionDepth: 6
    functionLinenumber: 27
    functionLinenumberEnd: 97
    functionName: update_bases
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - PyList_AsTuple
    - Py_DECREF
    - Py_INCREF
    - _PyObject_LookupAttrId
    - PyList_SET_ITEM
    - PyTuple_Check
    - PyList_Append
    - PyType_Check
    - _PyObject_FastCall
    - PyList_GET_SIZE
    - PyErr_SetString
    - PyList_New
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:109,1
    - Dst: PyFunction_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:114,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:115,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:120,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:121,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Python/bltinmodule.c:125,1
    - Dst: update_bases
      Src: /src/Python-3.8.3/Python/bltinmodule.c:129,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:131,1
    - Dst: _PyStack_AsDict
      Src: /src/Python-3.8.3/Python/bltinmodule.c:140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:142,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/bltinmodule.c:146,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:148,1
    - Dst: _PyDict_DelItemId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:149,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:150,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:152,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:156,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:159,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:160,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:166,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:171,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:174,1
    - Dst: _PyType_CalculateMetaclass
      Src: /src/Python-3.8.3/Python/bltinmodule.c:181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:184,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:185,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:186,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:190,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:192,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:197,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:201,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Python/bltinmodule.c:205,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:206,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:209,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:210,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:211,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:214,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:215,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:218,1
    - Dst: PyEval_EvalCodeEx
      Src: /src/Python-3.8.3/Python/bltinmodule.c:221,1
    - Dst: PyFunction_GET_CODE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:221,1
    - Dst: PyFunction_GET_GLOBALS
      Src: /src/Python-3.8.3/Python/bltinmodule.c:221,1
    - Dst: PyFunction_GET_CLOSURE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:223,1
    - Dst: PyMapping_SetItemString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:226,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Python/bltinmodule.c:231,1
    - Dst: PyType_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:232,1
    - Dst: PyCell_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:232,1
    - Dst: PyCell_GET
      Src: /src/Python-3.8.3/Python/bltinmodule.c:233,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:239,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:243,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:245,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:254,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:255,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:258,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 126
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 100
    functionDepth: 12
    functionLinenumber: 100
    functionLinenumberEnd: 261
    functionName: builtin___build_class__
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyTuple_GET_SIZE
    - PyFunction_Check
    - _PyObject_LookupAttrId
    - PyFunction_GET_GLOBALS
    - _PyStack_AsDict
    - _PyDict_GetItemIdWithError
    - PyCell_GET
    - _PyType_CalculateMetaclass
    - PyErr_Occurred
    - Py_INCREF
    - _PyObject_FastCallDict
    - PyErr_Format
    - Py_XDECREF
    - PyMapping_Check
    - Py_DECREF
    - PyFunction_GET_CODE
    - update_bases
    - Py_TYPE
    - PyCell_Check
    - PyEval_EvalCodeEx
    - PyFunction_GET_CLOSURE
    - PyDict_New
    - _PyDict_DelItemId
    - PyMapping_SetItemString
    - PyType_Check
    - PyErr_SetString
    - _PyTuple_FromArray
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin___build_class__(PyObject *self, PyObject *const
      *args, Py_ssize_t nargs,\n                        PyObject *kwnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:276,1
    - Dst: PyImport_ImportModuleLevelObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 268
    functionDepth: 10
    functionLinenumber: 268
    functionLinenumberEnd: 281
    functionName: builtin___import__
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyArg_ParseTupleAndKeywords
    - PyImport_ImportModuleLevelObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin___import__(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Absolute
      Src: /src/Python-3.8.3/Python/bltinmodule.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - x
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: builtin_abs
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Absolute
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_abs(PyObject *module, PyObject *x)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:336,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:339,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Python/bltinmodule.c:342,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:345,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:346,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:352,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:356,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:357,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/bltinmodule.c:358,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 364
    functionName: builtin_all
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_Occurred
    - Py_DECREF
    - iternext
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyObject_IsTrue
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_all(PyObject *module, PyObject *iterable)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:385,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:388,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Python/bltinmodule.c:391,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:394,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:397,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:401,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:405,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:406,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/bltinmodule.c:407,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:408,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module
    - iterable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 413
    functionName: builtin_any
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyErr_Occurred
    - Py_DECREF
    - iternext
    - Py_TYPE
    - PyErr_ExceptionMatches
    - PyObject_IsTrue
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_any(PyObject *module, PyObject *iterable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_ASCII
      Src: /src/Python-3.8.3/Python/bltinmodule.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 434
    functionName: builtin_ascii
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_ASCII
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_ascii(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Python/bltinmodule.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: builtin_bin
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_bin(PyObject *module, PyObject *number)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:473,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: builtin_callable
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyCallable_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_callable(PyObject *module, PyObject *obj)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:482,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:486,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:490,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/bltinmodule.c:491,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - keywords
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 494
    functionName: builtin_breakpoint
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - PySys_GetObject
    - PyErr_SetString
    - PySys_Audit
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_breakpoint(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *keywords)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:517,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/bltinmodule.c:520,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:524,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Python/bltinmodule.c:529,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:531,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 539
    functionName: filter_new
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - _PyArg_NoKeywords
    - PyArg_UnpackTuple
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/bltinmodule.c:544,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:545,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:546,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - filterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 548
    functionName: filter_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void filter_dealloc(filterobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:553,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - filterobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: filter_traverse
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int filter_traverse(filterobject *lz, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:567,1
    - Dst: iternext
      Src: /src/Python-3.8.3/Python/bltinmodule.c:569,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:574,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/bltinmodule.c:577,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:579,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:583,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - lz
    argTypes:
    - filterobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 591
    functionName: filter_next
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - iternext
    - PyObject_CallFunctionObjArgs
    - Py_TYPE
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_next(filterobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:596,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - filterobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 597
    functionName: filter_reduce
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      filter_reduce(filterobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - value
    - format_spec
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: builtin_format_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Format
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/bltinmodule.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - i
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 6
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: builtin_chr_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_chr_impl(PyObject *module, int i)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:750,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/Python-3.8.3/Python/bltinmodule.c:756,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/bltinmodule.c:759,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/bltinmodule.c:761,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/bltinmodule.c:763,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/bltinmodule.c:765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:767,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:779,1
    - Dst: PyAST_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:783,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:788,1
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:795,1
    - Dst: PyAST_obj2mod
      Src: /src/Python-3.8.3/Python/bltinmodule.c:798,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/bltinmodule.c:800,1
    - Dst: PyAST_Validate
      Src: /src/Python-3.8.3/Python/bltinmodule.c:803,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/bltinmodule.c:804,1
    - Dst: PyAST_CompileObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:807,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/bltinmodule.c:809,1
    - Dst: _Py_SourceAsString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:814,1
    - Dst: Py_CompileStringObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:818,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:819,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:825,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 84
    argCount: 8
    argNames:
    - module
    - source
    - filename
    - mode
    - flags
    - dont_inherit
    - optimize
    - feature_version
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 721
    functionDepth: 8
    functionLinenumber: 721
    functionLinenumberEnd: 827
    functionName: builtin_compile_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_CompileStringObject
    - PyArena_New
    - PyArena_Free
    - Py_DECREF
    - PyEval_MergeCompilerFlags
    - Py_INCREF
    - PyAST_Check
    - PyAST_CompileObject
    - PyErr_SetString
    - _Py_SourceAsString
    - PyAST_Validate
    - strcmp
    - Py_XDECREF
    - PyAST_obj2mod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_compile_impl(PyObject *module, PyObject *source,
      PyObject *filename,\n                     const char *mode, int flags, int dont_inherit,\n
      \                    int optimize, int feature_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/bltinmodule.c:835,1
    - Dst: PyObject_Dir
      Src: /src/Python-3.8.3/Python/bltinmodule.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 838
    functionName: builtin_dir
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Dir
    - PyArg_UnpackTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_dir(PyObject *self, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Divmod
      Src: /src/Python-3.8.3/Python/bltinmodule.c:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - x
    - y
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: builtin_divmod_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Divmod
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:897,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:898,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:901,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:902,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:902,1
    - Dst: PyEval_GetGlobals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:908,1
    - Dst: PyEval_GetLocals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:910,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:919,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/bltinmodule.c:925,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:926,1
    - Dst: PyEval_GetBuiltins
      Src: /src/Python-3.8.3/Python/bltinmodule.c:927,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:930,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:934,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:935,1
    - Dst: PyCode_GetNumFree
      Src: /src/Python-3.8.3/Python/bltinmodule.c:939,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:940,1
    - Dst: PyEval_EvalCode
      Src: /src/Python-3.8.3/Python/bltinmodule.c:944,1
    - Dst: _Py_SourceAsString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:949,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/Python-3.8.3/Python/bltinmodule.c:956,1
    - Dst: PyRun_StringFlags
      Src: /src/Python-3.8.3/Python/bltinmodule.c:957,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:958,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 4
    argNames:
    - module
    - source
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 889
    functionDepth: 6
    functionLinenumber: 889
    functionLinenumberEnd: 960
    functionName: builtin_eval_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_GetItemIdWithError
    - PyMapping_Check
    - PyErr_Occurred
    - PyEval_MergeCompilerFlags
    - PySys_Audit
    - PyRun_StringFlags
    - Py_XDECREF
    - PyDict_Check
    - _PyDict_SetItemId
    - PyEval_GetLocals
    - PyEval_GetBuiltins
    - PyEval_GetGlobals
    - PyErr_SetString
    - PyCode_GetNumFree
    - _Py_SourceAsString
    - PyCode_Check
    - PyEval_EvalCode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_eval_impl(PyObject *module, PyObject *source,
      PyObject *globals,\n                  PyObject *locals)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetGlobals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:987,1
    - Dst: PyEval_GetLocals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:989,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:994,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1002,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1003,1
    - Dst: PyMapping_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1007,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1008,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1013,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1014,1
    - Dst: PyEval_GetBuiltins
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1015,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1018,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1022,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1023,1
    - Dst: PyCode_GetNumFree
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1027,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1028,1
    - Dst: PyEval_EvalCode
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1033,1
    - Dst: _Py_SourceAsString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1040,1
    - Dst: PyEval_MergeCompilerFlags
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1045,1
    - Dst: PyRun_StringFlags
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1046,1
    - Dst: PyRun_String
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1049,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1050,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1054,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 4
    argNames:
    - module
    - source
    - globals
    - locals
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 979
    functionDepth: 6
    functionLinenumber: 979
    functionLinenumberEnd: 1056
    functionName: builtin_exec_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyDict_SetItemId
    - PyCode_GetNumFree
    - _PyDict_GetItemIdWithError
    - PyErr_Occurred
    - PyErr_Format
    - PyEval_GetBuiltins
    - _Py_SourceAsString
    - Py_XDECREF
    - PyMapping_Check
    - Py_DECREF
    - PyCode_Check
    - PyDict_Check
    - PyEval_GetLocals
    - PyEval_GetGlobals
    - PyRun_String
    - PyEval_MergeCompilerFlags
    - PyRun_StringFlags
    - PyErr_SetString
    - PySys_Audit
    - PyEval_EvalCode
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_exec_impl(PyObject *module, PyObject *source,
      PyObject *globals,\n                  PyObject *locals)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1065,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1070,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1071,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1076,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1078,1
    - Dst: PyObject_GetAttr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1086
    functionName: builtin_getattr
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _PyArg_CheckPositional
    - _PyObject_LookupAttr
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_GetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_getattr(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetGlobals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1111,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1114
    functionName: builtin_globals_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    - PyEval_GetGlobals
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_globals_impl(PyObject *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1135,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1136,1
    - Dst: _PyObject_LookupAttr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1140,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1148
    functionName: builtin_hasattr_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - Py_DECREF
    - _PyObject_LookupAttr
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1172,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1174,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - self
    - v
    argTypes:
    - PyModuleDef*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1168
    functionDepth: 4
    functionLinenumber: 1168
    functionLinenumberEnd: 1180
    functionName: builtin_id
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PySys_Audit
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_id(PyModuleDef *self, PyObject *v)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1198,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1201,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1203,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1208,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1214,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1216,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1219,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1223,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1225,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1229,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1230,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1234
    functionName: map_new
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 9
    functionsReached:
    - Py_DECREF
    - PyTypeObject*::tp_alloc
    - Py_INCREF
    - _PyArg_NoKeywords
    - PyTuple_Size
    - PyErr_SetString
    - PyObject_GetIter
    - PyTuple_New
    - PyTuple_SET_ITEM
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1239,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1240,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1241,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - mapobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1243
    functionName: map_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void map_dealloc(mapobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1248,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - mapobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1251
    functionName: map_traverse
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int map_traverse(mapobject *lz, visitproc visit, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1261,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1262,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1266,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1268,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1275,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1276,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1284,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1288,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1291,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - lz
    argTypes:
    - mapobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1294
    functionName: map_next
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyTuple_GET_SIZE
    - PyErr_NoMemory
    - Py_TYPE
    - _PyObject_FastCall
    - PyMem_Free
    - PyMem_Malloc
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_next(mapobject *lz)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1299,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1300,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1304,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1305,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1307,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1308,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1309,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1312,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - mapobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1313
    functionName: map_reduce
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyTuple_GET_SIZE
    - Py_INCREF
    - Py_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      map_reduce(mapobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1378,1
    - Dst: PyIter_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1382,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1383,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1394,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1395,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1397,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1399,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1401,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1407
    functionName: builtin_next
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyIter_Check
    - PyErr_Occurred
    - Py_INCREF
    - PyErr_SetNone
    - _PyArg_CheckPositional
    - PyErr_Format
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_next(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - module
    - obj
    - name
    - value
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1437
    functionName: builtin_setattr_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_setattr_impl(PyObject *module, PyObject *obj,
      PyObject *name,\n                     PyObject *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - module
    - obj
    - name
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1452
    functionDepth: 2
    functionLinenumber: 1452
    functionLinenumberEnd: 1459
    functionName: builtin_delattr_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_SetAttr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Hash
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1480,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1474
    functionDepth: 3
    functionLinenumber: 1474
    functionLinenumberEnd: 1484
    functionName: builtin_hash
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Hash
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hash(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1499
    functionDepth: 3
    functionLinenumber: 1499
    functionLinenumberEnd: 1504
    functionName: builtin_hex
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hex(PyObject *module, PyObject *number)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1513,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1517,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1518,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1519,1
    - Dst: PyCallIter_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1508
    functionDepth: 3
    functionLinenumber: 1508
    functionLinenumberEnd: 1525
    functionName: builtin_iter
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyCallable_Check
    - PyCallIter_New
    - _PyArg_CheckPositional
    - PyErr_SetString
    - PyObject_GetIter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_iter(PyObject *self, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1551,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1553,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1553,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyErr_Occurred())
      pos:
        line_end: 1552
        line_start: 1552
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1557
      start: 1545
    functionDepth: 2
    functionLinenumber: 1545
    functionLinenumberEnd: 1557
    functionName: builtin_len
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyObject_Size
    - assert
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_len(PyObject *module, PyObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyEval_GetLocals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1576,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1570
    functionDepth: 6
    functionLinenumber: 1570
    functionLinenumberEnd: 1579
    functionName: builtin_locals_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyEval_GetLocals
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_locals_impl(PyObject *module)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1589,1
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1594,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1597,1
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1600,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1603,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1608,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1614,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1625,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1628,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1635,1
    - Dst: PyObject_RichCompareBool
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1645,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1649,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1656,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1660,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1665,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1673,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1674,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1678,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1680,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1682,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1683,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1684,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 80
    argCount: 3
    argNames:
    - args
    - kwds
    - op
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts:
    - condition: (maxitem == NULL)
      pos:
        line_end: 1662
        line_start: 1662
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 1686
      start: 1582
    functionDepth: 4
    functionLinenumber: 1582
    functionLinenumberEnd: 1686
    functionName: min_max
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - Py_XDECREF
    - PyIter_Next
    - PyErr_Format
    - PyObject_CallFunctionObjArgs
    - PyTuple_Size
    - PyArg_UnpackTuple
    - PyArg_ParseTupleAndKeywords
    - PyObject_RichCompareBool
    - PyObject_GetIter
    - PyTuple_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      min_max(PyObject *args, PyObject *kwds, int op)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1689
    functionDepth: 5
    functionLinenumber: 1689
    functionLinenumberEnd: 1693
    functionName: builtin_min
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - min_max
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_min(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_max
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1706
    functionDepth: 5
    functionLinenumber: 1706
    functionLinenumberEnd: 1710
    functionName: builtin_max
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - min_max
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_max(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_ToBase
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - number
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1734
    functionDepth: 3
    functionLinenumber: 1734
    functionLinenumberEnd: 1739
    functionName: builtin_oct
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_ToBase
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_oct(PyObject *module, PyObject *number)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1758,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1759,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1761,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1762,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1765,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1766,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1768,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1770,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1771,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1774,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1776,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1778,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1779,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1783,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - module
    - c
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1751
    functionDepth: 1
    functionLinenumber: 1751
    functionLinenumberEnd: 1794
    functionName: builtin_ord
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_READY
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyErr_Format
    - PyBytes_AS_STRING
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_ord(PyObject *module, PyObject *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Power
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - module
    - base
    - exp
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1810
    functionDepth: 3
    functionLinenumber: 1810
    functionLinenumberEnd: 1816
    functionName: builtin_pow_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyNumber_Power
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_pow_impl(PyObject *module, PyObject *base, PyObject
      *exp,\n                 PyObject *mod)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1829,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1835,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1837,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1849,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1850,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1858,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1859,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1868,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1870,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1875,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1881,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1883,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1889,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1897,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1820
    functionDepth: 7
    functionLinenumber: 1820
    functionLinenumberEnd: 1902
    functionName: builtin_print
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyFile_WriteString
    - _PySys_GetObjectId
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyFile_WriteObject
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1934,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1935,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1936,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1943,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1948,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1953,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1958,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1963,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1965,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1967,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1972,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1974,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1978,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1979,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1980,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1982,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1982,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1985,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1987,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1992,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1993,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1995,1
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/bltinmodule.c:1995,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2011,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2012,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2014,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2015,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2019,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2020,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2023,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2025,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2027,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2032,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2033,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2035,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2036,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2040,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2041,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2044,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2047,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2049,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2050,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2051,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2054,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2054,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2055,1
    - Dst: PyOS_Readline
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2061,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2063,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2064,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2065,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2069,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2071,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2076,1
    - Dst: PyUnicode_Decode
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2084,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2088,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2089,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2090,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2091,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2094,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2102,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2103,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2104,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2105,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2106,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2110,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2115,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2118,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2120,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2122,1
    - Dst: PyFile_GetLine
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2123,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 144
    argCount: 2
    argNames:
    - module
    - prompt
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyBytes_Check(po))
      pos:
        line_end: 2053
        line_start: 2053
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2124
      start: 1930
    functionDepth: 6
    functionLinenumber: 1930
    functionLinenumberEnd: 2124
    functionName: builtin_input_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - Py_CLEAR
    - _PySys_GetObjectId
    - PyFile_GetLine
    - _PyObject_GetAttrId
    - PyUnicode_AsUTF8
    - isatty
    - PyFile_WriteObject
    - PyErr_Occurred
    - PyErr_CheckSignals
    - PyObject_Str
    - strlen
    - assert
    - PyErr_Clear
    - fileno
    - Py_XDECREF
    - PyMem_FREE
    - Py_DECREF
    - PyErr_SetNone
    - PyOS_Readline
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - PyUnicode_Decode
    - _PyObject_CallMethodId
    - PyBytes_Check
    - PyErr_SetString
    - PyUnicode_Check
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_input_impl(PyObject *module, PyObject *prompt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - obj
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2143
    functionName: builtin_repr
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyObject_Repr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_repr(PyObject *module, PyObject *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2164,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2165,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2165,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2169,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2171,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2172,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2174,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2179,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - module
    - number
    - ndigits
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2158
    functionDepth: 11
    functionLinenumber: 2158
    functionLinenumberEnd: 2184
    functionName: builtin_round_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyObject_CallFunctionObjArgs
    - PyErr_Format
    - Py_TYPE
    - PyType_Ready
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_round_impl(PyObject *module, PyObject *number, PyObject *ndigits)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackStack
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2223,1
    - Dst: PySequence_List
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2226,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2232,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2236,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2237,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2238,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2240,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (nargs >= 1)
      pos:
        line_end: 2235
        line_start: 2235
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2245
      start: 2216
    functionDepth: 2
    functionLinenumber: 2216
    functionLinenumberEnd: 2245
    functionName: builtin_sorted
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PySequence_List
    - Py_DECREF
    - _PyObject_GetAttrId
    - assert
    - _PyArg_UnpackStack
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_sorted(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_UnpackTuple
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2255,1
    - Dst: PyEval_GetLocals
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2258,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2259,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2262,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2249
    functionDepth: 6
    functionLinenumber: 2249
    functionLinenumberEnd: 2268
    functionName: builtin_vars
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupAttrId
    - PyEval_GetLocals
    - PyErr_SetString
    - PyArg_UnpackTuple
    - Py_XINCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_vars(PyObject *self, PyObject *args)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2298,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2303,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2305,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2310,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2313,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2316,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2317,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2319,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2322,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2325,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2328,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2336,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2341,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2345,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2347,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2348,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2350,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2352,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2353,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2359,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2364,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2367,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2370,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2372,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2375,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2381,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2382,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2383,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2388,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2389,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2391,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2393,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2394,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2394,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2394,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2395,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2396,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2397,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2400,1
    - Dst: PyLong_AsLongAndOverflow
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2403,1
    - Dst: PyFPE_START_PROTECT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2405,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2405,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2405,1
    - Dst: PyFPE_END_PROTECT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2407,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2408,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2412,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2415,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2418,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2419,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2420,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2423,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2431,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2435,1
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2449,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2451,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2456,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 128
    argCount: 3
    argNames:
    - module
    - iterable
    - start
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2291
    functionDepth: 4
    functionLinenumber: 2291
    functionLinenumberEnd: 2458
    functionName: builtin_sum_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyFPE_END_PROTECT
    - PyErr_Occurred
    - Py_DECREF
    - Py_INCREF
    - PyFPE_START_PROTECT
    - PyFloat_AS_DOUBLE
    - PyByteArray_Check
    - PyBytes_Check
    - PyLong_CheckExact
    - PyLong_AsLongAndOverflow
    - PyIter_Next
    - PyFloat_FromDouble
    - PyErr_SetString
    - PyNumber_Add
    - PyUnicode_Check
    - PyObject_GetIter
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2482,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - obj
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2475
    functionDepth: 7
    functionLinenumber: 2475
    functionLinenumberEnd: 2486
    functionName: builtin_isinstance_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyObject_IsInstance
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_isinstance_impl(PyObject *module, PyObject *obj,\n
      \                       PyObject *class_or_tuple)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2510,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - module
    - cls
    - class_or_tuple
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2503
    functionDepth: 7
    functionLinenumber: 2503
    functionLinenumberEnd: 2514
    functionName: builtin_issubclass_impl
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyObject_IsSubclass
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nbuiltin_issubclass_impl(PyObject *module, PyObject *cls,\n
      \                       PyObject *class_or_tuple)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_NoKeywords
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2533,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2537,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2537,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2538,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2541,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2545,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2546,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2548,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2551,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2557,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2561,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2562,1
    - Dst: PyTypeObject*::tp_alloc
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2566,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2568,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - type
    - args
    - kwds
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyTuple_Check(args))
      pos:
        line_end: 2536
        line_start: 2536
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    constantsTouched: []
    func_position:
      end: 2577
      start: 2524
    functionDepth: 3
    functionLinenumber: 2524
    functionLinenumberEnd: 2577
    functionName: zip_new
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - PyTypeObject*::tp_alloc
    - _PyArg_NoKeywords
    - PyTuple_Check
    - PyObject_GetIter
    - assert
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_new(PyTypeObject *type, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2582,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2583,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2584,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lz
    argTypes:
    - zipobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2579
    functionDepth: 2
    functionLinenumber: 2579
    functionLinenumberEnd: 2586
    functionName: zip_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyObject_GC_UnTrack
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void zip_dealloc(zipobject *lz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2591,1
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - lz
    - visit
    - arg
    argTypes:
    - zipobject*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2588
    functionDepth: 1
    functionLinenumber: 2588
    functionLinenumberEnd: 2594
    functionName: zip_traverse
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int zip_traverse(zipobject *lz, visitproc visit, void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2608,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2609,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2611,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2614,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2617,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2618,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2619,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2622,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2626,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2627,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2629,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2632,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - lz
    argTypes:
    - zipobject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2596
    functionDepth: 2
    functionLinenumber: 2596
    functionLinenumberEnd: 2636
    functionName: zip_next
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - Py_TYPE
    - PyTuple_GET_ITEM
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_next(zipobject *lz)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2642,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lz
    - Py_UNUSED(ignored)
    argTypes:
    - zipobject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2638
    functionDepth: 2
    functionLinenumber: 2638
    functionLinenumberEnd: 2643
    functionName: zip_reduce
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_TYPE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      zip_reduce(zipobject *lz, PyObject *Py_UNUSED(ignored))'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2773,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2775,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2776,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2777,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2780,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2783,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2802,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2803,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2804,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2805,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2806,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2807,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2808,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2809,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2810,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2811,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2812,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2813,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2814,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2815,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2816,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2817,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2818,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2819,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2820,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2821,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2822,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2823,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2824,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2825,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2826,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2827,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2828,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2829,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2830,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2831,1
    - Dst: SETBUILTIN
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2832,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2833,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2834,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2835,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/bltinmodule.c:2838,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2768
    functionDepth: 13
    functionLinenumber: 2768
    functionLinenumberEnd: 2843
    functionName: _PyBuiltin_Init
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyModule_GetDict
    - _PyInterpreterState_GET_UNSAFE
    - SETBUILTIN
    - PyDict_SetItemString
    - PyBool_FromLong
    - _PyModule_CreateInitialized
    - PyType_Ready
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyBuiltin_Init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBJECT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2792
    functionDepth: 0
    functionLinenumber: 2792
    functionLinenumberEnd: 2793
    functionName: ADD_TO_ALL
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TO_ALL(OBJECT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OBJECT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2794
    functionDepth: 0
    functionLinenumber: 2794
    functionLinenumberEnd: 2795
    functionName: ADD_TO_ALL
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TO_ALL(OBJECT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - OBJECT
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2797
    functionDepth: 0
    functionLinenumber: 2797
    functionLinenumberEnd: 2801
    functionName: SETBUILTIN
    functionSourceFile: /src/Python-3.8.3/Python/bltinmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBUILTIN(NAME, OBJECT)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:18,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - presentation_type
    - type_name
    argTypes:
    - Py_UCS4
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 29
    functionName: unknown_presentation_type
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void unknown_presentation_type(Py_UCS4 presentation_type,\n                          const
      char* type_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:34,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:36,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - specifier
    - presentation_type
    argTypes:
    - char
    - Py_UCS4
    assertStmts:
    - condition: (specifier == ',' || specifier == '_')
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 43
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 43
    functionName: invalid_thousands_separator_type
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void invalid_thousands_separator_type(char specifier, Py_UCS4 presentation_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: invalid_comma_and_underscore
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void invalid_comma_and_underscore(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:64,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:65,1
    - Dst: Py_UNICODE_TODECIMAL
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:69,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:69,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - str
    - ppos
    - end
    - result
    argTypes:
    - PyObject*
    - Py_ssize_t*
    - Py_ssize_t
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 89
    functionName: get_integer
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 2
    functionsReached:
    - Py_UNICODE_TODECIMAL
    - PyUnicode_READ
    - PyErr_Format
    - PyUnicode_DATA
    - PyUnicode_KIND
    linkageType: ''
    returnType: int
    signature: "int get_integer(PyObject *str, Py_ssize_t *ppos, Py_ssize_t end,\n
      \                 Py_ssize_t *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - c
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: is_alignment_token
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void is_alignment_token(Py_UCS4 c)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - Py_UCS4
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: is_sign_element
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void is_sign_element(Py_UCS4 c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:144,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:145,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:146,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:147,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:148,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:149,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:151,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:152,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - format
    argTypes:
    - InternalFormatSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: DEBUG_PRINT_FORMAT_SPEC
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void DEBUG_PRINT_FORMAT_SPEC(InternalFormatSpec *format)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:172,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:173,1
    - Dst: is_alignment_token
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:193,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:193,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:194,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:195,1
    - Dst: is_alignment_token
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:200,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:200,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:201,1
    - Dst: is_sign_element
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:207,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:207,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:208,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:214,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:220,1
    - Dst: get_integer
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:228,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:241,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:246,1
    - Dst: invalid_comma_and_underscore
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:248,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:254,1
    - Dst: invalid_comma_and_underscore
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:255,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:260,1
    - Dst: get_integer
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:263,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:270,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:281,1
    - Dst: READ_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:286,1
    - Dst: invalid_thousands_separator_type
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:319,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:324,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:325,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 103
    argCount: 6
    argNames:
    - format_spec
    - start
    - end
    - format
    - default_type
    - default_align
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - InternalFormatSpec*
    - char
    - char
    assertStmts:
    - condition: (format->sign <= 127)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    - condition: (format->align <= 127)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 327
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 327
    functionName: parse_internal_render_format_spec
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - invalid_comma_and_underscore
    - invalid_thousands_separator_type
    - assert
    - is_alignment_token
    - PyErr_Format
    - PyUnicode_DATA
    - PyUnicode_KIND
    - READ_spec
    - is_sign_element
    - get_integer
    linkageType: ''
    returnType: int
    signature: "int parse_internal_render_format_spec(PyObject *format_spec,\n                                  Py_ssize_t
      start, Py_ssize_t end,\n                                  InternalFormatSpec
      *format,\n                                  char default_type,\n                                  char
      default_align)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: READ_spec
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_spec(index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 6
    argNames:
    - nchars
    - width
    - align
    - n_lpadding
    - n_rpadding
    - n_total
    argTypes:
    - Py_ssize_t
    - Py_ssize_t
    - Py_UCS4
    - Py_ssize_t*
    - Py_ssize_t*
    - Py_ssize_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 360
    functionName: calc_padding
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: "void calc_padding(Py_ssize_t nchars, Py_ssize_t width, Py_UCS4 align,\n
      \            Py_ssize_t *n_lpadding, Py_ssize_t *n_rpadding,\n             Py_ssize_t
      *n_total)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:375,1
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - writer
    - nchars
    - fill_char
    - n_lpadding
    - n_rpadding
    argTypes:
    - _PyUnicodeWriter*
    - Py_ssize_t
    - Py_UCS4
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 387
    functionName: fill_padding
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastFill
    linkageType: ''
    returnType: int
    signature: "int fill_padding(_PyUnicodeWriter *writer,\n             Py_ssize_t
      nchars,\n             Py_UCS4 fill_char, Py_ssize_t n_lpadding,\n             Py_ssize_t
      n_rpadding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:445,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:446,1
    - Dst: Py_ISDIGIT
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:448,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:448,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - s
    - pos
    - end
    - n_remainder
    - has_decimal
    argTypes:
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 460
    functionName: parse_number
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DATA
    - PyUnicode_KIND
    - Py_ISDIGIT
    - PyUnicode_READ
    linkageType: ''
    returnType: void
    signature: "void parse_number(PyObject *s, Py_ssize_t pos, Py_ssize_t end,\n             Py_ssize_t
      *n_remainder, int *has_decimal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:480,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:543,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:551,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:578,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:583,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:586,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:586,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 11
    argNames:
    - spec
    - n_prefix
    - sign_char
    - number
    - n_start
    - n_end
    - n_remainder
    - has_decimal
    - locale
    - format
    - maxchar
    argTypes:
    - NumberFieldWidths*
    - Py_ssize_t
    - Py_UCS4
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    - int
    - LocaleInfo*
    - InternalFormatSpec*
    - Py_UCS4*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 591
    functionName: calc_number_widths
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - _PyUnicode_InsertThousandsGrouping
    - Py_UNREACHABLE
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: Py_ssize_t
    signature: "Py_ssize_t calc_number_widths(NumberFieldWidths *spec, Py_ssize_t
      n_prefix,\n                   Py_UCS4 sign_char, PyObject *number, Py_ssize_t
      n_start,\n                   Py_ssize_t n_end, Py_ssize_t n_remainder,\n                   int
      has_decimal, const LocaleInfo *locale,\n                   const InternalFormatSpec
      *format, Py_UCS4 *maxchar)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:610,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:615,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:619,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:625,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:626,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:627,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:628,1
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:634,1
    - Dst: _PyUnicode_InsertThousandsGrouping
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:642,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:649,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:655,1
    - Dst: Py_TOUPPER
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:656,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:658,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:661,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:667,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:675,1
    - Dst: _PyUnicode_FastFill
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 10
    argNames:
    - writer
    - spec
    - digits
    - d_start
    - d_end
    - prefix
    - p_start
    - fill_char
    - locale
    - toupper
    argTypes:
    - _PyUnicodeWriter*
    - NumberFieldWidths*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    - PyObject*
    - Py_ssize_t
    - Py_UCS4
    - LocaleInfo*
    - int
    assertStmts:
    - condition: (c <= 127)
      pos:
        line_end: 626
        line_start: 626
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    - condition: (r == spec->n_grouped_digits)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 689
      start: 596
    functionDepth: 4
    functionLinenumber: 596
    functionLinenumberEnd: 689
    functionName: fill_number
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FastCopyCharacters
    - assert
    - PyUnicode_READ
    - PyUnicode_WRITE
    - _PyUnicode_InsertThousandsGrouping
    - _PyUnicode_FastFill
    - PyErr_SetString
    - Py_TOUPPER
    linkageType: ''
    returnType: int
    signature: "int fill_number(_PyUnicodeWriter *writer, const NumberFieldWidths
      *spec,\n            PyObject *digits, Py_ssize_t d_start, Py_ssize_t d_end,\n
      \           PyObject *prefix, Py_ssize_t p_start,\n            Py_UCS4 fill_char,\n
      \           LocaleInfo *locale, int toupper)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:702,1
    - Dst: _Py_GetLocaleconvNumeric
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:703,1
    - Dst: _PyMem_Strdup
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:712,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:714,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:723,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:724,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:736,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:737,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - type
    - locale_info
    argTypes:
    - enum LocaleType
    - LocaleInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 697
    functionDepth: 8
    functionLinenumber: 697
    functionLinenumberEnd: 744
    functionName: get_locale_info
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyMem_Strdup
    - PyErr_NoMemory
    - _Py_GetLocaleconvNumeric
    - localeconv
    - PyUnicode_FromOrdinal
    - PyUnicode_New
    linkageType: ''
    returnType: int
    signature: int get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:749,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:750,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - locale_info
    argTypes:
    - LocaleInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: free_locale_info
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyMem_Free
    linkageType: ''
    returnType: void
    signature: void free_locale_info(LocaleInfo *locale_info)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:769,1
    - Dst: PyUnicode_IS_READY
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:769,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:770,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:774,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:781,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:789,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:798,1
    - Dst: calc_padding
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:807,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:811,1
    - Dst: PyUnicode_MAX_CHAR_VALUE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:812,1
    - Dst: _PyUnicode_FindMaxChar
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:813,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:814,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:818,1
    - Dst: fill_padding
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:822,1
    - Dst: _PyUnicode_FastCopyCharacters
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:828,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts:
    - condition: (PyUnicode_IS_READY(value))
      pos:
        line_end: 768
        line_start: 768
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 836
      start: 758
    functionDepth: 5
    functionLinenumber: 758
    functionLinenumberEnd: 836
    functionName: format_string_internal
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyUnicode_IS_READY
    - _PyUnicode_FastCopyCharacters
    - _PyUnicodeWriter_WriteStr
    - calc_padding
    - PyUnicode_MAX_CHAR_VALUE
    - Py_MAX
    - fill_padding
    - _PyUnicodeWriter_Prepare
    - PyErr_SetString
    - _PyUnicode_FindMaxChar
    - assert
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int format_string_internal(PyObject *value, const InternalFormatSpec
      *format,\n                       _PyUnicodeWriter *writer)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:868,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:877,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:884,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:892,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:893,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:896,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:900,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:903,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:945,1
    - Dst: _PyLong_FormatWriter
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:948,1
    - Dst: _PyLong_Format
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:957,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:958,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:962,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:968,1
    - Dst: get_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:980,1
    - Dst: calc_number_widths
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:986,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:994,1
    - Dst: fill_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:998,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1004,1
    - Dst: free_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1005,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 89
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 843
    functionDepth: 9
    functionLinenumber: 843
    functionLinenumberEnd: 1007
    functionName: format_long_internal
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyLong_Format
    - PyLong_AsLong
    - PyErr_Occurred
    - PyUnicode_READY
    - free_locale_info
    - Py_XDECREF
    - Py_MAX
    - _PyLong_FormatWriter
    - PyLong_CheckExact
    - _PyUnicodeWriter_Prepare
    - PyUnicode_FromOrdinal
    - PyErr_SetString
    - fill_number
    - PyUnicode_READ_CHAR
    - calc_number_widths
    - get_locale_info
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: int
    signature: "int format_long_internal(PyObject *value, const InternalFormatSpec
      *format,\n                     _PyUnicodeWriter *writer)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1042,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1064,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1065,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1082,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1086,1
    - Dst: _PyUnicodeWriter_WriteASCIIString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1102,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1103,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1109,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1110,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1117,1
    - Dst: parse_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1125,1
    - Dst: get_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1128,1
    - Dst: calc_number_widths
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1134,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1142,1
    - Dst: fill_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1146,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1152,1
    - Dst: free_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1153,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 72
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1014
    functionDepth: 9
    functionLinenumber: 1014
    functionLinenumberEnd: 1155
    functionName: format_float_internal
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - _PyUnicode_FromASCII
    - PyErr_Occurred
    - parse_number
    - free_locale_info
    - _PyUnicodeWriter_WriteASCIIString
    - PyOS_double_to_string
    - strlen
    - _PyUnicodeWriter_Prepare
    - PyMem_Free
    - PyErr_SetString
    - fill_number
    - PyUnicode_READ_CHAR
    - calc_number_widths
    - get_locale_info
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int format_float_internal(PyObject *value,\n                      const
      InternalFormatSpec *format,\n                      _PyUnicodeWriter *writer)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1208,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1215,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1223,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1229,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1230,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1232,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1233,1
    - Dst: copysign
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1243,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1262,1
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1266,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1271,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1272,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1276,1
    - Dst: _PyUnicode_FromASCII
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1281,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1288,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1293,1
    - Dst: parse_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1301,1
    - Dst: parse_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1303,1
    - Dst: get_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1307,1
    - Dst: calc_number_widths
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1319,1
    - Dst: calc_number_widths
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1332,1
    - Dst: calc_padding
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1344,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1348,1
    - Dst: _PyUnicodeWriter_Prepare
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1350,1
    - Dst: fill_padding
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1356,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1363,1
    - Dst: fill_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1368,1
    - Dst: fill_number
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1376,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1383,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1387,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1394,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1395,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1396,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1397,1
    - Dst: free_locale_info
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1398,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 133
    argCount: 3
    argNames:
    - value
    - format
    - writer
    argTypes:
    - PyObject*
    - InternalFormatSpec*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1161
    functionDepth: 9
    functionLinenumber: 1161
    functionLinenumberEnd: 1400
    functionName: format_complex_internal
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_FromASCII
    - fill_padding
    - _PyUnicodeWriter_Prepare
    - PyErr_Occurred
    - free_locale_info
    - Py_MAX
    - PyOS_double_to_string
    - strlen
    - PyUnicode_READ_CHAR
    - Py_XDECREF
    - parse_number
    - PyComplex_RealAsDouble
    - copysign
    - PyMem_Free
    - fill_number
    - calc_padding
    - PyUnicode_WRITE
    - PyComplex_ImagAsDouble
    - PyErr_SetString
    - calc_number_widths
    - get_locale_info
    linkageType: ''
    returnType: int
    signature: "int format_complex_internal(PyObject *value,\n                        const
      InternalFormatSpec *format,\n                        _PyUnicodeWriter *writer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1411,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - writer
    argTypes:
    - PyObject*
    - _PyUnicodeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1405
    functionDepth: 5
    functionLinenumber: 1405
    functionLinenumberEnd: 1417
    functionName: format_obj
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - PyObject_Str
    - _PyUnicodeWriter_WriteStr
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int format_obj(PyObject *obj, _PyUnicodeWriter *writer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1427,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1427,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1432,1
    - Dst: _PyUnicodeWriter_WriteStr
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1433,1
    - Dst: format_obj
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1435,1
    - Dst: parse_internal_render_format_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1439,1
    - Dst: format_string_internal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1447,1
    - Dst: unknown_presentation_type
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - writer
    - obj
    - format_spec
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (PyUnicode_Check(obj))
      pos:
        line_end: 1426
        line_start: 1426
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    constantsTouched: []
    func_position:
      end: 1453
      start: 1419
    functionDepth: 6
    functionLinenumber: 1419
    functionLinenumberEnd: 1453
    functionName: _PyUnicode_FormatAdvancedWriter
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - _PyUnicodeWriter_WriteStr
    - parse_internal_render_format_spec
    - format_obj
    - unknown_presentation_type
    - format_string_internal
    - PyUnicode_Check
    - assert
    - PyUnicode_CheckExact
    linkageType: ''
    returnType: int
    signature: "int _PyUnicode_FormatAdvancedWriter(_PyUnicodeWriter *writer,\n                                PyObject
      *obj,\n                                PyObject *format_spec,\n                                Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1468,1
    - Dst: _PyLong_FormatWriter
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1469,1
    - Dst: format_obj
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1471,1
    - Dst: parse_internal_render_format_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1475,1
    - Dst: format_long_internal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1489,1
    - Dst: PyNumber_Float
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1500,1
    - Dst: format_float_internal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1503,1
    - Dst: unknown_presentation_type
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1508,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1513,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1514,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 5
    argNames:
    - writer
    - obj
    - format_spec
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1455
    functionDepth: 10
    functionLinenumber: 1455
    functionLinenumberEnd: 1516
    functionName: _PyLong_FormatAdvancedWriter
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - parse_internal_render_format_spec
    - format_float_internal
    - format_obj
    - format_long_internal
    - _PyLong_FormatWriter
    - PyLong_CheckExact
    - unknown_presentation_type
    - PyNumber_Float
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int _PyLong_FormatAdvancedWriter(_PyUnicodeWriter *writer,\n                             PyObject
      *obj,\n                             PyObject *format_spec,\n                             Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: format_obj
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1529,1
    - Dst: parse_internal_render_format_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1532,1
    - Dst: format_float_internal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1548,1
    - Dst: unknown_presentation_type
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 5
    argNames:
    - writer
    - obj
    - format_spec
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1518
    functionDepth: 10
    functionLinenumber: 1518
    functionLinenumberEnd: 1555
    functionName: _PyFloat_FormatAdvancedWriter
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - unknown_presentation_type
    - format_obj
    - parse_internal_render_format_spec
    - format_float_internal
    linkageType: ''
    returnType: int
    signature: "int _PyFloat_FormatAdvancedWriter(_PyUnicodeWriter *writer,\n                              PyObject
      *obj,\n                              PyObject *format_spec,\n                              Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: format_obj
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1568,1
    - Dst: parse_internal_render_format_spec
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1571,1
    - Dst: format_complex_internal
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1586,1
    - Dst: unknown_presentation_type
      Src: /src/Python-3.8.3/Python/formatter_unicode.c:1590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - writer
    - obj
    - format_spec
    - start
    - end
    argTypes:
    - _PyUnicodeWriter*
    - PyObject*
    - PyObject*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1557
    functionDepth: 10
    functionLinenumber: 1557
    functionLinenumberEnd: 1593
    functionName: _PyComplex_FormatAdvancedWriter
    functionSourceFile: /src/Python-3.8.3/Python/formatter_unicode.c
    functionUses: 1
    functionsReached:
    - unknown_presentation_type
    - format_obj
    - parse_internal_render_format_spec
    - format_complex_internal
    linkageType: ''
    returnType: int
    signature: "int _PyComplex_FormatAdvancedWriter(_PyUnicodeWriter *writer,\n                                PyObject
      *obj,\n                                PyObject *format_spec,\n                                Py_ssize_t
      start, Py_ssize_t end)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:26,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - wchar_t**
    - wchar_t*
    assertStmts:
    - condition: (*dst == NULL)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    constantsTouched: []
    func_position:
      end: 37
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 37
    functionName: copy_wstr
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyMem_RawWcsdup
    linkageType: ''
    returnType: int
    signature: int copy_wstr(wchar_t **dst, const wchar_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:47,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:55,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:56,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:57,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:58,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:59,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:60,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/pathconfig.c:62,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 68
    functionName: pathconfig_clear
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - CLEAR
    linkageType: ''
    returnType: void
    signature: void pathconfig_clear(_PyPathConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: CLEAR
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 360
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:74,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:83,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:84,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:85,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:86,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:87,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:88,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:92,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - _PyPathConfig*
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 98
    functionName: pathconfig_copy
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - pathconfig_clear
    - _PyStatus_OK
    - COPY_ATTR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pathconfig_copy(_PyPathConfig *config, const _PyPathConfig
      *config2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:105,1
    - Dst: pathconfig_clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:107,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:109,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: _PyPathConfig_ClearGlobal
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - pathconfig_clear
    - _PyMem_SetDefaultAllocator
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _PyPathConfig_ClearGlobal(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/pathconfig.c:125,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/pathconfig.c:128,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/pathconfig.c:138,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pathconfig.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - list
    - sep
    argTypes:
    - PyWideStringList*
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 145
    functionName: _PyWideStringList_Join
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PyMem_RawMalloc
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _PyWideStringList_Join(const PyWideStringList *list, wchar_t sep)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:155,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:159,1
    - Dst: _Py_GetDLLPath
      Src: /src/Python-3.8.3/Python/pathconfig.c:161,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:163,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:166,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: _PyPathConfig_InitDLLPath
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyStatus_NO_MEMORY
    - _Py_GetDLLPath
    - _PyMem_SetDefaultAllocator
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPathConfig_InitDLLPath(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:178,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:181,1
    - Dst: _PyWideStringList_Join
      Src: /src/Python-3.8.3/Python/pathconfig.c:182,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:197,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:198,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:199,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:200,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:201,1
    - Dst: COPY_CONFIG
      Src: /src/Python-3.8.3/Python/pathconfig.c:203,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:208,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:212,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - pathconfig
    - config
    argTypes:
    - _PyPathConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 217
    functionName: pathconfig_set_from_config
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyStatus_NO_MEMORY
    - COPY_CONFIG
    - PyMem_RawFree
    - _PyMem_SetDefaultAllocator
    - _PyWideStringList_Join
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pathconfig_set_from_config(_PyPathConfig *pathconfig, const
      PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PATH_ATTR
    - ','
    - CONFIG_ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: COPY_CONFIG
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_CONFIG(PATH_ATTR, CONFIG_ATTR)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPathConfig_InitDLLPath
      Src: /src/Python-3.8.3/Python/pathconfig.c:224,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:225,1
    - Dst: pathconfig_set_from_config
      Src: /src/Python-3.8.3/Python/pathconfig.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: _PyConfig_WritePathConfig
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _PyPathConfig_InitDLLPath
    - pathconfig_set_from_config
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_WritePathConfig(const PyConfig *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:237,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:239,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/pathconfig.c:245,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/pathconfig.c:247,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/pathconfig.c:251,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:253,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pathconfig.c:255,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/pathconfig.c:258,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:259,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:260,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - config
    - pathconfig
    argTypes:
    - PyConfig*
    - _PyPathConfig*
    assertStmts:
    - condition: (!config->module_search_paths_set)
      pos:
        line_end: 236
        line_start: 236
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    constantsTouched: []
    func_position:
      end: 271
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 271
    functionName: config_init_module_search_paths
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyWideStringList_Append
    - _PyStatus_NO_MEMORY
    - memcpy
    - wcschr
    - PyMem_RawMalloc
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - assert
    - _PyStatus_OK
    - _PyWideStringList_Clear
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_module_search_paths(PyConfig *config, _PyPathConfig
      *pathconfig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:304,1
    - Dst: pathconfig_copy
      Src: /src/Python-3.8.3/Python/pathconfig.c:306,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:307,1
    - Dst: pathconfig_set_from_config
      Src: /src/Python-3.8.3/Python/pathconfig.c:311,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:312,1
    - Dst: _PyPathConfig_Calculate
      Src: /src/Python-3.8.3/Python/pathconfig.c:317,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pathconfig
    - config
    argTypes:
    - _PyPathConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 298
    functionDepth: 5
    functionLinenumber: 298
    functionLinenumberEnd: 326
    functionName: pathconfig_calculate
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - pathconfig_set_from_config
    - _PyPathConfig_Calculate
    - pathconfig_copy
    - _PyStatus_EXCEPTION
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pathconfig_calculate(_PyPathConfig *pathconfig, const PyConfig
      *config)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_calculate
      Src: /src/Python-3.8.3/Python/pathconfig.c:335,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:336,1
    - Dst: config_init_module_search_paths
      Src: /src/Python-3.8.3/Python/pathconfig.c:341,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:342,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:361,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:365,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:366,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/pathconfig.c:367,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:381,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:385,1
    - Dst: pathconfig_clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:388,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 390
    functionName: config_calculate_pathconfig
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - config_init_module_search_paths
    - COPY_ATTR
    - _PyStatus_EXCEPTION
    - pathconfig_calculate
    - pathconfig_clear
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_calculate_pathconfig(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PATH_ATTR
    - ','
    - CONFIG_ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(PATH_ATTR, CONFIG_ATTR)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: config_calculate_pathconfig
      Src: /src/Python-3.8.3/Python/pathconfig.c:402,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:403,1
    - Dst: copy_wstr
      Src: /src/Python-3.8.3/Python/pathconfig.c:409,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:410,1
    - Dst: copy_wstr
      Src: /src/Python-3.8.3/Python/pathconfig.c:415,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:417,1
    - Dst: copy_wstr
      Src: /src/Python-3.8.3/Python/pathconfig.c:422,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pathconfig.c:424,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pathconfig.c:428,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 7
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: _PyConfig_InitPathConfig
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - config_calculate_pathconfig
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - copy_wstr
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_InitPathConfig(PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/pathconfig.c:436,1
    - Dst: PyConfig_Read
      Src: /src/Python-3.8.3/Python/pathconfig.c:439,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:440,1
    - Dst: pathconfig_set_from_config
      Src: /src/Python-3.8.3/Python/pathconfig.c:444,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pathconfig
    argTypes:
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 432
    functionDepth: 4
    functionLinenumber: 432
    functionLinenumberEnd: 449
    functionName: pathconfig_global_read
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - pathconfig_set_from_config
    - PyConfig_Clear
    - PyConfig_Read
    - _PyStatus_EXCEPTION
    - _PyConfig_InitCompatConfig
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pathconfig_global_read(_PyPathConfig *pathconfig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyPathConfig_InitDLLPath
      Src: /src/Python-3.8.3/Python/pathconfig.c:458,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:459,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/pathconfig.c:460,1
    - Dst: pathconfig_global_read
      Src: /src/Python-3.8.3/Python/pathconfig.c:465,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pathconfig.c:466,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/pathconfig.c:467,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:474,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:475,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:476,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:478,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (_Py_path_config.program_full_path != NULL)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    - condition: (_Py_path_config.prefix != NULL)
      pos:
        line_end: 474
        line_start: 474
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    - condition: (_Py_path_config.exec_prefix != NULL)
      pos:
        line_end: 475
        line_start: 475
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    - condition: (_Py_path_config.module_search_path != NULL)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    - condition: (_Py_path_config.base_executable != NULL)
      pos:
        line_end: 480
        line_start: 480
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    - condition: (_Py_path_config.program_name != NULL)
      pos:
        line_end: 477
        line_start: 477
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    constantsTouched: []
    func_position:
      end: 483
      start: 452
    functionDepth: 5
    functionLinenumber: 452
    functionLinenumberEnd: 483
    functionName: pathconfig_global_init
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - Py_ExitStatusException
    - _PyPathConfig_InitDLLPath
    - _PyStatus_EXCEPTION
    - pathconfig_global_read
    - assert
    linkageType: ''
    returnType: void
    signature: void pathconfig_global_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_clear
      Src: /src/Python-3.8.3/Python/pathconfig.c:492,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:497,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:500,1
    - Dst: Py_GetProgramFullPath
      Src: /src/Python-3.8.3/Python/pathconfig.c:500,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:502,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:503,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:504,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:505,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:508,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:509,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:510,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:512,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pathconfig.c:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 521
    functionName: Py_SetPath
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_RawWcsdup
    - Py_GetProgramFullPath
    - Py_FatalError
    - PyMem_RawFree
    - pathconfig_clear
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: void
    signature: void Py_SetPath(const wchar_t *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:532,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:534,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:535,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:537,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pathconfig.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - home
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 542
    functionName: Py_SetPythonHome
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 3
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_RawWcsdup
    - Py_FatalError
    - PyMem_RawFree
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: void
    signature: void Py_SetPythonHome(const wchar_t *home)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:553,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:555,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:556,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:558,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pathconfig.c:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 563
    functionName: Py_SetProgramName
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 2
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_RawWcsdup
    - Py_FatalError
    - PyMem_RawFree
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: void
    signature: void Py_SetProgramName(const wchar_t *program_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:573,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:575,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/pathconfig.c:576,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/pathconfig.c:578,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pathconfig.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - program_full_path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 583
    functionName: _Py_SetProgramFullPath
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_RawWcsdup
    - Py_FatalError
    - PyMem_RawFree
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: void
    signature: void _Py_SetProgramFullPath(const wchar_t *program_full_path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 6
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: Py_GetPath
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetPath(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 6
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: Py_GetPrefix
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetPrefix(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 6
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: Py_GetExecPrefix
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetExecPrefix(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 6
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: Py_GetProgramFullPath
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetProgramFullPath(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 6
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: Py_GetPythonHome
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 0
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetPythonHome(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pathconfig_global_init
      Src: /src/Python-3.8.3/Python/pathconfig.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 6
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: Py_GetProgramName
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 3
    functionsReached:
    - pathconfig_global_init
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      Py_GetProgramName(void)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pathconfig.c:647,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/pathconfig.c:647,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/pathconfig.c:655,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/pathconfig.c:656,1
    - Dst: _Py_wgetcwd
      Src: /src/Python-3.8.3/Python/pathconfig.c:669,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:669,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/pathconfig.c:676,1
    - Dst: _Py_wreadlink
      Src: /src/Python-3.8.3/Python/pathconfig.c:684,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:684,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/pathconfig.c:692,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Python/pathconfig.c:697,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/pathconfig.c:705,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Python/pathconfig.c:706,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/pathconfig.c:707,1
    - Dst: GetFullPathNameW
      Src: /src/Python-3.8.3/Python/pathconfig.c:724,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:725,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Python/pathconfig.c:731,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Python/pathconfig.c:733,1
    - Dst: _Py_wrealpath
      Src: /src/Python-3.8.3/Python/pathconfig.c:746,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:746,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/Python/pathconfig.c:750,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/pathconfig.c:763,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 2
    argNames:
    - argv
    - path0_p
    argTypes:
    - PyWideStringList*
    - PyObject**
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(argv))
      pos:
        line_end: 646
        line_start: 646
        source_file: /src/Python-3.8.3/Python/pathconfig.c
    constantsTouched: []
    func_position:
      end: 770
      start: 644
    functionDepth: 5
    functionLinenumber: 644
    functionLinenumberEnd: 770
    functionName: _PyPathConfig_ComputeSysPath0
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - _Py_wgetcwd
    - wcsncpy
    - Py_ARRAY_LENGTH
    - _Py_wrealpath
    - wcschr
    - _Py_wreadlink
    - _PyWideStringList_CheckConsistency
    - wcsrchr
    - GetFullPathNameW
    - PyUnicode_FromWideChar
    - wcscmp
    - assert
    - wcslen
    linkageType: ''
    returnType: int
    signature: int _PyPathConfig_ComputeSysPath0(const PyWideStringList *argv, PyObject
      **path0_p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:787,1
    - Dst: fseek
      Src: /src/Python-3.8.3/Python/pathconfig.c:789,1
    - Dst: feof
      Src: /src/Python-3.8.3/Python/pathconfig.c:790,1
    - Dst: fgets
      Src: /src/Python-3.8.3/Python/pathconfig.c:791,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pathconfig.c:791,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pathconfig.c:797,1
    - Dst: _Py_DecodeUTF8_surrogateescape
      Src: /src/Python-3.8.3/Python/pathconfig.c:807,1
    - Dst: WCSTOK
      Src: /src/Python-3.8.3/Python/pathconfig.c:810,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/pathconfig.c:811,1
    - Dst: WCSTOK
      Src: /src/Python-3.8.3/Python/pathconfig.c:812,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/pathconfig.c:813,1
    - Dst: WCSTOK
      Src: /src/Python-3.8.3/Python/pathconfig.c:814,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Python/pathconfig.c:816,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:819,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pathconfig.c:824,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - env_file
    - key
    - value
    - value_size
    argTypes:
    - FILE*
    - wchar_t*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 828
    functionName: _Py_FindEnvConfigValue
    functionSourceFile: /src/Python-3.8.3/Python/pathconfig.c
    functionUses: 1
    functionsReached:
    - fgets
    - wcsncpy
    - Py_ARRAY_LENGTH
    - _Py_DecodeUTF8_surrogateescape
    - feof
    - strlen
    - WCSTOK
    - wcscmp
    - PyMem_RawFree
    - fseek
    linkageType: ''
    returnType: int
    signature: "int _Py_FindEnvConfigValue(FILE *env_file, const wchar_t *key,\n                       wchar_t
      *value, size_t value_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/ast_opt.c:11,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/ast_opt.c:14,1
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/ast_opt.c:17,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/ast_opt.c:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - node
    - val
    - arena
    argTypes:
    - expr_ty
    - PyObject*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 7
    functionDepth: 5
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: make_const
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyErr_Clear
    - PyErr_ExceptionMatches
    - PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int make_const(expr_ty node, PyObject *val, PyArena *arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - TO
    - ','
    - FROM
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: COPY_NODE
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NODE(TO, FROM)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/ast_opt.c:31,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/ast_opt.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: unary_not
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - PyObject_IsTrue
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      unary_not(PyObject *v)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:45,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:51,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast_opt.c:69,1
    - Dst: COPY_NODE
      Src: /src/Python-3.8.3/Python/ast_opt.c:70,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - node
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 86
    functionName: fold_unaryop
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - COPY_NODE
    - asdl_seq_LEN
    - make_const
    - asdl_seq_SET
    - asdl_seq_GET
    linkageType: ''
    returnType: int
    signature: int fold_unaryop(expr_ty node, PyArena *arena, int optimize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:99,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:101,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:102,1
    - Dst: check_complexity
      Src: /src/Python-3.8.3/Python/ast_opt.c:103,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/ast_opt.c:103,1
    - Dst: PyFrozenSet_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:107,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:111,1
    - Dst: _PySet_NextEntry
      Src: /src/Python-3.8.3/Python/ast_opt.c:112,1
    - Dst: check_complexity
      Src: /src/Python-3.8.3/Python/ast_opt.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - limit
    argTypes:
    - PyObject*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: check_complexity
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 1
    functionsReached:
    - check_complexity
    - PyTuple_GET_SIZE
    - PySet_GET_SIZE
    - PyTuple_Check
    - _PySet_NextEntry
    - PyTuple_GET_ITEM
    - PyFrozenSet_Check
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t check_complexity(PyObject *obj, Py_ssize_t limit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:127,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:127,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:127,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:127,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Python/ast_opt.c:128,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Python/ast_opt.c:129,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:137,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:137,1
    - Dst: PyFrozenSet_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:137,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:138,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:138,1
    - Dst: PySet_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:139,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/ast_opt.c:141,1
    - Dst: check_complexity
      Src: /src/Python-3.8.3/Python/ast_opt.c:145,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:150,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:150,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:150,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:151,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/ast_opt.c:151,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:152,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/ast_opt.c:154,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:160,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:161,1
    - Dst: PyFrozenSet_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:161,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:162,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:162,1
    - Dst: safe_multiply
      Src: /src/Python-3.8.3/Python/ast_opt.c:164,1
    - Dst: PyNumber_Multiply
      Src: /src/Python-3.8.3/Python/ast_opt.c:167,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 30
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 168
    functionName: safe_multiply
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - check_complexity
    - PyLong_AsLong
    - PyTuple_GET_SIZE
    - PyUnicode_GET_LENGTH
    - PySet_GET_SIZE
    - PyTuple_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyUnicode_Check
    - PyNumber_Multiply
    - Py_SIZE
    - _PyLong_NumBits
    - safe_multiply
    - PyFrozenSet_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      safe_multiply(PyObject *v, PyObject *w)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:173,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:173,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:173,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:173,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Python/ast_opt.c:174,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Python/ast_opt.c:175,1
    - Dst: PyNumber_Power
      Src: /src/Python-3.8.3/Python/ast_opt.c:184,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 3
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: safe_power
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyNumber_Power
    - PyLong_AsSize_t
    - Py_SIZE
    - _PyLong_NumBits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      safe_power(PyObject *v, PyObject *w)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:190,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:190,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:190,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/ast_opt.c:190,1
    - Dst: _PyLong_NumBits
      Src: /src/Python-3.8.3/Python/ast_opt.c:191,1
    - Dst: PyLong_AsSize_t
      Src: /src/Python-3.8.3/Python/ast_opt.c:192,1
    - Dst: PyNumber_Lshift
      Src: /src/Python-3.8.3/Python/ast_opt.c:201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: safe_lshift
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyNumber_Lshift
    - PyLong_AsSize_t
    - Py_SIZE
    - _PyLong_NumBits
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      safe_lshift(PyObject *v, PyObject *w)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:207,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/ast_opt.c:207,1
    - Dst: PyNumber_Remainder
      Src: /src/Python-3.8.3/Python/ast_opt.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 4
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: safe_mod
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - PyBytes_Check
    - PyNumber_Remainder
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      safe_mod(PyObject *v, PyObject *w)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyNumber_Add
      Src: /src/Python-3.8.3/Python/ast_opt.c:230,1
    - Dst: PyNumber_Subtract
      Src: /src/Python-3.8.3/Python/ast_opt.c:233,1
    - Dst: safe_multiply
      Src: /src/Python-3.8.3/Python/ast_opt.c:236,1
    - Dst: PyNumber_TrueDivide
      Src: /src/Python-3.8.3/Python/ast_opt.c:239,1
    - Dst: PyNumber_FloorDivide
      Src: /src/Python-3.8.3/Python/ast_opt.c:242,1
    - Dst: safe_mod
      Src: /src/Python-3.8.3/Python/ast_opt.c:245,1
    - Dst: safe_power
      Src: /src/Python-3.8.3/Python/ast_opt.c:248,1
    - Dst: safe_lshift
      Src: /src/Python-3.8.3/Python/ast_opt.c:251,1
    - Dst: PyNumber_Rshift
      Src: /src/Python-3.8.3/Python/ast_opt.c:254,1
    - Dst: PyNumber_Or
      Src: /src/Python-3.8.3/Python/ast_opt.c:257,1
    - Dst: PyNumber_Xor
      Src: /src/Python-3.8.3/Python/ast_opt.c:260,1
    - Dst: PyNumber_And
      Src: /src/Python-3.8.3/Python/ast_opt.c:263,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:269,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - node
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 270
    functionName: fold_binop
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyNumber_TrueDivide
    - PyNumber_Xor
    - safe_mod
    - safe_power
    - PyNumber_Or
    - PyNumber_FloorDivide
    - PyNumber_Rshift
    - make_const
    - safe_lshift
    - PyNumber_Add
    - PyNumber_Subtract
    - PyNumber_And
    - safe_multiply
    linkageType: ''
    returnType: int
    signature: int fold_binop(expr_ty node, PyArena *arena, int optimize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:275,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:276,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/ast_opt.c:282,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:282,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:287,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:288,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/ast_opt.c:290,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/ast_opt.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - elts
    argTypes:
    - asdl_seq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 294
    functionName: make_const_tuple
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - asdl_seq_LEN
    - asdl_seq_GET
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_const_tuple(asdl_seq *elts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_const_tuple
      Src: /src/Python-3.8.3/Python/ast_opt.c:304,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - node
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: fold_tuple
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - make_const_tuple
    - make_const
    linkageType: ''
    returnType: int
    signature: int fold_tuple(expr_ty node, PyArena *arena, int optimize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetItem
      Src: /src/Python-3.8.3/Python/ast_opt.c:327,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - node
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 308
    functionDepth: 6
    functionLinenumber: 308
    functionLinenumberEnd: 329
    functionName: fold_subscr
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - make_const
    - PyObject_GetItem
    linkageType: ''
    returnType: int
    signature: int fold_subscr(expr_ty node, PyArena *arena, int optimize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:344,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:346,1
    - Dst: make_const_tuple
      Src: /src/Python-3.8.3/Python/ast_opt.c:356,1
    - Dst: make_const_tuple
      Src: /src/Python-3.8.3/Python/ast_opt.c:359,1
    - Dst: Py_SETREF
      Src: /src/Python-3.8.3/Python/ast_opt.c:361,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Python/ast_opt.c:361,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - arg
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 9
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: fold_iter
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - PyFrozenSet_New
    - asdl_seq_LEN
    - make_const_tuple
    - make_const
    - asdl_seq_GET
    - Py_SETREF
    linkageType: ''
    returnType: int
    signature: int fold_iter(expr_ty arg, PyArena *arena, int optimize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/ast_opt.c:382,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:383,1
    - Dst: fold_iter
      Src: /src/Python-3.8.3/Python/ast_opt.c:385,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - node
    - arena
    - optimize
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 370
    functionDepth: 10
    functionLinenumber: 370
    functionLinenumberEnd: 390
    functionName: fold_compare
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - asdl_seq_GET
    - fold_iter
    linkageType: ''
    returnType: int
    signature: int fold_compare(expr_ty node, PyArena *arena, int optimize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC
    - ','
    - TYPE
    - ','
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: CALL
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL(FUNC, TYPE, ARG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FUNC
    - ','
    - TYPE
    - ','
    - ARG
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: CALL_OPT
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_OPT(FUNC, TYPE, ARG)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyAST_GetDocString
      Src: /src/Python-3.8.3/Python/ast_opt.c:433,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:434,1
    - Dst: _PyAST_GetDocString
      Src: /src/Python-3.8.3/Python/ast_opt.c:435,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/ast_opt.c:436,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/ast_opt.c:437,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/ast_opt.c:441,1
    - Dst: JoinedStr
      Src: /src/Python-3.8.3/Python/ast_opt.c:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - stmts
    - ctx_
    - optimize_
    argTypes:
    - asdl_seq*
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 450
    functionName: astfold_body
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - _Py_asdl_seq_new
    - JoinedStr
    - asdl_seq_SET
    - asdl_seq_GET
    - _PyAST_GetDocString
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_body(asdl_seq *stmts, PyArena *ctx_, int optimize_)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:457,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:460,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:463,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:466,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - mod_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 472
    functionName: astfold_mod
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_mod(mod_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:479,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:482,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:483,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:484,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:487,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:488,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:491,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:492,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:495,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:496,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:497,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:500,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:501,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:504,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:507,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:508,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:511,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:512,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:515,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:516,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:517,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:520,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:521,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:524,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:527,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:530,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:533,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:534,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:535,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:538,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:539,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:540,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:543,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:544,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:547,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:550,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:553,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:554,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:555,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:558,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:561,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:564,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:565,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/ast_opt.c:568,1
    - Dst: make_const
      Src: /src/Python-3.8.3/Python/ast_opt.c:569,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/ast_opt.c:569,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - expr_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 474
    functionDepth: 6
    functionLinenumber: 474
    functionLinenumberEnd: 576
    functionName: astfold_expr
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - CALL
    - make_const
    - PyBool_FromLong
    - CALL_SEQ
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_expr(expr_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:583,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:584,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:585,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:588,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - slice_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 597
    functionName: astfold_slice
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_slice(slice_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - keyword_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: astfold_keyword
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    linkageType: ''
    returnType: int
    signature: int astfold_keyword(keyword_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:609,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:610,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:611,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - comprehension_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 615
    functionName: astfold_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    linkageType: ''
    returnType: int
    signature: int astfold_comprehension(comprehension_ty node_, PyArena *ctx_, int
      optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:620,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:621,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:622,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:623,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:624,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:625,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - arguments_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 628
    functionName: astfold_arguments
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_arguments(arguments_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - arg_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 635
    functionName: astfold_arg
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_arg(arg_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:642,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:643,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:644,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:645,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:648,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:649,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:650,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:651,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:654,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:655,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:656,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:657,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:660,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:663,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:666,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:667,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:670,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:671,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:674,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:675,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:676,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:679,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:680,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:681,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:682,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:684,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:687,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:688,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:689,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:690,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:693,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:694,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:695,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:698,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:699,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:700,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:703,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:704,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:707,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:708,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:711,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:712,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:715,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:716,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:717,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:718,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:721,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:722,1
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:725,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - stmt_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 731
    functionName: astfold_stmt
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_SEQ
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_stmt(stmt_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:738,1
    - Dst: CALL_SEQ
      Src: /src/Python-3.8.3/Python/ast_opt.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - excepthandler_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 745
    functionName: astfold_excepthandler
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL_SEQ
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_excepthandler(excepthandler_ty node_, PyArena *ctx_, int
      optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL
      Src: /src/Python-3.8.3/Python/ast_opt.c:750,1
    - Dst: CALL_OPT
      Src: /src/Python-3.8.3/Python/ast_opt.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node_
    - ctx_
    - optimize_
    argTypes:
    - withitem_ty
    - PyArena*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 753
    functionName: astfold_withitem
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 0
    functionsReached:
    - CALL
    - CALL_OPT
    linkageType: ''
    returnType: int
    signature: int astfold_withitem(withitem_ty node_, PyArena *ctx_, int optimize_)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: astfold_mod
      Src: /src/Python-3.8.3/Python/ast_opt.c:763,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/ast_opt.c:764,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/ast_opt.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - mod
    - arena
    - optimize
    argTypes:
    - mod_ty
    - PyArena*
    - int
    assertStmts:
    - condition: (ret || PyErr_Occurred())
      pos:
        line_end: 763
        line_start: 763
        source_file: /src/Python-3.8.3/Python/ast_opt.c
    constantsTouched: []
    func_position:
      end: 766
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 766
    functionName: _PyAST_Optimize
    functionSourceFile: /src/Python-3.8.3/Python/ast_opt.c
    functionUses: 1
    functionsReached:
    - assert
    - PyErr_Occurred
    - astfold_mod
    linkageType: ''
    returnType: int
    signature: int _PyAST_Optimize(mod_ty mod, PyArena *arena, int optimize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:13,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:20,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/asdl.c:25,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:27,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/asdl.c:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - arena
    argTypes:
    - Py_ssize_t
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 33
    functionName: _Py_asdl_seq_new
    functionSourceFile: /src/Python-3.8.3/Python/asdl.c
    functionUses: 21
    functionsReached:
    - PyErr_NoMemory
    - PyArena_Malloc
    - memset
    linkageType: ''
    returnType: asdl_seq
    signature: 'asdl_seq *

      _Py_asdl_seq_new(Py_ssize_t size, PyArena *arena)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:44,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:51,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/asdl.c:56,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/asdl.c:58,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/asdl.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - size
    - arena
    argTypes:
    - Py_ssize_t
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 4
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: _Py_asdl_int_seq_new
    functionSourceFile: /src/Python-3.8.3/Python/asdl.c
    functionUses: 1
    functionsReached:
    - PyErr_NoMemory
    - PyArena_Malloc
    - memset
    linkageType: ''
    returnType: asdl_int_seq
    signature: 'asdl_int_seq *

      _Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:103,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:104,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: PyArg_Parse
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 63
    functionsReached:
    - vgetargs1
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyArg_Parse(PyObject *args, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:115,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:116,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: _PyArg_Parse_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyArg_Parse_SizeT(PyObject *args, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:128,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:129,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: PyArg_ParseTuple
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 452
    functionsReached:
    - vgetargs1
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int PyArg_ParseTuple(PyObject *args, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:140,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:141,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - args
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 144
    functionName: _PyArg_ParseTuple_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyArg_ParseTuple_SizeT(PyObject *args, const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:153,1
    - Dst: vgetargs1_impl
      Src: /src/Python-3.8.3/Python/getargs.c:154,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - nargs
    - format
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: _PyArg_ParseStack
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 33
    functionsReached:
    - va_start
    - vgetargs1_impl
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyArg_ParseStack(PyObject *const *args, Py_ssize_t nargs, const
      char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:165,1
    - Dst: vgetargs1_impl
      Src: /src/Python-3.8.3/Python/getargs.c:166,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - nargs
    - format
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: _PyArg_ParseStack_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_start
    - vgetargs1_impl
    - va_end
    linkageType: ''
    returnType: int
    signature: int _PyArg_ParseStack_SizeT(PyObject *const *args, Py_ssize_t nargs,
      const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:178,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:180,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: PyArg_VaParse
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_end
    - va_copy
    linkageType: ''
    returnType: int
    signature: int PyArg_VaParse(PyObject *args, const char *format, va_list va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:191,1
    - Dst: vgetargs1
      Src: /src/Python-3.8.3/Python/getargs.c:193,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - format
    - va
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: _PyArg_VaParse_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargs1
    - va_end
    - va_copy
    linkageType: ''
    returnType: int
    signature: int _PyArg_VaParse_SizeT(PyObject *args, const char *format, va_list
      va)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/getargs.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: cleanup_ptr
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    linkageType: ''
    returnType: int
    signature: int cleanup_ptr(PyObject *self, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/getargs.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - ptr
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 218
    functionName: cleanup_buffer
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyBuffer_Release
    linkageType: ''
    returnType: int
    signature: int cleanup_buffer(PyObject *self, void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - freelist
    - destructor
    argTypes:
    - void*
    - freelist_t*
    - destr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 232
    functionName: addcleanup
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int addcleanup(void *ptr, freelist_t *freelist, destr_t destructor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: destructor
      Src: /src/Python-3.8.3/Python/getargs.c:244,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/getargs.c:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - retval
    - freelist
    argTypes:
    - int
    - freelist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: cleanreturn
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyMem_FREE
    - destructor
    linkageType: ''
    returnType: int
    signature: int cleanreturn(int retval, freelist_t *freelist)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:273,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/getargs.c:289,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/getargs.c:294,1
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Python/getargs.c:315,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/getargs.c:315,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/getargs.c:324,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/getargs.c:332,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/getargs.c:334,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:344,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:348,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:352,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:356,1
    - Dst: convertitem
      Src: /src/Python-3.8.3/Python/getargs.c:358,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:361,1
    - Dst: seterror
      Src: /src/Python-3.8.3/Python/getargs.c:362,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:363,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:366,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:368,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:384,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:385,1
    - Dst: convertitem
      Src: /src/Python-3.8.3/Python/getargs.c:391,1
    - Dst: seterror
      Src: /src/Python-3.8.3/Python/getargs.c:395,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:396,1
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Python/getargs.c:400,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/getargs.c:400,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:403,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:405,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:408,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 99
    argCount: 6
    argNames:
    - compat_args
    - stack
    - nargs
    - format
    - p_va
    - flags
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - char*
    - va_list*
    - int
    assertStmts:
    - condition: (nargs == 0 || stack != NULL)
      pos:
        line_end: 272
        line_start: 272
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 409
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 409
    functionName: vgetargs1_impl
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - seterror
    - cleanreturn
    - PyErr_NoMemory
    - PyMem_NEW
    - convertitem
    - Py_FatalError
    - PyErr_Format
    - PyErr_SetString
    - assert
    - Py_ISALPHA
    - Py_CHARMASK
    linkageType: ''
    returnType: int
    signature: "int vgetargs1_impl(PyObject *compat_args, PyObject *const *stack,
      Py_ssize_t nargs, const char *format,\n               va_list *p_va, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:418,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:421,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Python/getargs.c:426,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:427,1
    - Dst: vgetargs1_impl
      Src: /src/Python-3.8.3/Python/getargs.c:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - args
    - format
    - p_va
    - flags
    argTypes:
    - PyObject*
    - char*
    - va_list*
    - int
    assertStmts:
    - condition: (args != NULL)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 435
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 435
    functionName: vgetargs1
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 6
    functionsReached:
    - vgetargs1_impl
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyErr_SetString
    - assert
    linkageType: ''
    returnType: int
    signature: int vgetargs1(PyObject *args, const char *format, va_list *p_va, int
      flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:446,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:450,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:451,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:454,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:457,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:459,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:461,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:466,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:467,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:469,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:473,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - iarg
    - msg
    - levels
    - fname
    - message
    argTypes:
    - Py_ssize_t
    - char*
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 478
    functionName: seterror
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 61
    functionsReached:
    - strlen
    - PyOS_snprintf
    - PyErr_Occurred
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: "void seterror(Py_ssize_t iarg, const char *msg, int *levels, const
      char *fname,\n         const char *message)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISALPHA
      Src: /src/Python-3.8.3/Python/getargs.c:524,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/getargs.c:524,1
    - Dst: PySequence_Check
      Src: /src/Python-3.8.3/Python/getargs.c:528,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:528,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:530,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Python/getargs.c:538,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:542,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:549,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Python/getargs.c:561,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/getargs.c:563,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/Python/getargs.c:566,1
    - Dst: convertitem
      Src: /src/Python-3.8.3/Python/getargs.c:569,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/getargs.c:572,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 9
    argNames:
    - arg
    - p_format
    - p_va
    - flags
    - levels
    - msgbuf
    - bufsize
    - toplevel
    - freelist
    argTypes:
    - PyObject*
    - char**
    - va_list*
    - int
    - int*
    - char*
    - size_t
    - int
    - freelist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 499
    functionDepth: 3
    functionLinenumber: 499
    functionLinenumberEnd: 581
    functionName: converttuple
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PySequence_Check
    - PyOS_snprintf
    - PySequence_Size
    - strncpy
    - PySequence_GetItem
    - convertitem
    - PyBytes_Check
    - Py_ISALPHA
    - PyErr_Clear
    - Py_XDECREF
    - Py_CHARMASK
    linkageType: ''
    returnType: char
    signature: "char *\nconverttuple(PyObject *arg, const char **p_format, va_list
      *p_va, int flags,\n             int *levels, char *msgbuf, size_t bufsize, int
      toplevel,\n             freelist_t *freelist)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: converttuple
      Src: /src/Python-3.8.3/Python/getargs.c:595,1
    - Dst: convertsimple
      Src: /src/Python-3.8.3/Python/getargs.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 8
    argNames:
    - arg
    - p_format
    - p_va
    - flags
    - levels
    - msgbuf
    - bufsize
    - freelist
    argTypes:
    - PyObject*
    - char**
    - va_list*
    - int
    - int*
    - char*
    - size_t
    - freelist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 609
    functionName: convertitem
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - convertsimple
    - converttuple
    linkageType: ''
    returnType: char
    signature: "char *\nconvertitem(PyObject *arg, const char **p_format, va_list
      *p_va, int flags,\n            int *levels, char *msgbuf, size_t bufsize, freelist_t
      *freelist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fname
    - displayname
    - expected
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: _PyArg_BadArgument
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 226
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: "void _PyArg_BadArgument(const char *fname, const char *displayname,\n
      \                  const char *expected, PyObject *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:630,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:631,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:633,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getargs.c:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - expected
    - arg
    - msgbuf
    - bufsize
    argTypes:
    - char*
    - PyObject*
    - char*
    - size_t
    assertStmts:
    - condition: (expected != NULL)
      pos:
        line_end: 629
        line_start: 629
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (arg != NULL)
      pos:
        line_end: 630
        line_start: 630
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 642
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 642
    functionName: converterr
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - assert
    - PyOS_snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      converterr(const char *expected, PyObject *arg, char *msgbuf, size_t bufsize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/getargs.c:653,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: float_argument_error
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int float_argument_error(PyObject *arg)
  - BBCount: 131
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:706,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:708,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/getargs.c:710,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:711,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:714,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:719,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:730,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:732,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Python/getargs.c:734,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:735,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:743,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:745,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/getargs.c:747,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:748,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:751,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:756,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:767,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:769,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Python/getargs.c:771,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:772,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:780,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:782,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/getargs.c:784,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:785,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:788,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:793,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:804,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:806,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Python/getargs.c:808,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:809,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:819,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:821,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Python/getargs.c:823,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/getargs.c:825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:826,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:828,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:834,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:836,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/getargs.c:838,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:839,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:847,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/getargs.c:849,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/Python/getargs.c:850,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:852,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:858,1
    - Dst: float_argument_error
      Src: /src/Python-3.8.3/Python/getargs.c:860,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Python/getargs.c:862,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:863,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:871,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/getargs.c:873,1
    - Dst: PyLong_AsUnsignedLongLongMask
      Src: /src/Python-3.8.3/Python/getargs.c:874,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:876,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:882,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/getargs.c:883,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:884,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:892,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/getargs.c:893,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:894,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:902,1
    - Dst: PyComplex_AsCComplex
      Src: /src/Python-3.8.3/Python/getargs.c:904,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:905,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:913,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:914,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Python/getargs.c:914,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/getargs.c:915,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/getargs.c:916,1
    - Dst: PyByteArray_Size
      Src: /src/Python-3.8.3/Python/getargs.c:916,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Python/getargs.c:917,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:919,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:924,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:928,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:929,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/getargs.c:931,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/getargs.c:934,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:935,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/getargs.c:937,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/getargs.c:938,1
    - Dst: PyUnicode_READ
      Src: /src/Python-3.8.3/Python/getargs.c:939,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:944,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/getargs.c:945,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:959,1
    - Dst: getbuffer
      Src: /src/Python-3.8.3/Python/getargs.c:963,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:964,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:966,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:967,1
    - Dst: convertbuffer
      Src: /src/Python-3.8.3/Python/getargs.c:973,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:975,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:978,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:981,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:982,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:994,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Python/getargs.c:997,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:998,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/getargs.c:1000,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1002,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Python/getargs.c:1004,1
    - Dst: getbuffer
      Src: /src/Python-3.8.3/Python/getargs.c:1008,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1009,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:1011,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1012,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1019,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1024,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1026,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/getargs.c:1028,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1030,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1033,1
    - Dst: convertbuffer
      Src: /src/Python-3.8.3/Python/getargs.c:1038,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1040,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1041,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1046,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1052,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/getargs.c:1053,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1055,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:1057,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1058,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1064,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1073,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1081,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1083,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Python/getargs.c:1085,1
    - Dst: STORE_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1088,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1091,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1098,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/Python/getargs.c:1100,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/getargs.c:1103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1104,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1108,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1123,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Python/getargs.c:1125,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1136,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1139,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1142,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1147,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1147,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/getargs.c:1149,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1150,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1151,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/getargs.c:1152,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1155,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Python/getargs.c:1156,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1159,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/getargs.c:1161,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1165,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1167,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1167,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1168,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/getargs.c:1169,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1174,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1204,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/getargs.c:1207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1210,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1213,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1218,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1219,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/getargs.c:1224,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1226,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/getargs.c:1227,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:1230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1231,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1232,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1238,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1239,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/getargs.c:1246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1253,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1254,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1256,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/getargs.c:1274,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1275,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1276,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/getargs.c:1280,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1282,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/getargs.c:1283,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:1286,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1287,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1288,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/getargs.c:1291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:1293,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1298,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1299,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1302,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1307,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1308,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1311,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1316,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1317,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/getargs.c:1318,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1323,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1331,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1332,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Python/getargs.c:1334,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1337,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1342,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1343,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1347,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:1350,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1351,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1355,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:1363,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1366,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/getargs.c:1373,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/getargs.c:1374,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1375,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Python/getargs.c:1378,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/getargs.c:1379,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1380,1
    - Dst: addcleanup
      Src: /src/Python-3.8.3/Python/getargs.c:1382,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1383,1
    - Dst: converterr
      Src: /src/Python-3.8.3/Python/getargs.c:1391,1
    CyclomaticComplexity: 151
    EdgeCount: 151
    ICount: 448
    argCount: 7
    argNames:
    - arg
    - p_format
    - p_va
    - flags
    - msgbuf
    - bufsize
    - freelist
    argTypes:
    - PyObject*
    - char**
    - va_list*
    - int
    - char*
    - size_t
    - freelist_t*
    assertStmts:
    - condition: (PyBytes_Check(s))
      pos:
        line_end: 1166
        line_start: 1166
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1402
      start: 671
    functionDepth: 19
    functionLinenumber: 671
    functionLinenumberEnd: 1402
    functionName: convertsimple
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 1
    functionsReached:
    - PyLong_AsUnsignedLongLongMask
    - PyLong_AsLong
    - PyUnicode_READY
    - PyUnicode_READ
    - PyMem_NEW
    - PyType_IsSubtype
    - PyUnicode_GetDefaultEncoding
    - PyByteArray_GET_SIZE
    - float_argument_error
    - PyUnicode_KIND
    - PyByteArray_Size
    - PyLong_AsUnsignedLongMask
    - PyByteArray_AS_STRING
    - wcslen
    - PyFloat_AsDouble
    - PyObject_GetBuffer
    - PyErr_Occurred
    - Py_INCREF
    - converterr
    - va_arg
    - PyLong_AsSsize_t
    - PyLong_AsLongLong
    - PyBytes_Size
    - PyNumber_Index
    - strlen
    - PyErr_Format
    - PyBuffer_IsContiguous
    - PyUnicode_DATA
    - assert
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - PyLong_Check
    - PyBuffer_FillInfo
    - Py_DECREF
    - PyComplex_AsCComplex
    - convertbuffer
    - PyByteArray_Check
    - PyUnicode_AsUnicodeAndSize
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - PyErr_WarnEx
    - STORE_SIZE
    - memcpy
    - PyErr_NoMemory
    - PyBytes_Check
    - getbuffer
    - PyUnicode_AsUTF8AndSize
    - PyBuffer_Release
    - PyErr_SetString
    - PyUnicode_Check
    - PyObject_IsTrue
    - addcleanup
    linkageType: ''
    returnType: char
    signature: "char *\nconvertsimple(PyObject *arg, const char **p_format, va_list
      *p_va, int flags,\n              char *msgbuf, size_t bufsize, freelist_t *freelist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 696
    functionName: STORE_SIZE
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_SIZE(s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/getargs.c:1407,1
    - Dst: getbuffer
      Src: /src/Python-3.8.3/Python/getargs.c:1418,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/getargs.c:1422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - arg
    - p
    - errmsg
    argTypes:
    - PyObject*
    - void**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1404
    functionDepth: 2
    functionLinenumber: 1404
    functionLinenumberEnd: 1424
    functionName: convertbuffer
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 1
    functionsReached:
    - getbuffer
    - Py_TYPE
    - PyBuffer_Release
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t convertbuffer(PyObject *arg, const void **p, const char
      **errmsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/getargs.c:1429,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Python/getargs.c:1433,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/getargs.c:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arg
    - view
    - errmsg
    argTypes:
    - PyObject*
    - Py_buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1426
    functionDepth: 3
    functionLinenumber: 1426
    functionLinenumberEnd: 1439
    functionName: getbuffer
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyObject_GetBuffer
    - PyBuffer_Release
    - PyBuffer_IsContiguous
    linkageType: ''
    returnType: int
    signature: int getbuffer(PyObject *arg, Py_buffer *view, const char **errmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1454,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1455,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:1459,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1463,1
    - Dst: vgetargskeywords
      Src: /src/Python-3.8.3/Python/getargs.c:1464,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1465,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1467
    functionName: PyArg_ParseTupleAndKeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 177
    functionsReached:
    - va_start
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyTuple_Check
    - vgetargskeywords
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyArg_ParseTupleAndKeywords(PyObject *args,\n                            PyObject
      *keywords,\n                            const char *format,\n                            char
      **kwlist, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1478,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1479,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:1483,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1487,1
    - Dst: vgetargskeywords
      Src: /src/Python-3.8.3/Python/getargs.c:1488,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - args
    - keywords
    - format
    - kwlist
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1469
    functionDepth: 1
    functionLinenumber: 1469
    functionLinenumberEnd: 1492
    functionName: _PyArg_ParseTupleAndKeywords_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_start
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyTuple_Check
    - vgetargskeywords
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseTupleAndKeywords_SizeT(PyObject *args,\n                                  PyObject
      *keywords,\n                                  const char *format,\n                                  char
      **kwlist, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1504,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1505,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:1509,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:1513,1
    - Dst: vgetargskeywords
      Src: /src/Python-3.8.3/Python/getargs.c:1515,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - args
    - keywords
    - format
    - kwlist
    - va
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1518
    functionName: PyArg_VaParseTupleAndKeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - va_copy
    - PyDict_Check
    - PyTuple_Check
    - vgetargskeywords
    - va_end
    linkageType: ''
    returnType: int
    signature: "int PyArg_VaParseTupleAndKeywords(PyObject *args,\n                              PyObject
      *keywords,\n                              const char *format,\n                              char
      **kwlist, va_list va)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1529,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1530,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:1534,1
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:1538,1
    - Dst: vgetargskeywords
      Src: /src/Python-3.8.3/Python/getargs.c:1540,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 5
    argNames:
    - args
    - keywords
    - format
    - kwlist
    - va
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1544
    functionName: _PyArg_VaParseTupleAndKeywords_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyErr_BadInternalCall
    - va_copy
    - PyDict_Check
    - PyTuple_Check
    - vgetargskeywords
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_VaParseTupleAndKeywords_SizeT(PyObject *args,\n                                    PyObject
      *keywords,\n                                    const char *format,\n                                    char
      **kwlist, va_list va)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1553,1
    - Dst: vgetargskeywordsfast
      Src: /src/Python-3.8.3/Python/getargs.c:1554,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1546
    functionDepth: 1
    functionLinenumber: 1546
    functionLinenumberEnd: 1557
    functionName: _PyArg_ParseTupleAndKeywordsFast
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_start
    - vgetargskeywordsfast
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,\n
      \                           struct _PyArg_Parser *parser, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1566,1
    - Dst: vgetargskeywordsfast
      Src: /src/Python-3.8.3/Python/getargs.c:1567,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - args
    - keywords
    - parser
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1570
    functionName: _PyArg_ParseTupleAndKeywordsFast_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_start
    - vgetargskeywordsfast
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject
      *keywords,\n                            struct _PyArg_Parser *parser, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1579,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/Python-3.8.3/Python/getargs.c:1580,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - nargs
    - kwnames
    - parser
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1583
    functionName: _PyArg_ParseStackAndKeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 9
    functionsReached:
    - va_start
    - vgetargskeywordsfast_impl
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseStackAndKeywords(PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames,\n                  struct _PyArg_Parser *parser, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:1592,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/Python-3.8.3/Python/getargs.c:1593,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - nargs
    - kwnames
    - parser
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1585
    functionDepth: 1
    functionLinenumber: 1585
    functionLinenumberEnd: 1596
    functionName: _PyArg_ParseStackAndKeywords_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - va_start
    - vgetargskeywordsfast_impl
    - va_end
    linkageType: ''
    returnType: int
    signature: "int _PyArg_ParseStackAndKeywords_SizeT(PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames,\n                        struct _PyArg_Parser *parser,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:1606,1
    - Dst: vgetargskeywordsfast
      Src: /src/Python-3.8.3/Python/getargs.c:1608,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - keywords
    - parser
    - va
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1611
    functionName: _PyArg_VaParseTupleAndKeywordsFast
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywordsfast
    - va_end
    - va_copy
    linkageType: ''
    returnType: int
    signature: "int _PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,\n
      \                           struct _PyArg_Parser *parser, va_list va)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/Python-3.8.3/Python/getargs.c:1620,1
    - Dst: vgetargskeywordsfast
      Src: /src/Python-3.8.3/Python/getargs.c:1622,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - args
    - keywords
    - parser
    - va
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1625
    functionName: _PyArg_VaParseTupleAndKeywordsFast_SizeT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - vgetargskeywordsfast
    - va_end
    - va_copy
    linkageType: ''
    returnType: int
    signature: "int _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject
      *keywords,\n                            struct _PyArg_Parser *parser, va_list
      va)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1630,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:1631,1
    - Dst: _PyDict_HasOnlyStringKeys
      Src: /src/Python-3.8.3/Python/getargs.c:1634,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - kwargs
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1640
    functionName: PyArg_ValidateKeywordArguments
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - _PyDict_HasOnlyStringKeys
    - PyErr_BadInternalCall
    - PyDict_Check
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyArg_ValidateKeywordArguments(PyObject *kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1642
    functionDepth: 0
    functionLinenumber: 1642
    functionLinenumberEnd: 1643
    functionName: IS_END_OF_FORMAT
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_END_OF_FORMAT(c)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1664,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1664,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1665,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1665,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1666,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1667,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1668,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/getargs.c:1671,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/getargs.c:1677,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1688,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1690,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/getargs.c:1695,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/getargs.c:1697,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1703,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:1704,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1708,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1716,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1723,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1725,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1732,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1734,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1739,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1741,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1748,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1750,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1760,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1766,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1776,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:1779,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1780,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1783,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:1787,1
    - Dst: _PyDict_GetItemStringWithError
      Src: /src/Python-3.8.3/Python/getargs.c:1790,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:1794,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1795,1
    - Dst: convertitem
      Src: /src/Python-3.8.3/Python/getargs.c:1803,1
    - Dst: seterror
      Src: /src/Python-3.8.3/Python/getargs.c:1806,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1807,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1814,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1815,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1823,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1828,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1836,1
    - Dst: skipitem
      Src: /src/Python-3.8.3/Python/getargs.c:1842,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1844,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1846,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1851,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:1856,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:1857,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:1858,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1860,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:1863,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1864,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1867,1
    - Dst: _PyDict_GetItemStringWithError
      Src: /src/Python-3.8.3/Python/getargs.c:1875,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1878,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1884,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:1886,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1887,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/getargs.c:1892,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:1894,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1895,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1897,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/getargs.c:1900,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1906,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1912,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:1917,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 161
    argCount: 6
    argNames:
    - args
    - kwargs
    - format
    - kwlist
    - p_va
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char**
    - va_list*
    - int
    assertStmts:
    - condition: (format != NULL)
      pos:
        line_end: 1665
        line_start: 1665
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (p_va != NULL)
      pos:
        line_end: 1667
        line_start: 1667
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (args != NULL && PyTuple_Check(args))
      pos:
        line_end: 1663
        line_start: 1663
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 1664
        line_start: 1664
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (kwlist != NULL)
      pos:
        line_end: 1666
        line_start: 1666
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (min == INT_MAX)
      pos:
        line_end: 1813
        line_start: 1813
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (max == INT_MAX)
      pos:
        line_end: 1814
        line_start: 1814
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 1918
      start: 1644
    functionDepth: 5
    functionLinenumber: 1644
    functionLinenumberEnd: 1918
    functionName: vgetargskeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 4
    functionsReached:
    - PyTuple_GET_SIZE
    - PyMem_NEW
    - seterror
    - PyErr_Occurred
    - cleanreturn
    - PyDict_GET_SIZE
    - PyTuple_Check
    - PyErr_Format
    - assert
    - _PyDict_GetItemStringWithError
    - _PyUnicode_EqualToASCIIString
    - PyDict_Next
    - skipitem
    - PyDict_Check
    - strchr
    - convertitem
    - Py_MIN
    - IS_END_OF_FORMAT
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywords(PyObject *args, PyObject *kwargs, const char
      *format,\n                 char **kwlist, va_list *p_va, int flags)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:1932,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1945,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/getargs.c:1955,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/getargs.c:1961,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1970,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1975,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1984,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:1989,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:1996,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:1997,1
    - Dst: skipitem
      Src: /src/Python-3.8.3/Python/getargs.c:2003,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2005,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:2010,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:2011,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:2013,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2014,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/getargs.c:2022,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/getargs.c:2028,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/getargs.c:2030,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/getargs.c:2033,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2034,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2038,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts:
    - condition: (parser->keywords != NULL)
      pos:
        line_end: 1931
        line_start: 1931
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (parser->next == NULL)
      pos:
        line_end: 2037
        line_start: 2037
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2042
      start: 1924
    functionDepth: 5
    functionLinenumber: 1924
    functionLinenumberEnd: 2042
    functionName: parser_init
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - skipitem
    - Py_DECREF
    - Py_MIN
    - PyTuple_New
    - PyUnicode_InternInPlace
    - PyErr_Format
    - PyErr_SetString
    - assert
    - strchr
    - PyTuple_SET_ITEM
    - IS_END_OF_FORMAT
    linkageType: ''
    returnType: int
    signature: int parser_init(struct _PyArg_Parser *parser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/getargs.c:2047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parser
    argTypes:
    - struct _PyArg_Parser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2048
    functionName: parser_clear
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void parser_clear(struct _PyArg_Parser *parser)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2055,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2057,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2064,1
    - Dst: _PyUnicode_EQ
      Src: /src/Python-3.8.3/Python/getargs.c:2069,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - kwnames
    - kwstack
    - key
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2050
    functionDepth: 2
    functionLinenumber: 2050
    functionLinenumberEnd: 2074
    functionName: find_keyword
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyUnicode_EQ
    - PyTuple_GET_ITEM
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      find_keyword(PyObject *kwnames, PyObject *const *kwstack, PyObject *key)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2099,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2099,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2100,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2101,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2104,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2108,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2109,1
    - Dst: parser_init
      Src: /src/Python-3.8.3/Python/getargs.c:2113,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2119,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/Python/getargs.c:2122,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/getargs.c:2124,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2131,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2134,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2143,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2151,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2155,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2161,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2170,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2182,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:2182,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2188,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/getargs.c:2190,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:2191,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2192,1
    - Dst: find_keyword
      Src: /src/Python-3.8.3/Python/getargs.c:2196,1
    - Dst: convertitem
      Src: /src/Python-3.8.3/Python/getargs.c:2207,1
    - Dst: seterror
      Src: /src/Python-3.8.3/Python/getargs.c:2210,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2211,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:2219,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2220,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2231,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2232,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2238,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2245,1
    - Dst: skipitem
      Src: /src/Python-3.8.3/Python/getargs.c:2250,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2251,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2254,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:2254,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2260,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/getargs.c:2262,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:2263,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2264,1
    - Dst: find_keyword
      Src: /src/Python-3.8.3/Python/getargs.c:2268,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2272,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2278,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/getargs.c:2286,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2290,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2292,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:2297,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2299,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Python/getargs.c:2301,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2304,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2311,1
    - Dst: cleanreturn
      Src: /src/Python-3.8.3/Python/getargs.c:2316,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 143
    argCount: 7
    argNames:
    - args
    - nargs
    - kwargs
    - kwnames
    - parser
    - p_va
    - flags
    argTypes:
    - PyObject**
    - Py_ssize_t
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    - va_list*
    - int
    assertStmts:
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2098
        line_start: 2098
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2099
        line_start: 2099
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$'))
      pos:
        line_end: 2253
        line_start: 2253
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (!IS_END_OF_FORMAT(*format))
      pos:
        line_end: 2181
        line_start: 2181
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (p_va != NULL)
      pos:
        line_end: 2100
        line_start: 2100
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (msg == NULL)
      pos:
        line_end: 2250
        line_start: 2250
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2317
      start: 2076
    functionDepth: 6
    functionLinenumber: 2076
    functionLinenumberEnd: 2317
    functionName: vgetargskeywordsfast_impl
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - PyTuple_GET_SIZE
    - PyMem_NEW
    - PyErr_BadInternalCall
    - seterror
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - cleanreturn
    - PyDict_GET_SIZE
    - PyTuple_Check
    - PyErr_Format
    - assert
    - PySequence_Contains
    - PyDict_Next
    - find_keyword
    - skipitem
    - PyDict_Check
    - convertitem
    - Py_MIN
    - IS_END_OF_FORMAT
    - parser_init
    - PyErr_NoMemory
    - PyErr_SetString
    - PyUnicode_Check
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywordsfast_impl(PyObject *const *args, Py_ssize_t nargs,\n
      \                         PyObject *kwargs, PyObject *kwnames,\n                          struct
      _PyArg_Parser *parser,\n                          va_list *p_va, int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2327,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2328,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2330,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Python/getargs.c:2334,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2335,1
    - Dst: vgetargskeywordsfast_impl
      Src: /src/Python-3.8.3/Python/getargs.c:2336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - args
    - keywords
    - parser
    - p_va
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - struct _PyArg_Parser*
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2319
    functionDepth: 7
    functionLinenumber: 2319
    functionLinenumberEnd: 2338
    functionName: vgetargskeywordsfast
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 4
    functionsReached:
    - vgetargskeywordsfast_impl
    - PyTuple_GET_SIZE
    - PyErr_BadInternalCall
    - _PyTuple_ITEMS
    - PyDict_Check
    - PyTuple_Check
    linkageType: ''
    returnType: int
    signature: "int vgetargskeywordsfast(PyObject *args, PyObject *keywords,\n                     struct
      _PyArg_Parser *parser, va_list *p_va, int flags)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2358,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2358,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2359,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2362,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2366,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2367,1
    - Dst: parser_init
      Src: /src/Python-3.8.3/Python/getargs.c:2375,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/getargs.c:2381,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2382,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2385,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2388,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2401,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2413,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2419,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2431,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/getargs.c:2449,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2451,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/getargs.c:2453,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:2454,1
    - Dst: find_keyword
      Src: /src/Python-3.8.3/Python/getargs.c:2459,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2476,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2477,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2490,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/getargs.c:2492,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/getargs.c:2493,1
    - Dst: find_keyword
      Src: /src/Python-3.8.3/Python/getargs.c:2498,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2502,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/getargs.c:2516,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2520,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/getargs.c:2522,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2526,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:2527,1
    - Dst: PySequence_Contains
      Src: /src/Python-3.8.3/Python/getargs.c:2531,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2534,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (kwargs == NULL || PyDict_Check(kwargs))
      pos:
        line_end: 2357
        line_start: 2357
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (kwargs == NULL || kwnames == NULL)
      pos:
        line_end: 2358
        line_start: 2358
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2547
      start: 2343
    functionDepth: 6
    functionLinenumber: 2343
    functionLinenumberEnd: 2547
    functionName: _PyArg_UnpackKeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 237
    functionsReached:
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - find_keyword
    - PyTuple_GET_SIZE
    - parser_init
    - PyDict_Next
    - PyDict_GET_SIZE
    - PyErr_BadInternalCall
    - PyDict_Check
    - Py_MAX
    - PySequence_Contains
    - PyTuple_Check
    - PyErr_Format
    - PyErr_SetString
    - PyUnicode_Check
    - assert
    - PyTuple_GET_ITEM
    - Py_MIN
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * const *\n_PyArg_UnpackKeywords(PyObject *const *args, Py_ssize_t
      nargs,\n                      PyObject *kwargs, PyObject *kwnames,\n                      struct
      _PyArg_Parser *parser,\n                      int minpos, int maxpos, int minkw,\n
      \                     PyObject **buf)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2585,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2595,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2612,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2617,1
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/getargs.c:2619,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2623,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2640,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2641,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2647,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2648,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2654,1
    - Dst: IS_END_OF_FORMAT
      Src: /src/Python-3.8.3/Python/getargs.c:2666,1
    - Dst: skipitem
      Src: /src/Python-3.8.3/Python/getargs.c:2669,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 3
    argNames:
    - p_format
    - p_va
    - flags
    argTypes:
    - char**
    - va_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2550
    functionDepth: 19
    functionLinenumber: 2550
    functionLinenumberEnd: 2688
    functionName: skipitem
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 4
    functionsReached:
    - skipitem
    - PyErr_WarnEx
    - va_arg
    - IS_END_OF_FORMAT
    linkageType: ''
    returnType: char
    signature: 'char *

      skipitem(const char **p_format, va_list *p_va, int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2697,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/getargs.c:2698,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2702,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2707,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2721,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2726,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - name
    - nargs
    - min
    - max
    argTypes:
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - Py_ssize_t
    assertStmts:
    - condition: (min >= 0)
      pos:
        line_end: 2696
        line_start: 2696
        source_file: /src/Python-3.8.3/Python/getargs.c
    - condition: (min <= max)
      pos:
        line_end: 2697
        line_start: 2697
        source_file: /src/Python-3.8.3/Python/getargs.c
    constantsTouched: []
    func_position:
      end: 2735
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2735
    functionName: _PyArg_CheckPositional
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 334
    functionsReached:
    - assert
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: "int _PyArg_CheckPositional(const char *name, Py_ssize_t nargs,\n                       Py_ssize_t
      min, Py_ssize_t max)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/getargs.c:2744,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/Python/getargs.c:2749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 6
    argNames:
    - args
    - nargs
    - name
    - min
    - max
    - vargs
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2753
    functionName: unpack_stack
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - va_arg
    linkageType: ''
    returnType: int
    signature: "int unpack_stack(PyObject *const *args, Py_ssize_t nargs, const char
      *name,\n             Py_ssize_t min, Py_ssize_t max, va_list vargs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/getargs.c:2763,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/getargs.c:2764,1
    - Dst: _PyTuple_ITEMS
      Src: /src/Python-3.8.3/Python/getargs.c:2768,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2769,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:2772,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:2774,1
    - Dst: unpack_stack
      Src: /src/Python-3.8.3/Python/getargs.c:2776,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:2777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - args
    - name
    - min
    - max
    argTypes:
    - PyObject*
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2755
    functionDepth: 1
    functionLinenumber: 2755
    functionLinenumberEnd: 2779
    functionName: PyArg_UnpackTuple
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 51
    functionsReached:
    - va_start
    - PyTuple_GET_SIZE
    - _PyTuple_ITEMS
    - PyTuple_Check
    - PyErr_SetString
    - va_end
    - unpack_stack
    linkageType: ''
    returnType: int
    signature: int PyArg_UnpackTuple(PyObject *args, const char *name, Py_ssize_t
      min, Py_ssize_t max, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:2789,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/getargs.c:2791,1
    - Dst: unpack_stack
      Src: /src/Python-3.8.3/Python/getargs.c:2793,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/getargs.c:2794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - args
    - nargs
    - name
    - min
    - max
    argTypes:
    - PyObject**
    - Py_ssize_t
    - char*
    - Py_ssize_t
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2781
    functionDepth: 1
    functionLinenumber: 2781
    functionLinenumberEnd: 2796
    functionName: _PyArg_UnpackStack
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 2
    functionsReached:
    - va_start
    - va_end
    - unpack_stack
    linkageType: ''
    returnType: int
    signature: "int _PyArg_UnpackStack(PyObject *const *args, Py_ssize_t nargs, const
      char *name,\n                   Py_ssize_t min, Py_ssize_t max, ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/getargs.c:2813,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2814,1
    - Dst: PyDict_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2817,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - funcname
    - kwargs
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2824
    functionName: _PyArg_NoKeywords
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 51
    functionsReached:
    - PyDict_GET_SIZE
    - PyErr_Format
    - PyErr_BadInternalCall
    - PyDict_CheckExact
    linkageType: ''
    returnType: int
    signature: int _PyArg_NoKeywords(const char *funcname, PyObject *kwargs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/getargs.c:2832,1
    - Dst: PyErr_BadInternalCall
      Src: /src/Python-3.8.3/Python/getargs.c:2833,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/getargs.c:2836,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/getargs.c:2839,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - funcname
    - args
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2842
    functionName: _PyArg_NoPositional
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 4
    functionsReached:
    - PyErr_Format
    - PyErr_BadInternalCall
    - PyTuple_GET_SIZE
    - PyTuple_CheckExact
    linkageType: ''
    returnType: int
    signature: int _PyArg_NoPositional(const char *funcname, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser_clear
      Src: /src/Python-3.8.3/Python/getargs.c:2851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2844
    functionDepth: 2
    functionLinenumber: 2844
    functionLinenumberEnd: 2855
    functionName: _PyArg_Fini
    functionSourceFile: /src/Python-3.8.3/Python/getargs.c
    functionUses: 0
    functionsReached:
    - parser_clear
    linkageType: ''
    returnType: void
    signature: void _PyArg_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: Bug
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bug(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: word0
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: word1
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: word0
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: word1
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: dval
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dval(x)
  - 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: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: Storeinc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Storeinc(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: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Storeinc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Storeinc(a,b,c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Python/dtoa.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 381
    functionName: Balloc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - MALLOC
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Python/dtoa.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: Bfree
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void Bfree(Bigint *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MALLOC
      Src: /src/Python-3.8.3/Python/dtoa.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 426
    functionName: Balloc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - MALLOC
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      Balloc(int k)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREE
      Src: /src/Python-3.8.3/Python/dtoa.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: Bfree
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - FREE
    linkageType: ''
    returnType: void
    signature: void Bfree(Bigint *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: Bcopy
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Bcopy(x,y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:467,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:469,1
    - Dst: Bcopy
      Src: /src/Python-3.8.3/Python/dtoa.c:472,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - b
    - m
    - a
    argTypes:
    - Bigint*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 480
    functionName: multadd
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Bcopy
    - Bfree
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      multadd(Bigint *b, int m, int a)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:497,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:508,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:514,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - s
    - nd0
    - nd
    - y9
    argTypes:
    - char*
    - int
    - int
    - ULong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 519
    functionName: s2b
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - multadd
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      s2b(const char *s, int nd0, int nd, ULong y9)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - ULong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 550
    functionName: hi0bits
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hi0bits(ULong x)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - y
    argTypes:
    - ULong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 596
    functionName: lo0bits
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int lo0bits(ULong *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 611
    functionName: i2b
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      i2b(int i)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:626,1
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 672
    functionName: mult
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      mult(Bigint *a, Bigint *b)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:692,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:702,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:704,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:712,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:713,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:722,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:724,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 733
    functionName: pow5mult
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - i2b
    - mult
    - Bfree
    - multadd
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:748,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:755,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:757,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:763,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:764,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:767,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:773,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:774,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:777,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:781,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 740
    functionDepth: 3
    functionLinenumber: 740
    functionLinenumberEnd: 783
    functionName: pow5mult
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - i2b
    - mult
    - Bfree
    - multadd
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      pow5mult(Bigint *b, int k)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:806,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:808,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:831,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - b
    - k
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 833
    functionName: lshift
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 6
    functionsReached:
    - Bfree
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      lshift(Bigint *b, int k)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/Python-3.8.3/Python/dtoa.c:848,1
    - Dst: Bug
      Src: /src/Python-3.8.3/Python/dtoa.c:850,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 865
    functionName: cmp
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 188
    functionsReached:
    - Bug
    linkageType: ''
    returnType: int
    signature: int cmp(Bigint *a, Bigint *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:879,1
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:881,1
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 923
    functionName: diff
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 10
    functionsReached:
    - cmp
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      diff(Bigint *a, Bigint *b)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:934,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:935,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:936,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 938
    functionName: ulp
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word0
    - dval
    - word1
    linkageType: ''
    returnType: double
    signature: double ulp(U *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/Python-3.8.3/Python/dtoa.c:953,1
    - Dst: hi0bits
      Src: /src/Python-3.8.3/Python/dtoa.c:955,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:958,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:960,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:965,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:967,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:970,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:971,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:974,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - a
    - e
    argTypes:
    - Bigint*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 975
    functionName: b2d
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    - word1
    - Bug
    - word0
    - dval
    linkageType: ''
    returnType: double
    signature: double b2d(Bigint *a, int *e)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:1003,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1009,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1010,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1011,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/dtoa.c:1024,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/dtoa.c:1027,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/dtoa.c:1034,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - d
    - scale
    - e
    argTypes:
    - U*
    - int
    - int*
    assertStmts:
    - condition: (0 < scale && scale <= P - 1)
      pos:
        line_end: 1023
        line_start: 1023
        source_file: /src/Python-3.8.3/Python/dtoa.c
    - condition: (b->x[0] == 0)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/Python-3.8.3/Python/dtoa.c
    - condition: (b->x[0] << (32 - scale) == 0)
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/Python-3.8.3/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1045
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1045
    functionName: sd2b
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word0
    - assert
    - word1
    - Balloc
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      sd2b(U *d, int scale, int *e)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:1064,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1069,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1070,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1071,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1073,1
    - Dst: lo0bits
      Src: /src/Python-3.8.3/Python/dtoa.c:1074,1
    - Dst: lo0bits
      Src: /src/Python-3.8.3/Python/dtoa.c:1084,1
    - Dst: hi0bits
      Src: /src/Python-3.8.3/Python/dtoa.c:1096,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - d
    - e
    - bits
    argTypes:
    - U*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1099
    functionName: d2b
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    - word1
    - lo0bits
    - Balloc
    - word0
    linkageType: ''
    returnType: Bigint
    signature: 'Bigint *

      d2b(U *d, int *e, int *bits)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1110,1
    - Dst: b2d
      Src: /src/Python-3.8.3/Python/dtoa.c:1110,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1111,1
    - Dst: b2d
      Src: /src/Python-3.8.3/Python/dtoa.c:1111,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1114,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1117,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1119,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1120
    functionName: ratio
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - word0
    - b2d
    - dval
    linkageType: ''
    returnType: double
    signature: double ratio(Bigint *a, Bigint *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hi0bits
      Src: /src/Python-3.8.3/Python/dtoa.c:1148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - p2
    argTypes:
    - Bigint*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1152
    functionName: dshift
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - hi0bits
    linkageType: ''
    returnType: int
    signature: int dshift(Bigint *b, int p2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Bug
      Src: /src/Python-3.8.3/Python/dtoa.c:1168,1
    - Dst: Bug
      Src: /src/Python-3.8.3/Python/dtoa.c:1179,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:1199,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 2
    argNames:
    - b
    - S
    argTypes:
    - Bigint*
    - Bigint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1222
    functionName: quorem
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - cmp
    - Bug
    linkageType: ''
    returnType: int
    signature: int quorem(Bigint *b, Bigint *S)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1235,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1237,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1238,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/dtoa.c:1242,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1242,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1242,1
    - Dst: ulp
      Src: /src/Python-3.8.3/Python/dtoa.c:1243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - x
    - bc
    argTypes:
    - U*
    - BCinfo*
    assertStmts:
    - condition: (word0(x) || word1(x))
      pos:
        line_end: 1241
        line_start: 1241
        source_file: /src/Python-3.8.3/Python/dtoa.c
    constantsTouched: []
    func_position:
      end: 1245
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1245
    functionName: sulp
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - word0
    - assert
    - word1
    - ulp
    linkageType: ''
    returnType: double
    signature: double sulp(U *x, BCinfo *bc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sd2b
      Src: /src/Python-3.8.3/Python/dtoa.c:1302,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1312,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:1319,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1321,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:1328,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1330,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:1335,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1337,1
    - Dst: dshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1349,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1351,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1353,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1358,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1360,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:1368,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:1374,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1376,1
    - Dst: quorem
      Src: /src/Python-3.8.3/Python/dtoa.c:1379,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1396,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1397,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1399,1
    - Dst: sulp
      Src: /src/Python-3.8.3/Python/dtoa.c:1399,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 3
    argNames:
    - rv
    - s0
    - bc
    argTypes:
    - U*
    - char*
    - BCinfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1293
    functionDepth: 4
    functionLinenumber: 1293
    functionLinenumberEnd: 1401
    functionName: bigcomp
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - cmp
    - i2b
    - Bfree
    - lshift
    - dshift
    - sd2b
    - sulp
    - dval
    - pow5mult
    - multadd
    - quorem
    linkageType: ''
    returnType: int
    signature: int bigcomp(U *rv, const char *s0, BCinfo *bc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1414,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1415,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1417,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1419
    functionName: _Py_dg_stdnan
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 4
    functionsReached:
    - word0
    - dval
    - word1
    linkageType: ''
    returnType: double
    signature: double _Py_dg_stdnan(int sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1428,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1429,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1430,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sign
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1431
    functionName: _Py_dg_infinity
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 4
    functionsReached:
    - word0
    - dval
    - word1
    linkageType: ''
    returnType: double
    signature: double _Py_dg_infinity(int sign)
  - BBCount: 113
    BranchProfiles: []
    Callsites:
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1448,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1634,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1636,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1636,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1645,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1654,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1655,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1660,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1672,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1679,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1681,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1682,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1683,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1689,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1690,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1693,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1709,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1717,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1718,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1722,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1724,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1726,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1729,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1731,1
    - Dst: s2b
      Src: /src/Python-3.8.3/Python/dtoa.c:1773,1
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:1805,1
    - Dst: Bcopy
      Src: /src/Python-3.8.3/Python/dtoa.c:1809,1
    - Dst: sd2b
      Src: /src/Python-3.8.3/Python/dtoa.c:1810,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:1819,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:1869,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:1873,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:1874,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1881,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:1887,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1893,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1899,1
    - Dst: diff
      Src: /src/Python-3.8.3/Python/dtoa.c:1909,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:1915,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1931,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1931,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1934,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:1938,1
    - Dst: sulp
      Src: /src/Python-3.8.3/Python/dtoa.c:1938,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1953,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1953,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1954,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:1962,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:1966,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1973,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1974,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1976,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1980,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1980,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1983,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1988,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:1988,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:1992,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2004,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2005,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2006,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2012,1
    - Dst: sulp
      Src: /src/Python-3.8.3/Python/dtoa.c:2012,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2014,1
    - Dst: sulp
      Src: /src/Python-3.8.3/Python/dtoa.c:2014,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2015,1
    - Dst: ratio
      Src: /src/Python-3.8.3/Python/dtoa.c:2024,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2027,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2027,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2028,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2028,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2053,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2058,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2058,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2059,1
    - Dst: ulp
      Src: /src/Python-3.8.3/Python/dtoa.c:2060,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2061,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2062,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2064,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2064,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2067,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2068,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2072,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2082,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2083,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2084,1
    - Dst: ulp
      Src: /src/Python-3.8.3/Python/dtoa.c:2086,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2087,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2089,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2097,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2097,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2106,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2107,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2108,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2109,1
    - Dst: bigcomp
      Src: /src/Python-3.8.3/Python/dtoa.c:2112,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2118,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2119,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2120,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2120,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2124,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2124,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2143,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2144,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2145,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2145,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2149,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2150,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2151,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2152,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2153,1
    CyclomaticComplexity: 204
    EdgeCount: 204
    ICount: 503
    argCount: 2
    argNames:
    - s00
    - se
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 1433
    functionDepth: 5
    functionLinenumber: 1433
    functionLinenumberEnd: 2156
    functionName: _Py_dg_strtod
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - s2b
    - mult
    - cmp
    - diff
    - i2b
    - bigcomp
    - Bfree
    - lshift
    - word1
    - sd2b
    - ulp
    - sulp
    - ratio
    - Balloc
    - word0
    - Bcopy
    - dval
    - pow5mult
    linkageType: ''
    returnType: double
    signature: double _Py_dg_strtod(const char *s00, char **se)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2173
    functionName: rv_alloc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - Balloc
    linkageType: ''
    returnType: char
    signature: 'char *

      rv_alloc(int i)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rv_alloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - s
    - rve
    - n
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2175
    functionDepth: 3
    functionLinenumber: 2175
    functionLinenumberEnd: 2188
    functionName: nrv_alloc
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 0
    functionsReached:
    - rv_alloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nrv_alloc(const char *s, char **rve, int n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2196
    functionDepth: 2
    functionLinenumber: 2196
    functionLinenumberEnd: 2202
    functionName: _Py_dg_freedtoa
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - Bfree
    linkageType: ''
    returnType: void
    signature: void _Py_dg_freedtoa(char *s)
  - BBCount: 115
    BranchProfiles: []
    Callsites:
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2297,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2300,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2306,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2310,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2310,1
    - Dst: nrv_alloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2311,1
    - Dst: nrv_alloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2312,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2314,1
    - Dst: nrv_alloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2316,1
    - Dst: d2b
      Src: /src/Python-3.8.3/Python/dtoa.c:2321,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2324,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2325,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2325,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2326,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2327,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2358,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2358,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2359,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2360,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2361,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2365,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2372,1
    - Dst: rv_alloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2431,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2442,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2442,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2452,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2460,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2463,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2467,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2470,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2475,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2478,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2478,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2479,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2482,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2483,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2483,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2485,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2485,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2493,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2493,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2495,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2496,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2498,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2498,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2500,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2500,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2504,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2505,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2510,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2511,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2512,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2513,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2517,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2517,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2519,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2519,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2530,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2530,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2542,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2546,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2547,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2548,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2550,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2554,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2554,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2555,1
    - Dst: dval
      Src: /src/Python-3.8.3/Python/dtoa.c:2555,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:2579,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:2592,1
    - Dst: mult
      Src: /src/Python-3.8.3/Python/dtoa.c:2595,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2596,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:2602,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:2608,1
    - Dst: i2b
      Src: /src/Python-3.8.3/Python/dtoa.c:2613,1
    - Dst: pow5mult
      Src: /src/Python-3.8.3/Python/dtoa.c:2617,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2627,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2627,1
    - Dst: word0
      Src: /src/Python-3.8.3/Python/dtoa.c:2628,1
    - Dst: dshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2645,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2650,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2655,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2660,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2662,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2666,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2681,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2684,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2694,1
    - Dst: Balloc
      Src: /src/Python-3.8.3/Python/dtoa.c:2705,1
    - Dst: Bcopy
      Src: /src/Python-3.8.3/Python/dtoa.c:2708,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2709,1
    - Dst: quorem
      Src: /src/Python-3.8.3/Python/dtoa.c:2715,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2719,1
    - Dst: diff
      Src: /src/Python-3.8.3/Python/dtoa.c:2720,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2723,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2724,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2725,1
    - Dst: word1
      Src: /src/Python-3.8.3/Python/dtoa.c:2735,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2741,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2744,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2765,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2769,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2774,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2777,1
    - Dst: quorem
      Src: /src/Python-3.8.3/Python/dtoa.c:2785,1
    - Dst: multadd
      Src: /src/Python-3.8.3/Python/dtoa.c:2791,1
    - Dst: lshift
      Src: /src/Python-3.8.3/Python/dtoa.c:2798,1
    - Dst: cmp
      Src: /src/Python-3.8.3/Python/dtoa.c:2801,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2817,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2820,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2821,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2824,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2832,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2834,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2836,1
    - Dst: Bfree
      Src: /src/Python-3.8.3/Python/dtoa.c:2838,1
    - Dst: _Py_dg_freedtoa
      Src: /src/Python-3.8.3/Python/dtoa.c:2840,1
    CyclomaticComplexity: 210
    EdgeCount: 210
    ICount: 509
    argCount: 6
    argNames:
    - dd
    - mode
    - ndigits
    - decpt
    - sign
    - rve
    argTypes:
    - double
    - int
    - int
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2242
    functionDepth: 4
    functionLinenumber: 2242
    functionLinenumberEnd: 2842
    functionName: _Py_dg_dtoa
    functionSourceFile: /src/Python-3.8.3/Python/dtoa.c
    functionUses: 2
    functionsReached:
    - diff
    - d2b
    - nrv_alloc
    - i2b
    - rv_alloc
    - word1
    - Balloc
    - Bcopy
    - quorem
    - mult
    - lshift
    - word0
    - pow5mult
    - cmp
    - Bfree
    - dshift
    - _Py_dg_freedtoa
    - dval
    - multadd
    linkageType: ''
    returnType: char
    signature: "char *\n_Py_dg_dtoa(double dd, int mode, int ndigits,\n            int
      *decpt, int *sign, char **rve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: dprintf
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dprintf(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: d2printf
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d2printf(args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_GETENV
      Src: /src/Python-3.8.3/Python/thread.c:64,1
    - Dst: atoi
      Src: /src/Python-3.8.3/Python/thread.c:68,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread.c:76,1
    - Dst: PyThread__init_thread
      Src: /src/Python-3.8.3/Python/thread.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: PyThread_init_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 7
    functionsReached:
    - atoi
    - PyThread__init_thread
    - dprintf
    - Py_GETENV
    linkageType: ''
    returnType: void
    signature: void PyThread_init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/thread.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: PyThread_get_stacksize
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: size_t
    signature: size_t PyThread_get_stacksize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: THREAD_SET_STACKSIZE
      Src: /src/Python-3.8.3/Python/thread.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: PyThread_set_stacksize
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 1
    functionsReached:
    - THREAD_SET_STACKSIZE
    linkageType: ''
    returnType: int
    signature: int PyThread_set_stacksize(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/thread.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: PyThread_tss_alloc
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 1
    functionsReached:
    - PyMem_RawMalloc
    linkageType: ''
    returnType: Py_tss_t
    signature: 'Py_tss_t *

      PyThread_tss_alloc(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_tss_delete
      Src: /src/Python-3.8.3/Python/thread.c:134,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: PyThread_tss_free
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 1
    functionsReached:
    - PyThread_tss_delete
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void PyThread_tss_free(Py_tss_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/Python-3.8.3/Python/thread.c
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: PyThread_tss_is_created
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_is_created(Py_tss_t *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/thread.c:180,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/thread.c:184,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/thread.c:188,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/thread.c:190,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/thread.c:193,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/thread.c:197,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/thread.c:199,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/thread.c:202,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/thread.c:206,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/thread.c:209,1
    - Dst: confstr
      Src: /src/Python-3.8.3/Python/thread.c:214,1
    - Dst: PyUnicode_DecodeFSDefaultAndSize
      Src: /src/Python-3.8.3/Python/thread.c:216,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/thread.c:218,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/thread.c:223,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/thread.c:226,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 228
    functionName: PyThread_GetInfo
    functionSourceFile: /src/Python-3.8.3/Python/thread.c
    functionUses: 0
    functionsReached:
    - PyUnicode_DecodeFSDefaultAndSize
    - PyUnicode_FromString
    - PyStructSequence_InitType2
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - Py_INCREF
    - PyStructSequence_New
    - confstr
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyThread_GetInfo(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: w_byte
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: w_byte(c, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:100,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/Python/marshal.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - WFILE*
    assertStmts:
    - condition: (p->fp != NULL)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: w_flush
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - assert
    - fwrite
    linkageType: ''
    returnType: void
    signature: void w_flush(WFILE *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: w_flush
      Src: /src/Python-3.8.3/Python/marshal.c:112,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:115,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Python/marshal.c:117,1
    - Dst: Py_MAX
      Src: /src/Python-3.8.3/Python/marshal.c:122,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/marshal.c:128,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - p
    - needed
    argTypes:
    - WFILE*
    - Py_ssize_t
    assertStmts:
    - condition: (p->str != NULL)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 138
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 138
    functionName: w_reserve
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_flush
    - Py_MAX
    - PyBytes_Size
    - _PyBytes_Resize
    - PyBytes_AS_STRING
    - assert
    linkageType: ''
    returnType: int
    signature: int w_reserve(WFILE *p, Py_ssize_t needed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/marshal.c:149,1
    - Dst: w_flush
      Src: /src/Python-3.8.3/Python/marshal.c:153,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/Python/marshal.c:154,1
    - Dst: w_reserve
      Src: /src/Python-3.8.3/Python/marshal.c:158,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/marshal.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - char*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 163
    functionName: w_string
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 4
    functionsReached:
    - w_reserve
    - memcpy
    - fwrite
    - w_flush
    linkageType: ''
    returnType: void
    signature: void w_string(const char *s, Py_ssize_t n, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:168,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - int
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: w_short
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_byte
    linkageType: ''
    returnType: void
    signature: void w_short(int x, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:175,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:176,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:177,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - x
    - p
    argTypes:
    - long
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: w_long
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_byte
    linkageType: ''
    returnType: void
    signature: void w_long(long x, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: W_SIZE
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_SIZE(n, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: W_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:199,1
    - Dst: w_string
      Src: /src/Python-3.8.3/Python/marshal.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - char*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: w_pstring
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - W_SIZE
    - w_string
    linkageType: ''
    returnType: void
    signature: void w_pstring(const char *s, Py_ssize_t n, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: w_string
      Src: /src/Python-3.8.3/Python/marshal.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - n
    - p
    argTypes:
    - char*
    - Py_ssize_t
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 5
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: w_short_pstring
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_string
    linkageType: ''
    returnType: void
    signature: void w_short_pstring(const char *s, Py_ssize_t n, WFILE *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: W_TYPE
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: W_TYPE(t, p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:232,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:233,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:234,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Python/marshal.c:239,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:239,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:242,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:252,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:252,1
    - Dst: w_short
      Src: /src/Python-3.8.3/Python/marshal.c:257,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:260,1
    - Dst: w_short
      Src: /src/Python-3.8.3/Python/marshal.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - ob
    - flag
    - p
    argTypes:
    - PyLongObject*
    - char
    - WFILE*
    assertStmts:
    - condition: (d != 0)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/Python-3.8.3/Python/marshal.c
    - condition: (d == 0)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 267
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 267
    functionName: w_PyLong
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - W_TYPE
    - w_long
    - assert
    - w_short
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: void
    signature: void w_PyLong(const PyLongObject *ob, char flag, WFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyFloat_Pack8
      Src: /src/Python-3.8.3/Python/marshal.c:273,1
    - Dst: w_string
      Src: /src/Python-3.8.3/Python/marshal.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: w_float_bin
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_string
    - _PyFloat_Pack8
    linkageType: ''
    returnType: void
    signature: void w_float_bin(double v, WFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_double_to_string
      Src: /src/Python-3.8.3/Python/marshal.c:284,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/marshal.c:289,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:290,1
    - Dst: w_string
      Src: /src/Python-3.8.3/Python/marshal.c:291,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/marshal.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - double
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: w_float_str
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyOS_double_to_string
    - strlen
    - PyMem_Free
    - w_string
    - w_byte
    linkageType: ''
    returnType: void
    signature: void w_float_str(double v, WFILE *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Python/marshal.c:305,1
    - Dst: _Py_HASHTABLE_GET_ENTRY
      Src: /src/Python-3.8.3/Python/marshal.c:308,1
    - Dst: _Py_HASHTABLE_ENTRY_READ_DATA
      Src: /src/Python-3.8.3/Python/marshal.c:311,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:313,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:314,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:315,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:321,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:325,1
    - Dst: _Py_HASHTABLE_SET
      Src: /src/Python-3.8.3/Python/marshal.c:326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char*
    - WFILE*
    assertStmts:
    - condition: (0 <= w && w <= 0x7fffffff)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 336
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 336
    functionName: w_ref
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - w_long
    - _Py_HASHTABLE_SET
    - Py_DECREF
    - Py_INCREF
    - Py_REFCNT
    - _Py_HASHTABLE_ENTRY_READ_DATA
    - PyErr_SetString
    - assert
    - _Py_HASHTABLE_GET_ENTRY
    - w_byte
    linkageType: ''
    returnType: int
    signature: int w_ref(PyObject *v, char *flag, WFILE *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:352,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:355,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:358,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:361,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:364,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:367,1
    - Dst: w_ref
      Src: /src/Python-3.8.3/Python/marshal.c:369,1
    - Dst: w_complex_object
      Src: /src/Python-3.8.3/Python/marshal.c:370,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - v
    - p
    argTypes:
    - PyObject*
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 373
    functionName: w_object
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 8
    functionsReached:
    - w_complex_object
    - w_byte
    - w_ref
    linkageType: ''
    returnType: void
    signature: void w_object(PyObject *v, WFILE *p)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:380,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/marshal.c:381,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:382,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/marshal.c:384,1
    - Dst: w_PyLong
      Src: /src/Python-3.8.3/Python/marshal.c:385,1
    - Dst: Py_ARITHMETIC_RIGHT_SHIFT
      Src: /src/Python-3.8.3/Python/marshal.c:389,1
    - Dst: w_PyLong
      Src: /src/Python-3.8.3/Python/marshal.c:392,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:397,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:398,1
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:402,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:404,1
    - Dst: w_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:405,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Python/marshal.c:405,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:408,1
    - Dst: w_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:409,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Python/marshal.c:409,1
    - Dst: PyComplex_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:412,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:414,1
    - Dst: w_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:415,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/Python-3.8.3/Python/marshal.c:415,1
    - Dst: w_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:416,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/Python-3.8.3/Python/marshal.c:416,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:419,1
    - Dst: w_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:420,1
    - Dst: PyComplex_RealAsDouble
      Src: /src/Python-3.8.3/Python/marshal.c:420,1
    - Dst: w_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:421,1
    - Dst: PyComplex_ImagAsDouble
      Src: /src/Python-3.8.3/Python/marshal.c:421,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:424,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:425,1
    - Dst: w_pstring
      Src: /src/Python-3.8.3/Python/marshal.c:426,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:426,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:426,1
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:428,1
    - Dst: PyUnicode_IS_ASCII
      Src: /src/Python-3.8.3/Python/marshal.c:429,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/marshal.c:430,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Python/marshal.c:432,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:433,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:435,1
    - Dst: w_short_pstring
      Src: /src/Python-3.8.3/Python/marshal.c:436,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/marshal.c:436,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/marshal.c:437,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Python/marshal.c:440,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:441,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:443,1
    - Dst: w_pstring
      Src: /src/Python-3.8.3/Python/marshal.c:444,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/marshal.c:444,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/marshal.c:445,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/marshal.c:450,1
    - Dst: PyUnicode_CHECK_INTERNED
      Src: /src/Python-3.8.3/Python/marshal.c:456,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:457,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:459,1
    - Dst: w_pstring
      Src: /src/Python-3.8.3/Python/marshal.c:460,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:460,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:460,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:461,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:464,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/marshal.c:465,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:467,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:468,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:471,1
    - Dst: W_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:472,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:475,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:475,1
    - Dst: PyList_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:478,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:479,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:480,1
    - Dst: W_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:481,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:483,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:483,1
    - Dst: PyDict_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:486,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:489,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/marshal.c:492,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:493,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:494,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:496,1
    - Dst: PyAnySet_CheckExact
      Src: /src/Python-3.8.3/Python/marshal.c:498,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/marshal.c:501,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:502,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:504,1
    - Dst: PyObject_Size
      Src: /src/Python-3.8.3/Python/marshal.c:505,1
    - Dst: W_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:511,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/marshal.c:512,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/marshal.c:518,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:519,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:522,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:523,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/marshal.c:529,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:531,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:532,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:533,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:534,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:535,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:536,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:537,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:538,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:539,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:540,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:541,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:542,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:543,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:544,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:545,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:546,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:547,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/Python/marshal.c:549,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/marshal.c:552,1
    - Dst: w_byte
      Src: /src/Python-3.8.3/Python/marshal.c:553,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:558,1
    - Dst: w_pstring
      Src: /src/Python-3.8.3/Python/marshal.c:559,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/marshal.c:560,1
    - Dst: W_TYPE
      Src: /src/Python-3.8.3/Python/marshal.c:563,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 156
    argCount: 3
    argNames:
    - v
    - flag
    - p
    argTypes:
    - PyObject*
    - char
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 375
    functionDepth: 6
    functionLinenumber: 375
    functionLinenumberEnd: 566
    functionName: w_complex_object
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyObject_Size
    - w_long
    - PyLong_AsLong
    - w_float_bin
    - w_byte
    - PyObject_CheckBuffer
    - w_object
    - PyObject_TypeCheck
    - w_float_str
    - PyDict_CheckExact
    - PyIter_Next
    - PyUnicode_CHECK_INTERNED
    - PyObject_GetIter
    - PyUnicode_CheckExact
    - PyAnySet_CheckExact
    - W_TYPE
    - PyObject_GetBuffer
    - PyErr_Occurred
    - PyList_GET_ITEM
    - w_short_pstring
    - PyComplex_CheckExact
    - PyUnicode_IS_ASCII
    - PyUnicode_1BYTE_DATA
    - PyErr_Clear
    - PyUnicode_GET_LENGTH
    - W_SIZE
    - PyDict_Next
    - Py_DECREF
    - PyFloat_AS_DOUBLE
    - PyComplex_RealAsDouble
    - PyCode_Check
    - PyBytes_GET_SIZE
    - PyUnicode_AsEncodedString
    - PyBytes_AS_STRING
    - PyTuple_CheckExact
    - PyList_CheckExact
    - w_pstring
    - w_PyLong
    - PyBytes_CheckExact
    - PyLong_CheckExact
    - PyComplex_ImagAsDouble
    - PyBuffer_Release
    - PyTuple_Size
    - Py_ARITHMETIC_RIGHT_SHIFT
    - PyList_GET_SIZE
    - PyTuple_GET_ITEM
    - PyFloat_CheckExact
    linkageType: ''
    returnType: void
    signature: void w_complex_object(PyObject *v, char flag, WFILE *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_new
      Src: /src/Python-3.8.3/Python/marshal.c:572,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/marshal.c:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - wf
    - version
    argTypes:
    - WFILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: w_init_refs
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - _Py_hashtable_new
    linkageType: ''
    returnType: int
    signature: int w_init_refs(WFILE *wf, int version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HASHTABLE_ENTRY_READ_KEY
      Src: /src/Python-3.8.3/Python/marshal.c:589,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ht
    - entry
    - Py_UNUSED(data)
    argTypes:
    - _Py_hashtable_t*
    - _Py_hashtable_entry_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 592
    functionName: w_decref_entry
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - _Py_HASHTABLE_ENTRY_READ_KEY
    linkageType: ''
    returnType: int
    signature: "int w_decref_entry(_Py_hashtable_t *ht, _Py_hashtable_entry_t *entry,\n
      \              void *Py_UNUSED(data))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_hashtable_foreach
      Src: /src/Python-3.8.3/Python/marshal.c:598,1
    - Dst: _Py_hashtable_destroy
      Src: /src/Python-3.8.3/Python/marshal.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - wf
    argTypes:
    - WFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: w_clear_refs
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _Py_hashtable_foreach
    - _Py_hashtable_destroy
    linkageType: ''
    returnType: void
    signature: void w_clear_refs(WFILE *wf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/marshal.c:609,1
    - Dst: w_long
      Src: /src/Python-3.8.3/Python/marshal.c:615,1
    - Dst: w_flush
      Src: /src/Python-3.8.3/Python/marshal.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - long
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 617
    functionName: PyMarshal_WriteLongToFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - w_long
    - memset
    - w_flush
    linkageType: ''
    returnType: void
    signature: void PyMarshal_WriteLongToFile(long x, FILE *fp, int version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/marshal.c:624,1
    - Dst: w_init_refs
      Src: /src/Python-3.8.3/Python/marshal.c:630,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:632,1
    - Dst: w_clear_refs
      Src: /src/Python-3.8.3/Python/marshal.c:633,1
    - Dst: w_flush
      Src: /src/Python-3.8.3/Python/marshal.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - x
    - fp
    - version
    argTypes:
    - PyObject*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 619
    functionDepth: 4
    functionLinenumber: 619
    functionLinenumberEnd: 635
    functionName: PyMarshal_WriteObjectToFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - w_init_refs
    - w_flush
    - w_object
    - w_clear_refs
    - memset
    linkageType: ''
    returnType: void
    signature: void PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:658,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Python/marshal.c:666,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/marshal.c:668,1
    - Dst: PyMem_REALLOC
      Src: /src/Python-3.8.3/Python/marshal.c:674,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/marshal.c:676,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:684,1
    - Dst: fread
      Src: /src/Python-3.8.3/Python/marshal.c:685,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/marshal.c:688,1
    - Dst: PyBuffer_FillInfo
      Src: /src/Python-3.8.3/Python/marshal.c:692,1
    - Dst: PyMemoryView_FromBuffer
      Src: /src/Python-3.8.3/Python/marshal.c:694,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/marshal.c:698,1
    - Dst: PyNumber_AsSsize_t
      Src: /src/Python-3.8.3/Python/marshal.c:700,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:701,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:705,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/marshal.c:707,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:712,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - n
    - p
    argTypes:
    - Py_ssize_t
    - RFILE*
    assertStmts:
    - condition: (p->fp != NULL)
      pos:
        line_end: 683
        line_start: 683
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 718
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 718
    functionName: r_string
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 9
    functionsReached:
    - PyBuffer_FillInfo
    - PyMemoryView_FromBuffer
    - PyErr_Occurred
    - Py_DECREF
    - PyMem_MALLOC
    - PyErr_NoMemory
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyMem_REALLOC
    - PyErr_Format
    - PyErr_SetString
    - fread
    - assert
    - PyNumber_AsSsize_t
    linkageType: ''
    returnType: char
    signature: 'char *

      r_string(Py_ssize_t n, RFILE *p)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:731,1
    - Dst: getc
      Src: /src/Python-3.8.3/Python/marshal.c:732,1
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:735,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts:
    - condition: (p->fp)
      pos:
        line_end: 730
        line_start: 730
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 740
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 740
    functionName: r_byte
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - assert
    - getc
    - r_string
    linkageType: ''
    returnType: int
    signature: int r_byte(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: r_short
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_string
    linkageType: ''
    returnType: int
    signature: int r_short(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 776
    functionName: r_long
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 2
    functionsReached:
    - r_string
    linkageType: ''
    returnType: long
    signature: long r_long(RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:782,1
    - Dst: _PyLong_FromByteArray
      Src: /src/Python-3.8.3/Python/marshal.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 779
    functionDepth: 3
    functionLinenumber: 779
    functionLinenumberEnd: 789
    functionName: r_long64
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _PyLong_FromByteArray
    - r_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_long64(RFILE *p)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:799,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:800,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Python/marshal.c:803,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:805,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Python/marshal.c:810,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Python/marshal.c:811,1
    - Dst: _PyLong_New
      Src: /src/Python-3.8.3/Python/marshal.c:812,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:816,1
    - Dst: r_short
      Src: /src/Python-3.8.3/Python/marshal.c:821,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:822,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:823,1
    - Dst: r_short
      Src: /src/Python-3.8.3/Python/marshal.c:835,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:836,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:837,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:844,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:845,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:851,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:852,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:861,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 864
    functionName: r_PyLong
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - r_short
    - Py_DECREF
    - _PyLong_New
    - r_long
    - PyErr_SetString
    - Py_ABS
    - Py_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_PyLong(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:869,1
    - Dst: _PyFloat_Unpack8
      Src: /src/Python-3.8.3/Python/marshal.c:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: r_float_bin
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_string
    - _PyFloat_Unpack8
    linkageType: ''
    returnType: double
    signature: double r_float_bin(RFILE *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: r_byte
      Src: /src/Python-3.8.3/Python/marshal.c:883,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:885,1
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:889,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/marshal.c:893,1
    - Dst: PyOS_string_to_double
      Src: /src/Python-3.8.3/Python/marshal.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 896
    functionName: r_float_str
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - r_byte
    - memcpy
    - PyOS_string_to_double
    - PyErr_SetString
    - r_string
    linkageType: ''
    returnType: _Py_NO_INLINE
    signature: _Py_NO_INLINE r_float_str(RFILE *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:903,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:905,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/marshal.c:908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - flag
    - p
    argTypes:
    - int
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 899
    functionDepth: 4
    functionLinenumber: 899
    functionLinenumberEnd: 913
    functionName: r_ref_reserve
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - PyList_Append
    - PyErr_SetString
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t r_ref_reserve(int flag, RFILE *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:927,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:928,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:929,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - o
    - idx
    - flag
    - p
    argTypes:
    - PyObject*
    - Py_ssize_t
    - int
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 933
    functionName: r_ref_insert
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_SET_ITEM
    - Py_DECREF
    - PyList_GET_ITEM
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_ref_insert(PyObject *o, Py_ssize_t idx, int flag, RFILE *p)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:942,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/marshal.c:945,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - o
    - flag
    - p
    argTypes:
    - PyObject*
    - int
    - RFILE*
    assertStmts:
    - condition: (flag & FLAG_REF)
      pos:
        line_end: 941
        line_start: 941
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 950
      start: 939
    functionDepth: 4
    functionLinenumber: 939
    functionLinenumberEnd: 950
    functionName: r_ref
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - assert
    - PyList_Append
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_ref(PyObject *o, int flag, RFILE *p)'
  - BBCount: 101
    BranchProfiles: []
    Callsites:
    - Dst: r_byte
      Src: /src/Python-3.8.3/Python/marshal.c:960,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:965,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:974,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:992,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:997,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:1002,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:1007,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:1012,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1017,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1018,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/marshal.c:1018,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1019,1
    - Dst: r_long64
      Src: /src/Python-3.8.3/Python/marshal.c:1023,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1024,1
    - Dst: r_PyLong
      Src: /src/Python-3.8.3/Python/marshal.c:1028,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1029,1
    - Dst: r_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:1034,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1035,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/marshal.c:1037,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1038,1
    - Dst: r_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:1044,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1045,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/marshal.c:1047,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1048,1
    - Dst: r_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:1055,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1056,1
    - Dst: r_float_str
      Src: /src/Python-3.8.3/Python/marshal.c:1058,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1059,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Python/marshal.c:1061,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1062,1
    - Dst: r_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:1069,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1070,1
    - Dst: r_float_bin
      Src: /src/Python-3.8.3/Python/marshal.c:1072,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1073,1
    - Dst: PyComplex_FromCComplex
      Src: /src/Python-3.8.3/Python/marshal.c:1075,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1076,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1083,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1084,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1087,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/marshal.c:1090,1
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:1093,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1095,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/marshal.c:1098,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:1098,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1100,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1108,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1109,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1112,1
    - Dst: r_byte
      Src: /src/Python-3.8.3/Python/marshal.c:1121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1123,1
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:1130,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Python/marshal.c:1133,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/marshal.c:1137,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1139,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1150,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1154,1
    - Dst: r_string
      Src: /src/Python-3.8.3/Python/marshal.c:1158,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/marshal.c:1161,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/marshal.c:1164,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/marshal.c:1169,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1171,1
    - Dst: r_byte
      Src: /src/Python-3.8.3/Python/marshal.c:1176,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1177,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1181,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1182,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1185,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/marshal.c:1189,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1190,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1195,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1198,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1200,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:1204,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1210,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1211,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1214,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/marshal.c:1217,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1218,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1222,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1225,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1227,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:1231,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/marshal.c:1237,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1238,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1243,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1246,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1248,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/marshal.c:1251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1252,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1253,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1256,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1257,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1259,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1260,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1268,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1269,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1272,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/marshal.c:1278,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1281,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/marshal.c:1285,1
    - Dst: PyFrozenSet_New
      Src: /src/Python-3.8.3/Python/marshal.c:1285,1
    - Dst: R_REF
      Src: /src/Python-3.8.3/Python/marshal.c:1287,1
    - Dst: r_ref_reserve
      Src: /src/Python-3.8.3/Python/marshal.c:1292,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/marshal.c:1294,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1300,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1302,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1303,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1305,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/marshal.c:1309,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1315,1
    - Dst: r_ref_insert
      Src: /src/Python-3.8.3/Python/marshal.c:1318,1
    - Dst: r_ref_reserve
      Src: /src/Python-3.8.3/Python/marshal.c:1342,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1349,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1350,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1352,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1353,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1356,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1357,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1359,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1360,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1362,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1363,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1365,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1366,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1368,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1371,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1374,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1377,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1380,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1383,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1386,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1389,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1392,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1393,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1395,1
    - Dst: PyCode_NewWithPosOnlyArgs
      Src: /src/Python-3.8.3/Python/marshal.c:1399,1
    - Dst: r_ref_insert
      Src: /src/Python-3.8.3/Python/marshal.c:1405,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1408,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1409,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1410,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1411,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1412,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1414,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1415,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1416,1
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1422,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/marshal.c:1423,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1424,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1426,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/marshal.c:1429,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1431,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/marshal.c:1434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1441,1
    CyclomaticComplexity: 175
    EdgeCount: 175
    ICount: 407
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 952
    functionDepth: 11
    functionLinenumber: 952
    functionLinenumberEnd: 1447
    functionName: r_object
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 7
    functionsReached:
    - PyLong_FromLong
    - Py_CLEAR
    - r_float_str
    - PyDict_SetItem
    - PyList_New
    - r_ref_insert
    - PyBytes_FromStringAndSize
    - r_byte
    - PyErr_Occurred
    - PyFrozenSet_New
    - Py_INCREF
    - PyList_SET_ITEM
    - PyList_GET_ITEM
    - PyUnicode_DecodeUTF8
    - PyFloat_FromDouble
    - Py_XDECREF
    - PySet_Add
    - r_long64
    - PyUnicode_New
    - r_ref_reserve
    - Py_DECREF
    - PyComplex_FromCComplex
    - PyBytes_AS_STRING
    - PyCode_NewWithPosOnlyArgs
    - r_PyLong
    - _PyObject_CallNoArg
    - PyTuple_New
    - r_object
    - PyUnicode_FromKindAndData
    - memcpy
    - PyUnicode_InternInPlace
    - R_REF
    - PyDict_New
    - r_long
    - r_float_bin
    - PyErr_SetString
    - PyList_GET_SIZE
    - PySet_New
    - PyTuple_SET_ITEM
    - r_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      r_object(RFILE *p)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 985
    functionName: R_REF
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R_REF(O)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1453,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/marshal.c:1454,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1457,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/marshal.c:1458,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - RFILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1449
    functionDepth: 12
    functionLinenumber: 1449
    functionLinenumberEnd: 1461
    functionName: read_object
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - r_object
    - PyErr_SetString
    - fprintf
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      read_object(RFILE *p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/marshal.c:1468,1
    - Dst: r_short
      Src: /src/Python-3.8.3/Python/marshal.c:1473,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts:
    - condition: (fp)
      pos:
        line_end: 1467
        line_start: 1467
        source_file: /src/Python-3.8.3/Python/marshal.c
    constantsTouched: []
    func_position:
      end: 1477
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1477
    functionName: PyMarshal_ReadShortFromFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - assert
    - PyMem_FREE
    - r_short
    linkageType: ''
    returnType: int
    signature: int PyMarshal_ReadShortFromFile(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: r_long
      Src: /src/Python-3.8.3/Python/marshal.c:1488,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1492
    functionName: PyMarshal_ReadLongFromFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyMem_FREE
    - r_long
    linkageType: ''
    returnType: long
    signature: long PyMarshal_ReadLongFromFile(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Python/marshal.c:1499,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/marshal.c:1499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1495
    functionDepth: 4
    functionLinenumber: 1495
    functionLinenumberEnd: 1507
    functionName: getfilesize
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - _Py_fstat_noraise
    - fileno
    linkageType: ''
    returnType: off_t
    signature: off_t getfilesize(FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getfilesize
      Src: /src/Python-3.8.3/Python/marshal.c:1521,1
    - Dst: PyMem_MALLOC
      Src: /src/Python-3.8.3/Python/marshal.c:1523,1
    - Dst: fread
      Src: /src/Python-3.8.3/Python/marshal.c:1525,1
    - Dst: PyMarshal_ReadObjectFromString
      Src: /src/Python-3.8.3/Python/marshal.c:1526,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1527,1
    - Dst: PyMarshal_ReadObjectFromFile
      Src: /src/Python-3.8.3/Python/marshal.c:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1515
    functionDepth: 5
    functionLinenumber: 1515
    functionLinenumberEnd: 1538
    functionName: PyMarshal_ReadLastObjectFromFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 1
    functionsReached:
    - PyMarshal_ReadObjectFromFile
    - PyMem_MALLOC
    - PyMarshal_ReadObjectFromString
    - fread
    - getfilesize
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadLastObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/marshal.c:1550,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1553,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1554,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1540
    functionDepth: 12
    functionLinenumber: 1540
    functionLinenumberEnd: 1558
    functionName: PyMarshal_ReadObjectFromFile
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 2
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyMem_FREE
    - r_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadObjectFromFile(FILE *fp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/marshal.c:1571,1
    - Dst: r_object
      Src: /src/Python-3.8.3/Python/marshal.c:1574,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1575,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1560
    functionDepth: 12
    functionLinenumber: 1560
    functionLinenumberEnd: 1579
    functionName: PyMarshal_ReadObjectFromString
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 3
    functionsReached:
    - PyList_New
    - Py_DECREF
    - PyMem_FREE
    - r_object
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_ReadObjectFromString(const char *str, Py_ssize_t len)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/marshal.c:1586,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/marshal.c:1587,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:1590,1
    - Dst: PyBytes_Size
      Src: /src/Python-3.8.3/Python/marshal.c:1591,1
    - Dst: w_init_refs
      Src: /src/Python-3.8.3/Python/marshal.c:1594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1595,1
    - Dst: w_object
      Src: /src/Python-3.8.3/Python/marshal.c:1598,1
    - Dst: w_clear_refs
      Src: /src/Python-3.8.3/Python/marshal.c:1599,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/marshal.c:1601,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1603,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1604,1
    - Dst: _PyBytes_Resize
      Src: /src/Python-3.8.3/Python/marshal.c:1608,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1612,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/marshal.c:1614,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/marshal.c:1616,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - x
    - version
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1581
    functionDepth: 4
    functionLinenumber: 1581
    functionLinenumberEnd: 1622
    functionName: PyMarshal_WriteObjectToString
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - w_init_refs
    - Py_DECREF
    - w_object
    - PyErr_NoMemory
    - PyBytes_Size
    - _PyBytes_Resize
    - w_clear_refs
    - PyBytes_AS_STRING
    - PyErr_SetString
    - Py_XDECREF
    - memset
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyMarshal_WriteObjectToString(PyObject *x, int version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/marshal.c:1651,1
    - Dst: PyMarshal_WriteObjectToString
      Src: /src/Python-3.8.3/Python/marshal.c:1653,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/marshal.c:1656,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - module
    - value
    - file
    - version
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1643
    functionDepth: 5
    functionLinenumber: 1643
    functionLinenumberEnd: 1659
    functionName: marshal_dump_impl
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodIdObjArgs
    - PyMarshal_WriteObjectToString
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmarshal_dump_impl(PyObject *module, PyObject *value, PyObject
      *file,\n                  int version)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/marshal.c:1683,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/marshal.c:1693,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/marshal.c:1696,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/marshal.c:1697,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/marshal.c:1708,1
    - Dst: read_object
      Src: /src/Python-3.8.3/Python/marshal.c:1709,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1710,1
    - Dst: PyMem_FREE
      Src: /src/Python-3.8.3/Python/marshal.c:1712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1678
    functionDepth: 13
    functionLinenumber: 1678
    functionLinenumberEnd: 1718
    functionName: marshal_load
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - read_object
    - _Py_IDENTIFIER
    - PyBytes_Check
    - PyErr_Format
    - PyList_New
    - PyMem_FREE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_load(PyObject *module, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_WriteObjectToString
      Src: /src/Python-3.8.3/Python/marshal.c:1739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - value
    - version
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1735
    functionDepth: 5
    functionLinenumber: 1735
    functionLinenumberEnd: 1740
    functionName: marshal_dumps_impl
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyMarshal_WriteObjectToString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_dumps_impl(PyObject *module, PyObject *value, int version)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/marshal.c:1767,1
    - Dst: read_object
      Src: /src/Python-3.8.3/Python/marshal.c:1769,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - module
    - bytes
    argTypes:
    - PyObject*
    - Py_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1754
    functionDepth: 13
    functionLinenumber: 1754
    functionLinenumberEnd: 1772
    functionName: marshal_loads_impl
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - read_object
    - Py_DECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_loads_impl(PyObject *module, Py_buffer *bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Python/marshal.c:1829,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/Python/marshal.c:1832,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/marshal.c:1833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1826
    functionDepth: 9
    functionLinenumber: 1826
    functionLinenumberEnd: 1837
    functionName: PyMarshal_Init
    functionSourceFile: /src/Python-3.8.3/Python/marshal.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    - Py_DECREF
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyMarshal_Init(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/future.c:20,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/future.c:23,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/future.c:24,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/future.c:25,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:28,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:30,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:32,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:34,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:36,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:38,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:40,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:42,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:44,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:46,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/future.c:48,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/future.c:49,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/future.c:51,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/future.c:54,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/future.c:56,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 3
    argNames:
    - ff
    - s
    - filename
    argTypes:
    - PyFutureFeatures*
    - stmt_ty
    - PyObject*
    assertStmts:
    - condition: (s->kind == ImportFrom_kind)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/Python-3.8.3/Python/future.c
    constantsTouched: []
    func_position:
      end: 61
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 61
    functionName: future_check_features
    functionSourceFile: /src/Python-3.8.3/Python/future.c
    functionUses: 0
    functionsReached:
    - asdl_seq_LEN
    - PyUnicode_AsUTF8
    - PyErr_SyntaxLocationObject
    - PyErr_Format
    - PyErr_SetString
    - assert
    - asdl_seq_GET
    - strcmp
    linkageType: ''
    returnType: int
    signature: int future_check_features(PyFutureFeatures *ff, stmt_ty s, PyObject
      *filename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/future.c:71,1
    - Dst: _PyAST_GetDocString
      Src: /src/Python-3.8.3/Python/future.c:83,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/future.c:86,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/future.c:87,1
    - Dst: _PyUnicode_EqualToASCIIString
      Src: /src/Python-3.8.3/Python/future.c:102,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/future.c:104,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/future.c:106,1
    - Dst: future_check_features
      Src: /src/Python-3.8.3/Python/future.c:109,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - ff
    - mod
    - filename
    argTypes:
    - PyFutureFeatures*
    - mod_ty
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 122
    functionName: future_parse
    functionSourceFile: /src/Python-3.8.3/Python/future.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EqualToASCIIString
    - asdl_seq_LEN
    - PyErr_SyntaxLocationObject
    - PyErr_SetString
    - future_check_features
    - asdl_seq_GET
    - _PyAST_GetDocString
    linkageType: ''
    returnType: int
    signature: int future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_Malloc
      Src: /src/Python-3.8.3/Python/future.c:130,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/future.c:132,1
    - Dst: future_parse
      Src: /src/Python-3.8.3/Python/future.c:138,1
    - Dst: PyObject_Free
      Src: /src/Python-3.8.3/Python/future.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mod
    - filename
    argTypes:
    - mod_ty
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: PyFuture_FromASTObject
    functionSourceFile: /src/Python-3.8.3/Python/future.c
    functionUses: 1
    functionsReached:
    - future_parse
    - PyObject_Free
    - PyErr_NoMemory
    - PyObject_Malloc
    linkageType: ''
    returnType: PyFutureFeatures
    signature: 'PyFutureFeatures *

      PyFuture_FromASTObject(mod_ty mod, PyObject *filename)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/future.c:152,1
    - Dst: PyFuture_FromASTObject
      Src: /src/Python-3.8.3/Python/future.c:155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/future.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mod
    - filename_str
    argTypes:
    - mod_ty
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 6
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: PyFuture_FromAST
    functionSourceFile: /src/Python-3.8.3/Python/future.c
    functionUses: 0
    functionsReached:
    - PyFuture_FromASTObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyFutureFeatures
    signature: 'PyFutureFeatures *

      PyFuture_FromAST(mod_ty mod, const char *filename_str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GC_UnTrack
      Src: /src/Python-3.8.3/Python/Python-ast.c:544,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:545,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - AST_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: ast_dealloc
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_GC_UnTrack
    - Py_CLEAR
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void ast_dealloc(AST_object *self)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_VISIT
      Src: /src/Python-3.8.3/Python/Python-ast.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - self
    - visit
    - arg
    argTypes:
    - AST_object*
    - visitproc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: ast_traverse
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_VISIT
    linkageType: ''
    returnType: int
    signature: int ast_traverse(AST_object *self, visitproc visit, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - AST_object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: ast_clear
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: int
    signature: int ast_clear(AST_object *self)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:569,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:569,1
    - Dst: PySequence_Size
      Src: /src/Python-3.8.3/Python/Python-ast.c:573,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:579,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:580,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:582,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:587,1
    - Dst: PySequence_GetItem
      Src: /src/Python-3.8.3/Python/Python-ast.c:589,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Python/Python-ast.c:594,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:594,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:595,1
    - Dst: PyDict_Next
      Src: /src/Python-3.8.3/Python/Python-ast.c:601,1
    - Dst: PyObject_SetAttr
      Src: /src/Python-3.8.3/Python/Python-ast.c:602,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:608,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 610
    functionName: ast_type_init
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyDict_Next
    - PyObject_SetAttr
    - PySequence_Size
    - PyTuple_GET_SIZE
    - Py_DECREF
    - _PyObject_LookupAttrId
    - PySequence_GetItem
    - PyErr_Format
    - Py_TYPE
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/Python-ast.c:616,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:618,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/Python-ast.c:622,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:622,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/Python-ast.c:624,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - unused
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 625
    functionName: ast_type_reduce
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_LookupAttrId
    - Py_BuildValue
    - Py_TYPE
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast_type_reduce(PyObject *self, PyObject *unused)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/Python-ast.c:682,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/Python-ast.c:683,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/Python-ast.c:686,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/Python-ast.c:689,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:691,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:694,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/Python-ast.c:696,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/Python-ast.c:698,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/Python-ast.c:699,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/Python-ast.c:700,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - type
    - base
    - fields
    - num_fields
    argTypes:
    - char*
    - PyTypeObject*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 703
    functionName: make_type
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - _PyUnicode_FromId
    - _Py_IDENTIFIER
    - PyObject_CallFunction
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyTypeObject
    signature: PyTypeObject * make_type(char *type, PyTypeObject* base, char**fields,
      int num_fields)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/Python-ast.c:708,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/Python-ast.c:712,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:714,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:717,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:719,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - type
    - attrs
    - num_fields
    argTypes:
    - PyTypeObject*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 722
    functionName: add_attributes
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - PyUnicode_FromString
    - Py_DECREF
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: int
    signature: int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/Python-ast.c:728,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/Python-ast.c:729,1
    - Dst: func
      Src: /src/Python-3.8.3/Python/Python-ast.c:734,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/Python-ast.c:734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:736,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - seq
    - (*func)(void*)
    argTypes:
    - asdl_seq*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 742
    functionName: ast2obj_list
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - asdl_seq_LEN
    - func
    - PyList_SET_ITEM
    - PyList_New
    - asdl_seq_GET
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_list(asdl_seq *seq, PyObject* (*func)(void*))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 750
    functionName: ast2obj_object
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_object(void *o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/Python-ast.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 760
    functionName: ast2obj_int
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_int(long b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/Python-ast.c:769,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 777
    functionName: obj2ast_object
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int obj2ast_object(PyObject* obj, PyObject** out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_AddPyObject
      Src: /src/Python-3.8.3/Python/Python-ast.c:781,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 5
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: obj2ast_constant
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyArena_AddPyObject
    linkageType: ''
    returnType: int
    signature: int obj2ast_constant(PyObject* obj, PyObject** out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/Python-ast.c:792,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:793,1
    - Dst: obj2ast_object
      Src: /src/Python-3.8.3/Python/Python-ast.c:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 6
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: obj2ast_identifier
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - obj2ast_object
    - PyUnicode_CheckExact
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int obj2ast_identifier(PyObject* obj, PyObject** out, PyArena* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/Python-ast.c:801,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Python/Python-ast.c:801,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:802,1
    - Dst: obj2ast_object
      Src: /src/Python-3.8.3/Python/Python-ast.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - PyObject**
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 799
    functionDepth: 6
    functionLinenumber: 799
    functionLinenumberEnd: 806
    functionName: obj2ast_string
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - obj2ast_object
    - PyBytes_CheckExact
    - PyUnicode_CheckExact
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int obj2ast_string(PyObject* obj, PyObject** out, PyArena* arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:811,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:812,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/Python-ast.c:816,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/Python-ast.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - int*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 808
    functionDepth: 5
    functionLinenumber: 808
    functionLinenumberEnd: 821
    functionName: obj2ast_int
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyErr_Format
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: int obj2ast_int(PyObject* obj, int* out, PyArena* arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/Python-ast.c:826,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/Python-ast.c:829,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/Python-ast.c:831,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/Python-ast.c:832,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:833,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 823
    functionDepth: 11
    functionLinenumber: 823
    functionLinenumberEnd: 838
    functionName: add_ast_fields
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_New
    - _PyDict_SetItemId
    - PyType_Ready
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int add_ast_fields(void)
  - BBCount: 168
    BranchProfiles: []
    Callsites:
    - Dst: add_ast_fields
      Src: /src/Python-3.8.3/Python/Python-ast.c:845,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:846,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:848,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:849,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:851,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:854,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:856,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:859,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:861,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:863,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:864,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:867,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:870,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:872,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:874,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:876,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:878,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:880,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:882,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:884,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:886,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:888,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:890,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:892,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:894,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:896,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:898,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:900,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:902,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:904,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:906,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:908,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:910,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:912,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:914,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:916,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:918,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:919,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:921,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:923,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:925,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:927,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:929,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:931,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:933,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:935,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:937,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:939,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:941,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:944,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:946,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:948,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:950,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:952,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:954,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:957,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:959,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:961,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:963,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:965,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:967,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:969,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:971,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:973,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:975,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:976,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:978,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:980,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:982,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:984,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:986,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:988,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:990,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:992,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:994,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:996,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:998,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1000,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1002,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1003,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1005,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1007,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1009,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1011,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1012,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1014,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1016,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1018,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1020,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1022,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1023,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1025,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1027,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1029,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1031,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1033,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1035,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1037,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1039,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1041,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1043,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1045,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1047,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1049,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1051,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1053,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1055,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1057,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1059,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1061,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1063,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1065,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1067,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1069,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1071,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1073,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1075,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1077,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1078,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1080,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1082,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1084,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1086,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1088,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1090,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1092,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1094,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1096,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1097,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1099,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1101,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1103,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1105,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1107,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1109,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1111,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1113,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1115,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1117,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1119,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1121,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1123,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1125,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1127,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1129,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1131,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1133,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:1135,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1137,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1140,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1141,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1143,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1145,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1148,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1150,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1151,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1153,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1154,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1156,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1157,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1159,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1160,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1162,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1163,1
    - Dst: add_attributes
      Src: /src/Python-3.8.3/Python/Python-ast.c:1165,1
    - Dst: make_type
      Src: /src/Python-3.8.3/Python/Python-ast.c:1166,1
    CyclomaticComplexity: 167
    EdgeCount: 167
    ICount: 485
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 841
    functionDepth: 12
    functionLinenumber: 841
    functionLinenumberEnd: 1171
    functionName: init_types
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - make_type
    - PyType_GenericNew
    - add_ast_fields
    - add_attributes
    linkageType: ''
    returnType: int
    signature: int init_types(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - body
    - type_ignores
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1195
    functionDepth: 4
    functionLinenumber: 1195
    functionLinenumberEnd: 1206
    functionName: Module
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 66
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty Module(asdl_seq * body, asdl_seq * type_ignores, PyArena *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - asdl_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1208
    functionDepth: 4
    functionLinenumber: 1208
    functionLinenumberEnd: 1218
    functionName: Interactive
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty Interactive(asdl_seq * body, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1225,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1220
    functionDepth: 4
    functionLinenumber: 1220
    functionLinenumberEnd: 1235
    functionName: Expression
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty Expression(expr_ty body, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1242,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - argtypes
    - returns
    - arena
    argTypes:
    - asdl_seq*
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1237
    functionDepth: 4
    functionLinenumber: 1237
    functionLinenumberEnd: 1253
    functionName: FunctionType
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty FunctionType(asdl_seq * argtypes, expr_ty returns, PyArena *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - body
    - arena
    argTypes:
    - asdl_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1265
    functionName: Suite
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty Suite(asdl_seq * body, PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1274,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1279,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 11
    argNames:
    - name
    - args
    - body
    - decorator_list
    - returns
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - arguments_ty
    - asdl_seq*
    - asdl_seq*
    - expr_ty
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1267
    functionDepth: 4
    functionLinenumber: 1267
    functionLinenumberEnd: 1298
    functionName: FunctionDef
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty FunctionDef(identifier name, arguments_ty args, asdl_seq *
      body, asdl_seq *\n            decorator_list, expr_ty returns, string type_comment,
      int lineno,\n            int col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1308,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1313,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 11
    argNames:
    - name
    - args
    - body
    - decorator_list
    - returns
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - arguments_ty
    - asdl_seq*
    - asdl_seq*
    - expr_ty
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1332
    functionName: AsyncFunctionDef
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq
      * body, asdl_seq\n                 * decorator_list, expr_ty returns, string
      type_comment, int\n                 lineno, int col_offset, int end_lineno,
      int end_col_offset,\n                 PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1341,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 10
    argNames:
    - name
    - bases
    - keywords
    - body
    - decorator_list
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - asdl_seq*
    - asdl_seq*
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1334
    functionDepth: 4
    functionLinenumber: 1334
    functionLinenumberEnd: 1359
    functionName: ClassDef
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords,
      asdl_seq *\n         body, asdl_seq * decorator_list, int lineno, int col_offset,
      int\n         end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1361
    functionDepth: 4
    functionLinenumber: 1361
    functionLinenumberEnd: 1376
    functionName: Return
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Return(expr_ty value, int lineno, int col_offset, int end_lineno,
      int\n       end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - targets
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1378
    functionDepth: 4
    functionLinenumber: 1378
    functionLinenumberEnd: 1393
    functionName: Delete
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 5
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Delete(asdl_seq * targets, int lineno, int col_offset, int
      end_lineno, int\n       end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1401,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - targets
    - value
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - expr_ty
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1395
    functionDepth: 4
    functionLinenumber: 1395
    functionLinenumberEnd: 1417
    functionName: Assign
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Assign(asdl_seq * targets, expr_ty value, string type_comment,
      int lineno, int\n       col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1425,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1430,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1435,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 8
    argNames:
    - target
    - op
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - operator_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1419
    functionDepth: 4
    functionLinenumber: 1419
    functionLinenumberEnd: 1451
    functionName: AugAssign
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty AugAssign(expr_ty target, operator_ty op, expr_ty value, int
      lineno, int\n          col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1460,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1465,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 9
    argNames:
    - target
    - annotation
    - value
    - simple
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1482
    functionName: AnnAssign
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty AnnAssign(expr_ty target, expr_ty annotation, expr_ty value,
      int simple, int\n          lineno, int col_offset, int end_lineno, int end_col_offset,
      PyArena\n          *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1491,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1496,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 10
    argNames:
    - target
    - iter
    - body
    - orelse
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - asdl_seq*
    - asdl_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1484
    functionDepth: 4
    functionLinenumber: 1484
    functionLinenumberEnd: 1514
    functionName: For
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty For(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq
      * orelse, string\n    type_comment, int lineno, int col_offset, int end_lineno,
      int\n    end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1523,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1528,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 10
    argNames:
    - target
    - iter
    - body
    - orelse
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - asdl_seq*
    - asdl_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1516
    functionDepth: 4
    functionLinenumber: 1516
    functionLinenumberEnd: 1546
    functionName: AsyncFor
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty AsyncFor(expr_ty target, expr_ty iter, asdl_seq * body, asdl_seq
      * orelse,\n         string type_comment, int lineno, int col_offset, int end_lineno,
      int\n         end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1554,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - test
    - body
    - orelse
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1548
    functionDepth: 4
    functionLinenumber: 1548
    functionLinenumberEnd: 1570
    functionName: While
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty While(expr_ty test, asdl_seq * body, asdl_seq * orelse, int
      lineno, int\n      col_offset, int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1578,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - test
    - body
    - orelse
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1572
    functionDepth: 4
    functionLinenumber: 1572
    functionLinenumberEnd: 1594
    functionName: If
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty If(expr_ty test, asdl_seq * body, asdl_seq * orelse, int lineno,
      int\n   col_offset, int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - items
    - body
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1596
    functionDepth: 4
    functionLinenumber: 1596
    functionLinenumberEnd: 1613
    functionName: With
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty With(asdl_seq * items, asdl_seq * body, string type_comment,
      int lineno, int\n     col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - items
    - body
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1632
    functionName: AsyncWith
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty AsyncWith(asdl_seq * items, asdl_seq * body, string type_comment,
      int lineno,\n          int col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - exc
    - cause
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1634
    functionDepth: 4
    functionLinenumber: 1634
    functionLinenumberEnd: 1650
    functionName: Raise
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Raise(expr_ty exc, expr_ty cause, int lineno, int col_offset,
      int end_lineno,\n      int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 9
    argNames:
    - body
    - handlers
    - orelse
    - finalbody
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1652
    functionDepth: 4
    functionLinenumber: 1652
    functionLinenumberEnd: 1671
    functionName: Try
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Try(asdl_seq * body, asdl_seq * handlers, asdl_seq * orelse,
      asdl_seq *\n    finalbody, int lineno, int col_offset, int end_lineno, int end_col_offset,\n
      \   PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1679,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - test
    - msg
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1673
    functionDepth: 4
    functionLinenumber: 1673
    functionLinenumberEnd: 1694
    functionName: Assert
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Assert(expr_ty test, expr_ty msg, int lineno, int col_offset,
      int end_lineno,\n       int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1696
    functionDepth: 4
    functionLinenumber: 1696
    functionLinenumberEnd: 1711
    functionName: Import
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 13
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Import(asdl_seq * names, int lineno, int col_offset, int end_lineno,
      int\n       end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - module
    - names
    - level
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - asdl_seq*
    - int
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1713
    functionDepth: 4
    functionLinenumber: 1713
    functionLinenumberEnd: 1730
    functionName: ImportFrom
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty ImportFrom(identifier module, asdl_seq * names, int level,
      int lineno, int\n           col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1747
    functionName: Global
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Global(asdl_seq * names, int lineno, int col_offset, int end_lineno,
      int\n       end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - names
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1749
    functionDepth: 4
    functionLinenumber: 1749
    functionLinenumberEnd: 1764
    functionName: Nonlocal
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Nonlocal(asdl_seq * names, int lineno, int col_offset, int
      end_lineno, int\n         end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1772,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1766
    functionDepth: 4
    functionLinenumber: 1766
    functionLinenumberEnd: 1786
    functionName: Expr
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Expr(expr_ty value, int lineno, int col_offset, int end_lineno,
      int\n     end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1788
    functionDepth: 4
    functionLinenumber: 1788
    functionLinenumberEnd: 1802
    functionName: Pass
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Pass(int lineno, int col_offset, int end_lineno, int end_col_offset,
      PyArena\n     *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1804
    functionDepth: 4
    functionLinenumber: 1804
    functionLinenumberEnd: 1818
    functionName: Break
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Break(int lineno, int col_offset, int end_lineno, int end_col_offset,
      PyArena\n      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1834
    functionName: Continue
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: stmt_ty
    signature: "stmt_ty Continue(int lineno, int col_offset, int end_lineno, int end_col_offset,\n
      \        PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1842,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - op
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - boolop_ty
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1836
    functionDepth: 4
    functionLinenumber: 1836
    functionLinenumberEnd: 1857
    functionName: BoolOp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
      int\n       end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1865,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1870,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - target
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1859
    functionDepth: 4
    functionLinenumber: 1859
    functionLinenumberEnd: 1885
    functionName: NamedExpr
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty NamedExpr(expr_ty target, expr_ty value, int lineno, int col_offset,
      int\n          end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1893,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1898,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1903,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 8
    argNames:
    - left
    - op
    - right
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - operator_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1887
    functionDepth: 4
    functionLinenumber: 1887
    functionLinenumberEnd: 1919
    functionName: BinOp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno,
      int col_offset,\n      int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1927,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1932,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1936,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - op
    - operand
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - unaryop_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1921
    functionDepth: 4
    functionLinenumber: 1921
    functionLinenumberEnd: 1947
    functionName: UnaryOp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty UnaryOp(unaryop_ty op, expr_ty operand, int lineno, int col_offset,
      int\n        end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1955,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1960,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1964,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - args
    - body
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - arguments_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1949
    functionDepth: 4
    functionLinenumber: 1949
    functionLinenumberEnd: 1975
    functionName: Lambda
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Lambda(arguments_ty args, expr_ty body, int lineno, int col_offset,
      int\n       end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1983,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1988,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:1993,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:1997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 8
    argNames:
    - test
    - body
    - orelse
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1977
    functionDepth: 4
    functionLinenumber: 1977
    functionLinenumberEnd: 2009
    functionName: IfExp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty IfExp(expr_ty test, expr_ty body, expr_ty orelse, int lineno,
      int col_offset,\n      int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - keys
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2011
    functionDepth: 4
    functionLinenumber: 2011
    functionLinenumberEnd: 2027
    functionName: Dict
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 135
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Dict(asdl_seq * keys, asdl_seq * values, int lineno, int col_offset,
      int\n     end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - elts
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2029
    functionDepth: 4
    functionLinenumber: 2029
    functionLinenumberEnd: 2044
    functionName: Set
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 14
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Set(asdl_seq * elts, int lineno, int col_offset, int end_lineno,
      int\n    end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2052,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elt
    - generators
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2046
    functionDepth: 4
    functionLinenumber: 2046
    functionLinenumberEnd: 2067
    functionName: ListComp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty ListComp(expr_ty elt, asdl_seq * generators, int lineno, int
      col_offset, int\n         end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2075,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elt
    - generators
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2069
    functionDepth: 4
    functionLinenumber: 2069
    functionLinenumberEnd: 2090
    functionName: SetComp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty SetComp(expr_ty elt, asdl_seq * generators, int lineno, int
      col_offset, int\n        end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2098,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2103,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 8
    argNames:
    - key
    - value
    - generators
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2092
    functionDepth: 4
    functionLinenumber: 2092
    functionLinenumberEnd: 2119
    functionName: DictComp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty DictComp(expr_ty key, expr_ty value, asdl_seq * generators,
      int lineno, int\n         col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2127,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elt
    - generators
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2121
    functionDepth: 4
    functionLinenumber: 2121
    functionLinenumberEnd: 2142
    functionName: GeneratorExp
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno,
      int col_offset,\n             int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2150,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2144
    functionDepth: 4
    functionLinenumber: 2144
    functionLinenumberEnd: 2164
    functionName: Await
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Await(expr_ty value, int lineno, int col_offset, int end_lineno,
      int\n      end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2166
    functionDepth: 4
    functionLinenumber: 2166
    functionLinenumberEnd: 2181
    functionName: Yield
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Yield(expr_ty value, int lineno, int col_offset, int end_lineno,
      int\n      end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2189,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - value
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2183
    functionDepth: 4
    functionLinenumber: 2183
    functionLinenumberEnd: 2203
    functionName: YieldFrom
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty YieldFrom(expr_ty value, int lineno, int col_offset, int end_lineno,
      int\n          end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2211,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - left
    - ops
    - comparators
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_int_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2205
    functionDepth: 4
    functionLinenumber: 2205
    functionLinenumberEnd: 2227
    functionName: Compare
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 34
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators,
      int lineno,\n        int col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2235,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - func
    - args
    - keywords
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - asdl_seq*
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2229
    functionDepth: 4
    functionLinenumber: 2229
    functionLinenumberEnd: 2251
    functionName: Call
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 238
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int
      lineno, int\n     col_offset, int end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2260,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - value
    - conversion
    - format_spec
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - int
    - expr_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2253
    functionDepth: 4
    functionLinenumber: 2253
    functionLinenumberEnd: 2276
    functionName: FormattedValue
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty FormattedValue(expr_ty value, int conversion, expr_ty format_spec,
      int lineno,\n               int col_offset, int end_lineno, int end_col_offset,
      PyArena\n               *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - values
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2278
    functionDepth: 4
    functionLinenumber: 2278
    functionLinenumberEnd: 2293
    functionName: JoinedStr
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty JoinedStr(asdl_seq * values, int lineno, int col_offset, int
      end_lineno, int\n          end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2301,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - value
    - kind
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - constant
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2295
    functionDepth: 4
    functionLinenumber: 2295
    functionLinenumberEnd: 2316
    functionName: Constant
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 35
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Constant(constant value, string kind, int lineno, int col_offset,
      int\n         end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2324,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2329,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2334,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 8
    argNames:
    - value
    - attr
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - identifier
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2318
    functionDepth: 4
    functionLinenumber: 2318
    functionLinenumberEnd: 2350
    functionName: Attribute
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 8
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Attribute(expr_ty value, identifier attr, expr_context_ty
      ctx, int lineno, int\n          col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2358,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2363,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2368,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 8
    argNames:
    - value
    - slice
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - slice_ty
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2352
    functionDepth: 4
    functionLinenumber: 2352
    functionLinenumberEnd: 2384
    functionName: Subscript
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Subscript(expr_ty value, slice_ty slice, expr_context_ty ctx,
      int lineno, int\n          col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2392,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2397,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - value
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2386
    functionDepth: 4
    functionLinenumber: 2386
    functionLinenumberEnd: 2412
    functionName: Starred
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Starred(expr_ty value, expr_context_ty ctx, int lineno, int
      col_offset, int\n        end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2420,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2425,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 7
    argNames:
    - id
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2414
    functionDepth: 4
    functionLinenumber: 2414
    functionLinenumberEnd: 2440
    functionName: Name
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 103
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Name(identifier id, expr_context_ty ctx, int lineno, int col_offset,
      int\n     end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2448,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elts
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2442
    functionDepth: 4
    functionLinenumber: 2442
    functionLinenumberEnd: 2463
    functionName: List
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 46
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty List(asdl_seq * elts, expr_context_ty ctx, int lineno, int
      col_offset, int\n     end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2471,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - elts
    - ctx
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - asdl_seq*
    - expr_context_ty
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2486
    functionName: Tuple
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 532
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: expr_ty
    signature: "expr_ty Tuple(asdl_seq * elts, expr_context_ty ctx, int lineno, int
      col_offset, int\n      end_lineno, int end_col_offset, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - lower
    - upper
    - step
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2488
    functionDepth: 4
    functionLinenumber: 2488
    functionLinenumberEnd: 2500
    functionName: Slice
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 28
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: slice_ty
    signature: slice_ty Slice(expr_ty lower, expr_ty upper, expr_ty step, PyArena
      *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dims
    - arena
    argTypes:
    - asdl_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2502
    functionDepth: 4
    functionLinenumber: 2502
    functionLinenumberEnd: 2512
    functionName: ExtSlice
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: slice_ty
    signature: slice_ty ExtSlice(asdl_seq * dims, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2519,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - value
    - arena
    argTypes:
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2514
    functionDepth: 4
    functionLinenumber: 2514
    functionLinenumberEnd: 2529
    functionName: Index
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 127
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: slice_ty
    signature: slice_ty Index(expr_ty value, PyArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2542,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - target
    - iter
    - ifs
    - is_async
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - asdl_seq*
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2531
    functionDepth: 4
    functionLinenumber: 2531
    functionLinenumberEnd: 2554
    functionName: comprehension
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 12
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: comprehension_ty
    signature: "comprehension_ty comprehension(expr_ty target, expr_ty iter, asdl_seq
      * ifs, int is_async,\n              PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - type
    - name
    - body
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - expr_ty
    - identifier
    - asdl_seq*
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2556
    functionDepth: 4
    functionLinenumber: 2556
    functionLinenumberEnd: 2573
    functionName: ExceptHandler
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: excepthandler_ty
    signature: "excepthandler_ty ExceptHandler(expr_ty type, identifier name, asdl_seq
      * body, int lineno, int\n              col_offset, int end_lineno, int end_col_offset,
      PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 8
    argNames:
    - posonlyargs
    - args
    - vararg
    - kwonlyargs
    - kw_defaults
    - kwarg
    - defaults
    - arena
    argTypes:
    - asdl_seq*
    - asdl_seq*
    - arg_ty
    - asdl_seq*
    - asdl_seq*
    - arg_ty
    - asdl_seq*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2575
    functionDepth: 4
    functionLinenumber: 2575
    functionLinenumberEnd: 2592
    functionName: arguments
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 8
    functionsReached:
    - PyArena_Malloc
    linkageType: ''
    returnType: arguments_ty
    signature: "arguments_ty arguments(asdl_seq * posonlyargs, asdl_seq * args, arg_ty
      vararg, asdl_seq *\n          kwonlyargs, asdl_seq * kw_defaults, arg_ty kwarg,
      asdl_seq *\n          defaults, PyArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2600,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - arg
    - annotation
    - type_comment
    - lineno
    - col_offset
    - end_lineno
    - end_col_offset
    - arena
    argTypes:
    - identifier
    - expr_ty
    - string
    - int
    - int
    - int
    - int
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2594
    functionDepth: 4
    functionLinenumber: 2594
    functionLinenumberEnd: 2615
    functionName: arg
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 43
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: arg_ty
    signature: "arg_ty arg(identifier arg, expr_ty annotation, string type_comment,
      int lineno, int\n    col_offset, int end_lineno, int end_col_offset, PyArena
      *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2622,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arg
    - value
    - arena
    argTypes:
    - identifier
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2617
    functionDepth: 4
    functionLinenumber: 2617
    functionLinenumberEnd: 2632
    functionName: keyword
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 4
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: keyword_ty
    signature: keyword_ty keyword(identifier arg, expr_ty value, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2639,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - asname
    - arena
    argTypes:
    - identifier
    - identifier
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2634
    functionDepth: 4
    functionLinenumber: 2634
    functionLinenumberEnd: 2649
    functionName: alias
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: alias_ty
    signature: alias_ty alias(identifier name, identifier asname, PyArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2656,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context_expr
    - optional_vars
    - arena
    argTypes:
    - expr_ty
    - expr_ty
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2651
    functionDepth: 4
    functionLinenumber: 2651
    functionLinenumberEnd: 2666
    functionName: withitem
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: withitem_ty
    signature: withitem_ty withitem(expr_ty context_expr, expr_ty optional_vars, PyArena
      *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:2673,1
    - Dst: PyArena_Malloc
      Src: /src/Python-3.8.3/Python/Python-ast.c:2677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - lineno
    - tag
    - arena
    argTypes:
    - int
    - string
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2668
    functionDepth: 4
    functionLinenumber: 2668
    functionLinenumberEnd: 2684
    functionName: TypeIgnore
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyArena_Malloc
    - PyErr_SetString
    linkageType: ''
    returnType: type_ignore_ty
    signature: type_ignore_ty TypeIgnore(int lineno, string tag, PyArena *arena)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2698,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2700,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2702,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2704,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2705,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2707,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2709,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2712,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2714,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2716,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2718,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2721,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2723,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2725,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2727,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2730,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2732,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2734,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2736,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2737,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2739,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2741,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2744,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2746,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2748,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2750,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2755,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2756,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 98
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2687
    functionDepth: 3
    functionLinenumber: 2687
    functionLinenumberEnd: 2758
    functionName: ast2obj_mod
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - ast2obj_list
    - PyType_GenericNew
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_mod(void* _o)'
  - BBCount: 192
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2771,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:2773,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2775,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2777,1
    - Dst: ast2obj_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:2778,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2780,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2782,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2783,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2785,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2787,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2788,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2790,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2792,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2793,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2795,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2797,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:2798,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2802,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2805,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:2807,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2809,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2811,1
    - Dst: ast2obj_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:2812,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2814,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2816,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2817,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2819,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2821,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2822,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2825,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2827,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2828,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2830,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2832,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:2833,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2835,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2837,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2840,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:2842,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2844,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2846,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2847,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2851,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2852,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2854,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2856,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2857,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2859,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2861,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2862,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2864,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2866,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2869,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2871,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2873,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2875,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2878,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2880,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2882,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2884,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2887,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2889,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2891,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2893,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2894,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2896,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2898,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:2899,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2901,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2903,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2906,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2908,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2910,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2912,1
    - Dst: ast2obj_operator
      Src: /src/Python-3.8.3/Python/Python-ast.c:2913,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2915,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2917,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2918,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2920,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2922,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2925,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2927,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2929,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2931,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2932,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2934,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2936,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2937,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2941,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:2942,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2944,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2946,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2949,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2951,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2953,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2955,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2956,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2958,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2960,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2961,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2963,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2965,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2966,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2968,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2970,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:2971,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2973,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2975,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:2978,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2980,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2982,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2984,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:2985,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2987,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2989,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2990,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2994,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:2995,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:2997,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:2999,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:3000,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3002,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3004,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3007,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3009,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3011,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3013,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3014,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3016,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3018,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3019,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3021,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3023,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3026,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3028,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3030,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3032,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3033,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3035,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3037,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3038,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3040,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3042,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3045,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3047,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3049,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3051,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3052,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3054,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3056,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:3057,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3059,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3061,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3064,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3066,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3068,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3070,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3071,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3073,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3075,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:3076,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3078,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3080,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3083,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3085,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3087,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3089,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3090,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3092,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3094,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3097,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3099,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3101,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3103,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3104,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3106,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3108,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3109,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3111,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3113,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3114,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3116,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3118,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3121,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3123,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3125,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3127,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3128,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3130,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3132,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3135,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3137,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3139,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3141,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3144,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:3146,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3148,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3150,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3151,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3153,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3155,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3156,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3160,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3163,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3165,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3167,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3169,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3172,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3174,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3178,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3181,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3183,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3185,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3187,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3190,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3194,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3198,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3202,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3204,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3206,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3207,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3209,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3211,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3212,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3214,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3216,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3217,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3221,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3224,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3225,1
    CyclomaticComplexity: 357
    EdgeCount: 357
    ICount: 722
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 2760
    functionDepth: 3
    functionLinenumber: 2760
    functionLinenumberEnd: 3227
    functionName: ast2obj_stmt
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - ast2obj_operator
    - ast2obj_int
    - Py_DECREF
    - ast2obj_list
    - Py_XDECREF
    - PyType_GenericNew
    - ast2obj_identifier
    - ast2obj_expr
    - ast2obj_arguments
    - ast2obj_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_stmt(void* _o)'
  - BBCount: 173
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3240,1
    - Dst: ast2obj_boolop
      Src: /src/Python-3.8.3/Python/Python-ast.c:3242,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3244,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3246,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3247,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3251,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3254,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3256,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3258,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3260,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3261,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3263,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3265,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3268,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3270,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3272,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3274,1
    - Dst: ast2obj_operator
      Src: /src/Python-3.8.3/Python/Python-ast.c:3275,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3277,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3279,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3280,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3282,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3284,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3287,1
    - Dst: ast2obj_unaryop
      Src: /src/Python-3.8.3/Python/Python-ast.c:3289,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3291,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3293,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3294,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3296,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3298,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3301,1
    - Dst: ast2obj_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:3303,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3307,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3308,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3310,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3312,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3315,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3317,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3319,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3321,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3322,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3324,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3326,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3327,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3331,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3334,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3336,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3340,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3341,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3343,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3345,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3348,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3350,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3352,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3354,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3357,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3359,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3361,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3363,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3364,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3366,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3368,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3371,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3373,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3375,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3377,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3378,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3380,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3382,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3385,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3387,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3389,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3391,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3392,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3394,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3396,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3397,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3399,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3401,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3404,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3406,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3408,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3410,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3411,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3414,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3416,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3419,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3421,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3423,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3425,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3428,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3430,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3432,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3434,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3437,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3439,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3441,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3443,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3446,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3448,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3450,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3452,1
    - Dst: asdl_seq_LEN
      Src: /src/Python-3.8.3/Python/Python-ast.c:3454,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/Python-ast.c:3455,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:3458,1
    - Dst: ast2obj_cmpop
      Src: /src/Python-3.8.3/Python/Python-ast.c:3458,1
    - Dst: asdl_seq_GET
      Src: /src/Python-3.8.3/Python/Python-ast.c:3458,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3461,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3463,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3464,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3466,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3468,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3471,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3473,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3477,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3478,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3480,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3482,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3483,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3487,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3490,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3492,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3494,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3496,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3497,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3499,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3501,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3502,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3504,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3506,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3509,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3511,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3513,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3515,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3518,1
    - Dst: ast2obj_constant
      Src: /src/Python-3.8.3/Python/Python-ast.c:3520,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3522,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3524,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:3525,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3527,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3529,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3532,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3534,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3536,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3538,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:3539,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3541,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3543,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3544,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3546,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3548,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3551,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3553,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3557,1
    - Dst: ast2obj_slice
      Src: /src/Python-3.8.3/Python/Python-ast.c:3558,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3560,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3562,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3563,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3565,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3567,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3570,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3572,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3574,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3576,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3577,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3579,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3581,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3584,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:3586,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3588,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3590,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3591,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3593,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3595,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3598,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3600,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3602,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3604,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3605,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3607,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3609,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3612,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3614,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3616,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3618,1
    - Dst: ast2obj_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:3619,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3621,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3623,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3626,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3628,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3630,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3631,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3633,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3635,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3636,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3638,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3640,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3641,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3643,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3645,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3648,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3649,1
    CyclomaticComplexity: 319
    EdgeCount: 319
    ICount: 646
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3229
    functionDepth: 3
    functionLinenumber: 3229
    functionLinenumberEnd: 3651
    functionName: ast2obj_expr
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - ast2obj_operator
    - ast2obj_int
    - ast2obj_boolop
    - ast2obj_unaryop
    - ast2obj_cmpop
    - PyList_New
    - ast2obj_string
    - PyList_SET_ITEM
    - ast2obj_expr
    - ast2obj_arguments
    - Py_XDECREF
    - _PyObject_SetAttrId
    - Py_DECREF
    - ast2obj_constant
    - ast2obj_expr_context
    - asdl_seq_GET
    - ast2obj_list
    - asdl_seq_LEN
    - PyType_GenericNew
    - ast2obj_identifier
    - ast2obj_slice
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_expr(void* _o)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3657,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3660,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3663,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3666,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3669,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3672,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:3676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - o
    argTypes:
    - expr_context_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3679
      start: 3653
    functionDepth: 1
    functionLinenumber: 3653
    functionLinenumberEnd: 3679
    functionName: ast2obj_expr_context
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_expr_context(expr_context_ty o)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3691,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3693,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3695,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3697,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3698,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3700,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3702,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3703,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3705,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3707,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3710,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3712,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3714,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3716,1
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3719,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3721,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3723,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3725,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3730,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3731,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3680
    functionDepth: 4
    functionLinenumber: 3680
    functionLinenumberEnd: 3733
    functionName: ast2obj_slice
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - ast2obj_list
    - PyType_GenericNew
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_slice(void* _o)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3739,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3742,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:3746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - boolop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3749
      start: 3735
    functionDepth: 1
    functionLinenumber: 3735
    functionLinenumberEnd: 3749
    functionName: ast2obj_boolop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_boolop(boolop_ty o)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3754,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3757,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3760,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3763,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3766,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3769,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3772,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3775,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3778,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3781,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3784,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3787,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3790,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:3794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - o
    argTypes:
    - operator_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3750
    functionDepth: 1
    functionLinenumber: 3750
    functionLinenumberEnd: 3797
    functionName: ast2obj_operator
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_operator(operator_ty o)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3802,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3805,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3808,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3811,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:3815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - o
    argTypes:
    - unaryop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3798
    functionDepth: 1
    functionLinenumber: 3798
    functionLinenumberEnd: 3818
    functionName: ast2obj_unaryop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_unaryop(unaryop_ty o)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3823,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3826,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3829,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3832,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3835,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3838,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3841,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3844,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3847,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3850,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:3854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - o
    argTypes:
    - cmpop_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3819
    functionDepth: 1
    functionLinenumber: 3819
    functionLinenumberEnd: 3857
    functionName: ast2obj_cmpop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyErr_Format
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: PyObject * ast2obj_cmpop(cmpop_ty o)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3867,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3869,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3871,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3873,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3874,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3876,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3878,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3879,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3883,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3884,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3886,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3888,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3891,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3892,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3894
      start: 3858
    functionDepth: 4
    functionLinenumber: 3858
    functionLinenumberEnd: 3894
    functionName: ast2obj_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - ast2obj_int
    - Py_DECREF
    - ast2obj_list
    - PyType_GenericNew
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_comprehension(void* _o)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3907,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:3909,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3911,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3913,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:3914,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3916,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3918,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3919,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3923,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3926,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3928,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3930,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3931,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3933,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3935,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3936,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3938,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3940,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:3941,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3943,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3948,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3949,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3896
    functionDepth: 4
    functionLinenumber: 3896
    functionLinenumberEnd: 3951
    functionName: ast2obj_excepthandler
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - ast2obj_int
    - Py_DECREF
    - ast2obj_list
    - PyType_GenericNew
    - ast2obj_identifier
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_excepthandler(void* _o)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:3962,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3964,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3966,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3968,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3969,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3971,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3973,1
    - Dst: ast2obj_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:3974,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3976,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3978,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3979,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3981,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3983,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3984,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3986,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3988,1
    - Dst: ast2obj_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:3989,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3991,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3993,1
    - Dst: ast2obj_list
      Src: /src/Python-3.8.3/Python/Python-ast.c:3994,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:3996,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:3998,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4001,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4002,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4004
      start: 3953
    functionDepth: 3
    functionLinenumber: 3953
    functionLinenumberEnd: 4004
    functionName: ast2obj_arguments
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - ast2obj_list
    - ast2obj_arg
    - PyType_GenericNew
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_arguments(void* _o)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:4015,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4017,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4019,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4021,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4022,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4024,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4026,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:4027,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4029,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4031,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4032,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4034,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4036,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4037,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4039,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4041,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4042,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4044,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4046,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4047,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4049,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4051,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4054,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4055,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 69
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4057
      start: 4006
    functionDepth: 4
    functionLinenumber: 4006
    functionLinenumberEnd: 4057
    functionName: ast2obj_arg
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - _PyObject_SetAttrId
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_identifier
    - ast2obj_expr
    - Py_XDECREF
    - ast2obj_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_arg(void* _o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:4068,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4070,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4072,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4074,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4075,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4077,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4079,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4082,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4083,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4085
      start: 4059
    functionDepth: 4
    functionLinenumber: 4059
    functionLinenumberEnd: 4085
    functionName: ast2obj_keyword
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_identifier
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_keyword(void* _o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:4096,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4098,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4100,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4102,1
    - Dst: ast2obj_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4103,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4105,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4107,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4110,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4113
      start: 4087
    functionDepth: 2
    functionLinenumber: 4087
    functionLinenumberEnd: 4113
    functionName: ast2obj_alias
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_identifier
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_alias(void* _o)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:4124,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4126,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4130,1
    - Dst: ast2obj_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4131,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4133,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4135,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4138,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4115
    functionDepth: 4
    functionLinenumber: 4115
    functionLinenumberEnd: 4141
    functionName: ast2obj_withitem
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - Py_DECREF
    - PyType_GenericNew
    - ast2obj_expr
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_withitem(void* _o)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_GenericNew
      Src: /src/Python-3.8.3/Python/Python-ast.c:4154,1
    - Dst: ast2obj_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4156,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4160,1
    - Dst: ast2obj_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:4161,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4165,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4170,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4171,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 1
    argNames:
    - _o
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4143
    functionDepth: 2
    functionLinenumber: 4143
    functionLinenumberEnd: 4173
    functionName: ast2obj_type_ignore
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - ast2obj_int
    - Py_DECREF
    - PyType_GenericNew
    - Py_XDECREF
    - ast2obj_string
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      ast2obj_type_ignore(void* _o)'
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4187,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4195,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4199,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4206,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4207,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4210,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4211,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4215,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4215,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4217,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4218,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4221,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4223,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4225,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4229,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4236,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4237,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4240,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4241,1
    - Dst: obj2ast_type_ignore
      Src: /src/Python-3.8.3/Python/Python-ast.c:4245,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4245,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4247,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4248,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4251,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4253,1
    - Dst: Module
      Src: /src/Python-3.8.3/Python/Python-ast.c:4255,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4259,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4266,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4270,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4277,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4278,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4281,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4282,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4286,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4286,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4288,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4289,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4292,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4294,1
    - Dst: Interactive
      Src: /src/Python-3.8.3/Python/Python-ast.c:4296,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4300,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4307,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4311,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4316,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4318,1
    - Dst: Expression
      Src: /src/Python-3.8.3/Python/Python-ast.c:4320,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4324,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4332,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4336,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4343,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4344,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4347,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4348,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4352,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4352,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4354,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4355,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4358,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4360,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4362,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4366,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4371,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4373,1
    - Dst: FunctionType
      Src: /src/Python-3.8.3/Python/Python-ast.c:4375,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4379,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4386,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4390,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4397,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4398,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4401,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4402,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4406,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4406,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4408,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4409,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4412,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4414,1
    - Dst: Suite
      Src: /src/Python-3.8.3/Python/Python-ast.c:4416,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4421,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:4423,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 246
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - mod_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4425
      start: 4176
    functionDepth: 7
    functionLinenumber: 4176
    functionLinenumberEnd: 4425
    functionName: obj2ast_mod
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - _PyObject_LookupAttrId
    - Interactive
    - FunctionType
    - _Py_asdl_seq_new
    - PyList_GET_ITEM
    - PyErr_Format
    - Py_XDECREF
    - Expression
    - Suite
    - Module
    - PyList_Check
    - asdl_seq_SET
    - obj2ast_stmt
    - obj2ast_type_ignore
    - PyErr_SetString
    - PyList_GET_SIZE
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
  - BBCount: 377
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4446,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4451,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4453,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4455,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4459,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4464,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4466,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4468,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4472,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4477,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4479,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4481,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4485,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:4490,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4492,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4494,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4506,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4510,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4515,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4517,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4519,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4523,1
    - Dst: obj2ast_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:4528,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4530,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4532,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4536,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4543,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4544,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4547,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4548,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4552,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4552,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4554,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4555,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4558,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4560,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4562,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4566,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4573,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4574,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4577,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4578,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4582,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4582,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4584,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4585,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4588,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4590,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4592,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4596,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4601,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4603,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4605,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4609,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:4614,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4616,1
    - Dst: FunctionDef
      Src: /src/Python-3.8.3/Python/Python-ast.c:4618,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4624,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4636,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4640,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4645,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4647,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4649,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4653,1
    - Dst: obj2ast_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:4658,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4660,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4662,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4666,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4673,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4674,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4677,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4678,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4682,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4682,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4684,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4685,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4688,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4690,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4692,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4696,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4703,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4704,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4707,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4708,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4712,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4712,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4714,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4715,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4718,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4720,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4722,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4726,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4731,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4733,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4735,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4739,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:4744,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4746,1
    - Dst: AsyncFunctionDef
      Src: /src/Python-3.8.3/Python/Python-ast.c:4748,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4754,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4765,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4769,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:4774,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4776,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4778,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4782,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4789,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4790,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4793,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4794,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4798,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4798,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4800,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4801,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4804,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4806,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4808,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4812,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4819,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4820,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4823,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4824,1
    - Dst: obj2ast_keyword
      Src: /src/Python-3.8.3/Python/Python-ast.c:4828,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4828,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4830,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4831,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4834,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4836,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4838,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4842,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4849,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4850,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4853,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4854,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:4858,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4858,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4860,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4861,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4864,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4866,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4868,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4872,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4879,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4880,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4883,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4884,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4888,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4888,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4890,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4891,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4894,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4896,1
    - Dst: ClassDef
      Src: /src/Python-3.8.3/Python/Python-ast.c:4898,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4903,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4910,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4914,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4919,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4921,1
    - Dst: Return
      Src: /src/Python-3.8.3/Python/Python-ast.c:4923,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4928,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4935,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4939,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4946,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4947,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4950,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4951,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4955,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4955,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4957,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4958,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:4961,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:4963,1
    - Dst: Delete
      Src: /src/Python-3.8.3/Python/Python-ast.c:4965,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:4970,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:4979,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:4983,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:4990,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:4991,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:4994,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:4995,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:4999,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:4999,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5001,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5002,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5005,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5007,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5009,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5013,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5018,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5020,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5022,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5026,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:5031,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5033,1
    - Dst: Assign
      Src: /src/Python-3.8.3/Python/Python-ast.c:5035,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5040,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5049,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5053,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5058,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5060,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5062,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5066,1
    - Dst: obj2ast_operator
      Src: /src/Python-3.8.3/Python/Python-ast.c:5071,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5073,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5075,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5079,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5084,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5086,1
    - Dst: AugAssign
      Src: /src/Python-3.8.3/Python/Python-ast.c:5088,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5093,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5103,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5107,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5112,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5114,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5116,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5120,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5125,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5127,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5129,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5133,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5138,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5140,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5146,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:5151,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5153,1
    - Dst: AnnAssign
      Src: /src/Python-3.8.3/Python/Python-ast.c:5155,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5160,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5175,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5180,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5182,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5184,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5188,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5193,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5195,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5197,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5201,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5208,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5209,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5212,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5213,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5217,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5217,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5220,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5223,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5225,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5227,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5231,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5238,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5239,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5242,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5243,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5247,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5247,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5249,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5250,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5253,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5255,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5257,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5261,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:5266,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5268,1
    - Dst: For
      Src: /src/Python-3.8.3/Python/Python-ast.c:5270,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5275,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5286,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5290,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5295,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5297,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5299,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5303,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5308,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5310,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5312,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5316,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5323,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5324,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5327,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5328,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5332,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5332,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5334,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5335,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5338,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5340,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5342,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5346,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5353,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5354,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5357,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5358,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5362,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5362,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5364,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5365,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5368,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5370,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5372,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5376,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:5381,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5383,1
    - Dst: AsyncFor
      Src: /src/Python-3.8.3/Python/Python-ast.c:5385,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5390,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5399,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5403,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5408,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5410,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5412,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5416,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5423,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5424,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5427,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5428,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5432,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5432,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5435,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5438,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5440,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5442,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5446,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5453,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5454,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5457,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5458,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5462,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5462,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5464,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5465,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5468,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5470,1
    - Dst: While
      Src: /src/Python-3.8.3/Python/Python-ast.c:5472,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5477,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5486,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5490,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5495,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5497,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5499,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5503,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5510,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5511,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5514,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5515,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5519,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5519,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5521,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5522,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5525,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5527,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5529,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5533,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5540,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5541,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5544,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5545,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5549,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5549,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5551,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5552,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5555,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5557,1
    - Dst: If
      Src: /src/Python-3.8.3/Python/Python-ast.c:5559,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5564,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5577,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5584,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5585,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5588,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5589,1
    - Dst: obj2ast_withitem
      Src: /src/Python-3.8.3/Python/Python-ast.c:5593,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5593,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5595,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5596,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5599,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5601,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5603,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5607,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5614,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5615,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5618,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5619,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5623,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5623,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5625,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5626,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5629,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5631,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5633,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5637,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:5642,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5644,1
    - Dst: With
      Src: /src/Python-3.8.3/Python/Python-ast.c:5646,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5651,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5660,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5664,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5671,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5672,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5675,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5676,1
    - Dst: obj2ast_withitem
      Src: /src/Python-3.8.3/Python/Python-ast.c:5680,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5680,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5682,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5683,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5686,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5688,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5690,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5694,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5701,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5702,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5705,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5706,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5710,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5710,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5712,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5713,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5716,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5718,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5720,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5724,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:5729,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5731,1
    - Dst: AsyncWith
      Src: /src/Python-3.8.3/Python/Python-ast.c:5733,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5738,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5746,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5750,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5755,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5757,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5759,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5763,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5768,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5770,1
    - Dst: Raise
      Src: /src/Python-3.8.3/Python/Python-ast.c:5772,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5777,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5787,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5791,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5798,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5799,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5802,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5803,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5807,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5807,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5809,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5810,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5813,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5815,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5817,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5821,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5828,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5829,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5832,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5833,1
    - Dst: obj2ast_excepthandler
      Src: /src/Python-3.8.3/Python/Python-ast.c:5837,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5837,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5839,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5840,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5843,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5845,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5847,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5851,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5858,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5859,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5862,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5863,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5867,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5867,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5869,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5870,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5873,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5875,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5877,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5881,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5888,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5889,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5892,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5893,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:5897,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5897,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5899,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5900,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5903,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5905,1
    - Dst: Try
      Src: /src/Python-3.8.3/Python/Python-ast.c:5907,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5912,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5920,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5924,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5929,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5931,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5933,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5937,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:5942,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5944,1
    - Dst: Assert
      Src: /src/Python-3.8.3/Python/Python-ast.c:5946,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5951,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:5958,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5962,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:5969,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:5970,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5973,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:5974,1
    - Dst: obj2ast_alias
      Src: /src/Python-3.8.3/Python/Python-ast.c:5978,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:5978,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:5980,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:5981,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:5984,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:5986,1
    - Dst: Import
      Src: /src/Python-3.8.3/Python/Python-ast.c:5988,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:5993,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6002,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6006,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:6011,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6013,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6015,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6019,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6026,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6027,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6030,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6031,1
    - Dst: obj2ast_alias
      Src: /src/Python-3.8.3/Python/Python-ast.c:6035,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6035,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6037,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6038,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6041,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6043,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6045,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6049,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:6054,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6056,1
    - Dst: ImportFrom
      Src: /src/Python-3.8.3/Python/Python-ast.c:6058,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6063,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6070,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6074,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6081,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6082,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6085,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6086,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:6090,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6090,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6092,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6093,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6096,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6098,1
    - Dst: Global
      Src: /src/Python-3.8.3/Python/Python-ast.c:6100,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6105,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6112,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6116,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6123,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6124,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6127,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6128,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:6132,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6132,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6134,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6135,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6138,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6140,1
    - Dst: Nonlocal
      Src: /src/Python-3.8.3/Python/Python-ast.c:6142,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6147,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6154,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6158,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6163,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6165,1
    - Dst: Expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6167,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6172,1
    - Dst: Pass
      Src: /src/Python-3.8.3/Python/Python-ast.c:6178,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6182,1
    - Dst: Break
      Src: /src/Python-3.8.3/Python/Python-ast.c:6188,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6192,1
    - Dst: Continue
      Src: /src/Python-3.8.3/Python/Python-ast.c:6198,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6203,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:6205,1
    CyclomaticComplexity: 609
    EdgeCount: 609
    ICount: 1735
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - stmt_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6207
      start: 4427
    functionDepth: 7
    functionLinenumber: 4427
    functionLinenumberEnd: 6207
    functionName: obj2ast_stmt
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_IsInstance
    - AsyncWith
    - Py_CLEAR
    - ClassDef
    - _PyObject_LookupAttrId
    - Raise
    - obj2ast_keyword
    - While
    - AnnAssign
    - If
    - Assign
    - ImportFrom
    - obj2ast_arguments
    - Expr
    - Try
    - _Py_asdl_seq_new
    - Continue
    - PyList_GET_ITEM
    - AsyncFunctionDef
    - obj2ast_alias
    - obj2ast_operator
    - PyErr_Format
    - AsyncFor
    - Nonlocal
    - Assert
    - Delete
    - Import
    - Py_XDECREF
    - For
    - With
    - Break
    - AugAssign
    - Pass
    - PyList_Check
    - asdl_seq_SET
    - obj2ast_excepthandler
    - obj2ast_int
    - obj2ast_stmt
    - obj2ast_withitem
    - obj2ast_identifier
    - FunctionDef
    - obj2ast_string
    - PyErr_SetString
    - Return
    - PyList_GET_SIZE
    - Global
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
  - BBCount: 302
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6224,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6228,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:6233,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6235,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6237,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6241,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:6246,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6248,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6250,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6254,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:6259,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6261,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6263,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6267,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:6272,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6274,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6276,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6284,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6288,1
    - Dst: obj2ast_boolop
      Src: /src/Python-3.8.3/Python/Python-ast.c:6293,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6295,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6297,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6301,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6308,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6309,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6312,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6313,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6317,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6317,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6319,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6320,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6323,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6325,1
    - Dst: BoolOp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6327,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6332,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6340,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6344,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6349,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6351,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6353,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6357,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6362,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6364,1
    - Dst: NamedExpr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6366,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6371,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6380,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6384,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6389,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6391,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6393,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6397,1
    - Dst: obj2ast_operator
      Src: /src/Python-3.8.3/Python/Python-ast.c:6402,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6404,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6406,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6410,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6415,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6417,1
    - Dst: BinOp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6419,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6424,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6432,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6436,1
    - Dst: obj2ast_unaryop
      Src: /src/Python-3.8.3/Python/Python-ast.c:6441,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6443,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6445,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6449,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6454,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6456,1
    - Dst: UnaryOp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6458,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6463,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6471,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6475,1
    - Dst: obj2ast_arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:6480,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6482,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6484,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6488,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6493,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6495,1
    - Dst: Lambda
      Src: /src/Python-3.8.3/Python/Python-ast.c:6497,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6502,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6511,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6515,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6520,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6522,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6524,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6528,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6533,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6535,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6537,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6541,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6546,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6548,1
    - Dst: IfExp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6550,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6555,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6563,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6567,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6574,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6575,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6578,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6579,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6583,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6583,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6585,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6586,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6589,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6591,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6593,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6597,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6604,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6605,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6608,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6609,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6613,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6613,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6615,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6616,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6619,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6621,1
    - Dst: Dict
      Src: /src/Python-3.8.3/Python/Python-ast.c:6623,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6628,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6635,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6639,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6646,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6647,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6650,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6651,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6655,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6655,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6657,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6658,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6661,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6663,1
    - Dst: Set
      Src: /src/Python-3.8.3/Python/Python-ast.c:6665,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6669,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6677,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6681,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6686,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6688,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6690,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6694,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6701,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6702,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6705,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6706,1
    - Dst: obj2ast_comprehension
      Src: /src/Python-3.8.3/Python/Python-ast.c:6710,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6710,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6712,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6713,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6716,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6718,1
    - Dst: ListComp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6720,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6725,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6737,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6742,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6744,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6746,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6750,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6757,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6758,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6761,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6762,1
    - Dst: obj2ast_comprehension
      Src: /src/Python-3.8.3/Python/Python-ast.c:6766,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6766,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6768,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6769,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6772,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6774,1
    - Dst: SetComp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6776,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6781,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6790,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6794,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6799,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6801,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6803,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6807,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6812,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6814,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6816,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6820,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6827,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6828,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6831,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6832,1
    - Dst: obj2ast_comprehension
      Src: /src/Python-3.8.3/Python/Python-ast.c:6836,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6836,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6838,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6839,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6842,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6844,1
    - Dst: DictComp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6846,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6851,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6859,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6863,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6868,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6870,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6872,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6876,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:6883,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:6884,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6887,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:6888,1
    - Dst: obj2ast_comprehension
      Src: /src/Python-3.8.3/Python/Python-ast.c:6892,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:6892,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:6894,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6895,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:6898,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6900,1
    - Dst: GeneratorExp
      Src: /src/Python-3.8.3/Python/Python-ast.c:6902,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6907,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6914,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6918,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6923,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6925,1
    - Dst: Await
      Src: /src/Python-3.8.3/Python/Python-ast.c:6927,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6932,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6939,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6943,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6948,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6950,1
    - Dst: Yield
      Src: /src/Python-3.8.3/Python/Python-ast.c:6952,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6957,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6964,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6968,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:6973,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:6975,1
    - Dst: YieldFrom
      Src: /src/Python-3.8.3/Python/Python-ast.c:6977,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:6982,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:6991,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:6995,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7000,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7002,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7004,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7008,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7015,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7016,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7019,1
    - Dst: _Py_asdl_int_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7020,1
    - Dst: obj2ast_cmpop
      Src: /src/Python-3.8.3/Python/Python-ast.c:7024,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7024,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7026,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7027,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7030,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7032,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7034,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7038,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7045,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7046,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7049,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7050,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7054,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7054,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7056,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7057,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7060,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7062,1
    - Dst: Compare
      Src: /src/Python-3.8.3/Python/Python-ast.c:7064,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7069,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7078,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7082,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7087,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7089,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7091,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7095,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7102,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7103,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7106,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7107,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7111,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7111,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7113,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7114,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7117,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7119,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7121,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7125,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7132,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7133,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7136,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7137,1
    - Dst: obj2ast_keyword
      Src: /src/Python-3.8.3/Python/Python-ast.c:7141,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7141,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7143,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7144,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7147,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7149,1
    - Dst: Call
      Src: /src/Python-3.8.3/Python/Python-ast.c:7151,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7156,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7169,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7174,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7176,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7178,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7182,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:7187,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7189,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7191,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7195,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7200,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7202,1
    - Dst: FormattedValue
      Src: /src/Python-3.8.3/Python/Python-ast.c:7204,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7209,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7216,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7220,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7227,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7228,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7231,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7232,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7236,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7236,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7238,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7239,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7242,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7244,1
    - Dst: JoinedStr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7246,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7251,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7259,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7263,1
    - Dst: obj2ast_constant
      Src: /src/Python-3.8.3/Python/Python-ast.c:7268,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7270,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7272,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7276,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:7281,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7283,1
    - Dst: Constant
      Src: /src/Python-3.8.3/Python/Python-ast.c:7285,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7290,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7299,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7303,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7308,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7310,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7312,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7316,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:7321,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7323,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7325,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7329,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7334,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7336,1
    - Dst: Attribute
      Src: /src/Python-3.8.3/Python/Python-ast.c:7338,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7343,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7352,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7356,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7361,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7363,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7365,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7369,1
    - Dst: obj2ast_slice
      Src: /src/Python-3.8.3/Python/Python-ast.c:7374,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7376,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7378,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7382,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7387,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7389,1
    - Dst: Subscript
      Src: /src/Python-3.8.3/Python/Python-ast.c:7391,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7396,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7404,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7408,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7413,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7415,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7417,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7421,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7426,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7428,1
    - Dst: Starred
      Src: /src/Python-3.8.3/Python/Python-ast.c:7430,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7435,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7443,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7447,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:7452,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7454,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7456,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7460,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7465,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7467,1
    - Dst: Name
      Src: /src/Python-3.8.3/Python/Python-ast.c:7469,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7474,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7482,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7486,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7493,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7494,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7497,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7498,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7502,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7502,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7504,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7505,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7508,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7510,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7512,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7516,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7521,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7523,1
    - Dst: List
      Src: /src/Python-3.8.3/Python/Python-ast.c:7525,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7530,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7538,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7542,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7549,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7550,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7553,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7554,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7558,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7558,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7560,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7561,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7564,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7566,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7568,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7572,1
    - Dst: obj2ast_expr_context
      Src: /src/Python-3.8.3/Python/Python-ast.c:7577,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7579,1
    - Dst: Tuple
      Src: /src/Python-3.8.3/Python/Python-ast.c:7581,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7587,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:7589,1
    CyclomaticComplexity: 452
    EdgeCount: 452
    ICount: 1333
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - expr_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7591
      start: 6209
    functionDepth: 7
    functionLinenumber: 6209
    functionLinenumberEnd: 7591
    functionName: obj2ast_expr
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 3
    functionsReached:
    - UnaryOp
    - obj2ast_comprehension
    - PyObject_IsInstance
    - GeneratorExp
    - Py_CLEAR
    - NamedExpr
    - Set
    - SetComp
    - _PyObject_LookupAttrId
    - Await
    - obj2ast_keyword
    - Starred
    - DictComp
    - Name
    - obj2ast_arguments
    - FormattedValue
    - _Py_asdl_seq_new
    - PyList_GET_ITEM
    - List
    - obj2ast_operator
    - Dict
    - PyErr_Format
    - Constant
    - Py_XDECREF
    - YieldFrom
    - BoolOp
    - obj2ast_boolop
    - Attribute
    - _Py_asdl_int_seq_new
    - PyList_Check
    - BinOp
    - Compare
    - asdl_seq_SET
    - Lambda
    - obj2ast_int
    - Yield
    - Tuple
    - obj2ast_constant
    - obj2ast_expr_context
    - obj2ast_unaryop
    - JoinedStr
    - Subscript
    - obj2ast_slice
    - obj2ast_identifier
    - IfExp
    - obj2ast_cmpop
    - Call
    - PyErr_SetString
    - obj2ast_string
    - PyList_GET_SIZE
    - ListComp
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7598,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7606,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7614,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7622,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7630,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7638,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7647,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - expr_context_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7649
      start: 7593
    functionDepth: 7
    functionLinenumber: 7593
    functionLinenumberEnd: 7649
    functionName: obj2ast_expr_context
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena*
      arena)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7662,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7671,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7675,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7680,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7682,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7684,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7688,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7693,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7695,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7697,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7701,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7706,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7708,1
    - Dst: Slice
      Src: /src/Python-3.8.3/Python/Python-ast.c:7710,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7714,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7721,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7725,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:7732,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7733,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7736,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:7737,1
    - Dst: obj2ast_slice
      Src: /src/Python-3.8.3/Python/Python-ast.c:7741,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:7741,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:7743,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7744,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:7747,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7749,1
    - Dst: ExtSlice
      Src: /src/Python-3.8.3/Python/Python-ast.c:7751,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7755,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:7762,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:7766,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:7771,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:7773,1
    - Dst: Index
      Src: /src/Python-3.8.3/Python/Python-ast.c:7775,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7780,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:7782,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 126
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - slice_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7784
      start: 7651
    functionDepth: 8
    functionLinenumber: 7651
    functionLinenumberEnd: 7784
    functionName: obj2ast_slice
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - Slice
    - _Py_asdl_seq_new
    - _PyObject_LookupAttrId
    - obj2ast_slice
    - PyList_Check
    - PyList_GET_ITEM
    - ExtSlice
    - Index
    - PyErr_Format
    - asdl_seq_SET
    - PyErr_SetString
    - PyList_GET_SIZE
    - Py_XDECREF
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7791,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7799,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - boolop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7810
      start: 7786
    functionDepth: 7
    functionLinenumber: 7786
    functionLinenumberEnd: 7810
    functionName: obj2ast_boolop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7817,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7825,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7833,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7841,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7849,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7857,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7865,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7873,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7881,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7889,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7897,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7905,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7913,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7922,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 107
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - operator_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7924
      start: 7812
    functionDepth: 7
    functionLinenumber: 7812
    functionLinenumberEnd: 7924
    functionName: obj2ast_operator
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7931,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7939,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7947,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7955,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:7964,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - unaryop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7966
      start: 7926
    functionDepth: 7
    functionLinenumber: 7926
    functionLinenumberEnd: 7966
    functionName: obj2ast_unaryop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7973,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7981,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7989,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:7997,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8005,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8013,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8021,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8029,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8037,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8045,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8054,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 83
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - cmpop_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8056
      start: 7968
    functionDepth: 7
    functionLinenumber: 7968
    functionLinenumberEnd: 8056
    functionName: obj2ast_cmpop
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - PyErr_Format
    linkageType: ''
    returnType: int
    signature: int obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8067,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8071,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8076,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8078,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8080,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8084,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8089,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8091,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8093,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8097,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8104,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8105,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8108,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8109,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8113,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8113,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8115,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8116,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8119,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8121,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8123,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8127,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8132,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8134,1
    - Dst: comprehension
      Src: /src/Python-3.8.3/Python/Python-ast.c:8136,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8139,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - comprehension_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8141
      start: 8058
    functionDepth: 8
    functionLinenumber: 8058
    functionLinenumberEnd: 8141
    functionName: obj2ast_comprehension
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - _Py_asdl_seq_new
    - _PyObject_LookupAttrId
    - PyList_Check
    - PyList_GET_ITEM
    - PyErr_Format
    - asdl_seq_SET
    - PyErr_SetString
    - obj2ast_int
    - PyList_GET_SIZE
    - Py_XDECREF
    - comprehension
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_comprehension(PyObject* obj, comprehension_ty* out, PyArena*
      arena)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8158,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8162,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8167,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8169,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8171,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8175,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8180,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8182,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8184,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8188,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8193,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8195,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8197,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8201,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8206,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8208,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8210,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8219,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8223,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8228,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8230,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8232,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8236,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:8241,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8243,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8245,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8249,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8256,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8257,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8260,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8261,1
    - Dst: obj2ast_stmt
      Src: /src/Python-3.8.3/Python/Python-ast.c:8265,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8265,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8267,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8268,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8271,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8273,1
    - Dst: ExceptHandler
      Src: /src/Python-3.8.3/Python/Python-ast.c:8275,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8281,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8283,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 130
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - excepthandler_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8285
      start: 8143
    functionDepth: 8
    functionLinenumber: 8143
    functionLinenumberEnd: 8285
    functionName: obj2ast_excepthandler
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - _Py_asdl_seq_new
    - _PyObject_LookupAttrId
    - PyList_Check
    - PyList_GET_ITEM
    - obj2ast_identifier
    - PyErr_Format
    - asdl_seq_SET
    - obj2ast_int
    - PyErr_SetString
    - ExceptHandler
    - PyList_GET_SIZE
    - Py_XDECREF
    - obj2ast_stmt
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena*
      arena)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8299,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8303,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8310,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8311,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8314,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8315,1
    - Dst: obj2ast_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8319,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8319,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8321,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8322,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8325,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8327,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8329,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8333,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8340,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8341,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8344,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8345,1
    - Dst: obj2ast_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8349,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8349,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8351,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8352,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8355,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8357,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8359,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8363,1
    - Dst: obj2ast_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8368,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8370,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8372,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8376,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8383,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8384,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8387,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8388,1
    - Dst: obj2ast_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8392,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8392,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8394,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8395,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8398,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8400,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8402,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8406,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8413,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8414,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8417,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8418,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8422,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8422,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8424,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8425,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8428,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8430,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8432,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8436,1
    - Dst: obj2ast_arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8441,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8443,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8445,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8449,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/Python-ast.c:8456,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8457,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8460,1
    - Dst: _Py_asdl_seq_new
      Src: /src/Python-3.8.3/Python/Python-ast.c:8461,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8465,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/Python-ast.c:8465,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/Python-ast.c:8467,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8468,1
    - Dst: asdl_seq_SET
      Src: /src/Python-3.8.3/Python/Python-ast.c:8471,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8473,1
    - Dst: arguments
      Src: /src/Python-3.8.3/Python/Python-ast.c:8475,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8479,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 188
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - arguments_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8481
      start: 8287
    functionDepth: 8
    functionLinenumber: 8287
    functionLinenumberEnd: 8481
    functionName: obj2ast_arguments
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - _Py_asdl_seq_new
    - _PyObject_LookupAttrId
    - obj2ast_arg
    - PyList_Check
    - PyList_GET_ITEM
    - PyErr_Format
    - asdl_seq_SET
    - PyErr_SetString
    - arguments
    - PyList_GET_SIZE
    - Py_XDECREF
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_arguments(PyObject* obj, arguments_ty* out, PyArena* arena)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8495,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8499,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:8504,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8506,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8508,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8512,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8517,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8519,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8521,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8525,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:8530,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8532,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8534,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8538,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8543,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8545,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8547,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8551,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8556,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8558,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8560,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8564,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8569,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8571,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8573,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8577,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8582,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8584,1
    - Dst: arg
      Src: /src/Python-3.8.3/Python/Python-ast.c:8586,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8590,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - arg_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8592
      start: 8483
    functionDepth: 8
    functionLinenumber: 8483
    functionLinenumberEnd: 8592
    functionName: obj2ast_arg
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - _PyObject_LookupAttrId
    - obj2ast_identifier
    - obj2ast_string
    - PyErr_SetString
    - obj2ast_int
    - Py_XDECREF
    - arg
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8601,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8605,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:8610,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8612,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8614,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8618,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8623,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8625,1
    - Dst: keyword
      Src: /src/Python-3.8.3/Python/Python-ast.c:8627,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - keyword_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8632
      start: 8594
    functionDepth: 8
    functionLinenumber: 8594
    functionLinenumberEnd: 8632
    functionName: obj2ast_keyword
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - _PyObject_LookupAttrId
    - keyword
    - obj2ast_identifier
    - PyErr_SetString
    - Py_XDECREF
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8641,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8645,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:8650,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8652,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8654,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8658,1
    - Dst: obj2ast_identifier
      Src: /src/Python-3.8.3/Python/Python-ast.c:8663,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8665,1
    - Dst: alias
      Src: /src/Python-3.8.3/Python/Python-ast.c:8667,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - alias_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8672
      start: 8634
    functionDepth: 7
    functionLinenumber: 8634
    functionLinenumberEnd: 8672
    functionName: obj2ast_alias
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - alias
    - _PyObject_LookupAttrId
    - obj2ast_identifier
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8681,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8685,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8690,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8692,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8694,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8698,1
    - Dst: obj2ast_expr
      Src: /src/Python-3.8.3/Python/Python-ast.c:8703,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8705,1
    - Dst: withitem
      Src: /src/Python-3.8.3/Python/Python-ast.c:8707,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8710,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - withitem_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8712
      start: 8674
    functionDepth: 8
    functionLinenumber: 8674
    functionLinenumberEnd: 8712
    functionName: obj2ast_withitem
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - Py_CLEAR
    - withitem
    - _PyObject_LookupAttrId
    - PyErr_SetString
    - Py_XDECREF
    - obj2ast_expr
    linkageType: ''
    returnType: int
    signature: int obj2ast_withitem(PyObject* obj, withitem_ty* out, PyArena* arena)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:8725,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8733,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8737,1
    - Dst: obj2ast_int
      Src: /src/Python-3.8.3/Python/Python-ast.c:8742,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8744,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/Python-ast.c:8746,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8750,1
    - Dst: obj2ast_string
      Src: /src/Python-3.8.3/Python/Python-ast.c:8755,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/Python-ast.c:8757,1
    - Dst: TypeIgnore
      Src: /src/Python-3.8.3/Python/Python-ast.c:8759,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:8764,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/Python-ast.c:8766,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - obj
    - out
    - arena
    argTypes:
    - PyObject*
    - type_ignore_ty*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8714
    functionDepth: 7
    functionLinenumber: 8714
    functionLinenumberEnd: 8768
    functionName: obj2ast_type_ignore
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - Py_CLEAR
    - _PyObject_LookupAttrId
    - TypeIgnore
    - PyErr_Format
    - obj2ast_string
    - obj2ast_int
    - PyErr_SetString
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int obj2ast_type_ignore(PyObject* obj, type_ignore_ty* out, PyArena*
      arena)
  - BBCount: 120
    BranchProfiles: []
    Callsites:
    - Dst: init_types
      Src: /src/Python-3.8.3/Python/Python-ast.c:8778,1
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/Python/Python-ast.c:8779,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/Python-ast.c:8781,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8782,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Python/Python-ast.c:8783,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Python/Python-ast.c:8785,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/Python/Python-ast.c:8787,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8789,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8790,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8792,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8794,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8796,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8798,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8800,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8801,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8803,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8805,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8807,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8809,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8811,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8813,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8815,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8817,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8818,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8820,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8822,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8823,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8824,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8826,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8828,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8829,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8831,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8833,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8835,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8837,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8839,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8840,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8841,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8843,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8845,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8846,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8848,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8850,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8852,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8854,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8856,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8858,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8859,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8860,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8862,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8864,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8866,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8868,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8870,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8872,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8874,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8876,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8877,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8879,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8881,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8883,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8885,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8887,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8889,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8890,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8891,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8893,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8895,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8896,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8898,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8899,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8901,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8903,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8905,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8907,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8909,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8911,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8913,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8915,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8916,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8917,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8919,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8920,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8921,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8922,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8924,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8925,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8926,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8927,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8929,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8931,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8933,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8935,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8937,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8939,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8941,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8943,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8944,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8945,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8946,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8948,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8949,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8951,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8952,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8953,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8954,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8955,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8956,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8958,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8959,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8961,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8963,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8965,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8967,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8969,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8970,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8972,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8974,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8976,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/Python-ast.c:8978,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 242
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8981
      start: 8774
    functionDepth: 13
    functionLinenumber: 8774
    functionLinenumberEnd: 8981
    functionName: PyInit__ast
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDict
    - PyModule_Create
    - init_types
    - PyDict_SetItemString
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__ast(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_types
      Src: /src/Python-3.8.3/Python/Python-ast.c:8986,1
    - Dst: ast2obj_mod
      Src: /src/Python-3.8.3/Python/Python-ast.c:8988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - mod_ty
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8989
      start: 8984
    functionDepth: 13
    functionLinenumber: 8984
    functionLinenumberEnd: 8989
    functionName: PyAST_mod2obj
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 0
    functionsReached:
    - ast2obj_mod
    - init_types
    linkageType: ''
    returnType: PyObject
    signature: PyObject * PyAST_mod2obj(mod_ty t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/Python-ast.c:8998,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/Python-ast.c:9006,1
    - Dst: init_types
      Src: /src/Python-3.8.3/Python/Python-ast.c:9008,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:9011,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/Python-ast.c:9015,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/Python-ast.c:9016,1
    - Dst: obj2ast_mod
      Src: /src/Python-3.8.3/Python/Python-ast.c:9021,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ast
    - arena
    - mode
    argTypes:
    - PyObject*
    - PyArena*
    - int
    assertStmts:
    - condition: (0 <= mode && mode <= 2)
      pos:
        line_end: 9005
        line_start: 9005
        source_file: /src/Python-3.8.3/Python/Python-ast.c
    constantsTouched: []
    func_position:
      end: 9025
      start: 8992
    functionDepth: 13
    functionLinenumber: 8992
    functionLinenumberEnd: 9025
    functionName: PyAST_obj2mod
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - init_types
    - PyErr_Format
    - Py_TYPE
    - obj2ast_mod
    - assert
    - PySys_Audit
    linkageType: ''
    returnType: mod_ty
    signature: mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_types
      Src: /src/Python-3.8.3/Python/Python-ast.c:9029,1
    - Dst: PyObject_IsInstance
      Src: /src/Python-3.8.3/Python/Python-ast.c:9031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9032
      start: 9027
    functionDepth: 13
    functionLinenumber: 9027
    functionLinenumberEnd: 9032
    functionName: PyAST_Check
    functionSourceFile: /src/Python-3.8.3/Python/Python-ast.c
    functionUses: 1
    functionsReached:
    - PyObject_IsInstance
    - init_types
    linkageType: ''
    returnType: int
    signature: int PyAST_Check(PyObject* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: dlerror
    functionSourceFile: /src/Python-3.8.3/Python/dynload_shlib.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dlerror()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:69,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:71,1
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:75,1
    - Dst: _Py_fstat
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:81,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:81,1
    - Dst: dlsym
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:86,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:97,1
    - Dst: dlopen
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:99,1
    - Dst: dlerror
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:105,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:108,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:111,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:113,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:116,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:118,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:119,1
    - Dst: PyErr_SetImportError
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:122,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:123,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:124,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:125,1
    - Dst: dlsym
      Src: /src/Python-3.8.3/Python/dynload_shlib.c:130,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - prefix
    - shortname
    - pathname
    - fp
    argTypes:
    - char*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 132
    functionName: _PyImport_FindSharedFuncptr
    functionSourceFile: /src/Python-3.8.3/Python/dynload_shlib.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Get
    - dlopen
    - PyOS_snprintf
    - PyUnicode_FromString
    - dlerror
    - Py_DECREF
    - dlsym
    - _Py_fstat
    - PyErr_SetImportError
    - strchr
    - fileno
    linkageType: ''
    returnType: dl_funcptr
    signature: "dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,\n                            const
      char *shortname,\n                            const char *pathname, FILE *fp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_FdIsInteractive
      Src: /src/Python-3.8.3/Python/pythonrun.c:79,1
    - Dst: PyRun_InteractiveLoopFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:80,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:82,1
    - Dst: PyRun_SimpleFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: PyRun_AnyFileExFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyRun_SimpleFileExFlags
    - PyRun_InteractiveLoopFlags
    - fclose
    - Py_FdIsInteractive
    linkageType: ''
    returnType: int
    signature: "int PyRun_AnyFileExFlags(FILE *fp, const char *filename, int closeit,\n
      \                    PyCompilerFlags *flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/pythonrun.c:97,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:100,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:102,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:109,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:111,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/pythonrun.c:111,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:112,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:114,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:116,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/pythonrun.c:116,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:117,1
    - Dst: PyRun_InteractiveOneObjectEx
      Src: /src/Python-3.8.3/Python/pythonrun.c:121,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:122,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pythonrun.c:126,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:128,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:135,1
    - Dst: flush_io
      Src: /src/Python-3.8.3/Python/pythonrun.c:136,1
    - Dst: _PyDebug_PrintTotalRefs
      Src: /src/Python-3.8.3/Python/pythonrun.c:142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - fp
    - filename_str
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 148
    functionName: PyRun_InteractiveLoopFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - _PyInterpreterState_Get
    - PyUnicode_FromString
    - PyErr_Print
    - _PySys_GetObjectId
    - PyErr_Occurred
    - PyUnicode_DecodeFSDefault
    - Py_DECREF
    - _PySys_SetObjectId
    - PyErr_ExceptionMatches
    - _PyDebug_PrintTotalRefs
    - PyRun_InteractiveOneObjectEx
    - PyErr_Clear
    - Py_XDECREF
    - flush_io
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveLoopFlags(FILE *fp, const char *filename_str,
      PyCompilerFlags *flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - flags
    argTypes:
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 165
    functionName: PARSER_FLAGS
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PARSER_FLAGS(PyCompilerFlags *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: PARSER_FLAGS
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSER_FLAGS(flags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:187,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:188,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/pythonrun.c:190,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:197,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:199,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:201,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:203,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:206,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/pythonrun.c:208,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:210,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:211,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:212,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:214,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:219,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/pythonrun.c:221,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:223,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:224,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:225,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:227,1
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:232,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:234,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:235,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:236,1
    - Dst: PyParser_ASTFromFileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:239,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:242,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:243,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:244,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:246,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:248,1
    - Dst: PyImport_AddModuleObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:253,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:255,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pythonrun.c:258,1
    - Dst: run_mod
      Src: /src/Python-3.8.3/Python/pythonrun.c:259,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:260,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:264,1
    - Dst: flush_io
      Src: /src/Python-3.8.3/Python/pythonrun.c:265,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 267
    functionName: PyRun_InteractiveOneObjectEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - flush_io
    - PyArena_New
    - PyArena_Free
    - _PySys_GetObjectId
    - _PyUnicode_FromId
    - PyModule_GetDict
    - _PyObject_GetAttrId
    - PyUnicode_AsUTF8
    - Py_DECREF
    - PyImport_AddModuleObject
    - _Py_IDENTIFIER
    - PyParser_ASTFromFileObject
    - PyObject_Str
    - PyUnicode_Check
    - PyErr_Clear
    - Py_XDECREF
    - run_mod
    linkageType: ''
    returnType: int
    signature: "int PyRun_InteractiveOneObjectEx(FILE *fp, PyObject *filename,\n                             PyCompilerFlags
      *flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_InteractiveOneObjectEx
      Src: /src/Python-3.8.3/Python/pythonrun.c:274,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:276,1
    - Dst: flush_io
      Src: /src/Python-3.8.3/Python/pythonrun.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fp
    - filename
    - flags
    argTypes:
    - FILE*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 6
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: PyRun_InteractiveOneObject
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveOneObjectEx
    - PyErr_Print
    - flush_io
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveOneObject(FILE *fp, PyObject *filename, PyCompilerFlags
      *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:288,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:290,1
    - Dst: PyRun_InteractiveOneObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:293,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fp
    - filename_str
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 7
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: PyRun_InteractiveOneFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveOneObject
    - PyErr_Print
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: int
    signature: int PyRun_InteractiveOneFlags(FILE *fp, const char *filename_str, PyCompilerFlags
      *flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pythonrun.c:305,1
    - Dst: PyImport_GetMagicNumber
      Src: /src/Python-3.8.3/Python/pythonrun.c:314,1
    - Dst: ftell
      Src: /src/Python-3.8.3/Python/pythonrun.c:328,1
    - Dst: fread
      Src: /src/Python-3.8.3/Python/pythonrun.c:329,1
    - Dst: rewind
      Src: /src/Python-3.8.3/Python/pythonrun.c:332,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - fp
    - filename
    - ext
    - closeit
    argTypes:
    - FILE*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 302
    functionDepth: 6
    functionLinenumber: 302
    functionLinenumberEnd: 337
    functionName: maybe_pyc_file
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyImport_GetMagicNumber
    - ftell
    - rewind
    - fread
    - strcmp
    linkageType: ''
    returnType: int
    signature: int maybe_pyc_file(FILE *fp, const char* filename, const char* ext,
      int closeit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:345,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/pythonrun.c:348,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pythonrun.c:349,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pythonrun.c:352,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:353,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:356,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/pythonrun.c:359,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:360,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:364,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:367,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - d
    - filename
    - loader_name
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 339
    functionDepth: 6
    functionLinenumber: 339
    functionLinenumberEnd: 369
    functionName: set_main_loader
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_DecodeFSDefault
    - PyObject_CallFunction
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int set_main_loader(PyObject *d, const char *filename, const char *loader_name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModule
      Src: /src/Python-3.8.3/Python/pythonrun.c:380,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:383,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pythonrun.c:384,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:385,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:387,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:390,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:391,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:394,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:395,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:399,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pythonrun.c:401,1
    - Dst: maybe_pyc_file
      Src: /src/Python-3.8.3/Python/pythonrun.c:403,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:407,1
    - Dst: _Py_fopen
      Src: /src/Python-3.8.3/Python/pythonrun.c:408,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pythonrun.c:409,1
    - Dst: set_main_loader
      Src: /src/Python-3.8.3/Python/pythonrun.c:413,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pythonrun.c:414,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:416,1
    - Dst: run_pyc_file
      Src: /src/Python-3.8.3/Python/pythonrun.c:419,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pythonrun.c:422,1
    - Dst: set_main_loader
      Src: /src/Python-3.8.3/Python/pythonrun.c:423,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pythonrun.c:424,1
    - Dst: PyRun_FileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:428,1
    - Dst: flush_io
      Src: /src/Python-3.8.3/Python/pythonrun.c:431,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pythonrun.c:433,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:434,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:437,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:441,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:442,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:444,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:445,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:448,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 4
    argNames:
    - fp
    - filename
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 371
    functionDepth: 7
    functionLinenumber: 371
    functionLinenumberEnd: 450
    functionName: PyRun_SimpleFileExFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - Py_CLEAR
    - _Py_fopen
    - PyModule_GetDict
    - PyUnicode_DecodeFSDefault
    - PyDict_GetItemString
    - flush_io
    - Py_INCREF
    - run_pyc_file
    - strlen
    - PyErr_Clear
    - Py_XDECREF
    - PyDict_DelItemString
    - PyImport_AddModule
    - Py_DECREF
    - PyErr_Print
    - PyRun_FileExFlags
    - fprintf
    - fclose
    - set_main_loader
    - maybe_pyc_file
    - PyDict_SetItemString
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,\n
      \                       PyCompilerFlags *flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModule
      Src: /src/Python-3.8.3/Python/pythonrun.c:456,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pythonrun.c:459,1
    - Dst: PyRun_StringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:460,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:462,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - command
    - flags
    argTypes:
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 452
    functionDepth: 4
    functionLinenumber: 452
    functionLinenumberEnd: 467
    functionName: PyRun_SimpleStringFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyImport_AddModule
    - Py_DECREF
    - PyErr_Print
    - PyRun_StringFlags
    - PyModule_GetDict
    linkageType: ''
    returnType: int
    signature: int PyRun_SimpleStringFlags(const char *command, PyCompilerFlags *flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:475,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:476,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:477,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:478,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:479,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:485,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:493,1
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/pythonrun.c:494,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:497,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:503,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/pythonrun.c:506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:507,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:508,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:512,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:517,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/pythonrun.c:519,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:520,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:521,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:526,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:530,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:539,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:540,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 6
    argNames:
    - err
    - message
    - filename
    - lineno
    - offset
    - text
    argTypes:
    - PyObject*
    - PyObject**
    - PyObject**
    - int*
    - int*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 469
    functionDepth: 5
    functionLinenumber: 469
    functionLinenumberEnd: 542
    functionName: parse_syntax_error
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyUnicode_FromId
    - Py_INCREF
    - _PyObject_GetAttrId
    - _Py_IDENTIFIER
    - Py_XDECREF
    - _PyLong_AsInt
    linkageType: ''
    returnType: int
    signature: "int parse_syntax_error(PyObject *err, PyObject **message, PyObject
      **filename,\n                   int *lineno, int *offset, PyObject **text)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:550,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pythonrun.c:555,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/pythonrun.c:558,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:569,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:570,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pythonrun.c:571,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:572,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:575,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:577,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:578,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 3
    argNames:
    - f
    - offset
    - text_obj
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 544
    functionDepth: 7
    functionLinenumber: 544
    functionLinenumberEnd: 579
    functionName: print_error_text
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsUTF8
    - PyFile_WriteString
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: void print_error_text(PyObject *f, int offset, PyObject *text_obj)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/pythonrun.c:585,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pythonrun.c:592,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pythonrun.c:597,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pythonrun.c:599,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:606,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:608,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:609,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:611,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:620,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/pythonrun.c:621,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:624,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:629,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:631,1
    - Dst: PyObject_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:633,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pythonrun.c:634,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/pythonrun.c:636,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/pythonrun.c:646,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:647,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - exitcode_p
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 582
    functionDepth: 6
    functionLinenumber: 582
    functionLinenumberEnd: 650
    functionName: _Py_HandleSystemExit
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyExceptionInstance_Check
    - PyLong_Check
    - fflush
    - PyLong_AsLong
    - Py_DECREF
    - _PySys_GetObjectId
    - _PyObject_GetAttrId
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_Fetch
    - PySys_WriteStderr
    - _Py_IDENTIFIER
    - PyFile_WriteObject
    - PyObject_Print
    - PyErr_ExceptionMatches
    - PyErr_Restore
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _Py_HandleSystemExit(int *exitcode_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HandleSystemExit
      Src: /src/Python-3.8.3/Python/pythonrun.c:657,1
    - Dst: Py_Exit
      Src: /src/Python-3.8.3/Python/pythonrun.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 653
    functionDepth: 7
    functionLinenumber: 653
    functionLinenumberEnd: 660
    functionName: handle_system_exit
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_Exit
    - _Py_HandleSystemExit
    linkageType: ''
    returnType: void
    signature: void handle_system_exit(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: handle_system_exit
      Src: /src/Python-3.8.3/Python/pythonrun.c:668,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pythonrun.c:670,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/pythonrun.c:675,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:678,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/pythonrun.c:680,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:687,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:688,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:690,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:691,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:693,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:694,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:697,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/pythonrun.c:698,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pythonrun.c:700,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:701,1
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Python/pythonrun.c:704,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/pythonrun.c:713,1
    - Dst: handle_system_exit
      Src: /src/Python-3.8.3/Python/pythonrun.c:715,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pythonrun.c:718,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/pythonrun.c:719,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:725,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:729,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pythonrun.c:731,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/pythonrun.c:732,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Python/pythonrun.c:733,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/pythonrun.c:734,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Python/pythonrun.c:735,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:736,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:737,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:738,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:740,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/pythonrun.c:743,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Python/pythonrun.c:744,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:748,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:749,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:750,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 2
    argNames:
    - tstate
    - set_sys_last_vars
    argTypes:
    - PyThreadState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 663
    functionDepth: 8
    functionLinenumber: 663
    functionLinenumberEnd: 751
    functionName: _PyErr_PrintEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - fflush
    - PyErr_Display
    - _PySys_GetObjectId
    - Py_DECREF
    - Py_INCREF
    - PySys_Audit
    - _PySys_SetObjectId
    - _PyErr_Clear
    - _PyErr_WriteUnraisableMsg
    - PySys_WriteStderr
    - _PyObject_FastCall
    - PyErr_ExceptionMatches
    - handle_system_exit
    - _PyErr_NormalizeException
    - PyException_SetTraceback
    - Py_XDECREF
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_PrintEx
      Src: /src/Python-3.8.3/Python/pythonrun.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 9
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: _PyErr_Print
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - _PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void _PyErr_Print(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pythonrun.c:762,1
    - Dst: _PyErr_PrintEx
      Src: /src/Python-3.8.3/Python/pythonrun.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - set_sys_last_vars
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 759
    functionDepth: 9
    functionLinenumber: 759
    functionLinenumberEnd: 764
    functionName: PyErr_PrintEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void PyErr_PrintEx(int set_sys_last_vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_PrintEx
      Src: /src/Python-3.8.3/Python/pythonrun.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 10
    functionLinenumber: 766
    functionLinenumberEnd: 770
    functionName: PyErr_Print
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 33
    functionsReached:
    - PyErr_PrintEx
    linkageType: ''
    returnType: void
    signature: void PyErr_Print(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:777,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:779,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:780,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:781,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/pythonrun.c:781,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:782,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:784,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:788,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pythonrun.c:789,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/pythonrun.c:790,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Python/pythonrun.c:791,1
    - Dst: PyTraceBack_Print
      Src: /src/Python-3.8.3/Python/pythonrun.c:793,1
    - Dst: _PyObject_HasAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:795,1
    - Dst: parse_syntax_error
      Src: /src/Python-3.8.3/Python/pythonrun.c:799,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:801,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:805,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/pythonrun.c:808,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:810,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:812,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:813,1
    - Dst: print_error_text
      Src: /src/Python-3.8.3/Python/pythonrun.c:817,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:818,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:823,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pythonrun.c:833,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pythonrun.c:834,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:834,1
    - Dst: PyExceptionClass_Name
      Src: /src/Python-3.8.3/Python/pythonrun.c:835,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Python/pythonrun.c:837,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pythonrun.c:842,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:843,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:845,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:846,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Python/pythonrun.c:849,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:851,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:852,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:854,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:858,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:860,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/pythonrun.c:864,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:869,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:871,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:873,1
    - Dst: PyUnicode_GetLength
      Src: /src/Python-3.8.3/Python/pythonrun.c:874,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:875,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:877,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:878,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:882,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:884,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:885,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:886,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:890,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 2
    argNames:
    - f
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(type))
      pos:
        line_end: 833
        line_start: 833
        source_file: /src/Python-3.8.3/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 891
      start: 772
    functionDepth: 16
    functionLinenumber: 772
    functionLinenumberEnd: 891
    functionName: print_exception
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyExceptionInstance_Check
    - fflush
    - PyFile_WriteString
    - PyExceptionClass_Name
    - _PyObject_GetAttrId
    - PyExceptionClass_Check
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - PyUnicode_GetLength
    - PyFile_WriteObject
    - _PyObject_HasAttrId
    - PyException_GetTraceback
    - PyErr_Occurred
    - Py_INCREF
    - PyObject_Str
    - assert
    - PyErr_Clear
    - Py_XDECREF
    - PyTraceBack_Print
    - print_error_text
    - strrchr
    - Py_DECREF
    - Py_TYPE
    - _PyUnicode_EqualToASCIIId
    - parse_syntax_error
    - PyUnicode_Check
    linkageType: ''
    returnType: void
    signature: void print_exception(PyObject *f, PyObject *value)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/pythonrun.c:909,1
    - Dst: PySet_Add
      Src: /src/Python-3.8.3/Python/pythonrun.c:910,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:911,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:912,1
    - Dst: PyException_GetCause
      Src: /src/Python-3.8.3/Python/pythonrun.c:914,1
    - Dst: PyException_GetContext
      Src: /src/Python-3.8.3/Python/pythonrun.c:915,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/pythonrun.c:917,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/pythonrun.c:921,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:922,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:925,1
    - Dst: print_exception_recursive
      Src: /src/Python-3.8.3/Python/pythonrun.c:927,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:929,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/pythonrun.c:935,1
    - Dst: PySet_Contains
      Src: /src/Python-3.8.3/Python/pythonrun.c:939,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:940,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:943,1
    - Dst: print_exception_recursive
      Src: /src/Python-3.8.3/Python/pythonrun.c:945,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/pythonrun.c:947,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:951,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:952,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:954,1
    - Dst: print_exception
      Src: /src/Python-3.8.3/Python/pythonrun.c:956,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:958,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - f
    - value
    - seen
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 901
    functionDepth: 17
    functionLinenumber: 901
    functionLinenumberEnd: 959
    functionName: print_exception_recursive
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_GetContext
    - PyFile_WriteString
    - Py_DECREF
    - print_exception_recursive
    - print_exception
    - PySet_Contains
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_FromVoidPtr
    - PySet_Add
    - PyException_GetCause
    linkageType: ''
    returnType: void
    signature: void print_exception_recursive(PyObject *f, PyObject *value, PyObject
      *seen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pythonrun.c:964,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:967,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:968,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Python/pythonrun.c:971,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/pythonrun.c:973,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:975,1
    - Dst: PySet_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:981,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:983,1
    - Dst: print_exception_recursive
      Src: /src/Python-3.8.3/Python/pythonrun.c:985,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:986,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pythonrun.c:989,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:992,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:995,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - file
    - exception
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (file != NULL && file != Py_None)
      pos:
        line_end: 963
        line_start: 963
        source_file: /src/Python-3.8.3/Python/pythonrun.c
    constantsTouched: []
    func_position:
      end: 997
      start: 961
    functionDepth: 18
    functionLinenumber: 961
    functionLinenumberEnd: 997
    functionName: _PyErr_Display
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_GetTraceback
    - PyErr_Clear
    - Py_DECREF
    - print_exception_recursive
    - Py_XDECREF
    - PyTraceBack_Check
    - _PyObject_CallMethodId
    - assert
    - PyException_SetTraceback
    - PySet_New
    linkageType: ''
    returnType: void
    signature: void _PyErr_Display(PyObject *file, PyObject *exception, PyObject *value,
      PyObject *tb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1002,1
    - Dst: _PyObject_Dump
      Src: /src/Python-3.8.3/Python/pythonrun.c:1004,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pythonrun.c:1005,1
    - Dst: _PyErr_Display
      Src: /src/Python-3.8.3/Python/pythonrun.c:1012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - exception
    - value
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 999
    functionDepth: 19
    functionLinenumber: 999
    functionLinenumberEnd: 1013
    functionName: PyErr_Display
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 5
    functionsReached:
    - _PyErr_Display
    - _PyObject_Dump
    - _PySys_GetObjectId
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_FromId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1024,1
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:1028,1
    - Dst: PyParser_ASTFromStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1032,1
    - Dst: run_mod
      Src: /src/Python-3.8.3/Python/pythonrun.c:1034,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1035,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - str
    - start
    - globals
    - locals
    - flags
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1037
    functionName: PyRun_StringFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - PyArena_New
    - PyArena_Free
    - _PyUnicode_FromId
    - PyParser_ASTFromStringObject
    - run_mod
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyRun_StringFlags(const char *str, int start, PyObject
      *globals,\n                  PyObject *locals, PyCompilerFlags *flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:1048,1
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:1052,1
    - Dst: PyParser_ASTFromFileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1056,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:1059,1
    - Dst: run_mod
      Src: /src/Python-3.8.3/Python/pythonrun.c:1063,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1066,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1068,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 7
    argNames:
    - fp
    - filename_str
    - start
    - globals
    - locals
    - closeit
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyObject*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1039
    functionDepth: 3
    functionLinenumber: 1039
    functionLinenumberEnd: 1070
    functionName: PyRun_FileExFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyArena_New
    - PyArena_Free
    - PyUnicode_DecodeFSDefault
    - PyParser_ASTFromFileObject
    - fclose
    - run_mod
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyRun_FileExFlags(FILE *fp, const char *filename_str,
      int start, PyObject *globals,\n                  PyObject *locals, int closeit,
      PyCompilerFlags *flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pythonrun.c:1079,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1081,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1083,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1085,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:1087,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1089,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pythonrun.c:1091,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1093,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pythonrun.c:1095,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/pythonrun.c:1098,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1072
    functionDepth: 4
    functionLinenumber: 1072
    functionLinenumberEnd: 1099
    functionName: flush_io
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - Py_DECREF
    - _PySys_GetObjectId
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - PyErr_Restore
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void flush_io(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:1118,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/pythonrun.c:1119,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pythonrun.c:1120,1
    - Dst: PyEval_EvalCode
      Src: /src/Python-3.8.3/Python/pythonrun.c:1125,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - co
    - globals
    - locals
    argTypes:
    - PyCodeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1101
    functionDepth: 6
    functionLinenumber: 1101
    functionLinenumberEnd: 1130
    functionName: run_eval_code_obj
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PyErr_Occurred
    - PyEval_EvalCode
    - PyDict_SetItemString
    - PyDict_GetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      run_eval_code_obj(PyCodeObject *co, PyObject *globals, PyObject *locals)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyAST_CompileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1138,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/pythonrun.c:1142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1143,1
    - Dst: run_eval_code_obj
      Src: /src/Python-3.8.3/Python/pythonrun.c:1147,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - mod
    - filename
    - globals
    - locals
    - flags
    - arena
    argTypes:
    - mod_ty
    - PyObject*
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1132
    functionDepth: 7
    functionLinenumber: 1132
    functionLinenumberEnd: 1150
    functionName: run_mod
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - PyAST_CompileObject
    - run_eval_code_obj
    - Py_DECREF
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrun_mod(mod_ty mod, PyObject *filename, PyObject *globals,
      PyObject *locals,\n            PyCompilerFlags *flags, PyArena *arena)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/Python-3.8.3/Python/pythonrun.c:1161,1
    - Dst: PyImport_GetMagicNumber
      Src: /src/Python-3.8.3/Python/pythonrun.c:1162,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:1163,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pythonrun.c:1164,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/Python-3.8.3/Python/pythonrun.c:1169,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/Python-3.8.3/Python/pythonrun.c:1170,1
    - Dst: PyMarshal_ReadLongFromFile
      Src: /src/Python-3.8.3/Python/pythonrun.c:1171,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:1172,1
    - Dst: PyMarshal_ReadLastObjectFromFile
      Src: /src/Python-3.8.3/Python/pythonrun.c:1175,1
    - Dst: PyCode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:1176,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1177,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pythonrun.c:1178,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:1182,1
    - Dst: run_eval_code_obj
      Src: /src/Python-3.8.3/Python/pythonrun.c:1184,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1187,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/pythonrun.c:1190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - fp
    - filename
    - globals
    - locals
    - flags
    argTypes:
    - FILE*
    - char*
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1152
    functionDepth: 7
    functionLinenumber: 1152
    functionLinenumberEnd: 1192
    functionName: run_pyc_file
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyMarshal_ReadLongFromFile
    - PyImport_GetMagicNumber
    - PyErr_Occurred
    - run_eval_code_obj
    - Py_DECREF
    - PyMarshal_ReadLastObjectFromFile
    - fclose
    - PyErr_SetString
    - PyCode_Check
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nrun_pyc_file(FILE *fp, const char *filename, PyObject
      *globals,\n             PyObject *locals, PyCompilerFlags *flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:1200,1
    - Dst: PyParser_ASTFromStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1204,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1206,1
    - Dst: PyAST_mod2obj
      Src: /src/Python-3.8.3/Python/pythonrun.c:1210,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1211,1
    - Dst: PyAST_CompileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1214,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - str
    - filename
    - start
    - flags
    - optimize
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1194
    functionDepth: 14
    functionLinenumber: 1194
    functionLinenumberEnd: 1217
    functionName: Py_CompileStringObject
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyArena_New
    - PyArena_Free
    - PyAST_mod2obj
    - PyParser_ASTFromStringObject
    - PyAST_CompileObject
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPy_CompileStringObject(const char *str, PyObject *filename,
      int start,\n                       PyCompilerFlags *flags, int optimize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:1224,1
    - Dst: Py_CompileStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1227,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - str
    - filename_str
    - start
    - flags
    - optimize
    argTypes:
    - char*
    - char*
    - int
    - PyCompilerFlags*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1219
    functionDepth: 15
    functionLinenumber: 1219
    functionLinenumberEnd: 1230
    functionName: Py_CompileStringExFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_CompileStringObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPy_CompileStringExFlags(const char *str, const char *filename_str,
      int start,\n                        PyCompilerFlags *flags, int optimize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CompileStringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - filename
    - start
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1238
    functionName: PyCompileString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_CompileStringFlags
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCompileString(const char *str, const char *filename, int start)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:1248,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/pythonrun.c:1250,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:1254,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/pythonrun.c:1255,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/pythonrun.c:1256,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/Python/pythonrun.c:1258,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/Python/pythonrun.c:1259,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/Python/pythonrun.c:1260,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/pythonrun.c:1262,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/pythonrun.c:1264,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/pythonrun.c:1266,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/pythonrun.c:1270,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/pythonrun.c:1271,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pythonrun.c:1274,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pythonrun.c:1280,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pythonrun.c:1281,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pythonrun.c:1283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - cmd
    - funcname
    - what
    - cf
    - cmd_copy
    argTypes:
    - PyObject*
    - char*
    - char*
    - PyCompilerFlags*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1240
    functionDepth: 3
    functionLinenumber: 1240
    functionLinenumberEnd: 1287
    functionName: _Py_SourceAsString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - PyBytes_FromStringAndSize
    - Py_CLEAR
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - strlen
    - PyByteArray_GET_SIZE
    - PyBuffer_Release
    - PyBytes_AS_STRING
    - PyErr_Format
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - PyErr_SetString
    - PyObject_GetBuffer
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_SourceAsString(PyObject *cmd, const char *funcname, const char *what, PyCompilerFlags
      *cf, PyObject **cmd_copy)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SymtableStringObjectFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - filename
    - start
    argTypes:
    - char*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1294
    functionName: Py_SymtableStringObject
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - _Py_SymtableStringObjectFlags
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      Py_SymtableStringObject(const char *str, PyObject *filename, int start)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArena_New
      Src: /src/Python-3.8.3/Python/pythonrun.c:1303,1
    - Dst: PyParser_ASTFromStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1307,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1309,1
    - Dst: PySymtable_BuildObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1312,1
    - Dst: PyArena_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - str
    - filename
    - start
    - flags
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1296
    functionDepth: 6
    functionLinenumber: 1296
    functionLinenumberEnd: 1315
    functionName: _Py_SymtableStringObjectFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyParser_ASTFromStringObject
    - PyArena_New
    - PySymtable_BuildObject
    - PyArena_Free
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      _Py_SymtableStringObjectFlags(const char *str, PyObject *filename, int start,
      PyCompilerFlags *flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:1323,1
    - Dst: Py_SymtableStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1326,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - str
    - filename_str
    - start
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1329
    functionName: Py_SymtableString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_SymtableStringObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: struct symtable
    signature: 'struct symtable *

      Py_SymtableString(const char *str, const char *filename_str, int start)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_FLAGS
      Src: /src/Python-3.8.3/Python/pythonrun.c:1339,1
    - Dst: PyParser_ParseStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1343,1
    - Dst: PyAST_FromNodeObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1351,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1352,1
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1355,1
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - s
    - filename
    - start
    - flags
    - arena
    argTypes:
    - char*
    - PyObject*
    - int
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1332
    functionDepth: 10
    functionLinenumber: 1332
    functionLinenumberEnd: 1360
    functionName: PyParser_ASTFromStringObject
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 3
    functionsReached:
    - PyNode_Free
    - PyParser_ParseStringObject
    - PARSER_FLAGS
    - PyAST_FromNodeObject
    - err_free
    - err_input
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyParser_ASTFromStringObject(const char *s, PyObject *filename,
      int start,\n                             PyCompilerFlags *flags, PyArena *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:1368,1
    - Dst: PyParser_ASTFromStringObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1371,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - s
    - filename_str
    - start
    - flags
    - arena
    argTypes:
    - char*
    - char*
    - int
    - PyCompilerFlags*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1362
    functionDepth: 11
    functionLinenumber: 1362
    functionLinenumberEnd: 1374
    functionName: PyParser_ASTFromString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyParser_ASTFromStringObject
    - Py_DECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyParser_ASTFromString(const char *s, const char *filename_str,
      int start,\n                       PyCompilerFlags *flags, PyArena *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PARSER_FLAGS
      Src: /src/Python-3.8.3/Python/pythonrun.c:1385,1
    - Dst: PyParser_ParseFileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1387,1
    - Dst: PyAST_FromNodeObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1395,1
    - Dst: PyNode_Free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1396,1
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1399,1
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 9
    argNames:
    - fp
    - filename
    - enc
    - start
    - ps1
    - ps2
    - flags
    - errcode
    - arena
    argTypes:
    - FILE*
    - PyObject*
    - char*
    - int
    - char*
    - char*
    - PyCompilerFlags*
    - int*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1376
    functionDepth: 7
    functionLinenumber: 1376
    functionLinenumberEnd: 1406
    functionName: PyParser_ASTFromFileObject
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 2
    functionsReached:
    - PyNode_Free
    - PyParser_ParseFileObject
    - PARSER_FLAGS
    - PyAST_FromNodeObject
    - err_free
    - err_input
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyParser_ASTFromFileObject(FILE *fp, PyObject *filename, const
      char* enc,\n                           int start, const char *ps1,\n                           const
      char *ps2, PyCompilerFlags *flags, int *errcode,\n                           PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/pythonrun.c:1416,1
    - Dst: PyParser_ASTFromFileObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1419,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - fp
    - filename_str
    - enc
    - start
    - ps1
    - ps2
    - flags
    - errcode
    - arena
    argTypes:
    - FILE*
    - char*
    - char*
    - int
    - char*
    - char*
    - PyCompilerFlags*
    - int*
    - PyArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1408
    functionDepth: 8
    functionLinenumber: 1408
    functionLinenumberEnd: 1423
    functionName: PyParser_ASTFromFile
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyParser_ASTFromFileObject
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: mod_ty
    signature: "mod_ty PyParser_ASTFromFile(FILE *fp, const char *filename_str, const
      char* enc,\n                     int start, const char *ps1,\n                     const
      char *ps2, PyCompilerFlags *flags, int *errcode,\n                     PyArena
      *arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseFileFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1431,1
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1435,1
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fp
    - filename
    - start
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1427
    functionDepth: 2
    functionLinenumber: 1427
    functionLinenumberEnd: 1439
    functionName: PyParser_SimpleParseFileFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyParser_ParseFileFlags
    - err_free
    - err_input
    linkageType: ''
    returnType: node
    signature: 'node *

      PyParser_SimpleParseFileFlags(FILE *fp, const char *filename, int start, int
      flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseStringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1447,1
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1450,1
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - str
    - start
    - flags
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1443
    functionDepth: 2
    functionLinenumber: 1443
    functionLinenumberEnd: 1453
    functionName: PyParser_SimpleParseStringFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - err_free
    - err_input
    - PyParser_ParseStringFlags
    linkageType: ''
    returnType: node
    signature: 'node *

      PyParser_SimpleParseStringFlags(const char *str, int start, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_ParseStringFlagsFilename
      Src: /src/Python-3.8.3/Python/pythonrun.c:1460,1
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1463,1
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - str
    - filename
    - start
    - flags
    argTypes:
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1455
    functionDepth: 2
    functionLinenumber: 1455
    functionLinenumberEnd: 1466
    functionName: PyParser_SimpleParseStringFlagsFilename
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - err_free
    - PyParser_ParseStringFlagsFilename
    - err_input
    linkageType: ''
    returnType: node
    signature: "node *\nPyParser_SimpleParseStringFlagsFilename(const char *str, const
      char *filename,\n                                        int start, int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err_free
      Src: /src/Python-3.8.3/Python/pythonrun.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1471
    functionDepth: 1
    functionLinenumber: 1471
    functionLinenumberEnd: 1475
    functionName: PyParser_ClearError
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - err_free
    linkageType: ''
    returnType: void
    signature: void PyParser_ClearError(perrdetail *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: err_input
      Src: /src/Python-3.8.3/Python/pythonrun.c:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1481
    functionName: PyParser_SetError
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - err_input
    linkageType: ''
    returnType: void
    signature: void PyParser_SetError(perrdetail *err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pythonrun.c:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1487
    functionName: err_free
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 6
    functionsReached:
    - Py_CLEAR
    linkageType: ''
    returnType: void
    signature: void err_free(perrdetail *err)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pythonrun.c:1530,1
    - Dst: PyErr_SetNone
      Src: /src/Python-3.8.3/Python/pythonrun.c:1531,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/pythonrun.c:1534,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pythonrun.c:1556,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/pythonrun.c:1559,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1560,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1561,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1562,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pythonrun.c:1576,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1584,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:1586,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pythonrun.c:1589,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/Python/pythonrun.c:1590,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1592,1
    - Dst: PyUnicode_DecodeUTF8
      Src: /src/Python-3.8.3/Python/pythonrun.c:1593,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/pythonrun.c:1598,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/pythonrun.c:1602,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/pythonrun.c:1604,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1607,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/pythonrun.c:1608,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1609,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pythonrun.c:1611,1
    - Dst: PyObject_FREE
      Src: /src/Python-3.8.3/Python/pythonrun.c:1613,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 112
    argCount: 1
    argNames:
    - err
    argTypes:
    - perrdetail*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1491
    functionDepth: 5
    functionLinenumber: 1491
    functionLinenumberEnd: 1616
    functionName: err_input
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 6
    functionsReached:
    - Py_BuildValue
    - PyErr_Occurred
    - Py_DECREF
    - PyErr_SetNone
    - Py_INCREF
    - PyErr_NoMemory
    - PyErr_Fetch
    - PyUnicode_GET_LENGTH
    - PyErr_SetObject
    - PyObject_Str
    - strlen
    - fprintf
    - PyUnicode_DecodeUTF8
    - PyObject_FREE
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void err_input(perrdetail *err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: alloca
      Src: /src/Python-3.8.3/Python/pythonrun.c:1636,1
    - Dst: GetExceptionCode
      Src: /src/Python-3.8.3/Python/pythonrun.c:1638,1
    - Dst: _resetstkoflw
      Src: /src/Python-3.8.3/Python/pythonrun.c:1641,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pythonrun.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1648
    functionName: PyOS_CheckStack
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 4
    functionsReached:
    - alloca
    - GetExceptionCode
    - Py_FatalError
    - _resetstkoflw
    linkageType: ''
    returnType: int
    signature: int PyOS_CheckStack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_SimpleParseFileFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - filename
    - start
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1660
    functionDepth: 3
    functionLinenumber: 1660
    functionLinenumberEnd: 1663
    functionName: PyParser_SimpleParseFile
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyParser_SimpleParseFileFlags
    linkageType: ''
    returnType: void
    signature: void PyParser_SimpleParseFile(FILE *fp, const char *filename, int start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyParser_SimpleParseStringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - start
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1667
    functionDepth: 3
    functionLinenumber: 1667
    functionLinenumberEnd: 1670
    functionName: PyParser_SimpleParseString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyParser_SimpleParseStringFlags
    linkageType: ''
    returnType: void
    signature: void PyParser_SimpleParseString(const char *str, int start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_AnyFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1674
    functionDepth: 2
    functionLinenumber: 1674
    functionLinenumberEnd: 1677
    functionName: PyRun_AnyFile
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_AnyFile(FILE *fp, const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_AnyFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - closeit
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1681
    functionDepth: 2
    functionLinenumber: 1681
    functionLinenumberEnd: 1684
    functionName: PyRun_AnyFileEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_AnyFileEx(FILE *fp, const char *name, int closeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_AnyFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fp
    - name
    - flags
    argTypes:
    - FILE*
    - char*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1691
    functionName: PyRun_AnyFileFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyRun_AnyFileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_AnyFileFlags(FILE *fp, const char *name, PyCompilerFlags
      *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_FileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fp
    - p
    - s
    - g
    - l
    argTypes:
    - FILE*
    - char*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1695
    functionDepth: 4
    functionLinenumber: 1695
    functionLinenumberEnd: 1698
    functionName: PyRun_File
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_FileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_File(FILE *fp, const char *p, int s, PyObject *g, PyObject
      *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_FileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fp
    - p
    - s
    - g
    - l
    - c
    argTypes:
    - FILE*
    - char*
    - int
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1705
      start: 1702
    functionDepth: 4
    functionLinenumber: 1702
    functionLinenumberEnd: 1705
    functionName: PyRun_FileEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_FileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyObject
      *l, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_FileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - fp
    - p
    - s
    - g
    - l
    - flags
    argTypes:
    - FILE*
    - char*
    - int
    - PyObject*
    - PyObject*
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1709
    functionDepth: 4
    functionLinenumber: 1709
    functionLinenumberEnd: 1713
    functionName: PyRun_FileFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_FileExFlags
    linkageType: ''
    returnType: void
    signature: "void PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g,
      PyObject *l,\n                PyCompilerFlags *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_SimpleFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1717
    functionDepth: 8
    functionLinenumber: 1717
    functionLinenumberEnd: 1720
    functionName: PyRun_SimpleFile
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_SimpleFileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_SimpleFile(FILE *f, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_SimpleFileExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - p
    - c
    argTypes:
    - FILE*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1724
    functionDepth: 8
    functionLinenumber: 1724
    functionLinenumberEnd: 1727
    functionName: PyRun_SimpleFileEx
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_SimpleFileExFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_SimpleFileEx(FILE *f, const char *p, int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_StringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - s
    - g
    - l
    argTypes:
    - char*
    - int
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1732
    functionDepth: 4
    functionLinenumber: 1732
    functionLinenumberEnd: 1735
    functionName: PyRun_String
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyRun_StringFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_String(const char *str, int s, PyObject *g, PyObject *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_SimpleStringFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1739
    functionDepth: 5
    functionLinenumber: 1739
    functionLinenumberEnd: 1742
    functionName: PyRun_SimpleString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - PyRun_SimpleStringFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_SimpleString(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CompileStringExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - str
    - p
    - s
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1746
    functionDepth: 16
    functionLinenumber: 1746
    functionLinenumberEnd: 1749
    functionName: Py_CompileString
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 7
    functionsReached:
    - Py_CompileStringExFlags
    linkageType: ''
    returnType: void
    signature: void Py_CompileString(const char *str, const char *p, int s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_CompileStringExFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - str
    - p
    - s
    - flags
    argTypes:
    - char*
    - char*
    - int
    - PyCompilerFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1753
    functionDepth: 16
    functionLinenumber: 1753
    functionLinenumberEnd: 1757
    functionName: Py_CompileStringFlags
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 1
    functionsReached:
    - Py_CompileStringExFlags
    linkageType: ''
    returnType: void
    signature: "void Py_CompileStringFlags(const char *str, const char *p, int s,\n
      \                     PyCompilerFlags *flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_InteractiveOneFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1761
    functionDepth: 8
    functionLinenumber: 1761
    functionLinenumberEnd: 1764
    functionName: PyRun_InteractiveOne
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveOneFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_InteractiveOne(FILE *f, const char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_InteractiveLoopFlags
      Src: /src/Python-3.8.3/Python/pythonrun.c:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - p
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1771
    functionName: PyRun_InteractiveLoop
    functionSourceFile: /src/Python-3.8.3/Python/pythonrun.c
    functionUses: 0
    functionsReached:
    - PyRun_InteractiveLoopFlags
    linkageType: ''
    returnType: void
    signature: void PyRun_InteractiveLoop(FILE *f, const char *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/errors.c:44,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:47,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:61,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:62,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - tstate
    - type
    - value
    - traceback
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: _PyErr_Restore
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 5
    functionsReached:
    - PyTraceBack_Check
    - Py_XDECREF
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: "void _PyErr_Restore(PyThreadState *tstate, PyObject *type, PyObject
      *value,\n               PyObject *traceback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:69,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: PyErr_Restore
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 46
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void PyErr_Restore(PyObject *type, PyObject *value, PyObject *traceback)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: _PyErr_GetTopmostException
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: _PyErr_StackItem
    signature: '_PyErr_StackItem *

      _PyErr_GetTopmostException(PyThreadState *tstate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/errors.c:90,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/errors.c:92,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Python/errors.c:93,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/errors.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - exception
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: _PyErr_CreateException
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyObject_Call
    - PyTuple_Check
    - PyObject_CallFunctionObjArgs
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_CreateException(PyObject *exception, PyObject *value)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/errors.c:107,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/errors.c:108,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/errors.c:114,1
    - Dst: _PyErr_GetTopmostException
      Src: /src/Python-3.8.3/Python/errors.c:115,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:118,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/errors.c:119,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:125,1
    - Dst: _PyErr_CreateException
      Src: /src/Python-3.8.3/Python/errors.c:127,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:128,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:130,1
    - Dst: PyException_GetContext
      Src: /src/Python-3.8.3/Python/errors.c:143,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:144,1
    - Dst: PyException_SetContext
      Src: /src/Python-3.8.3/Python/errors.c:146,1
    - Dst: PyException_SetContext
      Src: /src/Python-3.8.3/Python/errors.c:151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:154,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/errors.c:157,1
    - Dst: PyException_GetTraceback
      Src: /src/Python-3.8.3/Python/errors.c:158,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/errors.c:159,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:160,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - tstate
    - exception
    - value
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 161
    functionName: _PyErr_SetObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 3
    functionsReached:
    - PyExceptionInstance_Check
    - PyException_GetTraceback
    - PyException_GetContext
    - Py_DECREF
    - _PyErr_Format
    - Py_INCREF
    - _PyErr_Restore
    - PyExceptionClass_Check
    - Py_XDECREF
    - _PyErr_Clear
    - _PyErr_GetTopmostException
    - PyException_SetContext
    - _PyErr_CreateException
    - Py_XINCREF
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetObject(PyThreadState *tstate, PyObject *exception, PyObject
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:166,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exception
    - value
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 6
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: PyErr_SetObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 64
    functionsReached:
    - _PyErr_SetObject
    - _PyThreadState_GET
    linkageType: ''
    returnType: void
    signature: void PyErr_SetObject(PyObject *exception, PyObject *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:176,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/errors.c:177,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 6
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: _PyErr_SetKeyError
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 7
    functionsReached:
    - _PyErr_SetObject
    - _PyThreadState_GET
    - Py_DECREF
    - PyTuple_Pack
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetKeyError(PyObject *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exception
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: _PyErr_SetNone
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetObject
    linkageType: ''
    returnType: void
    signature: void _PyErr_SetNone(PyThreadState *tstate, PyObject *exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:196,1
    - Dst: _PyErr_SetNone
      Src: /src/Python-3.8.3/Python/errors.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exception
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 7
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: PyErr_SetNone
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 28
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetNone
    linkageType: ''
    returnType: void
    signature: void PyErr_SetNone(PyObject *exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:205,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:206,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tstate
    - exception
    - string
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 6
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: _PyErr_SetString
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 10
    functionsReached:
    - _PyErr_SetObject
    - PyUnicode_FromString
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: "void _PyErr_SetString(PyThreadState *tstate, PyObject *exception,\n
      \                const char *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:213,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exception
    - string
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: PyErr_SetString
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1937
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void PyErr_SetString(PyObject *exception, const char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/errors.c:233,1
    - Dst: PyTuple_Size
      Src: /src/Python-3.8.3/Python/errors.c:235,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Python/errors.c:238,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:239,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/errors.c:247,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/errors.c:248,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/errors.c:250,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/errors.c:250,1
    - Dst: PyType_IsSubtype
      Src: /src/Python-3.8.3/Python/errors.c:251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - err
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 255
    functionName: PyErr_GivenExceptionMatches
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 8
    functionsReached:
    - PyExceptionInstance_Check
    - PyExceptionInstance_Class
    - PyExceptionClass_Check
    - PyType_IsSubtype
    - PyTuple_Check
    - PyErr_GivenExceptionMatches
    - PyTuple_Size
    - PyTuple_GET_ITEM
    linkageType: ''
    returnType: int
    signature: int PyErr_GivenExceptionMatches(PyObject *err, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Python/errors.c:261,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tstate
    - exc
    argTypes:
    - PyThreadState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: _PyErr_ExceptionMatches
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 3
    functionsReached:
    - PyErr_GivenExceptionMatches
    - _PyErr_Occurred
    linkageType: ''
    returnType: int
    signature: int _PyErr_ExceptionMatches(PyThreadState *tstate, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:268,1
    - Dst: _PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/errors.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 4
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: PyErr_ExceptionMatches
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 145
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_ExceptionMatches
    linkageType: ''
    returnType: int
    signature: int PyErr_ExceptionMatches(PyObject *exc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:303,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/errors.c:309,1
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/errors.c:313,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/errors.c:314,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Python/errors.c:315,1
    - Dst: _PyErr_CreateException
      Src: /src/Python-3.8.3/Python/errors.c:327,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:331,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:338,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:339,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:348,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:349,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:352,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:361,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:362,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:367,1
    - Dst: PyErr_GivenExceptionMatches
      Src: /src/Python-3.8.3/Python/errors.c:374,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/errors.c:375,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/errors.c:379,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 4
    argNames:
    - tstate
    - exc
    - val
    - tb
    argTypes:
    - PyThreadState*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts:
    - condition: (*exc != NULL)
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 384
      start: 283
    functionDepth: 7
    functionLinenumber: 283
    functionLinenumberEnd: 384
    functionName: _PyErr_NormalizeException
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 2
    functionsReached:
    - PyExceptionInstance_Check
    - Py_DECREF
    - PyExceptionInstance_Class
    - Py_INCREF
    - _PyErr_SetString
    - PyExceptionClass_Check
    - PyObject_IsSubclass
    - Py_FatalError
    - PyErr_GivenExceptionMatches
    - assert
    - _PyErr_CreateException
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: "void _PyErr_NormalizeException(PyThreadState *tstate, PyObject **exc,\n
      \                         PyObject **val, PyObject **tb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:390,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - val
    - tb
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 387
    functionDepth: 8
    functionLinenumber: 387
    functionLinenumberEnd: 392
    functionName: PyErr_NormalizeException
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 13
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_NormalizeException
    linkageType: ''
    returnType: void
    signature: void PyErr_NormalizeException(PyObject **exc, PyObject **val, PyObject
      **tb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - tstate
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyThreadState*
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 406
    functionName: _PyErr_Fetch
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _PyErr_Fetch(PyThreadState *tstate, PyObject **p_type, PyObject
      **p_value,\n             PyObject **p_traceback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:412,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 414
    functionName: PyErr_Fetch
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 66
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void PyErr_Fetch(PyObject **p_type, PyObject **p_value, PyObject **p_traceback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: _PyErr_Clear
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 5
    functionsReached:
    - _PyErr_Restore
    linkageType: ''
    returnType: void
    signature: void _PyErr_Clear(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:427,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: PyErr_Clear
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 246
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PyErr_Clear(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:435,1
    - Dst: _PyErr_GetTopmostException
      Src: /src/Python-3.8.3/Python/errors.c:437,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/errors.c:443,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/errors.c:444,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/errors.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyObject**
    - PyObject**
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 446
    functionName: PyErr_GetExcInfo
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - Py_XINCREF
    - _PyErr_GetTopmostException
    linkageType: ''
    returnType: void
    signature: void PyErr_GetExcInfo(PyObject **p_type, PyObject **p_value, PyObject
      **p_traceback)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:452,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:462,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:463,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - p_type
    - p_value
    - p_traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 465
    functionName: PyErr_SetExcInfo
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyThreadState_GET
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyErr_SetExcInfo(PyObject *p_type, PyObject *p_value, PyObject
      *p_traceback)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:476,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:477,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:479,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:480,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/errors.c:482,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:483,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:485,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:486,1
    - Dst: PyException_SetContext
      Src: /src/Python-3.8.3/Python/errors.c:487,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:488,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - exc
    - val
    - tb
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 8
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: _PyErr_ChainExceptions
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 16
    functionsReached:
    - Py_DECREF
    - _PyErr_Restore
    - _PyThreadState_GET
    - _PyErr_Occurred
    - PyException_SetContext
    - _PyErr_NormalizeException
    - PyException_SetTraceback
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void _PyErr_ChainExceptions(PyObject *exc, PyObject *val, PyObject
      *tb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:501,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:501,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:502,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:503,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/errors.c:505,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:506,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:508,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:509,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:509,1
    - Dst: _PyErr_FormatV
      Src: /src/Python-3.8.3/Python/errors.c:511,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:513,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:514,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:515,1
    - Dst: PyException_SetCause
      Src: /src/Python-3.8.3/Python/errors.c:516,1
    - Dst: PyException_SetContext
      Src: /src/Python-3.8.3/Python/errors.c:517,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - tstate
    - exception
    - format
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts:
    - condition: (_PyErr_Occurred(tstate))
      pos:
        line_end: 500
        line_start: 500
        source_file: /src/Python-3.8.3/Python/errors.c
    - condition: (!_PyErr_Occurred(tstate))
      pos:
        line_end: 508
        line_start: 508
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 8
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: _PyErr_FormatVFromCause
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_Restore
    - Py_INCREF
    - _PyErr_Occurred
    - PyException_SetContext
    - assert
    - _PyErr_NormalizeException
    - PyException_SetTraceback
    - _PyErr_FormatV
    - PyException_SetCause
    - _PyErr_Fetch
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_FormatVFromCause(PyThreadState *tstate, PyObject
      *exception,\n                        const char *format, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:526,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:529,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:531,1
    - Dst: _PyErr_FormatVFromCause
      Src: /src/Python-3.8.3/Python/errors.c:533,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/errors.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 523
    functionDepth: 9
    functionLinenumber: 523
    functionLinenumberEnd: 536
    functionName: _PyErr_FormatFromCause
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 4
    functionsReached:
    - _PyThreadState_GET
    - va_end
    - va_start
    - _PyErr_FormatVFromCause
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_FormatFromCause(PyObject *exception, const char *format, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:543,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 540
    functionDepth: 7
    functionLinenumber: 540
    functionLinenumberEnd: 547
    functionName: PyErr_BadArgument
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 40
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyErr_BadArgument(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:552,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/errors.c:553,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/errors.c:556,1
    - Dst: _PyErr_SetNone
      Src: /src/Python-3.8.3/Python/errors.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 549
    functionDepth: 7
    functionLinenumber: 549
    functionLinenumberEnd: 561
    functionName: PyErr_NoMemory
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 418
    functionsReached:
    - Py_FatalError
    - _PyThreadState_GET
    - Py_TYPE
    - _PyErr_SetNone
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_NoMemory(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - filenameObject
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: PyErr_SetFromErrnoWithFilenameObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 9
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:572,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/errors.c:581,1
    - Dst: strerror
      Src: /src/Python-3.8.3/Python/errors.c:587,1
    - Dst: PyUnicode_DecodeLocale
      Src: /src/Python-3.8.3/Python/errors.c:588,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:592,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:596,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:605,1
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Python/errors.c:608,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Python/errors.c:614,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/errors.c:624,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/errors.c:629,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Python/errors.c:638,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/errors.c:645,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/errors.c:647,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:649,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/errors.c:650,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:652,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Python/errors.c:655,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:656,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:658,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/errors.c:658,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:659,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Python/errors.c:663,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - exc
    - filenameObject
    - filenameObject2
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (filenameObject2 == NULL)
      pos:
        line_end: 648
        line_start: 648
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 666
      start: 569
    functionDepth: 8
    functionLinenumber: 569
    functionLinenumberEnd: 666
    functionName: PyErr_SetFromErrnoWithFilenameObjects
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 2
    functionsReached:
    - PyUnicode_FromString
    - Py_BuildValue
    - Py_DECREF
    - strerror
    - FormatMessageW
    - PyErr_CheckSignals
    - _PyThreadState_GET
    - LocalFree
    - MAKELANGID
    - PyUnicode_FromFormat
    - _PyErr_SetObject
    - PyUnicode_FromWideChar
    - PyUnicode_DecodeLocale
    - Py_TYPE
    - PyObject_Call
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilenameObjects(PyObject *exc, PyObject *filenameObject,
      PyObject *filenameObject2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/errors.c:671,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:672,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - filename
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 668
    functionDepth: 9
    functionLinenumber: 668
    functionLinenumberEnd: 675
    functionName: PyErr_SetFromErrnoWithFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 9
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    - Py_XDECREF
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/errors.c:681,1
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:682,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - exc
    - filename
    argTypes:
    - PyObject*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 685
    functionName: PyErr_SetFromErrnoWithUnicodeFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    - PyUnicode_FromWideChar
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrnoWithUnicodeFilename(PyObject *exc, const Py_UNICODE *filename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetFromErrnoWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 9
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: PyErr_SetFromErrno
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 137
    functionsReached:
    - PyErr_SetFromErrnoWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetFromErrno(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exc
    - ierr
    - filenameObject
    argTypes:
    - PyObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 703
    functionName: PyErr_SetExcFromWindowsErrWithFilenameObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 6
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithFilenameObject(\n    PyObject
      *exc,\n    int ierr,\n    PyObject *filenameObject)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:711,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/errors.c:719,1
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/Python/errors.c:722,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/Python/errors.c:729,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/errors.c:736,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/errors.c:742,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Python/errors.c:747,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:752,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/errors.c:759,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:760,1
    - Dst: PyObject_Call
      Src: /src/Python-3.8.3/Python/errors.c:763,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:764,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:766,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/errors.c:766,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:767,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/Python/errors.c:770,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - exc
    - ierr
    - filenameObject
    - filenameObject2
    argTypes:
    - PyObject*
    - int
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (filenameObject2 == NULL)
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 772
      start: 705
    functionDepth: 8
    functionLinenumber: 705
    functionLinenumberEnd: 772
    functionName: PyErr_SetExcFromWindowsErrWithFilenameObjects
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 2
    functionsReached:
    - GetLastError
    - Py_BuildValue
    - Py_DECREF
    - FormatMessageW
    - _PyThreadState_GET
    - LocalFree
    - PyUnicode_FromFormat
    - MAKELANGID
    - _PyErr_SetObject
    - PyUnicode_FromWideChar
    - Py_TYPE
    - PyObject_Call
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithFilenameObjects(\n    PyObject
      *exc,\n    int ierr,\n    PyObject *filenameObject,\n    PyObject *filenameObject2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/errors.c:779,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:780,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - exc
    - ierr
    - filename
    argTypes:
    - PyObject*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 774
    functionDepth: 9
    functionLinenumber: 774
    functionLinenumberEnd: 786
    functionName: PyErr_SetExcFromWindowsErrWithFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithFilename(\n    PyObject *exc,\n
      \   int ierr,\n    const char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/errors.c:793,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:794,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - exc
    - ierr
    - filename
    argTypes:
    - PyObject*
    - int
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 788
    functionDepth: 9
    functionLinenumber: 788
    functionLinenumberEnd: 800
    functionName: PyErr_SetExcFromWindowsErrWithUnicodeFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetExcFromWindowsErrWithUnicodeFilename(\n    PyObject
      *exc,\n    int ierr,\n    const Py_UNICODE *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilename
      Src: /src/Python-3.8.3/Python/errors.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - exc
    - ierr
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 10
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: PyErr_SetExcFromWindowsErr
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 16
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetExcFromWindowsErr(PyObject *exc, int ierr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetExcFromWindowsErrWithFilename
      Src: /src/Python-3.8.3/Python/errors.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ierr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 10
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: PyErr_SetFromWindowsErr
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 71
    functionsReached:
    - PyErr_SetExcFromWindowsErrWithFilename
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyErr_SetFromWindowsErr(int ierr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/errors.c:817,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:818,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ierr
    - filename
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 813
    functionDepth: 9
    functionLinenumber: 813
    functionLinenumberEnd: 823
    functionName: PyErr_SetFromWindowsErrWithFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 3
    functionsReached:
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    - PyUnicode_DecodeFSDefault
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetFromWindowsErrWithFilename(\n    int ierr,\n    const
      char *filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/errors.c:829,1
    - Dst: PyErr_SetExcFromWindowsErrWithFilenameObjects
      Src: /src/Python-3.8.3/Python/errors.c:830,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ierr
    - filename
    argTypes:
    - int
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 825
    functionDepth: 9
    functionLinenumber: 825
    functionLinenumberEnd: 835
    functionName: PyErr_SetFromWindowsErrWithUnicodeFilename
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - Py_XDECREF
    - PyErr_SetExcFromWindowsErrWithFilenameObjects
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(\n    int ierr,\n
      \   const Py_UNICODE *filename)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:842,1
    - Dst: PyObject_IsSubclass
      Src: /src/Python-3.8.3/Python/errors.c:846,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:851,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:857,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/errors.c:869,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/errors.c:873,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/errors.c:876,1
    - Dst: _PyObject_FastCallDict
      Src: /src/Python-3.8.3/Python/errors.c:880,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:882,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/errors.c:882,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:883,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:887,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - exception
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 838
    functionDepth: 7
    functionLinenumber: 838
    functionLinenumberEnd: 889
    functionName: PyErr_SetImportErrorSubclass
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyErr_SetString
    - PyDict_New
    - _PyThreadState_GET
    - PyObject_IsSubclass
    - _PyObject_FastCallDict
    - _PyErr_SetObject
    - Py_TYPE
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyErr_SetImportErrorSubclass(PyObject *exception, PyObject
      *msg,\n    PyObject *name, PyObject *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetImportErrorSubclass
      Src: /src/Python-3.8.3/Python/errors.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - msg
    - name
    - path
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 8
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: PyErr_SetImportError
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 7
    functionsReached:
    - PyErr_SetImportErrorSubclass
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:900,1
    - Dst: _PyErr_Format
      Src: /src/Python-3.8.3/Python/errors.c:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 904
    functionName: _PyErr_BadInternalCall
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_Format
    linkageType: ''
    returnType: void
    signature: void _PyErr_BadInternalCall(const char *filename, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:912,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:913,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0 && "bad argument to internal function")
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 916
      start: 909
    functionDepth: 7
    functionLinenumber: 909
    functionLinenumberEnd: 916
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 144
    functionsReached:
    - assert
    - _PyThreadState_GET
    - _PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void PyErr_BadInternalCall(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 918
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 144
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_BadInternalCall()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:928,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/errors.c:930,1
    - Dst: _PyErr_SetObject
      Src: /src/Python-3.8.3/Python/errors.c:932,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tstate
    - exception
    - format
    - vargs
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 920
    functionDepth: 7
    functionLinenumber: 920
    functionLinenumberEnd: 935
    functionName: _PyErr_FormatV
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached:
    - _PyErr_SetObject
    - _PyErr_Clear
    - Py_XDECREF
    - PyUnicode_FromFormatV
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_FormatV(PyThreadState *tstate, PyObject *exception,\n
      \              const char *format, va_list vargs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:941,1
    - Dst: _PyErr_FormatV
      Src: /src/Python-3.8.3/Python/errors.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - exception
    - format
    - vargs
    argTypes:
    - PyObject*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 938
    functionDepth: 8
    functionLinenumber: 938
    functionLinenumberEnd: 943
    functionName: PyErr_FormatV
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 2
    functionsReached:
    - _PyThreadState_GET
    - _PyErr_FormatV
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_FormatV(PyObject *exception, const char *format, va_list vargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:952,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:954,1
    - Dst: _PyErr_FormatV
      Src: /src/Python-3.8.3/Python/errors.c:956,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/errors.c:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tstate
    - exception
    - format
    argTypes:
    - PyThreadState*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 946
    functionDepth: 8
    functionLinenumber: 946
    functionLinenumberEnd: 959
    functionName: _PyErr_Format
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 14
    functionsReached:
    - va_start
    - va_end
    - _PyErr_FormatV
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyErr_Format(PyThreadState *tstate, PyObject *exception,\n
      \             const char *format, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:965,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:968,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/errors.c:970,1
    - Dst: _PyErr_FormatV
      Src: /src/Python-3.8.3/Python/errors.c:972,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/errors.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - exception
    - format
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 962
    functionDepth: 8
    functionLinenumber: 962
    functionLinenumberEnd: 975
    functionName: PyErr_Format
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 761
    functionsReached:
    - _PyErr_FormatV
    - _PyThreadState_GET
    - va_end
    - va_start
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_Format(PyObject *exception, const char *format, ...)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:981,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:982,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Python/errors.c:989,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:991,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/errors.c:999,1
    - Dst: _PyDict_GetItemIdWithError
      Src: /src/Python-3.8.3/Python/errors.c:1004,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:1005,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/errors.c:1008,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/errors.c:1012,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/errors.c:1015,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:1018,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/errors.c:1020,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/errors.c:1025,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1028,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1029,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1030,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1031,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - name
    - base
    - dict
    argTypes:
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 978
    functionDepth: 7
    functionLinenumber: 978
    functionLinenumberEnd: 1033
    functionName: PyErr_NewException
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 32
    functionsReached:
    - _PyDict_GetItemIdWithError
    - strrchr
    - _PyErr_SetString
    - Py_INCREF
    - PyUnicode_FromStringAndSize
    - PyDict_New
    - _PyThreadState_GET
    - _Py_IDENTIFIER
    - _PyDict_SetItemId
    - PyTuple_Pack
    - PyTuple_Check
    - PyObject_CallFunction
    - Py_XDECREF
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_NewException(const char *name, PyObject *base, PyObject *dict)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/errors.c:1047,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:1054,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/errors.c:1057,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1058,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/Python/errors.c:1063,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1065,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - name
    - doc
    - base
    - dict
    argTypes:
    - char*
    - char*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1037
    functionDepth: 8
    functionLinenumber: 1037
    functionLinenumberEnd: 1067
    functionName: PyErr_NewExceptionWithDoc
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 4
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - PyErr_NewException
    - PyDict_New
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nPyErr_NewExceptionWithDoc(const char *name, const char
      *doc,\n                          PyObject *base, PyObject *dict)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/errors.c:1098,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/errors.c:1100,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/errors.c:1103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1104
    functionName: _PyErr_Init
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_InitType2
    - _PyStatus_ERR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyErr_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/errors.c:1112,1
    - Dst: ADD_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1128,1
    - Dst: ADD_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1129,1
    - Dst: ADD_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1130,1
    - Dst: ADD_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1131,1
    - Dst: ADD_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1132,1
    - Dst: _PyErr_Occurred
      Src: /src/Python-3.8.3/Python/errors.c:1135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - tstate
    - exc_type
    - exc_value
    - exc_tb
    - err_msg
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1140
    functionName: make_unraisable_hook_args
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_New
    - Py_DECREF
    - ADD_ITEM
    - _PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nmake_unraisable_hook_args(PyThreadState *tstate, PyObject
      *exc_type,\n                          PyObject *exc_value, PyObject *exc_tb,\n
      \                         PyObject *err_msg, PyObject *obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exc_type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1126
    functionName: ADD_ITEM
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_ITEM(exc_type)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/errors.c:1156,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1159,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1164,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/errors.c:1169,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1170,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1171,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1175,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/errors.c:1180,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1183,1
    - Dst: PyTraceBack_Print
      Src: /src/Python-3.8.3/Python/errors.c:1189,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1191,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:1199,1
    - Dst: PyExceptionClass_Check
      Src: /src/Python-3.8.3/Python/errors.c:1199,1
    - Dst: PyExceptionClass_Name
      Src: /src/Python-3.8.3/Python/errors.c:1200,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Python/errors.c:1202,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1208,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1209,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/errors.c:1210,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1211,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1212,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1213,1
    - Dst: _PyUnicode_EqualToASCIIId
      Src: /src/Python-3.8.3/Python/errors.c:1218,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/errors.c:1219,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1220,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1223,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1224,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1229,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1233,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1238,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1244,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/errors.c:1247,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1248,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1249,1
    - Dst: PyFile_WriteString
      Src: /src/Python-3.8.3/Python/errors.c:1255,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/errors.c:1260,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1264,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 95
    argCount: 7
    argNames:
    - tstate
    - exc_type
    - exc_value
    - exc_tb
    - err_msg
    - obj
    - file
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts:
    - condition: (PyExceptionClass_Check(exc_type))
      pos:
        line_end: 1198
        line_start: 1198
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1267
      start: 1149
    functionDepth: 16
    functionLinenumber: 1149
    functionLinenumberEnd: 1267
    functionName: write_unraisable_exc_file
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyTraceBack_Print
    - PyFile_WriteString
    - PyExceptionClass_Name
    - strrchr
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyExceptionClass_Check
    - _PyErr_Clear
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyFile_WriteObject
    - _PyUnicode_EqualToASCIIId
    - PyUnicode_Check
    - assert
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: "int write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,\n
      \                         PyObject *exc_value, PyObject *exc_tb,\n                          PyObject
      *err_msg, PyObject *obj, PyObject *file)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/errors.c:1275,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/errors.c:1282,1
    - Dst: write_unraisable_exc_file
      Src: /src/Python-3.8.3/Python/errors.c:1283,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - tstate
    - exc_type
    - exc_value
    - exc_tb
    - err_msg
    - obj
    argTypes:
    - PyThreadState*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1270
    functionDepth: 17
    functionLinenumber: 1270
    functionLinenumberEnd: 1288
    functionName: write_unraisable_exc
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - write_unraisable_exc_file
    - _PySys_GetObjectId
    - Py_INCREF
    linkageType: ''
    returnType: int
    signature: "int write_unraisable_exc(PyThreadState *tstate, PyObject *exc_type,\n
      \                    PyObject *exc_value, PyObject *exc_tb, PyObject *err_msg,\n
      \                    PyObject *obj)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1294,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/errors.c:1296,1
    - Dst: _PyErr_SetString
      Src: /src/Python-3.8.3/Python/errors.c:1297,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1304,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1305,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1306,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1307,1
    - Dst: PyStructSequence_GET_ITEM
      Src: /src/Python-3.8.3/Python/errors.c:1308,1
    - Dst: write_unraisable_exc
      Src: /src/Python-3.8.3/Python/errors.c:1310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - args
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1291
    functionDepth: 18
    functionLinenumber: 1291
    functionLinenumberEnd: 1314
    functionName: _PyErr_WriteUnraisableDefaultHook
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - _PyErr_SetString
    - _PyThreadState_GET
    - write_unraisable_exc
    - Py_TYPE
    - PyStructSequence_GET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyErr_WriteUnraisableDefaultHook(PyObject *args)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1331,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:1332,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:1336,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/errors.c:1338,1
    - Dst: _PyTraceBack_FromFrame
      Src: /src/Python-3.8.3/Python/errors.c:1348,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1350,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:1355,1
    - Dst: PyTraceBack_Check
      Src: /src/Python-3.8.3/Python/errors.c:1357,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/errors.c:1358,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1359,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Python/errors.c:1364,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1366,1
    - Dst: make_unraisable_hook_args
      Src: /src/Python-3.8.3/Python/errors.c:1370,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1378,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/errors.c:1379,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1381,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/errors.c:1385,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1386,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1393,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/errors.c:1398,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1399,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1401,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/errors.c:1411,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:1411,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1413,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1414,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1415,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:1416,1
    - Dst: write_unraisable_exc
      Src: /src/Python-3.8.3/Python/errors.c:1420,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1424,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1425,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1426,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1427,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1428,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 76
    argCount: 2
    argNames:
    - err_msg_str
    - obj
    argTypes:
    - char*
    - PyObject*
    assertStmts:
    - condition: (tstate != NULL)
      pos:
        line_end: 1331
        line_start: 1331
        source_file: /src/Python-3.8.3/Python/errors.c
    - condition: (exc_type != NULL)
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/Python-3.8.3/Python/errors.c
    constantsTouched: []
    func_position:
      end: 1429
      start: 1328
    functionDepth: 18
    functionLinenumber: 1328
    functionLinenumberEnd: 1429
    functionName: _PyErr_WriteUnraisableMsg
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 7
    functionsReached:
    - _PySys_GetObjectId
    - Py_XSETREF
    - _Py_IDENTIFIER
    - PyUnicode_FromFormat
    - _PyErr_Fetch
    - _PyTraceBack_FromFrame
    - assert
    - PyErr_Clear
    - PyException_SetTraceback
    - Py_XDECREF
    - PyUnicode_FromString
    - Py_DECREF
    - _PyErr_NormalizeException
    - _PyThreadState_GET
    - _PyErr_Clear
    - PyTraceBack_Check
    - write_unraisable_exc
    - make_unraisable_hook_args
    - _PyObject_FastCall
    - PySys_Audit
    linkageType: ''
    returnType: void
    signature: void _PyErr_WriteUnraisableMsg(const char *err_msg_str, PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_WriteUnraisableMsg
      Src: /src/Python-3.8.3/Python/errors.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1432
    functionDepth: 19
    functionLinenumber: 1432
    functionLinenumberEnd: 1436
    functionName: PyErr_WriteUnraisable
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 29
    functionsReached:
    - _PyErr_WriteUnraisableMsg
    linkageType: ''
    returnType: void
    signature: void PyErr_WriteUnraisable(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SyntaxLocationEx
      Src: /src/Python-3.8.3/Python/errors.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1446
    functionName: PyErr_SyntaxLocation
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyErr_SyntaxLocationEx
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocation(const char *filename, int lineno)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1457,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1458,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1459,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1460,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1461,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/errors.c:1462,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1463,1
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/errors.c:1466,1
    - Dst: _PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/errors.c:1467,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/errors.c:1470,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1472,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1474,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1475,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1477,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/errors.c:1481,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1483,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1486,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1487,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1489,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1491,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1492,1
    - Dst: PyErr_ProgramTextObject
      Src: /src/Python-3.8.3/Python/errors.c:1495,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1497,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1498,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1500,1
    - Dst: _PyObject_HasAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1504,1
    - Dst: PyObject_Str
      Src: /src/Python-3.8.3/Python/errors.c:1505,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1507,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1508,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/errors.c:1510,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1513,1
    - Dst: _PyObject_HasAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1516,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/errors.c:1517,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1519,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/errors.c:1523,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1453
    functionDepth: 8
    functionLinenumber: 1453
    functionLinenumberEnd: 1524
    functionName: PyErr_SyntaxLocationObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 9
    functionsReached:
    - PyLong_FromLong
    - _PyObject_SetAttrId
    - Py_DECREF
    - _PyErr_Restore
    - PyErr_ProgramTextObject
    - _PyThreadState_GET
    - _PyErr_Clear
    - _Py_IDENTIFIER
    - PyObject_Str
    - _PyObject_HasAttrId
    - _PyErr_NormalizeException
    - Py_XDECREF
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocationObject(PyObject *filename, int lineno, int
      col_offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1529,1
    - Dst: PyUnicode_DecodeFSDefault
      Src: /src/Python-3.8.3/Python/errors.c:1532,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1534,1
    - Dst: PyErr_SyntaxLocationObject
      Src: /src/Python-3.8.3/Python/errors.c:1540,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/errors.c:1541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - lineno
    - col_offset
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1526
    functionDepth: 9
    functionLinenumber: 1526
    functionLinenumberEnd: 1542
    functionName: PyErr_SyntaxLocationEx
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 1
    functionsReached:
    - PyUnicode_DecodeFSDefault
    - _PyThreadState_GET
    - _PyErr_Clear
    - PyErr_SyntaxLocationObject
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void PyErr_SyntaxLocationEx(const char *filename, int lineno, int col_offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_UniversalNewlineFgets
      Src: /src/Python-3.8.3/Python/errors.c:1562,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Python/errors.c:1572,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/errors.c:1575,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1577,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - tstate
    - fp
    - lineno
    argTypes:
    - PyThreadState*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1550
    functionDepth: 3
    functionLinenumber: 1550
    functionLinenumberEnd: 1581
    functionName: err_programtext
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_UniversalNewlineFgets
    - fclose
    - _PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      err_programtext(PyThreadState *tstate, FILE *fp, int lineno)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1590,1
    - Dst: _Py_fopen
      Src: /src/Python-3.8.3/Python/errors.c:1591,1
    - Dst: err_programtext
      Src: /src/Python-3.8.3/Python/errors.c:1592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1583
    functionDepth: 5
    functionLinenumber: 1583
    functionLinenumberEnd: 1593
    functionName: PyErr_ProgramText
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 0
    functionsReached:
    - err_programtext
    - _PyThreadState_GET
    - _Py_fopen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_ProgramText(const char *filename, int lineno)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/errors.c:1602,1
    - Dst: _Py_fopen_obj
      Src: /src/Python-3.8.3/Python/errors.c:1603,1
    - Dst: _PyErr_Clear
      Src: /src/Python-3.8.3/Python/errors.c:1605,1
    - Dst: err_programtext
      Src: /src/Python-3.8.3/Python/errors.c:1608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - filename
    - lineno
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1595
    functionDepth: 7
    functionLinenumber: 1595
    functionLinenumberEnd: 1609
    functionName: PyErr_ProgramTextObject
    functionSourceFile: /src/Python-3.8.3/Python/errors.c
    functionUses: 3
    functionsReached:
    - err_programtext
    - _PyThreadState_GET
    - _PyErr_Clear
    - _Py_fopen_obj
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyErr_ProgramTextObject(PyObject *filename, int lineno)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Py_IS_FINITE
      Src: /src/Python-3.8.3/Python/pyhash.c:92,1
    - Dst: Py_IS_INFINITY
      Src: /src/Python-3.8.3/Python/pyhash.c:93,1
    - Dst: frexp
      Src: /src/Python-3.8.3/Python/pyhash.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - v
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: _Py_HashDouble
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 2
    functionsReached:
    - Py_IS_INFINITY
    - Py_IS_FINITE
    - frexp
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _Py_HashDouble(double v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 143
    functionName: _Py_HashPointer
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _Py_HashPointer(void *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pyhash.c:178,1
    - Dst: hash
      Src: /src/Python-3.8.3/Python/pyhash.c:186,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 191
    functionName: _Py_HashBytes
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 6
    functionsReached:
    - Py_UNREACHABLE
    - hash
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t _Py_HashBytes(const void *src, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pyhash.c:201,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pyhash.c:204,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pyhash.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 210
    functionName: _PyHash_Fini
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void _PyHash_Fini(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: PyHash_GetFuncDef
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyHash_FuncDef
    signature: 'PyHash_FuncDef *

      PyHash_GetFuncDef(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: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_UHASH_CPY(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: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_UHASH_CPY(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: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: PY_UHASH_CPY
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PY_UHASH_CPY(dst, src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pyhash.c:253,1
    - Dst: PY_UHASH_CPY
      Src: /src/Python-3.8.3/Python/pyhash.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - src
    - len
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts:
    - condition: (_Py_HashSecret_Initialized)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/Python-3.8.3/Python/pyhash.c
    constantsTouched: []
    func_position:
      end: 279
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 279
    functionName: fnv
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - PY_UHASH_CPY
    - assert
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t fnv(const void *src, Py_ssize_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: _le64toh
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: _le64toh
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: _le64toh
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: _le64toh
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ROTATE
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: ROTATE
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTATE(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: HALF_ROUND
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HALF_ROUND(a,b,c,d,s,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v0
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: DOUBLE_ROUND
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOUBLE_ROUND(v0,v1,v2,v3)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pyhash.c:381,1
    - Dst: _le64toh
      Src: /src/Python-3.8.3/Python/pyhash.c:382,1
    - Dst: DOUBLE_ROUND
      Src: /src/Python-3.8.3/Python/pyhash.c:386,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/pyhash.c:396,1
    - Dst: _le64toh
      Src: /src/Python-3.8.3/Python/pyhash.c:401,1
    - Dst: DOUBLE_ROUND
      Src: /src/Python-3.8.3/Python/pyhash.c:404,1
    - Dst: DOUBLE_ROUND
      Src: /src/Python-3.8.3/Python/pyhash.c:407,1
    - Dst: DOUBLE_ROUND
      Src: /src/Python-3.8.3/Python/pyhash.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 4
    argNames:
    - k0
    - k1
    - src
    - src_sz
    argTypes:
    - uint64_t
    - uint64_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 413
    functionName: siphash24
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 1
    functionsReached:
    - memcpy
    - DOUBLE_ROUND
    - _le64toh
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t siphash24(uint64_t k0, uint64_t k1, const void *src, Py_ssize_t
      src_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siphash24
      Src: /src/Python-3.8.3/Python/pyhash.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - src
    - src_sz
    argTypes:
    - uint64_t
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: _Py_KeyedHash
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 1
    functionsReached:
    - siphash24
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t _Py_KeyedHash(uint64_t key, const void *src, Py_ssize_t src_sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: siphash24
      Src: /src/Python-3.8.3/Python/pyhash.c:425,1
    - Dst: _le64toh
      Src: /src/Python-3.8.3/Python/pyhash.c:426,1
    - Dst: _le64toh
      Src: /src/Python-3.8.3/Python/pyhash.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - src_sz
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 428
    functionName: pysiphash
    functionSourceFile: /src/Python-3.8.3/Python/pyhash.c
    functionUses: 0
    functionsReached:
    - siphash24
    - _le64toh
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t pysiphash(const void *src, Py_ssize_t src_sz)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/thread_nt.h:37,1
    - Dst: PyCOND_INIT
      Src: /src/Python-3.8.3/Python/thread_nt.h:40,1
    - Dst: PyMUTEX_INIT
      Src: /src/Python-3.8.3/Python/thread_nt.h:42,1
    - Dst: PyCOND_FINI
      Src: /src/Python-3.8.3/Python/thread_nt.h:43,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:49,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: AllocNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyMUTEX_INIT
    - PyMem_RawMalloc
    - PyCOND_INIT
    - PyCOND_FINI
    - PyMem_RawFree
    linkageType: ''
    returnType: PNRMUTEX
    signature: PNRMUTEX AllocNonRecursiveMutex()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCOND_FINI
      Src: /src/Python-3.8.3/Python/thread_nt.h:57,1
    - Dst: PyMUTEX_FINI
      Src: /src/Python-3.8.3/Python/thread_nt.h:58,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: FreeNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyMUTEX_FINI
    - PyCOND_FINI
    - PyMem_RawFree
    linkageType: ''
    returnType: VOID
    signature: VOID FreeNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyMUTEX_LOCK
      Src: /src/Python-3.8.3/Python/thread_nt.h:67,1
    - Dst: PyCOND_WAIT
      Src: /src/Python-3.8.3/Python/thread_nt.h:71,1
    - Dst: GetTickCount64
      Src: /src/Python-3.8.3/Python/thread_nt.h:78,1
    - Dst: PyCOND_TIMEDWAIT
      Src: /src/Python-3.8.3/Python/thread_nt.h:80,1
    - Dst: GetTickCount64
      Src: /src/Python-3.8.3/Python/thread_nt.h:84,1
    - Dst: PyMUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/thread_nt.h:96,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 2
    argNames:
    - mutex
    - milliseconds
    argTypes:
    - PNRMUTEX
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 98
    functionName: EnterNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyMUTEX_UNLOCK
    - PyCOND_WAIT
    - GetTickCount64
    - PyCOND_TIMEDWAIT
    - PyMUTEX_LOCK
    linkageType: ''
    returnType: DWORD
    signature: DWORD EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyMUTEX_LOCK
      Src: /src/Python-3.8.3/Python/thread_nt.h:104,1
    - Dst: PyCOND_SIGNAL
      Src: /src/Python-3.8.3/Python/thread_nt.h:108,1
    - Dst: PyMUTEX_UNLOCK
      Src: /src/Python-3.8.3/Python/thread_nt.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: LeaveNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - PyCOND_SIGNAL
    - PyMUTEX_UNLOCK
    - PyMUTEX_LOCK
    linkageType: ''
    returnType: BOOL
    signature: BOOL LeaveNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateSemaphore
      Src: /src/Python-3.8.3/Python/thread_nt.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: AllocNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - CreateSemaphore
    linkageType: ''
    returnType: PNRMUTEX
    signature: PNRMUTEX AllocNonRecursiveMutex()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Python/thread_nt.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: FreeNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - CloseHandle
    linkageType: ''
    returnType: VOID
    signature: VOID FreeNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/Python/thread_nt.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mutex
    - milliseconds
    argTypes:
    - PNRMUTEX
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: EnterNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - WaitForSingleObjectEx
    linkageType: ''
    returnType: DWORD
    signature: DWORD EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReleaseSemaphore
      Src: /src/Python-3.8.3/Python/thread_nt.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PNRMUTEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: LeaveNonRecursiveMutex
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - ReleaseSemaphore
    linkageType: ''
    returnType: BOOL
    signature: BOOL LeaveNonRecursiveMutex(PNRMUTEX mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: PyThread__init_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread__init_thread(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HeapFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:175,1
    - Dst: GetProcessHeap
      Src: /src/Python-3.8.3/Python/thread_nt.h:175,1
    - Dst: func
      Src: /src/Python-3.8.3/Python/thread_nt.h:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - call
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: bootstrap
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - GetProcessHeap
    - HeapFree
    - func
    linkageType: ''
    returnType: unsigned
    signature: unsigned bootstrap(void *call)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:187,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:188,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_nt.h:190,1
    - Dst: HeapAlloc
      Src: /src/Python-3.8.3/Python/thread_nt.h:192,1
    - Dst: GetProcessHeap
      Src: /src/Python-3.8.3/Python/thread_nt.h:192,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/thread_nt.h:197,1
    - Dst: _beginthreadex
      Src: /src/Python-3.8.3/Python/thread_nt.h:199,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/Python/thread_nt.h:200,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:208,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:209,1
    - Dst: HeapFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:211,1
    - Dst: GetProcessHeap
      Src: /src/Python-3.8.3/Python/thread_nt.h:211,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:214,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:215,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/Python/thread_nt.h:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 219
    functionName: PyThread_start_new_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 5
    functionsReached:
    - Py_SAFE_DOWNCAST
    - HeapAlloc
    - GetProcessHeap
    - dprintf
    - _PyThreadState_GET
    - HeapFree
    - PyThread_init_thread
    - PyThread_get_thread_ident
    - _beginthreadex
    - CloseHandle
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_start_new_thread(void (*func)(void *), void
      *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_nt.h:229,1
    - Dst: GetCurrentThreadId
      Src: /src/Python-3.8.3/Python/thread_nt.h:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: PyThread_get_thread_ident
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 22
    functionsReached:
    - PyThread_init_thread
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_ident(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_nt.h:244,1
    - Dst: GetCurrentThreadId
      Src: /src/Python-3.8.3/Python/thread_nt.h:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: PyThread_get_thread_native_id
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 1
    functionsReached:
    - PyThread_init_thread
    - GetCurrentThreadId
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyThread_get_thread_native_id(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:256,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:256,1
    - Dst: exit
      Src: /src/Python-3.8.3/Python/thread_nt.h:258,1
    - Dst: _endthreadex
      Src: /src/Python-3.8.3/Python/thread_nt.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: _Py_NO_RETURN::PyThread_exit_thread
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - exit
    - dprintf
    - PyThread_get_thread_ident
    - _endthreadex
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      PyThread_exit_thread(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:272,1
    - Dst: PyThread_init_thread
      Src: /src/Python-3.8.3/Python/thread_nt.h:274,1
    - Dst: AllocNonRecursiveMutex
      Src: /src/Python-3.8.3/Python/thread_nt.h:276,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:278,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: PyThread_allocate_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 33
    functionsReached:
    - AllocNonRecursiveMutex
    - PyThread_init_thread
    - dprintf
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: PyThread_type_lock
    signature: PyThread_type_lock PyThread_allocate_lock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:286,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:286,1
    - Dst: FreeNonRecursiveMutex
      Src: /src/Python-3.8.3/Python/thread_nt.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aLock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: PyThread_free_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 31
    functionsReached:
    - dprintf
    - FreeNonRecursiveMutex
    - PyThread_get_thread_ident
    linkageType: ''
    returnType: void
    signature: void PyThread_free_lock(PyThread_type_lock aLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/thread_nt.h:311,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:318,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:319,1
    - Dst: EnterNonRecursiveMutex
      Src: /src/Python-3.8.3/Python/thread_nt.h:321,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:329,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - aLock
    - microseconds
    - intr_flag
    argTypes:
    - PyThread_type_lock
    - PY_TIMEOUT_T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 333
    functionName: PyThread_acquire_lock_timed
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 5
    functionsReached:
    - Py_FatalError
    - dprintf
    - PyThread_get_thread_ident
    - EnterNonRecursiveMutex
    linkageType: ''
    returnType: PyLockStatus
    signature: "PyLockStatus PyThread_acquire_lock_timed(PyThread_type_lock aLock,\n
      \                           PY_TIMEOUT_T microseconds, int intr_flag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThread_acquire_lock_timed
      Src: /src/Python-3.8.3/Python/thread_nt.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aLock
    - waitflag
    argTypes:
    - PyThread_type_lock
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: PyThread_acquire_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 37
    functionsReached:
    - PyThread_acquire_lock_timed
    linkageType: ''
    returnType: int
    signature: int PyThread_acquire_lock(PyThread_type_lock aLock, int waitflag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:343,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:343,1
    - Dst: LeaveNonRecursiveMutex
      Src: /src/Python-3.8.3/Python/thread_nt.h:345,1
    - Dst: dprintf
      Src: /src/Python-3.8.3/Python/thread_nt.h:346,1
    - Dst: PyThread_get_thread_ident
      Src: /src/Python-3.8.3/Python/thread_nt.h:346,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/thread_nt.h:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - aLock
    argTypes:
    - PyThread_type_lock
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: PyThread_release_lock
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 54
    functionsReached:
    - GetLastError
    - dprintf
    - PyThread_get_thread_ident
    - LeaveNonRecursiveMutex
    linkageType: ''
    returnType: void
    signature: void PyThread_release_lock(PyThread_type_lock aLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/thread_nt.h:361,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/thread_nt.h:367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 372
    functionName: _pythread_nt_set_stacksize
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    linkageType: ''
    returnType: int
    signature: int _pythread_nt_set_stacksize(size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: THREAD_SET_STACKSIZE
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_SET_STACKSIZE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TlsAlloc
      Src: /src/Python-3.8.3/Python/thread_nt.h:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 389
    functionName: PyThread_create_key
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: int PyThread_create_key(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 395
    functionName: PyThread_delete_key
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - TlsFree
    linkageType: ''
    returnType: void
    signature: void PyThread_delete_key(int key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/Python-3.8.3/Python/thread_nt.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: PyThread_set_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: int PyThread_set_key_value(int key, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/thread_nt.h:413,1
    - Dst: TlsGetValue
      Src: /src/Python-3.8.3/Python/thread_nt.h:414,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Python/thread_nt.h:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 417
    functionName: PyThread_get_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - GetLastError
    - TlsGetValue
    - SetLastError
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_get_key_value(int key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsSetValue
      Src: /src/Python-3.8.3/Python/thread_nt.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: PyThread_delete_key_value
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached:
    - TlsSetValue
    linkageType: ''
    returnType: void
    signature: void PyThread_delete_key_value(int key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: PyThread_ReInitTLS
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyThread_ReInitTLS(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_nt.h:446,1
    - Dst: TlsAlloc
      Src: /src/Python-3.8.3/Python/thread_nt.h:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 445
        line_start: 445
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 460
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 460
    functionName: PyThread_tss_create
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 4
    functionsReached:
    - assert
    - TlsAlloc
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_create(Py_tss_t *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_nt.h:465,1
    - Dst: TlsFree
      Src: /src/Python-3.8.3/Python/thread_nt.h:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 464
        line_start: 464
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 474
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 474
    functionName: PyThread_tss_delete
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 5
    functionsReached:
    - assert
    - TlsFree
    linkageType: ''
    returnType: void
    signature: void PyThread_tss_delete(Py_tss_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_nt.h:479,1
    - Dst: TlsSetValue
      Src: /src/Python-3.8.3/Python/thread_nt.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - Py_tss_t*
    - void*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 478
        line_start: 478
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: PyThread_tss_set
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 6
    functionsReached:
    - assert
    - TlsSetValue
    linkageType: ''
    returnType: int
    signature: int PyThread_tss_set(Py_tss_t *key, void *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/thread_nt.h:487,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/Python/thread_nt.h:494,1
    - Dst: TlsGetValue
      Src: /src/Python-3.8.3/Python/thread_nt.h:495,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/Python/thread_nt.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - Py_tss_t*
    assertStmts:
    - condition: (key != NULL)
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: PyThread_tss_get
    functionSourceFile: /src/Python-3.8.3/Python/thread_nt.h
    functionUses: 9
    functionsReached:
    - assert
    - TlsGetValue
    - SetLastError
    - GetLastError
    linkageType: ''
    returnType: void
    signature: 'void *

      PyThread_tss_get(Py_tss_t *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/getversion.c:12,1
    - Dst: Py_GetBuildInfo
      Src: /src/Python-3.8.3/Python/getversion.c:13,1
    - Dst: Py_GetCompiler
      Src: /src/Python-3.8.3/Python/getversion.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 2
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: Py_GetVersion
    functionSourceFile: /src/Python-3.8.3/Python/getversion.c
    functionUses: 3
    functionsReached:
    - Py_GetBuildInfo
    - PyOS_snprintf
    - Py_GetCompiler
    linkageType: ''
    returnType: char
    signature: 'char *

      Py_GetVersion(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/initconfig.c:171,1
    - Dst: SET_ITEM_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:197,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:198,1
    - Dst: SET_ITEM_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:199,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:200,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:202,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:203,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:204,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:205,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:206,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:207,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:209,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:210,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:211,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:212,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:213,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:214,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:215,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:216,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:217,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:218,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:221,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:222,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/initconfig.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 235
    functionName: _Py_GetGlobalVariablesAsDict
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_New
    - SET_ITEM_INT
    - SET_ITEM_STR
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetGlobalVariablesAsDict(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - EXPR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: SET_ITEM
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 214
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(KEY, EXPR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: SET_ITEM_INT
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_INT(VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: FROM_STRING
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_STRING(STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: SET_ITEM_STR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_STR(VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 241
    functionName: PyStatus_Ok
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_Ok(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err_msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: PyStatus_Error
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_Error(const char *err_msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyStatus_Error
      Src: /src/Python-3.8.3/Python/initconfig.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: PyStatus_NoMemory
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyStatus_Error
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_NoMemory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exitcode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: PyStatus_Exit
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_EXIT
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyStatus_Exit(int exitcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_ERROR
      Src: /src/Python-3.8.3/Python/initconfig.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: PyStatus_IsError
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_IS_ERROR
    linkageType: ''
    returnType: int
    signature: int PyStatus_IsError(PyStatus status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: PyStatus_IsExit
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_IS_EXIT
    linkageType: ''
    returnType: int
    signature: int PyStatus_IsExit(PyStatus status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: PyStatus_Exception
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: int
    signature: int PyStatus_Exception(PyStatus status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:272,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:274,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (list->length >= 0)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (list->items[i] != NULL)
      pos:
        line_end: 276
        line_start: 276
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (list->items != NULL)
      pos:
        line_end: 273
        line_start: 273
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: _PyWideStringList_CheckConsistency
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int _PyWideStringList_CheckConsistency(const PyWideStringList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:287,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:287,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:289,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: _PyWideStringList_Clear
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 3
    functionsReached:
    - assert
    - PyMem_RawFree
    - _PyWideStringList_CheckConsistency
    linkageType: ''
    returnType: void
    signature: void _PyWideStringList_Clear(PyWideStringList *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:300,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:300,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:301,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:301,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:304,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/initconfig.c:311,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:317,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:319,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - list
    - list2
    argTypes:
    - PyWideStringList*
    - PyWideStringList*
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(list2))
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: _PyWideStringList_Copy
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyMem_RawWcsdup
    - PyMem_RawMalloc
    - _PyWideStringList_CheckConsistency
    - assert
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: int
    signature: int _PyWideStringList_Copy(PyWideStringList *list, const PyWideStringList
      *list2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:339,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:342,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:348,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:350,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/Python/initconfig.c:354,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:356,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:357,1
    - Dst: memmove
      Src: /src/Python-3.8.3/Python/initconfig.c:361,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - list
    - index
    - item
    argTypes:
    - PyWideStringList*
    - Py_ssize_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 370
    functionName: PyWideStringList_Insert
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - PyMem_RawRealloc
    - _PyStatus_ERR
    - PyMem_RawFree
    - memmove
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus PyWideStringList_Insert(PyWideStringList *list,\n                        Py_ssize_t
      index, const wchar_t *item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Insert
      Src: /src/Python-3.8.3/Python/initconfig.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 3
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: PyWideStringList_Append
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 2
    functionsReached:
    - PyWideStringList_Insert
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyWideStringList_Append(PyWideStringList *list, const wchar_t
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:384,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:385,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - list2
    argTypes:
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 390
    functionName: _PyWideStringList_Extend
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - PyWideStringList_Append
    - _PyStatus_OK
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyWideStringList_Extend(PyWideStringList *list, const PyWideStringList
      *list2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/initconfig.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: _PyWideStringList_Find
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - wcscmp
    linkageType: ''
    returnType: int
    signature: int _PyWideStringList_Find(PyWideStringList *list, const wchar_t *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:408,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:408,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/initconfig.c:410,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/initconfig.c:416,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/initconfig.c:418,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/initconfig.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - PyWideStringList*
    assertStmts:
    - condition: (_PyWideStringList_CheckConsistency(list))
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 5
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: _PyWideStringList_AsList
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyWideStringList_CheckConsistency
    - PyList_SET_ITEM
    - PyUnicode_FromWideChar
    - PyList_New
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyWideStringList_AsList(const PyWideStringList *list)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Python/initconfig.c:439,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:450,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:460,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/initconfig.c:461,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:468,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/initconfig.c:469,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:471,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:485,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 488
    functionName: Py_SetStandardStreamEncoding
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - Py_IsInitialized
    - PyMem_RawFree
    - _PyMem_RawStrdup
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: int
    signature: int Py_SetStandardStreamEncoding(const char *encoding, const char *errors)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:496,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:500,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:504,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 509
    functionName: _Py_ClearStandardStreamEncoding
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _Py_ClearStandardStreamEncoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:522,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:524,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 527
    functionName: _Py_ClearArgcArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: void
    signature: void _Py_ClearArgcArgv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:537,1
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/initconfig.c:539,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/initconfig.c:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 530
    functionDepth: 4
    functionLinenumber: 530
    functionLinenumberEnd: 543
    functionName: _Py_SetArgcArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyWideStringList_Copy
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: int
    signature: int _Py_SetArgcArgv(Py_ssize_t argc, wchar_t * const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - wchar_t***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 553
    functionName: Py_GetArgcArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Py_GetArgcArgv(int *argc, wchar_t ***argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - LEN
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: DECODE_LOCALE_ERR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECODE_LOCALE_ERR(NAME, LEN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:574,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:575,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:576,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:577,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:579,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:580,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:581,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:582,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:585,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:586,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:587,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:588,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:589,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:590,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:592,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:593,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:594,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:595,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:596,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:597,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:598,1
    - Dst: CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 601
    functionName: PyConfig_Clear
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 4
    functionsReached:
    - _PyWideStringList_Clear
    - CLEAR
    linkageType: ''
    returnType: void
    signature: void PyConfig_Clear(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 573
    functionName: CLEAR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 380
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/Python/initconfig.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 638
    functionName: _PyConfig_InitCompatConfig
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void _PyConfig_InitCompatConfig(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 663
    functionName: config_init_defaults
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void config_init_defaults(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_init_defaults
      Src: /src/Python-3.8.3/Python/initconfig.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 674
    functionName: PyConfig_InitPythonConfig
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 3
    functionsReached:
    - config_init_defaults
    linkageType: ''
    returnType: void
    signature: void PyConfig_InitPythonConfig(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_init_defaults
      Src: /src/Python-3.8.3/Python/initconfig.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 2
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: PyConfig_InitIsolatedConfig
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_defaults
    linkageType: ''
    returnType: void
    signature: void PyConfig_InitIsolatedConfig(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:702,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:703,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:709,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:711,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:717,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - config
    - config_str
    - str
    argTypes:
    - PyConfig*
    - wchar_t**
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 720
    functionName: PyConfig_SetString
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - PyMem_RawFree
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _Py_PreInitializeFromConfig
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyConfig_SetString(PyConfig *config, wchar_t **config_str,
      const wchar_t *str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:727,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:728,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Python/initconfig.c:735,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:738,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:741,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:748,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - config
    - config_str
    - str
    - decode_err_msg
    argTypes:
    - PyConfig*
    - wchar_t**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 751
    functionName: config_set_bytes_string
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_ERR
    - Py_DecodeLocale
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - _PyStatus_OK
    - _Py_PreInitializeFromConfig
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_set_bytes_string(PyConfig *config, wchar_t **config_str,\n
      \                       const char *str, const char *decode_err_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - config
    - ','
    - config_str
    - ','
    - str
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: CONFIG_SET_BYTES_STR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_SET_BYTES_STR(config, config_str, str, NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - config_str
    - str
    argTypes:
    - PyConfig*
    - wchar_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 766
    functionName: PyConfig_SetBytesString
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - CONFIG_SET_BYTES_STR
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus PyConfig_SetBytesString(PyConfig *config, wchar_t **config_str,\n
      \                          const char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:774,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:791,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:792,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:793,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:794,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:795,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:796,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:797,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:798,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:799,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:800,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:801,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:802,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:803,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:804,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:805,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:807,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:808,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:809,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:810,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:812,1
    - Dst: COPY_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:813,1
    - Dst: COPY_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:814,1
    - Dst: COPY_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:815,1
    - Dst: COPY_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:816,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:817,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:819,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:820,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:821,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:822,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:823,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:824,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:826,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:827,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:828,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:829,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:830,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:831,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:832,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:833,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:834,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:835,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:836,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:837,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:838,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:839,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:840,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:841,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:843,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:845,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:846,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:847,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:848,1
    - Dst: COPY_WSTR_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:849,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:850,1
    - Dst: COPY_ATTR
      Src: /src/Python-3.8.3/Python/initconfig.c:851,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 2
    argNames:
    - config
    - config2
    argTypes:
    - PyConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 857
    functionName: _PyConfig_Copy
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - COPY_WSTRLIST
    - PyConfig_Clear
    - COPY_WSTR_ATTR
    - COPY_ATTR
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_Copy(PyConfig *config, const PyConfig *config2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: COPY_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_ATTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: COPY_WSTR_ATTR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_WSTR_ATTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: COPY_WSTRLIST
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_WSTRLIST(LIST)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/initconfig.c:865,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:895,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:896,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:897,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:898,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:899,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:900,1
    - Dst: SET_ITEM_UINT
      Src: /src/Python-3.8.3/Python/initconfig.c:901,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:902,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:903,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:904,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:905,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:906,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:907,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:908,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:909,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:910,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:911,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:912,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:913,1
    - Dst: SET_ITEM_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:914,1
    - Dst: SET_ITEM_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:915,1
    - Dst: SET_ITEM_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:916,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:917,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:918,1
    - Dst: SET_ITEM_WSTRLIST
      Src: /src/Python-3.8.3/Python/initconfig.c:919,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:920,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:921,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:922,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:923,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:924,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:925,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:926,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:927,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:928,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:929,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:930,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:931,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:932,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:933,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:934,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:935,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:936,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:937,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:938,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:939,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:941,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:943,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:944,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:945,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:946,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:947,1
    - Dst: SET_ITEM_WSTR
      Src: /src/Python-3.8.3/Python/initconfig.c:948,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:949,1
    - Dst: SET_ITEM_INT
      Src: /src/Python-3.8.3/Python/initconfig.c:950,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/initconfig.c:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 964
    functionName: config_as_dict
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - SET_ITEM_WSTRLIST
    - SET_ITEM_INT
    - Py_DECREF
    - PyDict_New
    - SET_ITEM_WSTR
    - SET_ITEM_UINT
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      config_as_dict(const PyConfig *config)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - EXPR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 882
    functionName: SET_ITEM
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 215
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM(KEY, EXPR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 884
    functionName: SET_ITEM_INT
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_INT(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: SET_ITEM_UINT
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_UINT(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - STR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: FROM_WSTRING
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_WSTRING(STR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: SET_ITEM_WSTR
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_WSTR(ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LIST
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 894
    functionName: SET_ITEM_WSTRLIST
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ITEM_WSTRLIST(LIST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetEnv
      Src: /src/Python-3.8.3/Python/initconfig.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyConfig*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: config_get_env
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _Py_GetEnv
    linkageType: ''
    returnType: char
    signature: 'char *

      config_get_env(const PyConfig *config, const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:983,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:984,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:988,1
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/Python/initconfig.c:992,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:995,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:998,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/initconfig.c:1000,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1003,1
    - Dst: config_set_bytes_string
      Src: /src/Python-3.8.3/Python/initconfig.c:1006,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - config
    - dest
    - wname
    - name
    - decode_err_msg
    argTypes:
    - PyConfig*
    - wchar_t**
    - wchar_t*
    - char*
    - char*
    assertStmts:
    - condition: (*dest == NULL)
      pos:
        line_end: 982
        line_start: 982
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 983
        line_start: 983
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1008
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 1008
    functionName: config_get_env_dup
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_set_bytes_string
    - _wgetenv
    - getenv
    - assert
    - _PyStatus_OK
    - PyConfig_SetString
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_get_env_dup(PyConfig *config,\n                   wchar_t
      **dest,\n                   wchar_t *wname, char *name,\n                   const
      char *decode_err_msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - CONFIG
    - ','
    - DEST
    - ','
    - WNAME
    - ','
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1013
    functionName: CONFIG_GET_ENV_DUP
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_GET_ENV_DUP(CONFIG, DEST, WNAME, NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1032,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1033,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1034,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1035,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1036,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1037,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1038,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1039,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1040,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1042,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1044,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1046,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1047,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1048,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1053
    functionName: config_get_global_vars
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - COPY_NOT_FLAG
    - COPY_FLAG
    linkageType: ''
    returnType: void
    signature: void config_get_global_vars(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: COPY_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1031
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1069,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1070,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1071,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1072,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1073,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1074,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1075,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1076,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1077,1
    - Dst: COPY_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1079,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1081,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1083,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1084,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1085,1
    - Dst: COPY_NOT_FLAG
      Src: /src/Python-3.8.3/Python/initconfig.c:1086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1094
    functionName: config_set_global_vars
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - COPY_NOT_FLAG
    - COPY_FLAG
    linkageType: ''
    returnType: void
    signature: void config_set_global_vars(const PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1064
    functionName: COPY_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_FLAG(ATTR, VAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATTR
    - ','
    - VAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1068
    functionName: COPY_NOT_FLAG
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_NOT_FLAG(ATTR, VAR)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:1107,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1109,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1111,1
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1124,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1126,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1128,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1131,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/initconfig.c:1135,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1140,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1144,1
    - Dst: unsetenv
      Src: /src/Python-3.8.3/Python/initconfig.c:1156,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1158,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:1167,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1169,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1171,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1180,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1182,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1099
    functionDepth: 3
    functionLinenumber: 1099
    functionLinenumberEnd: 1186
    functionName: config_init_program_name
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - config_get_env
    - unsetenv
    - getenv
    - _PyStatus_EXCEPTION
    - CONFIG_SET_BYTES_STR
    - _PyStatus_OK
    - PyConfig_SetString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_program_name(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:1191,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1196,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1199,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1202,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->executable == NULL)
      pos:
        line_end: 1190
        line_start: 1190
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1205
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1205
    functionName: config_init_executable
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - assert
    - _PyStatus_OK
    - PyConfig_SetString
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_executable(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - config
    - name
    argTypes:
    - PyConfig*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1212
    functionName: config_get_xoption
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _Py_get_xoption
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      config_get_xoption(const PyConfig *config, wchar_t *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:1218,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1223,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1224,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1227,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/Python-3.8.3/Python/initconfig.c:1230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->home == NULL)
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1232
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1232
    functionName: config_init_home
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - CONFIG_GET_ENV_DUP
    - _PyStatus_EXCEPTION
    - assert
    - _PyStatus_OK
    - PyConfig_SetString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_home(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1238,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/initconfig.c:1240,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1242,1
    - Dst: strtoul
      Src: /src/Python-3.8.3/Python/initconfig.c:1246,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:1251,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1264
    functionName: config_init_hash_seed
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - Py_BUILD_ASSERT
    - config_get_env
    - _PyStatus_ERR
    - strtoul
    - strcmp
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_hash_seed(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcstol
      Src: /src/Python-3.8.3/Python/initconfig.c:1272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - wstr
    - result
    argTypes:
    - wchar_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1282
    functionName: config_wstr_to_int
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - wcstol
    linkageType: ''
    returnType: int
    signature: int config_wstr_to_int(const wchar_t *wstr, int *result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1292,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1293,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1294,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1295,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1298,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1304,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1310,1
    - Dst: _Py_get_env_flag
      Src: /src/Python-3.8.3/Python/initconfig.c:1316,1
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1320,1
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1323,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/Python-3.8.3/Python/initconfig.c:1328,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1330,1
    - Dst: config_init_hash_seed
      Src: /src/Python-3.8.3/Python/initconfig.c:1336,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1337,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1285
    functionDepth: 4
    functionLinenumber: 1285
    functionLinenumberEnd: 1343
    functionName: config_read_env_vars
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_get_env
    - config_init_hash_seed
    - _Py_get_env_flag
    - CONFIG_GET_ENV_DUP
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_env_vars(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1352,1
    - Dst: _Py_str_to_int
      Src: /src/Python-3.8.3/Python/initconfig.c:1354,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:1361,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1366,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/initconfig.c:1368,1
    - Dst: config_wstr_to_int
      Src: /src/Python-3.8.3/Python/initconfig.c:1370,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:1377,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1346
    functionDepth: 3
    functionLinenumber: 1346
    functionLinenumberEnd: 1388
    functionName: config_init_tracemalloc
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _Py_str_to_int
    - config_get_env
    - wcschr
    - config_get_xoption
    - _PyStatus_ERR
    - config_wstr_to_int
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_tracemalloc(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:1394,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1396,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/initconfig.c:1398,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/initconfig.c:1399,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:1400,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1402,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1410,1
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/Python-3.8.3/Python/initconfig.c:1413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->pycache_prefix == NULL)
      pos:
        line_end: 1393
        line_start: 1393
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1416
      start: 1391
    functionDepth: 2
    functionLinenumber: 1391
    functionLinenumberEnd: 1416
    functionName: config_init_pycache_prefix
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - wcschr
    - CONFIG_GET_ENV_DUP
    - config_get_xoption
    - assert
    - _PyStatus_OK
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_pycache_prefix(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1424,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1425,1
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1429,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1430,1
    - Dst: config_init_tracemalloc
      Src: /src/Python-3.8.3/Python/initconfig.c:1436,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1437,1
    - Dst: config_init_pycache_prefix
      Src: /src/Python-3.8.3/Python/initconfig.c:1443,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1444,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1448,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1419
    functionDepth: 4
    functionLinenumber: 1419
    functionLinenumberEnd: 1449
    functionName: config_read_complex_options
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_pycache_prefix
    - config_get_env
    - config_init_tracemalloc
    - config_get_xoption
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_complex_options(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/initconfig.c:1456,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1459,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1459,1
    - Dst: _Py_IsLocaleCoercionTarget
      Src: /src/Python-3.8.3/Python/initconfig.c:1465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1452
    functionDepth: 1
    functionLinenumber: 1452
    functionLinenumberEnd: 1476
    functionName: config_get_stdio_errors
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _Py_IsLocaleCoercionTarget
    - strcmp
    - setlocale
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      config_get_stdio_errors(const PyConfig *config)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_snprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1484,1
    - Dst: GetACP
      Src: /src/Python-3.8.3/Python/initconfig.c:1484,1
    - Dst: PyConfig_SetBytesString
      Src: /src/Python-3.8.3/Python/initconfig.c:1485,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1487,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Python/initconfig.c:1489,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/initconfig.c:1491,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - config
    - locale_encoding
    argTypes:
    - PyConfig*
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1479
    functionDepth: 3
    functionLinenumber: 1479
    functionLinenumberEnd: 1499
    functionName: config_get_locale_encoding
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyOS_snprintf
    - _PyStatus_ERR
    - nl_langinfo
    - GetACP
    - CONFIG_SET_BYTES_STR
    - PyConfig_SetBytesString
    - PyConfig_SetString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_get_locale_encoding(PyConfig *config, wchar_t **locale_encoding)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1511,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1514,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1520,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1523,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1529,1
    - Dst: config_get_env
      Src: /src/Python-3.8.3/Python/initconfig.c:1533,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/initconfig.c:1535,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1537,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/initconfig.c:1540,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1552,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1555,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:1556,1
    - Dst: CONFIG_SET_BYTES_STR
      Src: /src/Python-3.8.3/Python/initconfig.c:1571,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1574,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:1575,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:1580,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1586,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1588,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1593,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1595,1
    - Dst: config_get_locale_encoding
      Src: /src/Python-3.8.3/Python/initconfig.c:1603,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1604,1
    - Dst: config_get_stdio_errors
      Src: /src/Python-3.8.3/Python/initconfig.c:1609,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:1610,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1612,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1613,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1618,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 2
    argNames:
    - config
    - preconfig
    argTypes:
    - PyConfig*
    - PyPreConfig*
    assertStmts:
    - condition: (errors != NULL)
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 1619
      start: 1502
    functionDepth: 4
    functionLinenumber: 1502
    functionLinenumberEnd: 1619
    functionName: config_init_stdio_encoding
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyConfig_SetString
    - assert
    - _PyStatus_NO_MEMORY
    - config_get_env
    - _PyMem_RawStrdup
    - config_get_stdio_errors
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - CONFIG_SET_BYTES_STR
    - _PyStatus_OK
    - strchr
    - config_get_locale_encoding
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_init_stdio_encoding(PyConfig *config,\n                           const
      PyPreConfig *preconfig)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1629,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1635,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1641,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1646,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1653,1
    - Dst: config_get_locale_encoding
      Src: /src/Python-3.8.3/Python/initconfig.c:1656,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1662,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1679,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1680,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - config
    - preconfig
    argTypes:
    - PyConfig*
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1622
    functionDepth: 4
    functionLinenumber: 1622
    functionLinenumberEnd: 1685
    functionName: config_init_fs_encoding
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - PyConfig_SetString
    - _PyStatus_EXCEPTION
    - config_get_locale_encoding
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_fs_encoding(PyConfig *config, const PyPreConfig
      *preconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1645
    functionDepth: 3
    functionLinenumber: 1645
    functionLinenumberEnd: 1648
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 10
    functionsReached:
    - PyConfig_SetString
    linkageType: ''
    returnType: else
    signature: else if (_Py_GetForceASCII())
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: config_read_env_vars
      Src: /src/Python-3.8.3/Python/initconfig.c:1695,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1696,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1702,1
    - Dst: config_get_xoption
      Src: /src/Python-3.8.3/Python/initconfig.c:1705,1
    - Dst: config_read_complex_options
      Src: /src/Python-3.8.3/Python/initconfig.c:1709,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1710,1
    - Dst: config_init_home
      Src: /src/Python-3.8.3/Python/initconfig.c:1715,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1716,1
    - Dst: config_init_executable
      Src: /src/Python-3.8.3/Python/initconfig.c:1722,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1723,1
    - Dst: _PyConfig_InitPathConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:1729,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1730,1
    - Dst: config_init_fs_encoding
      Src: /src/Python-3.8.3/Python/initconfig.c:1753,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1754,1
    - Dst: config_init_stdio_encoding
      Src: /src/Python-3.8.3/Python/initconfig.c:1759,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1760,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:1766,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1767,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1773,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1775,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:1784,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1688
    functionDepth: 8
    functionLinenumber: 1688
    functionLinenumberEnd: 1785
    functionName: config_read
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - config_init_home
    - PyWideStringList_Append
    - config_init_stdio_encoding
    - config_read_env_vars
    - config_get_xoption
    - _PyStatus_EXCEPTION
    - config_init_executable
    - _PyStatus_OK
    - PyConfig_SetString
    - config_read_complex_options
    - _PyConfig_InitPathConfig
    - config_init_fs_encoding
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/Python-3.8.3/Python/initconfig.c:1793,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/initconfig.c:1793,1
    - Dst: _setmode
      Src: /src/Python-3.8.3/Python/initconfig.c:1794,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/initconfig.c:1794,1
    - Dst: _setmode
      Src: /src/Python-3.8.3/Python/initconfig.c:1795,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/initconfig.c:1795,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1800,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1801,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1802,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1804,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1805,1
    - Dst: setbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1806,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1813,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1816,1
    - Dst: setvbuf
      Src: /src/Python-3.8.3/Python/initconfig.c:1817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1822
    functionName: config_init_stdio
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - setbuf
    - _setmode
    - fileno
    - setvbuf
    linkageType: ''
    returnType: void
    signature: void config_init_stdio(const PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: config_set_global_vars
      Src: /src/Python-3.8.3/Python/initconfig.c:1832,1
    - Dst: config_init_stdio
      Src: /src/Python-3.8.3/Python/initconfig.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - config
    - runtime
    argTypes:
    - PyConfig*
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1843
    functionName: _PyConfig_Write
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_init_stdio
    - config_set_global_vars
    linkageType: ''
    returnType: void
    signature: void _PyConfig_Write(const PyConfig *config, _PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1853,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1855,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/initconfig.c:1857,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/initconfig.c:1858,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/initconfig.c:1859,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1860,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1861,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/initconfig.c:1862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - error
    - program
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1864
    functionName: config_usage
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - fputs
    - fprintf
    linkageType: ''
    returnType: void
    signature: void config_usage(int error, const wchar_t* program)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: _PyOS_ResetGetOpt
      Src: /src/Python-3.8.3/Python/initconfig.c:1877,1
    - Dst: _PyOS_GetOpt
      Src: /src/Python-3.8.3/Python/initconfig.c:1880,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/initconfig.c:1890,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/initconfig.c:1891,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1893,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/Python/initconfig.c:1895,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:1908,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:1910,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:1919,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1920,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1921,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/initconfig.c:1922,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Python/initconfig.c:1924,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:1926,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/initconfig.c:1930,1
    - Dst: config_usage
      Src: /src/Python-3.8.3/Python/initconfig.c:1932,1
    - Dst: _PyStatus_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:1933,1
    - Dst: config_usage
      Src: /src/Python-3.8.3/Python/initconfig.c:1992,1
    - Dst: _PyStatus_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:1993,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:2000,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2001,1
    - Dst: config_usage
      Src: /src/Python-3.8.3/Python/initconfig.c:2018,1
    - Dst: _PyStatus_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:2019,1
    - Dst: printf
      Src: /src/Python-3.8.3/Python/initconfig.c:2024,1
    - Dst: Py_GetVersion
      Src: /src/Python-3.8.3/Python/initconfig.c:2025,1
    - Dst: _PyStatus_EXIT
      Src: /src/Python-3.8.3/Python/initconfig.c:2026,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/Python/initconfig.c:2031,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:2034,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2036,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2047,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 117
    argCount: 3
    argNames:
    - config
    - warnoptions
    - opt_index
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - Py_ssize_t*
    assertStmts:
    - condition: (longindex == 0)
      pos:
        line_end: 1918
        line_start: 1918
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2048
      start: 1868
    functionDepth: 4
    functionLinenumber: 1868
    functionLinenumberEnd: 2048
    functionName: config_parse_cmdline
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - PyWideStringList_Append
    - _PyStatus_NO_MEMORY
    - _PyOS_GetOpt
    - memcpy
    - config_usage
    - Py_GetVersion
    - PyMem_RawMalloc
    - _PyOS_ResetGetOpt
    - printf
    - fprintf
    - wcscmp
    - _PyStatus_EXCEPTION
    - assert
    - _PyStatus_EXIT
    - _PyStatus_OK
    - PyConfig_SetString
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_parse_cmdline(PyConfig *config, PyWideStringList *warnoptions,\n
      \                    Py_ssize_t *opt_index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CONFIG_GET_ENV_DUP
      Src: /src/Python-3.8.3/Python/initconfig.c:2064,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2066,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2072,1
    - Dst: WCSTOK
      Src: /src/Python-3.8.3/Python/initconfig.c:2077,1
    - Dst: WCSTOK
      Src: /src/Python-3.8.3/Python/initconfig.c:2079,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:2081,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2082,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:2083,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:2087,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2088,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - config
    - warnoptions
    argTypes:
    - PyConfig*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2058
    functionDepth: 4
    functionLinenumber: 2058
    functionLinenumberEnd: 2089
    functionName: config_init_env_warnoptions
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyWideStringList_Append
    - CONFIG_GET_ENV_DUP
    - WCSTOK
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_init_env_warnoptions(PyConfig *config, PyWideStringList
      *warnoptions)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Find
      Src: /src/Python-3.8.3/Python/initconfig.c:2100,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2102,1
    - Dst: _PyWideStringList_Find
      Src: /src/Python-3.8.3/Python/initconfig.c:2104,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2106,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:2108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - config
    - options
    - option
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2092
    functionDepth: 4
    functionLinenumber: 2092
    functionLinenumberEnd: 2109
    functionName: warnoptions_append
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PyWideStringList_Append
    - _PyStatus_OK
    - _PyWideStringList_Find
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus warnoptions_append(PyConfig *config, PyWideStringList *options,\n
      \                  const wchar_t *option)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: warnoptions_append
      Src: /src/Python-3.8.3/Python/initconfig.c:2120,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2121,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - config
    - options
    - options2
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2112
    functionDepth: 5
    functionLinenumber: 2112
    functionLinenumberEnd: 2126
    functionName: warnoptions_extend
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_OK
    - warnoptions_append
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus warnoptions_extend(PyConfig *config, PyWideStringList *options,\n
      \                  const PyWideStringList *options2)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: warnoptions_append
      Src: /src/Python-3.8.3/Python/initconfig.c:2156,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2157,1
    - Dst: warnoptions_extend
      Src: /src/Python-3.8.3/Python/initconfig.c:2162,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2163,1
    - Dst: warnoptions_extend
      Src: /src/Python-3.8.3/Python/initconfig.c:2167,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2168,1
    - Dst: warnoptions_append
      Src: /src/Python-3.8.3/Python/initconfig.c:2184,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2185,1
    - Dst: warnoptions_extend
      Src: /src/Python-3.8.3/Python/initconfig.c:2190,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2191,1
    - Dst: _PyWideStringList_Extend
      Src: /src/Python-3.8.3/Python/initconfig.c:2196,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2197,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2201,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2203,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2206,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - config
    - cmdline_warnoptions
    - env_warnoptions
    - sys_warnoptions
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - PyWideStringList*
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2129
    functionDepth: 6
    functionLinenumber: 2129
    functionLinenumberEnd: 2208
    functionName: config_init_warnoptions
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyWideStringList_Extend
    - warnoptions_append
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _PyWideStringList_Clear
    - warnoptions_extend
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus config_init_warnoptions(PyConfig *config,\n                        const
      PyWideStringList *cmdline_warnoptions,\n                        const PyWideStringList
      *env_warnoptions,\n                        const PyWideStringList *sys_warnoptions)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/initconfig.c:2220,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2221,1
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/initconfig.c:2229,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2230,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2233,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/initconfig.c:2245,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2247,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2248,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/initconfig.c:2251,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2255,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - config
    - opt_index
    argTypes:
    - PyConfig*
    - Py_ssize_t
    assertStmts:
    - condition: (config_argv.length >= 1)
      pos:
        line_end: 2232
        line_start: 2232
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2258
      start: 2211
    functionDepth: 4
    functionLinenumber: 2211
    functionLinenumberEnd: 2258
    functionName: config_update_argv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyMem_RawWcsdup
    - PyWideStringList_Append
    - assert
    - _PyStatus_NO_MEMORY
    - _PyStatus_EXCEPTION
    - PyMem_RawFree
    - _PyWideStringList_Copy
    - _PyStatus_OK
    - _PyWideStringList_Clear
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_update_argv(PyConfig *config, Py_ssize_t opt_index)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/initconfig.c:2267,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2268,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2274,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2275,1
    - Dst: _PyPreConfig_GetConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2279,1
    - Dst: _PyPreCmdline_Read
      Src: /src/Python-3.8.3/Python/initconfig.c:2281,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2282,1
    - Dst: _PyPreCmdline_SetConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2286,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2287,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - config
    - precmdline
    argTypes:
    - PyConfig*
    - _PyPreCmdline*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2261
    functionDepth: 4
    functionLinenumber: 2261
    functionLinenumberEnd: 2291
    functionName: core_read_precmdline
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyPreCmdline_SetConfig
    - _PyPreConfig_GetConfig
    - _PyPreConfig_InitFromPreConfig
    - _PyStatus_EXCEPTION
    - _PyWideStringList_Copy
    - _PyStatus_OK
    - _PyPreCmdline_Read
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus core_read_precmdline(PyConfig *config, _PyPreCmdline *precmdline)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: config_init_program_name
      Src: /src/Python-3.8.3/Python/initconfig.c:2307,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2308,1
    - Dst: config_parse_cmdline
      Src: /src/Python-3.8.3/Python/initconfig.c:2315,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2316,1
    - Dst: config_update_argv
      Src: /src/Python-3.8.3/Python/initconfig.c:2320,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2321,1
    - Dst: config_init_env_warnoptions
      Src: /src/Python-3.8.3/Python/initconfig.c:2327,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2328,1
    - Dst: _PySys_ReadPreinitWarnOptions
      Src: /src/Python-3.8.3/Python/initconfig.c:2334,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2335,1
    - Dst: config_init_warnoptions
      Src: /src/Python-3.8.3/Python/initconfig.c:2339,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2343,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2347,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2350,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2351,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2352,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2294
    functionDepth: 7
    functionLinenumber: 2294
    functionLinenumberEnd: 2354
    functionName: config_read_cmdline
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - config_parse_cmdline
    - config_init_warnoptions
    - config_init_program_name
    - _PyWideStringList_Clear
    - config_update_argv
    - _PyStatus_EXCEPTION
    - _PySys_ReadPreinitWarnOptions
    - _PyStatus_OK
    - config_init_env_warnoptions
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus config_read_cmdline(PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2360,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2361,1
    - Dst: _PyArgv_AsWstrList
      Src: /src/Python-3.8.3/Python/initconfig.c:2365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2357
    functionDepth: 2
    functionLinenumber: 2357
    functionLinenumberEnd: 2366
    functionName: _PyConfig_SetPyArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromConfig
    - _PyStatus_EXCEPTION
    - _PyArgv_AsWstrList
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyConfig_SetPyArgv(PyConfig *config, const _PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_SetPyArgv
      Src: /src/Python-3.8.3/Python/initconfig.c:2379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - argc
    - argv
    argTypes:
    - PyConfig*
    - Py_ssize_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2371
    functionDepth: 3
    functionLinenumber: 2371
    functionLinenumberEnd: 2380
    functionName: PyConfig_SetBytesArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyConfig_SetPyArgv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyConfig_SetBytesArgv(PyConfig *config, Py_ssize_t argc, char
      * const *argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_SetPyArgv
      Src: /src/Python-3.8.3/Python/initconfig.c:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - config
    - argc
    - argv
    argTypes:
    - PyConfig*
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2383
    functionDepth: 3
    functionLinenumber: 2383
    functionLinenumberEnd: 2392
    functionName: PyConfig_SetArgv
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyConfig_SetPyArgv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyConfig_SetArgv(PyConfig *config, Py_ssize_t argc, wchar_t
      * const *argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2399,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2400,1
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/initconfig.c:2405,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2406,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - config
    - list
    - length
    - items
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2395
    functionDepth: 4
    functionLinenumber: 2395
    functionLinenumberEnd: 2409
    functionName: PyConfig_SetWideStringList
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - _PyStatus_EXCEPTION
    - _PyWideStringList_Copy
    - _PyStatus_OK
    - _Py_PreInitializeFromConfig
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus PyConfig_SetWideStringList(PyConfig *config, PyWideStringList
      *list,\n                           Py_ssize_t length, wchar_t **items)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/initconfig.c:2425,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2426,1
    - Dst: config_get_global_vars
      Src: /src/Python-3.8.3/Python/initconfig.c:2430,1
    - Dst: _PyWideStringList_Copy
      Src: /src/Python-3.8.3/Python/initconfig.c:2432,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2433,1
    - Dst: core_read_precmdline
      Src: /src/Python-3.8.3/Python/initconfig.c:2437,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2438,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2442,1
    - Dst: config_read_cmdline
      Src: /src/Python-3.8.3/Python/initconfig.c:2448,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2449,1
    - Dst: _PySys_ReadPreinitXOptions
      Src: /src/Python-3.8.3/Python/initconfig.c:2454,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2455,1
    - Dst: config_read
      Src: /src/Python-3.8.3/Python/initconfig.c:2459,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/initconfig.c:2460,1
    - Dst: _Py_SetArgcArgv
      Src: /src/Python-3.8.3/Python/initconfig.c:2464,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/initconfig.c:2465,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2470,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2471,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2472,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2473,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2474,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2475,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2476,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2477,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2478,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2479,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2480,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2481,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2482,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2483,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2484,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2485,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2486,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2487,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2488,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2489,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2490,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2491,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:2491,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2493,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2494,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:2494,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2495,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:2495,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2496,1
    - Dst: _PyWideStringList_CheckConsistency
      Src: /src/Python-3.8.3/Python/initconfig.c:2496,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2498,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2500,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2501,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2502,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2503,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2504,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2505,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2507,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2508,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2509,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2510,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2512,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2515,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2516,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2517,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/initconfig.c:2518,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/initconfig.c:2520,1
    - Dst: _PyWideStringList_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2523,1
    - Dst: _PyPreCmdline_Clear
      Src: /src/Python-3.8.3/Python/initconfig.c:2524,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 89
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts:
    - condition: (config->isolated >= 0)
      pos:
        line_end: 2469
        line_start: 2469
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->buffered_stdio >= 0)
      pos:
        line_end: 2488
        line_start: 2488
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->module_search_paths))
      pos:
        line_end: 2495
        line_start: 2495
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->module_search_paths_set != 0)
      pos:
        line_end: 2497
        line_start: 2497
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->base_executable != NULL)
      pos:
        line_end: 2500
        line_start: 2500
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->prefix != NULL)
      pos:
        line_end: 2501
        line_start: 2501
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->base_prefix != NULL)
      pos:
        line_end: 2502
        line_start: 2502
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->filesystem_encoding != NULL)
      pos:
        line_end: 2506
        line_start: 2506
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->parser_debug >= 0)
      pos:
        line_end: 2481
        line_start: 2481
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->verbose >= 0)
      pos:
        line_end: 2483
        line_start: 2483
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (!(config->run_command != NULL && config->run_module != NULL))
      pos:
        line_end: 2514
        line_start: 2514
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->configure_c_stdio >= 0)
      pos:
        line_end: 2487
        line_start: 2487
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->base_exec_prefix != NULL)
      pos:
        line_end: 2504
        line_start: 2504
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->use_environment >= 0)
      pos:
        line_end: 2470
        line_start: 2470
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->install_signal_handlers >= 0)
      pos:
        line_end: 2472
        line_start: 2472
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->faulthandler >= 0)
      pos:
        line_end: 2474
        line_start: 2474
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->site_import >= 0)
      pos:
        line_end: 2476
        line_start: 2476
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->inspect >= 0)
      pos:
        line_end: 2478
        line_start: 2478
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->optimization_level >= 0)
      pos:
        line_end: 2480
        line_start: 2480
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->warnoptions))
      pos:
        line_end: 2494
        line_start: 2494
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->write_bytecode >= 0)
      pos:
        line_end: 2482
        line_start: 2482
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->argv))
      pos:
        line_end: 2490
        line_start: 2490
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->parse_argv >= 0)
      pos:
        line_end: 2486
        line_start: 2486
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->pathconfig_warnings >= 0)
      pos:
        line_end: 2517
        line_start: 2517
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->program_name != NULL)
      pos:
        line_end: 2489
        line_start: 2489
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->argv.length >= 1)
      pos:
        line_end: 2492
        line_start: 2492
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (_PyWideStringList_CheckConsistency(&config->xoptions))
      pos:
        line_end: 2493
        line_start: 2493
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->legacy_windows_stdio >= 0)
      pos:
        line_end: 2511
        line_start: 2511
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->user_site_directory >= 0)
      pos:
        line_end: 2485
        line_start: 2485
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->exec_prefix != NULL)
      pos:
        line_end: 2503
        line_start: 2503
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->_install_importlib >= 0)
      pos:
        line_end: 2516
        line_start: 2516
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->isolated >= 0)
      pos:
        line_end: 2441
        line_start: 2441
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->dev_mode >= 0)
      pos:
        line_end: 2471
        line_start: 2471
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->use_hash_seed >= 0)
      pos:
        line_end: 2473
        line_start: 2473
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->tracemalloc >= 0)
      pos:
        line_end: 2475
        line_start: 2475
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->bytes_warning >= 0)
      pos:
        line_end: 2477
        line_start: 2477
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->interactive >= 0)
      pos:
        line_end: 2479
        line_start: 2479
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->executable != NULL)
      pos:
        line_end: 2499
        line_start: 2499
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->stdio_errors != NULL)
      pos:
        line_end: 2509
        line_start: 2509
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->stdio_encoding != NULL)
      pos:
        line_end: 2508
        line_start: 2508
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->filesystem_errors != NULL)
      pos:
        line_end: 2507
        line_start: 2507
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->quiet >= 0)
      pos:
        line_end: 2484
        line_start: 2484
        source_file: /src/Python-3.8.3/Python/initconfig.c
    - condition: (config->check_hash_pycs_mode != NULL)
      pos:
        line_end: 2515
        line_start: 2515
        source_file: /src/Python-3.8.3/Python/initconfig.c
    constantsTouched: []
    func_position:
      end: 2526
      start: 2419
    functionDepth: 9
    functionLinenumber: 2419
    functionLinenumberEnd: 2526
    functionName: PyConfig_Read
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyStatus_NO_MEMORY
    - _Py_SetArgcArgv
    - config_read_cmdline
    - core_read_precmdline
    - _PyWideStringList_Clear
    - _PyWideStringList_CheckConsistency
    - _PySys_ReadPreinitXOptions
    - _PyPreCmdline_Clear
    - _PyStatus_EXCEPTION
    - config_read
    - _PyWideStringList_Copy
    - config_get_global_vars
    - _Py_PreInitializeFromConfig
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus PyConfig_Read(PyConfig *config)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/initconfig.c:2535,1
    - Dst: _Py_GetGlobalVariablesAsDict
      Src: /src/Python-3.8.3/Python/initconfig.c:2541,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/initconfig.c:2545,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:2548,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/initconfig.c:2551,1
    - Dst: _PyPreConfig_AsDict
      Src: /src/Python-3.8.3/Python/initconfig.c:2553,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/initconfig.c:2557,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:2560,1
    - Dst: config_as_dict
      Src: /src/Python-3.8.3/Python/initconfig.c:2564,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/initconfig.c:2568,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/initconfig.c:2571,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/initconfig.c:2576,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/initconfig.c:2577,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2529
    functionDepth: 6
    functionLinenumber: 2529
    functionLinenumberEnd: 2579
    functionName: _Py_GetConfigsAsDict
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - _PyPreConfig_AsDict
    - _PyInterpreterState_Get
    - config_as_dict
    - Py_CLEAR
    - PyDict_New
    - _Py_GetGlobalVariablesAsDict
    - PyDict_SetItemString
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _Py_GetConfigsAsDict(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2586,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2590,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2594,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2596,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2599,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2603,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2582
    functionDepth: 1
    functionLinenumber: 2582
    functionLinenumberEnd: 2609
    functionName: init_dump_ascii_wstr
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 0
    functionsReached:
    - PySys_WriteStderr
    linkageType: ''
    returnType: void
    signature: void init_dump_ascii_wstr(const wchar_t *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_Fetch
      Src: /src/Python-3.8.3/Python/initconfig.c:2619,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2621,1
    - Dst: DUMP_CONFIG
      Src: /src/Python-3.8.3/Python/initconfig.c:2631,1
    - Dst: DUMP_CONFIG
      Src: /src/Python-3.8.3/Python/initconfig.c:2632,1
    - Dst: DUMP_CONFIG
      Src: /src/Python-3.8.3/Python/initconfig.c:2633,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2634,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2635,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2636,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2637,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2654,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2655,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2656,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2657,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2658,1
    - Dst: DUMP_SYS
      Src: /src/Python-3.8.3/Python/initconfig.c:2659,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/initconfig.c:2662,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/initconfig.c:2663,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2664,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/initconfig.c:2665,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/Python/initconfig.c:2667,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2668,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/initconfig.c:2670,1
    - Dst: _PyErr_Restore
      Src: /src/Python-3.8.3/Python/initconfig.c:2673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2615
    functionDepth: 2
    functionLinenumber: 2615
    functionLinenumberEnd: 2674
    functionName: _Py_DumpPathConfig
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached:
    - DUMP_CONFIG
    - _PyErr_Restore
    - PySys_WriteStderr
    - PyList_Check
    - PyList_GET_ITEM
    - PySys_GetObject
    - PySys_FormatStderr
    - PyList_GET_SIZE
    - DUMP_SYS
    - _PyErr_Fetch
    linkageType: ''
    returnType: void
    signature: void _Py_DumpPathConfig(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2623
    functionDepth: 0
    functionLinenumber: 2623
    functionLinenumberEnd: 2629
    functionName: DUMP_CONFIG
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_CONFIG(NAME, FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2640
    functionDepth: 0
    functionLinenumber: 2640
    functionLinenumberEnd: 2652
    functionName: DUMP_SYS
    functionSourceFile: /src/Python-3.8.3/Python/initconfig.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP_SYS(NAME)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/dup2.c:23,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/dup2.c:25,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/dup2.c:26,1
    - Dst: fcntl
      Src: /src/Python-3.8.3/Python/dup2.c:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - fd1
    - fd2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: dup2
    functionSourceFile: /src/Python-3.8.3/Python/dup2.c
    functionUses: 3
    functionsReached:
    - fcntl
    - close
    linkageType: ''
    returnType: int
    signature: int dup2(int fd1, int fd2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:65,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Python/sysmodule.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - _Py_Identifier*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: _PySys_GetObjectId
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 15
    functionsReached:
    - _PyDict_GetItemId
    - _PyInterpreterState_GET_UNSAFE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PySys_GetObjectId(_Py_Identifier *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:75,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: PySys_GetObject
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 9
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyDict_GetItemString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetObject(const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:85,1
    - Dst: _PyDict_GetItemId
      Src: /src/Python-3.8.3/Python/sysmodule.c:87,1
    - Dst: _PyDict_DelItemId
      Src: /src/Python-3.8.3/Python/sysmodule.c:91,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/sysmodule.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - key
    - v
    argTypes:
    - _Py_Identifier*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 6
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: _PySys_SetObjectId
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - _PyDict_GetItemId
    - _PyInterpreterState_GET_UNSAFE
    - _PyDict_DelItemId
    - _PyDict_SetItemId
    linkageType: ''
    returnType: int
    signature: int _PySys_SetObjectId(_Py_Identifier *key, PyObject *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:102,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:104,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:108,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - v
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 6
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: PySys_SetObject
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - PyDict_DelItemString
    - _PyInterpreterState_GET_UNSAFE
    - PyDict_GetItemString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int PySys_SetObject(const char *name, PyObject *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:119,1
    - Dst: PyDTrace_AUDIT_ENABLED
      Src: /src/Python-3.8.3/Python/sysmodule.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: should_audit
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyDTrace_AUDIT_ENABLED
    - _PyThreadState_GET
    linkageType: ''
    returnType: int
    signature: int should_audit(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/sysmodule.c:141,1
    - Dst: strchr
      Src: /src/Python-3.8.3/Python/sysmodule.c:141,1
    - Dst: should_audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:144,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:149,1
    - Dst: PyDTrace_AUDIT_ENABLED
      Src: /src/Python-3.8.3/Python/sysmodule.c:151,1
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/sysmodule.c:155,1
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/sysmodule.c:161,1
    - Dst: _Py_VaBuildValue_SizeT
      Src: /src/Python-3.8.3/Python/sysmodule.c:162,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/sysmodule.c:163,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:164,1
    - Dst: PyTuple_Pack
      Src: /src/Python-3.8.3/Python/sysmodule.c:165,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:166,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:170,1
    - Dst: _Py_AuditHookEntry*::hookCFunction
      Src: /src/Python-3.8.3/Python/sysmodule.c:178,1
    - Dst: PyDTrace_AUDIT
      Src: /src/Python-3.8.3/Python/sysmodule.c:185,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:190,1
    - Dst: PyObject_GetIter
      Src: /src/Python-3.8.3/Python/sysmodule.c:195,1
    - Dst: PyIter_Next
      Src: /src/Python-3.8.3/Python/sysmodule.c:203,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/sysmodule.c:204,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:206,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/sysmodule.c:208,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:209,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/sysmodule.c:218,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:227,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/sysmodule.c:228,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:232,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:240,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:241,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:242,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:243,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/sysmodule.c:247,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/sysmodule.c:249,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:249,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:250,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:251,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:252,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 94
    argCount: 2
    argNames:
    - event
    - argFormat
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (!argFormat || !strchr(argFormat, 'N'))
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    - condition: (PyErr_Occurred())
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 257
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 257
    functionName: PySys_Audit
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 138
    functionsReached:
    - PyDTrace_AUDIT
    - Py_CLEAR
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyIter_Next
    - PyObject_GetIter
    - _Py_AuditHookEntry*::hookCFunction
    - PyErr_Occurred
    - PyTuple_Pack
    - PyTuple_Check
    - assert
    - va_end
    - Py_XDECREF
    - va_start
    - PyUnicode_FromString
    - Py_DECREF
    - _Py_VaBuildValue_SizeT
    - strchr
    - PyErr_Restore
    - PyTuple_New
    - should_audit
    - _PyThreadState_GET
    - PyErr_Fetch
    - PyObject_CallFunctionObjArgs
    - PyDTrace_AUDIT_ENABLED
    - PyObject_IsTrue
    linkageType: ''
    returnType: int
    signature: int PySys_Audit(const char *event, const char *argFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/sysmodule.c:266,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/sysmodule.c:267,1
    - Dst: _Py_CURRENTLY_FINALIZING
      Src: /src/Python-3.8.3/Python/sysmodule.c:267,1
    - Dst: _Py_CURRENTLY_FINALIZING
      Src: /src/Python-3.8.3/Python/sysmodule.c:268,1
    - Dst: PySys_WriteStderr
      Src: /src/Python-3.8.3/Python/sysmodule.c:272,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:277,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:278,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!ts || _Py_CURRENTLY_FINALIZING(runtime, ts))
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: _PySys_ClearAuditHooks
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - _Py_CURRENTLY_FINALIZING
    - PySys_WriteStderr
    - _PyRuntimeState_GetThreadState
    - PyMem_RawFree
    - assert
    - PySys_Audit
    linkageType: ''
    returnType: void
    signature: void _PySys_ClearAuditHooks(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Python/sysmodule.c:294,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:295,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:296,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:298,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/sysmodule.c:307,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/sysmodule.c:312,1
    - Dst: Py_IsInitialized
      Src: /src/Python-3.8.3/Python/sysmodule.c:317,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/sysmodule.c:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - hook
    - userData
    argTypes:
    - Py_AuditHookFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 289
    functionDepth: 8
    functionLinenumber: 289
    functionLinenumberEnd: 327
    functionName: PySys_AddAuditHook
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_NoMemory
    - PyMem_RawMalloc
    - Py_IsInitialized
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:342,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:343,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:345,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/sysmodule.c:351,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:354,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/sysmodule.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - module
    - hook
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 365
    functionName: sys_addaudithook_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PySys_Audit
    - PyList_Append
    - PyErr_ExceptionMatches
    - PyList_New
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_addaudithook_impl(PyObject *module, PyObject *hook)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:376,1
    - Dst: should_audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:380,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:386,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:389,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:390,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/sysmodule.c:391,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/sysmodule.c:394,1
    - Dst: _PyTuple_FromArray
      Src: /src/Python-3.8.3/Python/sysmodule.c:399,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:404,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - self
    - args
    - argc
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 372
    functionDepth: 9
    functionLinenumber: 372
    functionLinenumberEnd: 412
    functionName: sys_audit
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - should_audit
    - PyUnicode_AsUTF8
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - _PyTuple_FromArray
    - PyUnicode_Check
    - PySys_Audit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_audit(PyObject *self, PyObject *const *args, Py_ssize_t argc)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/sysmodule.c:418,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:418,1
    - Dst: Py_GETENV
      Src: /src/Python-3.8.3/Python/sysmodule.c:419,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/sysmodule.c:421,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/sysmodule.c:424,1
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/sysmodule.c:432,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/sysmodule.c:434,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/Python/sysmodule.c:437,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:443,1
    - Dst: PyUnicode_FromStringAndSize
      Src: /src/Python-3.8.3/Python/sysmodule.c:448,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:455,1
    - Dst: PyImport_Import
      Src: /src/Python-3.8.3/Python/sysmodule.c:459,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:460,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:463,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:466,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/sysmodule.c:470,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:471,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:474,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:477,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:480,1
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Python/sysmodule.c:481,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:482,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:487,1
    - Dst: PyErr_WarnFormat
      Src: /src/Python-3.8.3/Python/sysmodule.c:488,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:491,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - keywords
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 498
      start: 415
    functionDepth: 20
    functionLinenumber: 415
    functionLinenumberEnd: 498
    functionName: sys_breakpointhook
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - PyUnicode_FromString
    - strrchr
    - PyErr_Occurred
    - Py_DECREF
    - PyObject_GetAttrString
    - Py_GETENV
    - PyErr_WarnFormat
    - _PyMem_RawStrdup
    - PyErr_NoMemory
    - PyUnicode_FromStringAndSize
    - strlen
    - PyErr_ExceptionMatches
    - PyMem_RawFree
    - PyImport_Import
    - assert
    - strcmp
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_breakpointhook(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
      PyObject *keywords)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:520,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/sysmodule.c:523,1
    - Dst: PyObject_Repr
      Src: /src/Python-3.8.3/Python/sysmodule.c:527,1
    - Dst: PyUnicode_AsEncodedString
      Src: /src/Python-3.8.3/Python/sysmodule.c:530,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:533,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:537,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:538,1
    - Dst: _PyObject_CallMethodIdObjArgs
      Src: /src/Python-3.8.3/Python/sysmodule.c:542,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:543,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:544,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:547,1
    - Dst: PyUnicode_FromEncodedObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:550,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:553,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:554,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:555,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:558,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - outf
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 512
    functionDepth: 6
    functionLinenumber: 512
    functionLinenumberEnd: 568
    functionName: sys_displayhook_unencodable
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_GetAttrId
    - PyUnicode_AsUTF8
    - _PyObject_LookupAttrId
    - _PyObject_CallMethodIdObjArgs
    - PyFile_WriteObject
    - PyUnicode_AsEncodedString
    - PyObject_Repr
    - PyUnicode_FromEncodedObject
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int sys_displayhook_unencodable(PyObject *outf, PyObject *o)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_GetModuleId
      Src: /src/Python-3.8.3/Python/sysmodule.c:588,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:590,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:591,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:595,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:603,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:605,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:607,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:610,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:611,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:614,1
    - Dst: sys_displayhook_unencodable
      Src: /src/Python-3.8.3/Python/sysmodule.c:615,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:624,1
    - Dst: PyFile_WriteObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:628,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:630,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - module
    - o
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 579
    functionDepth: 8
    functionLinenumber: 579
    functionLinenumberEnd: 633
    functionName: sys_displayhook
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - sys_displayhook_unencodable
    - PyUnicode_FromString
    - PyErr_Occurred
    - Py_DECREF
    - _PySys_GetObjectId
    - PyFile_WriteObject
    - _PyImport_GetModuleId
    - PyErr_SetString
    - PyErr_ExceptionMatches
    - PyErr_Clear
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_displayhook(PyObject *module, PyObject *o)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Python/sysmodule.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - module
    - exctype
    - value
    - traceback
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 647
    functionDepth: 20
    functionLinenumber: 647
    functionLinenumberEnd: 654
    functionName: sys_excepthook_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Display
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nsys_excepthook_impl(PyObject *module, PyObject *exctype,
      PyObject *value,\n                    PyObject *traceback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_GetTopmostException
      Src: /src/Python-3.8.3/Python/sysmodule.c:670,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:670,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/sysmodule.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 677
    functionName: sys_exc_info_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_BuildValue
    - _PyErr_GetTopmostException
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exc_info_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_WriteUnraisableDefaultHook
      Src: /src/Python-3.8.3/Python/sysmodule.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - unraisable
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 19
    functionLinenumber: 697
    functionLinenumberEnd: 702
    functionName: sys_unraisablehook
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyErr_WriteUnraisableDefaultHook
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_unraisablehook(PyObject *module, PyObject *unraisable)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - status
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 7
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: sys_exit_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exit_impl(PyObject *module, PyObject *status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:740,1
    - Dst: PyUnicode_GetDefaultEncoding
      Src: /src/Python-3.8.3/Python/sysmodule.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 741
    functionName: sys_getdefaultencoding_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyUnicode_GetDefaultEncoding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdefaultencoding_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:753,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 749
    functionDepth: 5
    functionLinenumber: 749
    functionLinenumberEnd: 756
    functionName: sys_getfilesystemencoding_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencoding_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/sysmodule.c:768,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 764
    functionDepth: 5
    functionLinenumber: 764
    functionLinenumberEnd: 771
    functionName: sys_getfilesystemencodeerrors_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_GET_UNSAFE
    - PyUnicode_FromWideChar
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencodeerrors_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CheckExact
      Src: /src/Python-3.8.3/Python/sysmodule.c:790,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:791,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/sysmodule.c:792,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - module
    - s
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 786
    functionDepth: 9
    functionLinenumber: 786
    functionLinenumberEnd: 800
    functionName: sys_intern_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    - PyUnicode_InternInPlace
    - PyUnicode_CheckExact
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_intern_impl(PyObject *module, PyObject *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_InternFromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 809
    functionDepth: 6
    functionLinenumber: 809
    functionLinenumberEnd: 828
    functionName: trace_init
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_InternFromString
    linkageType: ''
    returnType: int
    signature: int trace_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFrame_FastToLocalsWithError
      Src: /src/Python-3.8.3/Python/sysmodule.c:838,1
    - Dst: _PyObject_FastCall
      Src: /src/Python-3.8.3/Python/sysmodule.c:847,1
    - Dst: PyFrame_LocalsToFast
      Src: /src/Python-3.8.3/Python/sysmodule.c:849,1
    - Dst: PyTraceBack_Here
      Src: /src/Python-3.8.3/Python/sysmodule.c:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - callback
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 831
    functionDepth: 6
    functionLinenumber: 831
    functionLinenumberEnd: 855
    functionName: call_trampoline
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_FastCall
    - PyTraceBack_Here
    - PyFrame_LocalsToFast
    - PyFrame_FastToLocalsWithError
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncall_trampoline(PyObject* callback,\n                PyFrameObject
      *frame, int what, PyObject *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: call_trampoline
      Src: /src/Python-3.8.3/Python/sysmodule.c:865,1
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Python/sysmodule.c:867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - self
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 857
    functionDepth: 7
    functionLinenumber: 857
    functionLinenumberEnd: 872
    functionName: profile_trampoline
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - call_trampoline
    - Py_DECREF
    - PyEval_SetProfile
    linkageType: ''
    returnType: int
    signature: "int profile_trampoline(PyObject *self, PyFrameObject *frame,\n                   int
      what, PyObject *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: call_trampoline
      Src: /src/Python-3.8.3/Python/sysmodule.c:887,1
    - Dst: PyEval_SetTrace
      Src: /src/Python-3.8.3/Python/sysmodule.c:889,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/sysmodule.c:890,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:894,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:897,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - self
    - frame
    - what
    - arg
    argTypes:
    - PyObject*
    - PyFrameObject*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 874
    functionDepth: 7
    functionLinenumber: 874
    functionLinenumberEnd: 900
    functionName: trace_trampoline
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - call_trampoline
    - Py_CLEAR
    - Py_DECREF
    - Py_XSETREF
    - PyEval_SetTrace
    linkageType: ''
    returnType: int
    signature: "int trace_trampoline(PyObject *self, PyFrameObject *frame,\n                 int
      what, PyObject *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_init
      Src: /src/Python-3.8.3/Python/sysmodule.c:905,1
    - Dst: PyEval_SetTrace
      Src: /src/Python-3.8.3/Python/sysmodule.c:908,1
    - Dst: PyEval_SetTrace
      Src: /src/Python-3.8.3/Python/sysmodule.c:910,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 902
    functionDepth: 7
    functionLinenumber: 902
    functionLinenumberEnd: 912
    functionName: sys_settrace
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyEval_SetTrace
    - trace_init
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_settrace(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:933,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 940
    functionName: sys_gettrace_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_gettrace_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: trace_init
      Src: /src/Python-3.8.3/Python/sysmodule.c:945,1
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Python/sysmodule.c:948,1
    - Dst: PyEval_SetProfile
      Src: /src/Python-3.8.3/Python/sysmodule.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 7
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: sys_setprofile
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - trace_init
    - PyEval_SetProfile
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setprofile(PyObject *self, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:973,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 980
    functionName: sys_getprofile_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getprofile_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/sysmodule.c:1000,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/sysmodule.c:1006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - module
    - n
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 996
    functionDepth: 19
    functionLinenumber: 996
    functionLinenumberEnd: 1009
    functionName: sys_setcheckinterval_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setcheckinterval_impl(PyObject *module, int n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/sysmodule.c:1021,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/sysmodule.c:1026,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1017
    functionDepth: 19
    functionLinenumber: 1017
    functionLinenumberEnd: 1028
    functionName: sys_getcheckinterval_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyInterpreterState_Get
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getcheckinterval_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1051,1
    - Dst: _PyEval_SetSwitchInterval
      Src: /src/Python-3.8.3/Python/sysmodule.c:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - interval
    argTypes:
    - PyObject*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1046
    functionDepth: 8
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    functionName: sys_setswitchinterval_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetSwitchInterval
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setswitchinterval_impl(PyObject *module, double interval)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetSwitchInterval
      Src: /src/Python-3.8.3/Python/sysmodule.c:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1071
    functionName: sys_getswitchinterval_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetSwitchInterval
    linkageType: ''
    returnType: double
    signature: double sys_getswitchinterval_impl(PyObject *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1094,1
    - Dst: _Py_RecursionLimitLowerWaterMark
      Src: /src/Python-3.8.3/Python/sysmodule.c:1108,1
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:1109,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:1111,1
    - Dst: Py_SetRecursionLimit
      Src: /src/Python-3.8.3/Python/sysmodule.c:1118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - module
    - new_limit
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1086
    functionDepth: 9
    functionLinenumber: 1086
    functionLinenumberEnd: 1120
    functionName: sys_setrecursionlimit_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_SetRecursionLimit
    - _PyThreadState_GET
    - _Py_RecursionLimitLowerWaterMark
    - PyErr_Format
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setrecursionlimit_impl(PyObject *module, int new_limit)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1140,1
    - Dst: _PyEval_SetCoroutineOriginTrackingDepth
      Src: /src/Python-3.8.3/Python/sysmodule.c:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - module
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1135
    functionDepth: 8
    functionLinenumber: 1135
    functionLinenumberEnd: 1145
    functionName: sys_set_coroutine_origin_tracking_depth_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_SetCoroutineOriginTrackingDepth
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_coroutine_origin_tracking_depth_impl(PyObject *module, int depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetCoroutineOriginTrackingDepth
      Src: /src/Python-3.8.3/Python/sysmodule.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1158
    functionName: sys_get_coroutine_origin_tracking_depth_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_GetCoroutineOriginTrackingDepth
    linkageType: ''
    returnType: int
    signature: int sys_get_coroutine_origin_tracking_depth_impl(PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:1184,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:1186,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1190,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - firstiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1181
    functionDepth: 4
    functionLinenumber: 1181
    functionLinenumberEnd: 1193
    functionName: set_async_gen_firstiter
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _PyThreadState_GET
    - PySys_Audit
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int set_async_gen_firstiter(PyObject *firstiter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_async_gen_firstiter
      Src: /src/Python-3.8.3/Python/sysmodule.c:1198,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/sysmodule.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - firstiter
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1195
    functionDepth: 20
    functionLinenumber: 1195
    functionLinenumberEnd: 1201
    functionName: _PyEval_SetAsyncGenFirstiter
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WriteUnraisable
    - set_async_gen_firstiter
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetAsyncGenFirstiter(PyObject *firstiter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:1206,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:1208,1
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1212,1
    - Dst: Py_XSETREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - finalizer
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1203
    functionDepth: 4
    functionLinenumber: 1203
    functionLinenumberEnd: 1215
    functionName: set_async_gen_finalizer
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_XSETREF
    - _PyThreadState_GET
    - PySys_Audit
    - Py_XINCREF
    linkageType: ''
    returnType: int
    signature: int set_async_gen_finalizer(PyObject *finalizer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_async_gen_finalizer
      Src: /src/Python-3.8.3/Python/sysmodule.c:1220,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/sysmodule.c:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - finalizer
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1217
    functionDepth: 20
    functionLinenumber: 1217
    functionLinenumberEnd: 1223
    functionName: _PyEval_SetAsyncGenFinalizer
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WriteUnraisable
    - set_async_gen_finalizer
    linkageType: ''
    returnType: void
    signature: void _PyEval_SetAsyncGenFinalizer(PyObject *finalizer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/sysmodule.c:1233,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:1240,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:1241,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/sysmodule.c:1243,1
    - Dst: set_async_gen_finalizer
      Src: /src/Python-3.8.3/Python/sysmodule.c:1246,1
    - Dst: set_async_gen_finalizer
      Src: /src/Python-3.8.3/Python/sysmodule.c:1250,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:1255,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:1256,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/sysmodule.c:1258,1
    - Dst: set_async_gen_firstiter
      Src: /src/Python-3.8.3/Python/sysmodule.c:1261,1
    - Dst: set_async_gen_firstiter
      Src: /src/Python-3.8.3/Python/sysmodule.c:1265,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - self
    - args
    - kw
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1226
    functionDepth: 9
    functionLinenumber: 1226
    functionLinenumberEnd: 1270
    functionName: sys_set_asyncgen_hooks
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - set_async_gen_firstiter
    - PyCallable_Check
    - PyErr_Format
    - Py_TYPE
    - set_async_gen_finalizer
    - PyArg_ParseTupleAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_asyncgen_hooks(PyObject *self, PyObject *args, PyObject *kw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_GetAsyncGenFirstiter
      Src: /src/Python-3.8.3/Python/sysmodule.c:1291,1
    - Dst: _PyEval_GetAsyncGenFinalizer
      Src: /src/Python-3.8.3/Python/sysmodule.c:1292,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:1294,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1307,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1308,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1310,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1286
    functionDepth: 2
    functionLinenumber: 1286
    functionLinenumberEnd: 1314
    functionName: sys_get_asyncgen_hooks_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyStructSequence_SET_ITEM
    - Py_INCREF
    - PyStructSequence_New
    - _PyEval_GetAsyncGenFirstiter
    - _PyEval_GetAsyncGenFinalizer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_asyncgen_hooks_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:1353,1
    - Dst: PyHash_GetFuncDef
      Src: /src/Python-3.8.3/Python/sysmodule.c:1356,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1357,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1358,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1359,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/sysmodule.c:1360,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1361,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1362,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1363,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1364,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1365,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1366,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1367,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1368,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1369,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1370,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1371,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1372,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1373,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1374,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:1375,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/sysmodule.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1380
    functionName: get_hash_info
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - PyHash_GetFuncDef
    - PyErr_Occurred
    - Py_CLEAR
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_hash_info(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1395,1
    - Dst: Py_GetRecursionLimit
      Src: /src/Python-3.8.3/Python/sysmodule.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1396
    functionName: sys_getrecursionlimit_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - Py_GetRecursionLimit
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getrecursionlimit_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetVersionExW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1461,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/sysmodule.c:1462,1
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:1464,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1468,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1468,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1469,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1469,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1470,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1470,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1471,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1471,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1472,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:1472,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1473,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1473,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1474,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1474,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1475,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1475,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1476,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1476,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1487,1
    - Dst: GetFileVersionInfoSizeW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1490,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/sysmodule.c:1491,1
    - Dst: GetFileVersionInfoW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1495,1
    - Dst: VerQueryValueW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1496,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1497,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1498,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1499,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:1501,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:1503,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/sysmodule.c:1503,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:1509,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1447
    functionDepth: 11
    functionLinenumber: 1447
    functionLinenumberEnd: 1515
    functionName: sys_getwindowsversion_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - HIWORD
    - Py_BuildValue
    - PyErr_Occurred
    - GetFileVersionInfoSizeW
    - PyStructSequence_SET_ITEM
    - Py_DECREF
    - LOWORD
    - PyMem_RawMalloc
    - PyStructSequence_New
    - PyUnicode_FromWideChar
    - VerQueryValueW
    - GetFileVersionInfoW
    - PyMem_RawFree
    - GetModuleHandleW
    - GetVersionExW
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getwindowsversion_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetFileVersionInfoSizeW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1490,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/Python/sysmodule.c:1491,1
    - Dst: GetFileVersionInfoW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1495,1
    - Dst: VerQueryValueW
      Src: /src/Python-3.8.3/Python/sysmodule.c:1496,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1497,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1498,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/Python/sysmodule.c:1499,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:1501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - " GetModuleFileNameW(hKernel32, kernel32_path, MAX_PATH) \n        (verblock_size
      = GetFileVersionInfoSizeW(kernel32_path, NULL)) \n        (verblock = PyMem_RawMalloc(verblock_size))"
    argTypes:
    - hKernel32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1502
    functionName: if
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 10
    functionsReached:
    - HIWORD
    - GetFileVersionInfoSizeW
    - LOWORD
    - PyMem_RawMalloc
    - VerQueryValueW
    - GetFileVersionInfoW
    - PyMem_RawFree
    linkageType: ''
    returnType: Py_END_ALLOW_THREADS
    signature: "Py_END_ALLOW_THREADS if (hKernel32 && GetModuleFileNameW(hKernel32,
      kernel32_path, MAX_PATH) &&\n        (verblock_size = GetFileVersionInfoSizeW(kernel32_path,
      NULL)) &&\n        (verblock = PyMem_RawMalloc(verblock_size)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyUnicode_EnableLegacyWindowsFSEncoding
      Src: /src/Python-3.8.3/Python/sysmodule.c:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1531
    functionDepth: 5
    functionLinenumber: 1531
    functionLinenumberEnd: 1539
    functionName: sys__enablelegacywindowsfsencoding_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_EnableLegacyWindowsFSEncoding
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__enablelegacywindowsfsencoding_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/sysmodule.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - new_val
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1562
    functionDepth: 2
    functionLinenumber: 1562
    functionLinenumberEnd: 1569
    functionName: sys_setdlopenflags_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setdlopenflags_impl(PyObject *module, int new_val)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/sysmodule.c:1584,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1586
    functionName: sys_getdlopenflags_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdlopenflags_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mallopt
      Src: /src/Python-3.8.3/Python/sysmodule.c:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - flag
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1608
    functionName: sys_mdebug_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - mallopt
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_mdebug_impl(PyObject *module, int flag)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/Python/sysmodule.c:1619,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/sysmodule.c:1619,1
    - Dst: _PyObject_LookupSpecial
      Src: /src/Python-3.8.3/Python/sysmodule.c:1622,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:1624,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/sysmodule.c:1625,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/sysmodule.c:1627,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/sysmodule.c:1630,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1631,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/sysmodule.c:1637,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1638,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:1639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1643,1
    - Dst: PyObject_IS_GC
      Src: /src/Python-3.8.3/Python/sysmodule.c:1648,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - o
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1611
    functionDepth: 11
    functionLinenumber: 1611
    functionLinenumberEnd: 1651
    functionName: _PySys_GetSizeOf
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_LookupSpecial
    - PyLong_AsSsize_t
    - PyObject_IS_GC
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyType_Ready
    - _PyObject_CallNoArg
    linkageType: ''
    returnType: size_t
    signature: size_t _PySys_GetSizeOf(PyObject *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTupleAndKeywords
      Src: /src/Python-3.8.3/Python/sysmodule.c:1660,1
    - Dst: _PySys_GetSizeOf
      Src: /src/Python-3.8.3/Python/sysmodule.c:1664,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:1666,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:1668,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:1669,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1670,1
    - Dst: PyLong_FromSize_t
      Src: /src/Python-3.8.3/Python/sysmodule.c:1677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - self
    - args
    - kwds
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1653
    functionDepth: 12
    functionLinenumber: 1653
    functionLinenumberEnd: 1678
    functionName: sys_getsizeof
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_INCREF
    - _PySys_GetSizeOf
    - PyErr_ExceptionMatches
    - PyArg_ParseTupleAndKeywords
    - PyErr_Clear
    - PyLong_FromSize_t
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getsizeof(PyObject *self, PyObject *args, PyObject *kwds)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1703
    functionName: sys_getrefcount_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_getrefcount_impl(PyObject *module, PyObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetRefTotal
      Src: /src/Python-3.8.3/Python/sysmodule.c:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1715
    functionName: sys_gettotalrefcount_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetRefTotal
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_gettotalrefcount_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_GetAllocatedBlocks
      Src: /src/Python-3.8.3/Python/sysmodule.c:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1729
    functionName: sys_getallocatedblocks_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_GetAllocatedBlocks
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t sys_getallocatedblocks_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_get_counts
      Src: /src/Python-3.8.3/Python/sysmodule.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1736
    functionDepth: 2
    functionLinenumber: 1736
    functionLinenumberEnd: 1743
    functionName: sys_getcounts_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _Py_get_counts
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getcounts_impl(PyObject *module)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:1767,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Python/sysmodule.c:1769,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/sysmodule.c:1778,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:1782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - depth
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1763
    functionDepth: 8
    functionLinenumber: 1763
    functionLinenumberEnd: 1784
    functionName: sys__getframe_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThreadState_GET
    - PySys_Audit
    - PyErr_SetString
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__getframe_impl(PyObject *module, int depth)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyThread_CurrentFrames
      Src: /src/Python-3.8.3/Python/sysmodule.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1794
    functionDepth: 6
    functionLinenumber: 1794
    functionLinenumberEnd: 1799
    functionName: sys__current_frames_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyThread_CurrentFrames
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__current_frames_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyEval_CallTracing
      Src: /src/Python-3.8.3/Python/sysmodule.c:1819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - module
    - func
    - funcargs
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1815
    functionDepth: 5
    functionLinenumber: 1815
    functionLinenumberEnd: 1820
    functionName: sys_call_tracing_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyEval_CallTracing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_call_tracing_impl(PyObject *module, PyObject *func, PyObject *funcargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_WarnEx
      Src: /src/Python-3.8.3/Python/sysmodule.c:1851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1847
    functionDepth: 19
    functionLinenumber: 1847
    functionLinenumberEnd: 1858
    functionName: sys_callstats_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_WarnEx
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_callstats_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_DebugMallocStats
      Src: /src/Python-3.8.3/Python/sysmodule.c:1879,1
    - Dst: fputc
      Src: /src/Python-3.8.3/Python/sysmodule.c:1880,1
    - Dst: _PyObject_DebugTypeStats
      Src: /src/Python-3.8.3/Python/sysmodule.c:1883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1874
    functionDepth: 3
    functionLinenumber: 1874
    functionLinenumberEnd: 1886
    functionName: sys__debugmallocstats_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_DebugTypeStats
    - fputc
    - _PyObject_DebugMallocStats
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__debugmallocstats_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyType_ClearCache
      Src: /src/Python-3.8.3/Python/sysmodule.c:1913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1909
    functionDepth: 2
    functionLinenumber: 1909
    functionLinenumberEnd: 1915
    functionName: sys__clear_type_cache_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyType_ClearCache
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__clear_type_cache_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1927,1
    - Dst: _Py_IsFinalizing
      Src: /src/Python-3.8.3/Python/sysmodule.c:1927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1923
    functionDepth: 2
    functionLinenumber: 1923
    functionLinenumberEnd: 1928
    functionName: sys_is_finalizing_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyBool_FromLong
    - _Py_IsFinalizing
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_finalizing_impl(PyObject *module)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1942
    functionName: sys_getandroidapilevel_impl
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getandroidapilevel_impl(PyObject *module)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2008,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2013,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/sysmodule.c:2017,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2018,1
    - Dst: PyList_Sort
      Src: /src/Python-3.8.3/Python/sysmodule.c:2020,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2021,1
    - Dst: PyList_AsTuple
      Src: /src/Python-3.8.3/Python/sysmodule.c:2025,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2026,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2005
    functionDepth: 7
    functionLinenumber: 2005
    functionLinenumberEnd: 2030
    functionName: list_builtin_module_names
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyList_AsTuple
    - Py_DECREF
    - PyList_Sort
    - PyList_Append
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      list_builtin_module_names(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/sysmodule.c:2061,1
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/sysmodule.c:2067,1
    - Dst: PyMem_RawCalloc
      Src: /src/Python-3.8.3/Python/sysmodule.c:2069,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/Python/sysmodule.c:2071,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:2073,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/sysmodule.c:2078,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - value
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2057
    functionDepth: 3
    functionLinenumber: 2057
    functionLinenumberEnd: 2080
    functionName: _alloc_preinit_entry
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_RawWcsdup
    - PyMem_RawCalloc
    - _PyRuntime_Initialize
    - PyMem_RawFree
    - _PyMem_SetDefaultAllocator
    linkageType: ''
    returnType: _Py_PreInitEntry
    signature: _Py_PreInitEntry _alloc_preinit_entry(const wchar_t *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _alloc_preinit_entry
      Src: /src/Python-3.8.3/Python/sysmodule.c:2085,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - optionlist
    - value
    argTypes:
    - _Py_PreInitEntry*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2082
    functionDepth: 4
    functionLinenumber: 2082
    functionLinenumberEnd: 2102
    functionName: _append_preinit_entry
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _alloc_preinit_entry
    linkageType: ''
    returnType: int
    signature: int _append_preinit_entry(_Py_PreInitEntry *optionlist, const wchar_t
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_SetDefaultAllocator
      Src: /src/Python-3.8.3/Python/sysmodule.c:2111,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:2114,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/sysmodule.c:2115,1
    - Dst: PyMem_SetAllocator
      Src: /src/Python-3.8.3/Python/sysmodule.c:2118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - optionlist
    argTypes:
    - _Py_PreInitEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2104
    functionDepth: 3
    functionLinenumber: 2104
    functionLinenumberEnd: 2119
    functionName: _clear_preinit_entries
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyMem_SetAllocator
    - _PyMem_SetDefaultAllocator
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void _clear_preinit_entries(_Py_PreInitEntry *optionlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/sysmodule.c:2129,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/sysmodule.c:2130,1
    - Dst: _clear_preinit_entries
      Src: /src/Python-3.8.3/Python/sysmodule.c:2135,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/sysmodule.c:2136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - options
    argTypes:
    - PyWideStringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2122
    functionDepth: 4
    functionLinenumber: 2122
    functionLinenumberEnd: 2137
    functionName: _PySys_ReadPreinitWarnOptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - PyWideStringList_Append
    - _PyStatus_OK
    - _clear_preinit_entries
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Python/sysmodule.c:2147,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/sysmodule.c:2148,1
    - Dst: _clear_preinit_entries
      Src: /src/Python-3.8.3/Python/sysmodule.c:2153,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/sysmodule.c:2154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2140
    functionDepth: 4
    functionLinenumber: 2140
    functionLinenumberEnd: 2155
    functionName: _PySys_ReadPreinitXOptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - PyWideStringList_Append
    - _PyStatus_OK
    - _clear_preinit_entries
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_ReadPreinitXOptions(PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2161,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:2162,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2173,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2176,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2177,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2158
    functionDepth: 7
    functionLinenumber: 2158
    functionLinenumberEnd: 2183
    functionName: get_warnoptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySys_GetObjectId
    - _PySys_SetObjectId
    - PyList_Check
    - PyList_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_warnoptions(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:2188,1
    - Dst: _clear_preinit_entries
      Src: /src/Python-3.8.3/Python/sysmodule.c:2190,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2194,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:2195,1
    - Dst: PyList_SetSlice
      Src: /src/Python-3.8.3/Python/sysmodule.c:2197,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/sysmodule.c:2197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2185
    functionDepth: 6
    functionLinenumber: 2185
    functionLinenumberEnd: 2198
    functionName: PySys_ResetWarnOptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_SetSlice
    - _PySys_GetObjectId
    - _PyThreadState_GET
    - PyList_Check
    - PyList_GET_SIZE
    - _clear_preinit_entries
    linkageType: ''
    returnType: void
    signature: void PySys_ResetWarnOptions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_warnoptions
      Src: /src/Python-3.8.3/Python/sysmodule.c:2203,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/sysmodule.c:2207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - option
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2200
    functionDepth: 8
    functionLinenumber: 2200
    functionLinenumberEnd: 2211
    functionName: _PySys_AddWarnOptionWithError
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - get_warnoptions
    - PyList_Append
    linkageType: ''
    returnType: int
    signature: int _PySys_AddWarnOptionWithError(PyObject *option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_AddWarnOptionWithError
      Src: /src/Python-3.8.3/Python/sysmodule.c:2216,1
    - Dst: _PyThreadState_UncheckedGet
      Src: /src/Python-3.8.3/Python/sysmodule.c:2218,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:2219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - option
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2213
    functionDepth: 9
    functionLinenumber: 2213
    functionLinenumberEnd: 2222
    functionName: PySys_AddWarnOptionUnicode
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_AddWarnOptionWithError
    - _PyThreadState_UncheckedGet
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void PySys_AddWarnOptionUnicode(PyObject *option)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:2227,1
    - Dst: _append_preinit_entry
      Src: /src/Python-3.8.3/Python/sysmodule.c:2229,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2233,1
    - Dst: PySys_AddWarnOptionUnicode
      Src: /src/Python-3.8.3/Python/sysmodule.c:2236,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2224
    functionDepth: 10
    functionLinenumber: 2224
    functionLinenumberEnd: 2238
    functionName: PySys_AddWarnOption
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _append_preinit_entry
    - Py_DECREF
    - _PyThreadState_GET
    - PyUnicode_FromWideChar
    - PySys_AddWarnOptionUnicode
    linkageType: ''
    returnType: void
    signature: void PySys_AddWarnOption(const wchar_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2243,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:2244,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/Python/sysmodule.c:2245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2240
    functionDepth: 6
    functionLinenumber: 2240
    functionLinenumberEnd: 2246
    functionName: PySys_HasWarnOptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_GET_SIZE
    - _PySys_GetObjectId
    - PyList_Check
    linkageType: ''
    returnType: int
    signature: int PySys_HasWarnOptions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2251,1
    - Dst: PyDict_Check
      Src: /src/Python-3.8.3/Python/sysmodule.c:2252,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2263,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:2266,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2267,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2248
    functionDepth: 7
    functionLinenumber: 2248
    functionLinenumberEnd: 2273
    functionName: get_xoptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySys_GetObjectId
    - PyDict_New
    - _PySys_SetObjectId
    - PyDict_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      get_xoptions(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_xoptions
      Src: /src/Python-3.8.3/Python/sysmodule.c:2280,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/sysmodule.c:2285,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2287,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2289,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2292,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2293,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2298,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2301,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2302,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2306,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2307,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2275
    functionDepth: 8
    functionLinenumber: 2275
    functionLinenumberEnd: 2309
    functionName: _PySys_AddXOptionWithError
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - get_xoptions
    - Py_DECREF
    - Py_INCREF
    - wcschr
    - PyUnicode_FromWideChar
    - PyDict_SetItem
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _PySys_AddXOptionWithError(const wchar_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/sysmodule.c:2314,1
    - Dst: _append_preinit_entry
      Src: /src/Python-3.8.3/Python/sysmodule.c:2316,1
    - Dst: _PySys_AddXOptionWithError
      Src: /src/Python-3.8.3/Python/sysmodule.c:2319,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:2321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2311
    functionDepth: 9
    functionLinenumber: 2311
    functionLinenumberEnd: 2323
    functionName: PySys_AddXOption
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _append_preinit_entry
    - _PyThreadState_GET
    - PyErr_Clear
    - _PySys_AddXOptionWithError
    linkageType: ''
    returnType: void
    signature: void PySys_AddXOption(const wchar_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_xoptions
      Src: /src/Python-3.8.3/Python/sysmodule.c:2328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2325
    functionDepth: 8
    functionLinenumber: 2325
    functionLinenumberEnd: 2329
    functionName: PySys_GetXOptions
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - get_xoptions
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PySys_GetXOptions(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2475,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2482,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2483,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2484,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2485,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2486,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2487,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2488,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2489,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2490,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2493,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2494,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2495,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2496,1
    - Dst: PyStructSequence_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:2497,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2497,1
    - Dst: SetFlag
      Src: /src/Python-3.8.3/Python/sysmodule.c:2498,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:2501,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2467
    functionDepth: 2
    functionLinenumber: 2467
    functionLinenumberEnd: 2506
    functionName: make_flags
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyStructSequence_SET_ITEM
    - PyStructSequence_New
    - SetFlag
    - PyBool_FromLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_flags(_PyRuntimeState *runtime, PyInterpreterState *interp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2479
    functionDepth: 0
    functionLinenumber: 2479
    functionLinenumberEnd: 2481
    functionName: SetFlag
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetFlag(flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyStructSequence_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2538,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2562,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2563,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2564,1
    - Dst: SetStrItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2565,1
    - Dst: SetIntItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2566,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:2570,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2531
    functionDepth: 2
    functionLinenumber: 2531
    functionLinenumberEnd: 2575
    functionName: make_version_info
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_CLEAR
    - PyErr_Occurred
    - PyStructSequence_New
    - SetStrItem
    - SetIntItem
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_version_info(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2557
    functionDepth: 0
    functionLinenumber: 2557
    functionLinenumberEnd: 2559
    functionName: SetIntItem
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetIntItem(flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2559
    functionDepth: 0
    functionLinenumber: 2559
    functionLinenumberEnd: 2561
    functionName: SetStrItem
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetStrItem(flag)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2595,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2601,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2604,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2605,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2609,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2613,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2617,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2621,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2625,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2630,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2633,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2634,1
    - Dst: _PyNamespace_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2641,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2642,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2646,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 1
    argNames:
    - version_info
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2589
    functionDepth: 8
    functionLinenumber: 2589
    functionLinenumberEnd: 2648
    functionName: make_impl_info
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - Py_CLEAR
    - Py_DECREF
    - PyDict_New
    - PyDict_SetItemString
    - _PyNamespace_New
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_impl_info(PyObject *version_info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2663
    functionDepth: 0
    functionLinenumber: 2663
    functionLinenumberEnd: 2674
    functionName: SET_SYS_FROM_STRING_BORROW
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_STRING_BORROW(key, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2686
    functionName: SET_SYS_FROM_STRING
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_STRING(key, value)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SET_SYS_FROM_STRING_BORROW
      Src: /src/Python-3.8.3/Python/sysmodule.c:2696,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2697,1
    - Dst: SET_SYS_FROM_STRING_BORROW
      Src: /src/Python-3.8.3/Python/sysmodule.c:2698,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2699,1
    - Dst: SET_SYS_FROM_STRING_BORROW
      Src: /src/Python-3.8.3/Python/sysmodule.c:2700,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2702,1
    - Dst: SET_SYS_FROM_STRING_BORROW
      Src: /src/Python-3.8.3/Python/sysmodule.c:2703,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2704,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2706,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2707,1
    - Dst: Py_GetVersion
      Src: /src/Python-3.8.3/Python/sysmodule.c:2707,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2708,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2709,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2710,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/sysmodule.c:2711,1
    - Dst: _Py_gitidentifier
      Src: /src/Python-3.8.3/Python/sysmodule.c:2711,1
    - Dst: _Py_gitversion
      Src: /src/Python-3.8.3/Python/sysmodule.c:2712,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2713,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2713,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2714,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2715,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2716,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2717,1
    - Dst: Py_GetCopyright
      Src: /src/Python-3.8.3/Python/sysmodule.c:2717,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2718,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2719,1
    - Dst: Py_GetPlatform
      Src: /src/Python-3.8.3/Python/sysmodule.c:2719,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2720,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/sysmodule.c:2721,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2722,1
    - Dst: PyFloat_GetInfo
      Src: /src/Python-3.8.3/Python/sysmodule.c:2723,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2724,1
    - Dst: PyLong_GetInfo
      Src: /src/Python-3.8.3/Python/sysmodule.c:2725,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/sysmodule.c:2728,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2732,1
    - Dst: get_hash_info
      Src: /src/Python-3.8.3/Python/sysmodule.c:2733,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2734,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2735,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2736,1
    - Dst: list_builtin_module_names
      Src: /src/Python-3.8.3/Python/sysmodule.c:2737,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2739,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2740,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2742,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2743,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2747,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Python/sysmodule.c:2748,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2749,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2750,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2753,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2754,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/sysmodule.c:2759,1
    - Dst: make_version_info
      Src: /src/Python-3.8.3/Python/sysmodule.c:2764,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2765,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2769,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:2770,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:2771,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2774,1
    - Dst: make_impl_info
      Src: /src/Python-3.8.3/Python/sysmodule.c:2774,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/sysmodule.c:2778,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2783,1
    - Dst: make_flags
      Src: /src/Python-3.8.3/Python/sysmodule.c:2783,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/sysmodule.c:2788,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/sysmodule.c:2795,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:2795,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2796,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:2797,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:2798,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2804,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2805,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2807,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2808,1
    - Dst: SET_SYS_FROM_STRING
      Src: /src/Python-3.8.3/Python/sysmodule.c:2811,1
    - Dst: PyThread_GetInfo
      Src: /src/Python-3.8.3/Python/sysmodule.c:2811,1
    - Dst: PyStructSequence_InitType2
      Src: /src/Python-3.8.3/Python/sysmodule.c:2815,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:2821,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/sysmodule.c:2824,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2827,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2830,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 82
    argCount: 3
    argNames:
    - runtime
    - interp
    - sysdict
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    - PyObject*
    assertStmts:
    - condition: (!PyErr_Occurred())
      pos:
        line_end: 2794
        line_start: 2794
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    constantsTouched: []
    func_position:
      end: 2831
      start: 2687
    functionDepth: 9
    functionLinenumber: 2687
    functionLinenumberEnd: 2831
    functionName: _PySys_InitCore
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - SET_SYS_FROM_STRING_BORROW
    - PyThread_GetInfo
    - list_builtin_module_names
    - make_flags
    - Py_GetVersion
    - _PyStatus_ERR
    - PyDict_GetItemString
    - PyLong_FromVoidPtr
    - _PyStatus_OK
    - PyErr_Occurred
    - SET_SYS_FROM_STRING
    - PyErr_ExceptionMatches
    - Py_GetPlatform
    - _Py_gitidentifier
    - assert
    - PyErr_Clear
    - make_impl_info
    - PyFloat_GetInfo
    - _Py_gitversion
    - PyDict_DelItemString
    - PyUnicode_FromString
    - PyStructSequence_InitType2
    - get_hash_info
    - PyLong_GetInfo
    - Py_BuildValue
    - make_version_info
    - Py_GetCopyright
    - PyLong_FromSsize_t
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _PySys_InitCore(_PyRuntimeState *runtime, PyInterpreterState
      *interp,\n                PyObject *sysdict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2836
    functionDepth: 0
    functionLinenumber: 2836
    functionLinenumberEnd: 2847
    functionName: SET_SYS_FROM_STRING_INT_RESULT
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_STRING_INT_RESULT(key, value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/sysmodule.c:2854,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2856,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2858,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2861,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:2862,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/sysmodule.c:2867,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2870,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2871,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2875,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2876,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - opts
    - s
    argTypes:
    - PyObject*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2849
    functionDepth: 5
    functionLinenumber: 2849
    functionLinenumberEnd: 2878
    functionName: sys_add_xoption
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_INCREF
    - wcschr
    - PyUnicode_FromWideChar
    - PyDict_SetItem
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int sys_add_xoption(PyObject *opts, const wchar_t *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:2886,1
    - Dst: sys_add_xoption
      Src: /src/Python-3.8.3/Python/sysmodule.c:2893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2881
    functionDepth: 6
    functionLinenumber: 2881
    functionLinenumberEnd: 2900
    functionName: sys_create_xoptions_dict
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_New
    - Py_DECREF
    - sys_add_xoption
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_create_xoptions_dict(const PyConfig *config)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: COPY_LIST
      Src: /src/Python-3.8.3/Python/sysmodule.c:2930,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2932,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2933,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2934,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2935,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2936,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2937,1
    - Dst: SET_SYS_FROM_WSTR
      Src: /src/Python-3.8.3/Python/sysmodule.c:2940,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2942,1
    - Dst: COPY_LIST
      Src: /src/Python-3.8.3/Python/sysmodule.c:2945,1
    - Dst: COPY_LIST
      Src: /src/Python-3.8.3/Python/sysmodule.c:2946,1
    - Dst: sys_create_xoptions_dict
      Src: /src/Python-3.8.3/Python/sysmodule.c:2948,1
    - Dst: SET_SYS_FROM_STRING_BORROW
      Src: /src/Python-3.8.3/Python/sysmodule.c:2952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:2953,1
    - Dst: SET_SYS_FROM_STRING_INT_RESULT
      Src: /src/Python-3.8.3/Python/sysmodule.c:2959,1
    - Dst: make_flags
      Src: /src/Python-3.8.3/Python/sysmodule.c:2959,1
    - Dst: PyDict_DelItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:2963,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/sysmodule.c:2965,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:2968,1
    - Dst: SET_SYS_FROM_STRING_INT_RESULT
      Src: /src/Python-3.8.3/Python/sysmodule.c:2971,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/Python/sysmodule.c:2972,1
    - Dst: get_warnoptions
      Src: /src/Python-3.8.3/Python/sysmodule.c:2974,1
    - Dst: get_xoptions
      Src: /src/Python-3.8.3/Python/sysmodule.c:2977,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/sysmodule.c:2980,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2903
    functionDepth: 8
    functionLinenumber: 2903
    functionLinenumberEnd: 2987
    functionName: _PySys_InitMain
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyDict_DelItemString
    - SET_SYS_FROM_STRING_BORROW
    - get_xoptions
    - PyErr_Occurred
    - Py_DECREF
    - make_flags
    - COPY_LIST
    - get_warnoptions
    - SET_SYS_FROM_STRING_INT_RESULT
    - SET_SYS_FROM_WSTR
    - sys_create_xoptions_dict
    - PyErr_ExceptionMatches
    - PyBool_FromLong
    - PyDict_SetItemString
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int _PySys_InitMain(_PyRuntimeState *runtime, PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2910
    functionDepth: 0
    functionLinenumber: 2910
    functionLinenumberEnd: 2919
    functionName: COPY_LIST
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY_LIST(KEY, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2920
    functionDepth: 0
    functionLinenumber: 2920
    functionLinenumberEnd: 2929
    functionName: SET_SYS_FROM_WSTR
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_SYS_FROM_WSTR(KEY, VALUE)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_NewStdPrinter
      Src: /src/Python-3.8.3/Python/sysmodule.c:3000,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/sysmodule.c:3000,1
    - Dst: _PyDict_SetItemId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3004,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:3007,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3010,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/sysmodule.c:3011,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3014,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:3015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sysdict
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3016
      start: 2997
    functionDepth: 6
    functionLinenumber: 2997
    functionLinenumberEnd: 3016
    functionName: _PySys_SetPreliminaryStderr
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - Py_XDECREF
    - _PyDict_SetItemId
    - _PyStatus_ERR
    - PyFile_NewStdPrinter
    - PyDict_SetItemString
    - _PyStatus_OK
    - fileno
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PySys_SetPreliminaryStderr(PyObject *sysdict)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:3025,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:3027,1
    - Dst: _PyModule_CreateInitialized
      Src: /src/Python-3.8.3/Python/sysmodule.c:3031,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:3033,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/sysmodule.c:3036,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:3038,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3040,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/sysmodule.c:3043,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/sysmodule.c:3044,1
    - Dst: _PySys_SetPreliminaryStderr
      Src: /src/Python-3.8.3/Python/sysmodule.c:3047,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/sysmodule.c:3048,1
    - Dst: _PySys_InitCore
      Src: /src/Python-3.8.3/Python/sysmodule.c:3052,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/sysmodule.c:3053,1
    - Dst: _PyImport_FixupBuiltin
      Src: /src/Python-3.8.3/Python/sysmodule.c:3057,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/sysmodule.c:3060,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - runtime
    - interp
    - sysmod_p
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    - PyObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3021
    functionDepth: 13
    functionLinenumber: 3021
    functionLinenumberEnd: 3061
    functionName: _PySys_Create
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_GetDict
    - PyDict_New
    - _PySys_SetPreliminaryStderr
    - _PySys_InitCore
    - _PyImport_FixupBuiltin
    - _PyStatus_ERR
    - _PyStatus_EXCEPTION
    - _PyModule_CreateInitialized
    - PyDict_SetItemString
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _PySys_Create(_PyRuntimeState *runtime, PyInterpreterState
      *interp,\n              PyObject **sysmod_p)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/sysmodule.c:3073,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:3077,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/Python/sysmodule.c:3081,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Python/sysmodule.c:3083,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:3084,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3086,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:3089,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - path
    - delim
    argTypes:
    - wchar_t*
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3064
    functionDepth: 5
    functionLinenumber: 3064
    functionLinenumberEnd: 3095
    functionName: makepathobject
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - wcschr
    - PyList_SET_ITEM
    - PyUnicode_FromWideChar
    - PyList_New
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      makepathobject(const wchar_t *path, wchar_t delim)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: makepathobject
      Src: /src/Python-3.8.3/Python/sysmodule.c:3101,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3102,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3103,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3104,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3097
    functionDepth: 7
    functionLinenumber: 3097
    functionLinenumberEnd: 3106
    functionName: PySys_SetPath
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - makepathobject
    - Py_FatalError
    - _PySys_SetObjectId
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void PySys_SetPath(const wchar_t *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/sysmodule.c:3111,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/sysmodule.c:3117,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3119,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/Python/sysmodule.c:3122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3108
    functionDepth: 5
    functionLinenumber: 3108
    functionLinenumberEnd: 3125
    functionName: make_sys_argv
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyUnicode_FromWideChar
    - Py_DECREF
    - PyList_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      make_sys_argv(int argc, wchar_t * const * argv)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: make_sys_argv
      Src: /src/Python-3.8.3/Python/sysmodule.c:3138,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3140,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/sysmodule.c:3142,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3143,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3144,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3146,1
    - Dst: _PyPathConfig_ComputeSysPath0
      Src: /src/Python-3.8.3/Python/sysmodule.c:3153,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3155,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3158,1
    - Dst: PyList_Insert
      Src: /src/Python-3.8.3/Python/sysmodule.c:3160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3161,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/sysmodule.c:3162,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - argc
    - argv
    - updatepath
    argTypes:
    - int
    - wchar_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 3127
    functionDepth: 7
    functionLinenumber: 3127
    functionLinenumberEnd: 3168
    functionName: PySys_SetArgvEx
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - PyList_Insert
    - Py_DECREF
    - make_sys_argv
    - _PyPathConfig_ComputeSysPath0
    - _PySys_GetObjectId
    - Py_FatalError
    - PySys_SetObject
    linkageType: ''
    returnType: void
    signature: void PySys_SetArgvEx(int argc, wchar_t **argv, int updatepath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_SetArgvEx
      Src: /src/Python-3.8.3/Python/sysmodule.c:3173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3174
      start: 3170
    functionDepth: 8
    functionLinenumber: 3170
    functionLinenumberEnd: 3174
    functionName: PySys_SetArgv
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 1
    functionsReached:
    - PySys_SetArgvEx
    linkageType: ''
    returnType: void
    signature: void PySys_SetArgv(int argc, wchar_t **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3188,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/sysmodule.c:3192,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3203,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - unicode
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3206
      start: 3179
    functionDepth: 3
    functionLinenumber: 3179
    functionLinenumberEnd: 3206
    functionName: sys_pyfile_write_unicode
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PyObject_GetAttrId
    - PyObject_CallFunctionObjArgs
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/sysmodule.c:3217,1
    - Dst: sys_pyfile_write_unicode
      Src: /src/Python-3.8.3/Python/sysmodule.c:3221,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - text
    - file
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3208
    functionDepth: 4
    functionLinenumber: 3208
    functionLinenumberEnd: 3224
    functionName: sys_pyfile_write
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - sys_pyfile_write_unicode
    - PyUnicode_FromString
    - Py_DECREF
    linkageType: ''
    returnType: int
    signature: int sys_pyfile_write(const char *text, PyObject *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/sysmodule.c:3262,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3263,1
    - Dst: PyOS_vsnprintf
      Src: /src/Python-3.8.3/Python/sysmodule.c:3264,1
    - Dst: sys_pyfile_write
      Src: /src/Python-3.8.3/Python/sysmodule.c:3265,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:3266,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/sysmodule.c:3267,1
    - Dst: sys_pyfile_write
      Src: /src/Python-3.8.3/Python/sysmodule.c:3271,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/sysmodule.c:3272,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/sysmodule.c:3274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - key
    - fp
    - format
    - va
    argTypes:
    - _Py_Identifier*
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3275
      start: 3254
    functionDepth: 6
    functionLinenumber: 3254
    functionLinenumberEnd: 3275
    functionName: sys_write
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_GetObjectId
    - PyErr_Fetch
    - PyOS_vsnprintf
    - sys_pyfile_write
    - PyErr_Restore
    - PyErr_Clear
    - fputs
    linkageType: ''
    returnType: void
    signature: void sys_write(_Py_Identifier *key, FILE *fp, const char *format, va_list
      va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/sysmodule.c:3282,1
    - Dst: sys_write
      Src: /src/Python-3.8.3/Python/sysmodule.c:3283,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/sysmodule.c:3284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3277
    functionDepth: 7
    functionLinenumber: 3277
    functionLinenumberEnd: 3285
    functionName: PySys_WriteStdout
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - sys_write
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void PySys_WriteStdout(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/sysmodule.c:3292,1
    - Dst: sys_write
      Src: /src/Python-3.8.3/Python/sysmodule.c:3293,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/sysmodule.c:3294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3295
      start: 3287
    functionDepth: 7
    functionLinenumber: 3287
    functionLinenumberEnd: 3295
    functionName: PySys_WriteStderr
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 20
    functionsReached:
    - sys_write
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void PySys_WriteStderr(const char *format, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/sysmodule.c:3304,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/sysmodule.c:3305,1
    - Dst: PyUnicode_FromFormatV
      Src: /src/Python-3.8.3/Python/sysmodule.c:3306,1
    - Dst: sys_pyfile_write_unicode
      Src: /src/Python-3.8.3/Python/sysmodule.c:3308,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/sysmodule.c:3309,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/sysmodule.c:3310,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/sysmodule.c:3312,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/sysmodule.c:3314,1
    - Dst: PyErr_Restore
      Src: /src/Python-3.8.3/Python/sysmodule.c:3316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - key
    - fp
    - format
    - va
    argTypes:
    - _Py_Identifier*
    - FILE*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3297
    functionDepth: 7
    functionLinenumber: 3297
    functionLinenumberEnd: 3317
    functionName: sys_format
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - _PySys_GetObjectId
    - Py_DECREF
    - PyUnicode_AsUTF8
    - PyErr_Fetch
    - sys_pyfile_write_unicode
    - PyUnicode_FromFormatV
    - PyErr_Restore
    - PyErr_Clear
    - fputs
    linkageType: ''
    returnType: void
    signature: void sys_format(_Py_Identifier *key, FILE *fp, const char *format,
      va_list va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/sysmodule.c:3324,1
    - Dst: sys_format
      Src: /src/Python-3.8.3/Python/sysmodule.c:3325,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/sysmodule.c:3326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3327
      start: 3319
    functionDepth: 8
    functionLinenumber: 3319
    functionLinenumberEnd: 3327
    functionName: PySys_FormatStdout
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - sys_format
    linkageType: ''
    returnType: void
    signature: void PySys_FormatStdout(const char *format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/Python/sysmodule.c:3334,1
    - Dst: sys_format
      Src: /src/Python-3.8.3/Python/sysmodule.c:3335,1
    - Dst: va_end
      Src: /src/Python-3.8.3/Python/sysmodule.c:3336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3329
    functionDepth: 8
    functionLinenumber: 3329
    functionLinenumberEnd: 3337
    functionName: PySys_FormatStderr
    functionSourceFile: /src/Python-3.8.3/Python/sysmodule.c
    functionUses: 6
    functionsReached:
    - va_start
    - va_end
    - sys_format
    linkageType: ''
    returnType: void
    signature: void PySys_FormatStderr(const char *format, ...)
  - 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: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: _PyTime_check_mul_overflow
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTime_check_mul_overflow(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 8
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: error_time_t_overflow
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void error_time_t_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 8
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: _PyTime_overflow
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: void
    signature: void _PyTime_overflow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ticks
    - mul
    - div
    argTypes:
    - _PyTime_t
    - _PyTime_t
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: _PyTime_MulDiv
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_MulDiv(_PyTime_t ticks, _PyTime_t mul, _PyTime_t
      div)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Python/pytime.c:69,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:72,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/pytime.c:73,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pytime.c:75,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pytime.c:76,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 64
    functionDepth: 9
    functionLinenumber: 64
    functionLinenumberEnd: 82
    functionName: _PyLong_AsTime_t
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - PyLong_AsLong
    - Py_BUILD_ASSERT
    - PyErr_Occurred
    - error_time_t_overflow
    - PyLong_AsLongLong
    - PyErr_ExceptionMatches
    linkageType: ''
    returnType: time_t
    signature: time_t _PyLong_AsTime_t(PyObject *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Python/pytime.c:88,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:90,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/pytime.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: _PyLong_FromTime_t
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 7
    functionsReached:
    - PyLong_FromLong
    - Py_BUILD_ASSERT
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyLong_FromTime_t(time_t t)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/Python-3.8.3/Python/pytime.c:100,1
    - Dst: fabs
      Src: /src/Python-3.8.3/Python/pytime.c:101,1
    - Dst: round
      Src: /src/Python-3.8.3/Python/pytime.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: _PyTime_RoundHalfEven
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - fabs
    - round
    linkageType: ''
    returnType: double
    signature: double _PyTime_RoundHalfEven(double x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_RoundHalfEven
      Src: /src/Python-3.8.3/Python/pytime.c:116,1
    - Dst: ceil
      Src: /src/Python-3.8.3/Python/pytime.c:119,1
    - Dst: floor
      Src: /src/Python-3.8.3/Python/pytime.c:122,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:125,1
    - Dst: ceil
      Src: /src/Python-3.8.3/Python/pytime.c:126,1
    - Dst: floor
      Src: /src/Python-3.8.3/Python/pytime.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - x
    - round
    argTypes:
    - double
    - _PyTime_round_t
    assertStmts:
    - condition: (round == _PyTime_ROUND_UP)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 129
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 129
    functionName: _PyTime_Round
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - assert
    - floor
    - _PyTime_RoundHalfEven
    - ceil
    linkageType: ''
    returnType: double
    signature: double _PyTime_Round(double x, _PyTime_round_t round)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: modf
      Src: /src/Python-3.8.3/Python/pytime.c:140,1
    - Dst: _PyTime_Round
      Src: /src/Python-3.8.3/Python/pytime.c:143,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:152,1
    - Dst: _Py_InIntegralTypeRange
      Src: /src/Python-3.8.3/Python/pytime.c:154,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:155,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - d
    - sec
    - numerator
    - idenominator
    - round
    argTypes:
    - double
    - time_t*
    - long*
    - long
    - _PyTime_round_t
    assertStmts:
    - condition: (0.0 <= floatpart && floatpart < denominator)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (0 <= *numerator && *numerator < idenominator)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 162
      start: 131
    functionDepth: 9
    functionLinenumber: 131
    functionLinenumberEnd: 162
    functionName: _PyTime_DoubleToDenominator
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _Py_InIntegralTypeRange
    - error_time_t_overflow
    - _PyTime_Round
    - assert
    - modf
    linkageType: ''
    returnType: int
    signature: "int _PyTime_DoubleToDenominator(double d, time_t *sec, long *numerator,\n
      \                           long idenominator, _PyTime_round_t round)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:168,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/pytime.c:170,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/pytime.c:171,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Python/pytime.c:172,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:174,1
    - Dst: _PyTime_DoubleToDenominator
      Src: /src/Python-3.8.3/Python/pytime.c:177,1
    - Dst: _PyLong_AsTime_t
      Src: /src/Python-3.8.3/Python/pytime.c:181,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pytime.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - obj
    - sec
    - numerator
    - denominator
    - round
    argTypes:
    - PyObject*
    - time_t*
    - long*
    - long
    - _PyTime_round_t
    assertStmts:
    - condition: (denominator >= 1)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 188
      start: 164
    functionDepth: 10
    functionLinenumber: 164
    functionLinenumberEnd: 188
    functionName: _PyTime_ObjectToDenominator
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - Py_IS_NAN
    - _PyLong_AsTime_t
    - _PyTime_DoubleToDenominator
    - PyErr_SetString
    - assert
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: "int _PyTime_ObjectToDenominator(PyObject *obj, time_t *sec, long *numerator,\n
      \                           long denominator, _PyTime_round_t round)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/pytime.c:193,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/pytime.c:198,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Python/pytime.c:199,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:200,1
    - Dst: _PyTime_Round
      Src: /src/Python-3.8.3/Python/pytime.c:204,1
    - Dst: modf
      Src: /src/Python-3.8.3/Python/pytime.c:205,1
    - Dst: _Py_InIntegralTypeRange
      Src: /src/Python-3.8.3/Python/pytime.c:207,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:208,1
    - Dst: _PyLong_AsTime_t
      Src: /src/Python-3.8.3/Python/pytime.c:215,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pytime.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - obj
    - sec
    - round
    argTypes:
    - PyObject*
    - time_t*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 190
    functionDepth: 10
    functionLinenumber: 190
    functionLinenumberEnd: 221
    functionName: _PyTime_ObjectToTime_t
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 4
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - _Py_InIntegralTypeRange
    - _PyTime_Round
    - Py_IS_NAN
    - error_time_t_overflow
    - _PyLong_AsTime_t
    - PyErr_SetString
    - modf
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: int _PyTime_ObjectToTime_t(PyObject *obj, time_t *sec, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToDenominator
      Src: /src/Python-3.8.3/Python/pytime.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - obj
    - sec
    - nsec
    - round
    argTypes:
    - PyObject*
    - time_t*
    - long*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 11
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: _PyTime_ObjectToTimespec
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - _PyTime_ObjectToDenominator
    linkageType: ''
    returnType: int
    signature: "int _PyTime_ObjectToTimespec(PyObject *obj, time_t *sec, long *nsec,\n
      \                        _PyTime_round_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_ObjectToDenominator
      Src: /src/Python-3.8.3/Python/pytime.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - obj
    - sec
    - usec
    - round
    argTypes:
    - PyObject*
    - time_t*
    - long*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 11
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: _PyTime_ObjectToTimeval
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - _PyTime_ObjectToDenominator
    linkageType: ''
    returnType: int
    signature: "int _PyTime_ObjectToTimeval(PyObject *obj, time_t *sec, long *usec,\n
      \                       _PyTime_round_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:244,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:245,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - int
    assertStmts:
    - condition: "((t >= 0 && t <= _PyTime_MAX / SEC_TO_NS)\n           || (t < 0
        && t >= _PyTime_MIN / SEC_TO_NS))"
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: _PyTime_FromSeconds
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 6
    functionsReached:
    - assert
    - Py_BUILD_ASSERT
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_FromSeconds(int seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ns
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: _PyTime_FromNanoseconds
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_FromNanoseconds(_PyTime_t ns)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/Python/pytime.c:267,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/pytime.c:268,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Python/pytime.c:269,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:273,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Python/pytime.c:274,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pytime.c:275,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pytime.c:276,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tp
    - obj
    argTypes:
    - _PyTime_t*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 286
    functionName: _PyTime_FromNanosecondsObject
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 8
    functionsReached:
    - PyLong_Check
    - Py_BUILD_ASSERT
    - PyErr_Occurred
    - PyLong_AsLongLong
    - PyErr_Format
    - Py_TYPE
    - PyErr_ExceptionMatches
    - _PyTime_overflow
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromNanosecondsObject(_PyTime_t *tp, PyObject *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:295,1
    - Dst: _PyTime_check_mul_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:298,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:300,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:311,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - tp
    - ts
    - raise
    argTypes:
    - _PyTime_t*
    - struct timespec*
    - int
    assertStmts:
    - condition: (nsec >= 0)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 325
      start: 289
    functionDepth: 9
    functionLinenumber: 289
    functionLinenumberEnd: 325
    functionName: pytime_fromtimespec
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_check_mul_overflow
    - _PyTime_overflow
    - assert
    - Py_BUILD_ASSERT
    linkageType: ''
    returnType: int
    signature: int pytime_fromtimespec(_PyTime_t *tp, struct timespec *ts, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_fromtimespec
      Src: /src/Python-3.8.3/Python/pytime.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - ts
    argTypes:
    - _PyTime_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 10
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: _PyTime_FromTimespec
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 4
    functionsReached:
    - pytime_fromtimespec
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromTimespec(_PyTime_t *tp, struct timespec *ts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:341,1
    - Dst: _PyTime_check_mul_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:344,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:346,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:357,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - tp
    - tv
    - raise
    argTypes:
    - _PyTime_t*
    - struct timeval*
    - int
    assertStmts:
    - condition: (usec >= 0)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 371
      start: 335
    functionDepth: 9
    functionLinenumber: 335
    functionLinenumberEnd: 371
    functionName: pytime_fromtimeval
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_check_mul_overflow
    - _PyTime_overflow
    - assert
    - Py_BUILD_ASSERT
    linkageType: ''
    returnType: int
    signature: int pytime_fromtimeval(_PyTime_t *tp, struct timeval *tv, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pytime_fromtimeval
      Src: /src/Python-3.8.3/Python/pytime.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - tv
    argTypes:
    - _PyTime_t*
    - struct timeval*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 10
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: _PyTime_FromTimeval
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pytime_fromtimeval
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromTimeval(_PyTime_t *tp, struct timeval *tv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Round
      Src: /src/Python-3.8.3/Python/pytime.c:390,1
    - Dst: _Py_InIntegralTypeRange
      Src: /src/Python-3.8.3/Python/pytime.c:392,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - t
    - value
    - round
    - unit_to_ns
    argTypes:
    - _PyTime_t*
    - double
    - _PyTime_round_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 380
    functionDepth: 9
    functionLinenumber: 380
    functionLinenumberEnd: 398
    functionName: _PyTime_FromDouble
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_overflow
    - _Py_InIntegralTypeRange
    - _PyTime_Round
    linkageType: ''
    returnType: int
    signature: "int _PyTime_FromDouble(_PyTime_t *t, double value, _PyTime_round_t
      round,\n                   long unit_to_ns)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/pytime.c:404,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/pytime.c:406,1
    - Dst: Py_IS_NAN
      Src: /src/Python-3.8.3/Python/pytime.c:407,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:408,1
    - Dst: _PyTime_FromDouble
      Src: /src/Python-3.8.3/Python/pytime.c:411,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:415,1
    - Dst: PyLong_AsLongLong
      Src: /src/Python-3.8.3/Python/pytime.c:417,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pytime.c:418,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pytime.c:419,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:420,1
    - Dst: _PyTime_check_mul_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:425,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - t
    - obj
    - round
    - unit_to_ns
    argTypes:
    - _PyTime_t*
    - PyObject*
    - _PyTime_round_t
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 400
    functionDepth: 10
    functionLinenumber: 400
    functionLinenumberEnd: 432
    functionName: _PyTime_FromObject
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - Py_BUILD_ASSERT
    - PyErr_Occurred
    - Py_IS_NAN
    - _PyTime_check_mul_overflow
    - PyLong_AsLongLong
    - PyErr_ExceptionMatches
    - PyErr_SetString
    - _PyTime_FromDouble
    - _PyTime_overflow
    - PyFloat_Check
    linkageType: ''
    returnType: int
    signature: "int _PyTime_FromObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t
      round,\n                   long unit_to_ns)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromObject
      Src: /src/Python-3.8.3/Python/pytime.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - obj
    - round
    argTypes:
    - _PyTime_t*
    - PyObject*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 11
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: _PyTime_FromSecondsObject
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 15
    functionsReached:
    - _PyTime_FromObject
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromSecondsObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_FromObject
      Src: /src/Python-3.8.3/Python/pytime.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - obj
    - round
    argTypes:
    - _PyTime_t*
    - PyObject*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 440
    functionDepth: 11
    functionLinenumber: 440
    functionLinenumberEnd: 444
    functionName: _PyTime_FromMillisecondsObject
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - _PyTime_FromObject
    linkageType: ''
    returnType: int
    signature: int _PyTime_FromMillisecondsObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t
      round)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - t
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 464
    functionName: _PyTime_AsSecondsDouble
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double _PyTime_AsSecondsDouble(_PyTime_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:469,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/Python/pytime.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - _PyTime_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: _PyTime_AsNanosecondsObject
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 11
    functionsReached:
    - Py_BUILD_ASSERT
    - PyLong_FromLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyTime_AsNanosecondsObject(_PyTime_t t)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:477,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Python/pytime.c:482,1
    - Dst: Py_ABS
      Src: /src/Python-3.8.3/Python/pytime.c:483,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:510,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - t
    - k
    - round
    argTypes:
    - _PyTime_t
    - _PyTime_t
    - _PyTime_round_t
    assertStmts:
    - condition: (k > 1)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (round == _PyTime_ROUND_UP)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 518
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 518
    functionName: _PyTime_Divide
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - Py_ABS
    - assert
    linkageType: ''
    returnType: _PyTime_t
    signature: "_PyTime_t _PyTime_Divide(const _PyTime_t t, const _PyTime_t k,\n               const
      _PyTime_round_t round)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Divide
      Src: /src/Python-3.8.3/Python/pytime.c:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - round
    argTypes:
    - _PyTime_t
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 524
    functionName: _PyTime_AsMilliseconds
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 9
    functionsReached:
    - _PyTime_Divide
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_AsMilliseconds(_PyTime_t t, _PyTime_round_t round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Divide
      Src: /src/Python-3.8.3/Python/pytime.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - round
    argTypes:
    - _PyTime_t
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 530
    functionName: _PyTime_AsMicroseconds
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 6
    functionsReached:
    - _PyTime_Divide
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_AsMicroseconds(_PyTime_t t, _PyTime_round_t round)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_Divide
      Src: /src/Python-3.8.3/Python/pytime.c:543,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - t
    - p_secs
    - p_us
    - round
    argTypes:
    - _PyTime_t
    - _PyTime_t*
    - int*
    - _PyTime_round_t
    assertStmts:
    - condition: (0 <= usec && usec < SEC_TO_US)
      pos:
        line_end: 561
        line_start: 561
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 568
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 568
    functionName: _PyTime_AsTimeval_impl
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_Divide
    - assert
    linkageType: ''
    returnType: int
    signature: "int _PyTime_AsTimeval_impl(_PyTime_t t, _PyTime_t *p_secs, int *p_us,\n
      \                      _PyTime_round_t round)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsTimeval_impl
      Src: /src/Python-3.8.3/Python/pytime.c:578,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - t
    - tv
    - round
    - raise
    argTypes:
    - _PyTime_t
    - struct timeval*
    - _PyTime_round_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 570
    functionDepth: 9
    functionLinenumber: 570
    functionLinenumberEnd: 595
    functionName: _PyTime_AsTimevalStruct_impl
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - error_time_t_overflow
    - _PyTime_AsTimeval_impl
    linkageType: ''
    returnType: int
    signature: "int _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv,\n
      \                            _PyTime_round_t round, int raise)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsTimevalStruct_impl
      Src: /src/Python-3.8.3/Python/pytime.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - tv
    - round
    argTypes:
    - _PyTime_t
    - struct timeval*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 10
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: _PyTime_AsTimeval
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 5
    functionsReached:
    - _PyTime_AsTimevalStruct_impl
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTimeval(_PyTime_t t, struct timeval *tv, _PyTime_round_t
      round)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsTimevalStruct_impl
      Src: /src/Python-3.8.3/Python/pytime.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - tv
    - round
    argTypes:
    - _PyTime_t
    - struct timeval*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 603
    functionDepth: 10
    functionLinenumber: 603
    functionLinenumberEnd: 607
    functionName: _PyTime_AsTimeval_noraise
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 3
    functionsReached:
    - _PyTime_AsTimevalStruct_impl
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTimeval_noraise(_PyTime_t t, struct timeval *tv, _PyTime_round_t
      round)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_AsTimeval_impl
      Src: /src/Python-3.8.3/Python/pytime.c:616,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - t
    - p_secs
    - us
    - round
    argTypes:
    - _PyTime_t
    - time_t*
    - int*
    - _PyTime_round_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 9
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: _PyTime_AsTimevalTime_t
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 1
    functionsReached:
    - error_time_t_overflow
    - _PyTime_AsTimeval_impl
    linkageType: ''
    returnType: int
    signature: "int _PyTime_AsTimevalTime_t(_PyTime_t t, time_t *p_secs, int *us,\n
      \                       _PyTime_round_t round)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:641,1
    - Dst: error_time_t_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - _PyTime_t
    - struct timespec*
    assertStmts:
    - condition: (0 <= nsec && nsec < SEC_TO_NS)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 649
      start: 629
    functionDepth: 9
    functionLinenumber: 629
    functionLinenumberEnd: 649
    functionName: _PyTime_AsTimespec
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 7
    functionsReached:
    - assert
    - error_time_t_overflow
    linkageType: ''
    returnType: int
    signature: int _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:659,1
    - Dst: GetSystemTimeAsFileTime
      Src: /src/Python-3.8.3/Python/pytime.c:661,1
    - Dst: GetSystemTimeAdjustment
      Src: /src/Python-3.8.3/Python/pytime.c:674,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/pytime.c:677,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:692,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Python/pytime.c:695,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:698,1
    - Dst: pytime_fromtimespec
      Src: /src/Python-3.8.3/Python/pytime.c:702,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Python/pytime.c:711,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Python/pytime.c:722,1
    - Dst: gettimeofday
      Src: /src/Python-3.8.3/Python/pytime.c:724,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:728,1
    - Dst: pytime_fromtimeval
      Src: /src/Python-3.8.3/Python/pytime.c:732,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 3
    argNames:
    - tp
    - info
    - raise
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    - int
    assertStmts:
    - condition: (info == NULL || raise)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (info == NULL || raise)
      pos:
        line_end: 691
        line_start: 691
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 745
      start: 652
    functionDepth: 11
    functionLinenumber: 652
    functionLinenumberEnd: 745
    functionName: pygettimeofday
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - pytime_fromtimespec
    - gettimeofday
    - GetSystemTimeAsFileTime
    - PyErr_SetFromErrno
    - clock_getres
    - GetSystemTimeAdjustment
    - assert
    - PyErr_SetFromWindowsErr
    - pytime_fromtimeval
    linkageType: ''
    returnType: int
    signature: int pygettimeofday(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pygettimeofday
      Src: /src/Python-3.8.3/Python/pytime.c:751,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pytime.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 12
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: _PyTime_GetSystemClock
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 5
    functionsReached:
    - Py_UNREACHABLE
    - pygettimeofday
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_GetSystemClock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pygettimeofday
      Src: /src/Python-3.8.3/Python/pytime.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 758
    functionDepth: 12
    functionLinenumber: 758
    functionLinenumberEnd: 762
    functionName: _PyTime_GetSystemClockWithInfo
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pygettimeofday
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetSystemClockWithInfo(_PyTime_t *t, _Py_clock_info_t *info)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:771,1
    - Dst: GetTickCount64
      Src: /src/Python-3.8.3/Python/pytime.c:773,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:774,1
    - Dst: _PyTime_check_mul_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:777,1
    - Dst: _PyTime_overflow
      Src: /src/Python-3.8.3/Python/pytime.c:779,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pytime.c:783,1
    - Dst: GetSystemTimeAdjustment
      Src: /src/Python-3.8.3/Python/pytime.c:792,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/pytime.c:795,1
    - Dst: mach_timebase_info
      Src: /src/Python-3.8.3/Python/pytime.c:810,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:814,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:823,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:824,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:837,1
    - Dst: mach_absolute_time
      Src: /src/Python-3.8.3/Python/pytime.c:842,1
    - Dst: mach_absolute_time
      Src: /src/Python-3.8.3/Python/pytime.c:852,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Python/pytime.c:856,1
    - Dst: gethrtime
      Src: /src/Python-3.8.3/Python/pytime.c:863,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:866,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pytime.c:890,1
    - Dst: clock_gettime
      Src: /src/Python-3.8.3/Python/pytime.c:892,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:894,1
    - Dst: clock_getres
      Src: /src/Python-3.8.3/Python/pytime.c:905,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:906,1
    - Dst: pytime_fromtimespec
      Src: /src/Python-3.8.3/Python/pytime.c:911,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 3
    argNames:
    - tp
    - info
    - raise
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    - int
    assertStmts:
    - condition: (info == NULL || raise)
      pos:
        line_end: 770
        line_start: 770
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (sizeof(timebase.denom) < sizeof(_PyTime_t))
      pos:
        line_end: 823
        line_start: 823
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (info == NULL || raise)
      pos:
        line_end: 889
        line_start: 889
        source_file: /src/Python-3.8.3/Python/pytime.c
    - condition: (sizeof(timebase.numer) < sizeof(_PyTime_t))
      pos:
        line_end: 822
        line_start: 822
        source_file: /src/Python-3.8.3/Python/pytime.c
    constantsTouched: []
    func_position:
      end: 916
      start: 764
    functionDepth: 11
    functionLinenumber: 764
    functionLinenumberEnd: 916
    functionName: pymonotonic
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_MulDiv
    - clock_gettime
    - Py_BUILD_ASSERT
    - mach_absolute_time
    - gethrtime
    - GetTickCount64
    - pytime_fromtimespec
    - _PyTime_check_mul_overflow
    - PyErr_SetFromErrno
    - clock_getres
    - Py_UNREACHABLE
    - GetSystemTimeAdjustment
    - mach_timebase_info
    - PyErr_SetString
    - assert
    - _PyTime_overflow
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int pymonotonic(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pymonotonic
      Src: /src/Python-3.8.3/Python/pytime.c:922,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pytime.c:925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 918
    functionDepth: 12
    functionLinenumber: 918
    functionLinenumberEnd: 928
    functionName: _PyTime_GetMonotonicClock
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 21
    functionsReached:
    - Py_UNREACHABLE
    - pymonotonic
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_GetMonotonicClock(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pymonotonic
      Src: /src/Python-3.8.3/Python/pytime.c:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 930
    functionDepth: 12
    functionLinenumber: 930
    functionLinenumberEnd: 934
    functionName: _PyTime_GetMonotonicClockWithInfo
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 2
    functionsReached:
    - pymonotonic
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetMonotonicClockWithInfo(_PyTime_t *tp, _Py_clock_info_t
      *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceFrequency
      Src: /src/Python-3.8.3/Python/pytime.c:949,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/pytime.c:950,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:957,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:976,1
    - Dst: QueryPerformanceCounter
      Src: /src/Python-3.8.3/Python/pytime.c:981,1
    - Dst: QueryPerformanceCounter
      Src: /src/Python-3.8.3/Python/pytime.c:992,1
    - Dst: Py_BUILD_ASSERT
      Src: /src/Python-3.8.3/Python/pytime.c:1001,1
    - Dst: _PyTime_MulDiv
      Src: /src/Python-3.8.3/Python/pytime.c:1004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - tp
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 938
    functionDepth: 11
    functionLinenumber: 938
    functionLinenumberEnd: 1006
    functionName: win_perf_counter
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceFrequency
    - _PyTime_MulDiv
    - Py_BUILD_ASSERT
    - PyErr_SetString
    - PyErr_SetFromWindowsErr
    - QueryPerformanceCounter
    linkageType: ''
    returnType: int
    signature: int win_perf_counter(_PyTime_t *tp, _Py_clock_info_t *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: win_perf_counter
      Src: /src/Python-3.8.3/Python/pytime.c:1014,1
    - Dst: _PyTime_GetMonotonicClockWithInfo
      Src: /src/Python-3.8.3/Python/pytime.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - info
    argTypes:
    - _PyTime_t*
    - _Py_clock_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1010
    functionDepth: 13
    functionLinenumber: 1010
    functionLinenumberEnd: 1018
    functionName: _PyTime_GetPerfCounterWithInfo
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 3
    functionsReached:
    - _PyTime_GetMonotonicClockWithInfo
    - win_perf_counter
    linkageType: ''
    returnType: int
    signature: int _PyTime_GetPerfCounterWithInfo(_PyTime_t *t, _Py_clock_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetPerfCounterWithInfo
      Src: /src/Python-3.8.3/Python/pytime.c:1025,1
    - Dst: Py_UNREACHABLE
      Src: /src/Python-3.8.3/Python/pytime.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1021
    functionDepth: 14
    functionLinenumber: 1021
    functionLinenumberEnd: 1029
    functionName: _PyTime_GetPerfCounter
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 4
    functionsReached:
    - Py_UNREACHABLE
    - _PyTime_GetPerfCounterWithInfo
    linkageType: ''
    returnType: _PyTime_t
    signature: _PyTime_t _PyTime_GetPerfCounter(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyTime_GetSystemClockWithInfo
      Src: /src/Python-3.8.3/Python/pytime.c:1039,1
    - Dst: _PyTime_GetMonotonicClockWithInfo
      Src: /src/Python-3.8.3/Python/pytime.c:1042,1
    - Dst: _PyTime_GetPerfCounterWithInfo
      Src: /src/Python-3.8.3/Python/pytime.c:1045,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1032
    functionDepth: 14
    functionLinenumber: 1032
    functionLinenumberEnd: 1049
    functionName: _PyTime_Init
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 0
    functionsReached:
    - _PyTime_GetSystemClockWithInfo
    - _PyTime_GetMonotonicClockWithInfo
    - _PyTime_GetPerfCounterWithInfo
    linkageType: ''
    returnType: int
    signature: int _PyTime_Init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: localtime_s
      Src: /src/Python-3.8.3/Python/pytime.c:1057,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:1060,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/pytime.c:1071,1
    - Dst: localtime_r
      Src: /src/Python-3.8.3/Python/pytime.c:1078,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:1082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1051
    functionDepth: 10
    functionLinenumber: 1051
    functionLinenumberEnd: 1087
    functionName: _PyTime_localtime
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 9
    functionsReached:
    - localtime_s
    - PyErr_SetFromErrno
    - PyErr_SetString
    - localtime_r
    linkageType: ''
    returnType: int
    signature: int _PyTime_localtime(time_t t, struct tm *tm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/Python-3.8.3/Python/pytime.c:1095,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:1098,1
    - Dst: gmtime_r
      Src: /src/Python-3.8.3/Python/pytime.c:1103,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/pytime.c:1109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1089
    functionDepth: 10
    functionLinenumber: 1089
    functionLinenumberEnd: 1114
    functionName: _PyTime_gmtime
    functionSourceFile: /src/Python-3.8.3/Python/pytime.c
    functionUses: 3
    functionsReached:
    - gmtime_s
    - gmtime_r
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int _PyTime_gmtime(time_t t, struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: PyWindowsConsoleIO_Check
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWindowsConsoleIO_Check(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:85,1
    - Dst: _PyRuntimeState_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: _PyRuntime_Initialize
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 4
    functionsReached:
    - _PyStatus_OK
    - _PyRuntimeState_Init
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyRuntime_Initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntimeState_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 4
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: _PyRuntime_Finalize
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyRuntimeState_Fini
    linkageType: ''
    returnType: void
    signature: void _PyRuntime_Finalize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: _Py_IsFinalizing
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_IsFinalizing(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: PyModule_GetWarningsModule
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyModule_GetWarningsModule(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: _Py_IsCoreInitialized
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _Py_IsCoreInitialized(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: Py_IsInitialized
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_IsInitialized(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportFrozenModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:157,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:158,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/pylifecycle.c:161,1
    - Dst: PyImport_AddModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:163,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:165,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:168,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:170,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:172,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:173,1
    - Dst: PyInit__imp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:176,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:178,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/pylifecycle.c:181,1
    - Dst: _PyImport_SetModuleString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:183,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:184,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Python/pylifecycle.c:188,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pylifecycle.c:190,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:191,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:193,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:194,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - interp
    - sysmod
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 148
    functionDepth: 11
    functionLinenumber: 148
    functionLinenumberEnd: 197
    functionName: init_importlib
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyImport_AddModule
    - PyErr_Print
    - Py_DECREF
    - Py_INCREF
    - PyObject_CallMethod
    - _PyStatus_ERR
    - PyImport_ImportFrozenModule
    - PySys_FormatStderr
    - PyInit__imp
    - _PyStatus_OK
    - PyDict_GetItemString
    - _PyImport_SetModuleString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_importlib(PyInterpreterState *interp, PyObject *sysmod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Python/pylifecycle.c:203,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pylifecycle.c:206,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:207,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:209,1
    - Dst: _PyImportZip_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 11
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: init_importlib_external
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyErr_Print
    - Py_DECREF
    - _PyStatus_ERR
    - _PyImportZip_Init
    - PyObject_CallMethod
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_importlib_external(PyInterpreterState *interp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:238,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:251,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - warn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: _Py_LegacyLocaleDetected
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - strcmp
    - getenv
    - setlocale
    linkageType: ''
    returnType: int
    signature: int _Py_LegacyLocaleDetected(int warn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _Py_LegacyLocaleDetected
      Src: /src/Python-3.8.3/Python/pylifecycle.c:269,1
    - Dst: PySys_FormatStderr
      Src: /src/Python-3.8.3/Python/pylifecycle.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 9
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: emit_stderr_warning_for_legacy_locale
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_LegacyLocaleDetected
    - PySys_FormatStderr
    linkageType: ''
    returnType: void
    signature: void emit_stderr_warning_for_legacy_locale(_PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctype_loc
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 296
    functionName: _Py_IsLocaleCoercionTarget
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _Py_IsLocaleCoercionTarget(const char *ctype_loc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:310,1
    - Dst: setenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:313,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:314,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:319,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - warn
    - target
    argTypes:
    - int
    - _LocaleCoercionTarget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 325
    functionName: _coerce_default_locale_settings
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _Py_SetLocaleFromEnv
    - setenv
    linkageType: ''
    returnType: int
    signature: int _coerce_default_locale_settings(int warn, const _LocaleCoercionTarget
      *target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyMem_RawStrdup
      Src: /src/Python-3.8.3/Python/pylifecycle.c:335,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:335,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:340,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:345,1
    - Dst: nl_langinfo
      Src: /src/Python-3.8.3/Python/pylifecycle.c:350,1
    - Dst: _Py_SetLocaleFromEnv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:354,1
    - Dst: _coerce_default_locale_settings
      Src: /src/Python-3.8.3/Python/pylifecycle.c:359,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:366,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Python/pylifecycle.c:369,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - warn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 372
    functionName: _Py_CoerceLegacyLocale
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - _coerce_default_locale_settings
    - setlocale
    - nl_langinfo
    - getenv
    - PyMem_RawFree
    - _PyMem_RawStrdup
    - _Py_SetLocaleFromEnv
    linkageType: ''
    returnType: int
    signature: int _Py_CoerceLegacyLocale(int warn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:400,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:402,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:403,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:404,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:406,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:417,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:418,1
    - Dst: setenv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:422,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:423,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:428,1
    - Dst: setlocale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:430,1
    - Dst: _Py_ResetForceASCII
      Src: /src/Python-3.8.3/Python/pylifecycle.c:432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - category
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 434
    functionName: _Py_SetLocaleFromEnv
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - setenv
    - setlocale
    - fprintf
    - getenv
    - _Py_ResetForceASCII
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      _Py_SetLocaleFromEnv(int category)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pylifecycle.c:455,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:457,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:462,1
    - Dst: _PyConfig_Write
      Src: /src/Python-3.8.3/Python/pylifecycle.c:466,1
    - Dst: _PyConfig_Copy
      Src: /src/Python-3.8.3/Python/pylifecycle.c:468,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:469,1
    - Dst: _PyConfig_WritePathConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:475,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:476,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - runtime
    - interp_p
    - config
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState**
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 449
    functionDepth: 5
    functionLinenumber: 449
    functionLinenumberEnd: 481
    functionName: pyinit_core_reconfigure
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyConfig_WritePathConfig
    - _PyThreadState_GET
    - _PyConfig_Copy
    - _PyConfig_Write
    - _PyStatus_ERR
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_core_reconfigure(_PyRuntimeState *runtime,\n                        PyInterpreterState
      **interp_p,\n                        const PyConfig *config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:489,1
    - Dst: _PyConfig_Write
      Src: /src/Python-3.8.3/Python/pylifecycle.c:492,1
    - Dst: _Py_HashRandomization_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:505,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:506,1
    - Dst: _PyInterpreterState_Enable
      Src: /src/Python-3.8.3/Python/pylifecycle.c:510,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:511,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - runtime
    - config
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 515
    functionName: pycore_init_runtime
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyInterpreterState_Enable
    - _PyConfig_Write
    - _PyStatus_ERR
    - _Py_HashRandomization_Init
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pycore_init_runtime(_PyRuntimeState *runtime,\n                    const
      PyConfig *config)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyInterpreterState_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:523,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:525,1
    - Dst: _PyConfig_Copy
      Src: /src/Python-3.8.3/Python/pylifecycle.c:529,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:530,1
    - Dst: PyThreadState_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:535,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:537,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pylifecycle.c:538,1
    - Dst: _PyEval_FiniThreads
      Src: /src/Python-3.8.3/Python/pylifecycle.c:545,1
    - Dst: _PyGILState_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:548,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Python/pylifecycle.c:551,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - runtime
    - config
    - interp_p
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    - PyInterpreterState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 518
    functionDepth: 5
    functionLinenumber: 518
    functionLinenumberEnd: 554
    functionName: pycore_create_interpreter
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyEval_InitThreads
    - PyThreadState_Swap
    - PyThreadState_New
    - _PyConfig_Copy
    - _PyStatus_ERR
    - _PyGILState_Init
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _PyEval_FiniThreads
    - PyInterpreterState_New
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pycore_create_interpreter(_PyRuntimeState *runtime,\n                          const
      PyConfig *config,\n                          PyInterpreterState **interp_p)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _PyTypes_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:560,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:561,1
    - Dst: _PyUnicode_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:565,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:566,1
    - Dst: _PyStructSequence_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:570,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:571,1
    - Dst: _PyLong_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:574,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:575,1
    - Dst: _PyExc_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:578,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:579,1
    - Dst: _PyFloat_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:583,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:584,1
    - Dst: _PyContext_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:587,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:588,1
    - Dst: _PyErr_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:591,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:592,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 557
    functionDepth: 13
    functionLinenumber: 557
    functionLinenumberEnd: 597
    functionName: pycore_init_types
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyUnicode_Init
    - _PyTypes_Init
    - _PyStructSequence_Init
    - _PyExc_Init
    - _PyStatus_ERR
    - _PyLong_Init
    - _PyErr_Init
    - _PyContext_Init
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - _PyFloat_Init
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_types(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyBuiltin_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:603,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:605,1
    - Dst: _PyImport_FixupBuiltin
      Src: /src/Python-3.8.3/Python/pylifecycle.c:607,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pylifecycle.c:609,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:611,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:613,1
    - Dst: _PyBuiltins_AddExceptions
      Src: /src/Python-3.8.3/Python/pylifecycle.c:615,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:616,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 600
    functionDepth: 14
    functionLinenumber: 600
    functionLinenumberEnd: 620
    functionName: pycore_init_builtins
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyModule_GetDict
    - _PyBuiltins_AddExceptions
    - _PyImport_FixupBuiltin
    - _PyStatus_ERR
    - _PyBuiltin_Init
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_builtins(PyInterpreterState *interp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyImport_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:628,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:629,1
    - Dst: _PyImportHooks_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:633,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:634,1
    - Dst: _PyWarnings_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:639,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:640,1
    - Dst: _PyConfig_WritePathConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:644,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:645,1
    - Dst: init_importlib
      Src: /src/Python-3.8.3/Python/pylifecycle.c:652,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:653,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:657,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - interp
    - sysmod
    argTypes:
    - PyInterpreterState*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 623
    functionDepth: 12
    functionLinenumber: 623
    functionLinenumberEnd: 658
    functionName: pycore_init_import_warnings
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyImportHooks_Init
    - _PyConfig_WritePathConfig
    - _PyWarnings_Init
    - init_importlib
    - _PyStatus_ERR
    - _PyStatus_EXCEPTION
    - _PyImport_Init
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pycore_init_import_warnings(PyInterpreterState *interp, PyObject
      *sysmod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyConfig_Write
      Src: /src/Python-3.8.3/Python/pylifecycle.c:668,1
    - Dst: pycore_init_runtime
      Src: /src/Python-3.8.3/Python/pylifecycle.c:670,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:671,1
    - Dst: pycore_create_interpreter
      Src: /src/Python-3.8.3/Python/pylifecycle.c:675,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:676,1
    - Dst: pycore_init_types
      Src: /src/Python-3.8.3/Python/pylifecycle.c:682,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:683,1
    - Dst: _PySys_Create
      Src: /src/Python-3.8.3/Python/pylifecycle.c:688,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:689,1
    - Dst: pycore_init_builtins
      Src: /src/Python-3.8.3/Python/pylifecycle.c:693,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:694,1
    - Dst: pycore_init_import_warnings
      Src: /src/Python-3.8.3/Python/pylifecycle.c:698,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:699,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:705,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - runtime
    - interp_p
    - config
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState**
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 661
    functionDepth: 15
    functionLinenumber: 661
    functionLinenumberEnd: 706
    functionName: pyinit_config
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - pycore_init_builtins
    - pycore_init_runtime
    - pycore_init_import_warnings
    - _PyConfig_Write
    - _PySys_Create
    - pycore_create_interpreter
    - _PyStatus_EXCEPTION
    - pycore_init_types
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_config(_PyRuntimeState *runtime,\n              PyInterpreterState
      **interp_p,\n              const PyConfig *config)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:715,1
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:718,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:719,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:726,1
    - Dst: _PyPreConfig_InitFromPreConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:735,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:736,1
    - Dst: _PyPreConfig_Read
      Src: /src/Python-3.8.3/Python/pylifecycle.c:740,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:741,1
    - Dst: _PyPreConfig_Write
      Src: /src/Python-3.8.3/Python/pylifecycle.c:745,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:746,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - src_config
    - args
    argTypes:
    - PyPreConfig*
    - _PyArgv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 753
    functionName: _Py_PreInitializeFromPyArgv
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _PyStatus_ERR
    - _PyPreConfig_InitFromPreConfig
    - _PyPreConfig_Read
    - _PyRuntime_Initialize
    - _PyStatus_EXCEPTION
    - _PyPreConfig_Write
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_PreInitializeFromPyArgv(const PyPreConfig *src_config,
      const _PyArgv *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src_config
    - argc
    - argv
    argTypes:
    - PyPreConfig*
    - Py_ssize_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 6
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: Py_PreInitializeFromBytesArgs
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus Py_PreInitializeFromBytesArgs(const PyPreConfig *src_config,
      Py_ssize_t argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - src_config
    - argc
    - argv
    argTypes:
    - PyPreConfig*
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 764
    functionDepth: 6
    functionLinenumber: 764
    functionLinenumberEnd: 769
    functionName: Py_PreInitializeFromArgs
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus Py_PreInitializeFromArgs(const PyPreConfig *src_config, Py_ssize_t
      argc, wchar_t **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src_config
    argTypes:
    - PyPreConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 6
    functionLinenumber: 772
    functionLinenumberEnd: 776
    functionName: Py_PreInitialize
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus Py_PreInitialize(const PyPreConfig *src_config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pylifecycle.c:783,1
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:785,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:786,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:793,1
    - Dst: _PyPreConfig_InitFromConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:798,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:801,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:808,1
    - Dst: _Py_PreInitializeFromPyArgv
      Src: /src/Python-3.8.3/Python/pylifecycle.c:811,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - config
    - args
    argTypes:
    - PyConfig*
    - _PyArgv*
    assertStmts:
    - condition: (config != NULL)
      pos:
        line_end: 782
        line_start: 782
        source_file: /src/Python-3.8.3/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 813
      start: 779
    functionDepth: 7
    functionLinenumber: 779
    functionLinenumberEnd: 813
    functionName: _Py_PreInitializeFromConfig
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 5
    functionsReached:
    - _Py_PreInitializeFromPyArgv
    - Py_PreInitialize
    - _PyPreConfig_InitFromConfig
    - _PyRuntime_Initialize
    - _PyStatus_EXCEPTION
    - assert
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus _Py_PreInitializeFromConfig(const PyConfig *config,\n                            const
      _PyArgv *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _Py_PreInitializeFromConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:840,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:841,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:846,1
    - Dst: _PyConfig_Copy
      Src: /src/Python-3.8.3/Python/pylifecycle.c:848,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:849,1
    - Dst: PyConfig_Read
      Src: /src/Python-3.8.3/Python/pylifecycle.c:853,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:854,1
    - Dst: pyinit_config
      Src: /src/Python-3.8.3/Python/pylifecycle.c:859,1
    - Dst: pyinit_core_reconfigure
      Src: /src/Python-3.8.3/Python/pylifecycle.c:862,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:864,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - runtime
    - src_config
    - interp_p
    argTypes:
    - _PyRuntimeState*
    - PyConfig*
    - PyInterpreterState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 833
    functionDepth: 16
    functionLinenumber: 833
    functionLinenumberEnd: 871
    functionName: pyinit_core
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyConfig_Clear
    - _PyConfig_Copy
    - pyinit_config
    - PyConfig_Read
    - _PyStatus_EXCEPTION
    - pyinit_core_reconfigure
    - _PyConfig_InitCompatConfig
    - _Py_PreInitializeFromConfig
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus pyinit_core(_PyRuntimeState *runtime,\n            const
      PyConfig *src_config,\n            PyInterpreterState **interp_p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyWideStringList_AsList
      Src: /src/Python-3.8.3/Python/pylifecycle.c:882,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/Python/pylifecycle.c:884,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:887,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:888,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:890,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 877
    functionDepth: 6
    functionLinenumber: 877
    functionLinenumberEnd: 893
    functionName: _Py_ReconfigureMainInterpreter
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - Py_DECREF
    - _PyStatus_ERR
    - _PyWideStringList_AsList
    - PyDict_SetItemString
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_ReconfigureMainInterpreter(PyInterpreterState *interp)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:910,1
    - Dst: _Py_ReconfigureMainInterpreter
      Src: /src/Python-3.8.3/Python/pylifecycle.c:917,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:927,1
    - Dst: _PyTime_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:930,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:931,1
    - Dst: _PySys_InitMain
      Src: /src/Python-3.8.3/Python/pylifecycle.c:934,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:935,1
    - Dst: init_importlib_external
      Src: /src/Python-3.8.3/Python/pylifecycle.c:938,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:939,1
    - Dst: _PyFaulthandler_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:944,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:945,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/pylifecycle.c:949,1
    - Dst: _PyUnicode_InitEncodings
      Src: /src/Python-3.8.3/Python/pylifecycle.c:950,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:951,1
    - Dst: init_signals
      Src: /src/Python-3.8.3/Python/pylifecycle.c:956,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:957,1
    - Dst: _PyTraceMalloc_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:962,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:963,1
    - Dst: add_main_module
      Src: /src/Python-3.8.3/Python/pylifecycle.c:966,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:967,1
    - Dst: init_sys_streams
      Src: /src/Python-3.8.3/Python/pylifecycle.c:971,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:972,1
    - Dst: PySys_GetObject
      Src: /src/Python-3.8.3/Python/pylifecycle.c:977,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Python/pylifecycle.c:978,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:980,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:982,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Python/pylifecycle.c:983,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:985,1
    - Dst: init_import_size
      Src: /src/Python-3.8.3/Python/pylifecycle.c:991,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:992,1
    - Dst: emit_stderr_warning_for_legacy_locale
      Src: /src/Python-3.8.3/Python/pylifecycle.c:998,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1001,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 2
    argNames:
    - runtime
    - interp
    argTypes:
    - _PyRuntimeState*
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 906
    functionDepth: 15
    functionLinenumber: 906
    functionLinenumberEnd: 1002
    functionName: pyinit_main
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyTime_Init
    - _PyUnicode_InitEncodings
    - _PyRuntimeState_GetThreadState
    - _PyStatus_ERR
    - init_importlib_external
    - PyList_Size
    - PySys_GetObject
    - init_signals
    - init_import_size
    - _PyTraceMalloc_Init
    - init_sys_streams
    - _Py_ReconfigureMainInterpreter
    - add_main_module
    - Py_XDECREF
    - PyErr_Print
    - fprintf
    - PyImport_ImportModule
    - _PyFaulthandler_Init
    - _PyStatus_EXCEPTION
    - emit_stderr_warning_for_legacy_locale
    - _PySys_InitMain
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus pyinit_main(_PyRuntimeState *runtime, PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1008,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1009,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1013,1
    - Dst: pyinit_main
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1005
    functionDepth: 16
    functionLinenumber: 1005
    functionLinenumberEnd: 1016
    functionName: _Py_InitializeMain
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - pyinit_main
    - _PyRuntime_Initialize
    - _PyRuntimeState_GetThreadState
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_InitializeMain(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1023,1
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1028,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1029,1
    - Dst: pyinit_core
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1035,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1036,1
    - Dst: pyinit_main
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1042,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1043,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1048,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1019
    functionDepth: 17
    functionLinenumber: 1019
    functionLinenumberEnd: 1049
    functionName: Py_InitializeFromConfig
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - pyinit_main
    - _PyStatus_ERR
    - _PyRuntime_Initialize
    - _PyStatus_EXCEPTION
    - _PyStatus_OK
    - pyinit_core
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus Py_InitializeFromConfig(const PyConfig *config)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1057,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1058,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1059,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1069,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1073,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1074,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - install_sigs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1052
    functionDepth: 18
    functionLinenumber: 1052
    functionLinenumberEnd: 1077
    functionName: Py_InitializeEx
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - Py_ExitStatusException
    - Py_InitializeFromConfig
    - _PyRuntime_Initialize
    - _PyStatus_EXCEPTION
    - _PyConfig_InitCompatConfig
    linkageType: ''
    returnType: void
    signature: void Py_InitializeEx(int install_sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_InitializeEx
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 19
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: Py_Initialize
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - Py_InitializeEx
    linkageType: ''
    returnType: void
    signature: void Py_Initialize(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1096,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1098,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1101,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1102,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fobj
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1106
    functionName: file_is_closed
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyObject_IsTrue
    - PyErr_Clear
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: int
    signature: int file_is_closed(PyObject *fobj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1111,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1112,1
    - Dst: file_is_closed
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1116,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1117,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1119,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1123,1
    - Dst: file_is_closed
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1126,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1127,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1129,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1133,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1108
    functionDepth: 20
    functionLinenumber: 1108
    functionLinenumberEnd: 1137
    functionName: flush_std_files
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PySys_GetObjectId
    - file_is_closed
    - _PyObject_CallMethodId
    - PyErr_WriteUnraisable
    - PyErr_Clear
    linkageType: ''
    returnType: int
    signature: int flush_std_files(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: wait_for_thread_shutdown
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1164,1
    - Dst: _Py_FinishPendingCalls
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1167,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1170,1
    - Dst: call_py_exitfuncs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1183,1
    - Dst: flush_std_files
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1204,1
    - Dst: PyOS_FiniInterrupts
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1209,1
    - Dst: _PyGC_CollectIfEnabled
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1223,1
    - Dst: _PyGC_CollectIfEnabled
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1228,1
    - Dst: _PySys_ClearAuditHooks
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1237,1
    - Dst: PyImport_Cleanup
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1240,1
    - Dst: _PyEval_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1243,1
    - Dst: flush_std_files
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1246,1
    - Dst: _PyGC_CollectIfEnabled
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1266,1
    - Dst: _PyTraceMalloc_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1271,1
    - Dst: _PyImport_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1274,1
    - Dst: _PyType_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1277,1
    - Dst: _PyFaulthandler_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1280,1
    - Dst: _Py_dump_counts
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1284,1
    - Dst: _PyHash_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1287,1
    - Dst: _PyDebug_PrintTotalRefs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1291,1
    - Dst: _Py_PrintReferences
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1302,1
    - Dst: PyInterpreterState_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1307,1
    - Dst: _PyExc_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1315,1
    - Dst: PyMethod_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1318,1
    - Dst: PyFrame_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1319,1
    - Dst: PyCFunction_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1320,1
    - Dst: PyTuple_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1321,1
    - Dst: PyList_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1322,1
    - Dst: PySet_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1323,1
    - Dst: PyBytes_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1324,1
    - Dst: PyLong_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1325,1
    - Dst: PyFloat_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1326,1
    - Dst: PyDict_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1327,1
    - Dst: PySlice_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1328,1
    - Dst: _PyGC_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1329,1
    - Dst: _PyWarnings_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1330,1
    - Dst: _Py_HashRandomization_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1331,1
    - Dst: _PyArg_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1332,1
    - Dst: PyAsyncGen_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1333,1
    - Dst: _PyContext_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1334,1
    - Dst: _PyUnicode_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1337,1
    - Dst: _Py_ClearFileSystemEncoding
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1339,1
    - Dst: PyGrammar_RemoveAccelerators
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1347,1
    - Dst: _PyGILState_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1350,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1353,1
    - Dst: PyInterpreterState_Delete
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1355,1
    - Dst: _Py_PrintReferenceAddresses
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1363,1
    - Dst: _PyObject_DebugMallocStats
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1368,1
    - Dst: call_ll_exitfuncs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1372,1
    - Dst: _PyRuntime_Finalize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1374,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1153
    functionDepth: 21
    functionLinenumber: 1153
    functionLinenumberEnd: 1376
    functionName: Py_FinalizeEx
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 3
    functionsReached:
    - wait_for_thread_shutdown
    - _Py_FinishPendingCalls
    - PyOS_FiniInterrupts
    - PyImport_Cleanup
    - _PyRuntimeState_GetThreadState
    - _PyTraceMalloc_Fini
    - _Py_PrintReferenceAddresses
    - _Py_HashRandomization_Fini
    - flush_std_files
    - _PySys_ClearAuditHooks
    - _PyHash_Fini
    - _PyType_Fini
    - PyFrame_Fini
    - PyLong_Fini
    - _PyGC_CollectIfEnabled
    - PyThreadState_Swap
    - PyInterpreterState_Clear
    - _PyImport_Fini
    - _PyEval_Fini
    - _PyContext_Fini
    - _PyArg_Fini
    - PyDict_Fini
    - PyInterpreterState_Delete
    - PySet_Fini
    - _PyGILState_Fini
    - _Py_dump_counts
    - PyTuple_Fini
    - _PyRuntime_Finalize
    - PyBytes_Fini
    - _PyUnicode_Fini
    - call_py_exitfuncs
    - PyCFunction_Fini
    - _PyObject_DebugMallocStats
    - _Py_ClearFileSystemEncoding
    - call_ll_exitfuncs
    - PySlice_Fini
    - PyMethod_Fini
    - PyFloat_Fini
    - _PyExc_Fini
    - PyList_Fini
    - _Py_PrintReferences
    - _PyGC_Fini
    - PyAsyncGen_Fini
    - PyGrammar_RemoveAccelerators
    - _PyDebug_PrintTotalRefs
    - _PyWarnings_Fini
    - _PyFaulthandler_Fini
    linkageType: ''
    returnType: int
    signature: int Py_FinalizeEx(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1378
    functionDepth: 22
    functionLinenumber: 1378
    functionLinenumberEnd: 1382
    functionName: Py_Finalize
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - Py_FinalizeEx
    linkageType: ''
    returnType: void
    signature: void Py_Finalize(void)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: _PyRuntime_Initialize
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1402,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1403,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1409,1
    - Dst: PyInterpreterState_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1416,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1419,1
    - Dst: PyThreadState_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1422,1
    - Dst: PyInterpreterState_Delete
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1424,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1426,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1429,1
    - Dst: PyInterpreterState_Main
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1437,1
    - Dst: _PyConfig_Copy
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1441,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1442,1
    - Dst: _PyExc_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1447,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1448,1
    - Dst: _PyErr_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1452,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1453,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1459,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1461,1
    - Dst: _PyImport_FindBuiltin
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1465,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1467,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1471,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1472,1
    - Dst: _PySys_InitMain
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1473,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1474,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1477,1
    - Dst: _PyImport_FindBuiltin
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1481,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1483,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1486,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1488,1
    - Dst: _PyBuiltins_AddExceptions
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1493,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1494,1
    - Dst: _PySys_SetPreliminaryStderr
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1498,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1499,1
    - Dst: _PyImportHooks_Init
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1503,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1504,1
    - Dst: init_importlib
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1508,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1509,1
    - Dst: init_importlib_external
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1513,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1514,1
    - Dst: _PyUnicode_InitEncodings
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1518,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1519,1
    - Dst: init_sys_streams
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1523,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1524,1
    - Dst: add_main_module
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1528,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1529,1
    - Dst: init_import_size
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1534,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1535,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1541,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1546,1
    - Dst: PyErr_PrintEx
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1551,1
    - Dst: PyThreadState_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1552,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1553,1
    - Dst: PyThreadState_Delete
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1554,1
    - Dst: PyInterpreterState_Delete
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1555,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1558,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 122
    argCount: 1
    argNames:
    - tstate_p
    argTypes:
    - PyThreadState**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1397
    functionDepth: 12
    functionLinenumber: 1397
    functionLinenumberEnd: 1559
    functionName: new_interpreter
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyModule_GetDict
    - _PyImport_FindBuiltin
    - _PyUnicode_InitEncodings
    - _PySys_SetPreliminaryStderr
    - _PyStatus_ERR
    - init_importlib_external
    - PyDict_SetItemString
    - init_import_size
    - PyThreadState_Swap
    - PyErr_Occurred
    - Py_INCREF
    - init_sys_streams
    - PyThreadState_New
    - init_importlib
    - _PyRuntime_Initialize
    - add_main_module
    - PyThreadState_Delete
    - PyInterpreterState_Delete
    - PyThreadState_Clear
    - PyInterpreterState_New
    - _PyConfig_Copy
    - _PyExc_Init
    - PyInterpreterState_Main
    - _PyErr_Init
    - _PyImportHooks_Init
    - _PyBuiltins_AddExceptions
    - PyDict_New
    - PyErr_PrintEx
    - _PyStatus_EXCEPTION
    - _PySys_InitMain
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus new_interpreter(PyThreadState **tstate_p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: new_interpreter
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1565,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1566,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1561
    functionDepth: 13
    functionLinenumber: 1561
    functionLinenumberEnd: 1571
    functionName: Py_NewInterpreter
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - new_interpreter
    - Py_ExitStatusException
    - _PyStatus_EXCEPTION
    linkageType: ''
    returnType: PyThreadState
    signature: 'PyThreadState *

      Py_NewInterpreter(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyThreadState_GET
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1590,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1591,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1593,1
    - Dst: wait_for_thread_shutdown
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1597,1
    - Dst: call_py_exitfuncs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1599,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1602,1
    - Dst: PyImport_Cleanup
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1604,1
    - Dst: PyInterpreterState_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1605,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1606,1
    - Dst: PyInterpreterState_Delete
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1585
    functionDepth: 9
    functionLinenumber: 1585
    functionLinenumberEnd: 1608
    functionName: Py_EndInterpreter
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 4
    functionsReached:
    - PyThreadState_Swap
    - wait_for_thread_shutdown
    - PyInterpreterState_Clear
    - _PyThreadState_GET
    - PyImport_Cleanup
    - Py_FatalError
    - call_py_exitfuncs
    - PyInterpreterState_Delete
    linkageType: ''
    returnType: void
    signature: void Py_EndInterpreter(PyThreadState *tstate)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_AddModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1616,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1618,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1620,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1621,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1623,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1624,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1626,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1628,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1629,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1631,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1633,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1634,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1636,1
    - Dst: PyDict_GetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1645,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1647,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1650,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1652,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1653,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1655,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1657,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1612
    functionDepth: 6
    functionLinenumber: 1612
    functionLinenumberEnd: 1658
    functionName: add_main_module
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - PyImport_ImportModule
    - PyImport_AddModule
    - Py_DECREF
    - PyObject_GetAttrString
    - PyModule_GetDict
    - PyDict_New
    - _PyStatus_ERR
    - PyDict_SetItemString
    - _PyStatus_OK
    - PyDict_GetItemString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus add_main_module(PyInterpreterState *interp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1666,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1668,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1670,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1662
    functionDepth: 3
    functionLinenumber: 1662
    functionLinenumberEnd: 1672
    functionName: init_import_size
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - PyImport_ImportModule
    - _PyStatus_OK
    - Py_DECREF
    - _PyStatus_ERR
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_import_size(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dup
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1697,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1699,1
    - Dst: fstat
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1708
    functionName: is_valid_fd
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fstat
    - close
    - dup
    linkageType: ''
    returnType: int
    signature: int is_valid_fd(int fd)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1721,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1722,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1723,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1724,1
    - Dst: is_valid_fd
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1727,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1743,1
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1751,1
    - Dst: _PyObject_GetAttrId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1752,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1758,1
    - Dst: PyWindowsConsoleIO_Check
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1763,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1767,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1768,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1770,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1773,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1774,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1786,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1787,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1800,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1802,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1806,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1808,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1809,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1813,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1816,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1817,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1818,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1826,1
    - Dst: _PyObject_SetAttrId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1827,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1829,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1833,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1834,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1835,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1836,1
    - Dst: PyErr_ExceptionMatches
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1838,1
    - Dst: is_valid_fd
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1838,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1842,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 7
    argNames:
    - config
    - io
    - fd
    - write_mode
    - name
    - encoding
    - errors
    argTypes:
    - PyConfig*
    - PyObject*
    - int
    - int
    - char*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1711
    functionDepth: 5
    functionLinenumber: 1711
    functionLinenumberEnd: 1846
    functionName: create_stdio
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _PyObject_SetAttrId
    - PyWindowsConsoleIO_Check
    - PyUnicode_FromString
    - Py_CLEAR
    - Py_DECREF
    - Py_INCREF
    - _PyObject_GetAttrId
    - is_valid_fd
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyUnicode_FromWideChar
    - PyErr_ExceptionMatches
    - PyObject_IsTrue
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\ncreate_stdio(const PyConfig *config, PyObject* io,\n    int
      fd, int write_mode, const char* name,\n    const wchar_t* encoding, const wchar_t*
      errors)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1858,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1868,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1868,1
    - Dst: S_ISDIR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1869,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1870,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1876,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1879,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1881,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1884,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1886,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1890,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1893,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1898,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1899,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1902,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1905,1
    - Dst: create_stdio
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1910,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1915,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1916,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1917,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1920,1
    - Dst: create_stdio
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1921,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1926,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1927,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1928,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1932,1
    - Dst: create_stdio
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1933,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1941,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1943,1
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1945,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1946,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1948,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1950,1
    - Dst: PySys_SetObject
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1952,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1953,1
    - Dst: _PySys_SetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1956,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1957,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1960,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1966,1
    - Dst: _Py_ClearStandardStreamEncoding
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1969,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1971,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1972,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 1
    argNames:
    - interp
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1849
    functionDepth: 7
    functionLinenumber: 1849
    functionLinenumberEnd: 1974
    functionName: init_sys_streams
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - PyImport_ImportModule
    - S_ISDIR
    - Py_DECREF
    - PyObject_GetAttrString
    - PyUnicode_AsUTF8
    - _PySys_SetObjectId
    - Py_XDECREF
    - create_stdio
    - _PyStatus_ERR
    - _PyCodec_Lookup
    - _Py_fstat_noraise
    - PySys_SetObject
    - _Py_ClearStandardStreamEncoding
    - PyErr_Clear
    - _PyStatus_OK
    - fileno
    - PyObject_SetAttrString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_sys_streams(PyInterpreterState *interp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1981,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1982,1
    - Dst: _Py_DumpTracebackThreads
      Src: /src/Python-3.8.3/Python/pylifecycle.c:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - interp
    - tstate
    argTypes:
    - int
    - PyInterpreterState*
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1977
    functionDepth: 6
    functionLinenumber: 1977
    functionLinenumberEnd: 1986
    functionName: _Py_FatalError_DumpTracebacks
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fputc
    - _Py_DumpTracebackThreads
    - fflush
    linkageType: ''
    returnType: void
    signature: "void _Py_FatalError_DumpTracebacks(int fd, PyInterpreterState *interp,\n
      \                             PyThreadState *tstate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Fetch
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2003,1
    - Dst: _PySys_GetObjectId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2009,1
    - Dst: PyErr_NormalizeException
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2016,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2019,1
    - Dst: PyException_SetTraceback
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2021,1
    - Dst: PyErr_Display
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2028,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2029,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2030,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2031,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2034,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2036,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2038,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1996
    functionDepth: 20
    functionLinenumber: 1996
    functionLinenumberEnd: 2041
    functionName: _Py_FatalError_PrintExc
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - PyErr_Display
    - _PySys_GetObjectId
    - Py_DECREF
    - Py_INCREF
    - PyErr_Fetch
    - _PyObject_CallMethodId
    - PyErr_NormalizeException
    - PyErr_Clear
    - PyException_SetTraceback
    - Py_XDECREF
    linkageType: ''
    returnType: int
    signature: int _Py_FatalError_PrintExc(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2051,1
    - Dst: OutputDebugStringW
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2054,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2056,1
    - Dst: OutputDebugStringW
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2071,1
    - Dst: OutputDebugStringW
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2077
    functionName: fatal_output_debug
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - strlen
    - OutputDebugStringW
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void fatal_output_debug(const char *msg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2084,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2086,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2089,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2092,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2095,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2098,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2101,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2103,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - stream
    - runtime
    argTypes:
    - FILE*
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2081
    functionDepth: 0
    functionLinenumber: 2081
    functionLinenumberEnd: 2105
    functionName: fatal_error_dump_runtime
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fflush
    - fprintf
    linkageType: ''
    returnType: void
    signature: void fatal_error_dump_runtime(FILE *stream, _PyRuntimeState *runtime)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2112,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2122,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2124,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2125,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2128,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2131,1
    - Dst: fputs
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2133,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2134,1
    - Dst: fatal_error_dump_runtime
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2137,1
    - Dst: _PyRuntimeState_GetThreadState
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2139,1
    - Dst: PyGILState_GetThisThreadState
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2153,1
    - Dst: _Py_FatalError_PrintExc
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2157,1
    - Dst: _Py_FatalError_DumpTracebacks
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2159,1
    - Dst: _Py_FatalError_DumpTracebacks
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2163,1
    - Dst: _PyFaulthandler_Fini
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2170,1
    - Dst: flush_std_files
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2175,1
    - Dst: fatal_output_debug
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2179,1
    - Dst: DebugBreak
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2185,1
    - Dst: abort
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2187,1
    - Dst: exit
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2190,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - prefix
    - msg
    - status
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2108
    functionDepth: 21
    functionLinenumber: 2108
    functionLinenumberEnd: 2192
    functionName: _Py_NO_RETURN::fatal_error
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - fflush
    - fatal_error_dump_runtime
    - _Py_FatalError_DumpTracebacks
    - _Py_FatalError_PrintExc
    - _PyRuntimeState_GetThreadState
    - PyGILState_GetThisThreadState
    - DebugBreak
    - abort
    - fprintf
    - flush_std_files
    - exit
    - fatal_output_debug
    - fileno
    - fputs
    - _PyFaulthandler_Fini
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      fatal_error(const char *prefix, const char *msg, int status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2194
    functionDepth: 22
    functionLinenumber: 2194
    functionLinenumberEnd: 2198
    functionName: _Py_NO_RETURN::Py_FatalError
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - _Py_NO_RETURN::fatal_error
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_FatalError(const char *msg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_IS_EXIT
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2203,1
    - Dst: exit
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2204,1
    - Dst: _PyStatus_IS_ERROR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2206,1
    - Dst: _Py_NO_RETURN::fatal_error
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2207,1
    - Dst: _Py_NO_RETURN::Py_FatalError
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - status
    argTypes:
    - PyStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2200
    functionDepth: 22
    functionLinenumber: 2200
    functionLinenumberEnd: 2212
    functionName: _Py_NO_RETURN::Py_ExitStatusException
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - _Py_NO_RETURN::fatal_error
    - _PyStatus_IS_EXIT
    - _PyStatus_IS_ERROR
    - _Py_NO_RETURN::Py_FatalError
    - exit
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_ExitStatusException(PyStatus status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2221,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (is->pyexitfunc == NULL || is->pyexitfunc == func)
      pos:
        line_end: 2223
        line_start: 2223
        source_file: /src/Python-3.8.3/Python/pylifecycle.c
    constantsTouched: []
    func_position:
      end: 2228
      start: 2219
    functionDepth: 2
    functionLinenumber: 2219
    functionLinenumberEnd: 2228
    functionName: _Py_PyAtExit
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - assert
    - _PyInterpreterState_Get
    linkageType: ''
    returnType: void
    signature: void _Py_PyAtExit(void (*func)(PyObject *), PyObject *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - istate
    argTypes:
    - PyInterpreterState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2230
    functionDepth: 4
    functionLinenumber: 2230
    functionLinenumberEnd: 2238
    functionName: call_py_exitfuncs
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - PyErr_Clear
    linkageType: ''
    returnType: void
    signature: void call_py_exitfuncs(PyInterpreterState *istate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2247,1
    - Dst: _PyImport_GetModuleId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2249,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2251,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2252,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2257,1
    - Dst: PyErr_WriteUnraisable
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2259,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2262,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2265
      start: 2244
    functionDepth: 20
    functionLinenumber: 2244
    functionLinenumberEnd: 2265
    functionName: wait_for_thread_shutdown
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 2
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - _PyObject_CallMethodId
    - PyErr_WriteUnraisable
    - _Py_IDENTIFIER
    - _PyImport_GetModuleId
    linkageType: ''
    returnType: void
    signature: void wait_for_thread_shutdown(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2268
    functionDepth: 0
    functionLinenumber: 2268
    functionLinenumberEnd: 2274
    functionName: Py_AtExit
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Py_AtExit(void (*func)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exitfunc
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2285,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2288,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - _PyRuntimeState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2290
    functionName: call_ll_exitfuncs
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - fflush
    - exitfunc
    linkageType: ''
    returnType: void
    signature: void call_ll_exitfuncs(_PyRuntimeState *runtime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2295,1
    - Dst: exit
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sts
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2292
    functionDepth: 22
    functionLinenumber: 2292
    functionLinenumberEnd: 2300
    functionName: _Py_NO_RETURN::Py_Exit
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 0
    functionsReached:
    - exit
    - Py_FinalizeEx
    linkageType: ''
    returnType: void
    signature: 'void _Py_NO_RETURN

      Py_Exit(int sts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2306,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2309,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2312,1
    - Dst: PyOS_InitInterrupts
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2314,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2315,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2316,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2302
    functionDepth: 2
    functionLinenumber: 2302
    functionLinenumberEnd: 2319
    functionName: init_signals
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyErr_Occurred
    - _PyStatus_ERR
    - PyOS_setsig
    - PyOS_InitInterrupts
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus init_signals(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2332,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2335,1
    - Dst: PyOS_setsig
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2328
    functionDepth: 1
    functionLinenumber: 2328
    functionLinenumberEnd: 2340
    functionName: _Py_RestoreSignals
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - PyOS_setsig
    linkageType: ''
    returnType: void
    signature: void _Py_RestoreSignals(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2352,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2352,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2357,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - fp
    - filename
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2349
    functionDepth: 0
    functionLinenumber: 2349
    functionLinenumberEnd: 2359
    functionName: Py_FdIsInteractive
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - isatty
    - strcmp
    - fileno
    linkageType: ''
    returnType: int
    signature: int Py_FdIsInteractive(FILE *fp, const char *filename)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sigaction
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2369,1
    - Dst: signal
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2391,1
    - Dst: signal
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2396
    functionName: PyOS_getsig
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 1
    functionsReached:
    - sigaction
    - signal
    linkageType: ''
    returnType: PyOS_sighandler_t
    signature: PyOS_sighandler_t PyOS_getsig(int sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2413,1
    - Dst: sigaction
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2415,1
    - Dst: signal
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2420,1
    - Dst: siginterrupt
      Src: /src/Python-3.8.3/Python/pylifecycle.c:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - sig
    - handler
    argTypes:
    - int
    - PyOS_sighandler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2403
    functionDepth: 0
    functionLinenumber: 2403
    functionLinenumberEnd: 2426
    functionName: PyOS_setsig
    functionSourceFile: /src/Python-3.8.3/Python/pylifecycle.c
    functionUses: 10
    functionsReached:
    - sigemptyset
    - sigaction
    - siginterrupt
    - signal
    linkageType: ''
    returnType: PyOS_sighandler_t
    signature: PyOS_sighandler_t PyOS_setsig(int sig, PyOS_sighandler_t handler)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/codecs.c:35,1
    - Dst: _PyCodecRegistry_Init
      Src: /src/Python-3.8.3/Python/codecs.c:36,1
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Python/codecs.c:39,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/codecs.c:42,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:43,1
    - Dst: PyList_Append
      Src: /src/Python-3.8.3/Python/codecs.c:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - search_function
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 33
    functionDepth: 8
    functionLinenumber: 33
    functionLinenumberEnd: 50
    functionName: PyCodec_Register
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodecRegistry_Init
    - _PyInterpreterState_Get
    - PyCallable_Check
    - PyErr_BadArgument
    - PyList_Append
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int PyCodec_Register(PyObject *search_function)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/codecs.c:59,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:64,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/Python/codecs.c:68,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/Python/codecs.c:70,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:76,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/codecs.c:76,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/codecs.c:80,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/Python/codecs.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 55
    functionDepth: 8
    functionLinenumber: 55
    functionLinenumberEnd: 83
    functionName: normalizestring
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - PyErr_NoMemory
    - Py_TOLOWER
    - strlen
    - PyMem_Free
    - PyErr_SetString
    - PyMem_Malloc
    - Py_CHARMASK
    linkageType: ''
    returnType: PyObject
    signature: PyObject *normalizestring(const char *string)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_BadArgument
      Src: /src/Python-3.8.3/Python/codecs.c:106,1
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/codecs.c:110,1
    - Dst: _PyCodecRegistry_Init
      Src: /src/Python-3.8.3/Python/codecs.c:111,1
    - Dst: normalizestring
      Src: /src/Python-3.8.3/Python/codecs.c:117,1
    - Dst: PyUnicode_InternInPlace
      Src: /src/Python-3.8.3/Python/codecs.c:120,1
    - Dst: PyDict_GetItemWithError
      Src: /src/Python-3.8.3/Python/codecs.c:123,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:125,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:126,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/codecs.c:129,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:130,1
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/codecs.c:135,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:137,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:140,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/Python/codecs.c:142,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:146,1
    - Dst: PyList_GetItem
      Src: /src/Python-3.8.3/Python/codecs.c:155,1
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Python/codecs.c:158,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:162,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/codecs.c:165,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/codecs.c:165,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:166,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:168,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/codecs.c:175,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/Python/codecs.c:181,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:185,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:189,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 76
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 100
    functionDepth: 9
    functionLinenumber: 100
    functionLinenumberEnd: 191
    functionName: _PyCodec_Lookup
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 3
    functionsReached:
    - _PyCodecRegistry_Init
    - PyTuple_GET_SIZE
    - PyList_Size
    - normalizestring
    - PyDict_SetItem
    - PyDict_GetItemWithError
    - PyErr_Occurred
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PyList_GetItem
    - PyTuple_Check
    - PyErr_Format
    - Py_XDECREF
    - Py_DECREF
    - PyErr_BadArgument
    - PyEval_CallObject
    - PyTuple_New
    - PyUnicode_InternInPlace
    - PyErr_SetString
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_PyCodec_Lookup(const char *encoding)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/codecs.c:198,1
    - Dst: normalizestring
      Src: /src/Python-3.8.3/Python/codecs.c:206,1
    - Dst: PyDict_DelItem
      Src: /src/Python-3.8.3/Python/codecs.c:212,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 193
    functionDepth: 9
    functionLinenumber: 193
    functionLinenumberEnd: 216
    functionName: _PyCodec_Forget
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - Py_DECREF
    - _PyInterpreterState_Get
    - PyDict_DelItem
    - normalizestring
    linkageType: ''
    returnType: int
    signature: int _PyCodec_Forget(const char *encoding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/codecs.c:224,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Python/codecs.c:226,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 10
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: PyCodec_KnownEncoding
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyErr_Clear
    - Py_DECREF
    - _PyCodec_Lookup
    linkageType: ''
    returnType: int
    signature: int PyCodec_KnownEncoding(const char *encoding)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_New
      Src: /src/Python-3.8.3/Python/codecs.c:241,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:244,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:245,1
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/Python/codecs.c:249,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:251,1
    - Dst: PyTuple_SET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - object
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: args_tuple
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromString
    - Py_DECREF
    - Py_INCREF
    - PyTuple_New
    - PyTuple_SET_ITEM
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *args_tuple(PyObject *object,\n                     const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/codecs.c:267,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:270,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:271,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - encoding
    - index
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 10
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: codec_getitem
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - PyTuple_GET_ITEM
    - Py_DECREF
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: PyObject *codec_getitem(const char *encoding, int index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/Python/codecs.c:284,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/codecs.c:288,1
    - Dst: _PyObject_CallNoArg
      Src: /src/Python-3.8.3/Python/codecs.c:290,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - codec_info
    - errors
    - attrname
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 293
    functionName: codec_makeincrementalcodec
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyObject_CallNoArg
    - PyObject_CallFunction
    - Py_DECREF
    - PyObject_GetAttrString
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *codec_makeincrementalcodec(PyObject *codec_info,\n                                     const
      char *errors,\n                                     const char *attrname)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/codecs.c:302,1
    - Dst: codec_makeincrementalcodec
      Src: /src/Python-3.8.3/Python/codecs.c:305,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - encoding
    - errors
    - attrname
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 295
    functionDepth: 10
    functionLinenumber: 295
    functionLinenumberEnd: 308
    functionName: codec_getincrementalcodec
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - codec_makeincrementalcodec
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *codec_getincrementalcodec(const char *encoding,\n                                    const
      char *errors,\n                                    const char *attrname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/codecs.c:320,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:324,1
    - Dst: PyObject_CallFunction
      Src: /src/Python-3.8.3/Python/codecs.c:326,1
    - Dst: PyObject_CallFunctionObjArgs
      Src: /src/Python-3.8.3/Python/codecs.c:328,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - encoding
    - stream
    - errors
    - index
    argTypes:
    - char*
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 312
    functionDepth: 10
    functionLinenumber: 312
    functionLinenumberEnd: 331
    functionName: codec_getstreamcodec
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyObject_CallFunctionObjArgs
    - PyObject_CallFunction
    - PyTuple_GET_ITEM
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *codec_getstreamcodec(const char *encoding,\n                               PyObject
      *stream,\n                               const char *errors,\n                               const
      int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_makeincrementalcodec
      Src: /src/Python-3.8.3/Python/codecs.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codec_info
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: _PyCodecInfo_GetIncrementalDecoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_makeincrementalcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyCodecInfo_GetIncrementalDecoder(PyObject *codec_info,\n
      \                                            const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_makeincrementalcodec
      Src: /src/Python-3.8.3/Python/codecs.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - codec_info
    - errors
    argTypes:
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: _PyCodecInfo_GetIncrementalEncoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_makeincrementalcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyCodecInfo_GetIncrementalEncoder(PyObject *codec_info,\n
      \                                            const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getitem
      Src: /src/Python-3.8.3/Python/codecs.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 11
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: PyCodec_Encoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getitem
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_Encoder(const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getitem
      Src: /src/Python-3.8.3/Python/codecs.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 11
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: PyCodec_Decoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getitem
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_Decoder(const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getincrementalcodec
      Src: /src/Python-3.8.3/Python/codecs.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 11
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: PyCodec_IncrementalEncoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_getincrementalcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_IncrementalEncoder(const char *encoding,\n                                     const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getincrementalcodec
      Src: /src/Python-3.8.3/Python/codecs.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 11
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: PyCodec_IncrementalDecoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - codec_getincrementalcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_IncrementalDecoder(const char *encoding,\n                                     const
      char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getstreamcodec
      Src: /src/Python-3.8.3/Python/codecs.c:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encoding
    - stream
    - errors
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 11
    functionLinenumber: 379
    functionLinenumberEnd: 384
    functionName: PyCodec_StreamReader
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getstreamcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_StreamReader(const char *encoding,\n                               PyObject
      *stream,\n                               const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getstreamcodec
      Src: /src/Python-3.8.3/Python/codecs.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - encoding
    - stream
    - errors
    argTypes:
    - char*
    - PyObject*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 386
    functionDepth: 11
    functionLinenumber: 386
    functionLinenumberEnd: 391
    functionName: PyCodec_StreamWriter
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getstreamcodec
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_StreamWriter(const char *encoding,\n                               PyObject
      *stream,\n                               const char *errors)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyErr_TrySetFromCause
      Src: /src/Python-3.8.3/Python/codecs.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - operation
    - encoding
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: wrap_codec_error
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyErr_TrySetFromCause
    linkageType: ''
    returnType: void
    signature: "void wrap_codec_error(const char *operation,\n                 const
      char *encoding)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_tuple
      Src: /src/Python-3.8.3/Python/codecs.c:423,1
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Python/codecs.c:427,1
    - Dst: wrap_codec_error
      Src: /src/Python-3.8.3/Python/codecs.c:429,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/codecs.c:433,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/codecs.c:434,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:435,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:439,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:440,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:443,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:444,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:445,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:449,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:450,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - object
    - encoder
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 414
    functionDepth: 8
    functionLinenumber: 414
    functionLinenumberEnd: 453
    functionName: _PyCodec_EncodeInternal
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - wrap_codec_error
    - PyEval_CallObject
    - PyTuple_Check
    - args_tuple
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCodec_EncodeInternal(PyObject *object,\n                        PyObject
      *encoder,\n                        const char *encoding,\n                        const
      char *errors)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: args_tuple
      Src: /src/Python-3.8.3/Python/codecs.c:469,1
    - Dst: PyEval_CallObject
      Src: /src/Python-3.8.3/Python/codecs.c:473,1
    - Dst: wrap_codec_error
      Src: /src/Python-3.8.3/Python/codecs.c:475,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/codecs.c:478,1
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/codecs.c:479,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:480,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:484,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:485,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:488,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:489,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:490,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:494,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:495,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Python/codecs.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - object
    - decoder
    - encoding
    - errors
    argTypes:
    - PyObject*
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 8
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: _PyCodec_DecodeInternal
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyTuple_GET_SIZE
    - Py_INCREF
    - wrap_codec_error
    - PyEval_CallObject
    - PyTuple_Check
    - args_tuple
    - PyErr_SetString
    - PyTuple_GET_ITEM
    - Py_XDECREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyCodec_DecodeInternal(PyObject *object,\n                        PyObject
      *decoder,\n                        const char *encoding,\n                        const
      char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Encoder
      Src: /src/Python-3.8.3/Python/codecs.c:507,1
    - Dst: _PyCodec_EncodeInternal
      Src: /src/Python-3.8.3/Python/codecs.c:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 12
    functionLinenumber: 501
    functionLinenumberEnd: 512
    functionName: PyCodec_Encode
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 3
    functionsReached:
    - _PyCodec_EncodeInternal
    - PyCodec_Encoder
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_Encode(PyObject *object,\n                         const
      char *encoding,\n                         const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_Decoder
      Src: /src/Python-3.8.3/Python/codecs.c:520,1
    - Dst: _PyCodec_DecodeInternal
      Src: /src/Python-3.8.3/Python/codecs.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 514
    functionDepth: 12
    functionLinenumber: 514
    functionLinenumberEnd: 525
    functionName: PyCodec_Decode
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 3
    functionsReached:
    - PyCodec_Decoder
    - _PyCodec_DecodeInternal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *PyCodec_Decode(PyObject *object,\n                         const
      char *encoding,\n                         const char *errors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/Python/codecs.c:531,1
    - Dst: _PyCodec_Lookup
      Src: /src/Python-3.8.3/Python/codecs.c:536,1
    - Dst: PyTuple_CheckExact
      Src: /src/Python-3.8.3/Python/codecs.c:544,1
    - Dst: _PyObject_LookupAttrId
      Src: /src/Python-3.8.3/Python/codecs.c:545,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:546,1
    - Dst: PyObject_IsTrue
      Src: /src/Python-3.8.3/Python/codecs.c:550,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:551,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:553,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/codecs.c:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - encoding
    - alternate_command
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 528
    functionDepth: 10
    functionLinenumber: 528
    functionLinenumberEnd: 566
    functionName: _PyCodec_LookupTextEncoding
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 2
    functionsReached:
    - Py_DECREF
    - _PyObject_LookupAttrId
    - _Py_IDENTIFIER
    - PyErr_Format
    - PyTuple_CheckExact
    - PyObject_IsTrue
    - _PyCodec_Lookup
    linkageType: ''
    returnType: PyObject
    signature: "PyObject * _PyCodec_LookupTextEncoding(const char *encoding,\n                                       const
      char *alternate_command)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_LookupTextEncoding
      Src: /src/Python-3.8.3/Python/codecs.c:577,1
    - Dst: PyTuple_GET_ITEM
      Src: /src/Python-3.8.3/Python/codecs.c:581,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:582,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - encoding
    - alternate_command
    - index
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 569
    functionDepth: 11
    functionLinenumber: 569
    functionLinenumberEnd: 585
    functionName: codec_getitem_checked
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - _PyCodec_LookupTextEncoding
    - PyTuple_GET_ITEM
    - Py_DECREF
    - Py_INCREF
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *codec_getitem_checked(const char *encoding,\n                                const
      char *alternate_command,\n                                int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getitem_checked
      Src: /src/Python-3.8.3/Python/codecs.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 587
    functionDepth: 12
    functionLinenumber: 587
    functionLinenumberEnd: 590
    functionName: _PyCodec_TextEncoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getitem_checked
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _PyCodec_TextEncoder(const char *encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codec_getitem_checked
      Src: /src/Python-3.8.3/Python/codecs.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 592
    functionDepth: 12
    functionLinenumber: 592
    functionLinenumberEnd: 595
    functionName: _PyCodec_TextDecoder
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - codec_getitem_checked
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _PyCodec_TextDecoder(const char *encoding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_TextEncoder
      Src: /src/Python-3.8.3/Python/codecs.c:603,1
    - Dst: _PyCodec_EncodeInternal
      Src: /src/Python-3.8.3/Python/codecs.c:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 13
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: _PyCodec_EncodeText
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_EncodeInternal
    - _PyCodec_TextEncoder
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyCodec_EncodeText(PyObject *object,\n                              const
      char *encoding,\n                              const char *errors)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyCodec_TextDecoder
      Src: /src/Python-3.8.3/Python/codecs.c:616,1
    - Dst: _PyCodec_DecodeInternal
      Src: /src/Python-3.8.3/Python/codecs.c:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - object
    - encoding
    - errors
    argTypes:
    - PyObject*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 610
    functionDepth: 13
    functionLinenumber: 610
    functionLinenumberEnd: 621
    functionName: _PyCodec_DecodeText
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodec_TextDecoder
    - _PyCodec_DecodeInternal
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *_PyCodec_DecodeText(PyObject *object,\n                              const
      char *encoding,\n                              const char *errors)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/codecs.c:631,1
    - Dst: _PyCodecRegistry_Init
      Src: /src/Python-3.8.3/Python/codecs.c:632,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Python/codecs.c:634,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:635,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/Python/codecs.c:638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - error
    argTypes:
    - char*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 629
    functionDepth: 8
    functionLinenumber: 629
    functionLinenumberEnd: 640
    functionName: PyCodec_RegisterError
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 1
    functionsReached:
    - _PyCodecRegistry_Init
    - _PyInterpreterState_Get
    - PyCallable_Check
    - PyErr_SetString
    - PyDict_SetItemString
    linkageType: ''
    returnType: int
    signature: int PyCodec_RegisterError(const char *name, PyObject *error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyInterpreterState_GET_UNSAFE
      Src: /src/Python-3.8.3/Python/codecs.c:649,1
    - Dst: _PyCodecRegistry_Init
      Src: /src/Python-3.8.3/Python/codecs.c:650,1
    - Dst: _PyDict_GetItemStringWithError
      Src: /src/Python-3.8.3/Python/codecs.c:655,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Python/codecs.c:657,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/codecs.c:659,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/codecs.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 645
    functionDepth: 9
    functionLinenumber: 645
    functionLinenumberEnd: 663
    functionName: PyCodec_LookupError
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 6
    functionsReached:
    - _PyCodecRegistry_Init
    - PyErr_Occurred
    - Py_INCREF
    - _PyInterpreterState_GET_UNSAFE
    - PyErr_Format
    - _PyDict_GetItemStringWithError
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_LookupError(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/codecs.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 665
    functionDepth: 9
    functionLinenumber: 665
    functionLinenumberEnd: 670
    functionName: wrong_exception_type
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void wrong_exception_type(PyObject *exc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyExceptionInstance_Check
      Src: /src/Python-3.8.3/Python/codecs.c:674,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:675,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:675,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/codecs.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 672
    functionDepth: 8
    functionLinenumber: 672
    functionLinenumberEnd: 679
    functionName: PyCodec_StrictErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 7
    functionsReached:
    - PyExceptionInstance_Check
    - PyErr_SetString
    - PyExceptionInstance_Class
    - PyErr_SetObject
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_StrictErrors(PyObject *exc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:686,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:687,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:690,1
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:691,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:694,1
    - Dst: PyUnicodeTranslateError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:695,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:699,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:702,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:702,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 682
    functionDepth: 10
    functionLinenumber: 682
    functionLinenumberEnd: 703
    functionName: PyCodec_IgnoreErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - PyUnicodeEncodeError_GetEnd
    - PyUnicodeTranslateError_GetEnd
    - PyObject_TypeCheck
    - wrong_exception_type
    - PyUnicodeDecodeError_GetEnd
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_IgnoreErrors(PyObject *exc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:710,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:714,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:716,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:719,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/codecs.c:722,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:723,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/codecs.c:725,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:726,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:726,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:727,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:729,1
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:730,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:732,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:736,1
    - Dst: PyUnicodeTranslateError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:740,1
    - Dst: PyUnicodeTranslateError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:742,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:745,1
    - Dst: PyUnicode_KIND
      Src: /src/Python-3.8.3/Python/codecs.c:748,1
    - Dst: PyUnicode_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:749,1
    - Dst: PyUnicode_WRITE
      Src: /src/Python-3.8.3/Python/codecs.c:751,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:752,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:752,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:753,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:756,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 725
        line_start: 725
        source_file: /src/Python-3.8.3/Python/codecs.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 751
        line_start: 751
        source_file: /src/Python-3.8.3/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 759
      start: 706
    functionDepth: 10
    functionLinenumber: 706
    functionLinenumberEnd: 759
    functionName: PyCodec_ReplaceErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetStart
    - assert
    - Py_BuildValue
    - PyUnicode_WRITE
    - PyUnicodeEncodeError_GetEnd
    - PyUnicodeTranslateError_GetEnd
    - PyObject_TypeCheck
    - _PyUnicode_CheckConsistency
    - wrong_exception_type
    - PyUnicodeTranslateError_GetStart
    - PyUnicodeDecodeError_GetEnd
    - PyUnicode_DATA
    - PyUnicode_KIND
    - PyUnicode_New
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_ReplaceErrors(PyObject *exc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:763,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:773,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:775,1
    - Dst: PyUnicodeEncodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:777,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:783,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:800,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:802,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:805,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:810,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:848,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:848,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:849,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:850,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:854,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/Python-3.8.3/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 857
      start: 761
    functionDepth: 10
    functionLinenumber: 761
    functionLinenumberEnd: 857
    functionName: PyCodec_XMLCharRefReplaceErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyUnicodeEncodeError_GetStart
    - assert
    - Py_DECREF
    - Py_BuildValue
    - PyUnicodeEncodeError_GetEnd
    - PyUnicode_New
    - PyObject_TypeCheck
    - _PyUnicode_CheckConsistency
    - wrong_exception_type
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ_CHAR
    - PyUnicodeEncodeError_GetObject
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:870,1
    - Dst: PyUnicodeDecodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:872,1
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:874,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:876,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/codecs.c:878,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:879,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:881,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:884,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:893,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:893,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:894,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:895,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:897,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:898,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:900,1
    - Dst: PyUnicodeEncodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:902,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:905,1
    - Dst: PyUnicodeTranslateError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:906,1
    - Dst: PyUnicodeTranslateError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:908,1
    - Dst: PyUnicodeTranslateError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:910,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:914,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:922,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:932,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:934,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:937,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:939,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:961,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:961,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:962,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:963,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 960
        line_start: 960
        source_file: /src/Python-3.8.3/Python/codecs.c
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 892
        line_start: 892
        source_file: /src/Python-3.8.3/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 964
      start: 859
    functionDepth: 10
    functionLinenumber: 859
    functionLinenumberEnd: 964
    functionName: PyCodec_BackslashReplaceErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyObject_TypeCheck
    - wrong_exception_type
    - PyUnicodeDecodeError_GetEnd
    - PyUnicodeDecodeError_GetStart
    - PyUnicodeEncodeError_GetStart
    - PyUnicodeDecodeError_GetObject
    - PyUnicode_1BYTE_DATA
    - PyUnicode_READ_CHAR
    - assert
    - PyUnicode_New
    - Py_DECREF
    - PyUnicodeEncodeError_GetEnd
    - PyBytes_AS_STRING
    - Py_BuildValue
    - PyUnicodeTranslateError_GetEnd
    - PyUnicodeTranslateError_GetObject
    - _PyUnicode_CheckConsistency
    - PyUnicodeTranslateError_GetStart
    - PyUnicodeEncodeError_GetObject
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:970,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:982,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:984,1
    - Dst: PyUnicodeEncodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:986,1
    - Dst: PyCapsule_Import
      Src: /src/Python-3.8.3/Python/codecs.c:990,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:997,1
    - Dst: getname
      Src: /src/Python-3.8.3/Python/codecs.c:998,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/codecs.c:999,1
    - Dst: PyUnicode_New
      Src: /src/Python-3.8.3/Python/codecs.c:1014,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:1017,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:1019,1
    - Dst: getname
      Src: /src/Python-3.8.3/Python/codecs.c:1021,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/codecs.c:1024,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/codecs.c:1025,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:1049,1
    - Dst: PyUnicode_1BYTE_DATA
      Src: /src/Python-3.8.3/Python/codecs.c:1049,1
    - Dst: assert
      Src: /src/Python-3.8.3/Python/codecs.c:1050,1
    - Dst: _PyUnicode_CheckConsistency
      Src: /src/Python-3.8.3/Python/codecs.c:1050,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:1051,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1052,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:1056,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (_PyUnicode_CheckConsistency(res, 1))
      pos:
        line_end: 1049
        line_start: 1049
        source_file: /src/Python-3.8.3/Python/codecs.c
    - condition: (outp == PyUnicode_1BYTE_DATA(res) + ressize)
      pos:
        line_end: 1048
        line_start: 1048
        source_file: /src/Python-3.8.3/Python/codecs.c
    constantsTouched: []
    func_position:
      end: 1059
      start: 968
    functionDepth: 10
    functionLinenumber: 968
    functionLinenumberEnd: 1059
    functionName: PyCodec_NameReplaceErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCapsule_Import
    - strcpy
    - PyUnicodeEncodeError_GetStart
    - assert
    - Py_BuildValue
    - Py_DECREF
    - PyUnicodeEncodeError_GetEnd
    - PyUnicode_New
    - PyObject_TypeCheck
    - strlen
    - _PyUnicode_CheckConsistency
    - wrong_exception_type
    - PyUnicode_1BYTE_DATA
    - getname
    - PyUnicode_READ_CHAR
    - PyUnicodeEncodeError_GetObject
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1071,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1072,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1073,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1093,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1094,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1096,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1112,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1113,1
    - Dst: Py_TOLOWER
      Src: /src/Python-3.8.3/Python/codecs.c:1115,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Python/codecs.c:1120,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 2
    argNames:
    - encoding
    - bytelength
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1125
    functionName: get_standard_encoding
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - strcmp
    - Py_TOLOWER
    linkageType: ''
    returnType: int
    signature: int get_standard_encoding(const char *encoding, int *bytelength)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:1143,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:1145,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:1147,1
    - Dst: PyUnicodeEncodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1149,1
    - Dst: PyUnicodeEncodeError_GetEncoding
      Src: /src/Python-3.8.3/Python/codecs.c:1151,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1152,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/codecs.c:1155,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1156,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1157,1
    - Dst: get_standard_encoding
      Src: /src/Python-3.8.3/Python/codecs.c:1160,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1161,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1164,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1164,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1165,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/codecs.c:1171,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1173,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Python/codecs.c:1176,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:1179,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Python/codecs.c:1180,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1182,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1182,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1183,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1184,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:1215,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1216,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1217,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:1220,1
    - Dst: PyUnicodeDecodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:1223,1
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:1225,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1227,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/codecs.c:1229,1
    - Dst: PyUnicodeDecodeError_GetEncoding
      Src: /src/Python-3.8.3/Python/codecs.c:1230,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1231,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Python/codecs.c:1234,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1235,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1236,1
    - Dst: get_standard_encoding
      Src: /src/Python-3.8.3/Python/codecs.c:1239,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1240,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1243,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1243,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1244,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Python/codecs.c:1251,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1276,1
    - Dst: Py_UNICODE_IS_SURROGATE
      Src: /src/Python-3.8.3/Python/codecs.c:1277,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1279,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1279,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/Python/codecs.c:1282,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:1285,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:1288,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 131
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1129
    functionDepth: 10
    functionLinenumber: 1129
    functionLinenumberEnd: 1291
    functionName: PyCodec_SurrogatePassErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - get_standard_encoding
    - PyUnicode_AsUTF8
    - PyUnicodeEncodeError_GetEncoding
    - PyObject_TypeCheck
    - wrong_exception_type
    - PyUnicodeDecodeError_GetEnd
    - PyUnicodeDecodeError_GetStart
    - PyBytes_FromStringAndSize
    - PyUnicodeEncodeError_GetStart
    - PyExceptionInstance_Class
    - PyUnicodeDecodeError_GetObject
    - PyUnicode_READ_CHAR
    - Py_DECREF
    - PyUnicodeEncodeError_GetEnd
    - PyBytes_AsString
    - PyUnicodeDecodeError_GetEncoding
    - PyErr_SetObject
    - PyBytes_GET_SIZE
    - PyBytes_AS_STRING
    - Py_UNICODE_IS_SURROGATE
    - Py_BuildValue
    - PyUnicode_FromOrdinal
    - PyUnicodeEncodeError_GetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCodec_SurrogatePassErrors(PyObject *exc)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:1303,1
    - Dst: PyUnicodeEncodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:1305,1
    - Dst: PyUnicodeEncodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:1307,1
    - Dst: PyUnicodeEncodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1309,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/Python/codecs.c:1311,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1313,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/Python/codecs.c:1316,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/Python/codecs.c:1319,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1322,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1322,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1323,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1324,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:1329,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1330,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1331,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/codecs.c:1334,1
    - Dst: PyUnicodeDecodeError_GetStart
      Src: /src/Python-3.8.3/Python/codecs.c:1339,1
    - Dst: PyUnicodeDecodeError_GetEnd
      Src: /src/Python-3.8.3/Python/codecs.c:1341,1
    - Dst: PyUnicodeDecodeError_GetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1343,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Python/codecs.c:1345,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1353,1
    - Dst: PyErr_SetObject
      Src: /src/Python-3.8.3/Python/codecs.c:1356,1
    - Dst: PyExceptionInstance_Class
      Src: /src/Python-3.8.3/Python/codecs.c:1356,1
    - Dst: PyUnicode_FromKindAndData
      Src: /src/Python-3.8.3/Python/codecs.c:1359,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/Python/codecs.c:1362,1
    - Dst: wrong_exception_type
      Src: /src/Python-3.8.3/Python/codecs.c:1365,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 1
    argNames:
    - exc
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1293
    functionDepth: 10
    functionLinenumber: 1293
    functionLinenumberEnd: 1368
    functionName: PyCodec_SurrogateEscapeErrors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - PyUnicode_FromKindAndData
    - PyUnicodeEncodeError_GetStart
    - Py_BuildValue
    - Py_DECREF
    - PyExceptionInstance_Class
    - PyUnicodeEncodeError_GetEnd
    - PyObject_TypeCheck
    - PyBytes_AsString
    - PyErr_SetObject
    - PyUnicodeDecodeError_GetObject
    - wrong_exception_type
    - PyBytes_AS_STRING
    - PyUnicodeDecodeError_GetEnd
    - PyUnicode_READ_CHAR
    - PyUnicodeDecodeError_GetStart
    - PyUnicodeEncodeError_GetObject
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyCodec_SurrogateEscapeErrors(PyObject *exc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_StrictErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1371
    functionDepth: 9
    functionLinenumber: 1371
    functionLinenumberEnd: 1374
    functionName: strict_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_StrictErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *strict_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_IgnoreErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1377
    functionDepth: 11
    functionLinenumber: 1377
    functionLinenumberEnd: 1380
    functionName: ignore_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_IgnoreErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *ignore_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_ReplaceErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1383
    functionDepth: 11
    functionLinenumber: 1383
    functionLinenumberEnd: 1386
    functionName: replace_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_ReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *replace_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_XMLCharRefReplaceErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1389
    functionDepth: 11
    functionLinenumber: 1389
    functionLinenumberEnd: 1392
    functionName: xmlcharrefreplace_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_XMLCharRefReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *xmlcharrefreplace_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_BackslashReplaceErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1395
    functionDepth: 11
    functionLinenumber: 1395
    functionLinenumberEnd: 1398
    functionName: backslashreplace_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_BackslashReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *backslashreplace_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_NameReplaceErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1400
    functionDepth: 11
    functionLinenumber: 1400
    functionLinenumberEnd: 1403
    functionName: namereplace_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_NameReplaceErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *namereplace_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_SurrogatePassErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1405
    functionDepth: 11
    functionLinenumber: 1405
    functionLinenumberEnd: 1408
    functionName: surrogatepass_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_SurrogatePassErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *surrogatepass_errors(PyObject *self, PyObject *exc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyCodec_SurrogateEscapeErrors
      Src: /src/Python-3.8.3/Python/codecs.c:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - exc
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1410
    functionDepth: 11
    functionLinenumber: 1410
    functionLinenumberEnd: 1413
    functionName: surrogateescape_errors
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 0
    functionsReached:
    - PyCodec_SurrogateEscapeErrors
    linkageType: ''
    returnType: PyObject
    signature: PyObject *surrogateescape_errors(PyObject *self, PyObject *exc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1428,1
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1438,1
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1448,1
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1458,1
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1469,1
    - Dst: PyDoc_STR
      Src: /src/Python-3.8.3/Python/codecs.c:1480,1
    - Dst: _PyInterpreterState_Get
      Src: /src/Python-3.8.3/Python/codecs.c:1503,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/Python/codecs.c:1510,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/codecs.c:1511,1
    - Dst: PyDict_New
      Src: /src/Python-3.8.3/Python/codecs.c:1512,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Python/codecs.c:1515,1
    - Dst: PyCFunction_NewEx
      Src: /src/Python-3.8.3/Python/codecs.c:1516,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/codecs.c:1519,1
    - Dst: PyCodec_RegisterError
      Src: /src/Python-3.8.3/Python/codecs.c:1520,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1521,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/codecs.c:1523,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/Python/codecs.c:1530,1
    - Dst: PyImport_ImportModuleNoBlock
      Src: /src/Python-3.8.3/Python/codecs.c:1532,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/codecs.c:1536,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1415
    functionDepth: 9
    functionLinenumber: 1415
    functionLinenumberEnd: 1539
    functionName: _PyCodecRegistry_Init
    functionSourceFile: /src/Python-3.8.3/Python/codecs.c
    functionUses: 4
    functionsReached:
    - _PyInterpreterState_Get
    - PyCodec_RegisterError
    - Py_DECREF
    - Py_ARRAY_LENGTH
    - PyDict_New
    - PyImport_ImportModuleNoBlock
    - PyDoc_STR
    - Py_FatalError
    - PyCFunction_NewEx
    - PyList_New
    linkageType: ''
    returnType: int
    signature: int _PyCodecRegistry_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptAcquireContext
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:41,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - raise
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 11
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: win32_urandom_init
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - CryptAcquireContext
    - PyErr_SetFromWindowsErr
    linkageType: ''
    returnType: int
    signature: int win32_urandom_init(int raise)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: win32_urandom_init
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:61,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:68,1
    - Dst: CryptGenRandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:69,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:73,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - unsigned char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 56
    functionDepth: 12
    functionLinenumber: 56
    functionLinenumberEnd: 81
    functionName: win32_urandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - win32_urandom_init
    - PyErr_SetFromWindowsErr
    - Py_MIN
    - CryptGenRandom
    linkageType: ''
    returnType: int
    signature: int win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:122,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:124,1
    - Dst: getrandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:131,1
    - Dst: getrandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:135,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:143,1
    - Dst: syscall
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:147,1
    - Dst: __msan_unpoison
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:151,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:176,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:186,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - buffer
    - size
    - blocking
    - raise
    argTypes:
    - void*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 100
    functionDepth: 10
    functionLinenumber: 100
    functionLinenumberEnd: 195
    functionName: py_getrandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - __msan_unpoison
    - PyErr_CheckSignals
    - syscall
    - PyErr_SetFromErrno
    - getrandom
    - Py_MIN
    linkageType: ''
    returnType: int
    signature: int py_getrandom(void *buffer, Py_ssize_t size, int blocking, int raise)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:225,1
    - Dst: getentropy
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:230,1
    - Dst: getentropy
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:234,1
    - Dst: PyErr_CheckSignals
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:248,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 211
    functionDepth: 10
    functionLinenumber: 211
    functionLinenumberEnd: 267
    functionName: py_getentropy
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - PyErr_CheckSignals
    - getentropy
    - Py_MIN
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: int
    signature: int py_getentropy(char *buffer, Py_ssize_t size, int raise)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:316,1
    - Dst: _Py_open
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:332,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:336,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:345,1
    - Dst: _Py_fstat
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:349,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:350,1
    - Dst: _Py_read
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:362,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:366,1
    - Dst: _Py_open_noraise
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:377,1
    - Dst: read
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:385,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:390,1
    - Dst: close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:397,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - buffer
    - size
    - raise
    argTypes:
    - char*
    - Py_ssize_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 304
    functionDepth: 9
    functionLinenumber: 304
    functionLinenumberEnd: 400
    functionName: dev_urandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - _Py_open
    - close
    - _Py_read
    - _Py_fstat_noraise
    - _Py_fstat
    - PyErr_Format
    - PyErr_SetString
    - _Py_open_noraise
    - read
    linkageType: ''
    returnType: int
    signature: int dev_urandom(char *buffer, Py_ssize_t size, int raise)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 409
    functionName: dev_urandom_close
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void dev_urandom_close(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - x0
    - buffer
    - size
    argTypes:
    - unsigned int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: lcg_urandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lcg_urandom(unsigned int x0, unsigned char *buffer, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:486,1
    - Dst: win32_urandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:497,1
    - Dst: py_getrandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:502,1
    - Dst: py_getentropy
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:504,1
    - Dst: dev_urandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - buffer
    - size
    - blocking
    - raise
    argTypes:
    - void*
    - Py_ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 477
    functionDepth: 13
    functionLinenumber: 477
    functionLinenumberEnd: 518
    functionName: pyurandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 0
    functionsReached:
    - py_getentropy
    - win32_urandom
    - dev_urandom
    - PyErr_Format
    - py_getrandom
    linkageType: ''
    returnType: int
    signature: int pyurandom(void *buffer, Py_ssize_t size, int blocking, int raise)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyurandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 529
    functionDepth: 14
    functionLinenumber: 529
    functionLinenumberEnd: 533
    functionName: _PyOS_URandom
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - pyurandom
    linkageType: ''
    returnType: int
    signature: int _PyOS_URandom(void *buffer, Py_ssize_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pyurandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - void*
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 14
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: _PyOS_URandomNonblock
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - pyurandom
    linkageType: ''
    returnType: int
    signature: int _PyOS_URandomNonblock(void *buffer, Py_ssize_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:557,1
    - Dst: memset
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:564,1
    - Dst: lcg_urandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:568,1
    - Dst: pyurandom
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:580,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:582,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 550
    functionDepth: 14
    functionLinenumber: 550
    functionLinenumberEnd: 587
    functionName: _Py_HashRandomization_Init
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - _PyStatus_ERR
    - pyurandom
    - _PyStatus_OK
    - memset
    - lcg_urandom
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _Py_HashRandomization_Init(const PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptReleaseContext
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:595,1
    - Dst: dev_urandom_close
      Src: /src/Python-3.8.3/Python/bootstrap_hash.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: _Py_HashRandomization_Fini
    functionSourceFile: /src/Python-3.8.3/Python/bootstrap_hash.c
    functionUses: 1
    functionsReached:
    - CryptReleaseContext
    - dev_urandom_close
    linkageType: ''
    returnType: void
    signature: void _Py_HashRandomization_Fini(void)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Python/mystrtoul.c:102,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:102,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:112,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:121,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:130,1
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Python/mystrtoul.c:141,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:141,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:158,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:172,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:186,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:212,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:249,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 124
    argCount: 3
    argNames:
    - str
    - ptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 255
    functionName: PyOS_strtoul
    functionSourceFile: /src/Python-3.8.3/Python/mystrtoul.c
    functionUses: 1
    functionsReached:
    - Py_ISSPACE
    - Py_CHARMASK
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PyOS_strtoul(const char *str, char **ptr, int base)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py_ISSPACE
      Src: /src/Python-3.8.3/Python/mystrtoul.c:269,1
    - Dst: Py_CHARMASK
      Src: /src/Python-3.8.3/Python/mystrtoul.c:269,1
    - Dst: PyOS_strtoul
      Src: /src/Python-3.8.3/Python/mystrtoul.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - str
    - ptr
    - base
    argTypes:
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 291
    functionName: PyOS_strtol
    functionSourceFile: /src/Python-3.8.3/Python/mystrtoul.c
    functionUses: 1
    functionsReached:
    - Py_ISSPACE
    - PyOS_strtoul
    - Py_CHARMASK
    linkageType: ''
    returnType: long
    signature: long PyOS_strtol(const char *str, char **ptr, int base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/Python/strdup.c:7,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/strdup.c:7,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/Python/strdup.c:9,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 12
    functionName: strdup
    functionSourceFile: /src/Python-3.8.3/Python/strdup.c
    functionUses: 10
    functionsReached:
    - strlen
    - malloc
    - strcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      strdup(const char *str)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:97,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:104,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:105,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:108,1
    - Dst: builtin_format_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:113,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 117
    functionName: builtin_format
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyUnicode_Check
    - builtin_format_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_format(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:137,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:138,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:142,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:143,1
    - Dst: builtin_chr_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 131
    functionDepth: 8
    functionLinenumber: 131
    functionLinenumberEnd: 150
    functionName: builtin_chr
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - builtin_chr_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_chr(PyObject *module, PyObject *arg)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:185,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:194,1
    - Dst: PyUnicode_FSDecoder
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:199,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:202,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:203,1
    - Dst: PyUnicode_AsUTF8AndSize
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:207,1
    - Dst: strlen
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:211,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:212,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:219,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:220,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:224,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:225,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:233,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:234,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:238,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:239,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:247,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:248,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:252,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:253,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:264,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:265,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:269,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:270,1
    - Dst: builtin_compile_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:274,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 100
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 178
    functionDepth: 9
    functionLinenumber: 178
    functionLinenumberEnd: 278
    functionName: builtin_compile
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyUnicode_FSDecoder
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - builtin_compile_impl
    - strlen
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - PyUnicode_Check
    - PyUnicode_AsUTF8AndSize
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:299,1
    - Dst: builtin_divmod_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: builtin_divmod
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_divmod_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_divmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:337,1
    - Dst: builtin_eval_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 329
    functionDepth: 7
    functionLinenumber: 329
    functionLinenumberEnd: 354
    functionName: builtin_eval
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_eval_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:383,1
    - Dst: builtin_exec_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 375
    functionDepth: 7
    functionLinenumber: 375
    functionLinenumberEnd: 400
    functionName: builtin_exec
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_exec_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: builtin_globals_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 421
    functionName: builtin_globals
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_globals_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_globals(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:444,1
    - Dst: builtin_hasattr_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 453
    functionName: builtin_hasattr
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_hasattr_impl
    - _PyArg_CheckPositional
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_hasattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:490,1
    - Dst: builtin_setattr_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 500
    functionName: builtin_setattr
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_setattr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_setattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:523,1
    - Dst: builtin_delattr_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 532
    functionName: builtin_delattr
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_delattr_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_delattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: builtin_locals_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 7
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: builtin_locals
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_locals_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_locals(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:633,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:638,1
    - Dst: builtin_pow_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:649,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 626
    functionDepth: 4
    functionLinenumber: 626
    functionLinenumberEnd: 653
    functionName: builtin_pow
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - builtin_pow_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:679,1
    - Dst: builtin_input_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 673
    functionDepth: 7
    functionLinenumber: 673
    functionLinenumberEnd: 691
    functionName: builtin_input
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_input_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_input(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:726,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:730,1
    - Dst: builtin_round_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:740,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 719
    functionDepth: 12
    functionLinenumber: 719
    functionLinenumberEnd: 744
    functionName: builtin_round
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - builtin_round_impl
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:769,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:773,1
    - Dst: builtin_sum_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:783,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 762
    functionDepth: 5
    functionLinenumber: 762
    functionLinenumberEnd: 787
    functionName: builtin_sum
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_UnpackKeywords
    - PyTuple_GET_SIZE
    - builtin_sum_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:813,1
    - Dst: builtin_isinstance_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 806
    functionDepth: 8
    functionLinenumber: 806
    functionLinenumberEnd: 822
    functionName: builtin_isinstance
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_isinstance_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_isinstance(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:848,1
    - Dst: builtin_issubclass_impl
      Src: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 841
    functionDepth: 8
    functionLinenumber: 841
    functionLinenumberEnd: 857
    functionName: builtin_issubclass
    functionSourceFile: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - builtin_issubclass_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:37,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:45,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:46,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:50,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:51,1
    - Dst: marshal_dump_impl
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 8
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: marshal_dump
    functionSourceFile: /src/Python-3.8.3/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - marshal_dump_impl
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:107,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:114,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:115,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:119,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:120,1
    - Dst: marshal_dumps_impl
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: marshal_dumps
    functionSourceFile: /src/Python-3.8.3/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - marshal_dumps_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:151,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:154,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:155,1
    - Dst: marshal_loads_impl
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:158,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/clinic/marshal.c.h:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 145
    functionDepth: 14
    functionLinenumber: 145
    functionLinenumberEnd: 167
    functionName: marshal_loads
    functionSourceFile: /src/Python-3.8.3/Python/clinic/marshal.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyObject_GetBuffer
    - marshal_loads_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      marshal_loads(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:26,1
    - Dst: sys_addaudithook_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 6
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: sys_addaudithook
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_addaudithook_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:67,1
    - Dst: sys_excepthook_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 59
    functionDepth: 21
    functionLinenumber: 59
    functionLinenumberEnd: 77
    functionName: sys_excepthook
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - sys_excepthook_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_excepthook(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_exc_info_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sys_exc_info
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_exc_info_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exc_info(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:140,1
    - Dst: sys_exit_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 134
    functionDepth: 8
    functionLinenumber: 134
    functionLinenumberEnd: 152
    functionName: sys_exit
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - sys_exit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getdefaultencoding_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: sys_getdefaultencoding
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getdefaultencoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdefaultencoding(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getfilesystemencoding_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: sys_getfilesystemencoding
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getfilesystemencoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencoding(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getfilesystemencodeerrors_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: sys_getfilesystemencodeerrors
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getfilesystemencodeerrors_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getfilesystemencodeerrors(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:230,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:231,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:234,1
    - Dst: sys_intern_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 224
    functionDepth: 10
    functionLinenumber: 224
    functionLinenumberEnd: 242
    functionName: sys_intern
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - sys_intern_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_intern(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_gettrace_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: sys_gettrace
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_gettrace_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_gettrace(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getprofile_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: sys_getprofile
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getprofile_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getprofile(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:307,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:308,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:312,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:313,1
    - Dst: sys_setcheckinterval_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 301
    functionDepth: 20
    functionLinenumber: 301
    functionLinenumberEnd: 320
    functionName: sys_setcheckinterval
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - sys_setcheckinterval_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setcheckinterval(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getcheckinterval_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 20
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: sys_getcheckinterval
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getcheckinterval_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getcheckinterval(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_CheckExact
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:365,1
    - Dst: PyFloat_AS_DOUBLE
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:366,1
    - Dst: PyFloat_AsDouble
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:370,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:371,1
    - Dst: sys_setswitchinterval_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 359
    functionDepth: 9
    functionLinenumber: 359
    functionLinenumberEnd: 379
    functionName: sys_setswitchinterval
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyFloat_AsDouble
    - PyErr_Occurred
    - sys_setswitchinterval_impl
    - PyFloat_AS_DOUBLE
    - PyFloat_CheckExact
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setswitchinterval(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getswitchinterval_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:399,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:400,1
    - Dst: PyFloat_FromDouble
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 407
    functionName: sys_getswitchinterval
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getswitchinterval_impl
    - PyFloat_FromDouble
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getswitchinterval(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:431,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:432,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:436,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:437,1
    - Dst: sys_setrecursionlimit_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 425
    functionDepth: 10
    functionLinenumber: 425
    functionLinenumberEnd: 444
    functionName: sys_setrecursionlimit
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - sys_setrecursionlimit_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setrecursionlimit(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:472,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:476,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:477,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:481,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:482,1
    - Dst: sys_set_coroutine_origin_tracking_depth_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:485,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 463
    functionDepth: 9
    functionLinenumber: 463
    functionLinenumberEnd: 489
    functionName: sys_set_coroutine_origin_tracking_depth
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_set_coroutine_origin_tracking_depth_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args,
      Py_ssize_t nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_get_coroutine_origin_tracking_depth_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:509,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:510,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 517
    functionName: sys_get_coroutine_origin_tracking_depth
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - sys_get_coroutine_origin_tracking_depth_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_coroutine_origin_tracking_depth(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_get_asyncgen_hooks_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: sys_get_asyncgen_hooks
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_get_asyncgen_hooks_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_get_asyncgen_hooks(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getrecursionlimit_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: sys_getrecursionlimit
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getrecursionlimit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getrecursionlimit(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getwindowsversion_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 585
    functionDepth: 12
    functionLinenumber: 585
    functionLinenumberEnd: 589
    functionName: sys_getwindowsversion
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getwindowsversion_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getwindowsversion(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__enablelegacywindowsfsencoding_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 6
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: sys__enablelegacywindowsfsencoding
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__enablelegacywindowsfsencoding_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__enablelegacywindowsfsencoding(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:649,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:650,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:654,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:655,1
    - Dst: sys_setdlopenflags_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 643
    functionDepth: 8
    functionLinenumber: 643
    functionLinenumberEnd: 662
    functionName: sys_setdlopenflags
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_setdlopenflags_impl
    - PyErr_Occurred
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_setdlopenflags(PyObject *module, PyObject *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getdlopenflags_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: sys_getdlopenflags
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getdlopenflags_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getdlopenflags(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:709,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:710,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:714,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:715,1
    - Dst: sys_mdebug_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:718,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 703
    functionDepth: 8
    functionLinenumber: 703
    functionLinenumberEnd: 722
    functionName: sys_mdebug
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - sys_mdebug_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_mdebug(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getrefcount_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:748,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:749,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - object
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 756
    functionName: sys_getrefcount
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromSsize_t
    - PyErr_Occurred
    - sys_getrefcount_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getrefcount(PyObject *module, PyObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_gettotalrefcount_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:777,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:778,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 785
    functionName: sys_gettotalrefcount
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_gettotalrefcount_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_gettotalrefcount(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sys_getallocatedblocks_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:807,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:808,1
    - Dst: PyLong_FromSsize_t
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 815
    functionName: sys_getallocatedblocks
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getallocatedblocks_impl
    - PyLong_FromSsize_t
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getallocatedblocks(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getcounts_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 834
    functionName: sys_getcounts
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getcounts_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getcounts(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:864,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:870,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:871,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:875,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:876,1
    - Dst: sys__getframe_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:880,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 858
    functionDepth: 9
    functionLinenumber: 858
    functionLinenumberEnd: 884
    functionName: sys__getframe
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - sys__getframe_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__getframe(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__current_frames_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 900
    functionDepth: 7
    functionLinenumber: 900
    functionLinenumberEnd: 904
    functionName: sys__current_frames
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__current_frames_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__current_frames(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:929,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:933,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:934,1
    - Dst: sys_call_tracing_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:938,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 922
    functionDepth: 6
    functionLinenumber: 922
    functionLinenumberEnd: 942
    functionName: sys_call_tracing
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyTuple_Check
    - sys_call_tracing_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_call_tracing(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_callstats_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 975
    functionDepth: 20
    functionLinenumber: 975
    functionLinenumberEnd: 979
    functionName: sys_callstats
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_callstats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_callstats(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__debugmallocstats_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1000
    functionName: sys__debugmallocstats
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__debugmallocstats_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__debugmallocstats(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys__clear_type_cache_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1018
    functionName: sys__clear_type_cache
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys__clear_type_cache_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys__clear_type_cache(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_is_finalizing_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1032
    functionDepth: 3
    functionLinenumber: 1032
    functionLinenumberEnd: 1036
    functionName: sys_is_finalizing
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_is_finalizing_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_is_finalizing(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sys_getandroidapilevel_impl
      Src: /src/Python-3.8.3/Python/clinic/sysmodule.c.h:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    functionName: sys_getandroidapilevel
    functionSourceFile: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
    functionUses: 0
    functionsReached:
    - sys_getandroidapilevel_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      sys_getandroidapilevel(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:25,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:31,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:46,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:47,1
    - Dst: PyNumber_Index
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:53,1
    - Dst: PyLong_AsSsize_t
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:55,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:56,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:58,1
    - Dst: warnings_warn_impl
      Src: /src/Python-3.8.3/Python/clinic/_warnings.c.h:69,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 18
    functionDepth: 18
    functionLinenumber: 18
    functionLinenumberEnd: 73
    functionName: warnings_warn
    functionSourceFile: /src/Python-3.8.3/Python/clinic/_warnings.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - Py_DECREF
    - PyTuple_GET_SIZE
    - PyLong_AsSsize_t
    - PyNumber_Index
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - warnings_warn_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:23,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:29,1
    - Dst: _PyTuple_CAST
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:29,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:34,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:35,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:39,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:40,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:44,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:45,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:48,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:49,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:53,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:54,1
    - Dst: tb_new_impl
      Src: /src/Python-3.8.3/Python/clinic/traceback.c.h:57,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - type
    - args
    - kwargs
    argTypes:
    - PyTypeObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 61
    functionName: tb_new
    functionSourceFile: /src/Python-3.8.3/Python/clinic/traceback.c.h
    functionUses: 0
    functionsReached:
    - tb_new_impl
    - PyErr_Occurred
    - _PyTuple_CAST
    - PyTuple_GET_SIZE
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - _PyArg_UnpackKeywords
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp_lock_held_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: _imp_lock_held
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_lock_held_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp_acquire_lock_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: _imp_acquire_lock
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_acquire_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_acquire_lock(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp_release_lock_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: _imp_release_lock
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_release_lock_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_release_lock(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:91,1
    - Dst: PyObject_TypeCheck
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:94,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:95,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:99,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:100,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:103,1
    - Dst: _imp__fix_co_filename_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 111
    functionName: _imp__fix_co_filename
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_CheckPositional
    - _PyArg_BadArgument
    - PyObject_TypeCheck
    - _imp__fix_co_filename_impl
    - PyUnicode_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp__fix_co_filename(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _imp_extension_suffixes_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: _imp_extension_suffixes
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_extension_suffixes_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_extension_suffixes(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:158,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:159,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:162,1
    - Dst: _imp_init_frozen_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 9
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: _imp_init_frozen
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_init_frozen_impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_init_frozen(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:190,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:191,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:194,1
    - Dst: _imp_get_frozen_object_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: _imp_get_frozen_object
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _imp_get_frozen_object_impl
    - _PyArg_BadArgument
    - PyUnicode_READY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_get_frozen_object(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:222,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:223,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:226,1
    - Dst: _imp_is_frozen_package_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 6
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: _imp_is_frozen_package
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - _imp_is_frozen_package_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen_package(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:254,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:255,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:258,1
    - Dst: _imp_is_builtin_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 248
    functionDepth: 5
    functionLinenumber: 248
    functionLinenumberEnd: 266
    functionName: _imp_is_builtin
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - _imp_is_builtin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_builtin(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:286,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:287,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:290,1
    - Dst: _imp_is_frozen_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: _imp_is_frozen
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_Check
    - _PyArg_BadArgument
    - PyUnicode_READY
    - _imp_is_frozen_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_is_frozen(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:321,1
    - Dst: _imp_create_dynamic_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 11
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: _imp_create_dynamic
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _imp_create_dynamic_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_create_dynamic(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _imp_exec_dynamic_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:358,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:359,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 366
    functionName: _imp_exec_dynamic
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _imp_exec_dynamic_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_exec_dynamic(PyObject *module, PyObject *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _imp_exec_builtin_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:388,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:389,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - mod
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 396
    functionName: _imp_exec_builtin
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _imp_exec_builtin_impl
    - PyErr_Occurred
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_exec_builtin(PyObject *module, PyObject *mod)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:419,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:423,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:424,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:428,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:429,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:432,1
    - Dst: PyBuffer_IsContiguous
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:435,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:436,1
    - Dst: _imp_source_hash_impl
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:439,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/Python/clinic/import.c.h:444,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 409
    functionDepth: 8
    functionLinenumber: 409
    functionLinenumberEnd: 448
    functionName: _imp_source_hash
    functionSourceFile: /src/Python-3.8.3/Python/clinic/import.c.h
    functionUses: 0
    functionsReached:
    - _imp_source_hash_impl
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_BadArgument
    - PyBuffer_IsContiguous
    - PyBuffer_Release
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - PyObject_GetBuffer
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:28,1
    - Dst: _contextvars_Context_get_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:37,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyContext*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 21
    functionDepth: 10
    functionLinenumber: 21
    functionLinenumberEnd: 41
    functionName: _contextvars_Context_get
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _contextvars_Context_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_get(PyContext *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_items_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: _contextvars_Context_items
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_items_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_items(PyContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_keys_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: _contextvars_Context_keys
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_keys_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_keys(PyContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_values_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: _contextvars_Context_values
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_values_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_values(PyContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _contextvars_Context_copy_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyContext*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: _contextvars_Context_copy
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _contextvars_Context_copy_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_Context_copy(PyContext *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:141,1
    - Dst: _contextvars_ContextVar_get_impl
      Src: /src/Python-3.8.3/Python/clinic/context.c.h:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - self
    - args
    - nargs
    argTypes:
    - PyContextVar*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 11
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: _contextvars_ContextVar_get
    functionSourceFile: /src/Python-3.8.3/Python/clinic/context.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_CheckPositional
    - _contextvars_ContextVar_get_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _contextvars_ContextVar_get(PyContextVar *self, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PySeqIter_Check
    functionSourceFile: /src/Python-3.8.3/Include/iterobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySeqIter_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: PyCallIter_Check
    functionSourceFile: /src/Python-3.8.3/Include/iterobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCallIter_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PyBool_Check
    functionSourceFile: /src/Python-3.8.3/Include/boolobject.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBool_Check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - category
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: PyErr_Warn
    functionSourceFile: /src/Python-3.8.3/Include/warnings.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_Warn(category, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: PySTEntry_Check
    functionSourceFile: /src/Python-3.8.3/Include/symtable.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySTEntry_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: PyUnicode_Check
    functionSourceFile: /src/Python-3.8.3/Include/unicodeobject.h
    functionUses: 434
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: PyUnicode_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/unicodeobject.h
    functionUses: 69
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    functionName: PyUnicode_CHECK_INTERNED
    functionSourceFile: /src/Python-3.8.3/Include/unicodeobject.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_CHECK_INTERNED(op)
  - 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: PyDescr_TYPE
    functionSourceFile: /src/Python-3.8.3/Include/descrobject.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_TYPE(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: PyDescr_NAME
    functionSourceFile: /src/Python-3.8.3/Include/descrobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_NAME(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: PyDescr_IsData
    functionSourceFile: /src/Python-3.8.3/Include/descrobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDescr_IsData(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - mod
    - ','
    - s
    - ','
    - f
    - ','
    - ar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: PyAST_Compile
    functionSourceFile: /src/Python-3.8.3/Include/compile.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAST_Compile(mod, s, f, ar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyRange_Check
    functionSourceFile: /src/Python-3.8.3/Include/rangeobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRange_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: PyDateTime_GET_YEAR
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_GET_YEAR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: PyDateTime_GET_MONTH
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_GET_MONTH(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: PyDateTime_GET_DAY
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_GET_DAY(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: PyDateTime_DATE_GET_HOUR
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_HOUR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: PyDateTime_DATE_GET_MINUTE
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_MINUTE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: PyDateTime_DATE_GET_SECOND
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_SECOND(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: PyDateTime_DATE_GET_MICROSECOND
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_MICROSECOND(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: PyDateTime_DATE_GET_FOLD
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DATE_GET_FOLD(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: PyDateTime_TIME_GET_HOUR
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_HOUR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: PyDateTime_TIME_GET_MINUTE
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_MINUTE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: PyDateTime_TIME_GET_SECOND
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_SECOND(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: PyDateTime_TIME_GET_MICROSECOND
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_MICROSECOND(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: PyDateTime_TIME_GET_FOLD
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_TIME_GET_FOLD(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: PyDateTime_DELTA_GET_DAYS
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DELTA_GET_DAYS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: PyDateTime_DELTA_GET_SECONDS
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DELTA_GET_SECONDS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: PyDateTime_DELTA_GET_MICROSECONDS
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_DELTA_GET_MICROSECONDS(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: PyDate_Check
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: PyDate_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: PyDateTime_Check
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: PyDateTime_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: PyTime_Check
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: PyTime_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: PyDelta_Check
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: PyDelta_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: PyTZInfo_Check
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTZInfo_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: PyTZInfo_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTZInfo_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - year
    - ','
    - month
    - ','
    - day
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: PyDate_FromDate
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_FromDate(year, month, day)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - year
    - ','
    - month
    - ','
    - day
    - ','
    - hour
    - ','
    - min
    - ','
    - sec
    - ','
    - usec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: PyDateTime_FromDateAndTime
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - year
    - ','
    - month
    - ','
    - day
    - ','
    - hour
    - ','
    - min
    - ','
    - sec
    - ','
    - usec
    - ','
    - fold
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: PyDateTime_FromDateAndTimeAndFold
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec,
      usec, fold)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - hour
    - ','
    - minute
    - ','
    - second
    - ','
    - usecond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: PyTime_FromTime
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_FromTime(hour, minute, second, usecond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - hour
    - ','
    - minute
    - ','
    - second
    - ','
    - usecond
    - ','
    - fold
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: PyTime_FromTimeAndFold
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTime_FromTimeAndFold(hour, minute, second, usecond, fold)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - days
    - ','
    - seconds
    - ','
    - useconds
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: PyDelta_FromDSU
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDelta_FromDSU(days, seconds, useconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: PyTimeZone_FromOffset
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTimeZone_FromOffset(offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - offset
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: PyTimeZone_FromOffsetAndName
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTimeZone_FromOffsetAndName(offset, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 248
    functionName: PyDateTime_FromTimestamp
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDateTime_FromTimestamp(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: PyDate_FromTimestamp
    functionSourceFile: /src/Python-3.8.3/Include/datetime.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDate_FromTimestamp(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: PyMem_MALLOC
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_MALLOC(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: PyMem_REALLOC
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_REALLOC(p, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PyMem_FREE
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_FREE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: PyMem_New
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_New(type, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: PyMem_NEW
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_NEW(type, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - type
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: PyMem_Resize
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_Resize(p, type, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - type
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: PyMem_RESIZE
    functionSourceFile: /src/Python-3.8.3/Include/pymem.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMem_RESIZE(p, type, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: _PyIsSelectable_fd
    functionSourceFile: /src/Python-3.8.3/Include/fileobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyIsSelectable_fd(FD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FD
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: _PyIsSelectable_fd
    functionSourceFile: /src/Python-3.8.3/Include/fileobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyIsSelectable_fd(FD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: Py_ISLOWER
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: Py_ISUPPER
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Py_ISALPHA
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: Py_ISDIGIT
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Py_ISXDIGIT
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ISXDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: Py_ISALNUM
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: Py_ISSPACE
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Py_TOLOWER
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TOLOWER(c)
  - 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: Py_TOUPPER
    functionSourceFile: /src/Python-3.8.3/Include/pyctype.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TOUPPER(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyFloat_Check
    functionSourceFile: /src/Python-3.8.3/Include/floatobject.h
    functionUses: 351
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFloat_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: PyFloat_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/floatobject.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFloat_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sign
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Py_RETURN_INF
    functionSourceFile: /src/Python-3.8.3/Include/floatobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_RETURN_INF(sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: PyFloat_AS_DOUBLE
    functionSourceFile: /src/Python-3.8.3/Include/floatobject.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFloat_AS_DOUBLE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: Module
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 75
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Module(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: Interactive
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Interactive(a0, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    functionName: Expression
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Expression(a0, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: FunctionType
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FunctionType(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: Suite
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Suite(a0, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - ','
    - a10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    functionName: FunctionDef
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - ','
    - a10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    functionName: AsyncFunctionDef
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - )
    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: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: ClassDef
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: Return
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Return(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    functionName: Delete
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Delete(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    functionName: Assign
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assign(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    functionName: AugAssign
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AugAssign(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: AnnAssign
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AnnAssign(a0, a1, a2, a3, a4, a5, a6, a7, a8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - )
    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: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: For
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: For(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - )
    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: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: AsyncFor
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AsyncFor(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 530
    functionName: While
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: While(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: If
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: If(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: With
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: With(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: AsyncWith
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AsyncWith(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: Raise
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Raise(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 549
    functionName: Try
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Try(a0, a1, a2, a3, a4, a5, a6, a7, a8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 553
    functionName: Assert
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assert(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: Import
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Import(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: ImportFrom
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ImportFrom(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 563
    functionName: Global
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Global(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    functionName: Nonlocal
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Nonlocal(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: Expr
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Expr(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 572
    functionName: Pass
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Pass(a0, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 575
    functionName: Break
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Break(a0, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 578
    functionName: Continue
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Continue(a0, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 581
    functionName: BoolOp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BoolOp(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 584
    functionName: NamedExpr
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NamedExpr(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: BinOp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BinOp(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 592
    functionName: UnaryOp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UnaryOp(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: Lambda
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lambda(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 598
    functionName: IfExp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IfExp(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 602
    functionName: Dict
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 146
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Dict(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 606
    functionName: Set
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Set(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 609
    functionName: ListComp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ListComp(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 613
    functionName: SetComp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetComp(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 617
    functionName: DictComp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DictComp(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: GeneratorExp
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GeneratorExp(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 625
    functionName: Await
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Await(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: Yield
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Yield(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 631
    functionName: YieldFrom
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YieldFrom(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: Compare
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Compare(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 638
    functionName: Call
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 245
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Call(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 642
    functionName: FormattedValue
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FormattedValue(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 646
    functionName: JoinedStr
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JoinedStr(a0, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 649
    functionName: Constant
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Constant(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 652
    functionName: Attribute
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Attribute(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    functionName: Subscript
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Subscript(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 660
    functionName: Starred
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Starred(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 664
    functionName: Name
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Name(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 668
    functionName: List
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: List(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 672
    functionName: Tuple
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 534
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tuple(a0, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: Slice
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Slice(a0, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 678
    functionName: ExtSlice
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExtSlice(a0, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a0
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 680
    functionName: Index
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 129
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Index(a0, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 682
    functionName: comprehension
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: comprehension(a0, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 685
    functionName: ExceptHandler
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExceptHandler(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 690
    functionName: arguments
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arguments(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 695
    functionName: arg
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: arg(a0, a1, a2, a3, a4, a5, a6, a7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 699
    functionName: keyword
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: keyword(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 701
    functionName: alias
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: alias(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 703
    functionName: withitem
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: withitem(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a0
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 706
    functionName: TypeIgnore
    functionSourceFile: /src/Python-3.8.3/Include/Python-ast.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TypeIgnore(a0, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: PyByteArray_Check
    functionSourceFile: /src/Python-3.8.3/Include/bytearrayobject.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_Check(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: PyByteArray_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/bytearrayobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_CheckExact(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: PyByteArray_AS_STRING
    functionSourceFile: /src/Python-3.8.3/Include/bytearrayobject.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_AS_STRING(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - self
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: PyByteArray_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/bytearrayobject.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyByteArray_GET_SIZE(self)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: PyCursesWindow_Check
    functionSourceFile: /src/Python-3.8.3/Include/py_curses.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCursesWindow_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: import_curses
    functionSourceFile: /src/Python-3.8.3/Include/py_curses.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: import_curses()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: PyParser_SimpleParseString
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyParser_SimpleParseString(S, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FP
    - ','
    - S
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: PyParser_SimpleParseFile
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyParser_SimpleParseFile(FP, S, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - str
    - ','
    - p
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: Py_CompileString
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CompileString(str, p, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - str
    - ','
    - p
    - ','
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: Py_CompileStringFlags
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CompileStringFlags(str, p, s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - str
    - ','
    - s
    - ','
    - g
    - ','
    - l
    - )
    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: PyRun_String
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_String(str, s, g, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fp
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: PyRun_AnyFile
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_AnyFile(fp, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - name
    - ','
    - closeit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: PyRun_AnyFileEx
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_AnyFileEx(fp, name, closeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fp
    - ','
    - name
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: PyRun_AnyFileFlags
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_AnyFileFlags(fp, name, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: PyRun_SimpleString
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_SimpleString(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 171
    functionName: PyRun_SimpleFile
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_SimpleFile(f, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - f
    - ','
    - p
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: PyRun_SimpleFileEx
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_SimpleFileEx(f, p, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: PyRun_InteractiveOne
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_InteractiveOne(f, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - f
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: PyRun_InteractiveLoop
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_InteractiveLoop(f, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fp
    - ','
    - p
    - ','
    - s
    - ','
    - g
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: PyRun_File
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_File(fp, p, s, g, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - fp
    - ','
    - p
    - ','
    - s
    - ','
    - g
    - ','
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: PyRun_FileEx
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_FileEx(fp, p, s, g, l, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - fp
    - ','
    - p
    - ','
    - s
    - ','
    - g
    - ','
    - l
    - ','
    - flags
    - )
    argTypes:
    - 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: PyRun_FileFlags
    functionSourceFile: /src/Python-3.8.3/Include/pythonrun.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyRun_FileFlags(fp, p, s, g, l, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PyCFunction_Check
    functionSourceFile: /src/Python-3.8.3/Include/methodobject.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: PyCFunction_GET_FUNCTION
    functionSourceFile: /src/Python-3.8.3/Include/methodobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_FUNCTION(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: PyCFunction_GET_SELF
    functionSourceFile: /src/Python-3.8.3/Include/methodobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_SELF(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: PyCFunction_GET_FLAGS
    functionSourceFile: /src/Python-3.8.3/Include/methodobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_GET_FLAGS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ML
    - ','
    - SELF
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PyCFunction_New
    functionSourceFile: /src/Python-3.8.3/Include/methodobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCFunction_New(ML, SELF)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: PyLong_Check
    functionSourceFile: /src/Python-3.8.3/Include/longobject.h
    functionUses: 172
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PyLong_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/longobject.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: PyLong_AS_LONG
    functionSourceFile: /src/Python-3.8.3/Include/longobject.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyLong_AS_LONG(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: PyModule_Check
    functionSourceFile: /src/Python-3.8.3/Include/moduleobject.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: PyModule_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/moduleobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: Py_FORCE_DOUBLE
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_FORCE_DOUBLE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: Py_FORCE_DOUBLE
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_FORCE_DOUBLE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: Py_IS_NAN
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_NAN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Py_IS_NAN
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_NAN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: Py_IS_INFINITY
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_INFINITY(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: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Py_IS_INFINITY
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_INFINITY(X)
  - 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: Py_IS_FINITE
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_FINITE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: Py_IS_FINITE
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_FINITE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: Py_IS_FINITE
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_FINITE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/Python-3.8.3/Include/pymath.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: __icc_nan
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached:
    - sqrt
    linkageType: ''
    returnType: double
    signature: double __icc_nan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: Py_OVERFLOWED
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_OVERFLOWED(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: Py_OVERFLOWED
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_OVERFLOWED(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: _Py_IntegralTypeSigned
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IntegralTypeSigned(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: _Py_IntegralTypeMax
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IntegralTypeMax(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: _Py_IntegralTypeMin
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IntegralTypeMin(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: _Py_InIntegralTypeRange
    functionSourceFile: /src/Python-3.8.3/Include/pymath.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_InIntegralTypeRange(type, v)
  - 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: PyTraceBack_Check
    functionSourceFile: /src/Python-3.8.3/Include/traceback.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTraceBack_Check(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: asdl_seq_GET
    functionSourceFile: /src/Python-3.8.3/Include/asdl.h
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asdl_seq_GET(S, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: asdl_seq_LEN
    functionSourceFile: /src/Python-3.8.3/Include/asdl.h
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asdl_seq_LEN(S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - S
    - ','
    - I
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: asdl_seq_SET
    functionSourceFile: /src/Python-3.8.3/Include/asdl.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asdl_seq_SET(S, I, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - S
    - ','
    - I
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: asdl_seq_SET
    functionSourceFile: /src/Python-3.8.3/Include/asdl.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: asdl_seq_SET(S, I, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: PyTuple_Check
    functionSourceFile: /src/Python-3.8.3/Include/tupleobject.h
    functionUses: 175
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: PyTuple_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/tupleobject.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: PyObject_HEAD_INIT
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_HEAD_INIT(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PyVarObject_HEAD_INIT
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyVarObject_HEAD_INIT(type, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: _PyObject_CAST
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: _PyVarObject_CAST
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyVarObject_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: Py_REFCNT
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_REFCNT(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: Py_TYPE
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 657
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TYPE(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: Py_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 302
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SIZE(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ob
    - ','
    - tp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: PyObject_TypeCheck
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_TypeCheck(ob, tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: PyType_Check
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: PyType_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: PyType_HasFeature
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_HasFeature(t,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: PyType_FastSubclass
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_FastSubclass(t,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: _Py_INC_TPALLOCS
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INC_TPALLOCS(OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: _Py_INC_TPFREES
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_INC_TPFREES(OP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: _Py_DEC_TPFREES
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_DEC_TPFREES(OP)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyTraceMalloc_NewReference
      Src: /src/Python-3.8.3/Include/object.h:439,1
    - Dst: _Py_INC_TPALLOCS
      Src: /src/Python-3.8.3/Include/object.h:441,1
    - Dst: Py_REFCNT
      Src: /src/Python-3.8.3/Include/object.h:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: _Py_NewReference
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 16
    functionsReached:
    - Py_REFCNT
    - _PyTraceMalloc_NewReference
    - _Py_INC_TPALLOCS
    linkageType: ''
    returnType: void
    signature: void _Py_NewReference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_INC_TPFREES
      Src: /src/Python-3.8.3/Include/object.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: _Py_ForgetReference
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 6
    functionsReached:
    - _Py_INC_TPFREES
    linkageType: ''
    returnType: void
    signature: void _Py_ForgetReference(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 460
    functionName: _Py_INCREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_INCREF(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    functionName: Py_INCREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 1187
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_INCREF(op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_NegativeRefcount
      Src: /src/Python-3.8.3/Include/object.h:473,1
    - Dst: _Py_Dealloc
      Src: /src/Python-3.8.3/Include/object.h:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: _Py_DECREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached:
    - _Py_Dealloc
    - _Py_NegativeRefcount
    linkageType: ''
    returnType: void
    signature: "void _Py_DECREF(const char *filename, int lineno,\n                              PyObject
      *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    functionName: Py_DECREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 2046
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DECREF(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 527
    functionName: Py_CLEAR
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 385
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CLEAR(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Include/object.h:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: _Py_XINCREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    linkageType: ''
    returnType: void
    signature: void _Py_XINCREF(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: Py_XINCREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 139
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XINCREF(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Include/object.h:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: _Py_XDECREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached:
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void _Py_XDECREF(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    functionName: Py_XDECREF
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 751
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XDECREF(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - val1
    - ','
    - val2
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 603
    functionName: Py_RETURN_RICHCOMPARE
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_RETURN_RICHCOMPARE(val1, val2, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: Py_TRASHCAN_BEGIN_CONDITION
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TRASHCAN_BEGIN_CONDITION(op, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - dealloc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: Py_TRASHCAN_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TRASHCAN_BEGIN(op, dealloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Py_TRASHCAN_SAFE_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TRASHCAN_SAFE_BEGIN(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 742
    functionName: Py_TRASHCAN_SAFE_END
    functionSourceFile: /src/Python-3.8.3/Include/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_TRASHCAN_SAFE_END(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - g
    - ','
    - l
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: PyImport_ImportModuleEx
    functionSourceFile: /src/Python-3.8.3/Include/import.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyImport_ImportModuleEx(n, g, l, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: PyMemoryView_Check
    functionSourceFile: /src/Python-3.8.3/Include/memoryobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMemoryView_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: PyMemoryView_GET_BUFFER
    functionSourceFile: /src/Python-3.8.3/Include/memoryobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMemoryView_GET_BUFFER(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PyMemoryView_GET_BASE
    functionSourceFile: /src/Python-3.8.3/Include/memoryobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMemoryView_GET_BASE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - i
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: PyStructSequence_SET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/structseq.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStructSequence_SET_ITEM(op, i, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PyStructSequence_GET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/structseq.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyStructSequence_GET_ITEM(op, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: PyWeakref_CheckRef
    functionSourceFile: /src/Python-3.8.3/Include/weakrefobject.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_CheckRef(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: PyWeakref_CheckRefExact
    functionSourceFile: /src/Python-3.8.3/Include/weakrefobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_CheckRefExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: PyWeakref_CheckProxy
    functionSourceFile: /src/Python-3.8.3/Include/weakrefobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_CheckProxy(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: PyWeakref_Check
    functionSourceFile: /src/Python-3.8.3/Include/weakrefobject.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ref
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: PyWeakref_GET_OBJECT
    functionSourceFile: /src/Python-3.8.3/Include/weakrefobject.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyWeakref_GET_OBJECT(ref)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - so
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: PySet_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySet_GET_SIZE(so)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: PyFrozenSet_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrozenSet_CheckExact(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: PyAnySet_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAnySet_CheckExact(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: PyAnySet_Check
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAnySet_Check(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: PySet_Check
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySet_Check(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ob
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: PyFrozenSet_Check
    functionSourceFile: /src/Python-3.8.3/Include/setobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrozenSet_Check(ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PyCell_Check
    functionSourceFile: /src/Python-3.8.3/Include/cellobject.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyCell_GET
    functionSourceFile: /src/Python-3.8.3/Include/cellobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_GET(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyCell_SET
    functionSourceFile: /src/Python-3.8.3/Include/cellobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCell_SET(op, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - arg0
    - arg1
    - arg2
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: PyDTrace_LINE
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_LINE(const char *arg0, const char *arg1, int arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - arg0
    - arg1
    - arg2
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: PyDTrace_FUNCTION_ENTRY
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_FUNCTION_ENTRY(const char *arg0, const char *arg1, int
      arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - arg0
    - arg1
    - arg2
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: PyDTrace_FUNCTION_RETURN
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_FUNCTION_RETURN(const char *arg0, const char *arg1, int
      arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: PyDTrace_GC_START
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_GC_START(int arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: PyDTrace_GC_DONE
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_GC_DONE(Py_ssize_t arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: PyDTrace_INSTANCE_NEW_START
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_INSTANCE_NEW_START(int arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: PyDTrace_INSTANCE_NEW_DONE
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_INSTANCE_NEW_DONE(int arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: PyDTrace_INSTANCE_DELETE_START
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_INSTANCE_DELETE_START(int arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: PyDTrace_INSTANCE_DELETE_DONE
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_INSTANCE_DELETE_DONE(int arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - arg0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: PyDTrace_IMPORT_FIND_LOAD_START
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_IMPORT_FIND_LOAD_START(const char *arg0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - arg0
    - arg1
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: PyDTrace_IMPORT_FIND_LOAD_DONE
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_IMPORT_FIND_LOAD_DONE(const char *arg0, int arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - arg0
    - arg1
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: PyDTrace_AUDIT
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PyDTrace_AUDIT(const char *arg0, void *arg1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: PyDTrace_LINE_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_LINE_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: PyDTrace_FUNCTION_ENTRY_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_FUNCTION_ENTRY_ENABLED(void)
  - 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: PyDTrace_FUNCTION_RETURN_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_FUNCTION_RETURN_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: PyDTrace_GC_START_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_GC_START_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: PyDTrace_GC_DONE_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_GC_DONE_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: PyDTrace_INSTANCE_NEW_START_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_INSTANCE_NEW_START_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: PyDTrace_INSTANCE_NEW_DONE_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_INSTANCE_NEW_DONE_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: PyDTrace_INSTANCE_DELETE_START_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_INSTANCE_DELETE_START_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: PyDTrace_INSTANCE_DELETE_DONE_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_INSTANCE_DELETE_DONE_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_IMPORT_FIND_LOAD_START_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: PyDTrace_AUDIT_ENABLED
    functionSourceFile: /src/Python-3.8.3/Include/pydtrace.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyDTrace_AUDIT_ENABLED(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: PyCapsule_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/pycapsule.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCapsule_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: PyObject_New
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_New(type, typeobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - typeobj
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: PyObject_NewVar
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_NewVar(type, typeobj, n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Include/objimpl.h:139,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Include/objimpl.h:140,1
    - Dst: PyType_GetFlags
      Src: /src/Python-3.8.3/Include/objimpl.h:141,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/Include/objimpl.h:142,1
    - Dst: _Py_NewReference
      Src: /src/Python-3.8.3/Include/objimpl.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - op
    - typeobj
    argTypes:
    - PyObject*
    - PyTypeObject*
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/Python-3.8.3/Include/objimpl.h
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: _PyObject_INIT
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 0
    functionsReached:
    - Py_INCREF
    - _Py_NewReference
    - PyType_GetFlags
    - Py_TYPE
    - assert
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_INIT(PyObject *op, PyTypeObject *typeobj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: PyObject_INIT
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_INIT(op, typeobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Include/objimpl.h:154,1
    - Dst: Py_SIZE
      Src: /src/Python-3.8.3/Include/objimpl.h:155,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/Include/objimpl.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - op
    - typeobj
    - size
    argTypes:
    - PyVarObject*
    - PyTypeObject*
    - Py_ssize_t
    assertStmts:
    - condition: (op != NULL)
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/Python-3.8.3/Include/objimpl.h
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: _PyObject_INIT_VAR
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 0
    functionsReached:
    - assert
    - Py_SIZE
    - PyObject_INIT
    linkageType: ''
    returnType: PyVarObject
    signature: 'PyVarObject *

      _PyObject_INIT_VAR(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - typeobj
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: PyObject_INIT_VAR
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_INIT_VAR(op, typeobj, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: _PyObject_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_SIZE(typeobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typeobj
    - ','
    - nitems
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: _PyObject_VAR_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_VAR_SIZE(typeobj, nitems)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: PyObject_NEW
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_NEW(type, typeobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - typeobj
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: PyObject_NEW_VAR
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_NEW_VAR(type, typeobj, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: PyType_IS_GC
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_IS_GC(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - op
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: PyObject_GC_Resize
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_GC_Resize(type, op, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - typeobj
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: PyObject_GC_New
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_GC_New(type, typeobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - typeobj
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: PyObject_GC_NewVar
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_GC_NewVar(type, typeobj, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: Py_VISIT
    functionSourceFile: /src/Python-3.8.3/Include/objimpl.h
    functionUses: 158
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_VISIT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: Py_GETENV
    functionSourceFile: /src/Python-3.8.3/Include/pydebug.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_GETENV(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: NCH
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 64
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: CHILD
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 73
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHILD(n, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: RCHILD
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RCHILD(n, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: TYPE
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 746
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: STR
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: LINENO
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LINENO(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: REQ
    functionSourceFile: /src/Python-3.8.3/Include/node.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REQ(n, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: PySlice_Check
    functionSourceFile: /src/Python-3.8.3/Include/sliceobject.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySlice_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - slice
    - ','
    - length
    - ','
    - start
    - ','
    - stop
    - ','
    - step
    - ','
    - slicelen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: PySlice_GetIndicesEx
    functionSourceFile: /src/Python-3.8.3/Include/sliceobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySlice_GetIndicesEx(slice, length, start, stop, step, slicelen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: HAS_ARG
    functionSourceFile: /src/Python-3.8.3/Include/opcode.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_ARG(op)
  - 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: 6
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 6
    functionName: Py_MIN
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_MIN(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: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: Py_MAX
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_MAX(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: Py_ABS
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ABS(x)
  - 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: _Py_XSTRINGIFY
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_XSTRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: Py_STRINGIFY
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: Py_MEMBER_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_MEMBER_SIZE(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: Py_CHARMASK
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_CHARMASK(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Py_BUILD_ASSERT_EXPR
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BUILD_ASSERT_EXPR(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Py_BUILD_ASSERT
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_BUILD_ASSERT(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Py_ARRAY_LENGTH
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ARRAY_LENGTH(array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Py_ARRAY_LENGTH
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ARRAY_LENGTH(array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: PyDoc_VAR
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDoc_VAR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: PyDoc_STRVAR
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDoc_STRVAR(name,str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: PyDoc_STR
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDoc_STR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: PyDoc_STR
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDoc_STR(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: _Py_SIZE_ROUND_DOWN
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SIZE_ROUND_DOWN(n, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: _Py_SIZE_ROUND_UP
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SIZE_ROUND_UP(n, 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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: _Py_ALIGN_DOWN
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGN_DOWN(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: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: _Py_ALIGN_UP
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ALIGN_UP(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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: _Py_IS_ALIGNED
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IS_ALIGNED(p, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: Py_UNUSED
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNUSED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: Py_UNUSED
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNUSED(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Py_UNREACHABLE
    functionSourceFile: /src/Python-3.8.3/Include/pymacro.h
    functionUses: 67
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: PyObject_DelAttrString
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_DelAttrString(O,A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: PyObject_DelAttr
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_DelAttr(O,A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: PySequence_Fast_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySequence_Fast_GET_SIZE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 697
    functionName: PySequence_Fast_GET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySequence_Fast_GET_ITEM(o, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: PySequence_Fast_ITEMS
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySequence_Fast_ITEMS(sf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 777
    functionName: PyMapping_DelItemString
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMapping_DelItemString(O,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - O
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: PyMapping_DelItem
    functionSourceFile: /src/Python-3.8.3/Include/abstract.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMapping_DelItem(O,K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: _PyGenObject_HEAD
    functionSourceFile: /src/Python-3.8.3/Include/genobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGenObject_HEAD(prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PyGen_Check
    functionSourceFile: /src/Python-3.8.3/Include/genobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyGen_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: PyGen_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/genobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyGen_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: PyCoro_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/genobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCoro_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: PyAsyncGen_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/genobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAsyncGen_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyMethod_Check
    functionSourceFile: /src/Python-3.8.3/Include/classobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMethod_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: PyMethod_GET_FUNCTION
    functionSourceFile: /src/Python-3.8.3/Include/classobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMethod_GET_FUNCTION(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: PyMethod_GET_SELF
    functionSourceFile: /src/Python-3.8.3/Include/classobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyMethod_GET_SELF(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: PyInstanceMethod_Check
    functionSourceFile: /src/Python-3.8.3/Include/classobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInstanceMethod_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - meth
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: PyInstanceMethod_GET_FUNCTION
    functionSourceFile: /src/Python-3.8.3/Include/classobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyInstanceMethod_GET_FUNCTION(meth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: PyComplex_Check
    functionSourceFile: /src/Python-3.8.3/Include/complexobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyComplex_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: PyComplex_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/complexobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyComplex_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: Py_LOCAL
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: Py_LOCAL_INLINE
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LOCAL_INLINE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: Py_LOCAL
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LOCAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    functionName: Py_LOCAL_INLINE
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LOCAL_INLINE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: S_ISREG
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: S_ISDIR
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: S_ISCHR
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - I
    - ','
    - J
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: Py_ARITHMETIC_RIGHT_SHIFT
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - I
    - ','
    - J
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: Py_ARITHMETIC_RIGHT_SHIFT
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ARITHMETIC_RIGHT_SHIFT(TYPE, I, J)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: Py_FORCE_EXPANSION
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_FORCE_EXPANSION(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - VALUE
    - ','
    - WIDE
    - ','
    - NARROW
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Py_SAFE_DOWNCAST
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - VALUE
    - ','
    - WIDE
    - ','
    - NARROW
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: Py_SAFE_DOWNCAST
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: _Py_SET_EDOM_FOR_NAN
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SET_EDOM_FOR_NAN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: _Py_SET_EDOM_FOR_NAN
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_SET_EDOM_FOR_NAN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: Py_SET_ERRNO_ON_MATH_ERROR
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_ERRNO_ON_MATH_ERROR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: Py_SET_ERANGE_IF_OVERFLOW
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SET_ERANGE_IF_OVERFLOW(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: Py_ADJUST_ERANGE1
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ADJUST_ERANGE1(X)
  - 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: 387
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: Py_ADJUST_ERANGE2
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ADJUST_ERANGE2(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VERSION_UNUSED
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: Py_DEPRECATED
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DEPRECATED(VERSION_UNUSED)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: Py_DEPRECATED
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_DEPRECATED(VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 609
    functionName: isalnum
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    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: 611
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 611
    functionName: isalpha
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    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: 613
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 613
    functionName: islower
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    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: 615
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 615
    functionName: isspace
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    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: 617
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 617
    functionName: isupper
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 4
    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: 619
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 619
    functionName: tolower
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: tolower(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 621
    functionName: toupper
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: toupper(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 653
    functionName: PyAPI_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_FUNC(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 654
    functionName: PyAPI_DATA
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_DATA(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 669
    functionName: PyAPI_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_FUNC(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 671
    functionName: PyAPI_DATA
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_DATA(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 684
    functionName: PyAPI_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_FUNC(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - RTYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 687
    functionName: PyAPI_DATA
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyAPI_DATA(RTYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Py_GCC_ATTRIBUTE
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_GCC_ATTRIBUTE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 748
    functionName: Py_ALIGNED
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ALIGNED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Py_LL
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Py_ULL
    functionSourceFile: /src/Python-3.8.3/Include/pyport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_ULL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cv
    - ','
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: _Py_ANNOTATE_CONDVAR_LOCK_WAIT
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: _Py_ANNOTATE_CONDVAR_WAIT
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_CONDVAR_WAIT(cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: _Py_ANNOTATE_CONDVAR_SIGNAL
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_CONDVAR_SIGNAL(cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: _Py_ANNOTATE_CONDVAR_SIGNAL_ALL
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: _Py_ANNOTATE_HAPPENS_BEFORE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_HAPPENS_BEFORE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: _Py_ANNOTATE_HAPPENS_AFTER
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_HAPPENS_AFTER(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pointer
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: _Py_ANNOTATE_PUBLISH_MEMORY_RANGE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mu
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: _Py_ANNOTATE_NEW_MEMORY
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_NEW_MEMORY(address, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pcq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: _Py_ANNOTATE_PCQ_CREATE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PCQ_CREATE(pcq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pcq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: _Py_ANNOTATE_PCQ_DESTROY
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PCQ_DESTROY(pcq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pcq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: _Py_ANNOTATE_PCQ_PUT
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PCQ_PUT(pcq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pcq
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: _Py_ANNOTATE_PCQ_GET
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_PCQ_GET(pcq)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pointer
    - ','
    - description
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: _Py_ANNOTATE_BENIGN_RACE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BENIGN_RACE(pointer, description)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - address
    - ','
    - size
    - ','
    - description
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: _Py_ANNOTATE_BENIGN_RACE_SIZED
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: _Py_ANNOTATE_IGNORE_READS_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_READS_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: _Py_ANNOTATE_IGNORE_READS_END
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_READS_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: _Py_ANNOTATE_IGNORE_WRITES_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_WRITES_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: _Py_ANNOTATE_IGNORE_WRITES_END
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_WRITES_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: _Py_ANNOTATE_IGNORE_SYNC_BEGIN
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_SYNC_BEGIN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: _Py_ANNOTATE_IGNORE_SYNC_END
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_IGNORE_SYNC_END()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - enable
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: _Py_ANNOTATE_ENABLE_RACE_DETECTION
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: _Py_ANNOTATE_TRACE_MEMORY
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_TRACE_MEMORY(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: _Py_ANNOTATE_THREAD_NAME
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_THREAD_NAME(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: _Py_ANNOTATE_RWLOCK_CREATE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_RWLOCK_CREATE(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lock
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: _Py_ANNOTATE_RWLOCK_DESTROY
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_RWLOCK_DESTROY(lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lock
    - ','
    - is_w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: _Py_ANNOTATE_RWLOCK_ACQUIRED
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lock
    - ','
    - is_w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: _Py_ANNOTATE_RWLOCK_RELEASED
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - barrier
    - ','
    - count
    - ','
    - reinitialization_allowed
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: _Py_ANNOTATE_BARRIER_INIT
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - barrier
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: _Py_ANNOTATE_BARRIER_WAIT_BEFORE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - barrier
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: _Py_ANNOTATE_BARRIER_WAIT_AFTER
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - barrier
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: _Py_ANNOTATE_BARRIER_DESTROY
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BARRIER_DESTROY(barrier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - description
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: _Py_ANNOTATE_EXPECT_RACE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_EXPECT_RACE(address, description)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: _Py_ANNOTATE_NO_OP
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_NO_OP(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: _Py_ANNOTATE_FLUSH_STATE
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_FLUSH_STATE()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ANNOTATE_IGNORE_READS_BEGIN
      Src: /src/Python-3.8.3/Include/dynamic_annotations.h:474,1
    - Dst: _Py_ANNOTATE_IGNORE_READS_END
      Src: /src/Python-3.8.3/Include/dynamic_annotations.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: _Py_ANNOTATE_UNPROTECTED_READ
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached:
    - _Py_ANNOTATE_IGNORE_READS_BEGIN
    - _Py_ANNOTATE_IGNORE_READS_END
    linkageType: ''
    returnType: T
    signature: T _Py_ANNOTATE_UNPROTECTED_READ(const volatile T &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - static_var
    - ','
    - description
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 492
    functionName: _Py_ANNOTATE_BENIGN_RACE_STATIC
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: _Py_ANNOTATE_UNPROTECTED_READ
    functionSourceFile: /src/Python-3.8.3/Include/dynamic_annotations.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_ANNOTATE_UNPROTECTED_READ(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcname
    - ','
    - kwargs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: _PyArg_NoKeywords
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyArg_NoKeywords(funcname, kwargs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - funcname
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: _PyArg_NoPositional
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyArg_NoPositional(funcname, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - funcname
    - ','
    - nargs
    - ','
    - min
    - ','
    - max
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: _PyArg_CheckPositional
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 355
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyArg_CheckPositional(funcname, nargs, min, max)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - args
    - ','
    - nargs
    - ','
    - kwargs
    - ','
    - kwnames
    - ','
    - parser
    - ','
    - minpos
    - ','
    - maxpos
    - ','
    - minkw
    - ','
    - buf
    - )
    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: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: _PyArg_UnpackKeywords
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 246
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos,
      maxpos, minkw, buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: PyModule_AddIntMacro
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_AddIntMacro(m, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: PyModule_AddStringMacro
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_AddStringMacro(m, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - module
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: PyModule_Create
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_Create(module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - module
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: PyModule_Create
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_Create(module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: PyModule_FromDefAndSpec
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_FromDefAndSpec(module, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - module
    - ','
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: PyModule_FromDefAndSpec
    functionSourceFile: /src/Python-3.8.3/Include/modsupport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyModule_FromDefAndSpec(module, spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: PyFunction_Check
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: PyFunction_GET_CODE
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_CODE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: PyFunction_GET_GLOBALS
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_GLOBALS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: PyFunction_GET_MODULE
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_MODULE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: PyFunction_GET_DEFAULTS
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_DEFAULTS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: PyFunction_GET_KW_DEFAULTS
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_KW_DEFAULTS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: PyFunction_GET_CLOSURE
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_CLOSURE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: PyFunction_GET_ANNOTATIONS
    functionSourceFile: /src/Python-3.8.3/Include/funcobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFunction_GET_ANNOTATIONS(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: ISTERMINAL
    functionSourceFile: /src/Python-3.8.3/Include/token.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISTERMINAL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: ISNONTERMINAL
    functionSourceFile: /src/Python-3.8.3/Include/token.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISNONTERMINAL(x)
  - 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: ISEOF
    functionSourceFile: /src/Python-3.8.3/Include/token.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISEOF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - seconds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: _PYTIME_FROMSECONDS
    functionSourceFile: /src/Python-3.8.3/Include/pytime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PYTIME_FROMSECONDS(seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: PyDoc_STRVAR_shared
    functionSourceFile: /src/Python-3.8.3/Include/bytes_methods.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDoc_STRVAR_shared(name,str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - callable
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: PyEval_CallObject
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyEval_CallObject(callable, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - where
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: Py_EnterRecursiveCall
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_EnterRecursiveCall(where)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: Py_LeaveRecursiveCall
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LeaveRecursiveCall()
  - 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: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: _Py_MakeRecCheck
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_MakeRecCheck(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: _Py_MakeRecCheck
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_MakeRecCheck(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - limit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: _Py_RecursionLimitLowerWaterMark
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_RecursionLimitLowerWaterMark(limit)
  - 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: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: _Py_MakeEndRecCheck
    functionSourceFile: /src/Python-3.8.3/Include/ceval.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_MakeEndRecCheck(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ss
    - ','
    - ibit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: testbit
    functionSourceFile: /src/Python-3.8.3/Include/bitset.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testbit(ss, ibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ibit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: BIT2BYTE
    functionSourceFile: /src/Python-3.8.3/Include/bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT2BYTE(ibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ibit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: BIT2SHIFT
    functionSourceFile: /src/Python-3.8.3/Include/bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT2SHIFT(ibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ibit
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: BIT2MASK
    functionSourceFile: /src/Python-3.8.3/Include/bitset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIT2MASK(ibit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: PyThreadState_GET
    functionSourceFile: /src/Python-3.8.3/Include/pystate.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyThreadState_GET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: PyContext_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/context.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyContext_CheckExact(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PyContextVar_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/context.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyContextVar_CheckExact(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyContextToken_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/context.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyContextToken_CheckExact(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: _Py_OPCODE
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_OPCODE(word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: _Py_OPARG
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_OPARG(word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: _Py_OPCODE
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_OPCODE(word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: _Py_OPARG
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_OPARG(word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: PyCode_Check
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCode_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: PyCode_GetNumFree
    functionSourceFile: /src/Python-3.8.3/Include/code.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyCode_GetNumFree(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: PyList_Check
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 82
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: PyList_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: PyList_GET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_GET_ITEM(op, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - i
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: PyList_SET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_SET_ITEM(op, i, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: PyList_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyList_GET_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: _PyList_ITEMS
    functionSourceFile: /src/Python-3.8.3/Include/listobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyList_ITEMS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: PyPickleBuffer_Check
    functionSourceFile: /src/Python-3.8.3/Include/picklebufobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyPickleBuffer_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: PyBytes_Check
    functionSourceFile: /src/Python-3.8.3/Include/bytesobject.h
    functionUses: 131
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBytes_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: PyBytes_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/bytesobject.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBytes_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PyBytes_AS_STRING
    functionSourceFile: /src/Python-3.8.3/Include/bytesobject.h
    functionUses: 250
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBytes_AS_STRING(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: PyBytes_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/bytesobject.h
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyBytes_GET_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: PyDict_Check
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 112
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDict_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: PyDict_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDict_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: PyDictKeys_Check
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDictKeys_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: PyDictValues_Check
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDictValues_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: PyDictItems_Check
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDictItems_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: PyDictViewSet_Check
    functionSourceFile: /src/Python-3.8.3/Include/dictobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDictViewSet_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: PyODict_Check
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: PyODict_CheckExact
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_CheckExact(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: PyODict_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - od
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PyODict_GetItem
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_GetItem(od, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - od
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: PyODict_GetItemWithError
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_GetItemWithError(od, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - od
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: PyODict_Contains
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_Contains(od, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - od
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: PyODict_Size
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_Size(od)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - od
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PyODict_GetItemString
    functionSourceFile: /src/Python-3.8.3/Include/odictobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyODict_GetItemString(od, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: _PyErr_OCCURRED
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyErr_OCCURRED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: _PyErr_OCCURRED
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyErr_OCCURRED()
  - 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: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: PyExceptionClass_Check
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyExceptionClass_Check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: PyExceptionInstance_Check
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyExceptionInstance_Check(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PyExceptionInstance_Class
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyExceptionInstance_Class(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: PyErr_BadInternalCall
    functionSourceFile: /src/Python-3.8.3/Include/pyerrors.h
    functionUses: 144
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_BadInternalCall()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: PyFrame_Check
    functionSourceFile: /src/Python-3.8.3/Include/frameobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyFrame_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Py_UNICODE_ISSPACE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISSPACE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Py_UNICODE_ISLOWER
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISLOWER(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: Py_UNICODE_ISUPPER
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISUPPER(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Py_UNICODE_ISTITLE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISTITLE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: Py_UNICODE_ISLINEBREAK
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISLINEBREAK(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: Py_UNICODE_TOLOWER
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TOLOWER(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: Py_UNICODE_TOUPPER
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TOUPPER(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: Py_UNICODE_TOTITLE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TOTITLE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Py_UNICODE_ISDECIMAL
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISDECIMAL(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: Py_UNICODE_ISDIGIT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISDIGIT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Py_UNICODE_ISNUMERIC
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISNUMERIC(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Py_UNICODE_ISPRINTABLE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISPRINTABLE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: Py_UNICODE_TODECIMAL
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TODECIMAL(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: Py_UNICODE_TODIGIT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TODIGIT(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: Py_UNICODE_TONUMERIC
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_TONUMERIC(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: Py_UNICODE_ISALPHA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISALPHA(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: Py_UNICODE_ISALNUM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_ISALNUM(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - target
    - ','
    - source
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Py_UNICODE_COPY
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_COPY(target, source, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - target
    - ','
    - value
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Py_UNICODE_FILL
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_FILL(target, value, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: Py_UNICODE_IS_SURROGATE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_IS_SURROGATE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: Py_UNICODE_IS_HIGH_SURROGATE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_IS_HIGH_SURROGATE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: Py_UNICODE_IS_LOW_SURROGATE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_IS_LOW_SURROGATE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - high
    - ','
    - low
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Py_UNICODE_JOIN_SURROGATES
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_JOIN_SURROGATES(high, low)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: Py_UNICODE_HIGH_SURROGATE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_HIGH_SURROGATE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ch
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: Py_UNICODE_LOW_SURROGATE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_LOW_SURROGATE(ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - string
    - ','
    - offset
    - ','
    - substring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Py_UNICODE_MATCH
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_UNICODE_MATCH(string, offset, substring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: PyUnicode_WSTR_LENGTH
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_WSTR_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: PyUnicode_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_GET_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: PyUnicode_GET_DATA_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_GET_DATA_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: PyUnicode_AS_UNICODE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_AS_UNICODE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: PyUnicode_AS_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_AS_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: PyUnicode_IS_ASCII
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_ASCII(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: PyUnicode_IS_COMPACT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_COMPACT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: PyUnicode_IS_COMPACT_ASCII
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_COMPACT_ASCII(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: PyUnicode_1BYTE_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_1BYTE_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: PyUnicode_2BYTE_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_2BYTE_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: PyUnicode_4BYTE_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_4BYTE_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: PyUnicode_KIND
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 141
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_KIND(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: _PyUnicode_COMPACT_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_COMPACT_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: _PyUnicode_NONCOMPACT_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicode_NONCOMPACT_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: PyUnicode_DATA
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 123
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_DATA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - kind
    - ','
    - data
    - ','
    - index
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: PyUnicode_WRITE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_WRITE(kind, data, index, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - kind
    - ','
    - data
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: PyUnicode_READ
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 87
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READ(kind, data, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - unicode
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 415
    functionName: PyUnicode_READ_CHAR
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READ_CHAR(unicode, index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: PyUnicode_GET_LENGTH
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 250
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_GET_LENGTH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: PyUnicode_IS_READY
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_IS_READY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 438
    functionName: PyUnicode_READY
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 208
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_READY(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: PyUnicode_MAX_CHAR_VALUE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyUnicode_MAX_CHAR_VALUE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - WRITER
    - ','
    - LENGTH
    - ','
    - MAXCHAR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 646
    functionName: _PyUnicodeWriter_Prepare
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicodeWriter_Prepare(WRITER, LENGTH, MAXCHAR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - WRITER
    - ','
    - KIND
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 663
    functionName: _PyUnicodeWriter_PrepareKind
    functionSourceFile: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyUnicodeWriter_PrepareKind(WRITER, KIND)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: _PyTuple_CAST
    functionSourceFile: /src/Python-3.8.3/Include/cpython/tupleobject.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTuple_CAST(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: PyTuple_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/tupleobject.h
    functionUses: 458
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_GET_SIZE(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: PyTuple_GET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/tupleobject.h
    functionUses: 231
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_GET_ITEM(op, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - op
    - ','
    - i
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: PyTuple_SET_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/tupleobject.h
    functionUses: 135
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyTuple_SET_ITEM(op, i, v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: _Py_static_string_init
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_static_string_init(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - varname
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: _Py_static_string
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_static_string(varname, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - varname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: _Py_IDENTIFIER
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 252
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_IDENTIFIER(varname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - etype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: PyHeapType_GET_MEMBERS
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyHeapType_GET_MEMBERS(etype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: PyType_HasFeature
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_HasFeature(t,f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Include/cpython/object.h:341,1
    - Dst: _Py_ForgetReference
      Src: /src/Python-3.8.3/Include/cpython/object.h:343,1
    - Dst: _Py_INC_TPFREES
      Src: /src/Python-3.8.3/Include/cpython/object.h:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - op
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: _Py_Dealloc_inline
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 0
    functionsReached:
    - _Py_INC_TPFREES
    - _Py_ForgetReference
    - Py_TYPE
    linkageType: ''
    returnType: void
    signature: void _Py_Dealloc_inline(PyObject *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: _Py_Dealloc
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_Dealloc(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: Py_SETREF
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 71
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_SETREF(op, op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - op
    - ','
    - op2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 384
    functionName: Py_XSETREF
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 118
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_XSETREF(op, op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - obj
    - ','
    - expr
    - ','
    - msg
    - ','
    - filename
    - ','
    - lineno
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: _PyObject_ASSERT_FROM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - obj
    - ','
    - expr
    - ','
    - msg
    - ','
    - filename
    - ','
    - lineno
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: _PyObject_ASSERT_FROM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT_FROM(obj, expr, msg, filename, lineno, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - obj
    - ','
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: _PyObject_ASSERT_WITH_MSG
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT_WITH_MSG(obj, expr, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: _PyObject_ASSERT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT(obj, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - obj
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: _PyObject_ASSERT_FAILED_MSG
    functionSourceFile: /src/Python-3.8.3/Include/cpython/object.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_ASSERT_FAILED_MSG(obj, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: PyObject_IS_GC
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_IS_GC(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: _Py_AS_GC
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_AS_GC(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: _PyObject_GC_IS_TRACKED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_GC_IS_TRACKED(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: _PyObject_GC_MAY_BE_TRACKED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_GC_MAY_BE_TRACKED(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _PyGCHead_NEXT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_NEXT(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - g
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: _PyGCHead_SET_NEXT
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_SET_NEXT(g, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: _PyGCHead_PREV
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_PREV(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - g
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: _PyGCHead_SET_PREV
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_SET_PREV(g, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: _PyGCHead_FINALIZED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_FINALIZED(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: _PyGCHead_SET_FINALIZED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGCHead_SET_FINALIZED(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: _PyGC_FINALIZED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGC_FINALIZED(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: _PyGC_SET_FINALIZED
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyGC_SET_FINALIZED(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: PyType_SUPPORTS_WEAKREFS
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyType_SUPPORTS_WEAKREFS(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: PyObject_GET_WEAKREFS_LISTPTR
    functionSourceFile: /src/Python-3.8.3/Include/cpython/objimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_GET_WEAKREFS_LISTPTR(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: PyVectorcall_NARGS
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: Py_ssize_t
    signature: Py_ssize_t PyVectorcall_NARGS(size_t n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:83,1
    - Dst: PyType_HasFeature
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:86,1
    - Dst: assert
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:89,1
    - Dst: PyCallable_Check
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:89,1
    - Dst: assert
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - callable
    argTypes:
    - PyObject*
    assertStmts:
    - condition: (offset > 0)
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
    - condition: (PyCallable_Check(callable))
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: _PyVectorcall_Function
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 4
    functionsReached:
    - assert
    - PyType_HasFeature
    - Py_TYPE
    - PyCallable_Check
    linkageType: ''
    returnType: vectorcallfunc
    signature: vectorcallfunc _PyVectorcall_Function(PyObject *callable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:120,1
    - Dst: PyTuple_Check
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:120,1
    - Dst: assert
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:121,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:121,1
    - Dst: _PyVectorcall_Function
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:122,1
    - Dst: PyVectorcall_NARGS
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:124,1
    - Dst: _PyObject_MakeTpCall
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:125,1
    - Dst: func
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:127,1
    - Dst: _Py_CheckFunctionResult
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - callable
    - args
    - nargsf
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - size_t
    - PyObject*
    assertStmts:
    - condition: (kwnames == NULL || PyTuple_Check(kwnames))
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
    - condition: (args != NULL || PyVectorcall_NARGS(nargsf) == 0)
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: _PyObject_Vectorcall
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 10
    functionsReached:
    - _PyObject_MakeTpCall
    - _Py_CheckFunctionResult
    - PyVectorcall_NARGS
    - func
    - _PyVectorcall_Function
    - PyTuple_Check
    - assert
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_PyObject_Vectorcall(PyObject *callable, PyObject *const
      *args,\n                     size_t nargsf, PyObject *kwnames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - func
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: _PyObject_FastCall
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 30
    functionsReached:
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_FastCall(PyObject *func, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_Vectorcall
      Src: /src/Python-3.8.3/Include/cpython/abstract.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: _PyObject_CallNoArg
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 67
    functionsReached:
    - _PyObject_Vectorcall
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _PyObject_CallNoArg(PyObject *func)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: PyObject_CheckBuffer
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyObject_CheckBuffer(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: PyIter_Check
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyIter_Check(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 272
    functionName: PyIndex_Check
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyIndex_Check(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - o
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: PySequence_ITEM
    functionSourceFile: /src/Python-3.8.3/Include/cpython/abstract.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PySequence_ITEM(o, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: PyDict_GET_SIZE
    functionSourceFile: /src/Python-3.8.3/Include/cpython/dictobject.h
    functionUses: 83
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyDict_GET_SIZE(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: _PyDict_HasSplitTable
    functionSourceFile: /src/Python-3.8.3/Include/cpython/dictobject.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyDict_HasSplitTable(d)
  - 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: PyExceptionClass_Name
    functionSourceFile: /src/Python-3.8.3/Include/cpython/pyerrors.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyExceptionClass_Name(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - runtime
    - ','
    - tstate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: _Py_CURRENTLY_FINALIZING
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_CURRENTLY_FINALIZING(runtime, tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - runtime
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: _PyRuntimeState_GetThreadState
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyRuntimeState_GetThreadState(runtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 286
    functionName: _PyThreadState_GET
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyThreadState_GET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: PyThreadState_GET
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyThreadState_GET()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: _PyInterpreterState_GET_UNSAFE
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyInterpreterState_GET_UNSAFE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: _PyTuple_ITEMS
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_tupleobject.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyTuple_ITEMS(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT_FROM
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:30,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:30,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:34,1
    - Dst: _PyObject_ASSERT_FROM
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:35,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:41,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:42,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 45
    functionName: _PyObject_GC_TRACK_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_object.h
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT_FROM
    - _Py_AS_GC
    - _PyGCHead_SET_PREV
    - _PyObject_GC_IS_TRACKED
    - _PyGCHead_SET_NEXT
    linkageType: ''
    returnType: void
    signature: "void _PyObject_GC_TRACK_impl(const char *filename, int lineno,\n                                           PyObject
      *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: _PyObject_GC_TRACK
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_object.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_GC_TRACK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _PyObject_ASSERT_FROM
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:62,1
    - Dst: _PyObject_GC_IS_TRACKED
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:62,1
    - Dst: _Py_AS_GC
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:66,1
    - Dst: _PyGCHead_PREV
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:67,1
    - Dst: _PyGCHead_NEXT
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:68,1
    - Dst: _PyGCHead_SET_NEXT
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:69,1
    - Dst: _PyGCHead_SET_PREV
      Src: /src/Python-3.8.3/Include/internal/pycore_object.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - filename
    - lineno
    - op
    argTypes:
    - char*
    - int
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: _PyObject_GC_UNTRACK_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_object.h
    functionUses: 0
    functionsReached:
    - _PyObject_ASSERT_FROM
    - _PyGCHead_NEXT
    - _Py_AS_GC
    - _PyGCHead_PREV
    - _PyGCHead_SET_PREV
    - _PyObject_GC_IS_TRACKED
    - _PyGCHead_SET_NEXT
    linkageType: ''
    returnType: void
    signature: "void _PyObject_GC_UNTRACK_impl(const char *filename, int lineno,\n
      \                                            PyObject *op)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: _PyObject_GC_UNTRACK
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_object.h
    functionUses: 56
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyObject_GC_UNTRACK(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tstate
    argTypes:
    - PyThreadState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: _PyErr_Occurred
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pyerrors.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: PyObject * _PyErr_Occurred(PyThreadState *tstate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: PyHamt_Check
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_hamt.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyHamt_Check(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: _PyStatus_GET_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_GET_FUNC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: _PyStatus_GET_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_GET_FUNC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: _PyStatus_OK
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 101
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_OK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ERR_MSG
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: _PyStatus_ERR
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_ERR(ERR_MSG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: _PyStatus_NO_MEMORY
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_NO_MEMORY()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - EXITCODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: _PyStatus_EXIT
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_EXIT(EXITCODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: _PyStatus_IS_ERROR
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_IS_ERROR(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: _PyStatus_IS_EXIT
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_IS_EXIT(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: _PyStatus_EXCEPTION
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 70
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_EXCEPTION(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: _PyStatus_UPDATE_FUNC
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PyStatus_UPDATE_FUNC(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: _PyMem_IsPtrFreed
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_pymem.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int _PyMem_IsPtrFreed(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: _Py_atomic_signal_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_signal_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: _Py_atomic_thread_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_thread_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: _Py_atomic_signal_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_signal_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: _Py_atomic_thread_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_thread_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - order
    argTypes:
    - _Py_memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: _Py_atomic_signal_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_signal_fence(_Py_memory_order order)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - order
    argTypes:
    - _Py_memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: _Py_atomic_thread_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _Py_atomic_thread_fence(_Py_memory_order order)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: _Py_ANNOTATE_HAPPENS_BEFORE
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:147,1
    - Dst: _Py_ANNOTATE_HAPPENS_AFTER
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - address
    - order
    argTypes:
    - void*
    - _Py_memory_order
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: _Py_ANNOTATE_MEMORY_ORDER
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached:
    - _Py_ANNOTATE_HAPPENS_BEFORE
    - _Py_ANNOTATE_HAPPENS_AFTER
    linkageType: ''
    returnType: void
    signature: void _Py_ANNOTATE_MEMORY_ORDER(const volatile void *address, _Py_memory_order
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 203
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: _Py_atomic_store_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 275
    functionName: _Py_atomic_store_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: _Py_atomic_store_32bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchange64_HLEAcquire
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:302,1
    - Dst: _InterlockedCompareExchange64_HLERelease
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:309,1
    - Dst: _InterlockedCompareExchange64
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - value
    - order
    argTypes:
    - uintptr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 324
    functionName: _Py_atomic_load_64bit_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange64
    - _InterlockedCompareExchange64_HLERelease
    - _InterlockedCompareExchange64_HLEAcquire
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: _Py_atomic_load_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_64bit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: _Py_atomic_load_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_64bit(ATOMIC_VAL, ORDER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchange_HLEAcquire
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:340,1
    - Dst: _InterlockedCompareExchange_HLERelease
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:347,1
    - Dst: _InterlockedCompareExchange
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - value
    - order
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 362
    functionName: _Py_atomic_load_32bit_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange_HLEAcquire
    - _InterlockedCompareExchange
    - _InterlockedCompareExchange_HLERelease
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_32bit_impl(volatile int* value, int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: _Py_atomic_load_32bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_32bit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: _Py_atomic_store_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: _Py_atomic_store_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_64bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 425
    functionName: _Py_atomic_store_32bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_32bit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchange64_acq
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:438,1
    - Dst: _InterlockedCompareExchange64_rel
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:445,1
    - Dst: _InterlockedCompareExchange64
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:455,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - value
    - order
    argTypes:
    - uintptr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 460
    functionName: _Py_atomic_load_64bit_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange64
    - _InterlockedCompareExchange64_rel
    - _InterlockedCompareExchange64_acq
    linkageType: ''
    returnType: intptr_t
    signature: intptr_t _Py_atomic_load_64bit_impl(volatile uintptr_t* value, int
      order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: _Py_atomic_load_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_64bit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: _Py_atomic_load_64bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_64bit(ATOMIC_VAL, ORDER)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _InterlockedCompareExchange_acq
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:476,1
    - Dst: _InterlockedCompareExchange_rel
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:483,1
    - Dst: _InterlockedCompareExchange
      Src: /src/Python-3.8.3/Include/internal/pycore_atomic.h:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - value
    - order
    argTypes:
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 498
    functionName: _Py_atomic_load_32bit_impl
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached:
    - _InterlockedCompareExchange
    - _InterlockedCompareExchange_rel
    - _InterlockedCompareExchange_acq
    linkageType: ''
    returnType: int
    signature: int _Py_atomic_load_32bit_impl(volatile int* value, int order)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: _Py_atomic_load_32bit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_32bit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 535
    functionName: _Py_atomic_signal_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_signal_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - /*memory_order*/
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: _Py_atomic_thread_fence
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_thread_fence(/*memory_order*/ ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: _Py_atomic_store_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - ORDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    functionName: _Py_atomic_load_explicit
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_explicit(ATOMIC_VAL, ORDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: _Py_atomic_store
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store(ATOMIC_VAL, NEW_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATOMIC_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    functionName: _Py_atomic_load
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load(ATOMIC_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ATOMIC_VAL
    - ','
    - NEW_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 552
    functionName: _Py_atomic_store_relaxed
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_store_relaxed(ATOMIC_VAL, NEW_VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ATOMIC_VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: _Py_atomic_load_relaxed
    functionSourceFile: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_atomic_load_relaxed(ATOMIC_VAL)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/dl_nt.c:57,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/dl_nt.c:59,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/dl_nt.c:62,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/dl_nt.c:63,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/dl_nt.c:64,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/dl_nt.c:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: _LoadActCtxPointers
    functionSourceFile: /src/Python-3.8.3/PC/dl_nt.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - GetModuleHandleW
    linkageType: ''
    returnType: void
    signature: void _LoadActCtxPointers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/dl_nt.c:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: _Py_ActivateActCtx
    functionSourceFile: /src/Python-3.8.3/PC/dl_nt.c
    functionUses: 2
    functionsReached:
    - OutputDebugString
    linkageType: ''
    returnType: ULONG_PTR
    signature: ULONG_PTR _Py_ActivateActCtx()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/dl_nt.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - cookie
    argTypes:
    - ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: _Py_DeactivateActCtx
    functionSourceFile: /src/Python-3.8.3/PC/dl_nt.c
    functionUses: 2
    functionsReached:
    - OutputDebugString
    linkageType: ''
    returnType: void
    signature: void _Py_DeactivateActCtx(ULONG_PTR cookie)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LoadString
      Src: /src/Python-3.8.3/PC/dl_nt.c:99,1
    - Dst: _LoadActCtxPointers
      Src: /src/Python-3.8.3/PC/dl_nt.c:104,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/dl_nt.c:108,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - hInst
    - ul_reason_for_call
    - lpReserved
    argTypes:
    - HANDLE
    - ULONG
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/PC/dl_nt.c
    functionUses: 0
    functionsReached:
    - LoadString
    - OutputDebugString
    - _LoadActCtxPointers
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain (HANDLE hInst,\n                                                ULONG
      ul_reason_for_call,\n                                                LPVOID
      lpReserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/launcher.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: skip_whitespace
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      skip_whitespace(wchar_t * p)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/PC/launcher.c:71,1
    - Dst: vfwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:72,1
    - Dst: va_end
      Src: /src/Python-3.8.3/PC/launcher.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    functionName: debug
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 1
    functionsReached:
    - vfwprintf_s
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void debug(wchar_t * format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessageW
      Src: /src/Python-3.8.3/PC/launcher.c:80,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/PC/launcher.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rc
    - message
    - size
    argTypes:
    - int
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: winerror
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - MAKELANGID
    - FormatMessageW
    linkageType: ''
    returnType: void
    signature: void winerror(int rc, wchar_t * message, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/PC/launcher.c:94,1
    - Dst: _vsnwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:95,1
    - Dst: va_end
      Src: /src/Python-3.8.3/PC/launcher.c:96,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:99,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:99,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:101,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:107,1
    - Dst: MessageBoxW
      Src: /src/Python-3.8.3/PC/launcher.c:109,1
    - Dst: exit
      Src: /src/Python-3.8.3/PC/launcher.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - rc
    - format
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 113
    functionName: error
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 452
    functionsReached:
    - GetLastError
    - va_start
    - fwprintf
    - winerror
    - _vsnwprintf_s
    - _snwprintf_s
    - exit
    - va_end
    - MessageBoxW
    linkageType: ''
    returnType: void
    signature: void error(int rc, wchar_t * format, ... )
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetEnvironmentVariableW
      Src: /src/Python-3.8.3/PC/launcher.c:123,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:127,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:129,1
    - Dst: GetEnvironmentVariableW
      Src: /src/Python-3.8.3/PC/launcher.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - key
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: get_env
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 6
    functionsReached:
    - malloc
    - error
    - GetEnvironmentVariableW
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t * get_env(wchar_t * key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: find_existing_python
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - _wcsicmp
    linkageType: ''
    returnType: INSTALLED_PYTHON
    signature: 'INSTALLED_PYTHON *

      find_existing_python(const wchar_t * path)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - bits
    - version
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 246
    functionName: find_existing_python2
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - _wcsicmp
    linkageType: ''
    returnType: INSTALLED_PYTHON
    signature: 'INSTALLED_PYTHON *

      find_existing_python2(int bits, const wchar_t * version)'
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/PC/launcher.c:253,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:267,1
    - Dst: RegEnumKeyW
      Src: /src/Python-3.8.3/PC/launcher.c:272,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:276,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:277,1
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:283,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:289,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/PC/launcher.c:290,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:293,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/PC/launcher.c:295,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:297,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:299,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/launcher.c:305,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/launcher.c:313,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:316,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:317,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/launcher.c:318,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/launcher.c:322,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:334,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:339,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:341,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:341,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:342,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:346,1
    - Dst: find_existing_python
      Src: /src/Python-3.8.3/PC/launcher.c:349,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:350,1
    - Dst: GetBinaryTypeW
      Src: /src/Python-3.8.3/PC/launcher.c:358,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:360,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:373,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:381,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:383,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/launcher.c:386,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:390,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:392,1
    - Dst: memmove
      Src: /src/Python-3.8.3/PC/launcher.c:393,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:399,1
    - Dst: find_existing_python2
      Src: /src/Python-3.8.3/PC/launcher.c:402,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:403,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/launcher.c:418,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 111
    argCount: 5
    argNames:
    - root
    - subkey
    - flags
    - bits
    - display_name_only
    argTypes:
    - HKEY
    - LPCWSTR
    - REGSAM
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 420
    functionName: _locate_pythons_for_key
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcschr
    - wcsrchr
    - RegCloseKey
    - wcslen
    - RegQueryValueExW
    - GetLastError
    - find_existing_python
    - wcsncpy_s
    - GetBinaryTypeW
    - GetFileAttributesW
    - winerror
    - wcscmp
    - memmove
    - find_existing_python2
    - RegOpenKeyExW
    - RegEnumKeyW
    - wcscpy_s
    - debug
    - _snwprintf_s
    linkageType: ''
    returnType: void
    signature: "void _locate_pythons_for_key(HKEY root, LPCWSTR subkey, REGSAM flags,
      int bits,\n                        int display_name_only)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcscmp
      Src: /src/Python-3.8.3/PC/launcher.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 433
    functionName: compare_pythons
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcscmp
    linkageType: ''
    returnType: int
    signature: int compare_pythons(const void * p1, const void * p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - root
    - flags
    argTypes:
    - HKEY
    - REGSAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: locate_pythons_for_key
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 1
    functionsReached:
    - _locate_pythons_for_key
    linkageType: ''
    returnType: void
    signature: void locate_pythons_for_key(HKEY root, REGSAM flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:446,1
    - Dst: IsWow64Process
      Src: /src/Python-3.8.3/PC/launcher.c:451,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/PC/launcher.c:451,1
    - Dst: _locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 456
    functionName: locate_store_pythons
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - IsWow64Process
    - _locate_pythons_for_key
    - GetCurrentProcess
    linkageType: ''
    returnType: void
    signature: void locate_store_pythons()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_env
      Src: /src/Python-3.8.3/PC/launcher.c:463,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:472,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:473,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:475,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:477,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:482,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:484,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 485
    functionName: locate_venv_python
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - get_env
    - GetFileAttributesW
    - debug
    - _snwprintf_s
    - wcscpy_s
    linkageType: ''
    returnType: void
    signature: void locate_venv_python()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: locate_venv_python
      Src: /src/Python-3.8.3/PC/launcher.c:491,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:494,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:495,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:496,1
    - Dst: IsWow64Process
      Src: /src/Python-3.8.3/PC/launcher.c:500,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/PC/launcher.c:500,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:501,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:502,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:503,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:507,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:508,1
    - Dst: locate_pythons_for_key
      Src: /src/Python-3.8.3/PC/launcher.c:509,1
    - Dst: locate_store_pythons
      Src: /src/Python-3.8.3/PC/launcher.c:511,1
    - Dst: qsort
      Src: /src/Python-3.8.3/PC/launcher.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 487
    functionDepth: 3
    functionLinenumber: 487
    functionLinenumberEnd: 514
    functionName: locate_all_pythons
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - locate_venv_python
    - GetCurrentProcess
    - locate_store_pythons
    - IsWow64Process
    - debug
    - locate_pythons_for_key
    - qsort
    linkageType: ''
    returnType: void
    signature: void locate_all_pythons()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:522,1
    - Dst: wcsstr
      Src: /src/Python-3.8.3/PC/launcher.c:525,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:527,1
    - Dst: wcsstr
      Src: /src/Python-3.8.3/PC/launcher.c:529,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:531,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:534,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/PC/launcher.c:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - wanted_ver
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 545
    functionName: find_python_by_version
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcsstr
    - wcslen
    - wcsncmp
    linkageType: ''
    returnType: INSTALLED_PYTHON
    signature: 'INSTALLED_PYTHON *

      find_python_by_version(wchar_t const * wanted_ver)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:569,1
    - Dst: get_env
      Src: /src/Python-3.8.3/PC/launcher.c:570,1
    - Dst: GetPrivateProfileStringW
      Src: /src/Python-3.8.3/PC/launcher.c:573,1
    - Dst: GetPrivateProfileStringW
      Src: /src/Python-3.8.3/PC/launcher.c:583,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:592,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:595,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - key
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 598
    functionName: get_configured_value
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - get_env
    - GetPrivateProfileStringW
    - debug
    - _snwprintf_s
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      get_configured_value(wchar_t * key)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:607,1
    - Dst: locate_all_pythons
      Src: /src/Python-3.8.3/PC/launcher.c:611,1
    - Dst: get_configured_value
      Src: /src/Python-3.8.3/PC/launcher.c:615,1
    - Dst: find_python_by_version
      Src: /src/Python-3.8.3/PC/launcher.c:620,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:621,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:623,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:625,1
    - Dst: find_python_by_version
      Src: /src/Python-3.8.3/PC/launcher.c:630,1
    - Dst: get_configured_value
      Src: /src/Python-3.8.3/PC/launcher.c:632,1
    - Dst: find_python_by_version
      Src: /src/Python-3.8.3/PC/launcher.c:634,1
    - Dst: find_python_by_version
      Src: /src/Python-3.8.3/PC/launcher.c:644,1
    - Dst: find_python_by_version
      Src: /src/Python-3.8.3/PC/launcher.c:646,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:647,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:649,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - wanted_ver
    - from_shebang
    argTypes:
    - wchar_t*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 656
    functionName: locate_python
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - locate_all_pythons
    - find_python_by_version
    - debug
    - get_configured_value
    - wcslen
    linkageType: ''
    returnType: INSTALLED_PYTHON
    signature: 'INSTALLED_PYTHON *

      locate_python(wchar_t * wanted_ver, BOOL from_shebang)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/launcher.c:684,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:685,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:687,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:689,1
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:692,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:693,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:695,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:696,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 700
    functionName: locate_wrapped_script
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcsncpy_s
    - GetModuleFileNameW
    - GetFileAttributesW
    - error
    - wcsrchr
    - debug
    linkageType: ''
    returnType: void
    signature: void locate_wrapped_script()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/PC/launcher.c:711,1
    - Dst: DuplicateHandle
      Src: /src/Python-3.8.3/PC/launcher.c:715,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:718,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:720,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - in
    - pout
    argTypes:
    - HANDLE
    - HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 728
    functionName: safe_duplicate_handle
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - DuplicateHandle
    - debug
    - GetCurrentProcess
    linkageType: ''
    returnType: BOOL
    signature: BOOL safe_duplicate_handle(HANDLE in, HANDLE * pout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: ctrl_c_handler
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL ctrl_c_handler(DWORD code)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PostMessage
      Src: /src/Python-3.8.3/PC/launcher.c:759,1
    - Dst: GetMessage
      Src: /src/Python-3.8.3/PC/launcher.c:760,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:763,1
    - Dst: CreateJobObject
      Src: /src/Python-3.8.3/PC/launcher.c:764,1
    - Dst: QueryInformationJobObject
      Src: /src/Python-3.8.3/PC/launcher.c:765,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:768,1
    - Dst: SetInformationJobObject
      Src: /src/Python-3.8.3/PC/launcher.c:771,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:774,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/launcher.c:775,1
    - Dst: GetStartupInfoW
      Src: /src/Python-3.8.3/PC/launcher.c:776,1
    - Dst: safe_duplicate_handle
      Src: /src/Python-3.8.3/PC/launcher.c:777,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/launcher.c:777,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:779,1
    - Dst: safe_duplicate_handle
      Src: /src/Python-3.8.3/PC/launcher.c:780,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/launcher.c:780,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:782,1
    - Dst: safe_duplicate_handle
      Src: /src/Python-3.8.3/PC/launcher.c:783,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/launcher.c:783,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:785,1
    - Dst: SetConsoleCtrlHandler
      Src: /src/Python-3.8.3/PC/launcher.c:787,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:789,1
    - Dst: CreateProcessW
      Src: /src/Python-3.8.3/PC/launcher.c:792,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:795,1
    - Dst: AssignProcessToJobObject
      Src: /src/Python-3.8.3/PC/launcher.c:796,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/launcher.c:797,1
    - Dst: WaitForSingleObjectEx
      Src: /src/Python-3.8.3/PC/launcher.c:798,1
    - Dst: GetExitCodeProcess
      Src: /src/Python-3.8.3/PC/launcher.c:799,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:801,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:802,1
    - Dst: exit
      Src: /src/Python-3.8.3/PC/launcher.c:803,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 804
    functionName: run_child
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - WaitForSingleObjectEx
    - SetConsoleCtrlHandler
    - GetStartupInfoW
    - CloseHandle
    - error
    - CreateJobObject
    - safe_duplicate_handle
    - GetStdHandle
    - GetExitCodeProcess
    - debug
    - SetInformationJobObject
    - CreateProcessW
    - AssignProcessToJobObject
    - exit
    - GetMessage
    - QueryInformationJobObject
    - PostMessage
    - memset
    linkageType: ''
    returnType: void
    signature: void run_child(wchar_t * cmdline)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: run_child
      Src: /src/Python-3.8.3/PC/launcher.c:815,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:819,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:819,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:823,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:823,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:824,1
    - Dst: calloc
      Src: /src/Python-3.8.3/PC/launcher.c:826,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:828,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:831,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:835,1
    - Dst: run_child
      Src: /src/Python-3.8.3/PC/launcher.c:838,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - executable
    - suffix
    - cmdline
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 841
    functionName: invoke_child
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - run_child
    - error
    - free
    - calloc
    - _snwprintf_s
    - wcslen
    linkageType: ''
    returnType: void
    signature: void invoke_child(wchar_t * executable, wchar_t * suffix, wchar_t *
      cmdline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:889,1
    - Dst: _wcsnicmp
      Src: /src/Python-3.8.3/PC/launcher.c:890,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 898
    functionName: skip_prefix
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - _wcsnicmp
    - skip_whitespace
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t * skip_prefix(wchar_t * name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:916,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/launcher.c:917,1
    - Dst: SearchPathW
      Src: /src/Python-3.8.3/PC/launcher.c:919,1
    - Dst: _wdupenv_s
      Src: /src/Python-3.8.3/PC/launcher.c:926,1
    - Dst: wcstok_s
      Src: /src/Python-3.8.3/PC/launcher.c:928,1
    - Dst: SearchPathW
      Src: /src/Python-3.8.3/PC/launcher.c:930,1
    - Dst: wcstok_s
      Src: /src/Python-3.8.3/PC/launcher.c:935,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:937,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 941
    functionName: find_on_path
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcschr
    - _wdupenv_s
    - wcstok_s
    - SearchPathW
    - free
    - wcscpy_s
    linkageType: ''
    returnType: COMMAND
    signature: COMMAND * find_on_path(wchar_t * name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:952,1
    - Dst: find_on_path
      Src: /src/Python-3.8.3/PC/launcher.c:959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: find_command
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - _wcsicmp
    - find_on_path
    linkageType: ''
    returnType: COMMAND
    signature: COMMAND * find_command(wchar_t * name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:967,1
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cp
    - name
    - cmdline
    argTypes:
    - COMMAND*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 969
    functionName: update_command
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcsncpy_s
    linkageType: ''
    returnType: void
    signature: void update_command(COMMAND * cp, wchar_t * name, wchar_t * cmdline)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:975,1
    - Dst: update_command
      Src: /src/Python-3.8.3/PC/launcher.c:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - name
    - cmdline
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 982
    functionName: add_command
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - update_command
    - debug
    linkageType: ''
    returnType: void
    signature: void add_command(wchar_t * name, wchar_t * cmdline)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetPrivateProfileStringW
      Src: /src/Python-3.8.3/PC/launcher.c:994,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:997,1
    - Dst: GetPrivateProfileStringW
      Src: /src/Python-3.8.3/PC/launcher.c:1001,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1004,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1007,1
    - Dst: find_command
      Src: /src/Python-3.8.3/PC/launcher.c:1009,1
    - Dst: add_command
      Src: /src/Python-3.8.3/PC/launcher.c:1011,1
    - Dst: update_command
      Src: /src/Python-3.8.3/PC/launcher.c:1013,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - config_path
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1017
    functionName: read_config_file
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - find_command
    - add_command
    - skip_whitespace
    - debug
    - GetPrivateProfileStringW
    - update_command
    - wcslen
    linkageType: ''
    returnType: void
    signature: void read_config_file(wchar_t * config_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read_config_file
      Src: /src/Python-3.8.3/PC/launcher.c:1022,1
    - Dst: read_config_file
      Src: /src/Python-3.8.3/PC/launcher.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1019
    functionDepth: 3
    functionLinenumber: 1019
    functionLinenumberEnd: 1025
    functionName: read_commands
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - read_config_file
    linkageType: ''
    returnType: void
    signature: void read_commands()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1045,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1049,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/PC/launcher.c:1050,1
    - Dst: wcsstr
      Src: /src/Python-3.8.3/PC/launcher.c:1056,1
    - Dst: skip_prefix
      Src: /src/Python-3.8.3/PC/launcher.c:1070,1
    - Dst: wcspbrk
      Src: /src/Python-3.8.3/PC/launcher.c:1074,1
    - Dst: find_command
      Src: /src/Python-3.8.3/PC/launcher.c:1079,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1085,1
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/launcher.c:1089,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 5
    argNames:
    - shebang_line
    - nchars
    - command
    - suffix
    - search
    argTypes:
    - wchar_t*
    - int
    - wchar_t**
    - wchar_t**
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1027
    functionDepth: 3
    functionLinenumber: 1027
    functionLinenumberEnd: 1096
    functionName: parse_shebang
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcsncmp
    - find_command
    - skip_whitespace
    - wcsstr
    - wcspbrk
    - isspace
    - skip_prefix
    - wcslen
    linkageType: ''
    returnType: BOOL
    signature: "BOOL parse_shebang(wchar_t * shebang_line, int nchars, wchar_t **
      command,\n              wchar_t ** suffix, BOOL *search)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/Python-3.8.3/PC/launcher.c:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1125
    functionDepth: 0
    functionLinenumber: 1125
    functionLinenumberEnd: 1142
    functionName: find_BOM
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: BOM
    signature: 'BOM *

      find_BOM(char * buffer)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - buffer
    - len
    - bom
    argTypes:
    - char*
    - int
    - BOM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1176
    functionName: find_terminator
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      find_terminator(char * buffer, int len, BOM *bom)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: iswdigit
      Src: /src/Python-3.8.3/PC/launcher.c:1199,1
    - Dst: iswdigit
      Src: /src/Python-3.8.3/PC/launcher.c:1201,1
    - Dst: iswdigit
      Src: /src/Python-3.8.3/PC/launcher.c:1205,1
    - Dst: iswdigit
      Src: /src/Python-3.8.3/PC/launcher.c:1206,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1224
    functionName: validate_version
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - iswdigit
    linkageType: ''
    returnType: BOOL
    signature: BOOL validate_version(wchar_t * p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: locate_python
      Src: /src/Python-3.8.3/PC/launcher.c:1261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - magic
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1253
    functionDepth: 5
    functionLinenumber: 1253
    functionLinenumberEnd: 1267
    functionName: find_by_magic
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - locate_python
    linkageType: ''
    returnType: INSTALLED_PYTHON
    signature: 'INSTALLED_PYTHON *

      find_by_magic(unsigned short magic)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: _wfopen_s
      Src: /src/Python-3.8.3/PC/launcher.c:1280,1
    - Dst: fread
      Src: /src/Python-3.8.3/PC/launcher.c:1298,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1299,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/launcher.c:1300,1
    - Dst: find_by_magic
      Src: /src/Python-3.8.3/PC/launcher.c:1303,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1306,1
    - Dst: invoke_child
      Src: /src/Python-3.8.3/PC/launcher.c:1308,1
    - Dst: find_BOM
      Src: /src/Python-3.8.3/PC/launcher.c:1312,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1315,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1319,1
    - Dst: find_terminator
      Src: /src/Python-3.8.3/PC/launcher.c:1323,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1329,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/launcher.c:1342,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1349,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1363,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/launcher.c:1369,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1375,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1390,1
    - Dst: parse_shebang
      Src: /src/Python-3.8.3/PC/launcher.c:1406,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1409,1
    - Dst: invoke_child
      Src: /src/Python-3.8.3/PC/launcher.c:1411,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/launcher.c:1414,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1417,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/PC/launcher.c:1419,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1420,1
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/launcher.c:1423,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1427,1
    - Dst: find_on_path
      Src: /src/Python-3.8.3/PC/launcher.c:1428,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1429,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1431,1
    - Dst: invoke_child
      Src: /src/Python-3.8.3/PC/launcher.c:1432,1
    - Dst: validate_version
      Src: /src/Python-3.8.3/PC/launcher.c:1440,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1441,1
    - Dst: locate_python
      Src: /src/Python-3.8.3/PC/launcher.c:1446,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1448,1
    - Dst: invoke_child
      Src: /src/Python-3.8.3/PC/launcher.c:1452,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 111
    argCount: 2
    argNames:
    - argv
    - cmdline
    argTypes:
    - wchar_t**
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1269
    functionDepth: 6
    functionLinenumber: 1269
    functionLinenumberEnd: 1459
    functionName: maybe_handle_shebang
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcschr
    - find_by_magic
    - locate_python
    - MultiByteToWideChar
    - validate_version
    - wcsncmp
    - find_on_path
    - _wfopen_s
    - error
    - fclose
    - fread
    - isspace
    - find_terminator
    - parse_shebang
    - memcpy
    - skip_whitespace
    - debug
    - find_BOM
    - invoke_child
    linkageType: ''
    returnType: void
    signature: void maybe_handle_shebang(wchar_t ** argv, wchar_t * cmdline)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/launcher.c:1475,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cmdline
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1461
    functionDepth: 2
    functionLinenumber: 1461
    functionLinenumberEnd: 1483
    functionName: skip_me
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcschr
    - skip_whitespace
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      skip_me(wchar_t * cmdline)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:1494,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/PC/launcher.c:1496,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/PC/launcher.c:1497,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/PC/launcher.c:1498,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/PC/launcher.c:1499,1
    - Dst: _snwprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:1500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - version_text
    - size
    argTypes:
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1503
    functionName: get_version_info
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - wcsncpy_s
    - HIWORD
    - _snwprintf_s
    - LOWORD
    linkageType: ''
    returnType: void
    signature: void get_version_info(wchar_t * version_text, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IsWow64Process
      Src: /src/Python-3.8.3/PC/launcher.c:1514,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/PC/launcher.c:1514,1
    - Dst: get_version_info
      Src: /src/Python-3.8.3/PC/launcher.c:1517,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1518,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1520,1
    - Dst: fputws
      Src: /src/Python-3.8.3/PC/launcher.c:1523,1
    - Dst: fputws
      Src: /src/Python-3.8.3/PC/launcher.c:1529,1
    - Dst: fputws
      Src: /src/Python-3.8.3/PC/launcher.c:1536,1
    - Dst: fputws
      Src: /src/Python-3.8.3/PC/launcher.c:1537,1
    - Dst: fputws
      Src: /src/Python-3.8.3/PC/launcher.c:1538,1
    - Dst: fflush
      Src: /src/Python-3.8.3/PC/launcher.c:1539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - argv
    argTypes:
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1540
    functionName: show_help_text
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - fflush
    - fwprintf
    - GetCurrentProcess
    - IsWow64Process
    - fputws
    - get_version_info
    linkageType: ''
    returnType: void
    signature: void show_help_text(wchar_t ** argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: locate_python
      Src: /src/Python-3.8.3/PC/launcher.c:1550,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1561,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1563,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1563,1
    - Dst: locate_all_pythons
      Src: /src/Python-3.8.3/PC/launcher.c:1567,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1570,1
    - Dst: wcscmp
      Src: /src/Python-3.8.3/PC/launcher.c:1575,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:1576,1
    - Dst: swprintf_s
      Src: /src/Python-3.8.3/PC/launcher.c:1579,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1583,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1586,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1590,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1596,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - argv
    argTypes:
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1542
    functionDepth: 5
    functionLinenumber: 1542
    functionLinenumberEnd: 1600
    functionName: show_python_list
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - locate_python
    - fwprintf
    - locate_all_pythons
    - swprintf_s
    - wcscmp
    - _wcsicmp
    - wcscpy_s
    linkageType: ''
    returnType: BOOL
    signature: BOOL show_python_list(wchar_t ** argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/Python-3.8.3/PC/launcher.c:1607,1
    - Dst: strstr
      Src: /src/Python-3.8.3/PC/launcher.c:1607,1
    - Dst: iswspace
      Src: /src/Python-3.8.3/PC/launcher.c:1613,1
    - Dst: iswspace
      Src: /src/Python-3.8.3/PC/launcher.c:1622,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/launcher.c:1625,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/launcher.c:1629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - buffer
    - start
    - length
    argTypes:
    - char*
    - char**
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1634
    functionName: find_home_value
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - strchr
    - iswspace
    - strstr
    - strlen
    linkageType: ''
    returnType: int
    signature: int find_home_value(const char *buffer, const char **start, DWORD *length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1640,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:1642,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:1646,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:1647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - s
    - padding
    - newlen
    argTypes:
    - wchar_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1652
    functionName: wcsdup_pad
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - wcscpy_s
    - wcslen
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      wcsdup_pad(const wchar_t *s, int padding, int *newlen)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:1662,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1664,1
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/launcher.c:1667,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:1669,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1670,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:1673,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:1674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1681
    functionName: get_process_name
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - malloc
    - GetModuleFileNameW
    - error
    - free
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      get_process_name()'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: setvbuf
      Src: /src/Python-3.8.3/PC/launcher.c:1713,1
    - Dst: get_env
      Src: /src/Python-3.8.3/PC/launcher.c:1714,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1719,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1721,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1724,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1726,1
    - Dst: SHGetFolderPathW
      Src: /src/Python-3.8.3/PC/launcher.c:1730,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1733,1
    - Dst: wcsncat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1737,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:1738,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1740,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1743,1
    - Dst: get_process_name
      Src: /src/Python-3.8.3/PC/launcher.c:1747,1
    - Dst: GetFileVersionInfoSizeW
      Src: /src/Python-3.8.3/PC/launcher.c:1748,1
    - Dst: winerror
      Src: /src/Python-3.8.3/PC/launcher.c:1750,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:1750,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1751,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:1754,1
    - Dst: GetFileVersionInfoW
      Src: /src/Python-3.8.3/PC/launcher.c:1756,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1759,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:1759,1
    - Dst: VerQueryValueW
      Src: /src/Python-3.8.3/PC/launcher.c:1761,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1764,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/launcher.c:1764,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/launcher.c:1770,1
    - Dst: wcsdup_pad
      Src: /src/Python-3.8.3/PC/launcher.c:1776,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1778,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:1780,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1783,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1786,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:1787,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1789,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:1791,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1794,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:1795,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1797,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1798,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1802,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:1805,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1806,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/launcher.c:1808,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1811,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1817,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:1818,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1820,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1823,1
    - Dst: skip_me
      Src: /src/Python-3.8.3/PC/launcher.c:1828,1
    - Dst: GetCommandLineW
      Src: /src/Python-3.8.3/PC/launcher.c:1828,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1829,1
    - Dst: SetEnvironmentVariableW
      Src: /src/Python-3.8.3/PC/launcher.c:1839,1
    - Dst: locate_wrapped_script
      Src: /src/Python-3.8.3/PC/launcher.c:1852,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1855,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1855,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:1856,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1858,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/launcher.c:1861,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1862,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1863,1
    - Dst: debug
      Src: /src/Python-3.8.3/PC/launcher.c:1864,1
    - Dst: read_commands
      Src: /src/Python-3.8.3/PC/launcher.c:1865,1
    - Dst: maybe_handle_shebang
      Src: /src/Python-3.8.3/PC/launcher.c:1868,1
    - Dst: _wfopen_s
      Src: /src/Python-3.8.3/PC/launcher.c:1880,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1881,1
    - Dst: fread_s
      Src: /src/Python-3.8.3/PC/launcher.c:1883,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/launcher.c:1885,1
    - Dst: find_home_value
      Src: /src/Python-3.8.3/PC/launcher.c:1887,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1888,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/launcher.c:1892,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1894,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1896,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/launcher.c:1897,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1899,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/launcher.c:1901,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1903,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/launcher.c:1910,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1911,1
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/launcher.c:1914,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1915,1
    - Dst: SetEnvironmentVariableW
      Src: /src/Python-3.8.3/PC/launcher.c:1917,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1918,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/PC/launcher.c:1930,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1930,1
    - Dst: wcsncmp
      Src: /src/Python-3.8.3/PC/launcher.c:1931,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1931,1
    - Dst: show_python_list
      Src: /src/Python-3.8.3/PC/launcher.c:1933,1
    - Dst: validate_version
      Src: /src/Python-3.8.3/PC/launcher.c:1936,1
    - Dst: locate_python
      Src: /src/Python-3.8.3/PC/launcher.c:1938,1
    - Dst: fwprintf
      Src: /src/Python-3.8.3/PC/launcher.c:1941,1
    - Dst: show_python_list
      Src: /src/Python-3.8.3/PC/launcher.c:1943,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1944,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/launcher.c:1948,1
    - Dst: skip_whitespace
      Src: /src/Python-3.8.3/PC/launcher.c:1949,1
    - Dst: read_commands
      Src: /src/Python-3.8.3/PC/launcher.c:1957,1
    - Dst: maybe_handle_shebang
      Src: /src/Python-3.8.3/PC/launcher.c:1958,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1965,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1965,1
    - Dst: show_help_text
      Src: /src/Python-3.8.3/PC/launcher.c:1966,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1968,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1968,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1969,1
    - Dst: _wcsicmp
      Src: /src/Python-3.8.3/PC/launcher.c:1969,1
    - Dst: locate_python
      Src: /src/Python-3.8.3/PC/launcher.c:1975,1
    - Dst: error
      Src: /src/Python-3.8.3/PC/launcher.c:1977,1
    - Dst: invoke_child
      Src: /src/Python-3.8.3/PC/launcher.c:1982,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 191
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1683
    functionDepth: 7
    functionLinenumber: 1683
    functionLinenumberEnd: 1986
    functionName: process
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 8
    functionsReached:
    - get_env
    - fwprintf
    - wcsrchr
    - wcsdup_pad
    - wcslen
    - maybe_handle_shebang
    - locate_python
    - GetLastError
    - malloc
    - locate_wrapped_script
    - SetEnvironmentVariableW
    - GetFileAttributesW
    - MultiByteToWideChar
    - winerror
    - setvbuf
    - free
    - read_commands
    - validate_version
    - wcsncmp
    - wcsncat_s
    - GetFileVersionInfoSizeW
    - GetCommandLineW
    - _wfopen_s
    - show_python_list
    - SHGetFolderPathW
    - error
    - VerQueryValueW
    - GetFileVersionInfoW
    - fclose
    - wcscat_s
    - find_home_value
    - _wcsicmp
    - wcscpy_s
    - skip_whitespace
    - skip_me
    - show_help_text
    - debug
    - invoke_child
    - get_process_name
    - fread_s
    linkageType: ''
    returnType: int
    signature: int process(int argc, wchar_t ** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/Python-3.8.3/PC/launcher.c:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - lpstrCmd
    - nShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1990
    functionDepth: 8
    functionLinenumber: 1990
    functionLinenumberEnd: 1994
    functionName: wWinMain
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - process
    linkageType: ''
    returnType: int
    signature: "int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\n                   LPWSTR
      lpstrCmd, int nShow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/Python-3.8.3/PC/launcher.c:2000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1998
    functionDepth: 8
    functionLinenumber: 1998
    functionLinenumberEnd: 2001
    functionName: wmain
    functionSourceFile: /src/Python-3.8.3/PC/launcher.c
    functionUses: 0
    functionsReached:
    - process
    linkageType: ''
    returnType: int
    signature: int wmain(int argc, wchar_t ** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - lpCmdLine
    - nCmdShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6
      start: 2
    functionDepth: 0
    functionLinenumber: 2
    functionLinenumberEnd: 6
    functionName: WinMain
    functionSourceFile: /src/Python-3.8.3/PC/empty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
      int nCmdShow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: INIT_ERR_BUFFER_OVERFLOW
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_ERR_BUFFER_OVERFLOW()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ch
    argTypes:
    - wchar_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: is_sep
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_sep(wchar_t ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcsnlen_s
      Src: /src/Python-3.8.3/PC/getpathp.c:156,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/PC/getpathp.c:158,1
    - Dst: is_sep
      Src: /src/Python-3.8.3/PC/getpathp.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - dir
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: reduce
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 19
    functionsReached:
    - Py_FatalError
    - wcsnlen_s
    - is_sep
    linkageType: ''
    returnType: void
    signature: void reduce(wchar_t *dir)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcsnlen_s
      Src: /src/Python-3.8.3/PC/getpathp.c:170,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/PC/getpathp.c:173,1
    - Dst: is_sep
      Src: /src/Python-3.8.3/PC/getpathp.c:176,1
    - Dst: is_sep
      Src: /src/Python-3.8.3/PC/getpathp.c:184,1
    - Dst: wcsncpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:188,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/getpathp.c:189,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - dest
    - src
    - ext
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 196
    functionName: change_ext
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - is_sep
    - wcsncpy_s
    - Py_FatalError
    - wcscat_s
    - wcsnlen_s
    linkageType: ''
    returnType: int
    signature: int change_ext(wchar_t *dest, const wchar_t *src, const wchar_t *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFileAttributesW
      Src: /src/Python-3.8.3/PC/getpathp.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: exists
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - GetFileAttributesW
    linkageType: ''
    returnType: int
    signature: int exists(const wchar_t *filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exists
      Src: /src/Python-3.8.3/PC/getpathp.c:214,1
    - Dst: wcsnlen_s
      Src: /src/Python-3.8.3/PC/getpathp.c:219,1
    - Dst: exists
      Src: /src/Python-3.8.3/PC/getpathp.c:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - filename
    - update_filename
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: ismodule
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 2
    functionsReached:
    - wcsnlen_s
    - exists
    linkageType: ''
    returnType: int
    signature: int ismodule(wchar_t *filename, int update_filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/PC/getpathp.c:254,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/getpathp.c:257,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/getpathp.c:266,1
    - Dst: _PathCchCombineEx
      Src: /src/Python-3.8.3/PC/getpathp.c:266,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/PC/getpathp.c:267,1
    - Dst: PathCombineW
      Src: /src/Python-3.8.3/PC/getpathp.c:270,1
    - Dst: Py_FatalError
      Src: /src/Python-3.8.3/PC/getpathp.c:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - buffer
    - stuff
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 274
    functionName: join
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 8
    functionsReached:
    - LoadLibraryExW
    - GetProcAddress
    - _PathCchCombineEx
    - Py_FatalError
    - FAILED
    - PathCombineW
    linkageType: ''
    returnType: void
    signature: void join(wchar_t *buffer, const wchar_t *stuff)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:287,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/PC/getpathp.c:291,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/getpathp.c:294,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/getpathp.c:303,1
    - Dst: _PathCchCanonicalizeEx
      Src: /src/Python-3.8.3/PC/getpathp.c:303,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:304,1
    - Dst: PathCanonicalizeW
      Src: /src/Python-3.8.3/PC/getpathp.c:308,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:309,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - buffer
    - path
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: canonicalize
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - LoadLibraryExW
    - INIT_ERR_BUFFER_OVERFLOW
    - _PyStatus_NO_MEMORY
    - GetProcAddress
    - _PathCchCanonicalizeEx
    - FAILED
    - _PyStatus_OK
    - PathCanonicalizeW
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus canonicalize(wchar_t *buffer, const wchar_t *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:323,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:324,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/getpathp.c:324,1
    - Dst: join
      Src: /src/Python-3.8.3/PC/getpathp.c:325,1
    - Dst: ismodule
      Src: /src/Python-3.8.3/PC/getpathp.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - prefix
    - landmark
    argTypes:
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: gotlandmark
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - ismodule
    - Py_ARRAY_LENGTH
    - wcscpy_s
    - memset
    - join
    linkageType: ''
    returnType: int
    signature: int gotlandmark(const wchar_t *prefix, const wchar_t *landmark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:336,1
    - Dst: gotlandmark
      Src: /src/Python-3.8.3/PC/getpathp.c:338,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - prefix
    - argv0_path
    - landmark
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 344
    functionName: search_for_prefix
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - wcscpy_s
    - reduce
    - gotlandmark
    linkageType: ''
    returnType: int
    signature: int search_for_prefix(wchar_t *prefix, const wchar_t *argv0_path, const
      wchar_t *landmark)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/getpathp.c:382,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:387,1
    - Dst: memcpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:392,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/getpathp.c:393,1
    - Dst: mbstowcs
      Src: /src/Python-3.8.3/PC/getpathp.c:394,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/getpathp.c:397,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/PC/getpathp.c:399,1
    - Dst: RegQueryInfoKey
      Src: /src/Python-3.8.3/PC/getpathp.c:408,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:419,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:423,1
    - Dst: RegEnumKeyExW
      Src: /src/Python-3.8.3/PC/getpathp.c:430,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/PC/getpathp.c:436,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/getpathp.c:445,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:447,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/getpathp.c:449,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/getpathp.c:455,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:464,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:474,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/PC/getpathp.c:475,1
    - Dst: assert
      Src: /src/Python-3.8.3/PC/getpathp.c:477,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/getpathp.c:493,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:496,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:507,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:508,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/getpathp.c:511,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:513,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 2
    argNames:
    - keyBase
    - skipcore
    argTypes:
    - HKEY
    - int
    assertStmts:
    - condition: (dataSize > (DWORD)len)
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/Python-3.8.3/PC/getpathp.c
    constantsTouched: []
    func_position:
      end: 515
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 515
    functionName: getpythonregpath
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - RegEnumKeyExW
    - memcpy
    - wcsncpy
    - Py_ARRAY_LENGTH
    - mbstowcs
    - PyMem_RawMalloc
    - strlen
    - RegCloseKey
    - wcslen
    - PyMem_RawFree
    - assert
    - memcpy_s
    - RegQueryInfoKey
    - memset
    - RegQueryValueExW
    - RegOpenKeyExW
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      getpythonregpath(HKEY keyBase, int skipcore)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:523,1
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/getpathp.c:528,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/PC/getpathp.c:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 537
    functionName: _Py_GetDLLPath
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - _PyMem_RawWcsdup
    - GetModuleFileNameW
    - memset
    linkageType: ''
    returnType: wchar_t
    signature: 'wchar_t *

      _Py_GetDLLPath(void)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:546,1
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/getpathp.c:548,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/PC/getpathp.c:550,1
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/PC/getpathp.c:555,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:559,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:562,1
    - Dst: canonicalize
      Src: /src/Python-3.8.3/PC/getpathp.c:565,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:567,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:572,1
    - Dst: _wputenv_s
      Src: /src/Python-3.8.3/PC/getpathp.c:575,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:579,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:582,1
    - Dst: canonicalize
      Src: /src/Python-3.8.3/PC/getpathp.c:585,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:587,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:591,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - pathconfig
    argTypes:
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 592
    functionName: get_program_full_path
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - _wputenv_s
    - _PyStatus_NO_MEMORY
    - GetModuleFileNameW
    - PyMem_RawMalloc
    - _PyStatus_ERR
    - _wgetenv
    - _PyStatus_EXCEPTION
    - canonicalize
    - wcscpy_s
    - memset
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus get_program_full_path(_PyPathConfig *pathconfig)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/PC/getpathp.c:604,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:606,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:609,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:610,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:615,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:617,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:619,1
    - Dst: feof
      Src: /src/Python-3.8.3/PC/getpathp.c:624,1
    - Dst: fgets
      Src: /src/Python-3.8.3/PC/getpathp.c:626,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/getpathp.c:626,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/getpathp.c:640,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/PC/getpathp.c:644,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/PC/getpathp.c:645,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/getpathp.c:650,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:651,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:653,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/getpathp.c:656,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:659,1
    - Dst: PyMem_RawRealloc
      Src: /src/Python-3.8.3/PC/getpathp.c:662,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:665,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/getpathp.c:672,1
    - Dst: wcscat_s
      Src: /src/Python-3.8.3/PC/getpathp.c:678,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/PC/getpathp.c:682,1
    - Dst: _PyStatus_ERR
      Src: /src/Python-3.8.3/PC/getpathp.c:685,1
    - Dst: join
      Src: /src/Python-3.8.3/PC/getpathp.c:690,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:692,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/PC/getpathp.c:697,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:699,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:705,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:709,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:710,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/getpathp.c:711,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 88
    argCount: 4
    argNames:
    - pathconfig
    - prefix
    - path
    - found
    argTypes:
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 713
    functionName: read_pth_file
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - _PyStatus_NO_MEMORY
    - Py_ARRAY_LENGTH
    - PyMem_RawRealloc
    - _PyStatus_ERR
    - feof
    - wcslen
    - _PyStatus_OK
    - MultiByteToWideChar
    - strncmp
    - fgets
    - PyMem_RawMalloc
    - fclose
    - PyMem_RawFree
    - wcscat_s
    - _Py_wfopen
    - wcscpy_s
    - join
    - _PyMem_RawWcsdup
    - reduce
    - strcmp
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus read_pth_file(_PyPathConfig *pathconfig, wchar_t *prefix,
      const wchar_t *path,\n              int *found)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: change_ext
      Src: /src/Python-3.8.3/PC/getpathp.c:721,1
    - Dst: exists
      Src: /src/Python-3.8.3/PC/getpathp.c:722,1
    - Dst: change_ext
      Src: /src/Python-3.8.3/PC/getpathp.c:728,1
    - Dst: exists
      Src: /src/Python-3.8.3/PC/getpathp.c:729,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - calculate
    - filename
    - pathconfig
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 735
    functionName: get_pth_filename
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - change_ext
    - exists
    linkageType: ''
    returnType: int
    signature: "int get_pth_filename(PyCalculatePath *calculate, wchar_t *filename,\n
      \                const _PyPathConfig *pathconfig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_pth_filename
      Src: /src/Python-3.8.3/PC/getpathp.c:744,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:745,1
    - Dst: read_pth_file
      Src: /src/Python-3.8.3/PC/getpathp.c:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - calculate
    - pathconfig
    - prefix
    - found
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 738
    functionDepth: 6
    functionLinenumber: 738
    functionLinenumberEnd: 749
    functionName: calculate_pth_file
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - read_pth_file
    - _PyStatus_OK
    - get_pth_filename
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_pth_file(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n                   wchar_t *prefix, int *found)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:764,1
    - Dst: join
      Src: /src/Python-3.8.3/PC/getpathp.c:765,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/PC/getpathp.c:767,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:772,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:773,1
    - Dst: join
      Src: /src/Python-3.8.3/PC/getpathp.c:774,1
    - Dst: _Py_wfopen
      Src: /src/Python-3.8.3/PC/getpathp.c:776,1
    - Dst: _Py_FindEnvConfigValue
      Src: /src/Python-3.8.3/PC/getpathp.c:785,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/getpathp.c:786,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:787,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/getpathp.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - calculate
    - argv0_path
    - argv0_path_len
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 790
    functionName: calculate_pyvenv_file
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - reduce
    - _Py_FindEnvConfigValue
    - fclose
    - _Py_wfopen
    - wcscpy_s
    - join
    linkageType: ''
    returnType: void
    signature: "void calculate_pyvenv_file(PyCalculatePath *calculate,\n                      wchar_t
      *argv0_path, size_t argv0_path_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: exists
      Src: /src/Python-3.8.3/PC/getpathp.c:800,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:801,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:802,1
    - Dst: search_for_prefix
      Src: /src/Python-3.8.3/PC/getpathp.c:805,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:813,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - calculate
    - argv0_path
    - zip_path
    - prefix
    argTypes:
    - PyCalculatePath*
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 815
    functionName: calculate_home_prefix
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 0
    functionsReached:
    - wcscpy_s
    - reduce
    - exists
    - search_for_prefix
    linkageType: ''
    returnType: void
    signature: "void calculate_home_prefix(PyCalculatePath *calculate,\n                      const
      wchar_t *argv0_path,\n                      const wchar_t *zip_path,\n                      wchar_t
      *prefix)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: getpythonregpath
      Src: /src/Python-3.8.3/PC/getpathp.c:827,1
    - Dst: getpythonregpath
      Src: /src/Python-3.8.3/PC/getpathp.c:828,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:860,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:862,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:863,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:865,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:868,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:870,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:872,1
    - Dst: PyMem_RawMalloc
      Src: /src/Python-3.8.3/PC/getpathp.c:876,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:878,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:883,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:885,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:887,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:891,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:892,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:894,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:898,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:899,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:901,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:905,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:906,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:908,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:913,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:914,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:916,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:924,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/getpathp.c:926,1
    - Dst: is_sep
      Src: /src/Python-3.8.3/PC/getpathp.c:931,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:932,1
    - Dst: INIT_ERR_BUFFER_OVERFLOW
      Src: /src/Python-3.8.3/PC/getpathp.c:933,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:935,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/PC/getpathp.c:939,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/getpathp.c:949,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/getpathp.c:950,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/PC/getpathp.c:976,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:979,1
    - Dst: search_for_prefix
      Src: /src/Python-3.8.3/PC/getpathp.c:980,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:992,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 115
    argCount: 5
    argNames:
    - calculate
    - pathconfig
    - argv0_path
    - prefix
    - zip_path
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - wchar_t*
    - wchar_t*
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 818
    functionDepth: 2
    functionLinenumber: 818
    functionLinenumberEnd: 993
    functionName: calculate_module_search_path
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - is_sep
    - INIT_ERR_BUFFER_OVERFLOW
    - _PyStatus_NO_MEMORY
    - wcsncpy
    - wcschr
    - reduce
    - PyMem_RawMalloc
    - getpythonregpath
    - search_for_prefix
    - wcscpy
    - _PyStatus_OK
    - wcscpy_s
    - wcslen
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_module_search_path(PyCalculatePath *calculate,\n
      \                            _PyPathConfig *pathconfig,\n                             const
      wchar_t *argv0_path,\n                             wchar_t *prefix,\n                             const
      wchar_t *zip_path)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_program_full_path
      Src: /src/Python-3.8.3/PC/getpathp.c:1001,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:1002,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:1008,1
    - Dst: wcscpy_s
      Src: /src/Python-3.8.3/PC/getpathp.c:1010,1
    - Dst: reduce
      Src: /src/Python-3.8.3/PC/getpathp.c:1011,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:1014,1
    - Dst: calculate_pth_file
      Src: /src/Python-3.8.3/PC/getpathp.c:1018,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:1019,1
    - Dst: calculate_pyvenv_file
      Src: /src/Python-3.8.3/PC/getpathp.c:1026,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/getpathp.c:1026,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:1030,1
    - Dst: change_ext
      Src: /src/Python-3.8.3/PC/getpathp.c:1032,1
    - Dst: calculate_home_prefix
      Src: /src/Python-3.8.3/PC/getpathp.c:1036,1
    - Dst: calculate_module_search_path
      Src: /src/Python-3.8.3/PC/getpathp.c:1039,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:1041,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/PC/getpathp.c:1048,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:1050,1
    - Dst: _PyMem_RawWcsdup
      Src: /src/Python-3.8.3/PC/getpathp.c:1054,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:1056,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:1060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - calculate
    - pathconfig
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 996
    functionDepth: 7
    functionLinenumber: 996
    functionLinenumberEnd: 1061
    functionName: calculate_path
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - _PyMem_RawWcsdup
    - _PyStatus_NO_MEMORY
    - Py_ARRAY_LENGTH
    - get_program_full_path
    - reduce
    - change_ext
    - calculate_home_prefix
    - _PyStatus_EXCEPTION
    - calculate_module_search_path
    - calculate_pth_file
    - wcscpy_s
    - memset
    - calculate_pyvenv_file
    - _PyStatus_OK
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/PC/getpathp.c:1069,1
    - Dst: _Py_GetDLLPath
      Src: /src/Python-3.8.3/PC/getpathp.c:1071,1
    - Dst: _PyStatus_NO_MEMORY
      Src: /src/Python-3.8.3/PC/getpathp.c:1073,1
    - Dst: _PyStatus_OK
      Src: /src/Python-3.8.3/PC/getpathp.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - calculate
    - pathconfig
    - config
    argTypes:
    - PyCalculatePath*
    - _PyPathConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1064
    functionDepth: 3
    functionLinenumber: 1064
    functionLinenumberEnd: 1079
    functionName: calculate_init
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - _Py_GetDLLPath
    - _wgetenv
    - _PyStatus_OK
    - _PyStatus_NO_MEMORY
    linkageType: ''
    returnType: PyStatus
    signature: "PyStatus calculate_init(PyCalculatePath *calculate, _PyPathConfig
      *pathconfig,\n               const PyConfig *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:1085,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:1086,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/PC/getpathp.c:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - calculate
    argTypes:
    - PyCalculatePath*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1088
    functionName: calculate_free
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - PyMem_RawFree
    linkageType: ''
    returnType: void
    signature: void calculate_free(PyCalculatePath *calculate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/PC/getpathp.c:1124,1
    - Dst: calculate_init
      Src: /src/Python-3.8.3/PC/getpathp.c:1126,1
    - Dst: _PyStatus_EXCEPTION
      Src: /src/Python-3.8.3/PC/getpathp.c:1127,1
    - Dst: calculate_path
      Src: /src/Python-3.8.3/PC/getpathp.c:1131,1
    - Dst: calculate_free
      Src: /src/Python-3.8.3/PC/getpathp.c:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pathconfig
    - config
    argTypes:
    - _PyPathConfig*
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1136
    functionName: _PyPathConfig_Calculate
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 1
    functionsReached:
    - calculate_init
    - calculate_path
    - _PyStatus_EXCEPTION
    - memset
    - calculate_free
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus _PyPathConfig_Calculate(_PyPathConfig *pathconfig, const PyConfig
      *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/getpathp.c:1160,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/getpathp.c:1163,1
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/getpathp.c:1165,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/getpathp.c:1169,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/PC/getpathp.c:1170,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/getpathp.c:1176,1
    - Dst: Py_GetPrefix
      Src: /src/Python-3.8.3/PC/getpathp.c:1176,1
    - Dst: wcscat
      Src: /src/Python-3.8.3/PC/getpathp.c:1177,1
    - Dst: LoadLibraryExW
      Src: /src/Python-3.8.3/PC/getpathp.c:1178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1147
    functionDepth: 7
    functionLinenumber: 1147
    functionLinenumberEnd: 1180
    functionName: _Py_CheckPython3
    functionSourceFile: /src/Python-3.8.3/PC/getpathp.c
    functionUses: 2
    functionsReached:
    - wcscat
    - LoadLibraryExW
    - wcsrchr
    - Py_GetPrefix
    - wcscpy
    linkageType: ''
    returnType: int
    signature: int _Py_CheckPython3(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: XML_DefaultCurrent
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:34,1
    - Dst: auto::LocalCacheFolder
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:36,1
    - Dst: auto::Path
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:38,1
    - Dst: auto::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:39,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:40,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: get_user_base
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - auto::Path
    - std::wstring
    - XML_DefaultCurrent
    - auto::empty
    - auto::LocalCacheFolder
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring get_user_base()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_DefaultCurrent
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:53,1
    - Dst: auto::Id
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:55,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:57,1
    - Dst: auto::FamilyName
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:57,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: get_package_family
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - auto::FamilyName
    - XML_DefaultCurrent
    - auto::Id
    - std::wstring
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring get_package_family()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: XML_DefaultCurrent
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:71,1
    - Dst: auto::InstalledLocation
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:73,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:75,1
    - Dst: auto::Path
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:75,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: get_package_home
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - auto::Path
    - XML_DefaultCurrent
    - auto::InstalledLocation
    - std::wstring
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring get_package_home()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PyStatus_Ok
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:88,1
    - Dst: get_package_home
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:91,1
    - Dst: get_package_family
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:92,1
    - Dst: auto::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:94,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:96,1
    - Dst: SHGetKnownFolderPath
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:96,1
    - Dst: std::wstring
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:98,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:104,1
    - Dst: auto::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:109,1
    - Dst: std::wstring::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:109,1
    - Dst: std::wstring::resize
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:110,1
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:112,1
    - Dst: std::wstring::data
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:113,1
    - Dst: std::wstring::size
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:113,1
    - Dst: std::wstring::clear
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:115,1
    - Dst: std::wstring::size
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:117,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:118,1
    - Dst: std::wstring::resize
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:119,1
    - Dst: std::wstring::resize
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:121,1
    - Dst: std::wstring::find_last_of
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:125,1
    - Dst: std::wstring::replace
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:129,1
    - Dst: auto::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:133,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:134,1
    - Dst: auto::c_str
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:134,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:135,1
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:140,1
    - Dst: std::wstring::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:142,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:143,1
    - Dst: std::wstring::c_str
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:144,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:145,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:150,1
    - Dst: _wputenv_s
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:155,1
    - Dst: std::wstring::empty
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:156,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:157,1
    - Dst: std::wstring::c_str
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:158,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 162
    functionName: set_process_name
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - std::wstring
    - SUCCEEDED
    - std::wstring::clear
    - std::wstring::data
    - auto::empty
    - GetLastError
    - SHGetKnownFolderPath
    - GetModuleFileNameW
    - std::wstring::size
    - PyStatus_Exception
    - get_package_home
    - auto::c_str
    - _wgetenv
    - std::wstring::empty
    - std::wstring::resize
    - _wputenv_s
    - std::wstring::replace
    - std::wstring::c_str
    - CoTaskMemFree
    - std::wstring::find_last_of
    - get_package_family
    - PyStatus_Ok
    - PyConfig_SetString
    linkageType: ''
    returnType: PyStatus
    signature: PyStatus set_process_name(PyConfig *config)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: wcsrchr
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:172,1
    - Dst: wcsnicmp
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:181,1
    - Dst: wcsnicmp
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:183,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:188,1
    - Dst: Py_PreInitializeFromArgs
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:190,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:191,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:196,1
    - Dst: PyConfig_SetArgv
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:198,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:199,1
    - Dst: set_process_name
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:206,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:207,1
    - Dst: _wgetenv
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:211,1
    - Dst: _wputenv_s
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:213,1
    - Dst: get_user_base
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:213,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:217,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:218,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:221,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:222,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:225,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:226,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:231,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:232,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:235,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:237,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:240,1
    - Dst: PyStatus_IsExit
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:242,1
    - Dst: assert
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:245,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:245,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:246,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts:
    - condition: (PyStatus_Exception(status))
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/Python-3.8.3/PC/python_uwp.cpp
    constantsTouched: []
    func_position:
      end: 249
      start: 164
    functionDepth: 18
    functionLinenumber: 164
    functionLinenumberEnd: 249
    functionName: wmain
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - PyConfig_SetString
    - wcsnicmp
    - _wputenv_s
    - Py_RunMain
    - assert
    - Py_InitializeFromConfig
    - PyConfig_Clear
    - PyConfig_SetArgv
    - Py_ExitStatusException
    - wcsrchr
    - PyStatus_Exception
    - _wgetenv
    - PyConfig_InitPythonConfig
    - set_process_name
    - Py_PreInitializeFromArgs
    - PyStatus_IsExit
    - PyPreConfig_InitPythonConfig
    - get_user_base
    linkageType: ''
    returnType: int
    signature: int wmain(int argc, wchar_t **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wmain
      Src: /src/Python-3.8.3/PC/python_uwp.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - lpCmdLine
    - nCmdShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: wWinMain
    functionSourceFile: /src/Python-3.8.3/PC/python_uwp.cpp
    functionUses: 0
    functionsReached:
    - wmain
    linkageType: ''
    returnType: int
    signature: "int wWinMain(\n    HINSTANCE hInstance,      /* handle to current
      instance */\n    HINSTANCE hPrevInstance,  /* handle to previous instance */\n
      \   LPWSTR lpCmdLine,         /* pointer to command line */\n    int nCmdShow
      \             /* show state of window */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SUFFIX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: _Py_PASTE_VERSION
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_PASTE_VERSION(SUFFIX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: _Py_STRINGIZE
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_STRINGIZE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: _Py_STRINGIZE1
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_STRINGIZE1(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: _Py_STRINGIZE2
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_STRINGIZE2(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: Py_IS_INFINITY
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_INFINITY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 196
    functionName: Py_IS_FINITE
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_IS_FINITE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: Py_LL
    functionSourceFile: /src/Python-3.8.3/PC/pyconfig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_LL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Main
      Src: /src/Python-3.8.3/PC/WinMain.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hInstance
    - hPrevInstance
    - lpCmdLine
    - nCmdShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 8
    functionDepth: 8
    functionLinenumber: 8
    functionLinenumberEnd: 16
    functionName: wWinMain
    functionSourceFile: /src/Python-3.8.3/PC/WinMain.c
    functionUses: 0
    functionsReached:
    - Py_Main
    linkageType: ''
    returnType: int
    signature: "int wWinMain(\n    HINSTANCE hInstance,      /* handle to current
      instance */\n    HINSTANCE hPrevInstance,  /* handle to previous instance */\n
      \   LPWSTR lpCmdLine,         /* pointer to command line */\n    int nCmdShow
      \             /* show state of window */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hInstDLL
    - fdwReason
    - lpReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 9
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/PC/python3dll.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain(HINSTANCE hInstDLL,\n        DWORD fdwReason,\n        LPVOID
      lpReserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - expression
    - function
    - file
    - line
    - pReserved
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: _silent_invalid_parameter_handler
    functionSourceFile: /src/Python-3.8.3/PC/invalid_parameter_handler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void _silent_invalid_parameter_handler(\n    wchar_t const* expression,\n
      \   wchar_t const* function,\n    wchar_t const* file,\n    unsigned int line,\n
      \   uintptr_t pReserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: execfunc
    functionSourceFile: /src/Python-3.8.3/PC/_testconsole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int execfunc(PyObject *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyWindowsConsoleIO_Check
      Src: /src/Python-3.8.3/PC/_testconsole.c:50,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_testconsole.c:51,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/PC/_testconsole.c:55,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/PC/_testconsole.c:56,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/PC/_testconsole.c:58,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/_testconsole.c:61,1
    - Dst: WriteConsoleInputW
      Src: /src/Python-3.8.3/PC/_testconsole.c:75,1
    - Dst: PyErr_SetFromWindowsErr
      Src: /src/Python-3.8.3/PC/_testconsole.c:76,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/_testconsole.c:82,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/_testconsole.c:87,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - module
    - file
    - s
    argTypes:
    - PyObject*
    - PyObject*
    - PyBytesObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 43
    functionDepth: 11
    functionLinenumber: 43
    functionLinenumberEnd: 89
    functionName: _testconsole_write_input_impl
    functionSourceFile: /src/Python-3.8.3/PC/_testconsole.c
    functionUses: 0
    functionsReached:
    - PyWindowsConsoleIO_Check
    - WriteConsoleInputW
    - PyBytes_GET_SIZE
    - PyMem_Free
    - PyBytes_AS_STRING
    - PyErr_SetString
    - PyMem_Malloc
    - PyErr_SetFromWindowsErr
    - memset
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\n_testconsole_write_input_impl(PyObject *module, PyObject
      *file,\n                              PyBytesObject *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - file
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: _testconsole_read_output_impl
    functionSourceFile: /src/Python-3.8.3/PC/_testconsole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testconsole_read_output_impl(PyObject *module, PyObject *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyModuleDef_Init
      Src: /src/Python-3.8.3/PC/_testconsole.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 12
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: PyInit__testconsole
    functionSourceFile: /src/Python-3.8.3/PC/_testconsole.c
    functionUses: 0
    functionsReached:
    - PyModuleDef_Init
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__testconsole(PyObject *spec)
  - BBCount: 90
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 116
    argCount: 1
    argNames:
    - winerror
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 1
    functionDepth: 0
    functionLinenumber: 1
    functionLinenumberEnd: 140
    functionName: winerror_to_errno
    functionSourceFile: /src/Python-3.8.3/PC/errmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winerror_to_errno(int winerror)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UuidCreate
      Src: /src/Python-3.8.3/PC/_msi.c:28,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:29,1
    - Dst: UuidToStringW
      Src: /src/Python-3.8.3/PC/_msi.c:33,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:34,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/_msi.c:38,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/_msi.c:38,1
    - Dst: RpcStringFreeW
      Src: /src/Python-3.8.3/PC/_msi.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - obj
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 42
    functionName: uuidcreate
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromWideChar
    - UuidCreate
    - RpcStringFreeW
    - PyErr_SetString
    - UuidToStringW
    - wcslen
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      uuidcreate(PyObject* obj, PyObject*args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/_msi.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: FNFCIALLOC
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void FNFCIALLOC(cb_alloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: FNFCIFREE
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void FNFCIFREE(cb_free)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _open
      Src: /src/Python-3.8.3/PC/_msi.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: FNFCIOPEN
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _open
    linkageType: ''
    returnType: void
    signature: void FNFCIOPEN(cb_open)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _read
      Src: /src/Python-3.8.3/PC/_msi.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: FNFCIREAD
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _read
    linkageType: ''
    returnType: void
    signature: void FNFCIREAD(cb_read)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _write
      Src: /src/Python-3.8.3/PC/_msi.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: FNFCIWRITE
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _write
    linkageType: ''
    returnType: void
    signature: void FNFCIWRITE(cb_write)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _close
      Src: /src/Python-3.8.3/PC/_msi.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: FNFCICLOSE
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _close
    linkageType: ''
    returnType: void
    signature: void FNFCICLOSE(cb_close)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _lseek
      Src: /src/Python-3.8.3/PC/_msi.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: FNFCISEEK
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _lseek
    linkageType: ''
    returnType: void
    signature: void FNFCISEEK(cb_seek)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/Python-3.8.3/PC/_msi.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: FNFCIDELETE
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - remove
    linkageType: ''
    returnType: void
    signature: void FNFCIDELETE(cb_delete)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: FNFCIFILEPLACED
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FNFCIFILEPLACED(cb_fileplaced)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _tempnam
      Src: /src/Python-3.8.3/PC/_msi.c:111,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/_msi.c:112,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/_msi.c:113,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:114,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: FNFCIGETTEMPFILE
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - _tempnam
    - strlen
    - free
    - strcpy
    linkageType: ''
    returnType: void
    signature: void FNFCIGETTEMPFILE(cb_gettempfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/PC/_msi.c:125,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/PC/_msi.c:127,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/_msi.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: FNFCISTATUS
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    linkageType: ''
    returnType: void
    signature: void FNFCISTATUS(cb_status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _Py_IDENTIFIER
      Src: /src/Python-3.8.3/PC/_msi.c:138,1
    - Dst: _PyObject_CallMethodId
      Src: /src/Python-3.8.3/PC/_msi.c:140,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/PC/_msi.c:143,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/_msi.c:144,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/_msi.c:147,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/PC/_msi.c:150,1
    - Dst: PyBytes_AsString
      Src: /src/Python-3.8.3/PC/_msi.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 9
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: FNFCIGETNEXTCABINET
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - strncpy
    - _PyObject_CallMethodId
    - _Py_IDENTIFIER
    - PyBytes_AsString
    - PyBytes_Check
    - PyErr_Format
    linkageType: ''
    returnType: void
    signature: void FNFCIGETNEXTCABINET(cb_getnextcabinet)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/_msi.c:163,1
    - Dst: GetFileInformationByHandle
      Src: /src/Python-3.8.3/PC/_msi.c:168,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:170,1
    - Dst: FileTimeToLocalFileTime
      Src: /src/Python-3.8.3/PC/_msi.c:174,1
    - Dst: FileTimeToDosDateTime
      Src: /src/Python-3.8.3/PC/_msi.c:175,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:180,1
    - Dst: _open
      Src: /src/Python-3.8.3/PC/_msi.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: FNFCIGETOPENINFO
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - FileTimeToDosDateTime
    - _open
    - FileTimeToLocalFileTime
    - GetFileInformationByHandle
    - CreateFile
    - CloseHandle
    linkageType: ''
    returnType: void
    signature: void FNFCIGETOPENINFO(cb_getopeninfo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:195,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/PC/_msi.c:198,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:199,1
    - Dst: CharNext
      Src: /src/Python-3.8.3/PC/_msi.c:215,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/_msi.c:220,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:221,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/_msi.c:226,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/_msi.c:228,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/_msi.c:230,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/_msi.c:231,1
    - Dst: FCICreate
      Src: /src/Python-3.8.3/PC/_msi.c:234,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/_msi.c:239,1
    - Dst: PyList_GET_SIZE
      Src: /src/Python-3.8.3/PC/_msi.c:243,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/PC/_msi.c:244,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:247,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:248,1
    - Dst: FCIDestroy
      Src: /src/Python-3.8.3/PC/_msi.c:249,1
    - Dst: FCIAddFile
      Src: /src/Python-3.8.3/PC/_msi.c:253,1
    - Dst: FCIFlushCabinet
      Src: /src/Python-3.8.3/PC/_msi.c:259,1
    - Dst: FCIDestroy
      Src: /src/Python-3.8.3/PC/_msi.c:262,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/_msi.c:268,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:270,1
    - Dst: FCIDestroy
      Src: /src/Python-3.8.3/PC/_msi.c:272,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 2
    argNames:
    - obj
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 274
    functionName: fcicreate
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - strcpy
    - memcpy
    - FCIDestroy
    - PyList_Check
    - PyList_GET_ITEM
    - FCIFlushCabinet
    - strlen
    - FCIAddFile
    - PyErr_Format
    - PyErr_SetString
    - CharNext
    - PyList_GET_SIZE
    - PyArg_ParseTuple
    - FCICreate
    linkageType: ''
    returnType: PyObject
    signature: PyObject * fcicreate(PyObject* obj, PyObject* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:284,1
    - Dst: PyObject_Del
      Src: /src/Python-3.8.3/PC/_msi.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msidb
    argTypes:
    - msiobj*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: msiobj_dealloc
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - PyObject_Del
    linkageType: ''
    returnType: void
    signature: void msiobj_dealloc(msiobj* msidb)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MsiGetLastErrorRecord
      Src: /src/Python-3.8.3/PC/_msi.c:296,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:301,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:304,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:307,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:310,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:313,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:316,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:319,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:322,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/_msi.c:325,1
    - Dst: MsiRecordGetInteger
      Src: /src/Python-3.8.3/PC/_msi.c:330,1
    - Dst: MsiFormatRecord
      Src: /src/Python-3.8.3/PC/_msi.c:331,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/_msi.c:332,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:334,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/_msi.c:335,1
    - Dst: MsiFormatRecord
      Src: /src/Python-3.8.3/PC/_msi.c:337,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:340,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:341,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 289
    functionDepth: 9
    functionLinenumber: 289
    functionLinenumberEnd: 345
    functionName: msierror
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - MsiFormatRecord
    - malloc
    - PyErr_NoMemory
    - PyErr_Format
    - PyErr_SetString
    - free
    - MsiGetLastErrorRecord
    - MsiRecordGetInteger
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msierror(int status)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:351,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msidb
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 10
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: msidb_close
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - msierror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msidb_close(msiobj* msidb, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/_msi.c:363,1
    - Dst: MsiRecordGetFieldCount
      Src: /src/Python-3.8.3/PC/_msi.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: record_getfieldcount
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - MsiRecordGetFieldCount
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_getfieldcount(msiobj* record, PyObject* args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:372,1
    - Dst: MsiRecordGetInteger
      Src: /src/Python-3.8.3/PC/_msi.c:374,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:376,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/_msi.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 366
    functionDepth: 8
    functionLinenumber: 366
    functionLinenumberEnd: 380
    functionName: record_getinteger
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyArg_ParseTuple
    - MsiRecordGetInteger
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_getinteger(msiobj* record, PyObject* args)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:392,1
    - Dst: MsiRecordGetStringW
      Src: /src/Python-3.8.3/PC/_msi.c:394,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/_msi.c:396,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/_msi.c:398,1
    - Dst: MsiRecordGetStringW
      Src: /src/Python-3.8.3/PC/_msi.c:399,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:402,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/_msi.c:403,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 382
    functionDepth: 10
    functionLinenumber: 382
    functionLinenumberEnd: 407
    functionName: record_getstring
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - malloc
    - msierror
    - PyErr_NoMemory
    - MsiRecordGetStringW
    - PyUnicode_FromWideChar
    - free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_getstring(msiobj* record, PyObject* args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiRecordClearData
      Src: /src/Python-3.8.3/PC/_msi.c:412,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 409
    functionDepth: 10
    functionLinenumber: 409
    functionLinenumberEnd: 417
    functionName: record_cleardata
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiRecordClearData
    - msierror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_cleardata(msiobj* record, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:426,1
    - Dst: MsiRecordSetStringW
      Src: /src/Python-3.8.3/PC/_msi.c:429,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 419
    functionDepth: 10
    functionLinenumber: 419
    functionLinenumberEnd: 433
    functionName: record_setstring
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiRecordSetStringW
    - msierror
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_setstring(msiobj* record, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:442,1
    - Dst: MsiRecordSetStreamW
      Src: /src/Python-3.8.3/PC/_msi.c:445,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 10
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: record_setstream
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - msierror
    - PyArg_ParseTuple
    - MsiRecordSetStreamW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_setstream(msiobj* record, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:458,1
    - Dst: MsiRecordSetInteger
      Src: /src/Python-3.8.3/PC/_msi.c:461,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - record
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 451
    functionDepth: 10
    functionLinenumber: 451
    functionLinenumberEnd: 465
    functionName: record_setinteger
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiRecordSetInteger
    - msierror
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_setinteger(msiobj* record, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/PC/_msi.c:534,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - MSIHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: record_new
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - PyObject_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      record_new(MSIHANDLE h)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:560,1
    - Dst: MsiSummaryInfoGetProperty
      Src: /src/Python-3.8.3/PC/_msi.c:563,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/_msi.c:567,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/_msi.c:569,1
    - Dst: MsiSummaryInfoGetProperty
      Src: /src/Python-3.8.3/PC/_msi.c:571,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:575,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/_msi.c:581,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:584,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/PC/_msi.c:588,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/PC/_msi.c:591,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/_msi.c:595,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/_msi.c:600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - si
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 547
    functionDepth: 10
    functionLinenumber: 547
    functionLinenumberEnd: 602
    functionName: summary_getproperty
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyBytes_FromStringAndSize
    - malloc
    - msierror
    - Py_INCREF
    - PyErr_NoMemory
    - MsiSummaryInfoGetProperty
    - PyErr_Format
    - PyErr_SetString
    - free
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      summary_getproperty(msiobj* si, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiSummaryInfoGetPropertyCount
      Src: /src/Python-3.8.3/PC/_msi.c:610,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:612,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/_msi.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - si
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 10
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: summary_getpropertycount
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiSummaryInfoGetPropertyCount
    - PyLong_FromLong
    - msierror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      summary_getpropertycount(msiobj* si, PyObject *args)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:624,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/_msi.c:627,1
    - Dst: _PyUnicode_AsUnicode
      Src: /src/Python-3.8.3/PC/_msi.c:628,1
    - Dst: MsiSummaryInfoSetPropertyW
      Src: /src/Python-3.8.3/PC/_msi.c:632,1
    - Dst: PyLong_CheckExact
      Src: /src/Python-3.8.3/PC/_msi.c:634,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/PC/_msi.c:635,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/_msi.c:636,1
    - Dst: MsiSummaryInfoSetProperty
      Src: /src/Python-3.8.3/PC/_msi.c:639,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:642,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - si
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 617
    functionDepth: 10
    functionLinenumber: 617
    functionLinenumberEnd: 650
    functionName: summary_setproperty
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - msierror
    - MsiSummaryInfoSetPropertyW
    - _PyUnicode_AsUnicode
    - PyLong_CheckExact
    - MsiSummaryInfoSetProperty
    - PyErr_SetString
    - PyUnicode_Check
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      summary_setproperty(msiobj* si, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiSummaryInfoPersist
      Src: /src/Python-3.8.3/PC/_msi.c:658,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - si
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 653
    functionDepth: 10
    functionLinenumber: 653
    functionLinenumberEnd: 662
    functionName: summary_persist
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiSummaryInfoPersist
    - msierror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      summary_persist(msiobj* si, PyObject *args)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:729,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:734,1
    - Dst: MsiViewExecute
      Src: /src/Python-3.8.3/PC/_msi.c:740,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - view
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 722
    functionDepth: 10
    functionLinenumber: 722
    functionLinenumberEnd: 745
    functionName: view_execute
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - msierror
    - MsiViewExecute
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      view_execute(msiobj *view, PyObject*args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MsiViewFetch
      Src: /src/Python-3.8.3/PC/_msi.c:753,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:757,1
    - Dst: record_new
      Src: /src/Python-3.8.3/PC/_msi.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - view
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 747
    functionDepth: 10
    functionLinenumber: 747
    functionLinenumberEnd: 761
    functionName: view_fetch
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - record_new
    - msierror
    - MsiViewFetch
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      view_fetch(msiobj *view, PyObject*args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:770,1
    - Dst: MsiViewGetColumnInfo
      Src: /src/Python-3.8.3/PC/_msi.c:773,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:774,1
    - Dst: record_new
      Src: /src/Python-3.8.3/PC/_msi.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - view
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 763
    functionDepth: 10
    functionLinenumber: 763
    functionLinenumberEnd: 777
    functionName: view_getcolumninfo
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiViewGetColumnInfo
    - record_new
    - msierror
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      view_getcolumninfo(msiobj *view, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:786,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/_msi.c:790,1
    - Dst: MsiViewModify
      Src: /src/Python-3.8.3/PC/_msi.c:794,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - view
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 779
    functionDepth: 10
    functionLinenumber: 779
    functionLinenumberEnd: 798
    functionName: view_modify
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - msierror
    - PyArg_ParseTuple
    - PyErr_SetString
    - MsiViewModify
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      view_modify(msiobj *view, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiViewClose
      Src: /src/Python-3.8.3/PC/_msi.c:805,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - view
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 800
    functionDepth: 10
    functionLinenumber: 800
    functionLinenumberEnd: 809
    functionName: view_close
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - msierror
    - MsiViewClose
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      view_close(msiobj *view, PyObject*args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:879,1
    - Dst: MsiDatabaseOpenView
      Src: /src/Python-3.8.3/PC/_msi.c:882,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:883,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/PC/_msi.c:885,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - msidb
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 871
    functionDepth: 10
    functionLinenumber: 871
    functionLinenumberEnd: 893
    functionName: msidb_openview
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - msierror
    - PyObject_NEW
    - PyArg_ParseTuple
    - MsiDatabaseOpenView
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msidb_openview(msiobj *msidb, PyObject *args)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MsiDatabaseCommit
      Src: /src/Python-3.8.3/PC/_msi.c:900,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msidb
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 895
    functionDepth: 10
    functionLinenumber: 895
    functionLinenumberEnd: 904
    functionName: msidb_commit
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiDatabaseCommit
    - msierror
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msidb_commit(msiobj *msidb, PyObject *args)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:914,1
    - Dst: MsiGetSummaryInformation
      Src: /src/Python-3.8.3/PC/_msi.c:917,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:919,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/PC/_msi.c:921,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - args
    argTypes:
    - msiobj*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 906
    functionDepth: 10
    functionLinenumber: 906
    functionLinenumberEnd: 929
    functionName: msidb_getsummaryinformation
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - msierror
    - MsiGetSummaryInformation
    - PyObject_NEW
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msidb_getsummaryinformation(msiobj *db, PyObject *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 990
    functionName: Py_NOT_PERSIST
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_NOT_PERSIST(x, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 997
    functionName: Py_INVALID_PERSIST
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Py_INVALID_PERSIST(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:1005,1
    - Dst: Py_INVALID_PERSIST
      Src: /src/Python-3.8.3/PC/_msi.c:1010,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:1011,1
    - Dst: MsiOpenDatabase
      Src: /src/Python-3.8.3/PC/_msi.c:1012,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:1014,1
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/PC/_msi.c:1016,1
    - Dst: MsiCloseHandle
      Src: /src/Python-3.8.3/PC/_msi.c:1018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - obj
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 998
    functionDepth: 10
    functionLinenumber: 998
    functionLinenumberEnd: 1023
    functionName: msiopendb
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - MsiCloseHandle
    - msierror
    - Py_INVALID_PERSIST
    - MsiOpenDatabase
    - PyObject_NEW
    - PyArg_ParseTuple
    linkageType: ''
    returnType: PyObject
    signature: PyObject * msiopendb(PyObject *obj, PyObject *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/_msi.c:1031,1
    - Dst: MsiCreateRecord
      Src: /src/Python-3.8.3/PC/_msi.c:1034,1
    - Dst: msierror
      Src: /src/Python-3.8.3/PC/_msi.c:1036,1
    - Dst: record_new
      Src: /src/Python-3.8.3/PC/_msi.c:1038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - o
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1025
    functionDepth: 10
    functionLinenumber: 1025
    functionLinenumberEnd: 1039
    functionName: createrecord
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - record_new
    - msierror
    - PyArg_ParseTuple
    - MsiCreateRecord
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      createrecord(PyObject *o, PyObject *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/PC/_msi.c:1074,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1078,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1079,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1080,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1081,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1082,1
    - Dst: PyModule_AddIntConstant
      Src: /src/Python-3.8.3/PC/_msi.c:1083,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1085,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1086,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1088,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1089,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1090,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1091,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1092,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1093,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1094,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1095,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1096,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1097,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1098,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1099,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1100,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1102,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1103,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1104,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1105,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1106,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1107,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1108,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1109,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1110,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1111,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1112,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1113,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1114,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1115,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1116,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1117,1
    - Dst: PyModule_AddIntMacro
      Src: /src/Python-3.8.3/PC/_msi.c:1118,1
    - Dst: PyErr_NewException
      Src: /src/Python-3.8.3/PC/_msi.c:1120,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/PC/_msi.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1069
    functionDepth: 9
    functionLinenumber: 1069
    functionLinenumberEnd: 1125
    functionName: PyInit__msi
    functionSourceFile: /src/Python-3.8.3/PC/_msi.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyErr_NewException
    - PyModule_Create
    - PyModule_AddObject
    - PyModule_AddIntMacro
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit__msi(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringCchLengthA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:35,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:36,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pszSource
    - cchMax
    - pcchLength
    - pcchCount
    argTypes:
    - LPCSTR
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 47
    functionName: FilenameListCchLengthA
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - StringCchLengthA
    - strchr
    - FAILED
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT FilenameListCchLengthA(LPCSTR pszSource, size_t cchMax, size_t
      *pcchLength, size_t *pcchCount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StringCchLengthW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:56,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:57,1
    - Dst: wcschr
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - pszSource
    - cchMax
    - pcchLength
    - pcchCount
    argTypes:
    - LPCWSTR
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: FilenameListCchLengthW
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - StringCchLengthW
    - FAILED
    - wcschr
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT FilenameListCchLengthW(LPCWSTR pszSource, size_t cchMax, size_t
      *pcchLength, size_t *pcchCount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringCchCopyExA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:78,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:79,1
    - Dst: PathQuoteSpacesA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:83,1
    - Dst: StringCchCopyExA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:86,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pszDest
    - cchDest
    - pszSource
    - pszSeparator
    argTypes:
    - STRSAFE_LPSTR
    - size_t
    - LPCSTR
    - LPCSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 95
    functionName: FilenameListCchCopyA
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - FAILED
    - PathQuoteSpacesA
    - StringCchCopyExA
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT FilenameListCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest,
      LPCSTR pszSource, LPCSTR pszSeparator)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: StringCchCopyExW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:105,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:106,1
    - Dst: PathQuoteSpacesW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:110,1
    - Dst: StringCchCopyExW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:113,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pszDest
    - cchDest
    - pszSource
    - pszSeparator
    argTypes:
    - STRSAFE_LPWSTR
    - size_t
    - LPCWSTR
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: FilenameListCchCopyW
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - StringCchCopyExW
    - FAILED
    - PathQuoteSpacesW
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT FilenameListCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest,
      LPCWSTR pszSource, LPCWSTR pszSeparator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: PyShellExt::PyShellExt
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - OutputDebugString
    linkageType: ''
    returnType: void
    signature: void PyShellExt()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:143,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:146,1
    - Dst: Release
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: ~PyShellExt()
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - Release
    - CoTaskMemFree
    linkageType: ''
    returnType: void
    signature: void ~PyShellExt()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IDataObject*::GetData
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:164,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:165,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:166,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:170,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:171,1
    - Dst: GlobalLock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:174,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:176,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:177,1
    - Dst: StringCchCopy
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:180,1
    - Dst: StringCchCopy
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:181,1
    - Dst: PathFindFileNameW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:181,1
    - Dst: GlobalUnlock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:184,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - pDataObj
    argTypes:
    - IDataObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 188
    functionName: PyShellExt::UpdateDropDescription
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - GlobalUnlock
    - OutputDebugString
    - IDataObject*::GetData
    - GlobalLock
    - PathFindFileNameW
    - ReleaseStgMedium
    - FAILED
    - StringCchCopy
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT UpdateDropDescription(IDataObject *pDataObj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IDataObject*::GetData
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:202,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:203,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:204,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:208,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:209,1
    - Dst: GlobalLock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:213,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:215,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:216,1
    - Dst: GlobalUnlock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:222,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pDataObj
    - phWnd
    argTypes:
    - IDataObject*
    - HWND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 226
    functionName: PyShellExt::GetDragWindow
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - GlobalUnlock
    - OutputDebugString
    - IDataObject*::GetData
    - GlobalLock
    - ReleaseStgMedium
    - FAILED
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT GetDragWindow(IDataObject *pDataObj, HWND *phWnd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IDataObject*::GetData
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:241,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:242,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:243,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:247,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:248,1
    - Dst: GlobalLock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:252,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:254,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:255,1
    - Dst: FilenameListCchLengthW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:262,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:263,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:264,1
    - Dst: FilenameListCchCopyW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:266,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:267,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:270,1
    - Dst: FilenameListCchLengthA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:279,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:280,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:281,1
    - Dst: FilenameListCchCopyA
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:283,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:284,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:285,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:287,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:288,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:291,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:292,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:296,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:300,1
    - Dst: GlobalUnlock
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:307,1
    - Dst: ReleaseStgMedium
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:308,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - pDataObj
    - pArguments
    argTypes:
    - IDataObject*
    - LPCWSTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 311
    functionName: PyShellExt::GetArguments
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - FilenameListCchCopyA
    - FilenameListCchLengthA
    - GlobalUnlock
    - CoTaskMemAlloc
    - FilenameListCchLengthW
    - SUCCEEDED
    - OutputDebugString
    - MultiByteToWideChar
    - IDataObject*::GetData
    - GlobalLock
    - CoTaskMemFree
    - FilenameListCchCopyW
    - ReleaseStgMedium
    - FAILED
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT GetArguments(IDataObject *pDataObj, LPCWSTR *pArguments)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:320,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hwnd
    argTypes:
    - HWND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 328
    functionName: PyShellExt::NotifyDragWindow
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - SendMessage
    - OutputDebugString
    linkageType: ''
    returnType: HRESULT
    signature: HRESULT NotifyDragWindow(HWND hwnd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:336,1
    - Dst: IDataObject*::AddRef
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:338,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:343,1
    - Dst: PyShellExt::UpdateDropDescription
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:343,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:344,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:346,1
    - Dst: PyShellExt::GetDragWindow
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:346,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:347,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:349,1
    - Dst: PyShellExt::NotifyDragWindow
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:349,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - pDataObj
    - grfKeyState
    - pt
    - pdwEffect
    argTypes:
    - IDataObject*
    - DWORD
    - POINTL
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 354
    functionName: PyShellExt::DragEnter
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - PyShellExt::GetDragWindow
    - OutputDebugString
    - IDataObject*::AddRef
    - PyShellExt::UpdateDropDescription
    - PyShellExt::NotifyDragWindow
    - FAILED
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL
      pt, DWORD *pdwEffect)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 358
    functionName: PyShellExt::DragLeave
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP DragLeave()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - grfKeyState
    - pt
    - pdwEffect
    argTypes:
    - DWORD
    - POINTL
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: PyShellExt::DragOver
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:367,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:371,1
    - Dst: Release
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:375,1
    - Dst: SUCCEEDED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:378,1
    - Dst: PyShellExt::GetArguments
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:378,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:379,1
    - Dst: ShellExecute
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:380,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:382,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - pDataObj
    - grfKeyState
    - pt
    - pdwEffect
    argTypes:
    - IDataObject*
    - DWORD
    - POINTL
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 388
    functionName: PyShellExt::Drop
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - Release
    - PyShellExt::GetArguments
    - SUCCEEDED
    - ShellExecute
    - OutputDebugString
    - CoTaskMemFree
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL
      pt, DWORD *pdwEffect)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringCchLength
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:400,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:401,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:405,1
    - Dst: StringCchCopy
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:410,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:411,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ppszFileName
    argTypes:
    - LPOLESTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 418
    functionName: PyShellExt::GetCurFile
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - CoTaskMemAlloc
    - CoTaskMemFree
    - StringCchLength
    - FAILED
    - StringCchCopy
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: PyShellExt::IsDirty
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP IsDirty()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:428,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:429,1
    - Dst: StringCchLength
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:431,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:432,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:433,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:438,1
    - Dst: CoTaskMemFree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:441,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:444,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:446,1
    - Dst: CoTaskMemAlloc
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:449,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:451,1
    - Dst: StringCchCopy
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:455,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:456,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:457,1
    - Dst: StringCchCopy
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:461,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:462,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:463,1
    - Dst: PathRemoveFileSpecW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:466,1
    - Dst: OutputDebugStringW
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:467,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:471,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - pszFileName
    - dwMode
    argTypes:
    - LPCOLESTR
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 475
    functionName: PyShellExt::Load
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - CoTaskMemAlloc
    - PathRemoveFileSpecW
    - OutputDebugString
    - CoTaskMemFree
    - StringCchLength
    - FAILED
    - OutputDebugStringW
    - StringCchCopy
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP Load(LPCOLESTR pszFileName, DWORD dwMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pszFileName
    - fRemember
    argTypes:
    - LPCOLESTR
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: PyShellExt::Save
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pszFileName
    argTypes:
    - LPCOLESTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: PyShellExt::SaveCompleted
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pClassID
    argTypes:
    - CLSID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 488
    functionName: PyShellExt::GetClassID
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: STDMETHODIMP
    signature: STDMETHODIMP GetClassID(CLSID *pClassID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetModule
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rclsid
    - riid
    - ppv
    argTypes:
    - REFCLSID
    - REFIID
    - _COM_Outptr_**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: DllGetClassObject
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, _COM_Outptr_
      void** ppv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyFunction_GetModule
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: DllCanUnloadNow
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - PyFunction_GetModule
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllCanUnloadNow()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:509,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:511,1
    - Dst: GetModuleFileName
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:514,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:516,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:517,1
    - Dst: RegCreateKeyEx
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:522,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:525,1
    - Dst: RegCreateKeyEx
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:526,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:530,1
    - Dst: RegCreateKeyEx
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:534,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:537,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:538,1
    - Dst: RegSetValueEx
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:542,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:546,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:547,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:548,1
    - Dst: RegSetValueEx
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:552,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:555,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:556,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:558,1
    - Dst: SHChangeNotify
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:562,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:564,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 566
    functionName: DllRegisterServer
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - GetLastError
    - RegCreateKeyEx
    - OutputDebugString
    - SHChangeNotify
    - RegCloseKey
    - RegSetValueEx
    - GetModuleFileName
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllRegisterServer()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RegDeleteTree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:571,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:573,1
    - Dst: RegDeleteTree
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:577,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:579,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:584,1
    - Dst: SHChangeNotify
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:588,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:590,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 592
    functionName: DllUnregisterServer
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - RegDeleteTree
    - OutputDebugString
    - SHChangeNotify
    linkageType: ''
    returnType: STDAPI
    signature: STDAPI DllUnregisterServer()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RegisterClipboardFormat
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:598,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:600,1
    - Dst: RegisterClipboardFormat
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:602,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:604,1
    - Dst: DisableThreadLibraryCalls
      Src: /src/Python-3.8.3/PC/pyshellext.cpp:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - HINSTANCE
    - reason
    - void
    argTypes:
    - _In_opt_
    - DWORD
    - _In_opt_
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/PC/pyshellext.cpp
    functionUses: 0
    functionsReached:
    - OutputDebugString
    - RegisterClipboardFormat
    - DisableThreadLibraryCalls
    linkageType: ''
    returnType: void
    signature: void DllMain(_In_opt_ HINSTANCE hinst, DWORD reason, _In_opt_ void*)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winsound.c:89,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/PC/winsound.c:93,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/winsound.c:98,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/winsound.c:99,1
    - Dst: Py_TYPE
      Src: /src/Python-3.8.3/PC/winsound.c:101,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/PC/winsound.c:104,1
    - Dst: PlaySoundW
      Src: /src/Python-3.8.3/PC/winsound.c:112,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/PC/winsound.c:115,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winsound.c:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winsound.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - module
    - sound
    - flags
    argTypes:
    - PyObject*
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 75
    functionDepth: 9
    functionLinenumber: 75
    functionLinenumberEnd: 124
    functionName: winsound_PlaySound_impl
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached:
    - PyUnicode_AsWideCharString
    - PlaySoundW
    - PyErr_Format
    - Py_TYPE
    - PyErr_SetString
    - PyBuffer_Release
    - PyUnicode_Check
    - PyMem_Free
    - PyObject_GetBuffer
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_PlaySound_impl(PyObject *module, PyObject *sound, int flags)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winsound.c:145,1
    - Dst: Beep
      Src: /src/Python-3.8.3/PC/winsound.c:151,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winsound.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - frequency
    - duration
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 8
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: winsound_Beep_impl
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached:
    - Beep
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_Beep_impl(PyObject *module, int frequency, int duration)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageBeep
      Src: /src/Python-3.8.3/PC/winsound.c:178,1
    - Dst: PyErr_SetExcFromWindowsErr
      Src: /src/Python-3.8.3/PC/winsound.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - module
    - type
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 171
    functionDepth: 11
    functionLinenumber: 171
    functionLinenumberEnd: 187
    functionName: winsound_MessageBeep_impl
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached:
    - MessageBeep
    - PyErr_SetExcFromWindowsErr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_MessageBeep_impl(PyObject *module, int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromString
      Src: /src/Python-3.8.3/PC/winsound.c:200,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/winsound.c:201,1
    - Dst: PyDict_SetItem
      Src: /src/Python-3.8.3/PC/winsound.c:203,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/PC/winsound.c:205,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/PC/winsound.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dict
    - key
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 207
    functionName: add_define
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyUnicode_FromString
    - PyDict_SetItem
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void add_define(PyObject *dict, const char *key, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tok
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: ADD_DEFINE
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_DEFINE(tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/PC/winsound.c:228,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/PC/winsound.c:231,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:233,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:234,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:235,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:236,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:237,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:238,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:239,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:240,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:241,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:242,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:244,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:245,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:246,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:247,1
    - Dst: ADD_DEFINE
      Src: /src/Python-3.8.3/PC/winsound.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 250
    functionName: PyInit_winsound
    functionSourceFile: /src/Python-3.8.3/PC/winsound.c
    functionUses: 0
    functionsReached:
    - ADD_DEFINE
    - PyModule_Create
    - PyModule_GetDict
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_winsound(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CallModuleDllMain
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: PyWinFreeze_ExeInit
    functionSourceFile: /src/Python-3.8.3/PC/frozen_dllmain.c
    functionUses: 1
    functionsReached:
    - CallModuleDllMain
    linkageType: ''
    returnType: void
    signature: void PyWinFreeze_ExeInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:80,1
    - Dst: CallModuleDllMain
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 86
    functionName: PyWinFreeze_ExeTerm
    functionSourceFile: /src/Python-3.8.3/PC/frozen_dllmain.c
    functionUses: 1
    functionsReached:
    - CallModuleDllMain
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void PyWinFreeze_ExeTerm(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CallModuleDllMain
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:96,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:106,1
    - Dst: CallModuleDllMain
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - hInstance
    - dwReason
    - lpReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: DllMain
    functionSourceFile: /src/Python-3.8.3/PC/frozen_dllmain.c
    functionUses: 3
    functionsReached:
    - CallModuleDllMain
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: BOOL
    signature: BOOL DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOOL
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:118,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:121,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:122,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:123,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:124,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/frozen_dllmain.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - modName
    - dwReason
    argTypes:
    - char*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 133
    functionName: CallModuleDllMain
    functionSourceFile: /src/Python-3.8.3/PC/frozen_dllmain.c
    functionUses: 3
    functionsReached:
    - strcpy
    - GetProcAddress
    - strcat
    - BOOL
    - GetModuleHandleW
    linkageType: ''
    returnType: BOOL
    signature: BOOL CallModuleDllMain(char *modName, DWORD dwReason)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _heapmin
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:90,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 10
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: msvcrt_heapmin_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - _heapmin
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_heapmin_impl(PyObject *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:119,1
    - Dst: _locking
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:125,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - fd
    - mode
    - nbytes
    argTypes:
    - PyObject*
    - int
    - int
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 113
    functionDepth: 10
    functionLinenumber: 113
    functionLinenumberEnd: 132
    functionName: msvcrt_locking_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _locking
    - PySys_Audit
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_locking_impl(PyObject *module, int fd, int mode, long nbytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:154,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - fd
    - flags
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 10
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: msvcrt_setmode_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _setmode
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: long
    signature: long msvcrt_setmode_impl(PyObject *module, int fd, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:182,1
    - Dst: _open_osfhandle
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:187,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - handle
    - flags
    argTypes:
    - PyObject*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 176
    functionDepth: 10
    functionLinenumber: 176
    functionLinenumberEnd: 193
    functionName: msvcrt_open_osfhandle_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromErrno
    - _open_osfhandle
    linkageType: ''
    returnType: long
    signature: long msvcrt_open_osfhandle_impl(PyObject *module, void *handle, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:212,1
    - Dst: _get_osfhandle
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:217,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - module
    - fd
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 206
    functionDepth: 10
    functionLinenumber: 206
    functionLinenumberEnd: 223
    functionName: msvcrt_get_osfhandle_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyErr_SetFromErrno
    - _get_osfhandle
    linkageType: ''
    returnType: void
    signature: 'void *

      msvcrt_get_osfhandle_impl(PyObject *module, int fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _kbhit
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: msvcrt_kbhit_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _kbhit
    linkageType: ''
    returnType: long
    signature: long msvcrt_kbhit_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getch
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 261
    functionName: msvcrt_getch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _getch
    linkageType: ''
    returnType: int
    signature: int msvcrt_getch_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getwch
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: msvcrt_getwch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _getwch
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t msvcrt_getwch_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getche
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: msvcrt_getche_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _getche
    linkageType: ''
    returnType: int
    signature: int msvcrt_getche_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _getwche
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - module
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 315
    functionName: msvcrt_getwche_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _getwche
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t msvcrt_getwche_impl(PyObject *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - char_value
    argTypes:
    - PyObject*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 334
    functionName: msvcrt_putch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_putch_impl(PyObject *module, char char_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - unicode_char
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 354
    functionName: msvcrt_putwch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_putwch_impl(PyObject *module, int unicode_char)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ungetch
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:376,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - char_value
    argTypes:
    - PyObject*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 10
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: msvcrt_ungetch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _ungetch
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_ungetch_impl(PyObject *module, char char_value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _ungetwch
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:400,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - unicode_char
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 393
    functionDepth: 10
    functionLinenumber: 393
    functionLinenumberEnd: 406
    functionName: msvcrt_ungetwch_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _ungetwch
    - PyErr_SetFromErrno
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_ungetwch_impl(PyObject *module, int unicode_char)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetReportFile
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - module
    - type
    - file
    argTypes:
    - PyObject*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 432
    functionName: msvcrt_CrtSetReportFile_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _CrtSetReportFile
    linkageType: ''
    returnType: void
    signature: 'void *

      msvcrt_CrtSetReportFile_impl(PyObject *module, int type, void *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetReportMode
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:453,1
    - Dst: PyErr_SetFromErrno
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - module
    - type
    - mode
    argTypes:
    - PyObject*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 446
    functionDepth: 10
    functionLinenumber: 446
    functionLinenumberEnd: 458
    functionName: msvcrt_CrtSetReportMode_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromErrno
    - _CrtSetReportMode
    linkageType: ''
    returnType: long
    signature: long msvcrt_CrtSetReportMode_impl(PyObject *module, int type, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _set_error_mode
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - mode
    argTypes:
    - PyObject*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 482
    functionName: msvcrt_set_error_mode_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - _set_error_mode
    linkageType: ''
    returnType: long
    signature: long msvcrt_set_error_mode_impl(PyObject *module, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetErrorMode
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - module
    - mode
    argTypes:
    - PyObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: msvcrt_SetErrorMode_impl
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - SetErrorMode
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_SetErrorMode_impl(PyObject *module, unsigned int mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:550,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:553,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:556,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - d
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 547
    functionDepth: 6
    functionLinenumber: 547
    functionLinenumberEnd: 559
    functionName: insertint
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItemString
    - PyErr_Clear
    - Py_DECREF
    linkageType: ''
    returnType: void
    signature: void insertint(PyObject *d, char *name, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:564,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:567,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:570,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - d
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 573
    functionName: insertptr
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyDict_SetItemString
    - PyErr_Clear
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: void
    signature: void insertptr(PyObject *d, char *name, void *value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:580,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:583,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:586,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:587,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:588,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:589,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:590,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:591,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:592,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:593,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:594,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:596,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:597,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:598,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:599,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:600,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:601,1
    - Dst: insertint
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:602,1
    - Dst: insertptr
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:603,1
    - Dst: insertptr
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:604,1
    - Dst: insertptr
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:605,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:610,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:615,1
    - Dst: PyModule_AddStringConstant
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:620,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:627,1
    - Dst: PyModule_AddObject
      Src: /src/Python-3.8.3/PC/msvcrtmodule.c:631,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 575
    functionDepth: 9
    functionLinenumber: 575
    functionLinenumberEnd: 638
    functionName: PyInit_msvcrt
    functionSourceFile: /src/Python-3.8.3/PC/msvcrtmodule.c
    functionUses: 0
    functionsReached:
    - PyModule_AddStringConstant
    - PyModule_GetDict
    - PyModule_Create
    - insertptr
    - PyModule_AddObject
    - PyUnicode_FromFormat
    - insertint
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_msvcrt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rc
    - ','
    - fnname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: PyErr_SetFromWindowsErrWithFunction
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyErr_SetFromWindowsErrWithFunction(rc, fnname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: PyHKEY_Check
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PyHKEY_Check(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 8
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: PyHKEY_unaryFailureFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_unaryFailureFunc(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ob1
    - ob2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 8
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: PyHKEY_binaryFailureFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_binaryFailureFunc(PyObject *ob1, PyObject *ob2)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ob1
    - ob2
    - ob3
    argTypes:
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 8
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: PyHKEY_ternaryFailureFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetString
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_ternaryFailureFunc(PyObject *ob1, PyObject *ob2, PyObject *ob3)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:146,1
    - Dst: PyObject_DEL
      Src: /src/Python-3.8.3/PC/winreg.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: PyHKEY_deallocFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyObject_DEL
    - RegCloseKey
    linkageType: ''
    returnType: void
    signature: void PyHKEY_deallocFunc(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: PyHKEY_boolFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyHKEY_boolFunc(PyObject *ob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: PyHKEY_intFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_intFunc(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/PC/winreg.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 8
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: PyHKEY_strFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyUnicode_FromFormat
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_strFunc(PyObject *ob)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ob1
    - ob2
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: PyHKEY_compareFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PyHKEY_compareFunc(PyObject *ob1, PyObject *ob2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Py_HashPointer
      Src: /src/Python-3.8.3/PC/winreg.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ob
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: PyHKEY_hashFunc
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - _Py_HashPointer
    linkageType: ''
    returnType: Py_hash_t
    signature: Py_hash_t PyHKEY_hashFunc(PyObject *ob)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_Close
      Src: /src/Python-3.8.3/PC/winreg.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHKEYObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: winreg_HKEYType_Close_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyHKEY_Close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType_Close_impl(PyHKEYObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:296,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHKEYObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: winreg_HKEYType_Detach_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType_Detach_impl(PyHKEYObject *self)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_XINCREF
      Src: /src/Python-3.8.3/PC/winreg.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - self
    argTypes:
    - PyHKEYObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: winreg_HKEYType___enter___impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - Py_XINCREF
    linkageType: ''
    returnType: PyHKEYObject
    signature: 'PyHKEYObject *

      winreg_HKEYType___enter___impl(PyHKEYObject *self)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_Close
      Src: /src/Python-3.8.3/PC/winreg.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - self
    - exc_type
    - exc_value
    - traceback
    argTypes:
    - PyHKEYObject*
    - PyObject*
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: winreg_HKEYType___exit___impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyHKEY_Close
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_HKEYType___exit___impl(PyHKEYObject *self, PyObject
      *exc_type,\n                              PyObject *exc_value, PyObject *traceback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: 'OFF'
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFF(e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hInit
    argTypes:
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 397
    functionName: PyHKEY_New
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyObject_NEW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_New(HKEY hInit)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_AsHKEY
      Src: /src/Python-3.8.3/PC/winreg.c:405,1
    - Dst: PyHKEY_Check
      Src: /src/Python-3.8.3/PC/winreg.c:408,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:411,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ob_handle
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 415
    functionName: PyHKEY_Close
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 2
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PyHKEY_Check
    - RegCloseKey
    - PyHKEY_AsHKEY
    linkageType: ''
    returnType: BOOL
    signature: BOOL PyHKEY_Close(PyObject *ob_handle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:422,1
    - Dst: PyHKEY_Check
      Src: /src/Python-3.8.3/PC/winreg.c:429,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/PC/winreg.c:433,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/PC/winreg.c:435,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:436,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/winreg.c:437,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - ob
    - pHANDLE
    - bNoneOK
    argTypes:
    - PyObject*
    - HKEY*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 417
    functionDepth: 8
    functionLinenumber: 417
    functionLinenumberEnd: 447
    functionName: PyHKEY_AsHKEY
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 1
    functionsReached:
    - PyLong_Check
    - PyErr_Occurred
    - PyLong_AsVoidPtr
    - PyErr_SetString
    - PyHKEY_Check
    - PyErr_Clear
    linkageType: ''
    returnType: BOOL
    signature: BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pHANDLE, BOOL bNoneOK)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_AsHKEY
      Src: /src/Python-3.8.3/PC/winreg.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ob
    - p
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 9
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: clinic_HKEY_converter
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyHKEY_AsHKEY
    linkageType: ''
    returnType: BOOL
    signature: BOOL clinic_HKEY_converter(PyObject *ob, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyObject_MALLOC
      Src: /src/Python-3.8.3/PC/winreg.c:463,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:465,1
    - Dst: PyObject_INIT
      Src: /src/Python-3.8.3/PC/winreg.c:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h
    argTypes:
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 8
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: PyHKEY_FromHKEY
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyObject_INIT
    - PyObject_MALLOC
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      PyHKEY_FromHKEY(HKEY h)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_Check
      Src: /src/Python-3.8.3/PC/winreg.c:479,1
    - Dst: PyHKEY_Close
      Src: /src/Python-3.8.3/PC/winreg.c:480,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:484,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/PC/winreg.c:484,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:487,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:491,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:491,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:494,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - obHandle
    argTypes:
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 475
    functionDepth: 8
    functionLinenumber: 475
    functionLinenumberEnd: 502
    functionName: PyWinObject_CloseHKEY
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyHKEY_Close
    - PyLong_AsVoidPtr
    - RegCloseKey
    - PyErr_SetString
    - PyHKEY_Check
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: BOOL
    signature: BOOL PyWinObject_CloseHKEY(PyObject *obHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:484,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/PC/winreg.c:484,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 488
    functionName: if
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 10
    functionsReached:
    - PyLong_AsLong
    - RegCloseKey
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: else
    signature: else if (PyLong_Check(obHandle))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/winreg.c:491,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:491,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 6
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: if
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 10
    functionsReached:
    - PyLong_AsVoidPtr
    - RegCloseKey
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: else
    signature: else if (PyLong_Check(obHandle))
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - str
    - data
    - len
    argTypes:
    - wchar_t**
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 537
    functionName: fixupMultiSZ
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fixupMultiSZ(wchar_t **str, wchar_t *data, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - wchar_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 558
    functionName: countStrings
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countStrings(wchar_t *data, int len)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/PC/winreg.c:568,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:570,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:572,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/winreg.c:578,1
    - Dst: PyLong_AsUnsignedLong
      Src: /src/Python-3.8.3/PC/winreg.c:581,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/winreg.c:582,1
    - Dst: PyLong_Check
      Src: /src/Python-3.8.3/PC/winreg.c:586,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:588,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:590,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/winreg.c:596,1
    - Dst: PyLong_AsUnsignedLongLong
      Src: /src/Python-3.8.3/PC/winreg.c:599,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/winreg.c:600,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/winreg.c:608,1
    - Dst: PyUnicode_AsWideCharString
      Src: /src/Python-3.8.3/PC/winreg.c:610,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/PC/winreg.c:613,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:618,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:620,1
    - Dst: PyList_Check
      Src: /src/Python-3.8.3/PC/winreg.c:636,1
    - Dst: PyList_Size
      Src: /src/Python-3.8.3/PC/winreg.c:638,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/PC/winreg.c:646,1
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/winreg.c:647,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/PC/winreg.c:649,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/PC/winreg.c:652,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:657,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:660,1
    - Dst: PyList_GET_ITEM
      Src: /src/Python-3.8.3/PC/winreg.c:671,1
    - Dst: PyUnicode_AsUnicodeAndSize
      Src: /src/Python-3.8.3/PC/winreg.c:672,1
    - Dst: assert
      Src: /src/Python-3.8.3/PC/winreg.c:673,1
    - Dst: wcscpy
      Src: /src/Python-3.8.3/PC/winreg.c:674,1
    - Dst: PyObject_CheckBuffer
      Src: /src/Python-3.8.3/PC/winreg.c:692,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/PC/winreg.c:693,1
    - Dst: PyObject_GetBuffer
      Src: /src/Python-3.8.3/PC/winreg.c:700,1
    - Dst: PyMem_NEW
      Src: /src/Python-3.8.3/PC/winreg.c:703,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/PC/winreg.c:705,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:706,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/PC/winreg.c:709,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/winreg.c:710,1
    - Dst: PyBuffer_Release
      Src: /src/Python-3.8.3/PC/winreg.c:711,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 110
    argCount: 4
    argNames:
    - value
    - typ
    - retDataBuf
    - retDataSize
    argTypes:
    - PyObject*
    - DWORD
    - BYTE**
    - DWORD*
    assertStmts:
    - condition: (wstr)
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/Python-3.8.3/PC/winreg.c
    constantsTouched: []
    func_position:
      end: 716
      start: 562
    functionDepth: 9
    functionLinenumber: 562
    functionLinenumberEnd: 716
    functionName: Py2Reg
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyObject_CheckBuffer
    - PyMem_NEW
    - PyList_Size
    - Py_SAFE_DOWNCAST
    - PyLong_AsUnsignedLong
    - PyList_GET_ITEM
    - PyErr_Format
    - PyUnicode_Check
    - assert
    - PyLong_Check
    - PyUnicode_AsWideCharString
    - PyList_Check
    - PyUnicode_AsUnicodeAndSize
    - memcpy
    - PyErr_NoMemory
    - PyLong_AsUnsignedLongLong
    - PyBuffer_Release
    - wcscpy
    - PyObject_GetBuffer
    linkageType: ''
    returnType: BOOL
    signature: BOOL Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/PC/winreg.c:727,1
    - Dst: PyLong_FromUnsignedLong
      Src: /src/Python-3.8.3/PC/winreg.c:729,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/PC/winreg.c:733,1
    - Dst: PyLong_FromUnsignedLongLong
      Src: /src/Python-3.8.3/PC/winreg.c:735,1
    - Dst: wcsnlen
      Src: /src/Python-3.8.3/PC/winreg.c:745,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/winreg.c:746,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/PC/winreg.c:751,1
    - Dst: countStrings
      Src: /src/Python-3.8.3/PC/winreg.c:757,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/PC/winreg.c:758,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:760,1
    - Dst: fixupMultiSZ
      Src: /src/Python-3.8.3/PC/winreg.c:762,1
    - Dst: PyList_New
      Src: /src/Python-3.8.3/PC/winreg.c:763,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:765,1
    - Dst: wcsnlen
      Src: /src/Python-3.8.3/PC/winreg.c:770,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/winreg.c:771,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/winreg.c:773,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:774,1
    - Dst: PyList_SET_ITEM
      Src: /src/Python-3.8.3/PC/winreg.c:777,1
    - Dst: Py_SAFE_DOWNCAST
      Src: /src/Python-3.8.3/PC/winreg.c:778,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:780,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/PC/winreg.c:789,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/PC/winreg.c:793,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - retDataBuf
    - retDataSize
    - typ
    argTypes:
    - BYTE*
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 798
    functionName: Reg2Py
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - Py_SAFE_DOWNCAST
    - PyBytes_FromStringAndSize
    - PyMem_New
    - wcsnlen
    - Py_DECREF
    - Py_INCREF
    - PyErr_NoMemory
    - fixupMultiSZ
    - PyList_SET_ITEM
    - countStrings
    - PyUnicode_FromWideChar
    - PyMem_Free
    - PyLong_FromUnsignedLong
    - PyList_New
    - PyLong_FromUnsignedLongLong
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      Reg2Py(BYTE *retDataBuf, DWORD retDataSize, DWORD typ)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyHKEY_Close
      Src: /src/Python-3.8.3/PC/winreg.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - module
    - hkey
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 822
    functionName: winreg_CloseKey
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyHKEY_Close
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_CloseKey(PyObject *module, PyObject *hkey)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:847,1
    - Dst: RegConnectRegistryW
      Src: /src/Python-3.8.3/PC/winreg.c:852,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - module
    - computer_name
    - key
    argTypes:
    - PyObject*
    - Py_UNICODE*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 840
    functionDepth: 4
    functionLinenumber: 840
    functionLinenumberEnd: 859
    functionName: winreg_ConnectRegistry_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PySys_Audit
    - RegConnectRegistryW
    linkageType: ''
    returnType: HKEY
    signature: "HKEY winreg_ConnectRegistry_impl(PyObject *module,\n                            const
      Py_UNICODE *computer_name, HKEY key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:888,1
    - Dst: RegCreateKeyW
      Src: /src/Python-3.8.3/PC/winreg.c:893,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:895,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - module
    - key
    - sub_key
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 881
    functionDepth: 4
    functionLinenumber: 881
    functionLinenumberEnd: 903
    functionName: winreg_CreateKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - RegCreateKeyW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: HKEY
    signature: HKEY winreg_CreateKey_impl(PyObject *module, HKEY key, const Py_UNICODE
      *sub_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:938,1
    - Dst: RegCreateKeyExW
      Src: /src/Python-3.8.3/PC/winreg.c:943,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:946,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - module
    - key
    - sub_key
    - reserved
    - access
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - int
    - REGSAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 929
    functionDepth: 4
    functionLinenumber: 929
    functionLinenumberEnd: 954
    functionName: winreg_CreateKeyEx_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PySys_Audit
    - RegCreateKeyExW
    linkageType: ''
    returnType: HKEY
    signature: "HKEY winreg_CreateKeyEx_impl(PyObject *module, HKEY key,\n                        const
      Py_UNICODE *sub_key, int reserved,\n                        REGSAM access)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:979,1
    - Dst: RegDeleteKeyW
      Src: /src/Python-3.8.3/PC/winreg.c:984,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - module
    - key
    - sub_key
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: winreg_DeleteKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - RegDeleteKeyW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DeleteKey_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1025,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/winreg.c:1033,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/winreg.c:1035,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1038,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - module
    - key
    - sub_key
    - access
    - reserved
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - REGSAM
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1014
    functionDepth: 8
    functionLinenumber: 1014
    functionLinenumberEnd: 1049
    functionName: winreg_DeleteKeyEx_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - PyErr_SetString
    - GetModuleHandleW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_DeleteKeyEx_impl(PyObject *module, HKEY key,\n
      \                       const Py_UNICODE *sub_key, REGSAM access,\n                        int
      reserved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1068,1
    - Dst: RegDeleteValueW
      Src: /src/Python-3.8.3/PC/winreg.c:1073,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - key
    - value
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1079
    functionName: winreg_DeleteValue_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PySys_Audit
    - RegDeleteValueW
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DeleteValue_impl(PyObject *module, HKEY key, const Py_UNICODE *value)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1104,1
    - Dst: RegEnumKeyExW
      Src: /src/Python-3.8.3/PC/winreg.c:1118,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1121,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/winreg.c:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - module
    - key
    - index
    argTypes:
    - PyObject*
    - HKEY
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1097
    functionDepth: 5
    functionLinenumber: 1097
    functionLinenumberEnd: 1125
    functionName: winreg_EnumKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - RegEnumKeyExW
    - PyUnicode_FromWideChar
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnumKey_impl(PyObject *module, HKEY key, int index)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1166,1
    - Dst: RegQueryInfoKeyW
      Src: /src/Python-3.8.3/PC/winreg.c:1170,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1174,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/PC/winreg.c:1180,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1182,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/PC/winreg.c:1183,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1185,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1186,1
    - Dst: RegEnumValueW
      Src: /src/Python-3.8.3/PC/winreg.c:1191,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/PC/winreg.c:1205,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1207,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1217,1
    - Dst: Reg2Py
      Src: /src/Python-3.8.3/PC/winreg.c:1221,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/PC/winreg.c:1226,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/winreg.c:1227,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1229,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1230,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - module
    - key
    - index
    argTypes:
    - PyObject*
    - HKEY
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1152
    functionDepth: 9
    functionLinenumber: 1152
    functionLinenumberEnd: 1232
    functionName: winreg_EnumValue_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - Py_BuildValue
    - RegEnumValueW
    - Py_DECREF
    - PyErr_NoMemory
    - PyMem_Realloc
    - Reg2Py
    - RegQueryInfoKeyW
    - PyMem_Free
    - PyMem_Malloc
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnumValue_impl(PyObject *module, HKEY key, int index)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1253,1
    - Dst: ExpandEnvironmentStringsW
      Src: /src/Python-3.8.3/PC/winreg.c:1258,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1260,1
    - Dst: PyMem_New
      Src: /src/Python-3.8.3/PC/winreg.c:1263,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1265,1
    - Dst: ExpandEnvironmentStringsW
      Src: /src/Python-3.8.3/PC/winreg.c:1268,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1270,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1271,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/winreg.c:1274,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/winreg.c:1274,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - module
    - string
    argTypes:
    - PyObject*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1243
    functionDepth: 8
    functionLinenumber: 1243
    functionLinenumberEnd: 1277
    functionName: winreg_ExpandEnvironmentStrings_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyMem_New
    - PyErr_NoMemory
    - PyUnicode_FromWideChar
    - PyMem_Free
    - ExpandEnvironmentStringsW
    - PySys_Audit
    - wcslen
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_ExpandEnvironmentStrings_impl(PyObject *module,\n
      \                                    const Py_UNICODE *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RegFlushKey
      Src: /src/Python-3.8.3/PC/winreg.c:1305,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1310
    functionName: winreg_FlushKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - RegFlushKey
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_FlushKey_impl(PyObject *module, HKEY key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1349,1
    - Dst: RegLoadKeyW
      Src: /src/Python-3.8.3/PC/winreg.c:1354,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - module
    - key
    - sub_key
    - file_name
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1359
    functionName: winreg_LoadKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PySys_Audit
    - RegLoadKeyW
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_LoadKey_impl(PyObject *module, HKEY key, const
      Py_UNICODE *sub_key,\n                    const Py_UNICODE *file_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1388,1
    - Dst: RegOpenKeyExW
      Src: /src/Python-3.8.3/PC/winreg.c:1394,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1397,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - module
    - key
    - sub_key
    - reserved
    - access
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - int
    - REGSAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1380
    functionDepth: 4
    functionLinenumber: 1380
    functionLinenumberEnd: 1405
    functionName: winreg_OpenKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_SetFromWindowsErrWithFunction
    - PySys_Audit
    - RegOpenKeyExW
    linkageType: ''
    returnType: HKEY
    signature: "HKEY winreg_OpenKey_impl(PyObject *module, HKEY key, const Py_UNICODE
      *sub_key,\n                    int reserved, REGSAM access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winreg_OpenKey_impl
      Src: /src/Python-3.8.3/PC/winreg.c:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - module
    - key
    - sub_key
    - reserved
    - access
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - int
    - REGSAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1416
    functionDepth: 5
    functionLinenumber: 1416
    functionLinenumberEnd: 1422
    functionName: winreg_OpenKeyEx_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - winreg_OpenKey_impl
    linkageType: ''
    returnType: HKEY
    signature: "HKEY winreg_OpenKeyEx_impl(PyObject *module, HKEY key, const Py_UNICODE
      *sub_key,\n                      int reserved, REGSAM access)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1451,1
    - Dst: RegQueryInfoKey
      Src: /src/Python-3.8.3/PC/winreg.c:1454,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1457,1
    - Dst: PyLong_FromLongLong
      Src: /src/Python-3.8.3/PC/winreg.c:1461,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/PC/winreg.c:1465,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/winreg.c:1466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1440
    functionDepth: 4
    functionLinenumber: 1440
    functionLinenumberEnd: 1468
    functionName: winreg_QueryInfoKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyLong_FromLongLong
    - PySys_Audit
    - RegQueryInfoKey
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryInfoKey_impl(PyObject *module, HKEY key)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1502,1
    - Dst: RegQueryValueW
      Src: /src/Python-3.8.3/PC/winreg.c:1506,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1510,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/PC/winreg.c:1514,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1516,1
    - Dst: RegQueryValueW
      Src: /src/Python-3.8.3/PC/winreg.c:1520,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/PC/winreg.c:1525,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1527,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1528,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1534,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1535,1
    - Dst: PyUnicode_FromWideChar
      Src: /src/Python-3.8.3/PC/winreg.c:1539,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/PC/winreg.c:1539,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - module
    - key
    - sub_key
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1491
    functionDepth: 8
    functionLinenumber: 1491
    functionLinenumberEnd: 1542
    functionName: winreg_QueryValue_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyErr_NoMemory
    - PyMem_Realloc
    - PyUnicode_FromWideChar
    - PyMem_Free
    - RegQueryValueW
    - PyMem_Malloc
    - PySys_Audit
    - wcslen
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryValue_impl(PyObject *module, HKEY key, const Py_UNICODE *sub_key)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1573,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/winreg.c:1577,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1581,1
    - Dst: PyMem_Malloc
      Src: /src/Python-3.8.3/PC/winreg.c:1583,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1585,1
    - Dst: RegQueryValueExW
      Src: /src/Python-3.8.3/PC/winreg.c:1589,1
    - Dst: PyMem_Realloc
      Src: /src/Python-3.8.3/PC/winreg.c:1595,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1597,1
    - Dst: PyErr_NoMemory
      Src: /src/Python-3.8.3/PC/winreg.c:1598,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1604,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1605,1
    - Dst: Reg2Py
      Src: /src/Python-3.8.3/PC/winreg.c:1608,1
    - Dst: PyMem_Free
      Src: /src/Python-3.8.3/PC/winreg.c:1609,1
    - Dst: Py_BuildValue
      Src: /src/Python-3.8.3/PC/winreg.c:1612,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/PC/winreg.c:1613,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - module
    - key
    - name
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1562
    functionDepth: 9
    functionLinenumber: 1562
    functionLinenumberEnd: 1615
    functionName: winreg_QueryValueEx_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - Py_BuildValue
    - Py_DECREF
    - PyErr_NoMemory
    - PyMem_Realloc
    - Reg2Py
    - PyMem_Free
    - PyMem_Malloc
    - PySys_Audit
    - RegQueryValueExW
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryValueEx_impl(PyObject *module, HKEY key, const Py_UNICODE *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1650,1
    - Dst: RegSaveKeyW
      Src: /src/Python-3.8.3/PC/winreg.c:1655,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - module
    - key
    - file_name
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1660
    functionName: winreg_SaveKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - RegSaveKeyW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_SaveKey_impl(PyObject *module, HKEY key, const Py_UNICODE *file_name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1698,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1702,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1706,1
    - Dst: RegSetValueW
      Src: /src/Python-3.8.3/PC/winreg.c:1713,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - module
    - key
    - sub_key
    - type
    - value
    - value_length
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - DWORD
    - Py_UNICODE*
    - Py_ssize_clean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1689
    functionDepth: 8
    functionLinenumber: 1689
    functionLinenumberEnd: 1718
    functionName: winreg_SetValue_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PySys_Audit
    - RegSetValueW
    - PyErr_SetString
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_SetValue_impl(PyObject *module, HKEY key, const
      Py_UNICODE *sub_key,\n                     DWORD type, const Py_UNICODE *value,\n
      \                    Py_ssize_clean_t value_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Py2Reg
      Src: /src/Python-3.8.3/PC/winreg.c:1775,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/winreg.c:1777,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1778,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1782,1
    - Dst: RegSetValueExW
      Src: /src/Python-3.8.3/PC/winreg.c:1788,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - module
    - key
    - value_name
    - reserved
    - type
    - value
    argTypes:
    - PyObject*
    - HKEY
    - Py_UNICODE*
    - PyObject*
    - DWORD
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1764
    functionDepth: 10
    functionLinenumber: 1764
    functionLinenumberEnd: 1795
    functionName: winreg_SetValueEx_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - Py2Reg
    - RegSetValueExW
    - PyErr_Occurred
    - PyErr_SetString
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: "PyObject *\nwinreg_SetValueEx_impl(PyObject *module, HKEY key,\n                       const
      Py_UNICODE *value_name, PyObject *reserved,\n                       DWORD type,
      PyObject *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1822,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/winreg.c:1829,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/winreg.c:1831,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1835,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1813
    functionDepth: 8
    functionLinenumber: 1813
    functionLinenumberEnd: 1846
    functionName: winreg_DisableReflectionKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - PyErr_SetString
    - GetModuleHandleW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DisableReflectionKey_impl(PyObject *module, HKEY key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1871,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/winreg.c:1878,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/winreg.c:1880,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1884,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1862
    functionDepth: 8
    functionLinenumber: 1862
    functionLinenumberEnd: 1895
    functionName: winreg_EnableReflectionKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - PyErr_SetString
    - GetModuleHandleW
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnableReflectionKey_impl(PyObject *module, HKEY key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/PC/winreg.c:1919,1
    - Dst: GetModuleHandleW
      Src: /src/Python-3.8.3/PC/winreg.c:1926,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/winreg.c:1928,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/winreg.c:1932,1
    - Dst: PyErr_SetFromWindowsErrWithFunction
      Src: /src/Python-3.8.3/PC/winreg.c:1940,1
    - Dst: PyBool_FromLong
      Src: /src/Python-3.8.3/PC/winreg.c:1942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - module
    - key
    argTypes:
    - PyObject*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1909
    functionDepth: 8
    functionLinenumber: 1909
    functionLinenumberEnd: 1943
    functionName: winreg_QueryReflectionKey_impl
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - GetProcAddress
    - PyErr_SetString
    - GetModuleHandleW
    - PyBool_FromLong
    - PySys_Audit
    - PyErr_SetFromWindowsErrWithFunction
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryReflectionKey_impl(PyObject *module, HKEY key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/winreg.c:1975,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/winreg.c:1976,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/PC/winreg.c:1977,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/PC/winreg.c:1978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - d
    - name
    - value
    argTypes:
    - PyObject*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1972
    functionDepth: 6
    functionLinenumber: 1972
    functionLinenumberEnd: 1979
    functionName: insint
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyDict_SetItemString
    - PyErr_Clear
    - Py_XDECREF
    linkageType: ''
    returnType: void
    signature: void insint(PyObject * d, char * name, long value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1982
    functionName: ADD_INT
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_INT(val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/winreg.c:1986,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/winreg.c:1987,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/PC/winreg.c:1988,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/PC/winreg.c:1989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - d
    - name
    - key
    argTypes:
    - PyObject*
    - char*
    - HKEY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1983
    functionDepth: 6
    functionLinenumber: 1983
    functionLinenumberEnd: 1990
    functionName: inskey
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - PyDict_SetItemString
    - PyErr_Clear
    - Py_XDECREF
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: void
    signature: void inskey(PyObject * d, char * name, HKEY key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1992
    functionDepth: 0
    functionLinenumber: 1992
    functionLinenumberEnd: 1993
    functionName: ADD_KEY
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_KEY(val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/Python-3.8.3/PC/winreg.c:2010,1
    - Dst: PyModule_GetDict
      Src: /src/Python-3.8.3/PC/winreg.c:2013,1
    - Dst: PyType_Ready
      Src: /src/Python-3.8.3/PC/winreg.c:2015,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/PC/winreg.c:2017,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/winreg.c:2018,1
    - Dst: Py_INCREF
      Src: /src/Python-3.8.3/PC/winreg.c:2021,1
    - Dst: PyDict_SetItemString
      Src: /src/Python-3.8.3/PC/winreg.c:2022,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2027,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2028,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2029,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2030,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2031,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2033,1
    - Dst: ADD_KEY
      Src: /src/Python-3.8.3/PC/winreg.c:2036,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2038,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2039,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2040,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2041,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2042,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2043,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2044,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2045,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2046,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2047,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2049,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2052,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2054,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2055,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2056,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2057,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2058,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2059,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2060,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2061,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2062,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2063,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2064,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2065,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2066,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2067,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2068,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2069,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2070,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2071,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2072,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2073,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2074,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2075,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2076,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2077,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2078,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2079,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2080,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2081,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2082,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2083,1
    - Dst: ADD_INT
      Src: /src/Python-3.8.3/PC/winreg.c:2084,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2007
    functionDepth: 11
    functionLinenumber: 2007
    functionLinenumberEnd: 2086
    functionName: PyInit_winreg
    functionSourceFile: /src/Python-3.8.3/PC/winreg.c
    functionUses: 0
    functionsReached:
    - ADD_KEY
    - PyType_Ready
    - Py_INCREF
    - PyModule_GetDict
    - PyModule_Create
    - ADD_INT
    - PyDict_SetItemString
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_winreg(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: normpath
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/extract.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void normpath(char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:30,1
    - Dst: GetFileAttributes
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:33,1
    - Dst: CreateDirectory
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:36,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:37,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:40,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:45,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:47,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - pathname
    - new_part
    - notify
    argTypes:
    - char*
    - char*
    - NOTIFYPROC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: ensure_directory
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/extract.c
    functionUses: 0
    functionsReached:
    - notify
    - SetLastError
    - CreateDirectory
    - GetFileAttributes
    - strchr
    linkageType: ''
    returnType: BOOL
    signature: BOOL ensure_directory(char *pathname, char *new_part, NOTIFYPROC notify)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:71,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:77,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:80,1
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:81,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:89,1
    - Dst: ensure_directory
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:94,1
    - Dst: SetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:100,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:106,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:111,1
    - Dst: DosDateTimeToFileTime
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:113,1
    - Dst: SetFileTime
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:114,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:120,1
    - Dst: CreateFileMapping
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:124,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:127,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:131,1
    - Dst: MapViewOfFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:136,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:139,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:143,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 7
    argNames:
    - flags
    - filename
    - pathname_part
    - size
    - wFatDate
    - wFatTime
    - notify
    argTypes:
    - DWORD
    - char*
    - char*
    - int
    - WORD
    - WORD
    - NOTIFYPROC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 147
    functionName: map_new_file
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/extract.c
    functionUses: 0
    functionsReached:
    - SetFileTime
    - GetLastError
    - CreateFileMapping
    - notify
    - SetLastError
    - CloseHandle
    - ensure_directory
    - CreateFile
    - MapViewOfFile
    - DosDateTimeToFileTime
    linkageType: ''
    returnType: char
    signature: "char *map_new_file(DWORD flags, char *filename,\n                   char
      *pathname_part, int size,\n                   WORD wFatDate, WORD wFatTime,\n
      \                  NOTIFYPROC notify)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:159,1
    - Dst: inflateInit2
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:169,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:171,1
    - Dst: inflate
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:176,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:178,1
    - Dst: inflateEnd
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:183,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:185,1
    - Dst: memcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:190,1
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 6
    argNames:
    - dst
    - src
    - method
    - comp_size
    - uncomp_size
    - notify
    argTypes:
    - char*
    - char*
    - int
    - int
    - int
    - NOTIFYPROC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 196
    functionName: extract_file
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/extract.c
    functionUses: 0
    functionsReached:
    - inflate
    - UnmapViewOfFile
    - memcpy
    - notify
    - inflateEnd
    - inflateInit2
    - memset
    linkageType: ''
    returnType: BOOL
    signature: "BOOL extract_file(char *dst, char *src, int method, int comp_size,\n
      \            int uncomp_size, NOTIFYPROC notify)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:252,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:253,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:254,1
    - Dst: lstrlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:255,1
    - Dst: strnicmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:262,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:263,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:268,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:270,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:275,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:276,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:277,1
    - Dst: strncat
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:287,1
    - Dst: strncat
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:292,1
    - Dst: normpath
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:294,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:295,1
    - Dst: map_new_file
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:303,1
    - Dst: extract_file
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:308,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/extract.c:316,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 5
    argNames:
    - scheme
    - dirname
    - data
    - size
    - notify
    argTypes:
    - SCHEME*
    - char*
    - char*
    - DWORD
    - NOTIFYPROC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 320
    functionName: unzip_archive
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/extract.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strnicmp
    - strncat
    - notify
    - strcat
    - strlen
    - map_new_file
    - lstrlen
    - normpath
    - extract_file
    linkageType: ''
    returnType: BOOL
    signature: "BOOL unzip_archive(SCHEME *scheme, char *dirname, char *data, DWORD
      size,\n              NOTIFYPROC notify)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 227
    functionName: unescape
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strtol
    linkageType: ''
    returnType: void
    signature: void unescape(char *dst, char *src, unsigned size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:237,1
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - reason
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: set_failure_reason
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    linkageType: ''
    returnType: void
    signature: void set_failure_reason(char *reason)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 246
    functionName: get_failure_reason
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *get_failure_reason()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:251,1
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 255
    functionName: add_to_filelist
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: void add_to_filelist(char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:271,1
    - Dst: MAKELPARAM
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:272,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:273,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:279,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:282,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:289,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:290,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:292,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - optimize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 297
    functionName: do_compile_files
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - wsprintf
    - notify
    - SetDlgItemText
    - SendDlgItemMessage
    - PyRun_SimpleString
    - MAKELPARAM
    linkageType: ''
    returnType: int
    signature: "int do_compile_files(int (__cdecl * PyRun_SimpleString)(char *),\n
      \                            int optimize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dll
    - ','
    - result
    - ','
    - name
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: DECLPROC
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLPROC(dll, result, name, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dll
    - ','
    - type
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: DECLVAR
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLVAR(dll, type, name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:315,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:318,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:320,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:324,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 329
    functionName: widen_string
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strlen
    - malloc
    - free
    - MultiByteToWideChar
    linkageType: ''
    returnType: wchar_t
    signature: wchar_t *widen_string(char *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:357,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:358,1
    - Dst: do_compile_files
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:360,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - hPython
    - optimize_flag
    argTypes:
    - HINSTANCE
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 335
    functionDepth: 23
    functionLinenumber: 335
    functionLinenumberEnd: 364
    functionName: compile_filelist
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - do_compile_files
    - Py_Initialize
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int compile_filelist(HINSTANCE hPython, BOOL optimize_flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: DEF_CSIDL
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_CSIDL(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    functionName: DIM
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIM(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:439,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:441,1
    - Dst: g_Py_BuildValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: FileCreated
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - g_PyArg_ParseTuple
    - notify
    - g_Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject *FileCreated(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:448,1
    - Dst: notify
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:450,1
    - Dst: g_Py_BuildValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: DirectoryCreated
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - g_PyArg_ParseTuple
    - notify
    - g_Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject *DirectoryCreated(PyObject *self, PyObject *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:465,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:467,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:473,1
    - Dst: g_PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:477,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:481,1
    - Dst: DIM
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:485,1
    - Dst: strcmpi
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:486,1
    - Dst: My_SHGetSpecialFolderPath
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:489,1
    - Dst: g_Py_BuildValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:491,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:493,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 502
    functionName: GetSpecialFolderPath
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 1
    functionsReached:
    - LoadLibrary
    - GetProcAddress
    - g_Py_BuildValue
    - strcmpi
    - DIM
    - g_PyArg_ParseTuple
    - My_SHGetSpecialFolderPath
    - g_PyErr_Format
    linkageType: ''
    returnType: PyObject
    signature: PyObject *GetSpecialFolderPath(PyObject *self, PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CoInitialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:522,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:523,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:524,1
    - Dst: g_PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:529,1
    - Dst: CoCreateInstance
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:534,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:539,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:540,1
    - Dst: IShellLink*::lpVtbl::QueryInterface
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:545,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:547,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:548,1
    - Dst: IShellLink*::lpVtbl::SetPath
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:554,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:555,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:556,1
    - Dst: IShellLink*::lpVtbl::SetDescription
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:561,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:562,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:563,1
    - Dst: IShellLink*::lpVtbl::SetArguments
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:569,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:570,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:571,1
    - Dst: IShellLink*::lpVtbl::SetIconLocation
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:578,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:579,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:580,1
    - Dst: IShellLink*::lpVtbl::SetWorkingDirectory
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:587,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:588,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:589,1
    - Dst: MultiByteToWideChar
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:595,1
    - Dst: IPersistFile*::lpVtbl::Save
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:599,1
    - Dst: FAILED
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:600,1
    - Dst: g_PyErr_Format
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:601,1
    - Dst: IPersistFile*::lpVtbl::Release
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:606,1
    - Dst: IShellLink*::lpVtbl::Release
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:607,1
    - Dst: CoUninitialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:608,1
    - Dst: g_Py_BuildValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:609,1
    - Dst: IPersistFile*::lpVtbl::Release
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:613,1
    - Dst: IShellLink*::lpVtbl::Release
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:616,1
    - Dst: CoUninitialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:618,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 621
    functionName: CreateShortcut
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - CoCreateInstance
    - IShellLink*::lpVtbl::SetArguments
    - g_Py_BuildValue
    - CoUninitialize
    - IShellLink*::lpVtbl::SetPath
    - IShellLink*::lpVtbl::Release
    - IShellLink*::lpVtbl::QueryInterface
    - IShellLink*::lpVtbl::SetDescription
    - IShellLink*::lpVtbl::SetWorkingDirectory
    - g_PyArg_ParseTuple
    - MultiByteToWideChar
    - IPersistFile*::lpVtbl::Save
    - CoInitialize
    - g_PyErr_Format
    - IPersistFile*::lpVtbl::Release
    - FAILED
    - IShellLink*::lpVtbl::SetIconLocation
    linkageType: ''
    returnType: PyObject
    signature: PyObject *CreateShortcut(PyObject *self, PyObject *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_PyArg_ParseTuple
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:628,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:630,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:630,1
    - Dst: g_Py_BuildValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 632
    functionName: PyMessageBox
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - g_PyArg_ParseTuple
    - GetFocus
    - MessageBox
    - g_Py_BuildValue
    linkageType: ''
    returnType: PyObject
    signature: PyObject *PyMessageBox(PyObject *self, PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: g_PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 637
    functionName: GetRootHKey
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - g_PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: PyObject *GetRootHKey(PyObject *self, PyObject *Py_UNUSED(ignored))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:660,1
    - Dst: _putenv
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:661,1
    - Dst: LoadLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:662,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:665,1
    - Dst: RegQueryValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:668,1
    - Dst: RegQueryValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:670,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:673,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:674,1
    - Dst: LoadLibraryEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - fname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 678
    functionName: LoadPythonDll
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - LoadLibrary
    - wsprintf
    - strcat
    - LoadLibraryEx
    - _putenv
    - RegQueryValue
    linkageType: ''
    returnType: HINSTANCE
    signature: HINSTANCE LoadPythonDll(char *fname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:697,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:700,1
    - Dst: PyObject_GetAttrString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:701,1
    - Dst: DIM
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:702,1
    - Dst: PyObject_SetAttrString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:703,1
    - Dst: PyCFunction_New
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - hPython
    argTypes:
    - HINSTANCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 713
    functionName: prepare_script_environment
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyObject_GetAttrString
    - PyCFunction_New
    - DIM
    - PyObject_SetAttrString
    linkageType: ''
    returnType: int
    signature: int prepare_script_environment(HINSTANCE hPython)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:753,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:755,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:760,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:762,1
    - Dst: prepare_script_environment
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:764,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:766,1
    - Dst: widen_string
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:768,1
    - Dst: PySys_SetArgv
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:769,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:773,1
    - Dst: _fstat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:778,1
    - Dst: alloca
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:779,1
    - Dst: read
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:780,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:784,1
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:788,1
    - Dst: close
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:792,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 4
    argNames:
    - hPython
    - pathname
    - argc
    - argv
    argTypes:
    - HINSTANCE
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 725
    functionDepth: 22
    functionLinenumber: 725
    functionLinenumberEnd: 794
    functionName: do_run_installscript
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - Py_FinalizeEx
    - SetDlgItemText
    - widen_string
    - _fstat
    - PySys_SetArgv
    - close
    - Py_Initialize
    - open
    - fprintf
    - PyRun_SimpleString
    - prepare_script_environment
    - free
    - alloca
    - memset
    - read
    linkageType: ''
    returnType: int
    signature: int do_run_installscript(HINSTANCE hPython, char *pathname, int argc,
      char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tempnam
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:807,1
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:812,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:820,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:821,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:822,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:823,1
    - Dst: LoadPythonDll
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:825,1
    - Dst: do_run_installscript
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:827,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:828,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:830,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:832,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:833,1
    - Dst: min
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:834,1
    - Dst: GetFileSize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:834,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:835,1
    - Dst: SetFilePointer
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:838,1
    - Dst: ReadFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:839,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:842,1
    - Dst: DeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - pathname
    - argc
    - argv
    - pOutput
    argTypes:
    - char*
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 796
    functionDepth: 23
    functionLinenumber: 796
    functionLinenumberEnd: 845
    functionName: run_installscript
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 1
    functionsReached:
    - tempnam
    - malloc
    - LoadPythonDll
    - GetStdHandle
    - do_run_installscript
    - CreateFile
    - min
    - fprintf
    - GetFileSize
    - SetFilePointer
    - ReadFile
    - SetStdHandle
    - DeleteFile
    - FreeLibrary
    - CloseHandle
    linkageType: ''
    returnType: int
    signature: int run_installscript(char *pathname, int argc, char **argv, char **pOutput)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:860,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:861,1
    - Dst: prepare_script_environment
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:862,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:863,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:865,1
    - Dst: Py_FinalizeEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - hPython
    - script
    argTypes:
    - HINSTANCE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 847
    functionDepth: 22
    functionLinenumber: 847
    functionLinenumberEnd: 870
    functionName: do_run_simple_script
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - Py_FinalizeEx
    - PyErr_Print
    - Py_Initialize
    - PyRun_SimpleString
    - prepare_script_environment
    linkageType: ''
    returnType: int
    signature: int do_run_simple_script(HINSTANCE hPython, char *script)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tempnam
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:876,1
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:878,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:886,1
    - Dst: GetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:887,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:888,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:889,1
    - Dst: LoadPythonDll
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:891,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:894,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:894,1
    - Dst: set_failure_reason
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:895,1
    - Dst: do_run_simple_script
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:898,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:899,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:900,1
    - Dst: SetStdHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:901,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:909,1
    - Dst: GetFileSize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:910,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:913,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:916,1
    - Dst: SetFilePointer
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:917,1
    - Dst: ReadFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:918,1
    - Dst: set_failure_reason
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:920,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:921,1
    - Dst: set_failure_reason
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:923,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:926,1
    - Dst: DeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:927,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - script
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 872
    functionDepth: 23
    functionLinenumber: 872
    functionLinenumberEnd: 929
    functionName: run_simple_script
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 1
    functionsReached:
    - wsprintf
    - GetStdHandle
    - CreateFile
    - do_run_simple_script
    - SetFilePointer
    - FreeLibrary
    - CloseHandle
    - GetLastError
    - malloc
    - set_failure_reason
    - strlen
    - free
    - GetFileSize
    - ReadFile
    - strcpy
    - tempnam
    - LoadPythonDll
    - SetStdHandle
    - DeleteFile
    linkageType: ''
    returnType: int
    signature: int run_simple_script(char *script)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FormatMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:939,1
    - Dst: MAKELANGID
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:945,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:950,1
    - Dst: LocalFree
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:951,1
    - Dst: lstrlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:954,1
    - Dst: _snprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:955,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - error
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 958
    functionName: SystemError
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - _snprintf
    - strncpy
    - LocalFree
    - MessageBox
    - MAKELANGID
    - lstrlen
    - FormatMessage
    linkageType: ''
    returnType: BOOL
    signature: BOOL SystemError(int error, char *msg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:968,1
    - Dst: _vsnprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:969,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:979,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:984,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:990,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:992,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:992,1
    - Dst: add_to_filelist
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:993,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:998,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:998,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1003,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1003,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1007,1
    - Dst: va_arg
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1008,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1009,1
    - Dst: MAKELPARAM
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1009,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1010,1
    - Dst: va_end
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1012,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - code
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 1015
    functionName: notify
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 7
    functionsReached:
    - MAKELPARAM
    - GetLastError
    - va_start
    - strrchr
    - MessageBox
    - va_arg
    - GetFocus
    - SendMessage
    - fprintf
    - add_to_filelist
    - _vsnprintf
    - SystemError
    - strcmp
    - va_end
    linkageType: ''
    returnType: BOOL
    signature: BOOL notify (int code, char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1023,1
    - Dst: GetFileSize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1029,1
    - Dst: CreateFileMapping
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1030,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1032,1
    - Dst: MapViewOfFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1037,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pathname
    - psize
    argTypes:
    - char*
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1043
    functionName: MapExistingFile
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - CreateFileMapping
    - CreateFile
    - MapViewOfFile
    - GetFileSize
    - CloseHandle
    linkageType: ''
    returnType: char
    signature: char *MapExistingFile(char *pathname, DWORD *psize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetDC
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1058,1
    - Dst: CreateDIBitmap
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1063,1
    - Dst: ReleaseDC
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hwnd
    argTypes:
    - HWND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1070
    functionName: create_bitmap
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - GetDC
    - ReleaseDC
    - CreateDIBitmap
    linkageType: ''
    returnType: void
    signature: void create_bitmap(HWND hwnd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1101,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1116,1
    - Dst: GetTempPath
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1119,1
    - Dst: GetTempFileName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1120,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1121,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1121,1
    - Dst: map_new_file
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1126,1
    - Dst: strncpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1131,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1132,1
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1134,1
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - data
    - size
    - pexe_size
    - out_ini_file
    - out_preinstall_script
    argTypes:
    - char*
    - DWORD
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1075
    functionDepth: 3
    functionLinenumber: 1075
    functionLinenumberEnd: 1138
    functionName: ExtractInstallData
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - GetTempPath
    - malloc
    - GetLastError
    - UnmapViewOfFile
    - strncpy
    - GetTempFileName
    - map_new_file
    - strlen
    - SystemError
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ExtractInstallData(char *data, DWORD size, int *pexe_size,\n
      \                              char **out_ini_file, char **out_preinstall_script)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PeekMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1143,1
    - Dst: TranslateMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1144,1
    - Dst: DispatchMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1147
    functionName: PumpMessages
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - PeekMessage
    - TranslateMessage
    - DispatchMessage
    linkageType: ''
    returnType: void
    signature: void PumpMessages(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BeginPaint
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1158,1
    - Dst: GetSystemMetrics
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1159,1
    - Dst: CreateFont
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1160,1
    - Dst: SelectObject
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1162,1
    - Dst: SetBkMode
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1163,1
    - Dst: TextOut
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1164,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1164,1
    - Dst: SetTextColor
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1165,1
    - Dst: RGB
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1165,1
    - Dst: TextOut
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1166,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1166,1
    - Dst: DeleteObject
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1167,1
    - Dst: SelectObject
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1167,1
    - Dst: EndPaint
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1168,1
    - Dst: DefWindowProc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - hwnd
    - msg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1172
    functionName: WindowProc
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 2
    functionsReached:
    - BeginPaint
    - TextOut
    - EndPaint
    - CreateFont
    - DeleteObject
    - SetBkMode
    - strlen
    - RGB
    - DefWindowProc
    - SelectObject
    - GetSystemMetrics
    - SetTextColor
    linkageType: ''
    returnType: LRESULT
    signature: LRESULT WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1184,1
    - Dst: LoadCursor
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1186,1
    - Dst: CreateSolidBrush
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1187,1
    - Dst: RGB
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1187,1
    - Dst: RegisterClass
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1191,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1192,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1196,1
    - Dst: CreateWindow
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1197,1
    - Dst: GetSystemMetrics
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1201,1
    - Dst: GetSystemMetrics
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1202,1
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1205,1
    - Dst: ShowWindow
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1207,1
    - Dst: UpdateWindow
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - title
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1210
    functionName: CreateBackground
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - wsprintf
    - CreateWindow
    - LoadCursor
    - GetModuleHandle
    - MessageBox
    - RGB
    - RegisterClass
    - UpdateWindow
    - GetSystemMetrics
    - CreateSolidBrush
    - ShowWindow
    linkageType: ''
    returnType: HWND
    signature: HWND CreateBackground(char *title)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetWindowRect
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1220,1
    - Dst: GetSystemMetrics
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1221,1
    - Dst: GetSystemMetrics
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1222,1
    - Dst: MoveWindow
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hwnd
    argTypes:
    - HWND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1227
    functionName: CenterWindow
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - GetWindowRect
    - GetSystemMetrics
    - MoveWindow
    linkageType: ''
    returnType: void
    signature: void CenterWindow(HWND hwnd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: create_bitmap
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1239,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1241,1
    - Dst: CenterWindow
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1243,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1243,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1244,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1249,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1250,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1251,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1259,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - hwnd
    - msg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1273
    functionName: IntroDlgProc
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - PropSheet_SetWizButtons
    - wsprintf
    - SetDlgItemText
    - GetParent
    - CenterWindow
    - create_bitmap
    - SendDlgItemMessage
    linkageType: ''
    returnType: INT_PTR
    signature: INT_PTR IntroDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1311,1
    - Dst: SearchPath
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1312,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1314,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1317,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1318,1
    - Dst: OutputDebugString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 5
    argNames:
    - reason
    - ImageName
    - DllName
    - Va
    - Parameter
    argTypes:
    - IMAGEHLP_STATUS_REASON
    - PSTR
    - PSTR
    - ULONG
    - ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1324
    functionName: StatusRoutine
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strcpy
    - SearchPath
    - OutputDebugString
    - sscanf
    linkageType: ''
    returnType: BOOL
    signature: "BOOL StatusRoutine(IMAGEHLP_STATUS_REASON reason,\n                                    PSTR
      ImageName,\n                                    PSTR DllName,\n                                    ULONG
      Va,\n                                    ULONG Parameter)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1343,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1344,1
    - Dst: _putenv
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1346,1
    - Dst: _putenv
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1347,1
    - Dst: LoadLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1350,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1353,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1356,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1359,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1362,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1365,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1368,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1371,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1374,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1376,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1377,1
    - Dst: PySys_SetArgv
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1378,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1380,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1380,1
    - Dst: Py_GetPrefix
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1380,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1381,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1381,1
    - Dst: Py_GetPath
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1381,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1383,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - exe
    - dll
    argTypes:
    - LPSTR
    - LPSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1328
    functionDepth: 23
    functionLinenumber: 1328
    functionLinenumberEnd: 1387
    functionName: get_sys_prefix
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - strrchr
    - LoadLibrary
    - GetProcAddress
    - Py_Finalize
    - wsprintf
    - PySys_SetArgv
    - MessageBox
    - GetFocus
    - Py_Initialize
    - Py_GetPrefix
    - _putenv
    - FreeLibrary
    - Py_GetPath
    linkageType: ''
    returnType: LPSTR
    signature: LPSTR get_sys_prefix(LPSTR exe, LPSTR dll)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BindImageEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1393,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1398,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1400,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1405,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1406,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1407,1
    - Dst: get_sys_prefix
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pathname
    - version
    - pmajor
    - pminor
    argTypes:
    - LPSTR
    - LPSTR
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1389
    functionDepth: 24
    functionLinenumber: 1389
    functionLinenumberEnd: 1411
    functionName: CheckPythonExe
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - get_sys_prefix
    - wsprintf
    - BindImageEx
    - SystemError
    - strcmp
    linkageType: ''
    returnType: BOOL
    signature: BOOL CheckPythonExe(LPSTR pathname, LPSTR version, int *pmajor, int
      *pminor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1425,1
    - Dst: memset
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1427,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1429,1
    - Dst: GetOpenFileName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1444,1
    - Dst: CheckPythonExe
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1447,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1450,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1451,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1453,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1455,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1456,1
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 2
    argNames:
    - hwnd
    - version
    argTypes:
    - HWND
    - LPSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1417
    functionDepth: 25
    functionLinenumber: 1417
    functionLinenumberEnd: 1461
    functionName: GetOtherPythonVersion
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcpy
    - strrchr
    - wsprintf
    - GetParent
    - SendMessage
    - GetOpenFileName
    - CheckPythonExe
    - memset
    linkageType: ''
    returnType: BOOL
    signature: BOOL GetOtherPythonVersion(HWND hwnd, LPSTR version)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1483,1
    - Dst: RegEnumKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1488,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1498,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1501,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1503,1
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1506,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1508,1
    - Dst: RegQueryValueEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1511,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1513,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1516,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1519,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1522,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - hwnd
    - hkRoot
    - version
    argTypes:
    - HWND
    - HKEY
    - LPSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1475
    functionDepth: 0
    functionLinenumber: 1475
    functionLinenumberEnd: 1524
    functionName: GetPythonVersions
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - malloc
    - wsprintf
    - RegOpenKeyEx
    - RegEnumKeyEx
    - SendMessage
    - RegCloseKey
    - RegQueryValueEx
    - strcmp
    linkageType: ''
    returnType: BOOL
    signature: BOOL GetPythonVersions(HWND hwnd, HKEY hkRoot, LPSTR version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1534,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1542
    functionName: HasLocalMachinePrivs
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - RegOpenKeyEx
    - RegCloseKey
    linkageType: ''
    returnType: BOOL
    signature: BOOL HasLocalMachinePrivs()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HasLocalMachinePrivs
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1560,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1563,1
    - Dst: HasLocalMachinePrivs
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hwnd
    argTypes:
    - HWND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1568
    functionName: CheckRootKey
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - MessageBox
    - HasLocalMachinePrivs
    linkageType: ''
    returnType: void
    signature: void CheckRootKey(HWND hwnd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1578
    functionName: GetScheme
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SCHEME
    signature: SCHEME *GetScheme(int major, int minor)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1588,1
    - Dst: GetPythonVersions
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1590,1
    - Dst: GetDlgItem
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1590,1
    - Dst: GetPythonVersions
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1592,1
    - Dst: GetDlgItem
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1592,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1597,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1600,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1608,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1612,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1619,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1625,1
    - Dst: LOWORD
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1633,1
    - Dst: HIWORD
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1642,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1646,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1646,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1648,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1651,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1651,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1653,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1654,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1655,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1656,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1661,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1661,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1665,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1671,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1672,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1674,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1676,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1679,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1682,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1686,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1689,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1693,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1695,1
    - Dst: GetScheme
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1699,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1700,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1701,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1702,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1703,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1704,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1718,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1721,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1721,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1724,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1724,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 4
    argNames:
    - hwnd
    - msg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1742
    functionName: SelectPythonDlgProc
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - GetPythonVersions
    - strcpy
    - HIWORD
    - PropSheet_SetWizButtons
    - malloc
    - SetDlgItemText
    - wsprintf
    - GetScheme
    - LOWORD
    - strcat
    - MessageBox
    - GetParent
    - strlen
    - GetDlgItem
    - SendDlgItemMessage
    - sscanf
    - free
    linkageType: ''
    returnType: INT_PTR
    signature: INT_PTR SelectPythonDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
      lParam)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RegCreateKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1761,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1776,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1776,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1783,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1783,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1787,1
    - Dst: fopen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1788,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1792,1
    - Dst: strerror
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1794,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1795,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1795,1
    - Dst: time
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1799,1
    - Dst: localtime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1800,1
    - Dst: strftime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1801,1
    - Dst: localtime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1803,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1804,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1805,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1808,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1810,1
    - Dst: RegCreateKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1812,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1820,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1820,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1822,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1825,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1827,1
    - Dst: RegSetValueEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1829,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1833,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1836,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1836,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1838,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1843,1
    - Dst: fopen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1844,1
    - Dst: fwrite
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1845,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1846,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1848,1
    - Dst: RegSetValueEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1851,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1855,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1858,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1858,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1860,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1864
    functionName: OpenLogfile
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - RegCreateKeyEx
    - time
    - strerror
    - strftime
    - fwrite
    - MessageBox
    - localtime
    - GetFocus
    - RegSetValueEx
    - strlen
    - fprintf
    - fclose
    - RegCloseKey
    - fopen
    - sprintf
    linkageType: ''
    returnType: BOOL
    signature: BOOL OpenLogfile(char *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1872,1
    - Dst: localtime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1873,1
    - Dst: strftime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1874,1
    - Dst: localtime
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1876,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1877,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1880
    functionName: CloseLogfile
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - time
    - strftime
    - localtime
    - fprintf
    - fclose
    linkageType: ''
    returnType: void
    signature: void CloseLogfile(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1892,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1894,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1900,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1901,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1905,1
    - Dst: PumpMessages
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1906,1
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1910,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1912,1
    - Dst: PumpMessages
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1913,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1921,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1921,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1939,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1939,1
    - Dst: SendMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1940,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1940,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1943,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1944,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1946,1
    - Dst: CheckRootKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1948,1
    - Dst: OpenLogfile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1950,1
    - Dst: GetScheme
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1972,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1975,1
    - Dst: run_simple_script
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1977,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1983,1
    - Dst: unzip_archive
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1984,1
    - Dst: set_failure_reason
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1987,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1992,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1995,1
    - Dst: LoadPythonDll
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1996,1
    - Dst: compile_filelist
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1998,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:1999,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2011,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2014,1
    - Dst: LoadPythonDll
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2015,1
    - Dst: compile_filelist
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2017,1
    - Dst: FreeLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2018,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 4
    argNames:
    - hwnd
    - msg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 1882
    functionDepth: 24
    functionLinenumber: 1882
    functionLinenumberEnd: 2034
    functionName: InstallFilesDlgProc
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - run_simple_script
    - PropSheet_SetWizButtons
    - set_failure_reason
    - LoadPythonDll
    - SetDlgItemText
    - wsprintf
    - GetScheme
    - PumpMessages
    - strcat
    - OpenLogfile
    - GetParent
    - SendMessage
    - strlen
    - SendDlgItemMessage
    - unzip_archive
    - compile_filelist
    - FreeLibrary
    - CheckRootKey
    linkageType: ''
    returnType: INT_PTR
    signature: INT_PTR InstallFilesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
      lParam)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SendDlgItemMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2045,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2048,1
    - Dst: get_failure_reason
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2048,1
    - Dst: PostMessage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2052,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2065,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2067,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2068,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2069,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2072,1
    - Dst: SetCursor
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2074,1
    - Dst: LoadCursor
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2074,1
    - Dst: run_installscript
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2078,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2080,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2083,1
    - Dst: SetDlgItemText
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2084,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2088,1
    - Dst: SetCursor
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2089,1
    - Dst: CloseLogfile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2090,1
    - Dst: PropSheet_SetWizButtons
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2100,1
    - Dst: GetParent
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2100,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - hwnd
    - msg
    - wParam
    - lParam
    argTypes:
    - HWND
    - UINT
    - WPARAM
    - LPARAM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2037
    functionDepth: 24
    functionLinenumber: 2037
    functionLinenumberEnd: 2117
    functionName: FinishedDlgProc
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PropSheet_SetWizButtons
    - SetDlgItemText
    - get_failure_reason
    - strcat
    - LoadCursor
    - CloseLogfile
    - GetParent
    - fprintf
    - SendDlgItemMessage
    - run_installscript
    - SetCursor
    - free
    - PostMessage
    linkageType: ''
    returnType: INT_PTR
    signature: INT_PTR FinishedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
      lParam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2128,1
    - Dst: MAKEINTRESOURCE
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2131,1
    - Dst: CreatePropertySheetPage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2133,1
    - Dst: MAKEINTRESOURCE
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2137,1
    - Dst: CreatePropertySheetPage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2140,1
    - Dst: MAKEINTRESOURCE
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2144,1
    - Dst: CreatePropertySheetPage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2147,1
    - Dst: MAKEINTRESOURCE
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2151,1
    - Dst: CreatePropertySheetPage
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2154,1
    - Dst: GetModuleHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2158,1
    - Dst: PropertySheet
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - hwnd
    argTypes:
    - HWND
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2119
    functionDepth: 0
    functionLinenumber: 2119
    functionLinenumberEnd: 2168
    functionName: RunWizard
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - CreatePropertySheetPage
    - PropertySheet
    - GetModuleHandle
    - MAKEINTRESOURCE
    linkageType: ''
    returnType: void
    signature: void RunWizard(HWND hwnd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LoadLibrary
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2180,1
    - Dst: GetProcAddress
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2185
    functionName: MyIsUserAnAdmin
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - LoadLibrary
    - GetProcAddress
    linkageType: ''
    returnType: BOOL
    signature: BOOL MyIsUserAnAdmin()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2202,1
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2205,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2194
    functionDepth: 0
    functionLinenumber: 2194
    functionLinenumberEnd: 2211
    functionName: NeedAutoUAC
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - RegOpenKeyEx
    - RegCloseKey
    - wsprintf
    linkageType: ''
    returnType: BOOL
    signature: BOOL NeedAutoUAC()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ShellExecute
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2221,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2225,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2216
    functionDepth: 0
    functionLinenumber: 2216
    functionLinenumberEnd: 2228
    functionName: SpawnUAC
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - ShellExecute
    - MessageBox
    - wsprintf
    linkageType: ''
    returnType: void
    signature: void SpawnUAC()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2235,1
    - Dst: unescape
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2237,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2239,1
    - Dst: unescape
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2241,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2243,1
    - Dst: GetPrivateProfileInt
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2246,1
    - Dst: GetPrivateProfileInt
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2248,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2251,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2255,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2259,1
    - Dst: GetPrivateProfileString
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2263,1
    - Dst: strcat
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2266,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2269,1
    - Dst: MyIsUserAnAdmin
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2270,1
    - Dst: SpawnUAC
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2271,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2275,1
    - Dst: MyIsUserAnAdmin
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2278,1
    - Dst: NeedAutoUAC
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2278,1
    - Dst: SpawnUAC
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2279,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2285,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2286,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2286,1
    - Dst: CreateBackground
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2291,1
    - Dst: RunWizard
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2293,1
    - Dst: UnmapViewOfFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2296,1
    - Dst: DeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2298,1
    - Dst: DeleteObject
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2301,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2230
    functionDepth: 1
    functionLinenumber: 2230
    functionLinenumberEnd: 2304
    functionName: DoInstall
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - RunWizard
    - UnmapViewOfFile
    - strcmp
    - CreateBackground
    - NeedAutoUAC
    - strcat
    - DeleteObject
    - MyIsUserAnAdmin
    - MessageBox
    - GetFocus
    - SpawnUAC
    - GetPrivateProfileInt
    - GetPrivateProfileString
    - unescape
    - DeleteFile
    linkageType: ''
    returnType: int
    signature: int DoInstall(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2308
    functionDepth: 0
    functionLinenumber: 2308
    functionLinenumberEnd: 2311
    functionName: compare
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 21
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare(const void *p1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2330,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2331,1
    - Dst: fopen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2332,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2333,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2334,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2335,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2336,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2337,1
    - Dst: ZeroMemory
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2339,1
    - Dst: CreateProcess
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2343,1
    - Dst: SetThreadPriority
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2353,1
    - Dst: SetThreadPriority
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2354,1
    - Dst: GetCurrentThread
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2354,1
    - Dst: SetPriorityClass
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2355,1
    - Dst: GetCurrentProcess
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2355,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2356,1
    - Dst: ResumeThread
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2357,1
    - Dst: CloseHandle
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2360
    functionName: remove_exe
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - ResumeThread
    - ZeroMemory
    - CloseHandle
    - CreateProcess
    - GetCurrentProcess
    - GetCurrentThread
    - fprintf
    - fclose
    - SetThreadPriority
    - SetPriorityClass
    - fopen
    - sprintf
    - GetModuleFileName
    linkageType: ''
    returnType: void
    signature: void remove_exe(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2371,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2373,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2378,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2382,1
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2386,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2393,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2393,1
    - Dst: RegDeleteKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2395,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2397,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2397,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2398,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2362
    functionDepth: 1
    functionLinenumber: 2362
    functionLinenumberEnd: 2401
    functionName: DeleteRegistryKey
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - RegOpenKeyEx
    - MessageBox
    - GetFocus
    - RegCloseKey
    - strchr
    - free
    - RegDeleteKey
    linkageType: ''
    returnType: void
    signature: void DeleteRegistryKey(char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2412,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2415,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2419,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2423,1
    - Dst: RegOpenKeyEx
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2429,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2435,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2435,1
    - Dst: RegDeleteValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2437,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2439,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2439,1
    - Dst: RegCloseKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2440,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2403
    functionDepth: 1
    functionLinenumber: 2403
    functionLinenumberEnd: 2443
    functionName: DeleteRegistryValue
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strdup
    - RegOpenKeyEx
    - RegDeleteValue
    - MessageBox
    - GetFocus
    - RegCloseKey
    - strchr
    - free
    linkageType: ''
    returnType: void
    signature: void DeleteRegistryValue(char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2447,1
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2451,1
    - Dst: DeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2454
    functionName: MyDeleteFile
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strchr
    - DeleteFile
    - isspace
    linkageType: ''
    returnType: BOOL
    signature: BOOL MyDeleteFile(char *line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2458,1
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2462,1
    - Dst: RemoveDirectory
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2465
      start: 2456
    functionDepth: 1
    functionLinenumber: 2456
    functionLinenumberEnd: 2465
    functionName: MyRemoveDirectory
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - RemoveDirectory
    - strchr
    - isspace
    linkageType: ''
    returnType: BOOL
    signature: BOOL MyRemoveDirectory(char *line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2475,1
    - Dst: strchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2479,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2485,1
    - Dst: run_installscript
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2491,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2492,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2495,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2495,1
    - Dst: free
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2496,1
    - Dst: strcpy
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2467
    functionDepth: 24
    functionLinenumber: 2467
    functionLinenumberEnd: 2501
    functionName: Run_RemoveScript
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - strcpy
    - free
    - MessageBox
    - GetFocus
    - run_installscript
    - fprintf
    - strchr
    - strcmp
    linkageType: ''
    returnType: BOOL
    signature: BOOL Run_RemoveScript(char *line)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2517,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2523,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2524,1
    - Dst: fopen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2531,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2533,1
    - Dst: malloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2540,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2542,1
    - Dst: fgets
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2545,1
    - Dst: strlen
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2546,1
    - Dst: isspace
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2548,1
    - Dst: strdup
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2551,1
    - Dst: realloc
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2554,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2557,1
    - Dst: fclose
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2560,1
    - Dst: qsort
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2563,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2566,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2577,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2581,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2582,1
    - Dst: HasLocalMachinePrivs
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2586,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2587,1
    - Dst: GetFocus
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2587,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2595,1
    - Dst: MyRemoveDirectory
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2596,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2599,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2604,1
    - Dst: MyDeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2605,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2608,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2613,1
    - Dst: MyDeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2614,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2617,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2622,1
    - Dst: DeleteRegistryKey
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2623,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2624,1
    - Dst: DeleteRegistryValue
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2625,1
    - Dst: sscanf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2626,1
    - Dst: Run_RemoveScript
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2627,1
    - Dst: DeleteFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2632,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2636,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2636,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2639,1
    - Dst: wsprintf
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2644,1
    - Dst: MessageBox
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2646,1
    - Dst: remove_exe
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2648,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2503
    functionDepth: 25
    functionLinenumber: 2503
    functionLinenumberEnd: 2650
    functionName: DoUninstall
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - wsprintf
    - DeleteRegistryKey
    - GetFocus
    - sscanf
    - remove_exe
    - GetLastError
    - malloc
    - strlen
    - qsort
    - Run_RemoveScript
    - strdup
    - fgets
    - MyRemoveDirectory
    - MyDeleteFile
    - fclose
    - HasLocalMachinePrivs
    - isspace
    - DeleteRegistryValue
    - MessageBox
    - realloc
    - SystemError
    - fopen
    - strcmp
    - DeleteFile
    linkageType: ''
    returnType: int
    signature: int DoUninstall(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleFileName
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2659,1
    - Dst: GetModuleFileNameW
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2660,1
    - Dst: MapExistingFile
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2663,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2665,1
    - Dst: GetLastError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2665,1
    - Dst: ExtractInstallData
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2681,1
    - Dst: DoInstall
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2683,1
    - Dst: DoUninstall
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2686,1
    - Dst: strrchr
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2690,1
    - Dst: strncmp
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2695,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2696,1
    - Dst: SystemError
      Src: /src/Python-3.8.3/PC/bdist_wininst/install.c:2698,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - hInst
    - hPrevInst
    - lpszCmdLine
    - nCmdShow
    argTypes:
    - HINSTANCE
    - HINSTANCE
    - LPSTR
    - INT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2652
    functionDepth: 26
    functionLinenumber: 2652
    functionLinenumberEnd: 2700
    functionName: WinMain
    functionSourceFile: /src/Python-3.8.3/PC/bdist_wininst/install.c
    functionUses: 0
    functionsReached:
    - GetLastError
    - strrchr
    - MapExistingFile
    - GetModuleFileNameW
    - ExtractInstallData
    - DoInstall
    - DoUninstall
    - SystemError
    - strncmp
    - GetModuleFileName
    linkageType: ''
    returnType: int
    signature: "int WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,\n                    LPSTR
      lpszCmdLine, INT nCmdShow)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:30,1
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:35,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:36,1
    - Dst: _testconsole_write_input_impl
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:40,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 20
    functionDepth: 12
    functionLinenumber: 20
    functionLinenumberEnd: 44
    functionName: _testconsole_write_input
    functionSourceFile: /src/Python-3.8.3/PC/clinic/_testconsole.c.h
    functionUses: 0
    functionsReached:
    - _testconsole_write_input_impl
    - PyBytes_Check
    - _PyArg_BadArgument
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testconsole_write_input(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:71,1
    - Dst: _testconsole_read_output_impl
      Src: /src/Python-3.8.3/PC/clinic/_testconsole.c.h:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 80
    functionName: _testconsole_read_output
    functionSourceFile: /src/Python-3.8.3/PC/clinic/_testconsole.c.h
    functionUses: 0
    functionsReached:
    - _testconsole_read_output_impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      _testconsole_read_output(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_heapmin_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: msvcrt_heapmin
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - msvcrt_heapmin_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_heapmin(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:53,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:56,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:57,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:61,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:62,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:65,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:66,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:70,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:71,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:74,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:75,1
    - Dst: PyLong_AsLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:79,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:80,1
    - Dst: msvcrt_locking_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:83,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 45
    functionDepth: 11
    functionLinenumber: 45
    functionLinenumberEnd: 87
    functionName: msvcrt_locking
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_AsLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - msvcrt_locking_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_locking(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:114,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:117,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:118,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:122,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:123,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:126,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:127,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:131,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:132,1
    - Dst: msvcrt_setmode_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:135,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:136,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:139,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 106
    functionDepth: 11
    functionLinenumber: 106
    functionLinenumberEnd: 143
    functionName: msvcrt_setmode
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - msvcrt_setmode_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_setmode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:169,1
    - Dst: msvcrt_open_osfhandle_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:173,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:174,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 161
    functionDepth: 11
    functionLinenumber: 161
    functionLinenumberEnd: 181
    functionName: msvcrt_open_osfhandle
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - _PyArg_ParseStack
    - PyErr_Occurred
    - msvcrt_open_osfhandle_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_open_osfhandle(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:204,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:205,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:209,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:210,1
    - Dst: msvcrt_get_osfhandle_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:213,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:214,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 197
    functionDepth: 11
    functionLinenumber: 197
    functionLinenumberEnd: 221
    functionName: msvcrt_get_osfhandle
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - _PyLong_AsInt
    - PyErr_SetString
    - PyLong_FromVoidPtr
    - msvcrt_get_osfhandle_impl
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_get_osfhandle(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_kbhit_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:241,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:242,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 249
    functionName: msvcrt_kbhit
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - msvcrt_kbhit_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_kbhit(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_getch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:275,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: msvcrt_getch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - msvcrt_getch_impl
    - PyBytes_FromStringAndSize
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_getch(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_getwch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:299,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 293
    functionDepth: 6
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: msvcrt_getwch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - msvcrt_getwch_impl
    - PyUnicode_FromOrdinal
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_getwch(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_getche_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:323,1
    - Dst: PyBytes_FromStringAndSize
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 327
    functionName: msvcrt_getche
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyBytes_FromStringAndSize
    - msvcrt_getche_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_getche(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: msvcrt_getwche_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:347,1
    - Dst: PyUnicode_FromOrdinal
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - module
    - Py_UNUSED(ignored)
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 341
    functionDepth: 6
    functionLinenumber: 341
    functionLinenumberEnd: 351
    functionName: msvcrt_getwche
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_FromOrdinal
    - msvcrt_getwche_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_getwche(PyObject *module, PyObject *Py_UNUSED(ignored))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:371,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:371,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:372,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:374,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:374,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:375,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:378,1
    - Dst: msvcrt_putch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 385
    functionName: msvcrt_putch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_BadArgument
    - msvcrt_putch_impl
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_putch(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:405,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:406,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:409,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:412,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:413,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:416,1
    - Dst: msvcrt_putwch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:417,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 421
    functionName: msvcrt_putwch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - _PyArg_BadArgument
    - msvcrt_putwch_impl
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_putwch(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyBytes_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:445,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:445,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:446,1
    - Dst: PyByteArray_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:448,1
    - Dst: PyByteArray_GET_SIZE
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:448,1
    - Dst: PyByteArray_AS_STRING
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:449,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:452,1
    - Dst: msvcrt_ungetch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 439
    functionDepth: 11
    functionLinenumber: 439
    functionLinenumberEnd: 459
    functionName: msvcrt_ungetch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - msvcrt_ungetch_impl
    - _PyArg_BadArgument
    - PyByteArray_Check
    - PyBytes_Check
    - PyBytes_GET_SIZE
    - PyByteArray_GET_SIZE
    - PyBytes_AS_STRING
    - PyByteArray_AS_STRING
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_ungetch(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:479,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:480,1
    - Dst: PyUnicode_READY
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:483,1
    - Dst: PyUnicode_GET_LENGTH
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:486,1
    - Dst: _PyArg_BadArgument
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:487,1
    - Dst: PyUnicode_READ_CHAR
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:490,1
    - Dst: msvcrt_ungetwch_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 473
    functionDepth: 11
    functionLinenumber: 473
    functionLinenumberEnd: 495
    functionName: msvcrt_ungetwch
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyUnicode_READY
    - msvcrt_ungetwch_impl
    - _PyArg_BadArgument
    - PyUnicode_Check
    - PyUnicode_READ_CHAR
    - PyUnicode_GET_LENGTH
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_ungetwch(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:521,1
    - Dst: msvcrt_CrtSetReportFile_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:525,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:526,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:529,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 533
    functionName: msvcrt_CrtSetReportFile
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - msvcrt_CrtSetReportFile_impl
    - _PyArg_ParseStack
    - PyErr_Occurred
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_CrtSetReportFile(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:561,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:564,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:565,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:569,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:570,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:573,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:574,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:578,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:579,1
    - Dst: msvcrt_CrtSetReportMode_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:582,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:583,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:586,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 553
    functionDepth: 11
    functionLinenumber: 553
    functionLinenumberEnd: 590
    functionName: msvcrt_CrtSetReportMode
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - msvcrt_CrtSetReportMode_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_CrtSetReportMode(PyObject *module, PyObject *const *args, Py_ssize_t
      nargs)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:617,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:618,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:622,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:623,1
    - Dst: msvcrt_set_error_mode_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:626,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:627,1
    - Dst: PyLong_FromLong
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:630,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 610
    functionDepth: 8
    functionLinenumber: 610
    functionLinenumberEnd: 634
    functionName: msvcrt_set_error_mode
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyLong_FromLong
    - PyErr_Occurred
    - msvcrt_set_error_mode_impl
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_set_error_mode(PyObject *module, PyObject *arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:656,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:657,1
    - Dst: PyLong_AsUnsignedLongMask
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:661,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:662,1
    - Dst: msvcrt_SetErrorMode_impl
      Src: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 650
    functionDepth: 8
    functionLinenumber: 650
    functionLinenumberEnd: 669
    functionName: msvcrt_SetErrorMode
    functionSourceFile: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - msvcrt_SetErrorMode_impl
    - PyLong_AsUnsignedLongMask
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      msvcrt_SetErrorMode(PyObject *module, PyObject *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:32,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:37,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:38,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:42,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:43,1
    - Dst: winsound_PlaySound_impl
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:46,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 10
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: winsound_PlaySound
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winsound.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - winsound_PlaySound_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_PlaySound(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:80,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:84,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:85,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:89,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:90,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:93,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:94,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:98,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:99,1
    - Dst: winsound_Beep_impl
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 70
    functionDepth: 9
    functionLinenumber: 70
    functionLinenumberEnd: 106
    functionName: winsound_Beep
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winsound.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - winsound_Beep_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_Beep(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyTuple_GET_SIZE
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:129,1
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:132,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:139,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:140,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:144,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:145,1
    - Dst: winsound_MessageBeep_impl
      Src: /src/Python-3.8.3/PC/clinic/winsound.c.h:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 122
    functionDepth: 12
    functionLinenumber: 122
    functionLinenumberEnd: 153
    functionName: winsound_MessageBeep
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winsound.c.h
    functionUses: 0
    functionsReached:
    - PyErr_Occurred
    - PyTuple_GET_SIZE
    - winsound_MessageBeep_impl
    - PyErr_SetString
    - _PyArg_UnpackKeywords
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winsound_MessageBeep(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winreg_HKEYType_Close_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyHKEYObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: winreg_HKEYType_Close
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_HKEYType_Close_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType_Close(PyHKEYObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winreg_HKEYType_Detach_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyHKEYObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 5
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: winreg_HKEYType_Detach
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_HKEYType_Detach_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType_Detach(PyHKEYObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: winreg_HKEYType___enter___impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - self
    - Py_UNUSED(ignored)
    argTypes:
    - PyHKEYObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: winreg_HKEYType___enter__
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_HKEYType___enter___impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType___enter__(PyHKEYObject *self, PyObject *Py_UNUSED(ignored))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_UnpackKeywords
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:97,1
    - Dst: winreg_HKEYType___exit___impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - self
    - args
    - nargs
    - kwnames
    argTypes:
    - PyHKEYObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: winreg_HKEYType___exit__
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_HKEYType___exit___impl
    - _PyArg_UnpackKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_HKEYType___exit__(PyHKEYObject *self, PyObject *const *args, Py_ssize_t
      nargs, PyObject *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:155,1
    - Dst: winreg_ConnectRegistry_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:159,1
    - Dst: PyHKEY_FromHKEY
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 147
    functionDepth: 9
    functionLinenumber: 147
    functionLinenumberEnd: 167
    functionName: winreg_ConnectRegistry
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_ConnectRegistry_impl
    - _PyArg_ParseStack
    - PyHKEY_FromHKEY
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_ConnectRegistry(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:202,1
    - Dst: winreg_CreateKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:206,1
    - Dst: PyHKEY_FromHKEY
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 194
    functionDepth: 9
    functionLinenumber: 194
    functionLinenumberEnd: 214
    functionName: winreg_CreateKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - PyHKEY_FromHKEY
    - winreg_CreateKey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_CreateKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:261,1
    - Dst: winreg_CreateKeyEx_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:265,1
    - Dst: PyHKEY_FromHKEY
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 273
    functionName: winreg_CreateKeyEx
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - PyHKEY_FromHKEY
    - winreg_CreateKeyEx_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:306,1
    - Dst: winreg_DeleteKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: winreg_DeleteKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_DeleteKey_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DeleteKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:360,1
    - Dst: winreg_DeleteKeyEx_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 9
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: winreg_DeleteKeyEx
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStackAndKeywords
    - winreg_DeleteKeyEx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DeleteKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:394,1
    - Dst: winreg_DeleteValue_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 387
    functionDepth: 5
    functionLinenumber: 387
    functionLinenumberEnd: 402
    functionName: winreg_DeleteValue
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_DeleteValue_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DeleteValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:432,1
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:435,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:438,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:439,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:443,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:444,1
    - Dst: winreg_EnumKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:447,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 425
    functionDepth: 10
    functionLinenumber: 425
    functionLinenumberEnd: 451
    functionName: winreg_EnumKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - clinic_HKEY_converter
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - winreg_EnumKey_impl
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnumKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_CheckPositional
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:490,1
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:493,1
    - Dst: PyFloat_Check
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:496,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:497,1
    - Dst: _PyLong_AsInt
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:501,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:502,1
    - Dst: winreg_EnumValue_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 483
    functionDepth: 10
    functionLinenumber: 483
    functionLinenumberEnd: 509
    functionName: winreg_EnumValue
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_EnumValue_impl
    - clinic_HKEY_converter
    - PyErr_Occurred
    - _PyArg_CheckPositional
    - PyErr_SetString
    - _PyLong_AsInt
    - PyFloat_Check
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnumValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_Parse
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:530,1
    - Dst: winreg_ExpandEnvironmentStrings_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 9
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: winreg_ExpandEnvironmentStrings
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_ExpandEnvironmentStrings_impl
    - PyArg_Parse
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_ExpandEnvironmentStrings(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:570,1
    - Dst: winreg_FlushKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 10
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: winreg_FlushKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - clinic_HKEY_converter
    - winreg_FlushKey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_FlushKey(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:622,1
    - Dst: winreg_LoadKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: winreg_LoadKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - winreg_LoadKey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_LoadKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:670,1
    - Dst: winreg_OpenKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:674,1
    - Dst: PyHKEY_FromHKEY
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 658
    functionDepth: 9
    functionLinenumber: 658
    functionLinenumberEnd: 682
    functionName: winreg_OpenKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - PyHKEY_FromHKEY
    - winreg_OpenKey_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
      *kwnames)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStackAndKeywords
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:722,1
    - Dst: winreg_OpenKeyEx_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:726,1
    - Dst: PyHKEY_FromHKEY
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:730,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - module
    - args
    - nargs
    - kwnames
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 710
    functionDepth: 9
    functionLinenumber: 710
    functionLinenumberEnd: 734
    functionName: winreg_OpenKeyEx
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - PyHKEY_FromHKEY
    - winreg_OpenKeyEx_impl
    - _PyArg_ParseStackAndKeywords
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
      PyObject *kwnames)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:763,1
    - Dst: winreg_QueryInfoKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 757
    functionDepth: 10
    functionLinenumber: 757
    functionLinenumberEnd: 770
    functionName: winreg_QueryInfoKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_QueryInfoKey_impl
    - clinic_HKEY_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryInfoKey(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:805,1
    - Dst: winreg_QueryValue_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 798
    functionDepth: 9
    functionLinenumber: 798
    functionLinenumberEnd: 813
    functionName: winreg_QueryValue
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - winreg_QueryValue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:844,1
    - Dst: winreg_QueryValueEx_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 837
    functionDepth: 10
    functionLinenumber: 837
    functionLinenumberEnd: 852
    functionName: winreg_QueryValueEx
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_QueryValueEx_impl
    - _PyArg_ParseStack
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:888,1
    - Dst: winreg_SaveKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 881
    functionDepth: 5
    functionLinenumber: 881
    functionLinenumberEnd: 896
    functionName: winreg_SaveKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - winreg_SaveKey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_SaveKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:942,1
    - Dst: winreg_SetValue_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 932
    functionDepth: 9
    functionLinenumber: 932
    functionLinenumberEnd: 950
    functionName: winreg_SetValue
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - winreg_SetValue_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_SetValue(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyArg_ParseStack
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1013,1
    - Dst: winreg_SetValueEx_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - module
    - args
    - nargs
    argTypes:
    - PyObject*
    - PyObject**
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1003
    functionDepth: 11
    functionLinenumber: 1003
    functionLinenumberEnd: 1021
    functionName: winreg_SetValueEx
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - _PyArg_ParseStack
    - winreg_SetValueEx_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_SetValueEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1050,1
    - Dst: winreg_DisableReflectionKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1044
    functionDepth: 10
    functionLinenumber: 1044
    functionLinenumberEnd: 1057
    functionName: winreg_DisableReflectionKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - clinic_HKEY_converter
    - winreg_DisableReflectionKey_impl
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_DisableReflectionKey(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1084,1
    - Dst: winreg_EnableReflectionKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1078
    functionDepth: 10
    functionLinenumber: 1078
    functionLinenumberEnd: 1091
    functionName: winreg_EnableReflectionKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_EnableReflectionKey_impl
    - clinic_HKEY_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_EnableReflectionKey(PyObject *module, PyObject *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clinic_HKEY_converter
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1116,1
    - Dst: winreg_QueryReflectionKey_impl
      Src: /src/Python-3.8.3/PC/clinic/winreg.c.h:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - module
    - arg
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1110
    functionDepth: 10
    functionLinenumber: 1110
    functionLinenumberEnd: 1123
    functionName: winreg_QueryReflectionKey
    functionSourceFile: /src/Python-3.8.3/PC/clinic/winreg.c.h
    functionUses: 0
    functionsReached:
    - winreg_QueryReflectionKey_impl
    - clinic_HKEY_converter
    linkageType: ''
    returnType: PyObject
    signature: 'PyObject *

      winreg_QueryReflectionKey(PyObject *module, PyObject *arg)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:48,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:54,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:56,1
    - Dst: _Py_fstat_noraise
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:59,1
    - Dst: fileno
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:59,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:60,1
    - Dst: malloc
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:64,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:66,1
    - Dst: fread
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:69,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:70,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:73,1
    - Dst: PyConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:80,1
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:85,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:87,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:88,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:89,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:96,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:97,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:98,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:99,1
    - Dst: sprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:102,1
    - Dst: Py_CompileStringExFlags
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:103,1
    - Dst: free
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:106,1
    - Dst: PyMarshal_WriteObjectToString
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:109,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:110,1
    - Dst: assert
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:114,1
    - Dst: PyBytes_CheckExact
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:114,1
    - Dst: PyBytes_AS_STRING
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:115,1
    - Dst: PyBytes_GET_SIZE
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:116,1
    - Dst: fopen
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:120,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:122,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:125,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:132,1
    - Dst: Py_MIN
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:134,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:135,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:137,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:139,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:141,1
    - Dst: Py_CLEAR
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:143,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:145,1
    - Dst: ferror
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:147,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:148,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:151,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:156,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:157,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:159,1
    - Dst: fclose
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:161,1
    - Dst: free
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:163,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Programs/_freeze_importlib.c:165,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 111
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (PyBytes_CheckExact(marshalled))
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/Python-3.8.3/Programs/_freeze_importlib.c
    constantsTouched: []
    func_position:
      end: 167
      start: 33
    functionDepth: 23
    functionLinenumber: 33
    functionLinenumberEnd: 167
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Programs/_freeze_importlib.c
    functionUses: 19
    functionsReached:
    - ferror
    - Py_CLEAR
    - malloc
    - PyMarshal_WriteObjectToString
    - Py_ExitStatusException
    - PyConfig_Clear
    - PyStatus_Exception
    - assert
    - free
    - fileno
    - PyErr_Print
    - Py_DECREF
    - Py_InitializeFromConfig
    - PyBytes_GET_SIZE
    - _Py_fstat_noraise
    - fprintf
    - fclose
    - PyBytes_AS_STRING
    - Py_CompileStringExFlags
    - fread
    - Py_MIN
    - Py_Finalize
    - PyBytes_CheckExact
    - PyConfig_InitIsolatedConfig
    - fopen
    - PyConfig_SetString
    - sprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Programs/_testembed.c:28,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 20
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: _testembed_Py_Initialize
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - Py_Initialize
    linkageType: ''
    returnType: void
    signature: void _testembed_Py_Initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Programs/_testembed.c:41,1
    - Dst: PyInterpreterState_GetID
      Src: /src/Python-3.8.3/Programs/_testembed.c:43,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:44,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Programs/_testembed.c:46,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Programs/_testembed.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: print_subinterp
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - fflush
    - PyInterpreterState_GetID
    - PyThreadState_Get
    - printf
    - PyRun_SimpleString
    linkageType: ''
    returnType: void
    signature: void print_subinterp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:61,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:62,1
    - Dst: PyThreadState_Get
      Src: /src/Python-3.8.3/Programs/_testembed.c:63,1
    - Dst: PyEval_InitThreads
      Src: /src/Python-3.8.3/Programs/_testembed.c:65,1
    - Dst: PyEval_ReleaseThread
      Src: /src/Python-3.8.3/Programs/_testembed.c:66,1
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Programs/_testembed.c:68,1
    - Dst: print_subinterp
      Src: /src/Python-3.8.3/Programs/_testembed.c:69,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Programs/_testembed.c:70,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Programs/_testembed.c:73,1
    - Dst: print_subinterp
      Src: /src/Python-3.8.3/Programs/_testembed.c:74,1
    - Dst: Py_EndInterpreter
      Src: /src/Python-3.8.3/Programs/_testembed.c:75,1
    - Dst: PyThreadState_Swap
      Src: /src/Python-3.8.3/Programs/_testembed.c:78,1
    - Dst: print_subinterp
      Src: /src/Python-3.8.3/Programs/_testembed.c:79,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Programs/_testembed.c:80,1
    - Dst: PyEval_RestoreThread
      Src: /src/Python-3.8.3/Programs/_testembed.c:82,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 54
    functionDepth: 23
    functionLinenumber: 54
    functionLinenumberEnd: 86
    functionName: test_repeated_init_and_subinterpreters
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - PyEval_InitThreads
    - PyGILState_Ensure
    - PyThreadState_Swap
    - Py_NewInterpreter
    - PyEval_RestoreThread
    - PyGILState_Release
    - Py_EndInterpreter
    - PyThreadState_Get
    - printf
    - print_subinterp
    - PyEval_ReleaseThread
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_repeated_init_and_subinterpreters(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:96,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:98,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:101,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:103,1
    - Dst: fflush
      Src: /src/Python-3.8.3/Programs/_testembed.c:105,1
    - Dst: Py_SetStandardStreamEncoding
      Src: /src/Python-3.8.3/Programs/_testembed.c:107,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:108,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Programs/_testembed.c:109,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - encoding
    - errors
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 23
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: check_stdio_details
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - fflush
    - Py_SetStandardStreamEncoding
    - printf
    - PyRun_SimpleString
    - Py_Finalize
    linkageType: ''
    returnType: void
    signature: void check_stdio_details(const char *encoding, const char * errors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:122,1
    - Dst: check_stdio_details
      Src: /src/Python-3.8.3/Programs/_testembed.c:123,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:124,1
    - Dst: check_stdio_details
      Src: /src/Python-3.8.3/Programs/_testembed.c:125,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:126,1
    - Dst: check_stdio_details
      Src: /src/Python-3.8.3/Programs/_testembed.c:127,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:128,1
    - Dst: check_stdio_details
      Src: /src/Python-3.8.3/Programs/_testembed.c:129,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:132,1
    - Dst: Py_SetStandardStreamEncoding
      Src: /src/Python-3.8.3/Programs/_testembed.c:134,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:135,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 119
    functionDepth: 24
    functionLinenumber: 119
    functionLinenumberEnd: 139
    functionName: test_forced_io_encoding
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_SetStandardStreamEncoding
    - printf
    - Py_Initialize
    - check_stdio_details
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_forced_io_encoding(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: _Py_EMBED_PREINIT_CHECK
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _Py_EMBED_PREINIT_CHECK(msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:154,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:157,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Programs/_testembed.c:158,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:160,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:163,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Programs/_testembed.c:164,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:166,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:167,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:168,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Programs/_testembed.c:169,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:171,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:172,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:174,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Programs/_testembed.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 151
    functionDepth: 23
    functionLinenumber: 151
    functionLinenumberEnd: 177
    functionName: test_pre_initialization_api
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - putenv
    - _Py_EMBED_PREINIT_CHECK
    - Py_DecodeLocale
    - Py_Initialize
    - fprintf
    - PyRun_SimpleString
    - PyMem_RawFree
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_pre_initialization_api(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wcslen
      Src: /src/Python-3.8.3/Programs/_testembed.c:189,1
    - Dst: wcslen
      Src: /src/Python-3.8.3/Programs/_testembed.c:190,1
    - Dst: calloc
      Src: /src/Python-3.8.3/Programs/_testembed.c:192,1
    - Dst: calloc
      Src: /src/Python-3.8.3/Programs/_testembed.c:194,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Programs/_testembed.c:195,1
    - Dst: wcsncpy
      Src: /src/Python-3.8.3/Programs/_testembed.c:196,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:198,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:199,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:200,1
    - Dst: PySys_ResetWarnOptions
      Src: /src/Python-3.8.3/Programs/_testembed.c:201,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:202,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:203,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:204,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:205,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:206,1
    - Dst: PySys_AddXOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:207,1
    - Dst: PySys_AddXOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:208,1
    - Dst: free
      Src: /src/Python-3.8.3/Programs/_testembed.c:211,1
    - Dst: free
      Src: /src/Python-3.8.3/Programs/_testembed.c:213,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:216,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:217,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:218,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Programs/_testembed.c:219,1
    - Dst: _Py_EMBED_PREINIT_CHECK
      Src: /src/Python-3.8.3/Programs/_testembed.c:225,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 181
    functionDepth: 23
    functionLinenumber: 181
    functionLinenumberEnd: 229
    functionName: test_pre_initialization_sys_options
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - PySys_AddXOption
    - _Py_EMBED_PREINIT_CHECK
    - wcsncpy
    - Py_Finalize
    - PySys_ResetWarnOptions
    - PyRun_SimpleString
    - free
    - calloc
    - wcslen
    - PySys_AddWarnOption
    linkageType: ''
    returnType: int
    signature: int test_pre_initialization_sys_options(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyGILState_Ensure
      Src: /src/Python-3.8.3/Programs/_testembed.c:237,1
    - Dst: PyGILState_Check
      Src: /src/Python-3.8.3/Programs/_testembed.c:238,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:239,1
    - Dst: abort
      Src: /src/Python-3.8.3/Programs/_testembed.c:240,1
    - Dst: PyGILState_Release
      Src: /src/Python-3.8.3/Programs/_testembed.c:243,1
    - Dst: PyThread_release_lock
      Src: /src/Python-3.8.3/Programs/_testembed.c:245,1
    - Dst: PyThread_exit_thread
      Src: /src/Python-3.8.3/Programs/_testembed.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lockp
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: bpo20891_thread
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyGILState_Ensure
    - PyThread_exit_thread
    - PyGILState_Release
    - PyGILState_Check
    - abort
    - fprintf
    - PyThread_release_lock
    linkageType: ''
    returnType: void
    signature: void bpo20891_thread(void *lockp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:253,1
    - Dst: PyThread_allocate_lock
      Src: /src/Python-3.8.3/Programs/_testembed.c:258,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:260,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:264,1
    - Dst: PyThread_start_new_thread
      Src: /src/Python-3.8.3/Programs/_testembed.c:266,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:268,1
    - Dst: PyThread_acquire_lock
      Src: /src/Python-3.8.3/Programs/_testembed.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 250
    functionDepth: 21
    functionLinenumber: 250
    functionLinenumberEnd: 281
    functionName: test_bpo20891
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - putenv
    - PyThread_acquire_lock
    - PyThread_start_new_thread
    - fprintf
    - PyThread_allocate_lock
    linkageType: ''
    returnType: int
    signature: int test_bpo20891(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:285,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:289,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 23
    functionLinenumber: 283
    functionLinenumberEnd: 294
    functionName: test_initialize_twice
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - Py_Initialize
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_initialize_twice(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:303,1
    - Dst: Py_Main
      Src: /src/Python-3.8.3/Programs/_testembed.c:306,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:306,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 296
    functionDepth: 23
    functionLinenumber: 296
    functionLinenumberEnd: 311
    functionName: test_initialize_pymain
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - Py_Main
    - Py_ARRAY_LENGTH
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_initialize_pymain(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyRun_SimpleStringFlags
      Src: /src/Python-3.8.3/Programs/_testembed.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 321
    functionName: dump_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyRun_SimpleStringFlags
    linkageType: ''
    returnType: void
    signature: void dump_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:326,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:327,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 23
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: test_init_initialize_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - Py_Finalize
    - dump_config
    linkageType: ''
    returnType: int
    signature: int test_init_initialize_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetString
      Src: /src/Python-3.8.3/Programs/_testembed.c:335,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:336,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:337,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - config
    - config_str
    - str
    argTypes:
    - PyConfig*
    - wchar_t**
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: config_set_string
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyStatus_Exception
    - Py_ExitStatusException
    - PyConfig_Clear
    - PyConfig_SetString
    linkageType: ''
    returnType: void
    signature: void config_set_string(PyConfig *config, wchar_t **config_str, const
      wchar_t *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetArgv
      Src: /src/Python-3.8.3/Programs/_testembed.c:345,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:346,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:347,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - config
    - argc
    - argv
    argTypes:
    - PyConfig*
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 4
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: config_set_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyStatus_Exception
    - Py_ExitStatusException
    - PyConfig_Clear
    - PyConfig_SetArgv
    linkageType: ''
    returnType: void
    signature: void config_set_argv(PyConfig *config, Py_ssize_t argc, wchar_t * const
      *argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_SetWideStringList
      Src: /src/Python-3.8.3/Programs/_testembed.c:357,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:358,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:359,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - config
    - list
    - length
    - items
    argTypes:
    - PyConfig*
    - PyWideStringList*
    - Py_ssize_t
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: config_set_wide_string_list
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyStatus_Exception
    - PyConfig_SetWideStringList
    - PyConfig_Clear
    - Py_ExitStatusException
    linkageType: ''
    returnType: void
    signature: "void config_set_wide_string_list(PyConfig *config, PyWideStringList
      *list,\n                            Py_ssize_t length, wchar_t **items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: config_set_program_name
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_string
    linkageType: ''
    returnType: void
    signature: void config_set_program_name(PyConfig *config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:374,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:375,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:376,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 372
    functionDepth: 18
    functionLinenumber: 372
    functionLinenumberEnd: 379
    functionName: init_from_config_clear
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyStatus_Exception
    - Py_InitializeFromConfig
    - PyConfig_Clear
    - Py_ExitStatusException
    linkageType: ''
    returnType: void
    signature: void init_from_config_clear(PyConfig *config)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:388,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:390,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:391,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:392,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:397,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:399,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:400,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:402,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - preinit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 382
    functionDepth: 23
    functionLinenumber: 382
    functionLinenumberEnd: 405
    functionName: check_init_compat_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - _PyPreConfig_InitCompatConfig
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - _PyConfig_InitCompatConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int check_init_compat_config(int preinit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_compat_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 24
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: test_preinit_compat_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_compat_config
    linkageType: ''
    returnType: int
    signature: int test_preinit_compat_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_compat_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 24
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: test_init_compat_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_compat_config
    linkageType: ''
    returnType: int
    signature: int test_init_compat_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:424,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Programs/_testembed.c:428,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:434,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:437,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:440,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:445,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:448,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:454,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:462,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:463,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 420
    functionDepth: 23
    functionLinenumber: 420
    functionLinenumberEnd: 466
    functionName: test_init_global_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_SetProgramName
    - putenv
    - dump_config
    - Py_Initialize
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_global_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:472,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:474,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:477,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:481,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:482,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:483,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:487,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:493,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:499,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:502,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:505,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:512,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:515,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:516,1
    - Dst: Py_SetProgramName
      Src: /src/Python-3.8.3/Programs/_testembed.c:518,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:519,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:531,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:531,1
    - Dst: config_set_wide_string_list
      Src: /src/Python-3.8.3/Programs/_testembed.c:539,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:540,1
    - Dst: config_set_wide_string_list
      Src: /src/Python-3.8.3/Programs/_testembed.c:545,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:546,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:552,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:562,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:569,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:575,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:584,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:588,1
    - Dst: Py_SetStandardStreamEncoding
      Src: /src/Python-3.8.3/Programs/_testembed.c:589,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:595,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:596,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:598,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:602,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:607,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:609,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 469
    functionDepth: 23
    functionLinenumber: 469
    functionLinenumberEnd: 612
    functionName: test_init_from_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - Py_SetProgramName
    - init_from_config_clear
    - putenv
    - Py_ARRAY_LENGTH
    - _PyPreConfig_InitCompatConfig
    - Py_SetStandardStreamEncoding
    - Py_ExitStatusException
    - Py_PreInitialize
    - PyStatus_Exception
    - config_set_string
    - config_set_wide_string_list
    - dump_config
    - _PyConfig_InitCompatConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_from_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:618,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:631,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:631,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:632,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:634,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - parse_argv
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 615
    functionDepth: 23
    functionLinenumber: 615
    functionLinenumberEnd: 637
    functionName: check_init_parse_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - init_from_config_clear
    - Py_ARRAY_LENGTH
    - dump_config
    - PyConfig_InitPythonConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int check_init_parse_argv(int parse_argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_parse_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 24
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: test_init_parse_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_parse_argv
    linkageType: ''
    returnType: int
    signature: int test_init_parse_argv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_parse_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 24
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: test_init_dont_parse_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_parse_argv
    linkageType: ''
    returnType: int
    signature: int test_init_dont_parse_argv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:654,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:655,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:656,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:657,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:658,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:659,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:660,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:661,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:662,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:663,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:664,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:665,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:666,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:667,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: set_most_env_vars
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - putenv
    linkageType: ''
    returnType: void
    signature: void set_most_env_vars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_most_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:674,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:676,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: set_all_env_vars
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - set_most_env_vars
    - putenv
    linkageType: ''
    returnType: void
    signature: void set_all_env_vars(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:685,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:686,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:687,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 681
    functionDepth: 23
    functionLinenumber: 681
    functionLinenumberEnd: 690
    functionName: test_init_compat_env
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - set_all_env_vars
    - Py_Finalize
    - dump_config
    linkageType: ''
    returnType: int
    signature: int test_init_compat_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:695,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:698,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:700,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:701,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:703,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 693
    functionDepth: 23
    functionLinenumber: 693
    functionLinenumberEnd: 706
    functionName: test_init_python_env
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - config_set_program_name
    - dump_config
    - PyConfig_InitPythonConfig
    - set_all_env_vars
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_python_env(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:711,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:712,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 714
    functionName: set_all_env_vars_dev_mode
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - putenv
    linkageType: ''
    returnType: void
    signature: void set_all_env_vars_dev_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all_env_vars_dev_mode
      Src: /src/Python-3.8.3/Programs/_testembed.c:721,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:722,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:723,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 717
    functionDepth: 23
    functionLinenumber: 717
    functionLinenumberEnd: 726
    functionName: test_init_env_dev_mode
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - set_all_env_vars_dev_mode
    - Py_Finalize
    - dump_config
    linkageType: ''
    returnType: int
    signature: int test_init_env_dev_mode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_all_env_vars_dev_mode
      Src: /src/Python-3.8.3/Programs/_testembed.c:733,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:734,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:735,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:736,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 729
    functionDepth: 23
    functionLinenumber: 729
    functionLinenumberEnd: 739
    functionName: test_init_env_dev_mode_alloc
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - set_all_env_vars_dev_mode
    - putenv
    - dump_config
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_env_dev_mode_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:746,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:751,1
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:752,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:753,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:755,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 742
    functionDepth: 23
    functionLinenumber: 742
    functionLinenumberEnd: 758
    functionName: test_init_isolated_flag
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - config_set_program_name
    - dump_config
    - PyConfig_InitPythonConfig
    - set_all_env_vars
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_isolated_flag(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:765,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:769,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:770,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:771,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:775,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:777,1
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:778,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:779,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:781,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 762
    functionDepth: 23
    functionLinenumber: 762
    functionLinenumberEnd: 784
    functionName: test_preinit_isolated1
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - _PyPreConfig_InitCompatConfig
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - _PyConfig_InitCompatConfig
    - set_all_env_vars
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_preinit_isolated1(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _PyPreConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:791,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:795,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:796,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:797,1
    - Dst: _PyConfig_InitCompatConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:802,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:807,1
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:808,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:809,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:811,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 788
    functionDepth: 23
    functionLinenumber: 788
    functionLinenumberEnd: 814
    functionName: test_preinit_isolated2
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - _PyPreConfig_InitCompatConfig
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - _PyConfig_InitCompatConfig
    - set_all_env_vars
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_preinit_isolated2(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:820,1
    - Dst: Py_PreInitializeFromArgs
      Src: /src/Python-3.8.3/Programs/_testembed.c:831,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:832,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:833,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:834,1
    - Dst: PyConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:838,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:844,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:844,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:845,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:846,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:848,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:849,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 817
    functionDepth: 23
    functionLinenumber: 817
    functionLinenumberEnd: 851
    functionName: test_preinit_dont_parse_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - init_from_config_clear
    - PyPreConfig_InitIsolatedConfig
    - Py_ARRAY_LENGTH
    - Py_ExitStatusException
    - config_set_program_name
    - PyStatus_Exception
    - PyConfig_InitIsolatedConfig
    - dump_config
    - Py_PreInitializeFromArgs
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_preinit_dont_parse_argv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:857,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:862,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:862,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:863,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:864,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:866,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 23
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: test_preinit_parse_argv
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - init_from_config_clear
    - Py_ARRAY_LENGTH
    - config_set_program_name
    - dump_config
    - PyConfig_InitPythonConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_preinit_parse_argv(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 893
    functionName: set_all_global_config_variables
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_all_global_config_variables(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_all_env_vars
      Src: /src/Python-3.8.3/Programs/_testembed.c:902,1
    - Dst: set_all_global_config_variables
      Src: /src/Python-3.8.3/Programs/_testembed.c:905,1
    - Dst: PyPreConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:909,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:911,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:912,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:913,1
    - Dst: assert
      Src: /src/Python-3.8.3/Programs/_testembed.c:917,1
    - Dst: assert
      Src: /src/Python-3.8.3/Programs/_testembed.c:918,1
    - Dst: PyConfig_InitIsolatedConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:922,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:924,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:925,1
    - Dst: assert
      Src: /src/Python-3.8.3/Programs/_testembed.c:928,1
    - Dst: assert
      Src: /src/Python-3.8.3/Programs/_testembed.c:929,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:931,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - preinit
    argTypes:
    - int
    assertStmts:
    - condition: (rt_preconfig->isolated == 1)
      pos:
        line_end: 916
        line_start: 916
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    - condition: (rt_preconfig->use_environment == 0)
      pos:
        line_end: 917
        line_start: 917
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    - condition: (rt_preconfig->use_environment == 0)
      pos:
        line_end: 928
        line_start: 928
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    - condition: (rt_preconfig->isolated == 1)
      pos:
        line_end: 927
        line_start: 927
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    constantsTouched: []
    func_position:
      end: 934
      start: 896
    functionDepth: 23
    functionLinenumber: 896
    functionLinenumberEnd: 934
    functionName: check_preinit_isolated_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - PyPreConfig_InitIsolatedConfig
    - Py_Finalize
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - PyConfig_InitIsolatedConfig
    - dump_config
    - assert
    - set_all_env_vars
    - set_all_global_config_variables
    linkageType: ''
    returnType: int
    signature: int check_preinit_isolated_config(int preinit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_preinit_isolated_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 937
    functionDepth: 24
    functionLinenumber: 937
    functionLinenumberEnd: 940
    functionName: test_preinit_isolated_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_preinit_isolated_config
    linkageType: ''
    returnType: int
    signature: int test_preinit_isolated_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_preinit_isolated_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 943
    functionDepth: 24
    functionLinenumber: 943
    functionLinenumberEnd: 946
    functionName: test_init_isolated_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_preinit_isolated_config
    linkageType: ''
    returnType: int
    signature: int test_init_isolated_config(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: set_all_global_config_variables
      Src: /src/Python-3.8.3/Programs/_testembed.c:952,1
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:966,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:968,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:969,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:970,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:975,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:977,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:978,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:980,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - preinit
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 949
    functionDepth: 23
    functionLinenumber: 949
    functionLinenumberEnd: 983
    functionName: check_init_python_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - Py_Finalize
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - PyConfig_InitPythonConfig
    - PyPreConfig_InitPythonConfig
    - set_all_global_config_variables
    linkageType: ''
    returnType: int
    signature: int check_init_python_config(int preinit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_python_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 986
    functionDepth: 24
    functionLinenumber: 986
    functionLinenumberEnd: 989
    functionName: test_preinit_python_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_python_config
    linkageType: ''
    returnType: int
    signature: int test_preinit_python_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_init_python_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 24
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: test_init_python_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - check_init_python_config
    linkageType: ''
    returnType: int
    signature: int test_init_python_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1001,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1007,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1008,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1009,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1013,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:1015,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1016,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1018,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 998
    functionDepth: 23
    functionLinenumber: 998
    functionLinenumberEnd: 1021
    functionName: test_init_dont_configure_locale
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - Py_ExitStatusException
    - Py_PreInitialize
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - PyConfig_InitPythonConfig
    - PyPreConfig_InitPythonConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_dont_configure_locale(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1027,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1029,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1030,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:1032,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1033,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1035,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1024
    functionDepth: 23
    functionLinenumber: 1024
    functionLinenumberEnd: 1038
    functionName: test_init_dev_mode
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - putenv
    - config_set_program_name
    - dump_config
    - PyConfig_InitPythonConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_dev_mode(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyUnicode_CompareWithASCIIString
      Src: /src/Python-3.8.3/Programs/_testembed.c:1042,1
    - Dst: PyLong_FromVoidPtr
      Src: /src/Python-3.8.3/Programs/_testembed.c:1043,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Programs/_testembed.c:1045,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Programs/_testembed.c:1049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - data
    argTypes:
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1040
    functionDepth: 4
    functionLinenumber: 1040
    functionLinenumberEnd: 1050
    functionName: _open_code_hook
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyImport_ImportModule
    - PyUnicode_CompareWithASCIIString
    - PyObject_CallMethod
    - PyLong_FromVoidPtr
    linkageType: ''
    returnType: PyObject
    signature: PyObject *_open_code_hook(PyObject *path, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PyFile_SetOpenCodeHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1057,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1059,1
    - Dst: PyFile_SetOpenCodeHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1063,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1065,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1070,1
    - Dst: PyFile_OpenCode
      Src: /src/Python-3.8.3/Programs/_testembed.c:1073,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Programs/_testembed.c:1075,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Programs/_testembed.c:1078,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Programs/_testembed.c:1079,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1081,1
    - Dst: PyImport_ImportModule
      Src: /src/Python-3.8.3/Programs/_testembed.c:1087,1
    - Dst: PyObject_CallMethod
      Src: /src/Python-3.8.3/Programs/_testembed.c:1089,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Programs/_testembed.c:1092,1
    - Dst: PyLong_AsVoidPtr
      Src: /src/Python-3.8.3/Programs/_testembed.c:1095,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Programs/_testembed.c:1096,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1098,1
    - Dst: Py_XDECREF
      Src: /src/Python-3.8.3/Programs/_testembed.c:1102,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1105,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1052
    functionDepth: 23
    functionLinenumber: 1052
    functionLinenumberEnd: 1107
    functionName: test_open_code_hook
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - PyImport_ImportModule
    - PyErr_Print
    - Py_DECREF
    - Py_Finalize
    - Py_XDECREF
    - PyFile_OpenCode
    - printf
    - PyLong_AsVoidPtr
    - PyObject_CallMethod
    - PyFile_SetOpenCodeHook
    linkageType: ''
    returnType: int
    signature: int test_open_code_hook(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Programs/_testembed.c:1111,1
    - Dst: PyErr_SetString
      Src: /src/Python-3.8.3/Programs/_testembed.c:1112,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Programs/_testembed.c:1114,1
    - Dst: PyArg_ParseTuple
      Src: /src/Python-3.8.3/Programs/_testembed.c:1115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - event
    - args
    - userdata
    argTypes:
    - char*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1109
    functionDepth: 8
    functionLinenumber: 1109
    functionLinenumberEnd: 1121
    functionName: _audit_hook
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PyArg_ParseTuple
    - PyErr_SetString
    linkageType: ''
    returnType: int
    signature: int _audit_hook(const char *event, PyObject *args, void *userdata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PySys_AddAuditHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1128,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1129,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1131,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1132,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1135,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1136,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1138,1
    - Dst: PyErr_Occurred
      Src: /src/Python-3.8.3/Programs/_testembed.c:1141,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1142,1
    - Dst: PyErr_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1145,1
    - Dst: PySys_Audit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1147,1
    - Dst: PyErr_Print
      Src: /src/Python-3.8.3/Programs/_testembed.c:1148,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1149,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - setValue
    argTypes:
    - Py_ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1123
    functionDepth: 21
    functionLinenumber: 1123
    functionLinenumberEnd: 1158
    functionName: _test_audit
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - PySys_AddAuditHook
    - PyErr_Occurred
    - PyErr_Print
    - printf
    - PyErr_Clear
    - PySys_Audit
    linkageType: ''
    returnType: int
    signature: int _test_audit(Py_ssize_t setValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _test_audit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1162,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1160
    functionDepth: 23
    functionLinenumber: 1160
    functionLinenumberEnd: 1165
    functionName: test_audit
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 1
    functionsReached:
    - _test_audit
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_audit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1171,1
    - Dst: strcmp
      Src: /src/Python-3.8.3/Programs/_testembed.c:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - event
    - args
    - userdata
    argTypes:
    - char*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1176
    functionName: _audit_subinterpreter_hook
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _audit_subinterpreter_hook(const char *event, PyObject *args, void
      *userdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PySys_AddAuditHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1181,1
    - Dst: _testembed_Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1182,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Programs/_testembed.c:1184,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Programs/_testembed.c:1185,1
    - Dst: Py_NewInterpreter
      Src: /src/Python-3.8.3/Programs/_testembed.c:1186,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1178
    functionDepth: 23
    functionLinenumber: 1178
    functionLinenumberEnd: 1195
    functionName: test_audit_subinterpreter
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - _testembed_Py_Initialize
    - Py_NewInterpreter
    - PySys_AddAuditHook
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_audit_subinterpreter(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Programs/_testembed.c:1205,1
    - Dst: PyUnicode_FromFormat
      Src: /src/Python-3.8.3/Programs/_testembed.c:1210,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1212,1
    - Dst: PyUnicode_AsUTF8
      Src: /src/Python-3.8.3/Programs/_testembed.c:1212,1
    - Dst: Py_DECREF
      Src: /src/Python-3.8.3/Programs/_testembed.c:1213,1
    - Dst: exit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1215,1
    - Dst: PyErr_Format
      Src: /src/Python-3.8.3/Programs/_testembed.c:1218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - eventName
    - args
    - userData
    argTypes:
    - char*
    - PyObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1202
    functionDepth: 9
    functionLinenumber: 1202
    functionLinenumberEnd: 1220
    functionName: _audit_hook_run
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_DECREF
    - PyUnicode_AsUTF8
    - PyUnicode_FromFormat
    - printf
    - PyErr_Format
    - exit
    - strcmp
    linkageType: ''
    returnType: int
    signature: int _audit_hook_run(const char *eventName, PyObject *args, void *userData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_AddAuditHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1228,1
    - Dst: Py_Main
      Src: /src/Python-3.8.3/Programs/_testembed.c:1230,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1222
    functionDepth: 9
    functionLinenumber: 1222
    functionLinenumberEnd: 1231
    functionName: test_audit_run_command
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_Main
    - PySys_AddAuditHook
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int test_audit_run_command(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PySys_AddAuditHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1239,1
    - Dst: Py_Main
      Src: /src/Python-3.8.3/Programs/_testembed.c:1241,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1233
    functionDepth: 9
    functionLinenumber: 1233
    functionLinenumberEnd: 1242
    functionName: test_audit_run_file
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_Main
    - PySys_AddAuditHook
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: int
    signature: int test_audit_run_file(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1247,1
    - Dst: PySys_AddAuditHook
      Src: /src/Python-3.8.3/Programs/_testembed.c:1258,1
    - Dst: Py_InitializeFromConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1260,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1261,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1262,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/Programs/_testembed.c:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - argc
    - argv
    - test
    argTypes:
    - int
    - wchar_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1244
    functionDepth: 18
    functionLinenumber: 1244
    functionLinenumberEnd: 1266
    functionName: run_audit_run_test
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_RunMain
    - PySys_AddAuditHook
    - Py_InitializeFromConfig
    - Py_ExitStatusException
    - PyStatus_Exception
    - PyConfig_InitPythonConfig
    linkageType: ''
    returnType: int
    signature: int run_audit_run_test(int argc, wchar_t **argv, void *test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_audit_run_test
      Src: /src/Python-3.8.3/Programs/_testembed.c:1272,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1268
    functionDepth: 19
    functionLinenumber: 1268
    functionLinenumberEnd: 1273
    functionName: test_audit_run_interactivehook
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - run_audit_run_test
    linkageType: ''
    returnType: int
    signature: int test_audit_run_interactivehook(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_audit_run_test
      Src: /src/Python-3.8.3/Programs/_testembed.c:1279,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1275
    functionDepth: 19
    functionLinenumber: 1275
    functionLinenumberEnd: 1280
    functionName: test_audit_run_startup
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - run_audit_run_test
    linkageType: ''
    returnType: int
    signature: int test_audit_run_startup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: run_audit_run_test
      Src: /src/Python-3.8.3/Programs/_testembed.c:1286,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1282
    functionDepth: 19
    functionLinenumber: 1282
    functionLinenumberEnd: 1287
    functionName: test_audit_run_stdin
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_ARRAY_LENGTH
    - run_audit_run_test
    linkageType: ''
    returnType: int
    signature: int test_audit_run_stdin(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1293,1
    - Dst: PyConfig_SetBytesString
      Src: /src/Python-3.8.3/Programs/_testembed.c:1295,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1297,1
    - Dst: PyConfig_Read
      Src: /src/Python-3.8.3/Programs/_testembed.c:1301,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1302,1
    - Dst: PyWideStringList_Insert
      Src: /src/Python-3.8.3/Programs/_testembed.c:1306,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1308,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Programs/_testembed.c:1312,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1314,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:1319,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1320,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1322,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1323,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1289
    functionDepth: 23
    functionLinenumber: 1289
    functionLinenumberEnd: 1328
    functionName: test_init_read_set
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - PyWideStringList_Append
    - init_from_config_clear
    - Py_ExitStatusException
    - PyStatus_Exception
    - config_set_string
    - dump_config
    - PyConfig_Read
    - PyWideStringList_Insert
    - PyConfig_InitPythonConfig
    - PyConfig_SetBytesString
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_read_set(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PySys_AddXOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:1333,1
    - Dst: PySys_AddXOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:1334,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:1335,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1338,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1347,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1347,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Programs/_testembed.c:1351,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1353,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Programs/_testembed.c:1357,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1359,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:1363,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1364,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1366,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1367,1
    - Dst: PyConfig_Clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1371,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1372,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1331
    functionDepth: 23
    functionLinenumber: 1331
    functionLinenumberEnd: 1373
    functionName: test_init_sys_add
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - PyWideStringList_Append
    - init_from_config_clear
    - PySys_AddXOption
    - Py_ARRAY_LENGTH
    - Py_Finalize
    - Py_ExitStatusException
    - PyConfig_Clear
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - PyConfig_InitPythonConfig
    - PySys_AddWarnOption
    linkageType: ''
    returnType: int
    signature: int test_init_sys_add(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1378,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1380,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Programs/_testembed.c:1383,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1385,1
    - Dst: Py_SetPath
      Src: /src/Python-3.8.3/Programs/_testembed.c:1388,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Programs/_testembed.c:1389,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1390,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1392,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1393,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1376
    functionDepth: 23
    functionLinenumber: 1376
    functionLinenumberEnd: 1396
    functionName: test_init_setpath
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - putenv
    - dump_config
    - Py_DecodeLocale
    - Py_Initialize
    - fprintf
    - getenv
    - PyMem_RawFree
    - Py_SetPath
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_setpath(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PyPreConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1402,1
    - Dst: Py_PreInitialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1406,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1407,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1408,1
    - Dst: getenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1411,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1413,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Programs/_testembed.c:1416,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1418,1
    - Dst: Py_SetPath
      Src: /src/Python-3.8.3/Programs/_testembed.c:1421,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Programs/_testembed.c:1422,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1423,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1426,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:1428,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:1429,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1430,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1432,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1399
    functionDepth: 23
    functionLinenumber: 1399
    functionLinenumberEnd: 1435
    functionName: test_init_setpath_config
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - putenv
    - Py_ExitStatusException
    - Py_PreInitialize
    - PyStatus_Exception
    - config_set_string
    - Py_DecodeLocale
    - dump_config
    - fprintf
    - getenv
    - PyMem_RawFree
    - PyConfig_InitPythonConfig
    - Py_SetPath
    - PyPreConfig_InitPythonConfig
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_setpath_config(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1440,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1442,1
    - Dst: Py_DecodeLocale
      Src: /src/Python-3.8.3/Programs/_testembed.c:1445,1
    - Dst: fprintf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1447,1
    - Dst: Py_SetPythonHome
      Src: /src/Python-3.8.3/Programs/_testembed.c:1450,1
    - Dst: PyMem_RawFree
      Src: /src/Python-3.8.3/Programs/_testembed.c:1451,1
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1452,1
    - Dst: Py_Initialize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1454,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1455,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1438
    functionDepth: 23
    functionLinenumber: 1438
    functionLinenumberEnd: 1458
    functionName: test_init_setpythonhome
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - Py_SetPythonHome
    - putenv
    - dump_config
    - Py_DecodeLocale
    - Py_Initialize
    - fprintf
    - getenv
    - PyMem_RawFree
    - Py_Finalize
    linkageType: ''
    returnType: int
    signature: int test_init_setpythonhome(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1463,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:1465,1
    - Dst: PySys_AddWarnOption
      Src: /src/Python-3.8.3/Programs/_testembed.c:1466,1
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1469,1
    - Dst: config_set_program_name
      Src: /src/Python-3.8.3/Programs/_testembed.c:1474,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Programs/_testembed.c:1477,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1479,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1480,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1487,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1487,1
    - Dst: PyConfig_Read
      Src: /src/Python-3.8.3/Programs/_testembed.c:1490,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1491,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1492,1
    - Dst: PyWideStringList_Append
      Src: /src/Python-3.8.3/Programs/_testembed.c:1495,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1497,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1498,1
    - Dst: PyWideStringList_Insert
      Src: /src/Python-3.8.3/Programs/_testembed.c:1501,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1503,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1504,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1507,1
    - Dst: dump_config
      Src: /src/Python-3.8.3/Programs/_testembed.c:1508,1
    - Dst: Py_Finalize
      Src: /src/Python-3.8.3/Programs/_testembed.c:1509,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1461
    functionDepth: 23
    functionLinenumber: 1461
    functionLinenumberEnd: 1511
    functionName: test_init_warnoptions
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - PyWideStringList_Append
    - init_from_config_clear
    - putenv
    - Py_ARRAY_LENGTH
    - Py_Finalize
    - Py_ExitStatusException
    - config_set_program_name
    - PyStatus_Exception
    - dump_config
    - PyConfig_Read
    - PyConfig_InitPythonConfig
    - PyWideStringList_Insert
    - PySys_AddWarnOption
    linkageType: ''
    returnType: int
    signature: int test_init_warnoptions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1524,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1524,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - PyConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1514
    functionDepth: 5
    functionLinenumber: 1514
    functionLinenumberEnd: 1526
    functionName: configure_init_main
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - config_set_string
    - Py_ARRAY_LENGTH
    linkageType: ''
    returnType: void
    signature: void configure_init_main(PyConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1532,1
    - Dst: configure_init_main
      Src: /src/Python-3.8.3/Programs/_testembed.c:1534,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1535,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/Programs/_testembed.c:1537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1529
    functionDepth: 19
    functionLinenumber: 1529
    functionLinenumberEnd: 1538
    functionName: test_init_run_main
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - configure_init_main
    - init_from_config_clear
    - Py_RunMain
    - PyConfig_InitPythonConfig
    linkageType: ''
    returnType: int
    signature: int test_init_run_main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1544,1
    - Dst: configure_init_main
      Src: /src/Python-3.8.3/Programs/_testembed.c:1546,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1548,1
    - Dst: PyRun_SimpleString
      Src: /src/Python-3.8.3/Programs/_testembed.c:1551,1
    - Dst: exit
      Src: /src/Python-3.8.3/Programs/_testembed.c:1556,1
    - Dst: _Py_InitializeMain
      Src: /src/Python-3.8.3/Programs/_testembed.c:1559,1
    - Dst: PyStatus_Exception
      Src: /src/Python-3.8.3/Programs/_testembed.c:1560,1
    - Dst: Py_ExitStatusException
      Src: /src/Python-3.8.3/Programs/_testembed.c:1561,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/Programs/_testembed.c:1564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1541
    functionDepth: 19
    functionLinenumber: 1541
    functionLinenumberEnd: 1565
    functionName: test_init_main
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - init_from_config_clear
    - Py_RunMain
    - configure_init_main
    - Py_ExitStatusException
    - PyStatus_Exception
    - PyConfig_InitPythonConfig
    - PyRun_SimpleString
    - exit
    - _Py_InitializeMain
    linkageType: ''
    returnType: int
    signature: int test_init_main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyConfig_InitPythonConfig
      Src: /src/Python-3.8.3/Programs/_testembed.c:1571,1
    - Dst: config_set_argv
      Src: /src/Python-3.8.3/Programs/_testembed.c:1577,1
    - Dst: Py_ARRAY_LENGTH
      Src: /src/Python-3.8.3/Programs/_testembed.c:1577,1
    - Dst: config_set_string
      Src: /src/Python-3.8.3/Programs/_testembed.c:1578,1
    - Dst: init_from_config_clear
      Src: /src/Python-3.8.3/Programs/_testembed.c:1579,1
    - Dst: Py_RunMain
      Src: /src/Python-3.8.3/Programs/_testembed.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1568
    functionDepth: 19
    functionLinenumber: 1568
    functionLinenumberEnd: 1582
    functionName: test_run_main
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 0
    functionsReached:
    - config_set_argv
    - init_from_config_clear
    - Py_RunMain
    - Py_ARRAY_LENGTH
    - config_set_string
    - PyConfig_InitPythonConfig
    linkageType: ''
    returnType: int
    signature: int test_run_main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/Python-3.8.3/Programs/_testembed.c:1658,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1664,1
    - Dst: printf
      Src: /src/Python-3.8.3/Programs/_testembed.c:1668,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1674
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Programs/_testembed.c
    functionUses: 21
    functionsReached:
    - printf
    - strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_Main
      Src: /src/Python-3.8.3/Programs/python.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - wchar_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 7
    functionDepth: 8
    functionLinenumber: 7
    functionLinenumberEnd: 11
    functionName: wmain
    functionSourceFile: /src/Python-3.8.3/Programs/python.c
    functionUses: 1
    functionsReached:
    - Py_Main
    linkageType: ''
    returnType: int
    signature: int wmain(int argc, wchar_t **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Py_BytesMain
      Src: /src/Python-3.8.3/Programs/python.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 8
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: main
    functionSourceFile: /src/Python-3.8.3/Programs/python.c
    functionUses: 21
    functionsReached:
    - Py_BytesMain
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- kcp/KeccakP-1600-inplace32BI.c
- crt_externs.h
- docstrings.h
- sys/sysmacros.h
- expat.h
- compat.h
- clinic/gcmodule.c.h
- cpython/pylifecycle.h
- stringlib/localeutil.h
- opcode.h
- ffi_common.h
- picklebufobject.h
- classobject.h
- pycore_context.h
- fficonfig.h
- ast.h
- impl/blake2s.c
- sys/xattr.h
- clinic/sha512module.c.h
- socketmodule.h
- sys/vfs.h
- clinic/traceback.c.h
- sys/types.h
- link.h
- pycore_condvar.h
- sys/devpoll.h
- basetsd.h
- stdint.h
- clinic/resource.c.h
- bytes_methods.h
- pthread_np.h
- clinic/_asynciomodule.c.h
- ApplicationServices/ApplicationServices.h
- cpython/pyerrors.h
- linux/vm_sockets.h
- unicodeobject.h
- clinic/grpmodule.c.h
- stringlib/ucs2lib.h
- clinic/transmogrify.h.h
- tmmintrin.h
- sys/endian.h
- unistd.h
- Python.h
- bluetooth.h
- frameparams.c
- wctype.h
- stat.h
- unicodename_db.h
- thirdparty/xdiff/xdiff.h
- bluetooth/rfcomm.h
- netdb.h
- linux/can/raw.h
- ceval.h
- limits.h
- typearith.h
- crtassem.h
- sys/random.h
- grammar.h
- clinic/unicodeobject.c.h
- pycore_fileutils.h
- shadow.h
- bzlib.h
- s390intrin.h
- pycore_pylifecycle.h
- linux/memfd.h
- SnP-Relaned.h
- stringlib/codecs.h
- sys/mkdev.h
- locale.h
- mpalloc.h
- enumobject.h
- cpython/dictobject.h
- sdkddkver.h
- KeccakHash.h
- pydebug.h
- net/if.h
- setobject.h
- namespaceobject.h
- clinic/longobject.c.h
- clinic/_datetimemodule.c.h
- endian.h
- cstring
- math.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
- xutils.h
- emmintrin.h
- sys/sendfile.h
- pycore_accu.h
- tupleobject.h
- hgclient.h
- blake2-impl.h
- crypt.h
- sys/ldr.h
- cet.h
- prepare_protocol.h
- ppc-darwin.h
- pycore_hamt.h
- bluetooth/sco.h
- xmacros.h
- clinic/spwdmodule.c.h
- openssl/objects.h
- clinic/pwdmodule.c.h
- clinic/_abc.c.h
- intrinsics.h
- nlist.h
- util.h
- datetime.h
- clinic/sha256module.c.h
- winconfig.h
- asm/types.h
- objbase.h
- xmlutil.h
- clinic/winconsoleio.c.h
- abstract.h
- sysmodule.h
- socket.h
- pythonnt_rc.h
- decompressor.c
- kcp/KeccakSponge.c
- bsd/stdlib.h
- importdl.h
- hgpythonlib.h
- ctypes_dlfcn.h
- mappings_hk.h
- clinic/_operator.c.h
- clinic/listobject.c.h
- sys/utime.h
- decompressoriterator.c
- rotatingtree.h
- dl.h
- openssl/rsa.h
- pycore_gil.h
- KeccakP-1600-SnP.h
- process.h
- stringlib/find.h
- fci.h
- sys/mpctl.h
- sys/time.h
- malloc.h
- cpython/sysmodule.h
- readline/readline.h
- cursor.h
- sys/termio.h
- clinic/bytesobject.c.h
- bluetooth/hci.h
- token.h
- clinic/_randommodule.c.h
- stdarg.h
- stringlib/ctype.h
- libutil.h
- statement.h
- stringlib/partition.h
- internal/pycore_pystate.h
- cpython/traceback.h
- dictutil.h
- intrin.h
- string
- sys/soundcard.h
- crtdbg.h
- clinic/enumobject.c.h
- cstddef
- rpc/rpc.h
- omp.h
- clinic/dictobject.c.h
- strsafe.h
- msiquery.h
- xmltok_ns.c
- mappings_jp.h
- xmlrole.h
- panel.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C
- sre_lib.h
- pymacro.h
- linux/can.h
- emu_jisx0213_2000.h
- blake2b-load-sse2.h
- umodarith.h
- fileutil.h
- archive.h
- memoryobject.h
- stropts.h
- FuzzedDataProvider.h
- rtpLib.h
- pyexpat.h
- dutil.h
- clinic/_struct.c.h
- decompressionwriter.c
- thread_nt.h
- clinic/descrobject.c.h
- clinic/blake2s_impl.c.h
- _math.h
- compressobj.c
- clinic/fcntlmodule.c.h
- pymacconfig.h
- structmember.h
- sys/sysctl.h
- errcode.h
- clinic/_collectionsmodule.c.h
- sys/linux-syscalls.h
- tkinter.h
- dynamic_annotations.h
- zstd.h
- db.h
- listobject.h
- prsht.h
- sysexits.h
- err.h
- memory.h
- IBootstrapperApplication.h
- sys/file.h
- uuid/uuid.h
- gdbmerrno.h
- charencode.h
- mstcpip.h
- errmap.h
- pylifecycle.h
- siphash.h
- Tcl/tcl.h
- parser.h
- linux/tipc.h
- crt.h
- fuzzutil.h
- bdiff.h
- pythread.h
- clinic/codeobject.c.h
- sys/un.h
- linux/can/bcm.h
- imagehlp.h
- osdefs.h
- clinic/binascii.c.h
- wrl.h
- KeccakSponge.inc
- symtable.h
- note.h
- clinic/itertoolsmodule.c.h
- stringlib/replace.h
- kcp/KeccakHash.h
- Carbon/Carbon.h
- assert.h
- sliceobject.h
- AvailabilityMacros.h
- constants.h
- valgrind/valgrind.h
- termios.h
- boolobject.h
- xinclude.h
- winsock2.h
- clinic/_iomodule.c.h
- clinic/_gdbmmodule.c.h
- clinic/winreg.c.h
- alg_jisx0201.h
- pycore_initconfig.h
- cache.h
- codecs.h
- bitmanipulation.h
- sys/bsdtty.h
- openssl/evp.h
- blake2b-load-sse41.h
- clinic/_lzmamodule.c.h
- tcl.h
- pycore_ceval.h
- dict-common.h
- pycore_getopt.h
- ppc-ffitarget.h
- clinic/tupleobject.c.h
- clinic/moduleobject.c.h
- displayIntermediateValues.h
- decompressobj.c
- libkern/OSByteOrder.h
- fstream
- transpose.h
- clinic/_elementtree.c.h
- sys/stat.h
- pycore_pyerrors.h
- sys/statvfs.h
- sys/modem.h
- KeccakP-1600-64.macros
- row.h
- mmsystem.h
- stringlib/eq.h
- KeccakP-400-SnP.h
- pystate.h
- lwp.h
- copyfile.h
- term.h
- pydtrace.h
- x86-ffitarget.h
- fnt.h
- clinic/_dbmmodule.c.h
- pycore_object.h
- stringlib/join.h
- zstd.c
- ndbm.h
- excpt.h
- balinfo.h
- xtypes.h
- floatobject.h
- bltinmodule.h
- clinic/_statisticsmodule.c.h
- clinic/_weakref.c.h
- gdbm/ndbm.h
- syslog.h
- pytime.h
- objidl.h
- pythoncapi_compat.h
- opcode_targets.h
- clinic/iobase.c.h
- pycore_warnings.h
- clinic/msvcrtmodule.c.h
- sys/epoll.h
- lzma.h
- iostream
- structseq.h
- poll.h
- clinic/_curses_panel.c.h
- clinic/_ssl.c.h
- climits
- taskLib.h
- funcobject.h
- impl/blake2b-ref.c
- stdalign.h
- winsock.h
- iterobject.h
- zlib.h
- clinic/md5module.c.h
- stringlib/fastsearch.h
- condvar.h
- clinic/pyexpat.c.h
- pycore_pathconfig.h
- clinic/audioop.c.h
- clinic/posixshmem.c.h
- clinic/bufferedio.c.h
- clinic/funcobject.c.h
- commctrl.h
- mappings_cn.h
- blake2-kat.h
- sys/locking.h
- clinic/mathmodule.c.h
- sha1.h
- clinic/arraymodule.c.h
- revlog.h
- clinic/complexobject.c.h
- context.h
- impl/blake2b.c
- connection.h
- bufferutil.c
- code.h
- locutil.h
- KeccakP-1600-SnP-opt64.h
- xmltok_impl.h
- pystrtod.h
- Windows.h
- cpython/abstract.h
- patchlevel.h
- warnings.h
- sixstep.h
- fileutils.h
- stringlib/count.h
- align.h
- blake2s-load-sse41.h
- optional
- winbase.h
- fenv.h
- impl/blake2-impl.h
- objimpl.h
- pydtrace_probes.h
- cpython/pystate.h
- ctypes.h
- clinic/sha3module.c.h
- pystrcmp.h
- semaphore.h
- linux/magic.h
- libkern/OSCacheControl.h
- KeccakP-1600-opt64-config.h
- lmcons.h
- inttypes.h
- pycore_pymem.h
- clinic/cmathmodule.c.h
- clinic/signalmodule.c.h
- blake2s-round.h
- traceback.h
- openssl/ssl.h
- gdbm-ndbm.h
- IBootstrapperBAFunction.h
- vector
- sys/thread.h
- sys/filio.h
- arpa/inet.h
- clinic/bytearrayobject.c.h
- clinic\_testconsole.c.h
- openssl/x509v3.h
- addrinfo.h
- clinic/context.c.h
- sre.h
- basearith.h
- bytearrayobject.h
- clinic/memoryobject.c.h
- stdio.h
- fourstep.h
- weakrefobject.h
- type_traits
- frameobject.h
- openssl/pem.h
- pyport.h
- compressiondict.c
- sys/socket.h
- xprepare.h
- linux/soundcard.h
- bluetooth/l2cap.h
- rpcsvc/yp_prot.h
- pycore_atomic.h
- pyconfig.h
- netpacket/packet.h
- convolute.h
- stringlib/ucs1lib.h
- sys/sockio.h
- getnameinfo.c
- impl/blake2.h
- shelutil.h
- mmintrin.h
- sanitizer/msan_interface.h
- netinet/in.h
- SystemConfiguration/SystemConfiguration.h
- string.h
- hashtable.h
- internal.h
- ncurses.h
- dirutil.h
- typeslots.h
- clinic/typeobject.c.h
- eval.h
- direct.h
- stdatomic.h
- mpatch.h
- clinic/blake2b_impl.c.h
- openssl/x509.h
- _ssl_data.h
- sys/wait.h
- pycore_code.h
- gdiplus.h
- asdl.h
- tracemalloc.h
- KeccakP-800-SnP.h
- winrt\Windows.ApplicationModel.h
- libintl.h
- sys/times.h
- compressor.c
- sys/sys_domain.h
- getaddrinfo.c
- sys/ioctl.h
- pyarena.h
- stringlib/unicodedefs.h
- sys/kern_control.h
- kcp/KeccakSponge.h
- clinic/_tkinter.c.h
- clinic/import.c.h
- i86.h
- pyexpatns.h
- sys/memfd.h
- pyshellext_h.h
- fileobject.h
- import.h
- shlwapi.h
- clinic/winsound.c.h
- hashlib.h
- difradix2.h
- gdbm.h
- pyutil.h
- uuid.h
- blake2ns.h
- Python-ast.h
- stringlib/find_max_char.h
- pyerrors.h
- wchar.h
- msidefs.h
- clinic/marshal.c.h
- iphlpapi.h
- pch.h
- clinic/_winapi.c.h
- fcntl.h
- KeccakP-200-SnP.h
- blake2s-load-sse2.h
- procutil.h
- graminit.h
- clinic/odictobject.c.h
- pycore_tupleobject.h
- arm_neon.h
- sys/vnode.h
- node.h
- blake2s-load-xop.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H
- ndir.h
- importlib_zipimport.h
- modsupport.h
- multiprocessing.h
- pyhash.h
- clinic/textio.c.h
- py_curses.h
- altivec.h
- utility
- ctype.h
- crtversion.h
- windows.h
- langinfo.h
- ascii.h
- Tk/tk.h
- module.h
- mpdecimal.h
- ../Modules/hashtable.h
- genobject.h
- blake2.h
- ByteOrder.h
- initializer_list
- BalBaseBootstrapperApplication.h
- io.h
- ../hashlib.h
- clinic/_warnings.c.h
- stringlib/undef.h
- sys/mman.h
- tokenizer.h
- signal.h
- ceval_gil.h
- float.h
- clinic/_hashopenssl.c.h
- alloca.h
- rpc.h
- ws2tcpip.h
- stringlib/asciilib.h
- ubc_check.h
- stdlib.h
- linux/qrtr.h
- readline/history.h
- compressionchunker.c
- parsetok.h
- vccompat.h
- mach/mach_time.h
- immintrin.h
- x86intrin.h
- stringlib/split.h
- sre_constants.h
- winreparse.h
- multibytecodec.h
- wincrypt.h
- ieeefp.h
- pymem.h
- bytesobject.h
- search.h
- sys/ndir.h
- sys/resource.h
- clinic/_tracemalloc.c.h
- bits.h
- winver.h
- clinic/selectmodule.c.h
- cstdint
- clinic/sha1module.c.h
- shlobj.h
- spawn.h
- logutil.h
- pythonrun.h
- uriutil.h
- zdict.h
- netinet/tcp.h
- openssl/err.h
- compressoriterator.c
- pthread.h
- pystrhex.h
- cellobject.h
- stringlib/transmogrify.h
- clinic/posixmodule.c.h
- KeccakP-1600-unrolling.macros
- mappings_tw.h
- msi.h
- impl/blake2s-ref.c
- cpython/pymem.h
- constants.c
- pwd.h
- clinic/fileio.c.h
- xdiffi.h
- importlib_external.h
- odictobject.h
- clinic/floatobject.c.h
- olectl.h
- architecture/ppc/mode_independent_asm.h
- sys/event.h
- testcapi_long.h
- interpreteridobject.h
- osmodule.h
- uxtheme.h
- openssl/crypto.h
- tk.h
- pyctype.h
- wait.h
- rpcsvc/ypclnt.h
- kcp/KeccakHash.c
- mswsock.h
- setjmp.h
- cpython/objimpl.h
- descrobject.h
- openssl/hmac.h
- clinic/_heapqmodule.c.h
- thmutil.h
- stringlib/ucs4lib.h
- intrcheck.h
- object.h
- blake2-config.h
- KeccakP-1600-SnP-opt32.h
- clinic/symtablemodule.c.h
- clinic/_sre.c.h
- _iomodule.h
- conio.h
- sched.h
- clinic/structseq.c.h
- algorithm
- xmltok_impl.c
- sqlite3.h
- unicodetype_db.h
- clinic/_bz2module.c.h
- tchar.h
- clinic/_cursesmodule.c.h
- pymath.h
- sys/poll.h
- sys/utsname.h
- marshal.h
- thread_pthread.h
- xmltok.h
- openssl/dh.h
- clinic/_opcode.c.h
- shellapi.h
- sys/syscall.h
- mach-o/dyld.h
- python-zstandard.h
- smmintrin.h
- pathutil.h
- resource.h
- dirent.h
- blake2b-round.h
- lib/sha1.h
- clinic/zlibmodule.c.h
- rangeobject.h
- openssl/rand.h
- load.h
- complexobject.h
- clinic/bltinmodule.c.h
- linux/random.h
- wordcode_helpers.h
- memory
- errno.h
- linux/netlink.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H
- clinic/_cryptmodule.c.h
- IBootstrapperEngine.h
- cjkcodecs.h
- sys/select.h
- microprotocols.h
- compressionwriter.c
- clinic/stringio.c.h
- longobject.h
- longintrepr.h
- pycore_traceback.h
- pyfpe.h
- cpython/unicodeobject.h
- vxCpuLib.h
- memutil.h
- sys/param.h
- ..\modules\_io\_iomodule.h
- pty.h
- bluetooth/bluetooth.h
- time.h
- stringlib/unicode_format.h
- curses.h
- ffitarget.h
- SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C
- clinic/multibytecodec.c.h
- cpython/object.h
- cassert
- expat_config.h
- resolv.h
- sys/loadavg.h
- cpython/initconfig.h
- KeccakSponge.h
- pycore_pyhash.h
- clinic/_codecsmodule.c.h
- stddef.h
- pycapsule.h
- xdiff.h
- mappings_jisx0213_pair.h
- clinic/_contextvarsmodule.c.h
- stringlib/stringdefs.h
- strutil.h
- moduleobject.h
- expat_external.h
- pycore_pystate.h
- linux/if_alg.h
- cpython/interpreteridobject.h
- sys/dir.h
- tlhelp32.h
- compile.h
- arm_sve.h
- sys/attr.h
- cpython/fileobject.h
- stdbool.h
- methodobject.h
- winrt\Windows.Storage.h
- numbertheory.h
- posixmodule.h
- openssl/bio.h
- grp.h
- utime.h
- sys/uio.h
- dtoa.h
- unicodedata_db.h
- resrutil.h
- SHA1DC_CUSTOM_INCLUDE_SHA1_C
- clinic/sysmodule.c.h
- arpa/nameser.h
- importlib.h
- clinic/unicodedata.c.h
- dictobject.h
- sys/lock.h
- tclTomMath.h
- versionhelpers.h
- ucnhash.h
- dlfcn.h
- compressionreader.c
- clinic/_pickle.c.h
- decompressionreader.c
- sys/mount.h
- third_party/absl/types/optional.h
- clinic/_queuemodule.c.h
- cpython/tupleobject.h
- compressionparams.c
- mappings_kr.h
- balcondition.h
- bitset.h
- nametab.h
- kcp/KeccakP-1600-opt64.c
- ffi.h
- _ssl/debughelpers.c
- clinic/bytesio.c.h
report: name
sources:
- function_names:
  - ROL
  - HASH
  - bdiff_splitlines
  - cmp
  - equatelines
  - longest_match
  - recurse
  - bdiff_diff
  - bdiff_freehunks
  source_file: /src/mercurial/mercurial/bdiff.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: pos
        type: int
      item_type: struct
      name: pos
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/mercurial/mercurial/bdiff.c
    typedefs: []
    union: []
- function_names:
  - lalloc
  - mpatch_lfree
  - lsize
  - safeadd
  - safesub
  - gather
  - discard
  - combine
  - mpatch_decode
  - mpatch_calcsize
  - mpatch_apply
  - mpatch_fold
  source_file: /src/mercurial/mercurial/mpatch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/mercurial/mercurial/mpatch.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/mercurial/mercurial/mpatch.c
      type_or_value: '0'
    structs: []
    typedefs:
    - item_type: typedef
      name: bool
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/mercurial/mercurial/mpatch.c
      type: unsigned char
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/mercurial/mercurial/compat.h
      type_or_value: __inline
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mercurial/mercurial/compat.h
      type_or_value: __inline
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/mercurial/mercurial/compat.h
      type: __int64
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned __int64
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/mercurial/mercurial/compat.h
      type: int
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned int
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/mercurial/mercurial/compat.h
      type: signed char
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/mercurial/mercurial/compat.h
      type: short
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/mercurial/mercurial/compat.h
      type: long
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/mercurial/mercurial/compat.h
      type: __int64
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned char
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned short
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned long
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/mercurial/mercurial/compat.h
      type: unsigned __int64
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/mercurial/mercurial/compat.h
      type: __int64
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/mercurial/mercurial/compat.h
      type: int
    union: []
- function_names:
  - _PyObject_CAST
  - _Py_NewRef
  - Py_NewRef
  - _Py_XNewRef
  - Py_XNewRef
  - _Py_SET_REFCNT
  - Py_SET_REFCNT
  - _Py_SET_TYPE
  - Py_SET_TYPE
  - _Py_SET_SIZE
  - Py_SET_SIZE
  - PyFrame_GetCode
  - _PyFrame_GetCodeBorrow
  - PyFrame_GetBack
  - _PyFrame_GetBackBorrow
  - PyThreadState_GetInterpreter
  - PyThreadState_GetFrame
  - _PyThreadState_GetFrameBorrow
  - PyInterpreterState_Get
  - PyThreadState_GetID
  - PyObject_CallNoArgs
  - PyObject_CallOneArg
  - PyModule_AddType
  - PyObject_GC_IsTracked
  - PyObject_GC_IsFinalized
  - _Py_IS_TYPE
  - Py_IS_TYPE
  source_file: /src/mercurial/mercurial/pythoncapi_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/mercurial/mercurial/pythoncapi_compat.h
      type_or_value: __forceinline
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/bdiff.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: hash
        type: int
      - name: len
        type: ssize_t
      - name: '*l'
        type: char
      item_type: struct
      name: bdiff_line
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/mercurial/mercurial/bdiff.h
    - fields:
      - name: a1
        type: int
      - name: '*next'
        type: struct bdiff_hunk
      item_type: struct
      name: bdiff_hunk
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/mercurial/mercurial/bdiff.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/mpatch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPATCH_ERR_NO_MEM
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/mercurial/mercurial/mpatch.h
      type_or_value: '-3'
    - item_type: preproc_def
      name: MPATCH_ERR_CANNOT_BE_DECODED
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/mercurial/mercurial/mpatch.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: MPATCH_ERR_INVALID_PATCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/mercurial/mercurial/mpatch.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: start
        type: int
      - name: '*data'
        type: char
      item_type: struct
      name: mpatch_frag
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/mercurial/mercurial/mpatch.h
    - fields:
      - name: '*base'
        type: struct mpatch_frag
      item_type: struct
      name: mpatch_flist
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/mercurial/mercurial/mpatch.h
    typedefs: []
    union: []
- function_names:
  - getbe64
  - getbe32
  - getbeint16
  - getbeuint16
  - putbe64
  - putbe32
  - getbefloat64
  source_file: /src/mercurial/mercurial/bitmanipulation.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strcat_s
  - strcpy_s
  - _countof
  - _tmain
  source_file: /src/mercurial/mercurial/exewrapper.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _tcscpy_s
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/mercurial/mercurial/exewrapper.c
      type_or_value: strcpy_s
    - item_type: preproc_def
      name: _tcscat_s
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/mercurial/mercurial/exewrapper.c
      type_or_value: strcat_s
    structs: []
    typedefs: []
    union: []
- function_names:
  - index_length
  - raise_revlog_error
  - index_deref
  - index_get_parents_raw
  - index_get_parents
  - HgRevlogIndex_GetParents
  - index_py_parents
  - index_py_parents_raw
  - index_unsupported_child_sibling
  - index_py_raw_size
  - index_py_linkrev
  - index_py_data_chunk_compression_mode
  - index_py_sidedata_chunk_offset
  - index_py_sidedata_chunk_length
  - index_py_sidedata_chunk_compression_mode
  - index_py_changed_files_offset
  - index_py_changed_files_length
  - index_py_lazy_rank
  - index_get_start
  - index_py_data_chunk_start
  - index_get_length
  - index_py_data_chunk_length
  - index_get_flags
  - index_py_flags
  - index_get
  - index_pack_header
  - index_entry_binary
  - index_node
  - index_py_node
  - index_fast_rank
  - index_node_existing
  - node_check
  - index_start_bundle_repo
  - index_add_entry
  - index_replace_sidedata_info
  - index_stats
  - istat
  - list_copy
  - check_filter
  - set_phase_from_parents
  - pylist_append_owned
  - reachableroots2
  - add_roots_get_min
  - compute_phases_map_sets
  - index_headrevs
  - rgs_offset
  - rgs_alloc
  - rgs_get
  - rgs_realloc
  - rgs_realloc_amortized
  - rgs_set
  - pylist_append_size_t
  - index_headrevsdiff
  - index_baserev
  - index_py_raw_delta_base
  - index_py_delta_base
  - index_issnapshotrev
  - index_issnapshot
  - index_findsnapshots
  - index_deltachain
  - index_segment_span
  - trim_endidx
  - gap_compare
  - Py_ssize_t_compare
  - index_slicechunktodensity
  - nt_level
  - nt_find
  - nt_new
  - nt_insert
  - ntobj_insert
  - nt_delete_node
  - nt_init
  - ntobj_init
  - nt_partialmatch
  - nt_shortest
  - ntobj_shortest
  - nt_dealloc
  - ntobj_dealloc
  - index_init_nt
  - index_find_node
  - index_getitem
  - index_populate_nt
  - index_partialmatch
  - index_shortest
  - index_m_get
  - index_contains
  - index_m_has_node
  - index_m_rev
  - find_gca_candidates
  - find_deepest
  - index_commonancestorsheads
  - index_ancestors
  - index_invalidate_added
  - index_slice_del
  - index_assign_subscript
  - inline_scan
  - index_init
  - index_nodemap
  - _index_clearcaches
  - index_clearcaches
  - index_dealloc
  - parse_index2
  - revlog_module_init
  source_file: /src/mercurial/mercurial/cext/revlog.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: children[16]
        type: int
      item_type: struct
      name: nodetreenode
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: abi_version
        type: int
      - name: (*index_length)(const indexObject *)
        type: Py_ssize_t
      - name: '*(*index_node)(indexObject *, Py_ssize_t)'
        type: char
      - name: (*fast_rank)(indexObject *, Py_ssize_t)
        type: int
      - name: (*index_parents)(PyObject *, int, int *)
        type: int
      item_type: struct
      name: Revlog_CAPI
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: '*index'
        type: indexObject
      - name: '*nodes'
        type: nodetreenode
      - name: nodelen
        type: Py_ssize_t
      - name: length
        type: size_t
      - name: capacity
        type: size_t
      - name: depth
        type: int
      - name: splits
        type: int
      item_type: struct
      name: nodetree
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: nodetree
        type: PyObject_HEAD
      item_type: struct
      name: nodetreeObject
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: '*data'
        type: PyObject_HEAD
      - name: nodelen
        type: Py_ssize_t
      - name: '*nullentry'
        type: PyObject
      - name: buf
        type: Py_buffer
      - name: '**offsets'
        type: char
      - name: length
        type: Py_ssize_t
      - name: new_length
        type: unsigned
      - name: added_length
        type: unsigned
      - name: bundle_repo_start
        type: Py_ssize_t
      - name: bundle_repo_active
        type: bool
      - name: '*added'
        type: char
      - name: '*headrevs'
        type: PyObject
      - name: '*filteredrevs'
        type: PyObject
      - name: nt
        type: nodetree
      - name: ntinitialized
        type: int
      - name: ntrev
        type: int
      - name: ntlookups
        type: int
      - name: ntmisses
        type: int
      - name: inlined
        type: int
      - name: uses_generaldelta
        type: int
      - name: uses_delta_info
        type: int
      - name: entry_size
        type: long
      - name: rust_ext_compat
        type: long
      - name: format_version
        type: long
      item_type: struct
      name: indexObjectStruct
      pos:
        line_end: 102
        line_start: 72
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: max
        type: int
      - name: len
        type: int
      - name: '*body'
        type: char
      - name: sum
        type: int
      item_type: struct
      name: rgs
      pos:
        line_end: 1852
        line_start: 1847
        source_file: /src/mercurial/mercurial/cext/revlog.c
    - fields:
      - name: size
        type: int64_t
      - name: idx
        type: Py_ssize_t
      item_type: struct
      name: Gap
      pos:
        line_end: 2445
        line_start: 2442
        source_file: /src/mercurial/mercurial/cext/revlog.c
    typedefs:
    - item_type: typedef
      name: indexObject
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/mercurial/mercurial/cext/revlog.c
      type: indexObjectStruct
    - item_type: typedef
      name: bitmask
      pos:
        line_end: 3253
        line_start: 3253
        source_file: /src/mercurial/mercurial/cext/revlog.c
      type: uint64_t
    union: []
- function_names:
  - b85prep
  - b85encode
  - b85decode
  - PyInit_base85
  source_file: /src/mercurial/mercurial/cext/base85.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blocks
  - _inner_bdiff
  - fixws
  - sliceintolist
  - splitnewlines
  - hunk_consumer
  - xdiffblocks
  - bdiff
  - storage_diff
  - PyInit_bdiff
  source_file: /src/mercurial/mercurial/cext/bdiff.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hexdigit
  source_file: /src/mercurial/mercurial/cext/charencode.h
  types:
    enum:
    - enumerators:
      - name: NORMCASE_LOWER
        value: '-1'
      - name: NORMCASE_UPPER
        value: '1'
      - name: NORMCASE_OTHER
        value: '0'
      item_type: enum
      name: normcase_spec
      pos:
        line_end: 18
        line_start: 14
        source_file: /src/mercurial/mercurial/cext/charencode.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - unhexlify
  - isasciistr
  - _asciitransform
  - asciilower
  - asciiupper
  - make_file_foldmap
  - jsonescapelen
  - jsonescapechar2
  - encodejsonescape
  - jsonescapeu8fast
  source_file: /src/mercurial/mercurial/cext/charencode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HgRevlogIndex_Check
  source_file: /src/mercurial/mercurial/cext/revlog.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - inset
  - charcopy
  - memcopy
  - hexencode
  - escape3
  - _encodedir
  - encodedir
  - _encode
  - basicencode
  - _lowerencode
  - lowerencode
  - auxencode
  - hashmangle
  - sha1hash
  - hashencode
  - pathencode
  source_file: /src/mercurial/mercurial/cext/pathencode.c
  types:
    enum:
    - enumerators:
      - name: A
      - name: COMLPTn
      - name: LDOT
      - name: HGDI
      - name: P
      - name: H
      - name: DEFAULT
      - name: THIRD
      - name: C
      - name: L
      - name: AU
      - name: N
      - name: PR
      - name: SPACE
      - name: DOT
      - name: START
      - name: CO
      - name: COMLPT
      - name: LP
      - name: NU
      item_type: enum
      name: path_state
      pos:
        line_end: 49
        line_start: 28
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    - enumerators:
      - name: DDOT
      - name: DH
      - name: DHGDI
      - name: DDEFAULT
      item_type: enum
      name: dir_state
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/mercurial/mercurial/cext/pathencode.c
    preproc_defs:
    - item_type: preproc_def
      name: MAXENCODE
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/mercurial/mercurial/cext/pathencode.c
      type_or_value: 4096 * 4
    structs: []
    typedefs: []
    union: []
- function_names:
  - PYLONG_VALUE
  - PYLONG_VALUE
  - _finddir
  - _addpath
  - _delpath
  - dirs_fromdict
  - dirs_fromiter
  - dirs_init
  - dirs_addpath
  - dirs_delpath
  - dirs_contains
  - dirs_dealloc
  - dirs_iter
  - dirs_module_init
  source_file: /src/mercurial/mercurial/cext/dirs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DIRS_DEPTH
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/mercurial/mercurial/cext/dirs.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: '*dict'
        type: PyObject_HEAD
      item_type: struct
      name: dirsObject
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/mercurial/mercurial/cext/dirs.c
    typedefs: []
    union: []
- function_names:
  - dirstate_tuple_check
  - MIN
  - pylong_to_long
  source_file: /src/mercurial/mercurial/cext/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mercurial/mercurial/cext/util.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/mercurial/mercurial/cext/util.h
      type_or_value: '0'
    structs:
    - fields:
      - name: flags
        type: PyObject_HEAD
      - name: mode
        type: int
      - name: size
        type: int
      - name: mtime_s
        type: int
      - name: mtime_ns
        type: int
      item_type: struct
      name: dirstateItemObject
      pos:
        line_end: 20
        line_start: 13
        source_file: /src/mercurial/mercurial/cext/util.h
    typedefs:
    - item_type: typedef
      name: bool
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/mercurial/mercurial/cext/util.h
      type: unsigned char
    union: []
- function_names:
  - setpyerr
  - cpygetitem
  - patches
  - patchedsize
  - PyInit_mpatch
  source_file: /src/mercurial/mercurial/cext/mpatch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pathlen
  - nodeof
  - hashflags
  - realloc_if_full
  - find_lines
  - lazymanifest_init_early
  - lazymanifest_init
  - switch
  - lazymanifest_dealloc
  - lmiter_dealloc
  - lmiter_nextline
  - lmiter_iterentriesnext
  - lmiter_iterkeysnext
  - lazymanifest_getentriesiter
  - lazymanifest_getkeysiter
  - lazymanifest_size
  - linecmp
  - lazymanifest_getitem
  - lazymanifest_delitem
  - internalsetitem
  - lazymanifest_setitem
  - lazymanifest_contains
  - compact
  - lazymanifest_text
  - lazymanifest_copy
  - lazymanifest_filtercopy
  - lazymanifest_diff
  - manifest_module_init
  source_file: /src/mercurial/mercurial/cext/manifest.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_LINES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '100000'
    - item_type: preproc_def
      name: MANIFEST_OOM
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: MANIFEST_NOT_SORTED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: MANIFEST_MALFORMED
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: MANIFEST_BOGUS_FILENAME
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '-4'
    - item_type: preproc_def
      name: MANIFEST_TOO_SHORT_LINE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: '-5'
    - item_type: preproc_def
      name: LAZYMANIFESTENTRIESITERATOR_TPFLAGS
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: Py_TPFLAGS_DEFAULT
    - item_type: preproc_def
      name: LAZYMANIFESTKEYSITERATOR_TPFLAGS
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: Py_TPFLAGS_DEFAULT
    - item_type: preproc_def
      name: LAZYMANIFEST_TPFLAGS
      pos:
        line_end: 948
        line_start: 947
        source_file: /src/mercurial/mercurial/cext/manifest.c
      type_or_value: Py_TPFLAGS_DEFAULT
    structs:
    - fields:
      - name: '*start'
        type: char
      - name: len
        type: Py_ssize_t
      - name: hash_suffix
        type: char
      - name: from_malloc
        type: bool
      - name: deleted
        type: bool
      item_type: struct
      name: line
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/mercurial/mercurial/cext/manifest.c
    - fields:
      - name: '*pydata'
        type: PyObject_HEAD
      - name: nodelen
        type: Py_ssize_t
      - name: '*lines'
        type: line
      - name: numlines
        type: int
      - name: livelines
        type: int
      - name: maxlines
        type: int
      - name: dirty
        type: bool
      item_type: struct
      name: lazymanifest
      pos:
        line_end: 36
        line_start: 27
        source_file: /src/mercurial/mercurial/cext/manifest.c
    - fields:
      - name: '*m'
        type: PyObject_HEAD
      - name: pos
        type: Py_ssize_t
      item_type: struct
      name: lmIter
      pos:
        line_end: 269
        line_start: 266
        source_file: /src/mercurial/mercurial/cext/manifest.c
    typedefs: []
    union: []
- function_names:
  - dict_new_presized
  - dirstate_item_new
  - dirstate_item_dealloc
  - dirstate_item_c_tracked
  - dirstate_item_c_any_tracked
  - dirstate_item_c_added
  - dirstate_item_c_removed
  - dirstate_item_c_modified
  - dirstate_item_c_from_p2
  - dirstate_item_c_v1_state
  - dirstate_item_c_has_fallback_exec
  - dirstate_item_c_has_fallback_symlink
  - dirstate_item_c_v1_mode
  - dirstate_item_c_v1_size
  - dirstate_item_c_v1_mtime
  - dirstate_item_v2_data
  - dirstate_item_mtime_likely_equal_to
  - dirstate_item_from_v1_data
  - dirstate_item_from_v2_meth
  - dirstate_item_set_possibly_dirty
  - dirstate_item_set_clean
  - dirstate_item_set_tracked
  - dirstate_item_set_untracked
  - dirstate_item_drop_merge_data
  - dirstate_item_get_mode
  - dirstate_item_get_size
  - dirstate_item_get_mtime
  - dirstate_item_get_state
  - dirstate_item_get_has_fallback_exec
  - dirstate_item_get_fallback_exec
  - dirstate_item_set_fallback_exec
  - dirstate_item_get_has_fallback_symlink
  - dirstate_item_get_fallback_symlink
  - dirstate_item_set_fallback_symlink
  - dirstate_item_get_tracked
  - dirstate_item_get_p1_tracked
  - dirstate_item_get_added
  - dirstate_item_get_p2_info
  - dirstate_item_get_modified
  - dirstate_item_get_from_p2
  - dirstate_item_get_maybe_clean
  - dirstate_item_get_any_tracked
  - dirstate_item_get_removed
  - parse_dirstate
  - pack_dirstate
  - readshas
  - fm1readmarker
  - fm1readmarkers
  - module_init
  - check_python_version
  - PyInit_parsers
  source_file: /src/mercurial/mercurial/cext/parsers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUMPED_FIX
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/mercurial/mercurial/cext/parsers.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USING_SHA_256
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/mercurial/mercurial/cext/parsers.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FM1_HEADER_SIZE
      pos:
        line_end: 971
        line_start: 970
        source_file: /src/mercurial/mercurial/cext/parsers.c
      type_or_value: (4 + 8 + 2 + 2 + 1 + 1 + 1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - listdir_slot
  - listdir_stat_st_size
  - listdir_stat_new
  - listdir_stat_dealloc
  - listdir_stat_getitem
  - to_python_time
  - make_item
  - _listdir
  - entkind
  - makestat
  - _listdir_stat
  - attrkind
  - _listdir_batch
  - _listdir
  - statfiles
  - getarg0size
  - setprocname
  - describefstype
  - describefstype
  - getfstype
  - getfsmountpoint
  - unblocksignal
  - listdir
  - posixfile
  - isgui
  - _mmap_populate
  - background_mmap_populate
  - PyInit_osutil
  source_file: /src/mercurial/mercurial/cext/osutil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/mercurial/mercurial/cext/osutil.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: LISTDIR_BATCH_SIZE
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/mercurial/mercurial/cext/osutil.c
      type_or_value: '50'
    - item_type: preproc_def
      name: ZFS_SUPER_MAGIC
      pos:
        line_end: 1144
        line_start: 1143
        source_file: /src/mercurial/mercurial/cext/osutil.c
      type_or_value: 0x2fc12fc1l
    structs:
    - fields:
      - name: st_dev
        type: int
      - name: st_mode
        type: int
      - name: st_nlink
        type: int
      - name: st_size
        type: __int64
      - name: st_mtime
        type: int
      - name: st_ctime
        type: int
      item_type: struct
      name: hg_stat
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/mercurial/mercurial/cext/osutil.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: st
        type: hg_stat
      item_type: struct
      name: listdir_stat
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/mercurial/mercurial/cext/osutil.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: st
        type: stat
      item_type: struct
      name: listdir_stat
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/mercurial/mercurial/cext/osutil.c
    - fields:
      - name: length
        type: u_int32_t
      - name: name
        type: attrreference_t
      - name: obj_type
        type: fsobj_type_t
      - name: mtime
        type: struct timespec
      - name: size
        type: off_t
      item_type: struct
      name: attrbuf_entry
      pos:
        line_end: 457
        line_start: 444
        source_file: /src/mercurial/mercurial/cext/osutil.c
    - fields:
      - name: '* mmap_address'
        type: void
      - name: length
        type: size_t
      item_type: struct
      name: mmap_info
      pos:
        line_end: 1353
        line_start: 1350
        source_file: /src/mercurial/mercurial/cext/osutil.c
    typedefs: []
    union: []
- function_names:
  - PY23
  - PY23
  - pysha1ctx_init
  - pysha1ctx_dealloc
  - pysha1ctx_update
  - finalize
  - pysha1ctx_digest
  - pysha1ctx_hexdigest
  - pysha1ctx_copy
  - module_init
  - PyInit_sha1dc
  - initsha1dc
  source_file: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: SHA1_CTX
        type: PyObject_HEAD
      item_type: struct
      name: pysha1ctx
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/cext.c
    typedefs: []
    union: []
- function_names:
  - CHECK_DVMASK
  source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/ubc_check.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DVMASKSIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 39
        line_start: 39
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/ubc_check.h
    typedefs:
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/ubc_check.h
      type: unsigned __int32
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 61
        line_start: 45
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.h
    typedefs:
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.h
      type: unsigned __int32
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.h
      type: unsigned __int64
    - item_type: typedef
      name: (*sha1_recompression_type)(uint32_t*, uint32_t*, const uint32_t*, const
        uint32_t*)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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: 42
        line_start: 42
        source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/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/mercurial/mercurial/thirdparty/sha1dc/lib/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/mercurial/mercurial/thirdparty/sha1dc/lib/sha1.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ubc_check
  source_file: /src/mercurial/mercurial/thirdparty/sha1dc/lib/ubc_check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xdl_bogosqrt
  - xdl_mmfile_first
  - xdl_mmfile_size
  - xdl_cha_init
  - xdl_cha_free
  - xdl_cha_alloc
  - xdl_guess_lines
  - xdl_recmatch
  - xdl_hash_record
  - xdl_hashbits
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XDL_MIN
  - XDL_MAX
  - XDL_ABS
  - XDL_ISDIGIT
  - XDL_ISSPACE
  - XDL_ADDBITS
  - XDL_MASKBITS
  - XDL_HASHLONG
  - XDL_PTRFREE
  - XDL_LE32_PUT
  - XDL_LE32_GET
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xmacros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xutils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - xdl_init_classifier
  - xdl_free_classifier
  - xdl_classify_record
  - xdl_trim_files
  - xdl_prepare_ctx
  - xdl_free_ctx
  - xdl_prepare_env
  - xdl_free_env
  - xdl_clean_mmatch
  - xdl_cleanup_records
  - xdl_trim_ends
  - xdl_optimize_ctxs
  source_file: /src/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/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/mercurial/mercurial/thirdparty/xdiff/xprepare.c
      type_or_value: '256'
    - item_type: preproc_def
      name: TRIM_RESERVED_LINES
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
      type_or_value: '100'
    structs:
    - fields:
      - name: '*next'
        type: struct s_xdlclass
      - name: ha
        type: uint64_t
      - name: '*line'
        type: char
      - name: size
        type: int64_t
      - name: idx
        type: int64_t
      - name: len1
        type: int64_t
      item_type: struct
      name: s_xdlclass
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    - fields:
      - name: hbits
        type: unsigned int
      - name: hsize
        type: int64_t
      - name: '**rchash'
        type: xdlclass_t
      - name: ncha
        type: chastore_t
      - name: '**rcrecs'
        type: xdlclass_t
      - name: alloc
        type: int64_t
      - name: count
        type: int64_t
      - name: flags
        type: int64_t
      item_type: struct
      name: s_xdlclassifier
      pos:
        line_end: 49
        line_start: 40
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xprepare.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct s_chanode
      - name: icurr
        type: int64_t
      item_type: struct
      name: s_chanode
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
    - fields:
      - name: '*head'
        type: chanode_t
      - name: isize
        type: int64_t
      - name: '*ancur'
        type: chanode_t
      - name: '*sncur'
        type: chanode_t
      - name: scurr
        type: int64_t
      item_type: struct
      name: s_chastore
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
    - fields:
      - name: '*next'
        type: struct s_xrecord
      - name: '*ptr'
        type: char
      - name: size
        type: int64_t
      - name: ha
        type: uint64_t
      item_type: struct
      name: s_xrecord
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
    - fields:
      - name: rcha
        type: chastore_t
      - name: nrec
        type: int64_t
      - name: hbits
        type: unsigned int
      - name: '**rhash'
        type: xrecord_t
      - name: dstart
        type: int64_t
      - name: '**recs'
        type: xrecord_t
      - name: '*rchg'
        type: char
      - name: '*rindex'
        type: int64_t
      - name: nreff
        type: int64_t
      - name: '*ha'
        type: uint64_t
      item_type: struct
      name: s_xdfile
      pos:
        line_end: 92
        line_start: 47
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
    - fields:
      - name: xdf1
        type: xdfile_t
      - name: nprefix
        type: int64_t
      item_type: struct
      name: s_xdfenv
      pos:
        line_end: 100
        line_start: 94
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xtypes.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xinclude.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nrec
        type: int64_t
      - name: '*ha'
        type: uint64_t
      - name: '*rindex'
        type: int64_t
      - name: '*rchg'
        type: char
      item_type: struct
      name: s_diffdata
      pos:
        line_end: 31
        line_start: 26
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.h
    - fields:
      - name: mxcost
        type: int64_t
      - name: snake_cnt
        type: int64_t
      - name: heur_min
        type: int64_t
      item_type: struct
      name: s_xdalgoenv
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.h
    - fields:
      - name: '*next'
        type: struct s_xdchange
      - name: i1
        type: int64_t
      - name: chg1
        type: int64_t
      - name: ignore
        type: int
      item_type: struct
      name: s_xdchange
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.h
    typedefs: []
    union: []
- function_names:
  - xdl_malloc
  - xdl_free
  - xdl_realloc
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XDF_NEED_MINIMAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: XDF_INDENT_HEURISTIC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type_or_value: (1 << 23)
    - item_type: preproc_def
      name: XDL_EMIT_BDIFFHUNK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type_or_value: (1 << 4)
    structs:
    - fields:
      - name: '*ptr'
        type: char
      - name: size
        type: int64_t
      item_type: struct
      name: s_mmfile
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    - fields:
      - name: '*ptr'
        type: char
      - name: size
        type: int64_t
      item_type: struct
      name: s_mmbuffer
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    - fields:
      - name: flags
        type: uint64_t
      item_type: struct
      name: s_xpparam
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    - fields:
      - name: '*priv'
        type: void
      item_type: struct
      name: s_xdemitcb
      pos:
        line_end: 64
        line_start: 62
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    - fields:
      - name: flags
        type: uint64_t
      - name: hunk_func
        type: xdl_emit_hunk_consume_func_t
      item_type: struct
      name: s_xdemitconf
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
    typedefs:
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type: long long
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type: unsigned long long
    - item_type: typedef
      name: "(*xdl_emit_hunk_consume_func_t)(int64_t start_a, int64_t count_a,\n\t\t\t\t\t
        \   int64_t start_b, int64_t count_b,\n\t\t\t\t\t    void *cb_data)"
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiff.h
      type: int
    union: []
- function_names:
  - 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_bug
  - xdl_change_compact
  - xdl_build_script
  - xdl_free_script
  - xdl_get_hunk
  - xdl_call_hunk_func
  - xdl_diff
  source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XDL_MAX_COST_MIN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XDL_HEUR_MIN_COST
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XDL_LINE_MAX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/mercurial/mercurial/thirdparty/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: 30
        line_start: 29
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '20'
    - item_type: preproc_def
      name: XDL_K_HEUR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '4'
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: MAX_INDENT
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_BLANKS
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '20'
    - item_type: preproc_def
      name: START_OF_FILE_PENALTY
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '1'
    - item_type: preproc_def
      name: END_OF_FILE_PENALTY
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '21'
    - item_type: preproc_def
      name: TOTAL_BLANK_WEIGHT
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: (-30)
    - item_type: preproc_def
      name: POST_BLANK_WEIGHT
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RELATIVE_INDENT_PENALTY
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: (-4)
    - item_type: preproc_def
      name: RELATIVE_INDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '10'
    - item_type: preproc_def
      name: RELATIVE_OUTDENT_PENALTY
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '24'
    - item_type: preproc_def
      name: RELATIVE_OUTDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '17'
    - item_type: preproc_def
      name: RELATIVE_DEDENT_PENALTY
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '23'
    - item_type: preproc_def
      name: RELATIVE_DEDENT_WITH_BLANK_PENALTY
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '17'
    - item_type: preproc_def
      name: INDENT_WEIGHT
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '60'
    - item_type: preproc_def
      name: MAX_BORING
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
      type_or_value: '100'
    structs:
    - fields:
      - name: i1
        type: int64_t
      - name: min_lo
        type: int
      item_type: struct
      name: s_xdpsplit
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/mercurial/mercurial/thirdparty/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: 485
        line_start: 452
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    - fields:
      - name: effective_indent
        type: int
      - name: penalty
        type: int
      item_type: struct
      name: split_score
      pos:
        line_end: 493
        line_start: 487
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    - fields:
      - name: start
        type: int64_t
      - name: end
        type: int64_t
      item_type: struct
      name: xdlgroup
      pos:
        line_end: 714
        line_start: 702
        source_file: /src/mercurial/mercurial/thirdparty/xdiff/xdiffi.c
    typedefs: []
    union: []
- function_names:
  - INT_SIZE
  - bserobj_tuple_length
  - bserobj_tuple_item
  - bserobj_dealloc
  - bserobj_getattrro
  - next_power_2
  - bser_append
  - bser_init
  - bser_dtor
  - bser_long
  - bser_bytestring
  - bser_recursive
  - bser_dumps
  - bunser_int
  - bunser_bytestring
  - bunser_array
  - bunser_object
  - bunser_template
  - bser_loads_recursive
  - _pdu_info_helper
  - pdu_info_helper
  - bser_pdu_info
  - bser_pdu_len
  - bser_loads
  - bser_load
  - PyInit_bser
  - initbser
  source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: __inline
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: 4294967295U
    - item_type: preproc_def
      name: BSER_ARRAY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x00'
    - item_type: preproc_def
      name: BSER_OBJECT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: BSER_BYTESTRING
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: BSER_INT8
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x03'
    - item_type: preproc_def
      name: BSER_INT16
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BSER_INT32
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x05'
    - item_type: preproc_def
      name: BSER_INT64
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x06'
    - item_type: preproc_def
      name: BSER_REAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x07'
    - item_type: preproc_def
      name: BSER_TRUE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: BSER_FALSE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x09'
    - item_type: preproc_def
      name: BSER_NULL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: BSER_TEMPLATE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: BSER_SKIP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: BSER_UTF8STRING
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: EMPTY_HEADER
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '"\x00\x01\x05\x00\x00\x00\x00"'
    - item_type: preproc_def
      name: EMPTY_HEADER_V2
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type_or_value: '"\x00\x02\x00\x00\x00\x00\x05\x00\x00\x00\x00"'
    structs:
    - fields:
      - name: '*keys'
        type: PyObject_HEAD
      - name: '*values'
        type: PyObject
      item_type: struct
      name: bserObject
      pos:
        line_end: 90
        line_start: 86
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    - fields:
      - name: '* value_encoding'
        type: char
      - name: '* value_errors'
        type: char
      - name: bser_version
        type: uint32_t
      - name: bser_capabilities
        type: uint32_t
      item_type: struct
      name: loads_ctx
      pos:
        line_end: 262
        line_start: 256
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    - fields:
      - name: '* buf'
        type: char
      - name: wpos
        type: int
      - name: bser_version
        type: uint32_t
      - name: capabilities
        type: uint32_t
      item_type: struct
      name: bser_buffer
      pos:
        line_end: 289
        line_start: 284
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
    typedefs:
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: __int8
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: __int16
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: __int32
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: __int64
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: unsigned __int8
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: unsigned __int16
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: unsigned __int32
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: unsigned __int64
    - item_type: typedef
      name: bser_t
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/mercurial/hgext/fsmonitor/pywatchman/bser.c
      type: bser_buffer
    union: []
- function_names:
  - set_parameter
  - TRY_SET_PARAMETER
  - TRY_COPY_PARAMETER
  - set_parameters
  - reset_params
  - TRY_GET_PARAMETER
  - to_cparams
  - ZstdCompressionParameters_init
  - CompressionParameters_from_level
  - ZstdCompressionParameters_estimated_compression_context_size
  - ZstdCompressionParameters_dealloc
  - PARAM_GETTER
  - GET_SET_ENTRY
  - compressionparams_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionparams.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZstdCompressionObj_dealloc
  - ZstdCompressionObj_compress
  - if
  - ZstdCompressionObj_flush
  - if
  - compressobj_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressobj.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZstdDecompressionWriter_dealloc
  - ZstdDecompressionWriter_enter
  - ZstdDecompressionWriter_exit
  - ZstdDecompressionWriter_memory_size
  - ZstdDecompressionWriter_write
  - if
  - ZstdDecompressionWriter_close
  - ZstdDecompressionWriter_fileno
  - ZstdDecompressionWriter_flush
  - ZstdDecompressionWriter_iter
  - ZstdDecompressionWriter_iternext
  - ZstdDecompressionWriter_false
  - ZstdDecompressionWriter_true
  - ZstdDecompressionWriter_unsupported
  - decompressionwriter_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionwriter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - estimate_decompression_context_size
  - frame_content_size
  - frame_header_size
  - zstd_module_init
  - PyMODINIT_FUNC::PyInit_zstd
  - cpu_count
  - roundpow2
  - safe_pybytes_resize
  - set_io_unsupported_operation
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYTHON_ZSTD_VISIBILITY
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/backend_c.c
      type_or_value: __attribute__((visibility("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - ensure_dctx
  - Decompressor_init
  - Decompressor_dealloc
  - Decompressor_memory_size
  - Decompressor_copy_stream
  - if
  - Decompressor_decompress
  - if
  - if
  - Decompressor_decompressobj
  - Decompressor_read_to_iter
  - Decompressor_stream_reader
  - Decompressor_stream_writer
  - Decompressor_decompress_content_dict_chain
  - if
  - if
  - if
  - if
  - if
  - if
  - if
  - if
  - decompress_worker
  - decompress_from_framesources
  - Decompressor_multi_decompress_to_buffer
  - decompressor_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*sourceData'
        type: void
      - name: sourceSize
        type: size_t
      - name: destSize
        type: size_t
      item_type: struct
      name: FramePointer
      pos:
        line_end: 895
        line_start: 891
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - fields:
      - name: '*frames'
        type: FramePointer
      - name: framesSize
        type: Py_ssize_t
      - name: compressedSize
        type: unsigned long long
      item_type: struct
      name: FrameSources
      pos:
        line_end: 901
        line_start: 897
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - fields:
      - name: '*dest'
        type: void
      - name: destSize
        type: Py_ssize_t
      - name: '*segments'
        type: BufferSegment
      - name: segmentsSize
        type: Py_ssize_t
      item_type: struct
      name: DecompressorDestBuffer
      pos:
        line_end: 908
        line_start: 903
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    - fields:
      - name: '*framePointers'
        type: FramePointer
      - name: startOffset
        type: Py_ssize_t
      - name: endOffset
        type: Py_ssize_t
      - name: totalSourceSize
        type: unsigned long long
      - name: '*dctx'
        type: ZSTD_DCtx
      - name: requireOutputSizes
        type: int
      - name: '*destBuffers'
        type: DecompressorDestBuffer
      - name: destCount
        type: Py_ssize_t
      - name: errorOffset
        type: Py_ssize_t
      - name: error
        type: DecompressorWorkerError
      - name: zresult
        type: size_t
      item_type: struct
      name: DecompressorWorkerState
      pos:
        line_end: 940
        line_start: 918
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressor.c
    typedefs: []
    union: []
- function_names:
  - get_frame_parameters
  - FrameParameters_dealloc
  - frameparams_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/frameparams.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compressionreader_dealloc
  - compressionreader_enter
  - compressionreader_exit
  - compressionreader_readable
  - compressionreader_writable
  - compressionreader_seekable
  - compressionreader_readline
  - compressionreader_readlines
  - compressionreader_write
  - compressionreader_writelines
  - compressionreader_isatty
  - compressionreader_flush
  - compressionreader_close
  - compressionreader_tell
  - read_compressor_input
  - compress_input
  - compressionreader_read
  - compressionreader_read1
  - compressionreader_readall
  - compressionreader_readinto
  - compressionreader_readinto1
  - compressionreader_iter
  - compressionreader_iternext
  - compressionreader_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionreader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DecompressionObj_dealloc
  - DecompressionObj_decompress
  - if
  - DecompressionObj_flush
  - DecompressionObj_unused_data
  - DecompressionObj_unconsumed_tail
  - DecompressionObj_eof
  - decompressobj_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressobj.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyObject_CAST
  - _PyObject_CAST_CONST
  - _Py_NewRef
  - Py_NewRef
  - _Py_XNewRef
  - Py_XNewRef
  - _Py_SET_REFCNT
  - Py_SET_REFCNT
  - _Py_SET_TYPE
  - Py_SET_TYPE
  - _Py_SET_SIZE
  - Py_SET_SIZE
  - PyFrame_GetCode
  - _PyFrame_GetCodeBorrow
  - PyFrame_GetBack
  - _PyFrame_GetBackBorrow
  - PyThreadState_GetInterpreter
  - PyThreadState_GetFrame
  - _PyThreadState_GetFrameBorrow
  - PyInterpreterState_Get
  - PyThreadState_GetID
  - PyObject_CallNoArgs
  - PyObject_CallOneArg
  - PyModule_AddObjectRef
  - PyModule_AddType
  - PyObject_GC_IsTracked
  - PyObject_GC_IsFinalized
  - _Py_IS_TYPE
  - Py_IS_TYPE
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/pythoncapi_compat.h
      type_or_value: __inline
    structs: []
    typedefs: []
    union: []
- function_names:
  - min
  - ZstdDecompressorIterator_dealloc
  - ZstdDecompressorIterator_iter
  - read_decompressor_iterator
  - ZstdDecompressorIterator_iternext
  - decompressoriterator_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressoriterator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYTHON_ZSTANDARD_VERSION
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
      type_or_value: '"0.23.0"'
    structs:
    - fields:
      - name: '*params'
        type: PyObject_HEAD
      item_type: struct
      name: ZstdCompressionParametersObject
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: frameContentSize
        type: PyObject_HEAD unsigned long long
      - name: windowSize
        type: unsigned long long
      - name: dictID
        type: unsigned
      - name: checksumFlag
        type: char
      item_type: struct
      name: FrameParametersObject
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*dictData'
        type: PyObject_HEAD
      - name: dictSize
        type: size_t
      - name: dictType
        type: ZSTD_dictContentType_e
      - name: k
        type: unsigned
      - name: d
        type: unsigned
      - name: '*cdict'
        type: ZSTD_CDict
      - name: '*ddict'
        type: ZSTD_DDict
      item_type: struct
      name: ZstdCompressionDict
      pos:
        line_end: 87
        line_start: 70
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: threads
        type: "PyObject_HEAD\n\n        /* Number of threads to use for operations.
          */\n        unsigned"
      - name: '*dict'
        type: ZstdCompressionDict
      - name: '*cctx'
        type: ZSTD_CCtx
      - name: '*params'
        type: ZSTD_CCtx_params
      item_type: struct
      name: ZstdCompressor
      pos:
        line_end: 106
        line_start: 94
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*compressor'
        type: PyObject_HEAD
      - name: output
        type: ZSTD_outBuffer
      - name: finished
        type: int
      item_type: struct
      name: ZstdCompressionObj
      pos:
        line_end: 116
        line_start: 110
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*compressor'
        type: PyObject_HEAD
      - name: '*writer'
        type: PyObject
      - name: output
        type: ZSTD_outBuffer
      - name: outSize
        type: size_t
      - name: entered
        type: int
      - name: closing
        type: int
      - name: closed
        type: char
      - name: writeReturnRead
        type: int
      - name: closefd
        type: int
      - name: bytesCompressed
        type: unsigned long long
      item_type: struct
      name: ZstdCompressionWriter
      pos:
        line_end: 133
        line_start: 120
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*compressor'
        type: PyObject_HEAD
      - name: '*reader'
        type: PyObject
      - name: buffer
        type: Py_buffer
      - name: bufferOffset
        type: Py_ssize_t
      - name: inSize
        type: size_t
      - name: outSize
        type: size_t
      - name: input
        type: ZSTD_inBuffer
      - name: output
        type: ZSTD_outBuffer
      - name: finishedOutput
        type: int
      - name: finishedInput
        type: int
      - name: '*readResult'
        type: PyObject
      item_type: struct
      name: ZstdCompressorIterator
      pos:
        line_end: 152
        line_start: 137
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*compressor'
        type: PyObject_HEAD
      - name: '*reader'
        type: PyObject
      - name: buffer
        type: Py_buffer
      - name: readSize
        type: size_t
      - name: closefd
        type: int
      - name: entered
        type: int
      - name: closed
        type: char
      - name: bytesCompressed
        type: unsigned long long
      - name: input
        type: ZSTD_inBuffer
      - name: output
        type: ZSTD_outBuffer
      - name: finishedInput
        type: int
      - name: finishedOutput
        type: int
      - name: '*readResult'
        type: PyObject
      item_type: struct
      name: ZstdCompressionReader
      pos:
        line_end: 174
        line_start: 156
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*compressor'
        type: PyObject_HEAD
      - name: input
        type: ZSTD_inBuffer
      - name: output
        type: ZSTD_outBuffer
      - name: inBuffer
        type: Py_buffer
      - name: finished
        type: int
      - name: chunkSize
        type: size_t
      item_type: struct
      name: ZstdCompressionChunker
      pos:
        line_end: 187
        line_start: 178
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*chunker'
        type: PyObject_HEAD
      - name: mode
        type: CompressionChunkerMode
      item_type: struct
      name: ZstdCompressionChunkerIterator
      pos:
        line_end: 202
        line_start: 197
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*dctx'
        type: PyObject_HEAD
      - name: '*dict'
        type: ZstdCompressionDict
      - name: maxWindowSize
        type: size_t
      - name: format
        type: ZSTD_format_e
      item_type: struct
      name: ZstdDecompressor
      pos:
        line_end: 213
        line_start: 206
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*decompressor'
        type: PyObject_HEAD
      - name: outSize
        type: size_t
      - name: readAcrossFrames
        type: int
      - name: finished
        type: int
      - name: '*unused_data'
        type: PyObject
      item_type: struct
      name: ZstdDecompressionObj
      pos:
        line_end: 225
        line_start: 217
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*decompressor'
        type: PyObject_HEAD
      - name: '*reader'
        type: PyObject
      - name: readSize
        type: size_t
      - name: readAcrossFrames
        type: int
      - name: buffer
        type: Py_buffer
      - name: closefd
        type: int
      - name: entered
        type: int
      - name: closed
        type: char
      - name: bytesDecompressed
        type: unsigned long long
      - name: input
        type: ZSTD_inBuffer
      - name: '*readResult'
        type: PyObject
      - name: finishedInput
        type: int
      - name: finishedOutput
        type: int
      item_type: struct
      name: ZstdDecompressionReader
      pos:
        line_end: 263
        line_start: 229
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*decompressor'
        type: PyObject_HEAD
      - name: '*writer'
        type: PyObject
      - name: outSize
        type: size_t
      - name: entered
        type: int
      - name: closing
        type: int
      - name: closed
        type: char
      - name: writeReturnRead
        type: int
      - name: closefd
        type: int
      item_type: struct
      name: ZstdDecompressionWriter
      pos:
        line_end: 278
        line_start: 267
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*decompressor'
        type: PyObject_HEAD
      - name: '*reader'
        type: PyObject
      - name: buffer
        type: Py_buffer
      - name: bufferOffset
        type: Py_ssize_t
      - name: inSize
        type: size_t
      - name: outSize
        type: size_t
      - name: skipBytes
        type: size_t
      - name: input
        type: ZSTD_inBuffer
      - name: output
        type: ZSTD_outBuffer
      - name: readCount
        type: Py_ssize_t
      - name: finishedInput
        type: int
      - name: finishedOutput
        type: int
      item_type: struct
      name: ZstdDecompressorIterator
      pos:
        line_end: 297
        line_start: 282
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: errored
        type: int
      - name: '*chunk'
        type: PyObject
      item_type: struct
      name: DecompressorIteratorResult
      pos:
        line_end: 304
        line_start: 301
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: offset
        type: unsigned long long
      - name: length
        type: unsigned long long
      item_type: struct
      name: BufferSegment
      pos:
        line_end: 312
        line_start: 306
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*parent'
        type: PyObject_HEAD
      - name: '*segments'
        type: BufferSegment
      - name: segmentCount
        type: Py_ssize_t
      item_type: struct
      name: ZstdBufferSegments
      pos:
        line_end: 320
        line_start: 314
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '*parent'
        type: PyObject_HEAD
      - name: '*data'
        type: void
      - name: dataSize
        type: Py_ssize_t
      - name: offset
        type: unsigned long long
      item_type: struct
      name: ZstdBufferSegment
      pos:
        line_end: 331
        line_start: 324
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: Py_buffer
        type: PyObject_HEAD
      - name: '*data'
        type: void
      - name: dataSize
        type: unsigned long long
      - name: '*segments'
        type: BufferSegment
      - name: segmentCount
        type: Py_ssize_t
      - name: useFree
        type: int
      item_type: struct
      name: ZstdBufferWithSegments
      pos:
        line_end: 344
        line_start: 335
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    - fields:
      - name: '**buffers'
        type: PyObject_HEAD
      - name: bufferCount
        type: Py_ssize_t
      - name: '*firstElements'
        type: Py_ssize_t
      item_type: struct
      name: ZstdBufferWithSegmentsCollection
      pos:
        line_end: 367
        line_start: 356
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/python-zstandard.h
    typedefs: []
    union: []
- function_names:
  - setup_cctx
  - frame_progression
  - ZstdCompressor_init
  - ZstdCompressor_dealloc
  - ZstdCompressor_memory_size
  - ZstdCompressor_frame_progression
  - ZstdCompressor_copy_stream
  - if
  - if
  - ZstdCompressor_stream_reader
  - ZstdCompressor_compress
  - if
  - if
  - ZstdCompressor_compressobj
  - ZstdCompressor_read_to_iter
  - ZstdCompressor_stream_writer
  - ZstdCompressor_chunker
  - compress_worker
  - compress_from_datasources
  - ZstdCompressor_multi_compress_to_buffer
  - compressor_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*sourceData'
        type: void
      - name: sourceSize
        type: size_t
      item_type: struct
      name: DataSource
      pos:
        line_end: 807
        line_start: 804
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - fields:
      - name: '*sources'
        type: DataSource
      - name: sourcesSize
        type: Py_ssize_t
      - name: totalSourceSize
        type: unsigned long long
      item_type: struct
      name: DataSources
      pos:
        line_end: 813
        line_start: 809
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - fields:
      - name: '*dest'
        type: void
      - name: destSize
        type: Py_ssize_t
      - name: '*segments'
        type: BufferSegment
      - name: segmentsSize
        type: Py_ssize_t
      item_type: struct
      name: CompressorDestBuffer
      pos:
        line_end: 820
        line_start: 815
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    - fields:
      - name: '*cctx'
        type: ZSTD_CCtx
      - name: '*sources'
        type: DataSource
      - name: sourcesSize
        type: Py_ssize_t
      - name: startOffset
        type: Py_ssize_t
      - name: endOffset
        type: Py_ssize_t
      - name: totalSourceSize
        type: unsigned long long
      - name: '*destBuffers'
        type: CompressorDestBuffer
      - name: destCount
        type: Py_ssize_t
      - name: error
        type: CompressorWorkerError
      - name: zresult
        type: size_t
      - name: errorOffset
        type: Py_ssize_t
      item_type: struct
      name: CompressorWorkerState
      pos:
        line_end: 852
        line_start: 833
        source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressor.c
    typedefs: []
    union: []
- function_names:
  - decompressionreader_dealloc
  - decompressionreader_enter
  - decompressionreader_exit
  - decompressionreader_readable
  - decompressionreader_writable
  - decompressionreader_seekable
  - decompressionreader_close
  - decompressionreader_flush
  - decompressionreader_isatty
  - read_decompressor_input
  - decompress_input
  - decompressionreader_read
  - decompressionreader_read1
  - decompressionreader_readinto
  - decompressionreader_readinto1
  - decompressionreader_readall
  - decompressionreader_readline
  - decompressionreader_readlines
  - decompressionreader_seek
  - decompressionreader_tell
  - decompressionreader_write
  - decompressionreader_writelines
  - decompressionreader_iter
  - decompressionreader_iternext
  - decompressionreader_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/decompressionreader.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - train_dictionary
  - if
  - ensure_ddict
  - ZstdCompressionDict_init
  - ZstdCompressionDict_dealloc
  - ZstdCompressionDict_precompute_compress
  - ZstdCompressionDict_dict_id
  - ZstdCompressionDict_as_bytes
  - ZstdCompressionDict_length
  - compressiondict_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressiondict.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZstdCompressionChunkerIterator_dealloc
  - ZstdCompressionChunkerIterator_iter
  - ZstdCompressionChunkerIterator_iternext
  - if
  - ZstdCompressionChunker_dealloc
  - ZstdCompressionChunker_compress
  - ZstdCompressionChunker_finish
  - ZstdCompressionChunker_flush
  - compressionchunker_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionchunker.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZstdCompressionWriter_dealloc
  - ZstdCompressionWriter_enter
  - ZstdCompressionWriter_exit
  - ZstdCompressionWriter_memory_size
  - ZstdCompressionWriter_write
  - if
  - ZstdCompressionWriter_flush
  - if
  - ZstdCompressionWriter_close
  - ZstdCompressionWriter_fileno
  - ZstdCompressionWriter_tell
  - ZstdCompressionWriter_writelines
  - ZstdCompressionWriter_iter
  - ZstdCompressionWriter_iternext
  - ZstdCompressionWriter_false
  - ZstdCompressionWriter_true
  - ZstdCompressionWriter_unsupported
  - compressionwriter_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressionwriter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - constants_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/constants.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - min
  - ZstdCompressorIterator_dealloc
  - ZstdCompressorIterator_iter
  - ZstdCompressorIterator_iternext
  - compressoriterator_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/compressoriterator.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BufferWithSegments_dealloc
  - BufferWithSegments_init
  - BufferWithSegments_FromMemory
  - BufferWithSegments_length
  - BufferWithSegments_item
  - BufferWithSegments_getbuffer
  - BufferWithSegments_tobytes
  - BufferWithSegments_segments
  - BufferSegments_dealloc
  - BufferSegments_getbuffer
  - BufferSegment_dealloc
  - BufferSegment_length
  - BufferSegment_getbuffer
  - BufferSegment_tobytes
  - BufferWithSegmentsCollection_dealloc
  - BufferWithSegmentsCollection_init
  - BufferWithSegmentsCollection_size
  - BufferWithSegmentsCollection_length
  - BufferWithSegmentsCollection_item
  - bufferutil_module_init
  source_file: /src/mercurial/contrib/python-zstandard/c-ext/bufferutil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZDICTLIB_VISIBLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: ZDICTLIB_VISIBILITY
    - item_type: preproc_def
      name: ZDICTLIB_VISIBLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZDICTLIB_HIDDEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: __declspec(dllexport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: '__declspec(dllimport) ZDICTLIB_VISIBLE '
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: __declspec(dllexport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: __declspec(dllimport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICT_DICTSIZE_MIN
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: '256'
    - item_type: preproc_def
      name: ZDICT_CONTENTSIZE_MIN
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: '128'
    - item_type: preproc_def
      name: ZDICT_GCC_VERSION
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
      type_or_value: (__GNUC__ * 100 + __GNUC_MINOR__)
    structs:
    - fields:
      - name: compressionLevel
        type: int
      - name: notificationLevel
        type: unsigned
      - name: dictID
        type: unsigned
      item_type: struct
      name: ZDICT_params_t
      pos:
        line_end: 224
        line_start: 213
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    - fields:
      - name: k
        type: unsigned
      - name: d
        type: unsigned
      - name: steps
        type: unsigned
      - name: nbThreads
        type: unsigned
      - name: splitPoint
        type: double
      - name: shrinkDict
        type: unsigned
      - name: shrinkDictMaxRegression
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_cover_params_t
      pos:
        line_end: 313
        line_start: 304
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    - fields:
      - name: k
        type: unsigned
      - name: d
        type: unsigned
      - name: f
        type: unsigned
      - name: steps
        type: unsigned
      - name: nbThreads
        type: unsigned
      - name: splitPoint
        type: double
      - name: accel
        type: unsigned
      - name: shrinkDict
        type: unsigned
      - name: shrinkDictMaxRegression
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_fastCover_params_t
      pos:
        line_end: 327
        line_start: 315
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    - fields:
      - name: selectivityLevel
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_legacy_params_t
      pos:
        line_end: 417
        line_start: 414
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zdict.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZSTDERRORLIB_VISIBLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: ZSTDERRORLIB_VISIBILITY
    - item_type: preproc_def
      name: ZSTDERRORLIB_VISIBLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZSTDERRORLIB_HIDDEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: __declspec(dllexport) ZSTDERRORLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: '__declspec(dllimport) ZSTDERRORLIB_VISIBLE '
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd_errors.h
      type_or_value: ZSTDERRORLIB_VISIBLE
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_QUOTE
  - ZSTD_EXPAND_AND_QUOTE
  - ZSTD_FRAMEHEADERSIZE_PREFIX
  - ZSTD_FRAMEHEADERSIZE_MIN
  - ZSTD_DECOMPRESSION_MARGIN
  source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZSTDLIB_VISIBLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTDLIB_VISIBILITY
    - item_type: preproc_def
      name: ZSTDLIB_VISIBLE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZSTDLIB_HIDDEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: __declspec(dllexport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '__declspec(dllimport) ZSTDLIB_VISIBLE '
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTD_VERSION_MAJOR
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_VERSION_MINOR
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ZSTD_VERSION_RELEASE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ZSTD_VERSION_NUMBER
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
    - item_type: preproc_def
      name: ZSTD_LIB_VERSION
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_VERSION_MAJOR.ZSTD_VERSION_MINOR.ZSTD_VERSION_RELEASE
    - item_type: preproc_def
      name: ZSTD_VERSION_STRING
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_EXPAND_AND_QUOTE(ZSTD_LIB_VERSION)
    - item_type: preproc_def
      name: ZSTD_CLEVEL_DEFAULT
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ZSTD_MAGICNUMBER
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0xFD2FB528    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_DICTIONARY
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0xEC30A437    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_SKIPPABLE_START
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0x184D2A50    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_SKIPPABLE_MASK
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0xFFFFFFF0'
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZELOG_MAX
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '17'
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZE_MAX
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (1<<ZSTD_BLOCKSIZELOG_MAX)
    - item_type: preproc_def
      name: ZSTD_CONTENTSIZE_UNKNOWN
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (0ULL - 1)
    - item_type: preproc_def
      name: ZSTD_CONTENTSIZE_ERROR
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (0ULL - 2)
    - item_type: preproc_def
      name: ZSTD_MAX_INPUT_SIZE
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '((sizeof(size_t)==8) ? 0xFF00FF00FF00FF00ULL : 0xFF00FF00U)'
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: 'size_t ZSTD_compressBound(size_t srcSize); '
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: __declspec(dllexport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: __declspec(dllimport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTD_FRAMEHEADERSIZE_MAX
      pos:
        line_end: 1222
        line_start: 1221
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '18   '
    - item_type: preproc_def
      name: ZSTD_SKIPPABLEHEADERSIZE
      pos:
        line_end: 1223
        line_start: 1222
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX_32
      pos:
        line_end: 1226
        line_start: 1225
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '30'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX_64
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '31'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX
      pos:
        line_end: 1228
        line_start: 1227
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '((int)(sizeof(size_t) == 4 ? ZSTD_WINDOWLOG_MAX_32 : ZSTD_WINDOWLOG_MAX_64))'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MIN
      pos:
        line_end: 1229
        line_start: 1228
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '10'
    - item_type: preproc_def
      name: ZSTD_HASHLOG_MAX
      pos:
        line_end: 1230
        line_start: 1229
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '((ZSTD_WINDOWLOG_MAX < 30) ? ZSTD_WINDOWLOG_MAX : 30)'
    - item_type: preproc_def
      name: ZSTD_HASHLOG_MIN
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX_32
      pos:
        line_end: 1232
        line_start: 1231
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '29'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX_64
      pos:
        line_end: 1233
        line_start: 1232
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '30'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX
      pos:
        line_end: 1234
        line_start: 1233
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '((int)(sizeof(size_t) == 4 ? ZSTD_CHAINLOG_MAX_32 : ZSTD_CHAINLOG_MAX_64))'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MIN
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_HASHLOG_MIN
    - item_type: preproc_def
      name: ZSTD_SEARCHLOG_MAX
      pos:
        line_end: 1236
        line_start: 1235
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (ZSTD_WINDOWLOG_MAX-1)
    - item_type: preproc_def
      name: ZSTD_SEARCHLOG_MIN
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_MINMATCH_MAX
      pos:
        line_end: 1238
        line_start: 1237
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '7   '
    - item_type: preproc_def
      name: ZSTD_MINMATCH_MIN
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: ZSTD_TARGETLENGTH_MAX
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_BLOCKSIZE_MAX
    - item_type: preproc_def
      name: ZSTD_TARGETLENGTH_MIN
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: ZSTD_STRATEGY_MIN
      pos:
        line_end: 1242
        line_start: 1241
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_fast
    - item_type: preproc_def
      name: ZSTD_STRATEGY_MAX
      pos:
        line_end: 1243
        line_start: 1242
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_btultra2
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZE_MAX_MIN
      pos:
        line_end: 1244
        line_start: 1243
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '(1 << 10) '
    - item_type: preproc_def
      name: ZSTD_OVERLAPLOG_MIN
      pos:
        line_end: 1247
        line_start: 1246
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_OVERLAPLOG_MAX
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '9'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_LIMIT_DEFAULT
      pos:
        line_end: 1254
        line_start: 1249
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '27   '
    - item_type: preproc_def
      name: ZSTD_LDM_HASHLOG_MIN
      pos:
        line_end: 1258
        line_start: 1257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_HASHLOG_MIN
    - item_type: preproc_def
      name: ZSTD_LDM_HASHLOG_MAX
      pos:
        line_end: 1259
        line_start: 1258
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_HASHLOG_MAX
    - item_type: preproc_def
      name: ZSTD_LDM_MINMATCH_MIN
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ZSTD_LDM_MINMATCH_MAX
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: ZSTD_LDM_BUCKETSIZELOG_MIN
      pos:
        line_end: 1262
        line_start: 1261
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_LDM_BUCKETSIZELOG_MAX
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_LDM_HASHRATELOG_MIN
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_LDM_HASHRATELOG_MAX
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN)
    - item_type: preproc_def
      name: ZSTD_TARGETCBLOCKSIZE_MIN
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '1340 '
    - item_type: preproc_def
      name: ZSTD_TARGETCBLOCKSIZE_MAX
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_BLOCKSIZE_MAX
    - item_type: preproc_def
      name: ZSTD_SRCSIZEHINT_MIN
      pos:
        line_end: 1270
        line_start: 1269
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_SRCSIZEHINT_MAX
      pos:
        line_end: 1271
        line_start: 1270
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: ZSTD_c_rsyncable
      pos:
        line_end: 1962
        line_start: 1961
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam1
    - item_type: preproc_def
      name: ZSTD_c_format
      pos:
        line_end: 1967
        line_start: 1966
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam2
    - item_type: preproc_def
      name: ZSTD_c_forceMaxWindow
      pos:
        line_end: 1971
        line_start: 1970
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam3
    - item_type: preproc_def
      name: ZSTD_c_forceAttachDict
      pos:
        line_end: 1977
        line_start: 1976
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam4
    - item_type: preproc_def
      name: ZSTD_c_literalCompressionMode
      pos:
        line_end: 1989
        line_start: 1988
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam5
    - item_type: preproc_def
      name: ZSTD_c_srcSizeHint
      pos:
        line_end: 1995
        line_start: 1994
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam7
    - item_type: preproc_def
      name: ZSTD_c_enableDedicatedDictSearch
      pos:
        line_end: 2051
        line_start: 2050
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam8
    - item_type: preproc_def
      name: ZSTD_c_stableInBuffer
      pos:
        line_end: 2084
        line_start: 2083
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam9
    - item_type: preproc_def
      name: ZSTD_c_stableOutBuffer
      pos:
        line_end: 2104
        line_start: 2103
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam10
    - item_type: preproc_def
      name: ZSTD_c_blockDelimiters
      pos:
        line_end: 2115
        line_start: 2114
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam11
    - item_type: preproc_def
      name: ZSTD_c_validateSequences
      pos:
        line_end: 2132
        line_start: 2131
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam12
    - item_type: preproc_def
      name: ZSTD_c_useBlockSplitter
      pos:
        line_end: 2143
        line_start: 2142
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam13
    - item_type: preproc_def
      name: ZSTD_c_useRowMatchFinder
      pos:
        line_end: 2155
        line_start: 2154
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam14
    - item_type: preproc_def
      name: ZSTD_c_deterministicRefPrefix
      pos:
        line_end: 2175
        line_start: 2174
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam15
    - item_type: preproc_def
      name: ZSTD_c_prefetchCDictTables
      pos:
        line_end: 2198
        line_start: 2197
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam16
    - item_type: preproc_def
      name: ZSTD_c_enableSeqProducerFallback
      pos:
        line_end: 2212
        line_start: 2211
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam17
    - item_type: preproc_def
      name: ZSTD_c_maxBlockSize
      pos:
        line_end: 2224
        line_start: 2223
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam18
    - item_type: preproc_def
      name: ZSTD_c_searchForExternalRepcodes
      pos:
        line_end: 2248
        line_start: 2247
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_c_experimentalParam19
    - item_type: preproc_def
      name: ZSTD_d_format
      pos:
        line_end: 2392
        line_start: 2391
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam1
    - item_type: preproc_def
      name: ZSTD_d_stableOutBuffer
      pos:
        line_end: 2423
        line_start: 2422
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam2
    - item_type: preproc_def
      name: ZSTD_d_forceIgnoreChecksum
      pos:
        line_end: 2434
        line_start: 2433
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam3
    - item_type: preproc_def
      name: ZSTD_d_refMultipleDDicts
      pos:
        line_end: 2457
        line_start: 2456
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam4
    - item_type: preproc_def
      name: ZSTD_d_disableHuffmanAssembly
      pos:
        line_end: 2468
        line_start: 2467
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam5
    - item_type: preproc_def
      name: ZSTD_d_maxBlockSize
      pos:
        line_end: 2484
        line_start: 2483
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ZSTD_d_experimentalParam6
    - item_type: preproc_def
      name: ZSTD_SEQUENCE_PRODUCER_ERROR
      pos:
        line_end: 2819
        line_start: 2818
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type_or_value: ((size_t)(-1))
    structs:
    - fields:
      - name: error
        type: size_t
      - name: lowerBound
        type: int
      - name: upperBound
        type: int
      item_type: struct
      name: ZSTD_bounds
      pos:
        line_end: 524
        line_start: 520
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: '* src'
        type: void
      - name: size
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: ZSTD_inBuffer_s
      pos:
        line_end: 681
        line_start: 677
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: '*  dst'
        type: void
      - name: size
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: ZSTD_outBuffer_s
      pos:
        line_end: 687
        line_start: 683
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: offset
        type: unsigned int
      - name: litLength
        type: unsigned int
      - name: matchLength
        type: unsigned int
      - name: rep
        type: unsigned int
      item_type: struct
      name: ZSTD_Sequence
      pos:
        line_end: 1312
        line_start: 1277
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: windowLog
        type: unsigned
      - name: chainLog
        type: unsigned
      - name: hashLog
        type: unsigned
      - name: searchLog
        type: unsigned
      - name: minMatch
        type: unsigned
      - name: targetLength
        type: unsigned
      - name: strategy
        type: ZSTD_strategy
      item_type: struct
      name: ZSTD_compressionParameters
      pos:
        line_end: 1322
        line_start: 1314
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: contentSizeFlag
        type: int
      - name: checksumFlag
        type: int
      - name: noDictIDFlag
        type: int
      item_type: struct
      name: ZSTD_frameParameters
      pos:
        line_end: 1328
        line_start: 1324
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: cParams
        type: ZSTD_compressionParameters
      - name: fParams
        type: ZSTD_frameParameters
      item_type: struct
      name: ZSTD_parameters
      pos:
        line_end: 1333
        line_start: 1330
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: frameContentSize
        type: unsigned long long
      - name: windowSize
        type: unsigned long long
      - name: blockSizeMax
        type: unsigned
      - name: frameType
        type: ZSTD_frameType_e
      - name: headerSize
        type: unsigned
      - name: dictID
        type: unsigned
      - name: checksumFlag
        type: unsigned
      - name: _reserved1
        type: unsigned
      - name: _reserved2
        type: unsigned
      item_type: struct
      name: ZSTD_frameHeader
      pos:
        line_end: 1482
        line_start: 1472
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: customAlloc
        type: ZSTD_allocFunction
      - name: customFree
        type: ZSTD_freeFunction
      - name: '* opaque'
        type: void
      item_type: struct
      name: ZSTD_customMem
      pos:
        line_end: 1793
        line_start: 1793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    - fields:
      - name: ingested
        type: unsigned long long
      - name: consumed
        type: unsigned long long
      - name: produced
        type: unsigned long long
      - name: flushed
        type: unsigned long long
      - name: currentJobID
        type: unsigned
      - name: nbActiveWorkers
        type: unsigned
      item_type: struct
      name: ZSTD_frameProgression
      pos:
        line_end: 2633
        line_start: 2626
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
    typedefs:
    - item_type: typedef
      name: ZSTD_CCtx
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_CCtx_s
    - item_type: typedef
      name: ZSTD_DCtx
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_DCtx_s
    - item_type: typedef
      name: ZSTD_CStream
      pos:
        line_end: 752
        line_start: 752
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_CCtx
    - item_type: typedef
      name: ZSTD_DStream
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_DCtx
    - item_type: typedef
      name: ZSTD_CDict
      pos:
        line_end: 955
        line_start: 955
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_CDict_s
    - item_type: typedef
      name: ZSTD_DDict
      pos:
        line_end: 988
        line_start: 988
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_DDict_s
    - item_type: typedef
      name: ZSTD_CCtx_params
      pos:
        line_end: 1275
        line_start: 1275
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: ZSTD_CCtx_params_s
    - item_type: typedef
      name: '* (*ZSTD_allocFunction) (void* opaque, size_t size)'
      pos:
        line_end: 1791
        line_start: 1791
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: void
    - item_type: typedef
      name: (*ZSTD_freeFunction) (void* opaque, void* address)
      pos:
        line_end: 1792
        line_start: 1792
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: void
    - item_type: typedef
      name: ZSTD_threadPool
      pos:
        line_end: 1821
        line_start: 1821
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: POOL_ctx_s
    - item_type: typedef
      name: "(*ZSTD_sequenceProducer_F) (\n  void* sequenceProducerState,\n  ZSTD_Sequence*
        outSeqs, size_t outSeqsCapacity,\n  const void* src, size_t srcSize,\n  const
        void* dict, size_t dictSize,\n  int compressionLevel,\n  size_t windowSize\n)"
      pos:
        line_end: 2827
        line_start: 2820
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.h
      type: size_t
    union: []
- function_names:
  - ZSTD_memcpy
  - ZSTD_memmove
  - ZSTD_memset
  - ZSTD_memcpy
  - ZSTD_memmove
  - ZSTD_memset
  - ZSTD_malloc
  - ZSTD_calloc
  - ZSTD_free
  - ZSTD_div64
  - ZSTD_DEBUG_PRINT
  - DEBUG_STATIC_ASSERT
  - assert
  - RAWLOG
  - STRINGIFY
  - TOSTRING
  - DEBUGLOG
  - RAWLOG
  - DEBUGLOG
  - __has_attribute
  - __has_builtin
  - __has_feature
  - ZSTD_HIDE_ASM_FUNCTION
  - ZSTD_HIDE_ASM_FUNCTION
  - TARGET_ATTRIBUTE
  - PREFETCH_L1
  - PREFETCH_L2
  - PREFETCH_L1
  - PREFETCH_L2
  - PREFETCH_L1
  - PREFETCH_L2
  - PREFETCH_L1
  - PREFETCH_L2
  - PREFETCH_AREA
  - LIKELY
  - UNLIKELY
  - LIKELY
  - UNLIKELY
  - ZSTD_HAS_C_ATTRIBUTE
  - ZSTD_HAS_C_ATTRIBUTE
  - ZSTD_HAS_CPP_ATTRIBUTE
  - ZSTD_HAS_CPP_ATTRIBUTE
  - ZSTD_ALIGNOF
  - ZSTD_ALIGNOF
  - ZSTD_ALIGNOF
  - ZSTD_wrappedPtrDiff
  - ZSTD_wrappedPtrAdd
  - ZSTD_wrappedPtrSub
  - ZSTD_maybeNullPtrAdd
  - MEM_32bits
  - MEM_64bits
  - MEM_isLittleEndian
  - MEM_read16
  - MEM_read32
  - MEM_read64
  - MEM_readST
  - MEM_write16
  - MEM_write32
  - MEM_write64
  - MEM_read16
  - MEM_read32
  - MEM_read64
  - MEM_readST
  - MEM_write16
  - MEM_write32
  - MEM_write64
  - MEM_read16
  - MEM_read32
  - MEM_read64
  - MEM_readST
  - MEM_write16
  - MEM_write32
  - MEM_write64
  - MEM_swap32_fallback
  - MEM_swap32
  - MEM_swap64_fallback
  - MEM_swap64
  - MEM_swapST
  - MEM_readLE16
  - MEM_writeLE16
  - MEM_readLE24
  - MEM_writeLE24
  - MEM_readLE32
  - MEM_writeLE32
  - MEM_readLE64
  - MEM_writeLE64
  - MEM_readLEST
  - MEM_writeLEST
  - MEM_readBE32
  - MEM_writeBE32
  - MEM_readBE64
  - MEM_writeBE64
  - MEM_readBEST
  - MEM_writeBEST
  - MEM_check
  - PREFIX
  - ERROR
  - ZSTD_ERROR
  - ERR_isError
  - ERR_getErrorCode
  - CHECK_V_F
  - CHECK_F
  - ERR_getErrorName
  - _force_has_format_string
  - _FORCE_HAS_FORMAT_STRING
  - ERR_QUOTE
  - RETURN_ERROR_IF
  - RETURN_ERROR
  - FORWARD_IF_ERROR
  - FSE_QUOTE
  - FSE_EXPAND_AND_QUOTE
  - ZSTD_countTrailingZeros32_fallback
  - ZSTD_countTrailingZeros32
  - ZSTD_countLeadingZeros32_fallback
  - ZSTD_countLeadingZeros32
  - ZSTD_countTrailingZeros64
  - ZSTD_countLeadingZeros64
  - ZSTD_NbCommonBytes
  - ZSTD_highbit32
  - ZSTD_rotateRight_U64
  - ZSTD_rotateRight_U32
  - ZSTD_rotateRight_U16
  - BIT_initCStream
  - BIT_getLowerBits
  - BIT_addBits
  - BIT_addBitsFast
  - BIT_flushBitsFast
  - BIT_flushBits
  - BIT_closeCStream
  - BIT_initDStream
  - BIT_getUpperBits
  - BIT_getMiddleBits
  - BIT_lookBits
  - BIT_lookBitsFast
  - BIT_skipBits
  - BIT_readBits
  - BIT_readBitsFast
  - BIT_DStream_status::BIT_reloadDStream_internal
  - BIT_DStream_status::BIT_reloadDStreamFast
  - BIT_DStream_status::BIT_reloadDStream
  - BIT_endOfDStream
  - FSE_BLOCKBOUND
  - FSE_COMPRESSBOUND
  - FSE_CTABLE_SIZE_U32
  - FSE_DTABLE_SIZE_U32
  - FSE_CTABLE_SIZE
  - FSE_DTABLE_SIZE
  - FSE_BUILD_CTABLE_WORKSPACE_SIZE
  - FSE_BUILD_DTABLE_WKSP_SIZE
  - FSE_BUILD_DTABLE_WKSP_SIZE_U32
  - FSE_DECOMPRESS_WKSP_SIZE_U32
  - FSE_DECOMPRESS_WKSP_SIZE
  - FSE_initCState
  - FSE_initCState2
  - FSE_encodeSymbol
  - FSE_flushCState
  - FSE_getMaxNbBits
  - FSE_bitCost
  - FSE_initDState
  - FSE_peekSymbol
  - FSE_updateState
  - FSE_decodeSymbol
  - FSE_decodeSymbolFast
  - FSE_endOfDState
  - FSE_TABLESTEP
  - HUF_BLOCKBOUND
  - HUF_COMPRESSBOUND
  - HUF_CTABLE_SIZE_ST
  - HUF_CTABLE_SIZE
  - HUF_CREATE_STATIC_CTABLE
  - HUF_DTABLE_SIZE
  - HUF_CREATE_STATIC_DTABLEX1
  - HUF_CREATE_STATIC_DTABLEX2
  - FSE_versionNumber
  - FSE_isError
  - FSE_getErrorName
  - HUF_isError
  - HUF_getErrorName
  - FSE_readNCount_body
  - FSE_readNCount_body_default
  - FSE_readNCount_body_bmi2
  - FSE_readNCount_bmi2
  - FSE_readNCount
  - HUF_readStats
  - HUF_readStats_body
  - HUF_readStats_body_default
  - HUF_readStats_body_bmi2
  - HUF_readStats_wksp
  - ERR_getErrorString
  - FSE_STATIC_ASSERT
  - FSE_CAT
  - FSE_FUNCTION_NAME
  - FSE_TYPE_NAME
  - FSE_buildDTable_internal
  - FSE_buildDTable_wksp
  - FSE_decompress_usingDTable_generic
  - FSE_GETSYMBOL
  - FSE_decompress_wksp_body
  - FSE_decompress_wksp_body_default
  - FSE_decompress_wksp_body_bmi2
  - FSE_decompress_wksp_bmi2
  - ERROR
  - ZSTD_pthread_mutex_init
  - ZSTD_pthread_mutex_destroy
  - ZSTD_pthread_mutex_lock
  - ZSTD_pthread_mutex_unlock
  - ZSTD_pthread_cond_init
  - ZSTD_pthread_cond_destroy
  - ZSTD_pthread_cond_wait
  - ZSTD_pthread_cond_signal
  - ZSTD_pthread_cond_broadcast
  - ZSTD_pthread_mutex_init
  - ZSTD_pthread_mutex_destroy
  - ZSTD_pthread_mutex_lock
  - ZSTD_pthread_mutex_unlock
  - ZSTD_pthread_cond_init
  - ZSTD_pthread_cond_destroy
  - ZSTD_pthread_cond_wait
  - ZSTD_pthread_cond_signal
  - ZSTD_pthread_cond_broadcast
  - ZSTD_pthread_create
  - ZSTD_pthread_join
  - ZSTD_pthread_mutex_lock
  - ZSTD_pthread_mutex_unlock
  - ZSTD_pthread_cond_wait
  - ZSTD_pthread_cond_signal
  - ZSTD_pthread_cond_broadcast
  - ZSTD_pthread_create
  - ZSTD_pthread_join
  - ZSTD_pthread_mutex_init
  - ZSTD_pthread_mutex_destroy
  - ZSTD_pthread_mutex_lock
  - ZSTD_pthread_mutex_unlock
  - ZSTD_pthread_cond_init
  - ZSTD_pthread_cond_destroy
  - ZSTD_pthread_cond_wait
  - ZSTD_pthread_cond_signal
  - ZSTD_pthread_cond_broadcast
  - worker
  - ZSTD_pthread_create
  - ZSTD_pthread_join
  - ZSTD_pthread_mutex_init
  - ZSTD_pthread_mutex_destroy
  - ZSTD_pthread_cond_init
  - ZSTD_pthread_cond_destroy
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_DEPRECATED
  - ZSTD_QUOTE
  - ZSTD_EXPAND_AND_QUOTE
  - ZSTD_FRAMEHEADERSIZE_PREFIX
  - ZSTD_FRAMEHEADERSIZE_MIN
  - ZSTD_DECOMPRESSION_MARGIN
  - ZSTD_customMalloc
  - ZSTD_customCalloc
  - ZSTD_customFree
  - POOL_thread
  - ZSTD_createThreadPool
  - POOL_create
  - POOL_create_advanced
  - POOL_join
  - POOL_free
  - POOL_joinJobs
  - ZSTD_freeThreadPool
  - POOL_sizeof
  - POOL_resize_internal
  - POOL_resize
  - isQueueFull
  - POOL_add_internal
  - POOL_add
  - POOL_tryAdd
  - POOL_create
  - POOL_create_advanced
  - POOL_free
  - POOL_joinJobs
  - POOL_resize
  - POOL_add
  - POOL_tryAdd
  - POOL_sizeof
  - ZSTD_cpuid_t::ZSTD_cpuid
  - X
  - C
  - D
  - B
  - C
  - XXH_IPREF
  - XXH_CAT
  - XXH_NAME2
  - XXH_HAS_ATTRIBUTE
  - XXH_HAS_ATTRIBUTE
  - XXH_HAS_C_ATTRIBUTE
  - XXH_HAS_C_ATTRIBUTE
  - XXH_HAS_CPP_ATTRIBUTE
  - XXH_HAS_CPP_ATTRIBUTE
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN
  - XXH_ALIGN_MEMBER
  - XXH_ALIGN_MEMBER
  - XXH3_INITSTATE
  - XXH_malloc
  - XXH_free
  - XXH_malloc
  - XXH_free
  - XXH_memcpy
  - XXH_ASSERT
  - XXH_ASSERT
  - XXH_ASSERT
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT_WITH_MESSAGE
  - XXH_STATIC_ASSERT
  - XXH_COMPILER_GUARD
  - XXH_COMPILER_GUARD
  - XXH_COMPILER_GUARD_CLANG_NEON
  - XXH_COMPILER_GUARD_CLANG_NEON
  - XXH_read32
  - XXH_read32
  - XXH_read32
  - XXH_isLittleEndian
  - XXH_HAS_BUILTIN
  - XXH_HAS_BUILTIN
  - XXH_UNREACHABLE
  - XXH_UNREACHABLE
  - XXH_ASSUME
  - XXH_ASSUME
  - XXH_rotl32
  - XXH_rotl64
  - XXH_rotl32
  - XXH_rotl64
  - XXH_swap32
  - XXH_readLE32
  - XXH_readBE32
  - XXH_readLE32
  - XXH_readBE32
  - XXH_readLE32_align
  - XXH_versionNumber
  - XXH32_round
  - XXH32_avalanche
  - XXH_get32bits
  - XXH32_finalize
  - XXH32_endian_align
  - XXH32_hash_t
  - XXH32_state_t* XXH32_createState(void)
  - XXH_errorcode::XXH32_freeState
  - XXH32_copyState
  - XXH_errorcode::XXH32_reset
  - XXH_errorcode::XXH32_update
  - XXH32_hash_t::XXH32_digest
  - XXH32_canonicalFromHash
  - XXH32_hash_t::XXH32_hashFromCanonical
  - XXH_read64
  - XXH_read64
  - XXH_read64
  - XXH_swap64
  - XXH_readLE64
  - XXH_readBE64
  - XXH_readLE64
  - XXH_readBE64
  - XXH_readLE64_align
  - XXH64_round
  - XXH64_mergeRound
  - XXH64_avalanche
  - XXH_get64bits
  - XXH64_finalize
  - XXH64_endian_align
  - XXH64_hash_t
  - XXH64_state_t* XXH64_createState(void)
  - XXH_errorcode::XXH64_freeState
  - XXH64_copyState
  - XXH_errorcode::XXH64_reset
  - XXH_errorcode::XXH64_update
  - XXH64_hash_t::XXH64_digest
  - XXH64_canonicalFromHash
  - XXH64_hash_t::XXH64_hashFromCanonical
  - XXH_likely
  - XXH_unlikely
  - XXH_likely
  - XXH_unlikely
  - XXH_HAS_INCLUDE
  - XXH_vld1q_u64
  - XXH_vld1q_u64
  - XXH_vmlal_low_u32
  - XXH_vmlal_high_u32
  - XXH_vmlal_low_u32
  - XXH_vmlal_high_u32
  - XXH_vec_revb
  - XXH_vec_loadu
  - XXH_vec_mulo
  - XXH_vec_mule
  - ACCRND
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_PREFETCH
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult32to64
  - XXH_mult64to128
  - XXH3_mul128_fold64
  - XXH_xorshift64
  - XXH3_avalanche
  - XXH3_rrmxmx
  - XXH3_len_1to3_64b
  - XXH3_len_4to8_64b
  - XXH3_len_9to16_64b
  - XXH3_len_0to16_64b
  - XXH3_mix16B
  - XXH3_len_17to128_64b
  - XXH3_len_129to240_64b
  - XXH3_ACCUMULATE_TEMPLATE
  - XXH_writeLE64
  - XXH3_accumulate_512_avx512
  - XXH3_scrambleAcc_avx512
  - XXH3_initCustomSecret_avx512
  - XXH3_accumulate_512_avx2
  - XXH3_scrambleAcc_avx2
  - XXH3_initCustomSecret_avx2
  - XXH3_accumulate_512_sse2
  - XXH3_scrambleAcc_sse2
  - XXH3_initCustomSecret_sse2
  - XXH3_accumulate_512_neon
  - XXH3_scrambleAcc_neon
  - XXH3_accumulate_512_vsx
  - XXH3_scrambleAcc_vsx
  - XXH3_accumulate_512_sve
  - XXH_mult32to64_add64
  - XXH_mult32to64_add64
  - XXH3_scalarRound
  - XXH3_accumulate_512_scalar
  - XXH3_scalarScrambleRound
  - XXH3_scrambleAcc_scalar
  - XXH3_initCustomSecret_scalar
  - XXH3_mix2Accs
  - XXH3_mergeAccs
  - XXH64_hash_t::XXH3_hashLong_64b_internal
  - XXH64_hash_t::XXH3_hashLong_64b_withSecret
  - XXH3_hashLong_64b_default
  - XXH64_hash_t::XXH3_hashLong_64b_withSeed_internal
  - XXH64_hash_t::XXH3_hashLong_64b_withSeed
  - XXH64_hash_t::XXH3_64bits_internal
  - XXH64_hash_t::XXH3_64bits
  - XXH64_hash_t::XXH3_64bits_withSecret
  - XXH64_hash_t::XXH3_64bits_withSeed
  - XXH64_hash_t::XXH3_64bits_withSecretandSeed
  - XXH_alignedMalloc
  - XXH_alignedFree
  - XXH3_state_t* XXH3_createState(void)
  - XXH_errorcode::XXH3_freeState
  - XXH3_copyState
  - XXH3_reset_internal
  - XXH_errorcode::XXH3_64bits_reset
  - XXH_errorcode::XXH3_64bits_reset_withSecret
  - XXH_errorcode::XXH3_64bits_reset_withSeed
  - XXH_errorcode::XXH3_64bits_reset_withSecretandSeed
  - XXH3_consumeStripes
  - XXH_errorcode::XXH3_64bits_update
  - XXH3_digest_long
  - XXH64_hash_t::XXH3_64bits_digest
  - XXH3_len_1to3_128b
  - XXH3_len_4to8_128b
  - XXH3_len_9to16_128b
  - XXH3_len_0to16_128b
  - XXH128_hash_t::XXH128_mix32B
  - XXH3_len_17to128_128b
  - XXH3_len_129to240_128b
  - XXH128_hash_t::XXH3_hashLong_128b_internal
  - XXH3_hashLong_128b_default
  - XXH128_hash_t::XXH3_hashLong_128b_withSecret
  - XXH128_hash_t::XXH3_hashLong_128b_withSeed_internal
  - XXH128_hash_t::XXH3_hashLong_128b_withSeed
  - XXH128_hash_t::XXH3_128bits_internal
  - XXH128_hash_t::XXH3_128bits
  - XXH128_hash_t::XXH3_128bits_withSecret
  - XXH128_hash_t::XXH3_128bits_withSeed
  - XXH128_hash_t::XXH3_128bits_withSecretandSeed
  - XXH128_hash_t::XXH128
  - XXH_errorcode::XXH3_128bits_reset
  - XXH_errorcode::XXH3_128bits_reset_withSecret
  - XXH_errorcode::XXH3_128bits_reset_withSeed
  - XXH_errorcode::XXH3_128bits_reset_withSecretandSeed
  - XXH_errorcode::XXH3_128bits_update
  - XXH128_hash_t::XXH3_128bits_digest
  - XXH128_isEqual
  - XXH128_cmp
  - XXH128_canonicalFromHash
  - XXH128_hash_t::XXH128_hashFromCanonical
  - XXH_MIN
  - XXH3_combine16
  - XXH_errorcode::XXH3_generateSecret
  - XXH3_generateSecret_fromSeed
  - ZSTD_STATIC_ASSERT
  - MIN
  - MAX
  - BOUNDED
  - ZSTD_copy8
  - COPY8
  - ZSTD_copy16
  - COPY16
  - ZSTD_wildcopy
  - ZSTD_limitCopy
  - ZSTD_sequenceLength::ZSTD_getSequenceLength
  - ZSTD_cpuSupportsBmi2
  - ZSTD_versionNumber
  - ZSTD_versionString
  - ZSTD_isError
  - ZSTD_getErrorName
  - ZSTD_getErrorCode
  - ZSTD_getErrorString
  - FSE_CAT
  - FSE_FUNCTION_NAME
  - FSE_TYPE_NAME
  - FSE_buildCTable_wksp
  - FSE_NCountWriteBound
  - FSE_writeNCount_generic
  - FSE_writeNCount
  - FSE_minTableLog
  - FSE_optimalTableLog_internal
  - FSE_optimalTableLog
  - FSE_normalizeM2
  - FSE_normalizeCount
  - FSE_buildCTable_rle
  - FSE_compress_usingCTable_generic
  - FSE_FLUSHBITS
  - FSE_compress_usingCTable
  - FSE_compressBound
  - HIST_isError
  - HIST_count_simple
  - HIST_count_parallel_wksp
  - HIST_countFast_wksp
  - HIST_count_wksp
  - HIST_countFast
  - HIST_count
  - HUF_STATIC_ASSERT
  - showU32
  - showCTableBits
  - showHNodeSymbols
  - showHNodeBits
  - HUF_alignUpWorkspace
  - HUF_compressWeights
  - HUF_getNbBits
  - HUF_getNbBitsFast
  - HUF_getValue
  - HUF_getValueFast
  - HUF_setNbBits
  - HUF_setValue
  - HUF_readCTableHeader
  - HUF_writeCTableHeader
  - HUF_writeCTable_wksp
  - HUF_readCTable
  - HUF_getNbBitsFromCTable
  - HUF_setMaxHeight
  - HUF_getIndex
  - HUF_swapNodes
  - HUF_isSorted
  - HUF_insertionSort
  - HUF_quickSortPartition
  - HUF_simpleQuickSort
  - HUF_sort
  - HUF_buildTree
  - HUF_buildCTableFromTree
  - HUF_buildCTable_wksp
  - HUF_estimateCompressedSize
  - HUF_validateCTable
  - HUF_compressBound
  - HUF_initCStream
  - HUF_addBits
  - HUF_zeroIndex1
  - HUF_mergeIndex1
  - HUF_flushBits
  - HUF_endMark
  - HUF_closeCStream
  - HUF_encodeSymbol
  - HUF_compress1X_usingCTable_internal_body_loop
  - HUF_tightCompressBound
  - HUF_compress1X_usingCTable_internal_body
  - HUF_compress1X_usingCTable_internal_bmi2
  - HUF_compress1X_usingCTable_internal_default
  - HUF_compress1X_usingCTable_internal
  - HUF_compress1X_usingCTable_internal
  - HUF_compress1X_usingCTable
  - HUF_compress4X_usingCTable_internal
  - HUF_compress4X_usingCTable
  - HUF_compressCTable_internal
  - HUF_cardinality
  - HUF_minTableLog
  - HUF_optimalTableLog
  - HUF_compress_internal
  - HUF_compress1X_repeat
  - HUF_compress4X_repeat
  - ZSTD_cwksp_assert_internal_consistency
  - ZSTD_cwksp_align
  - ZSTD_cwksp_alloc_size
  - ZSTD_cwksp_aligned_alloc_size
  - ZSTD_cwksp_slack_space_required
  - ZSTD_cwksp_bytes_to_align_ptr
  - ZSTD_cwksp_initialAllocStart
  - ZSTD_cwksp_reserve_internal_buffer_space
  - ZSTD_cwksp_internal_advance_phase
  - ZSTD_cwksp_owns_buffer
  - ZSTD_cwksp_reserve_internal
  - ZSTD_cwksp_reserve_buffer
  - ZSTD_cwksp_reserve_aligned_init_once
  - ZSTD_cwksp_reserve_aligned
  - ZSTD_cwksp_reserve_table
  - ZSTD_cwksp_reserve_object
  - ZSTD_cwksp_mark_tables_dirty
  - ZSTD_cwksp_mark_tables_clean
  - ZSTD_cwksp_clean_tables
  - ZSTD_cwksp_clear_tables
  - ZSTD_cwksp_clear
  - ZSTD_cwksp_sizeof
  - ZSTD_cwksp_used
  - ZSTD_cwksp_init
  - ZSTD_cwksp_create
  - ZSTD_cwksp_free
  - ZSTD_cwksp_move
  - ZSTD_cwksp_reserve_failed
  - ZSTD_cwksp_estimated_space_within_bounds
  - ZSTD_cwksp_available_space
  - ZSTD_cwksp_check_available
  - ZSTD_cwksp_check_too_large
  - ZSTD_cwksp_check_wasteful
  - ZSTD_cwksp_bump_oversized_duration
  - ZSTD_LLcode
  - ZSTD_MLcode
  - ZSTD_cParam_withinBounds
  - ZSTD_noCompressBlock
  - ZSTD_rleCompressBlock
  - ZSTD_minGain
  - ZSTD_literalsCompressionIsDisabled
  - ZSTD_safecopyLiterals
  - REPCODE_TO_OFFBASE
  - OFFSET_TO_OFFBASE
  - OFFBASE_IS_OFFSET
  - OFFBASE_IS_REPCODE
  - OFFBASE_TO_OFFSET
  - OFFBASE_TO_REPCODE
  - ZSTD_storeSeq
  - ZSTD_updateRep
  - ZSTD_newRep
  - ZSTD_count
  - ZSTD_count_2segments
  - ZSTD_hash3
  - ZSTD_hash3Ptr
  - ZSTD_hash3PtrS
  - ZSTD_hash4
  - ZSTD_hash4Ptr
  - ZSTD_hash4PtrS
  - ZSTD_hash5
  - ZSTD_hash5Ptr
  - ZSTD_hash5PtrS
  - ZSTD_hash6
  - ZSTD_hash6Ptr
  - ZSTD_hash6PtrS
  - ZSTD_hash7
  - ZSTD_hash7Ptr
  - ZSTD_hash7PtrS
  - ZSTD_hash8
  - ZSTD_hash8Ptr
  - ZSTD_hash8PtrS
  - ZSTD_hashPtr
  - ZSTD_hashPtrSalted
  - ZSTD_ipow
  - ZSTD_rollingHash_append
  - ZSTD_rollingHash_compute
  - ZSTD_rollingHash_primePower
  - ZSTD_rollingHash_rotate
  - ZSTD_window_clear
  - ZSTD_window_isEmpty
  - ZSTD_window_hasExtDict
  - ZSTD_dictMode_e::ZSTD_matchState_dictMode
  - ZSTD_window_canOverflowCorrect
  - ZSTD_window_needOverflowCorrection
  - ZSTD_window_correctOverflow
  - ZSTD_window_enforceMaxDist
  - ZSTD_checkDictValidity
  - ZSTD_window_init
  - ZSTD_window_update
  - ZSTD_getLowestMatchIndex
  - ZSTD_getLowestPrefixIndex
  - ZSTD_fWeight
  - ZSTD_debugTable
  - ZSTD_writeTaggedIndex
  - ZSTD_comparePackedTags
  - ZSTD_hasExtSeqProd
  - showHexa
  - ZSTD_noCompressLiterals
  - allBytesIdentical
  - ZSTD_compressRleLiteralsBlock
  - ZSTD_minLiteralsToCompress
  - ZSTD_compressLiterals
  - ZSTD_getFSEMaxSymbolValue
  - ZSTD_useLowProbCount
  - ZSTD_NCountCost
  - ZSTD_entropyCost
  - ZSTD_fseBitCost
  - ZSTD_crossEntropyCost
  - ZSTD_selectEncodingType
  - ZSTD_buildCTable
  - ZSTD_encodeSequences_body
  - ZSTD_encodeSequences_default
  - ZSTD_encodeSequences_bmi2
  - ZSTD_encodeSequences
  - ZSTD_compressSubBlock_literal
  - ZSTD_seqDecompressedSize
  - ZSTD_compressSubBlock_sequences
  - ZSTD_compressSubBlock
  - ZSTD_estimateSubBlockSize_literal
  - ZSTD_estimateSubBlockSize_symbolType
  - ZSTD_estimateSubBlockSize_sequences
  - ZSTD_estimateSubBlockSize
  - ZSTD_needSequenceEntropyTables
  - countLiterals
  - sizeBlockSequences
  - ZSTD_compressSubBlock_multi
  - ZSTD_compressSuperBlock
  - ZSTD_compressBound
  - ZSTD_createCCtx
  - ZSTD_initCCtx
  - ZSTD_createCCtx_advanced
  - ZSTD_initStaticCCtx
  - ZSTD_clearAllDicts
  - ZSTD_sizeof_localDict
  - ZSTD_freeCCtxContent
  - ZSTD_freeCCtx
  - ZSTD_sizeof_mtctx
  - ZSTD_sizeof_CCtx
  - ZSTD_sizeof_CStream
  - ZSTD_getSeqStore
  - ZSTD_rowMatchFinderSupported
  - ZSTD_rowMatchFinderUsed
  - ZSTD_resolveRowMatchFinderMode
  - ZSTD_resolveBlockSplitterMode
  - ZSTD_allocateChainTable
  - ZSTD_resolveEnableLdm
  - ZSTD_resolveExternalSequenceValidation
  - ZSTD_resolveMaxBlockSize
  - ZSTD_resolveExternalRepcodeSearch
  - ZSTD_CDictIndicesAreTagged
  - ZSTD_makeCCtxParamsFromCParams
  - ZSTD_createCCtxParams_advanced
  - ZSTD_createCCtxParams
  - ZSTD_freeCCtxParams
  - ZSTD_CCtxParams_reset
  - ZSTD_CCtxParams_init
  - ZSTD_CCtxParams_init_internal
  - ZSTD_CCtxParams_init_advanced
  - ZSTD_CCtxParams_setZstdParams
  - ZSTD_cParam_getBounds
  - ZSTD_cParam_clampBounds
  - BOUNDCHECK
  - ZSTD_isUpdateAuthorized
  - ZSTD_CCtx_setParameter
  - ZSTD_CCtxParams_setParameter
  - ZSTD_CCtx_getParameter
  - ZSTD_CCtxParams_getParameter
  - ZSTD_CCtx_setParametersUsingCCtxParams
  - ZSTD_CCtx_setCParams
  - ZSTD_CCtx_setFParams
  - ZSTD_CCtx_setParams
  - ZSTD_CCtx_setPledgedSrcSize
  - ZSTD_initLocalDict
  - ZSTD_CCtx_loadDictionary_advanced
  - ZSTD_CCtx_loadDictionary_byReference
  - ZSTD_CCtx_loadDictionary
  - ZSTD_CCtx_refCDict
  - ZSTD_CCtx_refThreadPool
  - ZSTD_CCtx_refPrefix
  - ZSTD_CCtx_refPrefix_advanced
  - ZSTD_CCtx_reset
  - ZSTD_checkCParams
  - ZSTD_clampCParams
  - CLAMP_TYPE
  - CLAMP
  - ZSTD_cycleLog
  - ZSTD_dictAndWindowLog
  - ZSTD_adjustCParams_internal
  - ZSTD_adjustCParams
  - ZSTD_overrideCParams
  - ZSTD_getCParamsFromCCtxParams
  - ZSTD_sizeof_matchState
  - ZSTD_maxNbSeq
  - ZSTD_estimateCCtxSize_usingCCtxParams_internal
  - ZSTD_estimateCCtxSize_usingCCtxParams
  - ZSTD_estimateCCtxSize_usingCParams
  - ZSTD_estimateCCtxSize_internal
  - ZSTD_estimateCCtxSize
  - ZSTD_estimateCStreamSize_usingCCtxParams
  - ZSTD_estimateCStreamSize_usingCParams
  - ZSTD_estimateCStreamSize_internal
  - ZSTD_estimateCStreamSize
  - ZSTD_getFrameProgression
  - ZSTD_toFlushNow
  - ZSTD_assertEqualCParams
  - ZSTD_reset_compressedBlockState
  - ZSTD_invalidateMatchState
  - ZSTD_bitmix
  - ZSTD_advanceHashSalt
  - ZSTD_reset_matchState
  - ZSTD_indexTooCloseToMax
  - ZSTD_dictTooBig
  - ZSTD_resetCCtx_internal
  - ZSTD_invalidateRepCodes
  - ZSTD_shouldAttachDict
  - ZSTD_resetCCtx_byAttachingCDict
  - ZSTD_copyCDictTableIntoCCtx
  - ZSTD_resetCCtx_byCopyingCDict
  - ZSTD_resetCCtx_usingCDict
  - ZSTD_copyCCtx_internal
  - ZSTD_copyCCtx
  - ZSTD_reduceTable_internal
  - ZSTD_reduceTable
  - ZSTD_reduceTable_btlazy2
  - ZSTD_reduceIndex
  - ZSTD_seqToCodes
  - ZSTD_useTargetCBlockSize
  - ZSTD_blockSplitterEnabled
  - ZSTD_buildSequencesStatistics
  - ZSTD_entropyCompressSeqStore_internal
  - ZSTD_entropyCompressSeqStore
  - ZSTD_selectBlockCompressor
  - ZSTD_storeLastLiterals
  - ZSTD_resetSeqStore
  - ZSTD_postProcessSequenceProducerResult
  - ZSTD_fastSequenceLengthSum
  - ZSTD_buildSeqStore
  - ZSTD_copyBlockSequences
  - ZSTD_sequenceBound
  - ZSTD_generateSequences
  - ZSTD_mergeBlockDelimiters
  - ZSTD_isRLE
  - ZSTD_maybeRLE
  - ZSTD_blockState_confirmRepcodesAndEntropyTables
  - writeBlockHeader
  - ZSTD_buildBlockEntropyStats_literals
  - ZSTD_buildDummySequencesStatistics
  - ZSTD_buildBlockEntropyStats_sequences
  - ZSTD_buildBlockEntropyStats
  - ZSTD_estimateBlockSize_literal
  - ZSTD_estimateBlockSize_symbolType
  - ZSTD_estimateBlockSize_sequences
  - ZSTD_estimateBlockSize
  - ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize
  - ZSTD_countSeqStoreLiteralsBytes
  - ZSTD_countSeqStoreMatchBytes
  - ZSTD_deriveSeqStoreChunk
  - ZSTD_resolveRepcodeToRawOffset
  - ZSTD_seqStore_resolveOffCodes
  - ZSTD_compressSeqStore_singleBlock
  - ZSTD_deriveBlockSplitsHelper
  - ZSTD_deriveBlockSplits
  - ZSTD_compressBlock_splitBlock_internal
  - ZSTD_compressBlock_splitBlock
  - ZSTD_compressBlock_internal
  - ZSTD_compressBlock_targetCBlockSize_body
  - ZSTD_compressBlock_targetCBlockSize
  - ZSTD_overflowCorrectIfNeeded
  - ZSTD_compress_frameChunk
  - ZSTD_writeFrameHeader
  - ZSTD_writeSkippableFrame
  - ZSTD_writeLastEmptyBlock
  - ZSTD_referenceExternalSequences
  - ZSTD_compressContinue_internal
  - ZSTD_compressContinue_public
  - ZSTD_compressContinue
  - ZSTD_getBlockSize_deprecated
  - ZSTD_getBlockSize
  - ZSTD_compressBlock_deprecated
  - ZSTD_compressBlock
  - ZSTD_loadDictionaryContent
  - ZSTD_dictNCountRepeat
  - ZSTD_loadCEntropy
  - ZSTD_loadZstdDictionary
  - ZSTD_compress_insertDictionary
  - ZSTD_compressBegin_internal
  - ZSTD_compressBegin_advanced_internal
  - ZSTD_compressBegin_advanced
  - ZSTD_compressBegin_usingDict_deprecated
  - ZSTD_compressBegin_usingDict
  - ZSTD_compressBegin
  - ZSTD_writeEpilogue
  - ZSTD_CCtx_trace
  - ZSTD_compressEnd_public
  - ZSTD_compressEnd
  - ZSTD_compress_advanced
  - ZSTD_compress_advanced_internal
  - ZSTD_compress_usingDict
  - ZSTD_compressCCtx
  - ZSTD_compress
  - ZSTD_estimateCDictSize_advanced
  - ZSTD_estimateCDictSize
  - ZSTD_sizeof_CDict
  - ZSTD_initCDict_internal
  - ZSTD_createCDict_advanced_internal
  - ZSTD_createCDict_advanced
  - ZSTD_createCDict_advanced2
  - ZSTD_createCDict
  - ZSTD_createCDict_byReference
  - ZSTD_freeCDict
  - ZSTD_initStaticCDict
  - ZSTD_getCParamsFromCDict
  - ZSTD_getDictID_fromCDict
  - ZSTD_compressBegin_usingCDict_internal
  - ZSTD_compressBegin_usingCDict_advanced
  - ZSTD_compressBegin_usingCDict_deprecated
  - ZSTD_compressBegin_usingCDict
  - ZSTD_compress_usingCDict_internal
  - ZSTD_compress_usingCDict_advanced
  - ZSTD_compress_usingCDict
  - ZSTD_createCStream
  - ZSTD_initStaticCStream
  - ZSTD_createCStream_advanced
  - ZSTD_freeCStream
  - ZSTD_CStreamInSize
  - ZSTD_CStreamOutSize
  - ZSTD_getCParamMode
  - ZSTD_resetCStream
  - ZSTD_initCStream_internal
  - ZSTD_initCStream_usingCDict_advanced
  - ZSTD_initCStream_usingCDict
  - ZSTD_initCStream_advanced
  - ZSTD_initCStream_usingDict
  - ZSTD_initCStream_srcSize
  - ZSTD_initCStream
  - ZSTD_nextInputSizeHint
  - ZSTD_compressStream_generic
  - ZSTD_nextInputSizeHint_MTorST
  - ZSTD_compressStream
  - ZSTD_setBufferExpectations
  - ZSTD_checkBufferStability
  - ZSTD_CCtx_init_compressStream2
  - ZSTD_compressStream2
  - ZSTD_compressStream2_simpleArgs
  - ZSTD_compress2
  - ZSTD_validateSequence
  - ZSTD_finalizeOffBase
  - ZSTD_copySequencesToSeqStoreExplicitBlockDelim
  - ZSTD_copySequencesToSeqStoreNoBlockDelim
  - ZSTD_selectSequenceCopier
  - blockSize_explicitDelimiter
  - blockSize_noDelimiter
  - determine_blockSize
  - ZSTD_compressSequences_internal
  - ZSTD_compressSequences
  - inBuffer_forEndFlush
  - ZSTD_flushStream
  - ZSTD_endStream
  - ZSTD_maxCLevel
  - ZSTD_minCLevel
  - ZSTD_defaultCLevel
  - ZSTD_dedicatedDictSearch_getCParams
  - ZSTD_dedicatedDictSearch_isSupported
  - ZSTD_dedicatedDictSearch_revertCParams
  - ZSTD_getCParamRowSize
  - ZSTD_getCParams_internal
  - ZSTD_getCParams
  - ZSTD_getParams_internal
  - ZSTD_getParams
  - ZSTD_registerSequenceProducer
  - ZSTD_CCtxParams_registerSequenceProducer
  - ZSTD_fillDoubleHashTableForCDict
  - ZSTD_fillDoubleHashTableForCCtx
  - ZSTD_fillDoubleHashTable
  - ZSTD_compressBlock_doubleFast_noDict_generic
  - ZSTD_compressBlock_doubleFast_dictMatchState_generic
  - ZSTD_GEN_DFAST_FN
  - ZSTD_compressBlock_doubleFast
  - ZSTD_compressBlock_doubleFast_dictMatchState
  - ZSTD_compressBlock_doubleFast_extDict_generic
  - ZSTD_compressBlock_doubleFast_extDict
  - ZSTD_fillHashTableForCDict
  - ZSTD_fillHashTableForCCtx
  - ZSTD_fillHashTable
  - ZSTD_compressBlock_fast_noDict_generic
  - ZSTD_GEN_FAST_FN
  - ZSTD_compressBlock_fast
  - ZSTD_compressBlock_fast_dictMatchState_generic
  - ZSTD_compressBlock_fast_dictMatchState
  - ZSTD_compressBlock_fast_extDict_generic
  - ZSTD_compressBlock_fast_extDict
  - ZSTD_updateDUBT
  - ZSTD_insertDUBT1
  - ZSTD_DUBT_findBetterDictMatch
  - ZSTD_DUBT_findBestMatch
  - ZSTD_BtFindBestMatch
  - ZSTD_dedicatedDictSearch_lazy_loadDictionary
  - ZSTD_dedicatedDictSearch_lazy_search
  - NEXT_IN_CHAIN
  - ZSTD_insertAndFindFirstIndex_internal
  - ZSTD_insertAndFindFirstIndex
  - ZSTD_HcFindBestMatch
  - ZSTD_VecMask_next
  - ZSTD_row_nextIndex
  - ZSTD_isAligned
  - ZSTD_row_prefetch
  - ZSTD_row_fillHashCache
  - ZSTD_row_nextCachedHash
  - ZSTD_row_update_internalImpl
  - ZSTD_row_update_internal
  - ZSTD_row_update
  - ZSTD_row_matchMaskGroupWidth
  - ZSTD_VecMask::ZSTD_row_getSSEMask
  - ZSTD_VecMask::ZSTD_row_getNEONMask
  - ZSTD_VecMask::ZSTD_row_getMatchMask
  - ZSTD_RowFindBestMatch
  - ZSTD_BT_SEARCH_FN
  - ZSTD_HC_SEARCH_FN
  - ZSTD_ROW_SEARCH_FN
  - GEN_ZSTD_BT_SEARCH_FN
  - GEN_ZSTD_HC_SEARCH_FN
  - GEN_ZSTD_ROW_SEARCH_FN
  - ZSTD_FOR_EACH_ROWLOG
  - ZSTD_FOR_EACH_MLS_ROWLOG
  - ZSTD_FOR_EACH_MLS
  - ZSTD_FOR_EACH_DICT_MODE
  - GEN_ZSTD_CALL_BT_SEARCH_FN
  - GEN_ZSTD_CALL_HC_SEARCH_FN
  - GEN_ZSTD_CALL_ROW_SEARCH_FN
  - ZSTD_SWITCH_MLS
  - ZSTD_SWITCH_ROWLOG
  - ZSTD_SWITCH_SEARCH_METHOD
  - ZSTD_searchMax
  - ZSTD_compressBlock_lazy_generic
  - ZSTD_compressBlock_greedy
  - ZSTD_compressBlock_greedy_dictMatchState
  - ZSTD_compressBlock_greedy_dedicatedDictSearch
  - ZSTD_compressBlock_greedy_row
  - ZSTD_compressBlock_greedy_dictMatchState_row
  - ZSTD_compressBlock_greedy_dedicatedDictSearch_row
  - ZSTD_compressBlock_lazy
  - ZSTD_compressBlock_lazy_dictMatchState
  - ZSTD_compressBlock_lazy_dedicatedDictSearch
  - ZSTD_compressBlock_lazy_row
  - ZSTD_compressBlock_lazy_dictMatchState_row
  - ZSTD_compressBlock_lazy_dedicatedDictSearch_row
  - ZSTD_compressBlock_lazy2
  - ZSTD_compressBlock_lazy2_dictMatchState
  - ZSTD_compressBlock_lazy2_dedicatedDictSearch
  - ZSTD_compressBlock_lazy2_row
  - ZSTD_compressBlock_lazy2_dictMatchState_row
  - ZSTD_compressBlock_lazy2_dedicatedDictSearch_row
  - ZSTD_compressBlock_btlazy2
  - ZSTD_compressBlock_btlazy2_dictMatchState
  - ZSTD_compressBlock_lazy_extDict_generic
  - ZSTD_compressBlock_greedy_extDict
  - ZSTD_compressBlock_greedy_extDict_row
  - ZSTD_compressBlock_lazy_extDict
  - ZSTD_compressBlock_lazy_extDict_row
  - ZSTD_compressBlock_lazy2_extDict
  - ZSTD_compressBlock_lazy2_extDict_row
  - ZSTD_compressBlock_btlazy2_extDict
  - ZSTD_ldm_gear_init
  - ZSTD_ldm_gear_reset
  - GEAR_ITER_ONCE
  - ZSTD_ldm_gear_feed
  - GEAR_ITER_ONCE
  - ZSTD_ldm_adjustParameters
  - ZSTD_ldm_getTableSize
  - ZSTD_ldm_getMaxNbSeq
  - ZSTD_ldm_getBucket
  - ZSTD_ldm_insertEntry
  - ZSTD_ldm_countBackwardsMatch
  - ZSTD_ldm_countBackwardsMatch_2segments
  - ZSTD_ldm_fillFastTables
  - ZSTD_ldm_fillHashTable
  - ZSTD_ldm_limitTableUpdate
  - ZSTD_ldm_generateSequences_internal
  - ZSTD_ldm_reduceTable
  - ZSTD_ldm_generateSequences
  - ZSTD_ldm_skipSequences
  - maybeSplitSequence
  - ZSTD_ldm_skipRawSeqStoreBytes
  - ZSTD_ldm_blockCompress
  - WEIGHT
  - WEIGHT
  - WEIGHT
  - ZSTD_bitWeight
  - ZSTD_fracWeight
  - ZSTD_fCost
  - ZSTD_compressedLiterals
  - ZSTD_setBasePrices
  - sum_u32
  - ZSTD_downscaleStats
  - ZSTD_scaleStats
  - ZSTD_rescaleFreqs
  - ZSTD_rawLiteralsCost
  - ZSTD_litLengthPrice
  - ZSTD_getMatchPrice
  - ZSTD_updateStats
  - ZSTD_readMINMATCH
  - ZSTD_insertAndFindFirstIndexHash3
  - ZSTD_insertBt1
  - ZSTD_updateTree_internal
  - ZSTD_updateTree
  - ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
  - ZSTD_btGetAllMatches_internal
  - ZSTD_BT_GET_ALL_MATCHES_FN
  - GEN_ZSTD_BT_GET_ALL_MATCHES_
  - GEN_ZSTD_BT_GET_ALL_MATCHES
  - ZSTD_BT_GET_ALL_MATCHES_ARRAY
  - ZSTD_selectBtGetAllMatches
  - ZSTD_optLdm_skipRawSeqStoreBytes
  - ZSTD_opt_getNextMatchAndUpdateSeqStore
  - ZSTD_optLdm_maybeAddMatch
  - ZSTD_optLdm_processMatchCandidate
  - listStats
  - LIT_PRICE
  - LL_PRICE
  - LL_INCPRICE
  - ZSTD_compressBlock_opt_generic
  - ZSTD_compressBlock_opt0
  - ZSTD_compressBlock_opt2
  - ZSTD_compressBlock_btopt
  - ZSTD_initStats_ultra
  - ZSTD_compressBlock_btultra
  - ZSTD_compressBlock_btultra2
  - ZSTD_compressBlock_btopt_dictMatchState
  - ZSTD_compressBlock_btopt_extDict
  - ZSTD_compressBlock_btultra_dictMatchState
  - ZSTD_compressBlock_btultra_extDict
  - DEBUG_PRINTHEX
  - GetCurrentClockTimeMicroseconds
  - ZSTD_PTHREAD_MUTEX_LOCK
  - ZSTD_PTHREAD_MUTEX_LOCK
  - DEBUG_PRINTHEX
  - ZSTDMT_freeBufferPool
  - ZSTDMT_createBufferPool
  - ZSTDMT_sizeof_bufferPool
  - ZSTDMT_setBufferSize
  - ZSTDMT_expandBufferPool
  - ZSTDMT_getBuffer
  - ZSTDMT_resizeBuffer
  - ZSTDMT_releaseBuffer
  - BUF_POOL_MAX_NB_BUFFERS
  - SEQ_POOL_MAX_NB_BUFFERS
  - ZSTDMT_sizeof_seqPool
  - bufferToSeq
  - seqToBuffer
  - ZSTDMT_getSeq
  - ZSTDMT_resizeSeq
  - ZSTDMT_releaseSeq
  - ZSTDMT_setNbSeq
  - ZSTDMT_createSeqPool
  - ZSTDMT_freeSeqPool
  - ZSTDMT_expandSeqPool
  - ZSTDMT_freeCCtxPool
  - ZSTDMT_createCCtxPool
  - ZSTDMT_expandCCtxPool
  - ZSTDMT_sizeof_CCtxPool
  - ZSTDMT_getCCtx
  - ZSTDMT_releaseCCtx
  - ZSTDMT_serialState_reset
  - ZSTDMT_serialState_init
  - ZSTDMT_serialState_free
  - ZSTDMT_serialState_update
  - ZSTDMT_serialState_ensureFinished
  - JOB_ERROR
  - ZSTDMT_compressionJob
  - ZSTDMT_freeJobsTable
  - ZSTDMT_createJobsTable
  - ZSTDMT_expandJobsTable
  - ZSTDMT_CCtxParam_setNbWorkers
  - ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned nbWorkers, ZSTD_customMem
    cMem, ZSTD_threadPool* pool)
  - ZSTDMT_createCCtx_advanced
  - ZSTDMT_releaseAllJobResources
  - ZSTDMT_waitForAllJobsCompleted
  - ZSTDMT_freeCCtx
  - ZSTDMT_sizeof_CCtx
  - ZSTDMT_resize
  - ZSTDMT_updateCParams_whileCompressing
  - ZSTDMT_getFrameProgression
  - ZSTDMT_toFlushNow
  - ZSTDMT_computeTargetJobLog
  - ZSTDMT_overlapLog_default
  - ZSTDMT_overlapLog
  - ZSTDMT_computeOverlapSize
  - ZSTDMT_initCStream_internal
  - ZSTDMT_writeLastEmptyBlock
  - ZSTDMT_createCompressionJob
  - ZSTDMT_flushProduced
  - ZSTDMT_getInputDataInUse
  - ZSTDMT_isOverlapped
  - ZSTDMT_doesOverlapWindow
  - ZSTDMT_waitForLdmComplete
  - ZSTDMT_tryGetInputRange
  - findSynchronizationPoint
  - ZSTDMT_nextInputSizeHint
  - ZSTDMT_compressStream_generic
  - HUF_ALIGN
  - HUF_ALIGN_MASK
  - HUF_DGEN
  - HUF_DGEN
  - HUF_getDTableDesc
  - HUF_initFastDStream
  - HUF_DecompressFastArgs_init
  - HUF_initRemainingDStream
  - HUF_4X_FOR_EACH_STREAM
  - HUF_4X_FOR_EACH_STREAM_WITH_VAR
  - HUF_DEltX1_set4
  - HUF_rescaleStats
  - HUF_readDTableX1_wksp
  - HUF_decodeSymbolX1
  - HUF_DECODE_SYMBOLX1_0
  - HUF_DECODE_SYMBOLX1_1
  - HUF_DECODE_SYMBOLX1_2
  - HUF_decodeStreamX1
  - HUF_decompress1X1_usingDTable_internal_body
  - HUF_decompress4X1_usingDTable_internal_body
  - HUF_decompress4X1_usingDTable_internal_bmi2
  - HUF_decompress4X1_usingDTable_internal_default
  - HUF_decompress4X1_usingDTable_internal_fast_c_loop
  - HUF_4X1_DECODE_SYMBOL
  - HUF_4X1_RELOAD_STREAM
  - HUF_decompress4X1_usingDTable_internal_fast
  - HUF_decompress4X1_usingDTable_internal
  - HUF_decompress4X1_DCtx_wksp
  - HUF_buildDEltX2U32
  - HUF_buildDEltX2
  - HUF_buildDEltX2U64
  - HUF_fillDTableX2ForWeight
  - HUF_fillDTableX2Level2
  - HUF_fillDTableX2
  - HUF_readDTableX2_wksp
  - HUF_decodeSymbolX2
  - HUF_decodeLastSymbolX2
  - HUF_DECODE_SYMBOLX2_0
  - HUF_DECODE_SYMBOLX2_1
  - HUF_DECODE_SYMBOLX2_2
  - HUF_decodeStreamX2
  - HUF_decompress1X2_usingDTable_internal_body
  - HUF_decompress4X2_usingDTable_internal_body
  - HUF_decompress4X2_usingDTable_internal_bmi2
  - HUF_decompress4X2_usingDTable_internal_default
  - HUF_decompress4X2_usingDTable_internal_fast_c_loop
  - HUF_4X2_DECODE_SYMBOL
  - HUF_4X2_RELOAD_STREAM
  - HUF_decompress4X2_usingDTable_internal_fast
  - HUF_decompress4X2_usingDTable_internal
  - HUF_decompress1X2_DCtx_wksp
  - HUF_decompress4X2_DCtx_wksp
  - HUF_selectDecoder
  - HUF_decompress1X_DCtx_wksp
  - HUF_decompress1X_usingDTable
  - HUF_decompress1X1_DCtx_wksp
  - HUF_decompress4X_usingDTable
  - HUF_decompress4X_hufOnly_wksp
  - SEQSYMBOL_TABLE_SIZE
  - ZSTD_DCtx_get_bmi2
  - ZSTD_isLegacy
  - ZSTD_getDecompressedSize_legacy
  - ZSTD_decompressLegacy
  - ZSTD_frameSizeInfo::ZSTD_findFrameSizeInfoLegacy
  - ZSTD_findFrameCompressedSizeLegacy
  - ZSTD_freeLegacyStreamContext
  - ZSTD_initLegacyStream
  - ZSTD_decompressLegacyStream
  - ZSTD_DDict_dictContent
  - ZSTD_DDict_dictSize
  - ZSTD_copyDDictParameters
  - ZSTD_loadEntropy_intoDDict
  - ZSTD_initDDict_internal
  - ZSTD_createDDict_advanced
  - ZSTD_createDDict
  - ZSTD_createDDict_byReference
  - ZSTD_initStaticDDict
  - ZSTD_freeDDict
  - ZSTD_estimateDDictSize
  - ZSTD_sizeof_DDict
  - ZSTD_getDictID_fromDDict
  - ZSTD_DDictHashSet_getIndex
  - ZSTD_DDictHashSet_emplaceDDict
  - ZSTD_DDictHashSet_expand
  - ZSTD_DDictHashSet_getDDict
  - ZSTD_createDDictHashSet
  - ZSTD_freeDDictHashSet
  - ZSTD_DDictHashSet_addDDict
  - ZSTD_sizeof_DCtx
  - ZSTD_estimateDCtxSize
  - ZSTD_startingInputLength
  - ZSTD_DCtx_resetParameters
  - ZSTD_initDCtx_internal
  - ZSTD_initStaticDCtx
  - ZSTD_createDCtx_internal
  - ZSTD_createDCtx_advanced
  - ZSTD_createDCtx
  - ZSTD_clearDict
  - ZSTD_freeDCtx
  - ZSTD_copyDCtx
  - ZSTD_DCtx_selectFrameDDict
  - ZSTD_isFrame
  - ZSTD_isSkippableFrame
  - ZSTD_frameHeaderSize_internal
  - ZSTD_frameHeaderSize
  - ZSTD_getFrameHeader_advanced
  - ZSTD_getFrameHeader
  - ZSTD_getFrameContentSize
  - readSkippableFrameSize
  - ZSTD_readSkippableFrame
  - ZSTD_findDecompressedSize
  - ZSTD_getDecompressedSize
  - ZSTD_decodeFrameHeader
  - ZSTD_errorFrameSizeInfo
  - ZSTD_findFrameSizeInfo
  - ZSTD_findFrameCompressedSize_advanced
  - ZSTD_findFrameCompressedSize
  - ZSTD_decompressBound
  - ZSTD_decompressionMargin
  - ZSTD_insertBlock
  - ZSTD_copyRawBlock
  - ZSTD_setRleBlock
  - ZSTD_DCtx_trace_end
  - ZSTD_decompressFrame
  - ZSTD_decompressMultiFrame
  - ZSTD_decompress_usingDict
  - ZSTD_getDDict
  - ZSTD_decompressDCtx
  - ZSTD_decompress
  - ZSTD_nextSrcSizeToDecompress
  - ZSTD_nextSrcSizeToDecompressWithInputSize
  - ZSTD_nextInputType
  - ZSTD_isSkipFrame
  - ZSTD_decompressContinue
  - ZSTD_refDictContent
  - ZSTD_loadDEntropy
  - ZSTD_decompress_insertDictionary
  - ZSTD_decompressBegin
  - ZSTD_decompressBegin_usingDict
  - ZSTD_decompressBegin_usingDDict
  - ZSTD_getDictID_fromDict
  - ZSTD_getDictID_fromFrame
  - ZSTD_decompress_usingDDict
  - ZSTD_createDStream
  - ZSTD_initStaticDStream
  - ZSTD_createDStream_advanced
  - ZSTD_freeDStream
  - ZSTD_DStreamInSize
  - ZSTD_DStreamOutSize
  - ZSTD_DCtx_loadDictionary_advanced
  - ZSTD_DCtx_loadDictionary_byReference
  - ZSTD_DCtx_loadDictionary
  - ZSTD_DCtx_refPrefix_advanced
  - ZSTD_DCtx_refPrefix
  - ZSTD_initDStream_usingDict
  - ZSTD_initDStream
  - ZSTD_initDStream_usingDDict
  - ZSTD_resetDStream
  - ZSTD_DCtx_refDDict
  - ZSTD_DCtx_setMaxWindowSize
  - ZSTD_DCtx_setFormat
  - ZSTD_dParam_getBounds
  - ZSTD_dParam_withinBounds
  - CHECK_DBOUNDS
  - ZSTD_DCtx_getParameter
  - ZSTD_DCtx_setParameter
  - ZSTD_DCtx_reset
  - ZSTD_sizeof_DStream
  - ZSTD_decodingBufferSize_internal
  - ZSTD_decodingBufferSize_min
  - ZSTD_estimateDStreamSize
  - ZSTD_estimateDStreamSize_fromFrame
  - ZSTD_DCtx_isOverflow
  - ZSTD_DCtx_updateOversizedDuration
  - ZSTD_DCtx_isOversizedTooLong
  - ZSTD_checkOutBuffer
  - ZSTD_decompressContinueStream
  - ZSTD_decompressStream
  - ZSTD_decompressStream_simpleArgs
  - ZSTD_copy4
  - ZSTD_blockSizeMax
  - ZSTD_getcBlockSize
  - ZSTD_allocateLiteralsBuffer
  - ZSTD_decodeLiteralsBlock
  - ZSTD_decodeLiteralsBlock_wrapper
  - ZSTD_buildSeqTable_rle
  - ZSTD_buildFSETable_body
  - ZSTD_buildFSETable_body_default
  - ZSTD_buildFSETable_body_bmi2
  - ZSTD_buildFSETable
  - ZSTD_buildSeqTable
  - ZSTD_decodeSeqHeaders
  - ZSTD_overlapCopy8
  - ZSTD_safecopy
  - ZSTD_safecopyDstBeforeSrc
  - ZSTD_execSequenceEnd
  - ZSTD_execSequenceEndSplitLitBuffer
  - ZSTD_execSequence
  - ZSTD_execSequenceSplitLitBuffer
  - ZSTD_initFseState
  - ZSTD_updateFseStateWithDInfo
  - ZSTD_decodeSequence
  - ZSTD_dictionaryIsActive
  - ZSTD_assertValidSequence
  - ZSTD_decompressSequences_bodySplitLitBuffer
  - ZSTD_decompressSequences_body
  - ZSTD_decompressSequences_default
  - ZSTD_decompressSequencesSplitLitBuffer_default
  - ZSTD_prefetchMatch
  - ZSTD_decompressSequencesLong_body
  - ZSTD_decompressSequencesLong_default
  - ZSTD_decompressSequences_bmi2
  - ZSTD_decompressSequencesSplitLitBuffer_bmi2
  - ZSTD_decompressSequencesLong_bmi2
  - ZSTD_decompressSequences
  - ZSTD_decompressSequencesSplitLitBuffer
  - ZSTD_decompressSequencesLong
  - ZSTD_totalHistorySize
  - ZSTD_getOffsetInfo
  - ZSTD_maxShortOffset
  - ZSTD_checkContinuity
  - ZSTD_decompressBlock_deprecated
  - ZSTD_decompressBlock
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  - ZDICT_DEPRECATED
  - DISPLAY
  - LOCALDISPLAYLEVEL
  - DISPLAYLEVEL
  - LOCALDISPLAYUPDATE
  - DISPLAYUPDATE
  - COVER_map_clear
  - COVER_map_init
  - COVER_map_hash
  - COVER_map_index
  - COVER_map_at
  - COVER_map_remove
  - COVER_map_destroy
  - COVER_sum
  - COVER_cmp
  - COVER_cmp8
  - COVER_strict_cmp
  - COVER_strict_cmp8
  - COVER_lower_bound
  - COVER_groupBy
  - COVER_group
  - COVER_selectSegment
  - COVER_checkParameters
  - COVER_ctx_destroy
  - COVER_ctx_init
  - COVER_warnOnSmallCorpus
  - COVER_computeEpochs
  - COVER_buildDictionary
  - ZDICT_trainFromBuffer_cover
  - COVER_checkTotalCompressedSize
  - COVER_best_init
  - COVER_best_wait
  - COVER_best_destroy
  - COVER_best_start
  - COVER_best_finish
  - setDictSelection
  - COVER_dictSelectionError
  - COVER_dictSelectionIsError
  - COVER_dictSelectionFree
  - COVER_selectDict
  - COVER_tryParameters
  - ZDICT_optimizeTrainFromBuffer_cover
  - SWAP
  - MIN
  - MAX
  - STACK_PUSH
  - STACK_PUSH5
  - STACK_POP
  - STACK_POP5
  - BUCKET_A
  - BUCKET_B
  - BUCKET_BSTAR
  - BUCKET_B
  - BUCKET_BSTAR
  - ss_ilg
  - ss_isqrt
  - ss_compare
  - ss_insertionsort
  - ss_fixdown
  - ss_heapsort
  - ss_median3
  - ss_median5
  - ss_pivot
  - ss_partition
  - ss_mintrosort
  - ss_blockswap
  - ss_rotate
  - ss_inplacemerge
  - ss_mergeforward
  - ss_mergebackward
  - ss_swapmerge
  - GETIDX
  - MERGE_CHECK
  - sssort
  - tr_ilg
  - tr_insertionsort
  - tr_fixdown
  - tr_heapsort
  - tr_median3
  - tr_median5
  - tr_pivot
  - trbudget_init
  - trbudget_check
  - tr_partition
  - tr_copy
  - tr_partialcopy
  - tr_introsort
  - trsort
  - sort_typeBstar
  - construct_SA
  - construct_BWT
  - construct_BWT_indexes
  - divsufsort
  - divbwt
  - DISPLAY
  - LOCALDISPLAYLEVEL
  - DISPLAYLEVEL
  - LOCALDISPLAYUPDATE
  - DISPLAYUPDATE
  - FASTCOVER_hashPtrToIndex
  - FASTCOVER_selectSegment
  - FASTCOVER_checkParameters
  - FASTCOVER_ctx_destroy
  - FASTCOVER_computeFrequency
  - FASTCOVER_ctx_init
  - FASTCOVER_buildDictionary
  - FASTCOVER_tryParameters
  - FASTCOVER_convertToCoverParams
  - FASTCOVER_convertToFastCoverParams
  - ZDICT_trainFromBuffer_fastCover
  - ZDICT_optimizeTrainFromBuffer_fastCover
  - DISPLAY
  - DISPLAYLEVEL
  - ZDICT_clockSpan
  - ZDICT_printHex
  - ZDICT_isError
  - ZDICT_getErrorName
  - ZDICT_getDictID
  - ZDICT_getDictHeaderSize
  - ZDICT_count
  - ZDICT_initDictItem
  - ZDICT_analyzePos
  - isIncluded
  - ZDICT_tryMerge
  - ZDICT_removeDictItem
  - ZDICT_insertDictItem
  - ZDICT_dictSize
  - ZDICT_trainBuffer_legacy
  - DISPLAYUPDATE
  - ZDICT_fillNoise
  - ZDICT_countEStats
  - ZDICT_totalSampleSize
  - ZDICT_insertSortCount
  - ZDICT_flatLit
  - ZDICT_analyzeEntropy
  - ZDICT_maxRep
  - ZDICT_finalizeDictionary
  - ZDICT_addEntropyTablesFromBuffer_advanced
  - ZDICT_trainFromBuffer_unsafe_legacy
  - ZDICT_trainFromBuffer_legacy
  - ZDICT_trainFromBuffer
  - ZDICT_addEntropyTablesFromBuffer
  source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
  types:
    enum:
    - enumerators:
      - name: XXH_SCALAR
        value: '0'
      - name: XXH_SSE2
        value: '1'
      - name: XXH_AVX512
        value: '3'
      - name: XXH_NEON
        value: '4'
      - name: XXH_AVX2
        value: '2'
      - name: XXH_VSX
        value: '5'
      - name: XXH_SVE
        value: '6'
      item_type: enum
      name: XXH_VECTOR_TYPE
      pos:
        line_end: 11998
        line_start: 11981
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    preproc_defs:
    - item_type: preproc_def
      name: DEBUGLEVEL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_NAMESPACE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_
    - item_type: preproc_def
      name: ZSTD_LEGACY_SUPPORT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_TRACE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_DISABLE_ASM
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUGLEVEL
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: LINE_AS_STRING
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: TOSTRING(__LINE__)
    - item_type: preproc_def
      name: ZSTD_MEMORY_SANITIZER
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_MEMORY_SANITIZER
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ADDRESS_SANITIZER
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_ADDRESS_SANITIZER
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_ADDRESS_SANITIZER
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_DATAFLOW_SANITIZER
      pos:
        line_end: 437
        line_start: 436
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_DATAFLOW_SANITIZER
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DYNAMIC_BMI2
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DYNAMIC_BMI2
      pos:
        line_end: 463
        line_start: 462
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ASM_SUPPORTED
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ASM_SUPPORTED
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ASM_SUPPORTED
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_ASM_SUPPORTED
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ASM_SUPPORTED
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_ENABLE_ASM_X86_64_BMI2
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_ENABLE_ASM_X86_64_BMI2
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_CET_ENDBRANCH
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: _CET_ENDBR
    - item_type: preproc_def
      name: INLINE_KEYWORD
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: inline
    - item_type: preproc_def
      name: FORCE_INLINE_ATTR
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((always_inline))
    - item_type: preproc_def
      name: FORCE_INLINE_ATTR
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: WIN_CDECL
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __cdecl
    - item_type: preproc_def
      name: UNUSED_ATTR
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: FORCE_INLINE_TEMPLATE
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static INLINE_KEYWORD FORCE_INLINE_ATTR UNUSED_ATTR
    - item_type: preproc_def
      name: HINT_INLINE
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static INLINE_KEYWORD
    - item_type: preproc_def
      name: HINT_INLINE
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FORCE_INLINE_TEMPLATE
    - item_type: preproc_def
      name: MEM_STATIC
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline UNUSED_ATTR
    - item_type: preproc_def
      name: MEM_STATIC
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static inline
    - item_type: preproc_def
      name: MEM_STATIC
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline
    - item_type: preproc_def
      name: MEM_STATIC
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'static  '
    - item_type: preproc_def
      name: FORCE_NOINLINE
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __declspec(noinline)
    - item_type: preproc_def
      name: FORCE_NOINLINE
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __attribute__((__noinline__))
    - item_type: preproc_def
      name: FORCE_NOINLINE
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: BMI2_TARGET_ATTRIBUTE
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: TARGET_ATTRIBUTE("lzcnt,bmi,bmi2")
    - item_type: preproc_def
      name: CACHELINE_SIZE
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: DONT_VECTORIZE
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((optimize("no-tree-vectorize")))
    - item_type: preproc_def
      name: DONT_VECTORIZE
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: _Pragma("GCC optimize(\"no-tree-vectorize\")")
    - item_type: preproc_def
      name: ZSTD_UNREACHABLE
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: do { assert(0), __builtin_unreachable(); } while (0)
    - item_type: preproc_def
      name: ZSTD_UNREACHABLE
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: do { assert(0); } while (0)
    - item_type: preproc_def
      name: STATIC_BMI2
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATIC_BMI2
      pos:
        line_end: 733
        line_start: 732
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATIC_BMI2
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_FALLTHROUGH
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: ZSTD_FALLTHROUGH
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: ZSTD_FALLTHROUGH
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ; __attribute__((__fallthrough__))
    - item_type: preproc_def
      name: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((no_sanitize("signed-integer-overflow")))
    - item_type: preproc_def
      name: ZSTD_ALLOW_POINTER_OVERFLOW_ATTR
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((no_sanitize("pointer-overflow")))
    - item_type: preproc_def
      name: ZSTD_ASAN_DONT_POISON_WORKSPACE
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_MSAN_DONT_POISON_WORKSPACE
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MEM_FORCE_MEMORY_ACCESS
      pos:
        line_end: 1083
        line_start: 1082
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTDERRORLIB_VISIBLE
      pos:
        line_end: 1425
        line_start: 1424
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTDERRORLIB_VISIBILITY
    - item_type: preproc_def
      name: ZSTDERRORLIB_VISIBLE
      pos:
        line_end: 1427
        line_start: 1426
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZSTDERRORLIB_HIDDEN
      pos:
        line_end: 1435
        line_start: 1434
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport) ZSTDERRORLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 1444
        line_start: 1443
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '__declspec(dllimport) ZSTDERRORLIB_VISIBLE '
    - item_type: preproc_def
      name: ZSTDERRORLIB_API
      pos:
        line_end: 1446
        line_start: 1445
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTDERRORLIB_VISIBLE
    - item_type: preproc_def
      name: ERR_STATIC
      pos:
        line_end: 1524
        line_start: 1523
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __attribute__((unused))
    - item_type: preproc_def
      name: ERR_STATIC
      pos:
        line_end: 1526
        line_start: 1525
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static inline
    - item_type: preproc_def
      name: ERR_STATIC
      pos:
        line_end: 1528
        line_start: 1527
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline
    - item_type: preproc_def
      name: ERR_STATIC
      pos:
        line_end: 1530
        line_start: 1529
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'static  '
    - item_type: preproc_def
      name: FSE_PUBLIC_API
      pos:
        line_end: 1694
        line_start: 1693
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: FSE_PUBLIC_API
      pos:
        line_end: 1696
        line_start: 1695
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: FSE_PUBLIC_API
      pos:
        line_end: 1698
        line_start: 1697
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '__declspec(dllimport) '
    - item_type: preproc_def
      name: FSE_VERSION_MAJOR
      pos:
        line_end: 1704
        line_start: 1703
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FSE_VERSION_MINOR
      pos:
        line_end: 1705
        line_start: 1704
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '9'
    - item_type: preproc_def
      name: FSE_VERSION_RELEASE
      pos:
        line_end: 1706
        line_start: 1705
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FSE_LIB_VERSION
      pos:
        line_end: 1708
        line_start: 1707
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FSE_VERSION_MAJOR.FSE_VERSION_MINOR.FSE_VERSION_RELEASE
    - item_type: preproc_def
      name: FSE_VERSION_STRING
      pos:
        line_end: 1711
        line_start: 1710
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FSE_EXPAND_AND_QUOTE(FSE_LIB_VERSION)
    - item_type: preproc_def
      name: FSE_VERSION_NUMBER
      pos:
        line_end: 1713
        line_start: 1712
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (FSE_VERSION_MAJOR *100*100 + FSE_VERSION_MINOR *100 + FSE_VERSION_RELEASE)
    - item_type: preproc_def
      name: STREAM_ACCUMULATOR_MIN_32
      pos:
        line_end: 2146
        line_start: 2145
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '25'
    - item_type: preproc_def
      name: STREAM_ACCUMULATOR_MIN_64
      pos:
        line_end: 2147
        line_start: 2146
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '57'
    - item_type: preproc_def
      name: STREAM_ACCUMULATOR_MIN
      pos:
        line_end: 2148
        line_start: 2147
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '((U32)(MEM_32bits() ? STREAM_ACCUMULATOR_MIN_32 : STREAM_ACCUMULATOR_MIN_64))'
    - item_type: preproc_def
      name: BIT_MASK_SIZE
      pos:
        line_end: 2244
        line_start: 2243
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (sizeof(BIT_mask) / sizeof(BIT_mask[0]))
    - item_type: preproc_def
      name: FSE_NCOUNTBOUND
      pos:
        line_end: 2564
        line_start: 2563
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '512'
    - item_type: preproc_def
      name: FSE_MAX_MEMORY_USAGE
      pos:
        line_end: 2911
        line_start: 2910
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '14'
    - item_type: preproc_def
      name: FSE_DEFAULT_MEMORY_USAGE
      pos:
        line_end: 2914
        line_start: 2913
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '13'
    - item_type: preproc_def
      name: FSE_MAX_SYMBOL_VALUE
      pos:
        line_end: 2924
        line_start: 2923
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '255'
    - item_type: preproc_def
      name: FSE_FUNCTION_TYPE
      pos:
        line_end: 2930
        line_start: 2929
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: BYTE
    - item_type: preproc_def
      name: FSE_DECODE_TYPE
      pos:
        line_end: 2932
        line_start: 2931
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FSE_decode_t
    - item_type: preproc_def
      name: FSE_MAX_TABLELOG
      pos:
        line_end: 2941
        line_start: 2940
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (FSE_MAX_MEMORY_USAGE-2)
    - item_type: preproc_def
      name: FSE_MAX_TABLESIZE
      pos:
        line_end: 2942
        line_start: 2941
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1U<<FSE_MAX_TABLELOG)
    - item_type: preproc_def
      name: FSE_MAXTABLESIZE_MASK
      pos:
        line_end: 2943
        line_start: 2942
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (FSE_MAX_TABLESIZE-1)
    - item_type: preproc_def
      name: FSE_DEFAULT_TABLELOG
      pos:
        line_end: 2944
        line_start: 2943
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (FSE_DEFAULT_MEMORY_USAGE-2)
    - item_type: preproc_def
      name: FSE_MIN_TABLELOG
      pos:
        line_end: 2945
        line_start: 2944
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FSE_TABLELOG_ABSOLUTE_MAX
      pos:
        line_end: 2947
        line_start: 2946
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '15'
    - item_type: preproc_def
      name: HUF_BLOCKSIZE_MAX
      pos:
        line_end: 2992
        line_start: 2991
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(128 * 1024)   '
    - item_type: preproc_def
      name: HUF_WORKSPACE_SIZE_U64
      pos:
        line_end: 3001
        line_start: 3000
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_WORKSPACE_SIZE / sizeof(U64))
    - item_type: preproc_def
      name: HUF_TABLELOG_MAX
      pos:
        line_end: 3004
        line_start: 3003
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '12      '
    - item_type: preproc_def
      name: HUF_TABLELOG_DEFAULT
      pos:
        line_end: 3005
        line_start: 3004
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '11      '
    - item_type: preproc_def
      name: HUF_SYMBOLVALUE_MAX
      pos:
        line_end: 3006
        line_start: 3005
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '255'
    - item_type: preproc_def
      name: HUF_TABLELOG_ABSOLUTEMAX
      pos:
        line_end: 3008
        line_start: 3007
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '12  '
    - item_type: preproc_def
      name: HUF_CTABLEBOUND
      pos:
        line_end: 3018
        line_start: 3017
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '129'
    - item_type: preproc_def
      name: HUF_OPTIMAL_DEPTH_THRESHOLD
      pos:
        line_end: 3084
        line_start: 3083
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_btultra
    - item_type: preproc_def
      name: HUF_CTABLE_WORKSPACE_SIZE_U32
      pos:
        line_end: 3128
        line_start: 3127
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((4 * (HUF_SYMBOLVALUE_MAX + 1)) + 192)
    - item_type: preproc_def
      name: HUF_CTABLE_WORKSPACE_SIZE
      pos:
        line_end: 3129
        line_start: 3128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned))
    - item_type: preproc_def
      name: HUF_READ_STATS_WORKSPACE_SIZE_U32
      pos:
        line_end: 3148
        line_start: 3147
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1)
    - item_type: preproc_def
      name: HUF_READ_STATS_WORKSPACE_SIZE
      pos:
        line_end: 3149
        line_start: 3148
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned))
    - item_type: preproc_def
      name: HUF_DECOMPRESS_WORKSPACE_SIZE
      pos:
        line_end: 3202
        line_start: 3201
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((2 << 10) + (1 << 9))
    - item_type: preproc_def
      name: HUF_DECOMPRESS_WORKSPACE_SIZE_U32
      pos:
        line_end: 3203
        line_start: 3202
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32))
    - item_type: preproc_def
      name: FSE_isError
      pos:
        line_end: 3666
        line_start: 3665
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: WINVER
      pos:
        line_end: 3998
        line_start: 3997
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 4003
        line_start: 4002
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x0600'
    - item_type: preproc_def
      name: ZSTD_pthread_mutex_t
      pos:
        line_end: 4016
        line_start: 4015
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: CRITICAL_SECTION
    - item_type: preproc_def
      name: ZSTD_pthread_cond_t
      pos:
        line_end: 4023
        line_start: 4022
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: CONDITION_VARIABLE
    - item_type: preproc_def
      name: ZSTD_pthread_mutex_t
      pos:
        line_end: 4049
        line_start: 4048
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_mutex_t
    - item_type: preproc_def
      name: ZSTD_pthread_cond_t
      pos:
        line_end: 4055
        line_start: 4054
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_cond_t
    - item_type: preproc_def
      name: ZSTD_pthread_t
      pos:
        line_end: 4062
        line_start: 4061
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_t
    - item_type: preproc_def
      name: ZSTD_pthread_mutex_t
      pos:
        line_end: 4074
        line_start: 4073
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_mutex_t*
    - item_type: preproc_def
      name: ZSTD_pthread_cond_t
      pos:
        line_end: 4080
        line_start: 4079
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_cond_t*
    - item_type: preproc_def
      name: ZSTD_pthread_t
      pos:
        line_end: 4087
        line_start: 4086
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: pthread_t
    - item_type: preproc_def
      name: ZSTDLIB_VISIBLE
      pos:
        line_end: 4342
        line_start: 4341
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTDLIB_VISIBILITY
    - item_type: preproc_def
      name: ZSTDLIB_VISIBLE
      pos:
        line_end: 4344
        line_start: 4343
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZSTDLIB_HIDDEN
      pos:
        line_end: 4352
        line_start: 4351
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 4359
        line_start: 4358
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 4361
        line_start: 4360
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '__declspec(dllimport) ZSTDLIB_VISIBLE '
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 4363
        line_start: 4362
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTD_VERSION_MAJOR
      pos:
        line_end: 4423
        line_start: 4422
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_VERSION_MINOR
      pos:
        line_end: 4424
        line_start: 4423
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ZSTD_VERSION_RELEASE
      pos:
        line_end: 4425
        line_start: 4424
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: ZSTD_VERSION_NUMBER
      pos:
        line_end: 4426
        line_start: 4425
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
    - item_type: preproc_def
      name: ZSTD_LIB_VERSION
      pos:
        line_end: 4432
        line_start: 4431
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_VERSION_MAJOR.ZSTD_VERSION_MINOR.ZSTD_VERSION_RELEASE
    - item_type: preproc_def
      name: ZSTD_VERSION_STRING
      pos:
        line_end: 4435
        line_start: 4434
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_EXPAND_AND_QUOTE(ZSTD_LIB_VERSION)
    - item_type: preproc_def
      name: ZSTD_CLEVEL_DEFAULT
      pos:
        line_end: 4445
        line_start: 4444
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ZSTD_MAGICNUMBER
      pos:
        line_end: 4453
        line_start: 4452
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB528    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_DICTIONARY
      pos:
        line_end: 4454
        line_start: 4453
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xEC30A437    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_SKIPPABLE_START
      pos:
        line_end: 4455
        line_start: 4454
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x184D2A50    '
    - item_type: preproc_def
      name: ZSTD_MAGIC_SKIPPABLE_MASK
      pos:
        line_end: 4456
        line_start: 4455
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFFFFFFF0'
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZELOG_MAX
      pos:
        line_end: 4458
        line_start: 4457
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '17'
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZE_MAX
      pos:
        line_end: 4459
        line_start: 4458
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1<<ZSTD_BLOCKSIZELOG_MAX)
    - item_type: preproc_def
      name: ZSTD_CONTENTSIZE_UNKNOWN
      pos:
        line_end: 4507
        line_start: 4506
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (0ULL - 1)
    - item_type: preproc_def
      name: ZSTD_CONTENTSIZE_ERROR
      pos:
        line_end: 4508
        line_start: 4507
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (0ULL - 2)
    - item_type: preproc_def
      name: ZSTD_MAX_INPUT_SIZE
      pos:
        line_end: 4547
        line_start: 4546
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '((sizeof(size_t)==8) ? 0xFF00FF00FF00FF00ULL : 0xFF00FF00U)'
    - item_type: preproc_def
      name: ZSTDLIB_API
      pos:
        line_end: 4549
        line_start: 4547
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'size_t ZSTD_compressBound(size_t srcSize); '
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 5518
        line_start: 5517
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 5520
        line_start: 5519
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllimport) ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTDLIB_STATIC_API
      pos:
        line_end: 5522
        line_start: 5521
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTDLIB_VISIBLE
    - item_type: preproc_def
      name: ZSTD_FRAMEHEADERSIZE_MAX
      pos:
        line_end: 5538
        line_start: 5537
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '18   '
    - item_type: preproc_def
      name: ZSTD_SKIPPABLEHEADERSIZE
      pos:
        line_end: 5539
        line_start: 5538
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX_32
      pos:
        line_end: 5542
        line_start: 5541
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '30'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX_64
      pos:
        line_end: 5543
        line_start: 5542
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '31'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MAX
      pos:
        line_end: 5544
        line_start: 5543
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '((int)(sizeof(size_t) == 4 ? ZSTD_WINDOWLOG_MAX_32 : ZSTD_WINDOWLOG_MAX_64))'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_MIN
      pos:
        line_end: 5545
        line_start: 5544
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10'
    - item_type: preproc_def
      name: ZSTD_HASHLOG_MAX
      pos:
        line_end: 5546
        line_start: 5545
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '((ZSTD_WINDOWLOG_MAX < 30) ? ZSTD_WINDOWLOG_MAX : 30)'
    - item_type: preproc_def
      name: ZSTD_HASHLOG_MIN
      pos:
        line_end: 5547
        line_start: 5546
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX_32
      pos:
        line_end: 5548
        line_start: 5547
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '29'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX_64
      pos:
        line_end: 5549
        line_start: 5548
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '30'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MAX
      pos:
        line_end: 5550
        line_start: 5549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '((int)(sizeof(size_t) == 4 ? ZSTD_CHAINLOG_MAX_32 : ZSTD_CHAINLOG_MAX_64))'
    - item_type: preproc_def
      name: ZSTD_CHAINLOG_MIN
      pos:
        line_end: 5551
        line_start: 5550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_HASHLOG_MIN
    - item_type: preproc_def
      name: ZSTD_SEARCHLOG_MAX
      pos:
        line_end: 5552
        line_start: 5551
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZSTD_WINDOWLOG_MAX-1)
    - item_type: preproc_def
      name: ZSTD_SEARCHLOG_MIN
      pos:
        line_end: 5553
        line_start: 5552
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_MINMATCH_MAX
      pos:
        line_end: 5554
        line_start: 5553
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '7   '
    - item_type: preproc_def
      name: ZSTD_MINMATCH_MIN
      pos:
        line_end: 5555
        line_start: 5554
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: ZSTD_TARGETLENGTH_MAX
      pos:
        line_end: 5556
        line_start: 5555
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_BLOCKSIZE_MAX
    - item_type: preproc_def
      name: ZSTD_TARGETLENGTH_MIN
      pos:
        line_end: 5557
        line_start: 5556
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0   '
    - item_type: preproc_def
      name: ZSTD_STRATEGY_MIN
      pos:
        line_end: 5558
        line_start: 5557
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_fast
    - item_type: preproc_def
      name: ZSTD_STRATEGY_MAX
      pos:
        line_end: 5559
        line_start: 5558
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_btultra2
    - item_type: preproc_def
      name: ZSTD_BLOCKSIZE_MAX_MIN
      pos:
        line_end: 5560
        line_start: 5559
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(1 << 10) '
    - item_type: preproc_def
      name: ZSTD_OVERLAPLOG_MIN
      pos:
        line_end: 5563
        line_start: 5562
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_OVERLAPLOG_MAX
      pos:
        line_end: 5564
        line_start: 5563
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '9'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_LIMIT_DEFAULT
      pos:
        line_end: 5570
        line_start: 5565
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '27   '
    - item_type: preproc_def
      name: ZSTD_LDM_HASHLOG_MIN
      pos:
        line_end: 5574
        line_start: 5573
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_HASHLOG_MIN
    - item_type: preproc_def
      name: ZSTD_LDM_HASHLOG_MAX
      pos:
        line_end: 5575
        line_start: 5574
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_HASHLOG_MAX
    - item_type: preproc_def
      name: ZSTD_LDM_MINMATCH_MIN
      pos:
        line_end: 5576
        line_start: 5575
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ZSTD_LDM_MINMATCH_MAX
      pos:
        line_end: 5577
        line_start: 5576
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: ZSTD_LDM_BUCKETSIZELOG_MIN
      pos:
        line_end: 5578
        line_start: 5577
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_LDM_BUCKETSIZELOG_MAX
      pos:
        line_end: 5579
        line_start: 5578
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_LDM_HASHRATELOG_MIN
      pos:
        line_end: 5580
        line_start: 5579
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_LDM_HASHRATELOG_MAX
      pos:
        line_end: 5581
        line_start: 5580
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN)
    - item_type: preproc_def
      name: ZSTD_TARGETCBLOCKSIZE_MIN
      pos:
        line_end: 5584
        line_start: 5583
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1340 '
    - item_type: preproc_def
      name: ZSTD_TARGETCBLOCKSIZE_MAX
      pos:
        line_end: 5585
        line_start: 5584
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_BLOCKSIZE_MAX
    - item_type: preproc_def
      name: ZSTD_SRCSIZEHINT_MIN
      pos:
        line_end: 5586
        line_start: 5585
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_SRCSIZEHINT_MAX
      pos:
        line_end: 5587
        line_start: 5586
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: ZSTD_c_rsyncable
      pos:
        line_end: 6278
        line_start: 6277
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam1
    - item_type: preproc_def
      name: ZSTD_c_format
      pos:
        line_end: 6283
        line_start: 6282
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam2
    - item_type: preproc_def
      name: ZSTD_c_forceMaxWindow
      pos:
        line_end: 6287
        line_start: 6286
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam3
    - item_type: preproc_def
      name: ZSTD_c_forceAttachDict
      pos:
        line_end: 6293
        line_start: 6292
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam4
    - item_type: preproc_def
      name: ZSTD_c_literalCompressionMode
      pos:
        line_end: 6305
        line_start: 6304
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam5
    - item_type: preproc_def
      name: ZSTD_c_srcSizeHint
      pos:
        line_end: 6311
        line_start: 6310
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam7
    - item_type: preproc_def
      name: ZSTD_c_enableDedicatedDictSearch
      pos:
        line_end: 6367
        line_start: 6366
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam8
    - item_type: preproc_def
      name: ZSTD_c_stableInBuffer
      pos:
        line_end: 6400
        line_start: 6399
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam9
    - item_type: preproc_def
      name: ZSTD_c_stableOutBuffer
      pos:
        line_end: 6420
        line_start: 6419
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam10
    - item_type: preproc_def
      name: ZSTD_c_blockDelimiters
      pos:
        line_end: 6431
        line_start: 6430
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam11
    - item_type: preproc_def
      name: ZSTD_c_validateSequences
      pos:
        line_end: 6448
        line_start: 6447
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam12
    - item_type: preproc_def
      name: ZSTD_c_useBlockSplitter
      pos:
        line_end: 6459
        line_start: 6458
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam13
    - item_type: preproc_def
      name: ZSTD_c_useRowMatchFinder
      pos:
        line_end: 6471
        line_start: 6470
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam14
    - item_type: preproc_def
      name: ZSTD_c_deterministicRefPrefix
      pos:
        line_end: 6491
        line_start: 6490
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam15
    - item_type: preproc_def
      name: ZSTD_c_prefetchCDictTables
      pos:
        line_end: 6514
        line_start: 6513
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam16
    - item_type: preproc_def
      name: ZSTD_c_enableSeqProducerFallback
      pos:
        line_end: 6528
        line_start: 6527
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam17
    - item_type: preproc_def
      name: ZSTD_c_maxBlockSize
      pos:
        line_end: 6540
        line_start: 6539
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam18
    - item_type: preproc_def
      name: ZSTD_c_searchForExternalRepcodes
      pos:
        line_end: 6564
        line_start: 6563
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_c_experimentalParam19
    - item_type: preproc_def
      name: ZSTD_d_format
      pos:
        line_end: 6708
        line_start: 6707
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam1
    - item_type: preproc_def
      name: ZSTD_d_stableOutBuffer
      pos:
        line_end: 6739
        line_start: 6738
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam2
    - item_type: preproc_def
      name: ZSTD_d_forceIgnoreChecksum
      pos:
        line_end: 6750
        line_start: 6749
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam3
    - item_type: preproc_def
      name: ZSTD_d_refMultipleDDicts
      pos:
        line_end: 6773
        line_start: 6772
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam4
    - item_type: preproc_def
      name: ZSTD_d_disableHuffmanAssembly
      pos:
        line_end: 6784
        line_start: 6783
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam5
    - item_type: preproc_def
      name: ZSTD_d_maxBlockSize
      pos:
        line_end: 6800
        line_start: 6799
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_d_experimentalParam6
    - item_type: preproc_def
      name: ZSTD_SEQUENCE_PRODUCER_ERROR
      pos:
        line_end: 7135
        line_start: 7134
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((size_t)(-1))
    - item_type: preproc_def
      name: XXH_NAMESPACE
      pos:
        line_end: 8216
        line_start: 8215
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8519
        line_start: 8518
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline __attribute__((unused))
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8521
        line_start: 8520
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8523
        line_start: 8522
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8526
        line_start: 8525
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NAMESPACE
      pos:
        line_end: 8596
        line_start: 8595
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_INLINE_
    - item_type: preproc_def
      name: XXH_OK
      pos:
        line_end: 8605
        line_start: 8604
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH_OK)
    - item_type: preproc_def
      name: XXH_ERROR
      pos:
        line_end: 8606
        line_start: 8605
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH_ERROR)
    - item_type: preproc_def
      name: XXH_errorcode
      pos:
        line_end: 8607
        line_start: 8606
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH_errorcode)
    - item_type: preproc_def
      name: XXH32_canonical_t
      pos:
        line_end: 8608
        line_start: 8607
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH32_canonical_t)
    - item_type: preproc_def
      name: XXH64_canonical_t
      pos:
        line_end: 8609
        line_start: 8608
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH64_canonical_t)
    - item_type: preproc_def
      name: XXH128_canonical_t
      pos:
        line_end: 8610
        line_start: 8609
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH128_canonical_t)
    - item_type: preproc_def
      name: XXH32_state_s
      pos:
        line_end: 8611
        line_start: 8610
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH32_state_s)
    - item_type: preproc_def
      name: XXH32_state_t
      pos:
        line_end: 8612
        line_start: 8611
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH32_state_t)
    - item_type: preproc_def
      name: XXH64_state_s
      pos:
        line_end: 8613
        line_start: 8612
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH64_state_s)
    - item_type: preproc_def
      name: XXH64_state_t
      pos:
        line_end: 8614
        line_start: 8613
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH64_state_t)
    - item_type: preproc_def
      name: XXH3_state_s
      pos:
        line_end: 8615
        line_start: 8614
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH3_state_s)
    - item_type: preproc_def
      name: XXH3_state_t
      pos:
        line_end: 8616
        line_start: 8615
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH3_state_t)
    - item_type: preproc_def
      name: XXH128_hash_t
      pos:
        line_end: 8617
        line_start: 8616
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_IPREF(XXH128_hash_t)
    - item_type: preproc_def
      name: XXHASH_H_5627135585666179
      pos:
        line_end: 8627
        line_start: 8626
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8633
        line_start: 8632
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8635
        line_start: 8634
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XXH_versionNumber
      pos:
        line_end: 8645
        line_start: 8644
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber)
    - item_type: preproc_def
      name: XXH32
      pos:
        line_end: 8647
        line_start: 8646
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32)
    - item_type: preproc_def
      name: XXH32_createState
      pos:
        line_end: 8648
        line_start: 8647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_createState)
    - item_type: preproc_def
      name: XXH32_freeState
      pos:
        line_end: 8649
        line_start: 8648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_freeState)
    - item_type: preproc_def
      name: XXH32_reset
      pos:
        line_end: 8650
        line_start: 8649
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_reset)
    - item_type: preproc_def
      name: XXH32_update
      pos:
        line_end: 8651
        line_start: 8650
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_update)
    - item_type: preproc_def
      name: XXH32_digest
      pos:
        line_end: 8652
        line_start: 8651
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_digest)
    - item_type: preproc_def
      name: XXH32_copyState
      pos:
        line_end: 8653
        line_start: 8652
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_copyState)
    - item_type: preproc_def
      name: XXH32_canonicalFromHash
      pos:
        line_end: 8654
        line_start: 8653
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash)
    - item_type: preproc_def
      name: XXH32_hashFromCanonical
      pos:
        line_end: 8655
        line_start: 8654
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical)
    - item_type: preproc_def
      name: XXH64
      pos:
        line_end: 8657
        line_start: 8656
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64)
    - item_type: preproc_def
      name: XXH64_createState
      pos:
        line_end: 8658
        line_start: 8657
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_createState)
    - item_type: preproc_def
      name: XXH64_freeState
      pos:
        line_end: 8659
        line_start: 8658
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_freeState)
    - item_type: preproc_def
      name: XXH64_reset
      pos:
        line_end: 8660
        line_start: 8659
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_reset)
    - item_type: preproc_def
      name: XXH64_update
      pos:
        line_end: 8661
        line_start: 8660
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_update)
    - item_type: preproc_def
      name: XXH64_digest
      pos:
        line_end: 8662
        line_start: 8661
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_digest)
    - item_type: preproc_def
      name: XXH64_copyState
      pos:
        line_end: 8663
        line_start: 8662
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_copyState)
    - item_type: preproc_def
      name: XXH64_canonicalFromHash
      pos:
        line_end: 8664
        line_start: 8663
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash)
    - item_type: preproc_def
      name: XXH64_hashFromCanonical
      pos:
        line_end: 8665
        line_start: 8664
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical)
    - item_type: preproc_def
      name: XXH3_64bits
      pos:
        line_end: 8667
        line_start: 8666
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits)
    - item_type: preproc_def
      name: XXH3_64bits_withSecret
      pos:
        line_end: 8668
        line_start: 8667
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_withSeed
      pos:
        line_end: 8669
        line_start: 8668
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed)
    - item_type: preproc_def
      name: XXH3_64bits_withSecretandSeed
      pos:
        line_end: 8670
        line_start: 8669
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_createState
      pos:
        line_end: 8671
        line_start: 8670
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_createState)
    - item_type: preproc_def
      name: XXH3_freeState
      pos:
        line_end: 8672
        line_start: 8671
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_freeState)
    - item_type: preproc_def
      name: XXH3_copyState
      pos:
        line_end: 8673
        line_start: 8672
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_copyState)
    - item_type: preproc_def
      name: XXH3_64bits_reset
      pos:
        line_end: 8674
        line_start: 8673
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSeed
      pos:
        line_end: 8675
        line_start: 8674
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSecret
      pos:
        line_end: 8676
        line_start: 8675
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_64bits_reset_withSecretandSeed
      pos:
        line_end: 8677
        line_start: 8676
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_64bits_update
      pos:
        line_end: 8678
        line_start: 8677
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update)
    - item_type: preproc_def
      name: XXH3_64bits_digest
      pos:
        line_end: 8679
        line_start: 8678
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest)
    - item_type: preproc_def
      name: XXH3_generateSecret
      pos:
        line_end: 8680
        line_start: 8679
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret)
    - item_type: preproc_def
      name: XXH3_generateSecret_fromSeed
      pos:
        line_end: 8681
        line_start: 8680
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed)
    - item_type: preproc_def
      name: XXH128
      pos:
        line_end: 8683
        line_start: 8682
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128)
    - item_type: preproc_def
      name: XXH3_128bits
      pos:
        line_end: 8684
        line_start: 8683
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits)
    - item_type: preproc_def
      name: XXH3_128bits_withSeed
      pos:
        line_end: 8685
        line_start: 8684
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed)
    - item_type: preproc_def
      name: XXH3_128bits_withSecret
      pos:
        line_end: 8686
        line_start: 8685
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_withSecretandSeed
      pos:
        line_end: 8687
        line_start: 8686
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_128bits_reset
      pos:
        line_end: 8688
        line_start: 8687
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSeed
      pos:
        line_end: 8689
        line_start: 8688
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSecret
      pos:
        line_end: 8690
        line_start: 8689
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret)
    - item_type: preproc_def
      name: XXH3_128bits_reset_withSecretandSeed
      pos:
        line_end: 8691
        line_start: 8690
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed)
    - item_type: preproc_def
      name: XXH3_128bits_update
      pos:
        line_end: 8692
        line_start: 8691
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update)
    - item_type: preproc_def
      name: XXH3_128bits_digest
      pos:
        line_end: 8693
        line_start: 8692
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest)
    - item_type: preproc_def
      name: XXH128_isEqual
      pos:
        line_end: 8694
        line_start: 8693
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual)
    - item_type: preproc_def
      name: XXH128_cmp
      pos:
        line_end: 8695
        line_start: 8694
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_cmp)
    - item_type: preproc_def
      name: XXH128_canonicalFromHash
      pos:
        line_end: 8696
        line_start: 8695
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash)
    - item_type: preproc_def
      name: XXH128_hashFromCanonical
      pos:
        line_end: 8697
        line_start: 8696
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8709
        line_start: 8708
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: XXH_PUBLIC_API
      pos:
        line_end: 8711
        line_start: 8710
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XXH_CONSTF
      pos:
        line_end: 8719
        line_start: 8718
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((const))
    - item_type: preproc_def
      name: XXH_PUREF
      pos:
        line_end: 8720
        line_start: 8719
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((pure))
    - item_type: preproc_def
      name: XXH_MALLOCF
      pos:
        line_end: 8721
        line_start: 8720
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((malloc))
    - item_type: preproc_def
      name: XXH_VERSION_MAJOR
      pos:
        line_end: 8731
        line_start: 8730
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_VERSION_MINOR
      pos:
        line_end: 8732
        line_start: 8731
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_VERSION_RELEASE
      pos:
        line_end: 8733
        line_start: 8732
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: XXH_VERSION_NUMBER
      pos:
        line_end: 8735
        line_start: 8734
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
    - item_type: preproc_def
      name: XXH_C23_VN
      pos:
        line_end: 8972
        line_start: 8971
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 201711L
    - item_type: preproc_def
      name: XXH_FALLTHROUGH
      pos:
        line_end: 9000
        line_start: 8999
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '[[fallthrough]]'
    - item_type: preproc_def
      name: XXH_FALLTHROUGH
      pos:
        line_end: 9002
        line_start: 9001
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((__fallthrough__))
    - item_type: preproc_def
      name: XXH_NOESCAPE
      pos:
        line_end: 9015
        line_start: 9014
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((noescape))
    - item_type: preproc_def
      name: XXH3_SECRET_SIZE_MIN
      pos:
        line_end: 9335
        line_start: 9334
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '136'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_SIZE
      pos:
        line_end: 9864
        line_start: 9863
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '256'
    - item_type: preproc_def
      name: XXH3_SECRET_DEFAULT_SIZE
      pos:
        line_end: 9874
        line_start: 9873
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '192'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 10271
        line_start: 10270
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 10299
        line_start: 10298
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 10329
        line_start: 10328
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 10351
        line_start: 10350
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 10368
        line_start: 10367
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH32_ENDJMP
      pos:
        line_end: 10380
        line_start: 10379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_MEMORY_ACCESS
      pos:
        line_end: 10412
        line_start: 10411
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 10419
        line_start: 10418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_SIZE_OPT
      pos:
        line_end: 10421
        line_start: 10420
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 10430
        line_start: 10429
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_ALIGN_CHECK
      pos:
        line_end: 10432
        line_start: 10431
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 10438
        line_start: 10437
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_NO_INLINE_HINTS
      pos:
        line_end: 10440
        line_start: 10439
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 10447
        line_start: 10446
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH3_INLINE_SECRET
      pos:
        line_end: 10449
        line_start: 10448
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH32_ENDJMP
      pos:
        line_end: 10455
        line_start: 10454
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10528
        line_start: 10527
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __attribute__((unused))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10530
        line_start: 10529
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 10532
        line_start: 10531
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10535
        line_start: 10534
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __inline__ __attribute__((always_inline, unused))
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 10536
        line_start: 10535
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __attribute__((noinline))
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10538
        line_start: 10537
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __forceinline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 10539
        line_start: 10538
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static __declspec(noinline)
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10542
        line_start: 10541
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static inline
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 10543
        line_start: 10542
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH_FORCE_INLINE
      pos:
        line_end: 10545
        line_start: 10544
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH_NO_INLINE
      pos:
        line_end: 10546
        line_start: 10545
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: static
    - item_type: preproc_def
      name: XXH3_WITH_SECRET_INLINE
      pos:
        line_end: 10550
        line_start: 10549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_FORCE_INLINE
    - item_type: preproc_def
      name: XXH3_WITH_SECRET_INLINE
      pos:
        line_end: 10552
        line_start: 10551
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NO_INLINE
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 10569
        line_start: 10568
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: DEBUGLEVEL
    - item_type: preproc_def
      name: XXH_DEBUGLEVEL
      pos:
        line_end: 10571
        line_start: 10570
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BYTE
      pos:
        line_end: 10647
        line_start: 10646
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U8
      pos:
        line_end: 10648
        line_start: 10647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: xxh_u8
    - item_type: preproc_def
      name: U32
      pos:
        line_end: 10649
        line_start: 10648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: xxh_u32
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 10777
        line_start: 10776
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 10780
        line_start: 10779
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_CPU_LITTLE_ENDIAN
      pos:
        line_end: 10797
        line_start: 10796
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_isLittleEndian()
    - item_type: preproc_def
      name: XXH_GCC_VERSION
      pos:
        line_end: 10807
        line_start: 10806
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (__GNUC__ * 100 + __GNUC_MINOR__)
    - item_type: preproc_def
      name: XXH_rotl32
      pos:
        line_end: 10875
        line_start: 10874
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_rotateleft32
    - item_type: preproc_def
      name: XXH_rotl64
      pos:
        line_end: 10876
        line_start: 10875
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_rotateleft64
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 10895
        line_start: 10894
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: _byteswap_ulong
    - item_type: preproc_def
      name: XXH_swap32
      pos:
        line_end: 10897
        line_start: 10896
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_bswap32
    - item_type: preproc_def
      name: XXH_PRIME32_1
      pos:
        line_end: 10989
        line_start: 10988
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x9E3779B1U  '
    - item_type: preproc_def
      name: XXH_PRIME32_2
      pos:
        line_end: 10990
        line_start: 10989
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x85EBCA77U  '
    - item_type: preproc_def
      name: XXH_PRIME32_3
      pos:
        line_end: 10991
        line_start: 10990
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xC2B2AE3DU  '
    - item_type: preproc_def
      name: XXH_PRIME32_4
      pos:
        line_end: 10992
        line_start: 10991
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x27D4EB2FU  '
    - item_type: preproc_def
      name: XXH_PRIME32_5
      pos:
        line_end: 10993
        line_start: 10992
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x165667B1U  '
    - item_type: preproc_def
      name: PRIME32_1
      pos:
        line_end: 10996
        line_start: 10995
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME32_1
    - item_type: preproc_def
      name: PRIME32_2
      pos:
        line_end: 10997
        line_start: 10996
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME32_2
    - item_type: preproc_def
      name: PRIME32_3
      pos:
        line_end: 10998
        line_start: 10997
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME32_3
    - item_type: preproc_def
      name: PRIME32_4
      pos:
        line_end: 10999
        line_start: 10998
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME32_4
    - item_type: preproc_def
      name: PRIME32_5
      pos:
        line_end: 11000
        line_start: 10999
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME32_5
    - item_type: preproc_def
      name: XXH_PROCESS1
      pos:
        line_end: 11104
        line_start: 11100
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: "do {                             \\\n    hash += (*ptr++) *
        XXH_PRIME32_5;                 \\\n    hash = XXH_rotl32(hash, 11) * XXH_PRIME32_1;
        \     \\\n} while (0)"
    - item_type: preproc_def
      name: XXH_PROCESS4
      pos:
        line_end: 11110
        line_start: 11105
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: "do {                             \\\n    hash += XXH_get32bits(ptr)
        * XXH_PRIME32_3;       \\\n    ptr += 4;                                         \\\n
        \   hash  = XXH_rotl32(hash, 17) * XXH_PRIME32_4;     \\\n} while (0)"
    - item_type: preproc_def
      name: PROCESS1
      pos:
        line_end: 11172
        line_start: 11171
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PROCESS1
    - item_type: preproc_def
      name: PROCESS4
      pos:
        line_end: 11173
        line_start: 11172
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PROCESS4
    - item_type: preproc_def
      name: U64
      pos:
        line_end: 11380
        line_start: 11379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: xxh_u64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 11430
        line_start: 11429
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: _byteswap_uint64
    - item_type: preproc_def
      name: XXH_swap64
      pos:
        line_end: 11432
        line_start: 11431
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_bswap64
    - item_type: preproc_def
      name: XXH_PRIME64_1
      pos:
        line_end: 11509
        line_start: 11508
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x9E3779B185EBCA87ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_2
      pos:
        line_end: 11510
        line_start: 11509
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xC2B2AE3D27D4EB4FULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_3
      pos:
        line_end: 11511
        line_start: 11510
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x165667B19E3779F9ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_4
      pos:
        line_end: 11512
        line_start: 11511
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x85EBCA77C2B2AE63ULL  '
    - item_type: preproc_def
      name: XXH_PRIME64_5
      pos:
        line_end: 11513
        line_start: 11512
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x27D4EB2F165667C5ULL  '
    - item_type: preproc_def
      name: PRIME64_1
      pos:
        line_end: 11516
        line_start: 11515
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME64_1
    - item_type: preproc_def
      name: PRIME64_2
      pos:
        line_end: 11517
        line_start: 11516
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME64_2
    - item_type: preproc_def
      name: PRIME64_3
      pos:
        line_end: 11518
        line_start: 11517
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME64_3
    - item_type: preproc_def
      name: PRIME64_4
      pos:
        line_end: 11519
        line_start: 11518
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME64_4
    - item_type: preproc_def
      name: PRIME64_5
      pos:
        line_end: 11520
        line_start: 11519
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PRIME64_5
    - item_type: preproc_def
      name: PROCESS1_64
      pos:
        line_end: 11613
        line_start: 11612
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PROCESS1_64
    - item_type: preproc_def
      name: PROCESS4_64
      pos:
        line_end: 11614
        line_start: 11613
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PROCESS4_64
    - item_type: preproc_def
      name: PROCESS8_64
      pos:
        line_end: 11615
        line_start: 11614
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_PROCESS8_64
    - item_type: preproc_def
      name: XXH_RESTRICT
      pos:
        line_end: 11826
        line_start: 11825
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: restrict
    - item_type: preproc_def
      name: XXH_RESTRICT
      pos:
        line_end: 11835
        line_start: 11834
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __restrict
    - item_type: preproc_def
      name: XXH_HAS_INCLUDE
      pos:
        line_end: 11856
        line_start: 11855
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __has_include
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 11870
        line_start: 11869
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '__inline__  '
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 11972
        line_start: 11971
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12009
        line_start: 12008
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_SCALAR
      pos:
        line_end: 12014
        line_start: 12013
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_SSE2
      pos:
        line_end: 12015
        line_start: 12014
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_AVX2
      pos:
        line_end: 12016
        line_start: 12015
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: XXH_AVX512
      pos:
        line_end: 12017
        line_start: 12016
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH_NEON
      pos:
        line_end: 12018
        line_start: 12017
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: XXH_VSX
      pos:
        line_end: 12019
        line_start: 12018
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '5'
    - item_type: preproc_def
      name: XXH_SVE
      pos:
        line_end: 12020
        line_start: 12019
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12025
        line_start: 12024
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_SVE
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12034
        line_start: 12033
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_NEON
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12036
        line_start: 12035
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_AVX512
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12038
        line_start: 12037
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_AVX2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12040
        line_start: 12039
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_SSE2
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12044
        line_start: 12043
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_VSX
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12046
        line_start: 12045
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_VECTOR
      pos:
        line_end: 12058
        line_start: 12057
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_SCALAR
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12067
        line_start: 12066
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64  '
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12069
        line_start: 12068
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12071
        line_start: 12070
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12073
        line_start: 12072
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12075
        line_start: 12074
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12077
        line_start: 12076
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12079
        line_start: 12078
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_ACC_ALIGN
      pos:
        line_end: 12081
        line_start: 12080
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 12087
        line_start: 12086
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_ACC_ALIGN
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 12089
        line_start: 12088
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_ACC_ALIGN
    - item_type: preproc_def
      name: XXH_SEC_ALIGN
      pos:
        line_end: 12091
        line_start: 12090
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: XXH_ALIASING
      pos:
        line_end: 12095
        line_start: 12094
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((may_alias))
    - item_type: preproc_def
      name: XXH3_NEON_LANES
      pos:
        line_end: 12243
        line_start: 12242
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: XXH3_NEON_LANES
      pos:
        line_end: 12245
        line_start: 12244
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_ACC_NB
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 12298
        line_start: 12297
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 12301
        line_start: 12300
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH_VSX_BE
      pos:
        line_end: 12303
        line_start: 12302
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: XXH_vec_revb
      pos:
        line_end: 12309
        line_start: 12308
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: vec_revb
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 12344
        line_start: 12343
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: vec_mulo
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 12345
        line_start: 12344
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: vec_mule
    - item_type: preproc_def
      name: XXH_vec_mulo
      pos:
        line_end: 12349
        line_start: 12348
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_altivec_vmulouw
    - item_type: preproc_def
      name: XXH_vec_mule
      pos:
        line_end: 12350
        line_start: 12349
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __builtin_altivec_vmuleuw
    - item_type: preproc_def
      name: XXH_SECRET_DEFAULT_SIZE
      pos:
        line_end: 12405
        line_start: 12404
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '192   '
    - item_type: preproc_def
      name: kSecret
      pos:
        line_end: 12431
        line_start: 12430
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_kSecret
    - item_type: preproc_def
      name: XXH3_MIDSIZE_MAX
      pos:
        line_end: 12851
        line_start: 12850
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '240'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_STARTOFFSET
      pos:
        line_end: 12861
        line_start: 12860
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: XXH3_MIDSIZE_LASTOFFSET
      pos:
        line_end: 12862
        line_start: 12861
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '17'
    - item_type: preproc_def
      name: XXH_STRIPE_LEN
      pos:
        line_end: 12915
        line_start: 12914
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: XXH_SECRET_CONSUME_RATE
      pos:
        line_end: 12916
        line_start: 12915
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8   '
    - item_type: preproc_def
      name: XXH_ACC_NB
      pos:
        line_end: 12917
        line_start: 12916
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (XXH_STRIPE_LEN / sizeof(xxh_u64))
    - item_type: preproc_def
      name: STRIPE_LEN
      pos:
        line_end: 12920
        line_start: 12919
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_STRIPE_LEN
    - item_type: preproc_def
      name: ACC_NB
      pos:
        line_end: 12921
        line_start: 12920
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH_ACC_NB
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 12926
        line_start: 12925
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '320'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 12929
        line_start: 12928
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '512'
    - item_type: preproc_def
      name: XXH_PREFETCH_DIST
      pos:
        line_end: 12931
        line_start: 12930
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '384'
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13915
        line_start: 13914
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_avx512
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13916
        line_start: 13915
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_avx512
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13917
        line_start: 13916
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_avx512
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13918
        line_start: 13917
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_avx512
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13922
        line_start: 13921
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_avx2
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13923
        line_start: 13922
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_avx2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13924
        line_start: 13923
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_avx2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13925
        line_start: 13924
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_avx2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13929
        line_start: 13928
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_sse2
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13930
        line_start: 13929
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_sse2
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13931
        line_start: 13930
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_sse2
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13932
        line_start: 13931
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_sse2
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13936
        line_start: 13935
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_neon
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13937
        line_start: 13936
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_neon
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13938
        line_start: 13937
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_neon
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13939
        line_start: 13938
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13943
        line_start: 13942
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_vsx
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13944
        line_start: 13943
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_vsx
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13945
        line_start: 13944
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_vsx
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13946
        line_start: 13945
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13949
        line_start: 13948
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_sve
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13950
        line_start: 13949
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_sve
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13951
        line_start: 13950
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13952
        line_start: 13951
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_accumulate_512
      pos:
        line_end: 13956
        line_start: 13955
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_512_scalar
    - item_type: preproc_def
      name: XXH3_accumulate
      pos:
        line_end: 13957
        line_start: 13956
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_accumulate_scalar
    - item_type: preproc_def
      name: XXH3_scrambleAcc
      pos:
        line_end: 13958
        line_start: 13957
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_scrambleAcc_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13959
        line_start: 13958
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH3_initCustomSecret
      pos:
        line_end: 13965
        line_start: 13964
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: XXH3_initCustomSecret_scalar
    - item_type: preproc_def
      name: XXH_SECRET_LASTACC_START
      pos:
        line_end: 13996
        line_start: 13995
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '7  '
    - item_type: preproc_def
      name: XXH3_INIT_ACC
      pos:
        line_end: 14037
        line_start: 14035
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: "{ XXH_PRIME32_3, XXH_PRIME64_1, XXH_PRIME64_2, XXH_PRIME64_3,
        \\\n                        XXH_PRIME64_4, XXH_PRIME32_2, XXH_PRIME64_5, XXH_PRIME32_1
        }"
    - item_type: preproc_def
      name: XXH_SECRET_MERGEACCS_START
      pos:
        line_end: 14052
        line_start: 14051
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '11'
    - item_type: preproc_def
      name: XXH3_STREAM_USE_STACK
      pos:
        line_end: 14420
        line_start: 14419
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: XXH3_INTERNALBUFFER_STRIPES
      pos:
        line_end: 14461
        line_start: 14460
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (XXH3_INTERNALBUFFER_SIZE / XXH_STRIPE_LEN)
    - item_type: preproc_def
      name: ZSTD_HAVE_WEAK_SYMBOLS
      pos:
        line_end: 15253
        line_start: 15252
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_HAVE_WEAK_SYMBOLS
      pos:
        line_end: 15255
        line_start: 15254
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_WEAK_ATTR
      pos:
        line_end: 15258
        line_start: 15257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__((__weak__))
    - item_type: preproc_def
      name: ZSTD_TRACE
      pos:
        line_end: 15265
        line_start: 15264
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_HAVE_WEAK_SYMBOLS
    - item_type: preproc_def
      name: ZSTD_TRACE
      pos:
        line_end: 15386
        line_start: 15385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_isError
      pos:
        line_end: 15395
        line_start: 15394
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'ERR_isError   '
    - item_type: preproc_def
      name: FSE_isError
      pos:
        line_end: 15396
        line_start: 15395
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: HUF_isError
      pos:
        line_end: 15397
        line_start: 15396
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: ZSTD_OPT_NUM
      pos:
        line_end: 15413
        line_start: 15412
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1<<12)
    - item_type: preproc_def
      name: ZSTD_REP_NUM
      pos:
        line_end: 15415
        line_start: 15414
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3                 '
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 15418
        line_start: 15417
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1 <<10)'
    - item_type: preproc_def
      name: MB
      pos:
        line_end: 15419
        line_start: 15418
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1 <<20)'
    - item_type: preproc_def
      name: GB
      pos:
        line_end: 15420
        line_start: 15419
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1U<<30)'
    - item_type: preproc_def
      name: BIT7
      pos:
        line_end: 15422
        line_start: 15421
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '128'
    - item_type: preproc_def
      name: BIT6
      pos:
        line_end: 15423
        line_start: 15422
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: BIT5
      pos:
        line_end: 15424
        line_start: 15423
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: BIT4
      pos:
        line_end: 15425
        line_start: 15424
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: BIT1
      pos:
        line_end: 15426
        line_start: 15425
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BIT0
      pos:
        line_end: 15427
        line_start: 15426
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_WINDOWLOG_ABSOLUTEMIN
      pos:
        line_end: 15429
        line_start: 15428
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10'
    - item_type: preproc_def
      name: ZSTD_FRAMEIDSIZE
      pos:
        line_end: 15433
        line_start: 15432
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: ZSTD_BLOCKHEADERSIZE
      pos:
        line_end: 15435
        line_start: 15434
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3   '
    - item_type: preproc_def
      name: ZSTD_FRAMECHECKSUMSIZE
      pos:
        line_end: 15439
        line_start: 15438
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MIN_SEQUENCES_SIZE
      pos:
        line_end: 15441
        line_start: 15440
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: MIN_CBLOCK_SIZE
      pos:
        line_end: 15441
        line_start: 15441
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(1 '
    - item_type: preproc_def
      name: MIN_LITERALS_FOR_4_STREAMS
      pos:
        line_end: 15443
        line_start: 15442
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: LONGNBSEQ
      pos:
        line_end: 15447
        line_start: 15446
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x7F00'
    - item_type: preproc_def
      name: MINMATCH
      pos:
        line_end: 15449
        line_start: 15448
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: Litbits
      pos:
        line_end: 15451
        line_start: 15450
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: LitHufLog
      pos:
        line_end: 15452
        line_start: 15451
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '11'
    - item_type: preproc_def
      name: MaxLit
      pos:
        line_end: 15453
        line_start: 15452
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((1<<Litbits) - 1)
    - item_type: preproc_def
      name: MaxML
      pos:
        line_end: 15454
        line_start: 15453
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '52'
    - item_type: preproc_def
      name: MaxLL
      pos:
        line_end: 15455
        line_start: 15454
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '35'
    - item_type: preproc_def
      name: DefaultMaxOff
      pos:
        line_end: 15456
        line_start: 15455
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '28'
    - item_type: preproc_def
      name: MaxOff
      pos:
        line_end: 15457
        line_start: 15456
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '31'
    - item_type: preproc_def
      name: MaxSeq
      pos:
        line_end: 15458
        line_start: 15457
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'MAX(MaxLL, MaxML)   '
    - item_type: preproc_def
      name: MLFSELog
      pos:
        line_end: 15459
        line_start: 15458
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '9'
    - item_type: preproc_def
      name: LLFSELog
      pos:
        line_end: 15460
        line_start: 15459
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '9'
    - item_type: preproc_def
      name: OffFSELog
      pos:
        line_end: 15461
        line_start: 15460
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MaxFSELog
      pos:
        line_end: 15462
        line_start: 15461
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: MAX(MAX(MLFSELog, LLFSELog), OffFSELog)
    - item_type: preproc_def
      name: MaxMLBits
      pos:
        line_end: 15463
        line_start: 15462
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: MaxLLBits
      pos:
        line_end: 15464
        line_start: 15463
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ZSTD_MAX_HUF_HEADER_SIZE
      pos:
        line_end: 15466
        line_start: 15465
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '128 '
    - item_type: preproc_def
      name: ZSTD_MAX_FSE_HEADERS_SIZE
      pos:
        line_end: 15468
        line_start: 15467
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (((MaxML + 1) * MLFSELog + (MaxLL + 1) * LLFSELog + (MaxOff +
        1) * OffFSELog + 7) / 8)
    - item_type: preproc_def
      name: LL_DEFAULTNORMLOG
      pos:
        line_end: 15484
        line_start: 15483
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: ML_DEFAULTNORMLOG
      pos:
        line_end: 15505
        line_start: 15504
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6  '
    - item_type: preproc_def
      name: OF_DEFAULTNORMLOG
      pos:
        line_end: 15514
        line_start: 15513
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '5  '
    - item_type: preproc_def
      name: WILDCOPY_OVERLENGTH
      pos:
        line_end: 15550
        line_start: 15549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: WILDCOPY_VECLEN
      pos:
        line_end: 15551
        line_start: 15550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ZSTD_WORKSPACETOOLARGE_FACTOR
      pos:
        line_end: 15609
        line_start: 15608
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ZSTD_WORKSPACETOOLARGE_MAXDURATION
      pos:
        line_end: 15616
        line_start: 15615
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '128'
    - item_type: preproc_def
      name: HIST_WKSP_SIZE_U32
      pos:
        line_end: 15832
        line_start: 15831
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: HIST_WKSP_SIZE
      pos:
        line_end: 15833
        line_start: 15832
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HIST_WKSP_SIZE_U32 * sizeof(unsigned))
    - item_type: preproc_def
      name: FSE_isError
      pos:
        line_end: 15884
        line_start: 15883
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: HUF_isError
      pos:
        line_end: 16699
        line_start: 16698
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: HUF_WORKSPACE_MAX_ALIGNMENT
      pos:
        line_end: 16769
        line_start: 16768
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_FSE_TABLELOG_FOR_HUFF_HEADER
      pos:
        line_end: 16796
        line_start: 16795
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RANK_POSITION_TABLE_SIZE
      pos:
        line_end: 17167
        line_start: 17166
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '192'
    - item_type: preproc_def
      name: RANK_POSITION_MAX_COUNT_LOG
      pos:
        line_end: 17182
        line_start: 17181
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: STARTNODE
      pos:
        line_end: 17331
        line_start: 17330
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_SYMBOLVALUE_MAX+1)
    - item_type: preproc_def
      name: HUF_BITS_IN_CONTAINER
      pos:
        line_end: 17500
        line_start: 17499
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (sizeof(size_t) * 8)
    - item_type: preproc_def
      name: SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE
      pos:
        line_end: 17910
        line_start: 17909
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO
      pos:
        line_end: 17911
        line_start: 17910
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10  '
    - item_type: preproc_def
      name: ZSTD_CWKSP_ASAN_REDZONE_SIZE
      pos:
        line_end: 18212
        line_start: 18211
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '128'
    - item_type: preproc_def
      name: ZSTD_CWKSP_ALIGNMENT_BYTES
      pos:
        line_end: 18217
        line_start: 18216
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: ZSTDMT_JOBSIZE_MIN
      pos:
        line_end: 18965
        line_start: 18964
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (512 KB)
    - item_type: preproc_def
      name: ZSTDMT_JOBLOG_MAX
      pos:
        line_end: 18967
        line_start: 18966
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(MEM_32bits() ? 29 : 30)'
    - item_type: preproc_def
      name: ZSTDMT_JOBSIZE_MAX
      pos:
        line_end: 18968
        line_start: 18967
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(MEM_32bits() ? (512 MB) : (1024 MB))'
    - item_type: preproc_def
      name: kSearchStrength
      pos:
        line_end: 19051
        line_start: 19050
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: HASH_READ_SIZE
      pos:
        line_end: 19052
        line_start: 19051
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_DUBT_UNSORTED_MARK
      pos:
        line_end: 19059
        line_start: 19052
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1   '
    - item_type: preproc_def
      name: ZSTD_OPT_SIZE
      pos:
        line_end: 19187
        line_start: 19186
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZSTD_OPT_NUM+3)
    - item_type: preproc_def
      name: ZSTD_WINDOW_START_INDEX
      pos:
        line_end: 19227
        line_start: 19226
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ZSTD_ROW_HASH_CACHE_SIZE
      pos:
        line_end: 19231
        line_start: 19230
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8       '
    - item_type: preproc_def
      name: LDM_BATCH_SIZE
      pos:
        line_end: 19296
        line_start: 19295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: COMPRESS_SEQUENCES_WORKSPACE_SIZE
      pos:
        line_end: 19393
        line_start: 19392
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (sizeof(unsigned) * (MaxSeq + 2))
    - item_type: preproc_def
      name: ENTROPY_WORKSPACE_SIZE
      pos:
        line_end: 19394
        line_start: 19393
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (HUF_WORKSPACE_SIZE + COMPRESS_SEQUENCES_WORKSPACE_SIZE)
    - item_type: preproc_def
      name: ZSTD_MAX_NB_BLOCK_SPLITS
      pos:
        line_end: 19410
        line_start: 19409
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '196'
    - item_type: preproc_def
      name: REPCODE1_TO_OFFBASE
      pos:
        line_end: 19648
        line_start: 19647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: REPCODE_TO_OFFBASE(1)
    - item_type: preproc_def
      name: REPCODE2_TO_OFFBASE
      pos:
        line_end: 19649
        line_start: 19648
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: REPCODE_TO_OFFBASE(2)
    - item_type: preproc_def
      name: REPCODE3_TO_OFFBASE
      pos:
        line_end: 19650
        line_start: 19649
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: REPCODE_TO_OFFBASE(3)
    - item_type: preproc_def
      name: ZSTD_ROLL_HASH_CHAR_OFFSET
      pos:
        line_end: 19890
        line_start: 19889
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10'
    - item_type: preproc_def
      name: ZSTD_CURRENT_MAX
      pos:
        line_end: 19941
        line_start: 19940
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((3U << 29) + (1U << ZSTD_WINDOWLOG_MAX))
    - item_type: preproc_def
      name: ZSTD_CHUNKSIZE_MAX
      pos:
        line_end: 19943
        line_start: 19942
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '( ((U32)-1)                  '
    - item_type: preproc_def
      name: ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY
      pos:
        line_end: 19996
        line_start: 19995
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY
      pos:
        line_end: 19998
        line_start: 19997
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_SHORT_CACHE_TAG_BITS
      pos:
        line_end: 20384
        line_start: 20383
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_SHORT_CACHE_TAG_MASK
      pos:
        line_end: 20385
        line_start: 20384
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((1u << ZSTD_SHORT_CACHE_TAG_BITS) - 1)
    - item_type: preproc_def
      name: BYTESCALE
      pos:
        line_end: 21772
        line_start: 21771
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '256'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST
      pos:
        line_end: 22123
        line_start: 22122
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_doubleFast
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE
      pos:
        line_end: 22124
        line_start: 22123
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_doubleFast_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT
      pos:
        line_end: 22125
        line_start: 22124
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_doubleFast_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST
      pos:
        line_end: 22127
        line_start: 22126
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE
      pos:
        line_end: 22128
        line_start: 22127
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT
      pos:
        line_end: 22129
        line_start: 22128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_LAZY_DDSS_BUCKET_LOG
      pos:
        line_end: 22164
        line_start: 22163
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ZSTD_ROW_HASH_TAG_BITS
      pos:
        line_end: 22166
        line_start: 22165
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8        '
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY
      pos:
        line_end: 22206
        line_start: 22205
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_ROW
      pos:
        line_end: 22207
        line_start: 22206
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE
      pos:
        line_end: 22208
        line_start: 22207
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW
      pos:
        line_end: 22209
        line_start: 22208
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_dictMatchState_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH
      pos:
        line_end: 22210
        line_start: 22209
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_dedicatedDictSearch
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22211
        line_start: 22210
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_dedicatedDictSearch_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT
      pos:
        line_end: 22212
        line_start: 22211
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW
      pos:
        line_end: 22213
        line_start: 22212
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_greedy_extDict_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY
      pos:
        line_end: 22215
        line_start: 22214
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_ROW
      pos:
        line_end: 22216
        line_start: 22215
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE
      pos:
        line_end: 22217
        line_start: 22216
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW
      pos:
        line_end: 22218
        line_start: 22217
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH
      pos:
        line_end: 22219
        line_start: 22218
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22220
        line_start: 22219
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT
      pos:
        line_end: 22221
        line_start: 22220
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW
      pos:
        line_end: 22222
        line_start: 22221
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY
      pos:
        line_end: 22251
        line_start: 22250
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_ROW
      pos:
        line_end: 22252
        line_start: 22251
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE
      pos:
        line_end: 22253
        line_start: 22252
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW
      pos:
        line_end: 22254
        line_start: 22253
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_dictMatchState_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH
      pos:
        line_end: 22255
        line_start: 22254
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_dedicatedDictSearch
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22256
        line_start: 22255
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_dedicatedDictSearch_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_EXTDICT
      pos:
        line_end: 22257
        line_start: 22256
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW
      pos:
        line_end: 22258
        line_start: 22257
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy_extDict_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY
      pos:
        line_end: 22260
        line_start: 22259
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_ROW
      pos:
        line_end: 22261
        line_start: 22260
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE
      pos:
        line_end: 22262
        line_start: 22261
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW
      pos:
        line_end: 22263
        line_start: 22262
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH
      pos:
        line_end: 22264
        line_start: 22263
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22265
        line_start: 22264
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_EXTDICT
      pos:
        line_end: 22266
        line_start: 22265
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW
      pos:
        line_end: 22267
        line_start: 22266
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2
      pos:
        line_end: 22296
        line_start: 22295
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_ROW
      pos:
        line_end: 22297
        line_start: 22296
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE
      pos:
        line_end: 22298
        line_start: 22297
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW
      pos:
        line_end: 22299
        line_start: 22298
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_dictMatchState_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH
      pos:
        line_end: 22300
        line_start: 22299
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_dedicatedDictSearch
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22301
        line_start: 22300
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_dedicatedDictSearch_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT
      pos:
        line_end: 22302
        line_start: 22301
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW
      pos:
        line_end: 22303
        line_start: 22302
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_lazy2_extDict_row
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2
      pos:
        line_end: 22305
        line_start: 22304
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_ROW
      pos:
        line_end: 22306
        line_start: 22305
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE
      pos:
        line_end: 22307
        line_start: 22306
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW
      pos:
        line_end: 22308
        line_start: 22307
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH
      pos:
        line_end: 22309
        line_start: 22308
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW
      pos:
        line_end: 22310
        line_start: 22309
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT
      pos:
        line_end: 22311
        line_start: 22310
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW
      pos:
        line_end: 22312
        line_start: 22311
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2
      pos:
        line_end: 22326
        line_start: 22325
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btlazy2
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE
      pos:
        line_end: 22327
        line_start: 22326
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btlazy2_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT
      pos:
        line_end: 22328
        line_start: 22327
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btlazy2_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2
      pos:
        line_end: 22330
        line_start: 22329
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE
      pos:
        line_end: 22331
        line_start: 22330
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT
      pos:
        line_end: 22332
        line_start: 22331
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT
      pos:
        line_end: 22380
        line_start: 22379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btopt
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE
      pos:
        line_end: 22381
        line_start: 22380
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btopt_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT
      pos:
        line_end: 22382
        line_start: 22381
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btopt_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT
      pos:
        line_end: 22384
        line_start: 22383
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE
      pos:
        line_end: 22385
        line_start: 22384
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT
      pos:
        line_end: 22386
        line_start: 22385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA
      pos:
        line_end: 22407
        line_start: 22406
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btultra
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE
      pos:
        line_end: 22408
        line_start: 22407
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btultra_dictMatchState
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT
      pos:
        line_end: 22409
        line_start: 22408
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btultra_extDict
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA2
      pos:
        line_end: 22410
        line_start: 22409
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_compressBlock_btultra2
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA
      pos:
        line_end: 22412
        line_start: 22411
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE
      pos:
        line_end: 22413
        line_start: 22412
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT
      pos:
        line_end: 22414
        line_start: 22413
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_COMPRESSBLOCK_BTULTRA2
      pos:
        line_end: 22415
        line_start: 22414
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: ZSTD_LDM_DEFAULT_WINDOW_LOG
      pos:
        line_end: 22449
        line_start: 22448
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_WINDOWLOG_LIMIT_DEFAULT
    - item_type: preproc_def
      name: ZSTD_COMPRESS_HEAPMODE
      pos:
        line_end: 22556
        line_start: 22555
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_HASHLOG3_MAX
      pos:
        line_end: 22569
        line_start: 22568
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '17'
    - item_type: preproc_def
      name: ZSTD_NO_CLEVEL
      pos:
        line_end: 22887
        line_start: 22886
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_INDEXOVERFLOW_MARGIN
      pos:
        line_end: 24582
        line_start: 24581
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (16 MB)
    - item_type: preproc_def
      name: ZSTD_ROWSIZE
      pos:
        line_end: 25107
        line_start: 25106
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SUSPECT_UNCOMPRESSIBLE_LITERAL_RATIO
      pos:
        line_end: 25388
        line_start: 25387
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '20'
    - item_type: preproc_def
      name: COMPRESS_LITERALS_SIZE_MIN
      pos:
        line_end: 26114
        line_start: 26113
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '63  '
    - item_type: preproc_def
      name: MIN_SEQUENCES_BLOCK_SPLITTING
      pos:
        line_end: 26630
        line_start: 26629
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '300'
    - item_type: preproc_def
      name: ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF
      pos:
        line_end: 27621
        line_start: 27620
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (128 KB)
    - item_type: preproc_def
      name: ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER
      pos:
        line_end: 27622
        line_start: 27621
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (6ULL)
    - item_type: preproc_def
      name: ZSTD_MAX_CLEVEL
      pos:
        line_end: 29517
        line_start: 29516
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '22'
    - item_type: preproc_def
      name: kLazySkippingStep
      pos:
        line_end: 31566
        line_start: 31565
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTD_ROW_HASH_TAG_MASK
      pos:
        line_end: 32325
        line_start: 32324
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((1u << ZSTD_ROW_HASH_TAG_BITS) - 1)
    - item_type: preproc_def
      name: ZSTD_ROW_HASH_MAX_ENTRIES
      pos:
        line_end: 32326
        line_start: 32325
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64    '
    - item_type: preproc_def
      name: ZSTD_ROW_HASH_CACHE_MASK
      pos:
        line_end: 32328
        line_start: 32327
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZSTD_ROW_HASH_CACHE_SIZE - 1)
    - item_type: preproc_def
      name: ZSTD_SEARCH_FN_ATTRS
      pos:
        line_end: 32909
        line_start: 32908
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: FORCE_NOINLINE
    - item_type: preproc_def
      name: LDM_BUCKET_SIZE_LOG
      pos:
        line_end: 33873
        line_start: 33872
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: LDM_MIN_MATCH_LENGTH
      pos:
        line_end: 33874
        line_start: 33873
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: LDM_HASH_RLOG
      pos:
        line_end: 33875
        line_start: 33874
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '7'
    - item_type: preproc_def
      name: ZSTD_LITFREQ_ADD
      pos:
        line_end: 34605
        line_start: 34604
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2   '
    - item_type: preproc_def
      name: ZSTD_MAX_PRICE
      pos:
        line_end: 34606
        line_start: 34605
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1<<30)
    - item_type: preproc_def
      name: ZSTD_PREDEF_THRESHOLD
      pos:
        line_end: 34608
        line_start: 34607
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8   '
    - item_type: preproc_def
      name: BITCOST_ACCURACY
      pos:
        line_end: 34616
        line_start: 34615
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BITCOST_MULTIPLIER
      pos:
        line_end: 34617
        line_start: 34616
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1 << BITCOST_ACCURACY)
    - item_type: preproc_def
      name: BITCOST_ACCURACY
      pos:
        line_end: 34620
        line_start: 34619
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITCOST_MULTIPLIER
      pos:
        line_end: 34621
        line_start: 34620
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1 << BITCOST_ACCURACY)
    - item_type: preproc_def
      name: BITCOST_ACCURACY
      pos:
        line_end: 34624
        line_start: 34623
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BITCOST_MULTIPLIER
      pos:
        line_end: 34625
        line_start: 34624
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1 << BITCOST_ACCURACY)
    - item_type: preproc_def
      name: ZSTD_RESIZE_SEQPOOL
      pos:
        line_end: 36197
        line_start: 36196
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MUTEX_WAIT_TIME_DLEVEL
      pos:
        line_end: 36225
        line_start: 36224
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '6'
    - item_type: preproc_def
      name: RSYNC_LENGTH
      pos:
        line_end: 36998
        line_start: 36997
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: RSYNC_MIN_BLOCK_LOG
      pos:
        line_end: 37006
        line_start: 37005
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZSTD_BLOCKSIZELOG_MAX
    - item_type: preproc_def
      name: RSYNC_MIN_BLOCK_SIZE
      pos:
        line_end: 37007
        line_start: 37006
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1<<RSYNC_MIN_BLOCK_LOG)
    - item_type: preproc_def
      name: HUF_DECODER_FAST_TABLELOG
      pos:
        line_end: 38082
        line_start: 38081
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '11'
    - item_type: preproc_def
      name: HUF_ENABLE_FAST_DECODE
      pos:
        line_end: 38089
        line_start: 38088
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HUF_ENABLE_FAST_DECODE
      pos:
        line_end: 38091
        line_start: 38090
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HUF_FAST_BMI2_ATTRS
      pos:
        line_end: 38108
        line_start: 38107
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: BMI2_TARGET_ATTRIBUTE
    - item_type: preproc_def
      name: HUF_EXTERN_C
      pos:
        line_end: 38114
        line_start: 38113
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: extern "C"
    - item_type: preproc_def
      name: HUF_ASM_DECL
      pos:
        line_end: 38118
        line_start: 38117
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: HUF_EXTERN_C
    - item_type: preproc_def
      name: HUF_NEED_BMI2_FUNCTION
      pos:
        line_end: 38121
        line_start: 38120
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HUF_NEED_BMI2_FUNCTION
      pos:
        line_end: 38123
        line_start: 38122
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HUF_isError
      pos:
        line_end: 38129
        line_start: 38128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ERR_isError
    - item_type: preproc_def
      name: ZSTD_BUILD_FSE_TABLE_WKSP_SIZE
      pos:
        line_end: 40097
        line_start: 40096
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64))
    - item_type: preproc_def
      name: ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32
      pos:
        line_end: 40098
        line_start: 40097
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32))
    - item_type: preproc_def
      name: ZSTD_HUFFDTABLE_CAPACITY_LOG
      pos:
        line_end: 40099
        line_start: 40098
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '12'
    - item_type: preproc_def
      name: ZSTD_DECODER_INTERNAL_BUFFER
      pos:
        line_end: 40132
        line_start: 40131
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: ZSTD_LBMIN
      pos:
        line_end: 40135
        line_start: 40134
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: ZSTD_LBMAX
      pos:
        line_end: 40136
        line_start: 40135
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (128 << 10)
    - item_type: preproc_def
      name: ZSTD_LITBUFFEREXTRASIZE
      pos:
        line_end: 40139
        line_start: 40138
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: BOUNDED(ZSTD_LBMIN, ZSTD_DECODER_INTERNAL_BUFFER, ZSTD_LBMAX)
    - item_type: preproc_def
      name: ZSTD_LEGACY_SUPPORT
      pos:
        line_end: 40338
        line_start: 40337
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: ZSTDv01_magicNumber
      pos:
        line_end: 40428
        line_start: 40427
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB51E   '
    - item_type: preproc_def
      name: ZSTDv01_magicNumberLE
      pos:
        line_end: 40429
        line_start: 40428
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0x1EB52FFD   '
    - item_type: preproc_def
      name: ZSTDv02_magicNumber
      pos:
        line_end: 40526
        line_start: 40525
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB522   '
    - item_type: preproc_def
      name: ZSTDv03_magicNumber
      pos:
        line_end: 40623
        line_start: 40622
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB523   '
    - item_type: preproc_def
      name: ZSTDv04_magicNumber
      pos:
        line_end: 40769
        line_start: 40768
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB524   '
    - item_type: preproc_def
      name: ZSTDv05_MAGICNUMBER
      pos:
        line_end: 40933
        line_start: 40932
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB525   '
    - item_type: preproc_def
      name: ZSTDLIBv06_API
      pos:
        line_end: 40974
        line_start: 40973
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: ZSTDv06_MAGICNUMBER
      pos:
        line_end: 41110
        line_start: 41109
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB526   '
    - item_type: preproc_def
      name: ZSTDLIBv07_API
      pos:
        line_end: 41150
        line_start: 41149
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: ZSTDv07_MAGICNUMBER
      pos:
        line_end: 41302
        line_start: 41301
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0xFD2FB527   '
    - item_type: preproc_def
      name: ZSTD_HEAPMODE
      pos:
        line_end: 41954
        line_start: 41953
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ZSTD_LEGACY_SUPPORT
      pos:
        line_end: 41962
        line_start: 41961
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ZSTD_MAXWINDOWSIZE_DEFAULT
      pos:
        line_end: 41972
        line_start: 41971
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (((U32)1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) + 1)
    - item_type: preproc_def
      name: ZSTD_NO_FORWARD_PROGRESS_MAX
      pos:
        line_end: 41983
        line_start: 41982
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT
      pos:
        line_end: 42088
        line_start: 42087
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT
      pos:
        line_end: 42093
        line_start: 42088
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: DDICT_HASHSET_TABLE_BASE_SIZE
      pos:
        line_end: 42095
        line_start: 42094
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: DDICT_HASHSET_RESIZE_FACTOR
      pos:
        line_end: 42096
        line_start: 42095
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: LONG_OFFSETS_MAX_EXTRA_BITS_32
      pos:
        line_end: 45633
        line_start: 45629
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: "(ZSTD_WINDOWLOG_MAX_32 > STREAM_ACCUMULATOR_MIN_32       \\\n
        \       ? ZSTD_WINDOWLOG_MAX_32 - STREAM_ACCUMULATOR_MIN_32  \\\n        :
        0)"
    - item_type: preproc_def
      name: STORED_SEQS
      pos:
        line_end: 46167
        line_start: 46166
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '8'
    - item_type: preproc_def
      name: STORED_SEQS_MASK
      pos:
        line_end: 46168
        line_start: 46167
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (STORED_SEQS-1)
    - item_type: preproc_def
      name: ADVANCED_SEQS
      pos:
        line_end: 46169
        line_start: 46168
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: STORED_SEQS
    - item_type: preproc_def
      name: ZDICTLIB_VISIBLE
      pos:
        line_end: 46697
        line_start: 46696
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZDICTLIB_VISIBILITY
    - item_type: preproc_def
      name: ZDICTLIB_VISIBLE
      pos:
        line_end: 46699
        line_start: 46698
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: ZDICTLIB_HIDDEN
      pos:
        line_end: 46707
        line_start: 46706
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 46714
        line_start: 46713
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 46716
        line_start: 46715
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '__declspec(dllimport) ZDICTLIB_VISIBLE '
    - item_type: preproc_def
      name: ZDICTLIB_API
      pos:
        line_end: 46718
        line_start: 46717
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 46953
        line_start: 46952
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllexport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 46955
        line_start: 46954
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __declspec(dllimport) ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICTLIB_STATIC_API
      pos:
        line_end: 46957
        line_start: 46956
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ZDICTLIB_VISIBLE
    - item_type: preproc_def
      name: ZDICT_DICTSIZE_MIN
      pos:
        line_end: 46968
        line_start: 46967
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '256'
    - item_type: preproc_def
      name: ZDICT_CONTENTSIZE_MIN
      pos:
        line_end: 46970
        line_start: 46969
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '128'
    - item_type: preproc_def
      name: ZDICT_GCC_VERSION
      pos:
        line_end: 47120
        line_start: 47119
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (__GNUC__ * 100 + __GNUC_MINOR__)
    - item_type: preproc_def
      name: COVER_MAX_SAMPLES_SIZE
      pos:
        line_end: 47312
        line_start: 47311
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB))'
    - item_type: preproc_def
      name: COVER_DEFAULT_SPLITPOINT
      pos:
        line_end: 47313
        line_start: 47312
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1.0'
    - item_type: preproc_def
      name: MAP_EMPTY_VALUE
      pos:
        line_end: 47359
        line_start: 47358
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: ((U32)-1)
    - item_type: preproc_def
      name: _DIVSUFSORT_H
      pos:
        line_end: 48595
        line_start: 48594
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INLINE
      pos:
        line_end: 48642
        line_start: 48641
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: __inline
    - item_type: preproc_def
      name: ALPHABET_SIZE
      pos:
        line_end: 48648
        line_start: 48647
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (256)
    - item_type: preproc_def
      name: BUCKET_A_SIZE
      pos:
        line_end: 48650
        line_start: 48649
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ALPHABET_SIZE)
    - item_type: preproc_def
      name: BUCKET_B_SIZE
      pos:
        line_end: 48651
        line_start: 48650
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ALPHABET_SIZE * ALPHABET_SIZE)
    - item_type: preproc_def
      name: SS_INSERTIONSORT_THRESHOLD
      pos:
        line_end: 48655
        line_start: 48654
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1)
    - item_type: preproc_def
      name: SS_INSERTIONSORT_THRESHOLD
      pos:
        line_end: 48658
        line_start: 48657
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (8)
    - item_type: preproc_def
      name: SS_BLOCKSIZE
      pos:
        line_end: 48663
        line_start: 48662
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (0)
    - item_type: preproc_def
      name: SS_BLOCKSIZE
      pos:
        line_end: 48666
        line_start: 48665
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (32767)
    - item_type: preproc_def
      name: SS_BLOCKSIZE
      pos:
        line_end: 48669
        line_start: 48668
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (1024)
    - item_type: preproc_def
      name: SS_MISORT_STACKSIZE
      pos:
        line_end: 48673
        line_start: 48672
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (96)
    - item_type: preproc_def
      name: SS_MISORT_STACKSIZE
      pos:
        line_end: 48675
        line_start: 48674
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (16)
    - item_type: preproc_def
      name: SS_MISORT_STACKSIZE
      pos:
        line_end: 48677
        line_start: 48676
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (24)
    - item_type: preproc_def
      name: SS_SMERGE_STACKSIZE
      pos:
        line_end: 48679
        line_start: 48678
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (32)
    - item_type: preproc_def
      name: TR_INSERTIONSORT_THRESHOLD
      pos:
        line_end: 48680
        line_start: 48679
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (8)
    - item_type: preproc_def
      name: TR_STACKSIZE
      pos:
        line_end: 48681
        line_start: 48680
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (64)
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 48995
        line_start: 48994
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: SS_MISORT_STACKSIZE
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 49339
        line_start: 49338
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: SS_SMERGE_STACKSIZE
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 49770
        line_start: 49769
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: TR_STACKSIZE
    - item_type: preproc_def
      name: FASTCOVER_MAX_SAMPLES_SIZE
      pos:
        line_end: 50549
        line_start: 50548
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '(sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB))'
    - item_type: preproc_def
      name: FASTCOVER_MAX_F
      pos:
        line_end: 50550
        line_start: 50549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '31'
    - item_type: preproc_def
      name: FASTCOVER_MAX_ACCEL
      pos:
        line_end: 50551
        line_start: 50550
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10'
    - item_type: preproc_def
      name: FASTCOVER_DEFAULT_SPLITPOINT
      pos:
        line_end: 50552
        line_start: 50551
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '0.75'
    - item_type: preproc_def
      name: DEFAULT_F
      pos:
        line_end: 50553
        line_start: 50552
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '20'
    - item_type: preproc_def
      name: DEFAULT_ACCEL
      pos:
        line_end: 50554
        line_start: 50553
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MINRATIO
      pos:
        line_end: 51290
        line_start: 51289
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '4   '
    - item_type: preproc_def
      name: ZDICT_MAX_SAMPLES_SIZE
      pos:
        line_end: 51291
        line_start: 51290
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (2000U << 20)
    - item_type: preproc_def
      name: ZDICT_MIN_SAMPLES_SIZE
      pos:
        line_end: 51292
        line_start: 51291
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: (ZDICT_CONTENTSIZE_MIN * MINRATIO)
    - item_type: preproc_def
      name: _FILE_OFFSET_BITS
      pos:
        line_end: 51299
        line_start: 51298
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64'
    - item_type: preproc_def
      name: KB
      pos:
        line_end: 51337
        line_start: 51336
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1 <<10)'
    - item_type: preproc_def
      name: MB
      pos:
        line_end: 51338
        line_start: 51337
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1 <<20)'
    - item_type: preproc_def
      name: GB
      pos:
        line_end: 51339
        line_start: 51338
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '*(1U<<30)'
    - item_type: preproc_def
      name: DICTLISTSIZE_DEFAULT
      pos:
        line_end: 51341
        line_start: 51340
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '10000'
    - item_type: preproc_def
      name: NOISELENGTH
      pos:
        line_end: 51343
        line_start: 51342
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '32'
    - item_type: preproc_def
      name: LLIMIT
      pos:
        line_end: 51442
        line_start: 51441
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '64          '
    - item_type: preproc_def
      name: MINMATCHLENGTH
      pos:
        line_end: 51443
        line_start: 51442
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '7   '
    - item_type: preproc_def
      name: MAXREPOFFSET
      pos:
        line_end: 51839
        line_start: 51838
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: OFFCODE_MAX
      pos:
        line_end: 51933
        line_start: 51932
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '30  '
    - item_type: preproc_def
      name: HBUFFSIZE
      pos:
        line_end: 52139
        line_start: 52138
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type_or_value: '256   '
    structs:
    - fields:
      - name: bitContainer
        type: size_t
      - name: bitPos
        type: unsigned
      - name: '*  startPtr'
        type: char
      - name: '*  ptr'
        type: char
      - name: '*  endPtr'
        type: char
      item_type: struct
      name: BIT_CStream_t
      pos:
        line_end: 2163
        line_start: 2157
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: bitContainer
        type: BitContainerType
      - name: bitsConsumed
        type: unsigned
      - name: '* ptr'
        type: char
      - name: '* start'
        type: char
      - name: '* limitPtr'
        type: char
      item_type: struct
      name: BIT_DStream_t
      pos:
        line_end: 2198
        line_start: 2192
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: value
        type: ptrdiff_t
      - name: '* stateTable'
        type: void
      - name: '* symbolTT'
        type: void
      - name: stateLog
        type: unsigned
      item_type: struct
      name: FSE_CState_t
      pos:
        line_end: 2624
        line_start: 2619
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: state
        type: size_t
      - name: '* table'
        type: void
      item_type: struct
      name: FSE_DState_t
      pos:
        line_end: 2682
        line_start: 2679
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: deltaFindState
        type: int
      - name: deltaNbBits
        type: U32
      item_type: struct
      name: FSE_symbolCompressionTransform
      pos:
        line_end: 2754
        line_start: 2751
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: tableLog
        type: U16
      - name: fastMode
        type: U16
      item_type: struct
      name: FSE_DTableHeader
      pos:
        line_end: 2836
        line_start: 2833
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: newState
        type: unsigned short
      - name: symbol
        type: unsigned char
      - name: nbBits
        type: unsigned char
      item_type: struct
      name: FSE_decode_t
      pos:
        line_end: 2843
        line_start: 2838
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: tableLog
        type: BYTE
      - name: maxSymbolValue
        type: BYTE
      - name: unused[sizeof(size_t) - 2]
        type: BYTE
      item_type: struct
      name: HUF_CTableHeader
      pos:
        line_end: 3170
        line_start: 3166
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: ncount[FSE_MAX_SYMBOL_VALUE + 1]
        type: short
      item_type: struct
      name: FSE_DecompressWksp
      pos:
        line_end: 3871
        line_start: 3869
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* (*start_routine)(void*)'
        type: void
      - name: '* arg'
        type: void
      - name: initialized
        type: int
      - name: initialized_cond
        type: ZSTD_pthread_cond_t
      - name: initialized_mutex
        type: ZSTD_pthread_mutex_t
      item_type: struct
      name: ZSTD_thread_params_t
      pos:
        line_end: 4142
        line_start: 4136
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: error
        type: size_t
      - name: lowerBound
        type: int
      - name: upperBound
        type: int
      item_type: struct
      name: ZSTD_bounds
      pos:
        line_end: 4840
        line_start: 4836
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* src'
        type: void
      - name: size
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: ZSTD_inBuffer_s
      pos:
        line_end: 4997
        line_start: 4993
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*  dst'
        type: void
      - name: size
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: ZSTD_outBuffer_s
      pos:
        line_end: 5003
        line_start: 4999
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offset
        type: unsigned int
      - name: litLength
        type: unsigned int
      - name: matchLength
        type: unsigned int
      - name: rep
        type: unsigned int
      item_type: struct
      name: ZSTD_Sequence
      pos:
        line_end: 5628
        line_start: 5593
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: windowLog
        type: unsigned
      - name: chainLog
        type: unsigned
      - name: hashLog
        type: unsigned
      - name: searchLog
        type: unsigned
      - name: minMatch
        type: unsigned
      - name: targetLength
        type: unsigned
      - name: strategy
        type: ZSTD_strategy
      item_type: struct
      name: ZSTD_compressionParameters
      pos:
        line_end: 5638
        line_start: 5630
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: contentSizeFlag
        type: int
      - name: checksumFlag
        type: int
      - name: noDictIDFlag
        type: int
      item_type: struct
      name: ZSTD_frameParameters
      pos:
        line_end: 5644
        line_start: 5640
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: cParams
        type: ZSTD_compressionParameters
      - name: fParams
        type: ZSTD_frameParameters
      item_type: struct
      name: ZSTD_parameters
      pos:
        line_end: 5649
        line_start: 5646
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: frameContentSize
        type: unsigned long long
      - name: windowSize
        type: unsigned long long
      - name: blockSizeMax
        type: unsigned
      - name: frameType
        type: ZSTD_frameType_e
      - name: headerSize
        type: unsigned
      - name: dictID
        type: unsigned
      - name: checksumFlag
        type: unsigned
      - name: _reserved1
        type: unsigned
      - name: _reserved2
        type: unsigned
      item_type: struct
      name: ZSTD_frameHeader
      pos:
        line_end: 5798
        line_start: 5788
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: customAlloc
        type: ZSTD_allocFunction
      - name: customFree
        type: ZSTD_freeFunction
      - name: '* opaque'
        type: void
      item_type: struct
      name: ZSTD_customMem
      pos:
        line_end: 6109
        line_start: 6109
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: ingested
        type: unsigned long long
      - name: consumed
        type: unsigned long long
      - name: produced
        type: unsigned long long
      - name: flushed
        type: unsigned long long
      - name: currentJobID
        type: unsigned
      - name: nbActiveWorkers
        type: unsigned
      item_type: struct
      name: ZSTD_frameProgression
      pos:
        line_end: 6949
        line_start: 6942
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: function
        type: POOL_function
      - name: '*opaque'
        type: void
      item_type: struct
      name: POOL_job_s
      pos:
        line_end: 7552
        line_start: 7549
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: customMem
        type: ZSTD_customMem
      - name: '* threads'
        type: ZSTD_pthread_t
      - name: threadCapacity
        type: size_t
      - name: threadLimit
        type: size_t
      - name: '*queue'
        type: POOL_job
      - name: queueHead
        type: size_t
      - name: queueTail
        type: size_t
      - name: queueSize
        type: size_t
      - name: numThreadsBusy
        type: size_t
      - name: queueEmpty
        type: int
      - name: queueMutex
        type: ZSTD_pthread_mutex_t
      - name: queuePushCond
        type: ZSTD_pthread_cond_t
      - name: queuePopCond
        type: ZSTD_pthread_cond_t
      - name: shutdown
        type: int
      item_type: struct
      name: POOL_ctx_s
      pos:
        line_end: 7580
        line_start: 7554
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: dummy
        type: int
      item_type: struct
      name: POOL_ctx_s
      pos:
        line_end: 7843
        line_start: 7841
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: f1c
        type: U32
      - name: f1d
        type: U32
      - name: f7b
        type: U32
      - name: f7c
        type: U32
      item_type: struct
      name: ZSTD_cpuid_t
      pos:
        line_end: 7964
        line_start: 7959
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: digest[4]
        type: unsigned char
      item_type: struct
      name: XXH32_canonical_t
      pos:
        line_end: 8927
        line_start: 8925
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: digest[sizeof(XXH64_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH64_canonical_t
      pos:
        line_end: 9188
        line_start: 9188
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: low64
        type: XXH64_hash_t
      - name: high64
        type: XXH64_hash_t
      item_type: struct
      name: XXH128_hash_t
      pos:
        line_end: 9517
        line_start: 9514
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: digest[sizeof(XXH128_hash_t)]
        type: unsigned char
      item_type: struct
      name: XXH128_canonical_t
      pos:
        line_end: 9731
        line_start: 9731
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: total_len_32
        type: XXH32_hash_t
      - name: large_len
        type: XXH32_hash_t
      - name: v[4]
        type: XXH32_hash_t
      - name: mem32[4]
        type: XXH32_hash_t
      - name: memsize
        type: XXH32_hash_t
      - name: reserved
        type: XXH32_hash_t
      item_type: struct
      name: XXH32_state_s
      pos:
        line_end: 9805
        line_start: 9798
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: total_len
        type: XXH64_hash_t
      - name: v[4]
        type: XXH64_hash_t
      - name: mem64[4]
        type: XXH64_hash_t
      - name: memsize
        type: XXH32_hash_t
      - name: reserved32
        type: XXH32_hash_t
      - name: reserved64
        type: XXH64_hash_t
      item_type: struct
      name: XXH64_state_s
      pos:
        line_end: 9829
        line_start: 9822
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: (64, XXH64_hash_t acc[8])
        type: XXH_ALIGN_MEMBER
      - name: (64, unsigned char customSecret[XXH3_SECRET_DEFAULT_SIZE])
        type: XXH_ALIGN_MEMBER
      - name: (64, unsigned char buffer[XXH3_INTERNALBUFFER_SIZE])
        type: XXH_ALIGN_MEMBER
      - name: bufferedSize
        type: XXH32_hash_t
      - name: useSeed
        type: XXH32_hash_t
      - name: nbStripesSoFar
        type: size_t
      - name: totalLen
        type: XXH64_hash_t
      - name: nbStripesPerBlock
        type: size_t
      - name: secretLimit
        type: size_t
      - name: seed
        type: XXH64_hash_t
      - name: reserved64
        type: XXH64_hash_t
      - name: '* extSecret'
        type: unsigned char
      item_type: struct
      name: XXH3_state_s
      pos:
        line_end: 9924
        line_start: 9897
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: version
        type: unsigned
      - name: streaming
        type: unsigned
      - name: dictionaryID
        type: unsigned
      - name: dictionaryIsCold
        type: unsigned
      - name: dictionarySize
        type: size_t
      - name: uncompressedSize
        type: size_t
      - name: compressedSize
        type: size_t
      - name: '* params'
        type: struct ZSTD_CCtx_params_s
      - name: '* cctx'
        type: struct ZSTD_CCtx_s
      - name: '* dctx'
        type: struct ZSTD_DCtx_s
      item_type: struct
      name: ZSTD_Trace
      pos:
        line_end: 15320
        line_start: 15273
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offBase
        type: U32
      - name: litLength
        type: U16
      - name: mlBase
        type: U16
      item_type: struct
      name: seqDef_s
      pos:
        line_end: 15631
        line_start: 15627
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* sequencesStart'
        type: seqDef
      - name: '* sequences'
        type: seqDef
      - name: '*  litStart'
        type: BYTE
      - name: '*  lit'
        type: BYTE
      - name: '*  llCode'
        type: BYTE
      - name: '*  mlCode'
        type: BYTE
      - name: '*  ofCode'
        type: BYTE
      - name: maxNbSeq
        type: size_t
      - name: maxNbLit
        type: size_t
      - name: longLengthType
        type: ZSTD_longLengthType_e
      - name: longLengthPos
        type: U32
      item_type: struct
      name: seqStore_t
      pos:
        line_end: 15657
        line_start: 15640
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: litLength
        type: U32
      - name: matchLength
        type: U32
      item_type: struct
      name: ZSTD_sequenceLength
      pos:
        line_end: 15662
        line_start: 15659
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: nbBlocks
        type: size_t
      - name: compressedSize
        type: size_t
      - name: decompressedBound
        type: unsigned long long
      item_type: struct
      name: ZSTD_frameSizeInfo
      pos:
        line_end: 15694
        line_start: 15690
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: blockType
        type: blockType_e
      - name: lastBlock
        type: U32
      - name: origSize
        type: U32
      item_type: struct
      name: blockProperties_t
      pos:
        line_end: 15711
        line_start: 15707
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: count
        type: U32
      - name: parent
        type: U16
      - name: byte
        type: BYTE
      - name: nbBits
        type: BYTE
      item_type: struct
      name: nodeElt_s
      pos:
        line_end: 16710
        line_start: 16705
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]
        type: FSE_CTable
      - name: scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(HUF_TABLELOG_MAX,
          MAX_FSE_TABLELOG_FOR_HUFF_HEADER)]
        type: U32
      - name: count[HUF_TABLELOG_MAX+1]
        type: unsigned
      - name: norm[HUF_TABLELOG_MAX+1]
        type: S16
      item_type: struct
      name: HUF_CompressWeightsWksp
      pos:
        line_end: 16802
        line_start: 16797
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: wksp
        type: HUF_CompressWeightsWksp
      - name: bitsToWeight[HUF_TABLELOG_MAX + 1]
        type: BYTE
      - name: huffWeight[HUF_SYMBOLVALUE_MAX]
        type: BYTE
      item_type: struct
      name: HUF_WriteCTableWksp
      pos:
        line_end: 16904
        line_start: 16900
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: base
        type: U16
      - name: curr
        type: U16
      item_type: struct
      name: rankPos
      pos:
        line_end: 17161
        line_start: 17158
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: huffNodeTbl
        type: huffNodeTable
      - name: rankPosition[RANK_POSITION_TABLE_SIZE]
        type: rankPos
      item_type: struct
      name: HUF_buildCTable_wksp_tables
      pos:
        line_end: 17171
        line_start: 17168
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: bitContainer[2]
        type: size_t
      - name: bitPos[2]
        type: size_t
      - name: '* startPtr'
        type: BYTE
      - name: '* ptr'
        type: BYTE
      - name: '* endPtr'
        type: BYTE
      item_type: struct
      name: HUF_CStream_t
      pos:
        line_end: 17508
        line_start: 17501
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: count[HUF_SYMBOLVALUE_MAX + 1]
        type: unsigned
      - name: CTable[HUF_CTABLE_SIZE_ST(HUF_SYMBOLVALUE_MAX)]
        type: HUF_CElt
      - name: wksps
        type: "union {\n        HUF_buildCTable_wksp_tables buildCTable_wksp;\n        HUF_WriteCTableWksp
          writeCTable_wksp;\n        U32 hist_wksp[HIST_WKSP_SIZE_U32];\n    }"
      item_type: struct
      name: HUF_compress_tables_t
      pos:
        line_end: 17907
        line_start: 17899
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* workspace'
        type: void
      - name: '* workspaceEnd'
        type: void
      - name: '* objectEnd'
        type: void
      - name: '* tableEnd'
        type: void
      - name: '* tableValidEnd'
        type: void
      - name: '* allocStart'
        type: void
      - name: '* initOnceStart'
        type: void
      - name: allocFailed
        type: BYTE
      - name: workspaceOversizedDuration
        type: int
      - name: phase
        type: ZSTD_cwksp_alloc_phase_e
      - name: isStatic
        type: ZSTD_cwksp_static_alloc_e
      item_type: struct
      name: ZSTD_cwksp
      pos:
        line_end: 18346
        line_start: 18332
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dict'
        type: void
      - name: dictSize
        type: size_t
      - name: dictContentType
        type: ZSTD_dictContentType_e
      item_type: struct
      name: ZSTD_prefixDict_s
      pos:
        line_end: 19071
        line_start: 19067
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dictBuffer'
        type: void
      - name: '* dict'
        type: void
      - name: dictSize
        type: size_t
      - name: dictContentType
        type: ZSTD_dictContentType_e
      - name: '* cdict'
        type: ZSTD_CDict
      item_type: struct
      name: ZSTD_localDict
      pos:
        line_end: 19079
        line_start: 19073
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: CTable[HUF_CTABLE_SIZE_ST(255)]
        type: HUF_CElt
      - name: repeatMode
        type: HUF_repeat
      item_type: struct
      name: ZSTD_hufCTables_t
      pos:
        line_end: 19084
        line_start: 19081
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offcodeCTable[FSE_CTABLE_SIZE_U32(OffFSELog, MaxOff)]
        type: FSE_CTable
      - name: matchlengthCTable[FSE_CTABLE_SIZE_U32(MLFSELog, MaxML)]
        type: FSE_CTable
      - name: litlengthCTable[FSE_CTABLE_SIZE_U32(LLFSELog, MaxLL)]
        type: FSE_CTable
      - name: offcode_repeatMode
        type: FSE_repeat
      - name: matchlength_repeatMode
        type: FSE_repeat
      - name: litlength_repeatMode
        type: FSE_repeat
      item_type: struct
      name: ZSTD_fseCTables_t
      pos:
        line_end: 19093
        line_start: 19086
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: huf
        type: ZSTD_hufCTables_t
      - name: fse
        type: ZSTD_fseCTables_t
      item_type: struct
      name: ZSTD_entropyCTables_t
      pos:
        line_end: 19098
        line_start: 19095
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: hType
        type: symbolEncodingType_e
      - name: hufDesBuffer[ZSTD_MAX_HUF_HEADER_SIZE]
        type: BYTE
      - name: hufDesSize
        type: size_t
      item_type: struct
      name: ZSTD_hufCTablesMetadata_t
      pos:
        line_end: 19112
        line_start: 19108
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: llType
        type: symbolEncodingType_e
      - name: ofType
        type: symbolEncodingType_e
      - name: mlType
        type: symbolEncodingType_e
      - name: fseTablesBuffer[ZSTD_MAX_FSE_HEADERS_SIZE]
        type: BYTE
      - name: fseTablesSize
        type: size_t
      - name: lastCountSize
        type: size_t
      item_type: struct
      name: ZSTD_fseCTablesMetadata_t
      pos:
        line_end: 19126
        line_start: 19119
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: hufMetadata
        type: ZSTD_hufCTablesMetadata_t
      - name: fseMetadata
        type: ZSTD_fseCTablesMetadata_t
      item_type: struct
      name: ZSTD_entropyCTablesMetadata_t
      pos:
        line_end: 19131
        line_start: 19128
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: 'off'
        type: U32
      - name: len
        type: U32
      item_type: struct
      name: ZSTD_match_t
      pos:
        line_end: 19151
        line_start: 19148
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offset
        type: U32
      - name: litLength
        type: U32
      - name: matchLength
        type: U32
      item_type: struct
      name: rawSeq
      pos:
        line_end: 19157
        line_start: 19153
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* seq'
        type: rawSeq
      - name: pos
        type: size_t
      - name: posInSequence
        type: size_t
      - name: size
        type: size_t
      - name: capacity
        type: size_t
      item_type: struct
      name: rawSeqStore_t
      pos:
        line_end: 19166
        line_start: 19159
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: idx
        type: U32
      - name: posInSequence
        type: U32
      - name: posInSrc
        type: size_t
      item_type: struct
      name: ZSTD_sequencePosition
      pos:
        line_end: 19172
        line_start: 19168
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: price
        type: int
      - name: 'off'
        type: U32
      - name: mlen
        type: U32
      - name: litlen
        type: U32
      - name: rep[ZSTD_REP_NUM]
        type: U32
      item_type: struct
      name: ZSTD_optimal_t
      pos:
        line_end: 19182
        line_start: 19176
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* litFreq'
        type: unsigned
      - name: '* litLengthFreq'
        type: unsigned
      - name: '* matchLengthFreq'
        type: unsigned
      - name: '* offCodeFreq'
        type: unsigned
      - name: '* matchTable'
        type: ZSTD_match_t
      - name: '* priceTable'
        type: ZSTD_optimal_t
      - name: litSum
        type: U32
      - name: litLengthSum
        type: U32
      - name: matchLengthSum
        type: U32
      - name: offCodeSum
        type: U32
      - name: litSumBasePrice
        type: U32
      - name: litLengthSumBasePrice
        type: U32
      - name: matchLengthSumBasePrice
        type: U32
      - name: offCodeSumBasePrice
        type: U32
      - name: priceType
        type: ZSTD_OptPrice_e
      - name: '* symbolCosts'
        type: ZSTD_entropyCTables_t
      - name: literalCompressionMode
        type: ZSTD_paramSwitch_e
      item_type: struct
      name: optState_t
      pos:
        line_end: 19207
        line_start: 19187
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: entropy
        type: ZSTD_entropyCTables_t
      - name: rep[ZSTD_REP_NUM]
        type: U32
      item_type: struct
      name: ZSTD_compressedBlockState_t
      pos:
        line_end: 19212
        line_start: 19209
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* nextSrc'
        type: BYTE
      - name: '* base'
        type: BYTE
      - name: '* dictBase'
        type: BYTE
      - name: dictLimit
        type: U32
      - name: lowLimit
        type: U32
      - name: nbOverflowCorrections
        type: U32
      item_type: struct
      name: ZSTD_window_t
      pos:
        line_end: 19224
        line_start: 19214
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: window
        type: ZSTD_window_t
      - name: loadedDictEnd
        type: U32
      - name: nextToUpdate
        type: U32
      - name: hashLog3
        type: U32
      - name: rowHashLog
        type: U32
      - name: '* tagTable'
        type: BYTE
      - name: hashCache[ZSTD_ROW_HASH_CACHE_SIZE]
        type: U32
      - name: hashSalt
        type: U64
      - name: hashSaltEntropy
        type: U32
      - name: '* hashTable'
        type: U32
      - name: '* hashTable3'
        type: U32
      - name: '* chainTable'
        type: U32
      - name: forceNonContiguous
        type: U32
      - name: dedicatedDictSearch
        type: int
      - name: opt
        type: optState_t
      - name: '* dictMatchState'
        type: ZSTD_matchState_t
      - name: cParams
        type: ZSTD_compressionParameters
      - name: '* ldmSeqStore'
        type: rawSeqStore_t
      - name: prefetchCDictTables
        type: int
      - name: lazySkipping
        type: int
      item_type: struct
      name: ZSTD_matchState_t
      pos:
        line_end: 19275
        line_start: 19232
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* prevCBlock'
        type: ZSTD_compressedBlockState_t
      - name: '* nextCBlock'
        type: ZSTD_compressedBlockState_t
      - name: matchState
        type: ZSTD_matchState_t
      item_type: struct
      name: ZSTD_blockState_t
      pos:
        line_end: 19281
        line_start: 19277
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offset
        type: U32
      - name: checksum
        type: U32
      item_type: struct
      name: ldmEntry_t
      pos:
        line_end: 19286
        line_start: 19283
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* split'
        type: BYTE
      - name: hash
        type: U32
      - name: checksum
        type: U32
      - name: '* bucket'
        type: ldmEntry_t
      item_type: struct
      name: ldmMatchCandidate_t
      pos:
        line_end: 19293
        line_start: 19288
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: window
        type: ZSTD_window_t
      - name: '* hashTable'
        type: ldmEntry_t
      - name: loadedDictEnd
        type: U32
      - name: '* bucketOffsets'
        type: BYTE
      - name: splitIndices[LDM_BATCH_SIZE]
        type: size_t
      - name: matchCandidates[LDM_BATCH_SIZE]
        type: ldmMatchCandidate_t
      item_type: struct
      name: ldmState_t
      pos:
        line_end: 19304
        line_start: 19297
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: enableLdm
        type: ZSTD_paramSwitch_e
      - name: hashLog
        type: U32
      - name: bucketSizeLog
        type: U32
      - name: minMatchLength
        type: U32
      - name: hashRateLog
        type: U32
      - name: windowLog
        type: U32
      item_type: struct
      name: ldmParams_t
      pos:
        line_end: 19313
        line_start: 19306
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: collectSequences
        type: int
      - name: '* seqStart'
        type: ZSTD_Sequence
      - name: seqIndex
        type: size_t
      - name: maxSequences
        type: size_t
      item_type: struct
      name: SeqCollector
      pos:
        line_end: 19320
        line_start: 19315
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: format
        type: ZSTD_format_e
      - name: cParams
        type: ZSTD_compressionParameters
      - name: fParams
        type: ZSTD_frameParameters
      - name: compressionLevel
        type: int
      - name: forceWindow
        type: int
      - name: targetCBlockSize
        type: size_t
      - name: srcSizeHint
        type: int
      - name: attachDictPref
        type: ZSTD_dictAttachPref_e
      - name: literalCompressionMode
        type: ZSTD_paramSwitch_e
      - name: nbWorkers
        type: int
      - name: jobSize
        type: size_t
      - name: overlapLog
        type: int
      - name: rsyncable
        type: int
      - name: ldmParams
        type: ldmParams_t
      - name: enableDedicatedDictSearch
        type: int
      - name: inBufferMode
        type: ZSTD_bufferMode_e
      - name: outBufferMode
        type: ZSTD_bufferMode_e
      - name: blockDelimiters
        type: ZSTD_sequenceFormat_e
      - name: validateSequences
        type: int
      - name: useBlockSplitter
        type: ZSTD_paramSwitch_e
      - name: useRowMatchFinder
        type: ZSTD_paramSwitch_e
      - name: deterministicRefPrefix
        type: int
      - name: customMem
        type: ZSTD_customMem
      - name: prefetchCDictTables
        type: ZSTD_paramSwitch_e
      - name: enableMatchFinderFallback
        type: int
      - name: '* extSeqProdState'
        type: void
      - name: extSeqProdFunc
        type: ZSTD_sequenceProducer_F
      - name: maxBlockSize
        type: size_t
      - name: searchForExternalRepcodes
        type: ZSTD_paramSwitch_e
      item_type: struct
      name: ZSTD_CCtx_params_s
      pos:
        line_end: 19390
        line_start: 19322
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: fullSeqStoreChunk
        type: seqStore_t
      - name: firstHalfSeqStore
        type: seqStore_t
      - name: secondHalfSeqStore
        type: seqStore_t
      - name: currSeqStore
        type: seqStore_t
      - name: nextSeqStore
        type: seqStore_t
      - name: partitions[ZSTD_MAX_NB_BLOCK_SPLITS]
        type: U32
      - name: entropyMetadata
        type: ZSTD_entropyCTablesMetadata_t
      item_type: struct
      name: ZSTD_blockSplitCtx
      pos:
        line_end: 19419
        line_start: 19410
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: stage
        type: ZSTD_compressionStage_e
      - name: cParamsChanged
        type: int
      - name: bmi2
        type: int
      - name: requestedParams
        type: ZSTD_CCtx_params
      - name: appliedParams
        type: ZSTD_CCtx_params
      - name: simpleApiParams
        type: ZSTD_CCtx_params
      - name: dictID
        type: U32
      - name: dictContentSize
        type: size_t
      - name: workspace
        type: ZSTD_cwksp
      - name: blockSize
        type: size_t
      - name: pledgedSrcSizePlusOne
        type: unsigned long long
      - name: consumedSrcSize
        type: unsigned long long
      - name: producedCSize
        type: unsigned long long
      - name: xxhState
        type: XXH64_state_t
      - name: customMem
        type: ZSTD_customMem
      - name: '* pool'
        type: ZSTD_threadPool
      - name: staticSize
        type: size_t
      - name: seqCollector
        type: SeqCollector
      - name: isFirstBlock
        type: int
      - name: initialized
        type: int
      - name: seqStore
        type: seqStore_t
      - name: ldmState
        type: ldmState_t
      - name: '* ldmSequences'
        type: rawSeq
      - name: maxNbLdmSequences
        type: size_t
      - name: externSeqStore
        type: rawSeqStore_t
      - name: blockState
        type: ZSTD_blockState_t
      - name: '* entropyWorkspace'
        type: U32
      - name: bufferedPolicy
        type: ZSTD_buffered_policy_e
      - name: '*  inBuff'
        type: char
      - name: inBuffSize
        type: size_t
      - name: inToCompress
        type: size_t
      - name: inBuffPos
        type: size_t
      - name: inBuffTarget
        type: size_t
      - name: '*  outBuff'
        type: char
      - name: outBuffSize
        type: size_t
      - name: outBuffContentSize
        type: size_t
      - name: outBuffFlushedSize
        type: size_t
      - name: streamStage
        type: ZSTD_cStreamStage
      - name: frameEnded
        type: U32
      - name: expectedInBuffer
        type: ZSTD_inBuffer
      - name: stableIn_notConsumed
        type: size_t
      - name: expectedOutBufferSize
        type: size_t
      - name: localDict
        type: ZSTD_localDict
      - name: '* cdict'
        type: ZSTD_CDict
      - name: prefixDict
        type: ZSTD_prefixDict
      - name: blockSplitCtx
        type: ZSTD_blockSplitCtx
      - name: '* extSeqBuf'
        type: ZSTD_Sequence
      - name: extSeqBufCapacity
        type: size_t
      item_type: struct
      name: ZSTD_CCtx_s
      pos:
        line_end: 19494
        line_start: 19421
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: rep[3]
        type: U32
      item_type: struct
      name: repcodes_s
      pos:
        line_end: 19749
        line_start: 19747
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: norm[MaxSeq + 1]
        type: S16
      - name: wksp[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(MaxSeq, MaxFSELog)]
        type: U32
      item_type: struct
      name: ZSTD_BuildCTableWksp
      pos:
        line_end: 21094
        line_start: 21091
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: estLitSize
        type: size_t
      - name: estBlockSize
        type: size_t
      item_type: struct
      name: EstimatedBlockSize
      pos:
        line_end: 21727
        line_start: 21724
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dictContent'
        type: void
      - name: dictContentSize
        type: size_t
      - name: dictContentType
        type: ZSTD_dictContentType_e
      - name: '* entropyWorkspace'
        type: U32
      - name: workspace
        type: ZSTD_cwksp
      - name: matchState
        type: ZSTD_matchState_t
      - name: cBlockState
        type: ZSTD_compressedBlockState_t
      - name: customMem
        type: ZSTD_customMem
      - name: dictID
        type: U32
      - name: compressionLevel
        type: int
      - name: useRowMatchFinder
        type: ZSTD_paramSwitch_e
      item_type: struct
      name: ZSTD_CDict_s
      pos:
        line_end: 22607
        line_start: 22592
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: LLtype
        type: U32
      - name: Offtype
        type: U32
      - name: MLtype
        type: U32
      - name: size
        type: size_t
      - name: lastCountSize
        type: size_t
      - name: longOffsets
        type: int
      item_type: struct
      name: ZSTD_symbolEncodingTypeStats_t
      pos:
        line_end: 25254
        line_start: 25247
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* splitLocations'
        type: U32
      - name: idx
        type: size_t
      item_type: struct
      name: seqStoreSplits
      pos:
        line_end: 26627
        line_start: 26624
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: rolling
        type: U64
      - name: stopMask
        type: U64
      item_type: struct
      name: ldmRollingHashState_t
      pos:
        line_end: 33879
        line_start: 33876
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: seqStore
        type: rawSeqStore_t
      - name: startPosInBlock
        type: U32
      - name: endPosInBlock
        type: U32
      - name: offset
        type: U32
      item_type: struct
      name: ZSTD_optLdm_t
      pos:
        line_end: 35497
        line_start: 35492
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* start'
        type: void
      - name: capacity
        type: size_t
      item_type: struct
      name: buffer_s
      pos:
        line_end: 36257
        line_start: 36254
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: poolMutex
        type: ZSTD_pthread_mutex_t
      - name: bufferSize
        type: size_t
      - name: totalBuffers
        type: unsigned
      - name: nbBuffers
        type: unsigned
      - name: cMem
        type: ZSTD_customMem
      - name: '* buffers'
        type: buffer_t
      item_type: struct
      name: ZSTDMT_bufferPool_s
      pos:
        line_end: 36268
        line_start: 36261
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: poolMutex
        type: ZSTD_pthread_mutex_t
      - name: totalCCtx
        type: int
      - name: availCCtx
        type: int
      - name: cMem
        type: ZSTD_customMem
      - name: '** cctxs'
        type: ZSTD_CCtx
      item_type: struct
      name: ZSTDMT_CCtxPool
      pos:
        line_end: 36526
        line_start: 36520
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* start'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: range_t
      pos:
        line_end: 36633
        line_start: 36630
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: mutex
        type: ZSTD_pthread_mutex_t
      - name: cond
        type: ZSTD_pthread_cond_t
      - name: params
        type: ZSTD_CCtx_params
      - name: ldmState
        type: ldmState_t
      - name: xxhState
        type: XXH64_state_t
      - name: nextJobID
        type: unsigned
      - name: ldmWindowMutex
        type: ZSTD_pthread_mutex_t
      - name: ldmWindowCond
        type: ZSTD_pthread_cond_t
      - name: ldmWindow
        type: ZSTD_window_t
      item_type: struct
      name: serialState_t
      pos:
        line_end: 36649
        line_start: 36635
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: consumed
        type: size_t
      - name: cSize
        type: size_t
      - name: job_mutex
        type: ZSTD_pthread_mutex_t
      - name: job_cond
        type: ZSTD_pthread_cond_t
      - name: '* cctxPool'
        type: ZSTDMT_CCtxPool
      - name: '* bufPool'
        type: ZSTDMT_bufferPool
      - name: '* seqPool'
        type: ZSTDMT_seqPool
      - name: '* serial'
        type: serialState_t
      - name: dstBuff
        type: buffer_t
      - name: prefix
        type: range_t
      - name: src
        type: range_t
      - name: jobID
        type: unsigned
      - name: firstJob
        type: unsigned
      - name: lastJob
        type: unsigned
      - name: params
        type: ZSTD_CCtx_params
      - name: '* cdict'
        type: ZSTD_CDict
      - name: fullFrameSize
        type: unsigned long long
      - name: dstFlushed
        type: size_t
      - name: frameChecksumNeeded
        type: unsigned
      item_type: struct
      name: ZSTDMT_jobDescription
      pos:
        line_end: 36836
        line_start: 36816
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: prefix
        type: range_t
      - name: buffer
        type: buffer_t
      - name: filled
        type: size_t
      item_type: struct
      name: inBuff_t
      pos:
        line_end: 36979
        line_start: 36975
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* buffer'
        type: BYTE
      - name: capacity
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: roundBuff_t
      pos:
        line_end: 36993
        line_start: 36981
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: hash
        type: U64
      - name: hitMask
        type: U64
      - name: primePower
        type: U64
      item_type: struct
      name: rsyncState_t
      pos:
        line_end: 37012
        line_start: 37008
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* factory'
        type: POOL_ctx
      - name: '* jobs'
        type: ZSTDMT_jobDescription
      - name: '* bufPool'
        type: ZSTDMT_bufferPool
      - name: '* cctxPool'
        type: ZSTDMT_CCtxPool
      - name: '* seqPool'
        type: ZSTDMT_seqPool
      - name: params
        type: ZSTD_CCtx_params
      - name: targetSectionSize
        type: size_t
      - name: targetPrefixSize
        type: size_t
      - name: jobReady
        type: int
      - name: inBuff
        type: inBuff_t
      - name: roundBuff
        type: roundBuff_t
      - name: serial
        type: serialState_t
      - name: rsync
        type: rsyncState_t
      - name: jobIDMask
        type: unsigned
      - name: doneJobID
        type: unsigned
      - name: nextJobID
        type: unsigned
      - name: frameEnded
        type: unsigned
      - name: allJobsCompleted
        type: unsigned
      - name: frameContentSize
        type: unsigned long long
      - name: consumed
        type: unsigned long long
      - name: produced
        type: unsigned long long
      - name: cMem
        type: ZSTD_customMem
      - name: '* cdictLocal'
        type: ZSTD_CDict
      - name: '* cdict'
        type: ZSTD_CDict
      - name: providedFactory
        type: unsigned
      item_type: struct
      name: ZSTDMT_CCtx_s
      pos:
        line_end: 37040
        line_start: 37014
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: toLoad
        type: size_t
      - name: flush
        type: int
      item_type: struct
      name: syncPoint_t
      pos:
        line_end: 37860
        line_start: 37857
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: maxTableLog
        type: BYTE
      - name: tableType
        type: BYTE
      - name: tableLog
        type: BYTE
      - name: reserved
        type: BYTE
      item_type: struct
      name: DTableDesc
      pos:
        line_end: 38191
        line_start: 38191
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* ip[4]'
        type: BYTE
      - name: '* op[4]'
        type: BYTE
      - name: bits[4]
        type: U64
      - name: '* dt'
        type: void
      - name: '* ilowest'
        type: BYTE
      - name: '* oend'
        type: BYTE
      - name: '* iend[4]'
        type: BYTE
      item_type: struct
      name: HUF_DecompressFastArgs
      pos:
        line_end: 38231
        line_start: 38223
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: nbBits
        type: BYTE
      - name: byte
        type: BYTE
      item_type: struct
      name: HUF_DEltX1
      pos:
        line_end: 38379
        line_start: 38379
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]
        type: U32
      - name: rankStart[HUF_TABLELOG_ABSOLUTEMAX + 1]
        type: U32
      - name: statsWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]
        type: U32
      - name: symbols[HUF_SYMBOLVALUE_MAX + 1]
        type: BYTE
      - name: huffWeight[HUF_SYMBOLVALUE_MAX + 1]
        type: BYTE
      item_type: struct
      name: HUF_ReadDTableX1_Workspace
      pos:
        line_end: 38433
        line_start: 38427
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: sequence
        type: U16
      - name: nbBits
        type: BYTE
      - name: length
        type: BYTE
      item_type: struct
      name: HUF_DEltX2
      pos:
        line_end: 39003
        line_start: 39003
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: symbol
        type: BYTE
      item_type: struct
      name: sortedSymbol_t
      pos:
        line_end: 39004
        line_start: 39004
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: rankVal[HUF_TABLELOG_MAX]
        type: rankValCol_t
      - name: rankStats[HUF_TABLELOG_MAX + 1]
        type: U32
      - name: rankStart0[HUF_TABLELOG_MAX + 3]
        type: U32
      - name: sortedSymbol[HUF_SYMBOLVALUE_MAX + 1]
        type: sortedSymbol_t
      - name: weightList[HUF_SYMBOLVALUE_MAX + 1]
        type: BYTE
      - name: calleeWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]
        type: U32
      item_type: struct
      name: HUF_ReadDTableX2_Workspace
      pos:
        line_end: 39227
        line_start: 39220
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: tableTime
        type: U32
      - name: decode256Time
        type: U32
      item_type: struct
      name: algo_time_t
      pos:
        line_end: 39843
        line_start: 39843
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: fastMode
        type: U32
      - name: tableLog
        type: U32
      item_type: struct
      name: ZSTD_seqSymbol_header
      pos:
        line_end: 40085
        line_start: 40082
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: nextState
        type: U16
      - name: nbAdditionalBits
        type: BYTE
      - name: nbBits
        type: BYTE
      - name: baseValue
        type: U32
      item_type: struct
      name: ZSTD_seqSymbol
      pos:
        line_end: 40092
        line_start: 40087
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]
        type: ZSTD_seqSymbol
      - name: OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]
        type: ZSTD_seqSymbol
      - name: MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]
        type: ZSTD_seqSymbol
      - name: hufTable[HUF_DTABLE_SIZE(ZSTD_HUFFDTABLE_CAPACITY_LOG)]
        type: HUF_DTable
      - name: rep[ZSTD_REP_NUM]
        type: U32
      - name: workspace[ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32]
        type: U32
      item_type: struct
      name: ZSTD_entropyDTables_t
      pos:
        line_end: 40107
        line_start: 40100
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '** ddictPtrTable'
        type: ZSTD_DDict
      - name: ddictPtrTableSize
        type: size_t
      - name: ddictPtrCount
        type: size_t
      item_type: struct
      name: ZSTD_DDictHashSet
      pos:
        line_end: 40128
        line_start: 40124
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* LLTptr'
        type: ZSTD_seqSymbol
      - name: '* MLTptr'
        type: ZSTD_seqSymbol
      - name: '* OFTptr'
        type: ZSTD_seqSymbol
      - name: '* HUFptr'
        type: HUF_DTable
      - name: entropy
        type: ZSTD_entropyDTables_t
      - name: workspace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]
        type: U32
      - name: '* previousDstEnd'
        type: void
      - name: '* prefixStart'
        type: void
      - name: '* virtualStart'
        type: void
      - name: '* dictEnd'
        type: void
      - name: expected
        type: size_t
      - name: fParams
        type: ZSTD_frameHeader
      - name: processedCSize
        type: U64
      - name: decodedSize
        type: U64
      - name: bType
        type: blockType_e
      - name: stage
        type: ZSTD_dStage
      - name: litEntropy
        type: U32
      - name: fseEntropy
        type: U32
      - name: xxhState
        type: XXH64_state_t
      - name: headerSize
        type: size_t
      - name: format
        type: ZSTD_format_e
      - name: forceIgnoreChecksum
        type: ZSTD_forceIgnoreChecksum_e
      - name: validateChecksum
        type: U32
      - name: '* litPtr'
        type: BYTE
      - name: customMem
        type: ZSTD_customMem
      - name: litSize
        type: size_t
      - name: rleSize
        type: size_t
      - name: staticSize
        type: size_t
      - name: isFrameDecompression
        type: int
      - name: '* ddictLocal'
        type: ZSTD_DDict
      - name: '* ddict'
        type: ZSTD_DDict
      - name: dictID
        type: U32
      - name: ddictIsCold
        type: int
      - name: dictUses
        type: ZSTD_dictUses_e
      - name: '* ddictSet'
        type: ZSTD_DDictHashSet
      - name: refMultipleDDicts
        type: ZSTD_refMultipleDDicts_e
      - name: disableHufAsm
        type: int
      - name: maxBlockSizeParam
        type: int
      - name: streamStage
        type: ZSTD_dStreamStage
      - name: '*  inBuff'
        type: char
      - name: inBuffSize
        type: size_t
      - name: inPos
        type: size_t
      - name: maxWindowSize
        type: size_t
      - name: '*  outBuff'
        type: char
      - name: outBuffSize
        type: size_t
      - name: outStart
        type: size_t
      - name: outEnd
        type: size_t
      - name: lhSize
        type: size_t
      - name: hostageByte
        type: U32
      - name: noForwardProgress
        type: int
      - name: outBufferMode
        type: ZSTD_bufferMode_e
      - name: expectedOutBuffer
        type: ZSTD_outBuffer
      - name: '* litBuffer'
        type: BYTE
      - name: '* litBufferEnd'
        type: BYTE
      - name: litBufferLocation
        type: ZSTD_litLocation_e
      - name: litExtraBuffer[ZSTD_LITBUFFEREXTRASIZE + WILDCOPY_OVERLENGTH]
        type: BYTE
      - name: headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]
        type: BYTE
      - name: oversizedDuration
        type: size_t
      item_type: struct
      name: ZSTD_DCtx_s
      pos:
        line_end: 40231
        line_start: 40146
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: srcSize
        type: U64
      - name: windowLog
        type: U32
      - name: contentLog
        type: U32
      - name: hashLog
        type: U32
      - name: searchLog
        type: U32
      - name: searchLength
        type: U32
      - name: targetLength
        type: U32
      - name: strategy
        type: ZSTDv05_strategy
      item_type: struct
      name: ZSTDv05_parameters
      pos:
        line_end: 40869
        line_start: 40865
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: frameContentSize
        type: unsigned long long
      - name: windowLog
        type: unsigned
      item_type: struct
      name: ZSTDv06_frameParams_s
      pos:
        line_end: 41042
        line_start: 41042
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: frameContentSize
        type: unsigned long long
      - name: windowSize
        type: unsigned
      - name: dictID
        type: unsigned
      - name: checksumFlag
        type: unsigned
      item_type: struct
      name: ZSTDv07_frameParams
      pos:
        line_end: 41240
        line_start: 41235
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dictBuffer'
        type: void
      - name: '* dictContent'
        type: void
      - name: dictSize
        type: size_t
      - name: entropy
        type: ZSTD_entropyDTables_t
      - name: dictID
        type: U32
      - name: entropyPresent
        type: U32
      - name: cMem
        type: ZSTD_customMem
      item_type: struct
      name: ZSTD_DDict_s
      pos:
        line_end: 41729
        line_start: 41721
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: litLength
        type: size_t
      - name: matchLength
        type: size_t
      - name: offset
        type: size_t
      item_type: struct
      name: seq_t
      pos:
        line_end: 45196
        line_start: 45192
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: state
        type: size_t
      - name: '* table'
        type: ZSTD_seqSymbol
      item_type: struct
      name: ZSTD_fseState
      pos:
        line_end: 45201
        line_start: 45198
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: DStream
        type: BIT_DStream_t
      - name: stateLL
        type: ZSTD_fseState
      - name: stateOffb
        type: ZSTD_fseState
      - name: stateML
        type: ZSTD_fseState
      - name: prevOffset[ZSTD_REP_NUM]
        type: size_t
      item_type: struct
      name: seqState_t
      pos:
        line_end: 45209
        line_start: 45203
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: longOffsetShare
        type: unsigned
      - name: maxNbAdditionalBits
        type: unsigned
      item_type: struct
      name: ZSTD_OffsetInfo
      pos:
        line_end: 46424
        line_start: 46421
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: compressionLevel
        type: int
      - name: notificationLevel
        type: unsigned
      - name: dictID
        type: unsigned
      item_type: struct
      name: ZDICT_params_t
      pos:
        line_end: 46895
        line_start: 46884
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: k
        type: unsigned
      - name: d
        type: unsigned
      - name: steps
        type: unsigned
      - name: nbThreads
        type: unsigned
      - name: splitPoint
        type: double
      - name: shrinkDict
        type: unsigned
      - name: shrinkDictMaxRegression
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_cover_params_t
      pos:
        line_end: 46984
        line_start: 46975
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: k
        type: unsigned
      - name: d
        type: unsigned
      - name: f
        type: unsigned
      - name: steps
        type: unsigned
      - name: nbThreads
        type: unsigned
      - name: splitPoint
        type: double
      - name: accel
        type: unsigned
      - name: shrinkDict
        type: unsigned
      - name: shrinkDictMaxRegression
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_fastCover_params_t
      pos:
        line_end: 46998
        line_start: 46986
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: selectivityLevel
        type: unsigned
      - name: zParams
        type: ZDICT_params_t
      item_type: struct
      name: ZDICT_legacy_params_t
      pos:
        line_end: 47088
        line_start: 47085
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: mutex
        type: ZSTD_pthread_mutex_t
      - name: cond
        type: ZSTD_pthread_cond_t
      - name: liveJobs
        type: size_t
      - name: '*dict'
        type: void
      - name: dictSize
        type: size_t
      - name: parameters
        type: ZDICT_cover_params_t
      - name: compressedSize
        type: size_t
      item_type: struct
      name: COVER_best_s
      pos:
        line_end: 47181
        line_start: 47173
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: begin
        type: U32
      - name: end
        type: U32
      - name: score
        type: U32
      item_type: struct
      name: COVER_segment_t
      pos:
        line_end: 47190
        line_start: 47186
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: num
        type: U32
      - name: size
        type: U32
      item_type: struct
      name: COVER_epoch_info_t
      pos:
        line_end: 47198
        line_start: 47195
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dictContent'
        type: BYTE
      - name: dictSize
        type: size_t
      - name: totalCompressedSize
        type: size_t
      item_type: struct
      name: COVER_dictSelection
      pos:
        line_end: 47207
        line_start: 47203
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: key
        type: U32
      - name: value
        type: U32
      item_type: struct
      name: COVER_map_pair_t_s
      pos:
        line_end: 47362
        line_start: 47359
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*data'
        type: COVER_map_pair_t
      - name: sizeLog
        type: U32
      - name: size
        type: U32
      - name: sizeMask
        type: U32
      item_type: struct
      name: COVER_map_s
      pos:
        line_end: 47369
        line_start: 47364
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*samples'
        type: BYTE
      - name: '*offsets'
        type: size_t
      - name: '*samplesSizes'
        type: size_t
      - name: nbSamples
        type: size_t
      - name: nbTrainSamples
        type: size_t
      - name: nbTestSamples
        type: size_t
      - name: '*suffix'
        type: U32
      - name: suffixSize
        type: size_t
      - name: '*freqs'
        type: U32
      - name: '*dmerAt'
        type: U32
      - name: d
        type: unsigned
      item_type: struct
      name: COVER_ctx_t
      pos:
        line_end: 47493
        line_start: 47481
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*ctx'
        type: COVER_ctx_t
      - name: '*best'
        type: COVER_best_t
      - name: dictBufferCapacity
        type: size_t
      - name: parameters
        type: ZDICT_cover_params_t
      item_type: struct
      name: COVER_tryParameters_data_s
      pos:
        line_end: 48334
        line_start: 48329
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*a'
        type: int
      - name: d
        type: int
      item_type: struct
      name: stack[STACK_SIZE]
      pos:
        line_end: 48995
        line_start: 48995
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*a'
        type: int
      - name: d
        type: int
      item_type: struct
      name: stack[STACK_SIZE]
      pos:
        line_end: 49350
        line_start: 49350
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: chance
        type: int
      - name: remain
        type: int
      - name: incval
        type: int
      - name: count
        type: int
      item_type: struct
      name: _trbudget_t
      pos:
        line_end: 49637
        line_start: 49632
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*a'
        type: int
      - name: '*b'
        type: int
      - name: d
        type: int
      item_type: struct
      name: stack[STACK_SIZE]
      pos:
        line_end: 49770
        line_start: 49770
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: finalize
        type: unsigned
      - name: skip
        type: unsigned
      item_type: struct
      name: FASTCOVER_accel_t
      pos:
        line_end: 50612
        line_start: 50609
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '*samples'
        type: BYTE
      - name: '*offsets'
        type: size_t
      - name: '*samplesSizes'
        type: size_t
      - name: nbSamples
        type: size_t
      - name: nbTrainSamples
        type: size_t
      - name: nbTestSamples
        type: size_t
      - name: nbDmers
        type: size_t
      - name: '*freqs'
        type: U32
      - name: d
        type: unsigned
      - name: f
        type: unsigned
      - name: accelParams
        type: FASTCOVER_accel_t
      item_type: struct
      name: FASTCOVER_ctx_t
      pos:
        line_end: 50645
        line_start: 50633
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* ctx'
        type: FASTCOVER_ctx_t
      - name: '* best'
        type: COVER_best_t
      - name: dictBufferCapacity
        type: size_t
      - name: parameters
        type: ZDICT_cover_params_t
      item_type: struct
      name: FASTCOVER_tryParameters_data_s
      pos:
        line_end: 50971
        line_start: 50966
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: pos
        type: U32
      - name: length
        type: U32
      - name: savings
        type: U32
      item_type: struct
      name: dictItem
      pos:
        line_end: 51431
        line_start: 51427
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: '* dict'
        type: ZSTD_CDict
      - name: '* zc'
        type: ZSTD_CCtx
      - name: '* workPlace'
        type: void
      item_type: struct
      name: EStats_ress_t
      pos:
        line_end: 51836
        line_start: 51831
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: offset
        type: U32
      - name: count
        type: U32
      item_type: struct
      name: offsetCount_t
      pos:
        line_end: 51903
        line_start: 51903
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    typedefs:
    - item_type: typedef
      name: BYTE
      pos:
        line_end: 990
        line_start: 990
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint8_t
    - item_type: typedef
      name: U8
      pos:
        line_end: 991
        line_start: 991
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint8_t
    - item_type: typedef
      name: S8
      pos:
        line_end: 992
        line_start: 992
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int8_t
    - item_type: typedef
      name: U16
      pos:
        line_end: 993
        line_start: 993
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint16_t
    - item_type: typedef
      name: S16
      pos:
        line_end: 994
        line_start: 994
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int16_t
    - item_type: typedef
      name: U32
      pos:
        line_end: 995
        line_start: 995
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint32_t
    - item_type: typedef
      name: S32
      pos:
        line_end: 996
        line_start: 996
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int32_t
    - item_type: typedef
      name: U64
      pos:
        line_end: 997
        line_start: 997
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint64_t
    - item_type: typedef
      name: S64
      pos:
        line_end: 998
        line_start: 998
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int64_t
    - item_type: typedef
      name: BYTE
      pos:
        line_end: 1004
        line_start: 1004
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned char
    - item_type: typedef
      name: U8
      pos:
        line_end: 1005
        line_start: 1005
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned char
    - item_type: typedef
      name: S8
      pos:
        line_end: 1006
        line_start: 1006
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: signed char
    - item_type: typedef
      name: U16
      pos:
        line_end: 1010
        line_start: 1010
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned short
    - item_type: typedef
      name: S16
      pos:
        line_end: 1011
        line_start: 1011
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: signed short
    - item_type: typedef
      name: U32
      pos:
        line_end: 1015
        line_start: 1015
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned int
    - item_type: typedef
      name: S32
      pos:
        line_end: 1016
        line_start: 1016
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: signed int
    - item_type: typedef
      name: U64
      pos:
        line_end: 1019
        line_start: 1019
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned long long
    - item_type: typedef
      name: S64
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: signed long long
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 1124
        line_start: 1124
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 1125
        line_start: 1125
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 1126
        line_start: 1126
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 1127
        line_start: 1127
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: ERR_enum
      pos:
        line_end: 1536
        line_start: 1536
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_ErrorCode
    - item_type: typedef
      name: FSE_CTable
      pos:
        line_end: 1784
        line_start: 1784
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned
    - item_type: typedef
      name: FSE_DTable
      pos:
        line_end: 1860
        line_start: 1860
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned
    - item_type: typedef
      name: BitContainerType
      pos:
        line_end: 2191
        line_start: 2191
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: HUF_CElt
      pos:
        line_end: 3023
        line_start: 3023
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: HUF_DTable
      pos:
        line_end: 3030
        line_start: 3030
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: U32
    - item_type: typedef
      name: ZSTD_pthread_t
      pos:
        line_end: 4030
        line_start: 4030
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: HANDLE
    - item_type: typedef
      name: ZSTD_pthread_mutex_t
      pos:
        line_end: 4095
        line_start: 4095
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int
    - item_type: typedef
      name: ZSTD_pthread_cond_t
      pos:
        line_end: 4101
        line_start: 4101
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int
    - item_type: typedef
      name: ZSTD_CCtx
      pos:
        line_end: 4574
        line_start: 4574
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_CCtx_s
    - item_type: typedef
      name: ZSTD_DCtx
      pos:
        line_end: 4597
        line_start: 4597
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_DCtx_s
    - item_type: typedef
      name: ZSTD_CStream
      pos:
        line_end: 5068
        line_start: 5068
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_CCtx
    - item_type: typedef
      name: ZSTD_DStream
      pos:
        line_end: 5195
        line_start: 5195
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_DCtx
    - item_type: typedef
      name: ZSTD_CDict
      pos:
        line_end: 5271
        line_start: 5271
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_CDict_s
    - item_type: typedef
      name: ZSTD_DDict
      pos:
        line_end: 5304
        line_start: 5304
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_DDict_s
    - item_type: typedef
      name: ZSTD_CCtx_params
      pos:
        line_end: 5591
        line_start: 5591
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_CCtx_params_s
    - item_type: typedef
      name: '* (*ZSTD_allocFunction) (void* opaque, size_t size)'
      pos:
        line_end: 6107
        line_start: 6107
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: (*ZSTD_freeFunction) (void* opaque, void* address)
      pos:
        line_end: 6108
        line_start: 6108
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: ZSTD_threadPool
      pos:
        line_end: 6137
        line_start: 6137
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: POOL_ctx_s
    - item_type: typedef
      name: "(*ZSTD_sequenceProducer_F) (\n  void* sequenceProducerState,\n  ZSTD_Sequence*
        outSeqs, size_t outSeqsCapacity,\n  const void* src, size_t srcSize,\n  const
        void* dict, size_t dictSize,\n  int compressionLevel,\n  size_t windowSize\n)"
      pos:
        line_end: 7143
        line_start: 7136
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: POOL_ctx
      pos:
        line_end: 7468
        line_start: 7468
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: POOL_ctx_s
    - item_type: typedef
      name: (*POOL_function)(void*)
      pos:
        line_end: 7512
        line_start: 7512
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 8769
        line_start: 8769
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 8779
        line_start: 8779
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint32_t
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 8784
        line_start: 8784
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned int
    - item_type: typedef
      name: XXH32_hash_t
      pos:
        line_end: 8786
        line_start: 8786
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned long
    - item_type: typedef
      name: XXH32_state_t
      pos:
        line_end: 8834
        line_start: 8834
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH32_state_s
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 9037
        line_start: 9037
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 9046
        line_start: 9046
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint64_t
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 9051
        line_start: 9051
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned long
    - item_type: typedef
      name: XXH64_hash_t
      pos:
        line_end: 9054
        line_start: 9054
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned long long
    - item_type: typedef
      name: XXH64_state_t
      pos:
        line_end: 9097
        line_start: 9097
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH64_state_s
    - item_type: typedef
      name: XXH3_state_t
      pos:
        line_end: 9385
        line_start: 9385
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH3_state_s
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 10638
        line_start: 10638
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint8_t
    - item_type: typedef
      name: xxh_u8
      pos:
        line_end: 10640
        line_start: 10640
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned char
    - item_type: typedef
      name: xxh_u32
      pos:
        line_end: 10642
        line_start: 10642
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH32_hash_t
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 10730
        line_start: 10730
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: xxh_u64
      pos:
        line_end: 11376
        line_start: 11376
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH64_hash_t
    - item_type: typedef
      name: ((aligned(1)))
      pos:
        line_end: 11409
        line_start: 11409
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __attribute__
    - item_type: typedef
      name: xxh_aliasing_uint64x2_t
      pos:
        line_end: 12136
        line_start: 12136
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: uint64x2_t
    - item_type: typedef
      name: xxh_u64x2
      pos:
        line_end: 12285
        line_start: 12285
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __vector unsigned long long
    - item_type: typedef
      name: xxh_u8x16
      pos:
        line_end: 12286
        line_start: 12286
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __vector unsigned
    - item_type: typedef
      name: xxh_u32x4
      pos:
        line_end: 12287
        line_start: 12287
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: __vector unsigned
    - item_type: typedef
      name: xxh_aliasing_u64x2
      pos:
        line_end: 12292
        line_start: 12292
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: xxh_u64x2
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 12978
        line_start: 12978
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: int64_t
    - item_type: typedef
      name: xxh_i64
      pos:
        line_end: 12981
        line_start: 12981
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: long long
    - item_type: typedef
      name: (*XXH3_f_accumulate)(xxh_u64* XXH_RESTRICT, const xxh_u8* XXH_RESTRICT,
        const xxh_u8* XXH_RESTRICT, size_t)
      pos:
        line_end: 13907
        line_start: 13907
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: (*XXH3_f_scrambleAcc)(void* XXH_RESTRICT, const void*)
      pos:
        line_end: 13908
        line_start: 13908
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: (*XXH3_f_initCustomSecret)(void* XXH_RESTRICT, xxh_u64)
      pos:
        line_end: 13909
        line_start: 13909
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: "(*XXH3_hashLong64_f)(const void* XXH_RESTRICT, size_t,\n                                          XXH64_hash_t,
        const xxh_u8* XXH_RESTRICT, size_t)"
      pos:
        line_end: 14130
        line_start: 14129
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH64_hash_t
    - item_type: typedef
      name: "(*XXH3_hashLong128_f)(const void* XXH_RESTRICT, size_t,\n                                            XXH64_hash_t,
        const void* XXH_RESTRICT, size_t)"
      pos:
        line_end: 14937
        line_start: 14936
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: XXH128_hash_t
    - item_type: typedef
      name: ZSTD_TraceCtx
      pos:
        line_end: 15336
        line_start: 15336
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: unsigned long long
    - item_type: typedef
      name: huffNodeTable[2 * (HUF_SYMBOLVALUE_MAX + 1)]
      pos:
        line_end: 17163
        line_start: 17163
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: nodeElt
    - item_type: typedef
      name: ZSTDMT_CCtx
      pos:
        line_end: 18976
        line_start: 18976
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDMT_CCtx_s
    - item_type: typedef
      name: ZSTD_matchState_t
      pos:
        line_end: 19228
        line_start: 19228
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTD_matchState_t
    - item_type: typedef
      name: "(*ZSTD_blockCompressor) (\n        ZSTD_matchState_t* bs, seqStore_t*
        seqStore, U32 rep[ZSTD_REP_NUM],\n        void const* src, size_t srcSize)"
      pos:
        line_end: 19528
        line_start: 19526
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: (*huf_compress_f)(void*, size_t, const void*, size_t, unsigned, unsigned,
        void*, size_t, HUF_CElt*, HUF_repeat*, int)
      pos:
        line_end: 20731
        line_start: 20731
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: "(*ZSTD_sequenceCopier) (ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos,\n
        \                                      const ZSTD_Sequence* const inSeqs,
        size_t inSeqsSize,\n                                       const void* src,
        size_t blockSize, ZSTD_paramSwitch_e externalRepSearch)"
      pos:
        line_end: 29229
        line_start: 29227
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: ZSTD_VecMask
      pos:
        line_end: 32329
        line_start: 32329
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: U64
    - item_type: typedef
      name: "(*ZSTD_getAllMatchesFn)(\n    ZSTD_match_t*,\n    ZSTD_matchState_t*,\n
        \   U32*,\n    const BYTE*,\n    const BYTE*,\n    const U32 rep[ZSTD_REP_NUM],\n
        \   U32 const ll0,\n    U32 const lengthToBeat)"
      pos:
        line_end: 35413
        line_start: 35405
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: U32
    - item_type: typedef
      name: ZSTDMT_seqPool
      pos:
        line_end: 36450
        line_start: 36450
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDMT_bufferPool
    - item_type: typedef
      name: "(*HUF_DecompressUsingDTableFn)(void *dst, size_t dstSize,\n                                              const
        void *cSrc,\n                                              size_t cSrcSize,\n
        \                                             const HUF_DTable *DTable)"
      pos:
        line_end: 38144
        line_start: 38141
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: (*HUF_DecompressFastLoopFn)(HUF_DecompressFastArgs*)
      pos:
        line_end: 38233
        line_start: 38233
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: void
    - item_type: typedef
      name: rankValCol_t[HUF_TABLELOG_MAX + 1]
      pos:
        line_end: 39005
        line_start: 39005
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: U32
    - item_type: typedef
      name: rankVal_t[HUF_TABLELOG_MAX]
      pos:
        line_end: 39006
        line_start: 39006
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: rankValCol_t
    - item_type: typedef
      name: ZSTDv01_Dctx
      pos:
        line_end: 40401
        line_start: 40401
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv01_Dctx_s
    - item_type: typedef
      name: ZSTDv02_Dctx
      pos:
        line_end: 40499
        line_start: 40499
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv02_Dctx_s
    - item_type: typedef
      name: ZSTDv03_Dctx
      pos:
        line_end: 40596
        line_start: 40596
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv03_Dctx_s
    - item_type: typedef
      name: ZSTDv04_Dctx
      pos:
        line_end: 40693
        line_start: 40693
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv04_Dctx_s
    - item_type: typedef
      name: ZBUFFv04_DCtx
      pos:
        line_end: 40721
        line_start: 40721
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZBUFFv04_DCtx_s
    - item_type: typedef
      name: ZSTDv05_DCtx
      pos:
        line_end: 40840
        line_start: 40840
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv05_DCtx_s
    - item_type: typedef
      name: ZBUFFv05_DCtx
      pos:
        line_end: 40881
        line_start: 40881
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZBUFFv05_DCtx_s
    - item_type: typedef
      name: ZSTDv06_DCtx
      pos:
        line_end: 41017
        line_start: 41017
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv06_DCtx_s
    - item_type: typedef
      name: ZSTDv06_frameParams
      pos:
        line_end: 41043
        line_start: 41043
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv06_frameParams_s
    - item_type: typedef
      name: ZBUFFv06_DCtx
      pos:
        line_end: 41058
        line_start: 41058
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZBUFFv06_DCtx_s
    - item_type: typedef
      name: ZSTDv07_DCtx
      pos:
        line_end: 41195
        line_start: 41195
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv07_DCtx_s
    - item_type: typedef
      name: ZSTDv07_DDict
      pos:
        line_end: 41223
        line_start: 41223
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZSTDv07_DDict_s
    - item_type: typedef
      name: ZBUFFv07_DCtx
      pos:
        line_end: 41250
        line_start: 41250
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: ZBUFFv07_DCtx_s
    - item_type: typedef
      name: "(*ZSTD_decompressSequences_t)(\n                            ZSTD_DCtx*
        dctx,\n                            void* dst, size_t maxDstSize,\n                            const
        void* seqStart, size_t seqSize, int nbSeq,\n                            const
        ZSTD_longOffset_e isLongOffset)"
      pos:
        line_end: 46356
        line_start: 46352
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: size_t
    - item_type: typedef
      name: trbudget_t
      pos:
        line_end: 49631
        line_start: 49631
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
      type: _trbudget_t
    union:
    - fields:
      - name: u
        type: U32
      - name: c[4]
        type: BYTE
      item_type: union
      name: one = { 1 }
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: u32
        type: xxh_u32
      item_type: union
      name: unalign
      pos:
        line_end: 10726
        line_start: 10726
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: u
        type: xxh_u32
      - name: c[4]
        type: xxh_u8
      item_type: union
      name: one = { 1 }
      pos:
        line_end: 10793
        line_start: 10793
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
    - fields:
      - name: u32
        type: xxh_u32
      - name: u64
        type: xxh_u64
      item_type: union
      name: unalign64
      pos:
        line_end: 11405
        line_start: 11405
        source_file: /src/mercurial/contrib/python-zstandard/zstd/zstd.c
- function_names:
  - print_cmdline
  - usage
  - forward_through_gateway
  - run_shell
  - validate_repo
  - serve_data
  - main
  source_file: /src/mercurial/contrib/hgsh/hgsh.c
  types:
    enum:
    - enumerators:
      - name: hg_init
      - name: hg_serve
      item_type: enum
      name: cmdline
      pos:
        line_end: 249
        line_start: 246
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
    preproc_defs:
    - item_type: preproc_def
      name: HG_GATEWAY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"gateway"'
    - item_type: preproc_def
      name: HG_HOST
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"mercurial"'
    - item_type: preproc_def
      name: HG_USER
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"hg"'
    - item_type: preproc_def
      name: HG_ROOT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"/home/hg/repos"'
    - item_type: preproc_def
      name: HG
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"/home/hg/bin/hg"'
    - item_type: preproc_def
      name: HG_SHELL
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: HG_HELP
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"please contact support@example.com for help."'
    - item_type: preproc_def
      name: SSH
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/mercurial/contrib/hgsh/hgsh.c
      type_or_value: '"/usr/bin/ssh"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/revlog.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOG
  source_file: /src/mercurial/contrib/fuzz/fuzzutil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEBUG
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/mercurial/contrib/fuzz/fuzzutil.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/mercurial/contrib/fuzz/standalone_fuzz_target_runner.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/bdiff.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/fuzz/pyutil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYCODETYPE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/mercurial/contrib/fuzz/pyutil.h
      type_or_value: PyObject
    - item_type: preproc_def
      name: PYCODETYPE
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/mercurial/contrib/fuzz/pyutil.h
      type_or_value: PyCodeObject
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - hunk_consumer
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/xdiff.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/jsonescapeu8fast.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - getitem
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/mpatch.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_OUTPUT_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/mercurial/contrib/fuzz/mpatch.cc
      type_or_value: '10485760'
    structs:
    - fields:
      - name: data
        type: std::unique_ptr<char[]>
      - name: len
        type: size_t
      item_type: struct
      name: mpatchbin
      pos:
        line_end: 33
        line_start: 30
        source_file: /src/mercurial/contrib/fuzz/mpatch.cc
    typedefs: []
    union: []
- function_names:
  - contrib::initpy
  - contrib::pyglobals
  - contrib::initpy
  - contrib::pyglobals
  source_file: /src/mercurial/contrib/fuzz/pyutil.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HG_FUZZER_PY3
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/mercurial/contrib/fuzz/pyutil.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: HG_FUZZER_PY3
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/mercurial/contrib/fuzz/pyutil.cc
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FuzzedDataProvider::FuzzedDataProvider
  - ~FuzzedDataProvider()
  - FuzzedDataProvider::ConsumeBytes
  - FuzzedDataProvider::ConsumeBytesWithTerminator
  - FuzzedDataProvider::ConsumeBytesAsString
  - FuzzedDataProvider::ConsumeIntegralInRange
  - FuzzedDataProvider::ConsumeRandomLengthString
  - FuzzedDataProvider::ConsumeRemainingBytes
  - FuzzedDataProvider::ConsumeRemainingBytesAsString
  - FuzzedDataProvider::ConsumeIntegral
  - FuzzedDataProvider::ConsumeBool
  - FuzzedDataProvider::PickValueInArray
  - FuzzedDataProvider::PickValueInArray
  - FuzzedDataProvider::ConsumeEnum
  - FuzzedDataProvider::ConsumeProbability
  - FuzzedDataProvider::ConsumeFloatingPoint
  - FuzzedDataProvider::ConsumeFloatingPointInRange
  - FuzzedDataProvider::remaining_bytes
  - FuzzedDataProvider::FuzzedDataProvider
  - '&operator=(const FuzzedDataProvider &)'
  - FuzzedDataProvider::Advance
  - FuzzedDataProvider::ConsumeBytes
  - FuzzedDataProvider::ConvertUnsignedToSigned
  source_file: /src/mercurial/contrib/fuzz/FuzzedDataProvider.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/manifest.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/dirstate.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/fncache.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/fm1readmarkers.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/mercurial/contrib/fuzz/dirs.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/chg/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRINTF_FORMAT_
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/mercurial/contrib/chg/util.h
      type_or_value: __attribute__((format(printf, 1, 2)))
    - item_type: preproc_def
      name: UNUSED_
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/mercurial/contrib/chg/util.h
      type_or_value: __attribute__((unused))
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsetcolor
  - vabortmsgerrno
  - abortmsg
  - abortmsgerrno
  - now
  - enablecolor
  - enabledebugmsg
  - debugmsg
  - fchdirx
  - fsetcloexec
  - mallocx
  - reallocx
  - runshellcmd
  source_file: /src/mercurial/contrib/chg/util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/chg/procutil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - forwardsignal
  - forwardsignaltogroup
  - handlestopsignal
  - handlechildsignal
  - setupsignalhandler
  - restoresignalhandler
  - setuppager
  - waitpager
  source_file: /src/mercurial/contrib/chg/procutil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - initcontext
  - enlargecontext
  - freecontext
  - readchannel
  - sendall
  - writeblock
  - writeblockrequest
  - packcmdargs
  - unpackcmdargsnul
  - handlereadrequest
  - handlereadlinerequest
  - handlesystemrequest
  - handleresponse
  - parsecapabilities
  - readhello
  - updateprocname
  - attachio
  - chdirtocwd
  - forwardumask
  - hgc_open
  - hgc_close
  - hgc_peerpgid
  - hgc_peerpid
  - hgc_validate
  - hgc_runcommand
  - hgc_attachio
  - hgc_setenv
  source_file: /src/mercurial/contrib/chg/hgclient.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _XOPEN_SOURCE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/mercurial/contrib/chg/hgclient.c
      type_or_value: '600'
    - item_type: preproc_def
      name: O_DIRECTORY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/mercurial/contrib/chg/hgclient.c
      type_or_value: O_RDONLY
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: flag
        type: unsigned int
      item_type: struct
      name: cappair_t
      pos:
        line_end: 52
        line_start: 49
        source_file: /src/mercurial/contrib/chg/hgclient.c
    - fields:
      - name: ch
        type: char
      - name: '*data'
        type: char
      - name: maxdatasize
        type: size_t
      - name: datasize
        type: size_t
      item_type: struct
      name: context_t
      pos:
        line_end: 71
        line_start: 66
        source_file: /src/mercurial/contrib/chg/hgclient.c
    - fields:
      - name: sockfd
        type: int
      - name: pgid
        type: pid_t
      - name: pid
        type: pid_t
      - name: ctx
        type: context_t
      - name: capflags
        type: unsigned int
      item_type: struct
      name: hgclient_tag_
      pos:
        line_end: 79
        line_start: 73
        source_file: /src/mercurial/contrib/chg/hgclient.c
    typedefs: []
    union: []
- function_names:
  - initcmdserveropts
  - freecmdserveropts
  - testsensitiveflag
  - setcmdserverargs
  - preparesockdir
  - checkruntimedir
  - getdefaultsockdir
  - setcmdserveropts
  - getrelhgcmd
  - gethgcmd
  - execcmdserver
  - retryconnectcmdserver
  - connectcmdserver
  - killcmdserver
  - runinstructions
  - isunsupported
  - execoriginalhg
  - read_procfs_file
  - main
  source_file: /src/mercurial/contrib/chg/chg.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/mercurial/contrib/chg/chg.c
      type_or_value: '4096'
    structs:
    - fields:
      - name: sockname[PATH_MAX]
        type: char
      - name: initsockname[PATH_MAX]
        type: char
      - name: redirectsockname[PATH_MAX]
        type: char
      - name: argsize
        type: size_t
      - name: '**args'
        type: char
      item_type: struct
      name: cmdserveropts
      pos:
        line_end: 41
        line_start: 35
        source_file: /src/mercurial/contrib/chg/chg.c
    - fields:
      - name: '*name'
        type: char
      - name: narg
        type: size_t
      item_type: struct
      name: "flags[] = {\n\t    {\"--config\", 1},     {\"--cwd\", 1},       {\"--repo\",
        1},\n\t    {\"--repository\", 1}, {\"--traceback\", 0}, {\"-R\", 1},\n\t}"
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/mercurial/contrib/chg/chg.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/mercurial/contrib/chg/hgclient.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: hgclient_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/mercurial/contrib/chg/hgclient.h
      type: hgclient_tag_
    union: []
- function_names:
  - forwardsignal
  - forwardsignaltogroup
  - handlestopsignal
  - setupsignalhandler
  - restoresignalhandler
  source_file: /src/mercurial/rust/chg/src/sighandlers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sendfds
  source_file: /src/mercurial/rust/chg/src/sendfds.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FD_LEN
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/mercurial/rust/chg/src/sendfds.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Doc/includes/typestruct.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*tp_name'
        type: PyObject_VAR_HEAD
      - name: tp_basicsize
        type: Py_ssize_t
      - name: tp_dealloc
        type: destructor
      - name: tp_vectorcall_offset
        type: Py_ssize_t
      - name: tp_getattr
        type: getattrfunc
      - name: tp_setattr
        type: setattrfunc
      - name: '*tp_as_async'
        type: PyAsyncMethods
      - name: tp_repr
        type: reprfunc
      - name: '*tp_as_number'
        type: PyNumberMethods
      - name: '*tp_as_sequence'
        type: PySequenceMethods
      - name: '*tp_as_mapping'
        type: PyMappingMethods
      - name: tp_hash
        type: hashfunc
      - name: tp_call
        type: ternaryfunc
      - name: tp_str
        type: reprfunc
      - name: tp_getattro
        type: getattrofunc
      - name: tp_setattro
        type: setattrofunc
      - name: '*tp_as_buffer'
        type: PyBufferProcs
      - name: tp_flags
        type: unsigned long
      - name: '*tp_doc'
        type: char
      - name: tp_traverse
        type: traverseproc
      - name: tp_clear
        type: inquiry
      - name: tp_richcompare
        type: richcmpfunc
      - name: tp_weaklistoffset
        type: Py_ssize_t
      - name: tp_iter
        type: getiterfunc
      - name: tp_iternext
        type: iternextfunc
      - name: '*tp_methods'
        type: struct PyMethodDef
      - name: '*tp_members'
        type: struct PyMemberDef
      - name: '*tp_getset'
        type: struct PyGetSetDef
      - name: '*tp_base'
        type: struct _typeobject
      - name: '*tp_dict'
        type: PyObject
      - name: tp_descr_get
        type: descrgetfunc
      - name: tp_descr_set
        type: descrsetfunc
      - name: tp_dictoffset
        type: Py_ssize_t
      - name: tp_init
        type: initproc
      - name: tp_alloc
        type: allocfunc
      - name: tp_new
        type: newfunc
      - name: tp_free
        type: freefunc
      - name: tp_is_gc
        type: inquiry
      - name: '*tp_bases'
        type: PyObject
      - name: '*tp_mro'
        type: PyObject
      - name: '*tp_cache'
        type: PyObject
      - name: '*tp_subclasses'
        type: PyObject
      - name: '*tp_weaklist'
        type: PyObject
      - name: tp_del
        type: destructor
      - name: tp_version_tag
        type: unsigned int
      - name: tp_finalize
        type: destructor
      item_type: struct
      name: _typeobject
      pos:
        line_end: 79
        line_start: 0
        source_file: /src/Python-3.8.3/Doc/includes/typestruct.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Doc/includes/run-func.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SubList_increment
  - SubList_init
  - PyInit_sublist
  source_file: /src/Python-3.8.3/Doc/includes/sublist.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: PyListObject
      - name: state
        type: int
      item_type: struct
      name: SubListObject
      pos:
        line_end: 6
        line_start: 3
        source_file: /src/Python-3.8.3/Doc/includes/sublist.c
    typedefs: []
    union: []
- function_names:
  - PyInit_custom
  source_file: /src/Python-3.8.3/Doc/includes/custom.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Custom_dealloc
  - Custom_new
  - Custom_init
  - Custom_name
  - PyInit_custom2
  source_file: /src/Python-3.8.3/Doc/includes/custom2.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*first'
        type: PyObject_HEAD
      - name: '*last'
        type: PyObject
      - name: number
        type: int
      item_type: struct
      name: CustomObject
      pos:
        line_end: 9
        line_start: 4
        source_file: /src/Python-3.8.3/Doc/includes/custom2.c
    typedefs: []
    union: []
- function_names:
  - Custom_traverse
  - Custom_clear
  - Custom_dealloc
  - Custom_new
  - Custom_init
  - Custom_getfirst
  - Custom_setfirst
  - Custom_getlast
  - Custom_setlast
  - Custom_name
  - PyInit_custom4
  source_file: /src/Python-3.8.3/Doc/includes/custom4.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*first'
        type: PyObject_HEAD
      - name: '*last'
        type: PyObject
      - name: number
        type: int
      item_type: struct
      name: CustomObject
      pos:
        line_end: 9
        line_start: 4
        source_file: /src/Python-3.8.3/Doc/includes/custom4.c
    typedefs: []
    union: []
- function_names:
  - Custom_dealloc
  - Custom_new
  - Custom_init
  - Custom_getfirst
  - Custom_setfirst
  - Custom_getlast
  - Custom_setlast
  - Custom_name
  - PyInit_custom3
  source_file: /src/Python-3.8.3/Doc/includes/custom3.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*first'
        type: PyObject_HEAD
      - name: '*last'
        type: PyObject
      - name: number
        type: int
      item_type: struct
      name: CustomObject
      pos:
        line_end: 9
        line_start: 4
        source_file: /src/Python-3.8.3/Doc/includes/custom3.c
    typedefs: []
    union: []
- function_names:
  - _csvstate
  - _csv_clear
  - _csv_traverse
  - _csv_free
  - ReaderObject_Check
  - get_dialect_from_registry
  - get_string
  - get_nullchar_as_None
  - Dialect_get_lineterminator
  - Dialect_get_delimiter
  - Dialect_get_escapechar
  - Dialect_get_quotechar
  - Dialect_get_quoting
  - _set_bool
  - _set_int
  - _set_char
  - _set_str
  - dialect_check_quoting
  - D_OFF
  - Dialect_dealloc
  - dialect_new
  - DIALECT_GETATTR
  - DIASET
  - _call_dialect
  - parse_save_field
  - parse_grow_buff
  - parse_add_char
  - parse_process_char
  - parse_reset
  - Reader_iternext
  - Reader_dealloc
  - Reader_traverse
  - Reader_clear
  - R_OFF
  - csv_reader
  - join_reset
  - join_append_data
  - ADDCH
  - join_check_rec_size
  - join_append
  - join_append_lineterminator
  - csv_writerow
  - csv_writerows
  - W_OFF
  - Writer_dealloc
  - Writer_traverse
  - Writer_clear
  - csv_writer
  - csv_list_dialects
  - csv_register_dialect
  - csv_unregister_dialect
  - csv_get_dialect
  - csv_field_size_limit
  - PyInit__csv
  source_file: /src/Python-3.8.3/Modules/_csv.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MODULE_VERSION
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_csv.c
      type_or_value: '"1.0"'
    - item_type: preproc_def
      name: _csvstate_global
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_csv.c
      type_or_value: ((_csvstate *)PyModule_GetState(PyState_FindModule(&_csvmodule)))
    - item_type: preproc_def
      name: MEM_INCR
      pos:
        line_end: 987
        line_start: 986
        source_file: /src/Python-3.8.3/Modules/_csv.c
      type_or_value: '32768'
    - item_type: preproc_def
      name: INCLEN
      pos:
        line_end: 1007
        line_start: 1000
        source_file: /src/Python-3.8.3/Modules/_csv.c
      type_or_value: "do {\\\n        if (!copy_phase && rec_len == PY_SSIZE_T_MAX)
        {    \\\n            goto overflow; \\\n        } \\\n        rec_len++; \\\n
        \   } while(0)"
    structs:
    - fields:
      - name: '*error_obj'
        type: PyObject
      - name: '*dialects'
        type: PyObject
      - name: field_limit
        type: long
      item_type: struct
      name: _csvstate
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_csv.c
    - fields:
      - name: style
        type: QuoteStyle
      - name: '*name'
        type: char
      item_type: struct
      name: StyleDesc
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_csv.c
    - fields:
      - name: doublequote
        type: PyObject_HEAD
      - name: skipinitialspace
        type: char
      - name: strict
        type: char
      - name: quoting
        type: int
      - name: delimiter
        type: Py_UCS4
      - name: quotechar
        type: Py_UCS4
      - name: escapechar
        type: Py_UCS4
      - name: '*lineterminator'
        type: PyObject
      item_type: struct
      name: DialectObj
      pos:
        line_end: 86
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_csv.c
    - fields:
      - name: '*input_iter'
        type: PyObject_HEAD
      - name: '*dialect'
        type: DialectObj
      - name: '*fields'
        type: PyObject
      - name: state
        type: ParserState
      - name: '*field'
        type: Py_UCS4
      - name: field_size
        type: Py_ssize_t
      - name: field_len
        type: Py_ssize_t
      - name: numeric_field
        type: int
      - name: line_num
        type: unsigned long
      item_type: struct
      name: ReaderObj
      pos:
        line_end: 104
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_csv.c
    - fields:
      - name: '*write'
        type: PyObject_HEAD
      - name: '*dialect'
        type: DialectObj
      - name: '*rec'
        type: Py_UCS4
      - name: rec_size
        type: Py_ssize_t
      - name: rec_len
        type: Py_ssize_t
      - name: num_fields
        type: int
      item_type: struct
      name: WriterObj
      pos:
        line_end: 121
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/_csv.c
    typedefs: []
    union: []
- function_names:
  - cfnum_to_int32
  - cfstring_to_pystring
  - get_proxy_settings
  - set_proxy
  - get_proxies
  - PyInit__scproxy
  source_file: /src/Python-3.8.3/Modules/_scproxy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SetFromWindowsErr
  - GET_WSA_POINTER
  - initialize_function_pointers
  - overlapped_CreateIoCompletionPort
  - overlapped_GetQueuedCompletionStatus
  - overlapped_PostQueuedCompletionStatus
  - PostToQueueCallback
  - overlapped_RegisterWaitWithQueue
  - overlapped_UnregisterWait
  - overlapped_UnregisterWaitEx
  - overlapped_CreateEvent
  - overlapped_SetEvent
  - overlapped_ResetEvent
  - overlapped_BindLocal
  - overlapped_FormatMessage
  - mark_as_completed
  - Overlapped_new
  - Overlapped_clear
  - Overlapped_dealloc
  - make_ipv4_addr
  - make_ipv6_addr
  - unparse_address
  - Overlapped_cancel
  - Overlapped_getresult
  - do_ReadFile
  - Overlapped_ReadFile
  - Overlapped_ReadFileInto
  - do_WSARecv
  - Overlapped_WSARecv
  - Overlapped_WSARecvInto
  - Overlapped_WriteFile
  - Overlapped_WSASend
  - Overlapped_AcceptEx
  - parse_address
  - Overlapped_ConnectEx
  - Overlapped_DisconnectEx
  - Overlapped_TransmitFile
  - Overlapped_ConnectNamedPipe
  - overlapped_ConnectPipe
  - Overlapped_getaddress
  - Overlapped_getpending
  - Overlapped_traverse
  - overlapped_WSAConnect
  - Overlapped_WSASendTo
  - Overlapped_WSARecvFrom
  - WINAPI_CONSTANT
  - PyInit__overlapped
  source_file: /src/Python-3.8.3/Modules/overlapped.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: '"K"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: T_ULONGLONG
    - item_type: preproc_def
      name: PyMem_RawMalloc
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: PyMem_Malloc
    - item_type: preproc_def
      name: PyMem_RawFree
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: PyMem_Free
    - item_type: preproc_def
      name: F_HANDLE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: F_POINTER
    - item_type: preproc_def
      name: F_ULONG_PTR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: F_POINTER
    - item_type: preproc_def
      name: F_DWORD
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: F_BOOL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: '"i"'
    - item_type: preproc_def
      name: F_UINT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: '"I"'
    - item_type: preproc_def
      name: T_HANDLE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/overlapped.c
      type_or_value: T_POINTER
    structs:
    - fields:
      - name: OVERLAPPED
        type: PyObject_HEAD
      - name: handle
        type: HANDLE
      - name: error
        type: DWORD
      - name: type
        type: DWORD
      item_type: struct
      name: OverlappedObject
      pos:
        line_end: 70
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/overlapped.c
    - fields:
      - name: CompletionPort
        type: HANDLE
      - name: Overlapped
        type: LPOVERLAPPED
      item_type: struct
      name: PostCallbackData
      pos:
        line_end: 253
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/overlapped.c
    typedefs: []
    union: []
- function_names:
  - NAMLEN
  - NAMLEN
  - NAMLEN
  - WIFEXITED
  - WEXITSTATUS
  - WTERMSIG
  - WAIT_STATUS_INT
  - WAIT_STATUS_INT
  - run_at_forkers
  - PyOS_BeforeFork
  - PyOS_AfterFork_Parent
  - PyOS_AfterFork_Child
  - register_at_forker
  - PyOS_AfterFork
  - _PyLong_FromUid
  - _PyLong_FromGid
  - _Py_Uid_Converter
  - _Py_Gid_Converter
  - _Py_Dev_Converter
  - _fd_converter
  - dir_fd_converter
  - PATH_T_INITIALIZE
  - PATH_T_INITIALIZE
  - path_cleanup
  - path_converter
  - FORMAT_EXCEPTION
  - argument_unavailable_error
  - dir_fd_unavailable
  - fd_specified
  - follow_symlinks_specified
  - path_and_dir_fd_invalid
  - dir_fd_and_fd_invalid
  - fd_and_follow_symlinks_invalid
  - dir_fd_and_follow_symlinks_invalid
  - Py_off_t_converter
  - PyLong_FromPy_off_t
  - _Py_Sigset_Converter
  - win32_get_reparse_tag
  - convertenviron
  - posix_error
  - win32_error
  - win32_error_object_err
  - win32_error_object
  - posix_path_object_error
  - path_object_error
  - path_object_error2
  - path_error
  - posix_path_error
  - path_error2
  - fildes_converter
  - posix_fildes_fd
  - win32_wchdir
  - find_data_to_file_info
  - attributes_from_dir
  - win32_xstat_impl
  - win32_xstat
  - win32_lstat
  - win32_stat
  - statresult_new
  - fill_time
  - _pystat_fromstructstat
  - posix_do_stat
  - os_stat_impl
  - os_lstat_impl
  - os_access_impl
  - os_ttyname_impl
  - os_ctermid_impl
  - os_chdir_impl
  - if
  - os_fchdir_impl
  - os_chmod_impl
  - if
  - os_fchmod_impl
  - os_lchmod_impl
  - os_chflags_impl
  - os_lchflags_impl
  - os_chroot_impl
  - os_fsync_impl
  - os_sync_impl
  - os_fdatasync_impl
  - os_chown_impl
  - os_fchown_impl
  - os_lchown_impl
  - posix_getcwd
  - do
  - os_getcwd_impl
  - os_getcwdb_impl
  - os_link_impl
  - _listdir_windows_no_opendir
  - _posix_listdir
  - os_listdir_impl
  - os__getfullpathname_impl
  - os__getfinalpathname_impl
  - os__getvolumepathname_impl
  - os_mkdir_impl
  - os_nice_impl
  - os_getpriority_impl
  - os_setpriority_impl
  - internal_rename
  - os_rename_impl
  - os_replace_impl
  - os_rmdir_impl
  - os_system_impl
  - os_system_impl
  - os_umask_impl
  - Py_DeleteFileW
  - os_unlink_impl
  - os_remove_impl
  - os_uname_impl
  - SET
  - utime_dir_fd
  - utime_fd
  - utime_nofollow_symlinks
  - utime_default
  - split_py_long_to_s_and_ns
  - os_utime_impl
  - os__exit_impl
  - free_string_array
  - fsconvert_strdup
  - parse_envlist
  - parse_arglist
  - os_execv_impl
  - os_execve_impl
  - parse_posix_spawn_flags
  - parse_file_actions
  - py_posix_spawn
  - if
  - os_posix_spawn_impl
  - os_posix_spawnp_impl
  - _rtp_spawn
  - os_spawnv_impl
  - os_spawnve_impl
  - check_null_or_callable
  - os_register_at_fork_impl
  - os_fork1_impl
  - os_fork_impl
  - os_sched_get_priority_max_impl
  - os_sched_get_priority_min_impl
  - os_sched_getscheduler_impl
  - os_sched_param_impl
  - convert_sched_param
  - os_sched_setscheduler_impl
  - os_sched_getparam_impl
  - os_sched_setparam_impl
  - os_sched_rr_get_interval_impl
  - os_sched_yield_impl
  - os_sched_setaffinity_impl
  - os_sched_getaffinity_impl
  - os_openpty_impl
  - os_forkpty_impl
  - os_getegid_impl
  - os_geteuid_impl
  - os_getgid_impl
  - os_getpid_impl
  - posix_getgrouplist
  - os_getgroups_impl
  - posix_initgroups
  - os_getpgid_impl
  - os_getpgrp_impl
  - os_setpgrp_impl
  - win32_getppid
  - os_getppid_impl
  - os_getlogin_impl
  - os_getuid_impl
  - os_kill_impl
  - os_killpg_impl
  - os_plock_impl
  - os_setuid_impl
  - os_seteuid_impl
  - os_setegid_impl
  - os_setreuid_impl
  - os_setregid_impl
  - os_setgid_impl
  - os_setgroups
  - wait_helper
  - doubletime
  - SET_INT
  - os_wait3_impl
  - WAIT_STATUS_INT
  - os_wait4_impl
  - WAIT_STATUS_INT
  - os_waitid_impl
  - os_waitpid_impl
  - WAIT_STATUS_INT
  - os_waitpid_impl
  - os_wait_impl
  - WAIT_STATUS_INT
  - os_readlink_impl
  - _dirnameW
  - _is_absW
  - _joinW
  - _check_dirW
  - os_symlink_impl
  - build_times_result
  - SET
  - os_getsid_impl
  - os_setsid_impl
  - os_setpgid_impl
  - os_tcgetpgrp_impl
  - os_tcsetpgrp_impl
  - os_open_impl
  - do
  - os_close_impl
  - _fdwalk_close_func
  - os_closerange_impl
  - os_dup_impl
  - os_lockf_impl
  - os_lseek_impl
  - os_read_impl
  - iov_setup
  - iov_cleanup
  - os_readv_impl
  - os_pread_impl
  - os_preadv_impl
  - os_write_impl
  - do
  - os__fcopyfile_impl
  - os_fstat_impl
  - os_isatty_impl
  - os_pipe2_impl
  - os_writev_impl
  - os_pwrite_impl
  - os_pwritev_impl
  - os_copy_file_range_impl
  - os_mkfifo_impl
  - os_mknod_impl
  - os_major_impl
  - os_minor_impl
  - os_makedev_impl
  - os_ftruncate_impl
  - os_truncate_impl
  - os_posix_fallocate_impl
  - os_posix_fadvise_impl
  - posix_putenv_garbage_setitem
  - os_putenv_impl
  - os_putenv_impl
  - os_unsetenv_impl
  - os_strerror_impl
  - os_WCOREDUMP_impl
  - os_WIFCONTINUED_impl
  - os_WIFSTOPPED_impl
  - os_WIFSIGNALED_impl
  - os_WIFEXITED_impl
  - os_WEXITSTATUS_impl
  - os_WTERMSIG_impl
  - os_WSTOPSIG_impl
  - _pystatvfs_fromstructstatvfs
  - os_fstatvfs_impl
  - os_statvfs_impl
  - if
  - os__getdiskusage_impl
  - conv_confname
  - conv_path_confname
  - os_fpathconf_impl
  - os_pathconf_impl
  - conv_confstr_confname
  - os_confstr_impl
  - conv_sysconf_confname
  - os_sysconf_impl
  - cmp_constdefs
  - setup_confname_table
  - setup_confname_tables
  - os_abort_impl
  - check_ShellExecute
  - os_startfile_impl
  - os_getloadavg_impl
  - os_device_encoding_impl
  - os_setresuid_impl
  - os_setresgid_impl
  - os_getresuid_impl
  - os_getresgid_impl
  - os_getxattr_impl
  - os_setxattr_impl
  - os_removexattr_impl
  - os_listxattr_impl
  - os_urandom_impl
  - os_memfd_create_impl
  - get_terminal_size
  - os_cpu_count_impl
  - os_get_inheritable_impl
  - os_set_inheritable_impl
  - os_get_handle_inheritable_impl
  - os_set_handle_inheritable_impl
  - os_get_blocking_impl
  - os_set_blocking_impl
  - DirEntry_dealloc
  - os_DirEntry_is_symlink_impl
  - DirEntry_fetch_stat
  - DirEntry_get_lstat
  - os_DirEntry_stat_impl
  - DirEntry_test_mode
  - os_DirEntry_is_dir_impl
  - os_DirEntry_is_file_impl
  - os_DirEntry_inode_impl
  - DirEntry_repr
  - os_DirEntry___fspath___impl
  - join_path_filenameW
  - DirEntry_from_find_data
  - join_path_filename
  - DirEntry_from_posix_info
  - ScandirIterator_is_closed
  - ScandirIterator_closedir
  - ScandirIterator_iternext
  - ScandirIterator_is_closed
  - ScandirIterator_closedir
  - ScandirIterator_iternext
  - ScandirIterator_close
  - ScandirIterator_enter
  - ScandirIterator_exit
  - ScandirIterator_finalize
  - ScandirIterator_dealloc
  - os_scandir_impl
  - PyOS_FSPath
  - os_fspath_impl
  - os_getrandom_impl
  - os__add_dll_directory_impl
  - if
  - os__remove_dll_directory_impl
  - if
  - all_ins
  - INITFUNC
  source_file: /src/Python-3.8.3/Modules/posixmodule.c
  types:
    enum:
    - enumerators:
      - name: POSIX_SPAWN_OPEN
      - name: POSIX_SPAWN_CLOSE
      - name: POSIX_SPAWN_DUP2
      item_type: enum
      name: posix_spawn_file_actions_identifier
      pos:
        line_end: 5340
        line_start: 5336
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_OPENDIR
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYSTEM
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPPID
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETLOGIN
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SPAWNV
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_EXECV
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WSPAWNV
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WEXECV
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PIPE
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYSTEM
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_CWAIT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FSYNC
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: fsync
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: _commit
    - item_type: preproc_def
      name: HAVE_EXECV
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FORK
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FORK1
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETEGID
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETEUID
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETGID
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETPPID
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETUID
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_KILL
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_OPENDIR
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PIPE
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYSTEM
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WAIT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_TTYNAME
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _P_WAIT
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: _P_NOWAIT
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _P_NOWAITO
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: dirent
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: direct
    - item_type: preproc_def
      name: IO_REPARSE_TAG_SYMLINK
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (0xA000000CL)
    - item_type: preproc_def
      name: IO_REPARSE_TAG_MOUNT_POINT
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (0xA0000003L)
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: PATH_MAX
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: WAIT_TYPE
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: union wait
    - item_type: preproc_def
      name: WAIT_TYPE
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: int
    - item_type: preproc_def
      name: STAT
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: win32_stat
    - item_type: preproc_def
      name: LSTAT
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: win32_lstat
    - item_type: preproc_def
      name: FSTAT
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: _Py_fstat_noraise
    - item_type: preproc_def
      name: STRUCT_STAT
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: struct _Py_stat_struct
    - item_type: preproc_def
      name: STAT
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: stat
    - item_type: preproc_def
      name: LSTAT
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: lstat
    - item_type: preproc_def
      name: FSTAT
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: fstat
    - item_type: preproc_def
      name: STRUCT_STAT
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: struct stat
    - item_type: preproc_def
      name: INITFUNC
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: PyInit_nt
    - item_type: preproc_def
      name: MODNAME
      pos:
        line_end: 385
        line_start: 384
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '"nt"'
    - item_type: preproc_def
      name: INITFUNC
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: PyInit_posix
    - item_type: preproc_def
      name: MODNAME
      pos:
        line_end: 388
        line_start: 387
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '"posix"'
    - item_type: preproc_def
      name: HAVE_STRUCT_STAT_ST_FSTYPE
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _PyLong_FromDev
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: PyLong_FromLongLong
    - item_type: preproc_def
      name: DEFAULT_DIR_FD
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (int)AT_FDCWD
    - item_type: preproc_def
      name: DEFAULT_DIR_FD
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (-100)
    - item_type: preproc_def
      name: HAVE_STAT_NSEC
      pos:
        line_end: 1625
        line_start: 1624
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_STAT_ST_FILE_ATTRIBUTES
      pos:
        line_end: 1626
        line_start: 1625
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STRUCT_STAT_ST_REPARSE_TAG
      pos:
        line_end: 1627
        line_start: 1626
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ST_BLKSIZE_IDX
      pos:
        line_end: 1935
        line_start: 1934
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '16'
    - item_type: preproc_def
      name: ST_BLKSIZE_IDX
      pos:
        line_end: 1937
        line_start: 1936
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '15'
    - item_type: preproc_def
      name: ST_BLOCKS_IDX
      pos:
        line_end: 1941
        line_start: 1940
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_BLKSIZE_IDX+1)
    - item_type: preproc_def
      name: ST_BLOCKS_IDX
      pos:
        line_end: 1943
        line_start: 1942
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_BLKSIZE_IDX
    - item_type: preproc_def
      name: ST_RDEV_IDX
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_BLOCKS_IDX+1)
    - item_type: preproc_def
      name: ST_RDEV_IDX
      pos:
        line_end: 1949
        line_start: 1948
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_BLOCKS_IDX
    - item_type: preproc_def
      name: ST_FLAGS_IDX
      pos:
        line_end: 1953
        line_start: 1952
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_RDEV_IDX+1)
    - item_type: preproc_def
      name: ST_FLAGS_IDX
      pos:
        line_end: 1955
        line_start: 1954
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_RDEV_IDX
    - item_type: preproc_def
      name: ST_GEN_IDX
      pos:
        line_end: 1959
        line_start: 1958
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_FLAGS_IDX+1)
    - item_type: preproc_def
      name: ST_GEN_IDX
      pos:
        line_end: 1961
        line_start: 1960
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_FLAGS_IDX
    - item_type: preproc_def
      name: ST_BIRTHTIME_IDX
      pos:
        line_end: 1965
        line_start: 1964
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_GEN_IDX+1)
    - item_type: preproc_def
      name: ST_BIRTHTIME_IDX
      pos:
        line_end: 1967
        line_start: 1966
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_GEN_IDX
    - item_type: preproc_def
      name: ST_FILE_ATTRIBUTES_IDX
      pos:
        line_end: 1971
        line_start: 1970
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_BIRTHTIME_IDX+1)
    - item_type: preproc_def
      name: ST_FILE_ATTRIBUTES_IDX
      pos:
        line_end: 1973
        line_start: 1972
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_BIRTHTIME_IDX
    - item_type: preproc_def
      name: ST_FSTYPE_IDX
      pos:
        line_end: 1977
        line_start: 1976
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_FILE_ATTRIBUTES_IDX+1)
    - item_type: preproc_def
      name: ST_FSTYPE_IDX
      pos:
        line_end: 1979
        line_start: 1978
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_FILE_ATTRIBUTES_IDX
    - item_type: preproc_def
      name: ST_REPARSE_TAG_IDX
      pos:
        line_end: 1983
        line_start: 1982
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: (ST_FSTYPE_IDX+1)
    - item_type: preproc_def
      name: ST_REPARSE_TAG_IDX
      pos:
        line_end: 1985
        line_start: 1984
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: ST_FSTYPE_IDX
    - item_type: preproc_def
      name: FACCESSAT_DIR_FD_CONVERTER
      pos:
        line_end: 2331
        line_start: 2330
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: FACCESSAT_DIR_FD_CONVERTER
      pos:
        line_end: 2333
        line_start: 2332
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: FCHMODAT_DIR_FD_CONVERTER
      pos:
        line_end: 2337
        line_start: 2336
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: FCHMODAT_DIR_FD_CONVERTER
      pos:
        line_end: 2339
        line_start: 2338
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: FCHOWNAT_DIR_FD_CONVERTER
      pos:
        line_end: 2343
        line_start: 2342
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: FCHOWNAT_DIR_FD_CONVERTER
      pos:
        line_end: 2345
        line_start: 2344
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: FSTATAT_DIR_FD_CONVERTER
      pos:
        line_end: 2349
        line_start: 2348
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: FSTATAT_DIR_FD_CONVERTER
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: LINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2355
        line_start: 2354
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: LINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2357
        line_start: 2356
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: MKDIRAT_DIR_FD_CONVERTER
      pos:
        line_end: 2361
        line_start: 2360
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: MKDIRAT_DIR_FD_CONVERTER
      pos:
        line_end: 2363
        line_start: 2362
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: MKFIFOAT_DIR_FD_CONVERTER
      pos:
        line_end: 2367
        line_start: 2366
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: MKFIFOAT_DIR_FD_CONVERTER
      pos:
        line_end: 2369
        line_start: 2368
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: MKNODAT_DIR_FD_CONVERTER
      pos:
        line_end: 2373
        line_start: 2372
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: MKNODAT_DIR_FD_CONVERTER
      pos:
        line_end: 2375
        line_start: 2374
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: OPENAT_DIR_FD_CONVERTER
      pos:
        line_end: 2379
        line_start: 2378
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: OPENAT_DIR_FD_CONVERTER
      pos:
        line_end: 2381
        line_start: 2380
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: READLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2385
        line_start: 2384
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: READLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2387
        line_start: 2386
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: SYMLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2391
        line_start: 2390
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: SYMLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2393
        line_start: 2392
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: UNLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2397
        line_start: 2396
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: UNLINKAT_DIR_FD_CONVERTER
      pos:
        line_end: 2399
        line_start: 2398
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: PATH_HAVE_FCHDIR
      pos:
        line_end: 2403
        line_start: 2402
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FCHDIR
      pos:
        line_end: 2405
        line_start: 2404
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FCHMOD
      pos:
        line_end: 2409
        line_start: 2408
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FCHMOD
      pos:
        line_end: 2411
        line_start: 2410
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FCHOWN
      pos:
        line_end: 2415
        line_start: 2414
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FCHOWN
      pos:
        line_end: 2417
        line_start: 2416
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FDOPENDIR
      pos:
        line_end: 2421
        line_start: 2420
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FDOPENDIR
      pos:
        line_end: 2423
        line_start: 2422
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FEXECVE
      pos:
        line_end: 2427
        line_start: 2426
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FEXECVE
      pos:
        line_end: 2429
        line_start: 2428
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FPATHCONF
      pos:
        line_end: 2433
        line_start: 2432
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FPATHCONF
      pos:
        line_end: 2435
        line_start: 2434
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FSTATVFS
      pos:
        line_end: 2439
        line_start: 2438
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FSTATVFS
      pos:
        line_end: 2441
        line_start: 2440
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FTRUNCATE
      pos:
        line_end: 2445
        line_start: 2444
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_HAVE_FTRUNCATE
      pos:
        line_end: 2447
        line_start: 2446
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_HAVE_FTRUNCATE
      pos:
        line_end: 2453
        line_start: 2452
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: F_OK
      pos:
        line_end: 2747
        line_start: 2746
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: R_OK
      pos:
        line_end: 2750
        line_start: 2749
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '4'
    - item_type: preproc_def
      name: W_OK
      pos:
        line_end: 2753
        line_start: 2752
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '2'
    - item_type: preproc_def
      name: X_OK
      pos:
        line_end: 2756
        line_start: 2755
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LINK
      pos:
        line_end: 3550
        line_start: 3549
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: UTIME_TO_TIMESPEC
      pos:
        line_end: 4651
        line_start: 4638
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: "struct timespec ts[2]; \\\n    struct timespec *time; \\\n    if
        (ut->now) \\\n        time = NULL; \\\n    else { \\\n        ts[0].tv_sec
        = ut->atime_s; \\\n        ts[0].tv_nsec = ut->atime_ns; \\\n        ts[1].tv_sec
        = ut->mtime_s; \\\n        ts[1].tv_nsec = ut->mtime_ns; \\\n        time
        = ts; \\\n    } \\\n"
    - item_type: preproc_def
      name: UTIME_TO_TIMEVAL
      pos:
        line_end: 4664
        line_start: 4651
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: "struct timeval tv[2]; \\\n    struct timeval *time; \\\n    if
        (ut->now) \\\n        time = NULL; \\\n    else { \\\n        tv[0].tv_sec
        = ut->atime_s; \\\n        tv[0].tv_usec = ut->atime_ns / 1000; \\\n        tv[1].tv_sec
        = ut->mtime_s; \\\n        tv[1].tv_usec = ut->mtime_ns / 1000; \\\n        time
        = tv; \\\n    } \\\n"
    - item_type: preproc_def
      name: UTIME_TO_UTIMBUF
      pos:
        line_end: 4674
        line_start: 4664
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: "struct utimbuf u; \\\n    struct utimbuf *time; \\\n    if (ut->now)
        \\\n        time = NULL; \\\n    else { \\\n        u.actime = ut->atime_s;
        \\\n        u.modtime = ut->mtime_s; \\\n        time = &u; \\\n    }"
    - item_type: preproc_def
      name: UTIME_TO_TIME_T
      pos:
        line_end: 4686
        line_start: 4675
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: "time_t timet[2]; \\\n    time_t *time; \\\n    if (ut->now)
        \\\n        time = NULL; \\\n    else { \\\n        timet[0] = ut->atime_s;
        \\\n        timet[1] = ut->mtime_s; \\\n        time = timet; \\\n    } \\\n"
    - item_type: preproc_def
      name: FUTIMENSAT_DIR_FD_CONVERTER
      pos:
        line_end: 4709
        line_start: 4708
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_converter
    - item_type: preproc_def
      name: FUTIMENSAT_DIR_FD_CONVERTER
      pos:
        line_end: 4711
        line_start: 4710
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: dir_fd_unavailable
    - item_type: preproc_def
      name: PATH_UTIME_HAVE_FD
      pos:
        line_end: 4728
        line_start: 4727
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_UTIME_HAVE_FD
      pos:
        line_end: 4730
        line_start: 4729
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EXECV_CHAR
      pos:
        line_end: 5013
        line_start: 5012
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: wchar_t
    - item_type: preproc_def
      name: EXECV_CHAR
      pos:
        line_end: 5015
        line_start: 5014
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: char
    - item_type: preproc_def
      name: DEV_PTY_FILE
      pos:
        line_end: 6633
        line_start: 6632
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '"/dev/ptc"'
    - item_type: preproc_def
      name: DEV_PTY_FILE
      pos:
        line_end: 6636
        line_start: 6635
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '"/dev/ptmx"'
    - item_type: preproc_def
      name: MAX_GROUPS
      pos:
        line_end: 6863
        line_start: 6862
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: NGROUPS_MAX
    - item_type: preproc_def
      name: MAX_GROUPS
      pos:
        line_end: 6866
        line_start: 6865
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '64'
    - item_type: preproc_def
      name: OFF_T_MAX
      pos:
        line_end: 9182
        line_start: 9181
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type_or_value: '0x7fffffffffffffff'
    structs:
    - fields:
      - name: '*function_name'
        type: char
      - name: '*argument_name'
        type: char
      - name: nullable
        type: int
      - name: allow_fd
        type: int
      - name: '*wide'
        type: wchar_t
      - name: fd
        type: int
      - name: length
        type: Py_ssize_t
      - name: '*object'
        type: PyObject
      - name: '*cleanup'
        type: PyObject
      item_type: struct
      name: path_t
      pos:
        line_end: 918
        line_start: 903
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - fields:
      - name: now
        type: int
      - name: atime_s
        type: time_t
      - name: atime_ns
        type: long
      - name: mtime_s
        type: time_t
      - name: mtime_ns
        type: long
      item_type: struct
      name: utime_t
      pos:
        line_end: 4632
        line_start: 4626
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: constdef
      pos:
        line_end: 10640
        line_start: 10637
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - fields:
      - name: '*name'
        type: PyObject_HEAD
      - name: '*path'
        type: PyObject
      - name: '*stat'
        type: PyObject
      - name: '*lstat'
        type: PyObject
      item_type: struct
      name: DirEntry
      pos:
        line_end: 12558
        line_start: 12541
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    - fields:
      - name: path_t
        type: PyObject_HEAD
      item_type: struct
      name: ScandirIterator
      pos:
        line_end: 13098
        line_start: 13085
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
    typedefs:
    - item_type: typedef
      name: Py_off_t
      pos:
        line_end: 1253
        line_start: 1253
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type: long long
    - item_type: typedef
      name: Py_off_t
      pos:
        line_end: 1255
        line_start: 1255
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type: off_t
    - item_type: typedef
      name: (WINAPI *PAddDllDirectory)(PCWSTR newDirectory)
      pos:
        line_end: 13600
        line_start: 13600
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type: DLL_DIRECTORY_COOKIE
    - item_type: typedef
      name: (WINAPI *PRemoveDllDirectory)(DLL_DIRECTORY_COOKIE cookie)
      pos:
        line_end: 13601
        line_start: 13601
        source_file: /src/Python-3.8.3/Modules/posixmodule.c
      type: BOOL
    union: []
- function_names:
  - FutureObj_HEAD
  - Future_CheckExact
  - Task_CheckExact
  - Future_Check
  - Task_Check
  - _is_coroutine
  - is_coroutine
  - get_future_loop
  - get_running_loop
  - set_running_loop
  - get_event_loop
  - call_soon
  - future_is_alive
  - future_ensure_alive
  - ENSURE_FUTURE_ALIVE
  - future_schedule_callbacks
  - future_init
  - future_set_result
  - future_set_exception
  - future_get_result
  - future_add_done_callback
  - future_cancel
  - _asyncio_Future___init___impl
  - FutureObj_clear
  - FutureObj_traverse
  - _asyncio_Future_result_impl
  - _asyncio_Future_exception_impl
  - _asyncio_Future_set_result
  - _asyncio_Future_set_exception
  - _asyncio_Future_add_done_callback_impl
  - _asyncio_Future_remove_done_callback
  - _asyncio_Future_cancel_impl
  - _asyncio_Future_cancelled_impl
  - _asyncio_Future_done_impl
  - _asyncio_Future_get_loop_impl
  - FutureObj_get_blocking
  - FutureObj_set_blocking
  - FutureObj_get_log_traceback
  - FutureObj_set_log_traceback
  - FutureObj_get_loop
  - FutureObj_get_callbacks
  - FutureObj_get_result
  - FutureObj_get_exception
  - FutureObj_get_source_traceback
  - FutureObj_get_state
  - _asyncio_Future__repr_info_impl
  - FutureObj_repr
  - FutureObj_finalize
  - FutureObj_dealloc
  - FutureIter_dealloc
  - FutureIter_iternext
  - FutureIter_send
  - FutureIter_throw
  - FutureIter_close
  - FutureIter_traverse
  - future_new_iter
  - TaskStepMethWrapper_clear
  - TaskStepMethWrapper_dealloc
  - TaskStepMethWrapper_call
  - TaskStepMethWrapper_traverse
  - TaskStepMethWrapper_get___self__
  - TaskStepMethWrapper_new
  - TaskWakeupMethWrapper_call
  - TaskWakeupMethWrapper_clear
  - TaskWakeupMethWrapper_traverse
  - TaskWakeupMethWrapper_dealloc
  - TaskWakeupMethWrapper_get___self__
  - TaskWakeupMethWrapper_new
  - register_task
  - unregister_task
  - enter_task
  - leave_task
  - _asyncio_Task___init___impl
  - TaskObj_clear
  - TaskObj_traverse
  - TaskObj_get_log_destroy_pending
  - TaskObj_set_log_destroy_pending
  - TaskObj_get_must_cancel
  - TaskObj_get_coro
  - TaskObj_get_fut_waiter
  - _asyncio_Task_current_task_impl
  - _asyncio_Task_all_tasks_impl
  - _asyncio_Task__repr_info_impl
  - _asyncio_Task_cancel_impl
  - _asyncio_Task_get_stack_impl
  - _asyncio_Task_print_stack_impl
  - _asyncio_Task_set_result
  - _asyncio_Task_set_exception
  - _asyncio_Task_get_coro_impl
  - _asyncio_Task_get_name_impl
  - _asyncio_Task_set_name
  - TaskObj_finalize
  - TaskObj_dealloc
  - task_call_step_soon
  - task_set_error_soon
  - task_step_impl
  - task_step
  - task_wakeup
  - _asyncio__get_running_loop_impl
  - _asyncio__set_running_loop
  - _asyncio_get_event_loop_impl
  - _asyncio_get_running_loop_impl
  - _asyncio__register_task_impl
  - _asyncio__unregister_task_impl
  - _asyncio__enter_task_impl
  - _asyncio__leave_task_impl
  - new_running_loop_holder
  - PyRunningLoopHolder_tp_dealloc
  - module_free_freelists
  - module_free
  - module_init
  - WITH_MOD
  - GET_MOD_ATTR
  - PyInit__asyncio
  source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUTURE_COMMON_GETSETLIST
      pos:
        line_end: 1419
        line_start: 1408
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
      type_or_value: "{\"_state\", (getter)FutureObj_get_state, NULL, NULL},                      \\\n
        \   {\"_asyncio_future_blocking\", (getter)FutureObj_get_blocking,              \\\n
        \                                (setter)FutureObj_set_blocking, NULL},       \\\n
        \   {\"_loop\", (getter)FutureObj_get_loop, NULL, NULL},                        \\\n
        \   {\"_callbacks\", (getter)FutureObj_get_callbacks, NULL, NULL},              \\\n
        \   {\"_result\", (getter)FutureObj_get_result, NULL, NULL},                    \\\n
        \   {\"_exception\", (getter)FutureObj_get_exception, NULL, NULL},              \\\n
        \   {\"_log_traceback\", (getter)FutureObj_get_log_traceback,                   \\\n
        \                      (setter)FutureObj_set_log_traceback, NULL},            \\\n
        \   {\"_source_traceback\", (getter)FutureObj_get_source_traceback, NULL,
        NULL},"
    - item_type: preproc_def
      name: FI_FREELIST_MAXLEN
      pos:
        line_end: 1483
        line_start: 1482
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
      type_or_value: '255'
    structs:
    - fields:
      - name: (fut)
        type: FutureObj_HEAD
      item_type: struct
      name: FutureObj
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - fields:
      - name: (task)
        type: FutureObj_HEAD
      - name: '*task_fut_waiter'
        type: PyObject
      - name: '*task_coro'
        type: PyObject
      - name: '*task_name'
        type: PyObject
      - name: '*task_context'
        type: PyObject
      - name: task_must_cancel
        type: int
      - name: task_log_destroy_pending
        type: int
      item_type: struct
      name: TaskObj
      pos:
        line_end: 87
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - fields:
      - name: '*sw_task'
        type: PyObject_HEAD
      - name: '*sw_arg'
        type: PyObject
      item_type: struct
      name: TaskStepMethWrapper
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - fields:
      - name: '*ww_task'
        type: PyObject_HEAD
      item_type: struct
      name: TaskWakeupMethWrapper
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - fields:
      - name: '*rl_loop'
        type: PyObject_HEAD
      item_type: struct
      name: PyRunningLoopHolder
      pos:
        line_end: 106
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    - fields:
      - name: '*future'
        type: PyObject_HEAD
      item_type: struct
      name: futureiterobject
      pos:
        line_end: 1479
        line_start: 1476
        source_file: /src/Python-3.8.3/Modules/_asynciomodule.c
    typedefs: []
    union: []
- function_names:
  - copy_grouping
  - PyLocale_setlocale
  - locale_is_ascii
  - locale_decode_monetary
  - RESULT_STRING
  - PyLocale_localeconv
  - RESULT
  - RESULT_STRING
  - RESULT_INT
  - PyLocale_strcoll
  - PyLocale_strxfrm
  - PyLocale_getdefaultlocale
  - LANGINFO
  - PyLocale_nl_langinfo
  - PyIntl_gettext
  - PyIntl_dgettext
  - PyIntl_dcgettext
  - PyIntl_textdomain
  - PyIntl_bindtextdomain
  - PyIntl_bind_textdomain_codeset
  - PyInit__locale
  source_file: /src/Python-3.8.3/Modules/_localemodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: langinfo_constant
      pos:
        line_end: 429
        line_start: 426
        source_file: /src/Python-3.8.3/Modules/_localemodule.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/winreparse.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _Py_REPARSE_DATA_BUFFER_HEADER_SIZE
      pos:
        line_end: 45
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/winreparse.h
      type_or_value: FIELD_OFFSET(_Py_REPARSE_DATA_BUFFER, GenericReparseBuffer)
    - item_type: preproc_def
      name: _Py_MAXIMUM_REPARSE_DATA_BUFFER_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/winreparse.h
      type_or_value: ( 16 * 1024 )
    - item_type: preproc_def
      name: SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/winreparse.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: ReparseTag
        type: ULONG
      - name: ReparseDataLength
        type: USHORT
      - name: Reserved
        type: USHORT
      item_type: struct
      name: _Py_REPARSE_DATA_BUFFER
      pos:
        line_end: 41
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/winreparse.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/sre_constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SRE_MAGIC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '20171005'
    - item_type: preproc_def
      name: SRE_OP_FAILURE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SRE_OP_SUCCESS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_OP_ANY
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_OP_ANY_ALL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SRE_OP_ASSERT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SRE_OP_ASSERT_NOT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SRE_OP_AT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SRE_OP_BRANCH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SRE_OP_CALL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SRE_OP_CATEGORY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SRE_OP_CHARSET
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SRE_OP_BIGCHARSET
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SRE_OP_GROUPREF
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SRE_OP_GROUPREF_EXISTS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SRE_OP_IN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SRE_OP_INFO
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SRE_OP_JUMP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SRE_OP_LITERAL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SRE_OP_MARK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SRE_OP_MAX_UNTIL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: SRE_OP_MIN_UNTIL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SRE_OP_NOT_LITERAL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SRE_OP_NEGATE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SRE_OP_RANGE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SRE_OP_REPEAT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '24'
    - item_type: preproc_def
      name: SRE_OP_REPEAT_ONE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SRE_OP_SUBPATTERN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '26'
    - item_type: preproc_def
      name: SRE_OP_MIN_REPEAT_ONE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '27'
    - item_type: preproc_def
      name: SRE_OP_GROUPREF_IGNORE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '28'
    - item_type: preproc_def
      name: SRE_OP_IN_IGNORE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '29'
    - item_type: preproc_def
      name: SRE_OP_LITERAL_IGNORE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '30'
    - item_type: preproc_def
      name: SRE_OP_NOT_LITERAL_IGNORE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '31'
    - item_type: preproc_def
      name: SRE_OP_GROUPREF_LOC_IGNORE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SRE_OP_IN_LOC_IGNORE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '33'
    - item_type: preproc_def
      name: SRE_OP_LITERAL_LOC_IGNORE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '34'
    - item_type: preproc_def
      name: SRE_OP_NOT_LITERAL_LOC_IGNORE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '35'
    - item_type: preproc_def
      name: SRE_OP_GROUPREF_UNI_IGNORE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '36'
    - item_type: preproc_def
      name: SRE_OP_IN_UNI_IGNORE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '37'
    - item_type: preproc_def
      name: SRE_OP_LITERAL_UNI_IGNORE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '38'
    - item_type: preproc_def
      name: SRE_OP_NOT_LITERAL_UNI_IGNORE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '39'
    - item_type: preproc_def
      name: SRE_OP_RANGE_UNI_IGNORE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '40'
    - item_type: preproc_def
      name: SRE_AT_BEGINNING
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SRE_AT_BEGINNING_LINE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_AT_BEGINNING_STRING
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_AT_BOUNDARY
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SRE_AT_NON_BOUNDARY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SRE_AT_END
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SRE_AT_END_LINE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SRE_AT_END_STRING
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SRE_AT_LOC_BOUNDARY
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SRE_AT_LOC_NON_BOUNDARY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SRE_AT_UNI_BOUNDARY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SRE_AT_UNI_NON_BOUNDARY
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SRE_CATEGORY_DIGIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SRE_CATEGORY_NOT_DIGIT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_CATEGORY_SPACE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_CATEGORY_NOT_SPACE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SRE_CATEGORY_WORD
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SRE_CATEGORY_NOT_WORD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SRE_CATEGORY_LINEBREAK
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SRE_CATEGORY_NOT_LINEBREAK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SRE_CATEGORY_LOC_WORD
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SRE_CATEGORY_LOC_NOT_WORD
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_DIGIT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_NOT_DIGIT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_SPACE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_NOT_SPACE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_WORD
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_NOT_WORD
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_LINEBREAK
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SRE_CATEGORY_UNI_NOT_LINEBREAK
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SRE_FLAG_TEMPLATE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_FLAG_IGNORECASE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_FLAG_LOCALE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SRE_FLAG_MULTILINE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SRE_FLAG_DOTALL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SRE_FLAG_UNICODE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SRE_FLAG_VERBOSE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SRE_FLAG_DEBUG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '128'
    - item_type: preproc_def
      name: SRE_FLAG_ASCII
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SRE_INFO_PREFIX
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_INFO_LITERAL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_INFO_CHARSET
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/sre_constants.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - S_ISBLK
  - S_ISFIFO
  - S_ISLNK
  - S_ISSOCK
  - S_ISDOOR
  - S_ISPORT
  - S_ISWHT
  - _PyLong_AsMode_t
  - stat_S_ISFUNC
  - stat_S_IMODE
  - stat_S_IFMT
  - filetype
  - fileperm
  - stat_filemode
  - PyInit__stat
  source_file: /src/Python-3.8.3/Modules/_stat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FILE_ATTRIBUTE_INTEGRITY_STREAM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: FILE_ATTRIBUTE_NO_SCRUB_DATA
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: S_IMODE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '07777'
    - item_type: preproc_def
      name: S_IFBLK
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0060000'
    - item_type: preproc_def
      name: S_IFIFO
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0010000'
    - item_type: preproc_def
      name: S_IFSOCK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0140000'
    - item_type: preproc_def
      name: S_IFDOOR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IFPORT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S_IFWHT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0'
    - item_type: preproc_def
      name: S_ISUID
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '04000'
    - item_type: preproc_def
      name: S_ISGID
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '02000'
    - item_type: preproc_def
      name: S_ENFMT
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: S_ISGID
    - item_type: preproc_def
      name: S_ISVTX
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '01000'
    - item_type: preproc_def
      name: S_IREAD
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00400'
    - item_type: preproc_def
      name: S_IWRITE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00200'
    - item_type: preproc_def
      name: S_IEXEC
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00100'
    - item_type: preproc_def
      name: S_IRWXU
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00700'
    - item_type: preproc_def
      name: S_IRUSR
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00400'
    - item_type: preproc_def
      name: S_IWUSR
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00200'
    - item_type: preproc_def
      name: S_IXUSR
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00100'
    - item_type: preproc_def
      name: S_IRWXG
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00070'
    - item_type: preproc_def
      name: S_IRGRP
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00040'
    - item_type: preproc_def
      name: S_IWGRP
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00020'
    - item_type: preproc_def
      name: S_IXGRP
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00010'
    - item_type: preproc_def
      name: S_IRWXO
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00007'
    - item_type: preproc_def
      name: S_IROTH
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00004'
    - item_type: preproc_def
      name: S_IWOTH
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00002'
    - item_type: preproc_def
      name: S_IXOTH
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '00001'
    - item_type: preproc_def
      name: UF_NODUMP
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: UF_IMMUTABLE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: UF_APPEND
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: UF_OPAQUE
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: UF_NOUNLINK
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: UF_COMPRESSED
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: UF_HIDDEN
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00008000'
    - item_type: preproc_def
      name: SF_ARCHIVED
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: SF_IMMUTABLE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00020000'
    - item_type: preproc_def
      name: SF_APPEND
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00040000'
    - item_type: preproc_def
      name: SF_NOUNLINK
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00100000'
    - item_type: preproc_def
      name: SF_SNAPSHOT
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type_or_value: '0x00200000'
    structs: []
    typedefs:
    - item_type: typedef
      name: mode_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_stat.c
      type: unsigned short
    union: []
- function_names:
  - CTRL
  - fdconv
  - termios_tcgetattr
  - termios_tcsetattr
  - termios_tcsendbreak
  - termios_tcdrain
  - termios_tcflush
  - termios_tcflow
  - PyInit_termios
  source_file: /src/Python-3.8.3/Modules/termios.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VSWTC
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/Python-3.8.3/Modules/termios.c
      type_or_value: VSWTCH
    - item_type: preproc_def
      name: VSWTCH
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/Python-3.8.3/Modules/termios.c
      type_or_value: VSWTC
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: long
      item_type: struct
      name: constant
      pos:
        line_end: 318
        line_start: 315
        source_file: /src/Python-3.8.3/Modules/termios.c
    typedefs: []
    union: []
- function_names:
  - PyLong_FromSocket_t
  - PyLong_AsSocket_t
  - PyLong_FromSocket_t
  - PyLong_AsSocket_t
  - PySocketModule_ImportModuleAndAPI
  source_file: /src/Python-3.8.3/Modules/socketmodule.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AF_ALG
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '38'
    - item_type: preproc_def
      name: SOL_ALG
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '279'
    - item_type: preproc_def
      name: ALG_SET_AEAD_ASSOCLEN
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ALG_SET_AEAD_AUTHSIZE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ALG_SET_PUBKEY
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '6'
    - item_type: preproc_def
      name: ALG_OP_SIGN
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ALG_OP_VERIFY
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PySocket_MODULE_NAME
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '"_socket"'
    - item_type: preproc_def
      name: PySocket_CAPI_NAME
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '"CAPI"'
    - item_type: preproc_def
      name: PySocket_CAPSULE_NAME
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: PySocket_MODULE_NAME "." PySocket_CAPI_NAME
    - item_type: preproc_def
      name: SIZEOF_SOCKET_T
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_SOCKET_T
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SOCKET_T
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type_or_value: SIZEOF_INT
    structs:
    - fields:
      - name: SOCKET_T
        type: PyObject_HEAD
      - name: sock_family
        type: int
      - name: sock_type
        type: int
      - name: sock_proto
        type: int
      - name: '*(*errorhandler)(void)'
        type: PyObject
      - name: sock_timeout
        type: _PyTime_t
      item_type: struct
      name: PySocketSockObject
      pos:
        line_end: 237
        line_start: 226
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
    - fields:
      - name: '*Sock_Type'
        type: PyTypeObject
      - name: '*error'
        type: PyObject
      - name: '*timeout_error'
        type: PyObject
      item_type: struct
      name: PySocketModule_APIObject
      pos:
        line_end: 294
        line_start: 290
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
    typedefs:
    - item_type: typedef
      name: socklen_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type: int
    - item_type: typedef
      name: SOCKET_T
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type: SOCKET
    - item_type: typedef
      name: SOCKET_T
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
      type: int
    union:
    - fields:
      - name: in
        type: struct sockaddr_in
      - name: sa
        type: struct sockaddr
      item_type: union
      name: sock_addr
      pos:
        line_end: 220
        line_start: 183
        source_file: /src/Python-3.8.3/Modules/socketmodule.h
- function_names:
  - simplequeue_dealloc
  - simplequeue_traverse
  - simplequeue_new_impl
  - _queue_SimpleQueue_put_impl
  - _queue_SimpleQueue_put_nowait_impl
  - simplequeue_pop_item
  - _queue_SimpleQueue_get_impl
  - _queue_SimpleQueue_get_nowait_impl
  - _queue_SimpleQueue_empty_impl
  - _queue_SimpleQueue_qsize_impl
  - PyInit__queue
  source_file: /src/Python-3.8.3/Modules/_queuemodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: PyThread_type_lock
        type: PyObject_HEAD
      - name: locked
        type: int
      - name: '*lst'
        type: PyObject
      - name: lst_pos
        type: Py_ssize_t
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: simplequeueobject
      pos:
        line_end: 22
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_queuemodule.c
    typedefs: []
    union: []
- function_names:
  - ACQUIRE_LOCK
  - RELEASE_LOCK
  - catch_bz2_error
  - grow_buffer
  - compress
  - _bz2_BZ2Compressor_compress_impl
  - _bz2_BZ2Compressor_flush_impl
  - BZ2_Malloc
  - BZ2_Free
  - _bz2_BZ2Compressor___init___impl
  - BZ2Compressor_dealloc
  - decompress_buf
  - decompress
  - _bz2_BZ2Decompressor_decompress_impl
  - _bz2_BZ2Decompressor___init___impl
  - BZ2Decompressor_dealloc
  - PyInit__bz2
  source_file: /src/Python-3.8.3/Modules/_bz2module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BZ2_bzCompress
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzCompress
    - item_type: preproc_def
      name: BZ2_bzCompressInit
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzCompressInit
    - item_type: preproc_def
      name: BZ2_bzCompressEnd
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzCompressEnd
    - item_type: preproc_def
      name: BZ2_bzDecompress
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzDecompress
    - item_type: preproc_def
      name: BZ2_bzDecompressInit
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzDecompressInit
    - item_type: preproc_def
      name: BZ2_bzDecompressEnd
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: bzDecompressEnd
    - item_type: preproc_def
      name: INITIAL_BUFFER_SIZE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: INITIAL_BUFFER_SIZE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
      type_or_value: BUFSIZ
    structs:
    - fields:
      - name: bz_stream
        type: PyObject_HEAD
      - name: flushed
        type: int
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: BZ2Compressor
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
    - fields:
      - name: bz_stream
        type: PyObject_HEAD
      - name: eof
        type: char
      - name: '*unused_data'
        type: PyObject
      - name: needs_input
        type: char
      - name: '*input_buffer'
        type: char
      - name: input_buffer_size
        type: size_t
      - name: bzs_avail_in_real
        type: size_t
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: BZ2Decompressor
      pos:
        line_end: 53
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_bz2module.c
    typedefs: []
    union: []
- function_names:
  - partial_new
  - partial_dealloc
  - partial_fastcall
  - partial_call_impl
  - partial_call
  - partial_traverse
  - 'OFF'
  - partial_repr
  - partial_reduce
  - partial_setstate
  - keyobject_dealloc
  - keyobject_traverse
  - keyobject_clear
  - keyobject_call
  - keyobject_richcompare
  - functools_cmp_to_key
  - functools_reduce
  - lru_list_elem_dealloc
  - lru_cache_make_key
  - uncached_lru_cache_wrapper
  - infinite_lru_cache_wrapper
  - lru_cache_extract_link
  - lru_cache_append_link
  - lru_cache_prepend_link
  - bounded_lru_cache_wrapper
  - lru_cache_new
  - lru_cache_unlink_list
  - lru_cache_clear_list
  - lru_cache_dealloc
  - lru_cache_call
  - lru_cache_descr_get
  - lru_cache_cache_info
  - lru_cache_cache_clear
  - lru_cache_reduce
  - lru_cache_copy
  - lru_cache_deepcopy
  - lru_cache_tp_traverse
  - lru_cache_tp_clear
  - module_free
  - PyInit__functools
  source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*fn'
        type: PyObject_HEAD
      - name: '*args'
        type: PyObject
      - name: '*kw'
        type: PyObject
      - name: '*dict'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      - name: use_fastcall
        type: int
      item_type: struct
      name: partialobject
      pos:
        line_end: 23
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - fields:
      - name: '*cmp'
        type: PyObject_HEAD
      - name: '*object'
        type: PyObject
      item_type: struct
      name: keyobject
      pos:
        line_end: 432
        line_start: 428
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: '*prev'
        type: lru_list_elem
      - name: hash
        type: Py_hash_t
      - name: '*key'
        type: PyObject
      item_type: struct
      name: lru_list_elem
      pos:
        line_end: 697
        line_start: 692
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    - fields:
      - name: root
        type: lru_list_elem
      - name: wrapper
        type: lru_cache_ternaryfunc
      - name: typed
        type: int
      - name: '*cache'
        type: PyObject
      - name: hits
        type: Py_ssize_t
      - name: '*func'
        type: PyObject
      - name: maxsize
        type: Py_ssize_t
      - name: misses
        type: Py_ssize_t
      - name: '*cache_info_type'
        type: PyObject
      - name: '*dict'
        type: PyObject
      item_type: struct
      name: lru_cache_object
      pos:
        line_end: 745
        line_start: 734
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
    typedefs:
    - item_type: typedef
      name: '*(*lru_cache_ternaryfunc)(struct lru_cache_object *, PyObject *, PyObject
        *)'
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/Python-3.8.3/Modules/_functoolsmodule.c
      type: PyObject
    union: []
- function_names:
  - ENTER_ZLIB
  - LEAVE_ZLIB
  - zlib_error
  - newcompobject
  - PyZlib_Malloc
  - PyZlib_Free
  - arrange_input_buffer
  - arrange_output_buffer_with_maximum
  - arrange_output_buffer
  - zlib_compress_impl
  - ssize_t_converter
  - zlib_decompress_impl
  - switch
  - zlib_compressobj_impl
  - set_inflate_zdict
  - zlib_decompressobj_impl
  - Dealloc
  - Comp_dealloc
  - Decomp_dealloc
  - zlib_Compress_compress_impl
  - save_unconsumed_input
  - zlib_Decompress_decompress_impl
  - switch
  - zlib_Compress_flush_impl
  - zlib_Compress_copy_impl
  - zlib_Compress___copy___impl
  - zlib_Compress___deepcopy__
  - zlib_Decompress_copy_impl
  - zlib_Decompress___copy___impl
  - zlib_Decompress___deepcopy__
  - zlib_Decompress_flush_impl
  - switch
  - COMP_OFF
  - zlib_adler32_impl
  - zlib_crc32_impl
  - PyInit_zlib
  source_file: /src/Python-3.8.3/Modules/zlibmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFLATED
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
      type_or_value: '8'
    - item_type: preproc_def
      name: DEF_MEM_LEVEL
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
      type_or_value: MAX_MEM_LEVEL
    - item_type: preproc_def
      name: DEF_BUF_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
      type_or_value: (16*1024)
    structs:
    - fields:
      - name: z_stream
        type: PyObject_HEAD
      - name: '*unused_data'
        type: PyObject
      - name: '*unconsumed_tail'
        type: PyObject
      - name: eof
        type: char
      - name: is_initialised
        type: int
      - name: '*zdict'
        type: PyObject
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: compobject
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/zlibmodule.c
    typedefs: []
    union: []
- function_names:
  - BUCKETS_HEAD
  - TABLE_HEAD
  - ENTRY_NEXT
  - HASHTABLE_ITEM_SIZE
  - ENTRY_READ_PDATA
  - ENTRY_WRITE_PDATA
  - _Py_slist_init
  - _Py_slist_prepend
  - _Py_slist_remove
  - _Py_hashtable_hash_ptr
  - _Py_hashtable_compare_direct
  - round_size
  - _Py_hashtable_new_full
  - _Py_hashtable_new
  - _Py_hashtable_size
  - _Py_hashtable_print_stats
  - _Py_hashtable_get_entry
  - _Py_hashtable_pop_entry
  - _Py_hashtable_set
  - _Py_hashtable_get
  - _Py_hashtable_pop
  - _Py_hashtable_delete
  - _Py_hashtable_foreach
  - hashtable_rehash
  - _Py_hashtable_clear
  - _Py_hashtable_destroy
  - _Py_hashtable_copy
  source_file: /src/Python-3.8.3/Modules/hashtable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHTABLE_MIN_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/hashtable.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HASHTABLE_HIGH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/hashtable.c
      type_or_value: '0.50'
    - item_type: preproc_def
      name: HASHTABLE_LOW
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/hashtable.c
      type_or_value: '0.10'
    - item_type: preproc_def
      name: HASHTABLE_REHASH_FACTOR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/hashtable.c
      type_or_value: 2.0 / (HASHTABLE_LOW + HASHTABLE_HIGH)
    structs: []
    typedefs: []
    union: []
- function_names:
  - ascii_buffer_converter
  - binascii_a2b_uu_impl
  - binascii_b2a_uu_impl
  - binascii_find_valid
  - binascii_a2b_base64_impl
  - binascii_b2a_base64_impl
  - binascii_a2b_hqx_impl
  - binascii_rlecode_hqx_impl
  - binascii_b2a_hqx_impl
  - binascii_rledecode_hqx_impl
  - INBYTE
  - binascii_crc_hqx_impl
  - binascii_b2a_hex_impl
  - binascii_hexlify_impl
  - binascii_a2b_hex_impl
  - binascii_unhexlify_impl
  - binascii_a2b_qp_impl
  - to_hex
  - binascii_b2a_qp_impl
  - binascii_exec
  - PyInit_binascii
  source_file: /src/Python-3.8.3/Modules/binascii.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RUNCHAR
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '0x90'
    - item_type: preproc_def
      name: DONE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '0x7F'
    - item_type: preproc_def
      name: SKIP
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '0x7E'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '0x7D'
    - item_type: preproc_def
      name: BASE64_PAD
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '''='''
    - item_type: preproc_def
      name: BASE64_MAXBIN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: ((PY_SSIZE_T_MAX - 3) / 2)
    - item_type: preproc_def
      name: MAXLINESIZE
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/Python-3.8.3/Modules/binascii.c
      type_or_value: '76'
    structs:
    - fields:
      - name: '*Error'
        type: PyObject
      - name: '*Incomplete'
        type: PyObject
      item_type: struct
      name: binascii_state
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/binascii.c
    typedefs: []
    union: []
- function_names:
  - newossobject
  - oss_dealloc
  - newossmixerobject
  - oss_mixer_dealloc
  - _is_fd_valid
  - _do_ioctl_1
  - _do_ioctl_1_internal
  - _do_ioctl_0
  - oss_nonblock
  - oss_setfmt
  - oss_getfmts
  - oss_channels
  - oss_speed
  - oss_sync
  - oss_reset
  - oss_post
  - oss_read
  - oss_write
  - oss_writeall
  - oss_close
  - oss_self
  - oss_exit
  - oss_fileno
  - oss_setparameters
  - _ssize
  - oss_bufsize
  - oss_obufcount
  - oss_obuffree
  - oss_getptr
  - oss_mixer_close
  - oss_mixer_fileno
  - oss_mixer_controls
  - oss_mixer_stereocontrols
  - oss_mixer_reccontrols
  - oss_mixer_get
  - oss_mixer_set
  - oss_mixer_get_recsrc
  - oss_mixer_set_recsrc
  - oss_closed_getter
  - oss_mode_getter
  - ossopen
  - ossopenmixer
  - _EXPORT_INT
  - build_namelists
  - PyInit_ossaudiodev
  source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: O_RDONLY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
      type_or_value: '00'
    - item_type: preproc_def
      name: O_WRONLY
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
      type_or_value: '01'
    - item_type: preproc_def
      name: SNDCTL_DSP_CHANNELS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
      type_or_value: SOUND_PCM_WRITE_CHANNELS
    structs:
    - fields:
      - name: '*devicename'
        type: PyObject_HEAD
      - name: fd
        type: int
      - name: mode
        type: int
      - name: icount
        type: Py_ssize_t
      - name: ocount
        type: Py_ssize_t
      - name: afmts
        type: uint32_t
      item_type: struct
      name: oss_audio_t
      pos:
        line_end: 61
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    - fields:
      - name: int
        type: PyObject_HEAD
      item_type: struct
      name: oss_mixer_t
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
    typedefs:
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/ossaudiodev.c
      type: unsigned long
    union: []
- function_names:
  - dirfd
  - POSIX_CALL
  - _enable_gc
  - _pos_int_from_ascii
  - _is_fdescfs_mounted_on_dev_fd
  - _sanity_check_python_fd_sequence
  - _is_fd_in_sorted_fd_sequence
  - make_inheritable
  - safe_get_max_fd
  - _close_fds_by_brute_force
  - _close_open_fds_safe
  - _close_open_fds_maybe_unsafe
  - child_exec
  - subprocess_fork_exec
  - PyInit__posixsubprocess
  source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYS_getdents64
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: __NR_getdents64
    - item_type: preproc_def
      name: readdir
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: readdir64
    - item_type: preproc_def
      name: dirent
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: dirent64
    - item_type: preproc_def
      name: FD_DIR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: '"/dev/fd"'
    - item_type: preproc_def
      name: FD_DIR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: '"/proc/self/fd"'
    - item_type: preproc_def
      name: _close_open_fds
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: _close_open_fds_safe
    - item_type: preproc_def
      name: _close_open_fds
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
      type_or_value: _close_open_fds_maybe_unsafe
    structs:
    - fields:
      - name: d_ino
        type: unsigned long long
      - name: d_off
        type: long long
      - name: d_reclen
        type: unsigned short
      - name: d_type
        type: unsigned char
      - name: d_name[256]
        type: char
      item_type: struct
      name: linux_dirent64
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/Python-3.8.3/Modules/_posixsubprocess.c
    typedefs: []
    union: []
- function_names:
  - _copy_raw_string
  - _get_current
  - _sharednsitem_init
  - _sharednsitem_clear
  - _sharednsitem_apply
  - _sharedns_new
  - _sharedns_free
  - _get_shared_ns
  - _sharedns_apply
  - _sharedexception_new
  - _sharedexception_clear
  - _sharedexception_free
  - _sharedexception_bind
  - _sharedexception_apply
  - channel_exceptions_init
  - _channelitem_new
  - _channelitem_clear
  - _channelitem_free
  - _channelitem_free_all
  - _channelitem_popped
  - _channelqueue_new
  - _channelqueue_clear
  - _channelqueue_free
  - _channelqueue_put
  - _channelqueue_get
  - _channelend_new
  - _channelend_free
  - _channelend_free_all
  - _channelend_find
  - _channelends_new
  - _channelends_clear
  - _channelends_free
  - _channelends_add
  - _channelends_associate
  - _channelends_is_open
  - _channelends_close_end
  - _channelends_close_interpreter
  - _channelends_close_all
  - _channel_new
  - _channel_free
  - _channel_add
  - _channel_next
  - _channel_close_interpreter
  - _channel_close_all
  - _channelref_new
  - _channelref_free
  - _channelref_find
  - _channels_init
  - _channels_next_id
  - _channels_lookup
  - _channels_add
  - _channels_close
  - _channels_remove_ref
  - _channels_remove
  - _channels_add_id_object
  - _channels_drop_id_object
  - _channels_list_all
  - _channel_set_closing
  - _channel_clear_closing
  - _channel_finish_closing
  - _channel_create
  - _channel_destroy
  - _channel_send
  - _channel_recv
  - _channel_drop
  - _channel_close
  - channel_id_converter
  - newchannelid
  - channelid_new
  - channelid_dealloc
  - channelid_repr
  - channelid_str
  - channelid_int
  - channelid_hash
  - channelid_richcompare
  - _channel_from_cid
  - _channelid_from_xid
  - _channelid_shared
  - channelid_end
  - interp_exceptions_init
  - _is_running
  - _ensure_not_running
  - _run_script
  - _run_script_in_interpreter
  - _init_globals
  - _global_channels
  - interp_create
  - interp_destroy
  - interp_list_all
  - interp_get_current
  - interp_get_main
  - interp_run_string
  - object_is_shareable
  - interp_is_running
  - channel_create
  - channel_destroy
  - channel_list_all
  - channel_send
  - channel_recv
  - channel_close
  - channel_release
  - channel__channel_id
  - PyInit__xxsubinterpreters
  source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHANNEL_SEND
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CHANNEL_BOTH
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CHANNEL_RECV
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
      type_or_value: '-1'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: data
        type: _PyCrossInterpreterData
      item_type: struct
      name: _sharednsitem
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: len
        type: Py_ssize_t
      - name: '* items'
        type: struct _sharednsitem
      item_type: struct
      name: _sharedns
      pos:
        line_end: 88
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: '*name'
        type: char
      - name: '*msg'
        type: char
      item_type: struct
      name: _sharedexception
      pos:
        line_end: 169
        line_start: 166
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: '*data'
        type: _PyCrossInterpreterData
      - name: '*next'
        type: struct _channelitem
      item_type: struct
      name: _channelitem
      pos:
        line_end: 356
        line_start: 353
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: count
        type: int64_t
      - name: '*first'
        type: _channelitem
      - name: '*last'
        type: _channelitem
      item_type: struct
      name: _channelqueue
      pos:
        line_end: 412
        line_start: 408
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: '*next'
        type: struct _channelend
      - name: interp
        type: int64_t
      - name: open
        type: int
      item_type: struct
      name: _channelend
      pos:
        line_end: 488
        line_start: 484
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: numsendopen
        type: int64_t
      - name: numrecvopen
        type: int64_t
      - name: '*send'
        type: _channelend
      - name: '*recv'
        type: _channelend
      item_type: struct
      name: _channelassociations
      pos:
        line_end: 547
        line_start: 538
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: mutex
        type: PyThread_type_lock
      - name: '*queue'
        type: _channelqueue
      - name: '*ends'
        type: _channelends
      - name: open
        type: int
      - name: '*closing'
        type: struct _channel_closing
      item_type: struct
      name: _channel
      pos:
        line_end: 716
        line_start: 710
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: id
        type: int64_t
      - name: '*chan'
        type: _PyChannelState
      - name: '*next'
        type: struct _channelref
      - name: objcount
        type: Py_ssize_t
      item_type: struct
      name: _channelref
      pos:
        line_end: 873
        line_start: 868
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: mutex
        type: PyThread_type_lock
      - name: '*head'
        type: _channelref
      - name: numopen
        type: int64_t
      - name: next_id
        type: int64_t
      item_type: struct
      name: _channels
      pos:
        line_end: 931
        line_start: 926
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: '*ref'
        type: struct _channelref
      item_type: struct
      name: _channel_closing
      pos:
        line_end: 1206
        line_start: 1204
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: int64_t
        type: PyObject_HEAD
      - name: end
        type: int
      - name: resolve
        type: int
      - name: '*channels'
        type: _channels
      item_type: struct
      name: channelid
      pos:
        line_end: 1407
        line_start: 1401
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: id
        type: int64_t
      - name: end
        type: int
      - name: resolve
        type: int
      item_type: struct
      name: _channelid_xid
      pos:
        line_end: 1672
        line_start: 1668
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    - fields:
      - name: channels
        type: _channels
      item_type: struct
      name: globals
      pos:
        line_end: 1971
        line_start: 1969
        source_file: /src/Python-3.8.3/Modules/_xxsubinterpretersmodule.c
    typedefs: []
    union: []
- function_names:
  - _contextvars_copy_context_impl
  - PyInit__contextvars
  source_file: /src/Python-3.8.3/Modules/_contextvarsmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ssl_data.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _symtable_symtable_impl
  - PyInit__symtable
  source_file: /src/Python-3.8.3/Modules/symtablemodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROL
  - ROLc
  - STORE32H
  - LOAD32H
  - STORE64H
  - F0
  - F1
  - F2
  - F3
  - sha1_compress
  - FF_0
  - FF_1
  - FF_2
  - FF_3
  - sha1_init
  - sha1_process
  - sha1_done
  - newSHA1object
  - SHA1_dealloc
  - SHA1Type_copy_impl
  - SHA1Type_digest_impl
  - SHA1Type_hexdigest_impl
  - SHA1Type_update
  - SHA1_get_block_size
  - SHA1_get_name
  - sha1_get_digest_size
  - _sha1_sha1_impl
  - insint
  - PyInit__sha1
  source_file: /src/Python-3.8.3/Modules/sha1module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA1_BLOCKSIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/sha1module.c
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA1_DIGESTSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/sha1module.c
      type_or_value: '20'
    structs:
    - fields:
      - name: length
        type: SHA1_INT64
      - name: state[5]
        type: SHA1_INT32
      - name: buf[SHA1_BLOCKSIZE]
        type: unsigned char
      item_type: struct
      name: sha1_state
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: hash_state
        type: sha1_state
      item_type: struct
      name: SHA1object
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/sha1module.c
    typedefs:
    - item_type: typedef
      name: SHA1_INT32
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/sha1module.c
      type: unsigned int
    - item_type: typedef
      name: SHA1_INT64
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/sha1module.c
      type: long long
    union: []
- function_names:
  - SRE
  - SRE
  - SRE
  - SRE
  - SRE
  - LASTMARK_SAVE
  - LASTMARK_RESTORE
  - RETURN_ERROR
  - RETURN_ON_ERROR
  - RETURN_ON_SUCCESS
  - RETURN_ON_FAILURE
  - DATA_STACK_ALLOC
  - DATA_STACK_LOOKUP_AT
  - DATA_STACK_PUSH
  - DATA_STACK_POP
  - DATA_STACK_POP_DISCARD
  - DATA_PUSH
  - DATA_POP
  - DATA_POP_DISCARD
  - DATA_ALLOC
  - DATA_LOOKUP_AT
  - MARK_PUSH
  - MARK_POP
  - MARK_POP_KEEP
  - MARK_POP_DISCARD
  - DO_JUMPX
  - DO_JUMP
  - DO_JUMP0
  - SRE
  - RESET_CAPTURE_GROUP
  - SRE
  source_file: /src/Python-3.8.3/Modules/sre_lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RETURN_FAILURE
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: do { ret = 0; goto exit; } while(0)
    - item_type: preproc_def
      name: RETURN_SUCCESS
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: do { ret = 1; goto exit; } while(0)
    - item_type: preproc_def
      name: JUMP_NONE
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '0'
    - item_type: preproc_def
      name: JUMP_MAX_UNTIL_1
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: JUMP_MAX_UNTIL_2
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: JUMP_MAX_UNTIL_3
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '3'
    - item_type: preproc_def
      name: JUMP_MIN_UNTIL_1
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '4'
    - item_type: preproc_def
      name: JUMP_MIN_UNTIL_2
      pos:
        line_end: 503
        line_start: 502
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '5'
    - item_type: preproc_def
      name: JUMP_MIN_UNTIL_3
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '6'
    - item_type: preproc_def
      name: JUMP_REPEAT
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '7'
    - item_type: preproc_def
      name: JUMP_REPEAT_ONE_1
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '8'
    - item_type: preproc_def
      name: JUMP_REPEAT_ONE_2
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '9'
    - item_type: preproc_def
      name: JUMP_MIN_REPEAT_ONE
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '10'
    - item_type: preproc_def
      name: JUMP_BRANCH
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '11'
    - item_type: preproc_def
      name: JUMP_ASSERT
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '12'
    - item_type: preproc_def
      name: JUMP_ASSERT_NOT
      pos:
        line_end: 511
        line_start: 510
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
      type_or_value: '13'
    structs:
    - fields:
      - name: last_ctx_pos
        type: Py_ssize_t
      - name: jump
        type: Py_ssize_t
      - name: '* ptr'
        type: SRE_CHAR
      - name: '* pattern'
        type: SRE_CODE
      - name: count
        type: Py_ssize_t
      - name: lastmark
        type: Py_ssize_t
      - name: lastindex
        type: Py_ssize_t
      - name: u
        type: "union {\n        SRE_CODE chr;\n        SRE_REPEAT* rep;\n    }"
      - name: toplevel
        type: int
      item_type: struct
      name: SRE(match_context)
      pos:
        line_end: 543
        line_start: 530
        source_file: /src/Python-3.8.3/Modules/sre_lib.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/posixmodule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pymain_init
  - config_run_code
  - stdin_is_interactive
  - pymain_err_print
  - pymain_exit_err_print
  - pymain_get_importer
  - pymain_sys_path_add_path0
  - pymain_header
  - pymain_import_readline
  - pymain_run_command
  - pymain_run_module
  - pymain_run_file
  - pymain_run_startup
  - pymain_run_interactive_hook
  - pymain_run_stdin
  - pymain_repl
  - pymain_run_python
  - pymain_free
  - exit_sigint
  - _Py_NO_RETURN::pymain_exit_error
  - Py_RunMain
  - pymain_main
  - Py_Main
  - Py_BytesMain
  source_file: /src/Python-3.8.3/Modules/main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COPYRIGHT
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/main.c
      type_or_value: "\"Type \\\"help\\\", \\\"copyright\\\", \\\"credits\\\" or \\\"license\\\"
        \" \\\n    \"for more information.\""
    structs: []
    typedefs: []
    union: []
- function_names:
  - mkgrent
  - SET
  - grp_getgrgid_impl
  - grp_getgrnam_impl
  - grp_getgrall_impl
  - PyInit_grp
  source_file: /src/Python-3.8.3/Modules/grpmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUFFER_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/grpmodule.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/rotatingtree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPTY_ROTATING_TREE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/rotatingtree.h
      type_or_value: ((rotating_node_t *)NULL)
    structs:
    - fields:
      - name: '*key'
        type: void
      - name: '*left'
        type: rotating_node_t
      - name: '*right'
        type: rotating_node_t
      item_type: struct
      name: rotating_node_s
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/rotatingtree.h
    typedefs:
    - item_type: typedef
      name: rotating_node_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/rotatingtree.h
      type: rotating_node_s
    - item_type: typedef
      name: (*rotating_tree_enum_fn) (rotating_node_t *node, void *arg)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/rotatingtree.h
      type: int
    union: []
- function_names:
  - IN_MULTICAST
  - IN_EXPERIMENTAL
  - GET_CANONNAME
  - GET_AI
  - GET_AI
  - ERR
  - gai_strerror
  - freeaddrinfo
  - str_isnumber
  - getaddrinfo
  source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GAI_ANY
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'YES'
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'NO'
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PTON_MAX
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '16'
    - item_type: preproc_def
      name: PTON_MAX
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '4'
    - item_type: preproc_def
      name: IN_LOOPBACKNET
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
      type_or_value: '127'
    structs:
    - fields:
      - name: si_len
        type: u_char
      - name: si_family
        type: u_char
      - name: si_port
        type: u_short
      item_type: struct
      name: sockinet
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
    - fields:
      - name: a_af
        type: int
      - name: a_addrlen
        type: int
      - name: a_socklen
        type: int
      - name: a_off
        type: int
      - name: '*a_addrany'
        type: char
      - name: '*a_loopback'
        type: char
      item_type: struct
      name: gai_afd
      pos:
        line_end: 95
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/getaddrinfo.c
    typedefs: []
    union: []
- function_names:
  - syslog_get_argv
  - syslog_openlog
  - syslog_syslog
  - syslog_closelog
  - syslog_setlogmask
  - syslog_log_mask
  - syslog_log_upto
  - PyInit_syslog
  source_file: /src/Python-3.8.3/Modules/syslogmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOG_SYSLOG
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/Python-3.8.3/Modules/syslogmodule.c
      type_or_value: LOG_DAEMON
    - item_type: preproc_def
      name: LOG_NEWS
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/Python-3.8.3/Modules/syslogmodule.c
      type_or_value: LOG_MAIL
    - item_type: preproc_def
      name: LOG_UUCP
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/Python-3.8.3/Modules/syslogmodule.c
      type_or_value: LOG_MAIL
    - item_type: preproc_def
      name: LOG_CRON
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/Python-3.8.3/Modules/syslogmodule.c
      type_or_value: LOG_DAEMON
    structs: []
    typedefs: []
    union: []
- function_names:
  - ACQUIRE_LOCK
  - RELEASE_LOCK
  - catch_lzma_error
  - PyLzma_Malloc
  - PyLzma_Free
  - grow_buffer
  - INT_TYPE_CONVERTER_FUNC
  - parse_filter_spec_lzma
  - parse_filter_spec_delta
  - parse_filter_spec_bcj
  - lzma_filter_converter
  - free_filter_chain
  - parse_filter_chain_spec
  - spec_add_field
  - build_filter_spec
  - ADD_FIELD
  - compress
  - _lzma_LZMACompressor_compress_impl
  - _lzma_LZMACompressor_flush_impl
  - Compressor_init_xz
  - Compressor_init_alone
  - Compressor_init_raw
  - Compressor_init
  - Compressor_dealloc
  - decompress_buf
  - decompress
  - _lzma_LZMADecompressor_decompress_impl
  - Decompressor_init_raw
  - _lzma_LZMADecompressor___init___impl
  - Decompressor_dealloc
  - _lzma_is_check_supported_impl
  - _lzma__encode_filter_properties_impl
  - _lzma__decode_filter_properties_impl
  - module_add_int_constant
  - ADD_INT_PREFIX_MACRO
  - PyInit__lzma
  source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LZMA_CHECK_UNKNOWN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
      type_or_value: (LZMA_CHECK_ID_MAX + 1)
    - item_type: preproc_def
      name: INITIAL_BUFFER_SIZE
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: INITIAL_BUFFER_SIZE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
      type_or_value: BUFSIZ
    structs:
    - fields:
      - name: lzma_allocator
        type: PyObject_HEAD
      - name: lzs
        type: lzma_stream
      - name: flushed
        type: int
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: Compressor
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
    - fields:
      - name: lzma_allocator
        type: PyObject_HEAD
      - name: lzs
        type: lzma_stream
      - name: check
        type: int
      - name: eof
        type: char
      - name: '*unused_data'
        type: PyObject
      - name: needs_input
        type: char
      - name: '*input_buffer'
        type: uint8_t
      - name: input_buffer_size
        type: size_t
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: Decompressor
      pos:
        line_end: 57
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_lzmamodule.c
    typedefs: []
    union: []
- function_names:
  - fildes_converter
  - reap_obj
  - seq2set
  - set2list
  - select_select_impl
  - update_ufd_array
  - select_poll_register_impl
  - select_poll_modify_impl
  - select_poll_unregister_impl
  - select_poll_poll_impl
  - newPollObject
  - poll_dealloc
  - devpoll_err_closed
  - devpoll_flush
  - internal_devpoll_register
  - select_devpoll_register_impl
  - select_devpoll_modify_impl
  - select_devpoll_unregister_impl
  - select_devpoll_poll_impl
  - devpoll_internal_close
  - select_devpoll_close_impl
  - devpoll_get_closed
  - select_devpoll_fileno_impl
  - newDevPollObject
  - devpoll_dealloc
  - select_poll_impl
  - select_devpoll_impl
  - select_have_broken_poll
  - pyepoll_CHECK
  - pyepoll_err_closed
  - pyepoll_internal_close
  - newPyEpoll_Object
  - select_epoll_impl
  - pyepoll_dealloc
  - select_epoll_close_impl
  - pyepoll_get_closed
  - select_epoll_fileno_impl
  - select_epoll_fromfd_impl
  - pyepoll_internal_ctl
  - select_epoll_register_impl
  - select_epoll_modify_impl
  - select_epoll_unregister_impl
  - select_epoll_poll_impl
  - select_epoll___enter___impl
  - select_epoll___exit___impl
  - kqueue_event_Check
  - kqueue_queue_Check
  - KQ_OFF
  - kqueue_event_repr
  - kqueue_event_init
  - kqueue_event_richcompare
  - CMP
  - kqueue_queue_err_closed
  - kqueue_queue_internal_close
  - newKqueue_Object
  - select_kqueue_impl
  - kqueue_queue_dealloc
  - select_kqueue_close_impl
  - kqueue_queue_get_closed
  - select_kqueue_fileno_impl
  - select_kqueue_fromfd_impl
  - select_kqueue_control_impl
  source_file: /src/Python-3.8.3/Modules/selectmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FD_SETSIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '512'
    - item_type: preproc_def
      name: SOCKET
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: int
    - item_type: preproc_def
      name: T_UINTPTRT
      pos:
        line_end: 1718
        line_start: 1717
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_ULONGLONG
    - item_type: preproc_def
      name: T_INTPTRT
      pos:
        line_end: 1719
        line_start: 1718
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_LONGLONG
    - item_type: preproc_def
      name: UINTPTRT_FMT_UNIT
      pos:
        line_end: 1720
        line_start: 1719
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"K"'
    - item_type: preproc_def
      name: INTPTRT_FMT_UNIT
      pos:
        line_end: 1721
        line_start: 1720
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"L"'
    - item_type: preproc_def
      name: T_UINTPTRT
      pos:
        line_end: 1723
        line_start: 1722
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: T_INTPTRT
      pos:
        line_end: 1724
        line_start: 1723
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_LONG
    - item_type: preproc_def
      name: UINTPTRT_FMT_UNIT
      pos:
        line_end: 1725
        line_start: 1724
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: INTPTRT_FMT_UNIT
      pos:
        line_end: 1726
        line_start: 1725
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"l"'
    - item_type: preproc_def
      name: T_UINTPTRT
      pos:
        line_end: 1728
        line_start: 1727
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT
    - item_type: preproc_def
      name: T_INTPTRT
      pos:
        line_end: 1729
        line_start: 1728
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_INT
    - item_type: preproc_def
      name: UINTPTRT_FMT_UNIT
      pos:
        line_end: 1730
        line_start: 1729
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"I"'
    - item_type: preproc_def
      name: INTPTRT_FMT_UNIT
      pos:
        line_end: 1731
        line_start: 1730
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"i"'
    - item_type: preproc_def
      name: T_INT64
      pos:
        line_end: 1737
        line_start: 1736
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_LONGLONG
    - item_type: preproc_def
      name: INT64_FMT_UNIT
      pos:
        line_end: 1738
        line_start: 1737
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"L"'
    - item_type: preproc_def
      name: T_INT64
      pos:
        line_end: 1740
        line_start: 1739
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_LONG
    - item_type: preproc_def
      name: INT64_FMT_UNIT
      pos:
        line_end: 1741
        line_start: 1740
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"l"'
    - item_type: preproc_def
      name: T_INT64
      pos:
        line_end: 1743
        line_start: 1742
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_INT
    - item_type: preproc_def
      name: INT64_FMT_UNIT
      pos:
        line_end: 1744
        line_start: 1743
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"i"'
    - item_type: preproc_def
      name: INT64_FMT_UNIT
      pos:
        line_end: 1746
        line_start: 1745
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"_"'
    - item_type: preproc_def
      name: T_UINT32
      pos:
        line_end: 1750
        line_start: 1749
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_ULONGLONG
    - item_type: preproc_def
      name: UINT32_FMT_UNIT
      pos:
        line_end: 1751
        line_start: 1750
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"K"'
    - item_type: preproc_def
      name: T_UINT32
      pos:
        line_end: 1753
        line_start: 1752
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: UINT32_FMT_UNIT
      pos:
        line_end: 1754
        line_start: 1753
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_UINT32
      pos:
        line_end: 1756
        line_start: 1755
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT
    - item_type: preproc_def
      name: UINT32_FMT_UNIT
      pos:
        line_end: 1757
        line_start: 1756
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"I"'
    - item_type: preproc_def
      name: UINT32_FMT_UNIT
      pos:
        line_end: 1759
        line_start: 1758
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"_"'
    - item_type: preproc_def
      name: FILTER_TYPE
      pos:
        line_end: 1766
        line_start: 1765
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT32
    - item_type: preproc_def
      name: FILTER_FMT_UNIT
      pos:
        line_end: 1767
        line_start: 1766
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: UINT32_FMT_UNIT
    - item_type: preproc_def
      name: FLAGS_TYPE
      pos:
        line_end: 1768
        line_start: 1767
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT32
    - item_type: preproc_def
      name: FLAGS_FMT_UNIT
      pos:
        line_end: 1769
        line_start: 1768
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: UINT32_FMT_UNIT
    - item_type: preproc_def
      name: FFLAGS_TYPE
      pos:
        line_end: 1770
        line_start: 1769
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT32
    - item_type: preproc_def
      name: FFLAGS_FMT_UNIT
      pos:
        line_end: 1771
        line_start: 1770
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: UINT32_FMT_UNIT
    - item_type: preproc_def
      name: FILTER_TYPE
      pos:
        line_end: 1773
        line_start: 1772
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_SHORT
    - item_type: preproc_def
      name: FILTER_FMT_UNIT
      pos:
        line_end: 1774
        line_start: 1773
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"h"'
    - item_type: preproc_def
      name: FLAGS_TYPE
      pos:
        line_end: 1775
        line_start: 1774
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_USHORT
    - item_type: preproc_def
      name: FLAGS_FMT_UNIT
      pos:
        line_end: 1776
        line_start: 1775
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"H"'
    - item_type: preproc_def
      name: FFLAGS_TYPE
      pos:
        line_end: 1777
        line_start: 1776
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_UINT
    - item_type: preproc_def
      name: FFLAGS_FMT_UNIT
      pos:
        line_end: 1778
        line_start: 1777
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '"I"'
    - item_type: preproc_def
      name: DATA_TYPE
      pos:
        line_end: 1782
        line_start: 1781
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_INT64
    - item_type: preproc_def
      name: DATA_FMT_UNIT
      pos:
        line_end: 1783
        line_start: 1782
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: INT64_FMT_UNIT
    - item_type: preproc_def
      name: DATA_TYPE
      pos:
        line_end: 1785
        line_start: 1784
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: T_INTPTRT
    - item_type: preproc_def
      name: DATA_FMT_UNIT
      pos:
        line_end: 1786
        line_start: 1785
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: INTPTRT_FMT_UNIT
    - item_type: preproc_def
      name: PIPE_BUF
      pos:
        line_end: 2504
        line_start: 2503
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
      type_or_value: '512'
    structs:
    - fields:
      - name: '*obj'
        type: PyObject
      - name: fd
        type: SOCKET
      - name: sentinel
        type: int
      item_type: struct
      name: pylist
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - fields:
      - name: '*dict'
        type: PyObject_HEAD
      - name: ufd_uptodate
        type: int
      - name: ufd_len
        type: int
      - name: '*ufds'
        type: struct pollfd
      - name: poll_running
        type: int
      item_type: struct
      name: pollObject
      pos:
        line_end: 400
        line_start: 393
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - fields:
      - name: fd_devpoll
        type: PyObject_HEAD
      - name: max_n_fds
        type: int
      - name: n_fds
        type: int
      - name: '*fds'
        type: struct pollfd
      item_type: struct
      name: devpollObject
      pos:
        line_end: 744
        line_start: 738
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - fields:
      - name: SOCKET
        type: PyObject_HEAD
      item_type: struct
      name: pyEpoll_Object
      pos:
        line_end: 1201
        line_start: 1198
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: e
        type: kevent
      item_type: struct
      name: kqueue_event_Object
      pos:
        line_end: 1699
        line_start: 1696
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    - fields:
      - name: SOCKET
        type: PyObject_HEAD
      item_type: struct
      name: kqueue_queue_Object
      pos:
        line_end: 1708
        line_start: 1705
        source_file: /src/Python-3.8.3/Modules/selectmodule.c
    typedefs: []
    union: []
- function_names:
  - is_dbmobject
  - check_dbmobject_open
  - newdbmobject
  - dbm_dealloc
  - dbm_length
  - dbm_subscript
  - dbm_ass_sub
  - _dbm_dbm_close_impl
  - _dbm_dbm_keys_impl
  - dbm_contains
  - _dbm_dbm_get_impl
  - _dbm_dbm_setdefault_impl
  - dbm__enter__
  - dbm__exit__
  - dbmopen_impl
  - PyInit__dbm
  source_file: /src/Python-3.8.3/Modules/_dbmmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flags
        type: PyObject_HEAD
      - name: di_size
        type: int
      - name: '*di_dbm'
        type: DBM
      item_type: struct
      name: dbmobject
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_dbmmodule.c
    typedefs: []
    union: []
- function_names:
  - nis_error
  - nis_mapname
  - nis_foreach
  - nis_get_default_domain
  - nis_match
  - nis_cat
  - nis_xdr_domainname
  - nis_xdr_mapname
  - nis_xdr_ypmaplist
  - nis_xdr_ypstat
  - nis_xdr_ypresp_maplist
  - nisproc_maplist_2
  - nis_maplist
  - nis_maps
  - PyInit_nis
  source_file: /src/Python-3.8.3/Modules/nismodule.c
  types:
    enum:
    - enumerators:
      - name: NIS_TRUE
        value: '1'
      - name: NIS_NOMORE
        value: '2'
      - name: NIS_FALSE
        value: '0'
      - name: NIS_NOMAP
        value: '-1'
      - name: NIS_NODOM
        value: '-2'
      - name: NIS_NOKEY
        value: '-3'
      - name: NIS_BADOP
        value: '-4'
      - name: NIS_BADDB
        value: '-5'
      - name: NIS_YPERR
        value: '-6'
      - name: NIS_BADARGS
        value: '-7'
      - name: NIS_VERS
        value: '-8'
      item_type: enum
      name: nisstat
      pos:
        line_end: 256
        line_start: 244
        source_file: /src/Python-3.8.3/Modules/nismodule.c
    preproc_defs:
    - item_type: preproc_def
      name: YPPROC_MAPLIST
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type_or_value: '11'
    - item_type: preproc_def
      name: YPPROG
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type_or_value: '100004'
    - item_type: preproc_def
      name: YPVERS
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*alias'
        type: char
      - name: '*map'
        type: char
      - name: fix
        type: int
      item_type: struct
      name: nis_map
      pos:
        line_end: 59
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/nismodule.c
    - fields:
      - name: '*dict'
        type: PyObject
      - name: fix
        type: int
      - name: '*state'
        type: PyThreadState
      item_type: struct
      name: ypcallback_data
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/nismodule.c
    - fields:
      - name: map
        type: mapname
      - name: '*next'
        type: struct nismaplist
      item_type: struct
      name: nismaplist
      pos:
        line_end: 262
        line_start: 259
        source_file: /src/Python-3.8.3/Modules/nismodule.c
    - fields:
      - name: stat
        type: nisstat
      - name: '*maps'
        type: nismaplist
      item_type: struct
      name: nisresp_maplist
      pos:
        line_end: 268
        line_start: 265
        source_file: /src/Python-3.8.3/Modules/nismodule.c
    typedefs:
    - item_type: typedef
      name: (*foreachfunc)(unsigned long, char *, int, char *, int, void *)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: int
    - item_type: typedef
      name: (*foreachfunc)(int, char *, int, char *, int, char *)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: int
    - item_type: typedef
      name: '*domainname'
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: char
    - item_type: typedef
      name: '*mapname'
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: char
    - item_type: typedef
      name: nisstat
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: nisstat
    - item_type: typedef
      name: nismaplist
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: nismaplist
    - item_type: typedef
      name: nisresp_maplist
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/Python-3.8.3/Modules/nismodule.c
      type: nisresp_maplist
    union: []
- function_names:
  - RandomObject_Check
  - genrand_int32
  - _random_Random_random_impl
  - init_genrand
  - init_by_array
  - random_seed_urandom
  - random_seed_time_pid
  - random_seed
  - _random_Random_seed_impl
  - _random_Random_getstate_impl
  - _random_Random_setstate
  - _random_Random_getrandbits_impl
  - random_new
  - PyInit__random
  source_file: /src/Python-3.8.3/Modules/_randommodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
      type_or_value: '624'
    - item_type: preproc_def
      name: M
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
      type_or_value: '397'
    - item_type: preproc_def
      name: MATRIX_A
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
      type_or_value: '0x9908b0dfU    '
    - item_type: preproc_def
      name: UPPER_MASK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
      type_or_value: '0x80000000U  '
    - item_type: preproc_def
      name: LOWER_MASK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
      type_or_value: '0x7fffffffU  '
    structs:
    - fields:
      - name: index
        type: PyObject_HEAD
      - name: state[N]
        type: uint32_t
      item_type: struct
      name: RandomObject
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_randommodule.c
    typedefs: []
    union: []
- function_names:
  - _curses_panelstate
  - _curses_panel_clear
  - _curses_panel_traverse
  - _curses_panel_free
  - PyCursesCheckERR
  - PyCursesPanel_Check
  - insert_lop
  - remove_lop
  - find_po
  - _curses_panel_panel_bottom_impl
  - _curses_panel_panel_hide_impl
  - _curses_panel_panel_show_impl
  - _curses_panel_panel_top_impl
  - PyCursesPanel_New
  - PyCursesPanel_Dealloc
  - _curses_panel_panel_above_impl
  - _curses_panel_panel_below_impl
  - _curses_panel_panel_hidden_impl
  - _curses_panel_panel_move_impl
  - _curses_panel_panel_window_impl
  - _curses_panel_panel_replace_impl
  - _curses_panel_panel_set_userptr
  - _curses_panel_panel_userptr_impl
  - _curses_panel_bottom_panel_impl
  - _curses_panel_new_panel_impl
  - _curses_panel_top_panel_impl
  - _curses_panel_update_panels_impl
  - PyInit__curses_panel
  source_file: /src/Python-3.8.3/Modules/_curses_panel.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _curses_panelstate_global
      pos:
        line_end: 49
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_curses_panel.c
      type_or_value: ((_curses_panelstate *) PyModule_GetState(PyState_FindModule(&_curses_panelmodule)))
    structs:
    - fields:
      - name: '*PyCursesError'
        type: PyObject
      - name: '*PyCursesPanel_Type'
        type: PyObject
      item_type: struct
      name: _curses_panelstate
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_curses_panel.c
    - fields:
      - name: '*pan'
        type: PyObject_HEAD
      - name: '*wo'
        type: PyCursesWindowObject
      item_type: struct
      name: PyCursesPanelObject
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_curses_panel.c
    - fields:
      - name: '*po'
        type: PyCursesPanelObject
      - name: '*next'
        type: struct _list_of_panels
      item_type: struct
      name: _list_of_panels
      pos:
        line_end: 107
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/_curses_panel.c
    typedefs: []
    union: []
- function_names:
  - sets
  - mkspent
  - SETI
  - SETS
  - spwd_getspnam_impl
  - spwd_getspall_impl
  - PyInit_spwd
  source_file: /src/Python-3.8.3/Modules/spwdmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PySSL_BEGIN_ALLOW_THREADS_S
  - PySSL_END_ALLOW_THREADS_S
  - _PySSLFixErrno
  - X509_NAME_ENTRY_set
  - COMP_get_type
  - SSL_CTX_get_default_passwd_cb
  - SSL_CTX_get_default_passwd_cb_userdata
  - X509_OBJECT_get_type
  - X509_OBJECT_get0_X509
  - BIO_up_ref
  - X509_STORE_get0_objects
  - SSL_SESSION_has_ticket
  - SSL_SESSION_get_ticket_lifetime_hint
  - _PySSL_errno
  - PySSLSocket_Check
  - PySSLMemoryBIO_Check
  - PySSLSession_Check
  - ERRSTR1
  - ERRSTR
  - GET_SOCKET
  - GET_SOCKET_TIMEOUT
  - SSLError_str
  - fill_and_set_sslerror
  - PySSL_ChainExceptions
  - PySSL_SetError
  - _setSSLError
  - _ssl_configure_hostname
  - newPySSLSocket
  - _ssl__SSLSocket_do_handshake_impl
  - _asn1obj2py
  - _create_tuple_for_attribute
  - _create_tuple_for_X509_NAME
  - _get_peer_alt_names
  - _get_aia_uri
  - _get_crl_dp
  - _decode_certificate
  - _certificate_to_der
  - _ssl__test_decode_cert_impl
  - _ssl__SSLSocket_getpeercert_impl
  - cipher_to_tuple
  - cipher_to_dict
  - _ssl__SSLSocket_shared_ciphers_impl
  - _ssl__SSLSocket_cipher_impl
  - _ssl__SSLSocket_version_impl
  - _ssl__SSLSocket_selected_npn_protocol_impl
  - _ssl__SSLSocket_selected_alpn_protocol_impl
  - _ssl__SSLSocket_compression_impl
  - PySSL_get_context
  - PySSL_set_context
  - PySSL_get_server_side
  - PySSL_get_server_hostname
  - PySSL_get_owner
  - PySSL_set_owner
  - PySSL_traverse
  - PySSL_clear
  - PySSL_dealloc
  - PySSL_select
  - _ssl__SSLSocket_write_impl
  - _ssl__SSLSocket_pending_impl
  - _ssl__SSLSocket_read_impl
  - _ssl__SSLSocket_shutdown_impl
  - _ssl__SSLSocket_get_channel_binding_impl
  - _ssl__SSLSocket_verify_client_post_handshake_impl
  - _ssl_session_dup
  - PySSL_get_session
  - PySSL_set_session
  - PySSL_get_session_reused
  - _set_verify_mode
  - _ssl__SSLContext_impl
  - context_traverse
  - context_clear
  - context_dealloc
  - _ssl__SSLContext_set_ciphers_impl
  - _ssl__SSLContext_get_ciphers_impl
  - do_protocol_selection
  - _advertiseNPN_cb
  - _selectNPN_cb
  - _ssl__SSLContext__set_npn_protocols_impl
  - _selectALPN_cb
  - _ssl__SSLContext__set_alpn_protocols_impl
  - get_verify_mode
  - set_verify_mode
  - get_verify_flags
  - set_verify_flags
  - set_min_max_proto_version
  - get_minimum_version
  - set_minimum_version
  - get_maximum_version
  - set_maximum_version
  - get_num_tickets
  - set_num_tickets
  - get_options
  - set_options
  - get_host_flags
  - set_host_flags
  - get_check_hostname
  - set_check_hostname
  - get_post_handshake_auth
  - set_post_handshake_auth
  - get_protocol
  - _pwinfo_set
  - _password_callback
  - _ssl__SSLContext_load_cert_chain_impl
  - _add_ca_certs
  - _ssl__SSLContext_load_verify_locations_impl
  - _ssl__SSLContext_load_dh_params
  - _ssl__SSLContext__wrap_socket_impl
  - _ssl__SSLContext__wrap_bio_impl
  - _ssl__SSLContext_session_stats_impl
  - ADD_STATS
  - _ssl__SSLContext_set_default_verify_paths_impl
  - _ssl__SSLContext_set_ecdh_curve
  - _servername_callback
  - get_sni_callback
  - set_sni_callback
  - _ssl__SSLContext_cert_store_stats_impl
  - _ssl__SSLContext_get_ca_certs_impl
  - _ssl_MemoryBIO_impl
  - memory_bio_dealloc
  - memory_bio_get_pending
  - memory_bio_get_eof
  - _ssl_MemoryBIO_read_impl
  - _ssl_MemoryBIO_write_impl
  - _ssl_MemoryBIO_write_eof_impl
  - PySSLSession_dealloc
  - PySSLSession_richcompare
  - PySSLSession_traverse
  - PySSLSession_clear
  - PySSLSession_get_time
  - PySSLSession_get_timeout
  - PySSLSession_get_ticket_lifetime_hint
  - PySSLSession_get_session_id
  - PySSLSession_get_has_ticket
  - _ssl_RAND_add_impl
  - PySSL_RAND
  - _ssl_RAND_bytes_impl
  - _ssl_RAND_pseudo_bytes_impl
  - _ssl_RAND_status_impl
  - _ssl_RAND_egd_impl
  - _ssl_get_default_verify_paths_impl
  - CONVERT
  - asn1obj2py
  - _ssl_txt2obj_impl
  - _ssl_nid2obj_impl
  - certEncodingType
  - parseKeyUsage
  - ssl_collect_certificates
  - _ssl_enum_certificates_impl
  - _ssl_enum_crls_impl
  - _ssl_threadid_callback
  - _ssl_thread_id_function
  - _ssl_thread_locking_function
  - _setup_ssl_threads
  - parse_openssl_version
  - PyInit__ssl
  - ADD_AD_CONSTANT
  - addbool
  source_file: /src/Python-3.8.3/Modules/_ssl.c
  types:
    enum:
    - enumerators:
      - name: PY_SSL_ERROR_NONE
      - name: PY_SSL_ERROR_WANT_X509_LOOKUP
      - name: PY_SSL_ERROR_WANT_WRITE
      - name: PY_SSL_ERROR_WANT_READ
      - name: PY_SSL_ERROR_SSL
      - name: PY_SSL_ERROR_SYSCALL
      - name: PY_SSL_ERROR_ZERO_RETURN
      - name: PY_SSL_ERROR_WANT_CONNECT
      - name: PY_SSL_ERROR_EOF
      - name: PY_SSL_ERROR_NO_SOCKET
      - name: PY_SSL_ERROR_INVALID_ERROR_CODE
      item_type: enum
      name: py_ssl_error
      pos:
        line_end: 309
        line_start: 295
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - enumerators:
      - name: PY_SSL_CLIENT
      - name: PY_SSL_SERVER
      item_type: enum
      name: py_ssl_server_or_client
      pos:
        line_end: 314
        line_start: 311
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - enumerators:
      - name: PY_SSL_CERT_NONE
      - name: PY_SSL_CERT_REQUIRED
      - name: PY_SSL_CERT_OPTIONAL
      item_type: enum
      name: py_ssl_cert_requirements
      pos:
        line_end: 320
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - enumerators:
      - name: PY_SSL_VERSION_SSL2
      - name: PY_SSL_VERSION_TLS
      - name: PY_SSL_VERSION_TLS1
      - name: PY_SSL_VERSION_TLS1_1
      - name: PY_SSL_VERSION_SSL3
        value: '1'
      - name: PY_SSL_VERSION_TLS1_2
      - name: PY_SSL_VERSION_TLS1
      - name: PY_SSL_VERSION_TLS_CLIENT
        value: '0x10'
      - name: PY_SSL_VERSION_TLS_SERVER
      item_type: enum
      name: py_ssl_version
      pos:
        line_end: 335
        line_start: 322
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - enumerators:
      - name: PY_PROTO_MINIMUM_SUPPORTED
        value: '-2'
      - name: PY_PROTO_TLSv1_2
        value: TLS1_2_VERSION
      - name: PY_PROTO_TLSv1_1
        value: TLS1_1_VERSION
      - name: PY_PROTO_SSLv3
        value: SSL3_VERSION
      - name: PY_PROTO_TLSv1
        value: TLS1_VERSION
      - name: PY_PROTO_TLSv1_3
        value: TLS1_3_VERSION
      - name: PY_PROTO_TLSv1_3
        value: '0x304'
      - name: PY_PROTO_MAXIMUM_SUPPORTED
        value: '-1'
      - name: PY_PROTO_MINIMUM_AVAILABLE
        value: PY_PROTO_SSLv3
      - name: PY_PROTO_MINIMUM_AVAILABLE
        value: PY_PROTO_TLSv1
      - name: PY_PROTO_MAXIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_3
      - name: PY_PROTO_MAXIMUM_AVAILABLE
        value: PY_PROTO_TLSv1
      - name: PY_PROTO_MINIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_3
      - name: PY_PROTO_MAXIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_1
      - name: PY_PROTO_MAXIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_2
      - name: PY_PROTO_MINIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_2
      - name: PY_PROTO_MAXIMUM_AVAILABLE
        value: PY_PROTO_SSLv3
      - name: PY_PROTO_MINIMUM_AVAILABLE
        value: PY_PROTO_TLSv1_1
      item_type: enum
      name: py_proto_version
      pos:
        line_end: 381
        line_start: 337
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    preproc_defs:
    - item_type: preproc_def
      name: PySSL_BEGIN_ALLOW_THREADS
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: "{ \\\n            PyThreadState *_save = NULL;  \\\n            PySSL_BEGIN_ALLOW_THREADS_S(_save);"
    - item_type: preproc_def
      name: PySSL_BLOCK_THREADS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: PySSL_END_ALLOW_THREADS_S(_save);
    - item_type: preproc_def
      name: PySSL_UNBLOCK_THREADS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: PySSL_BEGIN_ALLOW_THREADS_S(_save);
    - item_type: preproc_def
      name: PySSL_END_ALLOW_THREADS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: PySSL_END_ALLOW_THREADS_S(_save); }
    - item_type: preproc_def
      name: _PySSL_FIX_ERRNO
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: _PySSLFixErrno()
    - item_type: preproc_def
      name: OPENSSL_VERSION_1_1
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_OPENSSL_1_1_API
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_OPENSSL_1_1_API
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_TLSv1_2
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_TLSv1_2
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_SNI
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SNI
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_ALPN
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALPN
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_NPN
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_NPN
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_NPN
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_NPN
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_OPENSSL_KEYLOG
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INVALID_SOCKET
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: TLS_method
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: SSLv23_method
    - item_type: preproc_def
      name: TLS_client_method
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: SSLv23_client_method
    - item_type: preproc_def
      name: TLS_server_method
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: SSLv23_server_method
    - item_type: preproc_def
      name: PY_SSL_DEFAULT_CIPHERS
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_SSL_DEFAULT_CIPHER_STRING
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '"DEFAULT:!aNULL:!eNULL:!MD5:!3DES:!DES:!RC4:!IDEA:!SEED:!aDSS:!SRP:!PSK"'
    - item_type: preproc_def
      name: PY_SSL_DEFAULT_CIPHER_STRING
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: SSL_DEFAULT_CIPHER_LIST
    - item_type: preproc_def
      name: X509_NAME_MAXLEN
      pos:
        line_end: 392
        line_start: 391
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '256'
    - item_type: preproc_def
      name: PySSL_CB_MAXLEN
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '128'
    - item_type: preproc_def
      name: SID_CTX
      pos:
        line_end: 3235
        line_start: 3234
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type_or_value: '"Python"'
    structs:
    - fields:
      - name: '*mnemonic'
        type: char
      - name: library
        type: int
      item_type: struct
      name: py_ssl_error_code
      pos:
        line_end: 94
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*library'
        type: char
      - name: code
        type: int
      item_type: struct
      name: py_ssl_library_code
      pos:
        line_end: 98
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*ctx'
        type: PyObject_HEAD
      - name: check_hostname
        type: int
      - name: hostflags
        type: unsigned int
      - name: protocol
        type: int
      - name: '*msg_cb'
        type: PyObject
      item_type: struct
      name: PySSLContext
      pos:
        line_end: 435
        line_start: 407
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: ssl
        type: int
      - name: c
        type: int
      item_type: struct
      name: _PySSLError
      pos:
        line_end: 443
        line_start: 437
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*Socket'
        type: PyObject_HEAD
      - name: '*ssl'
        type: SSL
      - name: '*ctx'
        type: PySSLContext
      - name: shutdown_seen_zero
        type: char
      - name: socket_type
        type: enum py_ssl_server_or_client
      - name: '*owner'
        type: PyObject
      - name: '*server_hostname'
        type: PyObject
      - name: err
        type: _PySSLError
      - name: '*exc_type'
        type: PyObject
      - name: '*exc_value'
        type: PyObject
      - name: '*exc_tb'
        type: PyObject
      item_type: struct
      name: PySSLSocket
      pos:
        line_end: 462
        line_start: 445
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*bio'
        type: PyObject_HEAD
      - name: eof_written
        type: int
      item_type: struct
      name: PySSLMemoryBIO
      pos:
        line_end: 468
        line_start: 464
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*session'
        type: PyObject_HEAD
      - name: '*ctx'
        type: PySSLContext
      item_type: struct
      name: PySSLSession
      pos:
        line_end: 474
        line_start: 470
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    - fields:
      - name: '*thread_state'
        type: PyThreadState
      - name: '*callable'
        type: PyObject
      - name: '*password'
        type: char
      - name: size
        type: int
      - name: error
        type: int
      item_type: struct
      name: _PySSLPasswordInfo
      pos:
        line_end: 3833
        line_start: 3827
        source_file: /src/Python-3.8.3/Modules/_ssl.c
    typedefs:
    - item_type: typedef
      name: '*(__stdcall *errno_func)(void)'
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_ssl.c
      type: int
    union: []
- function_names:
  - CHECK_SIZE
  - _get_tcl_lib_path
  - Tkapp_Interp
  - DEBUG_REFCNT
  - Tkinter_Error
  - Sleep
  - WaitForMainloop
  - unicodeFromTclStringAndSize
  - unicodeFromTclString
  - unicodeFromTclObj
  - Split
  - SplitObj
  - Tcl_AppInit
  - Tkapp_New
  - if
  - Tkapp_ThreadSend
  - PyTclObject_Check
  - newPyTclObject
  - PyTclObject_dealloc
  - PyTclObject_string
  - PyTclObject_str
  - PyTclObject_repr
  - PyTclObject_richcompare
  - get_typename
  - CHECK_STRING_LENGTH
  - asBignumObj
  - AsObj
  - fromBoolean
  - fromWideIntObj
  - fromBignumObj
  - FromObj
  - Tkapp_CallDeallocArgs
  - Tkapp_CallArgs
  - Tkapp_UnicodeResult
  - Tkapp_ObjectResult
  - Tkapp_CallProc
  - Tkapp_Call
  - _tkinter_tkapp_eval_impl
  - _tkinter_tkapp_evalfile_impl
  - _tkinter_tkapp_record_impl
  - _tkinter_tkapp_adderrorinfo_impl
  - varname_converter
  - var_perform
  - var_proc
  - var_invoke
  - SetVar
  - Tkapp_GetVar
  - Tkapp_GlobalGetVar
  - UnsetVar
  - Tkapp_UnsetVar
  - Tkapp_GlobalUnsetVar
  - _tkinter_tkapp_getint
  - _tkinter_tkapp_getdouble
  - _tkinter_tkapp_getboolean
  - _tkinter_tkapp_exprstring_impl
  - _tkinter_tkapp_exprlong_impl
  - _tkinter_tkapp_exprdouble_impl
  - _tkinter_tkapp_exprboolean_impl
  - _tkinter_tkapp_splitlist
  - _tkinter_tkapp_split
  - PythonCmd_Error
  - PythonCmd
  - PythonCmdDelete
  - Tkapp_CommandProc
  - _tkinter_tkapp_createcommand_impl
  - _tkinter_tkapp_deletecommand_impl
  - NewFHCD
  - DeleteFHCD
  - FileHandler
  - _tkinter_tkapp_createfilehandler_impl
  - _tkinter_tkapp_deletefilehandler
  - _tkinter_tktimertoken_deletetimerhandler_impl
  - Tktt_New
  - Tktt_Dealloc
  - Tktt_Repr
  - TimerHandler
  - _tkinter_tkapp_createtimerhandler_impl
  - _tkinter_tkapp_mainloop_impl
  - _tkinter_tkapp_dooneevent_impl
  - _tkinter_tkapp_quit_impl
  - _tkinter_tkapp_interpaddr_impl
  - _tkinter_tkapp_loadtk_impl
  - Tkapp_WantObjects
  - _tkinter_tkapp_willdispatch_impl
  - Tkapp_Dealloc
  - _bump
  - _flatten1
  - _tkinter__flatten
  - _tkinter_create_impl
  - _tkinter_setbusywaitinterval_impl
  - _tkinter_getbusywaitinterval_impl
  - MyFileProc
  - EventHook
  - EnableEventHook
  - DisableEventHook
  - PyInit__tkinter
  source_file: /src/Python-3.8.3/Modules/_tkinter.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TCL_UNIX_FD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: (! TCL_WIN_SOCKET)
    - item_type: preproc_def
      name: TCL_UNIX_FD
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FHANDLETYPE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: TCL_WIN_SOCKET
    - item_type: preproc_def
      name: FHANDLETYPE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: TCL_UNIX_FD
    - item_type: preproc_def
      name: USE_TCL_UNICODE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_TCL_UNICODE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '0'
    - item_type: preproc_def
      name: NATIVE_BYTEORDER
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: NATIVE_BYTEORDER
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '1'
    - item_type: preproc_def
      name: tcl_tstate
      pos:
        line_end: 245
        line_start: 243
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: (*(PyThreadState**)Tcl_GetThreadData(&state_key, sizeof(PyThreadState*)))
    - item_type: preproc_def
      name: ENTER_TCL
      pos:
        line_end: 252
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: "{ PyThreadState *tstate = PyThreadState_Get(); Py_BEGIN_ALLOW_THREADS
        \\\n        if(tcl_lock)PyThread_acquire_lock(tcl_lock, 1); tcl_tstate = tstate;"
    - item_type: preproc_def
      name: LEAVE_TCL
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: "tcl_tstate = NULL; \\\n    if(tcl_lock)PyThread_release_lock(tcl_lock);
        Py_END_ALLOW_THREADS}"
    - item_type: preproc_def
      name: ENTER_OVERLAP
      pos:
        line_end: 259
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: Py_END_ALLOW_THREADS
    - item_type: preproc_def
      name: LEAVE_OVERLAP_TCL
      pos:
        line_end: 262
        line_start: 260
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: tcl_tstate = NULL; if(tcl_lock)PyThread_release_lock(tcl_lock);
        }
    - item_type: preproc_def
      name: ENTER_PYTHON
      pos:
        line_end: 267
        line_start: 263
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: "{ PyThreadState *tstate = tcl_tstate; tcl_tstate = NULL; \\\n
        \       if(tcl_lock) \\\n          PyThread_release_lock(tcl_lock); PyEval_RestoreThread((tstate));
        }"
    - item_type: preproc_def
      name: LEAVE_PYTHON
      pos:
        line_end: 271
        line_start: 268
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: "{ PyThreadState *tstate = PyEval_SaveThread(); \\\n        if(tcl_lock)PyThread_acquire_lock(tcl_lock,
        1); tcl_tstate = tstate; }"
    - item_type: preproc_def
      name: CHECK_TCL_APPARTMENT
      pos:
        line_end: 279
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: "if (((TkappObject *)self)->threaded && \\\n        ((TkappObject
        *)self)->thread_id != Tcl_GetCurrentThread()) { \\\n        PyErr_SetString(PyExc_RuntimeError,
        \\\n                        \"Calling Tcl from different apartment\"); \\\n
        \       return 0; \\\n    }"
    - item_type: preproc_def
      name: FREECAST
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: (char *)
    - item_type: preproc_def
      name: ARGSZ
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*interp'
        type: PyObject_HEAD
      - name: wantobjects
        type: int
      - name: threaded
        type: int
      - name: thread_id
        type: Tcl_ThreadId
      - name: dispatching
        type: int
      - name: '*OldBooleanType'
        type: Tcl_ObjType
      - name: '*BooleanType'
        type: Tcl_ObjType
      - name: '*ByteArrayType'
        type: Tcl_ObjType
      - name: '*DoubleType'
        type: Tcl_ObjType
      - name: '*IntType'
        type: Tcl_ObjType
      - name: '*WideIntType'
        type: Tcl_ObjType
      - name: '*BignumType'
        type: Tcl_ObjType
      - name: '*ListType'
        type: Tcl_ObjType
      - name: '*ProcBodyType'
        type: Tcl_ObjType
      - name: '*StringType'
        type: Tcl_ObjType
      item_type: struct
      name: TkappObject
      pos:
        line_end: 307
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: '*value'
        type: PyObject_HEAD
      - name: '*string'
        type: PyObject
      item_type: struct
      name: PyTclObject
      pos:
        line_end: 832
        line_start: 828
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: ev
        type: Tcl_Event
      - name: '*self'
        type: TkappObject
      - name: '*args'
        type: PyObject
      - name: flags
        type: int
      - name: '**res'
        type: PyObject
      - name: '**exc_type'
        type: PyObject
      - name: '*done'
        type: Tcl_Condition
      item_type: struct
      name: Tkapp_CallEvent
      pos:
        line_end: 1327
        line_start: 1319
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: ev
        type: Tcl_Event
      - name: '*self'
        type: TkappObject
      - name: '*args'
        type: PyObject
      - name: flags
        type: int
      - name: func
        type: EventFunc
      - name: '**res'
        type: PyObject
      - name: '**exc_type'
        type: PyObject
      - name: '**exc_val'
        type: PyObject
      - name: '*cond'
        type: Tcl_Condition
      item_type: struct
      name: VarEvent
      pos:
        line_end: 1684
        line_start: 1674
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: '*self'
        type: PyObject
      - name: '*func'
        type: PyObject
      item_type: struct
      name: PythonCmd_ClientData
      pos:
        line_end: 2354
        line_start: 2351
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: ev
        type: Tcl_Event
      - name: '* interp'
        type: Tcl_Interp
      - name: '*name'
        type: char
      - name: create
        type: int
      - name: '*status'
        type: int
      - name: '*data'
        type: ClientData
      - name: '*done'
        type: Tcl_Condition
      item_type: struct
      name: CommandEvent
      pos:
        line_end: 2437
        line_start: 2429
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: '*func'
        type: PyObject
      - name: '*file'
        type: PyObject
      - name: id
        type: int
      - name: '*next'
        type: struct _fhcdata
      item_type: struct
      name: _fhcdata
      pos:
        line_end: 2582
        line_start: 2577
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: Tcl_TimerToken
        type: PyObject_HEAD
      - name: '*func'
        type: PyObject
      item_type: struct
      name: TkttObject
      pos:
        line_end: 2718
        line_start: 2714
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    - fields:
      - name: '* tuple'
        type: PyObject
      - name: size
        type: Py_ssize_t
      - name: maxsize
        type: Py_ssize_t
      item_type: struct
      name: FlattenContext
      pos:
        line_end: 3057
        line_start: 3053
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
    typedefs:
    - item_type: typedef
      name: '*ThreadSpecificData'
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type: PyThreadState
    - item_type: typedef
      name: '* (*EventFunc)(TkappObject *, PyObject *, int)'
      pos:
        line_end: 1670
        line_start: 1670
        source_file: /src/Python-3.8.3/Modules/_tkinter.c
      type: PyObject
    union: []
- function_names:
  - TESTNAME
  source_file: /src/Python-3.8.3/Modules/testcapi_long.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/tkinter.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TK_HEX_VERSION
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/tkinter.h
      type_or_value: "((TK_MAJOR_VERSION << 24) | \\\n                        (TK_MINOR_VERSION
        << 16) | \\\n                        (TK_RELEASE_LEVEL << 8) | \\\n                        (TK_RELEASE_SERIAL
        << 0))"
    - item_type: preproc_def
      name: TKINTER_LOADTK_ERRMSG
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/tkinter.h
      type_or_value: '"Calling Tk_Init again after a previous call failed might deadlock"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _codecs_register
  - _codecs_lookup_impl
  - _codecs_encode_impl
  - _codecs_decode_impl
  - _codecs__forget_codec_impl
  - codec_tuple
  - _codecs_escape_decode_impl
  - _codecs_escape_encode_impl
  - _codecs_utf_7_decode_impl
  - _codecs_utf_8_decode_impl
  - _codecs_utf_16_decode_impl
  - _codecs_utf_16_le_decode_impl
  - _codecs_utf_16_be_decode_impl
  - _codecs_utf_16_ex_decode_impl
  - _codecs_utf_32_decode_impl
  - _codecs_utf_32_le_decode_impl
  - _codecs_utf_32_be_decode_impl
  - _codecs_utf_32_ex_decode_impl
  - _codecs_unicode_escape_decode_impl
  - _codecs_raw_unicode_escape_decode_impl
  - _codecs_latin_1_decode_impl
  - _codecs_ascii_decode_impl
  - _codecs_charmap_decode_impl
  - _codecs_mbcs_decode_impl
  - _codecs_oem_decode_impl
  - _codecs_code_page_decode_impl
  - _codecs_readbuffer_encode_impl
  - _codecs_utf_7_encode_impl
  - _codecs_utf_8_encode_impl
  - _codecs_utf_16_encode_impl
  - _codecs_utf_16_le_encode_impl
  - _codecs_utf_16_be_encode_impl
  - _codecs_utf_32_encode_impl
  - _codecs_utf_32_le_encode_impl
  - _codecs_utf_32_be_encode_impl
  - _codecs_unicode_escape_encode_impl
  - _codecs_raw_unicode_escape_encode_impl
  - _codecs_latin_1_encode_impl
  - _codecs_ascii_encode_impl
  - _codecs_charmap_encode_impl
  - _codecs_charmap_build_impl
  - _codecs_mbcs_encode_impl
  - _codecs_oem_encode_impl
  - _codecs_code_page_encode_impl
  - _codecs_register_error_impl
  - _codecs_lookup_error_impl
  - PyInit__codecs
  source_file: /src/Python-3.8.3/Modules/_codecsmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _operator_truth_impl
  - _operator_add_impl
  - _operator_sub_impl
  - _operator_mul_impl
  - _operator_matmul_impl
  - _operator_floordiv_impl
  - _operator_truediv_impl
  - _operator_mod_impl
  - _operator_neg
  - _operator_pos
  - _operator_abs
  - _operator_inv
  - _operator_invert
  - _operator_lshift_impl
  - _operator_rshift_impl
  - _operator_not__impl
  - _operator_and__impl
  - _operator_xor_impl
  - _operator_or__impl
  - _operator_iadd_impl
  - _operator_isub_impl
  - _operator_imul_impl
  - _operator_imatmul_impl
  - _operator_ifloordiv_impl
  - _operator_itruediv_impl
  - _operator_imod_impl
  - _operator_ilshift_impl
  - _operator_irshift_impl
  - _operator_iand_impl
  - _operator_ixor_impl
  - _operator_ior_impl
  - _operator_concat_impl
  - _operator_iconcat_impl
  - _operator_contains_impl
  - _operator_indexOf_impl
  - _operator_countOf_impl
  - _operator_getitem_impl
  - _operator_setitem_impl
  - _operator_delitem_impl
  - _operator_eq_impl
  - _operator_ne_impl
  - _operator_lt_impl
  - _operator_le_impl
  - _operator_gt_impl
  - _operator_ge_impl
  - _operator_pow_impl
  - _operator_ipow_impl
  - _operator_index
  - _operator_is__impl
  - _operator_is_not_impl
  - _tscmp
  - _operator_length_hint_impl
  - _operator__compare_digest_impl
  - itemgetter_new
  - itemgetter_dealloc
  - itemgetter_traverse
  - itemgetter_call
  - itemgetter_repr
  - itemgetter_reduce
  - attrgetter_new
  - attrgetter_dealloc
  - attrgetter_traverse
  - dotted_getattr
  - attrgetter_call
  - dotjoinattr
  - attrgetter_args
  - attrgetter_repr
  - attrgetter_reduce
  - methodcaller_new
  - methodcaller_dealloc
  - methodcaller_traverse
  - methodcaller_call
  - methodcaller_repr
  - methodcaller_reduce
  - PyInit__operator
  source_file: /src/Python-3.8.3/Modules/_operator.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*item'
        type: PyObject
      - name: index
        type: Py_ssize_t
      item_type: struct
      name: itemgetterobject
      pos:
        line_end: 940
        line_start: 935
        source_file: /src/Python-3.8.3/Modules/_operator.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*attr'
        type: PyObject
      item_type: struct
      name: attrgetterobject
      pos:
        line_end: 1143
        line_start: 1139
        source_file: /src/Python-3.8.3/Modules/_operator.c
    - fields:
      - name: '*name'
        type: PyObject_HEAD
      - name: '*args'
        type: PyObject
      - name: '*kwds'
        type: PyObject
      item_type: struct
      name: methodcallerobject
      pos:
        line_end: 1489
        line_start: 1484
        source_file: /src/Python-3.8.3/Modules/_operator.c
    typedefs: []
    union: []
- function_names:
  - get_change_3_2_0
  - normalization_3_2_0
  source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIDATA_VERSION
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '"12.1.0"'
    - item_type: preproc_def
      name: TOTAL_FIRST
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '376'
    - item_type: preproc_def
      name: TOTAL_LAST
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '62'
    - item_type: preproc_def
      name: SHIFT
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DECOMP_SHIFT
      pos:
        line_end: 4330
        line_start: 4329
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '7'
    - item_type: preproc_def
      name: COMP_SHIFT
      pos:
        line_end: 5514
        line_start: 5513
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
      type_or_value: '2'
    structs:
    - fields:
      - name: start
        type: int
      - name: count
        type: short
      item_type: struct
      name: reindex
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/Python-3.8.3/Modules/unicodedata_db.h
    typedefs: []
    union: []
- function_names:
  - LOCAL
  - LOCAL
  - TRACE
  - SRE_IS_DIGIT
  - SRE_IS_SPACE
  - SRE_IS_LINEBREAK
  - SRE_IS_WORD
  - sre_lower_ascii
  - SRE_LOC_IS_ALNUM
  - SRE_LOC_IS_WORD
  - sre_lower_locale
  - sre_upper_locale
  - SRE_UNI_IS_DIGIT
  - SRE_UNI_IS_SPACE
  - SRE_UNI_IS_LINEBREAK
  - SRE_UNI_IS_ALNUM
  - SRE_UNI_IS_WORD
  - sre_lower_unicode
  - sre_upper_unicode
  - sre_category
  - char_loc_ignore
  - data_stack_dealloc
  - data_stack_grow
  - SRE
  - SRE
  - SRE
  - _sre_getcodesize_impl
  - _sre_ascii_iscased_impl
  - _sre_unicode_iscased_impl
  - _sre_ascii_tolower_impl
  - _sre_unicode_tolower_impl
  - state_reset
  - getstring
  - state_init
  - state_fini
  - STATE_OFFSET
  - getslice
  - state_getslice
  - pattern_error
  - pattern_dealloc
  - sre_match
  - sre_search
  - _sre_SRE_Pattern_match_impl
  - _sre_SRE_Pattern_fullmatch_impl
  - _sre_SRE_Pattern_search_impl
  - call
  - _sre_SRE_Pattern_findall_impl
  - _sre_SRE_Pattern_finditer_impl
  - _sre_SRE_Pattern_scanner_impl
  - _sre_SRE_Pattern_split_impl
  - pattern_subx
  - _sre_SRE_Pattern_sub_impl
  - _sre_SRE_Pattern_subn_impl
  - _sre_SRE_Pattern___copy___impl
  - _sre_SRE_Pattern___deepcopy__
  - pattern_repr
  - pattern_groupindex
  - _sre_compile_impl
  - VTRACE
  - VTRACE
  - GET_SKIP_ADJ
  - _validate_charset
  - _validate_inner
  - _validate_outer
  - _validate
  - match_dealloc
  - match_getslice_by_index
  - match_getindex
  - match_getslice
  - _sre_SRE_Match_expand_impl
  - match_group
  - match_getitem
  - _sre_SRE_Match_groups_impl
  - _sre_SRE_Match_groupdict_impl
  - _sre_SRE_Match_start_impl
  - _sre_SRE_Match_end_impl
  - _pair
  - _sre_SRE_Match_span_impl
  - match_regs
  - _sre_SRE_Match___copy___impl
  - _sre_SRE_Match___deepcopy__
  - match_lastindex_get
  - match_lastgroup_get
  - match_regs_get
  - match_repr
  - pattern_new_match
  - scanner_dealloc
  - _sre_SRE_Scanner_match_impl
  - _sre_SRE_Scanner_search_impl
  - pattern_scanner
  - pattern_hash
  - pattern_richcompare
  - PAT_OFF
  - MATCH_OFF
  - SCAN_OFF
  - PyInit__sre
  source_file: /src/Python-3.8.3/Modules/_sre.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SRE_CODE_BITS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: (8 * sizeof(SRE_CODE))
    - item_type: preproc_def
      name: SRE_MODULE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '"sre"'
    - item_type: preproc_def
      name: SRE_PY_MODULE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '"re"'
    - item_type: preproc_def
      name: SRE_ERROR_ILLEGAL
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '-1 '
    - item_type: preproc_def
      name: SRE_ERROR_STATE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '-2 '
    - item_type: preproc_def
      name: SRE_ERROR_RECURSION_LIMIT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '-3 '
    - item_type: preproc_def
      name: SRE_ERROR_MEMORY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '-9 '
    - item_type: preproc_def
      name: SRE_ERROR_INTERRUPTED
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '-10 '
    - item_type: preproc_def
      name: SRE_CHAR
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: Py_UCS1
    - item_type: preproc_def
      name: SIZEOF_SRE_CHAR
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SRE_CHAR
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: Py_UCS2
    - item_type: preproc_def
      name: SIZEOF_SRE_CHAR
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SRE_CHAR
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: Py_UCS4
    - item_type: preproc_def
      name: SIZEOF_SRE_CHAR
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: '4'
    - item_type: preproc_def
      name: FAIL
      pos:
        line_end: 1445
        line_start: 1444
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: 'do { VTRACE(("FAIL: %d\n", __LINE__)); return 0; } while (0)'
    - item_type: preproc_def
      name: GET_OP
      pos:
        line_end: 1454
        line_start: 1447
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: "do {                                                \\\n        VTRACE((\"%p:
        \", code));                         \\\n        if (code >= end) FAIL;                          \\\n
        \       op = *code++;                                   \\\n        VTRACE((\"%lu
        (op)\\n\", (unsigned long)op));      \\\n    } while (0)"
    - item_type: preproc_def
      name: GET_ARG
      pos:
        line_end: 1461
        line_start: 1454
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: "do {                                                \\\n        VTRACE((\"%p=
        \", code));                         \\\n        if (code >= end) FAIL;                          \\\n
        \       arg = *code++;                                  \\\n        VTRACE((\"%lu
        (arg)\\n\", (unsigned long)arg));    \\\n    } while (0)"
    - item_type: preproc_def
      name: GET_SKIP
      pos:
        line_end: 1473
        line_start: 1472
        source_file: /src/Python-3.8.3/Modules/_sre.c
      type_or_value: GET_SKIP_ADJ(0)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: "flag_names[] = {\n        {\"re.TEMPLATE\", SRE_FLAG_TEMPLATE},\n        {\"re.IGNORECASE\",
        SRE_FLAG_IGNORECASE},\n        {\"re.LOCALE\", SRE_FLAG_LOCALE},\n        {\"re.MULTILINE\",
        SRE_FLAG_MULTILINE},\n        {\"re.DOTALL\", SRE_FLAG_DOTALL},\n        {\"re.UNICODE\",
        SRE_FLAG_UNICODE},\n        {\"re.VERBOSE\", SRE_FLAG_VERBOSE},\n        {\"re.DEBUG\",
        SRE_FLAG_DEBUG},\n        {\"re.ASCII\", SRE_FLAG_ASCII},\n    }"
      pos:
        line_end: 1229
        line_start: 1226
        source_file: /src/Python-3.8.3/Modules/_sre.c
    typedefs: []
    union: []
- function_names:
  - _Py_SLIST_ITEM_NEXT
  - _Py_SLIST_HEAD
  - _Py_HASHTABLE_ENTRY_PKEY
  - _Py_HASHTABLE_ENTRY_PDATA
  - _Py_HASHTABLE_READ_KEY
  - _Py_HASHTABLE_ENTRY_READ_KEY
  - _Py_HASHTABLE_ENTRY_READ_DATA
  - _Py_HASHTABLE_ENTRY_WRITE_DATA
  - _Py_HASHTABLE_SET
  - _Py_HASHTABLE_SET_NODATA
  - _Py_HASHTABLE_GET_ENTRY
  - _Py_HASHTABLE_GET
  - _Py_HASHTABLE_POP
  source_file: /src/Python-3.8.3/Modules/hashtable.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct _Py_slist_item_s
      item_type: struct
      name: _Py_slist_item_s
      pos:
        line_end: 9
        line_start: 7
        source_file: /src/Python-3.8.3/Modules/hashtable.h
    - fields:
      - name: '*head'
        type: _Py_slist_item_t
      item_type: struct
      name: _Py_slist_t
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/Python-3.8.3/Modules/hashtable.h
    - fields:
      - name: _Py_slist_item
        type: _Py_slist_item_t
      - name: key_hash
        type: Py_uhash_t
      item_type: struct
      name: _Py_hashtable_entry_t
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/hashtable.h
    - fields:
      - name: '* (*malloc) (size_t size)'
        type: void
      - name: (*free) (void *ptr)
        type: void
      item_type: struct
      name: _Py_hashtable_allocator_t
      pos:
        line_end: 86
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/hashtable.h
    - fields:
      - name: num_buckets
        type: size_t
      - name: entries
        type: size_t
      - name: '*buckets'
        type: _Py_slist_t
      - name: key_size
        type: size_t
      - name: data_size
        type: size_t
      - name: hash_func
        type: _Py_hashtable_hash_func
      - name: compare_func
        type: _Py_hashtable_compare_func
      - name: alloc
        type: _Py_hashtable_allocator_t
      item_type: struct
      name: _Py_hashtable_t
      pos:
        line_end: 101
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/hashtable.h
    typedefs:
    - item_type: typedef
      name: "(*_Py_hashtable_hash_func) (struct _Py_hashtable_t *ht,\n                                               const
        void *pkey)"
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/hashtable.h
      type: Py_uhash_t
    - item_type: typedef
      name: "(*_Py_hashtable_compare_func) (struct _Py_hashtable_t *ht,\n                                           const
        void *pkey,\n                                           const _Py_hashtable_entry_t
        *he)"
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/hashtable.h
      type: int
    - item_type: typedef
      name: "(*_Py_hashtable_foreach_func) (_Py_hashtable_t *ht,\n                                           _Py_hashtable_entry_t
        *entry,\n                                           void *arg)"
      pos:
        line_end: 137
        line_start: 135
        source_file: /src/Python-3.8.3/Modules/hashtable.h
      type: int
    union: []
- function_names:
  - PyInit__testimportmultiple
  - PyInit__testimportmultiple_foo
  - PyInit__testimportmultiple_bar
  source_file: /src/Python-3.8.3/Modules/_testimportmultiple.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _getrecord_ex
  - get_old_record
  - UCD_Check
  - new_previous_version
  - unicodedata_UCD_decimal_impl
  - unicodedata_UCD_digit_impl
  - unicodedata_UCD_numeric_impl
  - unicodedata_UCD_category_impl
  - unicodedata_UCD_bidirectional_impl
  - unicodedata_UCD_combining_impl
  - unicodedata_UCD_mirrored_impl
  - unicodedata_UCD_east_asian_width_impl
  - unicodedata_UCD_decomposition_impl
  - get_decomp_record
  - nfd_nfkd
  - find_nfc_index
  - nfc_nfkc
  - is_normalized_quickcheck
  - unicodedata_UCD_is_normalized_impl
  - unicodedata_UCD_normalize_impl
  - _gethash
  - is_unified_ideograph
  - IS_ALIAS
  - IS_NAMED_SEQ
  - _getucname
  - _cmpname
  - find_syllable
  - _check_alias_and_seq
  - _getcode
  - unicodedata_UCD_name_impl
  - unicodedata_UCD_lookup_impl
  - PyInit_unicodedata
  source_file: /src/Python-3.8.3/Modules/unicodedata.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SBase
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '0xAC00'
    - item_type: preproc_def
      name: LBase
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '0x1100'
    - item_type: preproc_def
      name: VBase
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '0x1161'
    - item_type: preproc_def
      name: TBase
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '0x11A7'
    - item_type: preproc_def
      name: LCount
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '19'
    - item_type: preproc_def
      name: VCount
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '21'
    - item_type: preproc_def
      name: TCount
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: '28'
    - item_type: preproc_def
      name: NCount
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: (VCount*TCount)
    - item_type: preproc_def
      name: SCount
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
      type_or_value: (LCount*NCount)
    structs:
    - fields:
      - name: category
        type: unsigned char
      - name: combining
        type: unsigned char
      - name: bidirectional
        type: unsigned char
      - name: mirrored
        type: unsigned char
      - name: east_asian_width
        type: unsigned char
      - name: normalization_quick_check
        type: unsigned char
      item_type: struct
      name: _PyUnicode_DatabaseRecord
      pos:
        line_end: 46
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    - fields:
      - name: bidir_changed
        type: unsigned char
      - name: category_changed
        type: unsigned char
      - name: decimal_changed
        type: unsigned char
      - name: mirrored_changed
        type: unsigned char
      - name: east_asian_width_changed
        type: unsigned char
      - name: numeric_changed
        type: double
      item_type: struct
      name: change_record
      pos:
        line_end: 56
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    - fields:
      - name: '*name'
        type: PyObject_HEAD
      - name: '* (*getrecord)(Py_UCS4)'
        type: change_record
      - name: (*normalization)(Py_UCS4)
        type: Py_UCS4
      item_type: struct
      name: previous_version
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/unicodedata.c
    typedefs: []
    union: []
- function_names:
  - Tcl_AppInit
  source_file: /src/Python-3.8.3/Modules/tkappinit.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PATH_LEN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/tkappinit.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASSIGN_DOUBLE
  - m_sinpi
  - lanczos_sum
  - m_inf
  - m_nan
  - m_tgamma
  - m_lgamma
  - m_erf_series
  - m_erfc_contfrac
  - m_erf
  - m_erfc
  - m_atan2
  - m_remainder
  - m_log
  - m_log2
  - m_log10
  - math_gcd_impl
  - is_error
  - math_1_to_whatever
  - math_1a
  - math_1
  - math_1_to_int
  - math_2
  - FUNC1
  - FUNC1A
  - FUNC2
  - math_ceil
  - math_floor
  - _fsum_realloc
  - math_fsum
  - bit_length
  - count_set_bits
  - _approximate_isqrt
  - math_isqrt
  - factorial_partial_product
  - factorial_odd_part
  - math_factorial
  - math_trunc
  - math_frexp_impl
  - math_ldexp_impl
  - math_modf_impl
  - loghelper
  - math_log_impl
  - math_log2
  - math_log10
  - math_fmod_impl
  - vector_norm
  - math_dist_impl
  - math_hypot
  - math_pow_impl
  - math_degrees_impl
  - math_radians_impl
  - math_isfinite_impl
  - math_isnan_impl
  - math_isinf_impl
  - math_isclose_impl
  - _check_long_mult_overflow
  - math_prod_impl
  - math_perm_impl
  - math_comb_impl
  - PyInit_math
  source_file: /src/Python-3.8.3/Modules/mathmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LANCZOS_N
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '13'
    - item_type: preproc_def
      name: NGAMMA_INTEGRAL
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '23'
    - item_type: preproc_def
      name: ERF_SERIES_CUTOFF
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '1.5'
    - item_type: preproc_def
      name: ERF_SERIES_TERMS
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '25'
    - item_type: preproc_def
      name: ERFC_CONTFRAC_CUTOFF
      pos:
        line_end: 473
        line_start: 472
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '30.0'
    - item_type: preproc_def
      name: ERFC_CONTFRAC_TERMS
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '50'
    - item_type: preproc_def
      name: NUM_PARTIALS
      pos:
        line_end: 1255
        line_start: 1254
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '32  '
    - item_type: preproc_def
      name: NUM_STACK_ELEMS
      pos:
        line_end: 2420
        line_start: 2419
        source_file: /src/Python-3.8.3/Modules/mathmodule.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECODE_LOCALE_ERR
  - PATHLEN_ERR
  - _Py_wstat
  - reduce
  - isfile
  - ismodule
  - isxfile
  - isdir
  - joinpath
  - safe_wcscpy
  - copy_absolute
  - absolutize
  - add_exe_suffix
  - search_for_prefix
  - calculate_prefix
  - calculate_set_prefix
  - calculate_pybuilddir
  - search_for_exec_prefix
  - calculate_exec_prefix
  - calculate_set_exec_prefix
  - calculate_program_full_path
  - calculate_argv0_path
  - calculate_read_pyenv
  - calculate_zip_path
  - calculate_module_search_path
  - calculate_init
  - calculate_free
  - calculate_path
  - _PyPathConfig_Calculate
  source_file: /src/Python-3.8.3/Modules/getpath.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LANDMARK
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/getpath.c
      type_or_value: L"os.py"
    - item_type: preproc_def
      name: EXE_SUFFIX
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/Python-3.8.3/Modules/getpath.c
      type_or_value: L".exe"
    structs:
    - fields:
      - name: '*path_env'
        type: wchar_t
      - name: '*pythonpath'
        type: wchar_t
      - name: '*prefix'
        type: wchar_t
      - name: '*exec_prefix'
        type: wchar_t
      - name: '*lib_python'
        type: wchar_t
      - name: prefix_found
        type: int
      - name: exec_prefix_found
        type: int
      - name: warnings
        type: int
      - name: '*pythonpath_env'
        type: wchar_t
      item_type: struct
      name: PyCalculatePath
      pos:
        line_end: 136
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/getpath.c
    typedefs: []
    union: []
- function_names:
  - node2tuple
  - PyST_Object_Check
  - parser_compare_nodes
  - parser_richcompare
  - parser_newstobject
  - parser_free
  - parser_sizeof
  - parser_st2tuple
  - parser_st2list
  - parser_compilest
  - parser_isexpr
  - parser_issuite
  - err_string
  - parser_do_parse
  - parser_expr
  - parser_suite
  - validate_node
  - parser_tuple2st
  - build_node_children
  - build_node_tree
  - parser__pickler
  - PyInit_parser
  source_file: /src/Python-3.8.3/Modules/parsermodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyST_EXPR
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PyST_SUITE
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PUBLIC_METHOD_TYPE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
      type_or_value: (METH_VARARGS|METH_KEYWORDS)
    structs:
    - fields:
      - name: '* st_node'
        type: PyObject_HEAD
      - name: st_type
        type: int
      - name: st_flags
        type: PyCompilerFlags
      item_type: struct
      name: PyST_Object
      pos:
        line_end: 189
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
    typedefs:
    - item_type: typedef
      name: '* (*SeqMaker) (Py_ssize_t length)'
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
      type: PyObject
    - item_type: typedef
      name: "(*SeqInserter) (PyObject* sequence,\n                            Py_ssize_t
        index,\n                            PyObject* element)"
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/parsermodule.c
      type: int
    union: []
- function_names:
  - _opcode_stack_effect_impl
  - PyInit__opcode
  source_file: /src/Python-3.8.3/Modules/_opcode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Py_GetBuildInfo
  - _Py_gitversion
  - _Py_gitidentifier
  source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: __DATE__
    - item_type: preproc_def
      name: DATE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: '"xx/xx/xx"'
    - item_type: preproc_def
      name: TIME
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: __TIME__
    - item_type: preproc_def
      name: TIME
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: '"xx:xx:xx"'
    - item_type: preproc_def
      name: GITVERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: '""'
    - item_type: preproc_def
      name: GITTAG
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: '""'
    - item_type: preproc_def
      name: GITBRANCH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/getbuildinfo.c
      type_or_value: '""'
    structs: []
    typedefs: []
    union: []
- function_names:
  - doubletime
  - resource_getrusage_impl
  - py2rlimit
  - rlimit2py
  - resource_getrlimit_impl
  - resource_setrlimit_impl
  - resource_prlimit_impl
  - resource_getpagesize_impl
  - PyInit_resource
  source_file: /src/Python-3.8.3/Modules/resource.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - remove_unusable_flags
  - _BT_L2_MEMB
  - _BT_RC_MEMB
  - _BT_HCI_MEMB
  - _BT_L2_MEMB
  - _BT_RC_MEMB
  - _BT_HCI_MEMB
  - _BT_SCO_MEMB
  - _BT_L2_MEMB
  - _BT_RC_MEMB
  - _BT_HCI_MEMB
  - _BT_SCO_MEMB
  - SAS2SA
  - IS_SELECTABLE
  - IS_SELECTABLE
  - select_error
  - CHECK_ERRNO
  - CHECK_ERRNO
  - SET_SOCK_ERROR
  - SET_SOCK_ERROR
  - set_error
  - set_herror
  - set_gaierror
  - internal_setblocking
  - internal_select
  - sock_call_ex
  - if
  - sock_call
  - init_sockobject
  - new_sockobject
  - setipaddr
  - RELEASE_GETADDRINFO_LOCK
  - RELEASE_GETADDRINFO_LOCK
  - make_ipv4_addr
  - make_ipv6_addr
  - setbdaddr
  - makebdaddr
  - makesockaddr
  - idna_cleanup
  - idna_converter
  - getsockaddrarg
  - getsockaddrlen
  - get_CMSG_LEN
  - get_CMSG_SPACE
  - cmsg_min_space
  - get_cmsg_data_space
  - get_cmsg_data_len
  - sock_accept_impl
  - sock_accept
  - sock_setblocking
  - sock_getblocking
  - socket_parse_timeout
  - sock_settimeout
  - sock_gettimeout
  - sock_setsockopt
  - sock_getsockopt
  - sock_bind
  - sock_close
  - sock_detach
  - sock_connect_impl
  - internal_connect
  - sock_connect
  - sock_connect_ex
  - sock_fileno
  - sock_getsockname
  - sock_getpeername
  - sock_listen
  - sock_recv_impl
  - sock_recv_guts
  - sock_recv
  - sock_recv_into
  - sock_recvfrom_impl
  - sock_recvfrom_guts
  - sock_recvfrom
  - sock_recvfrom_into
  - sock_recvmsg_impl
  - sock_recvmsg_guts
  - makeval_recvmsg
  - sock_recvmsg
  - makeval_recvmsg_into
  - sock_recvmsg_into
  - sock_send_impl
  - sock_send
  - sock_sendall
  - sock_sendto_impl
  - sock_sendto
  - sock_sendmsg_iovec
  - sock_sendmsg_impl
  - sock_sendmsg_afalg
  - sock_shutdown
  - sock_ioctl
  - sock_share
  - sock_dealloc
  - sock_repr
  - sock_new
  - if
  - socket_gethostname
  - socket_sethostname
  - socket_gethostbyname
  - sock_decode_hostname
  - gethost_common
  - socket_gethostbyname_ex
  - socket_gethostbyaddr
  - socket_getservbyname
  - socket_getservbyport
  - socket_getprotobyname
  - socket_close
  - socket_dup
  - socket_socketpair
  - socket_ntohs
  - socket_ntohl
  - socket_htons
  - socket_htonl
  - socket_inet_ntoa
  - socket_inet_pton
  - socket_inet_ntop
  - socket_getaddrinfo
  - RELEASE_GETADDRINFO_LOCK
  - socket_getnameinfo
  - RELEASE_GETADDRINFO_LOCK
  - socket_getdefaulttimeout
  - socket_setdefaulttimeout
  - socket_if_nameindex
  - socket_if_nametoindex
  - socket_if_indextoname
  - socket_CMSG_LEN
  - socket_CMSG_SPACE
  - os_cleanup
  - os_init
  - os_init
  - PyInit__socket
  source_file: /src/Python-3.8.3/Modules/socketmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAC_OS_X_VERSION_10_5
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1050'
    - item_type: preproc_def
      name: ACQUIRE_GETADDRINFO_LOCK
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: PyThread_acquire_lock(netdb_lock, 1);
    - item_type: preproc_def
      name: RELEASE_GETADDRINFO_LOCK
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: PyThread_release_lock(netdb_lock);
    - item_type: preproc_def
      name: _SGIAPI
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETADDRINFO
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETNAMEINFO
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: INET_ADDRSTRLEN
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '16'
    - item_type: preproc_def
      name: IPPROTO_ICMP
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ICMP
    - item_type: preproc_def
      name: IPPROTO_IGMP
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_IGMP
    - item_type: preproc_def
      name: IPPROTO_GGP
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_GGP
    - item_type: preproc_def
      name: IPPROTO_TCP
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_TCP
    - item_type: preproc_def
      name: IPPROTO_PUP
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_PUP
    - item_type: preproc_def
      name: IPPROTO_UDP
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_UDP
    - item_type: preproc_def
      name: IPPROTO_IDP
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_IDP
    - item_type: preproc_def
      name: IPPROTO_ND
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ND
    - item_type: preproc_def
      name: IPPROTO_RAW
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_RAW
    - item_type: preproc_def
      name: IPPROTO_MAX
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_MAX
    - item_type: preproc_def
      name: IPPROTO_HOPOPTS
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_HOPOPTS
    - item_type: preproc_def
      name: IPPROTO_IPV4
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_IPV4
    - item_type: preproc_def
      name: IPPROTO_IPV6
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_IPV6
    - item_type: preproc_def
      name: IPPROTO_ROUTING
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ROUTING
    - item_type: preproc_def
      name: IPPROTO_FRAGMENT
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_FRAGMENT
    - item_type: preproc_def
      name: IPPROTO_ESP
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ESP
    - item_type: preproc_def
      name: IPPROTO_AH
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_AH
    - item_type: preproc_def
      name: IPPROTO_ICMPV6
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ICMPV6
    - item_type: preproc_def
      name: IPPROTO_NONE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_NONE
    - item_type: preproc_def
      name: IPPROTO_DSTOPTS
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_DSTOPTS
    - item_type: preproc_def
      name: IPPROTO_EGP
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_EGP
    - item_type: preproc_def
      name: IPPROTO_PIM
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_PIM
    - item_type: preproc_def
      name: IPPROTO_ICLFXBM
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ICLFXBM  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_ST
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_ST  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_CBT
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_CBT  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_IGP
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_IGP  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_RDP
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_RDP  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_PGM
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_PGM  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_L2TP
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_L2TP  // WinSock2 only
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: IPPROTO_SCTP  // WinSock2 only
    - item_type: preproc_def
      name: O_NONBLOCK
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: O_NDELAY
    - item_type: preproc_def
      name: getaddrinfo
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: fake_getaddrinfo
    - item_type: preproc_def
      name: gai_strerror
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: fake_gai_strerror
    - item_type: preproc_def
      name: freeaddrinfo
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: fake_freeaddrinfo
    - item_type: preproc_def
      name: getnameinfo
      pos:
        line_end: 472
        line_start: 471
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: fake_getnameinfo
    - item_type: preproc_def
      name: SOCKETCLOSE
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: closesocket
    - item_type: preproc_def
      name: EAFNOSUPPORT
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: WSAEAFNOSUPPORT
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: _snprintf
    - item_type: preproc_def
      name: SOCKETCLOSE
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: close
    - item_type: preproc_def
      name: USE_BLUETOOTH
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BTPROTO_L2CAP
      pos:
        line_end: 493
        line_start: 492
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: BLUETOOTH_PROTO_L2CAP
    - item_type: preproc_def
      name: BTPROTO_RFCOMM
      pos:
        line_end: 494
        line_start: 493
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: BLUETOOTH_PROTO_RFCOMM
    - item_type: preproc_def
      name: BTPROTO_HCI
      pos:
        line_end: 495
        line_start: 494
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: BLUETOOTH_PROTO_HCI
    - item_type: preproc_def
      name: SOL_HCI
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: SOL_HCI_RAW
    - item_type: preproc_def
      name: HCI_FILTER
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: SO_HCI_RAW_FILTER
    - item_type: preproc_def
      name: sockaddr_l2
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_l2cap
    - item_type: preproc_def
      name: sockaddr_rc
      pos:
        line_end: 499
        line_start: 498
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_rfcomm
    - item_type: preproc_def
      name: hci_dev
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: hci_node
    - item_type: preproc_def
      name: sockaddr_l2
      pos:
        line_end: 505
        line_start: 504
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_bt
    - item_type: preproc_def
      name: sockaddr_rc
      pos:
        line_end: 506
        line_start: 505
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_bt
    - item_type: preproc_def
      name: sockaddr_hci
      pos:
        line_end: 507
        line_start: 506
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_bt
    - item_type: preproc_def
      name: sockaddr_sco
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: sockaddr_bt
    - item_type: preproc_def
      name: SOL_HCI
      pos:
        line_end: 509
        line_start: 508
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: BTPROTO_HCI
    - item_type: preproc_def
      name: HCI_DATA_DIR
      pos:
        line_end: 510
        line_start: 509
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: SO_HCI_DIRECTION
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '32'
    - item_type: preproc_def
      name: INVALID_SOCKET
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: INADDR_NONE
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: SOCKLEN_T_LIMIT
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '0x7fffffff'
    - item_type: preproc_def
      name: SOCKLEN_T_LIMIT
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: WSAEAGAIN
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: WSAEWOULDBLOCK
    - item_type: preproc_def
      name: GET_SOCK_ERROR
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: WSAGetLastError()
    - item_type: preproc_def
      name: SOCK_TIMEOUT_ERR
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: WSAEWOULDBLOCK
    - item_type: preproc_def
      name: SOCK_INPROGRESS_ERR
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: WSAEWOULDBLOCK
    - item_type: preproc_def
      name: GET_SOCK_ERROR
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: errno
    - item_type: preproc_def
      name: SOCK_TIMEOUT_ERR
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: EWOULDBLOCK
    - item_type: preproc_def
      name: SOCK_INPROGRESS_ERR
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: EINPROGRESS
    - item_type: preproc_def
      name: SUPPRESS_DEPRECATED_CALL
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '__pragma(warning(suppress: 4996))'
    - item_type: preproc_def
      name: WSA_FLAG_NO_HANDLE_INHERIT
      pos:
        line_end: 5205
        line_start: 5204
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
      type_or_value: '0x80'
    structs:
    - fields:
      - name: build_number
        type: DWORD
      - name: flag_name[20]
        type: char
      item_type: struct
      name: FlagRuntimeInfo
      pos:
        line_end: 355
        line_start: 352
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*obj'
        type: PyObject
      - name: '*buf'
        type: char
      item_type: struct
      name: maybe_idna
      pos:
        line_end: 1584
        line_start: 1581
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*addrlen'
        type: socklen_t
      - name: '*addrbuf'
        type: sock_addr_t
      - name: result
        type: SOCKET_T
      item_type: struct
      name: sock_accept
      pos:
        line_end: 2614
        line_start: 2610
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*cbuf'
        type: char
      - name: len
        type: Py_ssize_t
      - name: flags
        type: int
      - name: result
        type: Py_ssize_t
      item_type: struct
      name: sock_recv
      pos:
        line_end: 3399
        line_start: 3394
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '* cbuf'
        type: char
      - name: len
        type: Py_ssize_t
      - name: flags
        type: int
      - name: '*addrlen'
        type: socklen_t
      - name: '*addrbuf'
        type: sock_addr_t
      - name: result
        type: Py_ssize_t
      item_type: struct
      name: sock_recvfrom
      pos:
        line_end: 3567
        line_start: 3560
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*msg'
        type: struct msghdr
      - name: flags
        type: int
      - name: result
        type: ssize_t
      item_type: struct
      name: sock_recvmsg
      pos:
        line_end: 3749
        line_start: 3745
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: Py_ssize_t
      - name: flags
        type: int
      - name: result
        type: Py_ssize_t
      item_type: struct
      name: sock_send
      pos:
        line_end: 4075
        line_start: 4070
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*buf'
        type: char
      - name: len
        type: Py_ssize_t
      - name: flags
        type: int
      - name: addrlen
        type: int
      - name: '*addrbuf'
        type: sock_addr_t
      - name: result
        type: Py_ssize_t
      item_type: struct
      name: sock_sendto
      pos:
        line_end: 4214
        line_start: 4207
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: '*msg'
        type: struct msghdr
      - name: flags
        type: int
      - name: result
        type: ssize_t
      item_type: struct
      name: sock_sendmsg
      pos:
        line_end: 4308
        line_start: 4304
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    - fields:
      - name: level
        type: int
      - name: type
        type: int
      - name: data
        type: Py_buffer
      item_type: struct
      name: cmsginfo
      pos:
        line_end: 4389
        line_start: 4385
        source_file: /src/Python-3.8.3/Modules/socketmodule.c
    typedefs: []
    union: []
- function_names:
  - MARK_END
  - CHECK_END
  - CHECK_NOT_END
  - newblock
  - freeblock
  - deque_new
  - Py_SIZE
  - deque_pop
  - deque_popleft
  - NEEDS_TRIM
  - deque_append_internal
  - deque_append
  - deque_appendleft_internal
  - deque_appendleft
  - finalize_iterator
  - consume_iterator
  - deque_extend
  - deque_extendleft
  - deque_inplace_concat
  - deque_copy
  - deque_concat
  - deque_clear
  - Py_SIZE
  - deque_clearmethod
  - deque_inplace_repeat
  - deque_repeat
  - _deque_rotate
  - deque_rotate
  - deque_reverse
  - deque_count
  - deque_contains
  - deque_len
  - deque_index
  - deque_insert
  - deque_remove
  - valid_index
  - deque_item
  - deque_del_item
  - deque_ass_item
  - deque_dealloc
  - deque_traverse
  - deque_reduce
  - deque_repr
  - deque_richcompare
  - deque_init
  - deque_sizeof
  - deque_bool
  - deque_get_maxlen
  - deque_iter
  - dequeiter_traverse
  - dequeiter_dealloc
  - dequeiter_next
  - dequeiter_new
  - dequeiter_len
  - dequeiter_reduce
  - deque_reviter
  - dequereviter_next
  - dequereviter_new
  - defdict_missing
  - defdict_copy
  - defdict_reduce
  - defdict_dealloc
  - defdict_repr
  - defdict_traverse
  - defdict_tp_clear
  - defdict_init
  - DEFERRED_ADDRESS
  - _collections__count_elements_impl
  - tuplegetter_new_impl
  - tuplegetter_descr_get
  - tuplegetter_descr_set
  - tuplegetter_traverse
  - tuplegetter_clear
  - tuplegetter_dealloc
  - tuplegetter_reduce
  - PyInit__collections
  source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCKLEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
      type_or_value: '64'
    - item_type: preproc_def
      name: CENTER
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
      type_or_value: ((BLOCKLEN - 1) / 2)
    - item_type: preproc_def
      name: MAXFREEBLOCKS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*leftlink'
        type: struct BLOCK
      - name: '*data[BLOCKLEN]'
        type: PyObject
      - name: '*rightlink'
        type: struct BLOCK
      item_type: struct
      name: BLOCK
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - fields:
      - name: '*leftblock'
        type: PyObject_VAR_HEAD
      - name: '*rightblock'
        type: block
      - name: leftindex
        type: Py_ssize_t
      - name: rightindex
        type: Py_ssize_t
      - name: state
        type: size_t
      - name: maxlen
        type: Py_ssize_t
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: dequeobject
      pos:
        line_end: 94
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - fields:
      - name: '*b'
        type: PyObject_HEAD
      - name: index
        type: Py_ssize_t
      - name: '*deque'
        type: dequeobject
      - name: state
        type: size_t
      - name: counter
        type: Py_ssize_t
      item_type: struct
      name: dequeiterobject
      pos:
        line_end: 1673
        line_start: 1666
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - fields:
      - name: dict
        type: PyDictObject
      - name: '*default_factory'
        type: PyObject
      item_type: struct
      name: defdictobject
      pos:
        line_end: 1958
        line_start: 1955
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '* doc'
        type: PyObject
      item_type: struct
      name: _tuplegetterobject
      pos:
        line_end: 2357
        line_start: 2353
        source_file: /src/Python-3.8.3/Modules/_collectionsmodule.c
    typedefs: []
    union: []
- function_names:
  - raiseTestError
  - sizeof_error
  - test_config
  - CHECK_SIZEOF
  - CHECK_SIZEOF
  - IS_SIGNED
  - CHECK_SIGNNESS
  - test_lazy_hash_inheritance
  - UNBIND
  - raise_test_long_error
  - test_long_api
  - raise_test_longlong_error
  - test_longlong_api
  - test_long_and_overflow
  - test_long_long_and_overflow
  - test_long_as_size_t
  - test_long_as_unsigned_long_long_mask
  - test_long_as_double
  - test_L_code
  - return_none
  - raise_error
  - test_buildvalue_N_error
  - test_buildvalue_N
  - get_args
  - get_kwargs
  - getargs_tuple
  - getargs_keywords
  - getargs_keyword_only
  - getargs_positional_only_and_keywords
  - getargs_b
  - getargs_B
  - getargs_h
  - getargs_H
  - getargs_I
  - getargs_k
  - getargs_i
  - getargs_l
  - getargs_n
  - getargs_p
  - getargs_L
  - getargs_K
  - test_k_code
  - getargs_f
  - getargs_d
  - getargs_D
  - getargs_S
  - getargs_Y
  - getargs_U
  - getargs_c
  - getargs_C
  - getargs_s
  - getargs_s_star
  - getargs_s_hash
  - getargs_z
  - getargs_z_star
  - getargs_z_hash
  - getargs_y
  - getargs_y_star
  - getargs_y_hash
  - getargs_u
  - getargs_u_hash
  - getargs_Z
  - getargs_Z_hash
  - getargs_es
  - getargs_et
  - getargs_es_hash
  - getargs_et_hash
  - test_s_code
  - parse_tuple_and_keywords
  - test_u_code
  - test_Z_code
  - test_widechar
  - unicode_aswidechar
  - unicode_aswidecharstring
  - unicode_asucs4
  - unicode_findchar
  - unicode_copycharacters
  - unicode_encodedecimal
  - unicode_transformdecimaltoascii
  - unicode_legacy_string
  - getargs_w_star
  - test_empty_argparse
  - codec_incrementalencoder
  - codec_incrementaldecoder
  - test_long_numbits
  - test_null_strings
  - raise_exception
  - set_errno
  - test_set_exc_info
  - test_datetime_capi
  - MAKE_DATETIME_CHECK_FUNC
  - make_timezones_capi
  - get_timezones_offset_zero
  - get_timezone_utc_capi
  - get_date_fromdate
  - get_datetime_fromdateandtime
  - get_datetime_fromdateandtimeandfold
  - get_time_fromtime
  - get_time_fromtimeandfold
  - get_delta_fromdsu
  - get_date_fromtimestamp
  - get_datetime_fromtimestamp
  - _make_call
  - _make_call_from_thread
  - test_thread_state
  - _pending_callback
  - pending_threadfunc
  - test_string_from_format
  - CHECK_1_FORMAT
  - test_unicode_compare_with_ascii
  - test_with_docstring
  - test_string_to_double
  - CHECK_STRING
  - CHECK_INVALID
  - capsule_destructor
  - test_capsule
  - FAIL
  - FAIL
  - print_delta
  - profile_int
  - traceback_print
  - exception_print
  - raise_memoryerror
  - failing_converter
  - argparsing
  - code_newempty
  - make_exception_with_doc
  - make_memoryview_from_NULL_pointer
  - test_from_contiguous
  - test_pep3118_obsolete_write_locks
  - getbuffer_with_null_view
  - crash_no_current_thread
  - run_in_subinterp
  - check_time_rounding
  - test_pytime_object_to_time_t
  - test_pytime_object_to_timeval
  - test_pytime_object_to_timespec
  - slot_tp_del
  - with_tp_del
  - create_cfunction
  - _test_incref
  - test_xincref_doesnt_leak
  - test_incref_doesnt_leak
  - test_xdecref_doesnt_leak
  - test_decref_doesnt_leak
  - test_structseq_newtype_doesnt_leak
  - test_incref_decref_API
  - test_pymem_alloc0
  - hook_malloc
  - hook_calloc
  - hook_realloc
  - hook_free
  - test_setallocators
  - CHECK_CTX
  - test_pymem_setrawallocators
  - test_pymem_setallocators
  - test_pyobject_setallocators
  - fm_nomemory
  - hook_fmalloc
  - hook_fcalloc
  - hook_frealloc
  - hook_ffree
  - fm_setup_hooks
  - fm_remove_hooks
  - set_nomemory
  - remove_mem_hooks
  - temporary_c_thread
  - call_in_temporary_c_thread
  - pymarshal_write_long_to_file
  - pymarshal_write_object_to_file
  - pymarshal_read_short_from_file
  - pymarshal_read_long_from_file
  - pymarshal_read_last_object_from_file
  - pymarshal_read_object_from_file
  - return_null_without_error
  - return_result_with_error
  - test_pytime_fromseconds
  - test_pytime_fromsecondsobject
  - test_pytime_assecondsdouble
  - test_PyTime_AsTimeval
  - test_PyTime_AsTimespec
  - test_PyTime_AsMilliseconds
  - test_PyTime_AsMicroseconds
  - get_recursion_depth
  - pymem_buffer_overflow
  - pymem_api_misuse
  - pymem_malloc_without_gil
  - test_pymem_getallocatorsname
  - test_pyobject_is_freed
  - check_pyobject_null_is_freed
  - check_pyobject_uninitialized_is_freed
  - check_pyobject_forbidden_bytes_is_freed
  - check_pyobject_freed_is_freed
  - pyobject_malloc_without_gil
  - tracemalloc_track
  - tracemalloc_untrack
  - tracemalloc_get_traceback
  - dict_get_version
  - raise_SIGINT_then_send_None
  - fastcall_args
  - test_pyobject_fastcall
  - test_pyobject_fastcalldict
  - test_pyobject_vectorcall
  - test_pyvectorcall_call
  - stack_pointer
  - py_w_stopcode
  - get_mapping_keys
  - get_mapping_values
  - get_mapping_items
  - test_pythread_tss_key_state
  - CHECK_TSS_API
  - new_hamt
  - bad_get
  - encode_locale_ex
  - decode_locale_ex
  - negative_refcount
  - Py_REFCNT
  - test_write_unraisable_exc
  - pynumber_tobase
  - AddSym
  - test_structmembers_new
  - test_structmembers_free
  - matmulType_matmul
  - matmulType_imatmul
  - matmulType_dealloc
  - ipowType_ipow
  - awaitObject_new
  - awaitObject_dealloc
  - awaitObject_await
  - recurse_infinitely_error_init
  - MyList_new
  - MyList_dealloc
  - generic_alias_dealloc
  - generic_alias_mro_entries
  - generic_alias_new
  - generic_class_getitem
  - MethodDescriptor_vectorcall
  - MethodDescriptor_new
  - func_descr_get
  - nop_descr_get
  - call_return_args
  - MethodDescriptor2_new
  - heapctype_init
  - heapgcctype_dealloc
  - heapctype_dealloc
  - heapctypesubclass_init
  - heapctypesubclasswithfinalizer_init
  - heapctypesubclasswithfinalizer_finalize
  - PyInit__testcapi
  - test_buildvalue_issue38913
  source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TESTNAME
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: test_long_api_inner
    - item_type: preproc_def
      name: TYPENAME
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: long
    - item_type: preproc_def
      name: F_S_TO_PY
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_FromLong
    - item_type: preproc_def
      name: F_PY_TO_S
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_AsLong
    - item_type: preproc_def
      name: F_U_TO_PY
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_FromUnsignedLong
    - item_type: preproc_def
      name: F_PY_TO_U
      pos:
        line_end: 420
        line_start: 419
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_AsUnsignedLong
    - item_type: preproc_def
      name: TESTNAME
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: test_longlong_api_inner
    - item_type: preproc_def
      name: TYPENAME
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: long long
    - item_type: preproc_def
      name: F_S_TO_PY
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_FromLongLong
    - item_type: preproc_def
      name: F_PY_TO_S
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_AsLongLong
    - item_type: preproc_def
      name: F_U_TO_PY
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_FromUnsignedLongLong
    - item_type: preproc_def
      name: F_PY_TO_U
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: PyLong_AsUnsignedLongLong
    - item_type: preproc_def
      name: CHECK_DESTRUCTOR
      pos:
        line_end: 2879
        line_start: 2870
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
      type_or_value: "if (capsule_error) { \\\n        FAIL(capsule_error); \\\n    }
        \\\n    else if (!capsule_destructor_call_count) {          \\\n        FAIL(\"destructor
        not called!\"); \\\n    } \\\n    capsule_destructor_call_count = 0; \\\n"
    structs:
    - fields:
      - name: input
        type: long
      - name: nbits
        type: size_t
      - name: sign
        type: int
      item_type: struct
      name: triple
      pos:
        line_end: 2122
        line_start: 2118
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: '*name'
        type: char
      - name: '*module'
        type: char
      - name: '*attribute'
        type: char
      item_type: struct
      name: known_capsule
      pos:
        line_end: 2850
        line_start: 2846
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: alloc
        type: PyMemAllocatorEx
      - name: malloc_size
        type: size_t
      - name: calloc_nelem
        type: size_t
      - name: calloc_elsize
        type: size_t
      - name: '*realloc_ptr'
        type: void
      - name: realloc_new_size
        type: size_t
      - name: '*free_ptr'
        type: void
      - name: '*ctx'
        type: void
      item_type: struct
      name: alloc_hook_t
      pos:
        line_end: 3664
        line_start: 3654
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: installed
        type: int
      - name: raw
        type: PyMemAllocatorEx
      - name: mem
        type: PyMemAllocatorEx
      - name: obj
        type: PyMemAllocatorEx
      item_type: struct
      name: FmHook
      pos:
        line_end: 3855
        line_start: 3850
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: start
        type: int
      - name: stop
        type: int
      - name: count
        type: Py_ssize_t
      item_type: struct
      name: FmData
      pos:
        line_end: 3861
        line_start: 3857
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: start_event
        type: PyThread_type_lock
      - name: exit_event
        type: PyThread_type_lock
      - name: '*callback'
        type: PyObject
      item_type: struct
      name: test_c_thread_t
      pos:
        line_end: 4032
        line_start: 4028
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: bool_member
        type: char
      - name: byte_member
        type: char
      - name: ubyte_member
        type: unsigned char
      - name: short_member
        type: short
      - name: ushort_member
        type: unsigned short
      - name: int_member
        type: int
      - name: uint_member
        type: unsigned int
      - name: long_member
        type: long
      - name: ulong_member
        type: unsigned long
      - name: pyssizet_member
        type: Py_ssize_t
      - name: float_member
        type: float
      - name: double_member
        type: double
      - name: inplace_member[6]
        type: char
      - name: longlong_member
        type: long long
      - name: ulonglong_member
        type: unsigned long long
      item_type: struct
      name: all_structmembers
      pos:
        line_end: 5346
        line_start: 5330
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: all_structmembers
        type: PyObject_HEAD
      item_type: struct
      name: test_structmembers
      pos:
        line_end: 5351
        line_start: 5348
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: '*ao_iterator'
        type: PyObject_HEAD
      item_type: struct
      name: awaitObject
      pos:
        line_end: 5600
        line_start: 5597
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: list
        type: PyListObject
      - name: deallocated
        type: int
      item_type: struct
      name: MyListObject
      pos:
        line_end: 5750
        line_start: 5747
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: '*item'
        type: PyObject_HEAD
      item_type: struct
      name: PyGenericAliasObject
      pos:
        line_end: 5819
        line_start: 5816
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: vectorcallfunc
        type: PyObject_HEAD
      item_type: struct
      name: MethodDescriptorObject
      pos:
        line_end: 5891
        line_start: 5888
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: base
        type: MethodDescriptorObject
      - name: vectorcall
        type: vectorcallfunc
      item_type: struct
      name: MethodDescriptor2Object
      pos:
        line_end: 5964
        line_start: 5961
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: value
        type: PyObject_HEAD
      item_type: struct
      name: HeapCTypeObject
      pos:
        line_end: 5992
        line_start: 5989
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    - fields:
      - name: base
        type: HeapCTypeObject
      - name: value2
        type: int
      item_type: struct
      name: HeapCTypeSubclassObject
      pos:
        line_end: 6066
        line_start: 6063
        source_file: /src/Python-3.8.3/Modules/_testcapimodule.c
    typedefs: []
    union: []
- function_names:
  - m_inf
  - c_infj
  - m_nan
  - c_nanj
  - special_type
  - SPECIAL_VALUE
  - cmath_acos_impl
  - cmath_acosh_impl
  - cmath_asin_impl
  - cmath_asinh_impl
  - cmath_atan_impl
  - c_atan2
  - cmath_atanh_impl
  - cmath_cos_impl
  - cmath_cosh_impl
  - cmath_exp_impl
  - c_log
  - cmath_log10_impl
  - cmath_sin_impl
  - cmath_sinh_impl
  - cmath_sqrt_impl
  - cmath_tan_impl
  - cmath_tanh_impl
  - cmath_log_impl
  - math_error
  - cmath_phase_impl
  - cmath_polar_impl
  - cmath_rect_impl
  - cmath_isfinite_impl
  - cmath_isnan_impl
  - cmath_isinf_impl
  - cmath_isclose_impl
  - PyInit_cmath
  - INIT_SPECIAL_VALUES
  - C
  source_file: /src/Python-3.8.3/Modules/cmathmodule.c
  types:
    enum:
    - enumerators:
      - name: ST_NINF
      - name: ST_POS
      - name: ST_PZERO
      - name: ST_NEG
      - name: ST_NZERO
      - name: ST_PINF
      - name: ST_NAN
      item_type: enum
      name: special_types
      pos:
        line_end: 154
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
    preproc_defs:
    - item_type: preproc_def
      name: M_LN2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: '(0.6931471805599453094) '
    - item_type: preproc_def
      name: M_LN10
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: '(2.302585092994045684) '
    - item_type: preproc_def
      name: CM_LARGE_DOUBLE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (DBL_MAX/4.)
    - item_type: preproc_def
      name: CM_SQRT_LARGE_DOUBLE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (sqrt(CM_LARGE_DOUBLE))
    - item_type: preproc_def
      name: CM_LOG_LARGE_DOUBLE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (log(CM_LARGE_DOUBLE))
    - item_type: preproc_def
      name: CM_SQRT_DBL_MIN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (sqrt(DBL_MIN))
    - item_type: preproc_def
      name: CM_SCALE_UP
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (2*(DBL_MANT_DIG/2) + 1)
    - item_type: preproc_def
      name: CM_SCALE_UP
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (4*DBL_MANT_DIG+1)
    - item_type: preproc_def
      name: CM_SCALE_DOWN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: (-(CM_SCALE_UP+1)/2)
    - item_type: preproc_def
      name: P
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: Py_MATH_PI
    - item_type: preproc_def
      name: P14
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: 0.25*Py_MATH_PI
    - item_type: preproc_def
      name: P12
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: 0.5*Py_MATH_PI
    - item_type: preproc_def
      name: P34
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: 0.75*Py_MATH_PI
    - item_type: preproc_def
      name: INF
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: Py_HUGE_VAL
    - item_type: preproc_def
      name: N
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: Py_NAN
    - item_type: preproc_def
      name: U
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Modules/cmathmodule.c
      type_or_value: '-9.5426319407711027e33 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_ATEXIT_STATE
  - atexit_delete_cb
  - atexit_cleanup
  - atexit_callfuncs
  - atexit_register
  - atexit_run_exitfuncs
  - atexit_clear
  - atexit_ncallbacks
  - atexit_m_traverse
  - atexit_m_clear
  - atexit_free
  - atexit_unregister
  - atexit_exec
  - PyInit_atexit
  source_file: /src/Python-3.8.3/Modules/atexitmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*func'
        type: PyObject
      - name: '*args'
        type: PyObject
      - name: '*kwargs'
        type: PyObject
      item_type: struct
      name: atexit_callback
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/atexitmodule.c
    - fields:
      - name: '**atexit_callbacks'
        type: atexit_callback
      - name: ncallbacks
        type: int
      - name: callback_len
        type: int
      item_type: struct
      name: atexitmodule_state
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/atexitmodule.c
    typedefs: []
    union: []
- function_names:
  - DEFERRED_ADDRESS
  - spamlist_getstate
  - spamlist_setstate
  - spamlist_specialmeth
  - spamlist_init
  - spamlist_state_get
  - spamdict_getstate
  - spamdict_setstate
  - spamdict_init
  - spam_bench
  - xxsubtype_exec
  - PyInit_xxsubtype
  source_file: /src/Python-3.8.3/Modules/xxsubtype.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: list
        type: PyListObject
      - name: state
        type: int
      item_type: struct
      name: spamlistobject
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/xxsubtype.c
    - fields:
      - name: dict
        type: PyDictObject
      - name: state
        type: int
      item_type: struct
      name: spamdictobject
      pos:
        line_end: 148
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/xxsubtype.c
    typedefs: []
    union: []
- function_names:
  - PyStruct_Check
  - PyStruct_CheckExact
  - get_pylong
  - get_long
  - get_ulong
  - get_longlong
  - get_ulonglong
  - get_ssize_t
  - get_size_t
  - RANGE_ERROR
  - unpack_halffloat
  - pack_halffloat
  - unpack_float
  - unpack_double
  - _range_error
  - nu_char
  - nu_byte
  - nu_ubyte
  - nu_short
  - nu_ushort
  - nu_int
  - nu_uint
  - nu_long
  - nu_ulong
  - nu_ssize_t
  - nu_size_t
  - nu_longlong
  - nu_ulonglong
  - nu_bool
  - nu_halffloat
  - nu_float
  - nu_double
  - nu_void_p
  - np_byte
  - np_ubyte
  - np_char
  - np_short
  - np_ushort
  - np_int
  - np_uint
  - np_long
  - np_ulong
  - np_ssize_t
  - np_size_t
  - np_longlong
  - np_ulonglong
  - np_bool
  - np_halffloat
  - np_float
  - np_double
  - np_void_p
  - bu_int
  - bu_uint
  - bu_longlong
  - bu_ulonglong
  - bu_halffloat
  - bu_float
  - bu_double
  - bu_bool
  - bp_int
  - bp_uint
  - bp_longlong
  - bp_ulonglong
  - bp_halffloat
  - bp_float
  - bp_double
  - bp_bool
  - lu_int
  - lu_uint
  - lu_longlong
  - lu_ulonglong
  - lu_halffloat
  - lu_float
  - lu_double
  - lp_int
  - lp_uint
  - lp_longlong
  - lp_ulonglong
  - lp_halffloat
  - lp_float
  - lp_double
  - whichtable
  - getentry
  - align
  - prepare_s
  - s_new
  - Struct___init___impl
  - s_dealloc
  - s_unpack_internal
  - Struct_unpack_impl
  - Struct_unpack_from_impl
  - unpackiter_dealloc
  - unpackiter_traverse
  - unpackiter_len
  - unpackiter_iternext
  - Struct_iter_unpack
  - s_pack_internal
  - s_pack
  - s_pack_into
  - s_get_format
  - s_get_size
  - s_sizeof
  - 'OFF'
  - cache_struct_converter
  - _clearcache_impl
  - calcsize_impl
  - pack
  - pack_into
  - unpack_impl
  - unpack_from_impl
  - iter_unpack_impl
  - PyInit__struct
  source_file: /src/Python-3.8.3/Modules/_struct.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHORT_ALIGN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_short) - sizeof(short))
    - item_type: preproc_def
      name: INT_ALIGN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_int) - sizeof(int))
    - item_type: preproc_def
      name: LONG_ALIGN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_long) - sizeof(long))
    - item_type: preproc_def
      name: FLOAT_ALIGN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_float) - sizeof(float))
    - item_type: preproc_def
      name: DOUBLE_ALIGN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_double) - sizeof(double))
    - item_type: preproc_def
      name: VOID_P_ALIGN
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_void_p) - sizeof(void *))
    - item_type: preproc_def
      name: SIZE_T_ALIGN
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_size_t) - sizeof(size_t))
    - item_type: preproc_def
      name: BOOL_ALIGN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(st_bool) - sizeof(_Bool))
    - item_type: preproc_def
      name: LONG_LONG_ALIGN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: (sizeof(s_long_long) - sizeof(long long))
    - item_type: preproc_def
      name: MAXCACHE
      pos:
        line_end: 2071
        line_start: 2070
        source_file: /src/Python-3.8.3/Modules/_struct.c
      type_or_value: '100'
    structs:
    - fields:
      - name: format
        type: char
      - name: size
        type: Py_ssize_t
      - name: alignment
        type: Py_ssize_t
      - name: "* (*unpack)(const char *,\n                        const struct _formatdef
          *)"
        type: PyObject
      - name: "(*pack)(char *, PyObject *,\n                const struct _formatdef
          *)"
        type: int
      item_type: struct
      name: _formatdef
      pos:
        line_end: 27
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: '*fmtdef'
        type: struct _formatdef
      - name: offset
        type: Py_ssize_t
      - name: size
        type: Py_ssize_t
      - name: repeat
        type: Py_ssize_t
      item_type: struct
      name: _formatcode
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: s_len
        type: Py_ssize_t
      - name: '*s_codes'
        type: formatcode
      - name: '*s_format'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: PyStructObject
      pos:
        line_end: 45
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: short
      item_type: struct
      name: st_short
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: int
      item_type: struct
      name: st_int
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: long
      item_type: struct
      name: st_long
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: float
      item_type: struct
      name: st_float
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: double
      item_type: struct
      name: st_double
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: '*x'
        type: void
      item_type: struct
      name: st_void_p
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: size_t
      item_type: struct
      name: st_size_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: _Bool
      item_type: struct
      name: st_bool
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: c
        type: char
      - name: x
        type: long long
      item_type: struct
      name: s_long_long
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_struct.c
    - fields:
      - name: '*so'
        type: PyObject_HEAD
      - name: buf
        type: Py_buffer
      - name: index
        type: Py_ssize_t
      item_type: struct
      name: unpackiterobject
      pos:
        line_end: 1610
        line_start: 1605
        source_file: /src/Python-3.8.3/Modules/_struct.c
    typedefs: []
    union: []
- function_names:
  - ROLc
  - STORE32L
  - LOAD32L
  - STORE64L
  - F
  - G
  - H
  - I
  - FF
  - GG
  - HH
  - II
  - md5_compress
  - md5_init
  - md5_process
  - md5_done
  - newMD5object
  - MD5_dealloc
  - MD5Type_copy_impl
  - MD5Type_digest_impl
  - MD5Type_hexdigest_impl
  - MD5Type_update
  - MD5_get_block_size
  - MD5_get_name
  - md5_get_digest_size
  - _md5_md5_impl
  - insint
  - PyInit__md5
  source_file: /src/Python-3.8.3/Modules/md5module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD5_BLOCKSIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/md5module.c
      type_or_value: '64'
    - item_type: preproc_def
      name: MD5_DIGESTSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/md5module.c
      type_or_value: '16'
    structs:
    - fields:
      - name: length
        type: MD5_INT64
      - name: state[4]
        type: MD5_INT32
      - name: buf[MD5_BLOCKSIZE]
        type: unsigned char
      item_type: struct
      name: md5_state
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/md5module.c
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: hash_state
        type: md5_state
      item_type: struct
      name: MD5object
      pos:
        line_end: 54
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/md5module.c
    typedefs:
    - item_type: typedef
      name: MD5_INT32
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/md5module.c
      type: unsigned int
    - item_type: typedef
      name: MD5_INT64
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/md5module.c
      type: long long
    union: []
- function_names:
  - longReverse
  - SHAcopy
  - ROR64
  - Ch
  - Maj
  - S
  - R
  - Sigma0
  - Sigma1
  - Gamma0
  - Gamma1
  - sha512_transform
  - RND
  - sha512_init
  - sha384_init
  - sha512_update
  - sha512_final
  - newSHA384object
  - newSHA512object
  - SHA512_dealloc
  - SHA512Type_copy_impl
  - SHA512Type_digest_impl
  - SHA512Type_hexdigest_impl
  - SHA512Type_update
  - SHA512_get_block_size
  - SHA512_get_name
  - _sha512_sha512_impl
  - _sha512_sha384_impl
  - insint
  - PyInit__sha512
  source_file: /src/Python-3.8.3/Modules/sha512module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA_BLOCKSIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/sha512module.c
      type_or_value: '128'
    - item_type: preproc_def
      name: SHA_DIGESTSIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/sha512module.c
      type_or_value: '64'
    structs:
    - fields:
      - name: SHA_INT64 digest[8]
        type: PyObject_HEAD
      - name: count_lo
        type: SHA_INT32
      - name: data[SHA_BLOCKSIZE]
        type: SHA_BYTE
      - name: local
        type: int
      - name: digestsize
        type: int
      item_type: struct
      name: SHAobject
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/sha512module.c
    typedefs:
    - item_type: typedef
      name: SHA_BYTE
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/sha512module.c
      type: unsigned char
    - item_type: typedef
      name: SHA_INT32
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/sha512module.c
      type: unsigned int
    - item_type: typedef
      name: SHA_INT64
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/sha512module.c
      type: unsigned long long
    union: []
- function_names:
  - PyDate_Check
  - PyDate_CheckExact
  - PyDateTime_Check
  - PyDateTime_CheckExact
  - PyTime_Check
  - PyTime_CheckExact
  - PyDelta_Check
  - PyDelta_CheckExact
  - PyTZInfo_Check
  - PyTZInfo_CheckExact
  - PyTimezone_Check
  - SET_YEAR
  - SET_MONTH
  - SET_DAY
  - DATE_SET_HOUR
  - DATE_SET_MINUTE
  - DATE_SET_SECOND
  - DATE_SET_MICROSECOND
  - DATE_SET_FOLD
  - TIME_SET_HOUR
  - TIME_SET_MINUTE
  - TIME_SET_SECOND
  - TIME_SET_MICROSECOND
  - TIME_SET_FOLD
  - GET_TD_DAYS
  - GET_TD_SECONDS
  - GET_TD_MICROSECONDS
  - SET_TD_DAYS
  - SET_TD_SECONDS
  - SET_TD_MICROSECONDS
  - HASTZINFO
  - GET_TIME_TZINFO
  - GET_DT_TZINFO
  - MONTH_IS_SANE
  - SIGNED_ADD_OVERFLOWED
  - divmod
  - divide_nearest
  - is_leap
  - days_in_month
  - days_before_month
  - days_before_year
  - ord_to_ymd
  - ymd_to_ord
  - weekday
  - iso_week1_monday
  - check_delta_day_range
  - check_date_args
  - check_time_args
  - normalize_pair
  - normalize_d_s_us
  - normalize_y_m_d
  - normalize_date
  - normalize_datetime
  - time_alloc
  - datetime_alloc
  - set_date_fields
  - parse_digits
  - parse_isoformat_date
  - parse_hh_mm_ss_ff
  - parse_isoformat_time
  - new_date_ex
  - new_date
  - new_date_subclass_ex
  - new_datetime_ex2
  - new_datetime_ex
  - new_datetime
  - new_datetime_subclass_fold_ex
  - new_datetime_subclass_ex
  - new_time_ex2
  - new_time_ex
  - new_time
  - new_delta_ex
  - new_delta
  - create_timezone
  - new_timezone
  - check_tzinfo_subclass
  - get_tzinfo_member
  - call_tzinfo_method
  - call_utcoffset
  - call_dst
  - call_tzname
  - append_keyword_tzinfo
  - append_keyword_fold
  - tzinfo_from_isoformat_results
  - format_ctime
  - format_utcoffset
  - make_Zreplacement
  - make_freplacement
  - wrap_strftime
  - time_time
  - build_struct_time
  - diff_to_bool
  - cmperror
  - delta_to_microseconds
  - checked_divmod
  - microseconds_to_delta_ex
  - microseconds_to_delta
  - multiply_int_timedelta
  - get_float_as_integer_ratio
  - multiply_truedivide_timedelta_float
  - divide_timedelta_int
  - divide_timedelta_timedelta
  - truedivide_timedelta_timedelta
  - truedivide_timedelta_int
  - delta_add
  - delta_negative
  - delta_positive
  - delta_abs
  - delta_subtract
  - delta_cmp
  - delta_richcompare
  - delta_hash
  - delta_multiply
  - delta_divide
  - delta_truedivide
  - delta_remainder
  - delta_divmod
  - accum
  - delta_new
  - delta_bool
  - delta_repr
  - delta_str
  - delta_getstate
  - delta_total_seconds
  - delta_reduce
  - OFFSET
  - date_year
  - date_month
  - date_day
  - date_from_pickle
  - date_new
  - date_fromtimestamp
  - date_today
  - datetime_date_fromtimestamp
  - datetime_date_fromtimestamp_capi
  - date_fromordinal
  - date_fromisoformat
  - date_fromisocalendar
  - add_date_timedelta
  - date_add
  - date_subtract
  - date_repr
  - date_isoformat
  - date_str
  - date_ctime
  - date_strftime
  - date_format
  - date_isoweekday
  - date_isocalendar
  - date_richcompare
  - date_timetuple
  - date_replace
  - generic_hash
  - date_hash
  - date_toordinal
  - date_weekday
  - date_getstate
  - date_reduce
  - tzinfo_nogo
  - tzinfo_tzname
  - tzinfo_utcoffset
  - tzinfo_dst
  - tzinfo_fromutc
  - tzinfo_reduce
  - timezone_new
  - timezone_dealloc
  - timezone_richcompare
  - timezone_hash
  - _timezone_check_argument
  - timezone_repr
  - timezone_str
  - timezone_tzname
  - timezone_utcoffset
  - timezone_dst
  - timezone_fromutc
  - timezone_getinitargs
  - time_hour
  - time_minute
  - py_time_second
  - time_microsecond
  - time_tzinfo
  - time_fold
  - time_from_pickle
  - time_new
  - time_dealloc
  - time_utcoffset
  - time_dst
  - time_tzname
  - time_repr
  - time_str
  - time_isoformat
  - time_strftime
  - time_richcompare
  - time_hash
  - time_replace
  - time_fromisoformat
  - time_getstate
  - time_reduce_ex
  - time_reduce
  - datetime_hour
  - datetime_minute
  - datetime_second
  - datetime_microsecond
  - datetime_tzinfo
  - datetime_fold
  - datetime_from_pickle
  - datetime_new
  - utc_to_seconds
  - local
  - datetime_from_timet_and_us
  - datetime_from_timestamp
  - datetime_best_possible
  - datetime_datetime_now_impl
  - datetime_utcnow
  - datetime_fromtimestamp
  - datetime_utcfromtimestamp
  - datetime_strptime
  - datetime_combine
  - _sanitize_isoformat_str
  - datetime_fromisoformat
  - datetime_dealloc
  - datetime_utcoffset
  - datetime_dst
  - datetime_tzname
  - add_datetime_timedelta
  - datetime_add
  - datetime_subtract
  - datetime_repr
  - datetime_str
  - datetime_isoformat
  - datetime_ctime
  - flip_fold
  - get_flip_fold_offset
  - pep495_eq_exception
  - datetime_richcompare
  - datetime_hash
  - datetime_replace
  - local_timezone_from_timestamp
  - local_timezone
  - local_timezone_from_local
  - datetime_astimezone
  - datetime_timetuple
  - local_to_seconds
  - datetime_timestamp
  - datetime_getdate
  - datetime_gettime
  - datetime_gettimetz
  - datetime_utctimetuple
  - datetime_getstate
  - datetime_reduce_ex
  - datetime_reduce
  - PyInit__datetime
  source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MINYEAR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MAXYEAR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '9999'
    - item_type: preproc_def
      name: MAXORDINAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '3652059 '
    - item_type: preproc_def
      name: MAX_DELTA_DAYS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '999999999'
    - item_type: preproc_def
      name: GET_YEAR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_GET_YEAR
    - item_type: preproc_def
      name: GET_MONTH
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_GET_MONTH
    - item_type: preproc_def
      name: GET_DAY
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_GET_DAY
    - item_type: preproc_def
      name: DATE_GET_HOUR
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_DATE_GET_HOUR
    - item_type: preproc_def
      name: DATE_GET_MINUTE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_DATE_GET_MINUTE
    - item_type: preproc_def
      name: DATE_GET_SECOND
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_DATE_GET_SECOND
    - item_type: preproc_def
      name: DATE_GET_MICROSECOND
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_DATE_GET_MICROSECOND
    - item_type: preproc_def
      name: DATE_GET_FOLD
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_DATE_GET_FOLD
    - item_type: preproc_def
      name: TIME_GET_HOUR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_TIME_GET_HOUR
    - item_type: preproc_def
      name: TIME_GET_MINUTE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_TIME_GET_MINUTE
    - item_type: preproc_def
      name: TIME_GET_SECOND
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_TIME_GET_SECOND
    - item_type: preproc_def
      name: TIME_GET_MICROSECOND
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_TIME_GET_MICROSECOND
    - item_type: preproc_def
      name: TIME_GET_FOLD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: PyDateTime_TIME_GET_FOLD
    - item_type: preproc_def
      name: DI4Y
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '1461    '
    - item_type: preproc_def
      name: DI100Y
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '36524   '
    - item_type: preproc_def
      name: DI400Y
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: '146097  '
    - item_type: preproc_def
      name: CLEANUP
      pos:
        line_end: 2458
        line_start: 2453
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: "Py_DECREF(x);       \\\n    x = y;              \\\n    if (x
        == NULL)      \\\n        goto Done"
    - item_type: preproc_def
      name: EPOCH_SECONDS
      pos:
        line_end: 6043
        line_start: 6042
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type_or_value: (719163LL * 24 * 60 * 60)
    structs:
    - fields:
      - name: '*offset'
        type: PyObject_HEAD
      - name: '*name'
        type: PyObject
      item_type: struct
      name: PyDateTime_TimeZone
      pos:
        line_end: 1057
        line_start: 1052
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
    typedefs:
    - item_type: typedef
      name: (*TM_FUNC)(time_t timer, struct tm*)
      pos:
        line_end: 4784
        line_start: 4784
        source_file: /src/Python-3.8.3/Modules/_datetimemodule.c
      type: int
    union: []
- function_names:
  - _inscode
  - PyInit_errno
  - inscode
  source_file: /src/Python-3.8.3/Modules/errnomodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _setException
  - py_digest_name
  - py_digest_by_name
  - newEVPobject
  - EVP_hash
  - EVP_dealloc
  - locked_EVP_MD_CTX_copy
  - EVP_copy_impl
  - EVP_digest_impl
  - EVP_hexdigest_impl
  - EVP_update
  - EVP_get_block_size
  - EVP_get_digest_size
  - EVP_get_name
  - EVP_repr
  - EVPnew
  - EVP_new_impl
  - EVP_fast_new
  - _hashlib_openssl_md5_impl
  - _hashlib_openssl_sha1_impl
  - _hashlib_openssl_sha224_impl
  - _hashlib_openssl_sha256_impl
  - _hashlib_openssl_sha384_impl
  - _hashlib_openssl_sha512_impl
  - pbkdf2_hmac_impl
  - _hashlib_scrypt_impl
  - _hashlib_hmac_digest_impl
  - _openssl_hash_name_mapper
  - generate_hash_name_list
  - PyInit__hashlib
  source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVP_MD_CTX_new
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: EVP_MD_CTX_create
    - item_type: preproc_def
      name: EVP_MD_CTX_free
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: EVP_MD_CTX_destroy
    - item_type: preproc_def
      name: MUNCH_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: PY_OPENSSL_HAS_SHA3
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_OPENSSL_HAS_SHAKE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_OPENSSL_HAS_BLAKE2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_SCRYPT
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*ctx'
        type: PyObject_HEAD
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: EVPobject
      pos:
        line_end: 52
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
    - fields:
      - name: '*set'
        type: PyObject
      - name: error
        type: int
      item_type: struct
      name: _internal_name_mapper_state
      pos:
        line_end: 1024
        line_start: 1021
        source_file: /src/Python-3.8.3/Modules/_hashopenssl.c
    typedefs: []
    union: []
- function_names:
  - _statistics__normal_dist_inv_cdf_impl
  - PyInit__statistics
  source_file: /src/Python-3.8.3/Modules/_statisticsmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - internal_bisect_right
  - bisect_right
  - insort_right
  - internal_bisect_left
  - bisect_left
  - insort_left
  - PyInit__bisect
  source_file: /src/Python-3.8.3/Modules/_bisectmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyProfiler_Check
  - PyProfiler_CheckExact
  - CallExternalTimer
  - call_timer
  - normalizeUserObj
  - newProfilerEntry
  - getEntry
  - getSubEntry
  - newSubEntry
  - freeSubEntry
  - freeEntry
  - clearEntries
  - initContext
  - Stop
  - ptrace_enter_call
  - ptrace_leave_call
  - profiler_callback
  - pending_exception
  - statsForSubEntry
  - statsForEntry
  - profiler_getstats
  - setSubcalls
  - setBuiltins
  - profiler_enable
  - flush_unmatched
  - profiler_disable
  - profiler_clear
  - profiler_dealloc
  - profiler_init
  - PyInit__lsprof
  source_file: /src/Python-3.8.3/Modules/_lsprof.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POF_ENABLED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
      type_or_value: '0x001'
    - item_type: preproc_def
      name: POF_SUBCALLS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
      type_or_value: '0x002'
    - item_type: preproc_def
      name: POF_BUILTINS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
      type_or_value: '0x004'
    - item_type: preproc_def
      name: POF_NOMEMORY
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
      type_or_value: '0x100'
    structs:
    - fields:
      - name: header
        type: rotating_node_t
      - name: tt
        type: _PyTime_t
      - name: it
        type: _PyTime_t
      - name: callcount
        type: long
      - name: recursivecallcount
        type: long
      - name: recursionLevel
        type: long
      item_type: struct
      name: _ProfilerSubEntry
      pos:
        line_end: 17
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
    - fields:
      - name: header
        type: rotating_node_t
      - name: '*userObj'
        type: PyObject
      - name: tt
        type: _PyTime_t
      - name: it
        type: _PyTime_t
      - name: callcount
        type: long
      - name: recursivecallcount
        type: long
      - name: recursionLevel
        type: long
      - name: '*calls'
        type: rotating_node_t
      item_type: struct
      name: _ProfilerEntry
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
    - fields:
      - name: t0
        type: _PyTime_t
      - name: subt
        type: _PyTime_t
      - name: '*previous'
        type: struct _ProfilerContext
      - name: '*ctxEntry'
        type: ProfilerEntry
      item_type: struct
      name: _ProfilerContext
      pos:
        line_end: 36
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
    - fields:
      - name: '*profilerEntries'
        type: PyObject_HEAD
      - name: '*currentProfilerContext'
        type: ProfilerContext
      - name: '*freelistProfilerContext'
        type: ProfilerContext
      - name: flags
        type: int
      - name: '*externalTimer'
        type: PyObject
      - name: externalTimerUnit
        type: double
      item_type: struct
      name: ProfilerObject
      pos:
        line_end: 46
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
    - fields:
      - name: '*list'
        type: PyObject
      - name: '*sublist'
        type: PyObject
      - name: factor
        type: double
      item_type: struct
      name: statscollector_t
      pos:
        line_end: 489
        line_start: 485
        source_file: /src/Python-3.8.3/Modules/_lsprof.c
    typedefs: []
    union: []
- function_names:
  - XxoObject_Check
  - newXxoObject
  - Xxo_dealloc
  - Xxo_demo
  - Xxo_getattro
  - Xxo_setattr
  - xx_foo
  - xx_new
  - xx_bug
  - xx_roj
  - null_richcompare
  - xx_exec
  - PyInit_xx
  source_file: /src/Python-3.8.3/Modules/xxmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*x_attr'
        type: PyObject_HEAD
      item_type: struct
      name: XxoObject
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/xxmodule.c
    typedefs: []
    union: []
- function_names:
  - KEY_LOWER_THAN
  - randombits
  - RotatingTree_Add
  - RotatingTree_Get
  - RotatingTree_Enum
  source_file: /src/Python-3.8.3/Modules/rotatingtree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/getnameinfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SUCCESS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'YES'
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'NO'
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ENI_NOSOCKET
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ENI_NOSERVNAME
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ENI_NOHOSTNAME
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ENI_MEMORY
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ENI_SYSTEM
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ENI_FAMILY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ENI_SALEN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
      type_or_value: '6'
    structs:
    - fields:
      - name: a_af
        type: int
      - name: a_addrlen
        type: int
      - name: a_socklen
        type: int
      - name: a_off
        type: int
      item_type: struct
      name: gni_afd
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
    - fields:
      - name: si_len
        type: u_char
      - name: si_family
        type: u_char
      - name: si_port
        type: u_short
      item_type: struct
      name: gni_sockinet
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/getnameinfo.c
    typedefs: []
    union: []
- function_names:
  - PUTS
  - faulthandler_get_fileno
  - get_thread_state
  - faulthandler_dump_traceback
  - faulthandler_dump_traceback_py
  - faulthandler_disable_fatal_handler
  - faulthandler_fatal_error
  - faulthandler_ignore_exception
  - faulthandler_exc_handler
  - faulthandler_enable
  - faulthandler_py_enable
  - faulthandler_disable
  - faulthandler_disable_py
  - faulthandler_is_enabled
  - faulthandler_thread
  - cancel_dump_traceback_later
  - format_timeout
  - faulthandler_dump_traceback_later
  - faulthandler_cancel_dump_traceback_later_py
  - faulthandler_register
  - faulthandler_user
  - check_signum
  - faulthandler_register_py
  - faulthandler_unregister
  - faulthandler_unregister_py
  - faulthandler_suppress_crash_report
  - faulthandler_read_null
  - faulthandler_raise_sigsegv
  - faulthandler_sigsegv
  - faulthandler_fatal_error_thread
  - faulthandler_fatal_error_c_thread
  - faulthandler_sigfpe
  - faulthandler_sigabrt
  - faulthandler_fatal_error_py
  - stack_overflow
  - faulthandler_stack_overflow
  - faulthandler_traverse
  - faulthandler_raise_exception
  - PyInit_faulthandler
  - faulthandler_init_enable
  - _PyFaulthandler_Init
  - _PyFaulthandler_Fini
  source_file: /src/Python-3.8.3/Modules/faulthandler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STACK_OVERFLOW_MAX_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: (100 * 1024 * 1024)
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: '_NSIG            '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: '(_SIGMAX + 1)    '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: '(SIGMAX + 1)     '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: '64               '
    - item_type: preproc_def
      name: SEC_TO_US
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type_or_value: (1000 * 1000)
    structs:
    - fields:
      - name: signum
        type: int
      - name: enabled
        type: int
      - name: '* name'
        type: char
      - name: previous
        type: _Py_sighandler_t
      - name: all_threads
        type: int
      item_type: struct
      name: fault_handler_t
      pos:
        line_end: 49
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    - fields:
      - name: enabled
        type: int
      - name: '*file'
        type: PyObject
      - name: fd
        type: int
      - name: all_threads
        type: int
      - name: '*interp'
        type: PyInterpreterState
      item_type: struct
      name: fatal_error = {0, NULL, -1, 0}
      pos:
        line_end: 60
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    - fields:
      - name: '*file'
        type: PyObject
      - name: fd
        type: int
      - name: timeout_us
        type: PY_TIMEOUT_T
      - name: repeat
        type: int
      - name: '*interp'
        type: PyInterpreterState
      - name: exit
        type: int
      - name: '*header'
        type: char
      - name: header_len
        type: size_t
      - name: cancel_event
        type: PyThread_type_lock
      - name: running
        type: PyThread_type_lock
      item_type: struct
      name: thread
      pos:
        line_end: 78
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    - fields:
      - name: enabled
        type: int
      - name: '*file'
        type: PyObject
      - name: fd
        type: int
      - name: all_threads
        type: int
      - name: chain
        type: int
      - name: previous
        type: _Py_sighandler_t
      - name: '*interp'
        type: PyInterpreterState
      item_type: struct
      name: user_signal_t
      pos:
        line_end: 90
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
    typedefs:
    - item_type: typedef
      name: _Py_sighandler_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type: sigaction
    - item_type: typedef
      name: _Py_sighandler_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/faulthandler.c
      type: PyOS_sighandler_t
    union: []
- function_names:
  - Example_traverse
  - Example_finalize
  - Example_demo
  - Example_getattro
  - Example_setattr
  - testexport_foo
  - call_state_registration_func
  - execfunc
  - TEST_MODULE_DEF
  - PyInit__testmultiphase
  - createfunc_nonmodule
  - PyInit__testmultiphase_nonmodule
  - nonmodule_bar
  - PyInit__testmultiphase_nonmodule_with_methods
  - PyInitU__testmultiphase_zkouka_naten_evc07gi8e
  - PyInitU_eckzbwbhc6jpgzcx415x
  - PyInit_x
  - PyInit__testmultiphase_null_slots
  - PyInit__testmultiphase_bad_slot_large
  - PyInit__testmultiphase_bad_slot_negative
  - PyInit__testmultiphase_create_int_with_state
  - PyInit__testmultiphase_negative_size
  - PyInit__testmultiphase_export_uninitialized
  - PyInit__testmultiphase_export_null
  - PyInit__testmultiphase_export_raise
  - PyInit__testmultiphase_export_unreported_exception
  - createfunc_null
  - PyInit__testmultiphase_create_null
  - createfunc_raise
  - PyInit__testmultiphase_create_raise
  - createfunc_unreported_exception
  - PyInit__testmultiphase_create_unreported_exception
  - PyInit__testmultiphase_nonmodule_with_exec_slots
  - execfunc_err
  - PyInit__testmultiphase_exec_err
  - execfunc_raise
  - PyInit__testmultiphase_exec_raise
  - execfunc_unreported_exception
  - PyInit__testmultiphase_exec_unreported_exception
  - bad_traverse
  - execfunc_with_bad_traverse
  - PyInit__testmultiphase_with_bad_traverse
  - PyInit_imp_dummy
  source_file: /src/Python-3.8.3/Modules/_testmultiphase.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*x_attr'
        type: PyObject_HEAD
      item_type: struct
      name: ExampleObject
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/Python-3.8.3/Modules/_testmultiphase.c
    - fields:
      - name: '*integer'
        type: PyObject
      item_type: struct
      name: testmultiphase_state
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/_testmultiphase.c
    typedefs: []
    union: []
- function_names:
  - _Py_acosh
  - _Py_asinh
  - _Py_atanh
  - _Py_expm1
  - _Py_log1p
  source_file: /src/Python-3.8.3/Modules/_math.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_dbmobject
  - check_dbmobject_open
  - newdbmobject
  - dbm_dealloc
  - dbm_length
  - parse_datum
  - dbm_subscript
  - _gdbm_gdbm_get_impl
  - dbm_ass_sub
  - _gdbm_gdbm_setdefault_impl
  - _gdbm_gdbm_close_impl
  - _gdbm_gdbm_keys_impl
  - dbm_contains
  - _gdbm_gdbm_firstkey_impl
  - _gdbm_gdbm_nextkey_impl
  - _gdbm_gdbm_reorganize_impl
  - _gdbm_gdbm_sync_impl
  - dbm__enter__
  - dbm__exit__
  - dbmopen_impl
  - PyInit__gdbm
  source_file: /src/Python-3.8.3/Modules/_gdbmmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: di_size
        type: PyObject_HEAD
      - name: di_dbm
        type: GDBM_FILE
      item_type: struct
      name: dbmobject
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_gdbmmodule.c
    typedefs: []
    union: []
- function_names:
  - XxoObject_Check
  - newXxoObject
  - Xxo_traverse
  - Xxo_finalize
  - Xxo_demo
  - Xxo_getattro
  - Xxo_setattr
  - xx_foo
  - xx_new
  - xx_roj
  - null_richcompare
  - xx_modexec
  - PyInit_xxlimited
  source_file: /src/Python-3.8.3/Modules/xxlimited.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*x_attr'
        type: PyObject_HEAD
      item_type: struct
      name: XxoObject
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/xxlimited.c
    typedefs: []
    union: []
- function_names:
  - sets
  - mkpwent
  - SETI
  - SETS
  - pwd_getpwuid
  - pwd_getpwnam_impl
  - pwd_getpwall_impl
  - PyInit_pwd
  source_file: /src/Python-3.8.3/Modules/pwdmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUFFER_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/pwdmodule.c
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - crypt_crypt_impl
  - PyInit__crypt
  source_file: /src/Python-3.8.3/Modules/_cryptmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - itertools_groupby_impl
  - groupby_dealloc
  - groupby_traverse
  - groupby_step
  - groupby_next
  - groupby_reduce
  - groupby_setstate
  - itertools__grouper_impl
  - _grouper_create
  - _grouper_dealloc
  - _grouper_traverse
  - _grouper_next
  - _grouper_reduce
  - teedataobject_newinternal
  - teedataobject_jumplink
  - teedataobject_getitem
  - teedataobject_traverse
  - teedataobject_safe_decref
  - teedataobject_clear
  - teedataobject_dealloc
  - teedataobject_reduce
  - itertools_teedataobject_impl
  - tee_next
  - tee_traverse
  - tee_copy
  - tee_fromiterable
  - itertools__tee_impl
  - tee_clear
  - tee_dealloc
  - tee_reduce
  - tee_setstate
  - itertools_tee_impl
  - itertools_cycle_impl
  - cycle_dealloc
  - cycle_traverse
  - cycle_next
  - cycle_reduce
  - cycle_setstate
  - itertools_dropwhile_impl
  - dropwhile_dealloc
  - dropwhile_traverse
  - dropwhile_next
  - dropwhile_reduce
  - dropwhile_setstate
  - itertools_takewhile_impl
  - takewhile_dealloc
  - takewhile_traverse
  - takewhile_next
  - takewhile_reduce
  - takewhile_reduce_setstate
  - islice_new
  - islice_dealloc
  - islice_traverse
  - islice_next
  - islice_reduce
  - islice_setstate
  - itertools_starmap_impl
  - starmap_dealloc
  - starmap_traverse
  - starmap_next
  - starmap_reduce
  - chain_new_internal
  - chain_new
  - itertools_chain_from_iterable
  - chain_dealloc
  - chain_traverse
  - chain_next
  - chain_reduce
  - chain_setstate
  - product_new
  - product_dealloc
  - product_sizeof
  - product_traverse
  - product_next
  - product_reduce
  - product_setstate
  - itertools_combinations_impl
  - combinations_dealloc
  - combinations_sizeof
  - combinations_traverse
  - combinations_next
  - combinations_reduce
  - combinations_setstate
  - itertools_combinations_with_replacement_impl
  - cwr_dealloc
  - cwr_sizeof
  - cwr_traverse
  - cwr_next
  - cwr_reduce
  - cwr_setstate
  - itertools_permutations_impl
  - permutations_dealloc
  - permutations_sizeof
  - permutations_traverse
  - permutations_next
  - permutations_reduce
  - permutations_setstate
  - itertools_accumulate_impl
  - accumulate_dealloc
  - accumulate_traverse
  - accumulate_next
  - accumulate_reduce
  - accumulate_setstate
  - itertools_compress_impl
  - compress_dealloc
  - compress_traverse
  - compress_next
  - compress_reduce
  - itertools_filterfalse_impl
  - filterfalse_dealloc
  - filterfalse_traverse
  - filterfalse_next
  - filterfalse_reduce
  - itertools_count_impl
  - count_dealloc
  - count_traverse
  - count_nextlong
  - count_next
  - count_repr
  - count_reduce
  - repeat_new
  - repeat_dealloc
  - repeat_traverse
  - repeat_next
  - repeat_repr
  - repeat_len
  - repeat_reduce
  - zip_longest_new
  - zip_longest_dealloc
  - zip_longest_traverse
  - zip_longest_next
  - zip_longest_reduce
  - zip_longest_setstate
  - PyInit_itertools
  source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINKCELLS
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
      type_or_value: '57'
    structs:
    - fields:
      - name: '*it'
        type: PyObject_HEAD
      - name: '*keyfunc'
        type: PyObject
      - name: '*tgtkey'
        type: PyObject
      - name: '*currkey'
        type: PyObject
      - name: '*currvalue'
        type: PyObject
      - name: '*currgrouper'
        type: void
      item_type: struct
      name: groupbyobject
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*parent'
        type: PyObject_HEAD
      - name: '*tgtkey'
        type: PyObject
      item_type: struct
      name: _grouperobject
      pos:
        line_end: 287
        line_start: 283
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*it'
        type: PyObject_HEAD
      - name: numread
        type: int
      - name: running
        type: int
      - name: '*nextlink'
        type: PyObject
      - name: '*(values[LINKCELLS])'
        type: PyObject
      item_type: struct
      name: teedataobject
      pos:
        line_end: 448
        line_start: 441
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*dataobj'
        type: PyObject_HEAD
      - name: index
        type: int
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: teeobject
      pos:
        line_end: 455
        line_start: 450
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*it'
        type: PyObject_HEAD
      - name: '*saved'
        type: PyObject
      - name: index
        type: Py_ssize_t
      - name: firstpass
        type: int
      item_type: struct
      name: cycleobject
      pos:
        line_end: 949
        line_start: 943
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      - name: start
        type: long
      item_type: struct
      name: dropwhileobject
      pos:
        line_end: 1147
        line_start: 1142
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      - name: stop
        type: long
      item_type: struct
      name: takewhileobject
      pos:
        line_end: 1314
        line_start: 1309
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*it'
        type: PyObject_HEAD
      - name: next
        type: Py_ssize_t
      - name: stop
        type: Py_ssize_t
      - name: step
        type: Py_ssize_t
      - name: cnt
        type: Py_ssize_t
      item_type: struct
      name: isliceobject
      pos:
        line_end: 1478
        line_start: 1471
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      item_type: struct
      name: starmapobject
      pos:
        line_end: 1734
        line_start: 1730
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*source'
        type: PyObject_HEAD
      - name: '*active'
        type: PyObject
      item_type: struct
      name: chainobject
      pos:
        line_end: 1875
        line_start: 1871
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*pools'
        type: PyObject_HEAD
      - name: '*indices'
        type: Py_ssize_t
      - name: '*result'
        type: PyObject
      - name: stopped
        type: int
      item_type: struct
      name: productobject
      pos:
        line_end: 2098
        line_start: 2092
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*pool'
        type: PyObject_HEAD
      - name: '*indices'
        type: Py_ssize_t
      - name: '*result'
        type: PyObject
      - name: r
        type: Py_ssize_t
      - name: stopped
        type: int
      item_type: struct
      name: combinationsobject
      pos:
        line_end: 2452
        line_start: 2445
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*pool'
        type: PyObject_HEAD
      - name: '*indices'
        type: Py_ssize_t
      - name: '*result'
        type: PyObject
      - name: r
        type: Py_ssize_t
      - name: stopped
        type: int
      item_type: struct
      name: cwrobject
      pos:
        line_end: 2786
        line_start: 2779
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*pool'
        type: PyObject_HEAD
      - name: '*indices'
        type: Py_ssize_t
      - name: '*cycles'
        type: Py_ssize_t
      - name: '*result'
        type: PyObject
      - name: r
        type: Py_ssize_t
      - name: stopped
        type: int
      item_type: struct
      name: permutationsobject
      pos:
        line_end: 3108
        line_start: 3100
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*total'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      - name: '*binop'
        type: PyObject
      - name: '*initial'
        type: PyObject
      item_type: struct
      name: accumulateobject
      pos:
        line_end: 3469
        line_start: 3463
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*data'
        type: PyObject_HEAD
      - name: '*selectors'
        type: PyObject
      item_type: struct
      name: compressobject
      pos:
        line_end: 3682
        line_start: 3678
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      item_type: struct
      name: filterfalseobject
      pos:
        line_end: 3842
        line_start: 3838
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*long_cnt'
        type: PyObject
      - name: '*long_step'
        type: PyObject
      item_type: struct
      name: countobject
      pos:
        line_end: 3997
        line_start: 3992
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: '*element'
        type: PyObject_HEAD
      - name: cnt
        type: Py_ssize_t
      item_type: struct
      name: repeatobject
      pos:
        line_end: 4246
        line_start: 4242
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: numactive
        type: Py_ssize_t
      - name: '*ittuple'
        type: PyObject
      - name: '*result'
        type: PyObject
      - name: '*fillvalue'
        type: PyObject
      item_type: struct
      name: ziplongestobject
      pos:
        line_end: 4404
        line_start: 4397
        source_file: /src/Python-3.8.3/Modules/itertoolsmodule.c
    typedefs: []
    union: []
- function_names:
  - fbound
  - search
  - st_ulaw2linear16
  - st_alaw2linear16
  - st_14linear2ulaw
  - st_linear2alaw
  - GETINTX
  - SETINTX
  - GETINT8
  - GETINT16
  - GETINT32
  - GETINT24
  - GETINT24
  - SETINT8
  - SETINT16
  - SETINT32
  - SETINT24
  - SETINT24
  - GETRAWSAMPLE
  - SETRAWSAMPLE
  - GETSAMPLE32
  - SETSAMPLE32
  - audioop_check_size
  - audioop_check_parameters
  - audioop_getsample_impl
  - audioop_max_impl
  - audioop_minmax_impl
  - audioop_avg_impl
  - audioop_rms_impl
  - _sum2
  - audioop_findfit_impl
  - audioop_findfactor_impl
  - audioop_findmax_impl
  - audioop_avgpp_impl
  - audioop_maxpp_impl
  - audioop_cross_impl
  - audioop_mul_impl
  - audioop_tomono_impl
  - audioop_tostereo_impl
  - audioop_add_impl
  - audioop_bias_impl
  - audioop_reverse_impl
  - audioop_byteswap_impl
  - audioop_lin2lin_impl
  - gcd
  - audioop_ratecv_impl
  - audioop_lin2ulaw_impl
  - audioop_ulaw2lin_impl
  - audioop_lin2alaw_impl
  - audioop_alaw2lin_impl
  - audioop_lin2adpcm_impl
  - audioop_adpcm2lin_impl
  - PyInit_audioop
  source_file: /src/Python-3.8.3/Modules/audioop.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BIAS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '0x84   '
    - item_type: preproc_def
      name: CLIP
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '32635'
    - item_type: preproc_def
      name: SIGN_BIT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '(0x80)          '
    - item_type: preproc_def
      name: QUANT_MASK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '(0xf)           '
    - item_type: preproc_def
      name: SEG_SHIFT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '(4)             '
    - item_type: preproc_def
      name: SEG_MASK
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/audioop.c
      type_or_value: '(0x70)          '
    structs: []
    typedefs: []
    union: []
- function_names:
  - AS_GC
  - FROM_GC
  - gc_is_collecting
  - gc_clear_collecting
  - gc_get_refs
  - gc_set_refs
  - gc_reset_refs
  - gc_decref
  - GEN_HEAD
  - _PyGC_Initialize
  - _GEN_HEAD
  - gc_list_init
  - gc_list_is_empty
  - gc_list_append
  - gc_list_remove
  - gc_list_move
  - gc_list_merge
  - gc_list_size
  - append_objects
  - validate_list
  - validate_list
  - update_refs
  - visit_decref
  - subtract_refs
  - visit_reachable
  - move_unreachable
  - untrack_tuples
  - untrack_dicts
  - has_legacy_finalizer
  - move_legacy_finalizers
  - visit_move
  - move_legacy_finalizer_reachable
  - handle_weakrefs
  - debug_cycle
  - handle_legacy_finalizers
  - finalize_garbage
  - check_garbage
  - delete_garbage
  - clear_freelists
  - show_stats_each_generations
  - collect
  - invoke_gc_callback
  - collect_with_callback
  - collect_generations
  - gc_enable_impl
  - gc_disable_impl
  - gc_isenabled_impl
  - gc_collect_impl
  - gc_set_debug_impl
  - gc_get_debug_impl
  - gc_set_threshold
  - gc_get_threshold_impl
  - gc_get_count_impl
  - referrersvisit
  - gc_referrers_for
  - gc_get_referrers
  - referentsvisit
  - gc_get_referents
  - gc_get_objects_impl
  - gc_get_stats_impl
  - gc_is_tracked
  - gc_freeze_impl
  - gc_unfreeze_impl
  - gc_get_freeze_count_impl
  - PyInit_gc
  - ADD_INT
  - PyGC_Collect
  - _PyGC_CollectIfEnabled
  - _PyGC_CollectNoFail
  - _PyGC_DumpShutdownStats
  - _PyGC_Fini
  - _PyGC_Dump
  - PyObject_GC_Track
  - PyObject_GC_UnTrack
  - _PyObject_GC_Alloc
  - _PyObject_GC_Malloc
  - _PyObject_GC_Calloc
  - _PyObject_GC_New
  - _PyObject_GC_NewVar
  - _PyObject_GC_Resize
  - PyObject_GC_Del
  source_file: /src/Python-3.8.3/Modules/gcmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GC_DEBUG
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: '(0)  '
    - item_type: preproc_def
      name: GC_NEXT
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: _PyGCHead_NEXT
    - item_type: preproc_def
      name: GC_PREV
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: _PyGCHead_PREV
    - item_type: preproc_def
      name: PREV_MASK_COLLECTING
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: _PyGC_PREV_MASK_COLLECTING
    - item_type: preproc_def
      name: NEXT_MASK_UNREACHABLE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: (1)
    - item_type: preproc_def
      name: DEBUG_STATS
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: '(1<<0) '
    - item_type: preproc_def
      name: DEBUG_COLLECTABLE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: '(1<<1) '
    - item_type: preproc_def
      name: DEBUG_UNCOLLECTABLE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: '(1<<2) '
    - item_type: preproc_def
      name: DEBUG_SAVEALL
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: '(1<<5) '
    - item_type: preproc_def
      name: DEBUG_LEAK
      pos:
        line_end: 124
        line_start: 121
        source_file: /src/Python-3.8.3/Modules/gcmodule.c
      type_or_value: "DEBUG_COLLECTABLE | \\\n                DEBUG_UNCOLLECTABLE
        | \\\n                DEBUG_SAVEALL"
    structs: []
    typedefs: []
    union: []
- function_names:
  - conv_descriptor
  - fcntl_fcntl_impl
  - fcntl_ioctl_impl
  - fcntl_flock_impl
  - fcntl_lockf_impl
  - all_ins
  - PyInit_fcntl
  source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IOCTL_BUFSZ
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: LOCK_SH
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '1       '
    - item_type: preproc_def
      name: LOCK_EX
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '2       '
    - item_type: preproc_def
      name: LOCK_NB
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '4       '
    - item_type: preproc_def
      name: LOCK_UN
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '8       '
    - item_type: preproc_def
      name: LOCK_SH
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '1       '
    - item_type: preproc_def
      name: LOCK_EX
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '2       '
    - item_type: preproc_def
      name: LOCK_NB
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '4       '
    - item_type: preproc_def
      name: LOCK_UN
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/Python-3.8.3/Modules/fcntlmodule.c
      type_or_value: '8       '
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Pickle_GetState
  - _Pickle_GetGlobalState
  - _Pickle_ClearState
  - _Pickle_InitState
  - _Pickle_FastCall
  - init_method_ref
  - reconstruct_method
  - call_method
  - Pdata_dealloc
  - Pdata_New
  - Py_SIZE
  - Pdata_clear
  - Pdata_grow
  - Pdata_stack_underflow
  - Pdata_pop
  - PDATA_POP
  - Pdata_push
  - PDATA_PUSH
  - PDATA_APPEND
  - Pdata_poptuple
  - Pdata_poplist
  - PyMemoTable_New
  - PyMemoTable_Copy
  - PyMemoTable_Size
  - PyMemoTable_Clear
  - PyMemoTable_Del
  - _PyMemoTable_Lookup
  - _PyMemoTable_ResizeTable
  - PyMemoTable_Get
  - PyMemoTable_Set
  - _Pickler_ClearBuffer
  - _write_size64
  - _Pickler_CommitFrame
  - _Pickler_GetString
  - _Pickler_FlushToFile
  - _Pickler_OpcodeBoundary
  - _Pickler_Write
  - _Pickler_New
  - _Pickler_SetProtocol
  - _Pickler_SetOutputStream
  - _Pickler_SetBufferCallback
  - _Unpickler_SetStringInput
  - bad_readline
  - _Unpickler_SkipConsumed
  - _Unpickler_ReadFromFile
  - _Unpickler_ReadImpl
  - _Unpickler_ReadInto
  - _Unpickler_Read
  - _Unpickler_CopyLine
  - _Unpickler_Readline
  - _Unpickler_ResizeMemoList
  - _Unpickler_MemoGet
  - _Unpickler_MemoPut
  - _Unpickler_NewMemo
  - _Unpickler_MemoCleanup
  - _Unpickler_New
  - _Unpickler_SetInputStream
  - _Unpickler_SetInputEncoding
  - _Unpickler_SetBuffers
  - memo_get
  - memo_put
  - get_dotted_path
  - get_deep_attribute
  - getattribute
  - _checkmodule
  - whichmodule
  - fast_save_enter
  - fast_save_leave
  - save_none
  - save_bool
  - save_long
  - save_float
  - _Pickler_write_bytes
  - _save_bytes_data
  - save_bytes
  - _save_bytearray_data
  - save_bytearray
  - save_picklebuffer
  - raw_unicode_escape
  - write_unicode_binary
  - save_unicode
  - store_tuple_elements
  - save_tuple
  - batch_list
  - batch_list_exact
  - save_list
  - batch_dict
  - batch_dict_exact
  - save_dict
  - save_set
  - save_frozenset
  - fix_imports
  - save_global
  - save_singleton_type
  - save_type
  - save_pers
  - get_class
  - save_reduce
  - save
  - dump
  - _pickle_Pickler_clear_memo_impl
  - _pickle_Pickler_dump
  - _pickle_Pickler___sizeof___impl
  - Pickler_dealloc
  - Pickler_traverse
  - Pickler_clear
  - _pickle_Pickler___init___impl
  - _pickle_PicklerMemoProxy_clear_impl
  - _pickle_PicklerMemoProxy_copy_impl
  - _pickle_PicklerMemoProxy___reduce___impl
  - PicklerMemoProxy_dealloc
  - PicklerMemoProxy_traverse
  - PicklerMemoProxy_clear
  - PicklerMemoProxy_New
  - Pickler_get_memo
  - Pickler_set_memo
  - Pickler_get_persid
  - Pickler_set_persid
  - find_class
  - marker
  - load_none
  - load_int
  - load_bool
  - calc_binsize
  - calc_binint
  - load_binintx
  - load_binint
  - load_binint1
  - load_binint2
  - load_long
  - load_counted_long
  - load_float
  - load_binfloat
  - load_string
  - load_counted_binstring
  - load_counted_binbytes
  - load_counted_bytearray
  - load_next_buffer
  - load_readonly_buffer
  - load_unicode
  - load_counted_binunicode
  - load_counted_tuple
  - load_tuple
  - load_empty_list
  - load_empty_dict
  - load_empty_set
  - load_list
  - load_dict
  - load_frozenset
  - instantiate
  - load_obj
  - load_inst
  - load_newobj
  - load_newobj_ex
  - load_global
  - load_stack_global
  - load_persid
  - load_binpersid
  - load_pop
  - load_pop_mark
  - load_dup
  - load_get
  - load_binget
  - load_long_binget
  - load_extension
  - load_put
  - load_binput
  - load_long_binput
  - load_memoize
  - do_append
  - load_append
  - load_appends
  - do_setitems
  - load_setitem
  - load_setitems
  - load_additems
  - load_build
  - load_mark
  - load_reduce
  - load_proto
  - load_frame
  - load
  - OP
  - OP_ARG
  - _pickle_Unpickler_load_impl
  - _pickle_Unpickler_find_class_impl
  - _pickle_Unpickler___sizeof___impl
  - Unpickler_dealloc
  - Unpickler_traverse
  - Unpickler_clear
  - _pickle_Unpickler___init___impl
  - _pickle_UnpicklerMemoProxy_clear_impl
  - _pickle_UnpicklerMemoProxy_copy_impl
  - _pickle_UnpicklerMemoProxy___reduce___impl
  - UnpicklerMemoProxy_dealloc
  - UnpicklerMemoProxy_traverse
  - UnpicklerMemoProxy_clear
  - UnpicklerMemoProxy_New
  - Unpickler_get_memo
  - Unpickler_set_memo
  - Unpickler_get_persload
  - Unpickler_set_persload
  - _pickle_dump_impl
  - _pickle_dumps_impl
  - _pickle_load_impl
  - _pickle_loads_impl
  - pickle_clear
  - pickle_free
  - pickle_traverse
  - PyInit__pickle
  source_file: /src/Python-3.8.3/Modules/_pickle.c
  types:
    enum:
    - enumerators:
      - name: DUP
        value: '''2'''
      - name: INT
        value: '''I'''
      - name: UNICODE
        value: '''V'''
      - name: REDUCE
        value: '''R'''
      - name: BININT2
        value: '''M'''
      - name: GLOBAL
        value: '''c'''
      - name: GET
        value: '''g'''
      - name: LIST
        value: '''l'''
      - name: BINPUT
        value: '''q'''
      - name: EMPTY_TUPLE
        value: ''')'''
      - name: LONG1
        value: '''\x8a'''
      - name: BINUNICODE8
        value: '''\x8d'''
      - name: STACK_GLOBAL
        value: '''\x93'''
      - name: ADDITEMS
        value: '''\x90'''
      - name: TUPLE3
        value: '''\x87'''
      - name: SETITEMS
        value: '''u'''
      - name: STOP
        value: '''.'''
      - name: FLOAT
        value: '''F'''
      - name: BININT
        value: '''J'''
      - name: NONE
        value: '''N'''
      - name: STRING
        value: '''S'''
      - name: BINUNICODE
        value: '''X'''
      - name: DICT
        value: '''d'''
      - name: BINGET
        value: '''h'''
      - name: EMPTY_LIST
        value: ''']'''
      - name: LONG_BINPUT
        value: '''r'''
      - name: MEMOIZE
        value: '''\x94'''
      - name: LONG4
        value: '''\x8b'''
      - name: READONLY_BUFFER
        value: '''\x98'''
      - name: NEWOBJ
        value: '''\x81'''
      - name: FRAME
        value: '''\x95'''
      - name: EXT4
        value: '''\x84'''
      - name: SHORT_BINBYTES
        value: '''C'''
      - name: POP
        value: '''0'''
      - name: BININT1
        value: '''K'''
      - name: BINSTRING
        value: '''T'''
      - name: PERSID
        value: '''P'''
      - name: APPEND
        value: '''a'''
      - name: EMPTY_DICT
        value: '''}'''
      - name: INST
        value: '''i'''
      - name: OBJ
        value: '''o'''
      - name: SETITEM
        value: '''s'''
      - name: BINFLOAT
        value: '''G'''
      - name: SHORT_BINUNICODE
        value: '''\x8c'''
      - name: BYTEARRAY8
        value: '''\x96'''
      - name: PROTO
        value: '''\x80'''
      - name: NEWTRUE
        value: '''\x88'''
      - name: BINBYTES8
        value: '''\x8e'''
      - name: FROZENSET
        value: '''\x91'''
      - name: EXT1
        value: '''\x82'''
      - name: TUPLE1
        value: '''\x85'''
      - name: MARK
        value: '''('''
      - name: POP_MARK
        value: '''1'''
      - name: LONG
        value: '''L'''
      - name: SHORT_BINSTRING
        value: '''U'''
      - name: BINPERSID
        value: '''Q'''
      - name: BUILD
        value: '''b'''
      - name: APPENDS
        value: '''e'''
      - name: LONG_BINGET
        value: '''j'''
      - name: PUT
        value: '''p'''
      - name: TUPLE
        value: '''t'''
      - name: EXT2
        value: '''\x83'''
      - name: TUPLE2
        value: '''\x86'''
      - name: NEXT_BUFFER
        value: '''\x97'''
      - name: NEWFALSE
        value: '''\x89'''
      - name: EMPTY_SET
        value: '''\x8f'''
      - name: BINBYTES
        value: '''B'''
      - name: NEWOBJ_EX
        value: '''\x92'''
      item_type: enum
      name: opcode
      pos:
        line_end: 112
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    preproc_defs:
    - item_type: preproc_def
      name: MT_MINSIZE
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/Python-3.8.3/Modules/_pickle.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PERTURB_SHIFT
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/Python-3.8.3/Modules/_pickle.c
      type_or_value: '5'
    structs:
    - fields:
      - name: '*PickleError'
        type: PyObject
      - name: '*PicklingError'
        type: PyObject
      - name: '*UnpicklingError'
        type: PyObject
      - name: '*dispatch_table'
        type: PyObject
      - name: '*extension_registry'
        type: PyObject
      - name: '*extension_cache'
        type: PyObject
      - name: '*inverted_registry'
        type: PyObject
      - name: '*name_mapping_2to3'
        type: PyObject
      - name: '*import_mapping_2to3'
        type: PyObject
      - name: '*name_mapping_3to2'
        type: PyObject
      - name: '*import_mapping_3to2'
        type: PyObject
      - name: '*codecs_encode'
        type: PyObject
      - name: '*getattr'
        type: PyObject
      - name: '*partial'
        type: PyObject
      item_type: struct
      name: PickleState
      pos:
        line_end: 175
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '**data'
        type: PyObject_VAR_HEAD
      - name: mark_set
        type: int
      - name: fence
        type: Py_ssize_t
      - name: allocated
        type: Py_ssize_t
      item_type: struct
      name: Pdata
      pos:
        line_end: 435
        line_start: 429
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '*me_key'
        type: PyObject
      - name: me_value
        type: Py_ssize_t
      item_type: struct
      name: PyMemoEntry
      pos:
        line_end: 605
        line_start: 602
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: mt_mask
        type: size_t
      - name: mt_used
        type: size_t
      - name: mt_allocated
        type: size_t
      - name: '*mt_table'
        type: PyMemoEntry
      item_type: struct
      name: PyMemoTable
      pos:
        line_end: 612
        line_start: 607
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '*memo'
        type: PyObject_HEAD
      - name: '*pers_func'
        type: PyObject
      - name: '*pers_func_self'
        type: PyObject
      - name: '*dispatch_table'
        type: PyObject
      - name: '*reducer_override'
        type: PyObject
      - name: '*write'
        type: PyObject
      - name: '*output_buffer'
        type: PyObject
      - name: output_len
        type: Py_ssize_t
      - name: max_output_len
        type: Py_ssize_t
      - name: proto
        type: int
      - name: bin
        type: int
      - name: framing
        type: int
      - name: frame_start
        type: Py_ssize_t
      - name: buf_size
        type: Py_ssize_t
      - name: fast
        type: int
      - name: fast_nesting
        type: int
      - name: fix_imports
        type: int
      - name: '*fast_memo'
        type: PyObject
      - name: '*buffer_callback'
        type: PyObject
      item_type: struct
      name: PicklerObject
      pos:
        line_end: 651
        line_start: 614
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '*stack'
        type: PyObject_HEAD
      - name: '**memo'
        type: PyObject
      - name: memo_size
        type: size_t
      - name: memo_len
        type: size_t
      - name: '*pers_func'
        type: PyObject
      - name: '*pers_func_self'
        type: PyObject
      - name: buffer
        type: Py_buffer
      - name: '*input_buffer'
        type: char
      - name: '*input_line'
        type: char
      - name: input_len
        type: Py_ssize_t
      - name: next_read_idx
        type: Py_ssize_t
      - name: prefetched_idx
        type: Py_ssize_t
      - name: '*read'
        type: PyObject
      - name: '*readinto'
        type: PyObject
      - name: '*readline'
        type: PyObject
      - name: '*peek'
        type: PyObject
      - name: '*buffers'
        type: PyObject
      - name: '*encoding'
        type: char
      - name: '*errors'
        type: char
      - name: '*marks'
        type: Py_ssize_t
      - name: num_marks
        type: Py_ssize_t
      - name: marks_size
        type: Py_ssize_t
      - name: proto
        type: int
      - name: fix_imports
        type: int
      item_type: struct
      name: UnpicklerObject
      pos:
        line_end: 693
        line_start: 653
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '*pickler'
        type: PyObject_HEAD
      item_type: struct
      name: PicklerMemoProxyObject
      pos:
        line_end: 698
        line_start: 695
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    - fields:
      - name: '*unpickler'
        type: PyObject_HEAD
      item_type: struct
      name: UnpicklerMemoProxyObject
      pos:
        line_end: 703
        line_start: 700
        source_file: /src/Python-3.8.3/Modules/_pickle.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/addrinfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: getaddrinfo
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: fake_getaddrinfo
    - item_type: preproc_def
      name: EAI_ADDRFAMILY
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '1      '
    - item_type: preproc_def
      name: EAI_AGAIN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '2      '
    - item_type: preproc_def
      name: EAI_BADFLAGS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '3      '
    - item_type: preproc_def
      name: EAI_FAIL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '4      '
    - item_type: preproc_def
      name: EAI_FAMILY
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '5      '
    - item_type: preproc_def
      name: EAI_MEMORY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '6      '
    - item_type: preproc_def
      name: EAI_NODATA
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '7      '
    - item_type: preproc_def
      name: EAI_NONAME
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '8      '
    - item_type: preproc_def
      name: EAI_SERVICE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '9      '
    - item_type: preproc_def
      name: EAI_SOCKTYPE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '10      '
    - item_type: preproc_def
      name: EAI_SYSTEM
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '11      '
    - item_type: preproc_def
      name: EAI_BADHINTS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '12'
    - item_type: preproc_def
      name: EAI_PROTOCOL
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '13'
    - item_type: preproc_def
      name: EAI_MAX
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '14'
    - item_type: preproc_def
      name: AI_PASSIVE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: AI_CANONNAME
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: AI_NUMERICHOST
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: AI_MASK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST)
    - item_type: preproc_def
      name: AI_ALL
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: AI_V4MAPPED_CFG
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: AI_ADDRCONFIG
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: AI_V4MAPPED
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: AI_DEFAULT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: (AI_V4MAPPED_CFG | AI_ADDRCONFIG)
    - item_type: preproc_def
      name: NI_MAXHOST
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '1025'
    - item_type: preproc_def
      name: NI_MAXSERV
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NI_NOFQDN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: NI_NUMERICHOST
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: NI_NAMEREQD
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: NI_NUMERICSERV
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: NI_DGRAM
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: _SS_MAXSIZE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: '128'
    - item_type: preproc_def
      name: _SS_ALIGNSIZE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: (sizeof(long long))
    - item_type: preproc_def
      name: _SS_PAD1SIZE
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: (_SS_ALIGNSIZE - sizeof(u_char) * 2)
    - item_type: preproc_def
      name: _SS_PAD2SIZE
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
      type_or_value: "(_SS_MAXSIZE - sizeof(u_char) * 2 - \\\n                _SS_PAD1SIZE
        - _SS_ALIGNSIZE)"
    structs:
    - fields:
      - name: ai_flags
        type: int
      - name: ai_family
        type: int
      - name: ai_socktype
        type: int
      - name: ai_protocol
        type: int
      - name: ai_addrlen
        type: size_t
      - name: '*ai_canonname'
        type: char
      - name: '*ai_addr'
        type: struct sockaddr
      - name: '*ai_next'
        type: struct addrinfo
      item_type: struct
      name: addrinfo
      pos:
        line_end: 135
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
    - fields:
      - name: __ss_pad1[_SS_PAD1SIZE]
        type: char
      - name: __ss_align
        type: long long
      - name: __ss_pad2[_SS_PAD2SIZE]
        type: char
      item_type: struct
      name: sockaddr_storage
      pos:
        line_end: 158
        line_start: 148
        source_file: /src/Python-3.8.3/Modules/addrinfo.h
    typedefs: []
    union: []
- function_names:
  - PyArrayIter_Check
  - array_Check
  - array_CheckExact
  - array_resize
  - Py_SIZE
  - b_getitem
  - b_setitem
  - BB_getitem
  - BB_setitem
  - u_getitem
  - u_setitem
  - h_getitem
  - h_setitem
  - HH_getitem
  - HH_setitem
  - i_getitem
  - i_setitem
  - II_getitem
  - get_int_unless_float
  - II_setitem
  - l_getitem
  - l_setitem
  - LL_getitem
  - LL_setitem
  - q_getitem
  - q_setitem
  - QQ_getitem
  - QQ_setitem
  - f_getitem
  - f_setitem
  - d_getitem
  - d_setitem
  - DEFINE_COMPAREITEMS
  - newarrayobject
  - getarrayitem
  - ins1
  - array_dealloc
  - array_richcompare
  - array_length
  - array_item
  - array_slice
  - array_array___copy___impl
  - array_array___deepcopy__
  - array_concat
  - array_repeat
  - array_del_slice
  - array_ass_item
  - setarrayitem
  - array_iter_extend
  - array_do_extend
  - array_inplace_concat
  - array_inplace_repeat
  - ins
  - array_array_count
  - array_array_index
  - array_contains
  - array_array_remove
  - array_array_pop_impl
  - array_array_extend
  - array_array_insert_impl
  - array_array_buffer_info_impl
  - array_array_append
  - array_array_byteswap_impl
  - array_array_reverse_impl
  - array_array_fromfile_impl
  - array_array_tofile
  - array_array_fromlist
  - array_array_tolist_impl
  - frombytes
  - array_array_fromstring_impl
  - array_array_frombytes_impl
  - array_array_tobytes_impl
  - array_array_tostring_impl
  - array_array_fromunicode_impl
  - array_array_tounicode_impl
  - array_array___sizeof___impl
  - typecode_to_mformat_code
  - make_array
  - array__array_reconstructor_impl
  - array_array___reduce_ex__
  - array_get_typecode
  - array_get_itemsize
  - array_repr
  - array_subscr
  - array_ass_subscr
  - array_buffer_getbuf
  - array_buffer_relbuf
  - array_new
  - array_iter
  - arrayiter_next
  - arrayiter_dealloc
  - arrayiter_traverse
  - array_arrayiterator___reduce___impl
  - array_arrayiterator___setstate__
  - array_modexec
  - PyInit_array
  source_file: /src/Python-3.8.3/Modules/arraymodule.c
  types:
    enum:
    - enumerators:
      - name: UNSIGNED_INT16_LE
        value: '2'
      - name: SIGNED_INT16_LE
        value: '4'
      - name: SIGNED_INT16_BE
        value: '5'
      - name: UNSIGNED_INT32_BE
        value: '7'
      - name: UNSIGNED_INT64_BE
        value: '11'
      - name: IEEE_754_DOUBLE_BE
        value: '17'
      - name: IEEE_754_FLOAT_BE
        value: '15'
      - name: SIGNED_INT32_BE
        value: '9'
      - name: SIGNED_INT64_BE
        value: '13'
      - name: UTF16_BE
        value: '19'
      - name: UTF32_LE
        value: '20'
      - name: UNKNOWN_FORMAT
        value: '-1'
      - name: UNSIGNED_INT8
        value: '0'
      - name: UNSIGNED_INT16_BE
        value: '3'
      - name: SIGNED_INT8
        value: '1'
      - name: UNSIGNED_INT32_LE
        value: '6'
      - name: SIGNED_INT32_LE
        value: '8'
      - name: UNSIGNED_INT64_LE
        value: '10'
      - name: IEEE_754_FLOAT_LE
        value: '14'
      - name: SIGNED_INT64_LE
        value: '12'
      - name: IEEE_754_DOUBLE_LE
        value: '16'
      - name: UTF16_LE
        value: '18'
      - name: UTF32_BE
        value: '21'
      item_type: enum
      name: machine_format_code
      pos:
        line_end: 96
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    preproc_defs:
    - item_type: preproc_def
      name: MACHINE_FORMAT_CODE_MIN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MACHINE_FORMAT_CODE_MAX
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
      type_or_value: '21'
    - item_type: preproc_def
      name: b
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
      type_or_value: ((arrayobject *)bb)
    - item_type: preproc_def
      name: b
      pos:
        line_end: 1001
        line_start: 1000
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
      type_or_value: ((arrayobject *)bb)
    structs:
    - fields:
      - name: typecode
        type: char
      - name: itemsize
        type: int
      - name: '* (*getitem)(struct arrayobject *, Py_ssize_t)'
        type: PyObject
      - name: (*setitem)(struct arrayobject *, Py_ssize_t, PyObject *)
        type: int
      - name: (*compareitems)(const void *, const void *, Py_ssize_t)
        type: int
      - name: '*formats'
        type: char
      - name: is_integer_type
        type: int
      - name: is_signed
        type: int
      item_type: struct
      name: arraydescr
      pos:
        line_end: 37
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - fields:
      - name: '*ob_item'
        type: PyObject_VAR_HEAD
      - name: allocated
        type: Py_ssize_t
      - name: '*ob_descr'
        type: struct arraydescr
      - name: '*weakreflist'
        type: PyObject
      - name: ob_exports
        type: int
      item_type: struct
      name: arrayobject
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*ao'
        type: arrayobject
      - name: '* (*getitem)(struct arrayobject *, Py_ssize_t)'
        type: PyObject
      item_type: struct
      name: arrayiterobject
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    - fields:
      - name: size
        type: size_t
      - name: is_signed
        type: int
      - name: is_big_endian
        type: int
      item_type: struct
      name: mformatdescr
      pos:
        line_end: 1784
        line_start: 1780
        source_file: /src/Python-3.8.3/Modules/arraymodule.c
    typedefs: []
    union: []
- function_names:
  - longReverse
  - SHAcopy
  - ROR
  - Ch
  - Maj
  - S
  - R
  - Sigma0
  - Sigma1
  - Gamma0
  - Gamma1
  - sha_transform
  - RND
  - sha_init
  - sha224_init
  - sha_update
  - sha_final
  - newSHA224object
  - newSHA256object
  - SHA_dealloc
  - SHA256Type_copy_impl
  - SHA256Type_digest_impl
  - SHA256Type_hexdigest_impl
  - SHA256Type_update
  - SHA256_get_block_size
  - SHA256_get_name
  - _sha256_sha256_impl
  - _sha256_sha224_impl
  - insint
  - PyInit__sha256
  source_file: /src/Python-3.8.3/Modules/sha256module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA_BLOCKSIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/sha256module.c
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA_DIGESTSIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/sha256module.c
      type_or_value: '32'
    structs:
    - fields:
      - name: SHA_INT32 digest[8]
        type: PyObject_HEAD
      - name: count_lo
        type: SHA_INT32
      - name: data[SHA_BLOCKSIZE]
        type: SHA_BYTE
      - name: local
        type: int
      - name: digestsize
        type: int
      item_type: struct
      name: SHAobject
      pos:
        line_end: 53
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/sha256module.c
    typedefs:
    - item_type: typedef
      name: SHA_BYTE
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/sha256module.c
      type: unsigned char
    - item_type: typedef
      name: SHA_INT32
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/sha256module.c
      type: unsigned int
    union: []
- function_names:
  - get_configs
  - PyInit__testinternalcapi
  source_file: /src/Python-3.8.3/Modules/_testinternalcapi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyFloat_FromPyTime
  - time_time
  - time_time_ns
  - _PyTime_GetClockWithInfo
  - perf_counter
  - time_clock_gettime
  - time_clock_gettime_ns
  - time_clock_settime
  - time_clock_settime_ns
  - time_clock_getres
  - time_pthread_getcpuclockid
  - time_sleep
  - tmtotuple
  - SET
  - parse_time_t_args
  - time_gmtime
  - timegm
  - time_localtime
  - gettmarg
  - checktm
  - time_strftime
  - time_strptime
  - _asctime
  - time_asctime
  - time_ctime
  - time_mktime
  - time_tzset
  - time_monotonic
  - time_monotonic_ns
  - time_perf_counter
  - time_perf_counter_ns
  - _PyTime_GetProcessTimeWithInfo
  - time_process_time
  - time_process_time_ns
  - _PyTime_GetThreadTimeWithInfo
  - _PyTime_GetThreadTimeWithInfo
  - time_thread_time
  - time_thread_time_ns
  - time_get_clock_info
  - get_zone
  - get_gmtoff
  - init_timezone
  - PyInit_time
  - pysleep
  source_file: /src/Python-3.8.3/Modules/timemodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _Py_timezone
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: _timezone
    - item_type: preproc_def
      name: _Py_daylight
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: _daylight
    - item_type: preproc_def
      name: _Py_tzname
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: _tzname
    - item_type: preproc_def
      name: _Py_timezone
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: timezone
    - item_type: preproc_def
      name: _Py_daylight
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: daylight
    - item_type: preproc_def
      name: _Py_tzname
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: tzname
    - item_type: preproc_def
      name: SEC_TO_NS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: (1000 * 1000 * 1000)
    - item_type: preproc_def
      name: CLOCKS_PER_SEC
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: CLK_TCK
    - item_type: preproc_def
      name: CLOCKS_PER_SEC
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: '1000000'
    - item_type: preproc_def
      name: STRFTIME_FORMAT_CODES
      pos:
        line_end: 680
        line_start: 660
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: '"Commonly used format codes:\n\

        \n\

        %Y  Year with century as a decimal number.\n\

        %m  Month as a decimal number [01,12].\n\

        %d  Day of the month as a decimal number [01,31].\n\

        %H  Hour (24-hour clock) as a decimal number [00,23].\n\

        %M  Minute as a decimal number [00,59].\n\

        %S  Second as a decimal number [00,61].\n\

        %z  Time zone offset from UTC.\n\

        %a  Locale''s abbreviated weekday name.\n\

        %A  Locale''s full weekday name.\n\

        %b  Locale''s abbreviated month name.\n\

        %B  Locale''s full month name.\n\

        %c  Locale''s appropriate date and time representation.\n\

        %I  Hour (12-hour clock) as a decimal number [01,12].\n\

        %p  Locale''s equivalent of either AM or PM.\n\

        \n\

        Other codes may be available on your platform.  See documentation for\n\

        the C library strftime function.\n"'
    - item_type: preproc_def
      name: time_char
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: wchar_t
    - item_type: preproc_def
      name: format_time
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: wcsftime
    - item_type: preproc_def
      name: time_strlen
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: wcslen
    - item_type: preproc_def
      name: time_char
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: char
    - item_type: preproc_def
      name: format_time
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: strftime
    - item_type: preproc_def
      name: time_strlen
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: strlen
    - item_type: preproc_def
      name: MAX_TIMEZONE
      pos:
        line_end: 1631
        line_start: 1630
        source_file: /src/Python-3.8.3/Modules/timemodule.c
      type_or_value: (48 * 3600)
    structs: []
    typedefs: []
    union: []
- function_names:
  - RESTORE_LOCALE
  - completion_matches
  - readline_state
  - readline_clear
  - readline_traverse
  - readline_free
  - encode
  - decode
  - parse_and_bind
  - read_init_file
  - read_history_file
  - write_history_file
  - append_history_file
  - set_history_length
  - get_history_length
  - set_hook
  - set_completion_display_matches_hook
  - set_startup_hook
  - set_pre_input_hook
  - get_completion_type
  - get_begidx
  - get_endidx
  - set_completer_delims
  - _py_free_history_entry
  - _py_free_history_entry
  - py_remove_history
  - py_replace_history
  - py_add_history
  - py_set_auto_history
  - get_completer_delims
  - set_completer
  - get_completer
  - _py_get_history_length
  - get_history_item
  - get_current_history_length
  - get_line_buffer
  - py_clear_history
  - insert_text
  - redisplay
  - on_hook
  - on_completion_display_matches_hook
  - readline_sigwinch_handler
  - on_completion
  - flex_complete
  - setup_readline
  - rlhandler
  - readline_until_enter_or_signal
  - call_readline
  - PyInit_readline
  source_file: /src/Python-3.8.3/Modules/readline.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: readlinestate_global
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/readline.c
      type_or_value: ((readlinestate *)PyModule_GetState(PyState_FindModule(&readlinemodule)))
    structs:
    - fields:
      - name: '*completion_display_matches_hook'
        type: PyObject
      - name: '*startup_hook'
        type: PyObject
      - name: '*pre_input_hook'
        type: PyObject
      - name: '*completer'
        type: PyObject
      - name: '*begidx'
        type: PyObject
      - name: '*endidx'
        type: PyObject
      item_type: struct
      name: readlinestate
      pos:
        line_end: 86
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/readline.c
    typedefs: []
    union: []
- function_names:
  - GET_BUFFER_VIEW_OR_ERROR
  - GET_BUFFER_VIEW_OR_ERROUT
  - ENTER_HASHLIB
  - LEAVE_HASHLIB
  source_file: /src/Python-3.8.3/Modules/hashlib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHLIB_GIL_MINSIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/hashlib.h
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PatternObject_GetCode
  source_file: /src/Python-3.8.3/Modules/sre.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SRE_CODE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/sre.h
      type_or_value: Py_UCS4
    - item_type: preproc_def
      name: SRE_MAXREPEAT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/sre.h
      type_or_value: (~(SRE_CODE)0)
    - item_type: preproc_def
      name: SRE_MAXGROUPS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/sre.h
      type_or_value: ((~(SRE_CODE)0) / 2)
    - item_type: preproc_def
      name: SRE_MAXREPEAT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/sre.h
      type_or_value: ((SRE_CODE)PY_SSIZE_T_MAX)
    - item_type: preproc_def
      name: SRE_MAXGROUPS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/sre.h
      type_or_value: ((SRE_CODE)PY_SSIZE_T_MAX / SIZEOF_SIZE_T / 2)
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_VAR_HEAD
      - name: '* groupindex'
        type: PyObject
      - name: '* indexgroup'
        type: PyObject
      - name: '* pattern'
        type: PyObject
      - name: flags
        type: int
      - name: '*weakreflist'
        type: PyObject
      - name: isbytes
        type: int
      - name: codesize
        type: Py_ssize_t
      - name: code[1]
        type: SRE_CODE
      item_type: struct
      name: PatternObject
      pos:
        line_end: 39
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/sre.h
    - fields:
      - name: '* string'
        type: PyObject_VAR_HEAD
      - name: '* regs'
        type: PyObject
      - name: '* pattern'
        type: PatternObject
      - name: pos
        type: Py_ssize_t
      - name: lastindex
        type: Py_ssize_t
      - name: groups
        type: Py_ssize_t
      - name: mark[1]
        type: Py_ssize_t
      item_type: struct
      name: MatchObject
      pos:
        line_end: 52
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/sre.h
    - fields:
      - name: count
        type: Py_ssize_t
      - name: '* pattern'
        type: SRE_CODE
      - name: '* last_ptr'
        type: void
      - name: '*prev'
        type: struct SRE_REPEAT_T
      item_type: struct
      name: SRE_REPEAT_T
      pos:
        line_end: 59
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/sre.h
    - fields:
      - name: '* ptr'
        type: void
      - name: '* beginning'
        type: void
      - name: '* start'
        type: void
      - name: '* end'
        type: void
      - name: '* string'
        type: PyObject
      - name: buffer
        type: Py_buffer
      - name: pos
        type: Py_ssize_t
      - name: isbytes
        type: int
      - name: charsize
        type: int
      - name: lastindex
        type: Py_ssize_t
      - name: lastmark
        type: Py_ssize_t
      - name: '** mark'
        type: void
      - name: match_all
        type: int
      - name: must_advance
        type: int
      - name: '* data_stack'
        type: char
      - name: data_stack_size
        type: size_t
      - name: data_stack_base
        type: size_t
      - name: '*repeat'
        type: SRE_REPEAT
      item_type: struct
      name: SRE_STATE
      pos:
        line_end: 85
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/sre.h
    - fields:
      - name: '* pattern'
        type: PyObject_HEAD
      - name: state
        type: SRE_STATE
      item_type: struct
      name: ScannerObject
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/sre.h
    typedefs: []
    union: []
- function_names:
  - lock_dealloc
  - acquire_timed
  - lock_acquire_parse_args
  - lock_PyThread_acquire_lock
  - lock_PyThread_release_lock
  - lock_locked_lock
  - lock_repr
  - rlock_dealloc
  - rlock_acquire
  - rlock_release
  - rlock_acquire_restore
  - rlock_release_save
  - rlock_is_owned
  - rlock_new
  - rlock_repr
  - newlockobject
  - localdummy_dealloc
  - _local_create_dummy
  - local_new
  - local_traverse
  - local_clear
  - local_dealloc
  - _ldict
  - local_setattro
  - local_getattro
  - _localdummy_destroyed
  - t_bootstrap
  - thread_PyThread_start_new_thread
  - thread_PyThread_exit_thread
  - thread_PyThread_interrupt_main
  - thread_PyThread_allocate_lock
  - thread_get_ident
  - thread_get_native_id
  - thread__count
  - release_sentinel
  - thread__set_sentinel
  - thread_stack_size
  - thread_excepthook_file
  - thread_excepthook
  - PyInit__thread
  source_file: /src/Python-3.8.3/Modules/_threadmodule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: PyThread_type_lock
        type: PyObject_HEAD
      - name: '*in_weakreflist'
        type: PyObject
      - name: locked
        type: char
      item_type: struct
      name: lockobject
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    - fields:
      - name: PyThread_type_lock
        type: PyObject_HEAD
      - name: rlock_owner
        type: unsigned long
      - name: rlock_count
        type: unsigned long
      - name: '*in_weakreflist'
        type: PyObject
      item_type: struct
      name: rlockobject
      pos:
        line_end: 267
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    - fields:
      - name: '*localdict'
        type: PyObject_HEAD
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: localdummyobject
      pos:
        line_end: 595
        line_start: 591
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    - fields:
      - name: '*key'
        type: PyObject_HEAD
      - name: '*args'
        type: PyObject
      - name: '*kw'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      - name: '*dummies'
        type: PyObject
      - name: '*wr_callback'
        type: PyObject
      item_type: struct
      name: localobject
      pos:
        line_end: 644
        line_start: 634
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    - fields:
      - name: '*interp'
        type: PyInterpreterState
      - name: '*func'
        type: PyObject
      - name: '*args'
        type: PyObject
      - name: '*keyw'
        type: PyObject
      - name: '*tstate'
        type: PyThreadState
      item_type: struct
      name: bootstate
      pos:
        line_end: 987
        line_start: 981
        source_file: /src/Python-3.8.3/Modules/_threadmodule.c
    typedefs: []
    union: []
- function_names:
  - siftdown
  - siftup
  - _heapq_heappush_impl
  - heappop_internal
  - _heapq_heappop
  - heapreplace_internal
  - _heapq_heapreplace_impl
  - _heapq_heappushpop_impl
  - keep_top_bit
  - cache_friendly_heapify
  - heapify_internal
  - _heapq_heapify
  - siftdown_max
  - siftup_max
  - _heapq__heappop_max
  - _heapq__heapreplace_max_impl
  - _heapq__heapify_max
  - PyInit__heapq
  source_file: /src/Python-3.8.3/Modules/_heapqmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - abc_data_dealloc
  - abc_data_new
  - _get_impl
  - _in_weak_set
  - _destroy
  - _add_to_weak_set
  - _abc__reset_registry
  - _abc__reset_caches
  - _abc__get_dump
  - compute_abstract_methods
  - _abc__abc_init
  - _abc__abc_register_impl
  - _abc__abc_instancecheck_impl
  - _abc__abc_subclasscheck_impl
  - subclasscheck_check_registry
  - _abc_get_cache_token_impl
  - PyInit__abc
  source_file: /src/Python-3.8.3/Modules/_abc.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*_abc_registry'
        type: PyObject_HEAD
      - name: '*_abc_cache'
        type: PyObject
      - name: '*_abc_negative_cache'
        type: PyObject
      - name: _abc_negative_cache_version
        type: unsigned long long
      item_type: struct
      name: _abc_data
      pos:
        line_end: 38
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_abc.c
    typedefs: []
    union: []
- function_names:
  - SIMPLE_FORMAT
  - FIX_FORMAT
  - NDArray_Check
  - CHECK_LIST_OR_TUPLE
  - PyMem_XFree
  - HAVE_PTR
  - ADJUST_PTR
  - ND_IS_CONSUMER
  - ND_C_CONTIGUOUS
  - ND_FORTRAN_CONTIGUOUS
  - ND_ANY_CONTIGUOUS
  - REQ_INDIRECT
  - REQ_C_CONTIGUOUS
  - REQ_F_CONTIGUOUS
  - REQ_ANY_CONTIGUOUS
  - REQ_STRIDES
  - REQ_SHAPE
  - REQ_WRITABLE
  - REQ_FORMAT
  - ndbuf_new
  - ndbuf_free
  - ndbuf_push
  - ndbuf_delete
  - ndbuf_pop
  - ndarray_new
  - ndarray_dealloc
  - ndarray_init_staticbuf
  - init_flags
  - get_nmemb
  - pack_from_list
  - pack_single
  - copy_rec
  - cmp_structure
  - copy_buffer
  - unpack_single
  - unpack_rec
  - ndarray_as_list
  - get_itemsize
  - get_format
  - init_simple
  - seq_as_ssize_array
  - strides_from_shape
  - verify_structure
  - init_suboffsets
  - init_len
  - init_structure
  - init_ndbuf
  - ndarray_push_base
  - ndarray_init
  - ndarray_push
  - ndarray_pop
  - ndarray_getbuf
  - ndarray_releasebuf
  - ptr_from_index
  - ndarray_item
  - init_slice
  - copy_structure
  - ndarray_subscript
  - ndarray_ass_subscript
  - slice_indices
  - ssize_array_as_tuple
  - ndarray_get_flags
  - ndarray_get_offset
  - ndarray_get_obj
  - ndarray_get_nbytes
  - ndarray_get_readonly
  - ndarray_get_itemsize
  - ndarray_get_format
  - ndarray_get_ndim
  - ndarray_get_shape
  - ndarray_get_strides
  - ndarray_get_suboffsets
  - ndarray_c_contig
  - ndarray_fortran_contig
  - ndarray_contig
  - ndarray_tolist
  - ndarray_tobytes
  - ndarray_add_suboffsets
  - ndarray_memoryview_from_buffer
  - get_pointer
  - get_sizeof_void_p
  - get_ascii_order
  - get_contiguous
  - py_buffer_to_contiguous
  - fmtcmp
  - arraycmp
  - cmp_contig
  - is_contiguous
  - ndarray_hash
  - staticarray_new
  - staticarray_init
  - staticarray_dealloc
  - staticarray_getbuf
  - PyInit__testbuffer
  source_file: /src/Python-3.8.3/Modules/_testbuffer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ND_MAX_NDIM
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: (2 * PyBUF_MAX_NDIM)
    - item_type: preproc_def
      name: ND_DEFAULT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x000'
    - item_type: preproc_def
      name: ND_VAREXPORT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x001   '
    - item_type: preproc_def
      name: ND_WRITABLE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x002   '
    - item_type: preproc_def
      name: ND_FORTRAN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x004   '
    - item_type: preproc_def
      name: ND_SCALAR
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x008   '
    - item_type: preproc_def
      name: ND_PIL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x010   '
    - item_type: preproc_def
      name: ND_REDIRECT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x020   '
    - item_type: preproc_def
      name: ND_GETBUF_FAIL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x040   '
    - item_type: preproc_def
      name: ND_GETBUF_UNDEFINED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x080   '
    - item_type: preproc_def
      name: ND_C
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x100   '
    - item_type: preproc_def
      name: ND_OWN_ARRAYS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x200   '
    - item_type: preproc_def
      name: PyBUF_UNUSED
      pos:
        line_end: 1278
        line_start: 1277
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
      type_or_value: '0x10000'
    structs:
    - fields:
      - name: '*next'
        type: struct ndbuf
      - name: '*prev'
        type: struct ndbuf
      - name: len
        type: Py_ssize_t
      - name: offset
        type: Py_ssize_t
      - name: '*data'
        type: char
      - name: flags
        type: int
      - name: exports
        type: Py_ssize_t
      - name: base
        type: Py_buffer
      item_type: struct
      name: ndbuf
      pos:
        line_end: 97
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - fields:
      - name: flags
        type: PyObject_HEAD
      - name: staticbuf
        type: ndbuf_t
      - name: '*head'
        type: ndbuf_t
      item_type: struct
      name: NDArrayObject
      pos:
        line_end: 104
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: s_len
        type: Py_ssize_t
      item_type: struct
      name: PyPartialStructObject
      pos:
        line_end: 288
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    - fields:
      - name: legacy_mode
        type: PyObject_HEAD
      item_type: struct
      name: StaticArrayObject
      pos:
        line_end: 2692
        line_start: 2689
        source_file: /src/Python-3.8.3/Modules/_testbuffer.c
    typedefs: []
    union: []
- function_names:
  - TABLES_LOCK
  - TABLES_UNLOCK
  - TRACEBACK_SIZE
  - tracemalloc_error
  - get_reentrant
  - set_reentrant
  - get_reentrant
  - set_reentrant
  - hashtable_hash_pyobject
  - hashtable_compare_unicode
  - hashtable_hash_pointer_t
  - hashtable_compare_pointer_t
  - hashtable_new
  - raw_malloc
  - raw_free
  - hashtable_hash_traceback
  - hashtable_compare_traceback
  - tracemalloc_get_frame
  - traceback_hash
  - traceback_get_frames
  - traceback_new
  - tracemalloc_use_domain_cb
  - tracemalloc_use_domain
  - tracemalloc_remove_trace
  - REMOVE_TRACE
  - tracemalloc_add_trace
  - ADD_TRACE
  - tracemalloc_alloc
  - tracemalloc_realloc
  - tracemalloc_free
  - tracemalloc_alloc_gil
  - tracemalloc_malloc_gil
  - tracemalloc_calloc_gil
  - tracemalloc_realloc_gil
  - tracemalloc_raw_alloc
  - tracemalloc_raw_malloc
  - tracemalloc_raw_calloc
  - tracemalloc_raw_realloc
  - tracemalloc_clear_filename
  - traceback_free_traceback
  - tracemalloc_clear_traces
  - tracemalloc_init
  - tracemalloc_deinit
  - tracemalloc_start
  - tracemalloc_stop
  - _tracemalloc_is_tracing_impl
  - _tracemalloc_clear_traces_impl
  - frame_to_pyobject
  - traceback_to_pyobject
  - trace_to_pyobject
  - tracemalloc_get_traces_fill
  - tracemalloc_pyobject_decref_cb
  - _tracemalloc__get_traces_impl
  - tracemalloc_get_traceback
  - _tracemalloc__get_object_traceback
  - PUTS
  - _PyMem_DumpFrame
  - _PyMem_DumpTraceback
  - _tracemalloc_start_impl
  - _tracemalloc_stop_impl
  - _tracemalloc_get_traceback_limit_impl
  - _tracemalloc_get_tracemalloc_memory_impl
  - _tracemalloc_get_traced_memory_impl
  - PyInit__tracemalloc
  - _PyTraceMalloc_Init
  - _PyTraceMalloc_Fini
  - PyTraceMalloc_Track
  - PyTraceMalloc_Untrack
  - _PyTraceMalloc_NewReference
  - _PyTraceMalloc_GetTraceback
  source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_DOMAIN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_NFRAME
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
      type_or_value: ((INT_MAX - (int)sizeof(traceback_t)) / (int)sizeof(frame_t)
        + 1)
    - item_type: preproc_def
      name: REENTRANT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
      type_or_value: Py_True
    structs:
    - fields:
      - name: mem
        type: PyMemAllocatorEx
      - name: raw
        type: PyMemAllocatorEx
      - name: obj
        type: PyMemAllocatorEx
      item_type: struct
      name: allocators
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - fields:
      - name: hash
        type: Py_uhash_t
      - name: nframe
        type: int
      - name: frames[1]
        type: frame_t
      item_type: struct
      name: traceback_t
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - fields:
      - name: size
        type: size_t
      - name: '*traceback'
        type: traceback_t
      item_type: struct
      name: trace_t
      pos:
        line_end: 101
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    - fields:
      - name: '*traces'
        type: _Py_hashtable_t
      - name: '*tracebacks'
        type: _Py_hashtable_t
      - name: '*list'
        type: PyObject
      item_type: struct
      name: get_traces_t
      pos:
        line_end: 1269
        line_start: 1265
        source_file: /src/Python-3.8.3/Modules/_tracemalloc.c
    typedefs: []
    union: []
- function_names:
  - set_error_attr
  - set_error
  - have_handler
  - conv_string_to_unicode
  - conv_string_len_to_unicode
  - error_external_entity_ref_handler
  - noop_character_data_handler
  - flag_error
  - call_with_frame
  - string_intern
  - call_character_handler
  - flush_character_buffer
  - my_CharacterDataHandler
  - my_StartElementHandler
  - RC_HANDLER
  - VOID_HANDLER
  - INT_HANDLER
  - conv_content_model
  - my_ElementDeclHandler
  - get_parse_result
  - pyexpat_xmlparser_Parse_impl
  - readinst
  - pyexpat_xmlparser_ParseFile
  - pyexpat_xmlparser_SetBase_impl
  - pyexpat_xmlparser_GetBase_impl
  - pyexpat_xmlparser_GetInputContext_impl
  - pyexpat_xmlparser_ExternalEntityParserCreate_impl
  - pyexpat_xmlparser_SetParamEntityParsing_impl
  - pyexpat_xmlparser_UseForeignDTD_impl
  - PyUnknownEncodingHandler
  - newxmlparseobject
  - xmlparse_dealloc
  - xmlparse_handler_getter
  - xmlparse_handler_setter
  - INT_GETTER
  - xmlparse_buffer_text_getter
  - xmlparse_buffer_text_setter
  - xmlparse_buffer_size_getter
  - xmlparse_buffer_size_setter
  - xmlparse_buffer_used_getter
  - xmlparse_namespace_prefixes_getter
  - xmlparse_namespace_prefixes_setter
  - xmlparse_ordered_attributes_getter
  - xmlparse_ordered_attributes_setter
  - xmlparse_specified_attributes_getter
  - xmlparse_specified_attributes_setter
  - XMLPARSE_GETTER_DEF
  - XMLPARSE_GETTER_SETTER_DEF
  - xmlparse_traverse
  - xmlparse_clear
  - pyexpat_ParserCreate_impl
  - pyexpat_ErrorString_impl
  - init_handler_descrs
  - MODULE_INITFUNC
  - MYCONST
  - MYCONST
  - MYCONST
  - clear_handlers
  source_file: /src/Python-3.8.3/Modules/pyexpat.c
  types:
    enum:
    - enumerators:
      - name: EndElement
      - name: NotationDecl
      - name: StartCdataSection
      - name: EntityDecl
      - name: NotStandalone
      - name: ProcessingInstruction
      - name: StartNamespaceDecl
      - name: EndCdataSection
      - name: ExternalEntityRef
      - name: XmlDecl
      - name: StartElement
      - name: CharacterData
      - name: EndNamespaceDecl
      - name: Default
      - name: StartDoctypeDecl
      - name: ElementDecl
      - name: _DummyDecl
      - name: UnparsedEntityDecl
      - name: Comment
      - name: EndDoctypeDecl
      - name: DefaultHandlerExpand
      - name: AttlistDecl
      - name: SkippedEntity
      item_type: enum
      name: HandlerTypes
      pos:
        line_end: 47
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    preproc_defs:
    - item_type: preproc_def
      name: XML_COMBINED_VERSION
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: (10000*XML_MAJOR_VERSION+100*XML_MINOR_VERSION+XML_MICRO_VERSION)
    - item_type: preproc_def
      name: CHARACTER_DATA_BUFFER_SIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: my_DefaultHandlerExpand
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: my_DefaultHandlerExpandHandler
    - item_type: preproc_def
      name: MAX_CHUNK_SIZE
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: (1 << 20)
    - item_type: preproc_def
      name: BUF_SIZE
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: MODULE_NAME
      pos:
        line_end: 1582
        line_start: 1581
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: '"pyexpat"'
    - item_type: preproc_def
      name: MODULE_INITFUNC
      pos:
        line_end: 1586
        line_start: 1585
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type_or_value: PyInit_pyexpat
    structs:
    - fields:
      - name: XML_Parser
        type: PyObject_HEAD
      - name: ordered_attributes
        type: int
      - name: specified_attributes
        type: int
      - name: in_callback
        type: int
      - name: ns_prefixes
        type: int
      - name: '*buffer'
        type: XML_Char
      - name: buffer_size
        type: int
      - name: buffer_used
        type: int
      - name: '*intern'
        type: PyObject
      - name: '**handlers'
        type: PyObject
      item_type: struct
      name: xmlparseobject
      pos:
        line_end: 69
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    - fields:
      - name: '*name'
        type: char
      - name: setter
        type: xmlhandlersetter
      - name: handler
        type: xmlhandler
      - name: getset
        type: PyGetSetDef
      item_type: struct
      name: HandlerInfo
      pos:
        line_end: 85
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
    typedefs:
    - item_type: typedef
      name: (*xmlhandlersetter)(XML_Parser self, void *meth)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type: void
    - item_type: typedef
      name: '* xmlhandler'
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/pyexpat.c
      type: void
    union: []
- function_names:
  - PyScanner_Check
  - PyScanner_CheckExact
  - PyEncoder_Check
  - PyEncoder_CheckExact
  - join_list_unicode
  - S_CHAR
  - IS_WHITESPACE
  - ascii_escape_unichar
  - ascii_escape_unicode
  - escape_unicode
  - raise_errmsg
  - raise_stop_iteration
  - _build_rval_index_tuple
  - scanstring_unicode
  - py_scanstring
  - py_encode_basestring_ascii
  - py_encode_basestring
  - scanner_dealloc
  - scanner_traverse
  - scanner_clear
  - _parse_object_unicode
  - _parse_array_unicode
  - _parse_constant
  - _match_number_unicode
  - scan_once_unicode
  - scanner_call
  - scanner_new
  - encoder_new
  - encoder_call
  - _encoded_const
  - encoder_encode_float
  - encoder_encode_string
  - _steal_accumulate
  - encoder_listencode_obj
  - encoder_listencode_dict
  - encoder_listencode_list
  - encoder_dealloc
  - encoder_traverse
  - encoder_clear
  - PyInit__json
  source_file: /src/Python-3.8.3/Modules/_json.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNUSED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_json.c
      type_or_value: __attribute__((__unused__))
    - item_type: preproc_def
      name: ENCODE_OUTPUT
      pos:
        line_end: 308
        line_start: 280
        source_file: /src/Python-3.8.3/Modules/_json.c
      type_or_value: "do { \\\n        chars = 0; \\\n        output[chars++] = '\"';
        \\\n        for (i = 0; i < input_chars; i++) { \\\n            Py_UCS4 c
        = PyUnicode_READ(kind, input, i); \\\n            switch (c) { \\\n            case
        '\\\\': output[chars++] = '\\\\'; output[chars++] = c; break; \\\n            case
        '\"':  output[chars++] = '\\\\'; output[chars++] = c; break; \\\n            case
        '\\b': output[chars++] = '\\\\'; output[chars++] = 'b'; break; \\\n            case
        '\\f': output[chars++] = '\\\\'; output[chars++] = 'f'; break; \\\n            case
        '\\n': output[chars++] = '\\\\'; output[chars++] = 'n'; break; \\\n            case
        '\\r': output[chars++] = '\\\\'; output[chars++] = 'r'; break; \\\n            case
        '\\t': output[chars++] = '\\\\'; output[chars++] = 't'; break; \\\n            default:
        \\\n                if (c <= 0x1f) { \\\n                    output[chars++]
        = '\\\\'; \\\n                    output[chars++] = 'u'; \\\n                    output[chars++]
        = '0'; \\\n                    output[chars++] = '0'; \\\n                    output[chars++]
        = Py_hexdigits[(c >> 4) & 0xf]; \\\n                    output[chars++] =
        Py_hexdigits[(c     ) & 0xf]; \\\n                } else { \\\n                    output[chars++]
        = c; \\\n                } \\\n            } \\\n        } \\\n        output[chars++]
        = '\"'; \\\n    } while (0)"
    - item_type: preproc_def
      name: APPEND_OLD_CHUNK
      pos:
        line_end: 401
        line_start: 387
        source_file: /src/Python-3.8.3/Modules/_json.c
      type_or_value: "if (chunk != NULL) { \\\n        if (chunks == NULL) { \\\n
        \           chunks = PyList_New(0); \\\n            if (chunks == NULL) {
        \\\n                goto bail; \\\n            } \\\n        } \\\n        if
        (PyList_Append(chunks, chunk)) { \\\n            Py_CLEAR(chunk); \\\n            goto
        bail; \\\n        } \\\n        Py_CLEAR(chunk); \\\n    }"
    structs:
    - fields:
      - name: strict
        type: "PyObject_HEAD\n    signed"
      - name: '*object_hook'
        type: PyObject
      - name: '*object_pairs_hook'
        type: PyObject
      - name: '*parse_float'
        type: PyObject
      - name: '*parse_int'
        type: PyObject
      - name: '*parse_constant'
        type: PyObject
      - name: '*memo'
        type: PyObject
      item_type: struct
      name: _PyScannerObject
      pos:
        line_end: 37
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_json.c
    - fields:
      - name: '*markers'
        type: PyObject_HEAD
      - name: '*defaultfn'
        type: PyObject
      - name: '*encoder'
        type: PyObject
      - name: '*indent'
        type: PyObject
      - name: '*key_separator'
        type: PyObject
      - name: '*item_separator'
        type: PyObject
      - name: sort_keys
        type: char
      - name: skipkeys
        type: char
      - name: allow_nan
        type: int
      - name: fast_encode
        type: PyCFunction
      item_type: struct
      name: _PyEncoderObject
      pos:
        line_end: 61
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_json.c
    typedefs: []
    union: []
- function_names:
  - color_pair_to_attr
  - attr_to_color_pair
  - PyCursesCheckERR
  - PyCurses_ConvertToChtype
  - PyCurses_ConvertToCchar_t
  - PyCurses_ConvertToString
  - func_PyCursesSetupTermCalled
  - func_PyCursesInitialised
  - func_PyCursesInitialisedColor
  - Window_NoArgNoReturnFunction
  - Window_NoArgTrueFalseFunction
  - Window_NoArgNoReturnVoidFunction
  - Window_NoArg2TupleReturnFunction
  - Window_OneArgNoReturnVoidFunction
  - Window_OneArgNoReturnFunction
  - Window_TwoArgNoReturnFunction
  - PyCursesWindow_New
  - PyCursesWindow_Dealloc
  - _curses_window_addch_impl
  - _curses_window_addstr_impl
  - _curses_window_addnstr_impl
  - _curses_window_bkgd_impl
  - _curses_window_attroff_impl
  - _curses_window_attron_impl
  - _curses_window_attrset_impl
  - _curses_window_bkgdset_impl
  - _curses_window_border_impl
  - CONVERTTOCHTYPE
  - _curses_window_box_impl
  - py_mvwdelch
  - py_is_pad
  - py_is_pad
  - PyCursesWindow_ChgAt
  - _curses_window_delch_impl
  - _curses_window_derwin_impl
  - _curses_window_echochar_impl
  - _curses_window_enclose_impl
  - _curses_window_getbkgd_impl
  - _curses_window_getch_impl
  - _curses_window_getkey_impl
  - _curses_window_get_wch_impl
  - PyCursesWindow_GetStr
  - _curses_window_hline_impl
  - _curses_window_insch_impl
  - _curses_window_inch_impl
  - PyCursesWindow_InStr
  - _curses_window_insstr_impl
  - _curses_window_insnstr_impl
  - _curses_window_is_linetouched_impl
  - _curses_window_noutrefresh_impl
  - _curses_window_overlay_impl
  - _curses_window_overwrite_impl
  - _curses_window_putwin
  - _curses_window_redrawln_impl
  - _curses_window_refresh_impl
  - _curses_window_setscrreg_impl
  - _curses_window_subwin_impl
  - _curses_window_scroll_impl
  - _curses_window_touchline_impl
  - _curses_window_vline_impl
  - PyCursesWindow_get_encoding
  - PyCursesWindow_set_encoding
  - NoArgNoReturnFunctionBody
  - NoArgOrFlagNoReturnFunctionBody
  - NoArgReturnIntFunctionBody
  - NoArgReturnStringFunctionBody
  - NoArgTrueFalseFunctionBody
  - NoArgNoReturnVoidFunctionBody
  - _curses_filter_impl
  - _curses_color_content_impl
  - _curses_color_pair_impl
  - _curses_curs_set_impl
  - _curses_delay_output_impl
  - _curses_erasechar_impl
  - _curses_getsyx_impl
  - _curses_getmouse_impl
  - _curses_ungetmouse_impl
  - _curses_getwin
  - _curses_halfdelay_impl
  - _curses_has_key_impl
  - _curses_init_color_impl
  - _curses_init_pair_impl
  - _curses_initscr_impl
  - SetDictInt
  - _curses_setupterm_impl
  - _curses_intrflush_impl
  - _curses_is_term_resized_impl
  - _curses_keyname_impl
  - _curses_killchar_impl
  - _curses_meta_impl
  - _curses_mouseinterval_impl
  - _curses_mousemask_impl
  - _curses_napms_impl
  - _curses_newpad_impl
  - _curses_newwin_impl
  - _curses_pair_content_impl
  - _curses_pair_number_impl
  - _curses_putp_impl
  - _curses_qiflush_impl
  - update_lines_cols
  - _curses_update_lines_cols_impl
  - _curses_resizeterm_impl
  - _curses_resize_term_impl
  - _curses_setsyx_impl
  - _curses_start_color_impl
  - _curses_tigetflag_impl
  - _curses_tigetnum_impl
  - _curses_tigetstr_impl
  - _curses_tparm_impl
  - _curses_typeahead_impl
  - _curses_unctrl
  - _curses_ungetch
  - PyCurses_ConvertToWchar_t
  - _curses_unget_wch
  - _curses_use_env_impl
  - _curses_use_default_colors_impl
  - make_ncurses_version
  - SetIntItem
  - PyInit__curses
  source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyCursesSetupTermCalled
      pos:
        line_end: 163
        line_start: 158
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
      type_or_value: "if (initialised_setupterm != TRUE) {                                \\\n
        \       PyErr_SetString(PyCursesError,                                  \\\n
        \                       \"must call (at least) setupterm() first\");      \\\n
        \       return 0; }"
    - item_type: preproc_def
      name: PyCursesInitialised
      pos:
        line_end: 169
        line_start: 164
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
      type_or_value: "if (initialised != TRUE) {                          \\\n        PyErr_SetString(PyCursesError,
        \                 \\\n                        \"must call initscr() first\");
        \  \\\n        return 0; }"
    - item_type: preproc_def
      name: PyCursesInitialisedColor
      pos:
        line_end: 175
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
      type_or_value: "if (initialisedcolors != TRUE) {                            \\\n
        \       PyErr_SetString(PyCursesError,                          \\\n                        \"must
        call start_color() first\");       \\\n        return 0; }"
    - item_type: preproc_def
      name: py_mvwdelch
      pos:
        line_end: 1006
        line_start: 1005
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
      type_or_value: mvwdelch
    structs: []
    typedefs:
    - item_type: typedef
      name: attr_t
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/_cursesmodule.c
      type: chtype
    union: []
- function_names:
  - my_getpagesize
  - my_getallocationgranularity
  - my_getpagesize
  - mmap_object_dealloc
  - mmap_close_method
  - CHECK_VALID
  - CHECK_VALID
  - mmap_read_byte_method
  - mmap_read_line_method
  - mmap_read_method
  - mmap_gfind
  - mmap_find_method
  - mmap_rfind_method
  - is_writable
  - is_resizeable
  - mmap_write_method
  - mmap_write_byte_method
  - mmap_size_method
  - mmap_resize_method
  - mmap_tell_method
  - mmap_flush_method
  - mmap_seek_method
  - mmap_move_method
  - mmap_closed_get
  - mmap__enter__method
  - mmap__exit__method
  - mmap__sizeof__method
  - mmap_madvise_method
  - mmap_buffer_getbuf
  - mmap_buffer_releasebuf
  - mmap_length
  - mmap_item
  - mmap_subscript
  - mmap_ass_item
  - mmap_ass_subscript
  - new_mmap_object
  - new_mmap_object
  - setint
  - PyInit_mmap
  source_file: /src/Python-3.8.3/Modules/mmapmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: my_getallocationgranularity
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
      type_or_value: my_getpagesize
    - item_type: preproc_def
      name: my_getpagesize
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
      type_or_value: getpagesize
    - item_type: preproc_def
      name: MAP_ANONYMOUS
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
      type_or_value: MAP_ANON
    - item_type: preproc_def
      name: _Py_PARSE_OFF_T
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
      type_or_value: '"L"'
    - item_type: preproc_def
      name: _Py_PARSE_OFF_T
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
      type_or_value: '"l"'
    structs:
    - fields:
      - name: '*      data'
        type: PyObject_HEAD
      - name: size
        type: Py_ssize_t
      - name: pos
        type: Py_ssize_t
      - name: exports
        type: int
      - name: '*weakreflist'
        type: PyObject
      - name: access
        type: access_mode
      item_type: struct
      name: mmap_object
      pos:
        line_end: 113
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/mmapmodule.c
    typedefs: []
    union: []
- function_names:
  - HANDLE_TO_PYNUM
  - PYNUM_TO_HANDLE
  - HANDLE_TO_PYNUM
  - PYNUM_TO_HANDLE
  - check_CancelIoEx
  - overlapped_dealloc
  - _winapi_Overlapped_GetOverlappedResult_impl
  - _winapi_Overlapped_getbuffer_impl
  - _winapi_Overlapped_cancel_impl
  - new_overlapped
  - _winapi_CloseHandle_impl
  - _winapi_ConnectNamedPipe_impl
  - if
  - _winapi_CreateFile_impl
  - _winapi_CreateFileMapping_impl
  - _winapi_CreateJunction_impl
  - _winapi_CreateNamedPipe_impl
  - _winapi_CreatePipe_impl
  - getulong
  - gethandle
  - getenvironment
  - gethandlelist
  - freeattributelist
  - getattributelist
  - _winapi_CreateProcess_impl
  - _winapi_DuplicateHandle_impl
  - _winapi_ExitProcess_impl
  - _winapi_GetCurrentProcess_impl
  - _winapi_GetExitCodeProcess_impl
  - _winapi_GetLastError_impl
  - _winapi_GetModuleFileName_impl
  - _winapi_GetStdHandle_impl
  - _winapi_MapViewOfFile_impl
  - _winapi_OpenFileMapping_impl
  - _winapi_OpenProcess_impl
  - _winapi_PeekNamedPipe_impl
  - _winapi_ReadFile_impl
  - _winapi_SetNamedPipeHandleState_impl
  - _winapi_TerminateProcess_impl
  - _winapi_VirtualQuerySize_impl
  - _winapi_WaitNamedPipe_impl
  - _winapi_WaitForMultipleObjects_impl
  - _winapi_WaitForSingleObject_impl
  - _winapi_WriteFile_impl
  - _winapi_GetACP_impl
  - _winapi_GetFileType_impl
  - WINAPI_CONSTANT
  - PyInit__winapi
  source_file: /src/Python-3.8.3/Modules/_winapi.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: '"K"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: T_ULONGLONG
    - item_type: preproc_def
      name: F_HANDLE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: F_POINTER
    - item_type: preproc_def
      name: F_DWORD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_HANDLE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_winapi.c
      type_or_value: T_POINTER
    structs:
    - fields:
      - name: OVERLAPPED
        type: PyObject_HEAD
      - name: handle
        type: HANDLE
      - name: pending
        type: int
      - name: completed
        type: int
      - name: '*read_buffer'
        type: PyObject
      - name: write_buffer
        type: Py_buffer
      item_type: struct
      name: OverlappedObject
      pos:
        line_end: 99
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    - fields:
      - name: attribute_list
        type: LPPROC_THREAD_ATTRIBUTE_LIST
      - name: handle_list
        type: LPHANDLE
      item_type: struct
      name: AttributeList
      pos:
        line_end: 929
        line_start: 926
        source_file: /src/Python-3.8.3/Modules/_winapi.c
    typedefs: []
    union: []
- function_names:
  - py_uuid_generate_time_safe
  - PyInit__uuid
  source_file: /src/Python-3.8.3/Modules/_uuidmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALLOC
  - RELEASE
  - LOCAL
  - LOCAL
  - JOIN_GET
  - JOIN_SET
  - JOIN_OBJ
  - _set_joined_ptr
  - _clear_joined_ptr
  - ET_STATE
  - elementtree_clear
  - elementtree_traverse
  - elementtree_free
  - list_join
  - is_empty_dict
  - Element_CheckExact
  - Element_Check
  - create_extra
  - dealloc_extra
  - clear_extra
  - create_new_element
  - element_new
  - get_attrib_from_keywords
  - element_init
  - element_resize
  - raise_type_error
  - element_add_subelement
  - element_get_attrib
  - element_get_text
  - element_get_tail
  - subelement
  - element_gc_traverse
  - element_gc_clear
  - element_dealloc
  - _elementtree_Element_append_impl
  - _elementtree_Element_clear_impl
  - _elementtree_Element___copy___impl
  - _elementtree_Element___deepcopy___impl
  - deepcopy
  - _elementtree_Element___sizeof___impl
  - _elementtree_Element___getstate___impl
  - element_setstate_from_attributes
  - element_setstate_from_Python
  - _elementtree_Element___setstate__
  - checkpath
  - PATHCHAR
  - _elementtree_Element_extend
  - _elementtree_Element_find_impl
  - _elementtree_Element_findtext_impl
  - _elementtree_Element_findall_impl
  - _elementtree_Element_iterfind_impl
  - _elementtree_Element_get_impl
  - _elementtree_Element_getchildren_impl
  - _elementtree_Element_iter_impl
  - _elementtree_Element_getiterator_impl
  - _elementtree_Element_itertext_impl
  - element_getitem
  - _elementtree_Element_insert_impl
  - _elementtree_Element_items_impl
  - _elementtree_Element_keys_impl
  - element_length
  - _elementtree_Element_makeelement_impl
  - _elementtree_Element_remove_impl
  - element_repr
  - _elementtree_Element_set_impl
  - element_setitem
  - element_subscr
  - element_ass_subscr
  - element_tag_getter
  - element_text_getter
  - element_tail_getter
  - element_attrib_getter
  - _VALIDATE_ATTR_VALUE
  - element_tag_setter
  - element_text_setter
  - element_tail_setter
  - element_attrib_setter
  - elementiter_dealloc
  - elementiter_traverse
  - parent_stack_push_new
  - elementiter_next
  - create_elementiter
  - TreeBuilder_CheckExact
  - treebuilder_new
  - _elementtree_TreeBuilder___init___impl
  - treebuilder_gc_traverse
  - treebuilder_gc_clear
  - treebuilder_dealloc
  - _elementtree__set_factories_impl
  - treebuilder_extend_element_text_or_tail
  - treebuilder_flush_data
  - treebuilder_add_subelement
  - treebuilder_append_event
  - treebuilder_handle_start
  - treebuilder_handle_data
  - treebuilder_handle_end
  - treebuilder_handle_comment
  - treebuilder_handle_pi
  - treebuilder_handle_start_ns
  - treebuilder_handle_end_ns
  - _elementtree_TreeBuilder_data
  - _elementtree_TreeBuilder_end
  - _elementtree_TreeBuilder_comment
  - _elementtree_TreeBuilder_pi_impl
  - treebuilder_done
  - _elementtree_TreeBuilder_close_impl
  - _elementtree_TreeBuilder_start_impl
  - EXPAT
  - makeuniversal
  - expat_set_error
  - expat_default_handler
  - expat_start_handler
  - expat_data_handler
  - expat_end_handler
  - expat_start_ns_handler
  - expat_end_ns_handler
  - expat_comment_handler
  - expat_start_doctype_handler
  - expat_pi_handler
  - xmlparser_new
  - ignore_attribute_error
  - _elementtree_XMLParser___init___impl
  - xmlparser_gc_traverse
  - xmlparser_gc_clear
  - xmlparser_dealloc
  - _check_xmlparser
  - expat_parse
  - _elementtree_XMLParser_close_impl
  - _elementtree_XMLParser_feed
  - _elementtree_XMLParser__parse_whole
  - _elementtree_XMLParser__setevents_impl
  - xmlparser_version_getter
  - PyInit__elementtree
  source_file: /src/Python-3.8.3/Modules/_elementtree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATIC_CHILDREN
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ET_STATE_GLOBAL
      pos:
        line_end: 110
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: ((elementtreestate *) PyModule_GetState(PyState_FindModule(&elementtreemodule)))
    - item_type: preproc_def
      name: PICKLED_TAG
      pos:
        line_end: 932
        line_start: 931
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '"tag"'
    - item_type: preproc_def
      name: PICKLED_CHILDREN
      pos:
        line_end: 933
        line_start: 932
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '"_children"'
    - item_type: preproc_def
      name: PICKLED_ATTRIB
      pos:
        line_end: 934
        line_start: 933
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '"attrib"'
    - item_type: preproc_def
      name: PICKLED_TAIL
      pos:
        line_end: 935
        line_start: 934
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '"tail"'
    - item_type: preproc_def
      name: PICKLED_TEXT
      pos:
        line_end: 936
        line_start: 935
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '"text"'
    - item_type: preproc_def
      name: INIT_PARENT_STACK_SIZE
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
      type_or_value: '8'
    structs:
    - fields:
      - name: '*parseerror_obj'
        type: PyObject
      - name: '*deepcopy_obj'
        type: PyObject
      - name: '*elementpath_obj'
        type: PyObject
      - name: '*comment_factory'
        type: PyObject
      - name: '*pi_factory'
        type: PyObject
      item_type: struct
      name: elementtreestate
      pos:
        line_end: 96
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: '* attrib'
        type: PyObject
      - name: length
        type: Py_ssize_t
      - name: allocated
        type: Py_ssize_t
      - name: '* *children'
        type: PyObject
      - name: '* _children[STATIC_CHILDREN]'
        type: PyObject
      item_type: struct
      name: ElementObjectExtra
      pos:
        line_end: 184
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: '* tag'
        type: PyObject_HEAD
      - name: '* text'
        type: PyObject
      - name: '* tail'
        type: PyObject
      - name: '* extra'
        type: ElementObjectExtra
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: ElementObject
      pos:
        line_end: 208
        line_start: 186
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: '*parent'
        type: ElementObject
      - name: child_index
        type: Py_ssize_t
      item_type: struct
      name: ParentLocator_t
      pos:
        line_end: 2134
        line_start: 2131
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: '*parent_stack'
        type: PyObject_HEAD
      - name: parent_stack_used
        type: Py_ssize_t
      - name: parent_stack_size
        type: Py_ssize_t
      - name: '*root_element'
        type: ElementObject
      - name: '*sought_tag'
        type: PyObject
      - name: gettext
        type: int
      item_type: struct
      name: ElementIterObject
      pos:
        line_end: 2144
        line_start: 2136
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: '*root'
        type: PyObject_HEAD
      - name: '*this'
        type: PyObject
      - name: '*last'
        type: PyObject
      - name: '*last_for_tail'
        type: PyObject
      - name: '*data'
        type: PyObject
      - name: '*stack'
        type: PyObject
      - name: index
        type: Py_ssize_t
      - name: '*element_factory'
        type: PyObject
      - name: '*comment_factory'
        type: PyObject
      - name: '*pi_factory'
        type: PyObject
      - name: '*events_append'
        type: PyObject
      - name: '*start_event_obj'
        type: PyObject
      - name: '*end_event_obj'
        type: PyObject
      - name: '*start_ns_event_obj'
        type: PyObject
      - name: '*end_ns_event_obj'
        type: PyObject
      - name: '*comment_event_obj'
        type: PyObject
      - name: '*pi_event_obj'
        type: PyObject
      - name: insert_comments
        type: char
      - name: insert_pis
        type: char
      item_type: struct
      name: TreeBuilderObject
      pos:
        line_end: 2414
        line_start: 2385
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    - fields:
      - name: XML_Parser
        type: PyObject_HEAD
      - name: '*target'
        type: PyObject
      - name: '*entity'
        type: PyObject
      - name: '*names'
        type: PyObject
      - name: '*handle_start_ns'
        type: PyObject
      - name: '*handle_end_ns'
        type: PyObject
      - name: '*handle_start'
        type: PyObject
      - name: '*handle_data'
        type: PyObject
      - name: '*handle_end'
        type: PyObject
      - name: '*handle_comment'
        type: PyObject
      - name: '*handle_pi'
        type: PyObject
      - name: '*handle_doctype'
        type: PyObject
      - name: '*handle_close'
        type: PyObject
      item_type: struct
      name: XMLParserObject
      pos:
        line_end: 3138
        line_start: 3116
        source_file: /src/Python-3.8.3/Modules/_elementtree.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/unicodename_db.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME_MAXLEN
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '256'
    - item_type: preproc_def
      name: phrasebook_shift
      pos:
        line_end: 8014
        line_start: 8013
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '7'
    - item_type: preproc_def
      name: phrasebook_short
      pos:
        line_end: 8015
        line_start: 8014
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '194'
    - item_type: preproc_def
      name: code_magic
      pos:
        line_end: 28119
        line_start: 28118
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '47'
    - item_type: preproc_def
      name: code_size
      pos:
        line_end: 28120
        line_start: 28119
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: code_poly
      pos:
        line_end: 28121
        line_start: 28120
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
      type_or_value: '65581'
    structs:
    - fields:
      - name: seqlen
        type: int
      - name: seq[4]
        type: Py_UCS2
      item_type: struct
      name: NamedSequence
      pos:
        line_end: 28598
        line_start: 28595
        source_file: /src/Python-3.8.3/Modules/unicodename_db.h
    typedefs: []
    union: []
- function_names:
  - GET_WEAKREFS_LISTPTR
  - _weakref_getweakrefcount_impl
  - is_dead_weakref
  - _weakref__remove_dead_weakref_impl
  - weakref_getweakrefs
  - weakref_proxy
  - PyInit__weakref
  source_file: /src/Python-3.8.3/Modules/_weakref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - timeval_from_double
  - double_from_timeval
  - itimer_retval
  - is_main
  - signal_default_int_handler
  - report_wakeup_write_error
  - report_wakeup_send_error
  - trip_signal
  - signal_handler
  - signal_alarm_impl
  - signal_pause_impl
  - signal_raise_signal_impl
  - Py_END_ALLOW_THREADS
  - signal_signal_impl
  - signal_getsignal_impl
  - signal_strsignal_impl
  - signal_siginterrupt_impl
  - signal_set_wakeup_fd
  - PySignal_SetWakeupFd
  - signal_setitimer_impl
  - signal_getitimer_impl
  - sigset_to_set
  - signal_pthread_sigmask_impl
  - signal_sigpending_impl
  - signal_sigwait_impl
  - if
  - signal_valid_signals_impl
  - fill_siginfo
  - signal_sigwaitinfo_impl
  - signal_sigtimedwait_impl
  - signal_pthread_kill_impl
  - PyInit__signal
  - finisignal
  - PyErr_CheckSignals
  - _PyErr_CheckSignals
  - PyErr_SetInterrupt
  - PyOS_InitInterrupts
  - PyOS_FiniInterrupts
  - PyOS_InterruptOccurred
  - _clear_pending_signals
  - _PySignal_AfterFork
  - _PyOS_IsMainThread
  - _PyOS_SigintEvent
  source_file: /src/Python-3.8.3/Modules/signalmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIG_ERR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: ((PyOS_sighandler_t)(-1))
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: '_NSIG            '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: '(_SIGMAX + 1)    '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: '(SIGMAX + 1)     '
    - item_type: preproc_def
      name: NSIG
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: '64               '
    - item_type: preproc_def
      name: INVALID_FD
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: ((SOCKET_T)-1)
    - item_type: preproc_def
      name: INVALID_FD
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
      type_or_value: (-1)
    structs:
    - fields:
      - name: tripped
        type: _Py_atomic_int
      - name: '*func'
        type: PyObject
      item_type: struct
      name: Handlers[NSIG]
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
    - fields:
      - name: fd
        type: SOCKET_T
      - name: warn_on_full_buffer
        type: int
      - name: use_send
        type: int
      item_type: struct
      name: wakeup = {.fd = INVALID_FD, .warn_on_full_buffer = 1, .use_send = 0}
      pos:
        line_end: 115
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
    - fields:
      - name: fd
        type: sig_atomic_t
      - name: warn_on_full_buffer
        type: int
      item_type: struct
      name: wakeup = {.fd = INVALID_FD, .warn_on_full_buffer = 1}
      pos:
        line_end: 121
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/signalmodule.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_math.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: m_acosh
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: acosh
    - item_type: preproc_def
      name: m_acosh
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: _Py_acosh
    - item_type: preproc_def
      name: m_asinh
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: asinh
    - item_type: preproc_def
      name: m_asinh
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: _Py_asinh
    - item_type: preproc_def
      name: m_atanh
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: atanh
    - item_type: preproc_def
      name: m_atanh
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: _Py_atanh
    - item_type: preproc_def
      name: m_expm1
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: expm1
    - item_type: preproc_def
      name: m_expm1
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: _Py_expm1
    - item_type: preproc_def
      name: m_log1p
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_math.h
      type_or_value: _Py_log1p
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: blake2b
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b
    - item_type: preproc_def
      name: blake2b_compress
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_compress
    - item_type: preproc_def
      name: blake2b_final
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_final
    - item_type: preproc_def
      name: blake2b_init
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_init
    - item_type: preproc_def
      name: blake2b_init_key
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_init_key
    - item_type: preproc_def
      name: blake2b_init_param
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_init_param
    - item_type: preproc_def
      name: blake2b_update
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2b_update
    - item_type: preproc_def
      name: blake2bp
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2bp
    - item_type: preproc_def
      name: blake2bp_final
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2bp_final
    - item_type: preproc_def
      name: blake2bp_init
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2bp_init
    - item_type: preproc_def
      name: blake2bp_init_key
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2bp_init_key
    - item_type: preproc_def
      name: blake2bp_update
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2bp_update
    - item_type: preproc_def
      name: blake2s
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s
    - item_type: preproc_def
      name: blake2s_compress
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_compress
    - item_type: preproc_def
      name: blake2s_final
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_final
    - item_type: preproc_def
      name: blake2s_init
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_init
    - item_type: preproc_def
      name: blake2s_init_key
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_init_key
    - item_type: preproc_def
      name: blake2s_init_param
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_init_param
    - item_type: preproc_def
      name: blake2s_update
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2s_update
    - item_type: preproc_def
      name: blake2sp
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2sp
    - item_type: preproc_def
      name: blake2sp_final
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2sp_final
    - item_type: preproc_def
      name: blake2sp_init
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2sp_init
    - item_type: preproc_def
      name: blake2sp_init_key
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2sp_init_key
    - item_type: preproc_def
      name: blake2sp_update
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2ns.h
      type_or_value: PyBlake2_blake2sp_update
    structs: []
    typedefs: []
    union: []
- function_names:
  - BLAKE2_LOCAL_INLINE
  - new_BLAKE2sObject
  - py_blake2s_new_impl
  - _blake2_blake2s_copy_impl
  - _blake2_blake2s_update
  - _blake2_blake2s_digest_impl
  - _blake2_blake2s_hexdigest_impl
  - py_blake2s_get_name
  - py_blake2s_get_block_size
  - py_blake2s_get_digest_size
  - py_blake2s_dealloc
  source_file: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_BLAKE2S
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
      type_or_value: '1'
    structs:
    - fields:
      - name: blake2s_param
        type: PyObject_HEAD
      - name: state
        type: blake2s_state
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: BLAKE2sObject
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2s_impl.c
    typedefs: []
    union: []
- function_names:
  - BLAKE2_LOCAL_INLINE
  - new_BLAKE2bObject
  - py_blake2b_new_impl
  - _blake2_blake2b_copy_impl
  - _blake2_blake2b_update
  - _blake2_blake2b_digest_impl
  - _blake2_blake2b_hexdigest_impl
  - py_blake2b_get_name
  - py_blake2b_get_block_size
  - py_blake2b_get_digest_size
  - py_blake2b_dealloc
  source_file: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_BLAKE2B
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
      type_or_value: '1'
    structs:
    - fields:
      - name: blake2b_param
        type: PyObject_HEAD
      - name: state
        type: blake2b_state
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: BLAKE2bObject
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_blake2/blake2b_impl.c
    typedefs: []
    union: []
- function_names:
  - ADD_INT
  - PyInit__blake2
  source_file: /src/Python-3.8.3/Modules/_blake2/blake2module.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_MSG_0_1
  - LOAD_MSG_0_2
  - LOAD_MSG_0_3
  - LOAD_MSG_0_4
  - LOAD_MSG_1_1
  - LOAD_MSG_1_2
  - LOAD_MSG_1_3
  - LOAD_MSG_1_4
  - LOAD_MSG_2_1
  - LOAD_MSG_2_2
  - LOAD_MSG_2_3
  - LOAD_MSG_2_4
  - LOAD_MSG_3_1
  - LOAD_MSG_3_2
  - LOAD_MSG_3_3
  - LOAD_MSG_3_4
  - LOAD_MSG_4_1
  - LOAD_MSG_4_2
  - LOAD_MSG_4_3
  - LOAD_MSG_4_4
  - LOAD_MSG_5_1
  - LOAD_MSG_5_2
  - LOAD_MSG_5_3
  - LOAD_MSG_5_4
  - LOAD_MSG_6_1
  - LOAD_MSG_6_2
  - LOAD_MSG_6_3
  - LOAD_MSG_6_4
  - LOAD_MSG_7_1
  - LOAD_MSG_7_2
  - LOAD_MSG_7_3
  - LOAD_MSG_7_4
  - LOAD_MSG_8_1
  - LOAD_MSG_8_2
  - LOAD_MSG_8_3
  - LOAD_MSG_8_4
  - LOAD_MSG_9_1
  - LOAD_MSG_9_2
  - LOAD_MSG_9_3
  - LOAD_MSG_9_4
  - LOAD_MSG_10_1
  - LOAD_MSG_10_2
  - LOAD_MSG_10_3
  - LOAD_MSG_10_4
  - LOAD_MSG_11_1
  - LOAD_MSG_11_2
  - LOAD_MSG_11_3
  - LOAD_MSG_11_4
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse41.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TOB
  - LOAD_MSG_0_1
  - LOAD_MSG_0_2
  - LOAD_MSG_0_3
  - LOAD_MSG_0_4
  - LOAD_MSG_1_1
  - LOAD_MSG_1_2
  - LOAD_MSG_1_3
  - LOAD_MSG_1_4
  - LOAD_MSG_2_1
  - LOAD_MSG_2_2
  - LOAD_MSG_2_3
  - LOAD_MSG_2_4
  - LOAD_MSG_3_1
  - LOAD_MSG_3_2
  - LOAD_MSG_3_3
  - LOAD_MSG_3_4
  - LOAD_MSG_4_1
  - LOAD_MSG_4_2
  - LOAD_MSG_4_3
  - LOAD_MSG_4_4
  - LOAD_MSG_5_1
  - LOAD_MSG_5_2
  - LOAD_MSG_5_3
  - LOAD_MSG_5_4
  - LOAD_MSG_6_1
  - LOAD_MSG_6_2
  - LOAD_MSG_6_3
  - LOAD_MSG_6_4
  - LOAD_MSG_7_1
  - LOAD_MSG_7_2
  - LOAD_MSG_7_3
  - LOAD_MSG_7_4
  - LOAD_MSG_8_1
  - LOAD_MSG_8_2
  - LOAD_MSG_8_3
  - LOAD_MSG_8_4
  - LOAD_MSG_9_1
  - LOAD_MSG_9_2
  - LOAD_MSG_9_3
  - LOAD_MSG_9_4
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-xop.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2s_set_lastnode
  - blake2s_clear_lastnode
  - blake2s_set_lastblock
  - blake2s_clear_lastblock
  - blake2s_increment_counter
  - blake2s_param_set_digest_length
  - blake2s_param_set_fanout
  - blake2s_param_set_max_depth
  - blake2s_param_set_leaf_length
  - blake2s_param_set_node_offset
  - blake2s_param_set_node_depth
  - blake2s_param_set_inner_length
  - blake2s_param_set_salt
  - blake2s_param_set_personal
  - blake2s_init0
  - blake2s_init_param
  - blake2s_init
  - blake2s_init_key
  - blake2s_compress
  - G
  - ROUND
  - blake2s_update
  - blake2s_final
  - blake2s
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BLAKE2_IMPL_CAT
  - BLAKE2_IMPL_EVAL
  - BLAKE2_IMPL_NAME
  - load32
  - load64
  - store32
  - store64
  - load48
  - store48
  - rotl32
  - rotl64
  - rotr32
  - rotr64
  - secure_zero_memory
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-impl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mm_set_epi64x
  - blake2b_set_lastnode
  - blake2b_clear_lastnode
  - blake2b_set_lastblock
  - blake2b_clear_lastblock
  - blake2b_increment_counter
  - blake2b_param_set_digest_length
  - blake2b_param_set_fanout
  - blake2b_param_set_max_depth
  - blake2b_param_set_leaf_length
  - blake2b_param_set_node_offset
  - blake2b_param_set_node_depth
  - blake2b_param_set_inner_length
  - blake2b_param_set_salt
  - blake2b_param_set_personal
  - blake2b_init0
  - blake2b_init_param
  - blake2b_init
  - blake2b_init_key
  - blake2b_compress
  - blake2b_update
  - blake2b_final
  - blake2b
  - crypto_hash
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_MSG_0_1
  - LOAD_MSG_0_2
  - LOAD_MSG_0_3
  - LOAD_MSG_0_4
  - LOAD_MSG_1_1
  - LOAD_MSG_1_2
  - LOAD_MSG_1_3
  - LOAD_MSG_1_4
  - LOAD_MSG_2_1
  - LOAD_MSG_2_2
  - LOAD_MSG_2_3
  - LOAD_MSG_2_4
  - LOAD_MSG_3_1
  - LOAD_MSG_3_2
  - LOAD_MSG_3_3
  - LOAD_MSG_3_4
  - LOAD_MSG_4_1
  - LOAD_MSG_4_2
  - LOAD_MSG_4_3
  - LOAD_MSG_4_4
  - LOAD_MSG_5_1
  - LOAD_MSG_5_2
  - LOAD_MSG_5_3
  - LOAD_MSG_5_4
  - LOAD_MSG_6_1
  - LOAD_MSG_6_2
  - LOAD_MSG_6_3
  - LOAD_MSG_6_4
  - LOAD_MSG_7_1
  - LOAD_MSG_7_2
  - LOAD_MSG_7_3
  - LOAD_MSG_7_4
  - LOAD_MSG_8_1
  - LOAD_MSG_8_2
  - LOAD_MSG_8_3
  - LOAD_MSG_8_4
  - LOAD_MSG_9_1
  - LOAD_MSG_9_2
  - LOAD_MSG_9_3
  - LOAD_MSG_9_4
  - LOAD_MSG_10_1
  - LOAD_MSG_10_2
  - LOAD_MSG_10_3
  - LOAD_MSG_10_4
  - LOAD_MSG_11_1
  - LOAD_MSG_11_2
  - LOAD_MSG_11_3
  - LOAD_MSG_11_4
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-load-sse2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-kat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KAT_LENGTH
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-kat.h
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xgetbv
  - cpuid
  - blake2b_init_dispatch
  - blake2b_init_key_dispatch
  - blake2b_init_param_dispatch
  - blake2b_update_dispatch
  - blake2b_final_dispatch
  - blake2b_dispatch
  - blake2b_init
  - blake2b_init_key
  - blake2b_init_param
  - blake2b_update
  - blake2b_final
  - blake2b
  - blake2s_init_dispatch
  - blake2s_init_key_dispatch
  - blake2s_init_param_dispatch
  - blake2s_update_dispatch
  - blake2s_final_dispatch
  - blake2s_dispatch
  - blake2s_init
  - blake2s_init_key
  - blake2s_init_param
  - blake2s_update
  - blake2s_final
  - blake2s
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ( *blake2b_init_fn )( blake2b_state *, size_t )
      pos:
        line_end: 253
        line_start: 253
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2b_init_key_fn )( blake2b_state *, size_t, const void *, size_t
        )
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2b_init_param_fn )( blake2b_state *, const blake2b_param * )
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2b_update_fn )( blake2b_state *, const uint8_t *, size_t )
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2b_final_fn )( blake2b_state *, uint8_t *, size_t )
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2b_fn )( uint8_t *, const void *, const void *, size_t, size_t,
        size_t )
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_init_fn )( blake2s_state *, size_t )
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_init_key_fn )( blake2s_state *, size_t, const void *, size_t
        )
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_init_param_fn )( blake2s_state *, const blake2s_param * )
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_update_fn )( blake2s_state *, const uint8_t *, size_t )
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_final_fn )( blake2s_state *, uint8_t *, size_t )
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    - item_type: typedef
      name: ( *blake2s_fn )( uint8_t *, const void *, const void *, size_t, size_t,
        size_t )
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-dispatch.c
      type: int
    union: []
- function_names:
  - _mm_set_epi64x
  - blake2s_set_lastnode
  - blake2s_clear_lastnode
  - blake2s_set_lastblock
  - blake2s_clear_lastblock
  - blake2s_increment_counter
  - blake2s_param_set_digest_length
  - blake2s_param_set_fanout
  - blake2s_param_set_max_depth
  - blake2s_param_set_leaf_length
  - blake2s_param_set_node_offset
  - blake2s_param_set_node_depth
  - blake2s_param_set_inner_length
  - blake2s_param_set_salt
  - blake2s_param_set_personal
  - blake2s_init0
  - blake2s_init_param
  - blake2s_init
  - blake2s_init_key
  - blake2s_compress
  - blake2s_update
  - blake2s_final
  - blake2s
  - crypto_hash
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD
  - STORE
  - LOADU
  - STOREU
  - TOF
  - TOI
  - LIKELY
  - _mm_roti_epi64
  - _mm_roti_epi64
  - G1
  - G2
  - DIAGONALIZE
  - UNDIAGONALIZE
  - DIAGONALIZE
  - UNDIAGONALIZE
  - ROUND
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-round.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_MSG_0_1
  - LOAD_MSG_0_2
  - LOAD_MSG_0_3
  - LOAD_MSG_0_4
  - LOAD_MSG_1_1
  - LOAD_MSG_1_2
  - LOAD_MSG_1_3
  - LOAD_MSG_1_4
  - LOAD_MSG_2_1
  - LOAD_MSG_2_2
  - LOAD_MSG_2_3
  - LOAD_MSG_2_4
  - LOAD_MSG_3_1
  - LOAD_MSG_3_2
  - LOAD_MSG_3_3
  - LOAD_MSG_3_4
  - LOAD_MSG_4_1
  - LOAD_MSG_4_2
  - LOAD_MSG_4_3
  - LOAD_MSG_4_4
  - LOAD_MSG_5_1
  - LOAD_MSG_5_2
  - LOAD_MSG_5_3
  - LOAD_MSG_5_4
  - LOAD_MSG_6_1
  - LOAD_MSG_6_2
  - LOAD_MSG_6_3
  - LOAD_MSG_6_4
  - LOAD_MSG_7_1
  - LOAD_MSG_7_2
  - LOAD_MSG_7_3
  - LOAD_MSG_7_4
  - LOAD_MSG_8_1
  - LOAD_MSG_8_2
  - LOAD_MSG_8_3
  - LOAD_MSG_8_4
  - LOAD_MSG_9_1
  - LOAD_MSG_9_2
  - LOAD_MSG_9_3
  - LOAD_MSG_9_4
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse41.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2b_set_lastnode
  - blake2b_clear_lastnode
  - blake2b_set_lastblock
  - blake2b_clear_lastblock
  - blake2b_increment_counter
  - blake2b_param_set_digest_length
  - blake2b_param_set_fanout
  - blake2b_param_set_max_depth
  - blake2b_param_set_leaf_length
  - blake2b_param_set_node_offset
  - blake2b_param_set_node_depth
  - blake2b_param_set_inner_length
  - blake2b_param_set_salt
  - blake2b_param_set_personal
  - blake2b_init0
  - blake2b_init_param
  - blake2b_init
  - blake2b_init_key
  - blake2b_compress
  - G
  - ROUND
  - blake2b_update
  - blake2b_final
  - blake2b
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2b-ref.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2sp_init_leaf
  - blake2sp_init_root
  - blake2sp_init
  - blake2sp_init_key
  - blake2sp_update
  - blake2sp_final
  - blake2sp
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARALLELISM_DEGREE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2sp.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
  types:
    enum:
    - enumerators:
      - name: BLAKE2S_BLOCKBYTES
        value: '64'
      - name: BLAKE2S_SALTBYTES
        value: '8'
      - name: BLAKE2S_KEYBYTES
        value: '32'
      - name: BLAKE2S_OUTBYTES
        value: '32'
      - name: BLAKE2S_PERSONALBYTES
        value: '8'
      item_type: enum
      name: blake2s_constant
      pos:
        line_end: 58
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - enumerators:
      - name: BLAKE2B_BLOCKBYTES
        value: '128'
      - name: BLAKE2B_SALTBYTES
        value: '16'
      - name: BLAKE2B_PERSONALBYTES
        value: '16'
      - name: BLAKE2B_KEYBYTES
        value: '64'
      - name: BLAKE2B_OUTBYTES
        value: '64'
      item_type: enum
      name: blake2b_constant
      pos:
        line_end: 67
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    preproc_defs:
    - item_type: preproc_def
      name: BLAKE2_DLL_IMPORT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: BLAKE2_DLL_EXPORT
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: BLAKE2_DLL_IMPORT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: BLAKE2_DLL_EXPORT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __attribute__ ((visibility ("default")))
    - item_type: preproc_def
      name: BLAKE2_DLL_PRIVATE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __attribute__ ((visibility ("hidden")))
    - item_type: preproc_def
      name: BLAKE2_API
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: BLAKE2_DLL_EXPORT
    - item_type: preproc_def
      name: BLAKE2_API
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: BLAKE2_DLL_IMPORT
    - item_type: preproc_def
      name: BLAKE2_PRIVATE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: BLAKE2_DLL_PRIVATE // must only be used by hidden logic
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
      type_or_value: __inline
    structs:
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length
        type: uint32_t
      - name: node_offset[6]
        type: uint8_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: salt[BLAKE2S_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2S_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: __blake2s_param
      pos:
        line_end: 83
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - fields:
      - name: h[8]
        type: uint32_t
      - name: t[2]
        type: uint32_t
      - name: f[2]
        type: uint32_t
      - name: buf[2 * BLAKE2S_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: uint32_t
      - name: outlen
        type: uint8_t
      - name: last_node
        type: uint8_t
      item_type: struct
      name: __blake2s_state
      pos:
        line_end: 94
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - fields:
      - name: digest_length
        type: uint8_t
      - name: key_length
        type: uint8_t
      - name: fanout
        type: uint8_t
      - name: depth
        type: uint8_t
      - name: leaf_length
        type: uint32_t
      - name: node_offset
        type: uint64_t
      - name: node_depth
        type: uint8_t
      - name: inner_length
        type: uint8_t
      - name: reserved[14]
        type: uint8_t
      - name: salt[BLAKE2B_SALTBYTES]
        type: uint8_t
      - name: personal[BLAKE2B_PERSONALBYTES]
        type: uint8_t
      item_type: struct
      name: __blake2b_param
      pos:
        line_end: 109
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - fields:
      - name: h[8]
        type: uint64_t
      - name: t[2]
        type: uint64_t
      - name: f[2]
        type: uint64_t
      - name: buf[2 * BLAKE2B_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: uint32_t
      - name: outlen
        type: uint8_t
      - name: last_node
        type: uint8_t
      item_type: struct
      name: __blake2b_state
      pos:
        line_end: 120
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - fields:
      - name: S[8][1]
        type: blake2s_state
      - name: R[1]
        type: blake2s_state
      - name: buf[8 * BLAKE2S_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: uint32_t
      - name: outlen
        type: uint8_t
      item_type: struct
      name: __blake2sp_state
      pos:
        line_end: 129
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    - fields:
      - name: S[4][1]
        type: blake2b_state
      - name: R[1]
        type: blake2b_state
      - name: buf[4 * BLAKE2B_BLOCKBYTES]
        type: uint8_t
      - name: buflen
        type: uint32_t
      - name: outlen
        type: uint8_t
      item_type: struct
      name: __blake2bp_state
      pos:
        line_end: 138
        line_start: 131
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2.h
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp-test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD
  - STORE
  - LOADU
  - STOREU
  - TOF
  - TOI
  - LIKELY
  - _mm_roti_epi32
  - _mm_roti_epi32
  - G1
  - G2
  - DIAGONALIZE
  - UNDIAGONALIZE
  - ROUND
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-round.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2-config.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - blake2bp_init_leaf
  - blake2bp_init_root
  - blake2bp_init
  - blake2bp_init_key
  - blake2bp_update
  - blake2bp_final
  - blake2bp
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARALLELISM_DEGREE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2bp.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_MSG_0_1
  - LOAD_MSG_0_2
  - LOAD_MSG_0_3
  - LOAD_MSG_0_4
  - LOAD_MSG_1_1
  - LOAD_MSG_1_2
  - LOAD_MSG_1_3
  - LOAD_MSG_1_4
  - LOAD_MSG_2_1
  - LOAD_MSG_2_2
  - LOAD_MSG_2_3
  - LOAD_MSG_2_4
  - LOAD_MSG_3_1
  - LOAD_MSG_3_2
  - LOAD_MSG_3_3
  - LOAD_MSG_3_4
  - LOAD_MSG_4_1
  - LOAD_MSG_4_2
  - LOAD_MSG_4_3
  - LOAD_MSG_4_4
  - LOAD_MSG_5_1
  - LOAD_MSG_5_2
  - LOAD_MSG_5_3
  - LOAD_MSG_5_4
  - LOAD_MSG_6_1
  - LOAD_MSG_6_2
  - LOAD_MSG_6_3
  - LOAD_MSG_6_4
  - LOAD_MSG_7_1
  - LOAD_MSG_7_2
  - LOAD_MSG_7_3
  - LOAD_MSG_7_4
  - LOAD_MSG_8_1
  - LOAD_MSG_8_2
  - LOAD_MSG_8_3
  - LOAD_MSG_8_4
  - LOAD_MSG_9_1
  - LOAD_MSG_9_2
  - LOAD_MSG_9_3
  - LOAD_MSG_9_4
  source_file: /src/Python-3.8.3/Modules/_blake2/impl/blake2s-load-sse2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - py_blake2b_new
  - _blake2_blake2b_copy
  - _blake2_blake2b_digest
  - _blake2_blake2b_hexdigest
  source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2B_COPY_METHODDEF
      pos:
        line_end: 209
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
      type_or_value: '{"copy", (PyCFunction)_blake2_blake2b_copy, METH_NOARGS, _blake2_blake2b_copy__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2B_UPDATE_METHODDEF
      pos:
        line_end: 227
        line_start: 225
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
      type_or_value: '{"update", (PyCFunction)_blake2_blake2b_update, METH_O, _blake2_blake2b_update__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2B_DIGEST_METHODDEF
      pos:
        line_end: 236
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
      type_or_value: '{"digest", (PyCFunction)_blake2_blake2b_digest, METH_NOARGS,
        _blake2_blake2b_digest__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2B_HEXDIGEST_METHODDEF
      pos:
        line_end: 254
        line_start: 252
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2b_impl.c.h
      type_or_value: '{"hexdigest", (PyCFunction)_blake2_blake2b_hexdigest, METH_NOARGS,
        _blake2_blake2b_hexdigest__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - py_blake2s_new
  - _blake2_blake2s_copy
  - _blake2_blake2s_digest
  - _blake2_blake2s_hexdigest
  source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2S_COPY_METHODDEF
      pos:
        line_end: 209
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
      type_or_value: '{"copy", (PyCFunction)_blake2_blake2s_copy, METH_NOARGS, _blake2_blake2s_copy__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2S_UPDATE_METHODDEF
      pos:
        line_end: 227
        line_start: 225
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
      type_or_value: '{"update", (PyCFunction)_blake2_blake2s_update, METH_O, _blake2_blake2s_update__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2S_DIGEST_METHODDEF
      pos:
        line_end: 236
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
      type_or_value: '{"digest", (PyCFunction)_blake2_blake2s_digest, METH_NOARGS,
        _blake2_blake2s_digest__doc__},'
    - item_type: preproc_def
      name: _BLAKE2_BLAKE2S_HEXDIGEST_METHODDEF
      pos:
        line_end: 254
        line_start: 252
        source_file: /src/Python-3.8.3/Modules/_blake2/clinic/blake2s_impl.c.h
      type_or_value: '{"hexdigest", (PyCFunction)_blake2_blake2s_hexdigest, METH_NOARGS,
        _blake2_blake2s_hexdigest__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PySSL_msg_callback
  - _PySSLContext_get_msg_callback
  - _PySSLContext_set_msg_callback
  - _PySSL_keylog_callback
  - _PySSLContext_get_keylog_filename
  - _PySSLContext_set_keylog_filename
  source_file: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SSL3_MT_CHANGE_CIPHER_SPEC
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Modules/_ssl/debughelpers.c
      type_or_value: '0x0101'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyWindowsConsoleIO_Check
  - IO_MOD_STATE
  - IO_STATE
  source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BUFFER_SIZE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: '(8 * 1024)  '
    - item_type: preproc_def
      name: PyLong_AsOff_t
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_AsLongLong
    - item_type: preproc_def
      name: PyLong_FromOff_t
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_FromLongLong
    - item_type: preproc_def
      name: PY_OFF_T_MAX
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: PY_OFF_T_MIN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LLONG_MIN
    - item_type: preproc_def
      name: PY_OFF_T_COMPAT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: 'long long    '
    - item_type: preproc_def
      name: PY_PRIdOFF
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: '"lld"        '
    - item_type: preproc_def
      name: PyLong_AsOff_t
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_AsSsize_t
    - item_type: preproc_def
      name: PyLong_FromOff_t
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_FromSsize_t
    - item_type: preproc_def
      name: PY_OFF_T_MAX
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PY_SSIZE_T_MAX
    - item_type: preproc_def
      name: PY_OFF_T_MIN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PY_SSIZE_T_MIN
    - item_type: preproc_def
      name: PY_OFF_T_COMPAT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: Py_ssize_t
    - item_type: preproc_def
      name: PY_PRIdOFF
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: '"zd"'
    - item_type: preproc_def
      name: PyLong_AsOff_t
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_AsLongLong
    - item_type: preproc_def
      name: PyLong_FromOff_t
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_FromLongLong
    - item_type: preproc_def
      name: PY_OFF_T_MAX
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: PY_OFF_T_MIN
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LLONG_MIN
    - item_type: preproc_def
      name: PY_OFF_T_COMPAT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: long long
    - item_type: preproc_def
      name: PY_PRIdOFF
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: '"lld"'
    - item_type: preproc_def
      name: PyLong_AsOff_t
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_AsLong
    - item_type: preproc_def
      name: PyLong_FromOff_t
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: PyLong_FromLong
    - item_type: preproc_def
      name: PY_OFF_T_MAX
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LONG_MAX
    - item_type: preproc_def
      name: PY_OFF_T_MIN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: LONG_MIN
    - item_type: preproc_def
      name: PY_OFF_T_COMPAT
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: long
    - item_type: preproc_def
      name: PY_PRIdOFF
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type_or_value: '"ld"'
    structs:
    - fields:
      - name: initialized
        type: int
      - name: '*locale_module'
        type: PyObject
      - name: '*unsupported_operation'
        type: PyObject
      item_type: struct
      name: _PyIO_State
      pos:
        line_end: 144
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
    typedefs:
    - item_type: typedef
      name: Py_off_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type: long long
    - item_type: typedef
      name: Py_off_t
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/_io/_iomodule.h
      type: off_t
    union: []
- function_names:
  - _get_console_type
  - _PyIO_get_console_type
  - _PyWindowsConsoleIO_closed
  - internal_close
  - _io__WindowsConsoleIO_close_impl
  - winconsoleio_new
  - _io__WindowsConsoleIO___init___impl
  - winconsoleio_traverse
  - winconsoleio_clear
  - winconsoleio_dealloc
  - err_closed
  - err_mode
  - _io__WindowsConsoleIO_fileno_impl
  - _io__WindowsConsoleIO_readable_impl
  - _io__WindowsConsoleIO_writable_impl
  - _buflen
  - _copyfrombuf
  - read_console_w
  - readinto
  - _io__WindowsConsoleIO_readinto_impl
  - new_buffersize
  - _io__WindowsConsoleIO_readall_impl
  - _io__WindowsConsoleIO_read_impl
  - _io__WindowsConsoleIO_write_impl
  - winconsoleio_repr
  - _io__WindowsConsoleIO_isatty_impl
  - get_closed
  - get_closefd
  - get_mode
  source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMALLCHUNK
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
      type_or_value: (2*1024)
    - item_type: preproc_def
      name: SMALLCHUNK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
      type_or_value: BUFSIZ
    - item_type: preproc_def
      name: BUFMAX
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
      type_or_value: (32*1024*1024)
    - item_type: preproc_def
      name: SMALLBUF
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
      type_or_value: '4'
    structs:
    - fields:
      - name: HANDLE
        type: PyObject_HEAD
      - name: fd
        type: int
      - name: created
        type: unsigned int
      - name: readable
        type: unsigned int
      - name: writable
        type: unsigned int
      - name: closehandle
        type: unsigned int
      - name: finalizing
        type: char
      - name: blksize
        type: unsigned int
      - name: '*weakreflist'
        type: PyObject
      - name: '*dict'
        type: PyObject
      - name: buf[SMALLBUF]
        type: char
      - name: wbuf
        type: wchar_t
      item_type: struct
      name: winconsoleio
      pos:
        line_end: 157
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/_io/winconsoleio.c
    typedefs: []
    union: []
- function_names:
  - _io_open_impl
  - _io_open_code_impl
  - PyNumber_AsOff_t
  - _PyIO_get_module_state
  - _PyIO_get_locale_module
  - iomodule_traverse
  - iomodule_clear
  - iomodule_free
  - PyInit__io
  - ADD_TYPE
  - ADD_INTERNED
  source_file: /src/Python-3.8.3/Modules/_io/_iomodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _bufferediobase_readinto_generic
  - _io__BufferedIOBase_readinto_impl
  - _io__BufferedIOBase_readinto1_impl
  - bufferediobase_unsupported
  - _io__BufferedIOBase_detach_impl
  - bufferediobase_read
  - bufferediobase_read1
  - bufferediobase_write
  - _enter_buffered_busy
  - ENTER_BUFFERED
  - LEAVE_BUFFERED
  - CHECK_INITIALIZED
  - CHECK_INITIALIZED_INT
  - IS_CLOSED
  - CHECK_CLOSED
  - VALID_READ_BUFFER
  - VALID_WRITE_BUFFER
  - ADJUST_POSITION
  - READAHEAD
  - RAW_OFFSET
  - RAW_TELL
  - MINUS_LAST_BLOCK
  - buffered_dealloc
  - buffered_sizeof
  - buffered_traverse
  - buffered_clear
  - buffered_dealloc_warn
  - buffered_simple_flush
  - buffered_closed
  - buffered_closed_get
  - buffered_close
  - buffered_detach
  - buffered_seekable
  - buffered_readable
  - buffered_writable
  - buffered_name_get
  - buffered_mode_get
  - buffered_fileno
  - buffered_isatty
  - _set_BlockingIOError
  - _buffered_check_blocking_error
  - _buffered_raw_tell
  - _buffered_raw_seek
  - _buffered_init
  - _PyIO_trap_eintr
  - buffered_flush_and_rewind_unlocked
  - buffered_flush
  - _io__Buffered_peek_impl
  - _io__Buffered_read_impl
  - _io__Buffered_read1_impl
  - _buffered_readinto_generic
  - _io__Buffered_readinto_impl
  - _io__Buffered_readinto1_impl
  - _buffered_readline
  - _io__Buffered_readline_impl
  - buffered_tell
  - _io__Buffered_seek_impl
  - _io__Buffered_truncate_impl
  - buffered_iternext
  - buffered_repr
  - _bufferedreader_reset_buf
  - _io_BufferedReader___init___impl
  - _bufferedreader_raw_read
  - _bufferedreader_fill_buffer
  - _bufferedreader_read_all
  - _bufferedreader_read_fast
  - _bufferedreader_read_generic
  - _bufferedreader_peek_unlocked
  - _bufferedwriter_reset_buf
  - _io_BufferedWriter___init___impl
  - _bufferedwriter_raw_write
  - _bufferedwriter_flush_unlocked
  - _io_BufferedWriter_write_impl
  - _io_BufferedRWPair___init___impl
  - bufferedrwpair_traverse
  - bufferedrwpair_clear
  - bufferedrwpair_dealloc
  - _forward_call
  - bufferedrwpair_read
  - bufferedrwpair_peek
  - bufferedrwpair_read1
  - bufferedrwpair_readinto
  - bufferedrwpair_readinto1
  - bufferedrwpair_write
  - bufferedrwpair_flush
  - bufferedrwpair_readable
  - bufferedrwpair_writable
  - bufferedrwpair_close
  - bufferedrwpair_isatty
  - bufferedrwpair_closed_get
  - _io_BufferedRandom___init___impl
  source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*raw'
        type: PyObject_HEAD
      - name: ok
        type: int
      - name: detached
        type: int
      - name: readable
        type: int
      - name: writable
        type: int
      - name: finalizing
        type: char
      - name: fast_closed_checks
        type: int
      - name: abs_pos
        type: Py_off_t
      - name: '*buffer'
        type: char
      - name: pos
        type: Py_off_t
      - name: raw_pos
        type: Py_off_t
      - name: read_end
        type: Py_off_t
      - name: write_pos
        type: Py_off_t
      - name: write_end
        type: Py_off_t
      - name: lock
        type: PyThread_type_lock
      - name: owner
        type: unsigned long
      - name: buffer_size
        type: Py_ssize_t
      - name: buffer_mask
        type: Py_ssize_t
      - name: '*dict'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: buffered
      pos:
        line_end: 242
        line_start: 200
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    - fields:
      - name: '*reader'
        type: PyObject_HEAD
      - name: '*writer'
        type: buffered
      - name: '*dict'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: rwpair
      pos:
        line_end: 2072
        line_start: 2066
        source_file: /src/Python-3.8.3/Modules/_io/bufferedio.c
    typedefs: []
    union: []
- function_names:
  - iobase_unsupported
  - iobase_seek
  - _io__IOBase_tell_impl
  - iobase_truncate
  - iobase_is_closed
  - _io__IOBase_flush_impl
  - iobase_closed_get
  - iobase_check_closed
  - _PyIOBase_check_closed
  - _io__IOBase_close_impl
  - iobase_finalize
  - _PyIOBase_finalize
  - iobase_traverse
  - iobase_clear
  - iobase_dealloc
  - _io__IOBase_seekable_impl
  - _PyIOBase_check_seekable
  - _io__IOBase_readable_impl
  - _PyIOBase_check_readable
  - _io__IOBase_writable_impl
  - _PyIOBase_check_writable
  - iobase_enter
  - iobase_exit
  - _io__IOBase_fileno_impl
  - _io__IOBase_isatty_impl
  - _io__IOBase_readline_impl
  - iobase_iter
  - iobase_iternext
  - _io__IOBase_readlines_impl
  - _io__IOBase_writelines
  - _io__RawIOBase_read_impl
  - _io__RawIOBase_readall_impl
  - rawiobase_readinto
  - rawiobase_write
  source_file: /src/Python-3.8.3/Modules/_io/iobase.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*dict'
        type: PyObject_HEAD
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: iobase
      pos:
        line_end: 32
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_io/iobase.c
    typedefs: []
    union: []
- function_names:
  - _unsupported
  - textiobase_detach
  - textiobase_read
  - textiobase_readline
  - textiobase_write
  - textiobase_encoding_get
  - textiobase_newlines_get
  - textiobase_errors_get
  - _io_IncrementalNewlineDecoder___init___impl
  - incrementalnewlinedecoder_dealloc
  - check_decoded
  - _PyIncrementalNewlineDecoder_decode
  - _io_IncrementalNewlineDecoder_decode_impl
  - _io_IncrementalNewlineDecoder_getstate_impl
  - _io_IncrementalNewlineDecoder_setstate
  - _io_IncrementalNewlineDecoder_reset_impl
  - incrementalnewlinedecoder_newlines_get
  - ascii_encode
  - utf16be_encode
  - utf16le_encode
  - utf16_encode
  - utf32be_encode
  - utf32le_encode
  - utf32_encode
  - utf8_encode
  - latin1_encode
  - is_asciicompat_encoding
  - validate_newline
  - set_newline
  - _textiowrapper_set_decoder
  - _textiowrapper_decode
  - _textiowrapper_set_encoder
  - _textiowrapper_fix_encoder_state
  - _io_TextIOWrapper___init___impl
  - convert_optional_bool
  - textiowrapper_change_encoding
  - _io_TextIOWrapper_reconfigure_impl
  - textiowrapper_clear
  - textiowrapper_dealloc
  - textiowrapper_traverse
  - CHECK_CLOSED
  - CHECK_INITIALIZED
  - CHECK_ATTACHED
  - CHECK_ATTACHED_INT
  - _io_TextIOWrapper_detach_impl
  - _textiowrapper_writeflush
  - _io_TextIOWrapper_write_impl
  - textiowrapper_set_decoded_chars
  - textiowrapper_get_decoded_chars
  - textiowrapper_read_chunk
  - _io_TextIOWrapper_read_impl
  - find_control_char
  - _PyIO_find_line_ending
  - _textiowrapper_readline
  - _io_TextIOWrapper_readline_impl
  - textiowrapper_parse_cookie
  - textiowrapper_build_cookie
  - _textiowrapper_decoder_setstate
  - _textiowrapper_encoder_reset
  - _textiowrapper_encoder_setstate
  - _io_TextIOWrapper_seek_impl
  - _io_TextIOWrapper_tell_impl
  - DECODER_GETSTATE
  - DECODER_DECODE
  - _io_TextIOWrapper_truncate_impl
  - textiowrapper_repr
  - _io_TextIOWrapper_fileno_impl
  - _io_TextIOWrapper_seekable_impl
  - _io_TextIOWrapper_readable_impl
  - _io_TextIOWrapper_writable_impl
  - _io_TextIOWrapper_isatty_impl
  - _io_TextIOWrapper_flush_impl
  - _io_TextIOWrapper_close_impl
  - textiowrapper_iternext
  - textiowrapper_name_get
  - textiowrapper_closed_get
  - textiowrapper_newlines_get
  - textiowrapper_errors_get
  - textiowrapper_chunk_size_get
  - textiowrapper_chunk_size_set
  source_file: /src/Python-3.8.3/Modules/_io/textio.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEEN_CR
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SEEN_LF
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SEEN_CRLF
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SEEN_ALL
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (SEEN_CR | SEEN_LF | SEEN_CRLF)
    - item_type: preproc_def
      name: COOKIE_BUF_LEN
      pos:
        line_end: 2281
        line_start: 2280
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(Py_off_t) + 3 * sizeof(int) + sizeof(char))
    - item_type: preproc_def
      name: OFF_START_POS
      pos:
        line_end: 2288
        line_start: 2287
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(char) + 3 * sizeof(int))
    - item_type: preproc_def
      name: OFF_DEC_FLAGS
      pos:
        line_end: 2289
        line_start: 2288
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(char) + 2 * sizeof(int))
    - item_type: preproc_def
      name: OFF_BYTES_TO_FEED
      pos:
        line_end: 2290
        line_start: 2289
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(char) + sizeof(int))
    - item_type: preproc_def
      name: OFF_CHARS_TO_SKIP
      pos:
        line_end: 2291
        line_start: 2290
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(char))
    - item_type: preproc_def
      name: OFF_NEED_EOF
      pos:
        line_end: 2292
        line_start: 2291
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OFF_START_POS
      pos:
        line_end: 2298
        line_start: 2297
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OFF_DEC_FLAGS
      pos:
        line_end: 2299
        line_start: 2298
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(Py_off_t))
    - item_type: preproc_def
      name: OFF_BYTES_TO_FEED
      pos:
        line_end: 2300
        line_start: 2299
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(Py_off_t) + sizeof(int))
    - item_type: preproc_def
      name: OFF_CHARS_TO_SKIP
      pos:
        line_end: 2301
        line_start: 2300
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(Py_off_t) + 2 * sizeof(int))
    - item_type: preproc_def
      name: OFF_NEED_EOF
      pos:
        line_end: 2302
        line_start: 2301
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type_or_value: (sizeof(Py_off_t) + 3 * sizeof(int))
    structs:
    - fields:
      - name: '*decoder'
        type: PyObject_HEAD
      - name: '*errors'
        type: PyObject
      - name: pendingcr
        type: unsigned int
      - name: translate
        type: unsigned int
      - name: seennl
        type: unsigned int
      item_type: struct
      name: nldecoder_object
      pos:
        line_end: 226
        line_start: 219
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - fields:
      - name: int
        type: PyObject_HEAD
      - name: detached
        type: int
      - name: chunk_size
        type: Py_ssize_t
      - name: '*buffer'
        type: PyObject
      - name: '*encoding'
        type: PyObject
      - name: '*encoder'
        type: PyObject
      - name: '*decoder'
        type: PyObject
      - name: '*readnl'
        type: PyObject
      - name: '*errors'
        type: PyObject
      - name: '*writenl'
        type: char
      - name: line_buffering
        type: char
      - name: write_through
        type: char
      - name: readuniversal
        type: char
      - name: readtranslate
        type: char
      - name: writetranslate
        type: char
      - name: seekable
        type: char
      - name: has_read1
        type: char
      - name: telling
        type: char
      - name: finalizing
        type: char
      - name: encodefunc
        type: encodefunc_t
      - name: encoding_start_of_stream
        type: char
      - name: '*decoded_chars'
        type: PyObject
      - name: decoded_chars_used
        type: Py_ssize_t
      - name: '*pending_bytes'
        type: PyObject
      - name: pending_bytes_count
        type: Py_ssize_t
      - name: '*snapshot'
        type: PyObject
      - name: b2cratio
        type: double
      - name: '*raw'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      - name: '*dict'
        type: PyObject
      item_type: struct
      name: textio
      pos:
        line_end: 694
        line_start: 637
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - fields:
      - name: '*name'
        type: char
      - name: encodefunc
        type: encodefunc_t
      item_type: struct
      name: encodefuncentry
      pos:
        line_end: 792
        line_start: 789
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    - fields:
      - name: start_pos
        type: Py_off_t
      - name: dec_flags
        type: int
      - name: bytes_to_feed
        type: int
      - name: chars_to_skip
        type: int
      - name: need_eof
        type: char
      item_type: struct
      name: cookie_type
      pos:
        line_end: 2271
        line_start: 2265
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
    typedefs:
    - item_type: typedef
      name: "*\n        (*encodefunc_t)(PyObject *, PyObject *)"
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/Python-3.8.3/Modules/_io/textio.c
      type: PyObject
    union: []
- function_names:
  - CHECK_CLOSED
  - CHECK_EXPORTS
  - SHARED_BUF
  - scan_eol
  - unshare_buffer
  - resize_buffer
  - write_bytes
  - bytesio_get_closed
  - _io_BytesIO_readable_impl
  - _io_BytesIO_writable_impl
  - _io_BytesIO_seekable_impl
  - _io_BytesIO_flush_impl
  - _io_BytesIO_getbuffer_impl
  - _io_BytesIO_getvalue_impl
  - _io_BytesIO_isatty_impl
  - _io_BytesIO_tell_impl
  - read_bytes
  - _io_BytesIO_read_impl
  - _io_BytesIO_read1_impl
  - _io_BytesIO_readline_impl
  - _io_BytesIO_readlines_impl
  - _io_BytesIO_readinto_impl
  - _io_BytesIO_truncate_impl
  - bytesio_iternext
  - _io_BytesIO_seek_impl
  - _io_BytesIO_write
  - _io_BytesIO_writelines
  - _io_BytesIO_close_impl
  - bytesio_getstate
  - bytesio_setstate
  - bytesio_dealloc
  - bytesio_new
  - _io_BytesIO___init___impl
  - bytesio_sizeof
  - bytesio_traverse
  - bytesio_clear
  - bytesiobuf_getbuffer
  - bytesiobuf_releasebuffer
  - bytesiobuf_traverse
  - bytesiobuf_dealloc
  source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buf'
        type: PyObject_HEAD
      - name: pos
        type: Py_ssize_t
      - name: string_size
        type: Py_ssize_t
      - name: '*dict'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      - name: exports
        type: Py_ssize_t
      item_type: struct
      name: bytesio
      pos:
        line_end: 19
        line_start: 11
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    - fields:
      - name: '*source'
        type: PyObject_HEAD
      item_type: struct
      name: bytesiobuf
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_io/bytesio.c
    typedefs: []
    union: []
- function_names:
  - PyFileIO_Check
  - _PyFileIO_closed
  - fileio_dealloc_warn
  - internal_close
  - _io_FileIO_close_impl
  - fileio_new
  - fileio_traverse
  - fileio_clear
  - fileio_dealloc
  - err_closed
  - err_mode
  - _io_FileIO_fileno_impl
  - _io_FileIO_readable_impl
  - _io_FileIO_writable_impl
  - _io_FileIO_seekable_impl
  - _io_FileIO_readinto_impl
  - new_buffersize
  - _io_FileIO_readall_impl
  - _io_FileIO_read_impl
  - _io_FileIO_write_impl
  - portable_lseek
  - _io_FileIO_seek_impl
  - _io_FileIO_tell_impl
  - _io_FileIO_truncate_impl
  - mode_string
  - fileio_repr
  - _io_FileIO_isatty_impl
  - get_closed
  - get_closefd
  - get_mode
  source_file: /src/Python-3.8.3/Modules/_io/fileio.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMALLCHUNK
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
      type_or_value: (8*1024)
    - item_type: preproc_def
      name: SMALLCHUNK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
      type_or_value: BUFSIZ
    structs:
    - fields:
      - name: int
        type: PyObject_HEAD
      - name: created
        type: unsigned int
      - name: readable
        type: unsigned int
      - name: writable
        type: unsigned int
      - name: appending
        type: unsigned int
      - name: seekable
        type: signed int
      - name: closefd
        type: unsigned int
      - name: finalizing
        type: char
      - name: blksize
        type: unsigned int
      - name: '*weakreflist'
        type: PyObject
      - name: '*dict'
        type: PyObject
      item_type: struct
      name: fileio
      pos:
        line_end: 69
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_io/fileio.c
    typedefs: []
    union: []
- function_names:
  - CHECK_INITIALIZED
  - CHECK_CLOSED
  - ENSURE_REALIZED
  - resize_buffer
  - make_intermediate
  - realize
  - write_str
  - _io_StringIO_getvalue_impl
  - _io_StringIO_tell_impl
  - _io_StringIO_read_impl
  - _stringio_readline
  - _io_StringIO_readline_impl
  - stringio_iternext
  - _io_StringIO_truncate_impl
  - _io_StringIO_seek_impl
  - _io_StringIO_write
  - _io_StringIO_close_impl
  - stringio_traverse
  - stringio_clear
  - stringio_dealloc
  - stringio_new
  - _io_StringIO___init___impl
  - _io_StringIO_readable_impl
  - _io_StringIO_writable_impl
  - _io_StringIO_seekable_impl
  - stringio_getstate
  - stringio_setstate
  - stringio_closed
  - stringio_line_buffering
  - stringio_newlines
  source_file: /src/Python-3.8.3/Modules/_io/stringio.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATE_REALIZED
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STATE_ACCUMULATING
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
      type_or_value: '2'
    structs:
    - fields:
      - name: '*buf'
        type: PyObject_HEAD
      - name: pos
        type: Py_ssize_t
      - name: string_size
        type: Py_ssize_t
      - name: buf_size
        type: size_t
      - name: state
        type: int
      - name: accu
        type: _PyAccu
      - name: ok
        type: char
      - name: closed
        type: char
      - name: readuniversal
        type: char
      - name: readtranslate
        type: char
      - name: '*decoder'
        type: PyObject
      - name: '*readnl'
        type: PyObject
      - name: '*writenl'
        type: PyObject
      - name: '*dict'
        type: PyObject
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: stringio
      pos:
        line_end: 46
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/_io/stringio.c
    typedefs: []
    union: []
- function_names:
  - _io__IOBase_tell
  - _io__IOBase_flush
  - _io__IOBase_close
  - _io__IOBase_seekable
  - _io__IOBase_readable
  - _io__IOBase_writable
  - _io__IOBase_fileno
  - _io__IOBase_isatty
  - _io__IOBase_readline
  - _io__IOBase_readlines
  - _io__RawIOBase_read
  - _io__RawIOBase_readall
  source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO__IOBASE_TELL_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"tell", (PyCFunction)_io__IOBase_tell, METH_NOARGS, _io__IOBase_tell__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_FLUSH_METHODDEF
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"flush", (PyCFunction)_io__IOBase_flush, METH_NOARGS, _io__IOBase_flush__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_CLOSE_METHODDEF
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"close", (PyCFunction)_io__IOBase_close, METH_NOARGS, _io__IOBase_close__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_SEEKABLE_METHODDEF
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"seekable", (PyCFunction)_io__IOBase_seekable, METH_NOARGS,
        _io__IOBase_seekable__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_READABLE_METHODDEF
      pos:
        line_end: 93
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"readable", (PyCFunction)_io__IOBase_readable, METH_NOARGS,
        _io__IOBase_readable__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_WRITABLE_METHODDEF
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"writable", (PyCFunction)_io__IOBase_writable, METH_NOARGS,
        _io__IOBase_writable__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_FILENO_METHODDEF
      pos:
        line_end: 133
        line_start: 131
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"fileno", (PyCFunction)_io__IOBase_fileno, METH_NOARGS, _io__IOBase_fileno__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_ISATTY_METHODDEF
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"isatty", (PyCFunction)_io__IOBase_isatty, METH_NOARGS, _io__IOBase_isatty__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_READLINE_METHODDEF
      pos:
        line_end: 177
        line_start: 175
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_io__IOBase_readline,
        METH_FASTCALL, _io__IOBase_readline__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_READLINES_METHODDEF
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"readlines", (PyCFunction)(void(*)(void))_io__IOBase_readlines,
        METH_FASTCALL, _io__IOBase_readlines__doc__},'
    - item_type: preproc_def
      name: _IO__IOBASE_WRITELINES_METHODDEF
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"writelines", (PyCFunction)_io__IOBase_writelines, METH_O,
        _io__IOBase_writelines__doc__},'
    - item_type: preproc_def
      name: _IO__RAWIOBASE_READ_METHODDEF
      pos:
        line_end: 260
        line_start: 258
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io__RawIOBase_read, METH_FASTCALL,
        _io__RawIOBase_read__doc__},'
    - item_type: preproc_def
      name: _IO__RAWIOBASE_READALL_METHODDEF
      pos:
        line_end: 308
        line_start: 306
        source_file: /src/Python-3.8.3/Modules/_io/clinic/iobase.c.h
      type_or_value: '{"readall", (PyCFunction)_io__RawIOBase_readall, METH_NOARGS,
        _io__RawIOBase_readall__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io_IncrementalNewlineDecoder___init__
  - _io_IncrementalNewlineDecoder_decode
  - _io_IncrementalNewlineDecoder_getstate
  - _io_IncrementalNewlineDecoder_reset
  - _io_TextIOWrapper___init__
  - _io_TextIOWrapper_reconfigure
  - _io_TextIOWrapper_detach
  - _io_TextIOWrapper_write
  - _io_TextIOWrapper_read
  - _io_TextIOWrapper_readline
  - _io_TextIOWrapper_seek
  - _io_TextIOWrapper_tell
  - _io_TextIOWrapper_truncate
  - _io_TextIOWrapper_fileno
  - _io_TextIOWrapper_seekable
  - _io_TextIOWrapper_readable
  - _io_TextIOWrapper_writable
  - _io_TextIOWrapper_isatty
  - _io_TextIOWrapper_flush
  - _io_TextIOWrapper_close
  source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO_INCREMENTALNEWLINEDECODER_DECODE_METHODDEF
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))_io_IncrementalNewlineDecoder_decode,
        METH_FASTCALL|METH_KEYWORDS, _io_IncrementalNewlineDecoder_decode__doc__},'
    - item_type: preproc_def
      name: _IO_INCREMENTALNEWLINEDECODER_GETSTATE_METHODDEF
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"getstate", (PyCFunction)_io_IncrementalNewlineDecoder_getstate,
        METH_NOARGS, _io_IncrementalNewlineDecoder_getstate__doc__},'
    - item_type: preproc_def
      name: _IO_INCREMENTALNEWLINEDECODER_SETSTATE_METHODDEF
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"setstate", (PyCFunction)_io_IncrementalNewlineDecoder_setstate,
        METH_O, _io_IncrementalNewlineDecoder_setstate__doc__},'
    - item_type: preproc_def
      name: _IO_INCREMENTALNEWLINEDECODER_RESET_METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"reset", (PyCFunction)_io_IncrementalNewlineDecoder_reset,
        METH_NOARGS, _io_IncrementalNewlineDecoder_reset__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_RECONFIGURE_METHODDEF
      pos:
        line_end: 308
        line_start: 306
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"reconfigure", (PyCFunction)(void(*)(void))_io_TextIOWrapper_reconfigure,
        METH_FASTCALL|METH_KEYWORDS, _io_TextIOWrapper_reconfigure__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_DETACH_METHODDEF
      pos:
        line_end: 375
        line_start: 373
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"detach", (PyCFunction)_io_TextIOWrapper_detach, METH_NOARGS,
        _io_TextIOWrapper_detach__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_WRITE_METHODDEF
      pos:
        line_end: 392
        line_start: 390
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"write", (PyCFunction)_io_TextIOWrapper_write, METH_O, _io_TextIOWrapper_write__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_READ_METHODDEF
      pos:
        line_end: 423
        line_start: 421
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io_TextIOWrapper_read,
        METH_FASTCALL, _io_TextIOWrapper_read__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_READLINE_METHODDEF
      pos:
        line_end: 456
        line_start: 454
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_io_TextIOWrapper_readline,
        METH_FASTCALL, _io_TextIOWrapper_readline__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_SEEK_METHODDEF
      pos:
        line_end: 503
        line_start: 501
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"seek", (PyCFunction)(void(*)(void))_io_TextIOWrapper_seek,
        METH_FASTCALL, _io_TextIOWrapper_seek__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_TELL_METHODDEF
      pos:
        line_end: 544
        line_start: 542
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"tell", (PyCFunction)_io_TextIOWrapper_tell, METH_NOARGS, _io_TextIOWrapper_tell__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_TRUNCATE_METHODDEF
      pos:
        line_end: 561
        line_start: 559
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))_io_TextIOWrapper_truncate,
        METH_FASTCALL, _io_TextIOWrapper_truncate__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_FILENO_METHODDEF
      pos:
        line_end: 592
        line_start: 590
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"fileno", (PyCFunction)_io_TextIOWrapper_fileno, METH_NOARGS,
        _io_TextIOWrapper_fileno__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_SEEKABLE_METHODDEF
      pos:
        line_end: 609
        line_start: 607
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"seekable", (PyCFunction)_io_TextIOWrapper_seekable, METH_NOARGS,
        _io_TextIOWrapper_seekable__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_READABLE_METHODDEF
      pos:
        line_end: 626
        line_start: 624
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"readable", (PyCFunction)_io_TextIOWrapper_readable, METH_NOARGS,
        _io_TextIOWrapper_readable__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_WRITABLE_METHODDEF
      pos:
        line_end: 643
        line_start: 641
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"writable", (PyCFunction)_io_TextIOWrapper_writable, METH_NOARGS,
        _io_TextIOWrapper_writable__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_ISATTY_METHODDEF
      pos:
        line_end: 660
        line_start: 658
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"isatty", (PyCFunction)_io_TextIOWrapper_isatty, METH_NOARGS,
        _io_TextIOWrapper_isatty__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_FLUSH_METHODDEF
      pos:
        line_end: 677
        line_start: 675
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"flush", (PyCFunction)_io_TextIOWrapper_flush, METH_NOARGS,
        _io_TextIOWrapper_flush__doc__},'
    - item_type: preproc_def
      name: _IO_TEXTIOWRAPPER_CLOSE_METHODDEF
      pos:
        line_end: 694
        line_start: 692
        source_file: /src/Python-3.8.3/Modules/_io/clinic/textio.c.h
      type_or_value: '{"close", (PyCFunction)_io_TextIOWrapper_close, METH_NOARGS,
        _io_TextIOWrapper_close__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io_open
  - _io_open_code
  source_file: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO_OPEN_METHODDEF
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h
      type_or_value: '{"open", (PyCFunction)(void(*)(void))_io_open, METH_FASTCALL|METH_KEYWORDS,
        _io_open__doc__},'
    - item_type: preproc_def
      name: _IO_OPEN_CODE_METHODDEF
      pos:
        line_end: 295
        line_start: 293
        source_file: /src/Python-3.8.3/Modules/_io/clinic/_iomodule.c.h
      type_or_value: '{"open_code", (PyCFunction)(void(*)(void))_io_open_code, METH_FASTCALL|METH_KEYWORDS,
        _io_open_code__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io_BytesIO_readable
  - _io_BytesIO_writable
  - _io_BytesIO_seekable
  - _io_BytesIO_flush
  - _io_BytesIO_getbuffer
  - _io_BytesIO_getvalue
  - _io_BytesIO_isatty
  - _io_BytesIO_tell
  - _io_BytesIO_read
  - _io_BytesIO_read1
  - _io_BytesIO_readline
  - _io_BytesIO_readlines
  - _io_BytesIO_readinto
  - _io_BytesIO_truncate
  - _io_BytesIO_seek
  - _io_BytesIO_close
  - _io_BytesIO___init__
  source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO_BYTESIO_READABLE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"readable", (PyCFunction)_io_BytesIO_readable, METH_NOARGS,
        _io_BytesIO_readable__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_WRITABLE_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"writable", (PyCFunction)_io_BytesIO_writable, METH_NOARGS,
        _io_BytesIO_writable__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_SEEKABLE_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"seekable", (PyCFunction)_io_BytesIO_seekable, METH_NOARGS,
        _io_BytesIO_seekable__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_FLUSH_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"flush", (PyCFunction)_io_BytesIO_flush, METH_NOARGS, _io_BytesIO_flush__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_GETBUFFER_METHODDEF
      pos:
        line_end: 84
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"getbuffer", (PyCFunction)_io_BytesIO_getbuffer, METH_NOARGS,
        _io_BytesIO_getbuffer__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_GETVALUE_METHODDEF
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"getvalue", (PyCFunction)_io_BytesIO_getvalue, METH_NOARGS,
        _io_BytesIO_getvalue__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_ISATTY_METHODDEF
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"isatty", (PyCFunction)_io_BytesIO_isatty, METH_NOARGS, _io_BytesIO_isatty__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_TELL_METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"tell", (PyCFunction)_io_BytesIO_tell, METH_NOARGS, _io_BytesIO_tell__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_READ_METHODDEF
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io_BytesIO_read, METH_FASTCALL,
        _io_BytesIO_read__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_READ1_METHODDEF
      pos:
        line_end: 198
        line_start: 196
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"read1", (PyCFunction)(void(*)(void))_io_BytesIO_read1, METH_FASTCALL,
        _io_BytesIO_read1__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_READLINE_METHODDEF
      pos:
        line_end: 236
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_io_BytesIO_readline,
        METH_FASTCALL, _io_BytesIO_readline__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_READLINES_METHODDEF
      pos:
        line_end: 274
        line_start: 272
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"readlines", (PyCFunction)(void(*)(void))_io_BytesIO_readlines,
        METH_FASTCALL, _io_BytesIO_readlines__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_READINTO_METHODDEF
      pos:
        line_end: 309
        line_start: 307
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"readinto", (PyCFunction)_io_BytesIO_readinto, METH_O, _io_BytesIO_readinto__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_TRUNCATE_METHODDEF
      pos:
        line_end: 350
        line_start: 348
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))_io_BytesIO_truncate,
        METH_FASTCALL, _io_BytesIO_truncate__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_SEEK_METHODDEF
      pos:
        line_end: 390
        line_start: 388
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"seek", (PyCFunction)(void(*)(void))_io_BytesIO_seek, METH_FASTCALL,
        _io_BytesIO_seek__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_WRITE_METHODDEF
      pos:
        line_end: 450
        line_start: 448
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"write", (PyCFunction)_io_BytesIO_write, METH_O, _io_BytesIO_write__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_WRITELINES_METHODDEF
      pos:
        line_end: 463
        line_start: 461
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"writelines", (PyCFunction)_io_BytesIO_writelines, METH_O,
        _io_BytesIO_writelines__doc__},'
    - item_type: preproc_def
      name: _IO_BYTESIO_CLOSE_METHODDEF
      pos:
        line_end: 472
        line_start: 470
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bytesio.c.h
      type_or_value: '{"close", (PyCFunction)_io_BytesIO_close, METH_NOARGS, _io_BytesIO_close__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io_StringIO_getvalue
  - _io_StringIO_tell
  - _io_StringIO_read
  - _io_StringIO_readline
  - _io_StringIO_truncate
  - _io_StringIO_seek
  - _io_StringIO_close
  - _io_StringIO___init__
  - _io_StringIO_readable
  - _io_StringIO_writable
  - _io_StringIO_seekable
  source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO_STRINGIO_GETVALUE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"getvalue", (PyCFunction)_io_StringIO_getvalue, METH_NOARGS,
        _io_StringIO_getvalue__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_TELL_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"tell", (PyCFunction)_io_StringIO_tell, METH_NOARGS, _io_StringIO_tell__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_READ_METHODDEF
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io_StringIO_read, METH_FASTCALL,
        _io_StringIO_read__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_READLINE_METHODDEF
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_io_StringIO_readline,
        METH_FASTCALL, _io_StringIO_readline__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_TRUNCATE_METHODDEF
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))_io_StringIO_truncate,
        METH_FASTCALL, _io_StringIO_truncate__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_SEEK_METHODDEF
      pos:
        line_end: 165
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"seek", (PyCFunction)(void(*)(void))_io_StringIO_seek, METH_FASTCALL,
        _io_StringIO_seek__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_WRITE_METHODDEF
      pos:
        line_end: 226
        line_start: 224
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"write", (PyCFunction)_io_StringIO_write, METH_O, _io_StringIO_write__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_CLOSE_METHODDEF
      pos:
        line_end: 240
        line_start: 238
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"close", (PyCFunction)_io_StringIO_close, METH_NOARGS, _io_StringIO_close__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_READABLE_METHODDEF
      pos:
        line_end: 305
        line_start: 303
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"readable", (PyCFunction)_io_StringIO_readable, METH_NOARGS,
        _io_StringIO_readable__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_WRITABLE_METHODDEF
      pos:
        line_end: 323
        line_start: 321
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"writable", (PyCFunction)_io_StringIO_writable, METH_NOARGS,
        _io_StringIO_writable__doc__},'
    - item_type: preproc_def
      name: _IO_STRINGIO_SEEKABLE_METHODDEF
      pos:
        line_end: 341
        line_start: 339
        source_file: /src/Python-3.8.3/Modules/_io/clinic/stringio.c.h
      type_or_value: '{"seekable", (PyCFunction)_io_StringIO_seekable, METH_NOARGS,
        _io_StringIO_seekable__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io_FileIO_close
  - _io_FileIO___init__
  - _io_FileIO_fileno
  - _io_FileIO_readable
  - _io_FileIO_writable
  - _io_FileIO_seekable
  - _io_FileIO_readinto
  - _io_FileIO_readall
  - _io_FileIO_read
  - _io_FileIO_write
  - _io_FileIO_seek
  - _io_FileIO_tell
  - _io_FileIO_truncate
  - _io_FileIO_isatty
  source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO_FILEIO_CLOSE_METHODDEF
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"close", (PyCFunction)_io_FileIO_close, METH_NOARGS, _io_FileIO_close__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_FILENO_METHODDEF
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"fileno", (PyCFunction)_io_FileIO_fileno, METH_NOARGS, _io_FileIO_fileno__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_READABLE_METHODDEF
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"readable", (PyCFunction)_io_FileIO_readable, METH_NOARGS,
        _io_FileIO_readable__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_WRITABLE_METHODDEF
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"writable", (PyCFunction)_io_FileIO_writable, METH_NOARGS,
        _io_FileIO_writable__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_SEEKABLE_METHODDEF
      pos:
        line_end: 172
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"seekable", (PyCFunction)_io_FileIO_seekable, METH_NOARGS,
        _io_FileIO_seekable__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_READINTO_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"readinto", (PyCFunction)_io_FileIO_readinto, METH_O, _io_FileIO_readinto__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_READALL_METHODDEF
      pos:
        line_end: 231
        line_start: 229
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"readall", (PyCFunction)_io_FileIO_readall, METH_NOARGS, _io_FileIO_readall__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_READ_METHODDEF
      pos:
        line_end: 253
        line_start: 251
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io_FileIO_read, METH_FASTCALL,
        _io_FileIO_read__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_WRITE_METHODDEF
      pos:
        line_end: 291
        line_start: 289
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"write", (PyCFunction)_io_FileIO_write, METH_O, _io_FileIO_write__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_SEEK_METHODDEF
      pos:
        line_end: 335
        line_start: 333
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"seek", (PyCFunction)(void(*)(void))_io_FileIO_seek, METH_FASTCALL,
        _io_FileIO_seek__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_TELL_METHODDEF
      pos:
        line_end: 379
        line_start: 377
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"tell", (PyCFunction)_io_FileIO_tell, METH_NOARGS, _io_FileIO_tell__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_TRUNCATE_METHODDEF
      pos:
        line_end: 402
        line_start: 400
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))_io_FileIO_truncate,
        METH_FASTCALL, _io_FileIO_truncate__doc__},'
    - item_type: preproc_def
      name: _IO_FILEIO_ISATTY_METHODDEF
      pos:
        line_end: 436
        line_start: 434
        source_file: /src/Python-3.8.3/Modules/_io/clinic/fileio.c.h
      type_or_value: '{"isatty", (PyCFunction)_io_FileIO_isatty, METH_NOARGS, _io_FileIO_isatty__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io__BufferedIOBase_readinto
  - _io__BufferedIOBase_readinto1
  - _io__BufferedIOBase_detach
  - _io__Buffered_peek
  - _io__Buffered_read
  - _io__Buffered_read1
  - _io__Buffered_readinto
  - _io__Buffered_readinto1
  - _io__Buffered_readline
  - _io__Buffered_seek
  - _io__Buffered_truncate
  - _io_BufferedReader___init__
  - _io_BufferedWriter___init__
  - _io_BufferedWriter_write
  - _io_BufferedRWPair___init__
  - _io_BufferedRandom___init__
  source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO__BUFFEREDIOBASE_READINTO_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"readinto", (PyCFunction)_io__BufferedIOBase_readinto, METH_O,
        _io__BufferedIOBase_readinto__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFEREDIOBASE_READINTO1_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"readinto1", (PyCFunction)_io__BufferedIOBase_readinto1, METH_O,
        _io__BufferedIOBase_readinto1__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFEREDIOBASE_DETACH_METHODDEF
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"detach", (PyCFunction)_io__BufferedIOBase_detach, METH_NOARGS,
        _io__BufferedIOBase_detach__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_PEEK_METHODDEF
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"peek", (PyCFunction)(void(*)(void))_io__Buffered_peek, METH_FASTCALL,
        _io__Buffered_peek__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_READ_METHODDEF
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io__Buffered_read, METH_FASTCALL,
        _io__Buffered_read__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_READ1_METHODDEF
      pos:
        line_end: 186
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"read1", (PyCFunction)(void(*)(void))_io__Buffered_read1, METH_FASTCALL,
        _io__Buffered_read1__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_READINTO_METHODDEF
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"readinto", (PyCFunction)_io__Buffered_readinto, METH_O, _io__Buffered_readinto__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_READINTO1_METHODDEF
      pos:
        line_end: 270
        line_start: 268
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"readinto1", (PyCFunction)_io__Buffered_readinto1, METH_O,
        _io__Buffered_readinto1__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_READLINE_METHODDEF
      pos:
        line_end: 307
        line_start: 305
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_io__Buffered_readline,
        METH_FASTCALL, _io__Buffered_readline__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_SEEK_METHODDEF
      pos:
        line_end: 340
        line_start: 338
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"seek", (PyCFunction)(void(*)(void))_io__Buffered_seek, METH_FASTCALL,
        _io__Buffered_seek__doc__},'
    - item_type: preproc_def
      name: _IO__BUFFERED_TRUNCATE_METHODDEF
      pos:
        line_end: 381
        line_start: 379
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))_io__Buffered_truncate,
        METH_FASTCALL, _io__Buffered_truncate__doc__},'
    - item_type: preproc_def
      name: _IO_BUFFEREDWRITER_WRITE_METHODDEF
      pos:
        line_end: 526
        line_start: 524
        source_file: /src/Python-3.8.3/Modules/_io/clinic/bufferedio.c.h
      type_or_value: '{"write", (PyCFunction)_io_BufferedWriter_write, METH_O, _io_BufferedWriter_write__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _io__WindowsConsoleIO_close
  - _io__WindowsConsoleIO___init__
  - _io__WindowsConsoleIO_fileno
  - _io__WindowsConsoleIO_readable
  - _io__WindowsConsoleIO_writable
  - _io__WindowsConsoleIO_readinto
  - _io__WindowsConsoleIO_readall
  - _io__WindowsConsoleIO_read
  - _io__WindowsConsoleIO_write
  - _io__WindowsConsoleIO_isatty
  source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_CLOSE_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"close", (PyCFunction)_io__WindowsConsoleIO_close, METH_NOARGS,
        _io__WindowsConsoleIO_close__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_FILENO_METHODDEF
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"fileno", (PyCFunction)_io__WindowsConsoleIO_fileno, METH_NOARGS,
        _io__WindowsConsoleIO_fileno__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_READABLE_METHODDEF
      pos:
        line_end: 146
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"readable", (PyCFunction)_io__WindowsConsoleIO_readable, METH_NOARGS,
        _io__WindowsConsoleIO_readable__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_WRITABLE_METHODDEF
      pos:
        line_end: 168
        line_start: 166
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"writable", (PyCFunction)_io__WindowsConsoleIO_writable, METH_NOARGS,
        _io__WindowsConsoleIO_writable__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_READINTO_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"readinto", (PyCFunction)_io__WindowsConsoleIO_readinto, METH_O,
        _io__WindowsConsoleIO_readinto__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_READALL_METHODDEF
      pos:
        line_end: 234
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"readall", (PyCFunction)_io__WindowsConsoleIO_readall, METH_NOARGS,
        _io__WindowsConsoleIO_readall__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_READ_METHODDEF
      pos:
        line_end: 260
        line_start: 258
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_io__WindowsConsoleIO_read,
        METH_FASTCALL, _io__WindowsConsoleIO_read__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_WRITE_METHODDEF
      pos:
        line_end: 301
        line_start: 299
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"write", (PyCFunction)_io__WindowsConsoleIO_write, METH_O,
        _io__WindowsConsoleIO_write__doc__},'
    - item_type: preproc_def
      name: _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
      pos:
        line_end: 341
        line_start: 339
        source_file: /src/Python-3.8.3/Modules/_io/clinic/winconsoleio.c.h
      type_or_value: '{"isatty", (PyCFunction)_io__WindowsConsoleIO_isatty, METH_NOARGS,
        _io__WindowsConsoleIO_isatty__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _fuzz_run
  - PyInit__xxtestfuzz
  source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/_xxtestfuzz.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fuzz_builtin_float
  - fuzz_builtin_int
  - fuzz_builtin_unicode
  - init_json_loads
  - fuzz_json_loads
  - init_sre_compile
  - fuzz_sre_compile
  - init_sre_match
  - fuzz_sre_match
  - init_csv_reader
  - fuzz_csv_reader
  - _run_fuzz
  - __lsan_is_turned_off
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INT_TEST_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_JSON_TEST_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_RE_TEST_SIZE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: MAX_CSV_TEST_SIZE
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/Python-3.8.3/Modules/_xxtestfuzz/fuzzer.c
      type_or_value: '0x10000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pymem_destructor
  - PyCField_new
  - PyCField_FromDesc
  - PyCField_set
  - PyCField_get
  - PyCField_get_offset
  - PyCField_get_size
  - PyCField_traverse
  - PyCField_clear
  - PyCField_dealloc
  - PyCField_repr
  - get_long
  - get_ulong
  - get_longlong
  - get_ulonglong
  - LOW_BIT
  - NUM_BITS
  - BIT_MASK
  - GET_BITFIELD
  - SET
  - SWAP_2
  - SWAP_4
  - SWAP_8
  - SWAP_8
  - _RET
  - _RET
  - b_set
  - b_get
  - B_set
  - B_get
  - h_set
  - h_set_sw
  - h_get
  - h_get_sw
  - H_set
  - H_set_sw
  - H_get
  - H_get_sw
  - i_set
  - i_set_sw
  - i_get
  - i_get_sw
  - vBOOL_set
  - vBOOL_get
  - bool_set
  - bool_get
  - I_set
  - I_set_sw
  - I_get
  - I_get_sw
  - l_set
  - l_set_sw
  - l_get
  - l_get_sw
  - L_set
  - L_set_sw
  - L_get
  - L_get_sw
  - q_set
  - q_set_sw
  - q_get
  - q_get_sw
  - Q_set
  - Q_set_sw
  - Q_get
  - Q_get_sw
  - g_set
  - g_get
  - d_set
  - d_get
  - d_set_sw
  - d_get_sw
  - f_set
  - f_get
  - f_set_sw
  - f_get_sw
  - O_get
  - O_set
  - c_set
  - c_get
  - u_set
  - u_get
  - U_get
  - U_set
  - s_get
  - s_set
  - z_set
  - z_get
  - Z_set
  - Z_get
  - BSTR_set
  - BSTR_get
  - P_set
  - P_get
  - _ctypes_get_fielddesc
  source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CTYPES_CFIELD_CAPSULE_NAME_PYMEM
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: '"_ctypes/cfield.c pymem"'
    - item_type: preproc_def
      name: NO_BITFIELD
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: '0'
    - item_type: preproc_def
      name: NEW_BITFIELD
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CONT_BITFIELD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EXPAND_BITFIELD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SWAP_INT
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: SWAP_4
    - item_type: preproc_def
      name: SWAP_LONG
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: SWAP_4
    - item_type: preproc_def
      name: SWAP_LONG
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: SWAP_8
    - item_type: preproc_def
      name: INT_ALIGN
      pos:
        line_end: 1609
        line_start: 1608
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_int) - sizeof(int))
    - item_type: preproc_def
      name: FLOAT_ALIGN
      pos:
        line_end: 1610
        line_start: 1609
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_float) - sizeof(float))
    - item_type: preproc_def
      name: DOUBLE_ALIGN
      pos:
        line_end: 1611
        line_start: 1610
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_double) - sizeof(double))
    - item_type: preproc_def
      name: LONGDOUBLE_ALIGN
      pos:
        line_end: 1612
        line_start: 1611
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_long_double) - sizeof(long double))
    - item_type: preproc_def
      name: VOID_P_ALIGN
      pos:
        line_end: 1615
        line_start: 1614
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_void_p) - sizeof(void*))
    - item_type: preproc_def
      name: LONG_LONG_ALIGN
      pos:
        line_end: 1628
        line_start: 1627
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
      type_or_value: (sizeof(s_long_long) - sizeof(long long))
    structs:
    - fields:
      - name: c
        type: char
      - name: x
        type: char
      item_type: struct
      name: s_char
      pos:
        line_end: 1593
        line_start: 1593
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: short
      item_type: struct
      name: s_short
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: int
      item_type: struct
      name: s_int
      pos:
        line_end: 1595
        line_start: 1595
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: long
      item_type: struct
      name: s_long
      pos:
        line_end: 1596
        line_start: 1596
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: float
      item_type: struct
      name: s_float
      pos:
        line_end: 1597
        line_start: 1597
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: double
      item_type: struct
      name: s_double
      pos:
        line_end: 1598
        line_start: 1598
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: long double
      item_type: struct
      name: s_long_double
      pos:
        line_end: 1599
        line_start: 1599
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: '*x'
        type: char
      item_type: struct
      name: s_char_p
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: '*x'
        type: void
      item_type: struct
      name: s_void_p
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    - fields:
      - name: c
        type: char
      - name: x
        type: long long
      item_type: struct
      name: s_long_long
      pos:
        line_end: 1626
        line_start: 1626
        source_file: /src/Python-3.8.3/Modules/_ctypes/cfield.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ctypes_dlsym
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
      type_or_value: dlsym
    - item_type: preproc_def
      name: ctypes_dlerror
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
      type_or_value: dlerror
    - item_type: preproc_def
      name: ctypes_dlopen
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
      type_or_value: dlopen
    - item_type: preproc_def
      name: ctypes_dlclose
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
      type_or_value: dlclose
    - item_type: preproc_def
      name: ctypes_dladdr
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes_dlfcn.h
      type_or_value: dladdr
    structs: []
    typedefs: []
    union: []
- function_names:
  - EXPORT
  - EXPORT
  - _testfunc_cbk_reg_int
  - _testfunc_cbk_reg_double
  - _testfunc_cbk_large_struct
  - _testfunc_large_struct_update_value
  - _testfunc_reg_struct_update_value
  - _testfunc_array_in_struct1
  - _testfunc_array_in_struct2
  - _testfunc_array_in_struct2a
  - _testfunc_union_by_value1
  - _testfunc_union_by_value2
  - _testfunc_union_by_reference1
  - _testfunc_union_by_reference2
  - _testfunc_union_by_reference3
  - _testfunc_bitfield_by_value1
  - _testfunc_bitfield_by_reference1
  - _testfunc_bitfield_by_reference2
  - _testfunc_bitfield_by_value2
  - testfunc_array
  - testfunc_Ddd
  - testfunc_DDD
  - testfunc_iii
  - myprintf
  - my_strtok
  - my_strchr
  - my_sqrt
  - my_qsort
  - _testfunc_ai8
  - _testfunc_v
  - _testfunc_i_bhilfd
  - _testfunc_f_bhilfd
  - _testfunc_d_bhilfd
  - _testfunc_D_bhilfD
  - _testfunc_p_p
  - _testfunc_c_p_p
  - get_strchr
  - my_strdup
  - my_free
  - my_wcsdup
  - my_wcslen
  - _testfunc_callfuncp
  - _testfunc_deref_pointer
  - _testfunc_piunk
  - _testfunc_callback_with_pointer
  - _testfunc_q_bhilfdq
  - _testfunc_q_bhilfd
  - _testfunc_callback_i_if
  - _testfunc_callback_q_qf
  - getSPAMANDEGGS
  - _testfunc_byval
  - get_an_integer
  - integrate
  - _xxx_init
  - GetString
  - py_func_si
  - _py_func_si
  - py_func
  - _py_func
  - EXPORT
  - EXPORT
  - set_bitfields
  - unpack_bitfields
  - tf_b
  - tf_B
  - tf_h
  - tf_H
  - tf_i
  - tf_I
  - tf_l
  - tf_L
  - tf_q
  - tf_Q
  - tf_f
  - tf_d
  - tf_D
  - s_tf_b
  - s_tf_B
  - s_tf_h
  - s_tf_H
  - s_tf_i
  - s_tf_I
  - s_tf_l
  - s_tf_L
  - s_tf_q
  - s_tf_Q
  - s_tf_f
  - s_tf_d
  - s_tf_D
  - tf_bb
  - tf_bB
  - tf_bh
  - tf_bH
  - tf_bi
  - tf_bI
  - tf_bl
  - tf_bL
  - tf_bq
  - tf_bQ
  - tf_bf
  - tf_bd
  - tf_bD
  - tv_i
  - s_tf_bb
  - s_tf_bB
  - s_tf_bh
  - s_tf_bH
  - s_tf_bi
  - s_tf_bI
  - s_tf_bl
  - s_tf_bL
  - s_tf_bq
  - s_tf_bQ
  - s_tf_bf
  - s_tf_bd
  - s_tf_bD
  - s_tv_i
  - PointInRect
  - ReturnRect
  - ret_2h_func
  - ret_8i_func
  - GetRectangle
  - TwoOutArgs
  - TestSize1
  - TestSize2
  - TestSize3
  - TestSize4
  - TestSize5
  - TestSize6
  - TestSize7
  - TestSize8
  - TestSize9
  - TestSize10
  - s_ret_2h_func
  - (S8I inp)
  - KeepObject
  - PyInit__ctypes_test
  source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
      type_or_value: last_tf_arg_s = (long long)c
    - item_type: preproc_def
      name: U
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
      type_or_value: last_tf_arg_u = (unsigned long long)c
    structs:
    - fields:
      - name: first
        type: unsigned long
      - name: second
        type: unsigned long
      - name: third
        type: unsigned long
      item_type: struct
      name: Test
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: first
        type: unsigned int
      - name: second
        type: unsigned int
      item_type: struct
      name: TestReg
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: data[16]
        type: unsigned char
      item_type: struct
      name: Test2
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: data[2]
        type: double
      item_type: struct
      name: Test3
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: data[2]
        type: float
      - name: more_data[2]
        type: float
      item_type: struct
      name: Test3B
      pos:
        line_end: 105
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: an_int
        type: int
      - name: nested
        type: "struct {\n        int an_int;\n        Test4 a_union;\n    }"
      - name: another_int
        type: int
      item_type: struct
      name: Test5
      pos:
        line_end: 152
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: A
        type: signed int
      item_type: struct
      name: Test6
      pos:
        line_end: 202
        line_start: 200
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: A
        type: unsigned int
      item_type: struct
      name: Test7
      pos:
        line_end: 225
        line_start: 223
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: (*c)(int, int)
        type: int
      - name: (__stdcall *s)(int, int)
        type: int
      item_type: struct
      name: FUNCS
      pos:
        line_end: 410
        line_start: 407
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: '*name'
        type: char
      - name: '*value'
        type: char
      item_type: struct
      name: SPAM
      pos:
        line_end: 475
        line_start: 472
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: '*name'
        type: char
      - name: num_spams
        type: int
      - name: '*spams'
        type: SPAM
      item_type: struct
      name: EGG
      pos:
        line_end: 481
        line_start: 477
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: x
        type: int
      - name: y
        type: int
      item_type: struct
      name: tagpoint
      pos:
        line_end: 501
        line_start: 498
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: (*initialize)(void *(*)(int), void(*)(void *))
        type: void
      item_type: struct
      name: xxx_library
      pos:
        line_end: 530
        line_start: 528
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: A
        type: signed int
      item_type: struct
      name: BITS
      pos:
        line_end: 598
        line_start: 588
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: x
        type: long
      - name: y
        type: long
      item_type: struct
      name: POINT
      pos:
        line_end: 732
        line_start: 729
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: left
        type: long
      - name: top
        type: long
      - name: right
        type: long
      - name: bottom
        type: long
      item_type: struct
      name: RECT
      pos:
        line_end: 739
        line_start: 734
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: x
        type: short
      - name: y
        type: short
      item_type: struct
      name: S2H
      pos:
        line_end: 802
        line_start: 799
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: a
        type: int
      item_type: struct
      name: S8I
      pos:
        line_end: 813
        line_start: 811
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      item_type: struct
      name: Size1
      pos:
        line_end: 849
        line_start: 847
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      item_type: struct
      name: Size2
      pos:
        line_end: 854
        line_start: 851
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      item_type: struct
      name: Size3
      pos:
        line_end: 860
        line_start: 856
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      item_type: struct
      name: Size4
      pos:
        line_end: 867
        line_start: 862
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      item_type: struct
      name: Size5
      pos:
        line_end: 875
        line_start: 869
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      - name: f6
        type: char
      item_type: struct
      name: Size6
      pos:
        line_end: 884
        line_start: 877
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      - name: f6
        type: char
      - name: f7
        type: char
      item_type: struct
      name: Size7
      pos:
        line_end: 894
        line_start: 886
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      - name: f6
        type: char
      - name: f7
        type: char
      - name: f8
        type: char
      item_type: struct
      name: Size8
      pos:
        line_end: 905
        line_start: 896
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      - name: f6
        type: char
      - name: f7
        type: char
      - name: f8
        type: char
      - name: f9
        type: char
      item_type: struct
      name: Size9
      pos:
        line_end: 917
        line_start: 907
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: f1
        type: char
      - name: f2
        type: char
      - name: f3
        type: char
      - name: f4
        type: char
      - name: f5
        type: char
      - name: f6
        type: char
      - name: f7
        type: char
      - name: f8
        type: char
      - name: f9
        type: char
      - name: f10
        type: char
      item_type: struct
      name: Size10
      pos:
        line_end: 930
        line_start: 919
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    typedefs: []
    union:
    - fields:
      - name: a_long
        type: long
      - name: a_struct
        type: "struct {\n        int an_int;\n        int another_int;\n    }"
      item_type: union
      name: Test4
      pos:
        line_end: 143
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
    - fields:
      - name: A
        type: signed int
      item_type: union
      name: Test8
      pos:
        line_end: 237
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.c
- function_names:
  - pymem_destructor
  - _ctypes_get_errobj
  - get_error_internal
  - set_error_internal
  - get_errno
  - set_errno
  - get_last_error
  - set_last_error
  - FormatError
  - SetException
  - HandleException
  - check_hresult
  - PyCArgObject_new
  - PyCArg_dealloc
  - is_literal_char
  - PyCArg_repr
  - ConvParam
  - can_return_struct_as_int
  - can_return_struct_as_sint64
  - _ctypes_get_ffi_type
  - GetResult
  - _ctypes_extend_error
  - GetComError
  - POW2
  - IS_PASS_BY_REF
  - _ctypes_callproc
  - _parse_voidp
  - format_error
  - load_library
  - if
  - free_library
  - copy_com_pointer
  - py_dl_open
  - py_dl_close
  - py_dl_sym
  - call_function
  - call_cdeclfunction
  - sizeof_func
  - align_func
  - byref
  - addressof
  - converter
  - My_PyObj_FromPtr
  - My_Py_INCREF
  - My_Py_DECREF
  - resize
  - unpickle
  - POINTER
  - pointer
  - buffer_info
  source_file: /src/Python-3.8.3/Modules/_ctypes/callproc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CTYPES_CAPSULE_NAME_PYMEM
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_ctypes/callproc.c
      type_or_value: '"_ctypes pymem"'
    structs:
    - fields:
      - name: '*ffi_type'
        type: ffi_type
      - name: '*keep'
        type: PyObject
      - name: value
        type: union result
      item_type: struct
      name: argument
      pos:
        line_end: 649
        line_start: 645
        source_file: /src/Python-3.8.3/Modules/_ctypes/callproc.c
    typedefs: []
    union:
    - fields:
      - name: c
        type: char
      - name: b
        type: char
      - name: h
        type: short
      - name: i
        type: int
      - name: l
        type: long
      - name: q
        type: long long
      - name: D
        type: long double
      - name: d
        type: double
      - name: f
        type: float
      - name: '*p'
        type: void
      item_type: union
      name: result
      pos:
        line_end: 643
        line_start: 632
        source_file: /src/Python-3.8.3/Modules/_ctypes/callproc.c
- function_names:
  - more_core
  - ffi_closure_free
  - ffi_closure_alloc
  source_file: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAP_ANONYMOUS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
      type_or_value: MAP_ANON
    - item_type: preproc_def
      name: BLOCKSIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
      type_or_value: _pagesize
    structs: []
    typedefs: []
    union:
    - fields:
      - name: closure
        type: ffi_closure
      - name: '*next'
        type: union _tagITEM
      item_type: union
      name: _tagITEM
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_ctypes/malloc_closure.c
- function_names:
  - PyCStgDict_init
  - PyCStgDict_clear
  - PyCStgDict_dealloc
  - PyCStgDict_sizeof
  - PyCStgDict_clone
  - PyType_stgdict
  - PyObject_stgdict
  - MakeFields
  - MakeAnonFields
  - PyCStructUnionType_update_stgdict
  source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: realdict
      pos:
        line_end: 498
        line_start: 497
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
      type_or_value: ((PyObject *)&stgdict->dict)
    - item_type: preproc_def
      name: MAX_STRUCT_SIZE
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/Python-3.8.3/Modules/_ctypes/stgdict.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - max
  - min
  - CThunk_CheckExact
  - PyCStgDict_CheckExact
  - PyCStgDict_Check
  - CDataObject_CheckExact
  - CDataObject_Check
  - _CDataObject_HasExternalBuffer
  - PyCSimpleTypeObject_CheckExact
  - PyCSimpleTypeObject_Check
  - PyCArrayTypeObject_Check
  - ArrayObject_Check
  - PointerObject_Check
  - PyCPointerTypeObject_Check
  - PyCFuncPtrObject_Check
  - PyCFuncPtrTypeObject_Check
  - PyCStructTypeObject_Check
  - PyCArg_CheckExact
  source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PARAMFLAG_FIN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: PARAMFLAG_FOUT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: PARAMFLAG_FLCID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FUNCFLAG_STDCALL
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FUNCFLAG_CDECL
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FUNCFLAG_HRESULT
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FUNCFLAG_PYTHONAPI
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FUNCFLAG_USE_ERRNO
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: FUNCFLAG_USE_LASTERROR
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TYPEFLAG_ISPOINTER
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: TYPEFLAG_HASPOINTER
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x200'
    - item_type: preproc_def
      name: TYPEFLAG_HASUNION
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x400'
    - item_type: preproc_def
      name: TYPEFLAG_HASBITFIELD
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x800'
    - item_type: preproc_def
      name: DICTFLAG_FINAL
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type_or_value: '0x1000'
    structs:
    - fields:
      - name: '*b_ptr'
        type: PyObject_HEAD
      - name: b_needsfree
        type: int
      - name: '*b_base'
        type: CDataObject
      - name: b_size
        type: Py_ssize_t
      - name: b_length
        type: Py_ssize_t
      - name: b_index
        type: Py_ssize_t
      - name: '*b_objects'
        type: PyObject
      - name: b_value
        type: union value
      item_type: struct
      name: tagCDataObject
      pos:
        line_end: 54
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: '*pcl_write'
        type: PyObject_VAR_HEAD
      - name: '*pcl_exec'
        type: void
      - name: cif
        type: ffi_cif
      - name: flags
        type: int
      - name: '*converters'
        type: PyObject
      - name: '*callable'
        type: PyObject
      - name: '*restype'
        type: PyObject
      - name: setfunc
        type: SETFUNC
      - name: '*ffi_restype'
        type: ffi_type
      - name: '*atypes[1]'
        type: ffi_type
      item_type: struct
      name: CThunkObject
      pos:
        line_end: 68
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: '*b_ptr'
        type: PyObject_HEAD
      - name: b_needsfree
        type: int
      - name: '*b_base'
        type: CDataObject
      - name: b_size
        type: Py_ssize_t
      - name: b_length
        type: Py_ssize_t
      - name: b_index
        type: Py_ssize_t
      - name: '*b_objects'
        type: PyObject
      - name: b_value
        type: union value
      - name: '*thunk'
        type: CThunkObject
      - name: '*callable'
        type: PyObject
      - name: '*converters'
        type: PyObject
      - name: '*argtypes'
        type: PyObject
      - name: '*restype'
        type: PyObject
      - name: '*checker'
        type: PyObject
      - name: '*errcheck'
        type: PyObject
      - name: '*paramflags'
        type: PyObject
      item_type: struct
      name: PyCFuncPtrObject
      pos:
        line_end: 101
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: code
        type: char
      - name: setfunc
        type: SETFUNC
      - name: getfunc
        type: GETFUNC
      - name: '*pffi_type'
        type: ffi_type
      - name: setfunc_swapped
        type: SETFUNC
      - name: getfunc_swapped
        type: GETFUNC
      item_type: struct
      name: fielddesc
      pos:
        line_end: 168
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: size
        type: Py_ssize_t
      - name: index
        type: Py_ssize_t
      - name: '*proto'
        type: PyObject
      - name: getfunc
        type: GETFUNC
      - name: setfunc
        type: SETFUNC
      - name: anonymous
        type: int
      item_type: struct
      name: CFieldObject
      pos:
        line_end: 180
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: dict
        type: PyDictObject
      - name: size
        type: Py_ssize_t
      - name: align
        type: Py_ssize_t
      - name: length
        type: Py_ssize_t
      - name: ffi_type_pointer
        type: ffi_type
      - name: '*proto'
        type: PyObject
      - name: setfunc
        type: SETFUNC
      - name: getfunc
        type: GETFUNC
      - name: paramfunc
        type: PARAMFUNC
      - name: '*argtypes'
        type: PyObject
      - name: '*converters'
        type: PyObject
      - name: '*restype'
        type: PyObject
      - name: '*checker'
        type: PyObject
      - name: flags
        type: int
      - name: '*format'
        type: char
      - name: ndim
        type: int
      - name: '*shape'
        type: Py_ssize_t
      item_type: struct
      name: StgDictObject
      pos:
        line_end: 217
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: '*pffi_type'
        type: PyObject_HEAD
      - name: tag
        type: char
      - name: value
        type: "union {\n        char c;\n        char b;\n        short h;\n        int
          i;\n        long l;\n        long long q;\n        long double D;\n        double
          d;\n        float f;\n        void *p;\n    }"
      - name: '*obj'
        type: PyObject
      - name: size
        type: Py_ssize_t
      item_type: struct
      name: tagPyCArgObject
      pos:
        line_end: 313
        line_start: 295
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    - fields:
      - name: '*base'
        type: CDataObject
      - name: index
        type: Py_ssize_t
      - name: '*adr'
        type: char
      item_type: struct
      name: basespec
      pos:
        line_end: 333
        line_start: 329
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
    typedefs:
    - item_type: typedef
      name: PyCArgObject
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: tagPyCArgObject
    - item_type: typedef
      name: CDataObject
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: tagCDataObject
    - item_type: typedef
      name: '*(* GETFUNC)(void *, Py_ssize_t size)'
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: PyObject
    - item_type: typedef
      name: '*(* SETFUNC)(void *, PyObject *value, Py_ssize_t size)'
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: PyObject
    - item_type: typedef
      name: '*(* PARAMFUNC)(CDataObject *obj)'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: PyCArgObject
    - item_type: typedef
      name: (* PPROC)(void)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
      type: int
    union:
    - fields:
      - name: c[16]
        type: char
      - name: s
        type: short
      - name: i
        type: int
      - name: l
        type: long
      - name: f
        type: float
      - name: d
        type: double
      - name: ll
        type: long long
      - name: D
        type: long double
      item_type: union
      name: value
      pos:
        line_end: 35
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_ctypes/ctypes.h
- function_names:
  - IS_INTRESOURCE
  - _DictRemover_dealloc
  - _DictRemover_call
  - PyDict_SetItemProxy
  - PyDict_GetItemProxy
  - _ctypes_alloc_format_string_for_type
  - _ctypes_alloc_format_string
  - _ctypes_alloc_format_string_with_shape
  - StructParam_dealloc
  - StructUnionType_paramfunc
  - StructUnionType_new
  - PyCStructType_new
  - UnionType_new
  - CDataType_from_address
  - CDataType_from_buffer
  - CDataType_from_buffer_copy
  - CDataType_in_dll
  - CDataType_from_param
  - CDataType_repeat
  - CDataType_clear
  - CDataType_traverse
  - PyCStructType_setattro
  - UnionType_setattro
  - PyCPointerType_SetProto
  - PyCPointerType_paramfunc
  - PyCPointerType_new
  - PyCPointerType_set_type
  - PyCPointerType_from_param
  - CharArray_set_raw
  - CharArray_get_raw
  - CharArray_get_value
  - CharArray_set_value
  - WCharArray_get_value
  - WCharArray_set_value
  - add_getset
  - PyCArrayType_paramfunc
  - PyCArrayType_new
  - c_wchar_p_from_param
  - c_char_p_from_param
  - c_void_p_from_param
  - CreateSwappedType
  - PyCSimpleType_paramfunc
  - PyCSimpleType_new
  - PyCSimpleType_from_param
  - converters_from_argtypes
  - make_funcptrtype_dict
  - PyCFuncPtrType_paramfunc
  - PyCFuncPtrType_new
  - PyCData_GetContainer
  - GetKeepedObjects
  - unique_key
  - KeepRef
  - PyCData_traverse
  - PyCData_clear
  - PyCData_dealloc
  - PyCData_NewGetBuffer
  - PyCData_nohash
  - PyCData_reduce
  - PyCData_setstate
  - PyCData_from_outparam
  - PyCData_MallocBuffer
  - PyCData_FromBaseObj
  - PyCData_AtAddress
  - _ctypes_simple_instance
  - PyCData_get
  - _PyCData_set
  - PyCData_set
  - GenericPyCData_new
  - PyCFuncPtr_set_errcheck
  - PyCFuncPtr_get_errcheck
  - PyCFuncPtr_set_restype
  - PyCFuncPtr_get_restype
  - PyCFuncPtr_set_argtypes
  - PyCFuncPtr_get_argtypes
  - FindAddress
  - _check_outarg_type
  - _validate_paramflags
  - _get_name
  - PyCFuncPtr_FromDll
  - PyCFuncPtr_FromVtblIndex
  - PyCFuncPtr_new
  - _byref
  - _get_arg
  - _build_callargs
  - _build_result
  - PyCFuncPtr_call
  - PyCFuncPtr_traverse
  - PyCFuncPtr_clear
  - PyCFuncPtr_dealloc
  - PyCFuncPtr_repr
  - PyCFuncPtr_bool
  - _init_pos_args
  - Struct_init
  - Array_init
  - Array_item
  - Array_subscript
  - Array_ass_item
  - Array_ass_subscript
  - Array_length
  - PyCArrayType_from_ctype
  - Simple_set_value
  - Simple_init
  - Simple_get_value
  - Simple_from_outparm
  - Simple_bool
  - Simple_repr
  - Pointer_item
  - Pointer_ass_item
  - Pointer_get_contents
  - Pointer_set_contents
  - Pointer_init
  - Pointer_new
  - Pointer_subscript
  - Pointer_bool
  - comerror_init
  - create_comerror
  - string_at
  - cast_check_pointertype
  - cast
  - wstring_at
  - PyInit__ctypes
  source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTLD_LOCAL
      pos:
        line_end: 5848
        line_start: 5847
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RTLD_GLOBAL
      pos:
        line_end: 5855
        line_start: 5854
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
      type_or_value: RTLD_LOCAL
    structs:
    - fields:
      - name: '*key'
        type: PyObject_HEAD
      - name: '*dict'
        type: PyObject
      item_type: struct
      name: DictRemoverObject
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    - fields:
      - name: '*ptr'
        type: PyObject_HEAD
      item_type: struct
      name: StructParamObject
      pos:
        line_end: 402
        line_start: 399
        source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/_ctypes_test.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CThunkObject_dealloc
  - CThunkObject_traverse
  - CThunkObject_clear
  - PrintError
  - TryAddRef
  - _CallPythonObject
  - CHECK
  - closure_fcn
  - CThunkObject_new
  - _ctypes_alloc_callback
  - LoadPython
  - Call_GetClassObject
  - DllGetClassObject
  - Call_CanUnloadNow
  - DllCanUnloadNow
  - DllMain
  source_file: /src/Python-3.8.3/Modules/_ctypes/callbacks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFI_INTEGRAL_TYPEDEF
  - FFI_AGGREGATE_TYPEDEF
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/types.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STACK_ARG_SIZE
  - initialize_aggregate
  - struct_on_stack
  - ffi_prep_cif
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/ffi.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffi_prep_args
  - ffi_prep_cif_machdep
  - ffi_call
  - ffi_prep_incoming_args_SYSV
  - FFI_INIT_TRAMPOLINE
  - ffi_prep_closure
  - ffi_prep_raw_closure_loc
  - ffi_prep_args_raw
  - ffi_raw_call
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi_darwin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SSE_CLASS_P
  - merge_classes
  - classify_argument
  - examine_argument
  - ffi_prep_cif_machdep
  - ffi_call
  - ffi_prep_closure
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
  types:
    enum:
    - enumerators:
      - name: X86_64_NO_CLASS
      - name: X86_64_SSESF_CLASS
      - name: X86_64_INTEGER_CLASS
      - name: X86_64_INTEGERSI_CLASS
      - name: X86_64_SSE_CLASS
      - name: X86_64_SSEDF_CLASS
      - name: X86_64_SSEUP_CLASS
      - name: X86_64_X87_CLASS
      - name: X86_64_X87UP_CLASS
      - name: X86_64_COMPLEX_X87_CLASS
      - name: X86_64_MEMORY_CLASS
      item_type: enum
      name: x86_64_reg_class
      pos:
        line_end: 74
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_GPR_REGS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
      type_or_value: '6'
    - item_type: preproc_def
      name: MAX_SSE_REGS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_CLASSES
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
      type_or_value: '4'
    structs:
    - fields:
      - name: gpr[MAX_GPR_REGS]
        type: UINT64
      - name: sse[MAX_SSE_REGS]
        type: __int128_t
      item_type: struct
      name: RegisterArgs
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
    typedefs: []
    union: []
- function_names:
  - ffi_prep_args
  - ffi64_struct_contains_fp
  - ffi_prep_cif_machdep
  - ffi_call
  - flush_icache
  - flush_range
  - ffi_prep_closure
  - ffi_closure_helper_DARWIN
  - ffi64_struct_to_ram_form
  - ffi64_struct_to_reg_form
  - ffi64_stret_needs_ptr
  - ffi64_data_size
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_LINE_SIZE
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
      type_or_value: '32'
    structs:
    - fields:
      - name: "*\tcode_pointer"
        type: void
      - name: "*\ttoc"
        type: void
      item_type: struct
      name: aix_fd_struct
      pos:
        line_end: 59
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    typedefs:
    - item_type: typedef
      name: ldbits[2]
      pos:
        line_end: 792
        line_start: 792
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
      type: double
    union:
    - fields:
      - name: lb
        type: ldbits
      - name: ld
        type: long double
      item_type: union
      name: ldu
      pos:
        line_end: 798
        line_start: 794
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
    - fields:
      - name: f
        type: float
      - name: d
        type: double
      item_type: union
      name: ffi_dblfl
      pos:
        line_end: 805
        line_start: 801
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
- function_names:
  - L
  - FFI_TYPE_1_BYTE
  - FFI_TYPE_2_BYTE
  - FFI_TYPE_4_BYTE
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SF_ARG9
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(56,112)
    - item_type: preproc_def
      name: SF_ARG10
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(60,120)
    - item_type: preproc_def
      name: SF_ARG11
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(64,128)
    - item_type: preproc_def
      name: SF_ARG12
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(68,136)
    - item_type: preproc_def
      name: SF_ARG13
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(72,144)
    - item_type: preproc_def
      name: SF_ARG14
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(76,152)
    - item_type: preproc_def
      name: SF_ARG15
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(80,160)
    - item_type: preproc_def
      name: SF_ARG16
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(84,168)
    - item_type: preproc_def
      name: SF_ARG17
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(88,176)
    - item_type: preproc_def
      name: SF_ARG18
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(92,184)
    - item_type: preproc_def
      name: SF_ARG19
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(96,192)
    - item_type: preproc_def
      name: SF_ARG20
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(100,200)
    - item_type: preproc_def
      name: SF_ARG21
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(104,208)
    - item_type: preproc_def
      name: SF_ARG22
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(108,216)
    - item_type: preproc_def
      name: SF_ARG23
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(112,224)
    - item_type: preproc_def
      name: SF_ARG24
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(116,232)
    - item_type: preproc_def
      name: SF_ARG25
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(120,240)
    - item_type: preproc_def
      name: SF_ARG26
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(124,248)
    - item_type: preproc_def
      name: SF_ARG27
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(128,256)
    - item_type: preproc_def
      name: SF_ARG28
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(132,264)
    - item_type: preproc_def
      name: SF_ARG29
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: MODE_CHOICE(136,272)
    - item_type: preproc_def
      name: ASM_NEEDS_REGISTERS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NUM_GPR_ARG_REGISTERS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NUM_FPR_ARG_REGISTERS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/powerpc/ppc-darwin.h
      type_or_value: '13'
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFI_HIDDEN
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1234'
    - item_type: preproc_def
      name: SIZEOF_DOUBLE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HAVE_LONG_DOUBLE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG_DOUBLE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1234'
    - item_type: preproc_def
      name: SIZEOF_DOUBLE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HAVE_LONG_DOUBLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG_DOUBLE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '16'
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '4321'
    - item_type: preproc_def
      name: HOST_WORDS_BIG_ENDIAN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WORDS_BIGENDIAN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_DOUBLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HAVE_LONG_DOUBLE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG_DOUBLE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: SIZEOF_LONG_DOUBLE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '4321'
    - item_type: preproc_def
      name: HOST_WORDS_BIG_ENDIAN
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WORDS_BIGENDIAN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_DOUBLE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: HAVE_LONG_DOUBLE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG_DOUBLE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '16'
    - item_type: preproc_def
      name: EH_FRAME_FLAGS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"aw"'
    - item_type: preproc_def
      name: FFI_NO_RAW_API
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALLOCA
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ALLOCA_H
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MEMCPY
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MMAP_ANON
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_MMAP_FILE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"libffi"'
    - item_type: preproc_def
      name: PACKAGE_BUGREPORT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"http://gcc.gnu.org/bugs.html"'
    - item_type: preproc_def
      name: PACKAGE_NAME
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"libffi"'
    - item_type: preproc_def
      name: PACKAGE_STRING
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"libffi 2.1"'
    - item_type: preproc_def
      name: PACKAGE_TARNAME
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"libffi"'
    - item_type: preproc_def
      name: PACKAGE_VERSION
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"2.1"'
    - item_type: preproc_def
      name: STDC_HEADERS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: VERSION
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: '"2.1-pyobjc"'
    - item_type: preproc_def
      name: FFI_HIDDEN
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/fficonfig.h
      type_or_value: __attribute__((visibility ("hidden")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - memcpy
  - FFI_ASSERT
  - FFI_ASSERT_AT
  - FFI_ASSERT_VALID_TYPE
  - FFI_ASSERT
  - ALIGN
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: alloca
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type_or_value: __builtin_alloca
    structs:
    - fields:
      - name: "*\tcif"
        type: ffi_cif
      - name: "*\t\trvalue"
        type: void
      - name: "**\t\tavalue"
        type: void
      item_type: struct
      name: extended_cif
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
    typedefs:
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: unsigned int
    - item_type: typedef
      name: SINT8
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: signed int
    - item_type: typedef
      name: UINT16
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: unsigned int
    - item_type: typedef
      name: SINT16
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: signed int
    - item_type: typedef
      name: UINT32
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: unsigned int
    - item_type: typedef
      name: SINT32
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: signed int
    - item_type: typedef
      name: UINT64
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: unsigned int
    - item_type: typedef
      name: SINT64
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: signed int
    - item_type: typedef
      name: FLOAT32
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi_common.h
      type: float
    union: []
- function_names:
  - FFI_FN
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
  types:
    enum:
    - enumerators:
      - name: FFI_OK
        value: '0'
      - name: FFI_BAD_TYPEDEF
      - name: FFI_BAD_ABI
      item_type: enum
      name: ffi_status
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    preproc_defs:
    - item_type: preproc_def
      name: FFI_LONG_LONG_MAX
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: LONG_LONG_MAX
    - item_type: preproc_def
      name: FFI_LONG_LONG_MAX
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: FFI_LONG_LONG_MAX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: __LONG_LONG_MAX__
    - item_type: preproc_def
      name: ffi_type_uchar
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint8
    - item_type: preproc_def
      name: ffi_type_schar
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint8
    - item_type: preproc_def
      name: ffi_type_ushort
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint16
    - item_type: preproc_def
      name: ffi_type_sshort
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint16
    - item_type: preproc_def
      name: ffi_type_ushort
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint32
    - item_type: preproc_def
      name: ffi_type_sshort
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint32
    - item_type: preproc_def
      name: ffi_type_uint
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint16
    - item_type: preproc_def
      name: ffi_type_sint
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint16
    - item_type: preproc_def
      name: ffi_type_uint
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint32
    - item_type: preproc_def
      name: ffi_type_sint
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint32
    - item_type: preproc_def
      name: ffi_type_uint
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint64
    - item_type: preproc_def
      name: ffi_type_sint
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint64
    - item_type: preproc_def
      name: ffi_type_ulong
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_uint64
    - item_type: preproc_def
      name: ffi_type_slong
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: ffi_type_sint64
    - item_type: preproc_def
      name: FFI_SIZEOF_ARG
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FFI_SIZEOF_ARG
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FFI_TYPE_VOID
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFI_TYPE_INT
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFI_TYPE_FLOAT
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FFI_TYPE_DOUBLE
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '3'
    - item_type: preproc_def
      name: FFI_TYPE_LONGDOUBLE
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FFI_TYPE_LONGDOUBLE
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: FFI_TYPE_DOUBLE
    - item_type: preproc_def
      name: FFI_TYPE_UINT8
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '5'
    - item_type: preproc_def
      name: FFI_TYPE_SINT8
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '6'
    - item_type: preproc_def
      name: FFI_TYPE_UINT16
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '7'
    - item_type: preproc_def
      name: FFI_TYPE_SINT16
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '8'
    - item_type: preproc_def
      name: FFI_TYPE_UINT32
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FFI_TYPE_SINT32
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FFI_TYPE_UINT64
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '11'
    - item_type: preproc_def
      name: FFI_TYPE_SINT64
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '12'
    - item_type: preproc_def
      name: FFI_TYPE_STRUCT
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '13'
    - item_type: preproc_def
      name: FFI_TYPE_POINTER
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: '14'
    - item_type: preproc_def
      name: FFI_TYPE_LAST
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type_or_value: FFI_TYPE_POINTER
    structs:
    - fields:
      - name: size
        type: size_t
      - name: alignment
        type: unsigned short
      - name: type
        type: unsigned short
      - name: "**\telements"
        type: struct _ffi_type
      item_type: struct
      name: _ffi_type
      pos:
        line_end: 144
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    - fields:
      - name: abi
        type: ffi_abi
      - name: nargs
        type: unsigned
      - name: "**\targ_types"
        type: ffi_type
      - name: "*\trtype"
        type: ffi_type
      - name: bytes
        type: unsigned
      - name: flags
        type: unsigned
      item_type: struct
      name: ffi_cif
      pos:
        line_end: 179
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    - fields:
      - name: tramp[FFI_TRAMPOLINE_SIZE]
        type: char
      - name: "*\tcif"
        type: ffi_cif
      - name: (*fun)(ffi_cif*,void*,void**,void*)
        type: void
      - name: "*\t\tuser_data"
        type: void
      item_type: struct
      name: ffi_closure
      pos:
        line_end: 257
        line_start: 252
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    - fields:
      - name: tramp[FFI_TRAMPOLINE_SIZE]
        type: char
      - name: "*\tcif"
        type: ffi_cif
      - name: (*fun)(ffi_cif*,void*,ffi_raw*,void*)
        type: void
      - name: "*\tuser_data"
        type: void
      item_type: struct
      name: ffi_raw_closure
      pos:
        line_end: 283
        line_start: 269
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
    typedefs:
    - item_type: typedef
      name: FFI_TYPE
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
      type: unsigned
    union:
    - fields:
      - name: sint
        type: ffi_sarg
      - name: uint
        type: ffi_arg
      - name: flt
        type: float
      - name: data[FFI_SIZEOF_ARG]
        type: char
      - name: "*\t\tptr"
        type: void
      item_type: union
      name: ffi_raw
      pos:
        line_end: 197
        line_start: 191
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffi.h
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ffitarget.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
  types:
    enum:
    - enumerators:
      - name: FFI_FIRST_ABI
        value: '0'
      - name: FFI_SYSV
      - name: FFI_LINUX64
      - name: FFI_GCC_SYSV
      - name: FFI_DEFAULT_ABI
        value: FFI_LINUX64
      - name: FFI_DEFAULT_ABI
        value: FFI_GCC_SYSV
      - name: FFI_AIX
      - name: FFI_DARWIN
      - name: FFI_DEFAULT_ABI
        value: FFI_AIX
      - name: FFI_AIX
      - name: FFI_DEFAULT_ABI
        value: FFI_DARWIN
      - name: FFI_DEFAULT_ABI
        value: FFI_SYSV
      - name: FFI_LINUX64
      - name: FFI_LAST_ABI
        value: FFI_DEFAULT_ABI + 1
      - name: FFI_DARWIN
      - name: FFI_GCC_SYSV
      - name: FFI_SYSV
      item_type: enum
      name: ffi_abi
      pos:
        line_end: 73
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
    preproc_defs:
    - item_type: preproc_def
      name: FFI_CLOSURES
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFI_NATIVE_RAW_API
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFI_SYSV_TYPE_SMALL_STRUCT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: (FFI_TYPE_LAST)
    - item_type: preproc_def
      name: FFI_TRAMPOLINE_SIZE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: '48'
    - item_type: preproc_def
      name: FFI_TRAMPOLINE_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: '24'
    - item_type: preproc_def
      name: FFI_TRAMPOLINE_SIZE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type_or_value: '40'
    structs:
    - fields:
      - name: "*\tcode_pointer"
        type: void
      - name: "*\ttoc"
        type: void
      - name: "*\tstatic_chain"
        type: void
      item_type: struct
      name: ffi_aix_trampoline_struct
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
    typedefs:
    - item_type: typedef
      name: ffi_arg
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type: unsigned long
    - item_type: typedef
      name: ffi_sarg
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/ppc-ffitarget.h
      type: signed long
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
  types:
    enum:
    - enumerators:
      - name: FFI_FIRST_ABI
        value: '0'
      - name: FFI_STDCALL
      - name: FFI_SYSV
      - name: FFI_DEFAULT_ABI
        value: FFI_SYSV
      - name: FFI_SYSV
      - name: FFI_UNIX64
      - name: FFI_DEFAULT_ABI
        value: FFI_SYSV
      - name: FFI_DEFAULT_ABI
        value: FFI_UNIX64
      - name: FFI_LAST_ABI
        value: FFI_DEFAULT_ABI + 1
      item_type: enum
      name: ffi_abi
      pos:
        line_end: 71
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
    preproc_defs:
    - item_type: preproc_def
      name: FFI_CLOSURES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FFI_TRAMPOLINE_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type_or_value: '24'
    - item_type: preproc_def
      name: FFI_NATIVE_RAW_API
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FFI_TRAMPOLINE_SIZE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type_or_value: '10'
    - item_type: preproc_def
      name: FFI_NATIVE_RAW_API
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type_or_value: "1\t"
    structs: []
    typedefs:
    - item_type: typedef
      name: ffi_arg
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type: unsigned long
    - item_type: typedef
      name: ffi_sarg
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_ctypes/libffi_osx/include/x86-ffitarget.h
      type: signed long
    union: []
- function_names:
  - error
  - darwin_dlopen
  - dlsymIntern
  - darwin_dlerror
  - darwin_dlclose
  - darwin_dlsym
  - darwin_dladdr
  - ctypes_dlfcn_init
  source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERR_STR_LEN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MAC_OS_X_VERSION_10_3
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: '1030'
    - item_type: preproc_def
      name: dlopen
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: darwin_dlopen
    - item_type: preproc_def
      name: dlsym
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: darwin_dlsym
    - item_type: preproc_def
      name: dlerror
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: darwin_dlerror
    - item_type: preproc_def
      name: dlclose
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: darwin_dlclose
    - item_type: preproc_def
      name: dladdr
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn_simple.c
      type_or_value: darwin_dladdr
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTLD_LAZY
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: RTLD_NOW
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: RTLD_LOCAL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: RTLD_GLOBAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: RTLD_NOLOAD
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: RTLD_NODELETE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: RTLD_NEXT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '((void *) -1)   '
    - item_type: preproc_def
      name: RTLD_DEFAULT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
      type_or_value: '((void *) -2)   '
    structs:
    - fields:
      - name: '*dli_fname'
        type: char
      - name: '*dli_fbase'
        type: void
      - name: '*dli_sname'
        type: char
      - name: '*dli_saddr'
        type: void
      item_type: struct
      name: dl_info
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_ctypes/darwin/dlfcn.h
    typedefs: []
    union: []
- function_names:
  - SHA3_copystate
  - newSHA3object
  - py_sha3_new
  - SHA3_dealloc
  - _sha3_sha3_224_copy_impl
  - _sha3_sha3_224_digest_impl
  - _sha3_sha3_224_hexdigest_impl
  - _sha3_sha3_224_update
  - SHA3_get_block_size
  - SHA3_get_name
  - SHA3_get_digest_size
  - SHA3_get_capacity_bits
  - SHA3_get_rate_bits
  - SHA3_get_suffix
  - SHA3_TYPE
  - _SHAKE_digest
  - _sha3_shake_128_digest_impl
  - _sha3_shake_128_hexdigest_impl
  - PyInit__sha3
  - init_sha3type
  source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KeccakOpt
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '32'
    - item_type: preproc_def
      name: KeccakOpt
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '32'
    - item_type: preproc_def
      name: KeccakOpt
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '64'
    - item_type: preproc_def
      name: KeccakOpt
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '32'
    - item_type: preproc_def
      name: IS_LITTLE_ENDIAN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '1234'
    - item_type: preproc_def
      name: IS_BIG_ENDIAN
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '4321'
    - item_type: preproc_def
      name: PLATFORM_BYTE_ORDER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: IS_LITTLE_ENDIAN
    - item_type: preproc_def
      name: PLATFORM_BYTE_ORDER
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: IS_BIG_ENDIAN
    - item_type: preproc_def
      name: KeccakF1600_FastLoop_Absorb
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakF1600_FastLoop_Absorb
    - item_type: preproc_def
      name: Keccak_HashFinal
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_Keccak_HashFinal
    - item_type: preproc_def
      name: Keccak_HashInitialize
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_Keccak_HashInitialize
    - item_type: preproc_def
      name: Keccak_HashSqueeze
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_Keccak_HashSqueeze
    - item_type: preproc_def
      name: Keccak_HashUpdate
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_Keccak_HashUpdate
    - item_type: preproc_def
      name: KeccakP1600_AddBytes
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_AddBytes
    - item_type: preproc_def
      name: KeccakP1600_AddBytesInLane
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_AddBytesInLane
    - item_type: preproc_def
      name: KeccakP1600_AddLanes
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_AddLanes
    - item_type: preproc_def
      name: KeccakP1600_ExtractAndAddBytes
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractAndAddBytes
    - item_type: preproc_def
      name: KeccakP1600_ExtractAndAddBytesInLane
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractAndAddBytesInLane
    - item_type: preproc_def
      name: KeccakP1600_ExtractAndAddLanes
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractAndAddLanes
    - item_type: preproc_def
      name: KeccakP1600_ExtractBytes
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractBytes
    - item_type: preproc_def
      name: KeccakP1600_ExtractBytesInLane
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractBytesInLane
    - item_type: preproc_def
      name: KeccakP1600_ExtractLanes
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_ExtractLanes
    - item_type: preproc_def
      name: KeccakP1600_Initialize
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_Initialize
    - item_type: preproc_def
      name: KeccakP1600_OverwriteBytes
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_OverwriteBytes
    - item_type: preproc_def
      name: KeccakP1600_OverwriteBytesInLane
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_OverwriteBytesInLane
    - item_type: preproc_def
      name: KeccakP1600_OverwriteLanes
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_OverwriteLanes
    - item_type: preproc_def
      name: KeccakP1600_OverwriteWithZeroes
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_OverwriteWithZeroes
    - item_type: preproc_def
      name: KeccakP1600_Permute_12rounds
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_Permute_12rounds
    - item_type: preproc_def
      name: KeccakP1600_Permute_24rounds
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_Permute_24rounds
    - item_type: preproc_def
      name: KeccakWidth1600_Sponge
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakWidth1600_Sponge
    - item_type: preproc_def
      name: KeccakWidth1600_SpongeAbsorb
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakWidth1600_SpongeAbsorb
    - item_type: preproc_def
      name: KeccakWidth1600_SpongeAbsorbLastFewBits
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakWidth1600_SpongeAbsorbLastFewBits
    - item_type: preproc_def
      name: KeccakWidth1600_SpongeInitialize
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakWidth1600_SpongeInitialize
    - item_type: preproc_def
      name: KeccakWidth1600_SpongeSqueeze
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakWidth1600_SpongeSqueeze
    - item_type: preproc_def
      name: KeccakP1600_AddByte
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_AddByte
    - item_type: preproc_def
      name: KeccakP1600_Permute_Nrounds
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_Permute_Nrounds
    - item_type: preproc_def
      name: KeccakP1600_SetBytesInLaneToZero
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: _PySHA3_KeccakP1600_SetBytesInLaneToZero
    - item_type: preproc_def
      name: KeccakP200_excluded
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '1'
    - item_type: preproc_def
      name: KeccakP400_excluded
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '1'
    - item_type: preproc_def
      name: KeccakP800_excluded
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SHA3_MAX_DIGESTSIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '64 '
    - item_type: preproc_def
      name: SHA3_LANESIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: '(20 * 8) '
    - item_type: preproc_def
      name: SHA3_state
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: Keccak_HashInstance
    - item_type: preproc_def
      name: SHA3_init
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: Keccak_HashInitialize
    - item_type: preproc_def
      name: SHA3_process
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: Keccak_HashUpdate
    - item_type: preproc_def
      name: SHA3_done
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: Keccak_HashFinal
    - item_type: preproc_def
      name: SHA3_squeeze
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type_or_value: Keccak_HashSqueeze
    structs:
    - fields:
      - name: SHA3_state
        type: PyObject_HEAD
      - name: lock
        type: PyThread_type_lock
      item_type: struct
      name: SHA3object
      pos:
        line_end: 142
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
    typedefs:
    - item_type: typedef
      name: UINT64
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type: PY_UINT64_T
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/_sha3/sha3module.c
      type: unsigned char
    union: []
- function_names:
  - _sha3_sha3_224_copy
  - _sha3_sha3_224_digest
  - _sha3_sha3_224_hexdigest
  - _sha3_shake_128_digest
  - _sha3_shake_128_hexdigest
  source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _SHA3_SHA3_224_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"copy", (PyCFunction)_sha3_sha3_224_copy, METH_NOARGS, _sha3_sha3_224_copy__doc__},'
    - item_type: preproc_def
      name: _SHA3_SHA3_224_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"digest", (PyCFunction)_sha3_sha3_224_digest, METH_NOARGS,
        _sha3_sha3_224_digest__doc__},'
    - item_type: preproc_def
      name: _SHA3_SHA3_224_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)_sha3_sha3_224_hexdigest, METH_NOARGS,
        _sha3_sha3_224_hexdigest__doc__},'
    - item_type: preproc_def
      name: _SHA3_SHA3_224_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"update", (PyCFunction)_sha3_sha3_224_update, METH_O, _sha3_sha3_224_update__doc__},'
    - item_type: preproc_def
      name: _SHA3_SHAKE_128_DIGEST_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"digest", (PyCFunction)_sha3_shake_128_digest, METH_O, _sha3_shake_128_digest__doc__},'
    - item_type: preproc_def
      name: _SHA3_SHAKE_128_HEXDIGEST_METHODDEF
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_sha3/clinic/sha3module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)_sha3_shake_128_hexdigest, METH_O,
        _sha3_shake_128_hexdigest__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Keccak_HashInitialize_SHAKE128
  - Keccak_HashInitialize_SHAKE256
  - Keccak_HashInitialize_SHA3_224
  - Keccak_HashInitialize_SHA3_256
  - Keccak_HashInitialize_SHA3_384
  - Keccak_HashInitialize_SHA3_512
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sponge
        type: KeccakWidth1600_SpongeInstance
      - name: fixedOutputLength
        type: unsigned int
      - name: delimitedSuffix
        type: unsigned char
      item_type: struct
      name: Keccak_HashInstance
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
    typedefs:
    - item_type: typedef
      name: BitSequence
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
      type: unsigned char
    - item_type: typedef
      name: DataLength
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.h
      type: size_t
    union: []
- function_names:
  - ROL64
  - ROL64
  - ROL64
  - KeccakP1600_Initialize
  - KeccakP1600_AddBytesInLane
  - KeccakP1600_AddLanes
  - KeccakP1600_AddByte
  - KeccakP1600_AddBytes
  - KeccakP1600_OverwriteBytesInLane
  - KeccakP1600_OverwriteLanes
  - KeccakP1600_OverwriteBytes
  - KeccakP1600_OverwriteWithZeroes
  - KeccakP1600_Permute_24rounds
  - KeccakP1600_Permute_12rounds
  - KeccakP1600_ExtractBytesInLane
  - fromWordToBytes
  - KeccakP1600_ExtractLanes
  - KeccakP1600_ExtractBytes
  - KeccakP1600_ExtractAndAddBytesInLane
  - KeccakP1600_ExtractAndAddLanes
  - KeccakP1600_ExtractAndAddBytes
  - KeccakF1600_FastLoop_Absorb
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Unrolling
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
      type_or_value: KeccakP1600_unrolling
    structs: []
    typedefs:
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64.c
      type: unsigned char
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: prefix
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakWidth200
    - item_type: preproc_def
      name: SnP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP200
    - item_type: preproc_def
      name: SnP_width
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: '200'
    - item_type: preproc_def
      name: SnP_Permute
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP200_Permute_18rounds
    - item_type: preproc_def
      name: SnP_FastLoop_Absorb
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakF200_FastLoop_Absorb
    - item_type: preproc_def
      name: prefix
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakWidth400
    - item_type: preproc_def
      name: SnP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP400
    - item_type: preproc_def
      name: SnP_width
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: '400'
    - item_type: preproc_def
      name: SnP_Permute
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP400_Permute_20rounds
    - item_type: preproc_def
      name: SnP_FastLoop_Absorb
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakF400_FastLoop_Absorb
    - item_type: preproc_def
      name: prefix
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakWidth800
    - item_type: preproc_def
      name: SnP
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP800
    - item_type: preproc_def
      name: SnP_width
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: '800'
    - item_type: preproc_def
      name: SnP_Permute
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP800_Permute_22rounds
    - item_type: preproc_def
      name: SnP_FastLoop_Absorb
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakF800_FastLoop_Absorb
    - item_type: preproc_def
      name: prefix
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakWidth1600
    - item_type: preproc_def
      name: SnP
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP1600
    - item_type: preproc_def
      name: SnP_width
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: '1600'
    - item_type: preproc_def
      name: SnP_Permute
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakP1600_Permute_24rounds
    - item_type: preproc_def
      name: SnP_FastLoop_Absorb
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.c
      type_or_value: KeccakF1600_FastLoop_Absorb
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROL32
  - prepareToBitInterleaving
  - toBitInterleavingAndXOR
  - toBitInterleavingAndAND
  - toBitInterleavingAndSet
  - prepareFromBitInterleaving
  - fromBitInterleaving
  - fromBitInterleavingAndXOR
  - KeccakP1600_SetBytesInLaneToZero
  - KeccakP1600_Initialize
  - KeccakP1600_AddByte
  - KeccakP1600_AddBytesInLane
  - KeccakP1600_AddLanes
  - KeccakP1600_AddBytes
  - KeccakP1600_OverwriteBytesInLane
  - KeccakP1600_OverwriteLanes
  - KeccakP1600_OverwriteBytes
  - KeccakP1600_OverwriteWithZeroes
  - KeccakP1600_ExtractBytesInLane
  - KeccakP1600_ExtractLanes
  - KeccakP1600_ExtractBytes
  - KeccakP1600_ExtractAndAddBytesInLane
  - KeccakP1600_ExtractAndAddLanes
  - KeccakP1600_ExtractAndAddBytes
  - KeccakAtoD_round0
  - KeccakAtoD_round1
  - KeccakAtoD_round2
  - KeccakAtoD_round3
  - KeccakP1600_Permute_Nrounds
  - KeccakP1600_Permute_12rounds
  - KeccakP1600_Permute_24rounds
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Ba
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: Ca0
    - item_type: preproc_def
      name: Be
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: Ce0
    - item_type: preproc_def
      name: Bi
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: Ci0
    - item_type: preproc_def
      name: Bo
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: Co0
    - item_type: preproc_def
      name: Bu
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: Cu0
    - item_type: preproc_def
      name: Aba0
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 0]
    - item_type: preproc_def
      name: Aba1
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 1]
    - item_type: preproc_def
      name: Abe0
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 2]
    - item_type: preproc_def
      name: Abe1
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 3]
    - item_type: preproc_def
      name: Abi0
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 4]
    - item_type: preproc_def
      name: Abi1
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 5]
    - item_type: preproc_def
      name: Abo0
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 6]
    - item_type: preproc_def
      name: Abo1
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 7]
    - item_type: preproc_def
      name: Abu0
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 8]
    - item_type: preproc_def
      name: Abu1
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[ 9]
    - item_type: preproc_def
      name: Aga0
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[10]
    - item_type: preproc_def
      name: Aga1
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[11]
    - item_type: preproc_def
      name: Age0
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[12]
    - item_type: preproc_def
      name: Age1
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[13]
    - item_type: preproc_def
      name: Agi0
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[14]
    - item_type: preproc_def
      name: Agi1
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[15]
    - item_type: preproc_def
      name: Ago0
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[16]
    - item_type: preproc_def
      name: Ago1
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[17]
    - item_type: preproc_def
      name: Agu0
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[18]
    - item_type: preproc_def
      name: Agu1
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[19]
    - item_type: preproc_def
      name: Aka0
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[20]
    - item_type: preproc_def
      name: Aka1
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[21]
    - item_type: preproc_def
      name: Ake0
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[22]
    - item_type: preproc_def
      name: Ake1
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[23]
    - item_type: preproc_def
      name: Aki0
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[24]
    - item_type: preproc_def
      name: Aki1
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[25]
    - item_type: preproc_def
      name: Ako0
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[26]
    - item_type: preproc_def
      name: Ako1
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[27]
    - item_type: preproc_def
      name: Aku0
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[28]
    - item_type: preproc_def
      name: Aku1
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[29]
    - item_type: preproc_def
      name: Ama0
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[30]
    - item_type: preproc_def
      name: Ama1
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[31]
    - item_type: preproc_def
      name: Ame0
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[32]
    - item_type: preproc_def
      name: Ame1
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[33]
    - item_type: preproc_def
      name: Ami0
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[34]
    - item_type: preproc_def
      name: Ami1
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[35]
    - item_type: preproc_def
      name: Amo0
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[36]
    - item_type: preproc_def
      name: Amo1
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[37]
    - item_type: preproc_def
      name: Amu0
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[38]
    - item_type: preproc_def
      name: Amu1
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[39]
    - item_type: preproc_def
      name: Asa0
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[40]
    - item_type: preproc_def
      name: Asa1
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[41]
    - item_type: preproc_def
      name: Ase0
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[42]
    - item_type: preproc_def
      name: Ase1
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[43]
    - item_type: preproc_def
      name: Asi0
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[44]
    - item_type: preproc_def
      name: Asi1
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[45]
    - item_type: preproc_def
      name: Aso0
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[46]
    - item_type: preproc_def
      name: Aso1
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[47]
    - item_type: preproc_def
      name: Asu0
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[48]
    - item_type: preproc_def
      name: Asu1
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type_or_value: stateAsHalfLanes[49]
    structs: []
    typedefs:
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type: unsigned char
    - item_type: typedef
      name: UINT32
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-inplace32BI.c
      type: unsigned int
    union: []
- function_names:
  - KCP_DeclareSpongeStructure
  - KCP_DeclareSpongeFunctions
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakSponge.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64-config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KeccakP1600_implementation_config
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-opt64-config.h
      type_or_value: '"lane complementing, all rounds unrolled"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ALIGN
  - ALIGN
  - ALIGN
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/align.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SnP_AddBytes
  - SnP_OverwriteBytes
  - SnP_ExtractBytes
  - SnP_ExtractAndAddBytes
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/SnP-Relaned.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Keccak_HashInitialize
  - Keccak_HashUpdate
  - Keccak_HashFinal
  - Keccak_HashSqueeze
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakHash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KeccakP1600_AddByte
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KeccakP1600_implementation
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h
      type_or_value: '"generic 64-bit optimized implementation (" KeccakP1600_implementation_config
        ")"'
    - item_type: preproc_def
      name: KeccakP1600_stateSizeInBytes
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h
      type_or_value: '200'
    - item_type: preproc_def
      name: KeccakP1600_stateAlignment
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt64.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt32.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KeccakP1600_implementation
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt32.h
      type_or_value: '"in-place 32-bit optimized implementation"'
    - item_type: preproc_def
      name: KeccakP1600_stateSizeInBytes
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt32.h
      type_or_value: '200'
    - item_type: preproc_def
      name: KeccakP1600_stateAlignment
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/_sha3/kcp/KeccakP-1600-SnP-opt32.h
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NS
  - NS
  - NS
  - NS
  - NS
  - NS
  - NS
  source_file: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENCODING_MAX
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/expat/xmltok_ns.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/winconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XML_NS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/winconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_DTD
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/winconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_CONTEXT_BYTES
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/expat/winconfig.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/expat/winconfig.h
      type_or_value: '1234'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/asciitab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - XmlTokenRole
  source_file: /src/Python-3.8.3/Modules/expat/xmlrole.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XmlRole_INCLUDED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/xmlrole.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XmlPrologStateInitExternalEntity
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/expat/xmlrole.h
      type_or_value: XmlPrologStateInitExternalEnt
    structs:
    - fields:
      - name: "(PTRCALL *handler)(struct prolog_state *state, int tok, const char
          *ptr,\n                        const char *end, const ENCODING *enc)"
        type: int
      - name: level
        type: unsigned
      - name: role_none
        type: int
      item_type: struct
      name: prolog_state
      pos:
        line_end: 124
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/expat/xmlrole.h
    typedefs: []
    union: []
- function_names:
  - UCS2_GET_NAMING
  - UTF8_GET_NAMING2
  - UTF8_GET_NAMING3
  - UTF8_GET_NAMING
  - UTF8_INVALID2
  - UTF8_INVALID3
  - UTF8_INVALID4
  - PTRFASTCALL::isNever
  - PTRFASTCALL::utf8_isName2
  - PTRFASTCALL::utf8_isName3
  - PTRFASTCALL::utf8_isNmstrt2
  - PTRFASTCALL::utf8_isNmstrt3
  - PTRFASTCALL::utf8_isInvalid2
  - PTRFASTCALL::utf8_isInvalid3
  - PTRFASTCALL::utf8_isInvalid4
  - AS_NORMAL_ENCODING
  - STANDARD_VTABLE
  - NORMAL_VTABLE
  - checkCharRefNumber
  - MINBPC
  - MINBPC
  - SB_BYTE_TYPE
  - PTRFASTCALL::sb_byteType
  - BYTE_TYPE
  - BYTE_TYPE
  - BYTE_TO_ASCII
  - PTRFASTCALL::sb_byteToAscii
  - BYTE_TO_ASCII
  - IS_NAME_CHAR
  - IS_NMSTRT_CHAR
  - IS_INVALID_CHAR
  - IS_NAME_CHAR_MINBPC
  - IS_NMSTRT_CHAR_MINBPC
  - IS_NAME_CHAR_MINBPC
  - IS_NMSTRT_CHAR_MINBPC
  - CHAR_MATCHES
  - sb_charMatches
  - CHAR_MATCHES
  - PREFIX
  - _INTERNAL_trim_to_complete_utf8_characters
  - utf8_toUtf8
  - utf8_toUtf16
  - latin1_toUtf8
  - latin1_toUtf16
  - ascii_toUtf8
  - PTRFASTCALL::unicode_byte_type
  - DEFINE_UTF16_TO_UTF8
  - DEFINE_UTF16_TO_UTF16
  - SET2
  - GET_LO
  - GET_HI
  - SET2
  - GET_LO
  - GET_HI
  - LITTLE2_BYTE_TYPE
  - LITTLE2_BYTE_TO_ASCII
  - LITTLE2_CHAR_MATCHES
  - LITTLE2_IS_NAME_CHAR_MINBPC
  - LITTLE2_IS_NMSTRT_CHAR_MINBPC
  - PTRFASTCALL::little2_byteType
  - PTRFASTCALL::little2_byteToAscii
  - little2_charMatches
  - PTRFASTCALL::little2_isNameMin
  - PTRFASTCALL::little2_isNmstrtMin
  - PREFIX
  - MINBPC
  - BYTE_TYPE
  - BYTE_TO_ASCII
  - CHAR_MATCHES
  - IS_NAME_CHAR
  - IS_NAME_CHAR_MINBPC
  - IS_NMSTRT_CHAR
  - IS_NMSTRT_CHAR_MINBPC
  - BIG2_BYTE_TYPE
  - BIG2_BYTE_TO_ASCII
  - BIG2_CHAR_MATCHES
  - BIG2_IS_NAME_CHAR_MINBPC
  - BIG2_IS_NMSTRT_CHAR_MINBPC
  - PTRFASTCALL::big2_byteType
  - PTRFASTCALL::big2_byteToAscii
  - big2_charMatches
  - PTRFASTCALL::big2_isNameMin
  - PTRFASTCALL::big2_isNmstrtMin
  - PREFIX
  - MINBPC
  - BYTE_TYPE
  - BYTE_TO_ASCII
  - CHAR_MATCHES
  - IS_NAME_CHAR
  - IS_NAME_CHAR_MINBPC
  - IS_NMSTRT_CHAR
  - IS_NMSTRT_CHAR_MINBPC
  - streqci
  - initUpdatePosition
  - toAscii
  - isSpace
  - parsePseudoAttribute
  - doParseXmlDecl
  - checkCharRefNumber
  - XmlUtf8Encode
  - XmlUtf16Encode
  - AS_UNKNOWN_ENCODING
  - XmlSizeOfUnknownEncoding
  - PTRFASTCALL::unknown_isName
  - PTRFASTCALL::unknown_isNmstrt
  - PTRFASTCALL::unknown_isInvalid
  - unknown_toUtf8
  - unknown_toUtf16
  - XmlInitUnknownEncoding
  - getEncodingIndex
  - INIT_ENC_INDEX
  - SET_INIT_ENC_INDEX
  - initScan
  - NS
  - ns
  - NS
  - ns
  - XmlInitUnknownEncodingNS
  source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: bool
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: int
    - item_type: preproc_def
      name: 'false'
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: '0'
    - item_type: preproc_def
      name: 'true'
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IGNORE_SECTION_TOK_VTABLE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: ', PREFIX(ignoreSectionTok)'
    - item_type: preproc_def
      name: VTABLE1
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: "{PREFIX(prologTok), PREFIX(contentTok),                                      \\\n
        \  PREFIX(cdataSectionTok) IGNORE_SECTION_TOK_VTABLE},                         \\\n
        \     {PREFIX(attributeValueTok), PREFIX(entityValueTok)},                     \\\n
        \     PREFIX(nameMatchesAscii), PREFIX(nameLength), PREFIX(skipS),             \\\n
        \     PREFIX(getAtts), PREFIX(charRefNumber), PREFIX(predefinedEntityName),
        \   \\\n      PREFIX(updatePosition), PREFIX(isPublicId)"
    - item_type: preproc_def
      name: VTABLE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16)
    - item_type: preproc_def
      name: utf8_isName4
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: isNever
    - item_type: preproc_def
      name: utf8_isNmstrt4
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: isNever
    - item_type: preproc_def
      name: sb_isNameMin
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: isNever
    - item_type: preproc_def
      name: sb_isNmstrtMin
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: isNever
    - item_type: preproc_def
      name: VTABLE
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: VTABLE1, little2_toUtf8, little2_toUtf16
    - item_type: preproc_def
      name: VTABLE
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
      type_or_value: VTABLE1, big2_toUtf8, big2_toUtf16
    structs:
    - fields:
      - name: enc
        type: ENCODING
      - name: type[256]
        type: unsigned char
      - name: (PTRFASTCALL *isName2)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isName3)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isName4)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isNmstrt2)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isNmstrt3)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isNmstrt4)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isInvalid2)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isInvalid3)(const ENCODING *, const char *)
        type: int
      - name: (PTRFASTCALL *isInvalid4)(const ENCODING *, const char *)
        type: int
      item_type: struct
      name: normal_encoding
      pos:
        line_end: 204
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
    - fields:
      - name: normal
        type: struct normal_encoding
      - name: convert
        type: CONVERTER
      - name: '*userData'
        type: void
      - name: utf16[256]
        type: unsigned short
      - name: utf8[256][4]
        type: char
      item_type: struct
      name: unknown_encoding
      pos:
        line_end: 1314
        line_start: 1308
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/utf8tab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XML_DefaultCurrent
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_DefaultCurrent
    - item_type: preproc_def
      name: XML_ErrorString
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ErrorString
    - item_type: preproc_def
      name: XML_ExpatVersion
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ExpatVersion
    - item_type: preproc_def
      name: XML_ExpatVersionInfo
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ExpatVersionInfo
    - item_type: preproc_def
      name: XML_ExternalEntityParserCreate
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ExternalEntityParserCreate
    - item_type: preproc_def
      name: XML_FreeContentModel
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_FreeContentModel
    - item_type: preproc_def
      name: XML_GetBase
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetBase
    - item_type: preproc_def
      name: XML_GetBuffer
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetBuffer
    - item_type: preproc_def
      name: XML_GetCurrentByteCount
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetCurrentByteCount
    - item_type: preproc_def
      name: XML_GetCurrentByteIndex
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetCurrentByteIndex
    - item_type: preproc_def
      name: XML_GetCurrentColumnNumber
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetCurrentColumnNumber
    - item_type: preproc_def
      name: XML_GetCurrentLineNumber
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetCurrentLineNumber
    - item_type: preproc_def
      name: XML_GetErrorCode
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetErrorCode
    - item_type: preproc_def
      name: XML_GetFeatureList
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetFeatureList
    - item_type: preproc_def
      name: XML_GetIdAttributeIndex
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetIdAttributeIndex
    - item_type: preproc_def
      name: XML_GetInputContext
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetInputContext
    - item_type: preproc_def
      name: XML_GetParsingStatus
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetParsingStatus
    - item_type: preproc_def
      name: XML_GetSpecifiedAttributeCount
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_GetSpecifiedAttributeCount
    - item_type: preproc_def
      name: XmlGetUtf16InternalEncoding
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlGetUtf16InternalEncoding
    - item_type: preproc_def
      name: XmlGetUtf16InternalEncodingNS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlGetUtf16InternalEncodingNS
    - item_type: preproc_def
      name: XmlGetUtf8InternalEncoding
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlGetUtf8InternalEncoding
    - item_type: preproc_def
      name: XmlGetUtf8InternalEncodingNS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlGetUtf8InternalEncodingNS
    - item_type: preproc_def
      name: XmlInitEncoding
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlInitEncoding
    - item_type: preproc_def
      name: XmlInitEncodingNS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlInitEncodingNS
    - item_type: preproc_def
      name: XmlInitUnknownEncoding
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlInitUnknownEncoding
    - item_type: preproc_def
      name: XmlInitUnknownEncodingNS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlInitUnknownEncodingNS
    - item_type: preproc_def
      name: XML_MemFree
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_MemFree
    - item_type: preproc_def
      name: XML_MemMalloc
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_MemMalloc
    - item_type: preproc_def
      name: XML_MemRealloc
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_MemRealloc
    - item_type: preproc_def
      name: XML_Parse
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_Parse
    - item_type: preproc_def
      name: XML_ParseBuffer
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParseBuffer
    - item_type: preproc_def
      name: XML_ParserCreate
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParserCreate
    - item_type: preproc_def
      name: XML_ParserCreate_MM
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParserCreate_MM
    - item_type: preproc_def
      name: XML_ParserCreateNS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParserCreateNS
    - item_type: preproc_def
      name: XML_ParserFree
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParserFree
    - item_type: preproc_def
      name: XML_ParserReset
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ParserReset
    - item_type: preproc_def
      name: XmlParseXmlDecl
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlParseXmlDecl
    - item_type: preproc_def
      name: XmlParseXmlDeclNS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlParseXmlDeclNS
    - item_type: preproc_def
      name: XmlPrologStateInit
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlPrologStateInit
    - item_type: preproc_def
      name: XmlPrologStateInitExternalEntity
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlPrologStateInitExternalEntity
    - item_type: preproc_def
      name: XML_ResumeParser
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_ResumeParser
    - item_type: preproc_def
      name: XML_SetAttlistDeclHandler
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetAttlistDeclHandler
    - item_type: preproc_def
      name: XML_SetBase
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetBase
    - item_type: preproc_def
      name: XML_SetCdataSectionHandler
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetCdataSectionHandler
    - item_type: preproc_def
      name: XML_SetCharacterDataHandler
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetCharacterDataHandler
    - item_type: preproc_def
      name: XML_SetCommentHandler
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetCommentHandler
    - item_type: preproc_def
      name: XML_SetDefaultHandler
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetDefaultHandler
    - item_type: preproc_def
      name: XML_SetDefaultHandlerExpand
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetDefaultHandlerExpand
    - item_type: preproc_def
      name: XML_SetDoctypeDeclHandler
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetDoctypeDeclHandler
    - item_type: preproc_def
      name: XML_SetElementDeclHandler
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetElementDeclHandler
    - item_type: preproc_def
      name: XML_SetElementHandler
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetElementHandler
    - item_type: preproc_def
      name: XML_SetEncoding
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEncoding
    - item_type: preproc_def
      name: XML_SetEndCdataSectionHandler
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEndCdataSectionHandler
    - item_type: preproc_def
      name: XML_SetEndDoctypeDeclHandler
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEndDoctypeDeclHandler
    - item_type: preproc_def
      name: XML_SetEndElementHandler
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEndElementHandler
    - item_type: preproc_def
      name: XML_SetEndNamespaceDeclHandler
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEndNamespaceDeclHandler
    - item_type: preproc_def
      name: XML_SetEntityDeclHandler
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetEntityDeclHandler
    - item_type: preproc_def
      name: XML_SetExternalEntityRefHandler
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetExternalEntityRefHandler
    - item_type: preproc_def
      name: XML_SetExternalEntityRefHandlerArg
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetExternalEntityRefHandlerArg
    - item_type: preproc_def
      name: XML_SetHashSalt
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetHashSalt
    - item_type: preproc_def
      name: XML_SetNamespaceDeclHandler
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetNamespaceDeclHandler
    - item_type: preproc_def
      name: XML_SetNotationDeclHandler
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetNotationDeclHandler
    - item_type: preproc_def
      name: XML_SetNotStandaloneHandler
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetNotStandaloneHandler
    - item_type: preproc_def
      name: XML_SetParamEntityParsing
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetParamEntityParsing
    - item_type: preproc_def
      name: XML_SetProcessingInstructionHandler
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetProcessingInstructionHandler
    - item_type: preproc_def
      name: XML_SetReturnNSTriplet
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetReturnNSTriplet
    - item_type: preproc_def
      name: XML_SetSkippedEntityHandler
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetSkippedEntityHandler
    - item_type: preproc_def
      name: XML_SetStartCdataSectionHandler
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetStartCdataSectionHandler
    - item_type: preproc_def
      name: XML_SetStartDoctypeDeclHandler
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetStartDoctypeDeclHandler
    - item_type: preproc_def
      name: XML_SetStartElementHandler
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetStartElementHandler
    - item_type: preproc_def
      name: XML_SetStartNamespaceDeclHandler
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetStartNamespaceDeclHandler
    - item_type: preproc_def
      name: XML_SetUnknownEncodingHandler
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetUnknownEncodingHandler
    - item_type: preproc_def
      name: XML_SetUnparsedEntityDeclHandler
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetUnparsedEntityDeclHandler
    - item_type: preproc_def
      name: XML_SetUserData
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetUserData
    - item_type: preproc_def
      name: XML_SetXmlDeclHandler
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_SetXmlDeclHandler
    - item_type: preproc_def
      name: XmlSizeOfUnknownEncoding
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlSizeOfUnknownEncoding
    - item_type: preproc_def
      name: XML_StopParser
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_StopParser
    - item_type: preproc_def
      name: XML_UseForeignDTD
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_UseForeignDTD
    - item_type: preproc_def
      name: XML_UseParserAsHandlerArg
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XML_UseParserAsHandlerArg
    - item_type: preproc_def
      name: XmlUtf16Encode
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlUtf16Encode
    - item_type: preproc_def
      name: XmlUtf8Encode
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/expat/pyexpatns.h
      type_or_value: PyExpat_XmlUtf8Encode
    structs: []
    typedefs: []
    union: []
- function_names:
  - UNUSED_P
  source_file: /src/Python-3.8.3/Modules/expat/internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FASTCALL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/expat/internal.h
      type_or_value: __attribute__((regparm(3)))
    - item_type: preproc_def
      name: PTRFASTCALL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/expat/internal.h
      type_or_value: __attribute__((regparm(3)))
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/expat/internal.h
      type_or_value: __inline
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/expat/internal.h
      type_or_value: inline
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/xmltok_impl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/latin1tab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/nametab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/iasciitab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_INVALID_CHAR
  - INVALID_LEAD_CASE
  - INVALID_CASES
  - CHECK_NAME_CASE
  - CHECK_NAME_CASES
  - CHECK_NMSTRT_CASE
  - CHECK_NMSTRT_CASES
  - PREFIX
  - HAS_CHARS
  - HAS_CHAR
  - REQUIRE_CHARS
  - REQUIRE_CHAR
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - LEAD_CASE
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - LEAD_CASE
  - PREFIX
  - PREFIX
  - PREFIX
  - PREFIX
  - LEAD_CASE
  - PREFIX
  - LEAD_CASE
  - PREFIX
  - LEAD_CASE
  - PREFIX
  - PREFIX
  - PREFIX
  - LEAD_CASE
  - PTRFASTCALL::PREFIX
  - PREFIX
  - PREFIX
  - PTRFASTCALL::PREFIX
  - LEAD_CASE
  - PTRFASTCALL::PREFIX
  - PREFIX
  - LEAD_CASE
  source_file: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: START_NAME
      pos:
        line_end: 1511
        line_start: 1503
        source_file: /src/Python-3.8.3/Modules/expat/xmltok_impl.c
      type_or_value: "if (state == other) {                                                      \\\n
        \     if (nAtts < attsMax) {                                                   \\\n
        \       atts[nAtts].name = ptr;                                                \\\n
        \       atts[nAtts].normalized = 1;                                            \\\n
        \     }                                                                        \\\n
        \     state = inName;                                                          \\\n
        \   }"
    structs: []
    typedefs: []
    union: []
- function_names:
  - MIN_BYTES_PER_CHAR
  - setTopLevel
  - setTopLevel
  - prolog0
  - prolog1
  - prolog2
  - doctype0
  - doctype1
  - doctype2
  - doctype3
  - doctype4
  - doctype5
  - internalSubset
  - externalSubset0
  - externalSubset1
  - entity0
  - entity1
  - entity2
  - entity3
  - entity4
  - entity5
  - entity6
  - entity7
  - entity8
  - entity9
  - entity10
  - notation0
  - notation1
  - notation2
  - notation3
  - notation4
  - attlist0
  - attlist1
  - attlist2
  - attlist3
  - attlist4
  - attlist5
  - attlist6
  - attlist7
  - attlist8
  - attlist9
  - element0
  - element1
  - element2
  - element3
  - element4
  - element5
  - element6
  - element7
  - condSect0
  - condSect1
  - condSect2
  - declClose
  - error
  - common
  - XmlPrologStateInit
  - XmlPrologStateInitExternalEntity
  source_file: /src/Python-3.8.3/Modules/expat/xmlrole.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "PROLOG_HANDLER(PROLOG_STATE *state, int tok,\n                                   const
        char *ptr, const char *end,\n                                   const ENCODING
        *enc)"
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/expat/xmlrole.c
      type: int
    union: []
- function_names:
  - _SIP_ULL
  - SIP_ROTL
  - SIP_U32TO8_LE
  - SIP_U64TO8_LE
  - SIP_U8TO64_LE
  - sip_keyof
  - sip_tokey
  - sip_binof
  - sip_tobin
  - sip_round
  - sip24_init
  - sip_endof
  - sip24_update
  - sip24_final
  - siphash24
  - sip24_valid
  - main
  source_file: /src/Python-3.8.3/Modules/expat/siphash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIPHASH_INITIALIZER
      pos:
        line_end: 135
        line_start: 133
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
      type_or_value: '{ 0, 0, 0, 0, {0}, 0, 0 }'
    - item_type: preproc_def
      name: SIP_KEYLEN
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
      type_or_value: '16'
    structs:
    - fields:
      - name: v0
        type: uint64_t
      - name: buf[8]
        type: unsigned char
      - name: c
        type: uint64_t
      item_type: struct
      name: siphash
      pos:
        line_end: 141
        line_start: 136
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
    - fields:
      - name: k[2]
        type: uint64_t
      item_type: struct
      name: sipkey
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
    typedefs:
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
      type: unsigned __int8
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
      type: unsigned __int32
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/expat/siphash.h
      type: unsigned __int64
    union: []
- function_names:
  - XmlTok
  - XmlPrologTok
  - XmlContentTok
  - XmlCdataSectionTok
  - XmlIgnoreSectionTok
  - XmlLiteralTok
  - XmlAttributeValueTok
  - XmlEntityValueTok
  - XmlNameMatchesAscii
  - XmlNameLength
  - XmlSkipS
  - XmlGetAttributes
  - XmlCharRefNumber
  - XmlPredefinedEntityName
  - XmlUpdatePosition
  - XmlIsPublicId
  - XmlUtf8Convert
  - XmlUtf16Convert
  source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
  types:
    enum:
    - enumerators:
      - name: XML_CONVERT_COMPLETED
        value: '0'
      - name: XML_CONVERT_OUTPUT_EXHAUSTED
        value: '2'
      - name: XML_CONVERT_INPUT_INCOMPLETE
        value: '1'
      item_type: enum
      name: XML_Convert_Result
      pos:
        line_end: 165
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
    preproc_defs:
    - item_type: preproc_def
      name: XmlTok_INCLUDED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_TOK_TRAILING_RSQB
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '-5 '
    - item_type: preproc_def
      name: XML_TOK_NONE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '-4 '
    - item_type: preproc_def
      name: XML_TOK_TRAILING_CR
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '-3                            '
    - item_type: preproc_def
      name: XML_TOK_PARTIAL_CHAR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '-2 '
    - item_type: preproc_def
      name: XML_TOK_PARTIAL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '-1      '
    - item_type: preproc_def
      name: XML_TOK_INVALID
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XML_TOK_START_TAG_WITH_ATTS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_TOK_START_TAG_NO_ATTS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XML_TOK_EMPTY_ELEMENT_WITH_ATTS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: XML_TOK_EMPTY_ELEMENT_NO_ATTS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XML_TOK_END_TAG
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '5'
    - item_type: preproc_def
      name: XML_TOK_DATA_CHARS
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '6'
    - item_type: preproc_def
      name: XML_TOK_DATA_NEWLINE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '7'
    - item_type: preproc_def
      name: XML_TOK_CDATA_SECT_OPEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '8'
    - item_type: preproc_def
      name: XML_TOK_ENTITY_REF
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '9'
    - item_type: preproc_def
      name: XML_TOK_CHAR_REF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: XML_TOK_PI
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '11       '
    - item_type: preproc_def
      name: XML_TOK_XML_DECL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: XML_TOK_COMMENT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '13'
    - item_type: preproc_def
      name: XML_TOK_BOM
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '14 '
    - item_type: preproc_def
      name: XML_TOK_PROLOG_S
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '15'
    - item_type: preproc_def
      name: XML_TOK_DECL_OPEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '16  '
    - item_type: preproc_def
      name: XML_TOK_DECL_CLOSE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '17 '
    - item_type: preproc_def
      name: XML_TOK_NAME
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '18'
    - item_type: preproc_def
      name: XML_TOK_NMTOKEN
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '19'
    - item_type: preproc_def
      name: XML_TOK_POUND_NAME
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '20 '
    - item_type: preproc_def
      name: XML_TOK_OR
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '21         '
    - item_type: preproc_def
      name: XML_TOK_PERCENT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '22'
    - item_type: preproc_def
      name: XML_TOK_OPEN_PAREN
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '23'
    - item_type: preproc_def
      name: XML_TOK_CLOSE_PAREN
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '24'
    - item_type: preproc_def
      name: XML_TOK_OPEN_BRACKET
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '25'
    - item_type: preproc_def
      name: XML_TOK_CLOSE_BRACKET
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '26'
    - item_type: preproc_def
      name: XML_TOK_LITERAL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '27'
    - item_type: preproc_def
      name: XML_TOK_PARAM_ENTITY_REF
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '28'
    - item_type: preproc_def
      name: XML_TOK_INSTANCE_START
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '29'
    - item_type: preproc_def
      name: XML_TOK_NAME_QUESTION
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '30        '
    - item_type: preproc_def
      name: XML_TOK_NAME_ASTERISK
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '31        '
    - item_type: preproc_def
      name: XML_TOK_NAME_PLUS
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '32            '
    - item_type: preproc_def
      name: XML_TOK_COND_SECT_OPEN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '33       '
    - item_type: preproc_def
      name: XML_TOK_COND_SECT_CLOSE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '34      '
    - item_type: preproc_def
      name: XML_TOK_CLOSE_PAREN_QUESTION
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '35 '
    - item_type: preproc_def
      name: XML_TOK_CLOSE_PAREN_ASTERISK
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '36 '
    - item_type: preproc_def
      name: XML_TOK_CLOSE_PAREN_PLUS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '37     '
    - item_type: preproc_def
      name: XML_TOK_COMMA
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '38'
    - item_type: preproc_def
      name: XML_TOK_ATTRIBUTE_VALUE_S
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '39'
    - item_type: preproc_def
      name: XML_TOK_CDATA_SECT_CLOSE
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '40'
    - item_type: preproc_def
      name: XML_TOK_PREFIXED_NAME
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '41'
    - item_type: preproc_def
      name: XML_TOK_IGNORE_SECT
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '42'
    - item_type: preproc_def
      name: XML_N_STATES
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XML_N_STATES
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XML_PROLOG_STATE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XML_CONTENT_STATE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_CDATA_SECTION_STATE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XML_IGNORE_SECTION_STATE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '3'
    - item_type: preproc_def
      name: XML_N_LITERAL_TYPES
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XML_ATTRIBUTE_VALUE_LITERAL
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XML_ENTITY_VALUE_LITERAL
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_UTF8_ENCODE_MAX
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '4'
    - item_type: preproc_def
      name: XML_UTF16_ENCODE_MAX
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type_or_value: '2'
    structs:
    - fields:
      - name: lineNumber
        type: XML_Size
      - name: columnNumber
        type: XML_Size
      item_type: struct
      name: position
      pos:
        line_end: 145
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
    - fields:
      - name: '*name'
        type: char
      - name: '*valuePtr'
        type: char
      - name: '*valueEnd'
        type: char
      - name: normalized
        type: char
      item_type: struct
      name: ATTRIBUTE
      pos:
        line_end: 152
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
    - fields:
      - name: scanners[XML_N_STATES]
        type: SCANNER
      - name: literalScanners[XML_N_LITERAL_TYPES]
        type: SCANNER
      - name: "(PTRCALL *nameMatchesAscii)(const ENCODING *, const char *, const char
          *,\n                                 const char *)"
        type: int
      - name: (PTRFASTCALL *nameLength)(const ENCODING *, const char *)
        type: int
      - name: '*(PTRFASTCALL *skipS)(const ENCODING *, const char *)'
        type: char
      - name: "(PTRCALL *getAtts)(const ENCODING *enc, const char *ptr, int attsMax,\n
          \                       ATTRIBUTE *atts)"
        type: int
      - name: (PTRFASTCALL *charRefNumber)(const ENCODING *enc, const char *ptr)
        type: int
      - name: "(PTRCALL *predefinedEntityName)(const ENCODING *, const char *,\n                                     const
          char *)"
        type: int
      - name: "(PTRCALL *updatePosition)(const ENCODING *, const char *ptr,\n                                const
          char *end, POSITION *)"
        type: void
      - name: "(PTRCALL *isPublicId)(const ENCODING *enc, const char *ptr,\n                           const
          char *end, const char **badPtr)"
        type: int
      - name: "(PTRCALL *utf8Convert)(const ENCODING *enc,\n                                                const
          char **fromP,\n                                                const char
          *fromLim, char **toP,\n                                                const
          char *toLim)"
        type: enum XML_Convert_Result
      - name: "(PTRCALL *utf16Convert)(const ENCODING *enc,\n                                                 const
          char **fromP,\n                                                 const char
          *fromLim,\n                                                 unsigned short
          **toP,\n                                                 const unsigned
          short *toLim)"
        type: enum XML_Convert_Result
      - name: minBytesPerChar
        type: int
      - name: isUtf8
        type: char
      - name: isUtf16
        type: char
      item_type: struct
      name: encoding
      pos:
        line_end: 195
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
    - fields:
      - name: initEnc
        type: ENCODING
      - name: '**encPtr'
        type: ENCODING
      item_type: struct
      name: INIT_ENCODING
      pos:
        line_end: 279
        line_start: 276
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
    typedefs:
    - item_type: typedef
      name: ENCODING
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type: encoding
    - item_type: typedef
      name: "(PTRCALL *SCANNER)(const ENCODING *, const char *, const char *,\n                              const
        char **)"
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type: int
    - item_type: typedef
      name: (XMLCALL *CONVERTER)(void *userData, const char *p)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/Python-3.8.3/Modules/expat/xmltok.h
      type: int
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '4321'
    - item_type: preproc_def
      name: BYTEORDER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '1234'
    - item_type: preproc_def
      name: HAVE_MEMMOVE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_NS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_DTD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_CONTEXT_BYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/expat/expat_config.h
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MUST_CONVERT
  - MUST_CONVERT
  - XML_T
  - XML_L
  - XML_T
  - XML_L
  - XML_T
  - XML_L
  - ROUND_UP
  - EXPAT_SAFE_PTR_DIFF
  - SECOND_HASH
  - PROBE_STEP
  - poolStart
  - poolEnd
  - poolLength
  - poolChop
  - poolLastChar
  - poolDiscard
  - poolFinish
  - poolAppendChar
  - MALLOC
  - REALLOC
  - FREE
  - XML_ParserCreate
  - XML_ParserCreateNS
  - writeRandomBytes_getrandom_nonblock
  - writeRandomBytes_dev_urandom
  - writeRandomBytes_arc4random
  - writeRandomBytes_rand_s
  - gather_time_entropy
  - ENTROPY_DEBUG
  - generate_hash_secret_salt
  - get_hash_secret_salt
  - startParsing
  - XML_ParserCreate_MM
  - parserCreate
  - parserInit
  - moveToFreeBindingList
  - XML_ParserReset
  - XML_SetEncoding
  - XML_ExternalEntityParserCreate
  - destroyBindings
  - XML_ParserFree
  - XML_UseParserAsHandlerArg
  - XML_UseForeignDTD
  - XML_SetReturnNSTriplet
  - XML_SetUserData
  - XML_SetBase
  - XML_GetBase
  - XML_GetSpecifiedAttributeCount
  - XML_GetIdAttributeIndex
  - XML_GetAttributeInfo
  - XML_SetElementHandler
  - XML_SetStartElementHandler
  - XML_SetEndElementHandler
  - XML_SetCharacterDataHandler
  - XML_SetProcessingInstructionHandler
  - XML_SetCommentHandler
  - XML_SetCdataSectionHandler
  - XML_SetStartCdataSectionHandler
  - XML_SetEndCdataSectionHandler
  - XML_SetDefaultHandler
  - XML_SetDefaultHandlerExpand
  - XML_SetDoctypeDeclHandler
  - XML_SetStartDoctypeDeclHandler
  - XML_SetEndDoctypeDeclHandler
  - XML_SetUnparsedEntityDeclHandler
  - XML_SetNotationDeclHandler
  - XML_SetNamespaceDeclHandler
  - XML_SetStartNamespaceDeclHandler
  - XML_SetEndNamespaceDeclHandler
  - XML_SetNotStandaloneHandler
  - XML_SetExternalEntityRefHandler
  - XML_SetExternalEntityRefHandlerArg
  - XML_SetSkippedEntityHandler
  - XML_SetUnknownEncodingHandler
  - XML_SetElementDeclHandler
  - XML_SetAttlistDeclHandler
  - XML_SetEntityDeclHandler
  - XML_SetXmlDeclHandler
  - XML_SetParamEntityParsing
  - XML_SetHashSalt
  - XML_Parse
  - XML_ParseBuffer
  - XML_GetBuffer
  - XML_StopParser
  - XML_ResumeParser
  - XML_GetParsingStatus
  - XML_GetErrorCode
  - XML_GetCurrentByteIndex
  - XML_GetCurrentByteCount
  - XML_GetInputContext
  - XML_GetCurrentLineNumber
  - XML_GetCurrentColumnNumber
  - XML_FreeContentModel
  - XML_MemMalloc
  - XML_MemRealloc
  - XML_MemFree
  - XML_DefaultCurrent
  - XML_ErrorString
  - XML_ExpatVersion
  - V1
  - V2
  - XML_ExpatVersionInfo
  - XML_GetFeatureList
  - storeRawNames
  - contentProcessor
  - externalEntityInitProcessor
  - externalEntityInitProcessor2
  - externalEntityInitProcessor3
  - externalEntityContentProcessor
  - doContent
  - freeBindings
  - storeAtts
  - addBinding
  - cdataSectionProcessor
  - doCdataSection
  - ignoreSectionProcessor
  - doIgnoreSection
  - initializeEncoding
  - processXmlDecl
  - handleUnknownEncoding
  - prologInitProcessor
  - externalParEntInitProcessor
  - entityValueInitProcessor
  - externalParEntProcessor
  - entityValueProcessor
  - prologProcessor
  - doProlog
  - epilogProcessor
  - processInternalEntity
  - internalEntityProcessor
  - errorProcessor
  - storeAttributeValue
  - appendAttributeValue
  - storeEntityValue
  - normalizeLines
  - reportProcessingInstruction
  - reportComment
  - reportDefault
  - defineAttribute
  - setElementTypePrefix
  - getAttributeId
  - getContext
  - setContext
  - normalizePublicId
  - dtdCreate
  - dtdReset
  - dtdDestroy
  - dtdCopy
  - copyEntityTable
  - keyeq
  - keylen
  - copy_salt_to_sipkey
  - hash
  - lookup
  - hashTableClear
  - hashTableDestroy
  - hashTableInit
  - hashTableIterInit
  - hashTableIterNext
  - poolInit
  - poolClear
  - poolDestroy
  - poolAppend
  - poolCopyString
  - poolCopyStringN
  - poolAppendString
  - poolStoreString
  - poolBytesToAllocateFor
  - poolGrow
  - nextScaffoldPart
  - build_node
  - build_model
  - getElementType
  - copyString
  source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GNU_SOURCE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: getpid
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: GetCurrentProcessId
    - item_type: preproc_def
      name: XML_BUILDING_EXPAT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '1'
    - item_type: preproc_def
      name: GRND_NONBLOCK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: LOAD_LIBRARY_SEARCH_SYSTEM32
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '0x00000800'
    - item_type: preproc_def
      name: XML_ENCODE_MAX
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XML_UTF16_ENCODE_MAX
    - item_type: preproc_def
      name: XmlConvert
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlUtf16Convert
    - item_type: preproc_def
      name: XmlGetInternalEncoding
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlGetUtf16InternalEncoding
    - item_type: preproc_def
      name: XmlGetInternalEncodingNS
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlGetUtf16InternalEncodingNS
    - item_type: preproc_def
      name: XmlEncode
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlUtf16Encode
    - item_type: preproc_def
      name: XML_ENCODE_MAX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XML_UTF8_ENCODE_MAX
    - item_type: preproc_def
      name: XmlConvert
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlUtf8Convert
    - item_type: preproc_def
      name: XmlGetInternalEncoding
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlGetUtf8InternalEncoding
    - item_type: preproc_def
      name: XmlGetInternalEncodingNS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlGetUtf8InternalEncodingNS
    - item_type: preproc_def
      name: XmlEncode
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlUtf8Encode
    - item_type: preproc_def
      name: XmlInitEncodingNS
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlInitEncoding
    - item_type: preproc_def
      name: XmlInitUnknownEncodingNS
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlInitUnknownEncoding
    - item_type: preproc_def
      name: XmlGetInternalEncodingNS
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlGetInternalEncoding
    - item_type: preproc_def
      name: XmlParseXmlDeclNS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XmlParseXmlDecl
    - item_type: preproc_def
      name: INIT_TAG_BUF_SIZE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '32 '
    - item_type: preproc_def
      name: INIT_DATA_BUF_SIZE
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: INIT_ATTS_SIZE
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '16'
    - item_type: preproc_def
      name: INIT_ATTS_VERSION
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '0xFFFFFFFF'
    - item_type: preproc_def
      name: INIT_BLOCK_SIZE
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: INIT_BUFFER_SIZE
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: EXPAND_SPARE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '24'
    - item_type: preproc_def
      name: INIT_SCAFFOLD_ELEMENTS
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '32'
    - item_type: preproc_def
      name: CONTEXT_SEP
      pos:
        line_end: 5875
        line_start: 5874
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: XML_T(ASCII_FF)
    - item_type: preproc_def
      name: INIT_POWER
      pos:
        line_end: 6346
        line_start: 6345
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type_or_value: '6'
    structs:
    - fields:
      - name: name
        type: KEY
      item_type: struct
      name: NAMED
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '**v'
        type: NAMED
      - name: power
        type: unsigned char
      - name: size
        type: size_t
      - name: used
        type: size_t
      - name: '*mem'
        type: XML_Memory_Handling_Suite
      item_type: struct
      name: HASH_TABLE
      pos:
        line_end: 184
        line_start: 178
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '**p'
        type: NAMED
      - name: '**end'
        type: NAMED
      item_type: struct
      name: HASH_TABLE_ITER
      pos:
        line_end: 206
        line_start: 203
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*prefix'
        type: struct prefix
      - name: '*nextTagBinding'
        type: struct binding
      - name: '*prevPrefixBinding'
        type: struct binding
      - name: '*attId'
        type: struct attribute_id
      - name: '*uri'
        type: XML_Char
      - name: uriLen
        type: int
      - name: uriAlloc
        type: int
      item_type: struct
      name: binding
      pos:
        line_end: 225
        line_start: 217
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*name'
        type: XML_Char
      - name: '*binding'
        type: BINDING
      item_type: struct
      name: prefix
      pos:
        line_end: 230
        line_start: 227
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*str'
        type: XML_Char
      - name: '*localPart'
        type: XML_Char
      - name: '*prefix'
        type: XML_Char
      - name: strLen
        type: int
      - name: uriLen
        type: int
      - name: prefixLen
        type: int
      item_type: struct
      name: TAG_NAME
      pos:
        line_end: 239
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*parent'
        type: struct tag
      - name: '*rawName'
        type: char
      - name: rawNameLength
        type: int
      - name: name
        type: TAG_NAME
      - name: '*buf'
        type: char
      - name: '*bufEnd'
        type: char
      - name: '*bindings'
        type: BINDING
      item_type: struct
      name: tag
      pos:
        line_end: 262
        line_start: 254
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*name'
        type: XML_Char
      - name: '*textPtr'
        type: XML_Char
      - name: textLen
        type: int
      - name: processed
        type: int
      - name: '*systemId'
        type: XML_Char
      - name: '*base'
        type: XML_Char
      - name: '*publicId'
        type: XML_Char
      - name: '*notation'
        type: XML_Char
      - name: open
        type: XML_Bool
      - name: is_param
        type: XML_Bool
      - name: is_internal
        type: XML_Bool
      item_type: struct
      name: ENTITY
      pos:
        line_end: 276
        line_start: 264
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: type
        type: enum XML_Content_Type
      - name: quant
        type: enum XML_Content_Quant
      - name: '*name'
        type: XML_Char
      - name: firstchild
        type: int
      - name: lastchild
        type: int
      - name: childcnt
        type: int
      - name: nextsib
        type: int
      item_type: struct
      name: CONTENT_SCAFFOLD
      pos:
        line_end: 286
        line_start: 278
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*next'
        type: struct block
      - name: size
        type: int
      - name: s[1]
        type: XML_Char
      item_type: struct
      name: block
      pos:
        line_end: 294
        line_start: 290
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*blocks'
        type: BLOCK
      - name: '*freeBlocks'
        type: BLOCK
      - name: '*end'
        type: XML_Char
      - name: '*ptr'
        type: XML_Char
      - name: '*start'
        type: XML_Char
      - name: '*mem'
        type: XML_Memory_Handling_Suite
      item_type: struct
      name: STRING_POOL
      pos:
        line_end: 303
        line_start: 296
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*name'
        type: XML_Char
      - name: '*prefix'
        type: PREFIX
      - name: maybeTokenized
        type: XML_Bool
      - name: xmlns
        type: XML_Bool
      item_type: struct
      name: attribute_id
      pos:
        line_end: 312
        line_start: 307
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*id'
        type: ATTRIBUTE_ID
      - name: isCdata
        type: XML_Bool
      - name: '*value'
        type: XML_Char
      item_type: struct
      name: DEFAULT_ATTRIBUTE
      pos:
        line_end: 318
        line_start: 314
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: version
        type: unsigned long
      - name: hash
        type: unsigned long
      - name: '*uriName'
        type: XML_Char
      item_type: struct
      name: NS_ATT
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*name'
        type: XML_Char
      - name: '*prefix'
        type: PREFIX
      - name: '*idAtt'
        type: ATTRIBUTE_ID
      - name: nDefaultAtts
        type: int
      - name: allocDefaultAtts
        type: int
      - name: '*defaultAtts'
        type: DEFAULT_ATTRIBUTE
      item_type: struct
      name: ELEMENT_TYPE
      pos:
        line_end: 333
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: generalEntities
        type: HASH_TABLE
      - name: elementTypes
        type: HASH_TABLE
      - name: attributeIds
        type: HASH_TABLE
      - name: prefixes
        type: HASH_TABLE
      - name: pool
        type: STRING_POOL
      - name: entityValuePool
        type: STRING_POOL
      - name: keepProcessing
        type: XML_Bool
      - name: hasParamEntityRefs
        type: XML_Bool
      - name: standalone
        type: XML_Bool
      - name: defaultPrefix
        type: PREFIX
      - name: in_eldecl
        type: XML_Bool
      - name: '*scaffold'
        type: CONTENT_SCAFFOLD
      - name: contentStringLen
        type: unsigned
      - name: scaffSize
        type: unsigned
      - name: scaffCount
        type: unsigned
      - name: scaffLevel
        type: int
      - name: '*scaffIndex'
        type: int
      item_type: struct
      name: DTD
      pos:
        line_end: 362
        line_start: 335
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*internalEventPtr'
        type: char
      - name: '*internalEventEndPtr'
        type: char
      - name: '*next'
        type: struct open_internal_entity
      - name: '*entity'
        type: ENTITY
      - name: startTagLevel
        type: int
      - name: betweenDecl
        type: XML_Bool
      item_type: struct
      name: open_internal_entity
      pos:
        line_end: 371
        line_start: 364
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    - fields:
      - name: '*m_userData'
        type: void
      - name: '*m_handlerArg'
        type: void
      - name: '*m_buffer'
        type: char
      - name: m_mem
        type: XML_Memory_Handling_Suite
      - name: '*m_bufferPtr'
        type: char
      - name: '*m_bufferEnd'
        type: char
      - name: '*m_bufferLim'
        type: char
      - name: m_parseEndByteIndex
        type: XML_Index
      - name: '*m_parseEndPtr'
        type: char
      - name: '*m_dataBuf'
        type: XML_Char
      - name: '*m_dataBufEnd'
        type: XML_Char
      - name: m_startElementHandler
        type: XML_StartElementHandler
      - name: m_endElementHandler
        type: XML_EndElementHandler
      - name: m_characterDataHandler
        type: XML_CharacterDataHandler
      - name: m_processingInstructionHandler
        type: XML_ProcessingInstructionHandler
      - name: m_commentHandler
        type: XML_CommentHandler
      - name: m_startCdataSectionHandler
        type: XML_StartCdataSectionHandler
      - name: m_endCdataSectionHandler
        type: XML_EndCdataSectionHandler
      - name: m_defaultHandler
        type: XML_DefaultHandler
      - name: m_startDoctypeDeclHandler
        type: XML_StartDoctypeDeclHandler
      - name: m_endDoctypeDeclHandler
        type: XML_EndDoctypeDeclHandler
      - name: m_unparsedEntityDeclHandler
        type: XML_UnparsedEntityDeclHandler
      - name: m_notationDeclHandler
        type: XML_NotationDeclHandler
      - name: m_startNamespaceDeclHandler
        type: XML_StartNamespaceDeclHandler
      - name: m_endNamespaceDeclHandler
        type: XML_EndNamespaceDeclHandler
      - name: m_notStandaloneHandler
        type: XML_NotStandaloneHandler
      - name: m_externalEntityRefHandler
        type: XML_ExternalEntityRefHandler
      - name: m_externalEntityRefHandlerArg
        type: XML_Parser
      - name: m_skippedEntityHandler
        type: XML_SkippedEntityHandler
      - name: m_unknownEncodingHandler
        type: XML_UnknownEncodingHandler
      - name: m_elementDeclHandler
        type: XML_ElementDeclHandler
      - name: m_attlistDeclHandler
        type: XML_AttlistDeclHandler
      - name: m_entityDeclHandler
        type: XML_EntityDeclHandler
      - name: m_xmlDeclHandler
        type: XML_XmlDeclHandler
      - name: '*m_encoding'
        type: ENCODING
      - name: m_initEncoding
        type: INIT_ENCODING
      - name: '*m_internalEncoding'
        type: ENCODING
      - name: '*m_protocolEncodingName'
        type: XML_Char
      - name: m_ns
        type: XML_Bool
      - name: m_ns_triplets
        type: XML_Bool
      - name: '*m_unknownEncodingMem'
        type: void
      - name: '*m_unknownEncodingData'
        type: void
      - name: '*m_unknownEncodingHandlerData'
        type: void
      - name: (XMLCALL *m_unknownEncodingRelease)(void *)
        type: void
      - name: m_prologState
        type: PROLOG_STATE
      - name: '*m_processor'
        type: Processor
      - name: m_errorCode
        type: enum XML_Error
      - name: '*m_eventPtr'
        type: char
      - name: '*m_eventEndPtr'
        type: char
      - name: '*m_positionPtr'
        type: char
      - name: '*m_openInternalEntities'
        type: OPEN_INTERNAL_ENTITY
      - name: '*m_freeInternalEntities'
        type: OPEN_INTERNAL_ENTITY
      - name: m_defaultExpandInternalEntities
        type: XML_Bool
      - name: m_tagLevel
        type: int
      - name: '*m_declEntity'
        type: ENTITY
      - name: '*m_doctypeName'
        type: XML_Char
      - name: '*m_doctypeSysid'
        type: XML_Char
      - name: '*m_doctypePubid'
        type: XML_Char
      - name: '*m_declAttributeType'
        type: XML_Char
      - name: '*m_declNotationName'
        type: XML_Char
      - name: '*m_declNotationPublicId'
        type: XML_Char
      - name: '*m_declElementType'
        type: ELEMENT_TYPE
      - name: '*m_declAttributeId'
        type: ATTRIBUTE_ID
      - name: m_declAttributeIsCdata
        type: XML_Bool
      - name: m_declAttributeIsId
        type: XML_Bool
      - name: '*m_dtd'
        type: DTD
      - name: '*m_curBase'
        type: XML_Char
      - name: '*m_tagStack'
        type: TAG
      - name: '*m_freeTagList'
        type: TAG
      - name: '*m_inheritedBindings'
        type: BINDING
      - name: '*m_freeBindingList'
        type: BINDING
      - name: m_attsSize
        type: int
      - name: m_nSpecifiedAtts
        type: int
      - name: m_idAttIndex
        type: int
      - name: '*m_atts'
        type: ATTRIBUTE
      - name: '*m_nsAtts'
        type: NS_ATT
      - name: m_nsAttsVersion
        type: unsigned long
      - name: m_nsAttsPower
        type: unsigned char
      - name: m_position
        type: POSITION
      - name: m_tempPool
        type: STRING_POOL
      - name: m_temp2Pool
        type: STRING_POOL
      - name: '*m_groupConnector'
        type: char
      - name: m_groupSize
        type: unsigned int
      - name: m_namespaceSeparator
        type: XML_Char
      - name: m_parentParser
        type: XML_Parser
      - name: m_parsingStatus
        type: XML_ParsingStatus
      - name: m_hash_secret_salt
        type: unsigned long
      item_type: struct
      name: XML_ParserStruct
      pos:
        line_end: 616
        line_start: 515
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
    typedefs:
    - item_type: typedef
      name: ICHAR
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type: unsigned short
    - item_type: typedef
      name: ICHAR
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type: char
    - item_type: typedef
      name: '*KEY'
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type: XML_Char
    - item_type: typedef
      name: "Processor(XML_Parser parser, const char *start,\n                                         const
        char *end, const char **endPtr)"
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/Python-3.8.3/Modules/expat/xmlparse.c
      type: XML_Error
    union: []
- function_names:
  - XML_GetUserData
  source_file: /src/Python-3.8.3/Modules/expat/expat.h
  types:
    enum:
    - enumerators:
      - name: XML_STATUS_ERROR
        value: '0'
      - name: XML_STATUS_SUSPENDED
        value: '2'
      - name: XML_STATUS_OK
        value: '1'
      item_type: enum
      name: XML_Status
      pos:
        line_end: 69
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_ERROR_NONE
      - name: XML_ERROR_NO_ELEMENTS
      - name: XML_ERROR_NO_MEMORY
      - name: XML_ERROR_UNCLOSED_TOKEN
      - name: XML_ERROR_TAG_MISMATCH
      - name: XML_ERROR_JUNK_AFTER_DOC_ELEMENT
      - name: XML_ERROR_UNDEFINED_ENTITY
      - name: XML_ERROR_ASYNC_ENTITY
      - name: XML_ERROR_BAD_CHAR_REF
      - name: XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
      - name: XML_ERROR_UNKNOWN_ENCODING
      - name: XML_ERROR_INCOMPLETE_PE
      - name: XML_ERROR_PUBLICID
      - name: XML_ERROR_RESERVED_PREFIX_XMLNS
      - name: XML_ERROR_ENTITY_DECLARED_IN_PE
      - name: XML_ERROR_UNDECLARING_PREFIX
      - name: XML_ERROR_UNCLOSED_CDATA_SECTION
      - name: XML_ERROR_UNEXPECTED_STATE
      - name: XML_ERROR_TEXT_DECL
      - name: XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING
      - name: XML_ERROR_NOT_SUSPENDED
      - name: XML_ERROR_SUSPEND_PE
      - name: XML_ERROR_INVALID_TOKEN
      - name: XML_ERROR_SYNTAX
      - name: XML_ERROR_PARTIAL_CHAR
      - name: XML_ERROR_DUPLICATE_ATTRIBUTE
      - name: XML_ERROR_MISPLACED_XML_PI
      - name: XML_ERROR_RECURSIVE_ENTITY_REF
      - name: XML_ERROR_BINARY_ENTITY_REF
      - name: XML_ERROR_PARAM_ENTITY_REF
      - name: XML_ERROR_INCORRECT_ENCODING
      - name: XML_ERROR_EXTERNAL_ENTITY_HANDLING
      - name: XML_ERROR_SUSPENDED
      - name: XML_ERROR_FINISHED
      - name: XML_ERROR_RESERVED_NAMESPACE_URI
      - name: XML_ERROR_FEATURE_REQUIRES_XML_DTD
      - name: XML_ERROR_INVALID_ARGUMENT
      - name: XML_ERROR_UNBOUND_PREFIX
      - name: XML_ERROR_ABORTED
      - name: XML_ERROR_RESERVED_PREFIX_XML
      - name: XML_ERROR_NOT_STANDALONE
      - name: XML_ERROR_XML_DECL
      item_type: enum
      name: XML_Error
      pos:
        line_end: 118
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_CTYPE_EMPTY
        value: '1'
      - name: XML_CTYPE_MIXED
      - name: XML_CTYPE_NAME
      - name: XML_CTYPE_ANY
      - name: XML_CTYPE_CHOICE
      - name: XML_CTYPE_SEQ
      item_type: enum
      name: XML_Content_Type
      pos:
        line_end: 127
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_CQUANT_NONE
      - name: XML_CQUANT_REP
      - name: XML_CQUANT_PLUS
      - name: XML_CQUANT_OPT
      item_type: enum
      name: XML_Content_Quant
      pos:
        line_end: 134
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_INITIALIZED
      - name: XML_SUSPENDED
      - name: XML_PARSING
      - name: XML_FINISHED
      item_type: enum
      name: XML_Parsing
      pos:
        line_end: 814
        line_start: 814
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_PARAM_ENTITY_PARSING_NEVER
      - name: XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE
      - name: XML_PARAM_ENTITY_PARSING_ALWAYS
      item_type: enum
      name: XML_ParamEntityParsing
      pos:
        line_end: 853
        line_start: 849
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - enumerators:
      - name: XML_FEATURE_END
        value: '0'
      - name: XML_FEATURE_UNICODE
      - name: XML_FEATURE_UNICODE_WCHAR_T
      - name: XML_FEATURE_DTD
      - name: XML_FEATURE_CONTEXT_BYTES
      - name: XML_FEATURE_MIN_SIZE
      - name: XML_FEATURE_SIZEOF_XML_CHAR
      - name: XML_FEATURE_SIZEOF_XML_LCHAR
      - name: XML_FEATURE_NS
      - name: XML_FEATURE_LARGE_SIZE
      - name: XML_FEATURE_ATTR_INFO
      item_type: enum
      name: XML_FeatureEnum
      pos:
        line_end: 1001
        line_start: 988
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    preproc_defs:
    - item_type: preproc_def
      name: Expat_INCLUDED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XML_TRUE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: ((XML_Bool)1)
    - item_type: preproc_def
      name: XML_FALSE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: ((XML_Bool)0)
    - item_type: preproc_def
      name: XML_GetErrorLineNumber
      pos:
        line_end: 943
        line_start: 942
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: XML_GetCurrentLineNumber
    - item_type: preproc_def
      name: XML_GetErrorColumnNumber
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: XML_GetCurrentColumnNumber
    - item_type: preproc_def
      name: XML_GetErrorByteIndex
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: XML_GetCurrentByteIndex
    - item_type: preproc_def
      name: XML_MAJOR_VERSION
      pos:
        line_end: 1016
        line_start: 1015
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XML_MINOR_VERSION
      pos:
        line_end: 1017
        line_start: 1016
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: '2'
    - item_type: preproc_def
      name: XML_MICRO_VERSION
      pos:
        line_end: 1018
        line_start: 1017
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type_or_value: '8'
    structs:
    - fields:
      - name: type
        type: enum XML_Content_Type
      - name: quant
        type: enum XML_Content_Quant
      - name: '*name'
        type: XML_Char
      - name: numchildren
        type: unsigned int
      - name: '*children'
        type: XML_Content
      item_type: struct
      name: XML_cp
      pos:
        line_end: 162
        line_start: 156
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: '*(*malloc_fcn)(size_t size)'
        type: void
      - name: '*(*realloc_fcn)(void *ptr, size_t size)'
        type: void
      - name: (*free_fcn)(void *ptr)
        type: void
      item_type: struct
      name: XML_Memory_Handling_Suite
      pos:
        line_end: 210
        line_start: 206
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: map[256]
        type: int
      - name: '*data'
        type: void
      - name: (XMLCALL *convert)(void *data, const char *s)
        type: int
      - name: (XMLCALL *release)(void *data)
        type: void
      item_type: struct
      name: XML_Encoding
      pos:
        line_end: 500
        line_start: 495
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: nameStart
        type: XML_Index
      - name: nameEnd
        type: XML_Index
      - name: valueStart
        type: XML_Index
      - name: valueEnd
        type: XML_Index
      item_type: struct
      name: XML_AttrInfo
      pos:
        line_end: 735
        line_start: 730
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: parsing
        type: enum XML_Parsing
      - name: finalBuffer
        type: XML_Bool
      item_type: struct
      name: XML_ParsingStatus
      pos:
        line_end: 819
        line_start: 816
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: major
        type: int
      - name: minor
        type: int
      - name: micro
        type: int
      item_type: struct
      name: XML_Expat_Version
      pos:
        line_end: 979
        line_start: 975
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    - fields:
      - name: feature
        type: enum XML_FeatureEnum
      - name: '*name'
        type: XML_LChar
      - name: value
        type: long int
      item_type: struct
      name: XML_Feature
      pos:
        line_end: 1007
        line_start: 1003
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
    typedefs:
    - item_type: typedef
      name: '*XML_Parser'
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: XML_ParserStruct
    - item_type: typedef
      name: XML_Bool
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: unsigned char
    - item_type: typedef
      name: XML_Content
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: XML_cp
    - item_type: typedef
      name: "(XMLCALL *XML_ElementDeclHandler)(void *userData,\n                                              const
        XML_Char *name,\n                                              XML_Content
        *model)"
      pos:
        line_end: 170
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_AttlistDeclHandler)(\n    void *userData, const XML_Char
        *elname, const XML_Char *attname,\n    const XML_Char *att_type, const XML_Char
        *dflt, int isrequired)"
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_XmlDeclHandler)(void *userData,\n                                          const
        XML_Char *version,\n                                          const XML_Char
        *encoding,\n                                          int standalone)"
      pos:
        line_end: 201
        line_start: 198
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_StartElementHandler)(void *userData,\n                                               const
        XML_Char *name,\n                                               const XML_Char
        **atts)"
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_EndElementHandler)(void *userData,\n                                             const
        XML_Char *name)"
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_CharacterDataHandler)(void *userData,\n                                                const
        XML_Char *s, int len)"
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_ProcessingInstructionHandler)(void *userData,\n                                                        const
        XML_Char *target,\n                                                        const
        XML_Char *data)"
      pos:
        line_end: 275
        line_start: 273
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: (XMLCALL *XML_CommentHandler)(void *userData, const XML_Char *data)
      pos:
        line_end: 278
        line_start: 278
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: (XMLCALL *XML_StartCdataSectionHandler)(void *userData)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: (XMLCALL *XML_EndCdataSectionHandler)(void *userData)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_DefaultHandler)(void *userData, const XML_Char *s,\n                                          int
        len)"
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_StartDoctypeDeclHandler)(void *userData,\n                                                   const
        XML_Char *doctypeName,\n                                                   const
        XML_Char *sysid,\n                                                   const
        XML_Char *pubid,\n                                                   int has_internal_subset)"
      pos:
        line_end: 306
        line_start: 302
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_EntityDeclHandler)(\n    void *userData, const XML_Char
        *entityName, int is_parameter_entity,\n    const XML_Char *value, int value_length,
        const XML_Char *base,\n    const XML_Char *systemId, const XML_Char *publicId,\n
        \   const XML_Char *notationName)"
      pos:
        line_end: 336
        line_start: 332
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_UnparsedEntityDeclHandler)(\n    void *userData, const
        XML_Char *entityName, const XML_Char *base,\n    const XML_Char *systemId,
        const XML_Char *publicId,\n    const XML_Char *notationName)"
      pos:
        line_end: 353
        line_start: 350
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_NotationDeclHandler)(void *userData,\n                                               const
        XML_Char *notationName,\n                                               const
        XML_Char *base,\n                                               const XML_Char
        *systemId,\n                                               const XML_Char
        *publicId)"
      pos:
        line_end: 363
        line_start: 359
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_StartNamespaceDeclHandler)(void *userData,\n                                                     const
        XML_Char *prefix,\n                                                     const
        XML_Char *uri)"
      pos:
        line_end: 373
        line_start: 371
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_EndNamespaceDeclHandler)(void *userData,\n                                                   const
        XML_Char *prefix)"
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: (XMLCALL *XML_NotStandaloneHandler)(void *userData)
      pos:
        line_end: 387
        line_start: 387
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: int
    - item_type: typedef
      name: "(XMLCALL *XML_ExternalEntityRefHandler)(XML_Parser parser,\n                                                   const
        XML_Char *context,\n                                                   const
        XML_Char *base,\n                                                   const
        XML_Char *systemId,\n                                                   const
        XML_Char *publicId)"
      pos:
        line_end: 427
        line_start: 423
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: int
    - item_type: typedef
      name: "(XMLCALL *XML_SkippedEntityHandler)(void *userData,\n                                                const
        XML_Char *entityName,\n                                                int
        is_parameter_entity)"
      pos:
        line_end: 441
        line_start: 439
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: void
    - item_type: typedef
      name: "(XMLCALL *XML_UnknownEncodingHandler)(void *encodingHandlerData,\n                                                 const
        XML_Char *name,\n                                                 XML_Encoding
        *info)"
      pos:
        line_end: 519
        line_start: 517
        source_file: /src/Python-3.8.3/Modules/expat/expat.h
      type: int
    union: []
- function_names:
  - XML_ATTR_ALLOC_SIZE
  - XMLPARSEAPI
  source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Expat_External_INCLUDED
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: '1'
    - item_type: preproc_def
      name: XMLCALL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: __cdecl
    - item_type: preproc_def
      name: XMLCALL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: __attribute__((cdecl))
    - item_type: preproc_def
      name: XMLIMPORT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: XML_ENABLE_VISIBILITY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: '0'
    - item_type: preproc_def
      name: XMLIMPORT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: __attribute__((visibility("default")))
    - item_type: preproc_def
      name: XML_ATTR_MALLOC
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type_or_value: __attribute__((__malloc__))
    structs: []
    typedefs:
    - item_type: typedef
      name: XML_Char
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: wchar_t
    - item_type: typedef
      name: XML_LChar
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: wchar_t
    - item_type: typedef
      name: XML_Char
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: unsigned short
    - item_type: typedef
      name: XML_LChar
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: char
    - item_type: typedef
      name: XML_Char
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: char
    - item_type: typedef
      name: XML_LChar
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: char
    - item_type: typedef
      name: XML_Index
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: long long
    - item_type: typedef
      name: XML_Size
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: unsigned long long
    - item_type: typedef
      name: XML_Index
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: long
    - item_type: typedef
      name: XML_Size
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/Python-3.8.3/Modules/expat/expat_external.h
      type: unsigned long
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/expat/ascii.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASCII_A
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x41'
    - item_type: preproc_def
      name: ASCII_B
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x42'
    - item_type: preproc_def
      name: ASCII_C
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x43'
    - item_type: preproc_def
      name: ASCII_D
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x44'
    - item_type: preproc_def
      name: ASCII_E
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x45'
    - item_type: preproc_def
      name: ASCII_F
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x46'
    - item_type: preproc_def
      name: ASCII_G
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x47'
    - item_type: preproc_def
      name: ASCII_H
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x48'
    - item_type: preproc_def
      name: ASCII_I
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x49'
    - item_type: preproc_def
      name: ASCII_J
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4A'
    - item_type: preproc_def
      name: ASCII_K
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4B'
    - item_type: preproc_def
      name: ASCII_L
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4C'
    - item_type: preproc_def
      name: ASCII_M
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4D'
    - item_type: preproc_def
      name: ASCII_N
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4E'
    - item_type: preproc_def
      name: ASCII_O
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x4F'
    - item_type: preproc_def
      name: ASCII_P
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x50'
    - item_type: preproc_def
      name: ASCII_Q
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x51'
    - item_type: preproc_def
      name: ASCII_R
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x52'
    - item_type: preproc_def
      name: ASCII_S
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x53'
    - item_type: preproc_def
      name: ASCII_T
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x54'
    - item_type: preproc_def
      name: ASCII_U
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x55'
    - item_type: preproc_def
      name: ASCII_V
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x56'
    - item_type: preproc_def
      name: ASCII_W
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x57'
    - item_type: preproc_def
      name: ASCII_X
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x58'
    - item_type: preproc_def
      name: ASCII_Y
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x59'
    - item_type: preproc_def
      name: ASCII_Z
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x5A'
    - item_type: preproc_def
      name: ASCII_a
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x61'
    - item_type: preproc_def
      name: ASCII_b
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x62'
    - item_type: preproc_def
      name: ASCII_c
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x63'
    - item_type: preproc_def
      name: ASCII_d
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x64'
    - item_type: preproc_def
      name: ASCII_e
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x65'
    - item_type: preproc_def
      name: ASCII_f
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x66'
    - item_type: preproc_def
      name: ASCII_g
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x67'
    - item_type: preproc_def
      name: ASCII_h
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x68'
    - item_type: preproc_def
      name: ASCII_i
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x69'
    - item_type: preproc_def
      name: ASCII_j
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6A'
    - item_type: preproc_def
      name: ASCII_k
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6B'
    - item_type: preproc_def
      name: ASCII_l
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6C'
    - item_type: preproc_def
      name: ASCII_m
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6D'
    - item_type: preproc_def
      name: ASCII_n
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6E'
    - item_type: preproc_def
      name: ASCII_o
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x6F'
    - item_type: preproc_def
      name: ASCII_p
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x70'
    - item_type: preproc_def
      name: ASCII_q
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x71'
    - item_type: preproc_def
      name: ASCII_r
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x72'
    - item_type: preproc_def
      name: ASCII_s
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x73'
    - item_type: preproc_def
      name: ASCII_t
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x74'
    - item_type: preproc_def
      name: ASCII_u
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x75'
    - item_type: preproc_def
      name: ASCII_v
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x76'
    - item_type: preproc_def
      name: ASCII_w
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x77'
    - item_type: preproc_def
      name: ASCII_x
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x78'
    - item_type: preproc_def
      name: ASCII_y
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x79'
    - item_type: preproc_def
      name: ASCII_z
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x7A'
    - item_type: preproc_def
      name: ASCII_0
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: ASCII_1
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x31'
    - item_type: preproc_def
      name: ASCII_2
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x32'
    - item_type: preproc_def
      name: ASCII_3
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x33'
    - item_type: preproc_def
      name: ASCII_4
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x34'
    - item_type: preproc_def
      name: ASCII_5
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x35'
    - item_type: preproc_def
      name: ASCII_6
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x36'
    - item_type: preproc_def
      name: ASCII_7
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x37'
    - item_type: preproc_def
      name: ASCII_8
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x38'
    - item_type: preproc_def
      name: ASCII_9
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x39'
    - item_type: preproc_def
      name: ASCII_TAB
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: ASCII_SPACE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ASCII_EXCL
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x21'
    - item_type: preproc_def
      name: ASCII_QUOT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x22'
    - item_type: preproc_def
      name: ASCII_AMP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x26'
    - item_type: preproc_def
      name: ASCII_APOS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x27'
    - item_type: preproc_def
      name: ASCII_MINUS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x2D'
    - item_type: preproc_def
      name: ASCII_PERIOD
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x2E'
    - item_type: preproc_def
      name: ASCII_COLON
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x3A'
    - item_type: preproc_def
      name: ASCII_SEMI
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x3B'
    - item_type: preproc_def
      name: ASCII_LT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x3C'
    - item_type: preproc_def
      name: ASCII_EQUALS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x3D'
    - item_type: preproc_def
      name: ASCII_GT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x3E'
    - item_type: preproc_def
      name: ASCII_LSQB
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x5B'
    - item_type: preproc_def
      name: ASCII_RSQB
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x5D'
    - item_type: preproc_def
      name: ASCII_UNDERSCORE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x5F'
    - item_type: preproc_def
      name: ASCII_LPAREN
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x28'
    - item_type: preproc_def
      name: ASCII_RPAREN
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x29'
    - item_type: preproc_def
      name: ASCII_FF
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: ASCII_SLASH
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x2F'
    - item_type: preproc_def
      name: ASCII_HASH
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x23'
    - item_type: preproc_def
      name: ASCII_PIPE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x7C'
    - item_type: preproc_def
      name: ASCII_COMMA
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/expat/ascii.h
      type_or_value: '0x2C'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _sqlite3_result_error
  - pysqlite_connection_init
  - pysqlite_do_all_statements
  - pysqlite_connection_dealloc
  - pysqlite_connection_register_cursor
  - pysqlite_connection_cursor
  - pysqlite_connection_close
  - pysqlite_check_connection
  - _pysqlite_connection_begin
  - pysqlite_connection_commit
  - pysqlite_connection_rollback
  - _pysqlite_set_result
  - _pysqlite_build_py_params
  - _pysqlite_func_callback
  - _pysqlite_step_callback
  - _pysqlite_final_callback
  - _pysqlite_drop_unused_statement_references
  - _pysqlite_drop_unused_cursor_references
  - _destructor
  - pysqlite_connection_create_function
  - pysqlite_connection_create_aggregate
  - _authorizer_callback
  - _progress_handler
  - _trace_callback
  - pysqlite_connection_set_authorizer
  - pysqlite_connection_set_progress_handler
  - pysqlite_connection_set_trace_callback
  - pysqlite_enable_load_extension
  - pysqlite_load_extension
  - pysqlite_check_thread
  - pysqlite_connection_get_isolation_level
  - pysqlite_connection_get_total_changes
  - pysqlite_connection_get_in_transaction
  - pysqlite_connection_set_isolation_level
  - pysqlite_connection_call
  - pysqlite_connection_execute
  - pysqlite_connection_executemany
  - pysqlite_connection_executescript
  - pysqlite_collation_callback
  - pysqlite_connection_interrupt
  - pysqlite_connection_iterdump
  - pysqlite_connection_backup
  - if
  - pysqlite_connection_create_collation
  - pysqlite_connection_enter
  - pysqlite_connection_exit
  - pysqlite_connection_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/connection.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ACTION_FINALIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_sqlite/connection.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ACTION_RESET
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_sqlite/connection.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PSYCOPG_MICROPROTOCOLS_H
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MICROPROTOCOLS_GETQUOTED_NAME
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
      type_or_value: '"getquoted"'
    - item_type: preproc_def
      name: MICROPROTOCOLS_GETSTRING_NAME
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
      type_or_value: '"getstring"'
    - item_type: preproc_def
      name: MICROPROTOCOLS_GETBINARY_NAME
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
      type_or_value: '"getbinary"'
    - item_type: preproc_def
      name: pysqlite_adapt_doc
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.h
      type_or_value: '"adapt(obj, protocol, alternate) -> adapt obj to given protocol.
        Non-standard."'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNKNOWN
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.h
      type_or_value: (-1)
    structs:
    - fields: []
      item_type: struct
      name: pysqlite_PrepareProtocol
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.h
    typedefs: []
    union: []
- function_names:
  - pysqlite_cursor_init
  - pysqlite_cursor_dealloc
  - _pysqlite_get_converter
  - pysqlite_build_row_cast_map
  - _pysqlite_build_column_name
  - _pysqlite_fetch_one_row
  - check_cursor
  - _pysqlite_query_execute
  - pysqlite_cursor_execute
  - pysqlite_cursor_executemany
  - pysqlite_cursor_executescript
  - pysqlite_cursor_iternext
  - pysqlite_cursor_fetchone
  - pysqlite_cursor_fetchmany
  - pysqlite_cursor_fetchall
  - pysqlite_noop
  - pysqlite_cursor_close
  - pysqlite_cursor_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYSQLITE_VERSION
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_sqlite/module.h
      type_or_value: '"2.6.0"'
    - item_type: preproc_def
      name: PARSE_DECLTYPES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_sqlite/module.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PARSE_COLNAMES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/_sqlite/module.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pysqlite_row_dealloc
  - pysqlite_row_new
  - pysqlite_row_item
  - equal_ignore_case
  - pysqlite_row_subscript
  - pysqlite_row_length
  - pysqlite_row_keys
  - pysqlite_iter
  - pysqlite_row_hash
  - pysqlite_row_richcompare
  - pysqlite_row_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/row.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SQLITE3_CLOSE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/_sqlite/util.h
      type_or_value: sqlite3_close_v2
    - item_type: preproc_def
      name: SQLITE3_CLOSE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/_sqlite/util.h
      type_or_value: sqlite3_close
    structs: []
    typedefs: []
    union: []
- function_names:
  - pysqlite_step
  - _pysqlite_seterror
  - _pysqlite_long_from_int64
  - _pysqlite_long_as_int64
  source_file: /src/Python-3.8.3/Modules/_sqlite/util.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IS_LITTLE_ENDIAN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_sqlite/util.c
      type_or_value: '0'
    - item_type: preproc_def
      name: IS_LITTLE_ENDIAN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/_sqlite/util.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - module_connect
  - module_complete
  - module_enable_shared_cache
  - module_register_adapter
  - module_register_converter
  - enable_callback_tracebacks
  - converters_init
  - PyInit__sqlite3
  source_file: /src/Python-3.8.3/Modules/_sqlite/module.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*constant_name'
        type: char
      - name: constant_value
        type: int
      item_type: struct
      name: _IntConstantPair
      pos:
        line_end: 273
        line_start: 270
        source_file: /src/Python-3.8.3/Modules/_sqlite/module.c
    typedefs:
    - item_type: typedef
      name: IntConstantPair
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/Python-3.8.3/Modules/_sqlite/module.c
      type: _IntConstantPair
    union: []
- function_names:
  - pysqlite_prepare_protocol_init
  - pysqlite_prepare_protocol_dealloc
  - pysqlite_prepare_protocol_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/prepare_protocol.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/cache.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* key'
        type: PyObject_HEAD
      - name: '* data'
        type: PyObject
      - name: count
        type: long
      - name: '* prev'
        type: struct _pysqlite_Node
      - name: '* next'
        type: struct _pysqlite_Node
      item_type: struct
      name: _pysqlite_Node
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_sqlite/cache.h
    - fields:
      - name: size
        type: PyObject_HEAD
      - name: '* mapping'
        type: PyObject
      - name: '* factory'
        type: PyObject
      - name: '* first'
        type: pysqlite_Node
      - name: '* last'
        type: pysqlite_Node
      - name: decref_factory
        type: int
      item_type: struct
      name: pysqlite_Cache
      pos:
        line_end: 59
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/_sqlite/cache.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNKNOWN
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.h
      type_or_value: (-1)
    structs:
    - fields:
      - name: '* connection'
        type: PyObject_HEAD
      - name: '* description'
        type: PyObject
      - name: '* row_cast_map'
        type: PyObject
      - name: arraysize
        type: int
      - name: '* lastrowid'
        type: PyObject
      - name: rowcount
        type: long
      - name: '* row_factory'
        type: PyObject
      - name: '* statement'
        type: pysqlite_Statement
      - name: closed
        type: int
      - name: reset
        type: int
      - name: locked
        type: int
      - name: initialized
        type: int
      - name: '* next_row'
        type: PyObject
      - name: '* in_weakreflist'
        type: PyObject
      item_type: struct
      name: pysqlite_Cursor
      pos:
        line_end: 52
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_sqlite/cursor.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/connection.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* db'
        type: PyObject_HEAD
      - name: detect_types
        type: int
      - name: timeout
        type: double
      - name: timeout_started
        type: double
      - name: '* isolation_level'
        type: PyObject
      - name: '* begin_statement'
        type: char
      - name: check_same_thread
        type: int
      - name: initialized
        type: int
      - name: thread_ident
        type: unsigned long
      - name: '* statement_cache'
        type: pysqlite_Cache
      - name: '* statements'
        type: PyObject
      - name: '* cursors'
        type: PyObject
      - name: created_statements
        type: int
      - name: created_cursors
        type: int
      - name: '* row_factory'
        type: PyObject
      - name: '* text_factory'
        type: PyObject
      - name: '* function_pinboard_trace_callback'
        type: PyObject
      - name: '* function_pinboard_progress_handler'
        type: PyObject
      - name: '* function_pinboard_authorizer_cb'
        type: PyObject
      - name: '* collations'
        type: PyObject
      - name: '* Warning'
        type: PyObject
      - name: '* Error'
        type: PyObject
      - name: '* InterfaceError'
        type: PyObject
      - name: '* DatabaseError'
        type: PyObject
      - name: '* DataError'
        type: PyObject
      - name: '* OperationalError'
        type: PyObject
      - name: '* IntegrityError'
        type: PyObject
      - name: '* InternalError'
        type: PyObject
      - name: '* ProgrammingError'
        type: PyObject
      - name: '* NotSupportedError'
        type: PyObject
      item_type: struct
      name: pysqlite_Connection
      pos:
        line_end: 106
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_sqlite/connection.h
    typedefs: []
    union: []
- function_names:
  - pysqlite_statement_create
  - pysqlite_statement_bind_parameter
  - _need_adapt
  - pysqlite_statement_bind_parameters
  - if
  - pysqlite_statement_finalize
  - pysqlite_statement_reset
  - pysqlite_statement_mark_dirty
  - pysqlite_statement_dealloc
  - pysqlite_check_remaining_sql
  - pysqlite_statement_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/statement.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pysqlite_microprotocols_init
  - pysqlite_microprotocols_add
  - pysqlite_microprotocols_adapt
  - pysqlite_adapt
  source_file: /src/Python-3.8.3/Modules/_sqlite/microprotocols.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/row.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* data'
        type: PyObject_HEAD
      - name: '* description'
        type: PyObject
      item_type: struct
      name: _Row
      pos:
        line_end: 33
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/_sqlite/row.h
    typedefs: []
    union: []
- function_names:
  - pysqlite_new_node
  - pysqlite_node_dealloc
  - pysqlite_cache_init
  - pysqlite_cache_dealloc
  - pysqlite_cache_get
  - pysqlite_cache_display
  - pysqlite_cache_setup_types
  source_file: /src/Python-3.8.3/Modules/_sqlite/cache.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_sqlite/statement.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYSQLITE_TOO_MUCH_SQL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_sqlite/statement.h
      type_or_value: (-100)
    - item_type: preproc_def
      name: PYSQLITE_SQL_WRONG_TYPE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_sqlite/statement.h
      type_or_value: (-101)
    structs:
    - fields:
      - name: '* db'
        type: PyObject_HEAD
      - name: '* st'
        type: sqlite3_stmt
      - name: '* sql'
        type: PyObject
      - name: in_use
        type: int
      - name: is_dml
        type: int
      - name: '* in_weakreflist'
        type: PyObject
      item_type: struct
      name: pysqlite_Statement
      pos:
        line_end: 43
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_sqlite/statement.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEM_HANDLE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: HANDLE
    - item_type: preproc_def
      name: SEM_VALUE_MAX
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: LONG_MAX
    - item_type: preproc_def
      name: HANDLE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: int
    - item_type: preproc_def
      name: SOCKET
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: int
    - item_type: preproc_def
      name: BOOL
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: int
    - item_type: preproc_def
      name: UINT32
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: uint32_t
    - item_type: preproc_def
      name: INT32
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '0'
    - item_type: preproc_def
      name: INVALID_HANDLE_VALUE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: SEM_VALUE_MAX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: sysconf(_SC_SEM_VALUE_MAX)
    - item_type: preproc_def
      name: SEM_VALUE_MAX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: _SEM_VALUE_MAX
    - item_type: preproc_def
      name: SEM_VALUE_MAX
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: _POSIX_SEM_VALUE_MAX
    - item_type: preproc_def
      name: SEM_VALUE_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: F_POINTER
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '"K"'
    - item_type: preproc_def
      name: T_POINTER
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_ULONGLONG
    - item_type: preproc_def
      name: F_HANDLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: F_POINTER
    - item_type: preproc_def
      name: T_HANDLE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_POINTER
    - item_type: preproc_def
      name: F_SEM_HANDLE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: F_HANDLE
    - item_type: preproc_def
      name: T_SEM_HANDLE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_HANDLE
    - item_type: preproc_def
      name: F_DWORD
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '"k"'
    - item_type: preproc_def
      name: T_DWORD
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_ULONG
    - item_type: preproc_def
      name: F_HANDLE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: T_HANDLE
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_INT
    - item_type: preproc_def
      name: F_SEM_HANDLE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: F_POINTER
    - item_type: preproc_def
      name: T_SEM_HANDLE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: T_POINTER
    - item_type: preproc_def
      name: MP_SUCCESS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (0)
    - item_type: preproc_def
      name: MP_STANDARD_ERROR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: MP_MEMORY_ERROR
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (-1001)
    - item_type: preproc_def
      name: MP_SOCKET_ERROR
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (-1002)
    - item_type: preproc_def
      name: MP_EXCEPTION_HAS_BEEN_SET
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type_or_value: (-1003)
    structs: []
    typedefs:
    - item_type: typedef
      name: '*SEM_HANDLE'
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.h
      type: sem_t
    union: []
- function_names:
  - _PyMp_SetError
  - multiprocessing_closesocket
  - multiprocessing_recv
  - multiprocessing_send
  - PyInit__multiprocessing
  - ADD_FLAG
  source_file: /src/Python-3.8.3/Modules/_multiprocessing/multiprocessing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _posixshmem_shm_open_impl
  - _posixshmem_shm_unlink_impl
  - PyInit__posixshmem
  source_file: /src/Python-3.8.3/Modules/_multiprocessing/posixshmem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ISMINE
  - SEM_CLEAR_ERROR
  - SEM_GET_LAST_ERROR
  - SEM_CREATE
  - SEM_CLOSE
  - SEM_GETVALUE
  - SEM_UNLINK
  - _GetSemaphoreValue
  - semlock_acquire
  - switch
  - semlock_release
  - SEM_GET_LAST_ERROR
  - SEM_CREATE
  - SEM_CLOSE
  - SEM_GETVALUE
  - SEM_UNLINK
  - sem_unlink
  - sem_timedwait
  - sem_timedwait_save
  - if
  - semlock_acquire
  - semlock_release
  - newsemlockobject
  - semlock_new
  - semlock_rebuild
  - semlock_dealloc
  - semlock_count
  - semlock_ismine
  - semlock_getvalue
  - semlock_iszero
  - semlock_afterfork
  - _PyMp_sem_unlink
  source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEM_FAILED
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: SEM_FAILED
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
      type_or_value: ((sem_t *)-1)
    structs:
    - fields:
      - name: SEM_HANDLE
        type: PyObject_HEAD
      - name: last_tid
        type: unsigned long
      - name: count
        type: int
      - name: maxvalue
        type: int
      - name: kind
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: SemLockObject
      pos:
        line_end: 21
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/semaphore.c
    typedefs: []
    union: []
- function_names:
  - _posixshmem_shm_open
  - _posixshmem_shm_unlink
  source_file: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _POSIXSHMEM_SHM_OPEN_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h
      type_or_value: '{"shm_open", (PyCFunction)(void(*)(void))_posixshmem_shm_open,
        METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_open__doc__},'
    - item_type: preproc_def
      name: _POSIXSHMEM_SHM_UNLINK_METHODDEF
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_multiprocessing/clinic/posixshmem.c.h
      type_or_value: '{"shm_unlink", (PyCFunction)(void(*)(void))_posixshmem_shm_unlink,
        METH_FASTCALL|METH_KEYWORDS, _posixshmem_shm_unlink__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - signal_alarm
  - signal_pause
  - signal_raise_signal
  - signal_signal
  - signal_getsignal
  - signal_strsignal
  - signal_siginterrupt
  - signal_setitimer
  - signal_getitimer
  - signal_pthread_sigmask
  - signal_sigpending
  - signal_sigwait
  - signal_valid_signals
  - signal_sigwaitinfo
  - signal_sigtimedwait
  - signal_pthread_kill
  source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIGNAL_ALARM_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"alarm", (PyCFunction)signal_alarm, METH_O, signal_alarm__doc__},'
    - item_type: preproc_def
      name: SIGNAL_PAUSE_METHODDEF
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"pause", (PyCFunction)signal_pause, METH_NOARGS, signal_pause__doc__},'
    - item_type: preproc_def
      name: SIGNAL_RAISE_SIGNAL_METHODDEF
      pos:
        line_end: 76
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"raise_signal", (PyCFunction)signal_raise_signal, METH_O, signal_raise_signal__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGNAL_METHODDEF
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"signal", (PyCFunction)(void(*)(void))signal_signal, METH_FASTCALL,
        signal_signal__doc__},'
    - item_type: preproc_def
      name: SIGNAL_GETSIGNAL_METHODDEF
      pos:
        line_end: 160
        line_start: 158
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"getsignal", (PyCFunction)signal_getsignal, METH_O, signal_getsignal__doc__},'
    - item_type: preproc_def
      name: SIGNAL_STRSIGNAL_METHODDEF
      pos:
        line_end: 196
        line_start: 194
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"strsignal", (PyCFunction)signal_strsignal, METH_O, signal_strsignal__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGINTERRUPT_METHODDEF
      pos:
        line_end: 234
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"siginterrupt", (PyCFunction)(void(*)(void))signal_siginterrupt,
        METH_FASTCALL, signal_siginterrupt__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SETITIMER_METHODDEF
      pos:
        line_end: 289
        line_start: 287
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"setitimer", (PyCFunction)(void(*)(void))signal_setitimer,
        METH_FASTCALL, signal_setitimer__doc__},'
    - item_type: preproc_def
      name: SIGNAL_GETITIMER_METHODDEF
      pos:
        line_end: 338
        line_start: 336
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"getitimer", (PyCFunction)signal_getitimer, METH_O, signal_getitimer__doc__},'
    - item_type: preproc_def
      name: SIGNAL_PTHREAD_SIGMASK_METHODDEF
      pos:
        line_end: 375
        line_start: 373
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"pthread_sigmask", (PyCFunction)(void(*)(void))signal_pthread_sigmask,
        METH_FASTCALL, signal_pthread_sigmask__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGPENDING_METHODDEF
      pos:
        line_end: 422
        line_start: 420
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"sigpending", (PyCFunction)signal_sigpending, METH_NOARGS,
        signal_sigpending__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGWAIT_METHODDEF
      pos:
        line_end: 448
        line_start: 446
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"sigwait", (PyCFunction)signal_sigwait, METH_O, signal_sigwait__doc__},'
    - item_type: preproc_def
      name: SIGNAL_VALID_SIGNALS_METHODDEF
      pos:
        line_end: 482
        line_start: 480
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"valid_signals", (PyCFunction)signal_valid_signals, METH_NOARGS,
        signal_valid_signals__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGWAITINFO_METHODDEF
      pos:
        line_end: 506
        line_start: 504
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"sigwaitinfo", (PyCFunction)signal_sigwaitinfo, METH_O, signal_sigwaitinfo__doc__},'
    - item_type: preproc_def
      name: SIGNAL_SIGTIMEDWAIT_METHODDEF
      pos:
        line_end: 539
        line_start: 537
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"sigtimedwait", (PyCFunction)(void(*)(void))signal_sigtimedwait,
        METH_FASTCALL, signal_sigtimedwait__doc__},'
    - item_type: preproc_def
      name: SIGNAL_PTHREAD_KILL_METHODDEF
      pos:
        line_end: 576
        line_start: 574
        source_file: /src/Python-3.8.3/Modules/clinic/signalmodule.c.h
      type_or_value: '{"pthread_kill", (PyCFunction)(void(*)(void))signal_pthread_kill,
        METH_FASTCALL, signal_pthread_kill__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _symtable_symtable
  source_file: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _SYMTABLE_SYMTABLE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/symtablemodule.c.h
      type_or_value: '{"symtable", (PyCFunction)(void(*)(void))_symtable_symtable,
        METH_FASTCALL, _symtable_symtable__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _elementtree_Element_append
  - _elementtree_Element_clear
  - _elementtree_Element___copy__
  - _elementtree_Element___deepcopy__
  - _elementtree_Element___sizeof__
  - _elementtree_Element___getstate__
  - _elementtree_Element_find
  - _elementtree_Element_findtext
  - _elementtree_Element_findall
  - _elementtree_Element_iterfind
  - _elementtree_Element_get
  - _elementtree_Element_getchildren
  - _elementtree_Element_iter
  - _elementtree_Element_getiterator
  - _elementtree_Element_itertext
  - _elementtree_Element_insert
  - _elementtree_Element_items
  - _elementtree_Element_keys
  - _elementtree_Element_makeelement
  - _elementtree_Element_remove
  - _elementtree_Element_set
  - _elementtree_TreeBuilder___init__
  - _elementtree__set_factories
  - _elementtree_TreeBuilder_pi
  - _elementtree_TreeBuilder_close
  - _elementtree_TreeBuilder_start
  - _elementtree_XMLParser___init__
  - _elementtree_XMLParser_close
  - _elementtree_XMLParser__setevents
  source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_APPEND_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"append", (PyCFunction)_elementtree_Element_append, METH_O,
        _elementtree_Element_append__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_CLEAR_METHODDEF
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"clear", (PyCFunction)_elementtree_Element_clear, METH_NOARGS,
        _elementtree_Element_clear__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT___COPY___METHODDEF
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"__copy__", (PyCFunction)_elementtree_Element___copy__, METH_NOARGS,
        _elementtree_Element___copy____doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT___DEEPCOPY___METHODDEF
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)_elementtree_Element___deepcopy__,
        METH_O, _elementtree_Element___deepcopy____doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT___SIZEOF___METHODDEF
      pos:
        line_end: 101
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)_elementtree_Element___sizeof__,
        METH_NOARGS, _elementtree_Element___sizeof____doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT___GETSTATE___METHODDEF
      pos:
        line_end: 128
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"__getstate__", (PyCFunction)_elementtree_Element___getstate__,
        METH_NOARGS, _elementtree_Element___getstate____doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT___SETSTATE___METHODDEF
      pos:
        line_end: 145
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"__setstate__", (PyCFunction)_elementtree_Element___setstate__,
        METH_O, _elementtree_Element___setstate____doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_EXTEND_METHODDEF
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"extend", (PyCFunction)_elementtree_Element_extend, METH_O,
        _elementtree_Element_extend__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_FIND_METHODDEF
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"find", (PyCFunction)(void(*)(void))_elementtree_Element_find,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_find__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_FINDTEXT_METHODDEF
      pos:
        line_end: 200
        line_start: 198
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"findtext", (PyCFunction)(void(*)(void))_elementtree_Element_findtext,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findtext__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_FINDALL_METHODDEF
      pos:
        line_end: 247
        line_start: 245
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"findall", (PyCFunction)(void(*)(void))_elementtree_Element_findall,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_findall__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_ITERFIND_METHODDEF
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"iterfind", (PyCFunction)(void(*)(void))_elementtree_Element_iterfind,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iterfind__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_GET_METHODDEF
      pos:
        line_end: 325
        line_start: 323
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_elementtree_Element_get,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_get__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_GETCHILDREN_METHODDEF
      pos:
        line_end: 364
        line_start: 362
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"getchildren", (PyCFunction)_elementtree_Element_getchildren,
        METH_NOARGS, _elementtree_Element_getchildren__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_ITER_METHODDEF
      pos:
        line_end: 381
        line_start: 379
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"iter", (PyCFunction)(void(*)(void))_elementtree_Element_iter,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_iter__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_GETITERATOR_METHODDEF
      pos:
        line_end: 417
        line_start: 415
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"getiterator", (PyCFunction)(void(*)(void))_elementtree_Element_getiterator,
        METH_FASTCALL|METH_KEYWORDS, _elementtree_Element_getiterator__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_ITERTEXT_METHODDEF
      pos:
        line_end: 453
        line_start: 451
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"itertext", (PyCFunction)_elementtree_Element_itertext, METH_NOARGS,
        _elementtree_Element_itertext__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_INSERT_METHODDEF
      pos:
        line_end: 470
        line_start: 468
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"insert", (PyCFunction)(void(*)(void))_elementtree_Element_insert,
        METH_FASTCALL, _elementtree_Element_insert__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_ITEMS_METHODDEF
      pos:
        line_end: 520
        line_start: 518
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"items", (PyCFunction)_elementtree_Element_items, METH_NOARGS,
        _elementtree_Element_items__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_KEYS_METHODDEF
      pos:
        line_end: 537
        line_start: 535
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"keys", (PyCFunction)_elementtree_Element_keys, METH_NOARGS,
        _elementtree_Element_keys__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_MAKEELEMENT_METHODDEF
      pos:
        line_end: 554
        line_start: 552
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"makeelement", (PyCFunction)(void(*)(void))_elementtree_Element_makeelement,
        METH_FASTCALL, _elementtree_Element_makeelement__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_REMOVE_METHODDEF
      pos:
        line_end: 584
        line_start: 582
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"remove", (PyCFunction)_elementtree_Element_remove, METH_O,
        _elementtree_Element_remove__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_ELEMENT_SET_METHODDEF
      pos:
        line_end: 612
        line_start: 610
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"set", (PyCFunction)(void(*)(void))_elementtree_Element_set,
        METH_FASTCALL, _elementtree_Element_set__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE__SET_FACTORIES_METHODDEF
      pos:
        line_end: 717
        line_start: 715
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"_set_factories", (PyCFunction)(void(*)(void))_elementtree__set_factories,
        METH_FASTCALL, _elementtree__set_factories__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_DATA_METHODDEF
      pos:
        line_end: 747
        line_start: 745
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"data", (PyCFunction)_elementtree_TreeBuilder_data, METH_O,
        _elementtree_TreeBuilder_data__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_END_METHODDEF
      pos:
        line_end: 755
        line_start: 753
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"end", (PyCFunction)_elementtree_TreeBuilder_end, METH_O, _elementtree_TreeBuilder_end__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_COMMENT_METHODDEF
      pos:
        line_end: 763
        line_start: 761
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"comment", (PyCFunction)_elementtree_TreeBuilder_comment, METH_O,
        _elementtree_TreeBuilder_comment__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_PI_METHODDEF
      pos:
        line_end: 771
        line_start: 769
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"pi", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_pi,
        METH_FASTCALL, _elementtree_TreeBuilder_pi__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_CLOSE_METHODDEF
      pos:
        line_end: 805
        line_start: 803
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"close", (PyCFunction)_elementtree_TreeBuilder_close, METH_NOARGS,
        _elementtree_TreeBuilder_close__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_TREEBUILDER_START_METHODDEF
      pos:
        line_end: 822
        line_start: 820
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"start", (PyCFunction)(void(*)(void))_elementtree_TreeBuilder_start,
        METH_FASTCALL, _elementtree_TreeBuilder_start__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_XMLPARSER_CLOSE_METHODDEF
      pos:
        line_end: 911
        line_start: 909
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"close", (PyCFunction)_elementtree_XMLParser_close, METH_NOARGS,
        _elementtree_XMLParser_close__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_XMLPARSER_FEED_METHODDEF
      pos:
        line_end: 928
        line_start: 926
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"feed", (PyCFunction)_elementtree_XMLParser_feed, METH_O, _elementtree_XMLParser_feed__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_XMLPARSER__PARSE_WHOLE_METHODDEF
      pos:
        line_end: 936
        line_start: 934
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"_parse_whole", (PyCFunction)_elementtree_XMLParser__parse_whole,
        METH_O, _elementtree_XMLParser__parse_whole__doc__},'
    - item_type: preproc_def
      name: _ELEMENTTREE_XMLPARSER__SETEVENTS_METHODDEF
      pos:
        line_end: 944
        line_start: 942
        source_file: /src/Python-3.8.3/Modules/clinic/_elementtree.c.h
      type_or_value: '{"_setevents", (PyCFunction)(void(*)(void))_elementtree_XMLParser__setevents,
        METH_FASTCALL, _elementtree_XMLParser__setevents__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pwd_getpwnam
  - pwd_getpwall
  source_file: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PWD_GETPWUID_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
      type_or_value: '{"getpwuid", (PyCFunction)pwd_getpwuid, METH_O, pwd_getpwuid__doc__},'
    - item_type: preproc_def
      name: PWD_GETPWNAM_METHODDEF
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
      type_or_value: '{"getpwnam", (PyCFunction)pwd_getpwnam, METH_O, pwd_getpwnam__doc__},'
    - item_type: preproc_def
      name: PWD_GETPWALL_METHODDEF
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/clinic/pwdmodule.c.h
      type_or_value: '{"getpwall", (PyCFunction)pwd_getpwall, METH_NOARGS, pwd_getpwall__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _ssl__SSLSocket_do_handshake
  - _ssl__test_decode_cert
  - _ssl__SSLSocket_getpeercert
  - _ssl__SSLSocket_shared_ciphers
  - _ssl__SSLSocket_cipher
  - _ssl__SSLSocket_version
  - _ssl__SSLSocket_selected_npn_protocol
  - _ssl__SSLSocket_selected_alpn_protocol
  - _ssl__SSLSocket_compression
  - _ssl__SSLSocket_write
  - _ssl__SSLSocket_pending
  - _ssl__SSLSocket_read
  - _ssl__SSLSocket_shutdown
  - _ssl__SSLSocket_get_channel_binding
  - _ssl__SSLSocket_verify_client_post_handshake
  - _ssl__SSLContext
  - _ssl__SSLContext_set_ciphers
  - _ssl__SSLContext_get_ciphers
  - _ssl__SSLContext__set_npn_protocols
  - _ssl__SSLContext__set_alpn_protocols
  - _ssl__SSLContext_load_cert_chain
  - _ssl__SSLContext_load_verify_locations
  - _ssl__SSLContext__wrap_socket
  - _ssl__SSLContext__wrap_bio
  - _ssl__SSLContext_session_stats
  - _ssl__SSLContext_set_default_verify_paths
  - _ssl__SSLContext_cert_store_stats
  - _ssl__SSLContext_get_ca_certs
  - _ssl_MemoryBIO
  - _ssl_MemoryBIO_read
  - _ssl_MemoryBIO_write
  - _ssl_MemoryBIO_write_eof
  - _ssl_RAND_add
  - _ssl_RAND_bytes
  - _ssl_RAND_pseudo_bytes
  - _ssl_RAND_status
  - _ssl_RAND_egd
  - _ssl_get_default_verify_paths
  - _ssl_txt2obj
  - _ssl_nid2obj
  - _ssl_enum_certificates
  - _ssl_enum_crls
  source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_DO_HANDSHAKE_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"do_handshake", (PyCFunction)_ssl__SSLSocket_do_handshake,
        METH_NOARGS, _ssl__SSLSocket_do_handshake__doc__},'
    - item_type: preproc_def
      name: _SSL__TEST_DECODE_CERT_METHODDEF
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"_test_decode_cert", (PyCFunction)_ssl__test_decode_cert, METH_O,
        _ssl__test_decode_cert__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_GETPEERCERT_METHODDEF
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"getpeercert", (PyCFunction)(void(*)(void))_ssl__SSLSocket_getpeercert,
        METH_FASTCALL, _ssl__SSLSocket_getpeercert__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_SHARED_CIPHERS_METHODDEF
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"shared_ciphers", (PyCFunction)_ssl__SSLSocket_shared_ciphers,
        METH_NOARGS, _ssl__SSLSocket_shared_ciphers__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_CIPHER_METHODDEF
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"cipher", (PyCFunction)_ssl__SSLSocket_cipher, METH_NOARGS,
        _ssl__SSLSocket_cipher__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_VERSION_METHODDEF
      pos:
        line_end: 131
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"version", (PyCFunction)_ssl__SSLSocket_version, METH_NOARGS,
        _ssl__SSLSocket_version__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_SELECTED_NPN_PROTOCOL_METHODDEF
      pos:
        line_end: 150
        line_start: 148
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"selected_npn_protocol", (PyCFunction)_ssl__SSLSocket_selected_npn_protocol,
        METH_NOARGS, _ssl__SSLSocket_selected_npn_protocol__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_SELECTED_ALPN_PROTOCOL_METHODDEF
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"selected_alpn_protocol", (PyCFunction)_ssl__SSLSocket_selected_alpn_protocol,
        METH_NOARGS, _ssl__SSLSocket_selected_alpn_protocol__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_COMPRESSION_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"compression", (PyCFunction)_ssl__SSLSocket_compression, METH_NOARGS,
        _ssl__SSLSocket_compression__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_WRITE_METHODDEF
      pos:
        line_end: 210
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"write", (PyCFunction)_ssl__SSLSocket_write, METH_O, _ssl__SSLSocket_write__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_PENDING_METHODDEF
      pos:
        line_end: 246
        line_start: 244
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"pending", (PyCFunction)_ssl__SSLSocket_pending, METH_NOARGS,
        _ssl__SSLSocket_pending__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_READ_METHODDEF
      pos:
        line_end: 262
        line_start: 260
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"read", (PyCFunction)_ssl__SSLSocket_read, METH_VARARGS, _ssl__SSLSocket_read__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_SHUTDOWN_METHODDEF
      pos:
        line_end: 310
        line_start: 308
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"shutdown", (PyCFunction)_ssl__SSLSocket_shutdown, METH_NOARGS,
        _ssl__SSLSocket_shutdown__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_GET_CHANNEL_BINDING_METHODDEF
      pos:
        line_end: 332
        line_start: 330
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"get_channel_binding", (PyCFunction)(void(*)(void))_ssl__SSLSocket_get_channel_binding,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLSocket_get_channel_binding__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLSOCKET_VERIFY_CLIENT_POST_HANDSHAKE_METHODDEF
      pos:
        line_end: 382
        line_start: 380
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"verify_client_post_handshake", (PyCFunction)_ssl__SSLSocket_verify_client_post_handshake,
        METH_NOARGS, _ssl__SSLSocket_verify_client_post_handshake__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_SET_CIPHERS_METHODDEF
      pos:
        line_end: 430
        line_start: 428
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"set_ciphers", (PyCFunction)_ssl__SSLContext_set_ciphers, METH_O,
        _ssl__SSLContext_set_ciphers__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_GET_CIPHERS_METHODDEF
      pos:
        line_end: 468
        line_start: 466
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"get_ciphers", (PyCFunction)_ssl__SSLContext_get_ciphers, METH_NOARGS,
        _ssl__SSLContext_get_ciphers__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT__SET_NPN_PROTOCOLS_METHODDEF
      pos:
        line_end: 487
        line_start: 485
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"_set_npn_protocols", (PyCFunction)_ssl__SSLContext__set_npn_protocols,
        METH_O, _ssl__SSLContext__set_npn_protocols__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT__SET_ALPN_PROTOCOLS_METHODDEF
      pos:
        line_end: 523
        line_start: 521
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"_set_alpn_protocols", (PyCFunction)_ssl__SSLContext__set_alpn_protocols,
        METH_O, _ssl__SSLContext__set_alpn_protocols__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_LOAD_CERT_CHAIN_METHODDEF
      pos:
        line_end: 559
        line_start: 557
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"load_cert_chain", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_cert_chain,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_cert_chain__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_LOAD_VERIFY_LOCATIONS_METHODDEF
      pos:
        line_end: 605
        line_start: 603
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"load_verify_locations", (PyCFunction)(void(*)(void))_ssl__SSLContext_load_verify_locations,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_load_verify_locations__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_LOAD_DH_PARAMS_METHODDEF
      pos:
        line_end: 658
        line_start: 656
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"load_dh_params", (PyCFunction)_ssl__SSLContext_load_dh_params,
        METH_O, _ssl__SSLContext_load_dh_params__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT__WRAP_SOCKET_METHODDEF
      pos:
        line_end: 667
        line_start: 665
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"_wrap_socket", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_socket,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_socket__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT__WRAP_BIO_METHODDEF
      pos:
        line_end: 740
        line_start: 738
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"_wrap_bio", (PyCFunction)(void(*)(void))_ssl__SSLContext__wrap_bio,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext__wrap_bio__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_SESSION_STATS_METHODDEF
      pos:
        line_end: 819
        line_start: 817
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"session_stats", (PyCFunction)_ssl__SSLContext_session_stats,
        METH_NOARGS, _ssl__SSLContext_session_stats__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_SET_DEFAULT_VERIFY_PATHS_METHODDEF
      pos:
        line_end: 836
        line_start: 834
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"set_default_verify_paths", (PyCFunction)_ssl__SSLContext_set_default_verify_paths,
        METH_NOARGS, _ssl__SSLContext_set_default_verify_paths__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_SET_ECDH_CURVE_METHODDEF
      pos:
        line_end: 855
        line_start: 853
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"set_ecdh_curve", (PyCFunction)_ssl__SSLContext_set_ecdh_curve,
        METH_O, _ssl__SSLContext_set_ecdh_curve__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_CERT_STORE_STATS_METHODDEF
      pos:
        line_end: 872
        line_start: 870
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"cert_store_stats", (PyCFunction)_ssl__SSLContext_cert_store_stats,
        METH_NOARGS, _ssl__SSLContext_cert_store_stats__doc__},'
    - item_type: preproc_def
      name: _SSL__SSLCONTEXT_GET_CA_CERTS_METHODDEF
      pos:
        line_end: 896
        line_start: 894
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"get_ca_certs", (PyCFunction)(void(*)(void))_ssl__SSLContext_get_ca_certs,
        METH_FASTCALL|METH_KEYWORDS, _ssl__SSLContext_get_ca_certs__doc__},'
    - item_type: preproc_def
      name: _SSL_MEMORYBIO_READ_METHODDEF
      pos:
        line_end: 963
        line_start: 961
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_ssl_MemoryBIO_read, METH_FASTCALL,
        _ssl_MemoryBIO_read__doc__},'
    - item_type: preproc_def
      name: _SSL_MEMORYBIO_WRITE_METHODDEF
      pos:
        line_end: 1005
        line_start: 1003
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"write", (PyCFunction)_ssl_MemoryBIO_write, METH_O, _ssl_MemoryBIO_write__doc__},'
    - item_type: preproc_def
      name: _SSL_MEMORYBIO_WRITE_EOF_METHODDEF
      pos:
        line_end: 1043
        line_start: 1041
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"write_eof", (PyCFunction)_ssl_MemoryBIO_write_eof, METH_NOARGS,
        _ssl_MemoryBIO_write_eof__doc__},'
    - item_type: preproc_def
      name: _SSL_RAND_ADD_METHODDEF
      pos:
        line_end: 1064
        line_start: 1062
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"RAND_add", (PyCFunction)(void(*)(void))_ssl_RAND_add, METH_FASTCALL,
        _ssl_RAND_add__doc__},'
    - item_type: preproc_def
      name: _SSL_RAND_BYTES_METHODDEF
      pos:
        line_end: 1124
        line_start: 1122
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"RAND_bytes", (PyCFunction)_ssl_RAND_bytes, METH_O, _ssl_RAND_bytes__doc__},'
    - item_type: preproc_def
      name: _SSL_RAND_PSEUDO_BYTES_METHODDEF
      pos:
        line_end: 1160
        line_start: 1158
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"RAND_pseudo_bytes", (PyCFunction)_ssl_RAND_pseudo_bytes, METH_O,
        _ssl_RAND_pseudo_bytes__doc__},'
    - item_type: preproc_def
      name: _SSL_RAND_STATUS_METHODDEF
      pos:
        line_end: 1196
        line_start: 1194
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"RAND_status", (PyCFunction)_ssl_RAND_status, METH_NOARGS,
        _ssl_RAND_status__doc__},'
    - item_type: preproc_def
      name: _SSL_RAND_EGD_METHODDEF
      pos:
        line_end: 1219
        line_start: 1217
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"RAND_egd", (PyCFunction)_ssl_RAND_egd, METH_O, _ssl_RAND_egd__doc__},'
    - item_type: preproc_def
      name: _SSL_GET_DEFAULT_VERIFY_PATHS_METHODDEF
      pos:
        line_end: 1250
        line_start: 1248
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"get_default_verify_paths", (PyCFunction)_ssl_get_default_verify_paths,
        METH_NOARGS, _ssl_get_default_verify_paths__doc__},'
    - item_type: preproc_def
      name: _SSL_TXT2OBJ_METHODDEF
      pos:
        line_end: 1271
        line_start: 1269
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"txt2obj", (PyCFunction)(void(*)(void))_ssl_txt2obj, METH_FASTCALL|METH_KEYWORDS,
        _ssl_txt2obj__doc__},'
    - item_type: preproc_def
      name: _SSL_NID2OBJ_METHODDEF
      pos:
        line_end: 1325
        line_start: 1323
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"nid2obj", (PyCFunction)_ssl_nid2obj, METH_O, _ssl_nid2obj__doc__},'
    - item_type: preproc_def
      name: _SSL_ENUM_CERTIFICATES_METHODDEF
      pos:
        line_end: 1366
        line_start: 1364
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"enum_certificates", (PyCFunction)(void(*)(void))_ssl_enum_certificates,
        METH_FASTCALL|METH_KEYWORDS, _ssl_enum_certificates__doc__},'
    - item_type: preproc_def
      name: _SSL_ENUM_CRLS_METHODDEF
      pos:
        line_end: 1419
        line_start: 1417
        source_file: /src/Python-3.8.3/Modules/clinic/_ssl.c.h
      type_or_value: '{"enum_crls", (PyCFunction)(void(*)(void))_ssl_enum_crls, METH_FASTCALL|METH_KEYWORDS,
        _ssl_enum_crls__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _opcode_stack_effect
  source_file: /src/Python-3.8.3/Modules/clinic/_opcode.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _OPCODE_STACK_EFFECT_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_opcode.c.h
      type_or_value: '{"stack_effect", (PyCFunction)(void(*)(void))_opcode_stack_effect,
        METH_FASTCALL|METH_KEYWORDS, _opcode_stack_effect__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _pickle_Pickler_clear_memo
  - _pickle_Pickler___sizeof__
  - _pickle_Pickler___init__
  - _pickle_PicklerMemoProxy_clear
  - _pickle_PicklerMemoProxy_copy
  - _pickle_PicklerMemoProxy___reduce__
  - _pickle_Unpickler_load
  - _pickle_Unpickler_find_class
  - _pickle_Unpickler___sizeof__
  - _pickle_Unpickler___init__
  - _pickle_UnpicklerMemoProxy_clear
  - _pickle_UnpicklerMemoProxy_copy
  - _pickle_UnpicklerMemoProxy___reduce__
  - _pickle_dump
  - _pickle_dumps
  - _pickle_load
  - _pickle_loads
  source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PICKLE_PICKLER_CLEAR_MEMO_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"clear_memo", (PyCFunction)_pickle_Pickler_clear_memo, METH_NOARGS,
        _pickle_Pickler_clear_memo__doc__},'
    - item_type: preproc_def
      name: _PICKLE_PICKLER_DUMP_METHODDEF
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"dump", (PyCFunction)_pickle_Pickler_dump, METH_O, _pickle_Pickler_dump__doc__},'
    - item_type: preproc_def
      name: _PICKLE_PICKLER___SIZEOF___METHODDEF
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)_pickle_Pickler___sizeof__, METH_NOARGS,
        _pickle_Pickler___sizeof____doc__},'
    - item_type: preproc_def
      name: _PICKLE_PICKLERMEMOPROXY_CLEAR_METHODDEF
      pos:
        line_end: 158
        line_start: 156
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"clear", (PyCFunction)_pickle_PicklerMemoProxy_clear, METH_NOARGS,
        _pickle_PicklerMemoProxy_clear__doc__},'
    - item_type: preproc_def
      name: _PICKLE_PICKLERMEMOPROXY_COPY_METHODDEF
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"copy", (PyCFunction)_pickle_PicklerMemoProxy_copy, METH_NOARGS,
        _pickle_PicklerMemoProxy_copy__doc__},'
    - item_type: preproc_def
      name: _PICKLE_PICKLERMEMOPROXY___REDUCE___METHODDEF
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"__reduce__", (PyCFunction)_pickle_PicklerMemoProxy___reduce__,
        METH_NOARGS, _pickle_PicklerMemoProxy___reduce____doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLER_LOAD_METHODDEF
      pos:
        line_end: 216
        line_start: 214
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"load", (PyCFunction)_pickle_Unpickler_load, METH_NOARGS, _pickle_Unpickler_load__doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLER_FIND_CLASS_METHODDEF
      pos:
        line_end: 241
        line_start: 239
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"find_class", (PyCFunction)(void(*)(void))_pickle_Unpickler_find_class,
        METH_FASTCALL, _pickle_Unpickler_find_class__doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLER___SIZEOF___METHODDEF
      pos:
        line_end: 273
        line_start: 271
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)_pickle_Unpickler___sizeof__, METH_NOARGS,
        _pickle_Unpickler___sizeof____doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLERMEMOPROXY_CLEAR_METHODDEF
      pos:
        line_end: 409
        line_start: 407
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"clear", (PyCFunction)_pickle_UnpicklerMemoProxy_clear, METH_NOARGS,
        _pickle_UnpicklerMemoProxy_clear__doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLERMEMOPROXY_COPY_METHODDEF
      pos:
        line_end: 427
        line_start: 425
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"copy", (PyCFunction)_pickle_UnpicklerMemoProxy_copy, METH_NOARGS,
        _pickle_UnpicklerMemoProxy_copy__doc__},'
    - item_type: preproc_def
      name: _PICKLE_UNPICKLERMEMOPROXY___REDUCE___METHODDEF
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"__reduce__", (PyCFunction)_pickle_UnpicklerMemoProxy___reduce__,
        METH_NOARGS, _pickle_UnpicklerMemoProxy___reduce____doc__},'
    - item_type: preproc_def
      name: _PICKLE_DUMP_METHODDEF
      pos:
        line_end: 489
        line_start: 487
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"dump", (PyCFunction)(void(*)(void))_pickle_dump, METH_FASTCALL|METH_KEYWORDS,
        _pickle_dump__doc__},'
    - item_type: preproc_def
      name: _PICKLE_DUMPS_METHODDEF
      pos:
        line_end: 571
        line_start: 569
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"dumps", (PyCFunction)(void(*)(void))_pickle_dumps, METH_FASTCALL|METH_KEYWORDS,
        _pickle_dumps__doc__},'
    - item_type: preproc_def
      name: _PICKLE_LOAD_METHODDEF
      pos:
        line_end: 655
        line_start: 653
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"load", (PyCFunction)(void(*)(void))_pickle_load, METH_FASTCALL|METH_KEYWORDS,
        _pickle_load__doc__},'
    - item_type: preproc_def
      name: _PICKLE_LOADS_METHODDEF
      pos:
        line_end: 758
        line_start: 756
        source_file: /src/Python-3.8.3/Modules/clinic/_pickle.c.h
      type_or_value: '{"loads", (PyCFunction)(void(*)(void))_pickle_loads, METH_FASTCALL|METH_KEYWORDS,
        _pickle_loads__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - os_stat
  - os_lstat
  - os_access
  - os_ttyname
  - os_ctermid
  - os_chdir
  - os_fchdir
  - os_chmod
  - os_fchmod
  - os_lchmod
  - os_chflags
  - os_lchflags
  - os_chroot
  - os_fsync
  - os_sync
  - os_fdatasync
  - os_chown
  - os_fchown
  - os_lchown
  - os_getcwd
  - os_getcwdb
  - os_link
  - os_listdir
  - os__getfullpathname
  - os__getfinalpathname
  - os__getvolumepathname
  - os_mkdir
  - os_nice
  - os_getpriority
  - os_setpriority
  - os_rename
  - os_replace
  - os_rmdir
  - os_system
  - os_system
  - os_umask
  - os_unlink
  - os_remove
  - os_uname
  - os_utime
  - os__exit
  - os_execv
  - os_execve
  - os_posix_spawn
  - os_posix_spawnp
  - os_spawnv
  - os_spawnve
  - os_register_at_fork
  - os_fork1
  - os_fork
  - os_sched_get_priority_max
  - os_sched_get_priority_min
  - os_sched_getscheduler
  - os_sched_param
  - os_sched_setscheduler
  - os_sched_getparam
  - os_sched_setparam
  - os_sched_rr_get_interval
  - os_sched_yield
  - os_sched_setaffinity
  - os_sched_getaffinity
  - os_openpty
  - os_forkpty
  - os_getegid
  - os_geteuid
  - os_getgid
  - os_getpid
  - os_getgroups
  - os_getpgid
  - os_getpgrp
  - os_setpgrp
  - os_getppid
  - os_getlogin
  - os_getuid
  - os_kill
  - os_killpg
  - os_plock
  - os_setuid
  - os_seteuid
  - os_setegid
  - os_setreuid
  - os_setregid
  - os_setgid
  - os_wait3
  - os_wait4
  - os_waitid
  - os_waitpid
  - os_waitpid
  - os_wait
  - os_readlink
  - os_symlink
  - os_times
  - os_getsid
  - os_setsid
  - os_setpgid
  - os_tcgetpgrp
  - os_tcsetpgrp
  - os_open
  - os_close
  - os_closerange
  - os_dup
  - os_dup2
  - os_lockf
  - os_lseek
  - os_read
  - os_readv
  - os_pread
  - os_preadv
  - os_write
  - os__fcopyfile
  - os_fstat
  - os_isatty
  - os_pipe
  - os_pipe2
  - os_writev
  - os_pwrite
  - os_pwritev
  - os_copy_file_range
  - os_mkfifo
  - os_mknod
  - os_major
  - os_minor
  - os_makedev
  - os_ftruncate
  - os_truncate
  - os_posix_fallocate
  - os_posix_fadvise
  - os_putenv
  - os_putenv
  - os_unsetenv
  - os_strerror
  - os_WCOREDUMP
  - os_WIFCONTINUED
  - os_WIFSTOPPED
  - os_WIFSIGNALED
  - os_WIFEXITED
  - os_WEXITSTATUS
  - os_WTERMSIG
  - os_WSTOPSIG
  - os_fstatvfs
  - os_statvfs
  - os__getdiskusage
  - os_fpathconf
  - os_pathconf
  - os_confstr
  - os_sysconf
  - os_abort
  - os_startfile
  - os_getloadavg
  - os_device_encoding
  - os_setresuid
  - os_setresgid
  - os_getresuid
  - os_getresgid
  - os_getxattr
  - os_setxattr
  - os_removexattr
  - os_listxattr
  - os_urandom
  - os_memfd_create
  - os_cpu_count
  - os_get_inheritable
  - os_set_inheritable
  - os_get_handle_inheritable
  - os_set_handle_inheritable
  - os_get_blocking
  - os_set_blocking
  - os_DirEntry_is_symlink
  - os_DirEntry_stat
  - os_DirEntry_is_dir
  - os_DirEntry_is_file
  - os_DirEntry_inode
  - os_DirEntry___fspath__
  - os_scandir
  - os_fspath
  - os_getrandom
  - os__add_dll_directory
  - os__remove_dll_directory
  source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OS_STAT_METHODDEF
      pos:
        line_end: 31
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"stat", (PyCFunction)(void(*)(void))os_stat, METH_FASTCALL|METH_KEYWORDS,
        os_stat__doc__},'
    - item_type: preproc_def
      name: OS_LSTAT_METHODDEF
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lstat", (PyCFunction)(void(*)(void))os_lstat, METH_FASTCALL|METH_KEYWORDS,
        os_lstat__doc__},'
    - item_type: preproc_def
      name: OS_ACCESS_METHODDEF
      pos:
        line_end: 162
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"access", (PyCFunction)(void(*)(void))os_access, METH_FASTCALL|METH_KEYWORDS,
        os_access__doc__},'
    - item_type: preproc_def
      name: OS_TTYNAME_METHODDEF
      pos:
        line_end: 249
        line_start: 247
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"ttyname", (PyCFunction)os_ttyname, METH_O, os_ttyname__doc__},'
    - item_type: preproc_def
      name: OS_CTERMID_METHODDEF
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"ctermid", (PyCFunction)os_ctermid, METH_NOARGS, os_ctermid__doc__},'
    - item_type: preproc_def
      name: OS_CHDIR_METHODDEF
      pos:
        line_end: 310
        line_start: 308
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"chdir", (PyCFunction)(void(*)(void))os_chdir, METH_FASTCALL|METH_KEYWORDS,
        os_chdir__doc__},'
    - item_type: preproc_def
      name: OS_FCHDIR_METHODDEF
      pos:
        line_end: 352
        line_start: 350
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fchdir", (PyCFunction)(void(*)(void))os_fchdir, METH_FASTCALL|METH_KEYWORDS,
        os_fchdir__doc__},'
    - item_type: preproc_def
      name: OS_CHMOD_METHODDEF
      pos:
        line_end: 408
        line_start: 406
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"chmod", (PyCFunction)(void(*)(void))os_chmod, METH_FASTCALL|METH_KEYWORDS,
        os_chmod__doc__},'
    - item_type: preproc_def
      name: OS_FCHMOD_METHODDEF
      pos:
        line_end: 479
        line_start: 477
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fchmod", (PyCFunction)(void(*)(void))os_fchmod, METH_FASTCALL|METH_KEYWORDS,
        os_fchmod__doc__},'
    - item_type: preproc_def
      name: OS_LCHMOD_METHODDEF
      pos:
        line_end: 536
        line_start: 534
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lchmod", (PyCFunction)(void(*)(void))os_lchmod, METH_FASTCALL|METH_KEYWORDS,
        os_lchmod__doc__},'
    - item_type: preproc_def
      name: OS_CHFLAGS_METHODDEF
      pos:
        line_end: 593
        line_start: 591
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"chflags", (PyCFunction)(void(*)(void))os_chflags, METH_FASTCALL|METH_KEYWORDS,
        os_chflags__doc__},'
    - item_type: preproc_def
      name: OS_LCHFLAGS_METHODDEF
      pos:
        line_end: 654
        line_start: 652
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lchflags", (PyCFunction)(void(*)(void))os_lchflags, METH_FASTCALL|METH_KEYWORDS,
        os_lchflags__doc__},'
    - item_type: preproc_def
      name: OS_CHROOT_METHODDEF
      pos:
        line_end: 701
        line_start: 699
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"chroot", (PyCFunction)(void(*)(void))os_chroot, METH_FASTCALL|METH_KEYWORDS,
        os_chroot__doc__},'
    - item_type: preproc_def
      name: OS_FSYNC_METHODDEF
      pos:
        line_end: 742
        line_start: 740
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fsync", (PyCFunction)(void(*)(void))os_fsync, METH_FASTCALL|METH_KEYWORDS,
        os_fsync__doc__},'
    - item_type: preproc_def
      name: OS_SYNC_METHODDEF
      pos:
        line_end: 780
        line_start: 778
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sync", (PyCFunction)os_sync, METH_NOARGS, os_sync__doc__},'
    - item_type: preproc_def
      name: OS_FDATASYNC_METHODDEF
      pos:
        line_end: 802
        line_start: 800
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fdatasync", (PyCFunction)(void(*)(void))os_fdatasync, METH_FASTCALL|METH_KEYWORDS,
        os_fdatasync__doc__},'
    - item_type: preproc_def
      name: OS_CHOWN_METHODDEF
      pos:
        line_end: 864
        line_start: 862
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"chown", (PyCFunction)(void(*)(void))os_chown, METH_FASTCALL|METH_KEYWORDS,
        os_chown__doc__},'
    - item_type: preproc_def
      name: OS_FCHOWN_METHODDEF
      pos:
        line_end: 935
        line_start: 933
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fchown", (PyCFunction)(void(*)(void))os_fchown, METH_FASTCALL|METH_KEYWORDS,
        os_fchown__doc__},'
    - item_type: preproc_def
      name: OS_LCHOWN_METHODDEF
      pos:
        line_end: 990
        line_start: 988
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lchown", (PyCFunction)(void(*)(void))os_lchown, METH_FASTCALL|METH_KEYWORDS,
        os_lchown__doc__},'
    - item_type: preproc_def
      name: OS_GETCWD_METHODDEF
      pos:
        line_end: 1037
        line_start: 1035
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getcwd", (PyCFunction)os_getcwd, METH_NOARGS, os_getcwd__doc__},'
    - item_type: preproc_def
      name: OS_GETCWDB_METHODDEF
      pos:
        line_end: 1055
        line_start: 1053
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getcwdb", (PyCFunction)os_getcwdb, METH_NOARGS, os_getcwdb__doc__},'
    - item_type: preproc_def
      name: OS_LINK_METHODDEF
      pos:
        line_end: 1086
        line_start: 1084
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"link", (PyCFunction)(void(*)(void))os_link, METH_FASTCALL|METH_KEYWORDS,
        os_link__doc__},'
    - item_type: preproc_def
      name: OS_LISTDIR_METHODDEF
      pos:
        line_end: 1171
        line_start: 1169
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"listdir", (PyCFunction)(void(*)(void))os_listdir, METH_FASTCALL|METH_KEYWORDS,
        os_listdir__doc__},'
    - item_type: preproc_def
      name: OS__GETFULLPATHNAME_METHODDEF
      pos:
        line_end: 1214
        line_start: 1212
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_getfullpathname", (PyCFunction)os__getfullpathname, METH_O,
        os__getfullpathname__doc__},'
    - item_type: preproc_def
      name: OS__GETFINALPATHNAME_METHODDEF
      pos:
        line_end: 1248
        line_start: 1246
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_getfinalpathname", (PyCFunction)os__getfinalpathname, METH_O,
        os__getfinalpathname__doc__},'
    - item_type: preproc_def
      name: OS__GETVOLUMEPATHNAME_METHODDEF
      pos:
        line_end: 1282
        line_start: 1280
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_getvolumepathname", (PyCFunction)(void(*)(void))os__getvolumepathname,
        METH_FASTCALL|METH_KEYWORDS, os__getvolumepathname__doc__},'
    - item_type: preproc_def
      name: OS_MKDIR_METHODDEF
      pos:
        line_end: 1328
        line_start: 1326
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"mkdir", (PyCFunction)(void(*)(void))os_mkdir, METH_FASTCALL|METH_KEYWORDS,
        os_mkdir__doc__},'
    - item_type: preproc_def
      name: OS_NICE_METHODDEF
      pos:
        line_end: 1395
        line_start: 1393
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"nice", (PyCFunction)os_nice, METH_O, os_nice__doc__},'
    - item_type: preproc_def
      name: OS_GETPRIORITY_METHODDEF
      pos:
        line_end: 1432
        line_start: 1430
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getpriority", (PyCFunction)(void(*)(void))os_getpriority,
        METH_FASTCALL|METH_KEYWORDS, os_getpriority__doc__},'
    - item_type: preproc_def
      name: OS_SETPRIORITY_METHODDEF
      pos:
        line_end: 1486
        line_start: 1484
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setpriority", (PyCFunction)(void(*)(void))os_setpriority,
        METH_FASTCALL|METH_KEYWORDS, os_setpriority__doc__},'
    - item_type: preproc_def
      name: OS_RENAME_METHODDEF
      pos:
        line_end: 1554
        line_start: 1552
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"rename", (PyCFunction)(void(*)(void))os_rename, METH_FASTCALL|METH_KEYWORDS,
        os_rename__doc__},'
    - item_type: preproc_def
      name: OS_REPLACE_METHODDEF
      pos:
        line_end: 1622
        line_start: 1620
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"replace", (PyCFunction)(void(*)(void))os_replace, METH_FASTCALL|METH_KEYWORDS,
        os_replace__doc__},'
    - item_type: preproc_def
      name: OS_RMDIR_METHODDEF
      pos:
        line_end: 1689
        line_start: 1687
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"rmdir", (PyCFunction)(void(*)(void))os_rmdir, METH_FASTCALL|METH_KEYWORDS,
        os_rmdir__doc__},'
    - item_type: preproc_def
      name: OS_SYSTEM_METHODDEF
      pos:
        line_end: 1737
        line_start: 1735
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS,
        os_system__doc__},'
    - item_type: preproc_def
      name: OS_SYSTEM_METHODDEF
      pos:
        line_end: 1776
        line_start: 1774
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"system", (PyCFunction)(void(*)(void))os_system, METH_FASTCALL|METH_KEYWORDS,
        os_system__doc__},'
    - item_type: preproc_def
      name: OS_UMASK_METHODDEF
      pos:
        line_end: 1820
        line_start: 1818
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"umask", (PyCFunction)os_umask, METH_O, os_umask__doc__},'
    - item_type: preproc_def
      name: OS_UNLINK_METHODDEF
      pos:
        line_end: 1858
        line_start: 1856
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"unlink", (PyCFunction)(void(*)(void))os_unlink, METH_FASTCALL|METH_KEYWORDS,
        os_unlink__doc__},'
    - item_type: preproc_def
      name: OS_REMOVE_METHODDEF
      pos:
        line_end: 1909
        line_start: 1907
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"remove", (PyCFunction)(void(*)(void))os_remove, METH_FASTCALL|METH_KEYWORDS,
        os_remove__doc__},'
    - item_type: preproc_def
      name: OS_UNAME_METHODDEF
      pos:
        line_end: 1960
        line_start: 1958
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"uname", (PyCFunction)os_uname, METH_NOARGS, os_uname__doc__},'
    - item_type: preproc_def
      name: OS_UTIME_METHODDEF
      pos:
        line_end: 2003
        line_start: 2001
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"utime", (PyCFunction)(void(*)(void))os_utime, METH_FASTCALL|METH_KEYWORDS,
        os_utime__doc__},'
    - item_type: preproc_def
      name: OS__EXIT_METHODDEF
      pos:
        line_end: 2078
        line_start: 2076
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_exit", (PyCFunction)(void(*)(void))os__exit, METH_FASTCALL|METH_KEYWORDS,
        os__exit__doc__},'
    - item_type: preproc_def
      name: OS_EXECV_METHODDEF
      pos:
        line_end: 2125
        line_start: 2123
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"execv", (PyCFunction)(void(*)(void))os_execv, METH_FASTCALL,
        os_execv__doc__},'
    - item_type: preproc_def
      name: OS_EXECVE_METHODDEF
      pos:
        line_end: 2171
        line_start: 2169
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"execve", (PyCFunction)(void(*)(void))os_execve, METH_FASTCALL|METH_KEYWORDS,
        os_execve__doc__},'
    - item_type: preproc_def
      name: OS_POSIX_SPAWN_METHODDEF
      pos:
        line_end: 2239
        line_start: 2237
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"posix_spawn", (PyCFunction)(void(*)(void))os_posix_spawn,
        METH_FASTCALL|METH_KEYWORDS, os_posix_spawn__doc__},'
    - item_type: preproc_def
      name: OS_POSIX_SPAWNP_METHODDEF
      pos:
        line_end: 2376
        line_start: 2374
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"posix_spawnp", (PyCFunction)(void(*)(void))os_posix_spawnp,
        METH_FASTCALL|METH_KEYWORDS, os_posix_spawnp__doc__},'
    - item_type: preproc_def
      name: OS_SPAWNV_METHODDEF
      pos:
        line_end: 2497
        line_start: 2495
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"spawnv", (PyCFunction)(void(*)(void))os_spawnv, METH_FASTCALL,
        os_spawnv__doc__},'
    - item_type: preproc_def
      name: OS_SPAWNVE_METHODDEF
      pos:
        line_end: 2555
        line_start: 2553
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"spawnve", (PyCFunction)(void(*)(void))os_spawnve, METH_FASTCALL,
        os_spawnve__doc__},'
    - item_type: preproc_def
      name: OS_REGISTER_AT_FORK_METHODDEF
      pos:
        line_end: 2619
        line_start: 2617
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"register_at_fork", (PyCFunction)(void(*)(void))os_register_at_fork,
        METH_FASTCALL|METH_KEYWORDS, os_register_at_fork__doc__},'
    - item_type: preproc_def
      name: OS_FORK1_METHODDEF
      pos:
        line_end: 2677
        line_start: 2675
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fork1", (PyCFunction)os_fork1, METH_NOARGS, os_fork1__doc__},'
    - item_type: preproc_def
      name: OS_FORK_METHODDEF
      pos:
        line_end: 2701
        line_start: 2699
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fork", (PyCFunction)os_fork, METH_NOARGS, os_fork__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_GET_PRIORITY_MAX_METHODDEF
      pos:
        line_end: 2723
        line_start: 2721
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_get_priority_max", (PyCFunction)(void(*)(void))os_sched_get_priority_max,
        METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_max__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_GET_PRIORITY_MIN_METHODDEF
      pos:
        line_end: 2767
        line_start: 2765
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_get_priority_min", (PyCFunction)(void(*)(void))os_sched_get_priority_min,
        METH_FASTCALL|METH_KEYWORDS, os_sched_get_priority_min__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_GETSCHEDULER_METHODDEF
      pos:
        line_end: 2813
        line_start: 2811
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_getscheduler", (PyCFunction)os_sched_getscheduler, METH_O,
        os_sched_getscheduler__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_SETSCHEDULER_METHODDEF
      pos:
        line_end: 2885
        line_start: 2883
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_setscheduler", (PyCFunction)(void(*)(void))os_sched_setscheduler,
        METH_FASTCALL, os_sched_setscheduler__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_GETPARAM_METHODDEF
      pos:
        line_end: 2923
        line_start: 2921
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_getparam", (PyCFunction)os_sched_getparam, METH_O, os_sched_getparam__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_SETPARAM_METHODDEF
      pos:
        line_end: 2957
        line_start: 2955
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_setparam", (PyCFunction)(void(*)(void))os_sched_setparam,
        METH_FASTCALL, os_sched_setparam__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_RR_GET_INTERVAL_METHODDEF
      pos:
        line_end: 2993
        line_start: 2991
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_rr_get_interval", (PyCFunction)os_sched_rr_get_interval,
        METH_O, os_sched_rr_get_interval__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_YIELD_METHODDEF
      pos:
        line_end: 3029
        line_start: 3027
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_yield", (PyCFunction)os_sched_yield, METH_NOARGS, os_sched_yield__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_SETAFFINITY_METHODDEF
      pos:
        line_end: 3053
        line_start: 3051
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_setaffinity", (PyCFunction)(void(*)(void))os_sched_setaffinity,
        METH_FASTCALL, os_sched_setaffinity__doc__},'
    - item_type: preproc_def
      name: OS_SCHED_GETAFFINITY_METHODDEF
      pos:
        line_end: 3088
        line_start: 3086
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sched_getaffinity", (PyCFunction)os_sched_getaffinity, METH_O,
        os_sched_getaffinity__doc__},'
    - item_type: preproc_def
      name: OS_OPENPTY_METHODDEF
      pos:
        line_end: 3122
        line_start: 3120
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"openpty", (PyCFunction)os_openpty, METH_NOARGS, os_openpty__doc__},'
    - item_type: preproc_def
      name: OS_FORKPTY_METHODDEF
      pos:
        line_end: 3149
        line_start: 3147
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"forkpty", (PyCFunction)os_forkpty, METH_NOARGS, os_forkpty__doc__},'
    - item_type: preproc_def
      name: OS_GETEGID_METHODDEF
      pos:
        line_end: 3171
        line_start: 3169
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getegid", (PyCFunction)os_getegid, METH_NOARGS, os_getegid__doc__},'
    - item_type: preproc_def
      name: OS_GETEUID_METHODDEF
      pos:
        line_end: 3193
        line_start: 3191
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"geteuid", (PyCFunction)os_geteuid, METH_NOARGS, os_geteuid__doc__},'
    - item_type: preproc_def
      name: OS_GETGID_METHODDEF
      pos:
        line_end: 3215
        line_start: 3213
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getgid", (PyCFunction)os_getgid, METH_NOARGS, os_getgid__doc__},'
    - item_type: preproc_def
      name: OS_GETPID_METHODDEF
      pos:
        line_end: 3237
        line_start: 3235
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getpid", (PyCFunction)os_getpid, METH_NOARGS, os_getpid__doc__},'
    - item_type: preproc_def
      name: OS_GETGROUPS_METHODDEF
      pos:
        line_end: 3259
        line_start: 3257
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getgroups", (PyCFunction)os_getgroups, METH_NOARGS, os_getgroups__doc__},'
    - item_type: preproc_def
      name: OS_GETPGID_METHODDEF
      pos:
        line_end: 3281
        line_start: 3279
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getpgid", (PyCFunction)(void(*)(void))os_getpgid, METH_FASTCALL|METH_KEYWORDS,
        os_getpgid__doc__},'
    - item_type: preproc_def
      name: OS_GETPGRP_METHODDEF
      pos:
        line_end: 3315
        line_start: 3313
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getpgrp", (PyCFunction)os_getpgrp, METH_NOARGS, os_getpgrp__doc__},'
    - item_type: preproc_def
      name: OS_SETPGRP_METHODDEF
      pos:
        line_end: 3337
        line_start: 3335
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setpgrp", (PyCFunction)os_setpgrp, METH_NOARGS, os_setpgrp__doc__},'
    - item_type: preproc_def
      name: OS_GETPPID_METHODDEF
      pos:
        line_end: 3362
        line_start: 3360
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getppid", (PyCFunction)os_getppid, METH_NOARGS, os_getppid__doc__},'
    - item_type: preproc_def
      name: OS_GETLOGIN_METHODDEF
      pos:
        line_end: 3384
        line_start: 3382
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getlogin", (PyCFunction)os_getlogin, METH_NOARGS, os_getlogin__doc__},'
    - item_type: preproc_def
      name: OS_GETUID_METHODDEF
      pos:
        line_end: 3406
        line_start: 3404
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getuid", (PyCFunction)os_getuid, METH_NOARGS, os_getuid__doc__},'
    - item_type: preproc_def
      name: OS_KILL_METHODDEF
      pos:
        line_end: 3428
        line_start: 3426
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"kill", (PyCFunction)(void(*)(void))os_kill, METH_FASTCALL,
        os_kill__doc__},'
    - item_type: preproc_def
      name: OS_KILLPG_METHODDEF
      pos:
        line_end: 3461
        line_start: 3459
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"killpg", (PyCFunction)(void(*)(void))os_killpg, METH_FASTCALL,
        os_killpg__doc__},'
    - item_type: preproc_def
      name: OS_PLOCK_METHODDEF
      pos:
        line_end: 3494
        line_start: 3492
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"plock", (PyCFunction)os_plock, METH_O, os_plock__doc__},'
    - item_type: preproc_def
      name: OS_SETUID_METHODDEF
      pos:
        line_end: 3531
        line_start: 3529
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setuid", (PyCFunction)os_setuid, METH_O, os_setuid__doc__},'
    - item_type: preproc_def
      name: OS_SETEUID_METHODDEF
      pos:
        line_end: 3562
        line_start: 3560
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"seteuid", (PyCFunction)os_seteuid, METH_O, os_seteuid__doc__},'
    - item_type: preproc_def
      name: OS_SETEGID_METHODDEF
      pos:
        line_end: 3593
        line_start: 3591
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setegid", (PyCFunction)os_setegid, METH_O, os_setegid__doc__},'
    - item_type: preproc_def
      name: OS_SETREUID_METHODDEF
      pos:
        line_end: 3624
        line_start: 3622
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setreuid", (PyCFunction)(void(*)(void))os_setreuid, METH_FASTCALL,
        os_setreuid__doc__},'
    - item_type: preproc_def
      name: OS_SETREGID_METHODDEF
      pos:
        line_end: 3662
        line_start: 3660
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setregid", (PyCFunction)(void(*)(void))os_setregid, METH_FASTCALL,
        os_setregid__doc__},'
    - item_type: preproc_def
      name: OS_SETGID_METHODDEF
      pos:
        line_end: 3700
        line_start: 3698
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setgid", (PyCFunction)os_setgid, METH_O, os_setgid__doc__},'
    - item_type: preproc_def
      name: OS_SETGROUPS_METHODDEF
      pos:
        line_end: 3731
        line_start: 3729
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setgroups", (PyCFunction)os_setgroups, METH_O, os_setgroups__doc__},'
    - item_type: preproc_def
      name: OS_WAIT3_METHODDEF
      pos:
        line_end: 3747
        line_start: 3745
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"wait3", (PyCFunction)(void(*)(void))os_wait3, METH_FASTCALL|METH_KEYWORDS,
        os_wait3__doc__},'
    - item_type: preproc_def
      name: OS_WAIT4_METHODDEF
      pos:
        line_end: 3794
        line_start: 3792
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"wait4", (PyCFunction)(void(*)(void))os_wait4, METH_FASTCALL|METH_KEYWORDS,
        os_wait4__doc__},'
    - item_type: preproc_def
      name: OS_WAITID_METHODDEF
      pos:
        line_end: 3840
        line_start: 3838
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"waitid", (PyCFunction)(void(*)(void))os_waitid, METH_FASTCALL,
        os_waitid__doc__},'
    - item_type: preproc_def
      name: OS_WAITPID_METHODDEF
      pos:
        line_end: 3879
        line_start: 3877
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL,
        os_waitpid__doc__},'
    - item_type: preproc_def
      name: OS_WAITPID_METHODDEF
      pos:
        line_end: 3917
        line_start: 3915
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"waitpid", (PyCFunction)(void(*)(void))os_waitpid, METH_FASTCALL,
        os_waitpid__doc__},'
    - item_type: preproc_def
      name: OS_WAIT_METHODDEF
      pos:
        line_end: 3953
        line_start: 3951
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"wait", (PyCFunction)os_wait, METH_NOARGS, os_wait__doc__},'
    - item_type: preproc_def
      name: OS_READLINK_METHODDEF
      pos:
        line_end: 3981
        line_start: 3979
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"readlink", (PyCFunction)(void(*)(void))os_readlink, METH_FASTCALL|METH_KEYWORDS,
        os_readlink__doc__},'
    - item_type: preproc_def
      name: OS_SYMLINK_METHODDEF
      pos:
        line_end: 4041
        line_start: 4039
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"symlink", (PyCFunction)(void(*)(void))os_symlink, METH_FASTCALL|METH_KEYWORDS,
        os_symlink__doc__},'
    - item_type: preproc_def
      name: OS_TIMES_METHODDEF
      pos:
        line_end: 4116
        line_start: 4114
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"times", (PyCFunction)os_times, METH_NOARGS, os_times__doc__},'
    - item_type: preproc_def
      name: OS_GETSID_METHODDEF
      pos:
        line_end: 4138
        line_start: 4136
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getsid", (PyCFunction)os_getsid, METH_O, os_getsid__doc__},'
    - item_type: preproc_def
      name: OS_SETSID_METHODDEF
      pos:
        line_end: 4169
        line_start: 4167
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setsid", (PyCFunction)os_setsid, METH_NOARGS, os_setsid__doc__},'
    - item_type: preproc_def
      name: OS_SETPGID_METHODDEF
      pos:
        line_end: 4191
        line_start: 4189
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setpgid", (PyCFunction)(void(*)(void))os_setpgid, METH_FASTCALL,
        os_setpgid__doc__},'
    - item_type: preproc_def
      name: OS_TCGETPGRP_METHODDEF
      pos:
        line_end: 4224
        line_start: 4222
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"tcgetpgrp", (PyCFunction)os_tcgetpgrp, METH_O, os_tcgetpgrp__doc__},'
    - item_type: preproc_def
      name: OS_TCSETPGRP_METHODDEF
      pos:
        line_end: 4261
        line_start: 4259
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"tcsetpgrp", (PyCFunction)(void(*)(void))os_tcsetpgrp, METH_FASTCALL,
        os_tcsetpgrp__doc__},'
    - item_type: preproc_def
      name: OS_OPEN_METHODDEF
      pos:
        line_end: 4297
        line_start: 4295
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"open", (PyCFunction)(void(*)(void))os_open, METH_FASTCALL|METH_KEYWORDS,
        os_open__doc__},'
    - item_type: preproc_def
      name: OS_CLOSE_METHODDEF
      pos:
        line_end: 4377
        line_start: 4375
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"close", (PyCFunction)(void(*)(void))os_close, METH_FASTCALL|METH_KEYWORDS,
        os_close__doc__},'
    - item_type: preproc_def
      name: OS_CLOSERANGE_METHODDEF
      pos:
        line_end: 4417
        line_start: 4415
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"closerange", (PyCFunction)(void(*)(void))os_closerange, METH_FASTCALL,
        os_closerange__doc__},'
    - item_type: preproc_def
      name: OS_DUP_METHODDEF
      pos:
        line_end: 4463
        line_start: 4461
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"dup", (PyCFunction)os_dup, METH_O, os_dup__doc__},'
    - item_type: preproc_def
      name: OS_DUP2_METHODDEF
      pos:
        line_end: 4501
        line_start: 4499
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"dup2", (PyCFunction)(void(*)(void))os_dup2, METH_FASTCALL|METH_KEYWORDS,
        os_dup2__doc__},'
    - item_type: preproc_def
      name: OS_LOCKF_METHODDEF
      pos:
        line_end: 4575
        line_start: 4573
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lockf", (PyCFunction)(void(*)(void))os_lockf, METH_FASTCALL,
        os_lockf__doc__},'
    - item_type: preproc_def
      name: OS_LSEEK_METHODDEF
      pos:
        line_end: 4630
        line_start: 4628
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"lseek", (PyCFunction)(void(*)(void))os_lseek, METH_FASTCALL,
        os_lseek__doc__},'
    - item_type: preproc_def
      name: OS_READ_METHODDEF
      pos:
        line_end: 4685
        line_start: 4683
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))os_read, METH_FASTCALL,
        os_read__doc__},'
    - item_type: preproc_def
      name: OS_READV_METHODDEF
      pos:
        line_end: 4749
        line_start: 4747
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"readv", (PyCFunction)(void(*)(void))os_readv, METH_FASTCALL,
        os_readv__doc__},'
    - item_type: preproc_def
      name: OS_PREAD_METHODDEF
      pos:
        line_end: 4799
        line_start: 4797
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pread", (PyCFunction)(void(*)(void))os_pread, METH_FASTCALL,
        os_pread__doc__},'
    - item_type: preproc_def
      name: OS_PREADV_METHODDEF
      pos:
        line_end: 4867
        line_start: 4865
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"preadv", (PyCFunction)(void(*)(void))os_preadv, METH_FASTCALL,
        os_preadv__doc__},'
    - item_type: preproc_def
      name: OS_WRITE_METHODDEF
      pos:
        line_end: 4931
        line_start: 4929
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"write", (PyCFunction)(void(*)(void))os_write, METH_FASTCALL,
        os_write__doc__},'
    - item_type: preproc_def
      name: OS__FCOPYFILE_METHODDEF
      pos:
        line_end: 4987
        line_start: 4985
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_fcopyfile", (PyCFunction)(void(*)(void))os__fcopyfile, METH_FASTCALL,
        os__fcopyfile__doc__},'
    - item_type: preproc_def
      name: OS_FSTAT_METHODDEF
      pos:
        line_end: 5048
        line_start: 5046
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fstat", (PyCFunction)(void(*)(void))os_fstat, METH_FASTCALL|METH_KEYWORDS,
        os_fstat__doc__},'
    - item_type: preproc_def
      name: OS_ISATTY_METHODDEF
      pos:
        line_end: 5091
        line_start: 5089
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"isatty", (PyCFunction)os_isatty, METH_O, os_isatty__doc__},'
    - item_type: preproc_def
      name: OS_PIPE_METHODDEF
      pos:
        line_end: 5134
        line_start: 5132
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pipe", (PyCFunction)os_pipe, METH_NOARGS, os_pipe__doc__},'
    - item_type: preproc_def
      name: OS_PIPE2_METHODDEF
      pos:
        line_end: 5162
        line_start: 5160
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pipe2", (PyCFunction)os_pipe2, METH_O, os_pipe2__doc__},'
    - item_type: preproc_def
      name: OS_WRITEV_METHODDEF
      pos:
        line_end: 5202
        line_start: 5200
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"writev", (PyCFunction)(void(*)(void))os_writev, METH_FASTCALL,
        os_writev__doc__},'
    - item_type: preproc_def
      name: OS_PWRITE_METHODDEF
      pos:
        line_end: 5253
        line_start: 5251
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pwrite", (PyCFunction)(void(*)(void))os_pwrite, METH_FASTCALL,
        os_pwrite__doc__},'
    - item_type: preproc_def
      name: OS_PWRITEV_METHODDEF
      pos:
        line_end: 5329
        line_start: 5327
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pwritev", (PyCFunction)(void(*)(void))os_pwritev, METH_FASTCALL,
        os_pwritev__doc__},'
    - item_type: preproc_def
      name: OS_COPY_FILE_RANGE_METHODDEF
      pos:
        line_end: 5410
        line_start: 5408
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"copy_file_range", (PyCFunction)(void(*)(void))os_copy_file_range,
        METH_FASTCALL|METH_KEYWORDS, os_copy_file_range__doc__},'
    - item_type: preproc_def
      name: OS_MKFIFO_METHODDEF
      pos:
        line_end: 5502
        line_start: 5500
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"mkfifo", (PyCFunction)(void(*)(void))os_mkfifo, METH_FASTCALL|METH_KEYWORDS,
        os_mkfifo__doc__},'
    - item_type: preproc_def
      name: OS_MKNOD_METHODDEF
      pos:
        line_end: 5583
        line_start: 5581
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"mknod", (PyCFunction)(void(*)(void))os_mknod, METH_FASTCALL|METH_KEYWORDS,
        os_mknod__doc__},'
    - item_type: preproc_def
      name: OS_MAJOR_METHODDEF
      pos:
        line_end: 5662
        line_start: 5660
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"major", (PyCFunction)os_major, METH_O, os_major__doc__},'
    - item_type: preproc_def
      name: OS_MINOR_METHODDEF
      pos:
        line_end: 5698
        line_start: 5696
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"minor", (PyCFunction)os_minor, METH_O, os_minor__doc__},'
    - item_type: preproc_def
      name: OS_MAKEDEV_METHODDEF
      pos:
        line_end: 5734
        line_start: 5732
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"makedev", (PyCFunction)(void(*)(void))os_makedev, METH_FASTCALL,
        os_makedev__doc__},'
    - item_type: preproc_def
      name: OS_FTRUNCATE_METHODDEF
      pos:
        line_end: 5789
        line_start: 5787
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"ftruncate", (PyCFunction)(void(*)(void))os_ftruncate, METH_FASTCALL,
        os_ftruncate__doc__},'
    - item_type: preproc_def
      name: OS_TRUNCATE_METHODDEF
      pos:
        line_end: 5836
        line_start: 5834
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"truncate", (PyCFunction)(void(*)(void))os_truncate, METH_FASTCALL|METH_KEYWORDS,
        os_truncate__doc__},'
    - item_type: preproc_def
      name: OS_POSIX_FALLOCATE_METHODDEF
      pos:
        line_end: 5884
        line_start: 5882
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"posix_fallocate", (PyCFunction)(void(*)(void))os_posix_fallocate,
        METH_FASTCALL, os_posix_fallocate__doc__},'
    - item_type: preproc_def
      name: OS_POSIX_FADVISE_METHODDEF
      pos:
        line_end: 5941
        line_start: 5939
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"posix_fadvise", (PyCFunction)(void(*)(void))os_posix_fadvise,
        METH_FASTCALL, os_posix_fadvise__doc__},'
    - item_type: preproc_def
      name: OS_PUTENV_METHODDEF
      pos:
        line_end: 6000
        line_start: 5998
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL,
        os_putenv__doc__},'
    - item_type: preproc_def
      name: OS_PUTENV_METHODDEF
      pos:
        line_end: 6048
        line_start: 6046
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"putenv", (PyCFunction)(void(*)(void))os_putenv, METH_FASTCALL,
        os_putenv__doc__},'
    - item_type: preproc_def
      name: OS_UNSETENV_METHODDEF
      pos:
        line_end: 6091
        line_start: 6089
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"unsetenv", (PyCFunction)os_unsetenv, METH_O, os_unsetenv__doc__},'
    - item_type: preproc_def
      name: OS_STRERROR_METHODDEF
      pos:
        line_end: 6123
        line_start: 6121
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"strerror", (PyCFunction)os_strerror, METH_O, os_strerror__doc__},'
    - item_type: preproc_def
      name: OS_WCOREDUMP_METHODDEF
      pos:
        line_end: 6158
        line_start: 6156
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WCOREDUMP", (PyCFunction)os_WCOREDUMP, METH_O, os_WCOREDUMP__doc__},'
    - item_type: preproc_def
      name: OS_WIFCONTINUED_METHODDEF
      pos:
        line_end: 6203
        line_start: 6201
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WIFCONTINUED", (PyCFunction)(void(*)(void))os_WIFCONTINUED,
        METH_FASTCALL|METH_KEYWORDS, os_WIFCONTINUED__doc__},'
    - item_type: preproc_def
      name: OS_WIFSTOPPED_METHODDEF
      pos:
        line_end: 6252
        line_start: 6250
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WIFSTOPPED", (PyCFunction)(void(*)(void))os_WIFSTOPPED, METH_FASTCALL|METH_KEYWORDS,
        os_WIFSTOPPED__doc__},'
    - item_type: preproc_def
      name: OS_WIFSIGNALED_METHODDEF
      pos:
        line_end: 6301
        line_start: 6299
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WIFSIGNALED", (PyCFunction)(void(*)(void))os_WIFSIGNALED,
        METH_FASTCALL|METH_KEYWORDS, os_WIFSIGNALED__doc__},'
    - item_type: preproc_def
      name: OS_WIFEXITED_METHODDEF
      pos:
        line_end: 6350
        line_start: 6348
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WIFEXITED", (PyCFunction)(void(*)(void))os_WIFEXITED, METH_FASTCALL|METH_KEYWORDS,
        os_WIFEXITED__doc__},'
    - item_type: preproc_def
      name: OS_WEXITSTATUS_METHODDEF
      pos:
        line_end: 6399
        line_start: 6397
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WEXITSTATUS", (PyCFunction)(void(*)(void))os_WEXITSTATUS,
        METH_FASTCALL|METH_KEYWORDS, os_WEXITSTATUS__doc__},'
    - item_type: preproc_def
      name: OS_WTERMSIG_METHODDEF
      pos:
        line_end: 6448
        line_start: 6446
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WTERMSIG", (PyCFunction)(void(*)(void))os_WTERMSIG, METH_FASTCALL|METH_KEYWORDS,
        os_WTERMSIG__doc__},'
    - item_type: preproc_def
      name: OS_WSTOPSIG_METHODDEF
      pos:
        line_end: 6497
        line_start: 6495
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"WSTOPSIG", (PyCFunction)(void(*)(void))os_WSTOPSIG, METH_FASTCALL|METH_KEYWORDS,
        os_WSTOPSIG__doc__},'
    - item_type: preproc_def
      name: OS_FSTATVFS_METHODDEF
      pos:
        line_end: 6548
        line_start: 6546
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fstatvfs", (PyCFunction)os_fstatvfs, METH_O, os_fstatvfs__doc__},'
    - item_type: preproc_def
      name: OS_STATVFS_METHODDEF
      pos:
        line_end: 6589
        line_start: 6587
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"statvfs", (PyCFunction)(void(*)(void))os_statvfs, METH_FASTCALL|METH_KEYWORDS,
        os_statvfs__doc__},'
    - item_type: preproc_def
      name: OS__GETDISKUSAGE_METHODDEF
      pos:
        line_end: 6630
        line_start: 6628
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_getdiskusage", (PyCFunction)(void(*)(void))os__getdiskusage,
        METH_FASTCALL|METH_KEYWORDS, os__getdiskusage__doc__},'
    - item_type: preproc_def
      name: OS_FPATHCONF_METHODDEF
      pos:
        line_end: 6673
        line_start: 6671
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fpathconf", (PyCFunction)(void(*)(void))os_fpathconf, METH_FASTCALL,
        os_fpathconf__doc__},'
    - item_type: preproc_def
      name: OS_PATHCONF_METHODDEF
      pos:
        line_end: 6726
        line_start: 6724
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"pathconf", (PyCFunction)(void(*)(void))os_pathconf, METH_FASTCALL|METH_KEYWORDS,
        os_pathconf__doc__},'
    - item_type: preproc_def
      name: OS_CONFSTR_METHODDEF
      pos:
        line_end: 6776
        line_start: 6774
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"confstr", (PyCFunction)os_confstr, METH_O, os_confstr__doc__},'
    - item_type: preproc_def
      name: OS_SYSCONF_METHODDEF
      pos:
        line_end: 6807
        line_start: 6805
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"sysconf", (PyCFunction)os_sysconf, METH_O, os_sysconf__doc__},'
    - item_type: preproc_def
      name: OS_ABORT_METHODDEF
      pos:
        line_end: 6844
        line_start: 6842
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"abort", (PyCFunction)os_abort, METH_NOARGS, os_abort__doc__},'
    - item_type: preproc_def
      name: OS_STARTFILE_METHODDEF
      pos:
        line_end: 6879
        line_start: 6877
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"startfile", (PyCFunction)(void(*)(void))os_startfile, METH_FASTCALL|METH_KEYWORDS,
        os_startfile__doc__},'
    - item_type: preproc_def
      name: OS_GETLOADAVG_METHODDEF
      pos:
        line_end: 6922
        line_start: 6920
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getloadavg", (PyCFunction)os_getloadavg, METH_NOARGS, os_getloadavg__doc__},'
    - item_type: preproc_def
      name: OS_DEVICE_ENCODING_METHODDEF
      pos:
        line_end: 6945
        line_start: 6943
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"device_encoding", (PyCFunction)(void(*)(void))os_device_encoding,
        METH_FASTCALL|METH_KEYWORDS, os_device_encoding__doc__},'
    - item_type: preproc_def
      name: OS_SETRESUID_METHODDEF
      pos:
        line_end: 6987
        line_start: 6985
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setresuid", (PyCFunction)(void(*)(void))os_setresuid, METH_FASTCALL,
        os_setresuid__doc__},'
    - item_type: preproc_def
      name: OS_SETRESGID_METHODDEF
      pos:
        line_end: 7029
        line_start: 7027
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setresgid", (PyCFunction)(void(*)(void))os_setresgid, METH_FASTCALL,
        os_setresgid__doc__},'
    - item_type: preproc_def
      name: OS_GETRESUID_METHODDEF
      pos:
        line_end: 7071
        line_start: 7069
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getresuid", (PyCFunction)os_getresuid, METH_NOARGS, os_getresuid__doc__},'
    - item_type: preproc_def
      name: OS_GETRESGID_METHODDEF
      pos:
        line_end: 7093
        line_start: 7091
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getresgid", (PyCFunction)os_getresgid, METH_NOARGS, os_getresgid__doc__},'
    - item_type: preproc_def
      name: OS_GETXATTR_METHODDEF
      pos:
        line_end: 7120
        line_start: 7118
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getxattr", (PyCFunction)(void(*)(void))os_getxattr, METH_FASTCALL|METH_KEYWORDS,
        os_getxattr__doc__},'
    - item_type: preproc_def
      name: OS_SETXATTR_METHODDEF
      pos:
        line_end: 7184
        line_start: 7182
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"setxattr", (PyCFunction)(void(*)(void))os_setxattr, METH_FASTCALL|METH_KEYWORDS,
        os_setxattr__doc__},'
    - item_type: preproc_def
      name: OS_REMOVEXATTR_METHODDEF
      pos:
        line_end: 7278
        line_start: 7276
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"removexattr", (PyCFunction)(void(*)(void))os_removexattr,
        METH_FASTCALL|METH_KEYWORDS, os_removexattr__doc__},'
    - item_type: preproc_def
      name: OS_LISTXATTR_METHODDEF
      pos:
        line_end: 7342
        line_start: 7340
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"listxattr", (PyCFunction)(void(*)(void))os_listxattr, METH_FASTCALL|METH_KEYWORDS,
        os_listxattr__doc__},'
    - item_type: preproc_def
      name: OS_URANDOM_METHODDEF
      pos:
        line_end: 7400
        line_start: 7398
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"urandom", (PyCFunction)os_urandom, METH_O, os_urandom__doc__},'
    - item_type: preproc_def
      name: OS_MEMFD_CREATE_METHODDEF
      pos:
        line_end: 7442
        line_start: 7440
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"memfd_create", (PyCFunction)(void(*)(void))os_memfd_create,
        METH_FASTCALL|METH_KEYWORDS, os_memfd_create__doc__},'
    - item_type: preproc_def
      name: OS_CPU_COUNT_METHODDEF
      pos:
        line_end: 7500
        line_start: 7498
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"cpu_count", (PyCFunction)os_cpu_count, METH_NOARGS, os_cpu_count__doc__},'
    - item_type: preproc_def
      name: OS_GET_INHERITABLE_METHODDEF
      pos:
        line_end: 7518
        line_start: 7516
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"get_inheritable", (PyCFunction)os_get_inheritable, METH_O,
        os_get_inheritable__doc__},'
    - item_type: preproc_def
      name: OS_SET_INHERITABLE_METHODDEF
      pos:
        line_end: 7556
        line_start: 7554
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"set_inheritable", (PyCFunction)(void(*)(void))os_set_inheritable,
        METH_FASTCALL, os_set_inheritable__doc__},'
    - item_type: preproc_def
      name: OS_GET_HANDLE_INHERITABLE_METHODDEF
      pos:
        line_end: 7604
        line_start: 7602
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"get_handle_inheritable", (PyCFunction)os_get_handle_inheritable,
        METH_O, os_get_handle_inheritable__doc__},'
    - item_type: preproc_def
      name: OS_SET_HANDLE_INHERITABLE_METHODDEF
      pos:
        line_end: 7640
        line_start: 7638
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"set_handle_inheritable", (PyCFunction)(void(*)(void))os_set_handle_inheritable,
        METH_FASTCALL, os_set_handle_inheritable__doc__},'
    - item_type: preproc_def
      name: OS_GET_BLOCKING_METHODDEF
      pos:
        line_end: 7676
        line_start: 7674
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"get_blocking", (PyCFunction)os_get_blocking, METH_O, os_get_blocking__doc__},'
    - item_type: preproc_def
      name: OS_SET_BLOCKING_METHODDEF
      pos:
        line_end: 7721
        line_start: 7719
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"set_blocking", (PyCFunction)(void(*)(void))os_set_blocking,
        METH_FASTCALL, os_set_blocking__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY_IS_SYMLINK_METHODDEF
      pos:
        line_end: 7769
        line_start: 7767
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"is_symlink", (PyCFunction)os_DirEntry_is_symlink, METH_NOARGS,
        os_DirEntry_is_symlink__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY_STAT_METHODDEF
      pos:
        line_end: 7797
        line_start: 7795
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"stat", (PyCFunction)(void(*)(void))os_DirEntry_stat, METH_FASTCALL|METH_KEYWORDS,
        os_DirEntry_stat__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY_IS_DIR_METHODDEF
      pos:
        line_end: 7837
        line_start: 7835
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"is_dir", (PyCFunction)(void(*)(void))os_DirEntry_is_dir, METH_FASTCALL|METH_KEYWORDS,
        os_DirEntry_is_dir__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY_IS_FILE_METHODDEF
      pos:
        line_end: 7882
        line_start: 7880
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"is_file", (PyCFunction)(void(*)(void))os_DirEntry_is_file,
        METH_FASTCALL|METH_KEYWORDS, os_DirEntry_is_file__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY_INODE_METHODDEF
      pos:
        line_end: 7927
        line_start: 7925
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"inode", (PyCFunction)os_DirEntry_inode, METH_NOARGS, os_DirEntry_inode__doc__},'
    - item_type: preproc_def
      name: OS_DIRENTRY___FSPATH___METHODDEF
      pos:
        line_end: 7945
        line_start: 7943
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"__fspath__", (PyCFunction)os_DirEntry___fspath__, METH_NOARGS,
        os_DirEntry___fspath____doc__},'
    - item_type: preproc_def
      name: OS_SCANDIR_METHODDEF
      pos:
        line_end: 7969
        line_start: 7967
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"scandir", (PyCFunction)(void(*)(void))os_scandir, METH_FASTCALL|METH_KEYWORDS,
        os_scandir__doc__},'
    - item_type: preproc_def
      name: OS_FSPATH_METHODDEF
      pos:
        line_end: 8015
        line_start: 8013
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"fspath", (PyCFunction)(void(*)(void))os_fspath, METH_FASTCALL|METH_KEYWORDS,
        os_fspath__doc__},'
    - item_type: preproc_def
      name: OS_GETRANDOM_METHODDEF
      pos:
        line_end: 8049
        line_start: 8047
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"getrandom", (PyCFunction)(void(*)(void))os_getrandom, METH_FASTCALL|METH_KEYWORDS,
        os_getrandom__doc__},'
    - item_type: preproc_def
      name: OS__ADD_DLL_DIRECTORY_METHODDEF
      pos:
        line_end: 8123
        line_start: 8121
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_add_dll_directory", (PyCFunction)(void(*)(void))os__add_dll_directory,
        METH_FASTCALL|METH_KEYWORDS, os__add_dll_directory__doc__},'
    - item_type: preproc_def
      name: OS__REMOVE_DLL_DIRECTORY_METHODDEF
      pos:
        line_end: 8168
        line_start: 8166
        source_file: /src/Python-3.8.3/Modules/clinic/posixmodule.c.h
      type_or_value: '{"_remove_dll_directory", (PyCFunction)(void(*)(void))os__remove_dll_directory,
        METH_FASTCALL|METH_KEYWORDS, os__remove_dll_directory__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - crypt_crypt
  source_file: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRYPT_CRYPT_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/clinic/_cryptmodule.c.h
      type_or_value: '{"crypt", (PyCFunction)(void(*)(void))crypt_crypt, METH_FASTCALL,
        crypt_crypt__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - binascii_a2b_uu
  - binascii_b2a_uu
  - binascii_a2b_base64
  - binascii_b2a_base64
  - binascii_a2b_hqx
  - binascii_rlecode_hqx
  - binascii_b2a_hqx
  - binascii_rledecode_hqx
  - binascii_crc_hqx
  - binascii_crc32
  - binascii_b2a_hex
  - binascii_hexlify
  - binascii_a2b_hex
  - binascii_unhexlify
  - binascii_a2b_qp
  - binascii_b2a_qp
  source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BINASCII_A2B_UU_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"a2b_uu", (PyCFunction)binascii_a2b_uu, METH_O, binascii_a2b_uu__doc__},'
    - item_type: preproc_def
      name: BINASCII_B2A_UU_METHODDEF
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"b2a_uu", (PyCFunction)(void(*)(void))binascii_b2a_uu, METH_FASTCALL|METH_KEYWORDS,
        binascii_b2a_uu__doc__},'
    - item_type: preproc_def
      name: BINASCII_A2B_BASE64_METHODDEF
      pos:
        line_end: 101
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"a2b_base64", (PyCFunction)binascii_a2b_base64, METH_O, binascii_a2b_base64__doc__},'
    - item_type: preproc_def
      name: BINASCII_B2A_BASE64_METHODDEF
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"b2a_base64", (PyCFunction)(void(*)(void))binascii_b2a_base64,
        METH_FASTCALL|METH_KEYWORDS, binascii_b2a_base64__doc__},'
    - item_type: preproc_def
      name: BINASCII_A2B_HQX_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"a2b_hqx", (PyCFunction)binascii_a2b_hqx, METH_O, binascii_a2b_hqx__doc__},'
    - item_type: preproc_def
      name: BINASCII_RLECODE_HQX_METHODDEF
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"rlecode_hqx", (PyCFunction)binascii_rlecode_hqx, METH_O, binascii_rlecode_hqx__doc__},'
    - item_type: preproc_def
      name: BINASCII_B2A_HQX_METHODDEF
      pos:
        line_end: 257
        line_start: 255
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"b2a_hqx", (PyCFunction)binascii_b2a_hqx, METH_O, binascii_b2a_hqx__doc__},'
    - item_type: preproc_def
      name: BINASCII_RLEDECODE_HQX_METHODDEF
      pos:
        line_end: 293
        line_start: 291
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"rledecode_hqx", (PyCFunction)binascii_rledecode_hqx, METH_O,
        binascii_rledecode_hqx__doc__},'
    - item_type: preproc_def
      name: BINASCII_CRC_HQX_METHODDEF
      pos:
        line_end: 329
        line_start: 327
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"crc_hqx", (PyCFunction)(void(*)(void))binascii_crc_hqx, METH_FASTCALL,
        binascii_crc_hqx__doc__},'
    - item_type: preproc_def
      name: BINASCII_CRC32_METHODDEF
      pos:
        line_end: 383
        line_start: 381
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"crc32", (PyCFunction)(void(*)(void))binascii_crc32, METH_FASTCALL,
        binascii_crc32__doc__},'
    - item_type: preproc_def
      name: BINASCII_B2A_HEX_METHODDEF
      pos:
        line_end: 458
        line_start: 456
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"b2a_hex", (PyCFunction)(void(*)(void))binascii_b2a_hex, METH_FASTCALL|METH_KEYWORDS,
        binascii_b2a_hex__doc__},'
    - item_type: preproc_def
      name: BINASCII_HEXLIFY_METHODDEF
      pos:
        line_end: 533
        line_start: 531
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"hexlify", (PyCFunction)(void(*)(void))binascii_hexlify, METH_FASTCALL|METH_KEYWORDS,
        binascii_hexlify__doc__},'
    - item_type: preproc_def
      name: BINASCII_A2B_HEX_METHODDEF
      pos:
        line_end: 602
        line_start: 600
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"a2b_hex", (PyCFunction)binascii_a2b_hex, METH_O, binascii_a2b_hex__doc__},'
    - item_type: preproc_def
      name: BINASCII_UNHEXLIFY_METHODDEF
      pos:
        line_end: 635
        line_start: 633
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"unhexlify", (PyCFunction)binascii_unhexlify, METH_O, binascii_unhexlify__doc__},'
    - item_type: preproc_def
      name: BINASCII_A2B_QP_METHODDEF
      pos:
        line_end: 666
        line_start: 664
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"a2b_qp", (PyCFunction)(void(*)(void))binascii_a2b_qp, METH_FASTCALL|METH_KEYWORDS,
        binascii_a2b_qp__doc__},'
    - item_type: preproc_def
      name: BINASCII_B2A_QP_METHODDEF
      pos:
        line_end: 723
        line_start: 721
        source_file: /src/Python-3.8.3/Modules/clinic/binascii.c.h
      type_or_value: '{"b2a_qp", (PyCFunction)(void(*)(void))binascii_b2a_qp, METH_FASTCALL|METH_KEYWORDS,
        binascii_b2a_qp__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - fcntl_fcntl
  - fcntl_ioctl
  - fcntl_flock
  - fcntl_lockf
  source_file: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FCNTL_FCNTL_METHODDEF
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
      type_or_value: '{"fcntl", (PyCFunction)(void(*)(void))fcntl_fcntl, METH_FASTCALL,
        fcntl_fcntl__doc__},'
    - item_type: preproc_def
      name: FCNTL_IOCTL_METHODDEF
      pos:
        line_end: 95
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
      type_or_value: '{"ioctl", (PyCFunction)(void(*)(void))fcntl_ioctl, METH_FASTCALL,
        fcntl_ioctl__doc__},'
    - item_type: preproc_def
      name: FCNTL_FLOCK_METHODDEF
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
      type_or_value: '{"flock", (PyCFunction)(void(*)(void))fcntl_flock, METH_FASTCALL,
        fcntl_flock__doc__},'
    - item_type: preproc_def
      name: FCNTL_LOCKF_METHODDEF
      pos:
        line_end: 214
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/clinic/fcntlmodule.c.h
      type_or_value: '{"lockf", (PyCFunction)(void(*)(void))fcntl_lockf, METH_FASTCALL,
        fcntl_lockf__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Struct___init__
  - Struct_unpack
  - Struct_unpack_from
  - _clearcache
  - calcsize
  - unpack
  - unpack_from
  - iter_unpack
  source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRUCT_UNPACK_METHODDEF
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"unpack", (PyCFunction)Struct_unpack, METH_O, Struct_unpack__doc__},'
    - item_type: preproc_def
      name: STRUCT_UNPACK_FROM_METHODDEF
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"unpack_from", (PyCFunction)(void(*)(void))Struct_unpack_from,
        METH_FASTCALL|METH_KEYWORDS, Struct_unpack_from__doc__},'
    - item_type: preproc_def
      name: STRUCT_ITER_UNPACK_METHODDEF
      pos:
        line_end: 168
        line_start: 166
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"iter_unpack", (PyCFunction)Struct_iter_unpack, METH_O, Struct_iter_unpack__doc__},'
    - item_type: preproc_def
      name: _CLEARCACHE_METHODDEF
      pos:
        line_end: 177
        line_start: 175
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"_clearcache", (PyCFunction)_clearcache, METH_NOARGS, _clearcache__doc__},'
    - item_type: preproc_def
      name: CALCSIZE_METHODDEF
      pos:
        line_end: 195
        line_start: 193
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"calcsize", (PyCFunction)calcsize, METH_O, calcsize__doc__},'
    - item_type: preproc_def
      name: UNPACK_METHODDEF
      pos:
        line_end: 234
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"unpack", (PyCFunction)(void(*)(void))unpack, METH_FASTCALL,
        unpack__doc__},'
    - item_type: preproc_def
      name: UNPACK_FROM_METHODDEF
      pos:
        line_end: 283
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"unpack_from", (PyCFunction)(void(*)(void))unpack_from, METH_FASTCALL|METH_KEYWORDS,
        unpack_from__doc__},'
    - item_type: preproc_def
      name: ITER_UNPACK_METHODDEF
      pos:
        line_end: 361
        line_start: 359
        source_file: /src/Python-3.8.3/Modules/clinic/_struct.c.h
      type_or_value: '{"iter_unpack", (PyCFunction)(void(*)(void))iter_unpack, METH_FASTCALL,
        iter_unpack__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _tkinter_tkapp_eval
  - _tkinter_tkapp_evalfile
  - _tkinter_tkapp_record
  - _tkinter_tkapp_adderrorinfo
  - _tkinter_tkapp_exprstring
  - _tkinter_tkapp_exprlong
  - _tkinter_tkapp_exprdouble
  - _tkinter_tkapp_exprboolean
  - _tkinter_tkapp_createcommand
  - _tkinter_tkapp_deletecommand
  - _tkinter_tkapp_createfilehandler
  - _tkinter_tktimertoken_deletetimerhandler
  - _tkinter_tkapp_createtimerhandler
  - _tkinter_tkapp_mainloop
  - _tkinter_tkapp_dooneevent
  - _tkinter_tkapp_quit
  - _tkinter_tkapp_interpaddr
  - _tkinter_tkapp_loadtk
  - _tkinter_tkapp_willdispatch
  - _tkinter_create
  - _tkinter_setbusywaitinterval
  - _tkinter_getbusywaitinterval
  source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EVAL_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"eval", (PyCFunction)_tkinter_tkapp_eval, METH_O, _tkinter_tkapp_eval__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EVALFILE_METHODDEF
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"evalfile", (PyCFunction)_tkinter_tkapp_evalfile, METH_O, _tkinter_tkapp_evalfile__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_RECORD_METHODDEF
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"record", (PyCFunction)_tkinter_tkapp_record, METH_O, _tkinter_tkapp_record__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_ADDERRORINFO_METHODDEF
      pos:
        line_end: 119
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"adderrorinfo", (PyCFunction)_tkinter_tkapp_adderrorinfo, METH_O,
        _tkinter_tkapp_adderrorinfo__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_GETINT_METHODDEF
      pos:
        line_end: 155
        line_start: 153
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"getint", (PyCFunction)_tkinter_tkapp_getint, METH_O, _tkinter_tkapp_getint__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_GETDOUBLE_METHODDEF
      pos:
        line_end: 163
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"getdouble", (PyCFunction)_tkinter_tkapp_getdouble, METH_O,
        _tkinter_tkapp_getdouble__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_GETBOOLEAN_METHODDEF
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"getboolean", (PyCFunction)_tkinter_tkapp_getboolean, METH_O,
        _tkinter_tkapp_getboolean__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EXPRSTRING_METHODDEF
      pos:
        line_end: 179
        line_start: 177
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"exprstring", (PyCFunction)_tkinter_tkapp_exprstring, METH_O,
        _tkinter_tkapp_exprstring__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EXPRLONG_METHODDEF
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"exprlong", (PyCFunction)_tkinter_tkapp_exprlong, METH_O, _tkinter_tkapp_exprlong__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EXPRDOUBLE_METHODDEF
      pos:
        line_end: 251
        line_start: 249
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"exprdouble", (PyCFunction)_tkinter_tkapp_exprdouble, METH_O,
        _tkinter_tkapp_exprdouble__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_EXPRBOOLEAN_METHODDEF
      pos:
        line_end: 287
        line_start: 285
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"exprboolean", (PyCFunction)_tkinter_tkapp_exprboolean, METH_O,
        _tkinter_tkapp_exprboolean__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_SPLITLIST_METHODDEF
      pos:
        line_end: 323
        line_start: 321
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"splitlist", (PyCFunction)_tkinter_tkapp_splitlist, METH_O,
        _tkinter_tkapp_splitlist__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_SPLIT_METHODDEF
      pos:
        line_end: 331
        line_start: 329
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"split", (PyCFunction)_tkinter_tkapp_split, METH_O, _tkinter_tkapp_split__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_CREATECOMMAND_METHODDEF
      pos:
        line_end: 339
        line_start: 337
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"createcommand", (PyCFunction)(void(*)(void))_tkinter_tkapp_createcommand,
        METH_FASTCALL, _tkinter_tkapp_createcommand__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_DELETECOMMAND_METHODDEF
      pos:
        line_end: 381
        line_start: 379
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"deletecommand", (PyCFunction)_tkinter_tkapp_deletecommand,
        METH_O, _tkinter_tkapp_deletecommand__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_CREATEFILEHANDLER_METHODDEF
      pos:
        line_end: 419
        line_start: 417
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"createfilehandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createfilehandler,
        METH_FASTCALL, _tkinter_tkapp_createfilehandler__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_DELETEFILEHANDLER_METHODDEF
      pos:
        line_end: 463
        line_start: 461
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"deletefilehandler", (PyCFunction)_tkinter_tkapp_deletefilehandler,
        METH_O, _tkinter_tkapp_deletefilehandler__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKTIMERTOKEN_DELETETIMERHANDLER_METHODDEF
      pos:
        line_end: 473
        line_start: 471
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"deletetimerhandler", (PyCFunction)_tkinter_tktimertoken_deletetimerhandler,
        METH_NOARGS, _tkinter_tktimertoken_deletetimerhandler__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_CREATETIMERHANDLER_METHODDEF
      pos:
        line_end: 490
        line_start: 488
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"createtimerhandler", (PyCFunction)(void(*)(void))_tkinter_tkapp_createtimerhandler,
        METH_FASTCALL, _tkinter_tkapp_createtimerhandler__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_MAINLOOP_METHODDEF
      pos:
        line_end: 528
        line_start: 526
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"mainloop", (PyCFunction)(void(*)(void))_tkinter_tkapp_mainloop,
        METH_FASTCALL, _tkinter_tkapp_mainloop__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_DOONEEVENT_METHODDEF
      pos:
        line_end: 567
        line_start: 565
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"dooneevent", (PyCFunction)(void(*)(void))_tkinter_tkapp_dooneevent,
        METH_FASTCALL, _tkinter_tkapp_dooneevent__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_QUIT_METHODDEF
      pos:
        line_end: 606
        line_start: 604
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"quit", (PyCFunction)_tkinter_tkapp_quit, METH_NOARGS, _tkinter_tkapp_quit__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_INTERPADDR_METHODDEF
      pos:
        line_end: 623
        line_start: 621
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"interpaddr", (PyCFunction)_tkinter_tkapp_interpaddr, METH_NOARGS,
        _tkinter_tkapp_interpaddr__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_LOADTK_METHODDEF
      pos:
        line_end: 640
        line_start: 638
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"loadtk", (PyCFunction)_tkinter_tkapp_loadtk, METH_NOARGS,
        _tkinter_tkapp_loadtk__doc__},'
    - item_type: preproc_def
      name: _TKINTER_TKAPP_WILLDISPATCH_METHODDEF
      pos:
        line_end: 657
        line_start: 655
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"willdispatch", (PyCFunction)_tkinter_tkapp_willdispatch, METH_NOARGS,
        _tkinter_tkapp_willdispatch__doc__},'
    - item_type: preproc_def
      name: _TKINTER__FLATTEN_METHODDEF
      pos:
        line_end: 674
        line_start: 672
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"_flatten", (PyCFunction)_tkinter__flatten, METH_O, _tkinter__flatten__doc__},'
    - item_type: preproc_def
      name: _TKINTER_CREATE_METHODDEF
      pos:
        line_end: 692
        line_start: 690
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"create", (PyCFunction)(void(*)(void))_tkinter_create, METH_FASTCALL,
        _tkinter_create__doc__},'
    - item_type: preproc_def
      name: _TKINTER_SETBUSYWAITINTERVAL_METHODDEF
      pos:
        line_end: 854
        line_start: 852
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"setbusywaitinterval", (PyCFunction)_tkinter_setbusywaitinterval,
        METH_O, _tkinter_setbusywaitinterval__doc__},'
    - item_type: preproc_def
      name: _TKINTER_GETBUSYWAITINTERVAL_METHODDEF
      pos:
        line_end: 887
        line_start: 885
        source_file: /src/Python-3.8.3/Modules/clinic/_tkinter.c.h
      type_or_value: '{"getbusywaitinterval", (PyCFunction)_tkinter_getbusywaitinterval,
        METH_NOARGS, _tkinter_getbusywaitinterval__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - zlib_compress
  - zlib_decompress
  - zlib_compressobj
  - zlib_decompressobj
  - zlib_Compress_compress
  - zlib_Decompress_decompress
  - zlib_Compress_flush
  - zlib_Compress_copy
  - zlib_Compress___copy__
  - zlib_Decompress_copy
  - zlib_Decompress___copy__
  - zlib_Decompress_flush
  - zlib_adler32
  - zlib_crc32
  source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ZLIB_COMPRESS_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"compress", (PyCFunction)(void(*)(void))zlib_compress, METH_FASTCALL|METH_KEYWORDS,
        zlib_compress__doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS_METHODDEF
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"decompress", (PyCFunction)(void(*)(void))zlib_decompress,
        METH_FASTCALL|METH_KEYWORDS, zlib_decompress__doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESSOBJ_METHODDEF
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"compressobj", (PyCFunction)(void(*)(void))zlib_compressobj,
        METH_FASTCALL|METH_KEYWORDS, zlib_compressobj__doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESSOBJ_METHODDEF
      pos:
        line_end: 304
        line_start: 302
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"decompressobj", (PyCFunction)(void(*)(void))zlib_decompressobj,
        METH_FASTCALL|METH_KEYWORDS, zlib_decompressobj__doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESS_COMPRESS_METHODDEF
      pos:
        line_end: 363
        line_start: 361
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"compress", (PyCFunction)zlib_Compress_compress, METH_O, zlib_Compress_compress__doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS_DECOMPRESS_METHODDEF
      pos:
        line_end: 410
        line_start: 408
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"decompress", (PyCFunction)(void(*)(void))zlib_Decompress_decompress,
        METH_FASTCALL|METH_KEYWORDS, zlib_Decompress_decompress__doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESS_FLUSH_METHODDEF
      pos:
        line_end: 469
        line_start: 467
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"flush", (PyCFunction)(void(*)(void))zlib_Compress_flush, METH_FASTCALL,
        zlib_Compress_flush__doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESS_COPY_METHODDEF
      pos:
        line_end: 511
        line_start: 509
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"copy", (PyCFunction)zlib_Compress_copy, METH_NOARGS, zlib_Compress_copy__doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESS___COPY___METHODDEF
      pos:
        line_end: 532
        line_start: 530
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"__copy__", (PyCFunction)zlib_Compress___copy__, METH_NOARGS,
        zlib_Compress___copy____doc__},'
    - item_type: preproc_def
      name: ZLIB_COMPRESS___DEEPCOPY___METHODDEF
      pos:
        line_end: 553
        line_start: 551
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)zlib_Compress___deepcopy__, METH_O,
        zlib_Compress___deepcopy____doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS_COPY_METHODDEF
      pos:
        line_end: 566
        line_start: 564
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"copy", (PyCFunction)zlib_Decompress_copy, METH_NOARGS, zlib_Decompress_copy__doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS___COPY___METHODDEF
      pos:
        line_end: 587
        line_start: 585
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"__copy__", (PyCFunction)zlib_Decompress___copy__, METH_NOARGS,
        zlib_Decompress___copy____doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
      pos:
        line_end: 608
        line_start: 606
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)zlib_Decompress___deepcopy__,
        METH_O, zlib_Decompress___deepcopy____doc__},'
    - item_type: preproc_def
      name: ZLIB_DECOMPRESS_FLUSH_METHODDEF
      pos:
        line_end: 622
        line_start: 620
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"flush", (PyCFunction)(void(*)(void))zlib_Decompress_flush,
        METH_FASTCALL, zlib_Decompress_flush__doc__},'
    - item_type: preproc_def
      name: ZLIB_ADLER32_METHODDEF
      pos:
        line_end: 661
        line_start: 659
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"adler32", (PyCFunction)(void(*)(void))zlib_adler32, METH_FASTCALL,
        zlib_adler32__doc__},'
    - item_type: preproc_def
      name: ZLIB_CRC32_METHODDEF
      pos:
        line_end: 719
        line_start: 717
        source_file: /src/Python-3.8.3/Modules/clinic/zlibmodule.c.h
      type_or_value: '{"crc32", (PyCFunction)(void(*)(void))zlib_crc32, METH_FASTCALL,
        zlib_crc32__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _winapi_Overlapped_GetOverlappedResult
  - _winapi_Overlapped_getbuffer
  - _winapi_Overlapped_cancel
  - _winapi_CloseHandle
  - _winapi_ConnectNamedPipe
  - _winapi_CreateFile
  - _winapi_CreateFileMapping
  - _winapi_CreateJunction
  - _winapi_CreateNamedPipe
  - _winapi_CreatePipe
  - _winapi_CreateProcess
  - _winapi_DuplicateHandle
  - _winapi_ExitProcess
  - _winapi_GetCurrentProcess
  - _winapi_GetExitCodeProcess
  - _winapi_GetLastError
  - _winapi_GetModuleFileName
  - _winapi_GetStdHandle
  - _winapi_GetVersion
  - _winapi_MapViewOfFile
  - _winapi_OpenFileMapping
  - _winapi_OpenProcess
  - _winapi_PeekNamedPipe
  - _winapi_ReadFile
  - _winapi_SetNamedPipeHandleState
  - _winapi_TerminateProcess
  - _winapi_VirtualQuerySize
  - _winapi_WaitNamedPipe
  - _winapi_WaitForMultipleObjects
  - _winapi_WaitForSingleObject
  - _winapi_WriteFile
  - _winapi_GetACP
  - _winapi_GetFileType
  source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WINAPI_OVERLAPPED_GETOVERLAPPEDRESULT_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetOverlappedResult", (PyCFunction)_winapi_Overlapped_GetOverlappedResult,
        METH_O, _winapi_Overlapped_GetOverlappedResult__doc__},'
    - item_type: preproc_def
      name: _WINAPI_OVERLAPPED_GETBUFFER_METHODDEF
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"getbuffer", (PyCFunction)_winapi_Overlapped_getbuffer, METH_NOARGS,
        _winapi_Overlapped_getbuffer__doc__},'
    - item_type: preproc_def
      name: _WINAPI_OVERLAPPED_CANCEL_METHODDEF
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"cancel", (PyCFunction)_winapi_Overlapped_cancel, METH_NOARGS,
        _winapi_Overlapped_cancel__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CLOSEHANDLE_METHODDEF
      pos:
        line_end: 73
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CloseHandle", (PyCFunction)_winapi_CloseHandle, METH_O, _winapi_CloseHandle__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CONNECTNAMEDPIPE_METHODDEF
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"ConnectNamedPipe", (PyCFunction)(void(*)(void))_winapi_ConnectNamedPipe,
        METH_FASTCALL|METH_KEYWORDS, _winapi_ConnectNamedPipe__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATEFILE_METHODDEF
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreateFile", (PyCFunction)(void(*)(void))_winapi_CreateFile,
        METH_FASTCALL, _winapi_CreateFile__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATEFILEMAPPING_METHODDEF
      pos:
        line_end: 178
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreateFileMapping", (PyCFunction)(void(*)(void))_winapi_CreateFileMapping,
        METH_FASTCALL, _winapi_CreateFileMapping__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATEJUNCTION_METHODDEF
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreateJunction", (PyCFunction)(void(*)(void))_winapi_CreateJunction,
        METH_FASTCALL, _winapi_CreateJunction__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATENAMEDPIPE_METHODDEF
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreateNamedPipe", (PyCFunction)(void(*)(void))_winapi_CreateNamedPipe,
        METH_FASTCALL, _winapi_CreateNamedPipe__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATEPIPE_METHODDEF
      pos:
        line_end: 304
        line_start: 302
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreatePipe", (PyCFunction)(void(*)(void))_winapi_CreatePipe,
        METH_FASTCALL, _winapi_CreatePipe__doc__},'
    - item_type: preproc_def
      name: _WINAPI_CREATEPROCESS_METHODDEF
      pos:
        line_end: 345
        line_start: 343
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"CreateProcess", (PyCFunction)(void(*)(void))_winapi_CreateProcess,
        METH_FASTCALL, _winapi_CreateProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_DUPLICATEHANDLE_METHODDEF
      pos:
        line_end: 393
        line_start: 391
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"DuplicateHandle", (PyCFunction)(void(*)(void))_winapi_DuplicateHandle,
        METH_FASTCALL, _winapi_DuplicateHandle__doc__},'
    - item_type: preproc_def
      name: _WINAPI_EXITPROCESS_METHODDEF
      pos:
        line_end: 437
        line_start: 435
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"ExitProcess", (PyCFunction)_winapi_ExitProcess, METH_O, _winapi_ExitProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETCURRENTPROCESS_METHODDEF
      pos:
        line_end: 464
        line_start: 462
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetCurrentProcess", (PyCFunction)_winapi_GetCurrentProcess,
        METH_NOARGS, _winapi_GetCurrentProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETEXITCODEPROCESS_METHODDEF
      pos:
        line_end: 495
        line_start: 493
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetExitCodeProcess", (PyCFunction)_winapi_GetExitCodeProcess,
        METH_O, _winapi_GetExitCodeProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETLASTERROR_METHODDEF
      pos:
        line_end: 526
        line_start: 524
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetLastError", (PyCFunction)_winapi_GetLastError, METH_NOARGS,
        _winapi_GetLastError__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETMODULEFILENAME_METHODDEF
      pos:
        line_end: 561
        line_start: 559
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetModuleFileName", (PyCFunction)_winapi_GetModuleFileName,
        METH_O, _winapi_GetModuleFileName__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETSTDHANDLE_METHODDEF
      pos:
        line_end: 593
        line_start: 591
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetStdHandle", (PyCFunction)_winapi_GetStdHandle, METH_O,
        _winapi_GetStdHandle__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETVERSION_METHODDEF
      pos:
        line_end: 628
        line_start: 626
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetVersion", (PyCFunction)_winapi_GetVersion, METH_NOARGS,
        _winapi_GetVersion__doc__},'
    - item_type: preproc_def
      name: _WINAPI_MAPVIEWOFFILE_METHODDEF
      pos:
        line_end: 656
        line_start: 654
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"MapViewOfFile", (PyCFunction)(void(*)(void))_winapi_MapViewOfFile,
        METH_FASTCALL, _winapi_MapViewOfFile__doc__},'
    - item_type: preproc_def
      name: _WINAPI_OPENFILEMAPPING_METHODDEF
      pos:
        line_end: 694
        line_start: 692
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"OpenFileMapping", (PyCFunction)(void(*)(void))_winapi_OpenFileMapping,
        METH_FASTCALL, _winapi_OpenFileMapping__doc__},'
    - item_type: preproc_def
      name: _WINAPI_OPENPROCESS_METHODDEF
      pos:
        line_end: 732
        line_start: 730
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"OpenProcess", (PyCFunction)(void(*)(void))_winapi_OpenProcess,
        METH_FASTCALL, _winapi_OpenProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_PEEKNAMEDPIPE_METHODDEF
      pos:
        line_end: 770
        line_start: 768
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"PeekNamedPipe", (PyCFunction)(void(*)(void))_winapi_PeekNamedPipe,
        METH_FASTCALL, _winapi_PeekNamedPipe__doc__},'
    - item_type: preproc_def
      name: _WINAPI_READFILE_METHODDEF
      pos:
        line_end: 798
        line_start: 796
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"ReadFile", (PyCFunction)(void(*)(void))_winapi_ReadFile, METH_FASTCALL|METH_KEYWORDS,
        _winapi_ReadFile__doc__},'
    - item_type: preproc_def
      name: _WINAPI_SETNAMEDPIPEHANDLESTATE_METHODDEF
      pos:
        line_end: 831
        line_start: 829
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"SetNamedPipeHandleState", (PyCFunction)(void(*)(void))_winapi_SetNamedPipeHandleState,
        METH_FASTCALL, _winapi_SetNamedPipeHandleState__doc__},'
    - item_type: preproc_def
      name: _WINAPI_TERMINATEPROCESS_METHODDEF
      pos:
        line_end: 865
        line_start: 863
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"TerminateProcess", (PyCFunction)(void(*)(void))_winapi_TerminateProcess,
        METH_FASTCALL, _winapi_TerminateProcess__doc__},'
    - item_type: preproc_def
      name: _WINAPI_VIRTUALQUERYSIZE_METHODDEF
      pos:
        line_end: 894
        line_start: 892
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"VirtualQuerySize", (PyCFunction)_winapi_VirtualQuerySize,
        METH_O, _winapi_VirtualQuerySize__doc__},'
    - item_type: preproc_def
      name: _WINAPI_WAITNAMEDPIPE_METHODDEF
      pos:
        line_end: 925
        line_start: 923
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"WaitNamedPipe", (PyCFunction)(void(*)(void))_winapi_WaitNamedPipe,
        METH_FASTCALL, _winapi_WaitNamedPipe__doc__},'
    - item_type: preproc_def
      name: _WINAPI_WAITFORMULTIPLEOBJECTS_METHODDEF
      pos:
        line_end: 954
        line_start: 952
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"WaitForMultipleObjects", (PyCFunction)(void(*)(void))_winapi_WaitForMultipleObjects,
        METH_FASTCALL, _winapi_WaitForMultipleObjects__doc__},'
    - item_type: preproc_def
      name: _WINAPI_WAITFORSINGLEOBJECT_METHODDEF
      pos:
        line_end: 989
        line_start: 987
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"WaitForSingleObject", (PyCFunction)(void(*)(void))_winapi_WaitForSingleObject,
        METH_FASTCALL, _winapi_WaitForSingleObject__doc__},'
    - item_type: preproc_def
      name: _WINAPI_WRITEFILE_METHODDEF
      pos:
        line_end: 1023
        line_start: 1021
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"WriteFile", (PyCFunction)(void(*)(void))_winapi_WriteFile,
        METH_FASTCALL|METH_KEYWORDS, _winapi_WriteFile__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETACP_METHODDEF
      pos:
        line_end: 1056
        line_start: 1054
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetACP", (PyCFunction)_winapi_GetACP, METH_NOARGS, _winapi_GetACP__doc__},'
    - item_type: preproc_def
      name: _WINAPI_GETFILETYPE_METHODDEF
      pos:
        line_end: 1073
        line_start: 1071
        source_file: /src/Python-3.8.3/Modules/clinic/_winapi.c.h
      type_or_value: '{"GetFileType", (PyCFunction)(void(*)(void))_winapi_GetFileType,
        METH_FASTCALL|METH_KEYWORDS, _winapi_GetFileType__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - itertools_groupby
  - itertools__grouper
  - itertools_teedataobject
  - itertools__tee
  - itertools_tee
  - itertools_cycle
  - itertools_dropwhile
  - itertools_takewhile
  - itertools_starmap
  - itertools_combinations
  - itertools_combinations_with_replacement
  - itertools_permutations
  - itertools_accumulate
  - itertools_compress
  - itertools_filterfalse
  - itertools_count
  source_file: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ITERTOOLS_TEE_METHODDEF
      pos:
        line_end: 154
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
      type_or_value: '{"tee", (PyCFunction)(void(*)(void))itertools_tee, METH_FASTCALL,
        itertools_tee__doc__},'
    - item_type: preproc_def
      name: ITERTOOLS_CHAIN_FROM_ITERABLE_METHODDEF
      pos:
        line_end: 328
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/clinic/itertoolsmodule.c.h
      type_or_value: '{"from_iterable", (PyCFunction)itertools_chain_from_iterable,
        METH_O|METH_CLASS, itertools_chain_from_iterable__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - spwd_getspnam
  - spwd_getspall
  source_file: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SPWD_GETSPNAM_METHODDEF
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h
      type_or_value: '{"getspnam", (PyCFunction)spwd_getspnam, METH_O, spwd_getspnam__doc__},'
    - item_type: preproc_def
      name: SPWD_GETSPALL_METHODDEF
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/clinic/spwdmodule.c.h
      type_or_value: '{"getspall", (PyCFunction)spwd_getspall, METH_NOARGS, spwd_getspall__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHA1Type_copy
  - SHA1Type_digest
  - SHA1Type_hexdigest
  - _sha1_sha1
  source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA1TYPE_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
      type_or_value: '{"copy", (PyCFunction)SHA1Type_copy, METH_NOARGS, SHA1Type_copy__doc__},'
    - item_type: preproc_def
      name: SHA1TYPE_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
      type_or_value: '{"digest", (PyCFunction)SHA1Type_digest, METH_NOARGS, SHA1Type_digest__doc__},'
    - item_type: preproc_def
      name: SHA1TYPE_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)SHA1Type_hexdigest, METH_NOARGS,
        SHA1Type_hexdigest__doc__},'
    - item_type: preproc_def
      name: SHA1TYPE_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
      type_or_value: '{"update", (PyCFunction)SHA1Type_update, METH_O, SHA1Type_update__doc__},'
    - item_type: preproc_def
      name: _SHA1_SHA1_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/sha1module.c.h
      type_or_value: '{"sha1", (PyCFunction)(void(*)(void))_sha1_sha1, METH_FASTCALL|METH_KEYWORDS,
        _sha1_sha1__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - resource_getrusage
  - resource_getrlimit
  - resource_setrlimit
  - resource_prlimit
  - resource_getpagesize
  source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RESOURCE_GETRUSAGE_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
      type_or_value: '{"getrusage", (PyCFunction)resource_getrusage, METH_O, resource_getrusage__doc__},'
    - item_type: preproc_def
      name: RESOURCE_GETRLIMIT_METHODDEF
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
      type_or_value: '{"getrlimit", (PyCFunction)resource_getrlimit, METH_O, resource_getrlimit__doc__},'
    - item_type: preproc_def
      name: RESOURCE_SETRLIMIT_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
      type_or_value: '{"setrlimit", (PyCFunction)(void(*)(void))resource_setrlimit,
        METH_FASTCALL, resource_setrlimit__doc__},'
    - item_type: preproc_def
      name: RESOURCE_PRLIMIT_METHODDEF
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
      type_or_value: '{"prlimit", (PyCFunction)resource_prlimit, METH_VARARGS, resource_prlimit__doc__},'
    - item_type: preproc_def
      name: RESOURCE_GETPAGESIZE_METHODDEF
      pos:
        line_end: 157
        line_start: 155
        source_file: /src/Python-3.8.3/Modules/clinic/resource.c.h
      type_or_value: '{"getpagesize", (PyCFunction)resource_getpagesize, METH_NOARGS,
        resource_getpagesize__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _curses_panel_panel_bottom
  - _curses_panel_panel_hide
  - _curses_panel_panel_show
  - _curses_panel_panel_top
  - _curses_panel_panel_above
  - _curses_panel_panel_below
  - _curses_panel_panel_hidden
  - _curses_panel_panel_move
  - _curses_panel_panel_window
  - _curses_panel_panel_replace
  - _curses_panel_panel_userptr
  - _curses_panel_bottom_panel
  - _curses_panel_new_panel
  - _curses_panel_top_panel
  - _curses_panel_update_panels
  source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_BOTTOM_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"bottom", (PyCFunction)_curses_panel_panel_bottom, METH_NOARGS,
        _curses_panel_panel_bottom__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_HIDE_METHODDEF
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"hide", (PyCFunction)_curses_panel_panel_hide, METH_NOARGS,
        _curses_panel_panel_hide__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_SHOW_METHODDEF
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"show", (PyCFunction)_curses_panel_panel_show, METH_NOARGS,
        _curses_panel_panel_show__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_TOP_METHODDEF
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"top", (PyCFunction)_curses_panel_panel_top, METH_NOARGS, _curses_panel_panel_top__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_ABOVE_METHODDEF
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"above", (PyCFunction)_curses_panel_panel_above, METH_NOARGS,
        _curses_panel_panel_above__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_BELOW_METHODDEF
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"below", (PyCFunction)_curses_panel_panel_below, METH_NOARGS,
        _curses_panel_panel_below__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_HIDDEN_METHODDEF
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"hidden", (PyCFunction)_curses_panel_panel_hidden, METH_NOARGS,
        _curses_panel_panel_hidden__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_MOVE_METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"move", (PyCFunction)(void(*)(void))_curses_panel_panel_move,
        METH_FASTCALL, _curses_panel_panel_move__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_WINDOW_METHODDEF
      pos:
        line_end: 186
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"window", (PyCFunction)_curses_panel_panel_window, METH_NOARGS,
        _curses_panel_panel_window__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_REPLACE_METHODDEF
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"replace", (PyCFunction)_curses_panel_panel_replace, METH_O,
        _curses_panel_panel_replace__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_SET_USERPTR_METHODDEF
      pos:
        line_end: 234
        line_start: 232
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"set_userptr", (PyCFunction)_curses_panel_panel_set_userptr,
        METH_O, _curses_panel_panel_set_userptr__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_PANEL_USERPTR_METHODDEF
      pos:
        line_end: 243
        line_start: 241
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"userptr", (PyCFunction)_curses_panel_panel_userptr, METH_NOARGS,
        _curses_panel_panel_userptr__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_BOTTOM_PANEL_METHODDEF
      pos:
        line_end: 261
        line_start: 259
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"bottom_panel", (PyCFunction)_curses_panel_bottom_panel, METH_NOARGS,
        _curses_panel_bottom_panel__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_NEW_PANEL_METHODDEF
      pos:
        line_end: 279
        line_start: 277
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"new_panel", (PyCFunction)_curses_panel_new_panel, METH_O,
        _curses_panel_new_panel__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_TOP_PANEL_METHODDEF
      pos:
        line_end: 308
        line_start: 306
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"top_panel", (PyCFunction)_curses_panel_top_panel, METH_NOARGS,
        _curses_panel_top_panel__doc__},'
    - item_type: preproc_def
      name: _CURSES_PANEL_UPDATE_PANELS_METHODDEF
      pos:
        line_end: 328
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/clinic/_curses_panel.c.h
      type_or_value: '{"update_panels", (PyCFunction)_curses_panel_update_panels,
        METH_NOARGS, _curses_panel_update_panels__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - datetime_datetime_now
  source_file: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATETIME_DATE_FROMTIMESTAMP_METHODDEF
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h
      type_or_value: '{"fromtimestamp", (PyCFunction)datetime_date_fromtimestamp,
        METH_O|METH_CLASS, datetime_date_fromtimestamp__doc__},'
    - item_type: preproc_def
      name: DATETIME_DATETIME_NOW_METHODDEF
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/Python-3.8.3/Modules/clinic/_datetimemodule.c.h
      type_or_value: '{"now", (PyCFunction)(void(*)(void))datetime_datetime_now, METH_FASTCALL|METH_KEYWORDS|METH_CLASS,
        datetime_datetime_now__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _weakref_getweakrefcount
  - _weakref__remove_dead_weakref
  source_file: /src/Python-3.8.3/Modules/clinic/_weakref.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WEAKREF_GETWEAKREFCOUNT_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_weakref.c.h
      type_or_value: '{"getweakrefcount", (PyCFunction)_weakref_getweakrefcount, METH_O,
        _weakref_getweakrefcount__doc__},'
    - item_type: preproc_def
      name: _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/clinic/_weakref.c.h
      type_or_value: '{"_remove_dead_weakref", (PyCFunction)(void(*)(void))_weakref__remove_dead_weakref,
        METH_FASTCALL, _weakref__remove_dead_weakref__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _abc__abc_register
  - _abc__abc_instancecheck
  - _abc__abc_subclasscheck
  - _abc_get_cache_token
  source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _ABC__RESET_REGISTRY_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_reset_registry", (PyCFunction)_abc__reset_registry, METH_O,
        _abc__reset_registry__doc__},'
    - item_type: preproc_def
      name: _ABC__RESET_CACHES_METHODDEF
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_reset_caches", (PyCFunction)_abc__reset_caches, METH_O, _abc__reset_caches__doc__},'
    - item_type: preproc_def
      name: _ABC__GET_DUMP_METHODDEF
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_get_dump", (PyCFunction)_abc__get_dump, METH_O, _abc__get_dump__doc__},'
    - item_type: preproc_def
      name: _ABC__ABC_INIT_METHODDEF
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_abc_init", (PyCFunction)_abc__abc_init, METH_O, _abc__abc_init__doc__},'
    - item_type: preproc_def
      name: _ABC__ABC_REGISTER_METHODDEF
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_abc_register", (PyCFunction)(void(*)(void))_abc__abc_register,
        METH_FASTCALL, _abc__abc_register__doc__},'
    - item_type: preproc_def
      name: _ABC__ABC_INSTANCECHECK_METHODDEF
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_abc_instancecheck", (PyCFunction)(void(*)(void))_abc__abc_instancecheck,
        METH_FASTCALL, _abc__abc_instancecheck__doc__},'
    - item_type: preproc_def
      name: _ABC__ABC_SUBCLASSCHECK_METHODDEF
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"_abc_subclasscheck", (PyCFunction)(void(*)(void))_abc__abc_subclasscheck,
        METH_FASTCALL, _abc__abc_subclasscheck__doc__},'
    - item_type: preproc_def
      name: _ABC_GET_CACHE_TOKEN_METHODDEF
      pos:
        line_end: 152
        line_start: 150
        source_file: /src/Python-3.8.3/Modules/clinic/_abc.c.h
      type_or_value: '{"get_cache_token", (PyCFunction)_abc_get_cache_token, METH_NOARGS,
        _abc_get_cache_token__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _collections__count_elements
  - tuplegetter_new
  source_file: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _COLLECTIONS__COUNT_ELEMENTS_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_collectionsmodule.c.h
      type_or_value: '{"_count_elements", (PyCFunction)(void(*)(void))_collections__count_elements,
        METH_FASTCALL, _collections__count_elements__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _statistics__normal_dist_inv_cdf
  source_file: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _STATISTICS__NORMAL_DIST_INV_CDF_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_statisticsmodule.c.h
      type_or_value: '{"_normal_dist_inv_cdf", (PyCFunction)(void(*)(void))_statistics__normal_dist_inv_cdf,
        METH_FASTCALL, _statistics__normal_dist_inv_cdf__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - simplequeue_new
  - _queue_SimpleQueue_put
  - _queue_SimpleQueue_put_nowait
  - _queue_SimpleQueue_get
  - _queue_SimpleQueue_get_nowait
  - _queue_SimpleQueue_empty
  - _queue_SimpleQueue_qsize
  source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_PUT_METHODDEF
      pos:
        line_end: 43
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"put", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put,
        METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put__doc__},'
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_PUT_NOWAIT_METHODDEF
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"put_nowait", (PyCFunction)(void(*)(void))_queue_SimpleQueue_put_nowait,
        METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_put_nowait__doc__},'
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_GET_METHODDEF
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_queue_SimpleQueue_get,
        METH_FASTCALL|METH_KEYWORDS, _queue_SimpleQueue_get__doc__},'
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_GET_NOWAIT_METHODDEF
      pos:
        line_end: 187
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"get_nowait", (PyCFunction)_queue_SimpleQueue_get_nowait, METH_NOARGS,
        _queue_SimpleQueue_get_nowait__doc__},'
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_EMPTY_METHODDEF
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"empty", (PyCFunction)_queue_SimpleQueue_empty, METH_NOARGS,
        _queue_SimpleQueue_empty__doc__},'
    - item_type: preproc_def
      name: _QUEUE_SIMPLEQUEUE_QSIZE_METHODDEF
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/Python-3.8.3/Modules/clinic/_queuemodule.c.h
      type_or_value: '{"qsize", (PyCFunction)_queue_SimpleQueue_qsize, METH_NOARGS,
        _queue_SimpleQueue_qsize__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _asyncio_Future___init__
  - _asyncio_Future_result
  - _asyncio_Future_exception
  - _asyncio_Future_add_done_callback
  - _asyncio_Future_cancel
  - _asyncio_Future_cancelled
  - _asyncio_Future_done
  - _asyncio_Future_get_loop
  - _asyncio_Future__repr_info
  - _asyncio_Task___init__
  - _asyncio_Task_current_task
  - _asyncio_Task_all_tasks
  - _asyncio_Task__repr_info
  - _asyncio_Task_cancel
  - _asyncio_Task_get_stack
  - _asyncio_Task_print_stack
  - _asyncio_Task_get_coro
  - _asyncio_Task_get_name
  - _asyncio__get_running_loop
  - _asyncio_get_event_loop
  - _asyncio_get_running_loop
  - _asyncio__register_task
  - _asyncio__unregister_task
  - _asyncio__enter_task
  - _asyncio__leave_task
  source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_RESULT_METHODDEF
      pos:
        line_end: 63
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"result", (PyCFunction)_asyncio_Future_result, METH_NOARGS,
        _asyncio_Future_result__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_EXCEPTION_METHODDEF
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"exception", (PyCFunction)_asyncio_Future_exception, METH_NOARGS,
        _asyncio_Future_exception__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_SET_RESULT_METHODDEF
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"set_result", (PyCFunction)_asyncio_Future_set_result, METH_O,
        _asyncio_Future_set_result__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_SET_EXCEPTION_METHODDEF
      pos:
        line_end: 119
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"set_exception", (PyCFunction)_asyncio_Future_set_exception,
        METH_O, _asyncio_Future_set_exception__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_ADD_DONE_CALLBACK_METHODDEF
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"add_done_callback", (PyCFunction)(void(*)(void))_asyncio_Future_add_done_callback,
        METH_FASTCALL|METH_KEYWORDS, _asyncio_Future_add_done_callback__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_REMOVE_DONE_CALLBACK_METHODDEF
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"remove_done_callback", (PyCFunction)_asyncio_Future_remove_done_callback,
        METH_O, _asyncio_Future_remove_done_callback__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_CANCEL_METHODDEF
      pos:
        line_end: 187
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"cancel", (PyCFunction)_asyncio_Future_cancel, METH_NOARGS,
        _asyncio_Future_cancel__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_CANCELLED_METHODDEF
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"cancelled", (PyCFunction)_asyncio_Future_cancelled, METH_NOARGS,
        _asyncio_Future_cancelled__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_DONE_METHODDEF
      pos:
        line_end: 226
        line_start: 224
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"done", (PyCFunction)_asyncio_Future_done, METH_NOARGS, _asyncio_Future_done__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE_GET_LOOP_METHODDEF
      pos:
        line_end: 244
        line_start: 242
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_loop", (PyCFunction)_asyncio_Future_get_loop, METH_NOARGS,
        _asyncio_Future_get_loop__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_FUTURE__REPR_INFO_METHODDEF
      pos:
        line_end: 261
        line_start: 259
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_repr_info", (PyCFunction)_asyncio_Future__repr_info, METH_NOARGS,
        _asyncio_Future__repr_info__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_CURRENT_TASK_METHODDEF
      pos:
        line_end: 329
        line_start: 327
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"current_task", (PyCFunction)(void(*)(void))_asyncio_Task_current_task,
        METH_FASTCALL|METH_KEYWORDS|METH_CLASS, _asyncio_Task_current_task__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_ALL_TASKS_METHODDEF
      pos:
        line_end: 368
        line_start: 366
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"all_tasks", (PyCFunction)(void(*)(void))_asyncio_Task_all_tasks,
        METH_FASTCALL|METH_KEYWORDS|METH_CLASS, _asyncio_Task_all_tasks__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK__REPR_INFO_METHODDEF
      pos:
        line_end: 404
        line_start: 402
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_repr_info", (PyCFunction)_asyncio_Task__repr_info, METH_NOARGS,
        _asyncio_Task__repr_info__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_CANCEL_METHODDEF
      pos:
        line_end: 439
        line_start: 437
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"cancel", (PyCFunction)_asyncio_Task_cancel, METH_NOARGS, _asyncio_Task_cancel__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_GET_STACK_METHODDEF
      pos:
        line_end: 475
        line_start: 473
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_stack", (PyCFunction)(void(*)(void))_asyncio_Task_get_stack,
        METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_get_stack__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_PRINT_STACK_METHODDEF
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"print_stack", (PyCFunction)(void(*)(void))_asyncio_Task_print_stack,
        METH_FASTCALL|METH_KEYWORDS, _asyncio_Task_print_stack__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_SET_RESULT_METHODDEF
      pos:
        line_end: 562
        line_start: 560
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"set_result", (PyCFunction)_asyncio_Task_set_result, METH_O,
        _asyncio_Task_set_result__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_SET_EXCEPTION_METHODDEF
      pos:
        line_end: 570
        line_start: 568
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"set_exception", (PyCFunction)_asyncio_Task_set_exception,
        METH_O, _asyncio_Task_set_exception__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_GET_CORO_METHODDEF
      pos:
        line_end: 578
        line_start: 576
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_coro", (PyCFunction)_asyncio_Task_get_coro, METH_NOARGS,
        _asyncio_Task_get_coro__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_GET_NAME_METHODDEF
      pos:
        line_end: 595
        line_start: 593
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_name", (PyCFunction)_asyncio_Task_get_name, METH_NOARGS,
        _asyncio_Task_get_name__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_TASK_SET_NAME_METHODDEF
      pos:
        line_end: 612
        line_start: 610
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"set_name", (PyCFunction)_asyncio_Task_set_name, METH_O, _asyncio_Task_set_name__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__GET_RUNNING_LOOP_METHODDEF
      pos:
        line_end: 624
        line_start: 622
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_get_running_loop", (PyCFunction)_asyncio__get_running_loop,
        METH_NOARGS, _asyncio__get_running_loop__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__SET_RUNNING_LOOP_METHODDEF
      pos:
        line_end: 645
        line_start: 643
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_set_running_loop", (PyCFunction)_asyncio__set_running_loop,
        METH_O, _asyncio__set_running_loop__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_GET_EVENT_LOOP_METHODDEF
      pos:
        line_end: 661
        line_start: 659
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_event_loop", (PyCFunction)_asyncio_get_event_loop, METH_NOARGS,
        _asyncio_get_event_loop__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO_GET_RUNNING_LOOP_METHODDEF
      pos:
        line_end: 681
        line_start: 679
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"get_running_loop", (PyCFunction)_asyncio_get_running_loop,
        METH_NOARGS, _asyncio_get_running_loop__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__REGISTER_TASK_METHODDEF
      pos:
        line_end: 701
        line_start: 699
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_register_task", (PyCFunction)(void(*)(void))_asyncio__register_task,
        METH_FASTCALL|METH_KEYWORDS, _asyncio__register_task__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__UNREGISTER_TASK_METHODDEF
      pos:
        line_end: 735
        line_start: 733
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_unregister_task", (PyCFunction)(void(*)(void))_asyncio__unregister_task,
        METH_FASTCALL|METH_KEYWORDS, _asyncio__unregister_task__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__ENTER_TASK_METHODDEF
      pos:
        line_end: 771
        line_start: 769
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_enter_task", (PyCFunction)(void(*)(void))_asyncio__enter_task,
        METH_FASTCALL|METH_KEYWORDS, _asyncio__enter_task__doc__},'
    - item_type: preproc_def
      name: _ASYNCIO__LEAVE_TASK_METHODDEF
      pos:
        line_end: 809
        line_start: 807
        source_file: /src/Python-3.8.3/Modules/clinic/_asynciomodule.c.h
      type_or_value: '{"_leave_task", (PyCFunction)(void(*)(void))_asyncio__leave_task,
        METH_FASTCALL|METH_KEYWORDS, _asyncio__leave_task__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHA512Type_copy
  - SHA512Type_digest
  - SHA512Type_hexdigest
  - _sha512_sha512
  - _sha512_sha384
  source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA512TYPE_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"copy", (PyCFunction)SHA512Type_copy, METH_NOARGS, SHA512Type_copy__doc__},'
    - item_type: preproc_def
      name: SHA512TYPE_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"digest", (PyCFunction)SHA512Type_digest, METH_NOARGS, SHA512Type_digest__doc__},'
    - item_type: preproc_def
      name: SHA512TYPE_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)SHA512Type_hexdigest, METH_NOARGS,
        SHA512Type_hexdigest__doc__},'
    - item_type: preproc_def
      name: SHA512TYPE_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"update", (PyCFunction)SHA512Type_update, METH_O, SHA512Type_update__doc__},'
    - item_type: preproc_def
      name: _SHA512_SHA512_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"sha512", (PyCFunction)(void(*)(void))_sha512_sha512, METH_FASTCALL|METH_KEYWORDS,
        _sha512_sha512__doc__},'
    - item_type: preproc_def
      name: _SHA512_SHA384_METHODDEF
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/clinic/sha512module.c.h
      type_or_value: '{"sha384", (PyCFunction)(void(*)(void))_sha512_sha384, METH_FASTCALL|METH_KEYWORDS,
        _sha512_sha384__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _random_Random_random
  - _random_Random_seed
  - _random_Random_getstate
  - _random_Random_getrandbits
  source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _RANDOM_RANDOM_RANDOM_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
      type_or_value: '{"random", (PyCFunction)_random_Random_random, METH_NOARGS,
        _random_Random_random__doc__},'
    - item_type: preproc_def
      name: _RANDOM_RANDOM_SEED_METHODDEF
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
      type_or_value: '{"seed", (PyCFunction)(void(*)(void))_random_Random_seed, METH_FASTCALL,
        _random_Random_seed__doc__},'
    - item_type: preproc_def
      name: _RANDOM_RANDOM_GETSTATE_METHODDEF
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
      type_or_value: '{"getstate", (PyCFunction)_random_Random_getstate, METH_NOARGS,
        _random_Random_getstate__doc__},'
    - item_type: preproc_def
      name: _RANDOM_RANDOM_SETSTATE_METHODDEF
      pos:
        line_end: 83
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
      type_or_value: '{"setstate", (PyCFunction)_random_Random_setstate, METH_O, _random_Random_setstate__doc__},'
    - item_type: preproc_def
      name: _RANDOM_RANDOM_GETRANDBITS_METHODDEF
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/clinic/_randommodule.c.h
      type_or_value: '{"getrandbits", (PyCFunction)_random_Random_getrandbits, METH_O,
        _random_Random_getrandbits__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - array_array___copy__
  - array_array_pop
  - array_array_insert
  - array_array_buffer_info
  - array_array_byteswap
  - array_array_reverse
  - array_array_fromfile
  - array_array_tolist
  - array_array_fromstring
  - array_array_frombytes
  - array_array_tobytes
  - array_array_tostring
  - array_array_fromunicode
  - array_array_tounicode
  - array_array___sizeof__
  - array__array_reconstructor
  - array_arrayiterator___reduce__
  source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARRAY_ARRAY___COPY___METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__copy__", (PyCFunction)array_array___copy__, METH_NOARGS,
        array_array___copy____doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY___DEEPCOPY___METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)array_array___deepcopy__, METH_O,
        array_array___deepcopy____doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_COUNT_METHODDEF
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"count", (PyCFunction)array_array_count, METH_O, array_array_count__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_INDEX_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"index", (PyCFunction)array_array_index, METH_O, array_array_index__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_REMOVE_METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"remove", (PyCFunction)array_array_remove, METH_O, array_array_remove__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_POP_METHODDEF
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"pop", (PyCFunction)(void(*)(void))array_array_pop, METH_FASTCALL,
        array_array_pop__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_EXTEND_METHODDEF
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"extend", (PyCFunction)array_array_extend, METH_O, array_array_extend__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_INSERT_METHODDEF
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"insert", (PyCFunction)(void(*)(void))array_array_insert, METH_FASTCALL,
        array_array_insert__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_BUFFER_INFO_METHODDEF
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"buffer_info", (PyCFunction)array_array_buffer_info, METH_NOARGS,
        array_array_buffer_info__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_APPEND_METHODDEF
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"append", (PyCFunction)array_array_append, METH_O, array_array_append__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_BYTESWAP_METHODDEF
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"byteswap", (PyCFunction)array_array_byteswap, METH_NOARGS,
        array_array_byteswap__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_REVERSE_METHODDEF
      pos:
        line_end: 222
        line_start: 220
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"reverse", (PyCFunction)array_array_reverse, METH_NOARGS, array_array_reverse__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_FROMFILE_METHODDEF
      pos:
        line_end: 240
        line_start: 238
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"fromfile", (PyCFunction)(void(*)(void))array_array_fromfile,
        METH_FASTCALL, array_array_fromfile__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_TOFILE_METHODDEF
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"tofile", (PyCFunction)array_array_tofile, METH_O, array_array_tofile__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_FROMLIST_METHODDEF
      pos:
        line_end: 295
        line_start: 293
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"fromlist", (PyCFunction)array_array_fromlist, METH_O, array_array_fromlist__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_TOLIST_METHODDEF
      pos:
        line_end: 304
        line_start: 302
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"tolist", (PyCFunction)array_array_tolist, METH_NOARGS, array_array_tolist__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_FROMSTRING_METHODDEF
      pos:
        line_end: 324
        line_start: 322
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"fromstring", (PyCFunction)array_array_fromstring, METH_O,
        array_array_fromstring__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_FROMBYTES_METHODDEF
      pos:
        line_end: 370
        line_start: 368
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"frombytes", (PyCFunction)array_array_frombytes, METH_O, array_array_frombytes__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_TOBYTES_METHODDEF
      pos:
        line_end: 406
        line_start: 404
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"tobytes", (PyCFunction)array_array_tobytes, METH_NOARGS, array_array_tobytes__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_TOSTRING_METHODDEF
      pos:
        line_end: 426
        line_start: 424
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"tostring", (PyCFunction)array_array_tostring, METH_NOARGS,
        array_array_tostring__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_FROMUNICODE_METHODDEF
      pos:
        line_end: 448
        line_start: 446
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"fromunicode", (PyCFunction)array_array_fromunicode, METH_O,
        array_array_fromunicode__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY_TOUNICODE_METHODDEF
      pos:
        line_end: 481
        line_start: 479
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"tounicode", (PyCFunction)array_array_tounicode, METH_NOARGS,
        array_array_tounicode__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY___SIZEOF___METHODDEF
      pos:
        line_end: 499
        line_start: 497
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)array_array___sizeof__, METH_NOARGS,
        array_array___sizeof____doc__},'
    - item_type: preproc_def
      name: ARRAY__ARRAY_RECONSTRUCTOR_METHODDEF
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"_array_reconstructor", (PyCFunction)(void(*)(void))array__array_reconstructor,
        METH_FASTCALL, array__array_reconstructor__doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAY___REDUCE_EX___METHODDEF
      pos:
        line_end: 574
        line_start: 572
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__reduce_ex__", (PyCFunction)array_array___reduce_ex__, METH_O,
        array_array___reduce_ex____doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAYITERATOR___REDUCE___METHODDEF
      pos:
        line_end: 583
        line_start: 581
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__reduce__", (PyCFunction)array_arrayiterator___reduce__,
        METH_NOARGS, array_arrayiterator___reduce____doc__},'
    - item_type: preproc_def
      name: ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF
      pos:
        line_end: 601
        line_start: 599
        source_file: /src/Python-3.8.3/Modules/clinic/arraymodule.c.h
      type_or_value: '{"__setstate__", (PyCFunction)array_arrayiterator___setstate__,
        METH_O, array_arrayiterator___setstate____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _lzma_LZMACompressor_compress
  - _lzma_LZMACompressor_flush
  - _lzma_LZMADecompressor_decompress
  - _lzma_LZMADecompressor___init__
  - _lzma_is_check_supported
  - _lzma__encode_filter_properties
  - _lzma__decode_filter_properties
  source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _LZMA_LZMACOMPRESSOR_COMPRESS_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"compress", (PyCFunction)_lzma_LZMACompressor_compress, METH_O,
        _lzma_LZMACompressor_compress__doc__},'
    - item_type: preproc_def
      name: _LZMA_LZMACOMPRESSOR_FLUSH_METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"flush", (PyCFunction)_lzma_LZMACompressor_flush, METH_NOARGS,
        _lzma_LZMACompressor_flush__doc__},'
    - item_type: preproc_def
      name: _LZMA_LZMADECOMPRESSOR_DECOMPRESS_METHODDEF
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"decompress", (PyCFunction)(void(*)(void))_lzma_LZMADecompressor_decompress,
        METH_FASTCALL|METH_KEYWORDS, _lzma_LZMADecompressor_decompress__doc__},'
    - item_type: preproc_def
      name: _LZMA_IS_CHECK_SUPPORTED_METHODDEF
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"is_check_supported", (PyCFunction)_lzma_is_check_supported,
        METH_O, _lzma_is_check_supported__doc__},'
    - item_type: preproc_def
      name: _LZMA__ENCODE_FILTER_PROPERTIES_METHODDEF
      pos:
        line_end: 268
        line_start: 266
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"_encode_filter_properties", (PyCFunction)_lzma__encode_filter_properties,
        METH_O, _lzma__encode_filter_properties__doc__},'
    - item_type: preproc_def
      name: _LZMA__DECODE_FILTER_PROPERTIES_METHODDEF
      pos:
        line_end: 301
        line_start: 299
        source_file: /src/Python-3.8.3/Modules/clinic/_lzmamodule.c.h
      type_or_value: '{"_decode_filter_properties", (PyCFunction)(void(*)(void))_lzma__decode_filter_properties,
        METH_FASTCALL, _lzma__decode_filter_properties__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - math_gcd
  - math_frexp
  - math_ldexp
  - math_modf
  - math_log
  - math_fmod
  - math_dist
  - math_pow
  - math_degrees
  - math_radians
  - math_isfinite
  - math_isnan
  - math_isinf
  - math_isclose
  - math_prod
  - math_perm
  - math_comb
  source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MATH_GCD_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"gcd", (PyCFunction)(void(*)(void))math_gcd, METH_FASTCALL,
        math_gcd__doc__},'
    - item_type: preproc_def
      name: MATH_CEIL_METHODDEF
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"ceil", (PyCFunction)math_ceil, METH_O, math_ceil__doc__},'
    - item_type: preproc_def
      name: MATH_FLOOR_METHODDEF
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"floor", (PyCFunction)math_floor, METH_O, math_floor__doc__},'
    - item_type: preproc_def
      name: MATH_FSUM_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"fsum", (PyCFunction)math_fsum, METH_O, math_fsum__doc__},'
    - item_type: preproc_def
      name: MATH_ISQRT_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"isqrt", (PyCFunction)math_isqrt, METH_O, math_isqrt__doc__},'
    - item_type: preproc_def
      name: MATH_FACTORIAL_METHODDEF
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"factorial", (PyCFunction)math_factorial, METH_O, math_factorial__doc__},'
    - item_type: preproc_def
      name: MATH_TRUNC_METHODDEF
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"trunc", (PyCFunction)math_trunc, METH_O, math_trunc__doc__},'
    - item_type: preproc_def
      name: MATH_FREXP_METHODDEF
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"frexp", (PyCFunction)math_frexp, METH_O, math_frexp__doc__},'
    - item_type: preproc_def
      name: MATH_LDEXP_METHODDEF
      pos:
        line_end: 145
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"ldexp", (PyCFunction)(void(*)(void))math_ldexp, METH_FASTCALL,
        math_ldexp__doc__},'
    - item_type: preproc_def
      name: MATH_MODF_METHODDEF
      pos:
        line_end: 186
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"modf", (PyCFunction)math_modf, METH_O, math_modf__doc__},'
    - item_type: preproc_def
      name: MATH_LOG_METHODDEF
      pos:
        line_end: 220
        line_start: 218
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"log", (PyCFunction)math_log, METH_VARARGS, math_log__doc__},'
    - item_type: preproc_def
      name: MATH_LOG2_METHODDEF
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"log2", (PyCFunction)math_log2, METH_O, math_log2__doc__},'
    - item_type: preproc_def
      name: MATH_LOG10_METHODDEF
      pos:
        line_end: 272
        line_start: 270
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"log10", (PyCFunction)math_log10, METH_O, math_log10__doc__},'
    - item_type: preproc_def
      name: MATH_FMOD_METHODDEF
      pos:
        line_end: 283
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"fmod", (PyCFunction)(void(*)(void))math_fmod, METH_FASTCALL,
        math_fmod__doc__},'
    - item_type: preproc_def
      name: MATH_DIST_METHODDEF
      pos:
        line_end: 337
        line_start: 335
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"dist", (PyCFunction)(void(*)(void))math_dist, METH_FASTCALL,
        math_dist__doc__},'
    - item_type: preproc_def
      name: MATH_POW_METHODDEF
      pos:
        line_end: 367
        line_start: 365
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"pow", (PyCFunction)(void(*)(void))math_pow, METH_FASTCALL,
        math_pow__doc__},'
    - item_type: preproc_def
      name: MATH_DEGREES_METHODDEF
      pos:
        line_end: 415
        line_start: 413
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"degrees", (PyCFunction)math_degrees, METH_O, math_degrees__doc__},'
    - item_type: preproc_def
      name: MATH_RADIANS_METHODDEF
      pos:
        line_end: 449
        line_start: 447
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"radians", (PyCFunction)math_radians, METH_O, math_radians__doc__},'
    - item_type: preproc_def
      name: MATH_ISFINITE_METHODDEF
      pos:
        line_end: 483
        line_start: 481
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"isfinite", (PyCFunction)math_isfinite, METH_O, math_isfinite__doc__},'
    - item_type: preproc_def
      name: MATH_ISNAN_METHODDEF
      pos:
        line_end: 517
        line_start: 515
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"isnan", (PyCFunction)math_isnan, METH_O, math_isnan__doc__},'
    - item_type: preproc_def
      name: MATH_ISINF_METHODDEF
      pos:
        line_end: 551
        line_start: 549
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"isinf", (PyCFunction)math_isinf, METH_O, math_isinf__doc__},'
    - item_type: preproc_def
      name: MATH_ISCLOSE_METHODDEF
      pos:
        line_end: 601
        line_start: 599
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"isclose", (PyCFunction)(void(*)(void))math_isclose, METH_FASTCALL|METH_KEYWORDS,
        math_isclose__doc__},'
    - item_type: preproc_def
      name: MATH_PROD_METHODDEF
      pos:
        line_end: 697
        line_start: 695
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"prod", (PyCFunction)(void(*)(void))math_prod, METH_FASTCALL|METH_KEYWORDS,
        math_prod__doc__},'
    - item_type: preproc_def
      name: MATH_PERM_METHODDEF
      pos:
        line_end: 745
        line_start: 743
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"perm", (PyCFunction)(void(*)(void))math_perm, METH_FASTCALL,
        math_perm__doc__},'
    - item_type: preproc_def
      name: MATH_COMB_METHODDEF
      pos:
        line_end: 789
        line_start: 787
        source_file: /src/Python-3.8.3/Modules/clinic/mathmodule.c.h
      type_or_value: '{"comb", (PyCFunction)(void(*)(void))math_comb, METH_FASTCALL,
        math_comb__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _codecs_lookup
  - _codecs_encode
  - _codecs_decode
  - _codecs__forget_codec
  - _codecs_escape_decode
  - _codecs_escape_encode
  - _codecs_utf_7_decode
  - _codecs_utf_8_decode
  - _codecs_utf_16_decode
  - _codecs_utf_16_le_decode
  - _codecs_utf_16_be_decode
  - _codecs_utf_16_ex_decode
  - _codecs_utf_32_decode
  - _codecs_utf_32_le_decode
  - _codecs_utf_32_be_decode
  - _codecs_utf_32_ex_decode
  - _codecs_unicode_escape_decode
  - _codecs_raw_unicode_escape_decode
  - _codecs_latin_1_decode
  - _codecs_ascii_decode
  - _codecs_charmap_decode
  - _codecs_mbcs_decode
  - _codecs_oem_decode
  - _codecs_code_page_decode
  - _codecs_readbuffer_encode
  - _codecs_utf_7_encode
  - _codecs_utf_8_encode
  - _codecs_utf_16_encode
  - _codecs_utf_16_le_encode
  - _codecs_utf_16_be_encode
  - _codecs_utf_32_encode
  - _codecs_utf_32_le_encode
  - _codecs_utf_32_be_encode
  - _codecs_unicode_escape_encode
  - _codecs_raw_unicode_escape_encode
  - _codecs_latin_1_encode
  - _codecs_ascii_encode
  - _codecs_charmap_encode
  - _codecs_charmap_build
  - _codecs_mbcs_encode
  - _codecs_oem_encode
  - _codecs_code_page_encode
  - _codecs_register_error
  - _codecs_lookup_error
  source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CODECS_REGISTER_METHODDEF
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"register", (PyCFunction)_codecs_register, METH_O, _codecs_register__doc__},'
    - item_type: preproc_def
      name: _CODECS_LOOKUP_METHODDEF
      pos:
        line_end: 25
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"lookup", (PyCFunction)_codecs_lookup, METH_O, _codecs_lookup__doc__},'
    - item_type: preproc_def
      name: _CODECS_ENCODE_METHODDEF
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"encode", (PyCFunction)(void(*)(void))_codecs_encode, METH_FASTCALL|METH_KEYWORDS,
        _codecs_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_DECODE_METHODDEF
      pos:
        line_end: 145
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))_codecs_decode, METH_FASTCALL|METH_KEYWORDS,
        _codecs_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS__FORGET_CODEC_METHODDEF
      pos:
        line_end: 216
        line_start: 214
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"_forget_codec", (PyCFunction)_codecs__forget_codec, METH_O,
        _codecs__forget_codec__doc__},'
    - item_type: preproc_def
      name: _CODECS_ESCAPE_DECODE_METHODDEF
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"escape_decode", (PyCFunction)(void(*)(void))_codecs_escape_decode,
        METH_FASTCALL, _codecs_escape_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_ESCAPE_ENCODE_METHODDEF
      pos:
        line_end: 324
        line_start: 322
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"escape_encode", (PyCFunction)(void(*)(void))_codecs_escape_encode,
        METH_FASTCALL, _codecs_escape_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_7_DECODE_METHODDEF
      pos:
        line_end: 379
        line_start: 377
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_7_decode", (PyCFunction)(void(*)(void))_codecs_utf_7_decode,
        METH_FASTCALL, _codecs_utf_7_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_8_DECODE_METHODDEF
      pos:
        line_end: 454
        line_start: 452
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_8_decode", (PyCFunction)(void(*)(void))_codecs_utf_8_decode,
        METH_FASTCALL, _codecs_utf_8_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_DECODE_METHODDEF
      pos:
        line_end: 529
        line_start: 527
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_decode,
        METH_FASTCALL, _codecs_utf_16_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_LE_DECODE_METHODDEF
      pos:
        line_end: 604
        line_start: 602
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_decode,
        METH_FASTCALL, _codecs_utf_16_le_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_BE_DECODE_METHODDEF
      pos:
        line_end: 679
        line_start: 677
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_decode,
        METH_FASTCALL, _codecs_utf_16_be_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_EX_DECODE_METHODDEF
      pos:
        line_end: 755
        line_start: 753
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_16_ex_decode,
        METH_FASTCALL, _codecs_utf_16_ex_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_DECODE_METHODDEF
      pos:
        line_end: 843
        line_start: 841
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_decode,
        METH_FASTCALL, _codecs_utf_32_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_LE_DECODE_METHODDEF
      pos:
        line_end: 918
        line_start: 916
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_le_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_decode,
        METH_FASTCALL, _codecs_utf_32_le_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_BE_DECODE_METHODDEF
      pos:
        line_end: 993
        line_start: 991
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_be_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_decode,
        METH_FASTCALL, _codecs_utf_32_be_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_EX_DECODE_METHODDEF
      pos:
        line_end: 1069
        line_start: 1067
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_ex_decode", (PyCFunction)(void(*)(void))_codecs_utf_32_ex_decode,
        METH_FASTCALL, _codecs_utf_32_ex_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UNICODE_ESCAPE_DECODE_METHODDEF
      pos:
        line_end: 1157
        line_start: 1155
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_decode,
        METH_FASTCALL, _codecs_unicode_escape_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_RAW_UNICODE_ESCAPE_DECODE_METHODDEF
      pos:
        line_end: 1229
        line_start: 1227
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"raw_unicode_escape_decode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_decode,
        METH_FASTCALL, _codecs_raw_unicode_escape_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_LATIN_1_DECODE_METHODDEF
      pos:
        line_end: 1301
        line_start: 1299
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"latin_1_decode", (PyCFunction)(void(*)(void))_codecs_latin_1_decode,
        METH_FASTCALL, _codecs_latin_1_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_ASCII_DECODE_METHODDEF
      pos:
        line_end: 1363
        line_start: 1361
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"ascii_decode", (PyCFunction)(void(*)(void))_codecs_ascii_decode,
        METH_FASTCALL, _codecs_ascii_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_CHARMAP_DECODE_METHODDEF
      pos:
        line_end: 1425
        line_start: 1423
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"charmap_decode", (PyCFunction)(void(*)(void))_codecs_charmap_decode,
        METH_FASTCALL, _codecs_charmap_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_MBCS_DECODE_METHODDEF
      pos:
        line_end: 1494
        line_start: 1492
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"mbcs_decode", (PyCFunction)(void(*)(void))_codecs_mbcs_decode,
        METH_FASTCALL, _codecs_mbcs_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_OEM_DECODE_METHODDEF
      pos:
        line_end: 1573
        line_start: 1571
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"oem_decode", (PyCFunction)(void(*)(void))_codecs_oem_decode,
        METH_FASTCALL, _codecs_oem_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_CODE_PAGE_DECODE_METHODDEF
      pos:
        line_end: 1652
        line_start: 1650
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"code_page_decode", (PyCFunction)(void(*)(void))_codecs_code_page_decode,
        METH_FASTCALL, _codecs_code_page_decode__doc__},'
    - item_type: preproc_def
      name: _CODECS_READBUFFER_ENCODE_METHODDEF
      pos:
        line_end: 1739
        line_start: 1737
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"readbuffer_encode", (PyCFunction)(void(*)(void))_codecs_readbuffer_encode,
        METH_FASTCALL, _codecs_readbuffer_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_7_ENCODE_METHODDEF
      pos:
        line_end: 1811
        line_start: 1809
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_7_encode", (PyCFunction)(void(*)(void))_codecs_utf_7_encode,
        METH_FASTCALL, _codecs_utf_7_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_8_ENCODE_METHODDEF
      pos:
        line_end: 1869
        line_start: 1867
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_8_encode", (PyCFunction)(void(*)(void))_codecs_utf_8_encode,
        METH_FASTCALL, _codecs_utf_8_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_ENCODE_METHODDEF
      pos:
        line_end: 1927
        line_start: 1925
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_encode,
        METH_FASTCALL, _codecs_utf_16_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_LE_ENCODE_METHODDEF
      pos:
        line_end: 1998
        line_start: 1996
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_le_encode,
        METH_FASTCALL, _codecs_utf_16_le_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_16_BE_ENCODE_METHODDEF
      pos:
        line_end: 2056
        line_start: 2054
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_16_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_16_be_encode,
        METH_FASTCALL, _codecs_utf_16_be_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_ENCODE_METHODDEF
      pos:
        line_end: 2114
        line_start: 2112
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_encode,
        METH_FASTCALL, _codecs_utf_32_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_LE_ENCODE_METHODDEF
      pos:
        line_end: 2185
        line_start: 2183
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_le_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_le_encode,
        METH_FASTCALL, _codecs_utf_32_le_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UTF_32_BE_ENCODE_METHODDEF
      pos:
        line_end: 2243
        line_start: 2241
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"utf_32_be_encode", (PyCFunction)(void(*)(void))_codecs_utf_32_be_encode,
        METH_FASTCALL, _codecs_utf_32_be_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_UNICODE_ESCAPE_ENCODE_METHODDEF
      pos:
        line_end: 2301
        line_start: 2299
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_unicode_escape_encode,
        METH_FASTCALL, _codecs_unicode_escape_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_RAW_UNICODE_ESCAPE_ENCODE_METHODDEF
      pos:
        line_end: 2359
        line_start: 2357
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"raw_unicode_escape_encode", (PyCFunction)(void(*)(void))_codecs_raw_unicode_escape_encode,
        METH_FASTCALL, _codecs_raw_unicode_escape_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_LATIN_1_ENCODE_METHODDEF
      pos:
        line_end: 2417
        line_start: 2415
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"latin_1_encode", (PyCFunction)(void(*)(void))_codecs_latin_1_encode,
        METH_FASTCALL, _codecs_latin_1_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_ASCII_ENCODE_METHODDEF
      pos:
        line_end: 2475
        line_start: 2473
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"ascii_encode", (PyCFunction)(void(*)(void))_codecs_ascii_encode,
        METH_FASTCALL, _codecs_ascii_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_CHARMAP_ENCODE_METHODDEF
      pos:
        line_end: 2533
        line_start: 2531
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"charmap_encode", (PyCFunction)(void(*)(void))_codecs_charmap_encode,
        METH_FASTCALL, _codecs_charmap_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_CHARMAP_BUILD_METHODDEF
      pos:
        line_end: 2596
        line_start: 2594
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"charmap_build", (PyCFunction)_codecs_charmap_build, METH_O,
        _codecs_charmap_build__doc__},'
    - item_type: preproc_def
      name: _CODECS_MBCS_ENCODE_METHODDEF
      pos:
        line_end: 2629
        line_start: 2627
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"mbcs_encode", (PyCFunction)(void(*)(void))_codecs_mbcs_encode,
        METH_FASTCALL, _codecs_mbcs_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_OEM_ENCODE_METHODDEF
      pos:
        line_end: 2690
        line_start: 2688
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"oem_encode", (PyCFunction)(void(*)(void))_codecs_oem_encode,
        METH_FASTCALL, _codecs_oem_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_CODE_PAGE_ENCODE_METHODDEF
      pos:
        line_end: 2751
        line_start: 2749
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"code_page_encode", (PyCFunction)(void(*)(void))_codecs_code_page_encode,
        METH_FASTCALL, _codecs_code_page_encode__doc__},'
    - item_type: preproc_def
      name: _CODECS_REGISTER_ERROR_METHODDEF
      pos:
        line_end: 2826
        line_start: 2824
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"register_error", (PyCFunction)(void(*)(void))_codecs_register_error,
        METH_FASTCALL, _codecs_register_error__doc__},'
    - item_type: preproc_def
      name: _CODECS_LOOKUP_ERROR_METHODDEF
      pos:
        line_end: 2872
        line_start: 2870
        source_file: /src/Python-3.8.3/Modules/clinic/_codecsmodule.c.h
      type_or_value: '{"lookup_error", (PyCFunction)_codecs_lookup_error, METH_O,
        _codecs_lookup_error__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - select_select
  - select_poll_register
  - select_poll_modify
  - select_poll_unregister
  - select_poll_poll
  - select_devpoll_register
  - select_devpoll_modify
  - select_devpoll_unregister
  - select_devpoll_poll
  - select_devpoll_close
  - select_devpoll_fileno
  - select_poll
  - select_devpoll
  - select_epoll
  - select_epoll_close
  - select_epoll_fileno
  - select_epoll_fromfd
  - select_epoll_register
  - select_epoll_modify
  - select_epoll_unregister
  - select_epoll_poll
  - select_epoll___enter__
  - select_epoll___exit__
  - select_kqueue
  - select_kqueue_close
  - select_kqueue_fileno
  - select_kqueue_fromfd
  - select_kqueue_control
  source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELECT_SELECT_METHODDEF
      pos:
        line_end: 33
        line_start: 31
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"select", (PyCFunction)(void(*)(void))select_select, METH_FASTCALL,
        select_select__doc__},'
    - item_type: preproc_def
      name: SELECT_POLL_REGISTER_METHODDEF
      pos:
        line_end: 79
        line_start: 77
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"register", (PyCFunction)(void(*)(void))select_poll_register,
        METH_FASTCALL, select_poll_register__doc__},'
    - item_type: preproc_def
      name: SELECT_POLL_MODIFY_METHODDEF
      pos:
        line_end: 127
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"modify", (PyCFunction)(void(*)(void))select_poll_modify, METH_FASTCALL,
        select_poll_modify__doc__},'
    - item_type: preproc_def
      name: SELECT_POLL_UNREGISTER_METHODDEF
      pos:
        line_end: 165
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"unregister", (PyCFunction)select_poll_unregister, METH_O,
        select_poll_unregister__doc__},'
    - item_type: preproc_def
      name: SELECT_POLL_POLL_METHODDEF
      pos:
        line_end: 199
        line_start: 197
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"poll", (PyCFunction)(void(*)(void))select_poll_poll, METH_FASTCALL,
        select_poll_poll__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_REGISTER_METHODDEF
      pos:
        line_end: 241
        line_start: 239
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"register", (PyCFunction)(void(*)(void))select_devpoll_register,
        METH_FASTCALL, select_devpoll_register__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_MODIFY_METHODDEF
      pos:
        line_end: 290
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"modify", (PyCFunction)(void(*)(void))select_devpoll_modify,
        METH_FASTCALL, select_devpoll_modify__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_UNREGISTER_METHODDEF
      pos:
        line_end: 333
        line_start: 331
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"unregister", (PyCFunction)select_devpoll_unregister, METH_O,
        select_devpoll_unregister__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_POLL_METHODDEF
      pos:
        line_end: 367
        line_start: 365
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"poll", (PyCFunction)(void(*)(void))select_devpoll_poll, METH_FASTCALL,
        select_devpoll_poll__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_CLOSE_METHODDEF
      pos:
        line_end: 405
        line_start: 403
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"close", (PyCFunction)select_devpoll_close, METH_NOARGS, select_devpoll_close__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_FILENO_METHODDEF
      pos:
        line_end: 427
        line_start: 425
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"fileno", (PyCFunction)select_devpoll_fileno, METH_NOARGS,
        select_devpoll_fileno__doc__},'
    - item_type: preproc_def
      name: SELECT_POLL_METHODDEF
      pos:
        line_end: 452
        line_start: 450
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"poll", (PyCFunction)select_poll, METH_NOARGS, select_poll__doc__},'
    - item_type: preproc_def
      name: SELECT_DEVPOLL_METHODDEF
      pos:
        line_end: 477
        line_start: 475
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"devpoll", (PyCFunction)select_devpoll, METH_NOARGS, select_devpoll__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_CLOSE_METHODDEF
      pos:
        line_end: 573
        line_start: 571
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"close", (PyCFunction)select_epoll_close, METH_NOARGS, select_epoll_close__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_FILENO_METHODDEF
      pos:
        line_end: 595
        line_start: 593
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"fileno", (PyCFunction)select_epoll_fileno, METH_NOARGS, select_epoll_fileno__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_FROMFD_METHODDEF
      pos:
        line_end: 617
        line_start: 615
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"fromfd", (PyCFunction)select_epoll_fromfd, METH_O|METH_CLASS,
        select_epoll_fromfd__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_REGISTER_METHODDEF
      pos:
        line_end: 661
        line_start: 659
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"register", (PyCFunction)(void(*)(void))select_epoll_register,
        METH_FASTCALL|METH_KEYWORDS, select_epoll_register__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_MODIFY_METHODDEF
      pos:
        line_end: 720
        line_start: 718
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"modify", (PyCFunction)(void(*)(void))select_epoll_modify,
        METH_FASTCALL|METH_KEYWORDS, select_epoll_modify__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_UNREGISTER_METHODDEF
      pos:
        line_end: 772
        line_start: 770
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"unregister", (PyCFunction)(void(*)(void))select_epoll_unregister,
        METH_FASTCALL|METH_KEYWORDS, select_epoll_unregister__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL_POLL_METHODDEF
      pos:
        line_end: 819
        line_start: 817
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"poll", (PyCFunction)(void(*)(void))select_epoll_poll, METH_FASTCALL|METH_KEYWORDS,
        select_epoll_poll__doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL___ENTER___METHODDEF
      pos:
        line_end: 875
        line_start: 873
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"__enter__", (PyCFunction)select_epoll___enter__, METH_NOARGS,
        select_epoll___enter____doc__},'
    - item_type: preproc_def
      name: SELECT_EPOLL___EXIT___METHODDEF
      pos:
        line_end: 896
        line_start: 894
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"__exit__", (PyCFunction)(void(*)(void))select_epoll___exit__,
        METH_FASTCALL, select_epoll___exit____doc__},'
    - item_type: preproc_def
      name: SELECT_KQUEUE_CLOSE_METHODDEF
      pos:
        line_end: 989
        line_start: 987
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"close", (PyCFunction)select_kqueue_close, METH_NOARGS, select_kqueue_close__doc__},'
    - item_type: preproc_def
      name: SELECT_KQUEUE_FILENO_METHODDEF
      pos:
        line_end: 1011
        line_start: 1009
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"fileno", (PyCFunction)select_kqueue_fileno, METH_NOARGS, select_kqueue_fileno__doc__},'
    - item_type: preproc_def
      name: SELECT_KQUEUE_FROMFD_METHODDEF
      pos:
        line_end: 1033
        line_start: 1031
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"fromfd", (PyCFunction)select_kqueue_fromfd, METH_O|METH_CLASS,
        select_kqueue_fromfd__doc__},'
    - item_type: preproc_def
      name: SELECT_KQUEUE_CONTROL_METHODDEF
      pos:
        line_end: 1079
        line_start: 1077
        source_file: /src/Python-3.8.3/Modules/clinic/selectmodule.c.h
      type_or_value: '{"control", (PyCFunction)(void(*)(void))select_kqueue_control,
        METH_FASTCALL, select_kqueue_control__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _tracemalloc_is_tracing
  - _tracemalloc_clear_traces
  - _tracemalloc__get_traces
  - _tracemalloc_start
  - _tracemalloc_stop
  - _tracemalloc_get_traceback_limit
  - _tracemalloc_get_tracemalloc_memory
  - _tracemalloc_get_traced_memory
  source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _TRACEMALLOC_IS_TRACING_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"is_tracing", (PyCFunction)_tracemalloc_is_tracing, METH_NOARGS,
        _tracemalloc_is_tracing__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_CLEAR_TRACES_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"clear_traces", (PyCFunction)_tracemalloc_clear_traces, METH_NOARGS,
        _tracemalloc_clear_traces__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC__GET_TRACES_METHODDEF
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"_get_traces", (PyCFunction)_tracemalloc__get_traces, METH_NOARGS,
        _tracemalloc__get_traces__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC__GET_OBJECT_TRACEBACK_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"_get_object_traceback", (PyCFunction)_tracemalloc__get_object_traceback,
        METH_O, _tracemalloc__get_object_traceback__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_START_METHODDEF
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"start", (PyCFunction)(void(*)(void))_tracemalloc_start, METH_FASTCALL,
        _tracemalloc_start__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_STOP_METHODDEF
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"stop", (PyCFunction)_tracemalloc_stop, METH_NOARGS, _tracemalloc_stop__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_GET_TRACEBACK_LIMIT_METHODDEF
      pos:
        line_end: 150
        line_start: 148
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"get_traceback_limit", (PyCFunction)_tracemalloc_get_traceback_limit,
        METH_NOARGS, _tracemalloc_get_traceback_limit__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_GET_TRACEMALLOC_MEMORY_METHODDEF
      pos:
        line_end: 170
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"get_tracemalloc_memory", (PyCFunction)_tracemalloc_get_tracemalloc_memory,
        METH_NOARGS, _tracemalloc_get_tracemalloc_memory__doc__},'
    - item_type: preproc_def
      name: _TRACEMALLOC_GET_TRACED_MEMORY_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/clinic/_tracemalloc.c.h
      type_or_value: '{"get_traced_memory", (PyCFunction)_tracemalloc_get_traced_memory,
        METH_NOARGS, _tracemalloc_get_traced_memory__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _curses_window_addch
  - _curses_window_addstr
  - _curses_window_addnstr
  - _curses_window_bkgd
  - _curses_window_attroff
  - _curses_window_attron
  - _curses_window_attrset
  - _curses_window_bkgdset
  - _curses_window_border
  - _curses_window_box
  - _curses_window_delch
  - _curses_window_derwin
  - _curses_window_echochar
  - _curses_window_enclose
  - _curses_window_getbkgd
  - _curses_window_getch
  - _curses_window_getkey
  - _curses_window_get_wch
  - _curses_window_hline
  - _curses_window_insch
  - _curses_window_inch
  - _curses_window_insstr
  - _curses_window_insnstr
  - _curses_window_is_linetouched
  - _curses_window_noutrefresh
  - _curses_window_noutrefresh
  - _curses_window_overlay
  - _curses_window_overwrite
  - _curses_window_redrawln
  - _curses_window_refresh
  - _curses_window_setscrreg
  - _curses_window_subwin
  - _curses_window_scroll
  - _curses_window_touchline
  - _curses_window_vline
  - _curses_filter
  - _curses_baudrate
  - _curses_beep
  - _curses_can_change_color
  - _curses_cbreak
  - _curses_color_content
  - _curses_color_pair
  - _curses_curs_set
  - _curses_def_prog_mode
  - _curses_def_shell_mode
  - _curses_delay_output
  - _curses_doupdate
  - _curses_echo
  - _curses_endwin
  - _curses_erasechar
  - _curses_flash
  - _curses_flushinp
  - _curses_getsyx
  - _curses_getmouse
  - _curses_ungetmouse
  - _curses_halfdelay
  - _curses_has_colors
  - _curses_has_ic
  - _curses_has_il
  - _curses_has_key
  - _curses_init_color
  - _curses_init_pair
  - _curses_initscr
  - _curses_setupterm
  - _curses_intrflush
  - _curses_isendwin
  - _curses_is_term_resized
  - _curses_keyname
  - _curses_killchar
  - _curses_longname
  - _curses_meta
  - _curses_mouseinterval
  - _curses_mousemask
  - _curses_napms
  - _curses_newpad
  - _curses_newwin
  - _curses_nl
  - _curses_nocbreak
  - _curses_noecho
  - _curses_nonl
  - _curses_noqiflush
  - _curses_noraw
  - _curses_pair_content
  - _curses_pair_number
  - _curses_putp
  - _curses_qiflush
  - _curses_update_lines_cols
  - _curses_raw
  - _curses_reset_prog_mode
  - _curses_reset_shell_mode
  - _curses_resetty
  - _curses_resizeterm
  - _curses_resize_term
  - _curses_savetty
  - _curses_setsyx
  - _curses_start_color
  - _curses_termattrs
  - _curses_termname
  - _curses_tigetflag
  - _curses_tigetnum
  - _curses_tigetstr
  - _curses_tparm
  - _curses_typeahead
  - _curses_use_env
  - _curses_use_default_colors
  source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CURSES_WINDOW_ADDCH_METHODDEF
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"addch", (PyCFunction)_curses_window_addch, METH_VARARGS, _curses_window_addch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ADDSTR_METHODDEF
      pos:
        line_end: 96
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"addstr", (PyCFunction)_curses_window_addstr, METH_VARARGS,
        _curses_window_addstr__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ADDNSTR_METHODDEF
      pos:
        line_end: 170
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"addnstr", (PyCFunction)_curses_window_addnstr, METH_VARARGS,
        _curses_window_addnstr__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_BKGD_METHODDEF
      pos:
        line_end: 236
        line_start: 234
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"bkgd", (PyCFunction)(void(*)(void))_curses_window_bkgd, METH_FASTCALL,
        _curses_window_bkgd__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ATTROFF_METHODDEF
      pos:
        line_end: 278
        line_start: 276
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"attroff", (PyCFunction)_curses_window_attroff, METH_O, _curses_window_attroff__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ATTRON_METHODDEF
      pos:
        line_end: 311
        line_start: 309
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"attron", (PyCFunction)_curses_window_attron, METH_O, _curses_window_attron__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ATTRSET_METHODDEF
      pos:
        line_end: 344
        line_start: 342
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"attrset", (PyCFunction)_curses_window_attrset, METH_O, _curses_window_attrset__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_BKGDSET_METHODDEF
      pos:
        line_end: 382
        line_start: 380
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"bkgdset", (PyCFunction)(void(*)(void))_curses_window_bkgdset,
        METH_FASTCALL, _curses_window_bkgdset__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_BORDER_METHODDEF
      pos:
        line_end: 450
        line_start: 448
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"border", (PyCFunction)(void(*)(void))_curses_window_border,
        METH_FASTCALL, _curses_window_border__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_BOX_METHODDEF
      pos:
        line_end: 526
        line_start: 524
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"box", (PyCFunction)_curses_window_box, METH_VARARGS, _curses_window_box__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_DELCH_METHODDEF
      pos:
        line_end: 569
        line_start: 567
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"delch", (PyCFunction)_curses_window_delch, METH_VARARGS, _curses_window_delch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_DERWIN_METHODDEF
      pos:
        line_end: 620
        line_start: 618
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"derwin", (PyCFunction)_curses_window_derwin, METH_VARARGS,
        _curses_window_derwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ECHOCHAR_METHODDEF
      pos:
        line_end: 670
        line_start: 668
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"echochar", (PyCFunction)(void(*)(void))_curses_window_echochar,
        METH_FASTCALL, _curses_window_echochar__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_ENCLOSE_METHODDEF
      pos:
        line_end: 720
        line_start: 718
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"enclose", (PyCFunction)(void(*)(void))_curses_window_enclose,
        METH_FASTCALL, _curses_window_enclose__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_GETBKGD_METHODDEF
      pos:
        line_end: 773
        line_start: 771
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getbkgd", (PyCFunction)_curses_window_getbkgd, METH_NOARGS,
        _curses_window_getbkgd__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_GETCH_METHODDEF
      pos:
        line_end: 808
        line_start: 806
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getch", (PyCFunction)_curses_window_getch, METH_VARARGS, _curses_window_getch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_GETKEY_METHODDEF
      pos:
        line_end: 860
        line_start: 858
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getkey", (PyCFunction)_curses_window_getkey, METH_VARARGS,
        _curses_window_getkey__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_GET_WCH_METHODDEF
      pos:
        line_end: 908
        line_start: 906
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"get_wch", (PyCFunction)_curses_window_get_wch, METH_VARARGS,
        _curses_window_get_wch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_HLINE_METHODDEF
      pos:
        line_end: 959
        line_start: 957
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"hline", (PyCFunction)_curses_window_hline, METH_VARARGS, _curses_window_hline__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_INSCH_METHODDEF
      pos:
        line_end: 1030
        line_start: 1028
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"insch", (PyCFunction)_curses_window_insch, METH_VARARGS, _curses_window_insch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_INCH_METHODDEF
      pos:
        line_end: 1095
        line_start: 1093
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"inch", (PyCFunction)_curses_window_inch, METH_VARARGS, _curses_window_inch__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_INSSTR_METHODDEF
      pos:
        line_end: 1153
        line_start: 1151
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"insstr", (PyCFunction)_curses_window_insstr, METH_VARARGS,
        _curses_window_insstr__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_INSNSTR_METHODDEF
      pos:
        line_end: 1229
        line_start: 1227
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"insnstr", (PyCFunction)_curses_window_insnstr, METH_VARARGS,
        _curses_window_insnstr__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_IS_LINETOUCHED_METHODDEF
      pos:
        line_end: 1295
        line_start: 1293
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"is_linetouched", (PyCFunction)_curses_window_is_linetouched,
        METH_O, _curses_window_is_linetouched__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_NOUTREFRESH_METHODDEF
      pos:
        line_end: 1332
        line_start: 1330
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_VARARGS,
        _curses_window_noutrefresh__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_NOUTREFRESH_METHODDEF
      pos:
        line_end: 1386
        line_start: 1384
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"noutrefresh", (PyCFunction)_curses_window_noutrefresh, METH_NOARGS,
        _curses_window_noutrefresh__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_OVERLAY_METHODDEF
      pos:
        line_end: 1413
        line_start: 1411
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"overlay", (PyCFunction)_curses_window_overlay, METH_VARARGS,
        _curses_window_overlay__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_OVERWRITE_METHODDEF
      pos:
        line_end: 1471
        line_start: 1469
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"overwrite", (PyCFunction)_curses_window_overwrite, METH_VARARGS,
        _curses_window_overwrite__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_PUTWIN_METHODDEF
      pos:
        line_end: 1524
        line_start: 1522
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"putwin", (PyCFunction)_curses_window_putwin, METH_O, _curses_window_putwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_REDRAWLN_METHODDEF
      pos:
        line_end: 1540
        line_start: 1538
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"redrawln", (PyCFunction)(void(*)(void))_curses_window_redrawln,
        METH_FASTCALL, _curses_window_redrawln__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_REFRESH_METHODDEF
      pos:
        line_end: 1596
        line_start: 1594
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"refresh", (PyCFunction)_curses_window_refresh, METH_VARARGS,
        _curses_window_refresh__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_SETSCRREG_METHODDEF
      pos:
        line_end: 1648
        line_start: 1646
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"setscrreg", (PyCFunction)(void(*)(void))_curses_window_setscrreg,
        METH_FASTCALL, _curses_window_setscrreg__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_SUBWIN_METHODDEF
      pos:
        line_end: 1705
        line_start: 1703
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"subwin", (PyCFunction)_curses_window_subwin, METH_VARARGS,
        _curses_window_subwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_SCROLL_METHODDEF
      pos:
        line_end: 1753
        line_start: 1751
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"scroll", (PyCFunction)_curses_window_scroll, METH_VARARGS,
        _curses_window_scroll__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_TOUCHLINE_METHODDEF
      pos:
        line_end: 1793
        line_start: 1791
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"touchline", (PyCFunction)_curses_window_touchline, METH_VARARGS,
        _curses_window_touchline__doc__},'
    - item_type: preproc_def
      name: _CURSES_WINDOW_VLINE_METHODDEF
      pos:
        line_end: 1846
        line_start: 1844
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"vline", (PyCFunction)_curses_window_vline, METH_VARARGS, _curses_window_vline__doc__},'
    - item_type: preproc_def
      name: _CURSES_FILTER_METHODDEF
      pos:
        line_end: 1908
        line_start: 1906
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"filter", (PyCFunction)_curses_filter, METH_NOARGS, _curses_filter__doc__},'
    - item_type: preproc_def
      name: _CURSES_BAUDRATE_METHODDEF
      pos:
        line_end: 1928
        line_start: 1926
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"baudrate", (PyCFunction)_curses_baudrate, METH_NOARGS, _curses_baudrate__doc__},'
    - item_type: preproc_def
      name: _CURSES_BEEP_METHODDEF
      pos:
        line_end: 1946
        line_start: 1944
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"beep", (PyCFunction)_curses_beep, METH_NOARGS, _curses_beep__doc__},'
    - item_type: preproc_def
      name: _CURSES_CAN_CHANGE_COLOR_METHODDEF
      pos:
        line_end: 1964
        line_start: 1962
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"can_change_color", (PyCFunction)_curses_can_change_color,
        METH_NOARGS, _curses_can_change_color__doc__},'
    - item_type: preproc_def
      name: _CURSES_CBREAK_METHODDEF
      pos:
        line_end: 1991
        line_start: 1989
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"cbreak", (PyCFunction)(void(*)(void))_curses_cbreak, METH_FASTCALL,
        _curses_cbreak__doc__},'
    - item_type: preproc_def
      name: _CURSES_COLOR_CONTENT_METHODDEF
      pos:
        line_end: 2037
        line_start: 2035
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"color_content", (PyCFunction)_curses_color_content, METH_O,
        _curses_color_content__doc__},'
    - item_type: preproc_def
      name: _CURSES_COLOR_PAIR_METHODDEF
      pos:
        line_end: 2091
        line_start: 2089
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"color_pair", (PyCFunction)_curses_color_pair, METH_O, _curses_color_pair__doc__},'
    - item_type: preproc_def
      name: _CURSES_CURS_SET_METHODDEF
      pos:
        line_end: 2147
        line_start: 2145
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"curs_set", (PyCFunction)_curses_curs_set, METH_O, _curses_curs_set__doc__},'
    - item_type: preproc_def
      name: _CURSES_DEF_PROG_MODE_METHODDEF
      pos:
        line_end: 2184
        line_start: 2182
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"def_prog_mode", (PyCFunction)_curses_def_prog_mode, METH_NOARGS,
        _curses_def_prog_mode__doc__},'
    - item_type: preproc_def
      name: _CURSES_DEF_SHELL_MODE_METHODDEF
      pos:
        line_end: 2206
        line_start: 2204
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"def_shell_mode", (PyCFunction)_curses_def_shell_mode, METH_NOARGS,
        _curses_def_shell_mode__doc__},'
    - item_type: preproc_def
      name: _CURSES_DELAY_OUTPUT_METHODDEF
      pos:
        line_end: 2227
        line_start: 2225
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"delay_output", (PyCFunction)_curses_delay_output, METH_O,
        _curses_delay_output__doc__},'
    - item_type: preproc_def
      name: _CURSES_DOUPDATE_METHODDEF
      pos:
        line_end: 2260
        line_start: 2258
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"doupdate", (PyCFunction)_curses_doupdate, METH_NOARGS, _curses_doupdate__doc__},'
    - item_type: preproc_def
      name: _CURSES_ECHO_METHODDEF
      pos:
        line_end: 2283
        line_start: 2281
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"echo", (PyCFunction)(void(*)(void))_curses_echo, METH_FASTCALL,
        _curses_echo__doc__},'
    - item_type: preproc_def
      name: _CURSES_ENDWIN_METHODDEF
      pos:
        line_end: 2323
        line_start: 2321
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"endwin", (PyCFunction)_curses_endwin, METH_NOARGS, _curses_endwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_ERASECHAR_METHODDEF
      pos:
        line_end: 2341
        line_start: 2339
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"erasechar", (PyCFunction)_curses_erasechar, METH_NOARGS, _curses_erasechar__doc__},'
    - item_type: preproc_def
      name: _CURSES_FLASH_METHODDEF
      pos:
        line_end: 2361
        line_start: 2359
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"flash", (PyCFunction)_curses_flash, METH_NOARGS, _curses_flash__doc__},'
    - item_type: preproc_def
      name: _CURSES_FLUSHINP_METHODDEF
      pos:
        line_end: 2382
        line_start: 2380
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"flushinp", (PyCFunction)_curses_flushinp, METH_NOARGS, _curses_flushinp__doc__},'
    - item_type: preproc_def
      name: _CURSES_GETSYX_METHODDEF
      pos:
        line_end: 2404
        line_start: 2402
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getsyx", (PyCFunction)_curses_getsyx, METH_NOARGS, _curses_getsyx__doc__},'
    - item_type: preproc_def
      name: _CURSES_GETMOUSE_METHODDEF
      pos:
        line_end: 2429
        line_start: 2427
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getmouse", (PyCFunction)_curses_getmouse, METH_NOARGS, _curses_getmouse__doc__},'
    - item_type: preproc_def
      name: _CURSES_UNGETMOUSE_METHODDEF
      pos:
        line_end: 2453
        line_start: 2451
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"ungetmouse", (PyCFunction)(void(*)(void))_curses_ungetmouse,
        METH_FASTCALL, _curses_ungetmouse__doc__},'
    - item_type: preproc_def
      name: _CURSES_GETWIN_METHODDEF
      pos:
        line_end: 2546
        line_start: 2544
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"getwin", (PyCFunction)_curses_getwin, METH_O, _curses_getwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_HALFDELAY_METHODDEF
      pos:
        line_end: 2560
        line_start: 2558
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"halfdelay", (PyCFunction)_curses_halfdelay, METH_O, _curses_halfdelay__doc__},'
    - item_type: preproc_def
      name: _CURSES_HAS_COLORS_METHODDEF
      pos:
        line_end: 2608
        line_start: 2606
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"has_colors", (PyCFunction)_curses_has_colors, METH_NOARGS,
        _curses_has_colors__doc__},'
    - item_type: preproc_def
      name: _CURSES_HAS_IC_METHODDEF
      pos:
        line_end: 2626
        line_start: 2624
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"has_ic", (PyCFunction)_curses_has_ic, METH_NOARGS, _curses_has_ic__doc__},'
    - item_type: preproc_def
      name: _CURSES_HAS_IL_METHODDEF
      pos:
        line_end: 2644
        line_start: 2642
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"has_il", (PyCFunction)_curses_has_il, METH_NOARGS, _curses_has_il__doc__},'
    - item_type: preproc_def
      name: _CURSES_HAS_KEY_METHODDEF
      pos:
        line_end: 2667
        line_start: 2665
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"has_key", (PyCFunction)_curses_has_key, METH_O, _curses_has_key__doc__},'
    - item_type: preproc_def
      name: _CURSES_INIT_COLOR_METHODDEF
      pos:
        line_end: 2715
        line_start: 2713
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"init_color", (PyCFunction)(void(*)(void))_curses_init_color,
        METH_FASTCALL, _curses_init_color__doc__},'
    - item_type: preproc_def
      name: _CURSES_INIT_PAIR_METHODDEF
      pos:
        line_end: 2852
        line_start: 2850
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"init_pair", (PyCFunction)(void(*)(void))_curses_init_pair,
        METH_FASTCALL, _curses_init_pair__doc__},'
    - item_type: preproc_def
      name: _CURSES_INITSCR_METHODDEF
      pos:
        line_end: 2956
        line_start: 2954
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"initscr", (PyCFunction)_curses_initscr, METH_NOARGS, _curses_initscr__doc__},'
    - item_type: preproc_def
      name: _CURSES_SETUPTERM_METHODDEF
      pos:
        line_end: 2981
        line_start: 2979
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"setupterm", (PyCFunction)(void(*)(void))_curses_setupterm,
        METH_FASTCALL|METH_KEYWORDS, _curses_setupterm__doc__},'
    - item_type: preproc_def
      name: _CURSES_INTRFLUSH_METHODDEF
      pos:
        line_end: 3049
        line_start: 3047
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"intrflush", (PyCFunction)_curses_intrflush, METH_O, _curses_intrflush__doc__},'
    - item_type: preproc_def
      name: _CURSES_ISENDWIN_METHODDEF
      pos:
        line_end: 3082
        line_start: 3080
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"isendwin", (PyCFunction)_curses_isendwin, METH_NOARGS, _curses_isendwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_IS_TERM_RESIZED_METHODDEF
      pos:
        line_end: 3107
        line_start: 3105
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"is_term_resized", (PyCFunction)(void(*)(void))_curses_is_term_resized,
        METH_FASTCALL, _curses_is_term_resized__doc__},'
    - item_type: preproc_def
      name: _CURSES_KEYNAME_METHODDEF
      pos:
        line_end: 3158
        line_start: 3156
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"keyname", (PyCFunction)_curses_keyname, METH_O, _curses_keyname__doc__},'
    - item_type: preproc_def
      name: _CURSES_KILLCHAR_METHODDEF
      pos:
        line_end: 3191
        line_start: 3189
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"killchar", (PyCFunction)_curses_killchar, METH_NOARGS, _curses_killchar__doc__},'
    - item_type: preproc_def
      name: _CURSES_LONGNAME_METHODDEF
      pos:
        line_end: 3212
        line_start: 3210
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"longname", (PyCFunction)_curses_longname, METH_NOARGS, _curses_longname__doc__},'
    - item_type: preproc_def
      name: _CURSES_META_METHODDEF
      pos:
        line_end: 3233
        line_start: 3231
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"meta", (PyCFunction)_curses_meta, METH_O, _curses_meta__doc__},'
    - item_type: preproc_def
      name: _CURSES_MOUSEINTERVAL_METHODDEF
      pos:
        line_end: 3275
        line_start: 3273
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"mouseinterval", (PyCFunction)_curses_mouseinterval, METH_O,
        _curses_mouseinterval__doc__},'
    - item_type: preproc_def
      name: _CURSES_MOUSEMASK_METHODDEF
      pos:
        line_end: 3317
        line_start: 3315
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"mousemask", (PyCFunction)_curses_mousemask, METH_O, _curses_mousemask__doc__},'
    - item_type: preproc_def
      name: _CURSES_NAPMS_METHODDEF
      pos:
        line_end: 3351
        line_start: 3349
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"napms", (PyCFunction)_curses_napms, METH_O, _curses_napms__doc__},'
    - item_type: preproc_def
      name: _CURSES_NEWPAD_METHODDEF
      pos:
        line_end: 3389
        line_start: 3387
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"newpad", (PyCFunction)(void(*)(void))_curses_newpad, METH_FASTCALL,
        _curses_newpad__doc__},'
    - item_type: preproc_def
      name: _CURSES_NEWWIN_METHODDEF
      pos:
        line_end: 3445
        line_start: 3443
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"newwin", (PyCFunction)_curses_newwin, METH_VARARGS, _curses_newwin__doc__},'
    - item_type: preproc_def
      name: _CURSES_NL_METHODDEF
      pos:
        line_end: 3496
        line_start: 3494
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"nl", (PyCFunction)(void(*)(void))_curses_nl, METH_FASTCALL,
        _curses_nl__doc__},'
    - item_type: preproc_def
      name: _CURSES_NOCBREAK_METHODDEF
      pos:
        line_end: 3538
        line_start: 3536
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"nocbreak", (PyCFunction)_curses_nocbreak, METH_NOARGS, _curses_nocbreak__doc__},'
    - item_type: preproc_def
      name: _CURSES_NOECHO_METHODDEF
      pos:
        line_end: 3558
        line_start: 3556
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"noecho", (PyCFunction)_curses_noecho, METH_NOARGS, _curses_noecho__doc__},'
    - item_type: preproc_def
      name: _CURSES_NONL_METHODDEF
      pos:
        line_end: 3579
        line_start: 3577
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"nonl", (PyCFunction)_curses_nonl, METH_NOARGS, _curses_nonl__doc__},'
    - item_type: preproc_def
      name: _CURSES_NOQIFLUSH_METHODDEF
      pos:
        line_end: 3600
        line_start: 3598
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"noqiflush", (PyCFunction)_curses_noqiflush, METH_NOARGS, _curses_noqiflush__doc__},'
    - item_type: preproc_def
      name: _CURSES_NORAW_METHODDEF
      pos:
        line_end: 3620
        line_start: 3618
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"noraw", (PyCFunction)_curses_noraw, METH_NOARGS, _curses_noraw__doc__},'
    - item_type: preproc_def
      name: _CURSES_PAIR_CONTENT_METHODDEF
      pos:
        line_end: 3641
        line_start: 3639
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"pair_content", (PyCFunction)_curses_pair_content, METH_O,
        _curses_pair_content__doc__},'
    - item_type: preproc_def
      name: _CURSES_PAIR_NUMBER_METHODDEF
      pos:
        line_end: 3691
        line_start: 3689
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"pair_number", (PyCFunction)_curses_pair_number, METH_O, _curses_pair_number__doc__},'
    - item_type: preproc_def
      name: _CURSES_PUTP_METHODDEF
      pos:
        line_end: 3726
        line_start: 3724
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"putp", (PyCFunction)_curses_putp, METH_O, _curses_putp__doc__},'
    - item_type: preproc_def
      name: _CURSES_QIFLUSH_METHODDEF
      pos:
        line_end: 3759
        line_start: 3757
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"qiflush", (PyCFunction)(void(*)(void))_curses_qiflush, METH_FASTCALL,
        _curses_qiflush__doc__},'
    - item_type: preproc_def
      name: _CURSES_UPDATE_LINES_COLS_METHODDEF
      pos:
        line_end: 3800
        line_start: 3798
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"update_lines_cols", (PyCFunction)_curses_update_lines_cols,
        METH_NOARGS, _curses_update_lines_cols__doc__},'
    - item_type: preproc_def
      name: _CURSES_RAW_METHODDEF
      pos:
        line_end: 3837
        line_start: 3835
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"raw", (PyCFunction)(void(*)(void))_curses_raw, METH_FASTCALL,
        _curses_raw__doc__},'
    - item_type: preproc_def
      name: _CURSES_RESET_PROG_MODE_METHODDEF
      pos:
        line_end: 3877
        line_start: 3875
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"reset_prog_mode", (PyCFunction)_curses_reset_prog_mode, METH_NOARGS,
        _curses_reset_prog_mode__doc__},'
    - item_type: preproc_def
      name: _CURSES_RESET_SHELL_MODE_METHODDEF
      pos:
        line_end: 3895
        line_start: 3893
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"reset_shell_mode", (PyCFunction)_curses_reset_shell_mode,
        METH_NOARGS, _curses_reset_shell_mode__doc__},'
    - item_type: preproc_def
      name: _CURSES_RESETTY_METHODDEF
      pos:
        line_end: 3913
        line_start: 3911
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"resetty", (PyCFunction)_curses_resetty, METH_NOARGS, _curses_resetty__doc__},'
    - item_type: preproc_def
      name: _CURSES_RESIZETERM_METHODDEF
      pos:
        line_end: 3941
        line_start: 3939
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"resizeterm", (PyCFunction)(void(*)(void))_curses_resizeterm,
        METH_FASTCALL, _curses_resizeterm__doc__},'
    - item_type: preproc_def
      name: _CURSES_RESIZE_TERM_METHODDEF
      pos:
        line_end: 4002
        line_start: 4000
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"resize_term", (PyCFunction)(void(*)(void))_curses_resize_term,
        METH_FASTCALL, _curses_resize_term__doc__},'
    - item_type: preproc_def
      name: _CURSES_SAVETTY_METHODDEF
      pos:
        line_end: 4050
        line_start: 4048
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"savetty", (PyCFunction)_curses_savetty, METH_NOARGS, _curses_savetty__doc__},'
    - item_type: preproc_def
      name: _CURSES_SETSYX_METHODDEF
      pos:
        line_end: 4077
        line_start: 4075
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"setsyx", (PyCFunction)(void(*)(void))_curses_setsyx, METH_FASTCALL,
        _curses_setsyx__doc__},'
    - item_type: preproc_def
      name: _CURSES_START_COLOR_METHODDEF
      pos:
        line_end: 4132
        line_start: 4130
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"start_color", (PyCFunction)_curses_start_color, METH_NOARGS,
        _curses_start_color__doc__},'
    - item_type: preproc_def
      name: _CURSES_TERMATTRS_METHODDEF
      pos:
        line_end: 4150
        line_start: 4148
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"termattrs", (PyCFunction)_curses_termattrs, METH_NOARGS, _curses_termattrs__doc__},'
    - item_type: preproc_def
      name: _CURSES_TERMNAME_METHODDEF
      pos:
        line_end: 4168
        line_start: 4166
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"termname", (PyCFunction)_curses_termname, METH_NOARGS, _curses_termname__doc__},'
    - item_type: preproc_def
      name: _CURSES_TIGETFLAG_METHODDEF
      pos:
        line_end: 4192
        line_start: 4190
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"tigetflag", (PyCFunction)_curses_tigetflag, METH_O, _curses_tigetflag__doc__},'
    - item_type: preproc_def
      name: _CURSES_TIGETNUM_METHODDEF
      pos:
        line_end: 4235
        line_start: 4233
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"tigetnum", (PyCFunction)_curses_tigetnum, METH_O, _curses_tigetnum__doc__},'
    - item_type: preproc_def
      name: _CURSES_TIGETSTR_METHODDEF
      pos:
        line_end: 4278
        line_start: 4276
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"tigetstr", (PyCFunction)_curses_tigetstr, METH_O, _curses_tigetstr__doc__},'
    - item_type: preproc_def
      name: _CURSES_TPARM_METHODDEF
      pos:
        line_end: 4319
        line_start: 4317
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"tparm", (PyCFunction)(void(*)(void))_curses_tparm, METH_FASTCALL,
        _curses_tparm__doc__},'
    - item_type: preproc_def
      name: _CURSES_TYPEAHEAD_METHODDEF
      pos:
        line_end: 4364
        line_start: 4362
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"typeahead", (PyCFunction)_curses_typeahead, METH_O, _curses_typeahead__doc__},'
    - item_type: preproc_def
      name: _CURSES_UNCTRL_METHODDEF
      pos:
        line_end: 4402
        line_start: 4400
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"unctrl", (PyCFunction)_curses_unctrl, METH_O, _curses_unctrl__doc__},'
    - item_type: preproc_def
      name: _CURSES_UNGETCH_METHODDEF
      pos:
        line_end: 4411
        line_start: 4409
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"ungetch", (PyCFunction)_curses_ungetch, METH_O, _curses_ungetch__doc__},'
    - item_type: preproc_def
      name: _CURSES_UNGET_WCH_METHODDEF
      pos:
        line_end: 4422
        line_start: 4420
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"unget_wch", (PyCFunction)_curses_unget_wch, METH_O, _curses_unget_wch__doc__},'
    - item_type: preproc_def
      name: _CURSES_USE_ENV_METHODDEF
      pos:
        line_end: 4444
        line_start: 4442
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"use_env", (PyCFunction)_curses_use_env, METH_O, _curses_use_env__doc__},'
    - item_type: preproc_def
      name: _CURSES_USE_DEFAULT_COLORS_METHODDEF
      pos:
        line_end: 4484
        line_start: 4482
        source_file: /src/Python-3.8.3/Modules/clinic/_cursesmodule.c.h
      type_or_value: '{"use_default_colors", (PyCFunction)_curses_use_default_colors,
        METH_NOARGS, _curses_use_default_colors__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _operator_truth
  - _operator_add
  - _operator_sub
  - _operator_mul
  - _operator_matmul
  - _operator_floordiv
  - _operator_truediv
  - _operator_mod
  - _operator_lshift
  - _operator_rshift
  - _operator_not_
  - _operator_and_
  - _operator_xor
  - _operator_or_
  - _operator_iadd
  - _operator_isub
  - _operator_imul
  - _operator_imatmul
  - _operator_ifloordiv
  - _operator_itruediv
  - _operator_imod
  - _operator_ilshift
  - _operator_irshift
  - _operator_iand
  - _operator_ixor
  - _operator_ior
  - _operator_concat
  - _operator_iconcat
  - _operator_contains
  - _operator_indexOf
  - _operator_countOf
  - _operator_getitem
  - _operator_setitem
  - _operator_delitem
  - _operator_eq
  - _operator_ne
  - _operator_lt
  - _operator_le
  - _operator_gt
  - _operator_ge
  - _operator_pow
  - _operator_ipow
  - _operator_is_
  - _operator_is_not
  - _operator_length_hint
  - _operator__compare_digest
  source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _OPERATOR_TRUTH_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"truth", (PyCFunction)_operator_truth, METH_O, _operator_truth__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ADD_METHODDEF
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"add", (PyCFunction)(void(*)(void))_operator_add, METH_FASTCALL,
        _operator_add__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_SUB_METHODDEF
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"sub", (PyCFunction)(void(*)(void))_operator_sub, METH_FASTCALL,
        _operator_sub__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_MUL_METHODDEF
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"mul", (PyCFunction)(void(*)(void))_operator_mul, METH_FASTCALL,
        _operator_mul__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_MATMUL_METHODDEF
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"matmul", (PyCFunction)(void(*)(void))_operator_matmul, METH_FASTCALL,
        _operator_matmul__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_FLOORDIV_METHODDEF
      pos:
        line_end: 160
        line_start: 158
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"floordiv", (PyCFunction)(void(*)(void))_operator_floordiv,
        METH_FASTCALL, _operator_floordiv__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_TRUEDIV_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"truediv", (PyCFunction)(void(*)(void))_operator_truediv, METH_FASTCALL,
        _operator_truediv__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_MOD_METHODDEF
      pos:
        line_end: 220
        line_start: 218
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"mod", (PyCFunction)(void(*)(void))_operator_mod, METH_FASTCALL,
        _operator_mod__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_NEG_METHODDEF
      pos:
        line_end: 250
        line_start: 248
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"neg", (PyCFunction)_operator_neg, METH_O, _operator_neg__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_POS_METHODDEF
      pos:
        line_end: 259
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"pos", (PyCFunction)_operator_pos, METH_O, _operator_pos__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ABS_METHODDEF
      pos:
        line_end: 268
        line_start: 266
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"abs", (PyCFunction)_operator_abs, METH_O, _operator_abs__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_INV_METHODDEF
      pos:
        line_end: 277
        line_start: 275
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"inv", (PyCFunction)_operator_inv, METH_O, _operator_inv__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_INVERT_METHODDEF
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"invert", (PyCFunction)_operator_invert, METH_O, _operator_invert__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_LSHIFT_METHODDEF
      pos:
        line_end: 295
        line_start: 293
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"lshift", (PyCFunction)(void(*)(void))_operator_lshift, METH_FASTCALL,
        _operator_lshift__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_RSHIFT_METHODDEF
      pos:
        line_end: 325
        line_start: 323
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"rshift", (PyCFunction)(void(*)(void))_operator_rshift, METH_FASTCALL,
        _operator_rshift__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_NOT__METHODDEF
      pos:
        line_end: 355
        line_start: 353
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"not_", (PyCFunction)_operator_not_, METH_O, _operator_not___doc__},'
    - item_type: preproc_def
      name: _OPERATOR_AND__METHODDEF
      pos:
        line_end: 383
        line_start: 381
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"and_", (PyCFunction)(void(*)(void))_operator_and_, METH_FASTCALL,
        _operator_and___doc__},'
    - item_type: preproc_def
      name: _OPERATOR_XOR_METHODDEF
      pos:
        line_end: 413
        line_start: 411
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"xor", (PyCFunction)(void(*)(void))_operator_xor, METH_FASTCALL,
        _operator_xor__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_OR__METHODDEF
      pos:
        line_end: 443
        line_start: 441
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"or_", (PyCFunction)(void(*)(void))_operator_or_, METH_FASTCALL,
        _operator_or___doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IADD_METHODDEF
      pos:
        line_end: 473
        line_start: 471
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"iadd", (PyCFunction)(void(*)(void))_operator_iadd, METH_FASTCALL,
        _operator_iadd__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ISUB_METHODDEF
      pos:
        line_end: 503
        line_start: 501
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"isub", (PyCFunction)(void(*)(void))_operator_isub, METH_FASTCALL,
        _operator_isub__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IMUL_METHODDEF
      pos:
        line_end: 533
        line_start: 531
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"imul", (PyCFunction)(void(*)(void))_operator_imul, METH_FASTCALL,
        _operator_imul__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IMATMUL_METHODDEF
      pos:
        line_end: 563
        line_start: 561
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"imatmul", (PyCFunction)(void(*)(void))_operator_imatmul, METH_FASTCALL,
        _operator_imatmul__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IFLOORDIV_METHODDEF
      pos:
        line_end: 593
        line_start: 591
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ifloordiv", (PyCFunction)(void(*)(void))_operator_ifloordiv,
        METH_FASTCALL, _operator_ifloordiv__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ITRUEDIV_METHODDEF
      pos:
        line_end: 623
        line_start: 621
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"itruediv", (PyCFunction)(void(*)(void))_operator_itruediv,
        METH_FASTCALL, _operator_itruediv__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IMOD_METHODDEF
      pos:
        line_end: 653
        line_start: 651
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"imod", (PyCFunction)(void(*)(void))_operator_imod, METH_FASTCALL,
        _operator_imod__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ILSHIFT_METHODDEF
      pos:
        line_end: 683
        line_start: 681
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ilshift", (PyCFunction)(void(*)(void))_operator_ilshift, METH_FASTCALL,
        _operator_ilshift__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IRSHIFT_METHODDEF
      pos:
        line_end: 713
        line_start: 711
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"irshift", (PyCFunction)(void(*)(void))_operator_irshift, METH_FASTCALL,
        _operator_irshift__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IAND_METHODDEF
      pos:
        line_end: 743
        line_start: 741
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"iand", (PyCFunction)(void(*)(void))_operator_iand, METH_FASTCALL,
        _operator_iand__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IXOR_METHODDEF
      pos:
        line_end: 773
        line_start: 771
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ixor", (PyCFunction)(void(*)(void))_operator_ixor, METH_FASTCALL,
        _operator_ixor__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IOR_METHODDEF
      pos:
        line_end: 803
        line_start: 801
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ior", (PyCFunction)(void(*)(void))_operator_ior, METH_FASTCALL,
        _operator_ior__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_CONCAT_METHODDEF
      pos:
        line_end: 833
        line_start: 831
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"concat", (PyCFunction)(void(*)(void))_operator_concat, METH_FASTCALL,
        _operator_concat__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_ICONCAT_METHODDEF
      pos:
        line_end: 863
        line_start: 861
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"iconcat", (PyCFunction)(void(*)(void))_operator_iconcat, METH_FASTCALL,
        _operator_iconcat__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_CONTAINS_METHODDEF
      pos:
        line_end: 893
        line_start: 891
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"contains", (PyCFunction)(void(*)(void))_operator_contains,
        METH_FASTCALL, _operator_contains__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_INDEXOF_METHODDEF
      pos:
        line_end: 928
        line_start: 926
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"indexOf", (PyCFunction)(void(*)(void))_operator_indexOf, METH_FASTCALL,
        _operator_indexOf__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_COUNTOF_METHODDEF
      pos:
        line_end: 963
        line_start: 961
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"countOf", (PyCFunction)(void(*)(void))_operator_countOf, METH_FASTCALL,
        _operator_countOf__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_GETITEM_METHODDEF
      pos:
        line_end: 998
        line_start: 996
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"getitem", (PyCFunction)(void(*)(void))_operator_getitem, METH_FASTCALL,
        _operator_getitem__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_SETITEM_METHODDEF
      pos:
        line_end: 1028
        line_start: 1026
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"setitem", (PyCFunction)(void(*)(void))_operator_setitem, METH_FASTCALL,
        _operator_setitem__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_DELITEM_METHODDEF
      pos:
        line_end: 1061
        line_start: 1059
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"delitem", (PyCFunction)(void(*)(void))_operator_delitem, METH_FASTCALL,
        _operator_delitem__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_EQ_METHODDEF
      pos:
        line_end: 1091
        line_start: 1089
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"eq", (PyCFunction)(void(*)(void))_operator_eq, METH_FASTCALL,
        _operator_eq__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_NE_METHODDEF
      pos:
        line_end: 1121
        line_start: 1119
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ne", (PyCFunction)(void(*)(void))_operator_ne, METH_FASTCALL,
        _operator_ne__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_LT_METHODDEF
      pos:
        line_end: 1151
        line_start: 1149
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"lt", (PyCFunction)(void(*)(void))_operator_lt, METH_FASTCALL,
        _operator_lt__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_LE_METHODDEF
      pos:
        line_end: 1181
        line_start: 1179
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"le", (PyCFunction)(void(*)(void))_operator_le, METH_FASTCALL,
        _operator_le__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_GT_METHODDEF
      pos:
        line_end: 1211
        line_start: 1209
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"gt", (PyCFunction)(void(*)(void))_operator_gt, METH_FASTCALL,
        _operator_gt__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_GE_METHODDEF
      pos:
        line_end: 1241
        line_start: 1239
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ge", (PyCFunction)(void(*)(void))_operator_ge, METH_FASTCALL,
        _operator_ge__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_POW_METHODDEF
      pos:
        line_end: 1271
        line_start: 1269
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"pow", (PyCFunction)(void(*)(void))_operator_pow, METH_FASTCALL,
        _operator_pow__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IPOW_METHODDEF
      pos:
        line_end: 1301
        line_start: 1299
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"ipow", (PyCFunction)(void(*)(void))_operator_ipow, METH_FASTCALL,
        _operator_ipow__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_INDEX_METHODDEF
      pos:
        line_end: 1331
        line_start: 1329
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"index", (PyCFunction)_operator_index, METH_O, _operator_index__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IS__METHODDEF
      pos:
        line_end: 1340
        line_start: 1338
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"is_", (PyCFunction)(void(*)(void))_operator_is_, METH_FASTCALL,
        _operator_is___doc__},'
    - item_type: preproc_def
      name: _OPERATOR_IS_NOT_METHODDEF
      pos:
        line_end: 1370
        line_start: 1368
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"is_not", (PyCFunction)(void(*)(void))_operator_is_not, METH_FASTCALL,
        _operator_is_not__doc__},'
    - item_type: preproc_def
      name: _OPERATOR_LENGTH_HINT_METHODDEF
      pos:
        line_end: 1406
        line_start: 1404
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"length_hint", (PyCFunction)(void(*)(void))_operator_length_hint,
        METH_FASTCALL, _operator_length_hint__doc__},'
    - item_type: preproc_def
      name: _OPERATOR__COMPARE_DIGEST_METHODDEF
      pos:
        line_end: 1472
        line_start: 1470
        source_file: /src/Python-3.8.3/Modules/clinic/_operator.c.h
      type_or_value: '{"_compare_digest", (PyCFunction)(void(*)(void))_operator__compare_digest,
        METH_FASTCALL, _operator__compare_digest__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _heapq_heappush
  - _heapq_heapreplace
  - _heapq_heappushpop
  - _heapq__heapreplace_max
  source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _HEAPQ_HEAPPUSH_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"heappush", (PyCFunction)(void(*)(void))_heapq_heappush, METH_FASTCALL,
        _heapq_heappush__doc__},'
    - item_type: preproc_def
      name: _HEAPQ_HEAPPOP_METHODDEF
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"heappop", (PyCFunction)_heapq_heappop, METH_O, _heapq_heappop__doc__},'
    - item_type: preproc_def
      name: _HEAPQ_HEAPREPLACE_METHODDEF
      pos:
        line_end: 59
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"heapreplace", (PyCFunction)(void(*)(void))_heapq_heapreplace,
        METH_FASTCALL, _heapq_heapreplace__doc__},'
    - item_type: preproc_def
      name: _HEAPQ_HEAPPUSHPOP_METHODDEF
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"heappushpop", (PyCFunction)(void(*)(void))_heapq_heappushpop,
        METH_FASTCALL, _heapq_heappushpop__doc__},'
    - item_type: preproc_def
      name: _HEAPQ_HEAPIFY_METHODDEF
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"heapify", (PyCFunction)_heapq_heapify, METH_O, _heapq_heapify__doc__},'
    - item_type: preproc_def
      name: _HEAPQ__HEAPPOP_MAX_METHODDEF
      pos:
        line_end: 131
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"_heappop_max", (PyCFunction)_heapq__heappop_max, METH_O, _heapq__heappop_max__doc__},'
    - item_type: preproc_def
      name: _HEAPQ__HEAPREPLACE_MAX_METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"_heapreplace_max", (PyCFunction)(void(*)(void))_heapq__heapreplace_max,
        METH_FASTCALL, _heapq__heapreplace_max__doc__},'
    - item_type: preproc_def
      name: _HEAPQ__HEAPIFY_MAX_METHODDEF
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/clinic/_heapqmodule.c.h
      type_or_value: '{"_heapify_max", (PyCFunction)_heapq__heapify_max, METH_O, _heapq__heapify_max__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pyexpat_xmlparser_Parse
  - pyexpat_xmlparser_SetBase
  - pyexpat_xmlparser_GetBase
  - pyexpat_xmlparser_GetInputContext
  - pyexpat_xmlparser_ExternalEntityParserCreate
  - pyexpat_xmlparser_SetParamEntityParsing
  - pyexpat_xmlparser_UseForeignDTD
  - pyexpat_ParserCreate
  - pyexpat_ErrorString
  source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_PARSE_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"Parse", (PyCFunction)(void(*)(void))pyexpat_xmlparser_Parse,
        METH_FASTCALL, pyexpat_xmlparser_Parse__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_PARSEFILE_METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"ParseFile", (PyCFunction)pyexpat_xmlparser_ParseFile, METH_O,
        pyexpat_xmlparser_ParseFile__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_SETBASE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"SetBase", (PyCFunction)pyexpat_xmlparser_SetBase, METH_O,
        pyexpat_xmlparser_SetBase__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_GETBASE_METHODDEF
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"GetBase", (PyCFunction)pyexpat_xmlparser_GetBase, METH_NOARGS,
        pyexpat_xmlparser_GetBase__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_GETINPUTCONTEXT_METHODDEF
      pos:
        line_end: 124
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"GetInputContext", (PyCFunction)pyexpat_xmlparser_GetInputContext,
        METH_NOARGS, pyexpat_xmlparser_GetInputContext__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_EXTERNALENTITYPARSERCREATE_METHODDEF
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"ExternalEntityParserCreate", (PyCFunction)(void(*)(void))pyexpat_xmlparser_ExternalEntityParserCreate,
        METH_FASTCALL, pyexpat_xmlparser_ExternalEntityParserCreate__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_SETPARAMENTITYPARSING_METHODDEF
      pos:
        line_end: 213
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"SetParamEntityParsing", (PyCFunction)pyexpat_xmlparser_SetParamEntityParsing,
        METH_O, pyexpat_xmlparser_SetParamEntityParsing__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"UseForeignDTD", (PyCFunction)(void(*)(void))pyexpat_xmlparser_UseForeignDTD,
        METH_FASTCALL, pyexpat_xmlparser_UseForeignDTD__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_PARSERCREATE_METHODDEF
      pos:
        line_end: 290
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"ParserCreate", (PyCFunction)(void(*)(void))pyexpat_ParserCreate,
        METH_FASTCALL|METH_KEYWORDS, pyexpat_ParserCreate__doc__},'
    - item_type: preproc_def
      name: PYEXPAT_ERRORSTRING_METHODDEF
      pos:
        line_end: 376
        line_start: 374
        source_file: /src/Python-3.8.3/Modules/clinic/pyexpat.c.h
      type_or_value: '{"ErrorString", (PyCFunction)pyexpat_ErrorString, METH_O, pyexpat_ErrorString__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - unicodedata_UCD_decimal
  - unicodedata_UCD_digit
  - unicodedata_UCD_numeric
  - unicodedata_UCD_category
  - unicodedata_UCD_bidirectional
  - unicodedata_UCD_combining
  - unicodedata_UCD_mirrored
  - unicodedata_UCD_east_asian_width
  - unicodedata_UCD_decomposition
  - unicodedata_UCD_is_normalized
  - unicodedata_UCD_normalize
  - unicodedata_UCD_name
  - unicodedata_UCD_lookup
  source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNICODEDATA_UCD_DECIMAL_METHODDEF
      pos:
        line_end: 16
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"decimal", (PyCFunction)(void(*)(void))unicodedata_UCD_decimal,
        METH_FASTCALL, unicodedata_UCD_decimal__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_DIGIT_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"digit", (PyCFunction)(void(*)(void))unicodedata_UCD_digit,
        METH_FASTCALL, unicodedata_UCD_digit__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_NUMERIC_METHODDEF
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"numeric", (PyCFunction)(void(*)(void))unicodedata_UCD_numeric,
        METH_FASTCALL, unicodedata_UCD_numeric__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_CATEGORY_METHODDEF
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"category", (PyCFunction)unicodedata_UCD_category, METH_O,
        unicodedata_UCD_category__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_BIDIRECTIONAL_METHODDEF
      pos:
        line_end: 199
        line_start: 197
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"bidirectional", (PyCFunction)unicodedata_UCD_bidirectional,
        METH_O, unicodedata_UCD_bidirectional__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_COMBINING_METHODDEF
      pos:
        line_end: 237
        line_start: 235
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"combining", (PyCFunction)unicodedata_UCD_combining, METH_O,
        unicodedata_UCD_combining__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_MIRRORED_METHODDEF
      pos:
        line_end: 281
        line_start: 279
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"mirrored", (PyCFunction)unicodedata_UCD_mirrored, METH_O,
        unicodedata_UCD_mirrored__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_EAST_ASIAN_WIDTH_METHODDEF
      pos:
        line_end: 322
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"east_asian_width", (PyCFunction)unicodedata_UCD_east_asian_width,
        METH_O, unicodedata_UCD_east_asian_width__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_DECOMPOSITION_METHODDEF
      pos:
        line_end: 360
        line_start: 358
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"decomposition", (PyCFunction)unicodedata_UCD_decomposition,
        METH_O, unicodedata_UCD_decomposition__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_IS_NORMALIZED_METHODDEF
      pos:
        line_end: 398
        line_start: 396
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"is_normalized", (PyCFunction)(void(*)(void))unicodedata_UCD_is_normalized,
        METH_FASTCALL, unicodedata_UCD_is_normalized__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_NORMALIZE_METHODDEF
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"normalize", (PyCFunction)(void(*)(void))unicodedata_UCD_normalize,
        METH_FASTCALL, unicodedata_UCD_normalize__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_NAME_METHODDEF
      pos:
        line_end: 493
        line_start: 491
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"name", (PyCFunction)(void(*)(void))unicodedata_UCD_name, METH_FASTCALL,
        unicodedata_UCD_name__doc__},'
    - item_type: preproc_def
      name: UNICODEDATA_UCD_LOOKUP_METHODDEF
      pos:
        line_end: 541
        line_start: 539
        source_file: /src/Python-3.8.3/Modules/clinic/unicodedata.c.h
      type_or_value: '{"lookup", (PyCFunction)unicodedata_UCD_lookup, METH_O, unicodedata_UCD_lookup__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _sre_getcodesize
  - _sre_ascii_iscased
  - _sre_unicode_iscased
  - _sre_ascii_tolower
  - _sre_unicode_tolower
  - _sre_SRE_Pattern_match
  - _sre_SRE_Pattern_fullmatch
  - _sre_SRE_Pattern_search
  - _sre_SRE_Pattern_findall
  - _sre_SRE_Pattern_finditer
  - _sre_SRE_Pattern_scanner
  - _sre_SRE_Pattern_split
  - _sre_SRE_Pattern_sub
  - _sre_SRE_Pattern_subn
  - _sre_SRE_Pattern___copy__
  - _sre_compile
  - _sre_SRE_Match_expand
  - _sre_SRE_Match_groups
  - _sre_SRE_Match_groupdict
  - _sre_SRE_Match_start
  - _sre_SRE_Match_end
  - _sre_SRE_Match_span
  - _sre_SRE_Match___copy__
  - _sre_SRE_Scanner_match
  - _sre_SRE_Scanner_search
  source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _SRE_GETCODESIZE_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"getcodesize", (PyCFunction)_sre_getcodesize, METH_NOARGS,
        _sre_getcodesize__doc__},'
    - item_type: preproc_def
      name: _SRE_ASCII_ISCASED_METHODDEF
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"ascii_iscased", (PyCFunction)_sre_ascii_iscased, METH_O, _sre_ascii_iscased__doc__},'
    - item_type: preproc_def
      name: _SRE_UNICODE_ISCASED_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"unicode_iscased", (PyCFunction)_sre_unicode_iscased, METH_O,
        _sre_unicode_iscased__doc__},'
    - item_type: preproc_def
      name: _SRE_ASCII_TOLOWER_METHODDEF
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"ascii_tolower", (PyCFunction)_sre_ascii_tolower, METH_O, _sre_ascii_tolower__doc__},'
    - item_type: preproc_def
      name: _SRE_UNICODE_TOLOWER_METHODDEF
      pos:
        line_end: 149
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"unicode_tolower", (PyCFunction)_sre_unicode_tolower, METH_O,
        _sre_unicode_tolower__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_MATCH_METHODDEF
      pos:
        line_end: 187
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"match", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_match,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_match__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_FULLMATCH_METHODDEF
      pos:
        line_end: 266
        line_start: 264
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"fullmatch", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_fullmatch,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_fullmatch__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_SEARCH_METHODDEF
      pos:
        line_end: 347
        line_start: 345
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"search", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_search,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_search__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_FINDALL_METHODDEF
      pos:
        line_end: 426
        line_start: 424
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"findall", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_findall,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_findall__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_FINDITER_METHODDEF
      pos:
        line_end: 507
        line_start: 505
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"finditer", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_finditer,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_finditer__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_SCANNER_METHODDEF
      pos:
        line_end: 585
        line_start: 583
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"scanner", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_scanner,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_scanner__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_SPLIT_METHODDEF
      pos:
        line_end: 664
        line_start: 662
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"split", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_split,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_split__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_SUB_METHODDEF
      pos:
        line_end: 720
        line_start: 718
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"sub", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_sub, METH_FASTCALL|METH_KEYWORDS,
        _sre_SRE_Pattern_sub__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN_SUBN_METHODDEF
      pos:
        line_end: 778
        line_start: 776
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"subn", (PyCFunction)(void(*)(void))_sre_SRE_Pattern_subn,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Pattern_subn__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN___COPY___METHODDEF
      pos:
        line_end: 835
        line_start: 833
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"__copy__", (PyCFunction)_sre_SRE_Pattern___copy__, METH_NOARGS,
        _sre_SRE_Pattern___copy____doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_PATTERN___DEEPCOPY___METHODDEF
      pos:
        line_end: 852
        line_start: 850
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)_sre_SRE_Pattern___deepcopy__,
        METH_O, _sre_SRE_Pattern___deepcopy____doc__},'
    - item_type: preproc_def
      name: _SRE_COMPILE_METHODDEF
      pos:
        line_end: 861
        line_start: 859
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"compile", (PyCFunction)(void(*)(void))_sre_compile, METH_FASTCALL|METH_KEYWORDS,
        _sre_compile__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_EXPAND_METHODDEF
      pos:
        line_end: 941
        line_start: 939
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"expand", (PyCFunction)(void(*)(void))_sre_SRE_Match_expand,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_expand__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_GROUPS_METHODDEF
      pos:
        line_end: 976
        line_start: 974
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"groups", (PyCFunction)(void(*)(void))_sre_SRE_Match_groups,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groups__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_GROUPDICT_METHODDEF
      pos:
        line_end: 1016
        line_start: 1014
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"groupdict", (PyCFunction)(void(*)(void))_sre_SRE_Match_groupdict,
        METH_FASTCALL|METH_KEYWORDS, _sre_SRE_Match_groupdict__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_START_METHODDEF
      pos:
        line_end: 1053
        line_start: 1051
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"start", (PyCFunction)(void(*)(void))_sre_SRE_Match_start,
        METH_FASTCALL, _sre_SRE_Match_start__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_END_METHODDEF
      pos:
        line_end: 1090
        line_start: 1088
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"end", (PyCFunction)(void(*)(void))_sre_SRE_Match_end, METH_FASTCALL,
        _sre_SRE_Match_end__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH_SPAN_METHODDEF
      pos:
        line_end: 1127
        line_start: 1125
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"span", (PyCFunction)(void(*)(void))_sre_SRE_Match_span, METH_FASTCALL,
        _sre_SRE_Match_span__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH___COPY___METHODDEF
      pos:
        line_end: 1158
        line_start: 1156
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"__copy__", (PyCFunction)_sre_SRE_Match___copy__, METH_NOARGS,
        _sre_SRE_Match___copy____doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_MATCH___DEEPCOPY___METHODDEF
      pos:
        line_end: 1175
        line_start: 1173
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"__deepcopy__", (PyCFunction)_sre_SRE_Match___deepcopy__, METH_O,
        _sre_SRE_Match___deepcopy____doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_SCANNER_MATCH_METHODDEF
      pos:
        line_end: 1183
        line_start: 1181
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"match", (PyCFunction)_sre_SRE_Scanner_match, METH_NOARGS,
        _sre_SRE_Scanner_match__doc__},'
    - item_type: preproc_def
      name: _SRE_SRE_SCANNER_SEARCH_METHODDEF
      pos:
        line_end: 1200
        line_start: 1198
        source_file: /src/Python-3.8.3/Modules/clinic/_sre.c.h
      type_or_value: '{"search", (PyCFunction)_sre_SRE_Scanner_search, METH_NOARGS,
        _sre_SRE_Scanner_search__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - EVP_copy
  - EVP_digest
  - EVP_hexdigest
  - EVP_new
  - _hashlib_openssl_md5
  - _hashlib_openssl_sha1
  - _hashlib_openssl_sha224
  - _hashlib_openssl_sha256
  - _hashlib_openssl_sha384
  - _hashlib_openssl_sha512
  - pbkdf2_hmac
  - _hashlib_scrypt
  - _hashlib_hmac_digest
  source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVP_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"copy", (PyCFunction)EVP_copy, METH_NOARGS, EVP_copy__doc__},'
    - item_type: preproc_def
      name: EVP_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"digest", (PyCFunction)EVP_digest, METH_NOARGS, EVP_digest__doc__},'
    - item_type: preproc_def
      name: EVP_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"hexdigest", (PyCFunction)EVP_hexdigest, METH_NOARGS, EVP_hexdigest__doc__},'
    - item_type: preproc_def
      name: EVP_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"update", (PyCFunction)EVP_update, METH_O, EVP_update__doc__},'
    - item_type: preproc_def
      name: EVP_NEW_METHODDEF
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"new", (PyCFunction)(void(*)(void))EVP_new, METH_FASTCALL|METH_KEYWORDS,
        EVP_new__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_MD5_METHODDEF
      pos:
        line_end: 119
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_md5", (PyCFunction)(void(*)(void))_hashlib_openssl_md5,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_md5__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_SHA1_METHODDEF
      pos:
        line_end: 156
        line_start: 154
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_sha1", (PyCFunction)(void(*)(void))_hashlib_openssl_sha1,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha1__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_SHA224_METHODDEF
      pos:
        line_end: 193
        line_start: 191
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_sha224", (PyCFunction)(void(*)(void))_hashlib_openssl_sha224,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha224__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_SHA256_METHODDEF
      pos:
        line_end: 230
        line_start: 228
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_sha256", (PyCFunction)(void(*)(void))_hashlib_openssl_sha256,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha256__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_SHA384_METHODDEF
      pos:
        line_end: 267
        line_start: 265
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_sha384", (PyCFunction)(void(*)(void))_hashlib_openssl_sha384,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha384__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_OPENSSL_SHA512_METHODDEF
      pos:
        line_end: 304
        line_start: 302
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"openssl_sha512", (PyCFunction)(void(*)(void))_hashlib_openssl_sha512,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_openssl_sha512__doc__},'
    - item_type: preproc_def
      name: PBKDF2_HMAC_METHODDEF
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"pbkdf2_hmac", (PyCFunction)(void(*)(void))pbkdf2_hmac, METH_FASTCALL|METH_KEYWORDS,
        pbkdf2_hmac__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_SCRYPT_METHODDEF
      pos:
        line_end: 433
        line_start: 431
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"scrypt", (PyCFunction)(void(*)(void))_hashlib_scrypt, METH_FASTCALL|METH_KEYWORDS,
        _hashlib_scrypt__doc__},'
    - item_type: preproc_def
      name: _HASHLIB_HMAC_DIGEST_METHODDEF
      pos:
        line_end: 560
        line_start: 558
        source_file: /src/Python-3.8.3/Modules/clinic/_hashopenssl.c.h
      type_or_value: '{"hmac_digest", (PyCFunction)(void(*)(void))_hashlib_hmac_digest,
        METH_FASTCALL|METH_KEYWORDS, _hashlib_hmac_digest__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MD5Type_copy
  - MD5Type_digest
  - MD5Type_hexdigest
  - _md5_md5
  source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD5TYPE_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
      type_or_value: '{"copy", (PyCFunction)MD5Type_copy, METH_NOARGS, MD5Type_copy__doc__},'
    - item_type: preproc_def
      name: MD5TYPE_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
      type_or_value: '{"digest", (PyCFunction)MD5Type_digest, METH_NOARGS, MD5Type_digest__doc__},'
    - item_type: preproc_def
      name: MD5TYPE_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)MD5Type_hexdigest, METH_NOARGS, MD5Type_hexdigest__doc__},'
    - item_type: preproc_def
      name: MD5TYPE_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
      type_or_value: '{"update", (PyCFunction)MD5Type_update, METH_O, MD5Type_update__doc__},'
    - item_type: preproc_def
      name: _MD5_MD5_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/md5module.c.h
      type_or_value: '{"md5", (PyCFunction)(void(*)(void))_md5_md5, METH_FASTCALL|METH_KEYWORDS,
        _md5_md5__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - gc_enable
  - gc_disable
  - gc_isenabled
  - gc_collect
  - gc_set_debug
  - gc_get_debug
  - gc_get_threshold
  - gc_get_count
  - gc_get_objects
  - gc_get_stats
  - gc_freeze
  - gc_unfreeze
  - gc_get_freeze_count
  source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GC_ENABLE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"enable", (PyCFunction)gc_enable, METH_NOARGS, gc_enable__doc__},'
    - item_type: preproc_def
      name: GC_DISABLE_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"disable", (PyCFunction)gc_disable, METH_NOARGS, gc_disable__doc__},'
    - item_type: preproc_def
      name: GC_ISENABLED_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"isenabled", (PyCFunction)gc_isenabled, METH_NOARGS, gc_isenabled__doc__},'
    - item_type: preproc_def
      name: GC_COLLECT_METHODDEF
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"collect", (PyCFunction)(void(*)(void))gc_collect, METH_FASTCALL|METH_KEYWORDS,
        gc_collect__doc__},'
    - item_type: preproc_def
      name: GC_SET_DEBUG_METHODDEF
      pos:
        line_end: 143
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"set_debug", (PyCFunction)gc_set_debug, METH_O, gc_set_debug__doc__},'
    - item_type: preproc_def
      name: GC_GET_DEBUG_METHODDEF
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_debug", (PyCFunction)gc_get_debug, METH_NOARGS, gc_get_debug__doc__},'
    - item_type: preproc_def
      name: GC_GET_THRESHOLD_METHODDEF
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_threshold", (PyCFunction)gc_get_threshold, METH_NOARGS,
        gc_get_threshold__doc__},'
    - item_type: preproc_def
      name: GC_GET_COUNT_METHODDEF
      pos:
        line_end: 222
        line_start: 220
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_count", (PyCFunction)gc_get_count, METH_NOARGS, gc_get_count__doc__},'
    - item_type: preproc_def
      name: GC_GET_OBJECTS_METHODDEF
      pos:
        line_end: 246
        line_start: 244
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_objects", (PyCFunction)(void(*)(void))gc_get_objects,
        METH_FASTCALL|METH_KEYWORDS, gc_get_objects__doc__},'
    - item_type: preproc_def
      name: GC_GET_STATS_METHODDEF
      pos:
        line_end: 285
        line_start: 283
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_stats", (PyCFunction)gc_get_stats, METH_NOARGS, gc_get_stats__doc__},'
    - item_type: preproc_def
      name: GC_IS_TRACKED_METHODDEF
      pos:
        line_end: 305
        line_start: 303
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"is_tracked", (PyCFunction)gc_is_tracked, METH_O, gc_is_tracked__doc__},'
    - item_type: preproc_def
      name: GC_FREEZE_METHODDEF
      pos:
        line_end: 318
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"freeze", (PyCFunction)gc_freeze, METH_NOARGS, gc_freeze__doc__},'
    - item_type: preproc_def
      name: GC_UNFREEZE_METHODDEF
      pos:
        line_end: 338
        line_start: 336
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"unfreeze", (PyCFunction)gc_unfreeze, METH_NOARGS, gc_unfreeze__doc__},'
    - item_type: preproc_def
      name: GC_GET_FREEZE_COUNT_METHODDEF
      pos:
        line_end: 356
        line_start: 354
        source_file: /src/Python-3.8.3/Modules/clinic/gcmodule.c.h
      type_or_value: '{"get_freeze_count", (PyCFunction)gc_get_freeze_count, METH_NOARGS,
        gc_get_freeze_count__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - grp_getgrgid
  - grp_getgrnam
  - grp_getgrall
  source_file: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GRP_GETGRGID_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
      type_or_value: '{"getgrgid", (PyCFunction)(void(*)(void))grp_getgrgid, METH_FASTCALL|METH_KEYWORDS,
        grp_getgrgid__doc__},'
    - item_type: preproc_def
      name: GRP_GETGRNAM_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
      type_or_value: '{"getgrnam", (PyCFunction)(void(*)(void))grp_getgrnam, METH_FASTCALL|METH_KEYWORDS,
        grp_getgrnam__doc__},'
    - item_type: preproc_def
      name: GRP_GETGRALL_METHODDEF
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/clinic/grpmodule.c.h
      type_or_value: '{"getgrall", (PyCFunction)grp_getgrall, METH_NOARGS, grp_getgrall__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmath_acos
  - cmath_acosh
  - cmath_asin
  - cmath_asinh
  - cmath_atan
  - cmath_atanh
  - cmath_cos
  - cmath_cosh
  - cmath_exp
  - cmath_log10
  - cmath_sin
  - cmath_sinh
  - cmath_sqrt
  - cmath_tan
  - cmath_tanh
  - cmath_log
  - cmath_phase
  - cmath_polar
  - cmath_rect
  - cmath_isfinite
  - cmath_isnan
  - cmath_isinf
  - cmath_isclose
  source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMATH_ACOS_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"acos", (PyCFunction)cmath_acos, METH_O, cmath_acos__doc__},'
    - item_type: preproc_def
      name: CMATH_ACOSH_METHODDEF
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"acosh", (PyCFunction)cmath_acosh, METH_O, cmath_acosh__doc__},'
    - item_type: preproc_def
      name: CMATH_ASIN_METHODDEF
      pos:
        line_end: 98
        line_start: 96
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"asin", (PyCFunction)cmath_asin, METH_O, cmath_asin__doc__},'
    - item_type: preproc_def
      name: CMATH_ASINH_METHODDEF
      pos:
        line_end: 141
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"asinh", (PyCFunction)cmath_asinh, METH_O, cmath_asinh__doc__},'
    - item_type: preproc_def
      name: CMATH_ATAN_METHODDEF
      pos:
        line_end: 184
        line_start: 182
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"atan", (PyCFunction)cmath_atan, METH_O, cmath_atan__doc__},'
    - item_type: preproc_def
      name: CMATH_ATANH_METHODDEF
      pos:
        line_end: 227
        line_start: 225
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"atanh", (PyCFunction)cmath_atanh, METH_O, cmath_atanh__doc__},'
    - item_type: preproc_def
      name: CMATH_COS_METHODDEF
      pos:
        line_end: 270
        line_start: 268
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"cos", (PyCFunction)cmath_cos, METH_O, cmath_cos__doc__},'
    - item_type: preproc_def
      name: CMATH_COSH_METHODDEF
      pos:
        line_end: 313
        line_start: 311
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"cosh", (PyCFunction)cmath_cosh, METH_O, cmath_cosh__doc__},'
    - item_type: preproc_def
      name: CMATH_EXP_METHODDEF
      pos:
        line_end: 356
        line_start: 354
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"exp", (PyCFunction)cmath_exp, METH_O, cmath_exp__doc__},'
    - item_type: preproc_def
      name: CMATH_LOG10_METHODDEF
      pos:
        line_end: 399
        line_start: 397
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"log10", (PyCFunction)cmath_log10, METH_O, cmath_log10__doc__},'
    - item_type: preproc_def
      name: CMATH_SIN_METHODDEF
      pos:
        line_end: 442
        line_start: 440
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"sin", (PyCFunction)cmath_sin, METH_O, cmath_sin__doc__},'
    - item_type: preproc_def
      name: CMATH_SINH_METHODDEF
      pos:
        line_end: 485
        line_start: 483
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"sinh", (PyCFunction)cmath_sinh, METH_O, cmath_sinh__doc__},'
    - item_type: preproc_def
      name: CMATH_SQRT_METHODDEF
      pos:
        line_end: 528
        line_start: 526
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"sqrt", (PyCFunction)cmath_sqrt, METH_O, cmath_sqrt__doc__},'
    - item_type: preproc_def
      name: CMATH_TAN_METHODDEF
      pos:
        line_end: 571
        line_start: 569
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"tan", (PyCFunction)cmath_tan, METH_O, cmath_tan__doc__},'
    - item_type: preproc_def
      name: CMATH_TANH_METHODDEF
      pos:
        line_end: 614
        line_start: 612
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"tanh", (PyCFunction)cmath_tanh, METH_O, cmath_tanh__doc__},'
    - item_type: preproc_def
      name: CMATH_LOG_METHODDEF
      pos:
        line_end: 659
        line_start: 657
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"log", (PyCFunction)(void(*)(void))cmath_log, METH_FASTCALL,
        cmath_log__doc__},'
    - item_type: preproc_def
      name: CMATH_PHASE_METHODDEF
      pos:
        line_end: 696
        line_start: 694
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"phase", (PyCFunction)cmath_phase, METH_O, cmath_phase__doc__},'
    - item_type: preproc_def
      name: CMATH_POLAR_METHODDEF
      pos:
        line_end: 726
        line_start: 724
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"polar", (PyCFunction)cmath_polar, METH_O, cmath_polar__doc__},'
    - item_type: preproc_def
      name: CMATH_RECT_METHODDEF
      pos:
        line_end: 754
        line_start: 752
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"rect", (PyCFunction)(void(*)(void))cmath_rect, METH_FASTCALL,
        cmath_rect__doc__},'
    - item_type: preproc_def
      name: CMATH_ISFINITE_METHODDEF
      pos:
        line_end: 802
        line_start: 800
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"isfinite", (PyCFunction)cmath_isfinite, METH_O, cmath_isfinite__doc__},'
    - item_type: preproc_def
      name: CMATH_ISNAN_METHODDEF
      pos:
        line_end: 830
        line_start: 828
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"isnan", (PyCFunction)cmath_isnan, METH_O, cmath_isnan__doc__},'
    - item_type: preproc_def
      name: CMATH_ISINF_METHODDEF
      pos:
        line_end: 858
        line_start: 856
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"isinf", (PyCFunction)cmath_isinf, METH_O, cmath_isinf__doc__},'
    - item_type: preproc_def
      name: CMATH_ISCLOSE_METHODDEF
      pos:
        line_end: 901
        line_start: 899
        source_file: /src/Python-3.8.3/Modules/clinic/cmathmodule.c.h
      type_or_value: '{"isclose", (PyCFunction)(void(*)(void))cmath_isclose, METH_FASTCALL|METH_KEYWORDS,
        cmath_isclose__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _contextvars_copy_context
  source_file: /src/Python-3.8.3/Modules/clinic/_contextvarsmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CONTEXTVARS_COPY_CONTEXT_METHODDEF
      pos:
        line_end: 11
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/clinic/_contextvarsmodule.c.h
      type_or_value: '{"copy_context", (PyCFunction)_contextvars_copy_context, METH_NOARGS,
        _contextvars_copy_context__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _gdbm_gdbm_get
  - _gdbm_gdbm_setdefault
  - _gdbm_gdbm_close
  - _gdbm_gdbm_keys
  - _gdbm_gdbm_firstkey
  - _gdbm_gdbm_nextkey
  - _gdbm_gdbm_reorganize
  - _gdbm_gdbm_sync
  - dbmopen
  source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GDBM_GDBM_GET_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_gdbm_gdbm_get, METH_FASTCALL,
        _gdbm_gdbm_get__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_SETDEFAULT_METHODDEF
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"setdefault", (PyCFunction)(void(*)(void))_gdbm_gdbm_setdefault,
        METH_FASTCALL, _gdbm_gdbm_setdefault__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_CLOSE_METHODDEF
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"close", (PyCFunction)_gdbm_gdbm_close, METH_NOARGS, _gdbm_gdbm_close__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_KEYS_METHODDEF
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"keys", (PyCFunction)_gdbm_gdbm_keys, METH_NOARGS, _gdbm_gdbm_keys__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_FIRSTKEY_METHODDEF
      pos:
        line_end: 121
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"firstkey", (PyCFunction)_gdbm_gdbm_firstkey, METH_NOARGS,
        _gdbm_gdbm_firstkey__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_NEXTKEY_METHODDEF
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"nextkey", (PyCFunction)_gdbm_gdbm_nextkey, METH_O, _gdbm_gdbm_nextkey__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_REORGANIZE_METHODDEF
      pos:
        line_end: 182
        line_start: 180
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"reorganize", (PyCFunction)_gdbm_gdbm_reorganize, METH_NOARGS,
        _gdbm_gdbm_reorganize__doc__},'
    - item_type: preproc_def
      name: _GDBM_GDBM_SYNC_METHODDEF
      pos:
        line_end: 203
        line_start: 201
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"sync", (PyCFunction)_gdbm_gdbm_sync, METH_NOARGS, _gdbm_gdbm_sync__doc__},'
    - item_type: preproc_def
      name: DBMOPEN_METHODDEF
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/Python-3.8.3/Modules/clinic/_gdbmmodule.c.h
      type_or_value: '{"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL,
        dbmopen__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - SHA256Type_copy
  - SHA256Type_digest
  - SHA256Type_hexdigest
  - _sha256_sha256
  - _sha256_sha224
  source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA256TYPE_COPY_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"copy", (PyCFunction)SHA256Type_copy, METH_NOARGS, SHA256Type_copy__doc__},'
    - item_type: preproc_def
      name: SHA256TYPE_DIGEST_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"digest", (PyCFunction)SHA256Type_digest, METH_NOARGS, SHA256Type_digest__doc__},'
    - item_type: preproc_def
      name: SHA256TYPE_HEXDIGEST_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"hexdigest", (PyCFunction)SHA256Type_hexdigest, METH_NOARGS,
        SHA256Type_hexdigest__doc__},'
    - item_type: preproc_def
      name: SHA256TYPE_UPDATE_METHODDEF
      pos:
        line_end: 66
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"update", (PyCFunction)SHA256Type_update, METH_O, SHA256Type_update__doc__},'
    - item_type: preproc_def
      name: _SHA256_SHA256_METHODDEF
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"sha256", (PyCFunction)(void(*)(void))_sha256_sha256, METH_FASTCALL|METH_KEYWORDS,
        _sha256_sha256__doc__},'
    - item_type: preproc_def
      name: _SHA256_SHA224_METHODDEF
      pos:
        line_end: 112
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/clinic/sha256module.c.h
      type_or_value: '{"sha224", (PyCFunction)(void(*)(void))_sha256_sha224, METH_FASTCALL|METH_KEYWORDS,
        _sha256_sha224__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _bz2_BZ2Compressor_compress
  - _bz2_BZ2Compressor_flush
  - _bz2_BZ2Compressor___init__
  - _bz2_BZ2Decompressor_decompress
  - _bz2_BZ2Decompressor___init__
  source_file: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _BZ2_BZ2COMPRESSOR_COMPRESS_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
      type_or_value: '{"compress", (PyCFunction)_bz2_BZ2Compressor_compress, METH_O,
        _bz2_BZ2Compressor_compress__doc__},'
    - item_type: preproc_def
      name: _BZ2_BZ2COMPRESSOR_FLUSH_METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
      type_or_value: '{"flush", (PyCFunction)_bz2_BZ2Compressor_flush, METH_NOARGS,
        _bz2_BZ2Compressor_flush__doc__},'
    - item_type: preproc_def
      name: _BZ2_BZ2DECOMPRESSOR_DECOMPRESS_METHODDEF
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/clinic/_bz2module.c.h
      type_or_value: '{"decompress", (PyCFunction)(void(*)(void))_bz2_BZ2Decompressor_decompress,
        METH_FASTCALL|METH_KEYWORDS, _bz2_BZ2Decompressor_decompress__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - audioop_getsample
  - audioop_max
  - audioop_minmax
  - audioop_avg
  - audioop_rms
  - audioop_findfit
  - audioop_findfactor
  - audioop_findmax
  - audioop_avgpp
  - audioop_maxpp
  - audioop_cross
  - audioop_mul
  - audioop_tomono
  - audioop_tostereo
  - audioop_add
  - audioop_bias
  - audioop_reverse
  - audioop_byteswap
  - audioop_lin2lin
  - audioop_ratecv
  - audioop_lin2ulaw
  - audioop_ulaw2lin
  - audioop_lin2alaw
  - audioop_alaw2lin
  - audioop_lin2adpcm
  - audioop_adpcm2lin
  source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AUDIOOP_GETSAMPLE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"getsample", (PyCFunction)(void(*)(void))audioop_getsample,
        METH_FASTCALL, audioop_getsample__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_MAX_METHODDEF
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"max", (PyCFunction)(void(*)(void))audioop_max, METH_FASTCALL,
        audioop_max__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_MINMAX_METHODDEF
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"minmax", (PyCFunction)(void(*)(void))audioop_minmax, METH_FASTCALL,
        audioop_minmax__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_AVG_METHODDEF
      pos:
        line_end: 178
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"avg", (PyCFunction)(void(*)(void))audioop_avg, METH_FASTCALL,
        audioop_avg__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_RMS_METHODDEF
      pos:
        line_end: 227
        line_start: 225
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"rms", (PyCFunction)(void(*)(void))audioop_rms, METH_FASTCALL,
        audioop_rms__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_FINDFIT_METHODDEF
      pos:
        line_end: 276
        line_start: 274
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"findfit", (PyCFunction)(void(*)(void))audioop_findfit, METH_FASTCALL,
        audioop_findfit__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_FINDFACTOR_METHODDEF
      pos:
        line_end: 328
        line_start: 326
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"findfactor", (PyCFunction)(void(*)(void))audioop_findfactor,
        METH_FASTCALL, audioop_findfactor__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_FINDMAX_METHODDEF
      pos:
        line_end: 380
        line_start: 378
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"findmax", (PyCFunction)(void(*)(void))audioop_findmax, METH_FASTCALL,
        audioop_findmax__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_AVGPP_METHODDEF
      pos:
        line_end: 438
        line_start: 436
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"avgpp", (PyCFunction)(void(*)(void))audioop_avgpp, METH_FASTCALL,
        audioop_avgpp__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_MAXPP_METHODDEF
      pos:
        line_end: 487
        line_start: 485
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"maxpp", (PyCFunction)(void(*)(void))audioop_maxpp, METH_FASTCALL,
        audioop_maxpp__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_CROSS_METHODDEF
      pos:
        line_end: 536
        line_start: 534
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"cross", (PyCFunction)(void(*)(void))audioop_cross, METH_FASTCALL,
        audioop_cross__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_MUL_METHODDEF
      pos:
        line_end: 585
        line_start: 583
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"mul", (PyCFunction)(void(*)(void))audioop_mul, METH_FASTCALL,
        audioop_mul__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_TOMONO_METHODDEF
      pos:
        line_end: 646
        line_start: 644
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"tomono", (PyCFunction)(void(*)(void))audioop_tomono, METH_FASTCALL,
        audioop_tomono__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_TOSTEREO_METHODDEF
      pos:
        line_end: 718
        line_start: 716
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"tostereo", (PyCFunction)(void(*)(void))audioop_tostereo, METH_FASTCALL,
        audioop_tostereo__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_ADD_METHODDEF
      pos:
        line_end: 790
        line_start: 788
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"add", (PyCFunction)(void(*)(void))audioop_add, METH_FASTCALL,
        audioop_add__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_BIAS_METHODDEF
      pos:
        line_end: 852
        line_start: 850
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"bias", (PyCFunction)(void(*)(void))audioop_bias, METH_FASTCALL,
        audioop_bias__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_REVERSE_METHODDEF
      pos:
        line_end: 911
        line_start: 909
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"reverse", (PyCFunction)(void(*)(void))audioop_reverse, METH_FASTCALL,
        audioop_reverse__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_BYTESWAP_METHODDEF
      pos:
        line_end: 960
        line_start: 958
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"byteswap", (PyCFunction)(void(*)(void))audioop_byteswap, METH_FASTCALL,
        audioop_byteswap__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_LIN2LIN_METHODDEF
      pos:
        line_end: 1009
        line_start: 1007
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"lin2lin", (PyCFunction)(void(*)(void))audioop_lin2lin, METH_FASTCALL,
        audioop_lin2lin__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_RATECV_METHODDEF
      pos:
        line_end: 1070
        line_start: 1068
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"ratecv", (PyCFunction)(void(*)(void))audioop_ratecv, METH_FASTCALL,
        audioop_ratecv__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_LIN2ULAW_METHODDEF
      pos:
        line_end: 1180
        line_start: 1178
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"lin2ulaw", (PyCFunction)(void(*)(void))audioop_lin2ulaw, METH_FASTCALL,
        audioop_lin2ulaw__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_ULAW2LIN_METHODDEF
      pos:
        line_end: 1229
        line_start: 1227
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"ulaw2lin", (PyCFunction)(void(*)(void))audioop_ulaw2lin, METH_FASTCALL,
        audioop_ulaw2lin__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_LIN2ALAW_METHODDEF
      pos:
        line_end: 1278
        line_start: 1276
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"lin2alaw", (PyCFunction)(void(*)(void))audioop_lin2alaw, METH_FASTCALL,
        audioop_lin2alaw__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_ALAW2LIN_METHODDEF
      pos:
        line_end: 1327
        line_start: 1325
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"alaw2lin", (PyCFunction)(void(*)(void))audioop_alaw2lin, METH_FASTCALL,
        audioop_alaw2lin__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_LIN2ADPCM_METHODDEF
      pos:
        line_end: 1376
        line_start: 1374
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"lin2adpcm", (PyCFunction)(void(*)(void))audioop_lin2adpcm,
        METH_FASTCALL, audioop_lin2adpcm__doc__},'
    - item_type: preproc_def
      name: AUDIOOP_ADPCM2LIN_METHODDEF
      pos:
        line_end: 1428
        line_start: 1426
        source_file: /src/Python-3.8.3/Modules/clinic/audioop.c.h
      type_or_value: '{"adpcm2lin", (PyCFunction)(void(*)(void))audioop_adpcm2lin,
        METH_FASTCALL, audioop_adpcm2lin__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _dbm_dbm_close
  - _dbm_dbm_keys
  - _dbm_dbm_get
  - _dbm_dbm_setdefault
  - dbmopen
  source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _DBM_DBM_CLOSE_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
      type_or_value: '{"close", (PyCFunction)_dbm_dbm_close, METH_NOARGS, _dbm_dbm_close__doc__},'
    - item_type: preproc_def
      name: _DBM_DBM_KEYS_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
      type_or_value: '{"keys", (PyCFunction)_dbm_dbm_keys, METH_NOARGS, _dbm_dbm_keys__doc__},'
    - item_type: preproc_def
      name: _DBM_DBM_GET_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_dbm_dbm_get, METH_FASTCALL,
        _dbm_dbm_get__doc__},'
    - item_type: preproc_def
      name: _DBM_DBM_SETDEFAULT_METHODDEF
      pos:
        line_end: 81
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
      type_or_value: '{"setdefault", (PyCFunction)(void(*)(void))_dbm_dbm_setdefault,
        METH_FASTCALL, _dbm_dbm_setdefault__doc__},'
    - item_type: preproc_def
      name: DBMOPEN_METHODDEF
      pos:
        line_end: 121
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/clinic/_dbmmodule.c.h
      type_or_value: '{"open", (PyCFunction)(void(*)(void))dbmopen, METH_FASTCALL,
        dbmopen__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - BOUNDS_CHECK
  - PyDec_CheckExact
  - PyDec_Check
  - PyDecSignalDict_Check
  - PyDecContext_Check
  - MPD
  - SdFlagAddr
  - SdFlags
  - CTX
  - CtxCaps
  - incr_true
  - incr_false
  - value_error_int
  - value_error_ptr
  - type_error_int
  - runtime_error_int
  - INTERNAL_ERROR_INT
  - runtime_error_ptr
  - INTERNAL_ERROR_PTR
  - flags_as_exception
  - exception_as_flag
  - flags_as_list
  - signals_as_list
  - list_as_flags
  - flags_as_dict
  - dict_as_flags
  - long_as_flags
  - dec_addstatus
  - getround
  - signaldict_init
  - signaldict_iter
  - signaldict_getitem
  - signaldict_setitem
  - signaldict_repr
  - signaldict_richcompare
  - signaldict_copy
  - Dec_CONTEXT_GET_SSIZE
  - Dec_CONTEXT_GET_ULONG
  - context_getround
  - context_getcapitals
  - context_getallcr
  - context_getetiny
  - context_getetop
  - context_setprec
  - context_setemin
  - context_setemax
  - context_unsafe_setprec
  - context_unsafe_setemin
  - context_unsafe_setemax
  - context_setround
  - context_setcapitals
  - context_settraps
  - context_settraps_list
  - context_settraps_dict
  - context_setstatus
  - context_setstatus_list
  - context_setstatus_dict
  - context_setclamp
  - context_setallcr
  - context_getattr
  - context_setattr
  - context_clear_traps
  - context_clear_flags
  - context_new
  - context_dealloc
  - context_init
  - if
  - if
  - context_repr
  - init_basic_context
  - init_extended_context
  - ieee_context
  - context_copy
  - context_reduce
  - CONTEXT_CHECK
  - CONTEXT_CHECK_VA
  - current_context_from_dict
  - current_context
  - CURRENT_CONTEXT
  - PyDec_GetCurrentContext
  - PyDec_SetCurrentContext
  - init_current_context
  - current_context
  - CURRENT_CONTEXT
  - PyDec_GetCurrentContext
  - PyDec_SetCurrentContext
  - ctxmanager_new
  - ctxmanager_dealloc
  - ctxmanager_set_local
  - ctxmanager_restore_global
  - PyDecType_New
  - dec_alloc
  - dec_dealloc
  - is_space
  - numeric_as_ascii
  - PyDecType_FromCString
  - PyDecType_FromCStringExact
  - PyDecType_FromUnicode
  - PyDecType_FromUnicodeExactWS
  - _dec_settriple
  - PyDecType_FromSsize
  - PyDecType_FromSsizeExact
  - dec_from_long
  - PyDecType_FromLong
  - PyDecType_FromLongExact
  - PyDecType_FromFloatExact
  - PyDecType_FromFloat
  - PyDecType_FromDecimalExact
  - sequence_as_tuple
  - dectuple_as_str
  - PyDecType_FromSequence
  - PyDecType_FromSequenceExact
  - PyDec_FromCString
  - PyDec_FromCStringExact
  - PyDec_FromUnicode
  - PyDec_FromUnicodeExact
  - PyDec_FromUnicodeExactWS
  - PyDec_FromSsize
  - PyDec_FromSsizeExact
  - PyDec_FromLong
  - PyDec_FromLongExact
  - PyDec_FromFloat
  - PyDec_FromFloatExact
  - PyDec_FromSequence
  - PyDec_FromSequenceExact
  - dec_from_float
  - ctx_from_float
  - dec_apply
  - PyDecType_FromObjectExact
  - PyDec_FromObject
  - dec_new
  - ctx_create_decimal
  - convert_op
  - CONVERT_OP
  - CONVERT_BINOP
  - CONVERT_TERNOP
  - CONVERT_OP_RAISE
  - CONVERT_BINOP_RAISE
  - CONVERT_TERNOP_RAISE
  - multiply_by_denominator
  - numerator_as_decimal
  - convert_op_cmp
  - CONVERT_BINOP_CMP
  - unicode_fromascii
  - dec_str
  - dec_repr
  - dec_strdup
  - dec_replace_fillchar
  - dotsep_as_utf8
  - dec_format
  - dec_as_long
  - dec_as_integer_ratio
  - PyDec_ToIntegralValue
  - PyDec_ToIntegralExact
  - PyDec_AsFloat
  - PyDec_Round
  - PyDec_AsTuple
  - Dec_UnaryNumberMethod
  - Dec_BinaryNumberMethod
  - Dec_BoolFunc
  - Dec_BoolFuncVA
  - Dec_UnaryFuncVA
  - Dec_BinaryFuncVA
  - Dec_BinaryFuncVA_NO_CTX
  - Dec_TernaryFuncVA
  - nm_dec_as_long
  - nm_nonzero
  - nm_mpd_qdivmod
  - nm_mpd_qpow
  - dec_mpd_adjexp
  - dec_canonical
  - dec_conjugate
  - dec_mpd_radix
  - dec_mpd_qcopy_abs
  - dec_mpd_qcopy_negate
  - dec_mpd_class
  - dec_mpd_to_eng
  - dec_mpd_qcopy_sign
  - dec_mpd_same_quantum
  - dec_mpd_qquantize
  - dec_richcompare
  - dec_ceil
  - dec_complex
  - dec_copy
  - dec_floor
  - _dec_hash
  - dec_hash
  - dec_reduce
  - dec_sizeof
  - dec_trunc
  - dec_real
  - dec_imag
  - DecCtx_BoolFunc
  - DecCtx_BoolFunc_NO_CTX
  - DecCtx_UnaryFunc
  - DecCtx_BinaryFunc
  - DecCtx_BinaryFunc_NO_CTX
  - DecCtx_TernaryFunc
  - ctx_mpd_qdivmod
  - ctx_mpd_qpow
  - ctx_mpd_radix
  - ctx_iscanonical
  - PyDecContext_Apply
  - ctx_canonical
  - ctx_mpd_qcopy_abs
  - ctx_copy_decimal
  - ctx_mpd_qcopy_negate
  - ctx_mpd_class
  - ctx_mpd_to_sci
  - ctx_mpd_to_eng
  - ctx_mpd_qcopy_sign
  - ctx_mpd_same_quantum
  - CHECK_INT
  - ASSIGN_PTR
  - CHECK_PTR
  - cfunc_noargs
  - PyInit__decimal
  source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_LOCAL_INLINE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: Py_LOCAL
    - item_type: preproc_def
      name: MPD_Float_operation
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: MPD_Not_implemented
    - item_type: preproc_def
      name: _Py_DEC_MINALLOC
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DEC_INVALID_SIGNALS
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: (MPD_Max_status+1U)
    - item_type: preproc_def
      name: DEC_ERR_OCCURRED
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: (DEC_INVALID_SIGNALS<<1)
    - item_type: preproc_def
      name: DEC_ERRORS
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: (DEC_INVALID_SIGNALS|DEC_ERR_OCCURRED)
    - item_type: preproc_def
      name: SUBNORMAL
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '5'
    - item_type: preproc_def
      name: INEXACT
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '6'
    - item_type: preproc_def
      name: ROUNDED
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '7'
    - item_type: preproc_def
      name: SIGNAL_MAP_LEN
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '9'
    - item_type: preproc_def
      name: _PY_DEC_ROUND_GUARD
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: MPD_ROUND_GUARD
    - item_type: preproc_def
      name: _PY_DEC_ROUND_GUARD
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: (MPD_ROUND_GUARD-1)
    - item_type: preproc_def
      name: DEC_DFLT_EMAX
      pos:
        line_end: 1168
        line_start: 1167
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '999999'
    - item_type: preproc_def
      name: DEC_DFLT_EMIN
      pos:
        line_end: 1169
        line_start: 1168
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '-999999'
    - item_type: preproc_def
      name: NOT_IMPL
      pos:
        line_end: 2819
        line_start: 2818
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TYPE_ERR
      pos:
        line_end: 2820
        line_start: 2819
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
      type_or_value: '1'
    structs:
    - fields:
      - name: Py_hash_t
        type: PyObject_HEAD
      - name: dec
        type: mpd_t
      - name: data[_Py_DEC_MINALLOC]
        type: mpd_uint_t
      item_type: struct
      name: PyDecObject
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: '*flags'
        type: PyObject_HEAD
      item_type: struct
      name: PyDecSignalDictObject
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: mpd_context_t
        type: PyObject_HEAD
      - name: '*traps'
        type: PyObject
      - name: '*flags'
        type: PyObject
      - name: capitals
        type: int
      - name: '*tstate'
        type: PyThreadState
      item_type: struct
      name: PyDecContextObject
      pos:
        line_end: 83
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: '*local'
        type: PyObject_HEAD
      - name: '*global'
        type: PyObject
      item_type: struct
      name: PyDecContextManagerObject
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: '*name'
        type: char
      - name: '*fqname'
        type: char
      - name: flag
        type: uint32_t
      - name: '*ex'
        type: PyObject
      item_type: struct
      name: DecCondMap
      pos:
        line_end: 151
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: '*name'
        type: char
      - name: val
        type: mpd_ssize_t
      item_type: struct
      name: ssize_constmap
      pos:
        line_end: 5577
        line_start: 5577
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    - fields:
      - name: '*name'
        type: char
      - name: val
        type: int
      item_type: struct
      name: int_constmap
      pos:
        line_end: 5586
        line_start: 5586
        source_file: /src/Python-3.8.3/Modules/_decimal/_decimal.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/docstrings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIX_STEP_THRESHOLD
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ispower2
  - mpd_bsr
  - mpd_bsf
  - mpd_bsr
  - mpd_bsf
  - mpd_bsr
  - mpd_bsf
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/bits.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _crt_mulP1P2_3
  - _crt_add3
  - _crt_div3
  - crt3
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - std_trans
  - swap_halfrows_pow2
  - squaretrans
  - squaretrans_pow2
  - transpose_pow2
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: SIDE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pointerswap
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/transpose.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fnt_convolute
  - fnt_autoconvolute
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/convolute.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mpd_mul_words
  - _mpd_div_words
  - _mpd_mul_words
  - nlz
  - _mpd_div_words
  - _mpd_mul_words
  - _mpd_div_words
  - _mpd_mul_words
  - DIVMOD
  - _mpd_divmod_pow10
  - _mpd_mul_words
  - _mpd_div_words
  - _mpd_mul_words
  - nlz
  - _mpd_div_words
  - _mpd_mul_words
  - _mpd_div_words
  - _mpd_mul_words
  - _mpd_div_words
  - DIVMOD
  - _mpd_divmod_pow10
  - _mpd_div_word
  - _mpd_idiv_word
  - add_size_t
  - sub_size_t
  - mul_size_t
  - add_size_t_overflow
  - mul_size_t_overflow
  - mod_mpd_ssize_t
  - mulmod_size_t
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/typearith.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - INT8_C
  - INT16_C
  - INT32_C
  - INT64_C
  - UINT8_C
  - UINT16_C
  - UINT32_C
  - UINT64_C
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _W64
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: __w64
    - item_type: preproc_def
      name: INT8_MIN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: ((int8_t)_I8_MIN)
    - item_type: preproc_def
      name: INT8_MAX
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I8_MAX
    - item_type: preproc_def
      name: INT16_MIN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: ((int16_t)_I16_MIN)
    - item_type: preproc_def
      name: INT16_MAX
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I16_MAX
    - item_type: preproc_def
      name: INT32_MIN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: ((int32_t)_I32_MIN)
    - item_type: preproc_def
      name: INT32_MAX
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I32_MAX
    - item_type: preproc_def
      name: INT64_MIN
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: ((int64_t)_I64_MIN)
    - item_type: preproc_def
      name: INT64_MAX
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I64_MAX
    - item_type: preproc_def
      name: UINT8_MAX
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI8_MAX
    - item_type: preproc_def
      name: UINT16_MAX
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI16_MAX
    - item_type: preproc_def
      name: UINT32_MAX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI32_MAX
    - item_type: preproc_def
      name: UINT64_MAX
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI64_MAX
    - item_type: preproc_def
      name: INT_LEAST8_MIN
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT8_MIN
    - item_type: preproc_def
      name: INT_LEAST8_MAX
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT8_MAX
    - item_type: preproc_def
      name: INT_LEAST16_MIN
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT16_MIN
    - item_type: preproc_def
      name: INT_LEAST16_MAX
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT16_MAX
    - item_type: preproc_def
      name: INT_LEAST32_MIN
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: INT_LEAST32_MAX
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: INT_LEAST64_MIN
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: INT_LEAST64_MAX
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: UINT_LEAST8_MAX
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT8_MAX
    - item_type: preproc_def
      name: UINT_LEAST16_MAX
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT16_MAX
    - item_type: preproc_def
      name: UINT_LEAST32_MAX
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: UINT_LEAST64_MAX
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: INT_FAST8_MIN
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT8_MIN
    - item_type: preproc_def
      name: INT_FAST8_MAX
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT8_MAX
    - item_type: preproc_def
      name: INT_FAST16_MIN
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT16_MIN
    - item_type: preproc_def
      name: INT_FAST16_MAX
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT16_MAX
    - item_type: preproc_def
      name: INT_FAST32_MIN
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: INT_FAST32_MAX
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: INT_FAST64_MIN
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: INT_FAST64_MAX
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: UINT_FAST8_MAX
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT8_MAX
    - item_type: preproc_def
      name: UINT_FAST16_MAX
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT16_MAX
    - item_type: preproc_def
      name: UINT_FAST32_MAX
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: UINT_FAST64_MAX
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: INTPTR_MIN
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: INTPTR_MAX
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: UINTPTR_MAX
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: INTPTR_MIN
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: INTPTR_MAX
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: UINTPTR_MAX
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: INTMAX_MIN
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: INTMAX_MAX
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: UINTMAX_MAX
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: PTRDIFF_MIN
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I64_MIN
    - item_type: preproc_def
      name: PTRDIFF_MAX
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I64_MAX
    - item_type: preproc_def
      name: PTRDIFF_MIN
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I32_MIN
    - item_type: preproc_def
      name: PTRDIFF_MAX
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _I32_MAX
    - item_type: preproc_def
      name: SIG_ATOMIC_MIN
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT_MIN
    - item_type: preproc_def
      name: SIG_ATOMIC_MAX
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI64_MAX
    - item_type: preproc_def
      name: SIZE_MAX
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI32_MAX
    - item_type: preproc_def
      name: WCHAR_MIN
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WCHAR_MAX
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI16_MAX
    - item_type: preproc_def
      name: WINT_MIN
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WINT_MAX
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: _UI16_MAX
    - item_type: preproc_def
      name: INTMAX_C
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: INT64_C
    - item_type: preproc_def
      name: UINTMAX_C
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type_or_value: UINT64_C
    structs: []
    typedefs:
    - item_type: typedef
      name: int8_t
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: __int8
    - item_type: typedef
      name: int16_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: __int16
    - item_type: typedef
      name: int32_t
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: __int32
    - item_type: typedef
      name: int64_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: __int64
    - item_type: typedef
      name: uint8_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: unsigned __int8
    - item_type: typedef
      name: uint16_t
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: unsigned __int16
    - item_type: typedef
      name: uint32_t
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: unsigned __int32
    - item_type: typedef
      name: uint64_t
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: unsigned __int64
    - item_type: typedef
      name: int_least8_t
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int8_t
    - item_type: typedef
      name: int_least16_t
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int16_t
    - item_type: typedef
      name: int_least32_t
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int32_t
    - item_type: typedef
      name: int_least64_t
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int64_t
    - item_type: typedef
      name: uint_least8_t
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint8_t
    - item_type: typedef
      name: uint_least16_t
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint16_t
    - item_type: typedef
      name: uint_least32_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint32_t
    - item_type: typedef
      name: uint_least64_t
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint64_t
    - item_type: typedef
      name: int_fast8_t
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int8_t
    - item_type: typedef
      name: int_fast16_t
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int16_t
    - item_type: typedef
      name: int_fast32_t
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int32_t
    - item_type: typedef
      name: int_fast64_t
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int64_t
    - item_type: typedef
      name: uint_fast8_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint8_t
    - item_type: typedef
      name: uint_fast16_t
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint16_t
    - item_type: typedef
      name: uint_fast32_t
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint32_t
    - item_type: typedef
      name: uint_fast64_t
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint64_t
    - item_type: typedef
      name: intptr_t
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: __int64
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: unsigned __int64
    - item_type: typedef
      name: intptr_t
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: _W64
    - item_type: typedef
      name: uintptr_t
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: _W64 unsigned
    - item_type: typedef
      name: intmax_t
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: int64_t
    - item_type: typedef
      name: uintmax_t
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vcstdint.h
      type: uint64_t
    union: []
- function_names:
  - six_step_fnt
  - inv_six_step_fnt
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/sixstep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: inline
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: __inline
    - item_type: preproc_def
      name: random
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: rand
    - item_type: preproc_def
      name: srandom
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: srand
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: sprintf_s
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: _strnicmp
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: _stricmp
    - item_type: preproc_def
      name: strtoll
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: _strtoi64
    - item_type: preproc_def
      name: strdup
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/vccompat.h
      type_or_value: _strdup
    structs: []
    typedefs: []
    union: []
- function_names:
  - mpd_setminalloc
  - mpd_init
  - mpd_maxcontext
  - mpd_defaultcontext
  - mpd_basiccontext
  - mpd_ieee_context
  - mpd_getprec
  - mpd_getemax
  - mpd_getemin
  - mpd_getround
  - mpd_gettraps
  - mpd_getstatus
  - mpd_getclamp
  - mpd_getcr
  - mpd_qsetprec
  - mpd_qsetemax
  - mpd_qsetemin
  - mpd_qsetround
  - mpd_qsettraps
  - mpd_qsetstatus
  - mpd_qsetclamp
  - mpd_qsetcr
  - mpd_addstatus_raise
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mpd_strneq
  - strtoexp
  - string_to_coeff
  - scan_dpoint_exp
  - scan_payload
  - mpd_qset_string
  - EXTRACT_DIGIT
  - word_to_string
  - exp_to_string
  - coeff_to_string
  - coeff_to_string_dot
  - _mpd_to_string
  - mpd_to_sci
  - mpd_to_eng
  - mpd_to_sci_size
  - mpd_to_eng_size
  - _mpd_copy_utf8
  - mpd_validate_lconv
  - mpd_parse_fmt_str
  - _mpd_bcopy
  - _mbstr_copy_char
  - _mbstr_copy_ascii
  - _mbstr_copy_pad
  - _mpd_add_sep_dot
  - _mpd_apply_lconv
  - _mpd_add_pad
  - _mpd_round
  - mpd_qformat_spec
  - mpd_qformat
  - mpd_snprint_flags
  - mpd_lsnprint_flags
  - mpd_lsnprint_signals
  - mpd_fprint
  - mpd_print
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MPD_FMT_LOWER
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: MPD_FMT_UPPER
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: MPD_FMT_TOSCI
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: MPD_FMT_TOENG
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: MPD_FMT_EXP
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: MPD_FMT_FIXED
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: MPD_FMT_PERCENT
      pos:
        line_end: 428
        line_start: 427
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: MPD_FMT_SIGN_SPACE
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: MPD_FMT_SIGN_PLUS
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: MPD_DEFAULT_DOTPLACE
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
      type_or_value: '1'
    structs:
    - fields:
      - name: nbytes
        type: mpd_ssize_t
      - name: nchars
        type: mpd_ssize_t
      - name: cur
        type: mpd_ssize_t
      - name: '*data'
        type: char
      item_type: struct
      name: mpd_mbstr_t
      pos:
        line_end: 905
        line_start: 900
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/crt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bitreverse_permute
  - fnt_dif2
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mpd_getkernel
  - _mpd_init_fnt_params
  - _mpd_init_w3table
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MPD_PRAGMA
  - mpd_err_fatal
  - mpd_err_warn
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXTINLINE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: extern inline
    - item_type: preproc_def
      name: __GNUC_STDC_INLINE__
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: UNUSED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: MPD_HIDE_SYMBOLS_START
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '"GCC visibility push(hidden)"'
    - item_type: preproc_def
      name: MPD_HIDE_SYMBOLS_END
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '"GCC visibility pop"'
    - item_type: preproc_def
      name: MPD_MAJOR_VERSION
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MPD_MINOR_VERSION
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MPD_MICRO_VERSION
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MPD_VERSION
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '"2.4.2"'
    - item_type: preproc_def
      name: MPD_VERSION_HEX
      pos:
        line_end: 113
        line_start: 110
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: "((MPD_MAJOR_VERSION << 24) | \\\n                         (MPD_MINOR_VERSION
        << 16) | \\\n                         (MPD_MICRO_VERSION <<  8))"
    - item_type: preproc_def
      name: MPD_UINT_MAX
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: MPD_BITS_PER_UINT
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MPD_SIZE_MAX
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: SIZE_MAX
    - item_type: preproc_def
      name: MPD_SSIZE_MAX
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: INT64_MAX
    - item_type: preproc_def
      name: MPD_SSIZE_MIN
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: _mpd_strtossize
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: strtoll
    - item_type: preproc_def
      name: MPD_RADIX
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '10000000000000000000ULL  '
    - item_type: preproc_def
      name: MPD_RDIGITS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '19'
    - item_type: preproc_def
      name: MPD_MAX_POW10
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '19'
    - item_type: preproc_def
      name: MPD_EXPDIGITS
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '19  '
    - item_type: preproc_def
      name: MPD_MAXTRANSFORM_2N
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '4294967296ULL      '
    - item_type: preproc_def
      name: MPD_MAX_PREC
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 999999999999999999LL
    - item_type: preproc_def
      name: MPD_MAX_PREC_LOG2
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MPD_ELIMIT
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 1000000000000000000LL
    - item_type: preproc_def
      name: MPD_MAX_EMAX
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '999999999999999999LL    '
    - item_type: preproc_def
      name: MPD_MIN_EMIN
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '(-999999999999999999LL)  '
    - item_type: preproc_def
      name: MPD_MIN_ETINY
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (MPD_MIN_EMIN-(MPD_MAX_PREC-1))
    - item_type: preproc_def
      name: MPD_EXP_INF
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 2000000000000000001LL
    - item_type: preproc_def
      name: MPD_EXP_CLAMP
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (-4000000000000000001LL)
    - item_type: preproc_def
      name: MPD_MAXIMPORT
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '105263157894736842L '
    - item_type: preproc_def
      name: PRI_mpd_uint_t
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: PRIu64
    - item_type: preproc_def
      name: PRI_mpd_ssize_t
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: PRIi64
    - item_type: preproc_def
      name: MPD_UINT_MAX
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: UINT32_MAX
    - item_type: preproc_def
      name: MPD_BITS_PER_UINT
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MPD_UUINT_MAX
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: MPD_SIZE_MAX
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: SIZE_MAX
    - item_type: preproc_def
      name: MPD_SSIZE_MAX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: MPD_SSIZE_MIN
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: _mpd_strtossize
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: strtol
    - item_type: preproc_def
      name: MPD_RADIX
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '1000000000UL  '
    - item_type: preproc_def
      name: MPD_RDIGITS
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MPD_MAX_POW10
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MPD_EXPDIGITS
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '10 '
    - item_type: preproc_def
      name: MPD_MAXTRANSFORM_2N
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '33554432UL '
    - item_type: preproc_def
      name: MPD_MAX_PREC
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 425000000L
    - item_type: preproc_def
      name: MPD_MAX_PREC_LOG2
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MPD_ELIMIT
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 425000001L
    - item_type: preproc_def
      name: MPD_MAX_EMAX
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '425000000L        '
    - item_type: preproc_def
      name: MPD_MIN_EMIN
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '(-425000000L)     '
    - item_type: preproc_def
      name: MPD_MIN_ETINY
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (MPD_MIN_EMIN-(MPD_MAX_PREC-1))
    - item_type: preproc_def
      name: MPD_EXP_INF
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '1000000001L      '
    - item_type: preproc_def
      name: MPD_EXP_CLAMP
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '(-2000000001L) '
    - item_type: preproc_def
      name: MPD_MAXIMPORT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '94444445L      '
    - item_type: preproc_def
      name: PRI_mpd_uint_t
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: PRIu32
    - item_type: preproc_def
      name: PRI_mpd_ssize_t
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: PRIi32
    - item_type: preproc_def
      name: MPD_Clamped
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000001U
    - item_type: preproc_def
      name: MPD_Conversion_syntax
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000002U
    - item_type: preproc_def
      name: MPD_Division_by_zero
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000004U
    - item_type: preproc_def
      name: MPD_Division_impossible
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000008U
    - item_type: preproc_def
      name: MPD_Division_undefined
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000010U
    - item_type: preproc_def
      name: MPD_Fpu_error
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000020U
    - item_type: preproc_def
      name: MPD_Inexact
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000040U
    - item_type: preproc_def
      name: MPD_Invalid_context
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000080U
    - item_type: preproc_def
      name: MPD_Invalid_operation
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000100U
    - item_type: preproc_def
      name: MPD_Malloc_error
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000200U
    - item_type: preproc_def
      name: MPD_Not_implemented
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000400U
    - item_type: preproc_def
      name: MPD_Overflow
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00000800U
    - item_type: preproc_def
      name: MPD_Rounded
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00001000U
    - item_type: preproc_def
      name: MPD_Subnormal
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00002000U
    - item_type: preproc_def
      name: MPD_Underflow
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: 0x00004000U
    - item_type: preproc_def
      name: MPD_Max_status
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (0x00008000U-1U)
    - item_type: preproc_def
      name: MPD_IEEE_Invalid_operation
      pos:
        line_end: 299
        line_start: 291
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: "(MPD_Conversion_syntax |   \\\n                                    MPD_Division_impossible
        | \\\n                                    MPD_Division_undefined |  \\\n                                    MPD_Fpu_error
        |           \\\n                                    MPD_Invalid_context |
        \    \\\n                                    MPD_Invalid_operation |   \\\n
        \                                   MPD_Malloc_error)         \\\n"
    - item_type: preproc_def
      name: MPD_Errors
      pos:
        line_end: 302
        line_start: 300
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: "(MPD_IEEE_Invalid_operation | \\\n                    MPD_Division_by_zero)"
    - item_type: preproc_def
      name: MPD_Traps
      pos:
        line_end: 308
        line_start: 304
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: "(MPD_IEEE_Invalid_operation | \\\n                   MPD_Division_by_zero
        |       \\\n                   MPD_Overflow |               \\\n                   MPD_Underflow)"
    - item_type: preproc_def
      name: MPD_Insufficient_storage
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: MPD_Malloc_error
    - item_type: preproc_def
      name: MPD_IEEE_CONTEXT_MAX_BITS
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '512 '
    - item_type: preproc_def
      name: MPD_DECIMAL32
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MPD_DECIMAL64
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MPD_DECIMAL128
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MPD_MINALLOC_MIN
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: MPD_MINALLOC_MAX
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MPD_POS
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)0)
    - item_type: preproc_def
      name: MPD_NEG
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)1)
    - item_type: preproc_def
      name: MPD_INF
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)2)
    - item_type: preproc_def
      name: MPD_NAN
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)4)
    - item_type: preproc_def
      name: MPD_SNAN
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)8)
    - item_type: preproc_def
      name: MPD_SPECIAL
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (MPD_INF|MPD_NAN|MPD_SNAN)
    - item_type: preproc_def
      name: MPD_STATIC
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)16)
    - item_type: preproc_def
      name: MPD_STATIC_DATA
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)32)
    - item_type: preproc_def
      name: MPD_SHARED_DATA
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)64)
    - item_type: preproc_def
      name: MPD_CONST_DATA
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: ((uint8_t)128)
    - item_type: preproc_def
      name: MPD_DATAFLAGS
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (MPD_STATIC_DATA|MPD_SHARED_DATA|MPD_CONST_DATA)
    - item_type: preproc_def
      name: MPD_NUM_FLAGS
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '15'
    - item_type: preproc_def
      name: MPD_MAX_FLAG_STRING
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '208'
    - item_type: preproc_def
      name: MPD_MAX_FLAG_LIST
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: (MPD_MAX_FLAG_STRING+18)
    - item_type: preproc_def
      name: MPD_MAX_SIGNAL_LIST
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type_or_value: '121'
    structs:
    - fields:
      - name: prec
        type: mpd_ssize_t
      - name: emax
        type: mpd_ssize_t
      - name: emin
        type: mpd_ssize_t
      - name: traps
        type: uint32_t
      - name: status
        type: uint32_t
      - name: newtrap
        type: uint32_t
      - name: round
        type: int
      - name: clamp
        type: int
      - name: allcr
        type: int
      item_type: struct
      name: mpd_context_t
      pos:
        line_end: 269
        line_start: 259
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    - fields:
      - name: flags
        type: uint8_t
      - name: exp
        type: mpd_ssize_t
      - name: digits
        type: mpd_ssize_t
      - name: len
        type: mpd_ssize_t
      - name: alloc
        type: mpd_ssize_t
      - name: '*data'
        type: mpd_uint_t
      item_type: struct
      name: mpd_t
      pos:
        line_end: 378
        line_start: 371
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    - fields:
      - name: min_width
        type: mpd_ssize_t
      - name: prec
        type: mpd_ssize_t
      - name: type
        type: char
      - name: align
        type: char
      - name: sign
        type: char
      - name: fill[5]
        type: char
      - name: '*dot'
        type: char
      - name: '*sep'
        type: char
      - name: '*grouping'
        type: char
      item_type: struct
      name: mpd_spec_t
      pos:
        line_end: 399
        line_start: 389
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
    typedefs:
    - item_type: typedef
      name: mpd_uint_t
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: uint64_t
    - item_type: typedef
      name: mpd_size_t
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: size_t
    - item_type: typedef
      name: mpd_ssize_t
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: int64_t
    - item_type: typedef
      name: mpd_uint_t
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: uint32_t
    - item_type: typedef
      name: mpd_uuint_t
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: uint64_t
    - item_type: typedef
      name: mpd_size_t
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: size_t
    - item_type: typedef
      name: mpd_ssize_t
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: int32_t
    - item_type: typedef
      name: uchar
      pos:
        line_end: 381
        line_start: 381
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.h
      type: unsigned char
    union: []
- function_names:
  - MPD_NEW_STATIC
  - MPD_NEW_CONST
  - MPD_NEW_SHARED
  - mpd_version
  - mpd_word_digits
  - mpd_word_digits
  - mpd_ssize_t::mpd_adjexp
  - mpd_ssize_t::mpd_etiny
  - mpd_ssize_t::mpd_etop
  - mpd_msword
  - mpd_msd
  - mpd_lsd
  - mpd_ssize_t::mpd_digits_to_size
  - mpd_exp_digits
  - mpd_iscanonical
  - mpd_isfinite
  - mpd_isinfinite
  - mpd_isnan
  - mpd_isnegative
  - mpd_ispositive
  - mpd_isqnan
  - mpd_issigned
  - mpd_issnan
  - mpd_isspecial
  - mpd_iszero
  - mpd_iszerocoeff
  - mpd_isnormal
  - mpd_issubnormal
  - mpd_isoddword
  - mpd_isoddcoeff
  - mpd_sign
  - mpd_arith_sign
  - mpd_radix
  - mpd_isdynamic
  - mpd_isstatic
  - mpd_isdynamic_data
  - mpd_isstatic_data
  - mpd_isshared_data
  - mpd_isconst_data
  - mpd_uint_zero
  - mpd_del
  - mpd_qresize
  - mpd_qresize_zero
  - mpd_minalloc
  - mpd_resize
  - mpd_resize_zero
  - mpd_setdigits
  - mpd_set_sign
  - mpd_signcpy
  - mpd_set_infinity
  - mpd_set_qnan
  - mpd_set_snan
  - mpd_set_negative
  - mpd_set_positive
  - mpd_set_dynamic
  - mpd_set_static
  - mpd_set_dynamic_data
  - mpd_set_static_data
  - mpd_set_shared_data
  - mpd_set_const_data
  - mpd_clear_flags
  - mpd_set_flags
  - mpd_copy_flags
  - mpd_workcontext
  - _mpd_negate
  - mpd_zerocoeff
  - mpd_qmaxcoeff
  - _mpd_cap
  - _mpd_fix_nan
  - _mpd_get_msdigits
  - _mpd_real_size
  - mpd_trail_zeros
  - _mpd_isint
  - mpd_isinteger
  - mpd_word_ispow10
  - mpd_coeff_ispow10
  - mpd_word_isallnine
  - mpd_coeff_isallnine
  - mpd_isodd
  - mpd_iseven
  - _ssettriple
  - _settriple
  - mpd_setspecial
  - mpd_seterror
  - mpd_qsset_ssize
  - mpd_qsset_uint
  - mpd_qsset_i32
  - mpd_qsset_u32
  - mpd_qsset_i64
  - mpd_qsset_u64
  - mpd_qset_ssize
  - mpd_qset_uint
  - mpd_qset_i32
  - mpd_qset_u32
  - _c32setu64
  - _c32_qset_u64
  - _c32_qset_i64
  - mpd_qset_i64
  - mpd_qset_u64
  - _mpd_qget_uint
  - mpd_qget_uint
  - mpd_qabs_uint
  - mpd_qget_ssize
  - _c32_qget_u64
  - _c32_qget_i64
  - mpd_qget_u64
  - mpd_qget_i64
  - mpd_qget_u32
  - mpd_qget_i32
  - mpd_qget_u64
  - mpd_qget_i64
  - mpd_qget_u32
  - mpd_qget_i32
  - mpd_qcheck_nan
  - mpd_qcheck_nans
  - mpd_qcheck_3nans
  - _mpd_rnd_incr
  - _mpd_apply_round
  - _mpd_apply_round_excess
  - _mpd_apply_round_fit
  - _mpd_check_exp
  - mpd_check_underflow
  - _mpd_check_round
  - mpd_qfinalize
  - _mpd_copy_shared
  - mpd_qcopy
  - mpd_qcopy_static
  - mpd_qncopy
  - mpd_qcopy_abs
  - mpd_qcopy_negate
  - mpd_qcopy_sign
  - CMP_EQUAL_OR_RETURN
  - _mpd_basecmp
  - _mpd_cmp_same_adjexp
  - _mpd_cmp
  - _mpd_cmp_abs
  - mpd_qcmp
  - mpd_qcompare
  - mpd_qcompare_signal
  - mpd_cmp_total
  - mpd_compare_total
  - mpd_cmp_total_mag
  - mpd_compare_total_mag
  - _mpd_cmp_numequal
  - mpd_qshiftl
  - _mpd_get_rnd
  - mpd_qsshiftr
  - mpd_qshiftr_inplace
  - mpd_qshiftr
  - mpd_qand
  - mpd_class
  - mpd_qinvert
  - mpd_qlogb
  - mpd_qor
  - mpd_qrotate
  - mpd_qscaleb
  - mpd_qshiftn
  - mpd_qshift
  - mpd_qxor
  - mpd_qabs
  - _mpd_ptrswap
  - _mpd_qaddsub_inf
  - _mpd_qaddsub
  - _mpd_qadd
  - _mpd_qsub
  - mpd_qadd
  - _mpd_qadd_exact
  - mpd_qsub
  - _mpd_qsub_exact
  - mpd_qadd_ssize
  - mpd_qadd_uint
  - mpd_qsub_ssize
  - mpd_qsub_uint
  - mpd_qadd_i32
  - mpd_qadd_u32
  - mpd_qadd_i64
  - mpd_qadd_u64
  - mpd_qadd_i64
  - mpd_qadd_u64
  - mpd_qsub_i32
  - mpd_qsub_u32
  - mpd_qsub_i64
  - mpd_qsub_u64
  - mpd_qsub_i64
  - mpd_qsub_u64
  - _mpd_qdiv_inf
  - _mpd_qdiv
  - mpd_qdiv
  - _mpd_qdivmod
  - mpd_qdivmod
  - mpd_qdivint
  - mpd_qdiv_ssize
  - mpd_qdiv_uint
  - mpd_qdiv_i32
  - mpd_qdiv_u32
  - mpd_qdiv_i64
  - mpd_qdiv_u64
  - mpd_qdiv_i64
  - mpd_qdiv_u64
  - _mpd_zeropad
  - _mpd_qexp_check_one
  - _mpd_get_exp_iterations
  - _mpd_qexp
  - mpd_qexp
  - mpd_qfma
  - ln_schedule_prec
  - mpd_qln10
  - _mpd_qln
  - mpd_qln
  - _mpd_qlog10
  - mpd_qlog10
  - mpd_qmax
  - mpd_qmax_mag
  - mpd_qmin
  - mpd_qmin_mag
  - _kmul_resultsize
  - _kmul_worksize
  - _karatsuba_rec
  - _mpd_kmul
  - _mpd_get_transform_len
  - _mpd_get_control87
  - _mpd_set_control87
  - mpd_set_fenv
  - mpd_restore_fenv
  - _mpd_fntmul
  - _karatsuba_rec_fnt
  - _mpd_kmul_fnt
  - _mpd_qmul_inf
  - _mpd_qmul
  - mpd_qmul
  - _mpd_qmul_exact
  - mpd_qmul_ssize
  - mpd_qmul_uint
  - mpd_qmul_i32
  - mpd_qmul_u32
  - mpd_qmul_i64
  - mpd_qmul_u64
  - mpd_qmul_i64
  - mpd_qmul_u64
  - mpd_qminus
  - mpd_qplus
  - mpd_qnext_minus
  - mpd_qnext_plus
  - mpd_qnext_toward
  - _mpd_qpow_uint
  - _mpd_qpow_mpd
  - _mpd_qpow_int
  - _qcheck_pow_one_inf
  - _qcheck_pow_one
  - _lower_bound_zeta
  - _qcheck_pow_bounds
  - _mpd_qpow_real
  - mpd_qpow
  - _mpd_qpowmod_uint
  - mpd_qpowmod
  - mpd_qquantize
  - mpd_qreduce
  - mpd_qrem
  - mpd_qrem_near
  - _mpd_qrescale
  - mpd_qrescale
  - mpd_qrescale_fmt
  - _mpd_qround_to_integral
  - mpd_qround_to_intx
  - mpd_qround_to_int
  - mpd_qtrunc
  - mpd_qfloor
  - mpd_qceil
  - mpd_same_quantum
  - recpr_schedule_prec
  - _mpd_qreciprocal_approx
  - _mpd_qreciprocal
  - _mpd_base_ndivmod
  - invroot_schedule_prec
  - _invroot_init_approx
  - _mpd_qinvroot
  - mpd_qinvroot
  - _mpd_qsqrt
  - mpd_qsqrt
  - mpd_sizeinbase
  - _mpd_importsize
  - mpd_resize_u16
  - mpd_resize_u32
  - _baseconv_to_u16
  - _coeff_from_u16
  - _baseconv_to_smaller
  - _copy_equal_base
  - _baseconv_to_larger
  - _coeff_from_larger_base
  - _coeff_from_smaller_base
  - mpd_qexport_u16
  - mpd_qexport_u32
  - mpd_qimport_u16
  - mpd_qimport_u32
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALWAYS_INLINE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: __forceinline
    - item_type: preproc_def
      name: ALWAYS_INLINE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: inline __attribute__ ((always_inline))
    - item_type: preproc_def
      name: MPD_NEWTONDIV_CUTOFF
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: 1024L
    - item_type: preproc_def
      name: MPD_EXP_MAX_T
      pos:
        line_end: 4287
        line_start: 4286
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: '19'
    - item_type: preproc_def
      name: MPD_EXP_MAX_T
      pos:
        line_end: 4289
        line_start: 4288
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: '10'
    - item_type: preproc_def
      name: MPD_KARATSUBA_BASECASE
      pos:
        line_end: 5319
        line_start: 5318
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpdecimal.c
      type_or_value: '16  '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/difradix2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - addmod
  - submod
  - ext_submod
  - dw_reduce
  - dw_submod
  - x64_mulmod
  - x64_mulmod2c
  - x64_mulmod2
  - x64_powmod
  - std_mulmod
  - std_mulmod2c
  - std_mulmod2
  - std_mulmod
  - std_mulmod2c
  - std_mulmod2
  - std_powmod
  - ppro_mulmod
  - ppro_mulmod2c
  - ppro_mulmod2
  - ppro_mulmod2c
  - ppro_mulmod2
  - ppro_powmod
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/umodarith.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/mpalloc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - std_fnt
  - std_inv_fnt
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ppro_setmodulus
  - std_setmodulus
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: modnum
        type: int
      - name: modulus
        type: mpd_uint_t
      - name: kernel
        type: mpd_uint_t
      - name: wtable[]
        type: mpd_uint_t
      item_type: struct
      name: fnt_params
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/numbertheory.h
    typedefs: []
    union: []
- function_names:
  - _mpd_baseadd
  - _mpd_baseaddto
  - _mpd_shortadd
  - _mpd_baseincr
  - _mpd_basesub
  - _mpd_basesubfrom
  - _mpd_shortmul
  - _mpd_basemul
  - _mpd_shortdiv
  - _mpd_basedivmod
  - _mpd_baseshiftl
  - _mpd_baseshiftr
  - _mpd_shortadd_b
  - _mpd_shortmul_c
  - _mpd_shortmul_b
  - _mpd_shortdiv_b
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mpd_callocfunc_em
  - mpd_alloc
  - mpd_calloc
  - mpd_realloc
  - mpd_sh_alloc
  - mpd_qnew_size
  - mpd_qnew
  - mpd_new
  - mpd_switch_to_dyn
  - mpd_switch_to_dyn_zero
  - mpd_realloc_dyn
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/memory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _mpd_div_words_r
  - _mpd_div_words_r
  - _mpd_singlemul
  - _mpd_mul_2_le2
  - _mpd_isallzero
  - _mpd_isallnine
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/basearith.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - std_size3_ntt
  - ppro_size3_ntt
  - four_step_fnt
  - inv_four_step_fnt
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fourstep.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/fnt.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - mpd_strtossize
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: mpd_strtossize
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/io.h
      type_or_value: _mpd_strtossize
    structs: []
    typedefs: []
    union: []
- function_names:
  - MULMOD
  - MULMOD2C
  - MULMOD2
  - POWMOD
  - SETMODULUS
  - SIZE3_NTT
  - MULMOD
  - MULMOD2C
  - MULMOD2
  - POWMOD
  - SETMODULUS
  - SIZE3_NTT
  - MULMOD
  - MULMOD2C
  - MULMOD2
  - POWMOD
  - SETMODULUS
  - SIZE3_NTT
  source_file: /src/Python-3.8.3/Modules/_decimal/libmpdec/constants.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENCODER
  - DECODER
  - ENCODER
  - if
  - DECODER
  - if
  - if
  - if
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  - ENCODER
  - if
  - if
  - DECODER
  - if
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPBASE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_jp.c
      type_or_value: '0x20000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - EMULATE_JISX0213_2000_ENCODE_BMP
  - EMULATE_JISX0213_2000_ENCODE_EMP
  - EMULATE_JISX0213_2000_DECODE_PLANE1
  - EMULATE_JISX0213_2000_DECODE_PLANE2
  - EMULATE_JISX0213_2000_DECODE_PLANE2_CHAR
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMULATE_JISX0213_2000_ENCODE_INVALID
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
      type_or_value: '1'
    - item_type: preproc_def
      name: EMULATE_JISX0213_2000_DECODE_INVALID
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/emu_jisx0213_2000.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_cn.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: first
        type: Py_UCS4
      - name: base
        type: DBCHAR
      item_type: struct
      name: _gb18030_to_unibmp_ranges
      pos:
        line_end: 4053
        line_start: 4050
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_cn.h
    typedefs: []
    union: []
- function_names:
  - MultibyteCodec_Check
  - ERROR_ISCUSTOM
  - ERROR_DECREF
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _MultibyteStatefulCodec_HEAD
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: "PyObject_HEAD                               \\\n    MultibyteCodec
        *codec;                      \\\n    MultibyteCodec_State state;                 \\\n
        \   PyObject *errors;"
    - item_type: preproc_def
      name: MAXENCPENDING
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _MultibyteStatefulEncoder_HEAD
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: "_MultibyteStatefulCodec_HEAD                \\\n    PyObject
        *pending;"
    - item_type: preproc_def
      name: MAXDECPENDING
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '8'
    - item_type: preproc_def
      name: _MultibyteStatefulDecoder_HEAD
      pos:
        line_end: 91
        line_start: 87
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: "_MultibyteStatefulCodec_HEAD                \\\n    unsigned
        char pending[MAXDECPENDING];       \\\n    Py_ssize_t pendingsize;"
    - item_type: preproc_def
      name: MBERR_TOOSMALL
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '(-1) '
    - item_type: preproc_def
      name: MBERR_TOOFEW
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '(-2) '
    - item_type: preproc_def
      name: MBERR_INTERNAL
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '(-3) '
    - item_type: preproc_def
      name: MBERR_EXCEPTION
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '(-4) '
    - item_type: preproc_def
      name: ERROR_STRICT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: (PyObject *)(1)
    - item_type: preproc_def
      name: ERROR_IGNORE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: (PyObject *)(2)
    - item_type: preproc_def
      name: ERROR_REPLACE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: (PyObject *)(3)
    - item_type: preproc_def
      name: MBENC_FLUSH
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: MBENC_MAX
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: MBENC_FLUSH
    - item_type: preproc_def
      name: PyMultibyteCodec_CAPSULE_NAME
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type_or_value: '"multibytecodec.__map_*"'
    structs:
    - fields:
      - name: c[8]
        type: unsigned char
      item_type: struct
      name: MultibyteCodec_State
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    - fields:
      - name: '*encoding'
        type: char
      - name: '*config'
        type: void
      - name: codecinit
        type: mbcodec_init
      - name: encode
        type: mbencode_func
      - name: encinit
        type: mbencodeinit_func
      - name: encreset
        type: mbencodereset_func
      - name: decode
        type: mbdecode_func
      - name: decinit
        type: mbdecodeinit_func
      - name: decreset
        type: mbdecodereset_func
      item_type: struct
      name: MultibyteCodec
      pos:
        line_end: 60
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    - fields:
      - name: '*codec'
        type: PyObject_HEAD
      item_type: struct
      name: MultibyteCodecObject
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    - fields:
      - name: '*stream'
        type: _MultibyteStatefulDecoder_HEAD
      item_type: struct
      name: MultibyteStreamReaderObject
      pos:
        line_end: 106
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    - fields:
      - name: '*stream'
        type: _MultibyteStatefulEncoder_HEAD
      item_type: struct
      name: MultibyteStreamWriterObject
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
    typedefs:
    - item_type: typedef
      name: ucs2_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: uint16_t
    - item_type: typedef
      name: ucs2_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: unsigned short
    - item_type: typedef
      name: (*mbcodec_init)(const void *config)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: int
    - item_type: typedef
      name: "(*mbencode_func)(MultibyteCodec_State *state,\n                        const
        void *config,\n                        int kind, void *data,\n                        Py_ssize_t
        *inpos, Py_ssize_t inlen,\n                        unsigned char **outbuf,
        Py_ssize_t outleft,\n                        int flags)"
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: Py_ssize_t
    - item_type: typedef
      name: "(*mbencodeinit_func)(MultibyteCodec_State *state,\n                                 const
        void *config)"
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: int
    - item_type: typedef
      name: "(*mbencodereset_func)(MultibyteCodec_State *state,\n                        const
        void *config,\n                        unsigned char **outbuf, Py_ssize_t
        outleft)"
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: Py_ssize_t
    - item_type: typedef
      name: "(*mbdecode_func)(MultibyteCodec_State *state,\n                        const
        void *config,\n                        const unsigned char **inbuf, Py_ssize_t
        inleft,\n                        _PyUnicodeWriter *writer)"
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: Py_ssize_t
    - item_type: typedef
      name: "(*mbdecodeinit_func)(MultibyteCodec_State *state,\n                                 const
        void *config)"
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: int
    - item_type: typedef
      name: "(*mbdecodereset_func)(MultibyteCodec_State *state,\n                                         const
        void *config)"
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.h
      type: Py_ssize_t
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_jp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_kr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GBK_DECODE
  - GBK_ENCODE
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  - ENCODER_INIT
  - ENCODER_RESET
  - ENCODER
  - DECODER_INIT
  - DECODER_RESET
  - DECODER
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CN_STATE_OFFSET
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_cn.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_tw.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_jisx0213_pair.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: JISX0213_ENCPAIRS
      pos:
        line_end: 1
        line_start: 0
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_jisx0213_pair.h
      type_or_value: '46'
    structs: []
    typedefs: []
    union: []
- function_names:
  - JISX0201_R_ENCODE
  - JISX0201_K_ENCODE
  - JISX0201_ENCODE
  - JISX0201_R_DECODE_CHAR
  - JISX0201_R_DECODE
  - JISX0201_K_DECODE
  - JISX0201_K_DECODE_CHAR
  - JISX0201_DECODE
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/alg_jisx0201.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_hk.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ESCMARK
  - IS_ESCEND
  - IS_ISO2022ESC
  - STATE_SETG
  - STATE_GETG
  - STATE_SETG0
  - STATE_SETG1
  - STATE_SETG2
  - STATE_SETG3
  - STATE_SETFLAG
  - STATE_GETFLAG
  - STATE_CLEARFLAG
  - STATE_CLEARFLAGS
  - CONFIG_ISSET
  - CODEC_INIT
  - ENCODER_INIT
  - ENCODER_RESET
  - ENCODER
  - DECODER_INIT
  - DECODER_RESET
  - iso2022processesc
  - ISO8859_7_DECODE
  - iso2022processg2
  - DECODER
  - ENCMAP
  - DECMAP
  - ksx1001_init
  - ksx1001_decoder
  - ksx1001_encoder
  - jisx0208_init
  - jisx0208_decoder
  - jisx0208_encoder
  - jisx0212_init
  - jisx0212_decoder
  - jisx0212_encoder
  - jisx0213_init
  - jisx0213_2000_1_decoder
  - jisx0213_2000_2_decoder
  - jisx0213_2004_1_decoder
  - jisx0213_2004_2_decoder
  - jisx0213_encoder
  - jisx0213_2000_1_encoder
  - jisx0213_2000_1_encoder_paironly
  - jisx0213_2000_2_encoder
  - jisx0213_2004_1_encoder
  - jisx0213_2004_1_encoder_paironly
  - jisx0213_2004_2_encoder
  - jisx0201_r_decoder
  - jisx0201_r_encoder
  - jisx0201_k_decoder
  - jisx0201_k_encoder
  - gb2312_init
  - gb2312_decoder
  - gb2312_encoder
  - dummy_decoder
  - dummy_encoder
  - CONFIGDEF
  - ISO2022_CODEC
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMULATE_JISX0213_2000_ENCODE_INVALID
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: MAP_UNMAPPABLE
    - item_type: preproc_def
      name: EMULATE_JISX0213_2000_DECODE_INVALID
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: MAP_UNMAPPABLE
    - item_type: preproc_def
      name: ESC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x1B'
    - item_type: preproc_def
      name: SO
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x0E'
    - item_type: preproc_def
      name: SI
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: LF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x0A'
    - item_type: preproc_def
      name: MAX_ESCSEQLEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '16'
    - item_type: preproc_def
      name: CHARSET_ISO8859_1
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '''A'''
    - item_type: preproc_def
      name: CHARSET_ASCII
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '''B'''
    - item_type: preproc_def
      name: CHARSET_ISO8859_7
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '''F'''
    - item_type: preproc_def
      name: CHARSET_JISX0201_K
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '''I'''
    - item_type: preproc_def
      name: CHARSET_JISX0201_R
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '''J'''
    - item_type: preproc_def
      name: CHARSET_GB2312
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('A'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0208
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('B'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_KSX1001
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('C'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0212
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('D'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_GB2312_8565
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('E'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_CNS11643_1
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('G'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_CNS11643_2
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('H'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0213_2000_1
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('O'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0213_2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('P'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0213_2004_1
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('Q'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_JISX0208_O
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ('@'|CHARSET_DBCS)
    - item_type: preproc_def
      name: CHARSET_DBCS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: MAP_UNMAPPABLE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: MAP_MULTIPLE_AVAIL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0xFFFE '
    - item_type: preproc_def
      name: F_SHIFTED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: F_ESCTHROUGHOUT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: STATE_G0
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: STATE_GETG(0)
    - item_type: preproc_def
      name: STATE_G1
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: STATE_GETG(1)
    - item_type: preproc_def
      name: STATE_G2
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: STATE_GETG(2)
    - item_type: preproc_def
      name: STATE_G3
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: STATE_GETG(3)
    - item_type: preproc_def
      name: ISO2022_CONFIG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ((const struct iso2022_config *)config)
    - item_type: preproc_def
      name: CONFIG_DESIGNATIONS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: (ISO2022_CONFIG->designations)
    - item_type: preproc_def
      name: NO_SHIFT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: USE_G2
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: USE_JISX0208_EXT
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: config
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: ((void *)2000)
    - item_type: preproc_def
      name: REGISTRY_KSX1001_G0
      pos:
        line_end: 1017
        line_start: 1014
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_KSX1001, 0, 2,                \\\n                  ksx1001_init,
        \                                        \\\n                  ksx1001_decoder,
        ksx1001_encoder }"
    - item_type: preproc_def
      name: REGISTRY_KSX1001_G1
      pos:
        line_end: 1020
        line_start: 1017
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_KSX1001, 1, 2,                \\\n                  ksx1001_init,
        \                                        \\\n                  ksx1001_decoder,
        ksx1001_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0201_R
      pos:
        line_end: 1023
        line_start: 1020
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0201_R, 0, 1,             \\\n                  NULL,
        \                                                \\\n                  jisx0201_r_decoder,
        jisx0201_r_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0201_K
      pos:
        line_end: 1026
        line_start: 1023
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0201_K, 0, 1,             \\\n                  NULL,
        \                                                \\\n                  jisx0201_k_decoder,
        jisx0201_k_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0208
      pos:
        line_end: 1029
        line_start: 1026
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0208, 0, 2,               \\\n                  jisx0208_init,
        \                                       \\\n                  jisx0208_decoder,
        jisx0208_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0208_O
      pos:
        line_end: 1032
        line_start: 1029
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0208_O, 0, 2,             \\\n                  jisx0208_init,
        \                                       \\\n                  jisx0208_decoder,
        jisx0208_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0212
      pos:
        line_end: 1035
        line_start: 1032
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0212, 0, 2,               \\\n                  jisx0212_init,
        \                                       \\\n                  jisx0212_decoder,
        jisx0212_encoder }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2000_1
      pos:
        line_end: 1039
        line_start: 1035
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2000_1, 0, 2,       \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2000_1_decoder,
        \                             \\\n                  jisx0213_2000_1_encoder
        }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2000_1_PAIRONLY
      pos:
        line_end: 1043
        line_start: 1039
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2000_1, 0, 2, \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2000_1_decoder,
        \                             \\\n                  jisx0213_2000_1_encoder_paironly
        }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2000_2
      pos:
        line_end: 1047
        line_start: 1043
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2, 0, 2,            \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2000_2_decoder,
        \                             \\\n                  jisx0213_2000_2_encoder
        }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2004_1
      pos:
        line_end: 1051
        line_start: 1047
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2004_1, 0, 2,       \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2004_1_decoder,
        \                             \\\n                  jisx0213_2004_1_encoder
        }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2004_1_PAIRONLY
      pos:
        line_end: 1055
        line_start: 1051
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2004_1, 0, 2, \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2004_1_decoder,
        \                             \\\n                  jisx0213_2004_1_encoder_paironly
        }"
    - item_type: preproc_def
      name: REGISTRY_JISX0213_2004_2
      pos:
        line_end: 1059
        line_start: 1055
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_JISX0213_2, 0, 2,            \\\n                  jisx0213_init,
        \                                       \\\n                  jisx0213_2004_2_decoder,
        \                             \\\n                  jisx0213_2004_2_encoder
        }"
    - item_type: preproc_def
      name: REGISTRY_GB2312
      pos:
        line_end: 1062
        line_start: 1059
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_GB2312, 0, 2,                 \\\n                  gb2312_init,
        \                                         \\\n                  gb2312_decoder,
        gb2312_encoder }"
    - item_type: preproc_def
      name: REGISTRY_CNS11643_1
      pos:
        line_end: 1065
        line_start: 1062
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_CNS11643_1, 1, 2,             \\\n                  cns11643_init,
        \                                       \\\n                  cns11643_1_decoder,
        cns11643_1_encoder }"
    - item_type: preproc_def
      name: REGISTRY_CNS11643_2
      pos:
        line_end: 1068
        line_start: 1065
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_CNS11643_2, 2, 2,             \\\n                  cns11643_init,
        \                                       \\\n                  cns11643_2_decoder,
        cns11643_2_encoder }"
    - item_type: preproc_def
      name: REGISTRY_ISO8859_1
      pos:
        line_end: 1070
        line_start: 1068
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_ISO8859_1, 2, 1,              \\\n                  NULL,
        dummy_decoder, dummy_encoder }"
    - item_type: preproc_def
      name: REGISTRY_ISO8859_7
      pos:
        line_end: 1072
        line_start: 1070
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: "{ CHARSET_ISO8859_7, 2, 1,              \\\n                  NULL,
        dummy_decoder, dummy_encoder }"
    - item_type: preproc_def
      name: REGISTRY_SENTINEL
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type_or_value: '{ 0, }'
    structs:
    - fields:
      - name: mark
        type: unsigned char
      - name: plane
        type: unsigned char
      - name: width
        type: unsigned char
      - name: initializer
        type: iso2022_init_func
      - name: decoder
        type: iso2022_decode_func
      - name: encoder
        type: iso2022_encode_func
      item_type: struct
      name: iso2022_designation
      pos:
        line_end: 114
        line_start: 107
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    - fields:
      - name: flags
        type: int
      - name: '*designations'
        type: struct iso2022_designation
      item_type: struct
      name: iso2022_config
      pos:
        line_end: 119
        line_start: 116
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
    typedefs:
    - item_type: typedef
      name: (*iso2022_init_func)(void)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type: int
    - item_type: typedef
      name: (*iso2022_decode_func)(const unsigned char *data)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type: Py_UCS4
    - item_type: typedef
      name: (*iso2022_encode_func)(const Py_UCS4 *data, Py_ssize_t *length)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_iso2022.c
      type: DBCHAR
    union: []
- function_names:
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  - ENCODER
  - DECODER
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EUCKR_JAMO_FIRSTBYTE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
      type_or_value: '0xA4'
    - item_type: preproc_def
      name: EUCKR_JAMO_FILLER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
      type_or_value: '0xD4'
    - item_type: preproc_def
      name: NONE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
      type_or_value: '127'
    - item_type: preproc_def
      name: FILL
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
      type_or_value: '0xfd'
    - item_type: preproc_def
      name: NONE
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_kr.c
      type_or_value: '0xff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CODEC_INIT
  - ENCODER
  - BH2S
  - DECODER
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/_codecs_hk.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_tuple
  - internal_error_callback
  - call_error_callback
  - codecctx_errors_get
  - codecctx_errors_set
  - expand_encodebuffer
  - REQUIRE_ENCODEBUFFER
  - multibytecodec_encerror
  - multibytecodec_decerror
  - multibytecodec_encode
  - _multibytecodec_MultibyteCodec_encode_impl
  - _multibytecodec_MultibyteCodec_decode_impl
  - multibytecodec_dealloc
  - STATEFUL_DCTX
  - STATEFUL_ECTX
  - encoder_encode_stateful
  - decoder_append_pending
  - decoder_prepare_buffer
  - decoder_feed_buffer
  - _multibytecodec_MultibyteIncrementalEncoder_encode_impl
  - _multibytecodec_MultibyteIncrementalEncoder_getstate_impl
  - _multibytecodec_MultibyteIncrementalEncoder_setstate_impl
  - _multibytecodec_MultibyteIncrementalEncoder_reset_impl
  - mbiencoder_new
  - mbiencoder_init
  - mbiencoder_traverse
  - mbiencoder_dealloc
  - _multibytecodec_MultibyteIncrementalDecoder_decode_impl
  - _multibytecodec_MultibyteIncrementalDecoder_getstate_impl
  - _multibytecodec_MultibyteIncrementalDecoder_setstate_impl
  - _multibytecodec_MultibyteIncrementalDecoder_reset_impl
  - mbidecoder_new
  - mbidecoder_init
  - mbidecoder_traverse
  - mbidecoder_dealloc
  - mbstreamreader_iread
  - _multibytecodec_MultibyteStreamReader_read_impl
  - _multibytecodec_MultibyteStreamReader_readline_impl
  - _multibytecodec_MultibyteStreamReader_readlines_impl
  - _multibytecodec_MultibyteStreamReader_reset_impl
  - mbstreamreader_new
  - mbstreamreader_init
  - mbstreamreader_traverse
  - mbstreamreader_dealloc
  - mbstreamwriter_iwrite
  - _multibytecodec_MultibyteStreamWriter_write
  - _multibytecodec_MultibyteStreamWriter_writelines
  - _multibytecodec_MultibyteStreamWriter_reset_impl
  - mbstreamwriter_new
  - mbstreamwriter_init
  - mbstreamwriter_traverse
  - mbstreamwriter_dealloc
  - _multibytecodec___create_codec
  - PyInit__multibytecodec
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MBENC_RESET
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
      type_or_value: 'MBENC_MAX<<1 '
    structs:
    - fields:
      - name: '*inobj'
        type: PyObject
      - name: inpos
        type: Py_ssize_t
      - name: '*outbuf'
        type: unsigned char
      - name: '*excobj'
        type: PyObject
      item_type: struct
      name: MultibyteEncodeBuffer
      pos:
        line_end: 23
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    - fields:
      - name: '*inbuf'
        type: unsigned char
      - name: '*excobj'
        type: PyObject
      - name: writer
        type: _PyUnicodeWriter
      item_type: struct
      name: MultibyteDecodeBuffer
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/multibytecodec.c
    typedefs: []
    union: []
- function_names:
  - CODEC_INIT
  - ENCODER_INIT
  - ENCODER
  - ENCODER_RESET
  - DECODER_INIT
  - DECODER
  - DECODER_RESET
  - NEXT_IN
  - NEXT_INCHAR
  - NEXT_OUT
  - NEXT
  - REQUIRE_INBUF
  - REQUIRE_OUTBUF
  - OUTCHAR
  - OUTCHAR2
  - OUTBYTEI
  - OUTBYTE1
  - OUTBYTE2
  - OUTBYTE3
  - OUTBYTE4
  - WRITEBYTE1
  - WRITEBYTE2
  - WRITEBYTE3
  - WRITEBYTE4
  - _TRYMAP_ENC
  - TRYMAP_ENC
  - _TRYMAP_DEC
  - TRYMAP_DEC
  - MAPPING_ENCONLY
  - MAPPING_DECONLY
  - MAPPING_ENCDEC
  - _STATEFUL_METHODS
  - _STATELESS_METHODS
  - CODEC_STATEFUL
  - CODEC_STATELESS
  - CODEC_STATELESS_WINIT
  - getmultibytecodec
  - getcodec
  - register_maps
  - find_pairencmap
  - IMPORT_MAP
  - importmap
  - I_AM_A_MODULE_FOR
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNIINV
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: '0xFFFE'
    - item_type: preproc_def
      name: NOCHAR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: '0xFFFF'
    - item_type: preproc_def
      name: MULTIC
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: '0xFFFE'
    - item_type: preproc_def
      name: DBCINV
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: '0xFFFD'
    - item_type: preproc_def
      name: U
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: UNIINV
    - item_type: preproc_def
      name: N
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: NOCHAR
    - item_type: preproc_def
      name: M
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: MULTIC
    - item_type: preproc_def
      name: D
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: DBCINV
    - item_type: preproc_def
      name: INBYTE1
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: ((*inbuf)[0])
    - item_type: preproc_def
      name: INBYTE2
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: ((*inbuf)[1])
    - item_type: preproc_def
      name: INBYTE3
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: ((*inbuf)[2])
    - item_type: preproc_def
      name: INBYTE4
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: ((*inbuf)[3])
    - item_type: preproc_def
      name: INCHAR1
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: (PyUnicode_READ(kind, data, *inpos))
    - item_type: preproc_def
      name: INCHAR2
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: (PyUnicode_READ(kind, data, *inpos + 1))
    - item_type: preproc_def
      name: BEGIN_MAPPINGS_LIST
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: static const struct dbcs_map _mapping_list[] = {
    - item_type: preproc_def
      name: END_MAPPINGS_LIST
      pos:
        line_end: 212
        line_start: 208
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: "{\"\", NULL, NULL} };                                 \\\n    static
        const struct dbcs_map *mapping_list =        \\\n        (const struct dbcs_map
        *)_mapping_list;"
    - item_type: preproc_def
      name: BEGIN_CODECS_LIST
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: static const MultibyteCodec _codec_list[] = {
    - item_type: preproc_def
      name: END_CODECS_LIST
      pos:
        line_end: 241
        line_start: 237
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type_or_value: "{\"\", NULL,} };                                      \\\n    static
        const MultibyteCodec *codec_list =           \\\n        (const MultibyteCodec
        *)_codec_list;"
    structs:
    - fields:
      - name: '*map'
        type: ucs2_t
      - name: bottom
        type: unsigned char
      item_type: struct
      name: dbcs_index
      pos:
        line_end: 31
        line_start: 28
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    - fields:
      - name: '*map'
        type: Py_UCS4
      - name: bottom
        type: unsigned char
      item_type: struct
      name: widedbcs_index
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    - fields:
      - name: '*map'
        type: DBCHAR
      - name: bottom
        type: unsigned char
      item_type: struct
      name: unim_index
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    - fields:
      - name: '*map'
        type: unsigned char
      - name: bottom
        type: unsigned char
      item_type: struct
      name: unim_index_bytebased
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    - fields:
      - name: '*charset'
        type: char
      - name: '*encmap'
        type: struct unim_index
      - name: '*decmap'
        type: struct dbcs_index
      item_type: struct
      name: dbcs_map
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    - fields:
      - name: uniseq
        type: Py_UCS4
      - name: code
        type: DBCHAR
      item_type: struct
      name: pair_encodemap
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
    typedefs:
    - item_type: typedef
      name: decode_map
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type: dbcs_index
    - item_type: typedef
      name: widedecode_map
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type: widedbcs_index
    - item_type: typedef
      name: encode_map
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/cjkcodecs.h
      type: unim_index
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/mappings_tw.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _multibytecodec_MultibyteCodec_encode
  - _multibytecodec_MultibyteCodec_decode
  - _multibytecodec_MultibyteIncrementalEncoder_encode
  - _multibytecodec_MultibyteIncrementalEncoder_getstate
  - _multibytecodec_MultibyteIncrementalEncoder_setstate
  - _multibytecodec_MultibyteIncrementalEncoder_reset
  - _multibytecodec_MultibyteIncrementalDecoder_decode
  - _multibytecodec_MultibyteIncrementalDecoder_getstate
  - _multibytecodec_MultibyteIncrementalDecoder_setstate
  - _multibytecodec_MultibyteIncrementalDecoder_reset
  - _multibytecodec_MultibyteStreamReader_read
  - _multibytecodec_MultibyteStreamReader_readline
  - _multibytecodec_MultibyteStreamReader_readlines
  - _multibytecodec_MultibyteStreamReader_reset
  - _multibytecodec_MultibyteStreamWriter_reset
  source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTECODEC_ENCODE_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_encode,
        METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_encode__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTECODEC_DECODE_METHODDEF
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteCodec_decode,
        METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteCodec_decode__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_ENCODE_METHODDEF
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"encode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalEncoder_encode,
        METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalEncoder_encode__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_GETSTATE_METHODDEF
      pos:
        line_end: 196
        line_start: 194
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_getstate,
        METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_getstate__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_SETSTATE_METHODDEF
      pos:
        line_end: 213
        line_start: 211
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_setstate,
        METH_O, _multibytecodec_MultibyteIncrementalEncoder_setstate__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALENCODER_RESET_METHODDEF
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalEncoder_reset,
        METH_NOARGS, _multibytecodec_MultibyteIncrementalEncoder_reset__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_DECODE_METHODDEF
      pos:
        line_end: 259
        line_start: 257
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteIncrementalDecoder_decode,
        METH_FASTCALL|METH_KEYWORDS, _multibytecodec_MultibyteIncrementalDecoder_decode__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_GETSTATE_METHODDEF
      pos:
        line_end: 318
        line_start: 316
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"getstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_getstate,
        METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_getstate__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_SETSTATE_METHODDEF
      pos:
        line_end: 335
        line_start: 333
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"setstate", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_setstate,
        METH_O, _multibytecodec_MultibyteIncrementalDecoder_setstate__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTEINCREMENTALDECODER_RESET_METHODDEF
      pos:
        line_end: 364
        line_start: 362
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"reset", (PyCFunction)_multibytecodec_MultibyteIncrementalDecoder_reset,
        METH_NOARGS, _multibytecodec_MultibyteIncrementalDecoder_reset__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READ_METHODDEF
      pos:
        line_end: 381
        line_start: 379
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"read", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_read,
        METH_FASTCALL, _multibytecodec_MultibyteStreamReader_read__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINE_METHODDEF
      pos:
        line_end: 413
        line_start: 411
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"readline", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readline,
        METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readline__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMREADER_READLINES_METHODDEF
      pos:
        line_end: 445
        line_start: 443
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"readlines", (PyCFunction)(void(*)(void))_multibytecodec_MultibyteStreamReader_readlines,
        METH_FASTCALL, _multibytecodec_MultibyteStreamReader_readlines__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMREADER_RESET_METHODDEF
      pos:
        line_end: 477
        line_start: 475
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"reset", (PyCFunction)_multibytecodec_MultibyteStreamReader_reset,
        METH_NOARGS, _multibytecodec_MultibyteStreamReader_reset__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITE_METHODDEF
      pos:
        line_end: 494
        line_start: 492
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"write", (PyCFunction)_multibytecodec_MultibyteStreamWriter_write,
        METH_O, _multibytecodec_MultibyteStreamWriter_write__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_WRITELINES_METHODDEF
      pos:
        line_end: 502
        line_start: 500
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"writelines", (PyCFunction)_multibytecodec_MultibyteStreamWriter_writelines,
        METH_O, _multibytecodec_MultibyteStreamWriter_writelines__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC_MULTIBYTESTREAMWRITER_RESET_METHODDEF
      pos:
        line_end: 510
        line_start: 508
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"reset", (PyCFunction)_multibytecodec_MultibyteStreamWriter_reset,
        METH_NOARGS, _multibytecodec_MultibyteStreamWriter_reset__doc__},'
    - item_type: preproc_def
      name: _MULTIBYTECODEC___CREATE_CODEC_METHODDEF
      pos:
        line_end: 527
        line_start: 525
        source_file: /src/Python-3.8.3/Modules/cjkcodecs/clinic/multibytecodec.c.h
      type_or_value: '{"__create_codec", (PyCFunction)_multibytecodec___create_codec,
        METH_O, _multibytecodec___create_codec__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NSObject
  source_file: /src/Python-3.8.3/Mac/PythonLauncher/FileSettings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NSDocument
  source_file: /src/Python-3.8.3/Mac/PythonLauncher/MyDocument.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NSWindowController
  source_file: /src/Python-3.8.3/Mac/PythonLauncher/PreferencesWindowController.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - MyAppDelegate
  source_file: /src/Python-3.8.3/Mac/PythonLauncher/MyAppDelegate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Mac/PythonLauncher/doscript.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_python_path
  - setup_spawnattr
  - main
  source_file: /src/Python-3.8.3/Mac/Tools/pythonw.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Py_FatalError
  - get_small_int
  - PyLong_FromLong
  - PyLong_FromLongLong
  - PyLong_FromSsize_t
  - PyErr_SetFromErrnoWithFilename
  - Py_DecodeLocale
  - r_string
  - r_long
  - fdopendir
  - build_struct_time
  - ymd_to_ord
  - normalize_date
  - weekday
  source_file: /src/Python-3.8.3/Misc/coverity_model.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
      type_or_value: (void *)0
    structs:
    - fields: []
      item_type: struct
      name: PyObject
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    - fields: []
      item_type: struct
      name: grammar
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    - fields: []
      item_type: struct
      name: DIR
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    - fields: []
      item_type: struct
      name: RFILE
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
    typedefs:
    - item_type: typedef
      name: sdigit
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
      type: int
    - item_type: typedef
      name: Py_ssize_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
      type: long
    - item_type: typedef
      name: wchar_t
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/Python-3.8.3/Misc/coverity_model.c
      type: unsigned short
    union: []
- function_names:
  - PyCFunction_New
  - PyCFunction_NewEx
  - PyCFunction_GetFunction
  - PyCFunction_GetSelf
  - PyCFunction_GetFlags
  - meth_dealloc
  - meth_reduce
  - meth_get__text_signature__
  - meth_get__doc__
  - meth_get__name__
  - meth_get__qualname__
  - meth_traverse
  - meth_get__self__
  - 'OFF'
  - meth_repr
  - meth_richcompare
  - meth_hash
  - PyCFunction_ClearFreeList
  - PyCFunction_Fini
  - _PyCFunction_DebugMallocStats
  - get_name
  - cfunction_check_kwargs
  - cfunction_enter_call
  - cfunction_vectorcall_FASTCALL
  - cfunction_vectorcall_FASTCALL_KEYWORDS
  - cfunction_vectorcall_NOARGS
  - cfunction_vectorcall_O
  source_file: /src/Python-3.8.3/Objects/methodobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyCFunction_MAXFREELIST
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/methodobject.c
      type_or_value: '256'
    structs: []
    typedefs:
    - item_type: typedef
      name: (*funcptr)(void)
      pos:
        line_end: 383
        line_start: 383
        source_file: /src/Python-3.8.3/Objects/methodobject.c
      type: void
    union: []
- function_names:
  - PyCell_New
  - cell_new
  - PyCell_Get
  - PyCell_Set
  - cell_dealloc
  - cell_richcompare
  - cell_repr
  - cell_traverse
  - cell_clear
  - cell_get_contents
  - cell_set_contents
  source_file: /src/Python-3.8.3/Objects/cellobject.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_WEAKREFS_LISTPTR
  - _PyWeakref_GetWeakrefCount
  - init_weakref
  - new_weakref
  - clear_weakref
  - _PyWeakref_ClearRef
  - weakref_dealloc
  - gc_traverse
  - gc_clear
  - weakref_call
  - weakref_hash
  - weakref_repr
  - weakref_richcompare
  - get_basic_refs
  - insert_after
  - insert_head
  - parse_weakref_init_args
  - weakref___new__
  - weakref___init__
  - proxy_checkref
  - UNWRAP
  - WRAP_UNARY
  - WRAP_BINARY
  - WRAP_TERNARY
  - WRAP_METHOD
  - proxy_repr
  - proxy_setattr
  - proxy_richcompare
  - proxy_bool
  - proxy_dealloc
  - proxy_contains
  - proxy_length
  - proxy_setitem
  - proxy_iter
  - proxy_iternext
  - PyWeakref_NewRef
  - PyWeakref_NewProxy
  - PyWeakref_GetObject
  - handle_callback
  - PyObject_ClearWeakRefs
  source_file: /src/Python-3.8.3/Objects/weakrefobject.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyObject_CheckConsistency
  - CHECK
  - _Py_GetRefTotal
  - _PyDebug_PrintTotalRefs
  - _Py_AddToAllObjects
  - _Py_dump_counts
  - _Py_get_counts
  - _Py_inc_count
  - _Py_dec_count
  - _Py_NegativeRefcount
  - Py_IncRef
  - Py_DecRef
  - PyObject_Init
  - PyObject_InitVar
  - _PyObject_New
  - _PyObject_NewVar
  - PyObject_CallFinalizer
  - PyObject_CallFinalizerFromDealloc
  - PyObject_Print
  - _Py_BreakPoint
  - _PyObject_IsFreed
  - _PyObject_Dump
  - PyObject_Repr
  - PyObject_Str
  - PyObject_ASCII
  - PyObject_Bytes
  - do_richcompare
  - PyObject_RichCompare
  - PyObject_RichCompareBool
  - PyObject_HashNotImplemented
  - PyObject_Hash
  - PyObject_GetAttrString
  - PyObject_HasAttrString
  - PyObject_SetAttrString
  - _PyObject_IsAbstract
  - _PyObject_GetAttrId
  - _PyObject_HasAttrId
  - _PyObject_SetAttrId
  - PyObject_GetAttr
  - _PyObject_LookupAttr
  - _PyObject_LookupAttrId
  - PyObject_HasAttr
  - PyObject_SetAttr
  - _PyObject_GetDictPtr
  - PyObject_SelfIter
  - _PyObject_NextNotImplemented
  - _PyObject_GetMethod
  - _PyObject_GenericGetAttrWithDict
  - PyObject_GenericGetAttr
  - _PyObject_GenericSetAttrWithDict
  - PyObject_GenericSetAttr
  - PyObject_GenericSetDict
  - PyObject_IsTrue
  - PyObject_Not
  - PyCallable_Check
  - _dir_locals
  - _dir_object
  - PyObject_Dir
  - none_repr
  - none_dealloc
  - none_new
  - none_bool
  - NotImplemented_repr
  - NotImplemented_reduce
  - notimplemented_new
  - notimplemented_dealloc
  - _PyTypes_Init
  - INIT_TYPE
  - _Py_NewReference
  - _Py_ForgetReference
  - _Py_PrintReferences
  - _Py_PrintReferenceAddresses
  - _Py_GetObjects
  - _PyObject_DebugTypeStats
  - Py_ReprEnter
  - Py_ReprLeave
  - _PyTrash_deposit_object
  - _PyTrash_thread_deposit_object
  - _PyTrash_destroy_chain
  - _PyTrash_thread_destroy_chain
  - _PyObject_AssertFailed
  - _Py_Dealloc
  source_file: /src/Python-3.8.3/Objects/object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyMem_RawMalloc
  - _PyMem_RawCalloc
  - _PyMem_RawRealloc
  - _PyMem_RawFree
  - _PyObject_ArenaVirtualAlloc
  - _PyObject_ArenaVirtualFree
  - _PyObject_ArenaMmap
  - _PyObject_ArenaMunmap
  - _PyObject_ArenaMalloc
  - _PyObject_ArenaFree
  - pymem_set_default_allocator
  - _PyMem_SetDefaultAllocator
  - _PyMem_GetAllocatorName
  - _PyMem_SetupAllocators
  - pymemallocator_eq
  - _PyMem_GetCurrentAllocatorName
  - _PyMem_DebugEnabled
  - _PyMem_PymallocEnabled
  - _PyMem_SetupDebugHooksDomain
  - PyMem_SetupDebugHooks
  - PyMem_GetAllocator
  - PyMem_SetAllocator
  - PyObject_GetArenaAllocator
  - PyObject_SetArenaAllocator
  - PyMem_RawMalloc
  - PyMem_RawCalloc
  - PyMem_RawRealloc
  - PyMem_RawFree
  - PyMem_Malloc
  - PyMem_Calloc
  - PyMem_Realloc
  - PyMem_Free
  - _PyMem_RawWcsdup
  - _PyMem_RawStrdup
  - _PyMem_Strdup
  - PyObject_Malloc
  - PyObject_Calloc
  - PyObject_Realloc
  - PyObject_Free
  - UNLIKELY
  - UNLIKELY
  - INDEX2SIZE
  - POOL_ADDR
  - NUMBLOCKS
  - PTA
  - PT
  - _Py_GetAllocatedBlocks
  - new_arena
  - address_in_range
  - pymalloc_alloc
  - _PyObject_Malloc
  - _PyObject_Calloc
  - pymalloc_free
  - _PyObject_Free
  - pymalloc_realloc
  - _PyObject_Realloc
  - _Py_GetAllocatedBlocks
  - bumpserialno
  - read_size_t
  - write_size_t
  - _PyMem_DebugRawAlloc
  - _PyMem_DebugRawMalloc
  - _PyMem_DebugRawCalloc
  - _PyMem_DebugRawFree
  - _PyMem_DebugRawRealloc
  - _PyMem_DebugCheckGIL
  - _PyMem_DebugMalloc
  - _PyMem_DebugCalloc
  - _PyMem_DebugFree
  - _PyMem_DebugRealloc
  - _PyMem_DebugCheckAddress
  - _PyObject_DebugDumpAddress
  - printone
  - _PyDebugAllocatorStats
  - pool_is_in_list
  - _PyObject_DebugMallocStats
  source_file: /src/Python-3.8.3/Objects/obmalloc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: uint
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: 'unsigned int    '
    - item_type: preproc_def
      name: _Py_NO_SANITIZE_ADDRESS
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: __attribute__((no_sanitize("address")))
    - item_type: preproc_def
      name: _Py_NO_SANITIZE_THREAD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: __attribute__((no_sanitize_thread))
    - item_type: preproc_def
      name: _Py_NO_SANITIZE_MEMORY
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: __attribute__((no_sanitize_memory))
    - item_type: preproc_def
      name: _Py_NO_SANITIZE_ADDRESS
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: __attribute__((no_sanitize_address))
    - item_type: preproc_def
      name: _Py_NO_SANITIZE_THREAD
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: __attribute__((no_sanitize_thread))
    - item_type: preproc_def
      name: MALLOC_ALLOC
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '{NULL, _PyMem_RawMalloc, _PyMem_RawCalloc, _PyMem_RawRealloc,
        _PyMem_RawFree}'
    - item_type: preproc_def
      name: PYMALLOC_ALLOC
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '{NULL, _PyObject_Malloc, _PyObject_Calloc, _PyObject_Realloc,
        _PyObject_Free}'
    - item_type: preproc_def
      name: PYRAW_ALLOC
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: MALLOC_ALLOC
    - item_type: preproc_def
      name: PYOBJ_ALLOC
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: PYMALLOC_ALLOC
    - item_type: preproc_def
      name: PYOBJ_ALLOC
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: MALLOC_ALLOC
    - item_type: preproc_def
      name: PYMEM_ALLOC
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: PYOBJ_ALLOC
    - item_type: preproc_def
      name: PYDBGRAW_ALLOC
      pos:
        line_end: 207
        line_start: 205
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '{&_PyMem_Debug.raw, _PyMem_DebugRawMalloc, _PyMem_DebugRawCalloc,
        _PyMem_DebugRawRealloc, _PyMem_DebugRawFree}'
    - item_type: preproc_def
      name: PYDBGMEM_ALLOC
      pos:
        line_end: 209
        line_start: 207
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '{&_PyMem_Debug.mem, _PyMem_DebugMalloc, _PyMem_DebugCalloc,
        _PyMem_DebugRealloc, _PyMem_DebugFree}'
    - item_type: preproc_def
      name: PYDBGOBJ_ALLOC
      pos:
        line_end: 211
        line_start: 209
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '{&_PyMem_Debug.obj, _PyMem_DebugMalloc, _PyMem_DebugCalloc,
        _PyMem_DebugRealloc, _PyMem_DebugFree}'
    - item_type: preproc_def
      name: ALIGNMENT
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '16               '
    - item_type: preproc_def
      name: ALIGNMENT_SHIFT
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ALIGNMENT
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '8               '
    - item_type: preproc_def
      name: ALIGNMENT_SHIFT
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SMALL_REQUEST_THRESHOLD
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '512'
    - item_type: preproc_def
      name: NB_SMALL_SIZE_CLASSES
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: (SMALL_REQUEST_THRESHOLD / ALIGNMENT)
    - item_type: preproc_def
      name: SYSTEM_PAGE_SIZE
      pos:
        line_end: 883
        line_start: 882
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: (4 * 1024)
    - item_type: preproc_def
      name: SYSTEM_PAGE_SIZE_MASK
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: (SYSTEM_PAGE_SIZE - 1)
    - item_type: preproc_def
      name: SMALL_MEMORY_LIMIT
      pos:
        line_end: 891
        line_start: 890
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '(64 * 1024 * 1024)      '
    - item_type: preproc_def
      name: ARENA_SIZE
      pos:
        line_end: 908
        line_start: 907
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '(256 << 10)     '
    - item_type: preproc_def
      name: MAX_ARENAS
      pos:
        line_end: 911
        line_start: 910
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: (SMALL_MEMORY_LIMIT / ARENA_SIZE)
    - item_type: preproc_def
      name: POOL_SIZE
      pos:
        line_end: 918
        line_start: 917
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: 'SYSTEM_PAGE_SIZE        '
    - item_type: preproc_def
      name: POOL_SIZE_MASK
      pos:
        line_end: 919
        line_start: 918
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: SYSTEM_PAGE_SIZE_MASK
    - item_type: preproc_def
      name: MAX_POOLS_IN_ARENA
      pos:
        line_end: 921
        line_start: 920
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: (ARENA_SIZE / POOL_SIZE)
    - item_type: preproc_def
      name: POOL_OVERHEAD
      pos:
        line_end: 991
        line_start: 990
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: _Py_SIZE_ROUND_UP(sizeof(struct pool_header), ALIGNMENT)
    - item_type: preproc_def
      name: DUMMY_SIZE_IDX
      pos:
        line_end: 993
        line_start: 992
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '0xffff  '
    - item_type: preproc_def
      name: INITIAL_ARENA_OBJECTS
      pos:
        line_end: 1199
        line_start: 1198
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '16'
    - item_type: preproc_def
      name: SST
      pos:
        line_end: 2025
        line_start: 2024
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: SIZEOF_SIZE_T
    - item_type: preproc_def
      name: PYMEM_DEBUG_EXTRA_BYTES
      pos:
        line_end: 2028
        line_start: 2027
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: 4 * SST
    - item_type: preproc_def
      name: PYMEM_DEBUG_EXTRA_BYTES
      pos:
        line_end: 2030
        line_start: 2029
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: 3 * SST
    - item_type: preproc_def
      name: ERASED_SIZE
      pos:
        line_end: 2205
        line_start: 2204
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type_or_value: '64'
    structs:
    - fields:
      - name: api_id
        type: char
      - name: alloc
        type: PyMemAllocatorEx
      item_type: struct
      name: debug_alloc_api_t
      pos:
        line_end: 194
        line_start: 190
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - fields:
      - name: raw
        type: debug_alloc_api_t
      - name: mem
        type: debug_alloc_api_t
      - name: obj
        type: debug_alloc_api_t
      item_type: struct
      name: "_PyMem_Debug = {\n    {'r', PYRAW_ALLOC},\n    {'m', PYMEM_ALLOC},\n
        \   {'o', PYOBJ_ALLOC}\n    }"
      pos:
        line_end: 199
        line_start: 195
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - fields:
      - name: ref
        type: "union { block *_padding;\n            uint count; }"
      - name: '*freeblock'
        type: block
      - name: '*nextpool'
        type: struct pool_header
      - name: '*prevpool'
        type: struct pool_header
      - name: arenaindex
        type: uint
      - name: szidx
        type: uint
      - name: nextoffset
        type: uint
      - name: maxnextoffset
        type: uint
      item_type: struct
      name: pool_header
      pos:
        line_end: 945
        line_start: 935
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    - fields:
      - name: address
        type: uintptr_t
      - name: '* pool_address'
        type: block
      - name: nfreepools
        type: uint
      - name: ntotalpools
        type: uint
      - name: '* freepools'
        type: struct pool_header
      - name: '* nextarena'
        type: struct arena_object
      - name: '* prevarena'
        type: struct arena_object
      item_type: struct
      name: arena_object
      pos:
        line_end: 988
        line_start: 950
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
    typedefs:
    - item_type: typedef
      name: block
      pos:
        line_end: 932
        line_start: 932
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type: uint8_t
    - item_type: typedef
      name: '*poolp'
      pos:
        line_end: 947
        line_start: 947
        source_file: /src/Python-3.8.3/Objects/obmalloc.c
      type: pool_header
    union: []
- function_names:
  - ellipsis_new
  - ellipsis_repr
  - ellipsis_reduce
  - PySlice_Fini
  - PySlice_New
  - _PySlice_FromIndices
  - PySlice_GetIndices
  - PySlice_Unpack
  - PySlice_AdjustIndices
  - PySlice_GetIndicesEx
  - slice_new
  - slice_dealloc
  - slice_repr
  - evaluate_slice_index
  - _PySlice_GetLongIndices
  - slice_indices
  - slice_reduce
  - slice_richcompare
  - slice_traverse
  source_file: /src/Python-3.8.3/Objects/sliceobject.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - validate_step
  - make_range_object
  - range_new
  - range_dealloc
  - compute_range_length
  - range_length
  - compute_item
  - compute_range_item
  - range_item
  - compute_slice
  - range_contains_long
  - range_contains
  - range_equals
  - range_richcompare
  - range_hash
  - range_count
  - range_index
  - range_repr
  - range_reduce
  - range_subscript
  - range_bool
  - rangeiter_next
  - rangeiter_len
  - rangeiter_reduce
  - rangeiter_setstate
  - get_len_of_range
  - fast_range_iter
  - longrangeiter_len
  - longrangeiter_reduce
  - longrangeiter_setstate
  - longrangeiter_dealloc
  - longrangeiter_next
  - range_iter
  - range_reverse
  source_file: /src/Python-3.8.3/Objects/rangeobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*start'
        type: PyObject_HEAD
      - name: '*stop'
        type: PyObject
      - name: '*step'
        type: PyObject
      - name: '*length'
        type: PyObject
      item_type: struct
      name: rangeobject
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    - fields:
      - name: index
        type: "PyObject_HEAD\n        long"
      - name: start
        type: long
      - name: step
        type: long
      - name: len
        type: long
      item_type: struct
      name: rangeiterobject
      pos:
        line_end: 719
        line_start: 713
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    - fields:
      - name: '*index'
        type: PyObject_HEAD
      - name: '*start'
        type: PyObject
      - name: '*step'
        type: PyObject
      - name: '*len'
        type: PyObject
      item_type: struct
      name: longrangeiterobject
      pos:
        line_end: 891
        line_start: 885
        source_file: /src/Python-3.8.3/Objects/rangeobject.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Objects/dict-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DKIX_EMPTY
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/dict-common.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: DKIX_DUMMY
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/dict-common.h
      type_or_value: '(-2)  '
    - item_type: preproc_def
      name: DKIX_ERROR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/dict-common.h
      type_or_value: (-3)
    structs:
    - fields:
      - name: me_hash
        type: Py_hash_t
      - name: '*me_key'
        type: PyObject
      - name: '*me_value'
        type: PyObject
      item_type: struct
      name: PyDictKeyEntry
      pos:
        line_end: 8
        line_start: 3
        source_file: /src/Python-3.8.3/Objects/dict-common.h
    - fields:
      - name: dk_refcnt
        type: Py_ssize_t
      - name: dk_size
        type: Py_ssize_t
      - name: dk_lookup
        type: dict_lookup_func
      - name: dk_usable
        type: Py_ssize_t
      - name: dk_nentries
        type: Py_ssize_t
      - name: dk_indices[]
        type: char
      item_type: struct
      name: _dictkeysobject
      pos:
        line_end: 65
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/dict-common.h
    typedefs:
    - item_type: typedef
      name: "(*dict_lookup_func)\n    (PyDictObject *mp, PyObject *key, Py_hash_t
        hash, PyObject **value_addr)"
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/dict-common.h
      type: Py_ssize_t
    union: []
- function_names:
  - _Py_bytes_isspace
  - _Py_bytes_isalpha
  - _Py_bytes_isalnum
  - _Py_bytes_isascii
  - _Py_bytes_isdigit
  - _Py_bytes_islower
  - _Py_bytes_isupper
  - _Py_bytes_istitle
  - _Py_bytes_lower
  - _Py_bytes_upper
  - _Py_bytes_title
  - _Py_bytes_capitalize
  - _Py_bytes_swapcase
  - _Py_bytes_maketrans
  - STRINGLIB
  - parse_args_finds_byte
  - ADJUST_INDICES
  - find_internal
  - _Py_bytes_find
  - _Py_bytes_index
  - _Py_bytes_rfind
  - _Py_bytes_rindex
  - _Py_bytes_count
  - _Py_bytes_contains
  - tailmatch
  - _Py_bytes_tailmatch
  - _Py_bytes_startswith
  - _Py_bytes_endswith
  source_file: /src/Python-3.8.3/Objects/bytes_methods.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Objects/bytes_methods.c
      type_or_value: 0x8080808080808080UL
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Objects/bytes_methods.c
      type_or_value: 0x80808080UL
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/Python-3.8.3/Objects/bytes_methods.c
      type_or_value: fastsearch
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/Python-3.8.3/Objects/bytes_methods.c
      type_or_value: char
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/Python-3.8.3/Objects/bytes_methods.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - join_list_unicode
  - _PyAccu_Init
  - flush_accumulator
  - _PyAccu_Accumulate
  - _PyAccu_FinishAsList
  - _PyAccu_Finish
  - _PyAccu_Destroy
  source_file: /src/Python-3.8.3/Objects/accu.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyPickleBuffer_FromObject
  - PyPickleBuffer_GetBuffer
  - PyPickleBuffer_Release
  - picklebuf_new
  - picklebuf_traverse
  - picklebuf_clear
  - picklebuf_dealloc
  - picklebuf_getbuf
  - picklebuf_releasebuf
  - picklebuf_raw
  - picklebuf_release
  source_file: /src/Python-3.8.3/Objects/picklebufobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_buffer
        type: PyObject_HEAD
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: PyPickleBufferObject
      pos:
        line_end: 11
        line_start: 6
        source_file: /src/Python-3.8.3/Objects/picklebufobject.c
    typedefs: []
    union: []
- function_names:
  - TP_DESCR_GET
  - PyMethod_Function
  - PyMethod_Self
  - method_vectorcall
  - PyMethod_New
  - method_reduce
  - MO_OFF
  - method_get_doc
  - method_getattro
  - method_new
  - method_dealloc
  - method_richcompare
  - method_repr
  - method_hash
  - method_traverse
  - method_call
  - method_descr_get
  - PyMethod_ClearFreeList
  - PyMethod_Fini
  - _PyMethod_DebugMallocStats
  - PyInstanceMethod_New
  - PyInstanceMethod_Function
  - IMO_OFF
  - instancemethod_get_doc
  - instancemethod_getattro
  - instancemethod_dealloc
  - instancemethod_traverse
  - instancemethod_call
  - instancemethod_descr_get
  - instancemethod_richcompare
  - instancemethod_repr
  - instancemethod_new
  source_file: /src/Python-3.8.3/Objects/classobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyMethod_MAXFREELIST
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/classobject.c
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DICT_NEXT_VERSION
  - PyDict_ClearFreeList
  - _PyDict_DebugMallocStats
  - PyDict_Fini
  - DK_SIZE
  - DK_IXSIZE
  - DK_IXSIZE
  - DK_ENTRIES
  - DK_MASK
  - IS_POWER_OF_2
  - dictkeys_incref
  - dictkeys_decref
  - dictkeys_get_index
  - dictkeys_set_index
  - USABLE_FRACTION
  - ESTIMATE_SIZE
  - GROWTH_RATE
  - ENSURE_ALLOWS_DELETIONS
  - ASSERT_CONSISTENT
  - ASSERT_CONSISTENT
  - _PyDict_CheckConsistency
  - CHECK
  - new_keys_object
  - free_keys_object
  - new_values
  - free_values
  - new_dict
  - new_dict_with_shared_keys
  - clone_combined_dict
  - PyDict_New
  - lookdict_index
  - _Py_HOT_FUNCTION::lookdict
  - _Py_HOT_FUNCTION::lookdict_unicode
  - _Py_HOT_FUNCTION::lookdict_unicode_nodummy
  - _Py_HOT_FUNCTION::lookdict_split
  - _PyDict_HasOnlyStringKeys
  - MAINTAIN_TRACKING
  - _PyDict_MaybeUntrack
  - find_empty_slot
  - insertion_resize
  - insertdict
  - insert_to_emptydict
  - build_indices
  - dictresize
  - make_keys_shared
  - _PyDict_NewPresized
  - PyDict_GetItem
  - _PyDict_GetItem_KnownHash
  - PyDict_GetItemWithError
  - _PyDict_GetItemIdWithError
  - _PyDict_GetItemStringWithError
  - _PyDict_LoadGlobal
  - PyDict_SetItem
  - _PyDict_SetItem_KnownHash
  - delitem_common
  - PyDict_DelItem
  - _PyDict_DelItem_KnownHash
  - _PyDict_DelItemIf
  - PyDict_Clear
  - _PyDict_Next
  - PyDict_Next
  - _PyDict_Pop_KnownHash
  - _PyDict_Pop
  - _PyDict_FromKeys
  - dict_dealloc
  - dict_repr
  - dict_length
  - dict_subscript
  - dict_ass_sub
  - dict_keys
  - dict_values
  - dict_items
  - dict_fromkeys_impl
  - dict_update_common
  - dict_update
  - PyDict_MergeFromSeq2
  - dict_merge
  - PyDict_Update
  - PyDict_Merge
  - _PyDict_MergeEx
  - dict_copy
  - PyDict_Copy
  - PyDict_Size
  - PyDict_Keys
  - PyDict_Values
  - PyDict_Items
  - dict_equal
  - dict_richcompare
  - dict___contains__
  - dict_get_impl
  - PyDict_SetDefault
  - dict_setdefault_impl
  - dict_clear
  - dict_pop
  - dict_popitem_impl
  - dict_traverse
  - dict_tp_clear
  - _PyDict_SizeOf
  - _PyDict_KeysSize
  - dict_sizeof
  - PyDict_Contains
  - _PyDict_Contains
  - dict_new
  - dict_init
  - dict_iter
  - _PyDict_GetItemId
  - PyDict_GetItemString
  - _PyDict_SetItemId
  - PyDict_SetItemString
  - _PyDict_DelItemId
  - PyDict_DelItemString
  - dictiter_new
  - dictiter_dealloc
  - dictiter_traverse
  - dictiter_len
  - dictiter_iternextkey
  - dictiter_iternextvalue
  - dictiter_iternextitem
  - dictreviter_iternext
  - dict___reversed___impl
  - dictiter_reduce
  - dictview_dealloc
  - dictview_traverse
  - dictview_len
  - _PyDictView_New
  - all_contained_in
  - dictview_richcompare
  - dictview_repr
  - dictkeys_iter
  - dictkeys_contains
  - dictviews_sub
  - _PyDictView_Intersect
  - dictviews_or
  - dictviews_xor
  - dictviews_isdisjoint
  - dictkeys_new
  - dictkeys_reversed
  - dictitems_iter
  - dictitems_contains
  - dictitems_new
  - dictitems_reversed
  - dictvalues_iter
  - dictvalues_new
  - dictvalues_reversed
  - _PyDict_NewKeysForClass
  - CACHED_KEYS
  - PyObject_GenericGetDict
  - _PyObjectDict_SetItem
  - _PyDictKeys_DecRef
  source_file: /src/Python-3.8.3/Objects/dictobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyDict_MINSIZE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Objects/dictobject.c
      type_or_value: '8'
    - item_type: preproc_def
      name: PERTURB_SHIFT
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/Python-3.8.3/Objects/dictobject.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PyDict_MAXFREELIST
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/Python-3.8.3/Objects/dictobject.c
      type_or_value: '80'
    - item_type: preproc_def
      name: Py_EMPTY_KEYS
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/Python-3.8.3/Objects/dictobject.c
      type_or_value: '&empty_keys_struct'
    - item_type: preproc_def
      name: DICT_POP_METHODDEF
      pos:
        line_end: 3005
        line_start: 3003
        source_file: /src/Python-3.8.3/Objects/dictobject.c
      type_or_value: '{"pop", (PyCFunction)(void(*)(void))dict_pop, METH_FASTCALL,
        dict_pop__doc__},'
    structs:
    - fields:
      - name: '*di_dict'
        type: PyObject_HEAD
      - name: di_used
        type: Py_ssize_t
      - name: di_pos
        type: Py_ssize_t
      - name: '* di_result'
        type: PyObject
      - name: len
        type: Py_ssize_t
      item_type: struct
      name: dictiterobject
      pos:
        line_end: 3452
        line_start: 3445
        source_file: /src/Python-3.8.3/Objects/dictobject.c
    typedefs: []
    union: []
- function_names:
  - GETC
  - FLOCKFILE
  - FUNLOCKFILE
  - GETC
  - PyFile_FromFd
  - PyFile_GetLine
  - PyFile_WriteObject
  - PyFile_WriteString
  - PyObject_AsFileDescriptor
  - Py_UniversalNewlineFgets
  - stdprinter_new
  - stdprinter_init
  - PyFile_NewStdPrinter
  - stdprinter_write
  - stdprinter_fileno
  - stdprinter_repr
  - stdprinter_noop
  - stdprinter_isatty
  - get_closed
  - get_mode
  - get_encoding
  - PyFile_SetOpenCodeHook
  - PyFile_OpenCodeObject
  - PyFile_OpenCode
  source_file: /src/Python-3.8.3/Objects/fileobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEWLINE_UNKNOWN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/fileobject.c
      type_or_value: '0       '
    - item_type: preproc_def
      name: NEWLINE_CR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/fileobject.c
      type_or_value: '1            '
    - item_type: preproc_def
      name: NEWLINE_LF
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/fileobject.c
      type_or_value: '2            '
    - item_type: preproc_def
      name: NEWLINE_CRLF
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/fileobject.c
      type_or_value: '4          '
    structs:
    - fields:
      - name: int
        type: PyObject_HEAD
      item_type: struct
      name: PyStdPrinter_Object
      pos:
        line_end: 313
        line_start: 310
        source_file: /src/Python-3.8.3/Objects/fileobject.c
    typedefs: []
    union: []
- function_names:
  - type_error
  - null_error
  - PyObject_Type
  - PyObject_Size
  - PyObject_Length
  - _PyObject_HasLen
  - PyObject_LengthHint
  - PyObject_GetItem
  - PyObject_SetItem
  - PyObject_DelItem
  - PyObject_DelItemString
  - PyObject_CheckReadBuffer
  - as_read_buffer
  - PyObject_AsCharBuffer
  - PyObject_AsReadBuffer
  - PyObject_AsWriteBuffer
  - PyObject_GetBuffer
  - _IsFortranContiguous
  - _IsCContiguous
  - PyBuffer_IsContiguous
  - PyBuffer_GetPointer
  - _Py_add_one_to_index_F
  - _Py_add_one_to_index_C
  - PyBuffer_FromContiguous
  - PyObject_CopyData
  - PyBuffer_FillContiguousStrides
  - PyBuffer_FillInfo
  - PyBuffer_Release
  - PyObject_Format
  - PyNumber_Check
  - NB_SLOT
  - NB_BINOP
  - NB_TERNOP
  - binary_op1
  - binop_type_error
  - binary_op
  - ternary_op
  - BINARY_FUNC
  - PyNumber_Add
  - sequence_repeat
  - PyNumber_Multiply
  - PyNumber_MatrixMultiply
  - PyNumber_FloorDivide
  - PyNumber_TrueDivide
  - PyNumber_Remainder
  - PyNumber_Power
  - binary_iop1
  - binary_iop
  - INPLACE_BINOP
  - PyNumber_InPlaceFloorDivide
  - PyNumber_InPlaceTrueDivide
  - PyNumber_InPlaceAdd
  - PyNumber_InPlaceMultiply
  - PyNumber_InPlaceMatrixMultiply
  - PyNumber_InPlaceRemainder
  - PyNumber_InPlacePower
  - PyNumber_Negative
  - PyNumber_Positive
  - PyNumber_Invert
  - PyNumber_Absolute
  - PyIndex_Check
  - PyNumber_Index
  - PyNumber_AsSsize_t
  - PyNumber_Long
  - PyNumber_Float
  - PyNumber_ToBase
  - PySequence_Check
  - PySequence_Size
  - PySequence_Length
  - PySequence_Concat
  - PySequence_Repeat
  - PySequence_InPlaceConcat
  - PySequence_InPlaceRepeat
  - PySequence_GetItem
  - PySequence_GetSlice
  - PySequence_SetItem
  - PySequence_DelItem
  - PySequence_SetSlice
  - PySequence_DelSlice
  - PySequence_Tuple
  - PySequence_List
  - PySequence_Fast
  - _PySequence_IterSearch
  - PySequence_Count
  - PySequence_Contains
  - PySequence_In
  - PySequence_Index
  - PyMapping_Check
  - PyMapping_Size
  - PyMapping_Length
  - PyMapping_GetItemString
  - PyMapping_SetItemString
  - PyMapping_HasKeyString
  - PyMapping_HasKey
  - method_output_as_list
  - PyMapping_Keys
  - PyMapping_Items
  - PyMapping_Values
  - abstract_get_bases
  - abstract_issubclass
  - check_class
  - recursive_isinstance
  - PyObject_IsInstance
  - recursive_issubclass
  - PyObject_IsSubclass
  - _PyObject_RealIsInstance
  - _PyObject_RealIsSubclass
  - PyObject_GetIter
  - PyIter_Check
  - PyIter_Next
  - _PySequence_BytesToCharpArray
  - _Py_FreeCharPArray
  source_file: /src/Python-3.8.3/Objects/abstract.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyObject_Length
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Objects/abstract.c
      type_or_value: PyObject_Size
    - item_type: preproc_def
      name: PySequence_Length
      pos:
        line_end: 1568
        line_start: 1567
        source_file: /src/Python-3.8.3/Objects/abstract.c
      type_or_value: PySequence_Size
    - item_type: preproc_def
      name: PyMapping_Length
      pos:
        line_end: 2146
        line_start: 2145
        source_file: /src/Python-3.8.3/Objects/abstract.c
      type_or_value: PyMapping_Size
    structs: []
    typedefs: []
    union: []
- function_names:
  - exc_state_traverse
  - gen_traverse
  - _PyGen_Finalize
  - exc_state_clear
  - gen_dealloc
  - gen_send_ex
  - _PyGen_Send
  - gen_close_iter
  - _PyGen_yf
  - gen_close
  - _gen_throw
  - gen_throw
  - gen_iternext
  - _PyGen_SetStopIterationValue
  - _PyGen_FetchStopIterationValue
  - gen_repr
  - gen_get_name
  - gen_set_name
  - gen_get_qualname
  - gen_set_qualname
  - gen_getyieldfrom
  - gen_new_with_qualname
  - PyGen_NewWithQualName
  - PyGen_New
  - PyGen_NeedsFinalizing
  - gen_is_coroutine
  - _PyCoro_GetAwaitableIter
  - coro_repr
  - coro_await
  - coro_get_cr_await
  - coro_wrapper_dealloc
  - coro_wrapper_iternext
  - coro_wrapper_send
  - coro_wrapper_throw
  - coro_wrapper_close
  - coro_wrapper_traverse
  - compute_cr_origin
  - PyCoro_New
  - _PyAsyncGenWrappedValue_CheckExact
  - PyAsyncGenASend_CheckExact
  - async_gen_traverse
  - async_gen_repr
  - async_gen_init_hooks
  - async_gen_anext
  - async_gen_asend
  - async_gen_aclose
  - async_gen_athrow
  - PyAsyncGen_New
  - PyAsyncGen_ClearFreeLists
  - PyAsyncGen_Fini
  - async_gen_unwrap_value
  - async_gen_asend_dealloc
  - async_gen_asend_traverse
  - async_gen_asend_send
  - async_gen_asend_iternext
  - async_gen_asend_throw
  - async_gen_asend_close
  - async_gen_asend_new
  - async_gen_wrapped_val_dealloc
  - async_gen_wrapped_val_traverse
  - _PyAsyncGenValueWrapperNew
  - async_gen_athrow_dealloc
  - async_gen_athrow_traverse
  - async_gen_athrow_send
  - async_gen_athrow_throw
  - async_gen_athrow_iternext
  - async_gen_athrow_close
  - async_gen_athrow_new
  source_file: /src/Python-3.8.3/Objects/genobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyAsyncGen_MAXFREELIST
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/Python-3.8.3/Objects/genobject.c
      type_or_value: '80'
    structs:
    - fields:
      - name: '*cw_coroutine'
        type: PyObject_HEAD
      item_type: struct
      name: PyCoroWrapper
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - fields:
      - name: '*ags_gen'
        type: PyObject_HEAD
      - name: '*ags_sendval'
        type: PyObject
      - name: ags_state
        type: AwaitableState
      item_type: struct
      name: PyAsyncGenASend
      pos:
        line_end: 1195
        line_start: 1186
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - fields:
      - name: '*agt_gen'
        type: PyObject_HEAD
      - name: '*agt_args'
        type: PyObject
      - name: agt_state
        type: AwaitableState
      item_type: struct
      name: PyAsyncGenAThrow
      pos:
        line_end: 1207
        line_start: 1198
        source_file: /src/Python-3.8.3/Objects/genobject.c
    - fields:
      - name: '*agw_val'
        type: PyObject_HEAD
      item_type: struct
      name: _PyAsyncGenWrappedValue
      pos:
        line_end: 1213
        line_start: 1210
        source_file: /src/Python-3.8.3/Objects/genobject.c
    typedefs: []
    union: []
- function_names:
  - 'OFF'
  - frame_getlocals
  - PyFrame_GetLineNumber
  - frame_getlineno
  - get_arg
  - frame_gettrace
  - frame_settrace
  - _Py_HOT_FUNCTION::frame_dealloc
  - frame_traverse
  - frame_tp_clear
  - frame_clear
  - frame_sizeof
  - frame_repr
  - PyFrame_New
  - PyFrame_BlockSetup
  - PyFrame_BlockPop
  - map_to_dict
  - dict_to_map
  - PyFrame_FastToLocalsWithError
  - PyFrame_FastToLocals
  - PyFrame_LocalsToFast
  - PyFrame_ClearFreeList
  - PyFrame_Fini
  - _PyFrame_DebugMallocStats
  source_file: /src/Python-3.8.3/Objects/frameobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyFrame_MAXFREELIST
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/Python-3.8.3/Objects/frameobject.c
      type_or_value: '200'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyFloat_GetMax
  - PyFloat_GetMin
  - PyFloat_GetInfo
  - SetIntFlag
  - SetDblFlag
  - PyFloat_FromDouble
  - float_from_string_inner
  - PyFloat_FromString
  - float_dealloc
  - PyFloat_AsDouble
  - CONVERT_TO_DOUBLE
  - convert_to_double
  - float_repr
  - float_richcompare
  - float_hash
  - float_add
  - float_sub
  - float_mul
  - float_div
  - float_rem
  - float_divmod
  - float_floor_div
  - DOUBLE_IS_ODD_INTEGER
  - float_pow
  - float_neg
  - float_abs
  - float_bool
  - float_is_integer_impl
  - float___trunc___impl
  - double_round
  - double_round
  - float___round___impl
  - float_float
  - float_conjugate_impl
  - char_from_hex
  - hex_from_char
  - float_hex_impl
  - float_fromhex
  - HEX_DIGIT
  - float_as_integer_ratio_impl
  - float_new_impl
  - float_subtype_new
  - float___getnewargs___impl
  - float___getformat___impl
  - float___set_format___impl
  - float_getreal
  - float_getimag
  - float___format___impl
  - _PyFloat_Init
  - PyFloat_ClearFreeList
  - PyFloat_Fini
  - _PyFloat_DebugMallocStats
  - _PyFloat_Pack2
  - _PyFloat_Pack4
  - _PyFloat_Pack8
  - _PyFloat_Unpack2
  - _PyFloat_Unpack4
  - _PyFloat_Unpack8
  source_file: /src/Python-3.8.3/Objects/floatobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyFloat_MAXFREELIST
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Objects/floatobject.c
      type_or_value: '100'
    - item_type: preproc_def
      name: NDIGITS_MAX
      pos:
        line_end: 1054
        line_start: 1053
        source_file: /src/Python-3.8.3/Objects/floatobject.c
      type_or_value: ((int)((DBL_MANT_DIG-DBL_MIN_EXP) * 0.30103))
    - item_type: preproc_def
      name: NDIGITS_MIN
      pos:
        line_end: 1055
        line_start: 1054
        source_file: /src/Python-3.8.3/Objects/floatobject.c
      type_or_value: (-(int)((DBL_MAX_EXP + 1) * 0.30103))
    - item_type: preproc_def
      name: TOHEX_NBITS
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/Python-3.8.3/Objects/floatobject.c
      type_or_value: DBL_MANT_DIG + 3 - (DBL_MANT_DIG+2)%4
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyBytes_FromSize
  - PyBytes_FromStringAndSize
  - PyBytes_FromString
  - PyBytes_FromFormatV
  - WRITE_BYTES
  - PyBytes_FromFormat
  - getnextarg
  - formatfloat
  - formatlong
  - byte_converter
  - format_obj
  - _PyBytes_FormatEx
  - _PyBytes_DecodeEscapeRecode
  - _PyBytes_DecodeEscape
  - PyBytes_DecodeEscape
  - PyBytes_Size
  - PyBytes_AsString
  - PyBytes_AsStringAndSize
  - PyBytes_Repr
  - bytes_repr
  - bytes_str
  - bytes_length
  - bytes_concat
  - bytes_repeat
  - bytes_contains
  - bytes_item
  - bytes_compare_eq
  - bytes_richcompare
  - bytes_hash
  - bytes_subscript
  - bytes_buffer_getbuffer
  - bytes_split_impl
  - bytes_partition_impl
  - bytes_rpartition_impl
  - bytes_rsplit_impl
  - bytes_join
  - _PyBytes_Join
  - bytes_find
  - bytes_index
  - bytes_rfind
  - bytes_rindex
  - do_xstrip
  - do_strip
  - do_argstrip
  - bytes_strip_impl
  - bytes_lstrip_impl
  - bytes_rstrip_impl
  - bytes_count
  - bytes_translate_impl
  - bytes_maketrans_impl
  - bytes_replace_impl
  - bytes_startswith
  - bytes_endswith
  - bytes_decode_impl
  - bytes_splitlines_impl
  - bytes_fromhex_impl
  - _PyBytes_FromHex
  - bytes_hex_impl
  - bytes_getnewargs
  - bytes_mod
  - bytes_new
  - _PyBytes_FromBuffer
  - _PyBytes_FromList
  - _PyBytes_FromTuple
  - _PyBytes_FromIterator
  - PyBytes_FromObject
  - bytes_subtype_new
  - PyBytes_Concat
  - PyBytes_ConcatAndDel
  - _PyBytes_Resize
  - PyBytes_Fini
  - striter_dealloc
  - striter_traverse
  - striter_next
  - striter_len
  - striter_reduce
  - striter_setstate
  - bytes_iter
  - _PyBytesWriter_Init
  - _PyBytesWriter_Dealloc
  - _PyBytesWriter_AsString
  - _PyBytesWriter_GetSize
  - _PyBytesWriter_CheckConsistency
  - _PyBytesWriter_Resize
  - _PyBytesWriter_Prepare
  - _PyBytesWriter_Alloc
  - _PyBytesWriter_Finish
  - _PyBytesWriter_WriteBytes
  source_file: /src/Python-3.8.3/Objects/bytesobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyBytesObject_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (offsetof(PyBytesObject, ob_sval) + 1)
    - item_type: preproc_def
      name: F_LJUST
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: F_SIGN
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: F_BLANK
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: F_ALT
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: F_ZERO
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: (1<<4)
    - item_type: preproc_def
      name: LEFTSTRIP
      pos:
        line_end: 1746
        line_start: 1745
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RIGHTSTRIP
      pos:
        line_end: 1747
        line_start: 1746
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BOTHSTRIP
      pos:
        line_end: 1748
        line_start: 1747
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OVERALLOCATE_FACTOR
      pos:
        line_end: 3214
        line_start: 3213
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OVERALLOCATE_FACTOR
      pos:
        line_end: 3217
        line_start: 3216
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
      type_or_value: '4'
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyBytesObject
      item_type: struct
      name: striterobject
      pos:
        line_end: 3060
        line_start: 3056
        source_file: /src/Python-3.8.3/Objects/bytesobject.c
    typedefs: []
    union: []
- function_names:
  - _getbytevalue
  - bytearray_getbuffer
  - bytearray_releasebuffer
  - _canresize
  - PyByteArray_FromObject
  - _PyByteArray_FromBufferObject
  - PyByteArray_FromStringAndSize
  - PyByteArray_Size
  - PyByteArray_AsString
  - PyByteArray_Resize
  - PyByteArray_Concat
  - bytearray_length
  - bytearray_iconcat
  - bytearray_repeat
  - bytearray_irepeat
  - bytearray_getitem
  - bytearray_subscript
  - bytearray_setslice_linear
  - bytearray_setslice
  - bytearray_setitem
  - bytearray_ass_subscript
  - bytearray_init
  - bytearray_repr
  - bytearray_str
  - bytearray_richcompare
  - bytearray_dealloc
  - STRINGLIB
  - STRINGLIB_ISLINEBREAK
  - bytearray_find
  - bytearray_count
  - bytearray_clear_impl
  - bytearray_copy_impl
  - bytearray_index
  - bytearray_rfind
  - bytearray_rindex
  - bytearray_contains
  - bytearray_startswith
  - bytearray_endswith
  - bytearray_translate_impl
  - bytearray_maketrans_impl
  - bytearray_replace_impl
  - bytearray_split_impl
  - bytearray_partition
  - bytearray_rpartition
  - bytearray_rsplit_impl
  - bytearray_reverse_impl
  - bytearray_insert_impl
  - bytearray_append_impl
  - bytearray_extend
  - bytearray_pop_impl
  - bytearray_remove_impl
  - lstrip_helper
  - rstrip_helper
  - bytearray_strip_impl
  - bytearray_lstrip_impl
  - bytearray_rstrip_impl
  - bytearray_decode_impl
  - bytearray_alloc
  - bytearray_join
  - bytearray_splitlines_impl
  - bytearray_fromhex_impl
  - bytearray_hex_impl
  - _common_reduce
  - bytearray_reduce_impl
  - bytearray_reduce_ex_impl
  - bytearray_sizeof_impl
  - bytearray_mod
  - bytearrayiter_dealloc
  - bytearrayiter_traverse
  - bytearrayiter_next
  - bytearrayiter_length_hint
  - bytearrayiter_reduce
  - bytearrayiter_setstate
  - bytearray_iter
  source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: fastsearch
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: char
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: '1'
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: PyByteArray_GET_SIZE
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: PyByteArray_AS_STRING
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: PyByteArray_FromStringAndSize
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: Py_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: PyByteArray_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_MUTABLE
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
      type_or_value: '1'
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyByteArrayObject
      item_type: struct
      name: bytesiterobject
      pos:
        line_end: 2314
        line_start: 2310
        source_file: /src/Python-3.8.3/Objects/bytearrayobject.c
    typedefs: []
    union: []
- function_names:
  - BaseException_new
  - BaseException_init
  - BaseException_clear
  - BaseException_dealloc
  - BaseException_traverse
  - BaseException_str
  - BaseException_repr
  - BaseException_reduce
  - BaseException_setstate
  - BaseException_with_traceback
  - BaseException_get_args
  - BaseException_set_args
  - BaseException_get_tb
  - BaseException_set_tb
  - BaseException_get_context
  - BaseException_set_context
  - BaseException_get_cause
  - BaseException_set_cause
  - PyException_GetTraceback
  - PyException_SetTraceback
  - PyException_GetCause
  - PyException_SetCause
  - PyException_GetContext
  - PyException_SetContext
  - PyExceptionClass_Name
  - SimpleExtendsException
  - MiddlingExtendsException
  - ComplexExtendsException
  - StopIteration_init
  - StopIteration_clear
  - StopIteration_dealloc
  - StopIteration_traverse
  - SystemExit_init
  - SystemExit_clear
  - SystemExit_dealloc
  - SystemExit_traverse
  - ImportError_init
  - ImportError_clear
  - ImportError_dealloc
  - ImportError_traverse
  - ImportError_str
  - ImportError_getstate
  - ImportError_reduce
  - oserror_parse_args
  - oserror_init
  - oserror_use_init
  - OSError_new
  - OSError_init
  - OSError_clear
  - OSError_dealloc
  - OSError_traverse
  - OSError_str
  - OR_NONE
  - OSError_reduce
  - OSError_written_get
  - OSError_written_set
  - SyntaxError_init
  - SyntaxError_clear
  - SyntaxError_dealloc
  - SyntaxError_traverse
  - my_basename
  - SyntaxError_str
  - KeyError_str
  - get_string
  - get_unicode
  - set_unicodefromstring
  - PyUnicodeEncodeError_GetEncoding
  - PyUnicodeDecodeError_GetEncoding
  - PyUnicodeEncodeError_GetObject
  - PyUnicodeDecodeError_GetObject
  - PyUnicodeTranslateError_GetObject
  - PyUnicodeEncodeError_GetStart
  - PyUnicodeDecodeError_GetStart
  - PyUnicodeTranslateError_GetStart
  - PyUnicodeEncodeError_SetStart
  - PyUnicodeDecodeError_SetStart
  - PyUnicodeTranslateError_SetStart
  - PyUnicodeEncodeError_GetEnd
  - PyUnicodeDecodeError_GetEnd
  - PyUnicodeTranslateError_GetEnd
  - PyUnicodeEncodeError_SetEnd
  - PyUnicodeDecodeError_SetEnd
  - PyUnicodeTranslateError_SetEnd
  - PyUnicodeEncodeError_GetReason
  - PyUnicodeDecodeError_GetReason
  - PyUnicodeTranslateError_GetReason
  - PyUnicodeEncodeError_SetReason
  - PyUnicodeDecodeError_SetReason
  - PyUnicodeTranslateError_SetReason
  - UnicodeError_clear
  - UnicodeError_dealloc
  - UnicodeError_traverse
  - UnicodeEncodeError_init
  - UnicodeEncodeError_str
  - PyUnicodeEncodeError_Create
  - UnicodeDecodeError_init
  - UnicodeDecodeError_str
  - PyUnicodeDecodeError_Create
  - UnicodeTranslateError_init
  - UnicodeTranslateError_str
  - PyUnicodeTranslateError_Create
  - _PyUnicodeTranslateError_Create
  - MemoryError_new
  - MemoryError_dealloc
  - preallocate_memerrors
  - free_preallocated_memerrors
  - _PyExc_Init
  - PRE_INIT
  - ADD_ERRNO
  - _PyBuiltins_AddExceptions
  - POST_INIT
  - INIT_ALIAS
  - _PyExc_Fini
  - _PyErr_TrySetFromCause
  - _set_legacy_print_statement_msg
  - _check_for_legacy_statements
  - _report_missing_parentheses
  source_file: /src/Python-3.8.3/Objects/exceptions.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEMERRORS_SAVE
      pos:
        line_end: 2262
        line_start: 2261
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: '16'
    - item_type: preproc_def
      name: EALREADY
      pos:
        line_end: 2470
        line_start: 2469
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAEALREADY
    - item_type: preproc_def
      name: ECONNABORTED
      pos:
        line_end: 2473
        line_start: 2472
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAECONNABORTED
    - item_type: preproc_def
      name: ECONNREFUSED
      pos:
        line_end: 2476
        line_start: 2475
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAECONNREFUSED
    - item_type: preproc_def
      name: ECONNRESET
      pos:
        line_end: 2479
        line_start: 2478
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAECONNRESET
    - item_type: preproc_def
      name: EINPROGRESS
      pos:
        line_end: 2482
        line_start: 2481
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAEINPROGRESS
    - item_type: preproc_def
      name: ESHUTDOWN
      pos:
        line_end: 2485
        line_start: 2484
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAESHUTDOWN
    - item_type: preproc_def
      name: ETIMEDOUT
      pos:
        line_end: 2488
        line_start: 2487
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAETIMEDOUT
    - item_type: preproc_def
      name: EWOULDBLOCK
      pos:
        line_end: 2491
        line_start: 2490
        source_file: /src/Python-3.8.3/Objects/exceptions.c
      type_or_value: WSAEWOULDBLOCK
    structs: []
    typedefs: []
    union: []
- function_names:
  - VISIBLE_SIZE
  - VISIBLE_SIZE_TP
  - REAL_SIZE_TP
  - REAL_SIZE
  - UNNAMED_FIELDS_TP
  - UNNAMED_FIELDS
  - PyStructSequence_New
  - PyStructSequence_SetItem
  - PyStructSequence_GetItem
  - structseq_traverse
  - structseq_dealloc
  - structseq_new_impl
  - structseq_repr
  - structseq_reduce
  - count_members
  - initialize_structseq_dict
  - SET_DICT_FROM_SIZE
  - initialize_members
  - PyStructSequence_InitType2
  - PyStructSequence_InitType
  - PyStructSequence_NewType
  - _PyStructSequence_Init
  source_file: /src/Python-3.8.3/Objects/structseq.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gettyperecord
  - _PyUnicode_ToTitlecase
  - _PyUnicode_IsTitlecase
  - _PyUnicode_IsXidStart
  - _PyUnicode_IsXidContinue
  - _PyUnicode_ToDecimalDigit
  - _PyUnicode_IsDecimalDigit
  - _PyUnicode_ToDigit
  - _PyUnicode_IsDigit
  - _PyUnicode_IsNumeric
  - _PyUnicode_IsPrintable
  - _PyUnicode_IsLowercase
  - _PyUnicode_IsUppercase
  - _PyUnicode_ToUppercase
  - _PyUnicode_ToLowercase
  - _PyUnicode_ToLowerFull
  - _PyUnicode_ToTitleFull
  - _PyUnicode_ToUpperFull
  - _PyUnicode_ToFoldedFull
  - _PyUnicode_IsCased
  - _PyUnicode_IsCaseIgnorable
  - _PyUnicode_IsAlpha
  source_file: /src/Python-3.8.3/Objects/unicodectype.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALPHA_MASK
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x01'
    - item_type: preproc_def
      name: DECIMAL_MASK
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x02'
    - item_type: preproc_def
      name: DIGIT_MASK
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x04'
    - item_type: preproc_def
      name: LOWER_MASK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x08'
    - item_type: preproc_def
      name: LINEBREAK_MASK
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SPACE_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x20'
    - item_type: preproc_def
      name: TITLE_MASK
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x40'
    - item_type: preproc_def
      name: UPPER_MASK
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: XID_START_MASK
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x100'
    - item_type: preproc_def
      name: XID_CONTINUE_MASK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x200'
    - item_type: preproc_def
      name: PRINTABLE_MASK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x400'
    - item_type: preproc_def
      name: NUMERIC_MASK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x800'
    - item_type: preproc_def
      name: CASE_IGNORABLE_MASK
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: CASED_MASK
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: EXTENDED_CASE_MASK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
      type_or_value: '0x4000'
    structs:
    - fields:
      - name: upper
        type: int
      - name: lower
        type: int
      - name: title
        type: int
      - name: decimal
        type: unsigned char
      - name: digit
        type: unsigned char
      - name: flags
        type: unsigned short
      item_type: struct
      name: _PyUnicode_TypeRecord
      pos:
        line_end: 40
        line_start: 28
        source_file: /src/Python-3.8.3/Objects/unicodectype.c
    typedefs: []
    union: []
- function_names:
  - bool_repr
  - PyBool_FromLong
  - bool_new
  - bool_and
  - bool_or
  - bool_xor
  source_file: /src/Python-3.8.3/Objects/boolobject.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_resize
  - list_preallocate_exact
  - show_alloc
  - PyList_ClearFreeList
  - PyList_Fini
  - _PyList_DebugMallocStats
  - PyList_New
  - list_new_prealloc
  - PyList_Size
  - valid_index
  - PyList_GetItem
  - PyList_SetItem
  - ins1
  - PyList_Insert
  - app1
  - PyList_Append
  - list_dealloc
  - list_repr
  - list_length
  - list_contains
  - list_item
  - list_slice
  - PyList_GetSlice
  - list_concat
  - list_repeat
  - _list_clear
  - Py_SIZE
  - list_ass_slice
  - PyList_SetSlice
  - list_inplace_repeat
  - list_ass_item
  - list_insert_impl
  - list_clear_impl
  - list_copy_impl
  - list_append
  - list_extend
  - _PyList_Extend
  - list_inplace_concat
  - list_pop_impl
  - reverse_slice
  - sortslice_copy
  - sortslice_copy_incr
  - sortslice_copy_decr
  - sortslice_memcpy
  - sortslice_memmove
  - sortslice_advance
  - ISLT
  - IFLT
  - binarysort
  - count_run
  - gallop_left
  - IFLT
  - gallop_right
  - merge_init
  - merge_freemem
  - merge_getmem
  - MERGE_GETMEM
  - merge_lo
  - merge_hi
  - merge_at
  - merge_collapse
  - merge_force_collapse
  - merge_compute_minrun
  - reverse_sortslice
  - safe_object_compare
  - unsafe_object_compare
  - unsafe_latin_compare
  - unsafe_long_compare
  - unsafe_float_compare
  - unsafe_tuple_compare
  - list_sort_impl
  - Py_SIZE
  - PyList_Sort
  - list_reverse_impl
  - PyList_Reverse
  - PyList_AsTuple
  - list_index_impl
  - list_count
  - list_remove
  - list_traverse
  - list_richcompare
  - list___init___impl
  - list___sizeof___impl
  - list_subscript
  - list_ass_subscript
  - list_iter
  - listiter_dealloc
  - listiter_traverse
  - listiter_next
  - listiter_len
  - listiter_reduce
  - listiter_setstate
  - list___reversed___impl
  - listreviter_dealloc
  - listreviter_traverse
  - listreviter_next
  - listreviter_len
  - listreviter_reduce
  - listreviter_setstate
  - listiter_reduce_general
  source_file: /src/Python-3.8.3/Objects/listobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyList_MAXFREELIST
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: '80'
    - item_type: preproc_def
      name: b
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: ((PyListObject *)bb)
    - item_type: preproc_def
      name: b
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: ((PyListObject *)v)
    - item_type: preproc_def
      name: MAX_MERGE_PENDING
      pos:
        line_end: 1164
        line_start: 1163
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: '85'
    - item_type: preproc_def
      name: MIN_GALLOP
      pos:
        line_end: 1169
        line_start: 1168
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: '7'
    - item_type: preproc_def
      name: MERGESTATE_TEMP_SIZE
      pos:
        line_end: 1172
        line_start: 1171
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type_or_value: '256'
    structs:
    - fields:
      - name: '**keys'
        type: PyObject
      - name: '**values'
        type: PyObject
      item_type: struct
      name: sortslice
      pos:
        line_end: 1090
        line_start: 1087
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - fields:
      - name: base
        type: sortslice
      - name: len
        type: Py_ssize_t
      item_type: struct
      name: s_slice
      pos:
        line_end: 1179
        line_start: 1176
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - fields:
      - name: min_gallop
        type: Py_ssize_t
      - name: a
        type: sortslice
      - name: alloced
        type: Py_ssize_t
      - name: n
        type: int
      - name: pending[MAX_MERGE_PENDING]
        type: struct s_slice
      - name: '*temparray[MERGESTATE_TEMP_SIZE]'
        type: PyObject
      - name: (*key_compare)(PyObject *, PyObject *, MergeState *)
        type: int
      - name: '*(*key_richcompare)(PyObject *, PyObject *, int)'
        type: PyObject
      - name: (*tuple_elem_compare)(PyObject *, PyObject *, MergeState *)
        type: int
      item_type: struct
      name: s_MergeState
      pos:
        line_end: 1224
        line_start: 1182
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyListObject
      item_type: struct
      name: listiterobject
      pos:
        line_end: 3078
        line_start: 3074
        source_file: /src/Python-3.8.3/Objects/listobject.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyListObject
      item_type: struct
      name: listreviterobject
      pos:
        line_end: 3231
        line_start: 3227
        source_file: /src/Python-3.8.3/Objects/listobject.c
    typedefs:
    - item_type: typedef
      name: MergeState
      pos:
        line_end: 1181
        line_start: 1181
        source_file: /src/Python-3.8.3/Objects/listobject.c
      type: s_MergeState
    union: []
- function_names:
  - PySeqIter_New
  - iter_dealloc
  - iter_traverse
  - iter_iternext
  - iter_len
  - iter_reduce
  - iter_setstate
  - PyCallIter_New
  - calliter_dealloc
  - calliter_traverse
  - calliter_iternext
  - calliter_reduce
  source_file: /src/Python-3.8.3/Objects/iterobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyObject
      item_type: struct
      name: seqiterobject
      pos:
        line_end: 11
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/iterobject.c
    - fields:
      - name: '*it_callable'
        type: PyObject_HEAD
      - name: '*it_sentinel'
        type: PyObject
      item_type: struct
      name: calliterobject
      pos:
        line_end: 178
        line_start: 174
        source_file: /src/Python-3.8.3/Objects/iterobject.c
    typedefs: []
    union: []
- function_names:
  - descr_dealloc
  - descr_name
  - descr_repr
  - method_repr
  - member_repr
  - getset_repr
  - wrapperdescr_repr
  - descr_check
  - classmethod_get
  - method_get
  - member_get
  - getset_get
  - wrapperdescr_get
  - descr_setcheck
  - member_set
  - getset_set
  - get_name
  - method_check_args
  - method_enter_call
  - method_vectorcall_VARARGS
  - method_vectorcall_VARARGS_KEYWORDS
  - method_vectorcall_FASTCALL
  - method_vectorcall_FASTCALL_KEYWORDS
  - method_vectorcall_NOARGS
  - method_vectorcall_O
  - classmethoddescr_call
  - wrapperdescr_raw_call
  - wrapperdescr_call
  - method_get_doc
  - method_get_text_signature
  - calculate_qualname
  - descr_get_qualname
  - descr_reduce
  - member_get_doc
  - getset_get_doc
  - wrapperdescr_get_doc
  - wrapperdescr_get_text_signature
  - descr_traverse
  - descr_new
  - PyDescr_NewMethod
  - PyDescr_NewClassMethod
  - PyDescr_NewMember
  - PyDescr_NewGetSet
  - PyDescr_NewWrapper
  - mappingproxy_len
  - mappingproxy_getitem
  - mappingproxy_contains
  - mappingproxy_get
  - mappingproxy_keys
  - mappingproxy_values
  - mappingproxy_items
  - mappingproxy_copy
  - mappingproxy_dealloc
  - mappingproxy_getiter
  - mappingproxy_str
  - mappingproxy_repr
  - mappingproxy_traverse
  - mappingproxy_richcompare
  - mappingproxy_check_mapping
  - mappingproxy_new_impl
  - PyDictProxy_New
  - Wrapper_Check
  - wrapper_dealloc
  - wrapper_richcompare
  - wrapper_hash
  - wrapper_repr
  - wrapper_reduce
  - wrapper_objclass
  - wrapper_name
  - wrapper_doc
  - wrapper_text_signature
  - wrapper_qualname
  - wrapper_call
  - wrapper_traverse
  - PyWrapper_New
  - property_getter
  - property_setter
  - property_deleter
  - property_dealloc
  - property_descr_get
  - property_descr_set
  - property_copy
  - property_init_impl
  - property_get___isabstractmethod__
  - property_traverse
  - property_clear
  source_file: /src/Python-3.8.3/Objects/descrobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*mapping'
        type: PyObject_HEAD
      item_type: struct
      name: mappingproxyobject
      pos:
        line_end: 969
        line_start: 966
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    - fields:
      - name: '*descr'
        type: PyObject_HEAD
      - name: '*self'
        type: PyObject
      item_type: struct
      name: wrapperobject
      pos:
        line_end: 1176
        line_start: 1172
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    - fields:
      - name: '*prop_get'
        type: PyObject_HEAD
      - name: '*prop_set'
        type: PyObject
      - name: '*prop_del'
        type: PyObject
      - name: '*prop_doc'
        type: PyObject
      - name: getter_doc
        type: int
      item_type: struct
      name: propertyobject
      pos:
        line_end: 1415
        line_start: 1408
        source_file: /src/Python-3.8.3/Objects/descrobject.c
    typedefs:
    - item_type: typedef
      name: (*funcptr)(void)
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/Python-3.8.3/Objects/descrobject.c
      type: void
    union: []
- function_names:
  - newinterpid
  - interp_id_converter
  - interpid_new
  - interpid_dealloc
  - interpid_repr
  - interpid_str
  - interpid_int
  - interpid_hash
  - interpid_richcompare
  - _PyInterpreterID_New
  - _PyInterpreterState_GetIDObject
  - _PyInterpreterID_LookUp
  source_file: /src/Python-3.8.3/Objects/interpreteridobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: int64_t
        type: PyObject_HEAD
      item_type: struct
      name: interpid
      pos:
        line_end: 10
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/interpreteridobject.c
    typedefs: []
    union: []
- function_names:
  - _PyUnicode_CHECK
  - _PyUnicode_CHECK
  - _PyUnicode_UTF8
  - PyUnicode_UTF8
  - _PyUnicode_UTF8_LENGTH
  - PyUnicode_UTF8_LENGTH
  - _PyUnicode_WSTR
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_LENGTH
  - _PyUnicode_STATE
  - _PyUnicode_HASH
  - _PyUnicode_KIND
  - _PyUnicode_GET_LENGTH
  - _PyUnicode_DATA_ANY
  - PyUnicode_READY
  - _PyUnicode_SHARE_UTF8
  - _PyUnicode_SHARE_WSTR
  - _PyUnicode_HAS_UTF8_MEMORY
  - _PyUnicode_HAS_WSTR_MEMORY
  - _PyUnicode_CONVERT_BYTES
  - _Py_INCREF_UNICODE_EMPTY
  - _Py_RETURN_UNICODE_EMPTY
  - unicode_fill
  - _Py_GetErrorHandler
  - get_error_handler_wide
  - PyUnicode_GetMax
  - _PyUnicode_CheckConsistency
  - CHECK
  - unicode_result_wchar
  - unicode_result_ready
  - unicode_result
  - unicode_result_unchanged
  - backslashreplace
  - xmlcharrefreplace
  - BLOOM
  - BLOOM_LINEBREAK
  - make_bloom_mask
  - BLOOM_UPDATE
  - ensure_unicode
  - findchar
  - unicode_fill_invalid
  - resize_compact
  - _PyUnicode_UTF8_LENGTH
  - resize_inplace
  - _PyUnicode_UTF8_LENGTH
  - resize_copy
  - _PyUnicode_New
  - _PyUnicode_LENGTH
  - _PyUnicode_UTF8_LENGTH
  - unicode_kind_name
  - _PyUnicode_utf8
  - _PyUnicode_compact_data
  - _PyUnicode_data
  - _PyUnicode_Dump
  - PyUnicode_New
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_WSTR_LENGTH
  - unicode_convert_wchar_to_ucs4
  - unicode_check_modifiable
  - _copy_characters
  - _PyUnicode_FastCopyCharacters
  - PyUnicode_CopyCharacters
  - find_maxchar_surrogates
  - _PyUnicode_Ready
  - _PyUnicode_UTF8_LENGTH
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_UTF8_LENGTH
  - _PyUnicode_UTF8_LENGTH
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_UTF8_LENGTH
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_UTF8_LENGTH
  - unicode_dealloc
  - unicode_is_singleton
  - unicode_modifiable
  - unicode_resize
  - PyUnicode_Resize
  - unicode_write_cstr
  - get_latin1_char
  - unicode_char
  - PyUnicode_FromUnicode
  - PyUnicode_FromWideChar
  - PyUnicode_FromStringAndSize
  - PyUnicode_FromString
  - _PyUnicode_FromId
  - _PyUnicode_ClearStaticStrings
  - _PyUnicode_FromASCII
  - kind_maxchar_limit
  - _PyUnicode_FromUCS1
  - _PyUnicode_FromUCS2
  - _PyUnicode_FromUCS4
  - PyUnicode_FromKindAndData
  - _PyUnicode_FindMaxChar
  - unicode_adjust_maxchar
  - _PyUnicode_Copy
  - _PyUnicode_AsKind
  - as_ucs4
  - PyUnicode_AsUCS4
  - PyUnicode_AsUCS4Copy
  - unicode_fromformat_write_str
  - unicode_fromformat_write_cstr
  - unicode_fromformat_arg
  - PyUnicode_FromFormatV
  - PyUnicode_FromFormat
  - unicode_get_widechar_size
  - unicode_copy_as_widechar
  - PyUnicode_AsWideChar
  - PyUnicode_AsWideCharString
  - PyUnicode_FromOrdinal
  - PyUnicode_FromObject
  - PyUnicode_FromEncodedObject
  - _Py_normalize_encoding
  - PyUnicode_Decode
  - PyUnicode_AsDecodedObject
  - PyUnicode_AsDecodedUnicode
  - PyUnicode_Encode
  - PyUnicode_AsEncodedObject
  - unicode_encode_locale
  - PyUnicode_EncodeLocale
  - PyUnicode_EncodeFSDefault
  - PyUnicode_AsEncodedString
  - PyUnicode_AsEncodedUnicode
  - unicode_decode_locale
  - PyUnicode_DecodeLocaleAndSize
  - PyUnicode_DecodeLocale
  - PyUnicode_DecodeFSDefault
  - PyUnicode_DecodeFSDefaultAndSize
  - PyUnicode_FSConverter
  - PyUnicode_FSDecoder
  - PyUnicode_AsUTF8AndSize
  - PyUnicode_AsUTF8
  - PyUnicode_AsUnicodeAndSize
  - PyUnicode_AsUnicode
  - _PyUnicode_AsUnicode
  - PyUnicode_GetSize
  - PyUnicode_GetLength
  - PyUnicode_ReadChar
  - PyUnicode_WriteChar
  - PyUnicode_GetDefaultEncoding
  - make_decode_exception
  - widechar_resize
  - unicode_decode_call_errorhandler_wchar
  - unicode_decode_call_errorhandler_writer
  - IS_BASE64
  - FROM_BASE64
  - TO_BASE64
  - DECODE_DIRECT
  - ENCODE_DIRECT
  - PyUnicode_DecodeUTF7
  - PyUnicode_DecodeUTF7Stateful
  - _PyUnicode_EncodeUTF7
  - PyUnicode_EncodeUTF7
  - PyUnicode_DecodeUTF8
  - ascii_decode
  - unicode_decode_utf8
  - PyUnicode_DecodeUTF8Stateful
  - _Py_DecodeUTF8Ex
  - _Py_DecodeUTF8_surrogateescape
  - _Py_EncodeUTF8Ex
  - unicode_encode_utf8
  - _PyUnicode_AsUTF8String
  - PyUnicode_EncodeUTF8
  - PyUnicode_AsUTF8String
  - PyUnicode_DecodeUTF32
  - PyUnicode_DecodeUTF32Stateful
  - _PyUnicode_EncodeUTF32
  - PyUnicode_EncodeUTF32
  - PyUnicode_AsUTF32String
  - PyUnicode_DecodeUTF16
  - PyUnicode_DecodeUTF16Stateful
  - _PyUnicode_EncodeUTF16
  - PyUnicode_EncodeUTF16
  - PyUnicode_AsUTF16String
  - _PyUnicode_DecodeUnicodeEscape
  - WRITE_ASCII_CHAR
  - WRITE_CHAR
  - PyUnicode_DecodeUnicodeEscape
  - PyUnicode_AsUnicodeEscapeString
  - PyUnicode_EncodeUnicodeEscape
  - PyUnicode_DecodeRawUnicodeEscape
  - WRITE_CHAR
  - PyUnicode_AsRawUnicodeEscapeString
  - PyUnicode_EncodeRawUnicodeEscape
  - PyUnicode_DecodeLatin1
  - make_encode_exception
  - raise_encode_exception
  - unicode_encode_call_errorhandler
  - unicode_encode_ucs1
  - PyUnicode_EncodeLatin1
  - _PyUnicode_AsLatin1String
  - PyUnicode_AsLatin1String
  - PyUnicode_DecodeASCII
  - PyUnicode_EncodeASCII
  - _PyUnicode_AsASCIIString
  - PyUnicode_AsASCIIString
  - code_page_name
  - decode_code_page_flags
  - decode_code_page_strict
  - decode_code_page_errors
  - decode_code_page_stateful
  - PyUnicode_DecodeCodePageStateful
  - PyUnicode_DecodeMBCSStateful
  - PyUnicode_DecodeMBCS
  - encode_code_page_flags
  - encode_code_page_strict
  - encode_code_page_errors
  - encode_code_page
  - PyUnicode_EncodeMBCS
  - PyUnicode_EncodeCodePage
  - PyUnicode_AsMBCSString
  - charmap_decode_string
  - charmap_decode_mapping
  - PyUnicode_DecodeCharmap
  - encoding_map_size
  - PyUnicode_BuildEncodingMap
  - encoding_map_lookup
  - charmapencode_lookup
  - charmapencode_resize
  - charmapencode_output
  - charmap_encoding_error
  - _PyUnicode_EncodeCharmap
  - PyUnicode_EncodeCharmap
  - PyUnicode_AsCharmapString
  - make_translate_exception
  - unicode_translate_call_errorhandler
  - charmaptranslate_lookup
  - charmaptranslate_output
  - unicode_fast_translate_lookup
  - unicode_fast_translate
  - _PyUnicode_TranslateCharmap
  - PyUnicode_TranslateCharmap
  - PyUnicode_Translate
  - _PyUnicode_TransformDecimalAndSpaceToASCII
  - PyUnicode_TransformDecimalToASCII
  - PyUnicode_EncodeDecimal
  - ADJUST_INDICES
  - any_find_slice
  - _PyUnicode_InsertThousandsGrouping
  - PyUnicode_Count
  - PyUnicode_Find
  - PyUnicode_FindChar
  - tailmatch
  - PyUnicode_Tailmatch
  - ascii_upper_or_lower
  - handle_capital_sigma
  - lower_ucs4
  - do_capitalize
  - do_swapcase
  - do_upper_or_lower
  - do_upper
  - do_lower
  - do_casefold
  - do_title
  - case_operation
  - PyUnicode_Join
  - _PyUnicode_JoinArray
  - _PyUnicode_FastFill
  - PyUnicode_Fill
  - pad
  - PyUnicode_Splitlines
  - split
  - rsplit
  - anylib_find
  - anylib_count
  - replace_1char_inplace
  - replace
  - unicode_title_impl
  - unicode_capitalize_impl
  - unicode_casefold_impl
  - convert_uc
  - unicode_center_impl
  - unicode_compare
  - COMPARE
  - unicode_compare_eq
  - PyUnicode_Compare
  - PyUnicode_CompareWithASCIIString
  - non_ready_unicode_equal_to_ascii_string
  - _PyUnicode_EqualToASCIIString
  - _PyUnicode_EqualToASCIIId
  - PyUnicode_RichCompare
  - _PyUnicode_EQ
  - PyUnicode_Contains
  - PyUnicode_Concat
  - PyUnicode_Append
  - PyUnicode_AppendAndDel
  - parse_args_finds_unicode
  - unicode_count
  - unicode_encode_impl
  - unicode_expandtabs_impl
  - unicode_find
  - unicode_getitem
  - unicode_hash
  - unicode_index
  - unicode_isascii_impl
  - unicode_islower_impl
  - unicode_isupper_impl
  - unicode_istitle_impl
  - unicode_isspace_impl
  - unicode_isalpha_impl
  - unicode_isalnum_impl
  - unicode_isdecimal_impl
  - unicode_isdigit_impl
  - unicode_isnumeric_impl
  - PyUnicode_IsIdentifier
  - unicode_isidentifier_impl
  - unicode_isprintable_impl
  - unicode_join
  - unicode_length
  - unicode_ljust_impl
  - unicode_lower_impl
  - STRIPNAME
  - _PyUnicode_XStrip
  - PyUnicode_Substring
  - do_strip
  - do_argstrip
  - unicode_strip_impl
  - unicode_lstrip_impl
  - unicode_rstrip_impl
  - unicode_repeat
  - PyUnicode_Replace
  - unicode_replace_impl
  - unicode_repr
  - unicode_rfind
  - unicode_rindex
  - unicode_rjust_impl
  - PyUnicode_Split
  - unicode_split_impl
  - PyUnicode_Partition
  - PyUnicode_RPartition
  - unicode_partition
  - unicode_rpartition
  - PyUnicode_RSplit
  - unicode_rsplit_impl
  - unicode_splitlines_impl
  - unicode_str
  - unicode_swapcase_impl
  - unicode_maketrans_impl
  - unicode_translate
  - unicode_upper_impl
  - unicode_zfill_impl
  - unicode__decimal2ascii
  - unicode_startswith
  - unicode_endswith
  - _PyUnicodeWriter_Update
  - _PyUnicodeWriter_Init
  - _PyUnicodeWriter_PrepareInternal
  - _PyUnicodeWriter_PrepareKindInternal
  - _PyUnicodeWriter_WriteCharInline
  - _PyUnicodeWriter_WriteChar
  - _PyUnicodeWriter_WriteStr
  - _PyUnicodeWriter_WriteSubstring
  - _PyUnicodeWriter_WriteASCIIString
  - _PyUnicodeWriter_WriteLatin1String
  - _PyUnicodeWriter_Finish
  - _PyUnicodeWriter_Dealloc
  - unicode___format___impl
  - unicode_sizeof_impl
  - unicode_getnewargs
  - unicode_mod
  - unicode_subscript
  - unicode_format_getnextarg
  - formatfloat
  - _PyUnicode_FormatLong
  - mainformatlong
  - formatchar
  - unicode_format_arg_parse
  - FORMAT_READ
  - unicode_format_arg_format
  - unicode_format_arg_output
  - unicode_format_arg
  - PyUnicode_Format
  - unicode_new
  - unicode_subtype_new
  - _PyUnicode_UTF8_LENGTH
  - _PyUnicode_WSTR_LENGTH
  - _PyUnicode_Init
  - PyUnicode_ClearFreeList
  - PyUnicode_InternInPlace
  - PyUnicode_InternImmortal
  - PyUnicode_InternFromString
  - unicode_release_interned
  - unicodeiter_dealloc
  - unicodeiter_traverse
  - unicodeiter_next
  - unicodeiter_len
  - unicodeiter_reduce
  - unicodeiter_setstate
  - unicode_iter
  - Py_UNICODE_strlen
  - Py_UNICODE_strcpy
  - Py_UNICODE_strncpy
  - Py_UNICODE_strcat
  - Py_UNICODE_strcmp
  - Py_UNICODE_strncmp
  - Py_UNICODE_strchr
  - Py_UNICODE_strrchr
  - PyUnicode_AsUnicodeCopy
  - encode_wstr_utf8
  - config_get_codec_name
  - init_stdio_encoding
  - init_fs_codec
  - init_fs_encoding
  - _PyUnicode_InitEncodings
  - _PyUnicode_EnableLegacyWindowsFSEncoding
  - _PyUnicode_Fini
  - PyInit__string
  source_file: /src/Python-3.8.3/Objects/unicodeobject.c
  types:
    enum:
    - enumerators:
      - name: enc_SUCCESS
      - name: enc_FAILED
      - name: enc_EXCEPTION
      item_type: enum
      name: charmapencode_result
      pos:
        line_end: 8359
        line_start: 8357
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    preproc_defs:
    - item_type: preproc_def
      name: MAX_UNICODE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '0x10ffff'
    - item_type: preproc_def
      name: OVERALLOCATE_FACTOR
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OVERALLOCATE_FACTOR
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BLOOM_WIDTH
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '128'
    - item_type: preproc_def
      name: BLOOM_WIDTH
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '64'
    - item_type: preproc_def
      name: BLOOM_WIDTH
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '32'
    - item_type: preproc_def
      name: BLOOM_MASK
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: unsigned long
    - item_type: preproc_def
      name: MAX_LONG_LONG_CHARS
      pos:
        line_end: 2574
        line_start: 2573
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: (2 + (SIZEOF_LONG_LONG*53-1) / 22)
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 4810
        line_start: 4809
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: 0x8080808080808080UL
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 4812
        line_start: 4811
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: 0x80808080UL
    - item_type: preproc_def
      name: DECODING_CHUNK_SIZE
      pos:
        line_end: 7131
        line_start: 7130
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: (INT_MAX/4)
    - item_type: preproc_def
      name: WC_ERR_INVALID_CHARS
      pos:
        line_end: 7134
        line_start: 7133
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: LEFTSTRIP
      pos:
        line_end: 12292
        line_start: 12291
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '0'
    - item_type: preproc_def
      name: RIGHTSTRIP
      pos:
        line_end: 12293
        line_start: 12292
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BOTHSTRIP
      pos:
        line_end: 12294
        line_start: 12293
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
      type_or_value: '2'
    structs:
    - fields:
      - name: level1[32]
        type: "PyObject_HEAD\n    unsigned"
      - name: count2
        type: int
      - name: level23[1]
        type: unsigned char
      item_type: struct
      name: encoding_map
      pos:
        line_end: 8099
        line_start: 8094
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - fields:
      - name: '*args'
        type: PyObject
      - name: args_owned
        type: int
      - name: arglen
        type: Py_ssize_t
      - name: '*dict'
        type: PyObject
      - name: fmtkind
        type: enum PyUnicode_Kind
      - name: fmtcnt
        type: Py_ssize_t
      - name: '*fmtdata'
        type: void
      - name: '*fmtstr'
        type: PyObject
      - name: writer
        type: _PyUnicodeWriter
      item_type: struct
      name: unicode_formatter_t
      pos:
        line_end: 14079
        line_start: 14067
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - fields:
      - name: ch
        type: Py_UCS4
      - name: flags
        type: int
      - name: width
        type: Py_ssize_t
      - name: prec
        type: int
      - name: sign
        type: int
      item_type: struct
      name: unicode_format_arg_t
      pos:
        line_end: 14087
        line_start: 14081
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyObject
      item_type: struct
      name: unicodeiterobject
      pos:
        line_end: 15393
        line_start: 15389
        source_file: /src/Python-3.8.3/Objects/unicodeobject.c
    typedefs: []
    union: []
- function_names:
  - set_lookkey
  - set_add_entry
  - set_insert_clean
  - set_table_resize
  - set_contains_entry
  - set_discard_entry
  - set_add_key
  - set_contains_key
  - set_discard_key
  - set_empty_to_minsize
  - set_clear_internal
  - set_next
  - set_dealloc
  - set_repr
  - set_len
  - set_merge
  - set_pop
  - set_traverse
  - _shuffle_bits
  - frozenset_hash
  - setiter_dealloc
  - setiter_traverse
  - setiter_len
  - setiter_reduce
  - setiter_iternext
  - set_iter
  - set_update_internal
  - set_update
  - make_new_set
  - make_new_set_basetype
  - frozenset_new
  - set_new
  - set_swap_bodies
  - set_copy
  - frozenset_copy
  - set_clear
  - set_union
  - set_or
  - set_ior
  - set_intersection
  - set_intersection_multi
  - set_intersection_update
  - set_intersection_update_multi
  - set_and
  - set_iand
  - set_isdisjoint
  - set_difference_update_internal
  - set_difference_update
  - set_copy_and_difference
  - set_difference
  - set_difference_multi
  - set_sub
  - set_isub
  - set_symmetric_difference_update
  - set_symmetric_difference
  - set_xor
  - set_ixor
  - set_issubset
  - set_issuperset
  - set_richcompare
  - set_add
  - set_contains
  - set_direct_contains
  - set_remove
  - set_discard
  - set_reduce
  - set_sizeof
  - set_init
  - PySet_New
  - PyFrozenSet_New
  - PySet_Size
  - PySet_Clear
  - PySet_Contains
  - PySet_Discard
  - PySet_Add
  - PySet_ClearFreeList
  - PySet_Fini
  - _PySet_NextEntry
  - PySet_Pop
  - _PySet_Update
  - assertRaises
  - test_c_api
  - dummy_repr
  - dummy_dealloc
  source_file: /src/Python-3.8.3/Objects/setobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: dummy
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Objects/setobject.c
      type_or_value: (&_dummy_struct)
    - item_type: preproc_def
      name: LINEAR_PROBES
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Objects/setobject.c
      type_or_value: '9'
    - item_type: preproc_def
      name: PERTURB_SHIFT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Objects/setobject.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DISCARD_NOTFOUND
      pos:
        line_end: 393
        line_start: 392
        source_file: /src/Python-3.8.3/Objects/setobject.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DISCARD_FOUND
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/Python-3.8.3/Objects/setobject.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*si_set'
        type: PyObject_HEAD
      - name: si_used
        type: Py_ssize_t
      - name: si_pos
        type: Py_ssize_t
      - name: len
        type: Py_ssize_t
      item_type: struct
      name: setiterobject
      pos:
        line_end: 810
        line_start: 804
        source_file: /src/Python-3.8.3/Objects/setobject.c
    typedefs: []
    union: []
- function_names:
  - MCACHE_HASH
  - MCACHE_HASH_METHOD
  - MCACHE_CACHEABLE_NAME
  - find_signature
  - skip_signature
  - _PyType_CheckConsistency
  - CHECK
  - _PyType_DocWithoutSignature
  - _PyType_GetDocFromInternalDoc
  - _PyType_GetTextSignatureFromInternalDoc
  - PyType_ClearCache
  - _PyType_Fini
  - PyType_Modified
  - type_mro_modified
  - assign_version_tag
  - check_set_special_type_attr
  - _PyType_Name
  - type_name
  - type_qualname
  - type_set_name
  - type_set_qualname
  - type_module
  - type_set_module
  - type_abstractmethods
  - type_set_abstractmethods
  - type_get_bases
  - mro_hierarchy
  - type_set_bases
  - type_dict
  - type_get_doc
  - type_get_text_signature
  - type_set_doc
  - type___instancecheck___impl
  - type___subclasscheck___impl
  - type_repr
  - type_call
  - PyType_GenericAlloc
  - PyType_GenericNew
  - traverse_slots
  - subtype_traverse
  - clear_slots
  - subtype_clear
  - subtype_dealloc
  - type_is_subtype_base_chain
  - PyType_IsSubtype
  - _PyObject_LookupSpecial
  - lookup_maybe_method
  - lookup_method
  - call_unbound
  - call_unbound_noarg
  - call_method
  - call_maybe
  - tail_contains
  - class_name
  - check_duplicates
  - set_mro_error
  - pmerge
  - mro_implementation
  - type_mro_impl
  - mro_check
  - mro_invoke
  - mro_internal
  - best_base
  - extra_ivars
  - solid_base
  - get_builtin_base_with_dict
  - get_dict_descriptor
  - raise_dict_descr_error
  - subtype_dict
  - subtype_setdict
  - subtype_getweakref
  - valid_identifier
  - type_init
  - PyType_GetFlags
  - _PyType_CalculateMetaclass
  - type_new
  - PyType_FromSpecWithBases
  - PyType_FromSpec
  - PyType_GetSlot
  - find_name_in_mro
  - _PyType_Lookup
  - _PyType_LookupId
  - is_dunder_name
  - type_getattro
  - type_setattro
  - type_dealloc
  - type___subclasses___impl
  - type_prepare
  - merge_class_dict
  - type___dir___impl
  - type___sizeof___impl
  - type_traverse
  - type_clear
  - type_is_gc
  - excess_args
  - object_init
  - object_new
  - object_dealloc
  - object_repr
  - object_str
  - object_richcompare
  - object_get_class
  - compatible_with_tp_base
  - same_slots_added
  - compatible_for_assignment
  - object_set_class
  - import_copyreg
  - _PyType_GetSlotNames
  - _PyObject_GetState
  - _PyObject_GetNewArguments
  - _PyObject_GetItemsIter
  - reduce_newobj
  - _common_reduce
  - object___reduce___impl
  - object___reduce_ex___impl
  - object_subclasshook
  - object_init_subclass
  - object___format___impl
  - object___sizeof___impl
  - object___dir___impl
  - add_methods
  - add_members
  - add_getset
  - inherit_special
  - COPYVAL
  - overrides_hash
  - inherit_slots
  - SLOTDEFINED
  - COPYSLOT
  - COPYASYNC
  - COPYNUM
  - COPYSEQ
  - COPYMAP
  - COPYBUF
  - PyType_Ready
  - add_subclass
  - add_all_subclasses
  - remove_subclass
  - remove_all_subclasses
  - check_num_args
  - wrap_lenfunc
  - wrap_inquirypred
  - wrap_binaryfunc
  - wrap_binaryfunc_l
  - wrap_binaryfunc_r
  - wrap_ternaryfunc
  - wrap_ternaryfunc_r
  - wrap_unaryfunc
  - wrap_indexargfunc
  - getindex
  - wrap_sq_item
  - wrap_sq_setitem
  - wrap_sq_delitem
  - wrap_objobjproc
  - wrap_objobjargproc
  - wrap_delitem
  - hackcheck
  - wrap_setattr
  - wrap_delattr
  - wrap_hashfunc
  - wrap_call
  - wrap_del
  - wrap_richcmpfunc
  - RICHCMP_WRAPPER
  - wrap_next
  - wrap_descr_get
  - wrap_descr_set
  - wrap_descr_delete
  - wrap_init
  - tp_new_wrapper
  - add_tp_new_wrapper
  - SLOT0
  - SLOT1
  - method_is_overloaded
  - SLOT1BINFULL
  - SLOT1BIN
  - slot_sq_length
  - slot_sq_item
  - slot_sq_ass_item
  - slot_sq_contains
  - slot_nb_power
  - slot_nb_bool
  - slot_nb_index
  - slot_tp_call
  - slot_tp_getattro
  - call_attribute
  - slot_tp_getattr_hook
  - slot_tp_setattro
  - slot_tp_richcompare
  - slot_tp_iter
  - slot_tp_iternext
  - slot_tp_descr_get
  - slot_tp_descr_set
  - slot_tp_init
  - slot_tp_new
  - slot_tp_finalize
  - slot_am_await
  - slot_am_aiter
  - slot_am_anext
  - TPSLOT
  - FLSLOT
  - ETSLOT
  - AMSLOT
  - SQSLOT
  - MPSLOT
  - NBSLOT
  - UNSLOT
  - IBSLOT
  - BINSLOT
  - RBINSLOT
  - BINSLOTNOTINFIX
  - RBINSLOTNOTINFIX
  - slotptr
  - resolve_slotdups
  - update_one_slot
  - update_slots_callback
  - init_slotdefs
  - clear_slotdefs
  - update_slot
  - fixup_slot_dispatchers
  - update_all_slots
  - set_names
  - init_subclass
  - update_subclasses
  - recurse_down_subclasses
  - add_operators
  - super_dealloc
  - super_repr
  - super_getattro
  - supercheck
  - super_descr_get
  - super_init
  - super_traverse
  source_file: /src/Python-3.8.3/Objects/typeobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MCACHE_MAX_ATTR_SIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '100'
    - item_type: preproc_def
      name: MCACHE_SIZE_EXP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '12'
    - item_type: preproc_def
      name: MCACHE_STATS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SIGNATURE_END_MARKER
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '")\n--\n\n"'
    - item_type: preproc_def
      name: SIGNATURE_END_MARKER_LENGTH
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '6'
    - item_type: preproc_def
      name: slot_mp_length
      pos:
        line_end: 6287
        line_start: 6286
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: slot_sq_length
    - item_type: preproc_def
      name: MAX_EQUIV
      pos:
        line_end: 7162
        line_start: 7161
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type_or_value: '10'
    structs:
    - fields:
      - name: version
        type: unsigned int
      - name: '*name'
        type: PyObject
      - name: '*value'
        type: PyObject
      item_type: struct
      name: method_cache_entry
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    - fields:
      - name: '*type'
        type: PyObject_HEAD
      - name: '*obj'
        type: PyObject
      - name: '*obj_type'
        type: PyTypeObject
      item_type: struct
      name: superobject
      pos:
        line_end: 7605
        line_start: 7600
        source_file: /src/Python-3.8.3/Objects/typeobject.c
    typedefs:
    - item_type: typedef
      name: (*update_callback)(PyTypeObject *, void *)
      pos:
        line_end: 631
        line_start: 631
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type: int
    - item_type: typedef
      name: slotdef
      pos:
        line_end: 6882
        line_start: 6882
        source_file: /src/Python-3.8.3/Objects/typeobject.c
      type: wrapperbase
    union: []
- function_names:
  - show_track
  - _PyTuple_DebugMallocStats
  - PyTuple_New
  - PyTuple_Size
  - PyTuple_GetItem
  - PyTuple_SetItem
  - _PyTuple_MaybeUntrack
  - PyTuple_Pack
  - tupledealloc
  - tuplerepr
  - _PyHASH_XXROTATE
  - _PyHASH_XXROTATE
  - tuplehash
  - tuplelength
  - tuplecontains
  - tupleitem
  - _PyTuple_FromArray
  - tupleslice
  - PyTuple_GetSlice
  - tupleconcat
  - tuplerepeat
  - tuple_index_impl
  - tuple_count
  - tupletraverse
  - tuplerichcompare
  - tuple_new_impl
  - tuple_subtype_new
  - tuplesubscript
  - tuple___getnewargs___impl
  - _PyTuple_Resize
  - PyTuple_ClearFreeList
  - PyTuple_Fini
  - tupleiter_dealloc
  - tupleiter_traverse
  - tupleiter_next
  - tupleiter_len
  - tupleiter_reduce
  - tupleiter_setstate
  - tuple_iter
  source_file: /src/Python-3.8.3/Objects/tupleobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyTuple_MAXSAVESIZE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: '20  '
    - item_type: preproc_def
      name: PyTuple_MAXFREELIST
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: '2000  '
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_1
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)11400714785074694791ULL)
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_2
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)14029467366897019727ULL)
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_5
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)2870177450012600261ULL)
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_1
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)2654435761UL)
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_2
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)2246822519UL)
    - item_type: preproc_def
      name: _PyHASH_XXPRIME_5
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((Py_uhash_t)374761393UL)
    - item_type: preproc_def
      name: b
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
      type_or_value: ((PyTupleObject *)bb)
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*it_seq'
        type: PyTupleObject
      item_type: struct
      name: tupleiterobject
      pos:
        line_end: 975
        line_start: 971
        source_file: /src/Python-3.8.3/Objects/tupleobject.c
    typedefs: []
    union: []
- function_names:
  - _PyUnicode_ToNumeric
  - _PyUnicode_IsWhitespace
  - _PyUnicode_IsLinebreak
  source_file: /src/Python-3.8.3/Objects/unicodetype_db.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHIFT
      pos:
        line_end: 1752
        line_start: 1751
        source_file: /src/Python-3.8.3/Objects/unicodetype_db.h
      type_or_value: '7'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _odictnode_KEY
  - _odictnode_HASH
  - _odictnode_VALUE
  - _odictnode_PREV
  - _odictnode_NEXT
  - _odict_FIRST
  - _odict_LAST
  - _odict_EMPTY
  - _odict_FOREACH
  - _odict_get_index_raw
  - _odict_resize
  - _odict_FOREACH
  - _odict_get_index
  - _odict_find_node_hash
  - _odict_find_node
  - _odict_add_head
  - _odict_add_tail
  - _odict_add_new_node
  - _odictnode_DEALLOC
  - _odict_remove_node
  - _odict_clear_node
  - _odict_clear_nodes
  - _odict_keys_equal
  - odict_mp_ass_sub
  - OrderedDict_fromkeys_impl
  - odict_sizeof
  - odict_reduce
  - OrderedDict_setdefault_impl
  - odict_pop
  - _odict_popkey_hash
  - _odict_popkey
  - OrderedDict_popitem_impl
  - odict_clear
  - odict_copy
  - _odict_FOREACH
  - _odict_FOREACH
  - odict_reversed
  - OrderedDict_move_to_end_impl
  - odict_dealloc
  - odict_repr
  - _odict_FOREACH
  - odict_traverse
  - _odict_FOREACH
  - odict_tp_clear
  - odict_richcompare
  - odict_iter
  - odict_init
  - PyODict_New
  - _PyODict_SetItem_KnownHash
  - PyODict_SetItem
  - PyODict_DelItem
  - odictiter_dealloc
  - odictiter_traverse
  - odictiter_nextkey
  - odictiter_iternext
  - odictiter_reduce
  - odictiter_new
  - odictkeys_iter
  - odictkeys_reversed
  - odictkeys_new
  - odictitems_iter
  - odictitems_reversed
  - odictitems_new
  - odictvalues_iter
  - odictvalues_reversed
  - odictvalues_new
  - mutablemapping_add_pairs
  - mutablemapping_update
  source_file: /src/Python-3.8.3/Objects/odictobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: odict_update
      pos:
        line_end: 1164
        line_start: 1163
        source_file: /src/Python-3.8.3/Objects/odictobject.c
      type_or_value: mutablemapping_update
    - item_type: preproc_def
      name: _odict_ITER_REVERSED
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/Python-3.8.3/Objects/odictobject.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _odict_ITER_KEYS
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/Python-3.8.3/Objects/odictobject.c
      type_or_value: '2'
    - item_type: preproc_def
      name: _odict_ITER_VALUES
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/Python-3.8.3/Objects/odictobject.c
      type_or_value: '4'
    structs:
    - fields:
      - name: od_dict
        type: PyDictObject
      - name: '*od_first'
        type: _ODictNode
      - name: '*od_last'
        type: _ODictNode
      - name: '**od_fast_nodes'
        type: _ODictNode
      - name: od_fast_nodes_size
        type: Py_ssize_t
      - name: '*od_resize_sentinel'
        type: void
      - name: od_state
        type: size_t
      - name: '*od_inst_dict'
        type: PyObject
      - name: '*od_weakreflist'
        type: PyObject
      item_type: struct
      name: _odictobject
      pos:
        line_end: 498
        line_start: 484
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - fields:
      - name: '*key'
        type: PyObject
      - name: hash
        type: Py_hash_t
      - name: '*next'
        type: _ODictNode
      - name: '*prev'
        type: _ODictNode
      item_type: struct
      name: _odictnode
      pos:
        line_end: 510
        line_start: 505
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    - fields:
      - name: kind
        type: PyObject_HEAD
      - name: '*di_odict'
        type: PyODictObject
      - name: di_size
        type: Py_ssize_t
      - name: di_state
        type: size_t
      - name: '*di_current'
        type: PyObject
      - name: '*di_result'
        type: PyObject
      item_type: struct
      name: odictiterobject
      pos:
        line_end: 1651
        line_start: 1643
        source_file: /src/Python-3.8.3/Objects/odictobject.c
    typedefs:
    - item_type: typedef
      name: _ODictNode
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/Python-3.8.3/Objects/odictobject.c
      type: _odictnode
    union: []
- function_names:
  - _is_legal_capsule
  - is_legal_capsule
  - name_matches
  - PyCapsule_New
  - PyCapsule_IsValid
  - PyCapsule_GetPointer
  - PyCapsule_GetName
  - PyCapsule_GetDestructor
  - PyCapsule_GetContext
  - PyCapsule_SetPointer
  - PyCapsule_SetName
  - PyCapsule_SetDestructor
  - PyCapsule_SetContext
  - PyCapsule_Import
  - capsule_dealloc
  - capsule_repr
  source_file: /src/Python-3.8.3/Objects/capsule.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*pointer'
        type: PyObject_HEAD
      - name: '*name'
        type: char
      - name: '*context'
        type: void
      - name: destructor
        type: PyCapsule_Destructor
      item_type: struct
      name: PyCapsule
      pos:
        line_end: 11
        line_start: 5
        source_file: /src/Python-3.8.3/Objects/capsule.c
    typedefs: []
    union: []
- function_names:
  - enum_new_impl
  - enum_dealloc
  - enum_traverse
  - enum_next_long
  - enum_next
  - enum_reduce
  - reversed_new_impl
  - reversed_dealloc
  - reversed_traverse
  - reversed_next
  - reversed_len
  - reversed_reduce
  - reversed_setstate
  source_file: /src/Python-3.8.3/Objects/enumobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '* en_sit'
        type: PyObject
      - name: '* en_result'
        type: PyObject
      - name: '* en_longindex'
        type: PyObject
      item_type: struct
      name: enumobject
      pos:
        line_end: 18
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/enumobject.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '* seq'
        type: PyObject
      item_type: struct
      name: reversedobject
      pos:
        line_end: 256
        line_start: 252
        source_file: /src/Python-3.8.3/Objects/enumobject.c
    typedefs: []
    union: []
- function_names:
  - _Py_c_sum
  - _Py_c_diff
  - _Py_c_neg
  - _Py_c_prod
  - _Py_c_quot
  - _Py_c_pow
  - c_powu
  - c_powi
  - _Py_c_abs
  - complex_subtype_from_c_complex
  - PyComplex_FromCComplex
  - complex_subtype_from_doubles
  - PyComplex_FromDoubles
  - PyComplex_RealAsDouble
  - PyComplex_ImagAsDouble
  - try_complex_special_method
  - PyComplex_AsCComplex
  - complex_repr
  - complex_hash
  - TO_COMPLEX
  - to_complex
  - complex_add
  - complex_sub
  - complex_mul
  - complex_div
  - complex_remainder
  - complex_divmod
  - complex_pow
  - complex_int_div
  - complex_neg
  - complex_pos
  - complex_abs
  - complex_bool
  - complex_richcompare
  - complex_int
  - complex_float
  - complex_conjugate
  - complex_getnewargs
  - complex__format__
  - complex_from_string_inner
  - complex_subtype_from_string
  - complex_new_impl
  source_file: /src/Python-3.8.3/Objects/complexobject.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_name_chars
  - intern_strings
  - intern_string_constants
  - PyCode_NewWithPosOnlyArgs
  - PyCode_New
  - _PyCode_InitOpcache
  - PyCode_NewEmpty
  - 'OFF'
  - validate_and_copy_tuple
  - code_new
  - code_dealloc
  - code_sizeof
  - code_replace_impl
  - CHECK_INT_ARG
  - code_repr
  - _PyCode_ConstantKey
  - code_richcompare
  - code_hash
  - PyCode_Addr2Line
  - _PyCode_CheckLineNumber
  - _PyCode_GetExtra
  - _PyCode_SetExtra
  source_file: /src/Python-3.8.3/Objects/codeobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ce_size
        type: Py_ssize_t
      - name: '*ce_extras[1]'
        type: void
      item_type: struct
      name: _PyCodeObjectExtra
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/codeobject.c
    typedefs: []
    union: []
- function_names:
  - null_error
  - _Py_CheckFunctionResult
  - _PyObject_FastCallDict
  - _PyObject_MakeTpCall
  - PyVectorcall_Call
  - PyObject_Call
  - _Py_HOT_FUNCTION::function_code_fastcall
  - _PyFunction_FastCallDict
  - _PyFunction_Vectorcall
  - _PyMethodDef_RawFastCallDict
  - _PyCFunction_FastCallDict
  - _PyMethodDef_RawFastCallKeywords
  - cfunction_call_varargs
  - PyCFunction_Call
  - PyEval_CallObjectWithKeywords
  - PyObject_CallObject
  - _PyObject_FastCall_Prepend
  - _PyObject_Call_Prepend
  - _PyObject_CallFunctionVa
  - PyObject_CallFunction
  - PyEval_CallFunction
  - _PyObject_CallFunction_SizeT
  - callmethod
  - PyObject_CallMethod
  - PyEval_CallMethod
  - _PyObject_CallMethodId
  - _PyObject_CallMethod_SizeT
  - _PyObject_CallMethodId_SizeT
  - object_vacall
  - PyObject_CallMethodObjArgs
  - _PyObject_CallMethodIdObjArgs
  - PyObject_CallFunctionObjArgs
  - _PyStack_AsDict
  - _PyStack_UnpackDict
  source_file: /src/Python-3.8.3/Objects/call.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_MBUF_RELEASED
  - mbuf_alloc
  - _PyManagedBuffer_FromObject
  - mbuf_release
  - mbuf_dealloc
  - mbuf_traverse
  - mbuf_clear
  - BASE_INACCESSIBLE
  - CHECK_RELEASED
  - CHECK_RELEASED_INT
  - CHECK_LIST_OR_TUPLE
  - VIEW_ADDR
  - HAVE_PTR
  - ADJUST_PTR
  - MV_C_CONTIGUOUS
  - MV_F_CONTIGUOUS
  - MV_ANY_CONTIGUOUS
  - MV_CONTIGUOUS_NDIM1
  - REQ_INDIRECT
  - REQ_C_CONTIGUOUS
  - REQ_F_CONTIGUOUS
  - REQ_ANY_CONTIGUOUS
  - REQ_STRIDES
  - REQ_SHAPE
  - REQ_WRITABLE
  - REQ_FORMAT
  - HAVE_SUBOFFSETS_IN_LAST_DIM
  - last_dim_is_contiguous
  - equiv_format
  - equiv_shape
  - equiv_structure
  - copy_base
  - copy_rec
  - copy_single
  - copy_buffer
  - init_strides_from_shape
  - init_fortran_strides_from_shape
  - buffer_to_contiguous
  - init_shared_values
  - init_shape_strides
  - init_suboffsets
  - init_len
  - init_flags
  - memory_alloc
  - mbuf_add_view
  - mbuf_add_incomplete_view
  - PyMemoryView_FromMemory
  - PyMemoryView_FromBuffer
  - PyMemoryView_FromObject
  - mbuf_copy_format
  - memory_from_contiguous_copy
  - PyMemoryView_GetContiguous
  - memory_new
  - PyBuffer_ToContiguous
  - _memory_release
  - memory_release
  - memory_dealloc
  - memory_traverse
  - memory_clear
  - memory_enter
  - memory_exit
  - IS_BYTE_FORMAT
  - get_native_fmtchar
  - get_native_fmtstr
  - RETURN
  - cast_to_1D
  - copy_shape
  - cast_to_ND
  - zero_in_shape
  - memory_cast
  - memory_toreadonly
  - memory_getbuf
  - memory_releasebuf
  - type_error_int
  - value_error_int
  - fix_error_int
  - pylong_as_ld
  - pylong_as_lu
  - pylong_as_lld
  - pylong_as_llu
  - pylong_as_zd
  - pylong_as_zu
  - UNPACK_SINGLE
  - unpack_single
  - PACK_SINGLE
  - pack_single
  - unpacker_new
  - unpacker_free
  - struct_get_unpacker
  - struct_unpack_single
  - adjust_fmt
  - tolist_base
  - tolist_rec
  - memory_tolist
  - memory_tobytes
  - memoryview_hex_impl
  - memory_repr
  - lookup_dimension
  - ptr_from_index
  - ptr_from_tuple
  - memory_item
  - memory_item_multi
  - init_slice
  - is_multislice
  - is_multiindex
  - memory_subscript
  - memory_ass_sub
  - memory_length
  - fix_struct_error_int
  - struct_unpack_cmp
  - CMP_SINGLE
  - unpack_cmp
  - cmp_base
  - cmp_rec
  - memory_richcompare
  - memory_hash
  - _IntTupleFromSsizet
  - memory_obj_get
  - memory_nbytes_get
  - memory_format_get
  - memory_itemsize_get
  - memory_shape_get
  - memory_strides_get
  - memory_suboffsets_get
  - memory_readonly_get
  - memory_ndim_get
  - memory_c_contiguous
  - memory_f_contiguous
  - memory_contiguous
  source_file: /src/Python-3.8.3/Objects/memoryobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MV_COMPARE_EX
      pos:
        line_end: 2626
        line_start: 2625
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
      type_or_value: '-1       '
    - item_type: preproc_def
      name: MV_COMPARE_NOT_IMPL
      pos:
        line_end: 2627
        line_start: 2626
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
      type_or_value: '-2 '
    structs:
    - fields:
      - name: view
        type: Py_buffer
      - name: array[1]
        type: Py_ssize_t
      item_type: struct
      name: Py_buffer_full
      pos:
        line_end: 986
        line_start: 983
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    - fields:
      - name: '*unpack_from'
        type: PyObject
      - name: '*mview'
        type: PyObject
      - name: '*item'
        type: char
      - name: itemsize
        type: Py_ssize_t
      item_type: struct
      name: unpacker
      pos:
        line_end: 1916
        line_start: 1911
        source_file: /src/Python-3.8.3/Objects/memoryobject.c
    typedefs: []
    union: []
- function_names:
  - MEDIUM_VALUE
  - get_small_int
  - CHECK_SMALL_INT
  - maybe_small_long
  - maybe_small_long
  - _PyLong_Negate
  - SIGCHECK
  - long_normalize
  - _PyLong_FromNbInt
  - _PyLong_FromNbIndexOrNbInt
  - _PyLong_New
  - _PyLong_Copy
  - PyLong_FromLong
  - PyLong_FromUnsignedLong
  - PyLong_FromDouble
  - PyLong_AsLongAndOverflow
  - PyLong_AsLong
  - _PyLong_AsInt
  - PyLong_AsSsize_t
  - PyLong_AsUnsignedLong
  - PyLong_AsSize_t
  - _PyLong_AsUnsignedLongMask
  - PyLong_AsUnsignedLongMask
  - _PyLong_Sign
  - bits_in_digit
  - _PyLong_NumBits
  - _PyLong_FromByteArray
  - _PyLong_AsByteArray
  - PyLong_FromVoidPtr
  - PyLong_AsVoidPtr
  - PyLong_FromLongLong
  - PyLong_FromUnsignedLongLong
  - PyLong_FromSsize_t
  - PyLong_FromSize_t
  - PyLong_AsLongLong
  - PyLong_AsUnsignedLongLong
  - _PyLong_AsUnsignedLongLongMask
  - PyLong_AsUnsignedLongLongMask
  - PyLong_AsLongLongAndOverflow
  - _PyLong_UnsignedShort_Converter
  - _PyLong_UnsignedInt_Converter
  - _PyLong_UnsignedLong_Converter
  - _PyLong_UnsignedLongLong_Converter
  - _PyLong_Size_t_Converter
  - CHECK_BINOP
  - v_iadd
  - v_isub
  - v_lshift
  - v_rshift
  - inplace_divrem1
  - divrem1
  - long_to_decimal_string_internal
  - WRITE_DIGITS
  - WRITE_UNICODE_DIGITS
  - long_to_decimal_string
  - long_format_binary
  - WRITE_DIGITS
  - WRITE_UNICODE_DIGITS
  - _PyLong_Format
  - _PyLong_FormatWriter
  - _PyLong_FormatBytesWriter
  - long_from_binary_base
  - PyLong_FromString
  - Py_SIZE
  - _PyLong_FromBytes
  - PyLong_FromUnicode
  - PyLong_FromUnicodeObject
  - long_divrem
  - x_divrem
  - _PyLong_Frexp
  - PyLong_AsDouble
  - long_compare
  - long_richcompare
  - long_hash
  - x_add
  - x_sub
  - long_add
  - long_sub
  - x_mul
  - kmul_split
  - k_mul
  - k_lopsided_mul
  - long_mul
  - fast_mod
  - fast_floor_div
  - l_divmod
  - long_div
  - long_true_divide
  - long_mod
  - long_divmod
  - long_invmod
  - long_pow
  - REDUCE
  - MULT
  - long_invert
  - long_neg
  - long_abs
  - long_bool
  - divmod_shift
  - long_rshift1
  - long_rshift
  - _PyLong_Rshift
  - long_lshift1
  - long_lshift
  - _PyLong_Lshift
  - v_complement
  - long_bitwise
  - long_and
  - long_xor
  - long_or
  - long_long
  - _PyLong_GCD
  - long_float
  - long_new_impl
  - long_subtype_new
  - int___getnewargs___impl
  - long_get0
  - long_get1
  - int___format___impl
  - _PyLong_DivmodNear
  - long_round
  - int___sizeof___impl
  - int_bit_length_impl
  - int_as_integer_ratio_impl
  - int_to_bytes_impl
  - int_from_bytes_impl
  - long_long_meth
  - PyLong_GetInfo
  - _PyLong_Init
  - PyLong_Fini
  source_file: /src/Python-3.8.3/Objects/longobject.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NSMALLPOSINTS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: '257'
    - item_type: preproc_def
      name: NSMALLNEGINTS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: '5'
    - item_type: preproc_def
      name: KARATSUBA_CUTOFF
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: '70'
    - item_type: preproc_def
      name: KARATSUBA_SQUARE_CUTOFF
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (2 * KARATSUBA_CUTOFF)
    - item_type: preproc_def
      name: FIVEARY_CUTOFF
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_LONG_DIGITS
      pos:
        line_end: 259
        line_start: 257
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: ((PY_SSIZE_T_MAX - offsetof(PyLongObject, ob_digit))/sizeof(digit))
    - item_type: preproc_def
      name: PY_ABS_LONG_MIN
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (0-(unsigned long)LONG_MIN)
    - item_type: preproc_def
      name: PY_ABS_SSIZE_T_MIN
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (0-(size_t)PY_SSIZE_T_MIN)
    - item_type: preproc_def
      name: PY_ABS_LLONG_MIN
      pos:
        line_end: 1136
        line_start: 1135
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (0-(unsigned long long)PY_LLONG_MIN)
    - item_type: preproc_def
      name: EXP2_DBL_MANT_DIG
      pos:
        line_end: 2906
        line_start: 2905
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: '9007199254740992.0'
    - item_type: preproc_def
      name: EXP2_DBL_MANT_DIG
      pos:
        line_end: 2908
        line_start: 2907
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (ldexp(1.0, DBL_MANT_DIG))
    - item_type: preproc_def
      name: MANT_DIG_DIGITS
      pos:
        line_end: 3877
        line_start: 3876
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (DBL_MANT_DIG / PyLong_SHIFT)
    - item_type: preproc_def
      name: MANT_DIG_BITS
      pos:
        line_end: 3878
        line_start: 3877
        source_file: /src/Python-3.8.3/Objects/longobject.c
      type_or_value: (DBL_MANT_DIG % PyLong_SHIFT)
    structs: []
    typedefs: []
    union: []
- function_names:
  - namespace_new
  - namespace_init
  - namespace_dealloc
  - namespace_repr
  - namespace_traverse
  - namespace_clear
  - namespace_richcompare
  - namespace_reduce
  - _PyNamespace_New
  source_file: /src/Python-3.8.3/Objects/namespaceobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ns_dict'
        type: PyObject_HEAD
      item_type: struct
      name: _PyNamespaceObject
      pos:
        line_end: 9
        line_start: 6
        source_file: /src/Python-3.8.3/Objects/namespaceobject.c
    typedefs: []
    union: []
- function_names:
  - PyFunction_NewWithQualName
  - PyFunction_New
  - PyFunction_GetCode
  - PyFunction_GetGlobals
  - PyFunction_GetModule
  - PyFunction_GetDefaults
  - PyFunction_SetDefaults
  - PyFunction_GetKwDefaults
  - PyFunction_SetKwDefaults
  - PyFunction_GetClosure
  - PyFunction_SetClosure
  - PyFunction_GetAnnotations
  - PyFunction_SetAnnotations
  - 'OFF'
  - func_get_code
  - func_set_code
  - func_get_name
  - func_set_name
  - func_get_qualname
  - func_set_qualname
  - func_get_defaults
  - func_set_defaults
  - func_get_kwdefaults
  - func_set_kwdefaults
  - func_get_annotations
  - func_set_annotations
  - func_new_impl
  - func_clear
  - func_dealloc
  - func_repr
  - func_traverse
  - function_call
  - func_descr_get
  - cm_dealloc
  - cm_traverse
  - cm_clear
  - cm_descr_get
  - cm_init
  - cm_get___isabstractmethod__
  - PyClassMethod_New
  - sm_dealloc
  - sm_traverse
  - sm_clear
  - sm_descr_get
  - sm_init
  - sm_get___isabstractmethod__
  - PyStaticMethod_New
  source_file: /src/Python-3.8.3/Objects/funcobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cm_callable'
        type: PyObject_HEAD
      - name: '*cm_dict'
        type: PyObject
      item_type: struct
      name: classmethod
      pos:
        line_end: 714
        line_start: 710
        source_file: /src/Python-3.8.3/Objects/funcobject.c
    - fields:
      - name: '*sm_callable'
        type: PyObject_HEAD
      - name: '*sm_dict'
        type: PyObject
      item_type: struct
      name: staticmethod
      pos:
        line_end: 898
        line_start: 894
        source_file: /src/Python-3.8.3/Objects/funcobject.c
    typedefs: []
    union: []
- function_names:
  - bad_traverse_test
  - PyModuleDef_Init
  - module_init_dict
  - PyModule_NewObject
  - PyModule_New
  - check_api_version
  - _add_methods_to_object
  - PyModule_Create2
  - _PyModule_CreateInitialized
  - PyModule_FromDefAndSpec2
  - PyModule_ExecDef
  - PyModule_AddFunctions
  - PyModule_SetDocString
  - PyModule_GetDict
  - PyModule_GetNameObject
  - PyModule_GetName
  - PyModule_GetFilenameObject
  - PyModule_GetFilename
  - PyModule_GetDef
  - PyModule_GetState
  - _PyModule_Clear
  - _PyModule_ClearDict
  - module___init___impl
  - module_dealloc
  - module_repr
  - _PyModuleSpec_IsInitializing
  - module_getattro
  - module_traverse
  - module_clear
  - module_dir
  source_file: /src/Python-3.8.3/Objects/moduleobject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*md_dict'
        type: PyObject_HEAD
      - name: '*md_def'
        type: struct PyModuleDef
      - name: '*md_state'
        type: void
      - name: '*md_weaklist'
        type: PyObject
      - name: '*md_name'
        type: PyObject
      item_type: struct
      name: PyModuleObject
      pos:
        line_end: 16
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/moduleobject.c
    typedefs: []
    union: []
- function_names:
  - GroupGenerator_init
  - GroupGenerator_next
  - InsertThousandsGrouping_fill
  source_file: /src/Python-3.8.3/Objects/stringlib/localeutil.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*grouping'
        type: char
      - name: previous
        type: char
      - name: i
        type: Py_ssize_t
      item_type: struct
      name: GroupGenerator
      pos:
        line_end: 6
        line_start: 2
        source_file: /src/Python-3.8.3/Objects/stringlib/localeutil.h
    typedefs: []
    union: []
- function_names:
  - unicode_eq
  source_file: /src/Python-3.8.3/Objects/stringlib/eq.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_CONTINUATION_BYTE
  - STRINGLIB
  - if
  - SWAB
  - STRINGLIB
  - STRINGLIB
  - SWAB2
  - SWAB2
  - SWAB4
  - SWAB4
  - SWAB4
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: 0x8080808080808080UL
    - item_type: preproc_def
      name: ASCII_CHAR_MASK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: 0x80808080UL
    - item_type: preproc_def
      name: UCS2_REPEAT_MASK
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: 0x0001000100010001ul
    - item_type: preproc_def
      name: UCS2_REPEAT_MASK
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: 0x00010001ul
    - item_type: preproc_def
      name: FAST_CHAR_MASK
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: (UCS2_REPEAT_MASK * (0xFFFFu & ~STRINGLIB_MAX_CHAR))
    - item_type: preproc_def
      name: FAST_CHAR_MASK
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: (UCS2_REPEAT_MASK * 0x8000u)
    - item_type: preproc_def
      name: STRIPPED_MASK
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/Python-3.8.3/Objects/stringlib/codecs.h
      type_or_value: (UCS2_REPEAT_MASK * 0x00FFu)
    structs: []
    typedefs: []
    union: []
- function_names:
  - AutoNumber_Init
  - SubString_init
  - SubString_new_object
  - SubString_new_object_or_empty
  - autonumber_state_error
  - get_integer
  - getattr
  - getitem_sequence
  - getitem_idx
  - getitem_str
  - FieldNameIterator_init
  - _FieldNameIterator_attr
  - _FieldNameIterator_item
  - FieldNameIterator_next
  - field_name_split
  - get_field_object
  - render_field
  - parse_field
  - MarkupIterator_init
  - MarkupIterator_next
  - do_conversion
  - output_markup
  - do_markup
  - build_string
  - do_string_format
  - do_string_format_map
  - formatteriter_dealloc
  - formatteriter_next
  - formatter_parser
  - fieldnameiter_dealloc
  - fieldnameiter_next
  - formatter_field_name_split
  source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*str'
        type: PyObject
      - name: start
        type: Py_ssize_t
      item_type: struct
      name: SubString
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    - fields:
      - name: an_state
        type: AutoNumberState
      - name: an_field_number
        type: int
      item_type: struct
      name: AutoNumber
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    - fields:
      - name: str
        type: SubString
      - name: index
        type: Py_ssize_t
      item_type: struct
      name: FieldNameIterator
      pos:
        line_end: 196
        line_start: 188
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    - fields:
      - name: str
        type: SubString
      item_type: struct
      name: MarkupIterator
      pos:
        line_end: 659
        line_start: 657
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    - fields:
      - name: '*str'
        type: PyObject_HEAD
      - name: it_markup
        type: MarkupIterator
      item_type: struct
      name: formatteriterobject
      pos:
        line_end: 979
        line_start: 975
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    - fields:
      - name: '*str'
        type: PyObject_HEAD
      - name: it_field
        type: FieldNameIterator
      item_type: struct
      name: fieldnameiterobject
      pos:
        line_end: 1143
        line_start: 1139
        source_file: /src/Python-3.8.3/Objects/stringlib/unicode_format.h
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  - STRINGLIB_NEW
  source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: asciilib_fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyUnicodeObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STRINGLIB_MAX_CHAR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: 0x7Fu
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: Py_UCS1
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: '"unicode"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: unicode_empty
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: Py_UNICODE_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_ISLINEBREAK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: BLOOM_LINEBREAK
    - item_type: preproc_def
      name: STRINGLIB_ISDECIMAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: Py_UNICODE_ISDECIMAL
    - item_type: preproc_def
      name: STRINGLIB_TODECIMAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: Py_UNICODE_TODECIMAL
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyUnicode_1BYTE_DATA
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyUnicode_GET_LENGTH
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyUnicode_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyUnicode_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: PyObject_ASCII
    - item_type: preproc_def
      name: _Py_InsertThousandsGrouping
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/stringlib/asciilib.h
      type_or_value: _PyUnicode_ascii_InsertThousandsGrouping
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  - STRINGLIB_ISLINEBREAK
  - STRINGLIB_ISDECIMAL
  - STRINGLIB_TODECIMAL
  source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytesObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: char
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: '"string"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: '"S"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: nullstring
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: Py_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytes_AS_STRING
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytes_GET_SIZE
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytes_FromStringAndSize
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytes_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyBytes_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Objects/stringlib/stringdefs.h
      type_or_value: PyObject_Repr
    structs: []
    typedefs: []
    union: []
- function_names:
  - return_self
  - stringlib_expandtabs_impl
  - pad
  - stringlib_ljust_impl
  - stringlib_rjust_impl
  - stringlib_center_impl
  - stringlib_zfill_impl
  - findchar
  - countchar
  - stringlib_replace_interleave
  - stringlib_replace_delete_single_character
  - stringlib_replace_delete_substring
  - stringlib_replace_single_character_in_place
  - stringlib_replace_substring_in_place
  - stringlib_replace_single_character
  - stringlib_replace_substring
  - stringlib_replace
  source_file: /src/Python-3.8.3/Objects/stringlib/transmogrify.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PREALLOC_SIZE
  - SPLIT_APPEND
  - SPLIT_ADD
  - FIX_PREALLOC_SIZE
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/split.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PREALLOC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/split.h
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/partition.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicodeObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: Py_UNICODE_SIZE
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: Py_UNICODE
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: '"unicode"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: unicode_empty
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: Py_UNICODE_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_ISLINEBREAK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: BLOOM_LINEBREAK
    - item_type: preproc_def
      name: STRINGLIB_ISDECIMAL
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: Py_UNICODE_ISDECIMAL
    - item_type: preproc_def
      name: STRINGLIB_TODECIMAL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: Py_UNICODE_TODECIMAL
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicode_AS_UNICODE
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicode_GET_SIZE
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicode_FromUnicode
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicode_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyUnicode_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: PyObject_ASCII
    - item_type: preproc_def
      name: STRINGLIB_WANT_CONTAINS_OBJ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Objects/stringlib/unicodedefs.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB_BLOOM_ADD
  - STRINGLIB_BLOOM
  - STRINGLIB
  - STRINGLIB
  - FASTSEARCH
  source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FAST_COUNT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FAST_SEARCH
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FAST_RSEARCH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STRINGLIB_BLOOM_WIDTH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '128'
    - item_type: preproc_def
      name: STRINGLIB_BLOOM_WIDTH
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '64'
    - item_type: preproc_def
      name: STRINGLIB_BLOOM_WIDTH
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MEMCHR_CUT_OFF
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '15'
    - item_type: preproc_def
      name: MEMCHR_CUT_OFF
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Objects/stringlib/fastsearch.h
      type_or_value: '40'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/join.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NB_STATIC_BUFFERS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/join.h
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - stringlib_isspace
  - stringlib_isalpha
  - stringlib_isalnum
  - stringlib_isascii
  - stringlib_isdigit
  - stringlib_islower
  - stringlib_isupper
  - stringlib_istitle
  - stringlib_lower
  - stringlib_upper
  - stringlib_title
  - stringlib_capitalize
  - stringlib_swapcase
  source_file: /src/Python-3.8.3/Objects/stringlib/ctype.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: ucs1lib_fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyUnicodeObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STRINGLIB_MAX_CHAR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: 0xFFu
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: Py_UCS1
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: '"unicode"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: unicode_empty
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: Py_UNICODE_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_ISLINEBREAK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: BLOOM_LINEBREAK
    - item_type: preproc_def
      name: STRINGLIB_ISDECIMAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: Py_UNICODE_ISDECIMAL
    - item_type: preproc_def
      name: STRINGLIB_TODECIMAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: Py_UNICODE_TODECIMAL
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyUnicode_1BYTE_DATA
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyUnicode_GET_LENGTH
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: _PyUnicode_FromUCS1
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyUnicode_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyUnicode_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: PyObject_ASCII
    - item_type: preproc_def
      name: _Py_InsertThousandsGrouping
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs1lib.h
      type_or_value: _PyUnicode_ucs1_InsertThousandsGrouping
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UCS1_ASCII_CHAR_MASK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: 0x8080808080808080UL
    - item_type: preproc_def
      name: UCS1_ASCII_CHAR_MASK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: 0x80808080UL
    - item_type: preproc_def
      name: MASK_ASCII
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0xFFFFFF80'
    - item_type: preproc_def
      name: MASK_UCS1
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0xFFFFFF00'
    - item_type: preproc_def
      name: MASK_UCS2
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0xFFFF0000'
    - item_type: preproc_def
      name: MAX_CHAR_ASCII
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0x7f'
    - item_type: preproc_def
      name: MAX_CHAR_UCS1
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: MAX_CHAR_UCS2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0xffff'
    - item_type: preproc_def
      name: MAX_CHAR_UCS4
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Objects/stringlib/find_max_char.h
      type_or_value: '0x10ffff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/find.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FORMAT_BUFFER_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Objects/stringlib/find.h
      type_or_value: '50'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: ucs4lib_fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyUnicodeObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: '4'
    - item_type: preproc_def
      name: STRINGLIB_MAX_CHAR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: 0x10FFFFu
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: Py_UCS4
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: '"unicode"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: unicode_empty
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: Py_UNICODE_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_ISLINEBREAK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: BLOOM_LINEBREAK
    - item_type: preproc_def
      name: STRINGLIB_ISDECIMAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: Py_UNICODE_ISDECIMAL
    - item_type: preproc_def
      name: STRINGLIB_TODECIMAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: Py_UNICODE_TODECIMAL
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyUnicode_4BYTE_DATA
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyUnicode_GET_LENGTH
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: _PyUnicode_FromUCS4
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyUnicode_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyUnicode_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: PyObject_ASCII
    - item_type: preproc_def
      name: _Py_InsertThousandsGrouping
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs4lib.h
      type_or_value: _PyUnicode_ucs4_InsertThousandsGrouping
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/count.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Objects/stringlib/undef.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/replace.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STRINGLIB
  source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_IS_UNICODE
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FASTSEARCH
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: ucs2lib_fastsearch
    - item_type: preproc_def
      name: STRINGLIB_OBJECT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyUnicodeObject
    - item_type: preproc_def
      name: STRINGLIB_SIZEOF_CHAR
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STRINGLIB_MAX_CHAR
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: 0xFFFFu
    - item_type: preproc_def
      name: STRINGLIB_CHAR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: Py_UCS2
    - item_type: preproc_def
      name: STRINGLIB_TYPE_NAME
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: '"unicode"'
    - item_type: preproc_def
      name: STRINGLIB_PARSE_CODE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: '"U"'
    - item_type: preproc_def
      name: STRINGLIB_EMPTY
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: unicode_empty
    - item_type: preproc_def
      name: STRINGLIB_ISSPACE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: Py_UNICODE_ISSPACE
    - item_type: preproc_def
      name: STRINGLIB_ISLINEBREAK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: BLOOM_LINEBREAK
    - item_type: preproc_def
      name: STRINGLIB_ISDECIMAL
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: Py_UNICODE_ISDECIMAL
    - item_type: preproc_def
      name: STRINGLIB_TODECIMAL
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: Py_UNICODE_TODECIMAL
    - item_type: preproc_def
      name: STRINGLIB_STR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyUnicode_2BYTE_DATA
    - item_type: preproc_def
      name: STRINGLIB_LEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyUnicode_GET_LENGTH
    - item_type: preproc_def
      name: STRINGLIB_NEW
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: _PyUnicode_FromUCS2
    - item_type: preproc_def
      name: STRINGLIB_CHECK
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyUnicode_Check
    - item_type: preproc_def
      name: STRINGLIB_CHECK_EXACT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyUnicode_CheckExact
    - item_type: preproc_def
      name: STRINGLIB_TOSTR
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyObject_Str
    - item_type: preproc_def
      name: STRINGLIB_TOASCII
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: PyObject_ASCII
    - item_type: preproc_def
      name: _Py_InsertThousandsGrouping
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/stringlib/ucs2lib.h
      type_or_value: _PyUnicode_ucs2_InsertThousandsGrouping
    structs: []
    typedefs: []
    union: []
- function_names:
  - stringlib_expandtabs
  - stringlib_ljust
  - stringlib_rjust
  - stringlib_center
  - stringlib_zfill
  source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STRINGLIB_EXPANDTABS_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
      type_or_value: '{"expandtabs", (PyCFunction)(void(*)(void))stringlib_expandtabs,
        METH_FASTCALL|METH_KEYWORDS, stringlib_expandtabs__doc__},'
    - item_type: preproc_def
      name: STRINGLIB_LJUST_METHODDEF
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
      type_or_value: '{"ljust", (PyCFunction)(void(*)(void))stringlib_ljust, METH_FASTCALL,
        stringlib_ljust__doc__},'
    - item_type: preproc_def
      name: STRINGLIB_RJUST_METHODDEF
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
      type_or_value: '{"rjust", (PyCFunction)(void(*)(void))stringlib_rjust, METH_FASTCALL,
        stringlib_rjust__doc__},'
    - item_type: preproc_def
      name: STRINGLIB_CENTER_METHODDEF
      pos:
        line_end: 183
        line_start: 181
        source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
      type_or_value: '{"center", (PyCFunction)(void(*)(void))stringlib_center, METH_FASTCALL,
        stringlib_center__doc__},'
    - item_type: preproc_def
      name: STRINGLIB_ZFILL_METHODDEF
      pos:
        line_end: 244
        line_start: 242
        source_file: /src/Python-3.8.3/Objects/stringlib/clinic/transmogrify.h.h
      type_or_value: '{"zfill", (PyCFunction)stringlib_zfill, METH_O, stringlib_zfill__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - code_replace
  source_file: /src/Python-3.8.3/Objects/clinic/codeobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CODE_REPLACE_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/Objects/clinic/codeobject.c.h
      type_or_value: '{"replace", (PyCFunction)(void(*)(void))code_replace, METH_FASTCALL|METH_KEYWORDS,
        code_replace__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - structseq_new
  source_file: /src/Python-3.8.3/Objects/clinic/structseq.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - type___instancecheck__
  - type___subclasscheck__
  - type_mro
  - type___subclasses__
  - type___dir__
  - type___sizeof__
  - object___reduce__
  - object___reduce_ex__
  - object___format__
  - object___sizeof__
  - object___dir__
  source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE___INSTANCECHECK___METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__instancecheck__", (PyCFunction)type___instancecheck__, METH_O,
        type___instancecheck____doc__},'
    - item_type: preproc_def
      name: TYPE___SUBCLASSCHECK___METHODDEF
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__subclasscheck__", (PyCFunction)type___subclasscheck__, METH_O,
        type___subclasscheck____doc__},'
    - item_type: preproc_def
      name: TYPE_MRO_METHODDEF
      pos:
        line_end: 68
        line_start: 66
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"mro", (PyCFunction)type_mro, METH_NOARGS, type_mro__doc__},'
    - item_type: preproc_def
      name: TYPE___SUBCLASSES___METHODDEF
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__subclasses__", (PyCFunction)type___subclasses__, METH_NOARGS,
        type___subclasses____doc__},'
    - item_type: preproc_def
      name: TYPE___DIR___METHODDEF
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__dir__", (PyCFunction)type___dir__, METH_NOARGS, type___dir____doc__},'
    - item_type: preproc_def
      name: TYPE___SIZEOF___METHODDEF
      pos:
        line_end: 122
        line_start: 120
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)type___sizeof__, METH_NOARGS, type___sizeof____doc__},'
    - item_type: preproc_def
      name: OBJECT___REDUCE___METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__reduce__", (PyCFunction)object___reduce__, METH_NOARGS,
        object___reduce____doc__},'
    - item_type: preproc_def
      name: OBJECT___REDUCE_EX___METHODDEF
      pos:
        line_end: 158
        line_start: 156
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__reduce_ex__", (PyCFunction)object___reduce_ex__, METH_O,
        object___reduce_ex____doc__},'
    - item_type: preproc_def
      name: OBJECT___FORMAT___METHODDEF
      pos:
        line_end: 191
        line_start: 189
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__format__", (PyCFunction)object___format__, METH_O, object___format____doc__},'
    - item_type: preproc_def
      name: OBJECT___SIZEOF___METHODDEF
      pos:
        line_end: 223
        line_start: 221
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)object___sizeof__, METH_NOARGS,
        object___sizeof____doc__},'
    - item_type: preproc_def
      name: OBJECT___DIR___METHODDEF
      pos:
        line_end: 241
        line_start: 239
        source_file: /src/Python-3.8.3/Objects/clinic/typeobject.c.h
      type_or_value: '{"__dir__", (PyCFunction)object___dir__, METH_NOARGS, object___dir____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mappingproxy_new
  - property_init
  source_file: /src/Python-3.8.3/Objects/clinic/descrobject.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bytes_split
  - bytes_partition
  - bytes_rpartition
  - bytes_rsplit
  - bytes_strip
  - bytes_lstrip
  - bytes_rstrip
  - bytes_translate
  - bytes_maketrans
  - bytes_replace
  - bytes_decode
  - bytes_splitlines
  - bytes_fromhex
  - bytes_hex
  source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTES_SPLIT_METHODDEF
      pos:
        line_end: 20
        line_start: 18
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"split", (PyCFunction)(void(*)(void))bytes_split, METH_FASTCALL|METH_KEYWORDS,
        bytes_split__doc__},'
    - item_type: preproc_def
      name: BYTES_PARTITION_METHODDEF
      pos:
        line_end: 87
        line_start: 85
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"partition", (PyCFunction)bytes_partition, METH_O, bytes_partition__doc__},'
    - item_type: preproc_def
      name: BYTES_RPARTITION_METHODDEF
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"rpartition", (PyCFunction)bytes_rpartition, METH_O, bytes_rpartition__doc__},'
    - item_type: preproc_def
      name: BYTES_RSPLIT_METHODDEF
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"rsplit", (PyCFunction)(void(*)(void))bytes_rsplit, METH_FASTCALL|METH_KEYWORDS,
        bytes_rsplit__doc__},'
    - item_type: preproc_def
      name: BYTES_JOIN_METHODDEF
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"join", (PyCFunction)bytes_join, METH_O, bytes_join__doc__},'
    - item_type: preproc_def
      name: BYTES_STRIP_METHODDEF
      pos:
        line_end: 253
        line_start: 251
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"strip", (PyCFunction)(void(*)(void))bytes_strip, METH_FASTCALL,
        bytes_strip__doc__},'
    - item_type: preproc_def
      name: BYTES_LSTRIP_METHODDEF
      pos:
        line_end: 287
        line_start: 285
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"lstrip", (PyCFunction)(void(*)(void))bytes_lstrip, METH_FASTCALL,
        bytes_lstrip__doc__},'
    - item_type: preproc_def
      name: BYTES_RSTRIP_METHODDEF
      pos:
        line_end: 321
        line_start: 319
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"rstrip", (PyCFunction)(void(*)(void))bytes_rstrip, METH_FASTCALL,
        bytes_rstrip__doc__},'
    - item_type: preproc_def
      name: BYTES_TRANSLATE_METHODDEF
      pos:
        line_end: 359
        line_start: 357
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"translate", (PyCFunction)(void(*)(void))bytes_translate, METH_FASTCALL|METH_KEYWORDS,
        bytes_translate__doc__},'
    - item_type: preproc_def
      name: BYTES_MAKETRANS_METHODDEF
      pos:
        line_end: 404
        line_start: 402
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"maketrans", (PyCFunction)(void(*)(void))bytes_maketrans, METH_FASTCALL|METH_STATIC,
        bytes_maketrans__doc__},'
    - item_type: preproc_def
      name: BYTES_REPLACE_METHODDEF
      pos:
        line_end: 462
        line_start: 460
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"replace", (PyCFunction)(void(*)(void))bytes_replace, METH_FASTCALL,
        bytes_replace__doc__},'
    - item_type: preproc_def
      name: BYTES_DECODE_METHODDEF
      pos:
        line_end: 545
        line_start: 543
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))bytes_decode, METH_FASTCALL|METH_KEYWORDS,
        bytes_decode__doc__},'
    - item_type: preproc_def
      name: BYTES_SPLITLINES_METHODDEF
      pos:
        line_end: 617
        line_start: 615
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"splitlines", (PyCFunction)(void(*)(void))bytes_splitlines,
        METH_FASTCALL|METH_KEYWORDS, bytes_splitlines__doc__},'
    - item_type: preproc_def
      name: BYTES_FROMHEX_METHODDEF
      pos:
        line_end: 665
        line_start: 663
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"fromhex", (PyCFunction)bytes_fromhex, METH_O|METH_CLASS, bytes_fromhex__doc__},'
    - item_type: preproc_def
      name: BYTES_HEX_METHODDEF
      pos:
        line_end: 714
        line_start: 712
        source_file: /src/Python-3.8.3/Objects/clinic/bytesobject.c.h
      type_or_value: '{"hex", (PyCFunction)(void(*)(void))bytes_hex, METH_FASTCALL|METH_KEYWORDS,
        bytes_hex__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - module___init__
  source_file: /src/Python-3.8.3/Objects/clinic/moduleobject.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - tuple_index
  - tuple_new
  - tuple___getnewargs__
  source_file: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TUPLE_INDEX_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
      type_or_value: '{"index", (PyCFunction)(void(*)(void))tuple_index, METH_FASTCALL,
        tuple_index__doc__},'
    - item_type: preproc_def
      name: TUPLE_COUNT_METHODDEF
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
      type_or_value: '{"count", (PyCFunction)tuple_count, METH_O, tuple_count__doc__},'
    - item_type: preproc_def
      name: TUPLE___GETNEWARGS___METHODDEF
      pos:
        line_end: 104
        line_start: 102
        source_file: /src/Python-3.8.3/Objects/clinic/tupleobject.c.h
      type_or_value: '{"__getnewargs__", (PyCFunction)tuple___getnewargs__, METH_NOARGS,
        tuple___getnewargs____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - OrderedDict_fromkeys
  - OrderedDict_setdefault
  - OrderedDict_popitem
  - OrderedDict_move_to_end
  source_file: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ORDEREDDICT_FROMKEYS_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
      type_or_value: '{"fromkeys", (PyCFunction)(void(*)(void))OrderedDict_fromkeys,
        METH_FASTCALL|METH_KEYWORDS|METH_CLASS, OrderedDict_fromkeys__doc__},'
    - item_type: preproc_def
      name: ORDEREDDICT_SETDEFAULT_METHODDEF
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
      type_or_value: '{"setdefault", (PyCFunction)(void(*)(void))OrderedDict_setdefault,
        METH_FASTCALL|METH_KEYWORDS, OrderedDict_setdefault__doc__},'
    - item_type: preproc_def
      name: ORDEREDDICT_POPITEM_METHODDEF
      pos:
        line_end: 95
        line_start: 93
        source_file: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
      type_or_value: '{"popitem", (PyCFunction)(void(*)(void))OrderedDict_popitem,
        METH_FASTCALL|METH_KEYWORDS, OrderedDict_popitem__doc__},'
    - item_type: preproc_def
      name: ORDEREDDICT_MOVE_TO_END_METHODDEF
      pos:
        line_end: 137
        line_start: 135
        source_file: /src/Python-3.8.3/Objects/clinic/odictobject.c.h
      type_or_value: '{"move_to_end", (PyCFunction)(void(*)(void))OrderedDict_move_to_end,
        METH_FASTCALL|METH_KEYWORDS, OrderedDict_move_to_end__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - func_new
  source_file: /src/Python-3.8.3/Objects/clinic/funcobject.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - long_new
  - int___getnewargs__
  - int___format__
  - int___sizeof__
  - int_bit_length
  - int_as_integer_ratio
  - int_to_bytes
  - int_from_bytes
  source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INT___GETNEWARGS___METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"__getnewargs__", (PyCFunction)int___getnewargs__, METH_NOARGS,
        int___getnewargs____doc__},'
    - item_type: preproc_def
      name: INT___FORMAT___METHODDEF
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"__format__", (PyCFunction)int___format__, METH_O, int___format____doc__},'
    - item_type: preproc_def
      name: INT___SIZEOF___METHODDEF
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)int___sizeof__, METH_NOARGS, int___sizeof____doc__},'
    - item_type: preproc_def
      name: INT_BIT_LENGTH_METHODDEF
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"bit_length", (PyCFunction)int_bit_length, METH_NOARGS, int_bit_length__doc__},'
    - item_type: preproc_def
      name: INT_AS_INTEGER_RATIO_METHODDEF
      pos:
        line_end: 158
        line_start: 156
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"as_integer_ratio", (PyCFunction)int_as_integer_ratio, METH_NOARGS,
        int_as_integer_ratio__doc__},'
    - item_type: preproc_def
      name: INT_TO_BYTES_METHODDEF
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"to_bytes", (PyCFunction)(void(*)(void))int_to_bytes, METH_FASTCALL|METH_KEYWORDS,
        int_to_bytes__doc__},'
    - item_type: preproc_def
      name: INT_FROM_BYTES_METHODDEF
      pos:
        line_end: 272
        line_start: 270
        source_file: /src/Python-3.8.3/Objects/clinic/longobject.c.h
      type_or_value: '{"from_bytes", (PyCFunction)(void(*)(void))int_from_bytes, METH_FASTCALL|METH_KEYWORDS|METH_CLASS,
        int_from_bytes__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - complex_new
  source_file: /src/Python-3.8.3/Objects/clinic/complexobject.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dict_fromkeys
  - dict_get
  - dict_setdefault
  - dict_popitem
  - dict___reversed__
  source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DICT_FROMKEYS_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"fromkeys", (PyCFunction)(void(*)(void))dict_fromkeys, METH_FASTCALL|METH_CLASS,
        dict_fromkeys__doc__},'
    - item_type: preproc_def
      name: DICT___CONTAINS___METHODDEF
      pos:
        line_end: 46
        line_start: 44
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"__contains__", (PyCFunction)dict___contains__, METH_O|METH_COEXIST,
        dict___contains____doc__},'
    - item_type: preproc_def
      name: DICT_GET_METHODDEF
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))dict_get, METH_FASTCALL,
        dict_get__doc__},'
    - item_type: preproc_def
      name: DICT_SETDEFAULT_METHODDEF
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"setdefault", (PyCFunction)(void(*)(void))dict_setdefault,
        METH_FASTCALL, dict_setdefault__doc__},'
    - item_type: preproc_def
      name: DICT_POPITEM_METHODDEF
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"popitem", (PyCFunction)dict_popitem, METH_NOARGS, dict_popitem__doc__},'
    - item_type: preproc_def
      name: DICT___REVERSED___METHODDEF
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/Python-3.8.3/Objects/clinic/dictobject.c.h
      type_or_value: '{"__reversed__", (PyCFunction)dict___reversed__, METH_NOARGS,
        dict___reversed____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - enum_new
  - reversed_new
  source_file: /src/Python-3.8.3/Objects/clinic/enumobject.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - list_insert
  - list_clear
  - list_copy
  - list_pop
  - list_sort
  - list_reverse
  - list_index
  - list___init__
  - list___sizeof__
  - list___reversed__
  source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIST_INSERT_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"insert", (PyCFunction)(void(*)(void))list_insert, METH_FASTCALL,
        list_insert__doc__},'
    - item_type: preproc_def
      name: LIST_CLEAR_METHODDEF
      pos:
        line_end: 58
        line_start: 56
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"clear", (PyCFunction)list_clear, METH_NOARGS, list_clear__doc__},'
    - item_type: preproc_def
      name: LIST_COPY_METHODDEF
      pos:
        line_end: 76
        line_start: 74
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"copy", (PyCFunction)list_copy, METH_NOARGS, list_copy__doc__},'
    - item_type: preproc_def
      name: LIST_APPEND_METHODDEF
      pos:
        line_end: 94
        line_start: 92
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"append", (PyCFunction)list_append, METH_O, list_append__doc__},'
    - item_type: preproc_def
      name: LIST_EXTEND_METHODDEF
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"extend", (PyCFunction)list_extend, METH_O, list_extend__doc__},'
    - item_type: preproc_def
      name: LIST_POP_METHODDEF
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"pop", (PyCFunction)(void(*)(void))list_pop, METH_FASTCALL,
        list_pop__doc__},'
    - item_type: preproc_def
      name: LIST_SORT_METHODDEF
      pos:
        line_end: 170
        line_start: 168
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"sort", (PyCFunction)(void(*)(void))list_sort, METH_FASTCALL|METH_KEYWORDS,
        list_sort__doc__},'
    - item_type: preproc_def
      name: LIST_REVERSE_METHODDEF
      pos:
        line_end: 222
        line_start: 220
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"reverse", (PyCFunction)list_reverse, METH_NOARGS, list_reverse__doc__},'
    - item_type: preproc_def
      name: LIST_INDEX_METHODDEF
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"index", (PyCFunction)(void(*)(void))list_index, METH_FASTCALL,
        list_index__doc__},'
    - item_type: preproc_def
      name: LIST_COUNT_METHODDEF
      pos:
        line_end: 286
        line_start: 284
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"count", (PyCFunction)list_count, METH_O, list_count__doc__},'
    - item_type: preproc_def
      name: LIST_REMOVE_METHODDEF
      pos:
        line_end: 297
        line_start: 295
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"remove", (PyCFunction)list_remove, METH_O, list_remove__doc__},'
    - item_type: preproc_def
      name: LIST___SIZEOF___METHODDEF
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)list___sizeof__, METH_NOARGS, list___sizeof____doc__},'
    - item_type: preproc_def
      name: LIST___REVERSED___METHODDEF
      pos:
        line_end: 360
        line_start: 358
        source_file: /src/Python-3.8.3/Objects/clinic/listobject.c.h
      type_or_value: '{"__reversed__", (PyCFunction)list___reversed__, METH_NOARGS,
        list___reversed____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - memoryview_hex
  source_file: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEMORYVIEW_HEX_METHODDEF
      pos:
        line_end: 29
        line_start: 27
        source_file: /src/Python-3.8.3/Objects/clinic/memoryobject.c.h
      type_or_value: '{"hex", (PyCFunction)(void(*)(void))memoryview_hex, METH_FASTCALL|METH_KEYWORDS,
        memoryview_hex__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - unicode_title
  - unicode_capitalize
  - unicode_casefold
  - unicode_center
  - unicode_encode
  - unicode_expandtabs
  - unicode_isascii
  - unicode_islower
  - unicode_isupper
  - unicode_istitle
  - unicode_isspace
  - unicode_isalpha
  - unicode_isalnum
  - unicode_isdecimal
  - unicode_isdigit
  - unicode_isnumeric
  - unicode_isidentifier
  - unicode_isprintable
  - unicode_ljust
  - unicode_lower
  - unicode_strip
  - unicode_lstrip
  - unicode_rstrip
  - unicode_replace
  - unicode_rjust
  - unicode_split
  - unicode_rsplit
  - unicode_splitlines
  - unicode_swapcase
  - unicode_maketrans
  - unicode_upper
  - unicode_zfill
  - unicode___format__
  - unicode_sizeof
  source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNICODE_TITLE_METHODDEF
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"title", (PyCFunction)unicode_title, METH_NOARGS, unicode_title__doc__},'
    - item_type: preproc_def
      name: UNICODE_CAPITALIZE_METHODDEF
      pos:
        line_end: 36
        line_start: 34
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"capitalize", (PyCFunction)unicode_capitalize, METH_NOARGS,
        unicode_capitalize__doc__},'
    - item_type: preproc_def
      name: UNICODE_CASEFOLD_METHODDEF
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"casefold", (PyCFunction)unicode_casefold, METH_NOARGS, unicode_casefold__doc__},'
    - item_type: preproc_def
      name: UNICODE_CENTER_METHODDEF
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"center", (PyCFunction)(void(*)(void))unicode_center, METH_FASTCALL,
        unicode_center__doc__},'
    - item_type: preproc_def
      name: UNICODE_ENCODE_METHODDEF
      pos:
        line_end: 135
        line_start: 133
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"encode", (PyCFunction)(void(*)(void))unicode_encode, METH_FASTCALL|METH_KEYWORDS,
        unicode_encode__doc__},'
    - item_type: preproc_def
      name: UNICODE_EXPANDTABS_METHODDEF
      pos:
        line_end: 205
        line_start: 203
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"expandtabs", (PyCFunction)(void(*)(void))unicode_expandtabs,
        METH_FASTCALL|METH_KEYWORDS, unicode_expandtabs__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISASCII_METHODDEF
      pos:
        line_end: 253
        line_start: 251
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isascii", (PyCFunction)unicode_isascii, METH_NOARGS, unicode_isascii__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISLOWER_METHODDEF
      pos:
        line_end: 274
        line_start: 272
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"islower", (PyCFunction)unicode_islower, METH_NOARGS, unicode_islower__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISUPPER_METHODDEF
      pos:
        line_end: 295
        line_start: 293
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isupper", (PyCFunction)unicode_isupper, METH_NOARGS, unicode_isupper__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISTITLE_METHODDEF
      pos:
        line_end: 316
        line_start: 314
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"istitle", (PyCFunction)unicode_istitle, METH_NOARGS, unicode_istitle__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISSPACE_METHODDEF
      pos:
        line_end: 337
        line_start: 335
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isspace", (PyCFunction)unicode_isspace, METH_NOARGS, unicode_isspace__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISALPHA_METHODDEF
      pos:
        line_end: 358
        line_start: 356
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isalpha", (PyCFunction)unicode_isalpha, METH_NOARGS, unicode_isalpha__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISALNUM_METHODDEF
      pos:
        line_end: 379
        line_start: 377
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isalnum", (PyCFunction)unicode_isalnum, METH_NOARGS, unicode_isalnum__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISDECIMAL_METHODDEF
      pos:
        line_end: 400
        line_start: 398
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isdecimal", (PyCFunction)unicode_isdecimal, METH_NOARGS, unicode_isdecimal__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISDIGIT_METHODDEF
      pos:
        line_end: 421
        line_start: 419
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isdigit", (PyCFunction)unicode_isdigit, METH_NOARGS, unicode_isdigit__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISNUMERIC_METHODDEF
      pos:
        line_end: 442
        line_start: 440
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isnumeric", (PyCFunction)unicode_isnumeric, METH_NOARGS, unicode_isnumeric__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISIDENTIFIER_METHODDEF
      pos:
        line_end: 463
        line_start: 461
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isidentifier", (PyCFunction)unicode_isidentifier, METH_NOARGS,
        unicode_isidentifier__doc__},'
    - item_type: preproc_def
      name: UNICODE_ISPRINTABLE_METHODDEF
      pos:
        line_end: 484
        line_start: 482
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"isprintable", (PyCFunction)unicode_isprintable, METH_NOARGS,
        unicode_isprintable__doc__},'
    - item_type: preproc_def
      name: UNICODE_JOIN_METHODDEF
      pos:
        line_end: 507
        line_start: 505
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"join", (PyCFunction)unicode_join, METH_O, unicode_join__doc__},'
    - item_type: preproc_def
      name: UNICODE_LJUST_METHODDEF
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"ljust", (PyCFunction)(void(*)(void))unicode_ljust, METH_FASTCALL,
        unicode_ljust__doc__},'
    - item_type: preproc_def
      name: UNICODE_LOWER_METHODDEF
      pos:
        line_end: 570
        line_start: 568
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"lower", (PyCFunction)unicode_lower, METH_NOARGS, unicode_lower__doc__},'
    - item_type: preproc_def
      name: UNICODE_STRIP_METHODDEF
      pos:
        line_end: 590
        line_start: 588
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"strip", (PyCFunction)(void(*)(void))unicode_strip, METH_FASTCALL,
        unicode_strip__doc__},'
    - item_type: preproc_def
      name: UNICODE_LSTRIP_METHODDEF
      pos:
        line_end: 624
        line_start: 622
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"lstrip", (PyCFunction)(void(*)(void))unicode_lstrip, METH_FASTCALL,
        unicode_lstrip__doc__},'
    - item_type: preproc_def
      name: UNICODE_RSTRIP_METHODDEF
      pos:
        line_end: 658
        line_start: 656
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"rstrip", (PyCFunction)(void(*)(void))unicode_rstrip, METH_FASTCALL,
        unicode_rstrip__doc__},'
    - item_type: preproc_def
      name: UNICODE_REPLACE_METHODDEF
      pos:
        line_end: 697
        line_start: 695
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"replace", (PyCFunction)(void(*)(void))unicode_replace, METH_FASTCALL,
        unicode_replace__doc__},'
    - item_type: preproc_def
      name: UNICODE_RJUST_METHODDEF
      pos:
        line_end: 766
        line_start: 764
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"rjust", (PyCFunction)(void(*)(void))unicode_rjust, METH_FASTCALL,
        unicode_rjust__doc__},'
    - item_type: preproc_def
      name: UNICODE_SPLIT_METHODDEF
      pos:
        line_end: 826
        line_start: 824
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"split", (PyCFunction)(void(*)(void))unicode_split, METH_FASTCALL|METH_KEYWORDS,
        unicode_split__doc__},'
    - item_type: preproc_def
      name: UNICODE_PARTITION_METHODDEF
      pos:
        line_end: 893
        line_start: 891
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"partition", (PyCFunction)unicode_partition, METH_O, unicode_partition__doc__},'
    - item_type: preproc_def
      name: UNICODE_RPARTITION_METHODDEF
      pos:
        line_end: 909
        line_start: 907
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"rpartition", (PyCFunction)unicode_rpartition, METH_O, unicode_rpartition__doc__},'
    - item_type: preproc_def
      name: UNICODE_RSPLIT_METHODDEF
      pos:
        line_end: 928
        line_start: 926
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"rsplit", (PyCFunction)(void(*)(void))unicode_rsplit, METH_FASTCALL|METH_KEYWORDS,
        unicode_rsplit__doc__},'
    - item_type: preproc_def
      name: UNICODE_SPLITLINES_METHODDEF
      pos:
        line_end: 991
        line_start: 989
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"splitlines", (PyCFunction)(void(*)(void))unicode_splitlines,
        METH_FASTCALL|METH_KEYWORDS, unicode_splitlines__doc__},'
    - item_type: preproc_def
      name: UNICODE_SWAPCASE_METHODDEF
      pos:
        line_end: 1036
        line_start: 1034
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"swapcase", (PyCFunction)unicode_swapcase, METH_NOARGS, unicode_swapcase__doc__},'
    - item_type: preproc_def
      name: UNICODE_MAKETRANS_METHODDEF
      pos:
        line_end: 1062
        line_start: 1060
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"maketrans", (PyCFunction)(void(*)(void))unicode_maketrans,
        METH_FASTCALL|METH_STATIC, unicode_maketrans__doc__},'
    - item_type: preproc_def
      name: UNICODE_TRANSLATE_METHODDEF
      pos:
        line_end: 1123
        line_start: 1121
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"translate", (PyCFunction)unicode_translate, METH_O, unicode_translate__doc__},'
    - item_type: preproc_def
      name: UNICODE_UPPER_METHODDEF
      pos:
        line_end: 1132
        line_start: 1130
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"upper", (PyCFunction)unicode_upper, METH_NOARGS, unicode_upper__doc__},'
    - item_type: preproc_def
      name: UNICODE_ZFILL_METHODDEF
      pos:
        line_end: 1152
        line_start: 1150
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"zfill", (PyCFunction)unicode_zfill, METH_O, unicode_zfill__doc__},'
    - item_type: preproc_def
      name: UNICODE___FORMAT___METHODDEF
      pos:
        line_end: 1193
        line_start: 1191
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"__format__", (PyCFunction)unicode___format__, METH_O, unicode___format____doc__},'
    - item_type: preproc_def
      name: UNICODE_SIZEOF_METHODDEF
      pos:
        line_end: 1225
        line_start: 1223
        source_file: /src/Python-3.8.3/Objects/clinic/unicodeobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)unicode_sizeof, METH_NOARGS, unicode_sizeof__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bytearray_clear
  - bytearray_copy
  - bytearray_translate
  - bytearray_maketrans
  - bytearray_replace
  - bytearray_split
  - bytearray_rsplit
  - bytearray_reverse
  - bytearray_insert
  - bytearray_append
  - bytearray_pop
  - bytearray_remove
  - bytearray_strip
  - bytearray_lstrip
  - bytearray_rstrip
  - bytearray_decode
  - bytearray_splitlines
  - bytearray_fromhex
  - bytearray_hex
  - bytearray_reduce
  - bytearray_reduce_ex
  - bytearray_sizeof
  source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTEARRAY_CLEAR_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"clear", (PyCFunction)bytearray_clear, METH_NOARGS, bytearray_clear__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_COPY_METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"copy", (PyCFunction)bytearray_copy, METH_NOARGS, bytearray_copy__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_TRANSLATE_METHODDEF
      pos:
        line_end: 54
        line_start: 52
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"translate", (PyCFunction)(void(*)(void))bytearray_translate,
        METH_FASTCALL|METH_KEYWORDS, bytearray_translate__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_MAKETRANS_METHODDEF
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"maketrans", (PyCFunction)(void(*)(void))bytearray_maketrans,
        METH_FASTCALL|METH_STATIC, bytearray_maketrans__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_REPLACE_METHODDEF
      pos:
        line_end: 157
        line_start: 155
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"replace", (PyCFunction)(void(*)(void))bytearray_replace, METH_FASTCALL,
        bytearray_replace__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_SPLIT_METHODDEF
      pos:
        line_end: 239
        line_start: 237
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"split", (PyCFunction)(void(*)(void))bytearray_split, METH_FASTCALL|METH_KEYWORDS,
        bytearray_split__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_PARTITION_METHODDEF
      pos:
        line_end: 307
        line_start: 305
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"partition", (PyCFunction)bytearray_partition, METH_O, bytearray_partition__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_RPARTITION_METHODDEF
      pos:
        line_end: 324
        line_start: 322
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"rpartition", (PyCFunction)bytearray_rpartition, METH_O, bytearray_rpartition__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_RSPLIT_METHODDEF
      pos:
        line_end: 343
        line_start: 341
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"rsplit", (PyCFunction)(void(*)(void))bytearray_rsplit, METH_FASTCALL|METH_KEYWORDS,
        bytearray_rsplit__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_REVERSE_METHODDEF
      pos:
        line_end: 404
        line_start: 402
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"reverse", (PyCFunction)bytearray_reverse, METH_NOARGS, bytearray_reverse__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_INSERT_METHODDEF
      pos:
        line_end: 427
        line_start: 425
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"insert", (PyCFunction)(void(*)(void))bytearray_insert, METH_FASTCALL,
        bytearray_insert__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_APPEND_METHODDEF
      pos:
        line_end: 478
        line_start: 476
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"append", (PyCFunction)bytearray_append, METH_O, bytearray_append__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_EXTEND_METHODDEF
      pos:
        line_end: 508
        line_start: 506
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"extend", (PyCFunction)bytearray_extend, METH_O, bytearray_extend__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_POP_METHODDEF
      pos:
        line_end: 523
        line_start: 521
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"pop", (PyCFunction)(void(*)(void))bytearray_pop, METH_FASTCALL,
        bytearray_pop__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_REMOVE_METHODDEF
      pos:
        line_end: 574
        line_start: 572
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"remove", (PyCFunction)bytearray_remove, METH_O, bytearray_remove__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_STRIP_METHODDEF
      pos:
        line_end: 603
        line_start: 601
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"strip", (PyCFunction)(void(*)(void))bytearray_strip, METH_FASTCALL,
        bytearray_strip__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_LSTRIP_METHODDEF
      pos:
        line_end: 637
        line_start: 635
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"lstrip", (PyCFunction)(void(*)(void))bytearray_lstrip, METH_FASTCALL,
        bytearray_lstrip__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_RSTRIP_METHODDEF
      pos:
        line_end: 671
        line_start: 669
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"rstrip", (PyCFunction)(void(*)(void))bytearray_rstrip, METH_FASTCALL,
        bytearray_rstrip__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_DECODE_METHODDEF
      pos:
        line_end: 712
        line_start: 710
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"decode", (PyCFunction)(void(*)(void))bytearray_decode, METH_FASTCALL|METH_KEYWORDS,
        bytearray_decode__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_JOIN_METHODDEF
      pos:
        line_end: 785
        line_start: 783
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"join", (PyCFunction)bytearray_join, METH_O, bytearray_join__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_SPLITLINES_METHODDEF
      pos:
        line_end: 797
        line_start: 795
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"splitlines", (PyCFunction)(void(*)(void))bytearray_splitlines,
        METH_FASTCALL|METH_KEYWORDS, bytearray_splitlines__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_FROMHEX_METHODDEF
      pos:
        line_end: 845
        line_start: 843
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"fromhex", (PyCFunction)bytearray_fromhex, METH_O|METH_CLASS,
        bytearray_fromhex__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_HEX_METHODDEF
      pos:
        line_end: 894
        line_start: 892
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"hex", (PyCFunction)(void(*)(void))bytearray_hex, METH_FASTCALL|METH_KEYWORDS,
        bytearray_hex__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_REDUCE_METHODDEF
      pos:
        line_end: 946
        line_start: 944
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"__reduce__", (PyCFunction)bytearray_reduce, METH_NOARGS, bytearray_reduce__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_REDUCE_EX_METHODDEF
      pos:
        line_end: 964
        line_start: 962
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"__reduce_ex__", (PyCFunction)(void(*)(void))bytearray_reduce_ex,
        METH_FASTCALL, bytearray_reduce_ex__doc__},'
    - item_type: preproc_def
      name: BYTEARRAY_SIZEOF_METHODDEF
      pos:
        line_end: 1004
        line_start: 1002
        source_file: /src/Python-3.8.3/Objects/clinic/bytearrayobject.c.h
      type_or_value: '{"__sizeof__", (PyCFunction)bytearray_sizeof, METH_NOARGS, bytearray_sizeof__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - float_is_integer
  - float___trunc__
  - float___round__
  - float_conjugate
  - float_hex
  - float_as_integer_ratio
  - float_new
  - float___getnewargs__
  - float___getformat__
  - float___set_format__
  - float___format__
  source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLOAT_IS_INTEGER_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"is_integer", (PyCFunction)float_is_integer, METH_NOARGS, float_is_integer__doc__},'
    - item_type: preproc_def
      name: FLOAT___TRUNC___METHODDEF
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__trunc__", (PyCFunction)float___trunc__, METH_NOARGS, float___trunc____doc__},'
    - item_type: preproc_def
      name: FLOAT___ROUND___METHODDEF
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__round__", (PyCFunction)(void(*)(void))float___round__, METH_FASTCALL,
        float___round____doc__},'
    - item_type: preproc_def
      name: FLOAT_CONJUGATE_METHODDEF
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"conjugate", (PyCFunction)float_conjugate, METH_NOARGS, float_conjugate__doc__},'
    - item_type: preproc_def
      name: FLOAT_HEX_METHODDEF
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"hex", (PyCFunction)float_hex, METH_NOARGS, float_hex__doc__},'
    - item_type: preproc_def
      name: FLOAT_FROMHEX_METHODDEF
      pos:
        line_end: 128
        line_start: 126
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"fromhex", (PyCFunction)float_fromhex, METH_O|METH_CLASS, float_fromhex__doc__},'
    - item_type: preproc_def
      name: FLOAT_AS_INTEGER_RATIO_METHODDEF
      pos:
        line_end: 149
        line_start: 147
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"as_integer_ratio", (PyCFunction)float_as_integer_ratio, METH_NOARGS,
        float_as_integer_ratio__doc__},'
    - item_type: preproc_def
      name: FLOAT___GETNEWARGS___METHODDEF
      pos:
        line_end: 199
        line_start: 197
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__getnewargs__", (PyCFunction)float___getnewargs__, METH_NOARGS,
        float___getnewargs____doc__},'
    - item_type: preproc_def
      name: FLOAT___GETFORMAT___METHODDEF
      pos:
        line_end: 226
        line_start: 224
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__getformat__", (PyCFunction)float___getformat__, METH_O|METH_CLASS,
        float___getformat____doc__},'
    - item_type: preproc_def
      name: FLOAT___SET_FORMAT___METHODDEF
      pos:
        line_end: 275
        line_start: 273
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__set_format__", (PyCFunction)(void(*)(void))float___set_format__,
        METH_FASTCALL|METH_CLASS, float___set_format____doc__},'
    - item_type: preproc_def
      name: FLOAT___FORMAT___METHODDEF
      pos:
        line_end: 330
        line_start: 328
        source_file: /src/Python-3.8.3/Objects/clinic/floatobject.c.h
      type_or_value: '{"__format__", (PyCFunction)float___format__, METH_O, float___format____doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyToken_OneChar
  - PyToken_TwoChars
  - PyToken_ThreeChars
  source_file: /src/Python-3.8.3/Parser/token.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Parser/tokenizer.h
  types:
    enum:
    - enumerators:
      - name: STATE_INIT
      - name: STATE_NORMAL
      - name: STATE_RAW
      item_type: enum
      name: decoding_state
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/Python-3.8.3/Parser/tokenizer.h
    preproc_defs:
    - item_type: preproc_def
      name: MAXINDENT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Parser/tokenizer.h
      type_or_value: '100   '
    - item_type: preproc_def
      name: MAXLEVEL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Parser/tokenizer.h
      type_or_value: '200    '
    - item_type: preproc_def
      name: tok_dump
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Parser/tokenizer.h
      type_or_value: _Py_tok_dump
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: '*cur'
        type: char
      - name: '*inp'
        type: char
      - name: '*end'
        type: char
      - name: '*start'
        type: char
      - name: done
        type: int
      - name: '*fp'
        type: FILE
      - name: tabsize
        type: int
      - name: indent
        type: int
      - name: indstack[MAXINDENT]
        type: int
      - name: atbol
        type: int
      - name: pendin
        type: int
      - name: '*prompt'
        type: char
      - name: lineno
        type: int
      - name: first_lineno
        type: int
      - name: level
        type: int
      - name: parenstack[MAXLEVEL]
        type: char
      - name: parenlinenostack[MAXLEVEL]
        type: int
      - name: '*filename'
        type: PyObject
      - name: altindstack[MAXINDENT]
        type: int
      - name: decoding_state
        type: enum decoding_state
      - name: decoding_erred
        type: int
      - name: read_coding_spec
        type: int
      - name: '*encoding'
        type: char
      - name: cont_line
        type: int
      - name: '* line_start'
        type: char
      - name: '* multi_line_start'
        type: char
      - name: '*decoding_readline'
        type: PyObject
      - name: '*decoding_buffer'
        type: PyObject
      - name: '* enc'
        type: char
      - name: '* str'
        type: char
      - name: '* input'
        type: char
      - name: type_comments
        type: int
      - name: async_hacks
        type: int
      - name: async_def
        type: int
      - name: async_def_indent
        type: int
      - name: async_def_nl
        type: int
      item_type: struct
      name: tok_state
      pos:
        line_end: 73
        line_start: 22
        source_file: /src/Python-3.8.3/Parser/tokenizer.h
    typedefs: []
    union: []
- function_names:
  - PyNode_ListTree
  - listnode
  - list1node
  source_file: /src/Python-3.8.3/Parser/listnode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Parser/parser.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXSTACK
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Parser/parser.h
      type_or_value: '1700'
    - item_type: preproc_def
      name: showtree
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Parser/parser.h
      type_or_value: _Py_showtree
    - item_type: preproc_def
      name: printtree
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Parser/parser.h
      type_or_value: _Py_printtree
    - item_type: preproc_def
      name: dumptree
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Parser/parser.h
      type_or_value: _Py_dumptree
    structs:
    - fields:
      - name: s_state
        type: int
      - name: '*s_dfa'
        type: dfa
      - name: '*s_parent'
        type: struct _node
      item_type: struct
      name: stackentry
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/Python-3.8.3/Parser/parser.h
    - fields:
      - name: '*s_top'
        type: stackentry
      - name: s_base[MAXSTACK]
        type: stackentry
      item_type: struct
      name: stack
      pos:
        line_end: 21
        line_start: 17
        source_file: /src/Python-3.8.3/Parser/parser.h
    - fields:
      - name: p_stack
        type: stack
      - name: '*p_grammar'
        type: grammar
      - name: '*p_tree'
        type: node
      item_type: struct
      name: parser_state
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/Python-3.8.3/Parser/parser.h
    typedefs: []
    union: []
- function_names:
  - is_potential_identifier_start
  - is_potential_identifier_char
  - tok_new
  - new_string
  - error_ret
  - get_normal_name
  - get_coding_spec
  - check_coding_spec
  - check_bom
  - fp_readl
  - fp_setreadl
  - fp_getc
  - fp_ungetc
  - valid_utf8
  - decoding_fgets
  - decoding_feof
  - buf_getc
  - buf_ungetc
  - buf_setreadl
  - translate_into_utf8
  - translate_newlines
  - decode_str
  - PyTokenizer_FromString
  - PyTokenizer_FromUTF8
  - PyTokenizer_FromFile
  - PyTokenizer_Free
  - tok_nextc
  - tok_backup
  - syntaxerror
  - indenterror
  - verify_identifier
  - tok_decimal_tail
  - tok_get
  - PyTokenizer_Get
  - PyTokenizer_FindEncodingFilename
  - PyTokenizer_FindEncoding
  - tok_dump
  source_file: /src/Python-3.8.3/Parser/tokenizer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALTTABSIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TABSIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Parser/tokenizer.c
      type_or_value: '8'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyGrammar_AddAccelerators
  - PyGrammar_RemoveAccelerators
  - fixdfa
  - fixstate
  source_file: /src/Python-3.8.3/Parser/acceler.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - D
  - s_reset
  - s_empty
  - s_push
  - s_pop
  - s_pop
  - PyParser_New
  - PyParser_Delete
  - shift
  - push
  - classify
  - future_hack
  - PyParser_AddToken
  - dumptree
  - showtree
  - printtree
  source_file: /src/Python-3.8.3/Parser/parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - my_fgets
  - _PyOS_WindowsConsoleReadline
  - PyOS_StdioReadline
  - PyOS_Readline
  source_file: /src/Python-3.8.3/Parser/myreadline.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - growable_comment_array_init
  - growable_comment_array_add
  - growable_comment_array_deallocate
  - PyParser_ParseString
  - PyParser_ParseStringFlags
  - PyParser_ParseStringFlagsFilename
  - PyParser_ParseStringObject
  - PyParser_ParseStringFlagsFilenameEx
  - PyParser_ParseFile
  - PyParser_ParseFileFlags
  - PyParser_ParseFileObject
  - PyParser_ParseFileFlagsEx
  - warn
  - parsetok
  - initerr
  source_file: /src/Python-3.8.3/Parser/parsetok.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*items'
        type: "struct {\n        int lineno;\n        char *comment;\n    }"
      - name: size
        type: size_t
      - name: num_items
        type: size_t
      item_type: struct
      name: growable_comment_array
      pos:
        line_end: 24
        line_start: 17
        source_file: /src/Python-3.8.3/Parser/parsetok.c
    typedefs: []
    union: []
- function_names:
  - PyNode_New
  - fancy_roundup
  - XXXROUNDUP
  - _PyNode_FinalizeEndPos
  - PyNode_AddChild
  - PyNode_Free
  - _PyNode_SizeOf
  - freechildren
  - sizeofchildren
  source_file: /src/Python-3.8.3/Parser/node.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyGrammar_FindDFA
  - PyGrammar_LabelRepr
  source_file: /src/Python-3.8.3/Parser/grammar1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IDC_STATIC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: _APS_NEXT_RESOURCE_VALUE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
      type_or_value: '102'
    - item_type: preproc_def
      name: _APS_NEXT_COMMAND_VALUE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
      type_or_value: '40001'
    - item_type: preproc_def
      name: _APS_NEXT_CONTROL_VALUE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
      type_or_value: '1003'
    - item_type: preproc_def
      name: _APS_NEXT_SYMED_VALUE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/resource.h
      type_or_value: '101'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pch.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pch.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DllMain
  - BootstrapperApplicationCreate
  - BootstrapperApplicationDestroy
  - MbaPrereqBootstrapperApplicationCreate
  - MbaPrereqBootstrapperApplicationDestroy
  source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/pythonba.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PythonBootstrapperApplication::ShowPage
  - PythonBootstrapperApplication::OnCommand
  - PythonBootstrapperApplication::InstallPage_Show
  - PythonBootstrapperApplication::Custom1Page_Show
  - PythonBootstrapperApplication::Custom2Page_Show
  - PythonBootstrapperApplication::ModifyPage_Show
  - PythonBootstrapperApplication::SuccessPage_Show
  - PythonBootstrapperApplication::FailurePage_Show
  - PythonBootstrapperApplication::EnableMaxPathSupport
  - PythonBootstrapperApplication::OnStartup
  - PythonBootstrapperApplication::OnShutdown
  - PythonBootstrapperApplication::OnDetectRelatedMsiPackage
  - PythonBootstrapperApplication::OnDetectRelatedBundle
  - PythonBootstrapperApplication::OnDetectPackageComplete
  - PythonBootstrapperApplication::OnDetectComplete
  - PythonBootstrapperApplication::OnPlanRelatedBundle
  - PythonBootstrapperApplication::OnPlanPackageBegin
  - PythonBootstrapperApplication::OnPlanMsiFeature
  - PythonBootstrapperApplication::OnPlanComplete
  - PythonBootstrapperApplication::OnCachePackageBegin
  - PythonBootstrapperApplication::OnCacheAcquireProgress
  - PythonBootstrapperApplication::OnCacheAcquireComplete
  - PythonBootstrapperApplication::OnCacheVerifyComplete
  - PythonBootstrapperApplication::OnCacheComplete
  - PythonBootstrapperApplication::OnError
  - PythonBootstrapperApplication::OnExecuteMsiMessage
  - PythonBootstrapperApplication::OnProgress
  - PythonBootstrapperApplication::OnExecutePackageBegin
  - PythonBootstrapperApplication::OnExecuteProgress
  - PythonBootstrapperApplication::OnExecutePackageComplete
  - PythonBootstrapperApplication::OnExecuteComplete
  - PythonBootstrapperApplication::OnResolveSource
  - PythonBootstrapperApplication::OnApplyComplete
  - PythonBootstrapperApplication::OnLaunchApprovedExeComplete
  - PythonBootstrapperApplication::UiThreadProc
  - PythonBootstrapperApplication::ParseVariablesFromUnattendXml
  - PythonBootstrapperApplication::InitializeData
  - PythonBootstrapperApplication::ProcessCommandLine
  - PythonBootstrapperApplication::LoadLocalization
  - PythonBootstrapperApplication::LoadTheme
  - PythonBootstrapperApplication::ParseOverridableVariablesFromXml
  - PythonBootstrapperApplication::GetBundleFileVersion
  - PythonBootstrapperApplication::CreateMainWindow
  - PythonBootstrapperApplication::InitializeTaskbarButton
  - PythonBootstrapperApplication::DestroyMainWindow
  - PythonBootstrapperApplication::WndProc
  - PythonBootstrapperApplication::OnCreate
  - PythonBootstrapperApplication::RemapColor
  - PythonBootstrapperApplication::SetControlColor
  - PythonBootstrapperApplication::OnShowFailure
  - PythonBootstrapperApplication::OnShowHelp
  - PythonBootstrapperApplication::OnDetect
  - PythonBootstrapperApplication::UpdateUIStrings
  - PythonBootstrapperApplication::OnPlan
  - PythonBootstrapperApplication::OnApply
  - PythonBootstrapperApplication::OnChangeState
  - PythonBootstrapperApplication::ProcessPageControls
  - PythonBootstrapperApplication::OnClose
  - PythonBootstrapperApplication::OnClickCloseButton
  - PythonBootstrapperApplication::OnClickRestartButton
  - PythonBootstrapperApplication::OnClickLogFileLink
  - PythonBootstrapperApplication::SetState
  - PythonBootstrapperApplication::GoToPage
  - PythonBootstrapperApplication::DeterminePageId
  - PythonBootstrapperApplication::WillElevate
  - PythonBootstrapperApplication::IsCrtInstalled
  - PythonBootstrapperApplication::EvaluateConditions
  - PythonBootstrapperApplication::SetTaskbarButtonProgress
  - PythonBootstrapperApplication::SetTaskbarButtonState
  - PythonBootstrapperApplication::SetProgressState
  - PythonBootstrapperApplication::LoadBootstrapperBAFunctions
  - PythonBootstrapperApplication::IsCheckable
  - PythonBootstrapperApplication::SavePageSettings
  - PythonBootstrapperApplication::IsTargetPlatformx64
  - PythonBootstrapperApplication::LoadOptionalFeatureStatesFromKey
  - PythonBootstrapperApplication::LoadTargetDirFromKey
  - PythonBootstrapperApplication::LoadAssociateFilesStateFromKey
  - PythonBootstrapperApplication::LoadOptionalFeatureStates
  - PythonBootstrapperApplication::EnsureTargetDir
  - PythonBootstrapperApplication::ValidateOperatingSystem
  - PythonBootstrapperApplication::PythonBootstrapperApplication
  - ~PythonBootstrapperApplication()
  - CreateBootstrapperApplication
  source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
  types:
    enum:
    - enumerators:
      - name: PYBA_STATE_INITIALIZING
      - name: PYBA_STATE_INITIALIZED
      - name: PYBA_STATE_DETECTING
      - name: PYBA_STATE_DETECTED
      - name: PYBA_STATE_HELP
      - name: PYBA_STATE_PLANNING
      - name: PYBA_STATE_PLANNED
      - name: PYBA_STATE_APPLYING
      - name: PYBA_STATE_CACHING
      - name: PYBA_STATE_CACHED
      - name: PYBA_STATE_EXECUTING
      - name: PYBA_STATE_EXECUTED
      - name: PYBA_STATE_FAILED
      - name: PYBA_STATE_APPLIED
      item_type: enum
      name: PYBA_STATE
      pos:
        line_end: 31
        line_start: 16
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    - enumerators:
      - name: PAGE_LOADING
      - name: PAGE_UPGRADE
      - name: PAGE_SIMPLE_INSTALL
      - name: PAGE_INSTALL
      - name: PAGE_HELP
      - name: PAGE_CUSTOM1
      - name: PAGE_CUSTOM2
      - name: PAGE_MODIFY
      - name: PAGE_PROGRESS
      - name: PAGE_PROGRESS_PASSIVE
      - name: PAGE_SUCCESS
      - name: COUNT_PAGE
      - name: PAGE_FAILURE
      item_type: enum
      name: PAGE
      pos:
        line_end: 55
        line_start: 41
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    - enumerators:
      - name: ID_CLOSE_BUTTON
        value: THEME_FIRST_ASSIGN_CONTROL_ID
      - name: ID_INSTALL_UPGRADE_CUSTOM_BUTTON
      - name: ID_CUSTOM_INCLUDE_LAUNCHER_HELP_LABEL
      - name: ID_CUSTOM_INSTALL_BUTTON
      - name: ID_CUSTOM1_BACK_BUTTON
      - name: ID_MODIFY_BUTTON
      - name: ID_MODIFY_CANCEL_BUTTON
      - name: ID_CACHE_PROGRESS_TEXT
      - name: ID_EXECUTE_PROGRESS_ACTIONDATA_TEXT
      - name: ID_OVERALL_PROGRESS_TEXT
      - name: ID_FAILURE_RESTART_BUTTON
      - name: ID_OVERALL_CALCULATED_PROGRESS_BAR
      - name: ID_SUCCESS_CANCEL_BUTTON
      - name: ID_INSTALL_CUSTOM_BUTTON
      - name: ID_INSTALL_CANCEL_BUTTON
      - name: ID_CUSTOM_COMPILE_ALL_CHECKBOX
      - name: ID_CUSTOM_ASSOCIATE_FILES_CHECKBOX
      - name: ID_CUSTOM2_BACK_BUTTON
      - name: ID_CACHE_PROGRESS_PACKAGE_TEXT
      - name: ID_EXECUTE_PROGRESS_PACKAGE_TEXT
      - name: ID_OVERALL_PROGRESS_PACKAGE_TEXT
      - name: ID_PROGRESS_CANCEL_BUTTON
      - name: ID_SUCCESS_RESTART_BUTTON
      - name: ID_FAILURE_MESSAGE_TEXT
      - name: ID_SUCCESS_MAX_PATH_BUTTON
      - name: ID_INSTALL_SIMPLE_BUTTON
      - name: ID_MINIMIZE_BUTTON
      - name: ID_INSTALL_LAUNCHER_ALL_USERS_CHECKBOX
      - name: ID_CUSTOM_BROWSE_BUTTON
      - name: ID_CUSTOM_INSTALL_ALL_USERS_CHECKBOX
      - name: ID_CUSTOM1_CANCEL_BUTTON
      - name: ID_REPAIR_BUTTON
      - name: ID_EXECUTE_PROGRESS_BAR
      - name: ID_OVERALL_PROGRESS_BAR
      - name: ID_SUCCESS_TEXT
      - name: ID_SUCCESS_RESTART_TEXT
      - name: ID_FAILURE_CANCEL_BUTTON
      - name: ID_INSTALL_BUTTON
      - name: ID_INSTALL_UPGRADE_BUTTON
      - name: ID_TARGETDIR_EDITBOX
      - name: ID_CUSTOM_INSTALL_LAUNCHER_ALL_USERS_CHECKBOX
      - name: ID_CUSTOM_NEXT_BUTTON
      - name: ID_CUSTOM_BROWSE_BUTTON_LABEL
      - name: ID_CUSTOM2_CANCEL_BUTTON
      - name: ID_UNINSTALL_BUTTON
      - name: ID_CACHE_PROGRESS_BAR
      - name: ID_EXECUTE_PROGRESS_TEXT
      - name: ID_FAILURE_LOGFILE_LINK
      - name: ID_FAILURE_RESTART_TEXT
      item_type: enum
      name: CONTROL_ID
      pos:
        line_end: 139
        line_start: 73
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    preproc_defs: []
    structs:
    - fields:
      - name: regName
        type: LPCWSTR
      - name: variableName
        type: LPCWSTR
      item_type: struct
      name: "OPTIONAL_FEATURES[] = {\n    { L\"core_d\", L\"Include_debug\" },\n    {
        L\"core_pdb\", L\"Include_symbols\" },\n    { L\"dev\", L\"Include_dev\" },\n
        \   { L\"doc\", L\"Include_doc\" },\n    { L\"exe\", L\"Include_exe\" },\n
        \   { L\"lib\", L\"Include_lib\" },\n    { L\"path\", L\"PrependPath\" },\n
        \   { L\"pip\", L\"Include_pip\" },\n    { L\"tcltk\", L\"Include_tcltk\"
        },\n    { L\"test\", L\"Include_test\" },\n    { L\"tools\", L\"Include_tools\"
        },\n    { L\"Shortcuts\", L\"Shortcuts\" },\n    // Include_launcher and AssociateFiles
        are handled separately and so do\n    // not need to be included in this list.\n
        \   { nullptr, nullptr }\n}"
      pos:
        line_end: 199
        line_start: 199
        source_file: /src/Python-3.8.3/Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
    typedefs: []
    union: []
- function_names:
  - get_encoded_name
  - _PyImport_LoadDynamicModuleWithSpec
  source_file: /src/Python-3.8.3/Python/importdl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - append_charp
  - APPEND_STR_FINISH
  - APPEND_STR
  - APPEND_STR_IF
  - APPEND_STR_IF_NOT_FIRST
  - APPEND_EXPR
  - APPEND
  - append_repr
  - append_ast_boolop
  - append_ast_binop
  - append_ast_unaryop
  - append_ast_arg
  - append_ast_args
  - append_ast_lambda
  - append_ast_ifexp
  - append_ast_dict
  - append_ast_set
  - append_ast_list
  - append_ast_tuple
  - append_ast_comprehension
  - append_ast_comprehensions
  - append_ast_genexp
  - append_ast_listcomp
  - append_ast_setcomp
  - append_ast_dictcomp
  - append_ast_compare
  - append_ast_keyword
  - append_ast_call
  - escape_braces
  - append_fstring_unicode
  - append_fstring_element
  - build_fstring_body
  - append_joinedstr
  - append_formattedvalue
  - append_ast_attribute
  - append_ast_simple_slice
  - append_ast_ext_slice
  - append_ast_slice
  - append_ast_subscript
  - append_ast_starred
  - append_ast_yield
  - append_ast_yield_from
  - append_ast_await
  - append_named_expr
  - append_ast_expr
  - maybe_init_static_strings
  - expr_as_unicode
  - _PyAST_ExprAsUnicode
  source_file: /src/Python-3.8.3/Python/ast_unparse.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - block_new
  - block_free
  - block_alloc
  - PyArena_New
  - PyArena_Free
  - PyArena_Malloc
  - PyArena_AddPyObject
  source_file: /src/Python-3.8.3/Python/pyarena.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BLOCK_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Python/pyarena.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: ALIGNMENT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Python/pyarena.c
      type_or_value: '8'
    structs:
    - fields:
      - name: ab_size
        type: size_t
      - name: ab_offset
        type: size_t
      - name: '*ab_next'
        type: struct _block
      - name: '*ab_mem'
        type: void
      item_type: struct
      name: _block
      pos:
        line_end: 37
        line_start: 15
        source_file: /src/Python-3.8.3/Python/pyarena.c
    - fields:
      - name: '*a_head'
        type: block
      - name: '*a_cur'
        type: block
      - name: '*a_objects'
        type: PyObject
      item_type: struct
      name: _arena
      pos:
        line_end: 72
        line_start: 44
        source_file: /src/Python-3.8.3/Python/pyarena.c
    typedefs: []
    union: []
- function_names:
  - Py_GetCopyright
  source_file: /src/Python-3.8.3/Python/getcopyright.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - COMPUTE_EVAL_BREAKER
  - SET_GIL_DROP_REQUEST
  - RESET_GIL_DROP_REQUEST
  - SIGNAL_PENDING_CALLS
  - UNSIGNAL_PENDING_CALLS
  - SIGNAL_PENDING_SIGNALS
  - UNSIGNAL_PENDING_SIGNALS
  - SIGNAL_ASYNC_EXC
  - UNSIGNAL_ASYNC_EXC
  - PyEval_ThreadsInitialized
  - PyEval_InitThreads
  - _PyEval_FiniThreads
  - exit_thread_if_finalizing
  - _PyEval_Fini
  - PyEval_AcquireLock
  - PyEval_ReleaseLock
  - PyEval_AcquireThread
  - PyEval_ReleaseThread
  - _PyEval_ReInitThreads
  - _PyEval_SignalAsyncExc
  - PyEval_SaveThread
  - PyEval_RestoreThread
  - _PyEval_SignalReceived
  - _push_pending_call
  - _pop_pending_call
  - _PyEval_AddPendingCall
  - Py_AddPendingCall
  - handle_signals
  - make_pending_calls
  - _Py_FinishPendingCalls
  - Py_MakePendingCalls
  - _PyEval_Initialize
  - Py_GetRecursionLimit
  - Py_SetRecursionLimit
  - _Py_CheckRecursiveCall
  - _Py_TracingPossible
  - PyEval_EvalCode
  - PyEval_EvalFrame
  - PyEval_EvalFrameEx
  - TARGET
  - FAST_DISPATCH
  - FAST_DISPATCH
  - DISPATCH
  - TARGET
  - FAST_DISPATCH
  - DISPATCH
  - GETITEM
  - GETITEM
  - INSTR_OFFSET
  - NEXTOPARG
  - JUMPTO
  - JUMPBY
  - PREDICT
  - PREDICT
  - PREDICTED
  - STACK_LEVEL
  - EMPTY
  - TOP
  - SECOND
  - THIRD
  - FOURTH
  - PEEK
  - SET_TOP
  - SET_SECOND
  - SET_THIRD
  - SET_FOURTH
  - SET_VALUE
  - BASIC_STACKADJ
  - BASIC_PUSH
  - BASIC_POP
  - PUSH
  - POP
  - STACK_GROW
  - STACK_SHRINK
  - EXT_POP
  - PUSH
  - POP
  - STACK_GROW
  - STACK_SHRINK
  - EXT_POP
  - GETLOCAL
  - SETLOCAL
  - UNWIND_BLOCK
  - UNWIND_EXCEPT_HANDLER
  - OPCACHE_CHECK
  - OPCACHE_STAT_GLOBAL_HIT
  - OPCACHE_STAT_GLOBAL_MISS
  - OPCACHE_STAT_GLOBAL_OPT
  - format_missing
  - missing_arguments
  - too_many_positional
  - positional_only_passed_as_keyword
  - _PyEval_EvalCodeWithName
  - PyEval_EvalCodeEx
  - special_lookup
  - do_raise
  - unpack_iterable
  - prtrace
  - call_exc_trace
  - call_trace_protected
  - call_trace
  - _PyEval_CallTracing
  - maybe_call_line_trace
  - PyEval_SetProfile
  - PyEval_SetTrace
  - _PyEval_SetCoroutineOriginTrackingDepth
  - _PyEval_GetCoroutineOriginTrackingDepth
  - _PyEval_GetAsyncGenFirstiter
  - _PyEval_GetAsyncGenFinalizer
  - _PyEval_GetFrame
  - PyEval_GetFrame
  - PyEval_GetBuiltins
  - _PyEval_GetBuiltinId
  - PyEval_GetLocals
  - PyEval_GetGlobals
  - PyEval_MergeCompilerFlags
  - PyEval_GetFuncName
  - PyEval_GetFuncDesc
  - trace_call_function
  - call_function
  - do_call_core
  - _PyEval_SliceIndex
  - _PyEval_SliceIndexNotNone
  - cmp_outcome
  - import_name
  - import_from
  - import_all_from
  - check_args_iterable
  - format_kwargs_error
  - format_exc_check_arg
  - format_exc_unbound
  - format_awaitable_error
  - unicode_concatenate
  - getarray
  - _Py_GetDXProfile
  - _PyEval_RequestCodeExtraIndex
  - dtrace_function_entry
  - dtrace_function_return
  - maybe_dtrace_line
  source_file: /src/Python-3.8.3/Python/ceval.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LLTRACE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '1      '
    - item_type: preproc_def
      name: CHECKEXC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '1      '
    - item_type: preproc_def
      name: NAME_ERROR_MSG
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '"name ''%.200s'' is not defined"'
    - item_type: preproc_def
      name: UNBOUNDLOCAL_ERROR_MSG
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '"local variable ''%.200s'' referenced before assignment"'
    - item_type: preproc_def
      name: UNBOUNDFREE_ERROR_MSG
      pos:
        line_end: 93
        line_start: 90
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: "\"free variable '%.200s' referenced before assignment\" \\\n
        \   \" in enclosing scope\""
    - item_type: preproc_def
      name: dxp
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: dxpairs[256]
    - item_type: preproc_def
      name: OPCACHE_MIN_RUNS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: OPCACHE_MIN_RUNS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '1024  '
    - item_type: preproc_def
      name: OPCACHE_STATS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: GIL_REQUEST
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: _Py_atomic_load_relaxed(&ceval->gil_drop_request)
    - item_type: preproc_def
      name: Py_DEFAULT_RECURSION_LIMIT
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: USE_COMPUTED_GOTOS
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USE_COMPUTED_GOTOS
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '1'
    - item_type: preproc_def
      name: USE_COMPUTED_GOTOS
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CANNOT_CATCH_MSG
      pos:
        line_end: 5063
        line_start: 5061
        source_file: /src/Python-3.8.3/Python/ceval.c
      type_or_value: "\"catching classes that do not inherit from \"\\\n                         \"BaseException
        is not allowed\""
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*callproc)(PyObject *, PyObject *, PyObject *)'
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/Python-3.8.3/Python/ceval.c
      type: PyObject
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/importdl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXSUFFIXSIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Python/importdl.h
      type_or_value: '12'
    structs: []
    typedefs:
    - item_type: typedef
      name: dl_funcptr
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/Python-3.8.3/Python/importdl.h
      type: FARPROC
    - item_type: typedef
      name: (*dl_funcptr)(void)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/Python-3.8.3/Python/importdl.h
      type: void
    union: []
- function_names:
  - PyFPE_dummy
  source_file: /src/Python-3.8.3/Python/pyfpe.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UNCONDITIONAL_JUMP
  - CONDITIONAL_JUMP
  - ABSOLUTE_JUMP
  - JUMPS_ON_TRUE
  - GETJUMPTGT
  - ISBASICBLOCK
  - lastn_const_start
  - find_op
  - get_arg
  - fill_nops
  - set_arg
  - copy_op_arg
  - fold_tuple_on_constants
  - markblocks
  - PyCode_Optimize
  source_file: /src/Python-3.8.3/Python/peephole.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - 'OFF'
  - PUTS
  - tb_create_raw
  - tb_new_impl
  - tb_dir
  - tb_next_get
  - tb_next_set
  - tb_dealloc
  - tb_traverse
  - tb_clear
  - _PyTraceBack_FromFrame
  - PyTraceBack_Here
  - _PyTraceback_Add
  - _Py_FindSourceFile
  - _Py_DisplaySourceLine
  - tb_displayline
  - tb_print_line_repeated
  - tb_printinternal
  - PyTraceBack_Print
  - _Py_DumpDecimal
  - _Py_DumpHexadecimal
  - _Py_DumpASCII
  - dump_frame
  - dump_traceback
  - _Py_DumpTraceback
  - write_thread_id
  - _Py_DumpTracebackThreads
  - do
  source_file: /src/Python-3.8.3/Python/traceback.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STRING_LENGTH
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Python/traceback.c
      type_or_value: '500'
    - item_type: preproc_def
      name: MAX_FRAME_DEPTH
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Python/traceback.c
      type_or_value: '100'
    - item_type: preproc_def
      name: MAX_NTHREADS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Python/traceback.c
      type_or_value: '100'
    - item_type: preproc_def
      name: PyTraceBack_LIMIT
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/Python-3.8.3/Python/traceback.c
      type_or_value: '1000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyRuntimeGILState_GetThreadState
  - _PyRuntimeGILState_SetThreadState
  - _PyRuntimeState_Init_impl
  - _PyRuntimeState_Init
  - _PyRuntimeState_Fini
  - _PyRuntimeState_ReInitThreads
  - HEAD_LOCK
  - HEAD_UNLOCK
  - _PyInterpreterState_Enable
  - PyInterpreterState_New
  - _PyInterpreterState_Clear
  - PyInterpreterState_Clear
  - zapthreads
  - _PyInterpreterState_Delete
  - PyInterpreterState_Delete
  - _PyInterpreterState_DeleteExceptMain
  - _PyInterpreterState_Get
  - PyInterpreterState_GetID
  - interp_look_up_id
  - _PyInterpreterState_LookUpID
  - _PyInterpreterState_IDInitref
  - _PyInterpreterState_IDIncref
  - _PyInterpreterState_IDDecref
  - _PyInterpreterState_RequiresIDRef
  - _PyInterpreterState_RequireIDRef
  - _PyInterpreterState_GetMainModule
  - PyInterpreterState_GetDict
  - threadstate_getframe
  - new_threadstate
  - PyThreadState_New
  - _PyThreadState_Prealloc
  - _PyThreadState_Init
  - PyState_FindModule
  - _PyState_AddModule
  - PyState_AddModule
  - PyState_RemoveModule
  - _PyState_ClearModules
  - PyThreadState_Clear
  - tstate_delete_common
  - _PyThreadState_Delete
  - PyThreadState_Delete
  - _PyThreadState_DeleteCurrent
  - PyThreadState_DeleteCurrent
  - _PyThreadState_DeleteExcept
  - _PyThreadState_UncheckedGet
  - PyThreadState_Get
  - _PyThreadState_Swap
  - PyThreadState_Swap
  - PyThreadState_GetDict
  - PyThreadState_SetAsyncExc
  - PyInterpreterState_Head
  - PyInterpreterState_Main
  - PyInterpreterState_Next
  - PyInterpreterState_ThreadHead
  - PyThreadState_Next
  - _PyThread_CurrentFrames
  - PyThreadState_IsCurrent
  - _PyGILState_Init
  - _PyGILState_GetInterpreterStateUnsafe
  - _PyGILState_Fini
  - _PyGILState_Reinit
  - _PyGILState_NoteThreadState
  - _PyGILState_GetThisThreadState
  - PyGILState_GetThisThreadState
  - PyGILState_Check
  - PyGILState_Ensure
  - PyGILState_Release
  - _lookup_getdata
  - _PyObject_CheckCrossInterpreterData
  - _check_xidata
  - _PyObject_GetCrossInterpreterData
  - _release_xidata
  - _call_in_interpreter
  - _PyCrossInterpreterData_Release
  - _PyCrossInterpreterData_NewObject
  - _register_xidata
  - _PyCrossInterpreterData_RegisterClass
  - _PyCrossInterpreterData_Lookup
  - _new_bytes_object
  - _bytes_shared
  - _new_str_object
  - _str_shared
  - _new_long_object
  - _long_shared
  - _new_none_object
  - _none_shared
  - _register_builtins_for_crossinterpreter_data
  source_file: /src/Python-3.8.3/Python/pystate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RTLD_LAZY
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Python/pystate.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*bytes'
        type: char
      - name: len
        type: Py_ssize_t
      item_type: struct
      name: _shared_bytes_data
      pos:
        line_end: 1598
        line_start: 1595
        source_file: /src/Python-3.8.3/Python/pystate.c
    - fields:
      - name: kind
        type: int
      - name: '*buffer'
        type: void
      - name: len
        type: Py_ssize_t
      item_type: struct
      name: _shared_str_data
      pos:
        line_end: 1626
        line_start: 1622
        source_file: /src/Python-3.8.3/Python/pystate.c
    typedefs: []
    union: []
- function_names:
  - PyOS_mystrnicmp
  - PyOS_mystricmp
  source_file: /src/Python-3.8.3/Python/pystrcmp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PACKOPARG
  - PACKOPARG
  - instrsize
  - write_op_arg
  source_file: /src/Python-3.8.3/Python/wordcode_helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyOS_snprintf
  - PyOS_vsnprintf
  source_file: /src/Python-3.8.3/Python/mysnprintf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyOS_vsnprintf_EXTRA_SPACE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
      type_or_value: '1'
    - item_type: preproc_def
      name: _PyOS_vsnprintf_EXTRA_SPACE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Python/mysnprintf.c
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ste_new
  - ste_repr
  - ste_dealloc
  - 'OFF'
  - GET_IDENTIFIER
  - symtable_new
  - PySymtable_BuildObject
  - PySymtable_Build
  - PySymtable_Free
  - PySymtable_Lookup
  - _PyST_GetSymbol
  - PyST_GetScope
  - error_at_directive
  - SET_SCOPE
  - analyze_name
  - analyze_cells
  - drop_class_free
  - update_symbols
  - analyze_block
  - analyze_child_block
  - symtable_analyze
  - symtable_exit_block
  - symtable_enter_block
  - symtable_lookup
  - symtable_add_def_helper
  - symtable_add_def
  - VISIT_QUIT
  - VISIT
  - symtable_record_directive
  - symtable_visit_stmt
  - symtable_extend_namedexpr_scope
  - symtable_handle_namedexpr
  - symtable_visit_expr
  - symtable_implicit_arg
  - symtable_visit_params
  - symtable_visit_argannotations
  - symtable_visit_annotations
  - symtable_visit_arguments
  - symtable_visit_excepthandler
  - symtable_visit_withitem
  - symtable_visit_alias
  - symtable_visit_comprehension
  - symtable_visit_keyword
  - symtable_visit_slice
  - symtable_handle_comprehension
  - symtable_visit_genexp
  - symtable_visit_listcomp
  - symtable_visit_setcomp
  - symtable_visit_dictcomp
  source_file: /src/Python-3.8.3/Python/symtable.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOBAL_PARAM
      pos:
        line_end: 9
        line_start: 7
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is parameter and global"'
    - item_type: preproc_def
      name: NONLOCAL_PARAM
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is parameter and nonlocal"'
    - item_type: preproc_def
      name: GLOBAL_AFTER_ASSIGN
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is assigned to before global declaration"'
    - item_type: preproc_def
      name: NONLOCAL_AFTER_ASSIGN
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is assigned to before nonlocal declaration"'
    - item_type: preproc_def
      name: GLOBAL_AFTER_USE
      pos:
        line_end: 21
        line_start: 19
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is used prior to global declaration"'
    - item_type: preproc_def
      name: NONLOCAL_AFTER_USE
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"name ''%U'' is used prior to nonlocal declaration"'
    - item_type: preproc_def
      name: GLOBAL_ANNOT
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"annotated name ''%U'' can''t be global"'
    - item_type: preproc_def
      name: NONLOCAL_ANNOT
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"annotated name ''%U'' can''t be nonlocal"'
    - item_type: preproc_def
      name: IMPORT_STAR_WARNING
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"import * only allowed at module level"'
    - item_type: preproc_def
      name: NAMED_EXPR_COMP_IN_CLASS
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"assignment expression within a comprehension cannot be used
        in a class body"'
    - item_type: preproc_def
      name: NAMED_EXPR_COMP_CONFLICT
      pos:
        line_end: 38
        line_start: 36
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"assignment expression cannot rebind comprehension iteration
        variable ''%U''"'
    - item_type: preproc_def
      name: NAMED_EXPR_COMP_INNER_LOOP_CONFLICT
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"comprehension inner loop cannot rebind assignment expression
        target ''%U''"'
    - item_type: preproc_def
      name: NAMED_EXPR_COMP_ITER_EXPR
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"assignment expression cannot be used in a comprehension iterable
        expression"'
    - item_type: preproc_def
      name: DUPLICATE_ARGUMENT
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '"duplicate argument ''%U'' in function definition"'
    - item_type: preproc_def
      name: COMPILER_STACK_FRAME_SCALE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: '3'
    - item_type: preproc_def
      name: for
      pos:
        line_end: 1130
        line_start: 1121
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: "(i = 0; i < asdl_seq_LEN(seq); i++) { \\\n        TYPE ## _ty
        elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \\\n        if (!symtable_visit_
        ## TYPE((ST), elt)) \\\n            VISIT_QUIT((ST), 0);                 \\\n
        \   } \\\n}"
    - item_type: preproc_def
      name: for
      pos:
        line_end: 1140
        line_start: 1131
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: "(i = (START); i < asdl_seq_LEN(seq); i++) { \\\n        TYPE
        ## _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, i); \\\n        if (!symtable_visit_
        ## TYPE((ST), elt)) \\\n            VISIT_QUIT((ST), 0);                 \\\n
        \   } \\\n}"
    - item_type: preproc_def
      name: if
      pos:
        line_end: 1151
        line_start: 1141
        source_file: /src/Python-3.8.3/Python/symtable.c
      type_or_value: "(!symtable_visit_ ## TYPE((ST), elt)) \\\n            VISIT_QUIT((ST),
        0);             \\\n    } \\\n}"
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_force_double
  - _Py_get_387controlword
  - _Py_set_387controlword
  - hypot
  - copysign
  - round
  source_file: /src/Python-3.8.3/Python/pymath.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/importlib_external.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_strhex_impl
  - _Py_strhex
  - _Py_strhex_bytes
  - _Py_strhex_with_sep
  - _Py_strhex_bytes_with_sep
  source_file: /src/Python-3.8.3/Python/pystrhex.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AnnotateRWLockCreate
  - AnnotateRWLockDestroy
  - AnnotateRWLockAcquired
  - AnnotateRWLockReleased
  - AnnotateBarrierInit
  - AnnotateBarrierWaitBefore
  - AnnotateBarrierWaitAfter
  - AnnotateBarrierDestroy
  - AnnotateCondVarWait
  - AnnotateCondVarSignal
  - AnnotateCondVarSignalAll
  - AnnotatePublishMemoryRange
  - AnnotateUnpublishMemoryRange
  - AnnotatePCQCreate
  - AnnotatePCQDestroy
  - AnnotatePCQPut
  - AnnotatePCQGet
  - AnnotateNewMemory
  - AnnotateExpectRace
  - AnnotateBenignRace
  - AnnotateBenignRaceSized
  - AnnotateMutexIsUsedAsCondVar
  - AnnotateTraceMemory
  - AnnotateThreadName
  - AnnotateIgnoreReadsBegin
  - AnnotateIgnoreReadsEnd
  - AnnotateIgnoreWritesBegin
  - AnnotateIgnoreWritesEnd
  - AnnotateIgnoreSyncBegin
  - AnnotateIgnoreSyncEnd
  - AnnotateEnableRaceDetection
  - AnnotateNoOp
  - AnnotateFlushState
  - GetRunningOnValgrind
  - RunningOnValgrind
  source_file: /src/Python-3.8.3/Python/dynamic_annotations.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - case_insensitive_match
  - _Py_parse_inf_or_nan
  - _Py_parse_inf_or_nan
  - _PyOS_ascii_strtod
  - _PyOS_ascii_strtod
  - PyOS_string_to_double
  - _Py_string_to_number_with_underscores
  - change_decimal_from_locale_to_dot
  - ensure_minimum_exponent_length
  - remove_trailing_zeros
  - ensure_decimal_point
  - _PyOS_ascii_formatd
  - PyOS_double_to_string
  - format_float_short
  - PyOS_double_to_string
  source_file: /src/Python-3.8.3/Python/pystrtod.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_EXPONENT_DIGITS
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/Python-3.8.3/Python/pystrtod.c
      type_or_value: '2'
    - item_type: preproc_def
      name: FLOAT_FORMATBUFLEN
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/Python-3.8.3/Python/pystrtod.c
      type_or_value: '120'
    - item_type: preproc_def
      name: OFS_INF
      pos:
        line_end: 951
        line_start: 950
        source_file: /src/Python-3.8.3/Python/pystrtod.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OFS_NAN
      pos:
        line_end: 952
        line_start: 951
        source_file: /src/Python-3.8.3/Python/pystrtod.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OFS_E
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/Python-3.8.3/Python/pystrtod.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/graminit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyOS_ResetGetOpt
  - _PyOS_GetOpt
  source_file: /src/Python-3.8.3/Python/getopt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHORT_OPTS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Python/getopt.c
      type_or_value: L"bBc:dEhiIJm:OqRsStuvVW:xX:?"
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_TOP_LEVEL_AWAIT
  - _Py_Mangle
  - compiler_init
  - PyAST_CompileObject
  - PyAST_CompileEx
  - PyNode_Compile
  - compiler_free
  - list2dict
  - dictbytype
  - compiler_unit_check
  - compiler_unit_free
  - compiler_enter_scope
  - compiler_exit_scope
  - compiler_set_qualname
  - compiler_new_block
  - compiler_next_block
  - compiler_use_next_block
  - compiler_next_instr
  - compiler_set_lineno
  - stack_effect
  - PyCompile_OpcodeStackEffectWithJump
  - PyCompile_OpcodeStackEffect
  - compiler_addop
  - compiler_add_o
  - merge_consts_recursive
  - compiler_add_const
  - compiler_addop_load_const
  - compiler_addop_o
  - compiler_addop_name
  - compiler_addop_i
  - compiler_addop_j
  - NEXT_BLOCK
  - ADDOP
  - ADDOP_IN_SCOPE
  - ADDOP_LOAD_CONST
  - ADDOP_LOAD_CONST_NEW
  - ADDOP_O
  - ADDOP_N
  - ADDOP_NAME
  - ADDOP_I
  - ADDOP_JABS
  - ADDOP_JREL
  - VISIT
  - VISIT_IN_SCOPE
  - VISIT_SLICE
  - find_ann
  - compiler_push_fblock
  - compiler_pop_fblock
  - compiler_unwind_fblock
  - compiler_body
  - compiler_mod
  - get_ref_type
  - compiler_lookup_arg
  - compiler_make_closure
  - compiler_decorators
  - compiler_visit_kwonlydefaults
  - compiler_visit_annexpr
  - compiler_visit_argannotation
  - compiler_visit_argannotations
  - compiler_visit_annotations
  - compiler_visit_defaults
  - compiler_default_arguments
  - compiler_function
  - compiler_class
  - check_is_arg
  - check_compare
  - cmpop
  - compiler_jump_if
  - compiler_ifexp
  - compiler_lambda
  - compiler_if
  - compiler_for
  - compiler_async_for
  - compiler_while
  - compiler_return
  - compiler_break
  - compiler_continue
  - compiler_try_finally
  - compiler_try_except
  - compiler_try
  - compiler_import_as
  - compiler_import
  - compiler_from_import
  - compiler_assert
  - compiler_visit_stmt_expr
  - compiler_visit_stmt
  - unaryop
  - binop
  - inplace_binop
  - compiler_nameop
  - compiler_boolop
  - starunpack_helper
  - assignment_helper
  - compiler_list
  - compiler_tuple
  - compiler_set
  - are_all_items_const
  - compiler_subdict
  - compiler_dict
  - compiler_compare
  - infer_type
  - check_caller
  - check_subscripter
  - check_index
  - maybe_optimize_method_call
  - compiler_call
  - compiler_joined_str
  - compiler_formatted_value
  - compiler_subkwargs
  - compiler_call_helper
  - compiler_comprehension_generator
  - compiler_sync_comprehension_generator
  - compiler_async_comprehension_generator
  - compiler_comprehension
  - compiler_genexp
  - compiler_listcomp
  - compiler_setcomp
  - compiler_dictcomp
  - compiler_visit_keyword
  - expr_constant
  - compiler_async_with
  - compiler_with
  - compiler_visit_expr1
  - compiler_visit_expr
  - compiler_augassign
  - check_ann_expr
  - check_annotation
  - check_ann_slice
  - check_ann_subscr
  - compiler_annassign
  - compiler_error
  - compiler_warn
  - compiler_handle_subscr
  - compiler_slice
  - compiler_visit_nested_slice
  - compiler_visit_slice
  - dfs
  - stackdepth_push
  - stackdepth
  - assemble_init
  - assemble_free
  - blocksize
  - assemble_lnotab
  - assemble_emit
  - assemble_jump_offsets
  - dict_keys_inorder
  - consts_dict_keys_inorder
  - compute_code_flags
  - merge_const_tuple
  - makecode
  - dump_instr
  - dump_basicblock
  - assemble
  - PyAST_Compile
  source_file: /src/Python-3.8.3/Python/compile.c
  types:
    enum:
    - enumerators:
      - name: WHILE_LOOP
      - name: EXCEPT
      - name: FINALLY_TRY2
      - name: FINALLY_TRY
      - name: FOR_LOOP
      - name: FINALLY_END
      - name: WITH
      - name: ASYNC_WITH
      - name: HANDLER_CLEANUP
      item_type: enum
      name: fblocktype
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Python/compile.c
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_BLOCK_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DEFAULT_BLOCKS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '8'
    - item_type: preproc_def
      name: DEFAULT_CODE_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '128'
    - item_type: preproc_def
      name: DEFAULT_LNOTAB_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '16'
    - item_type: preproc_def
      name: COMP_GENEXP
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COMP_LISTCOMP
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COMP_SETCOMP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COMP_DICTCOMP
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CAPSULE_NAME
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: '"compile.c compiler unit"'
    - item_type: preproc_def
      name: for
      pos:
        line_end: 1546
        line_start: 1537
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: "(_i = 0; _i < asdl_seq_LEN(seq); _i++) { \\\n        TYPE ##
        _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, _i); \\\n        if (!compiler_visit_
        ## TYPE((C), elt)) \\\n            return 0; \\\n    } \\\n}"
    - item_type: preproc_def
      name: for
      pos:
        line_end: 1558
        line_start: 1547
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: "(_i = 0; _i < asdl_seq_LEN(seq); _i++) { \\\n        TYPE ##
        _ty elt = (TYPE ## _ty)asdl_seq_GET(seq, _i); \\\n        if (!compiler_visit_
        ## TYPE((C), elt)) { \\\n            compiler_exit_scope(c); \\\n            return
        0; \\\n        } \\\n    } \\\n}"
    - item_type: preproc_def
      name: BEGIN_DO_NOT_EMIT_BYTECODE
      pos:
        line_end: 1565
        line_start: 1563
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: "{ \\\n    c->c_do_not_emit_bytecode++;"
    - item_type: preproc_def
      name: END_DO_NOT_EMIT_BYTECODE
      pos:
        line_end: 1569
        line_start: 1566
        source_file: /src/Python-3.8.3/Python/compile.c
      type_or_value: 'c->c_do_not_emit_bytecode--; \

        }'
    structs:
    - fields:
      - name: i_jabs
        type: unsigned
      - name: i_jrel
        type: unsigned
      - name: i_opcode
        type: unsigned char
      - name: i_oparg
        type: int
      - name: '*i_target'
        type: struct basicblock_
      - name: i_lineno
        type: int
      item_type: struct
      name: instr
      pos:
        line_end: 54
        line_start: 47
        source_file: /src/Python-3.8.3/Python/compile.c
    - fields:
      - name: '*b_list'
        type: struct basicblock_
      - name: b_iused
        type: int
      - name: b_ialloc
        type: int
      - name: '*b_instr'
        type: struct instr
      - name: '*b_next'
        type: struct basicblock_
      - name: b_seen
        type: unsigned
      - name: b_return
        type: unsigned
      - name: b_startdepth
        type: int
      - name: b_offset
        type: int
      item_type: struct
      name: basicblock_
      pos:
        line_end: 78
        line_start: 56
        source_file: /src/Python-3.8.3/Python/compile.c
    - fields:
      - name: fb_type
        type: enum fblocktype
      - name: '*fb_block'
        type: basicblock
      - name: '*fb_exit'
        type: basicblock
      item_type: struct
      name: fblockinfo
      pos:
        line_end: 95
        line_start: 90
        source_file: /src/Python-3.8.3/Python/compile.c
    - fields:
      - name: '*u_ste'
        type: PySTEntryObject
      - name: '*u_name'
        type: PyObject
      - name: '*u_qualname'
        type: PyObject
      - name: u_scope_type
        type: int
      - name: '*u_consts'
        type: PyObject
      - name: '*u_names'
        type: PyObject
      - name: '*u_varnames'
        type: PyObject
      - name: '*u_cellvars'
        type: PyObject
      - name: '*u_freevars'
        type: PyObject
      - name: '*u_private'
        type: PyObject
      - name: u_argcount
        type: Py_ssize_t
      - name: u_posonlyargcount
        type: Py_ssize_t
      - name: u_kwonlyargcount
        type: Py_ssize_t
      - name: '*u_blocks'
        type: basicblock
      - name: '*u_curblock'
        type: basicblock
      - name: u_nfblocks
        type: int
      - name: u_fblock[CO_MAXBLOCKS]
        type: struct fblockinfo
      - name: u_firstlineno
        type: int
      - name: u_lineno
        type: int
      - name: u_col_offset
        type: int
      - name: u_lineno_set
        type: int
      item_type: struct
      name: compiler_unit
      pos:
        line_end: 144
        line_start: 109
        source_file: /src/Python-3.8.3/Python/compile.c
    - fields:
      - name: '*c_filename'
        type: PyObject
      - name: '*c_st'
        type: struct symtable
      - name: '*c_future'
        type: PyFutureFeatures
      - name: '*c_flags'
        type: PyCompilerFlags
      - name: c_optimize
        type: int
      - name: c_interactive
        type: int
      - name: c_nestlevel
        type: int
      - name: c_do_not_emit_bytecode
        type: int
      - name: '*c_const_cache'
        type: PyObject
      - name: '*u'
        type: struct compiler_unit
      - name: '*c_stack'
        type: PyObject
      - name: '*c_arena'
        type: PyArena
      item_type: struct
      name: compiler
      pos:
        line_end: 178
        line_start: 158
        source_file: /src/Python-3.8.3/Python/compile.c
    - fields:
      - name: '*a_bytecode'
        type: PyObject
      - name: a_offset
        type: int
      - name: a_nblocks
        type: int
      - name: '**a_postorder'
        type: basicblock
      - name: '*a_lnotab'
        type: PyObject
      - name: a_lnotab_off
        type: int
      - name: a_lineno
        type: int
      - name: a_lineno_off
        type: int
      item_type: struct
      name: assembler
      pos:
        line_end: 5408
        line_start: 5399
        source_file: /src/Python-3.8.3/Python/compile.c
    typedefs: []
    union: []
- function_names:
  - _PyImport_FindSharedFuncptr
  source_file: /src/Python-3.8.3/Python/dynload_hpux.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUNCNAME_PATTERN
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Python/dynload_hpux.c
      type_or_value: '"_%.20s_%.200s"'
    - item_type: preproc_def
      name: FUNCNAME_PATTERN
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Python/dynload_hpux.c
      type_or_value: '"%.20s_%.200s"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Py_FrozenMain
  source_file: /src/Python-3.8.3/Python/frozenmain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DWORD_AT
  - WORD_AT
  - GetPythonImport
  - _PyImport_FindSharedFuncptrWindows
  source_file: /src/Python-3.8.3/Python/dynload_win.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYD_DEBUG_SUFFIX
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Python/dynload_win.c
      type_or_value: '"_d"'
    - item_type: preproc_def
      name: PYD_DEBUG_SUFFIX
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Python/dynload_win.c
      type_or_value: '""'
    - item_type: preproc_def
      name: PYD_TAGGED_SUFFIX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Python/dynload_win.c
      type_or_value: PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION)
        "-" PYD_PLATFORM_TAG ".pyd"
    - item_type: preproc_def
      name: PYD_TAGGED_SUFFIX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Python/dynload_win.c
      type_or_value: PYD_DEBUG_SUFFIX ".cp" Py_STRINGIFY(PY_MAJOR_VERSION) Py_STRINGIFY(PY_MINOR_VERSION)
        ".pyd"
    - item_type: preproc_def
      name: PYD_UNTAGGED_SUFFIX
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Python/dynload_win.c
      type_or_value: PYD_DEBUG_SUFFIX ".pyd"
    structs: []
    typedefs: []
    union: []
- function_names:
  - aix_getoldmodules
  - aix_loaderror
  - ERRBUF_APPEND
  - _PyImport_FindSharedFuncptr
  source_file: /src/Python-3.8.3/Python/dynload_aix.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: aix_load
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Python/dynload_aix.c
      type_or_value: loadAndInit
    - item_type: preproc_def
      name: aix_load
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Python/dynload_aix.c
      type_or_value: load
    structs:
    - fields:
      - name: '*next'
        type: struct Module
      - name: '*entry'
        type: void
      item_type: struct
      name: Module
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/Python-3.8.3/Python/dynload_aix.c
    - fields:
      - name: errNo
        type: int
      - name: '*errstr'
        type: char
      item_type: struct
      name: errtab
      pos:
        line_end: 113
        line_start: 110
        source_file: /src/Python-3.8.3/Python/dynload_aix.c
    typedefs: []
    union: []
- function_names:
  - _PyImport_Init
  - _PyImportHooks_Init
  - _PyImportZip_Init
  - _PyImport_AcquireLock
  - _PyImport_ReleaseLock
  - _PyImport_ReInitLock
  - _imp_lock_held_impl
  - _imp_acquire_lock_impl
  - _imp_release_lock_impl
  - _PyImport_Fini
  - _PyImport_Fini2
  - PyImport_GetModuleDict
  - _PyImport_IsInitialized
  - _PyImport_GetModuleId
  - _PyImport_SetModule
  - _PyImport_SetModuleString
  - PyImport_GetModule
  - PyImport_Cleanup
  - STORE_MODULE_WEAKREF
  - CLEAR_MODULE
  - PyImport_GetMagicNumber
  - PyImport_GetMagicTag
  - _PyImport_FixupExtensionObject
  - _PyImport_FixupBuiltin
  - _PyImport_FindExtensionObject
  - _PyImport_FindExtensionObjectEx
  - _PyImport_FindBuiltin
  - PyImport_AddModuleObject
  - _PyImport_AddModuleObject
  - PyImport_AddModule
  - remove_module
  - PyImport_ExecCodeModule
  - PyImport_ExecCodeModuleEx
  - PyImport_ExecCodeModuleWithPathnames
  - module_dict_for_exec
  - exec_code_in_module
  - PyImport_ExecCodeModuleObject
  - update_code_filenames
  - update_compiled_module
  - _imp__fix_co_filename_impl
  - is_builtin
  - get_path_importer
  - PyImport_GetImporter
  - _imp_create_builtin
  - find_frozen
  - get_frozen_object
  - is_frozen_package
  - PyImport_ImportFrozenModuleObject
  - PyImport_ImportFrozenModule
  - PyImport_ImportModule
  - PyImport_ImportModuleNoBlock
  - remove_importlib_frames
  - resolve_name
  - import_find_and_load
  - PyImport_ImportModuleLevelObject
  - PyImport_ImportModuleLevel
  - PyImport_ReloadModule
  - PyImport_Import
  - _imp_extension_suffixes_impl
  - _imp_init_frozen_impl
  - _imp_get_frozen_object_impl
  - _imp_is_frozen_package_impl
  - _imp_is_builtin_impl
  - _imp_is_frozen_impl
  - exec_builtin_or_dynamic
  - _imp_create_dynamic_impl
  - _imp_exec_dynamic_impl
  - _imp_exec_builtin_impl
  - _imp_source_hash_impl
  - PyInit__imp
  - PyImport_ExtendInittab
  - PyImport_AppendInittab
  source_file: /src/Python-3.8.3/Python/import.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CACHEDIR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Python/import.c
      type_or_value: '"__pycache__"'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: x
        type: uint64_t
      - name: data[sizeof(uint64_t)]
        type: char
      item_type: union
      name: hash
      pos:
        line_end: 2278
        line_start: 2275
        source_file: /src/Python-3.8.3/Python/import.c
- function_names:
  - PyMember_GetOne
  - WARN
  - PyMember_SetOne
  source_file: /src/Python-3.8.3/Python/structmember.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IS_ARRAY_NODE
  - IS_BITMAP_NODE
  - IS_COLLISION_NODE
  - _hamt_node_array_validate
  - VALIDATE_ARRAY_NODE
  - hamt_hash
  - hamt_mask
  - hamt_bitpos
  - hamt_bitcount
  - hamt_bitindex
  - _hamt_dump_ident
  - _hamt_dump_format
  - hamt_node_bitmap_new
  - hamt_node_bitmap_count
  - hamt_node_bitmap_clone
  - hamt_node_bitmap_clone_without
  - hamt_node_new_bitmap_or_collision
  - hamt_node_bitmap_assoc
  - hamt_node_bitmap_without
  - hamt_node_bitmap_find
  - hamt_node_bitmap_traverse
  - hamt_node_bitmap_dealloc
  - hamt_node_bitmap_dump
  - hamt_node_collision_new
  - hamt_node_collision_find_index
  - hamt_node_collision_assoc
  - hamt_node_collision_count
  - hamt_node_collision_without
  - hamt_node_collision_find
  - hamt_node_collision_traverse
  - hamt_node_collision_dealloc
  - hamt_node_collision_dump
  - hamt_node_array_new
  - hamt_node_array_clone
  - hamt_node_array_assoc
  - hamt_node_array_without
  - hamt_node_array_find
  - hamt_node_array_traverse
  - hamt_node_array_dealloc
  - hamt_node_array_dump
  - hamt_node_assoc
  - hamt_node_without
  - hamt_node_find
  - hamt_node_dump
  - hamt_iterator_init
  - hamt_iterator_bitmap_next
  - hamt_iterator_collision_next
  - hamt_iterator_array_next
  - hamt_iterator_next
  - _PyHamt_Assoc
  - _PyHamt_Without
  - hamt_find
  - _PyHamt_Find
  - _PyHamt_Eq
  - _PyHamt_Len
  - hamt_alloc
  - _PyHamt_New
  - hamt_dump
  - hamt_baseiter_tp_clear
  - hamt_baseiter_tp_dealloc
  - hamt_baseiter_tp_traverse
  - hamt_baseiter_tp_iternext
  - hamt_baseiter_tp_len
  - hamt_baseiter_new
  - hamt_iter_yield_items
  - _PyHamt_NewIterItems
  - hamt_iter_yield_keys
  - _PyHamt_NewIterKeys
  - hamt_iter_yield_values
  - _PyHamt_NewIterValues
  - hamt_tp_new
  - hamt_tp_clear
  - hamt_tp_traverse
  - hamt_tp_dealloc
  - hamt_tp_richcompare
  - hamt_tp_contains
  - hamt_tp_subscript
  - hamt_tp_len
  - hamt_tp_iter
  - hamt_py_set
  - hamt_py_get
  - hamt_py_delete
  - hamt_py_items
  - hamt_py_values
  - hamt_py_keys
  - hamt_py_dump
  - _PyHamt_Init
  - _PyHamt_Fini
  source_file: /src/Python-3.8.3/Python/hamt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAMT_ARRAY_NODE_SIZE
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/Python-3.8.3/Python/hamt.c
      type_or_value: '32'
    - item_type: preproc_def
      name: ITERATOR_TYPE_SHARED_SLOTS
      pos:
        line_end: 2628
        line_start: 2617
        source_file: /src/Python-3.8.3/Python/hamt.c
      type_or_value: ".tp_basicsize = sizeof(PyHamtIterator),                     \\\n
        \   .tp_itemsize = 0,                                           \\\n    .tp_as_mapping
        = &PyHamtIterator_as_mapping,                \\\n    .tp_dealloc = (destructor)hamt_baseiter_tp_dealloc,
        \        \\\n    .tp_getattro = PyObject_GenericGetAttr,                     \\\n
        \   .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,        \\\n    .tp_traverse
        = (traverseproc)hamt_baseiter_tp_traverse,     \\\n    .tp_clear = (inquiry)hamt_baseiter_tp_clear,
        \               \\\n    .tp_iter = PyObject_SelfIter,                               \\\n
        \   .tp_iternext = (iternextfunc)hamt_baseiter_tp_iternext,"
    structs:
    - fields:
      - name: '*a_array[HAMT_ARRAY_NODE_SIZE]'
        type: PyObject_HEAD
      - name: a_count
        type: Py_ssize_t
      item_type: struct
      name: PyHamtNode_Array
      pos:
        line_end: 317
        line_start: 313
        source_file: /src/Python-3.8.3/Python/hamt.c
    - fields:
      - name: uint32_t
        type: PyObject_VAR_HEAD
      - name: '*b_array[1]'
        type: PyObject
      item_type: struct
      name: PyHamtNode_Bitmap
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/Python-3.8.3/Python/hamt.c
    - fields:
      - name: int32_t
        type: PyObject_VAR_HEAD
      - name: '*c_array[1]'
        type: PyObject
      item_type: struct
      name: PyHamtNode_Collision
      pos:
        line_end: 331
        line_start: 327
        source_file: /src/Python-3.8.3/Python/hamt.c
    typedefs: []
    union: []
- function_names:
  - ENSURE_Context
  - ENSURE_ContextVar
  - ENSURE_ContextToken
  - _PyContext_NewHamtForTests
  - PyContext_New
  - PyContext_Copy
  - PyContext_CopyCurrent
  - PyContext_Enter
  - PyContext_Exit
  - PyContextVar_New
  - PyContextVar_Get
  - PyContextVar_Set
  - PyContextVar_Reset
  - _context_alloc
  - context_new_empty
  - context_new_from_vars
  - context_get
  - context_check_key_type
  - context_tp_new
  - context_tp_clear
  - context_tp_traverse
  - context_tp_dealloc
  - context_tp_iter
  - context_tp_richcompare
  - context_tp_len
  - context_tp_subscript
  - context_tp_contains
  - _contextvars_Context_get_impl
  - _contextvars_Context_items_impl
  - _contextvars_Context_keys_impl
  - _contextvars_Context_values_impl
  - _contextvars_Context_copy_impl
  - context_run
  - contextvar_set
  - contextvar_del
  - contextvar_generate_hash
  - contextvar_new
  - contextvar_tp_new
  - contextvar_tp_clear
  - contextvar_tp_traverse
  - contextvar_tp_dealloc
  - contextvar_tp_hash
  - contextvar_tp_repr
  - _contextvars_ContextVar_get_impl
  - _contextvars_ContextVar_set
  - _contextvars_ContextVar_reset
  - contextvar_cls_getitem
  - token_tp_new
  - token_tp_clear
  - token_tp_traverse
  - token_tp_dealloc
  - token_tp_repr
  - token_get_var
  - token_get_old_value
  - token_new
  - context_token_missing_tp_repr
  - get_token_missing
  - PyContext_ClearFreeList
  - _PyContext_Fini
  - _PyContext_Init
  source_file: /src/Python-3.8.3/Python/context.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CONTEXT_FREELIST_MAXLEN
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Python/context.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_surrogateescape
  - _Py_device_encoding
  - check_force_ascii
  - _Py_GetForceASCII
  - _Py_ResetForceASCII
  - encode_ascii
  - _Py_GetForceASCII
  - _Py_ResetForceASCII
  - decode_ascii
  - decode_current_locale
  - _Py_DecodeLocaleEx
  - Py_DecodeLocale
  - encode_current_locale
  - encode_locale_ex
  - encode_locale
  - Py_EncodeLocale
  - _Py_EncodeLocaleRaw
  - _Py_EncodeLocaleEx
  - FILE_TIME_to_time_t_nsec
  - _Py_time_t_to_FILE_TIME
  - attributes_to_mode
  - _Py_attribute_data_to_stat
  - _Py_fstat_noraise
  - _Py_fstat
  - _Py_stat
  - get_inheritable
  - _Py_get_inheritable
  - set_inheritable
  - CONSOLE_PSEUDOHANDLE
  - make_non_inheritable
  - _Py_set_inheritable
  - _Py_set_inheritable_async_safe
  - _Py_open_impl
  - _Py_open
  - _Py_open_noraise
  - _Py_wfopen
  - _Py_fopen
  - _Py_fopen_obj
  - _Py_read
  - do
  - if
  - _Py_write_impl
  - if
  - _Py_write
  - _Py_write_noraise
  - _Py_wreadlink
  - _Py_wrealpath
  - _Py_wgetcwd
  - _Py_dup
  - _Py_get_blocking
  - _Py_set_blocking
  - _Py_GetLocaleconvNumeric
  source_file: /src/Python-3.8.3/Python/fileutils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyMUTEX_INIT
  - PyMUTEX_FINI
  - PyMUTEX_LOCK
  - PyMUTEX_UNLOCK
  - PyCOND_INIT
  - PyCOND_FINI
  - PyCOND_SIGNAL
  - PyCOND_BROADCAST
  - PyCOND_WAIT
  - PyCOND_TIMEDWAIT
  - PyMUTEX_INIT
  - PyMUTEX_FINI
  - PyMUTEX_LOCK
  - PyMUTEX_UNLOCK
  - PyCOND_INIT
  - PyCOND_FINI
  - _PyCOND_WAIT_MS
  - PyCOND_WAIT
  - PyCOND_TIMEDWAIT
  - PyCOND_SIGNAL
  - PyCOND_BROADCAST
  - PyMUTEX_INIT
  - PyMUTEX_FINI
  - PyMUTEX_LOCK
  - PyMUTEX_UNLOCK
  - PyCOND_INIT
  - PyCOND_FINI
  - PyCOND_WAIT
  - PyCOND_TIMEDWAIT
  - PyCOND_SIGNAL
  - PyCOND_BROADCAST
  source_file: /src/Python-3.8.3/Python/condvar.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyImport_FindSharedFuncptr
  source_file: /src/Python-3.8.3/Python/dynload_dl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/frozen.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Python/frozen.c
      type_or_value: (int)sizeof(M___hello__)
    structs: []
    typedefs: []
    union: []
- function_names:
  - MUTEX_INIT
  - MUTEX_FINI
  - MUTEX_LOCK
  - MUTEX_UNLOCK
  - COND_INIT
  - COND_FINI
  - COND_SIGNAL
  - COND_WAIT
  - COND_TIMED_WAIT
  - _gil_initialize
  - gil_created
  - create_gil
  - destroy_gil
  - recreate_gil
  - drop_gil
  - take_gil
  - _PyEval_SetSwitchInterval
  - _PyEval_GetSwitchInterval
  source_file: /src/Python-3.8.3/Python/ceval_gil.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_INTERVAL
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Python/ceval_gil.h
      type_or_value: '5000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Warnings_GetState
  - _Warnings_ClearState
  - create_filter
  - init_filters
  - _Warnings_InitState
  - check_matched
  - get_warnings_attr
  - get_once_registry
  - get_default_action
  - get_filter
  - already_warned
  - normalize_module
  - update_registry
  - show_warning
  - call_show_warning
  - warn_explicit
  - is_internal_frame
  - next_external_frame
  - setup_context
  - get_category
  - do_warn
  - warnings_warn_impl
  - get_source_line
  - warnings_warn_explicit
  - warnings_filters_mutated
  - warn_unicode
  - _PyErr_WarnFormatV
  - PyErr_WarnFormat
  - PyErr_ResourceWarning
  - PyErr_WarnEx
  - PyErr_Warn
  - PyErr_WarnExplicitObject
  - PyErr_WarnExplicit
  - PyErr_WarnExplicitFormat
  - _PyErr_WarnUnawaitedCoroutine
  - _PyWarnings_Init
  - _PyWarnings_Fini
  source_file: /src/Python-3.8.3/Python/_warnings.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MODULE_NAME
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Python/_warnings.c
      type_or_value: '"_warnings"'
    structs: []
    typedefs:
    - item_type: typedef
      name: WarningsState
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/Python-3.8.3/Python/_warnings.c
      type: _warnings_runtime_state
    union: []
- function_names:
  - Py_GetCompiler
  source_file: /src/Python-3.8.3/Python/getcompiler.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Python/getcompiler.c
      type_or_value: '"\n[Clang " __clang_version__ "]"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Python/getcompiler.c
      type_or_value: '"\n[GCC " __VERSION__ "]"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Python/getcompiler.c
      type_or_value: '"[C++]"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Python/getcompiler.c
      type_or_value: '"[C]"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECODE_LOCALE_ERR
  - _Py_ClearFileSystemEncoding
  - _Py_SetFileSystemEncoding
  - _PyArgv_AsWstrList
  - _PyPreCmdline_Clear
  - _PyPreCmdline_SetArgv
  - precmdline_get_preconfig
  - COPY_ATTR
  - precmdline_set_preconfig
  - COPY_ATTR
  - _PyPreCmdline_SetConfig
  - COPY_ATTR
  - precmdline_parse_cmdline
  - _PyPreCmdline_Read
  - _PyPreConfig_InitCompatConfig
  - PyPreConfig_InitPythonConfig
  - PyPreConfig_InitIsolatedConfig
  - _PyPreConfig_InitFromPreConfig
  - _PyPreConfig_InitFromConfig
  - preconfig_copy
  - COPY_ATTR
  - _PyPreConfig_AsDict
  - SET_ITEM_INT
  - _PyPreConfig_GetConfig
  - COPY_ATTR
  - preconfig_get_global_vars
  - COPY_FLAG
  - COPY_NOT_FLAG
  - preconfig_set_global_vars
  - COPY_FLAG
  - COPY_NOT_FLAG
  - _Py_GetEnv
  - _Py_str_to_int
  - _Py_get_env_flag
  - _Py_get_xoption
  - preconfig_init_utf8_mode
  - preconfig_init_coerce_c_locale
  - preconfig_init_allocator
  - preconfig_read
  - _PyPreConfig_Read
  - _PyPreConfig_Write
  source_file: /src/Python-3.8.3/Python/preconfig.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_convert_optional_to_ssize_t
  - countformat
  - do_ignore
  - do_mkdict
  - do_mklist
  - do_mkstack
  - do_mktuple
  - do_mkvalue
  - Py_BuildValue
  - _Py_BuildValue_SizeT
  - Py_VaBuildValue
  - _Py_VaBuildValue_SizeT
  - va_build_value
  - _Py_VaBuildStack
  - _Py_VaBuildStack_SizeT
  - va_build_stack
  - PyModule_AddObject
  - PyModule_AddIntConstant
  - PyModule_AddStringConstant
  source_file: /src/Python-3.8.3/Python/modsupport.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_SIZE_T
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Python/modsupport.c
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: va_double
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/Python-3.8.3/Python/modsupport.c
      type: double
    - item_type: typedef
      name: '*(*converter)(void *)'
      pos:
        line_end: 468
        line_start: 468
        source_file: /src/Python-3.8.3/Python/modsupport.c
      type: PyObject
    union: []
- function_names:
  - GETTIMEOFDAY
  - GETTIMEOFDAY
  - MICROSECONDS_TO_TIMESPEC
  - init_condattr
  - _PyThread_cond_init
  - _PyThread_cond_after
  - CHECK_STATUS
  - CHECK_STATUS_PTHREAD
  - PyThread__init_thread
  - pythread_wrapper
  - PyThread_start_new_thread
  - PyThread_get_thread_ident
  - PyThread_get_thread_native_id
  - _Py_NO_RETURN::PyThread_exit_thread
  - PyThread_allocate_lock
  - PyThread_free_lock
  - fix_status
  - PyThread_acquire_lock_timed
  - PyThread_release_lock
  - PyThread_allocate_lock
  - PyThread_free_lock
  - PyThread_acquire_lock_timed
  - PyThread_release_lock
  - PyThread_acquire_lock
  - _pythread_pthread_set_stacksize
  - THREAD_SET_STACKSIZE
  - PyThread_create_key
  - PyThread_delete_key
  - PyThread_delete_key_value
  - PyThread_set_key_value
  - PyThread_get_key_value
  - PyThread_ReInitTLS
  - PyThread_tss_create
  - PyThread_tss_delete
  - PyThread_tss_set
  - PyThread_tss_get
  source_file: /src/Python-3.8.3/Python/thread_pthread.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: destructor
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: xxdestructor
    - item_type: preproc_def
      name: THREAD_STACK_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: '0       '
    - item_type: preproc_def
      name: THREAD_STACK_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: THREAD_STACK_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: THREAD_STACK_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: THREAD_STACK_MIN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: '0x8000  '
    - item_type: preproc_def
      name: SET_THREAD_SIGMASK
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: pthread_sigmask
    - item_type: preproc_def
      name: SET_THREAD_SIGMASK
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
      type_or_value: sigprocmask
    structs:
    - fields:
      - name: locked
        type: char
      - name: lock_released
        type: pthread_cond_t
      - name: mut
        type: pthread_mutex_t
      item_type: struct
      name: pthread_lock
      pos:
        line_end: 189
        line_start: 184
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    - fields:
      - name: (*func) (void *)
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: pythread_callback
      pos:
        line_end: 220
        line_start: 217
        source_file: /src/Python-3.8.3/Python/thread_pthread.h
    typedefs: []
    union: []
- function_names:
  - validate_comprehension
  - validate_slice
  - validate_keywords
  - validate_args
  - expr_context_name
  - validate_arguments
  - validate_constant
  - validate_expr
  - COMP
  - validate_nonempty_seq
  - validate_assignlist
  - validate_body
  - validate_stmt
  - validate_stmts
  - validate_exprs
  - PyAST_Validate
  - init_normalization
  - new_identifier
  - NEW_IDENTIFIER
  - ast_error
  - new_type_comment
  - NEW_TYPE_COMMENT
  - num_stmts
  - PyAST_FromNodeObject
  - PyAST_FromNode
  - get_operator
  - forbidden_name
  - copy_location
  - get_expr_name
  - set_context
  - ast_for_augassign
  - ast_for_comp_op
  - seq_for_testlist
  - ast_for_arg
  - handle_keywordonly_args
  - ast_for_arguments
  - ast_for_dotted_name
  - ast_for_decorator
  - ast_for_decorators
  - ast_for_funcdef_impl
  - ast_for_async_funcdef
  - ast_for_funcdef
  - ast_for_async_stmt
  - ast_for_decorated
  - ast_for_namedexpr
  - ast_for_lambdef
  - ast_for_ifexpr
  - count_comp_fors
  - count_comp_ifs
  - ast_for_comprehension
  - ast_for_itercomp
  - ast_for_dictelement
  - ast_for_dictcomp
  - ast_for_dictdisplay
  - ast_for_genexp
  - ast_for_listcomp
  - ast_for_setcomp
  - ast_for_setdisplay
  - ast_for_atom
  - ast_for_slice
  - ast_for_binop
  - ast_for_trailer
  - ast_for_factor
  - ast_for_atom_expr
  - ast_for_power
  - ast_for_starred
  - ast_for_expr
  - ast_for_call
  - ast_for_testlist
  - ast_for_expr_stmt
  - ast_for_exprlist
  - ast_for_del_stmt
  - ast_for_flow_stmt
  - alias_for_import_name
  - ast_for_import_stmt
  - ast_for_global_stmt
  - ast_for_nonlocal_stmt
  - ast_for_assert_stmt
  - ast_for_suite
  - get_last_end_pos
  - ast_for_if_stmt
  - ast_for_while_stmt
  - ast_for_for_stmt
  - ast_for_except_clause
  - ast_for_try_stmt
  - ast_for_with_item
  - ast_for_with_stmt
  - ast_for_classdef
  - ast_for_stmt
  - parsenumber_raw
  - parsenumber
  - decode_utf8
  - warn_invalid_escape_sequence
  - decode_unicode_with_escapes
  - decode_bytes_with_escapes
  - fstring_shift_node_locations
  - fstring_fix_node_location
  - fstring_compile_expr
  - fstring_find_literal
  - fstring_find_expr
  - fstring_find_literal_and_expr
  - ExprList_check_invariants
  - ExprList_Init
  - ExprList_Append
  - ExprList_Dealloc
  - ExprList_Finish
  - FstringParser_check_invariants
  - FstringParser_Init
  - FstringParser_Dealloc
  - make_kind
  - make_str_node_and_del
  - FstringParser_ConcatAndDel
  - FstringParser_ConcatFstring
  - FstringParser_Finish
  - fstring_parse
  - parsestr
  - parsestrplus
  - _PyAST_GetDocString
  source_file: /src/Python-3.8.3/Python/ast.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXLEVEL
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Python/ast.c
      type_or_value: '200    '
    - item_type: preproc_def
      name: COMP_GENEXP
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/Python-3.8.3/Python/ast.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COMP_LISTCOMP
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/Python-3.8.3/Python/ast.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COMP_SETCOMP
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/Python-3.8.3/Python/ast.c
      type_or_value: '2'
    - item_type: preproc_def
      name: EXPRLIST_N_CACHED
      pos:
        line_end: 5354
        line_start: 5353
        source_file: /src/Python-3.8.3/Python/ast.c
      type_or_value: '64'
    structs:
    - fields:
      - name: '*c_arena'
        type: PyArena
      - name: '*c_filename'
        type: PyObject
      - name: '*c_normalize'
        type: PyObject
      - name: c_feature_version
        type: int
      item_type: struct
      name: compiling
      pos:
        line_end: 569
        line_start: 564
        source_file: /src/Python-3.8.3/Python/ast.c
    - fields:
      - name: allocated
        type: Py_ssize_t
      - name: size
        type: Py_ssize_t
      - name: '*p'
        type: expr_ty
      - name: data[EXPRLIST_N_CACHED]
        type: expr_ty
      item_type: struct
      name: ExprList
      pos:
        line_end: 5370
        line_start: 5355
        source_file: /src/Python-3.8.3/Python/ast.c
    - fields:
      - name: '*last_str'
        type: PyObject
      - name: expr_list
        type: ExprList
      - name: fmode
        type: int
      item_type: struct
      name: FstringParser
      pos:
        line_end: 5481
        line_start: 5477
        source_file: /src/Python-3.8.3/Python/ast.c
    typedefs: []
    union: []
- function_names:
  - Py_GetPlatform
  source_file: /src/Python-3.8.3/Python/getplatform.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PLATFORM
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/Python-3.8.3/Python/getplatform.c
      type_or_value: '"unknown"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/importlib_zipimport.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - update_bases
  - builtin___build_class__
  - builtin___import__
  - builtin_abs
  - builtin_all
  - builtin_any
  - builtin_ascii
  - builtin_bin
  - builtin_callable
  - builtin_breakpoint
  - filter_new
  - filter_dealloc
  - filter_traverse
  - filter_next
  - filter_reduce
  - builtin_format_impl
  - builtin_chr_impl
  - builtin_compile_impl
  - builtin_dir
  - builtin_divmod_impl
  - builtin_eval_impl
  - builtin_exec_impl
  - builtin_getattr
  - builtin_globals_impl
  - builtin_hasattr_impl
  - builtin_id
  - map_new
  - map_dealloc
  - map_traverse
  - map_next
  - map_reduce
  - builtin_next
  - builtin_setattr_impl
  - builtin_delattr_impl
  - builtin_hash
  - builtin_hex
  - builtin_iter
  - builtin_len
  - builtin_locals_impl
  - min_max
  - builtin_min
  - builtin_max
  - builtin_oct
  - builtin_ord
  - builtin_pow_impl
  - builtin_print
  - builtin_input_impl
  - builtin_repr
  - builtin_round_impl
  - builtin_sorted
  - builtin_vars
  - builtin_sum_impl
  - builtin_isinstance_impl
  - builtin_issubclass_impl
  - zip_new
  - zip_dealloc
  - zip_traverse
  - zip_next
  - zip_reduce
  - _PyBuiltin_Init
  - ADD_TO_ALL
  - ADD_TO_ALL
  - SETBUILTIN
  source_file: /src/Python-3.8.3/Python/bltinmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_SORTED_METHODDEF
      pos:
        line_end: 2214
        line_start: 2212
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
      type_or_value: '{"sorted", (PyCFunction)(void(*)(void))builtin_sorted, METH_FASTCALL
        | METH_KEYWORDS, builtin_sorted__doc__},'
    structs:
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      - name: '*it'
        type: PyObject
      item_type: struct
      name: filterobject
      pos:
        line_end: 507
        line_start: 503
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    - fields:
      - name: '*iters'
        type: PyObject_HEAD
      - name: '*func'
        type: PyObject
      item_type: struct
      name: mapobject
      pos:
        line_end: 1188
        line_start: 1184
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: '*ittuple'
        type: PyObject
      - name: '*result'
        type: PyObject
      item_type: struct
      name: zipobject
      pos:
        line_end: 2521
        line_start: 2516
        source_file: /src/Python-3.8.3/Python/bltinmodule.c
    typedefs: []
    union: []
- function_names:
  - unknown_presentation_type
  - invalid_thousands_separator_type
  - invalid_comma_and_underscore
  - get_integer
  - is_alignment_token
  - is_sign_element
  - DEBUG_PRINT_FORMAT_SPEC
  - parse_internal_render_format_spec
  - READ_spec
  - calc_padding
  - fill_padding
  - parse_number
  - calc_number_widths
  - fill_number
  - get_locale_info
  - free_locale_info
  - format_string_internal
  - format_long_internal
  - format_float_internal
  - format_complex_internal
  - format_obj
  - _PyUnicode_FormatAdvancedWriter
  - _PyLong_FormatAdvancedWriter
  - _PyFloat_FormatAdvancedWriter
  - _PyComplex_FormatAdvancedWriter
  source_file: /src/Python-3.8.3/Python/formatter_unicode.c
  types:
    enum:
    - enumerators:
      - name: LT_NO_LOCALE
        value: '0'
      - name: LT_DEFAULT_LOCALE
        value: ''','''
      - name: LT_UNDER_FOUR_LOCALE
      - name: LT_UNDERSCORE_LOCALE
        value: '''_'''
      - name: LT_CURRENT_LOCALE
      item_type: enum
      name: LocaleType
      pos:
        line_end: 125
        line_start: 119
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    preproc_defs:
    - item_type: preproc_def
      name: LocaleInfo_STATIC_INIT
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
      type_or_value: '{0, 0, 0, 0}'
    structs:
    - fields:
      - name: fill_char
        type: Py_UCS4
      - name: align
        type: Py_UCS4
      - name: alternate
        type: int
      - name: sign
        type: Py_UCS4
      - name: width
        type: Py_ssize_t
      - name: thousands_separators
        type: enum LocaleType
      - name: precision
        type: Py_ssize_t
      - name: type
        type: Py_UCS4
      item_type: struct
      name: InternalFormatSpec
      pos:
        line_end: 136
        line_start: 127
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    - fields:
      - name: '*decimal_point'
        type: PyObject
      - name: '*thousands_sep'
        type: PyObject
      - name: '*grouping'
        type: char
      - name: '*grouping_buffer'
        type: char
      item_type: struct
      name: LocaleInfo
      pos:
        line_end: 400
        line_start: 395
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    - fields:
      - name: n_lpadding
        type: Py_ssize_t
      - name: n_prefix
        type: Py_ssize_t
      - name: n_spadding
        type: Py_ssize_t
      - name: n_rpadding
        type: Py_ssize_t
      - name: sign
        type: char
      - name: n_sign
        type: Py_ssize_t
      - name: n_grouped_digits
        type: Py_ssize_t
      - name: n_decimal
        type: Py_ssize_t
      - name: n_remainder
        type: Py_ssize_t
      - name: n_digits
        type: Py_ssize_t
      - name: n_min_width
        type: Py_ssize_t
      item_type: struct
      name: NumberFieldWidths
      pos:
        line_end: 426
        line_start: 406
        source_file: /src/Python-3.8.3/Python/formatter_unicode.c
    typedefs: []
    union: []
- function_names:
  - copy_wstr
  - pathconfig_clear
  - CLEAR
  - pathconfig_copy
  - COPY_ATTR
  - _PyPathConfig_ClearGlobal
  - _PyWideStringList_Join
  - _PyPathConfig_InitDLLPath
  - pathconfig_set_from_config
  - COPY_CONFIG
  - _PyConfig_WritePathConfig
  - config_init_module_search_paths
  - pathconfig_calculate
  - config_calculate_pathconfig
  - COPY_ATTR
  - _PyConfig_InitPathConfig
  - pathconfig_global_read
  - pathconfig_global_init
  - Py_SetPath
  - Py_SetPythonHome
  - Py_SetProgramName
  - _Py_SetProgramFullPath
  - Py_GetPath
  - Py_GetPrefix
  - Py_GetExecPrefix
  - Py_GetProgramFullPath
  - Py_GetPythonHome
  - Py_GetProgramName
  - _PyPathConfig_ComputeSysPath0
  - _Py_FindEnvConfigValue
  source_file: /src/Python-3.8.3/Python/pathconfig.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WCSTOK
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/Python-3.8.3/Python/pathconfig.c
      type_or_value: wcstok_s
    - item_type: preproc_def
      name: WCSTOK
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/Python-3.8.3/Python/pathconfig.c
      type_or_value: wcstok
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/importlib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/opcode_targets.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - make_const
  - COPY_NODE
  - unary_not
  - fold_unaryop
  - check_complexity
  - safe_multiply
  - safe_power
  - safe_lshift
  - safe_mod
  - fold_binop
  - make_const_tuple
  - fold_tuple
  - fold_subscr
  - fold_iter
  - fold_compare
  - CALL
  - CALL_OPT
  - astfold_body
  - astfold_mod
  - astfold_expr
  - astfold_slice
  - astfold_keyword
  - astfold_comprehension
  - astfold_arguments
  - astfold_arg
  - astfold_stmt
  - astfold_excepthandler
  - astfold_withitem
  - _PyAST_Optimize
  source_file: /src/Python-3.8.3/Python/ast_opt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INT_SIZE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: '128  '
    - item_type: preproc_def
      name: MAX_COLLECTION_SIZE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: '256  '
    - item_type: preproc_def
      name: MAX_STR_SIZE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: '4096  '
    - item_type: preproc_def
      name: MAX_TOTAL_ITEMS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: '1024  '
    - item_type: preproc_def
      name: for
      pos:
        line_end: 418
        line_start: 409
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: "(i = 0; i < asdl_seq_LEN(seq); i++) { \\\n        TYPE elt =
        (TYPE)asdl_seq_GET(seq, i); \\\n        if (elt != NULL && !FUNC(elt, ctx_,
        optimize_)) \\\n            return 0; \\\n    } \\\n}"
    - item_type: preproc_def
      name: for
      pos:
        line_end: 428
        line_start: 419
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type_or_value: "(i = 0; i < asdl_seq_LEN(seq); i++) { \\\n        TYPE elt =
        (TYPE)asdl_seq_GET(seq, i); \\\n        if (!FUNC(elt, ctx_, optimize_)) \\\n
        \           return 0; \\\n    } \\\n}"
    structs: []
    typedefs:
    - item_type: typedef
      name: '*(*unary_op)(PyObject*)'
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/Python-3.8.3/Python/ast_opt.c
      type: PyObject
    union: []
- function_names:
  - _Py_asdl_seq_new
  - _Py_asdl_int_seq_new
  source_file: /src/Python-3.8.3/Python/asdl.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyArg_Parse
  - _PyArg_Parse_SizeT
  - PyArg_ParseTuple
  - _PyArg_ParseTuple_SizeT
  - _PyArg_ParseStack
  - _PyArg_ParseStack_SizeT
  - PyArg_VaParse
  - _PyArg_VaParse_SizeT
  - cleanup_ptr
  - cleanup_buffer
  - addcleanup
  - cleanreturn
  - vgetargs1_impl
  - vgetargs1
  - seterror
  - converttuple
  - convertitem
  - _PyArg_BadArgument
  - converterr
  - float_argument_error
  - convertsimple
  - STORE_SIZE
  - convertbuffer
  - getbuffer
  - PyArg_ParseTupleAndKeywords
  - _PyArg_ParseTupleAndKeywords_SizeT
  - PyArg_VaParseTupleAndKeywords
  - _PyArg_VaParseTupleAndKeywords_SizeT
  - _PyArg_ParseTupleAndKeywordsFast
  - _PyArg_ParseTupleAndKeywordsFast_SizeT
  - _PyArg_ParseStackAndKeywords
  - _PyArg_ParseStackAndKeywords_SizeT
  - _PyArg_VaParseTupleAndKeywordsFast
  - _PyArg_VaParseTupleAndKeywordsFast_SizeT
  - PyArg_ValidateKeywordArguments
  - IS_END_OF_FORMAT
  - vgetargskeywords
  - parser_init
  - parser_clear
  - find_keyword
  - vgetargskeywordsfast_impl
  - vgetargskeywordsfast
  - _PyArg_UnpackKeywords
  - skipitem
  - _PyArg_CheckPositional
  - unpack_stack
  - PyArg_UnpackTuple
  - _PyArg_UnpackStack
  - _PyArg_NoKeywords
  - _PyArg_NoPositional
  - _PyArg_Fini
  source_file: /src/Python-3.8.3/Python/getargs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FLAG_COMPAT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FLAG_SIZE_T
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATIC_FREELIST_ENTRIES
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: '8'
    - item_type: preproc_def
      name: CONV_UNICODE
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: '"(unicode conversion error)"'
    - item_type: preproc_def
      name: FETCH_SIZE
      pos:
        line_end: 684
        line_start: 675
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: "int *q=NULL;Py_ssize_t *q2=NULL;\\\n    if (flags & FLAG_SIZE_T)
        q2=va_arg(*p_va, Py_ssize_t*); \\\n    else { \\\n        if (PyErr_WarnEx(PyExc_DeprecationWarning,
        \\\n                    \"PY_SSIZE_T_CLEAN will be required for '#' formats\",
        1)) { \\\n            return NULL; \\\n        } \\\n        q=va_arg(*p_va,
        int*); \\\n    }"
    - item_type: preproc_def
      name: BUFFER_LEN
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: ((flags & FLAG_SIZE_T) ? *q2:*q)
    - item_type: preproc_def
      name: RETURN_ERR_OCCURRED
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/Python-3.8.3/Python/getargs.c
      type_or_value: return msgbuf
    structs:
    - fields:
      - name: '*item'
        type: void
      - name: destructor
        type: destr_t
      item_type: struct
      name: freelistentry_t
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/Python-3.8.3/Python/getargs.c
    - fields:
      - name: '*entries'
        type: freelistentry_t
      - name: first_available
        type: int
      - name: entries_malloced
        type: int
      item_type: struct
      name: freelist_t
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/Python-3.8.3/Python/getargs.c
    typedefs:
    - item_type: typedef
      name: (*destr_t)(PyObject *, void *)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/Python-3.8.3/Python/getargs.c
      type: int
    - item_type: typedef
      name: (*converter)(PyObject *, void *)
      pos:
        line_end: 1340
        line_start: 1340
        source_file: /src/Python-3.8.3/Python/getargs.c
      type: int
    - item_type: typedef
      name: (*converter)(PyObject *, void *)
      pos:
        line_end: 2644
        line_start: 2644
        source_file: /src/Python-3.8.3/Python/getargs.c
      type: int
    union: []
- function_names:
  - Bug
  - word0
  - word1
  - word0
  - word1
  - dval
  - Storeinc
  - Storeinc
  - Balloc
  - Bfree
  - Balloc
  - Bfree
  - Bcopy
  - multadd
  - s2b
  - hi0bits
  - lo0bits
  - i2b
  - mult
  - pow5mult
  - pow5mult
  - lshift
  - cmp
  - diff
  - ulp
  - b2d
  - sd2b
  - d2b
  - ratio
  - dshift
  - quorem
  - sulp
  - bigcomp
  - _Py_dg_stdnan
  - _Py_dg_infinity
  - _Py_dg_strtod
  - rv_alloc
  - nrv_alloc
  - _Py_dg_freedtoa
  - _Py_dg_dtoa
  source_file: /src/Python-3.8.3/Python/dtoa.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MALLOC
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: PyMem_Malloc
    - item_type: preproc_def
      name: FREE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: PyMem_Free
    - item_type: preproc_def
      name: PRIVATE_MEM
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '2304'
    - item_type: preproc_def
      name: PRIVATE_mem
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))
    - item_type: preproc_def
      name: STRTOD_DIGLIM
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '40'
    - item_type: preproc_def
      name: MAX_ABS_EXP
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: 1100000000U
    - item_type: preproc_def
      name: MAX_DIGITS
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: 1000000000U
    - item_type: preproc_def
      name: Exp_shift
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '20'
    - item_type: preproc_def
      name: Exp_shift1
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '20'
    - item_type: preproc_def
      name: Exp_msk1
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: Exp_msk11
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: Exp_mask
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x7ff00000'
    - item_type: preproc_def
      name: P
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '53'
    - item_type: preproc_def
      name: Nbits
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '53'
    - item_type: preproc_def
      name: Bias
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: Emax
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: Emin
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: (-1022)
    - item_type: preproc_def
      name: Etiny
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '(-1074)  '
    - item_type: preproc_def
      name: Exp_1
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x3ff00000'
    - item_type: preproc_def
      name: Exp_11
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x3ff00000'
    - item_type: preproc_def
      name: Ebits
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '11'
    - item_type: preproc_def
      name: Frac_mask
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Frac_mask1
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Ten_pmax
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '22'
    - item_type: preproc_def
      name: Bletch
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: Bndry_mask
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Bndry_mask1
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0xfffff'
    - item_type: preproc_def
      name: Sign_bit
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: Log2P
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Tiny0
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: Tiny1
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Quick_max
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Int_max
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '14'
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: FLT_ROUNDS
    - item_type: preproc_def
      name: Flt_Rounds
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '1'
    - item_type: preproc_def
      name: Rounding
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: Flt_Rounds
    - item_type: preproc_def
      name: Big0
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
    - item_type: preproc_def
      name: Big1
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: NAN_WORD0
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x7ff80000'
    - item_type: preproc_def
      name: NAN_WORD1
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: POSINF_WORD0
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x7ff00000'
    - item_type: preproc_def
      name: POSINF_WORD1
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0'
    - item_type: preproc_def
      name: FFFFFFFF
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: 0xffffffffUL
    - item_type: preproc_def
      name: Kmax
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '7'
    - item_type: preproc_def
      name: Scale_Bit
      pos:
        line_end: 1137
        line_start: 1136
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '0x10'
    - item_type: preproc_def
      name: n_bigtens
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '5'
    - item_type: preproc_def
      name: ULbits
      pos:
        line_end: 1140
        line_start: 1139
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '32'
    - item_type: preproc_def
      name: kshift
      pos:
        line_end: 1141
        line_start: 1140
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '5'
    - item_type: preproc_def
      name: kmask
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '31'
    - item_type: preproc_def
      name: iInc
      pos:
        line_end: 2644
        line_start: 2643
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type_or_value: '28'
    structs:
    - fields:
      - name: e0
        type: int
      item_type: struct
      name: BCinfo
      pos:
        line_end: 291
        line_start: 288
        source_file: /src/Python-3.8.3/Python/dtoa.c
    - fields:
      - name: '*next'
        type: struct Bigint
      - name: k
        type: int
      - name: x[1]
        type: ULong
      item_type: struct
      name: Bigint
      pos:
        line_end: 324
        line_start: 319
        source_file: /src/Python-3.8.3/Python/dtoa.c
    typedefs:
    - item_type: typedef
      name: ULong
      pos:
        line_end: 153
        line_start: 153
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type: uint32_t
    - item_type: typedef
      name: Long
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type: int32_t
    - item_type: typedef
      name: ULLong
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type: uint64_t
    - item_type: typedef
      name: BCinfo
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type: BCinfo
    - item_type: typedef
      name: Bigint
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/Python-3.8.3/Python/dtoa.c
      type: Bigint
    union:
    - fields:
      - name: d
        type: double
      - name: L[2]
        type: ULong
      item_type: union
      name: U
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/Python-3.8.3/Python/dtoa.c
- function_names:
  - dprintf
  - d2printf
  - PyThread_init_thread
  - PyThread_get_stacksize
  - PyThread_set_stacksize
  - PyThread_tss_alloc
  - PyThread_tss_free
  - PyThread_tss_is_created
  - PyThread_GetInfo
  source_file: /src/Python-3.8.3/Python/thread.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYTHREAD_NAME
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Python/thread.c
      type_or_value: '"pthread"'
    - item_type: preproc_def
      name: PYTHREAD_NAME
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Python/thread.c
      type_or_value: '"nt"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/pyctype.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - w_byte
  - w_flush
  - w_reserve
  - w_string
  - w_short
  - w_long
  - W_SIZE
  - w_pstring
  - w_short_pstring
  - W_TYPE
  - w_PyLong
  - w_float_bin
  - w_float_str
  - w_ref
  - w_object
  - w_complex_object
  - w_init_refs
  - w_decref_entry
  - w_clear_refs
  - PyMarshal_WriteLongToFile
  - PyMarshal_WriteObjectToFile
  - r_string
  - r_byte
  - r_short
  - r_long
  - r_long64
  - r_PyLong
  - r_float_bin
  - r_float_str
  - r_ref_reserve
  - r_ref_insert
  - r_ref
  - r_object
  - R_REF
  - read_object
  - PyMarshal_ReadShortFromFile
  - PyMarshal_ReadLongFromFile
  - getfilesize
  - PyMarshal_ReadLastObjectFromFile
  - PyMarshal_ReadObjectFromFile
  - PyMarshal_ReadObjectFromString
  - PyMarshal_WriteObjectToString
  - marshal_dump_impl
  - marshal_load
  - marshal_dumps_impl
  - marshal_loads_impl
  - PyMarshal_Init
  source_file: /src/Python-3.8.3/Python/marshal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_MARSHAL_STACK_DEPTH
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MAX_MARSHAL_STACK_DEPTH
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '2000'
    - item_type: preproc_def
      name: TYPE_NULL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''0'''
    - item_type: preproc_def
      name: TYPE_NONE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''N'''
    - item_type: preproc_def
      name: TYPE_FALSE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''F'''
    - item_type: preproc_def
      name: TYPE_TRUE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''T'''
    - item_type: preproc_def
      name: TYPE_STOPITER
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''S'''
    - item_type: preproc_def
      name: TYPE_ELLIPSIS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''.'''
    - item_type: preproc_def
      name: TYPE_INT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''i'''
    - item_type: preproc_def
      name: TYPE_INT64
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''I'''
    - item_type: preproc_def
      name: TYPE_FLOAT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''f'''
    - item_type: preproc_def
      name: TYPE_BINARY_FLOAT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''g'''
    - item_type: preproc_def
      name: TYPE_COMPLEX
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''x'''
    - item_type: preproc_def
      name: TYPE_BINARY_COMPLEX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''y'''
    - item_type: preproc_def
      name: TYPE_LONG
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''l'''
    - item_type: preproc_def
      name: TYPE_STRING
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''s'''
    - item_type: preproc_def
      name: TYPE_INTERNED
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''t'''
    - item_type: preproc_def
      name: TYPE_REF
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''r'''
    - item_type: preproc_def
      name: TYPE_TUPLE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''('''
    - item_type: preproc_def
      name: TYPE_LIST
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''['''
    - item_type: preproc_def
      name: TYPE_DICT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''{'''
    - item_type: preproc_def
      name: TYPE_CODE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''c'''
    - item_type: preproc_def
      name: TYPE_UNICODE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''u'''
    - item_type: preproc_def
      name: TYPE_UNKNOWN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''?'''
    - item_type: preproc_def
      name: TYPE_SET
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''<'''
    - item_type: preproc_def
      name: TYPE_FROZENSET
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''>'''
    - item_type: preproc_def
      name: FLAG_REF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''\x80'' '
    - item_type: preproc_def
      name: TYPE_ASCII
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''a'''
    - item_type: preproc_def
      name: TYPE_ASCII_INTERNED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''A'''
    - item_type: preproc_def
      name: TYPE_SMALL_TUPLE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: ''')'''
    - item_type: preproc_def
      name: TYPE_SHORT_ASCII
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''z'''
    - item_type: preproc_def
      name: TYPE_SHORT_ASCII_INTERNED
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '''Z'''
    - item_type: preproc_def
      name: WFERR_OK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '0'
    - item_type: preproc_def
      name: WFERR_UNMARSHALLABLE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '1'
    - item_type: preproc_def
      name: WFERR_NESTEDTOODEEP
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: WFERR_NOMEMORY
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SIZE32_MAX
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '0x7FFFFFFF'
    - item_type: preproc_def
      name: W_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: w_long
    - item_type: preproc_def
      name: PyLong_MARSHAL_SHIFT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: '15'
    - item_type: preproc_def
      name: PyLong_MARSHAL_BASE
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: ((short)1 << PyLong_MARSHAL_SHIFT)
    - item_type: preproc_def
      name: PyLong_MARSHAL_MASK
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: (PyLong_MARSHAL_BASE - 1)
    - item_type: preproc_def
      name: PyLong_MARSHAL_RATIO
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: (PyLong_SHIFT / PyLong_MARSHAL_SHIFT)
    - item_type: preproc_def
      name: REASONABLE_FILE_LIMIT
      pos:
        line_end: 1519
        line_start: 1518
        source_file: /src/Python-3.8.3/Python/marshal.c
      type_or_value: (1L << 18)
    structs:
    - fields:
      - name: '*fp'
        type: FILE
      - name: error
        type: int
      - name: depth
        type: int
      - name: '*str'
        type: PyObject
      - name: '*ptr'
        type: char
      - name: '*end'
        type: char
      - name: '*buf'
        type: char
      - name: '*hashtable'
        type: _Py_hashtable_t
      - name: version
        type: int
      item_type: struct
      name: WFILE
      pos:
        line_end: 89
        line_start: 79
        source_file: /src/Python-3.8.3/Python/marshal.c
    - fields:
      - name: '*fp'
        type: FILE
      - name: depth
        type: int
      - name: '*readable'
        type: PyObject
      - name: '*ptr'
        type: char
      - name: '*end'
        type: char
      - name: '*buf'
        type: char
      - name: buf_size
        type: Py_ssize_t
      - name: '*refs'
        type: PyObject
      item_type: struct
      name: RFILE
      pos:
        line_end: 645
        line_start: 636
        source_file: /src/Python-3.8.3/Python/marshal.c
    typedefs: []
    union: []
- function_names:
  - future_check_features
  - future_parse
  - PyFuture_FromASTObject
  - PyFuture_FromAST
  source_file: /src/Python-3.8.3/Python/future.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNDEFINED_FUTURE_FEATURE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Python/future.c
      type_or_value: '"future feature %.100s is not defined"'
    - item_type: preproc_def
      name: ERR_LATE_FUTURE
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Python/future.c
      type_or_value: '"from __future__ imports must occur at the beginning of the
        file"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ast_dealloc
  - ast_traverse
  - ast_clear
  - ast_type_init
  - ast_type_reduce
  - make_type
  - add_attributes
  - ast2obj_list
  - ast2obj_object
  - ast2obj_int
  - obj2ast_object
  - obj2ast_constant
  - obj2ast_identifier
  - obj2ast_string
  - obj2ast_int
  - add_ast_fields
  - init_types
  - Module
  - Interactive
  - Expression
  - FunctionType
  - Suite
  - FunctionDef
  - AsyncFunctionDef
  - ClassDef
  - Return
  - Delete
  - Assign
  - AugAssign
  - AnnAssign
  - For
  - AsyncFor
  - While
  - If
  - With
  - AsyncWith
  - Raise
  - Try
  - Assert
  - Import
  - ImportFrom
  - Global
  - Nonlocal
  - Expr
  - Pass
  - Break
  - Continue
  - BoolOp
  - NamedExpr
  - BinOp
  - UnaryOp
  - Lambda
  - IfExp
  - Dict
  - Set
  - ListComp
  - SetComp
  - DictComp
  - GeneratorExp
  - Await
  - Yield
  - YieldFrom
  - Compare
  - Call
  - FormattedValue
  - JoinedStr
  - Constant
  - Attribute
  - Subscript
  - Starred
  - Name
  - List
  - Tuple
  - Slice
  - ExtSlice
  - Index
  - comprehension
  - ExceptHandler
  - arguments
  - arg
  - keyword
  - alias
  - withitem
  - TypeIgnore
  - ast2obj_mod
  - ast2obj_stmt
  - ast2obj_expr
  - ast2obj_expr_context
  - ast2obj_slice
  - ast2obj_boolop
  - ast2obj_operator
  - ast2obj_unaryop
  - ast2obj_cmpop
  - ast2obj_comprehension
  - ast2obj_excepthandler
  - ast2obj_arguments
  - ast2obj_arg
  - ast2obj_keyword
  - ast2obj_alias
  - ast2obj_withitem
  - ast2obj_type_ignore
  - obj2ast_mod
  - obj2ast_stmt
  - obj2ast_expr
  - obj2ast_expr_context
  - obj2ast_slice
  - obj2ast_boolop
  - obj2ast_operator
  - obj2ast_unaryop
  - obj2ast_cmpop
  - obj2ast_comprehension
  - obj2ast_excepthandler
  - obj2ast_arguments
  - obj2ast_arg
  - obj2ast_keyword
  - obj2ast_alias
  - obj2ast_withitem
  - obj2ast_type_ignore
  - PyInit__ast
  - PyAST_mod2obj
  - PyAST_obj2mod
  - PyAST_Check
  source_file: /src/Python-3.8.3/Python/Python-ast.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ast2obj_singleton
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/Python-3.8.3/Python/Python-ast.c
      type_or_value: ast2obj_object
    - item_type: preproc_def
      name: ast2obj_constant
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/Python-3.8.3/Python/Python-ast.c
      type_or_value: ast2obj_object
    - item_type: preproc_def
      name: ast2obj_identifier
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/Python-3.8.3/Python/Python-ast.c
      type_or_value: ast2obj_object
    - item_type: preproc_def
      name: ast2obj_string
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/Python-3.8.3/Python/Python-ast.c
      type_or_value: ast2obj_object
    - item_type: preproc_def
      name: ast2obj_bytes
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/Python-3.8.3/Python/Python-ast.c
      type_or_value: ast2obj_object
    structs:
    - fields:
      - name: '*dict'
        type: PyObject_HEAD
      item_type: struct
      name: AST_object
      pos:
        line_end: 537
        line_start: 534
        source_file: /src/Python-3.8.3/Python/Python-ast.c
    typedefs: []
    union: []
- function_names:
  - dlerror
  - _PyImport_FindSharedFuncptr
  source_file: /src/Python-3.8.3/Python/dynload_shlib.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LEAD_UNDERSCORE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Python/dynload_shlib.c
      type_or_value: '"_"'
    - item_type: preproc_def
      name: LEAD_UNDERSCORE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Python/dynload_shlib.c
      type_or_value: '""'
    structs:
    - fields:
      - name: dev
        type: dev_t
      - name: ino
        type: ino_t
      - name: '*handle'
        type: void
      item_type: struct
      name: handles[128]
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/Python-3.8.3/Python/dynload_shlib.c
    typedefs: []
    union: []
- function_names:
  - PyRun_AnyFileExFlags
  - PyRun_InteractiveLoopFlags
  - PARSER_FLAGS
  - PARSER_FLAGS
  - PyRun_InteractiveOneObjectEx
  - PyRun_InteractiveOneObject
  - PyRun_InteractiveOneFlags
  - maybe_pyc_file
  - set_main_loader
  - PyRun_SimpleFileExFlags
  - PyRun_SimpleStringFlags
  - parse_syntax_error
  - print_error_text
  - _Py_HandleSystemExit
  - handle_system_exit
  - _PyErr_PrintEx
  - _PyErr_Print
  - PyErr_PrintEx
  - PyErr_Print
  - print_exception
  - print_exception_recursive
  - _PyErr_Display
  - PyErr_Display
  - PyRun_StringFlags
  - PyRun_FileExFlags
  - flush_io
  - run_eval_code_obj
  - run_mod
  - run_pyc_file
  - Py_CompileStringObject
  - Py_CompileStringExFlags
  - PyCompileString
  - _Py_SourceAsString
  - Py_SymtableStringObject
  - _Py_SymtableStringObjectFlags
  - Py_SymtableString
  - PyParser_ASTFromStringObject
  - PyParser_ASTFromString
  - PyParser_ASTFromFileObject
  - PyParser_ASTFromFile
  - PyParser_SimpleParseFileFlags
  - PyParser_SimpleParseStringFlags
  - PyParser_SimpleParseStringFlagsFilename
  - PyParser_ClearError
  - PyParser_SetError
  - err_free
  - err_input
  - PyOS_CheckStack
  - PyParser_SimpleParseFile
  - PyParser_SimpleParseString
  - PyRun_AnyFile
  - PyRun_AnyFileEx
  - PyRun_AnyFileFlags
  - PyRun_File
  - PyRun_FileEx
  - PyRun_FileFlags
  - PyRun_SimpleFile
  - PyRun_SimpleFileEx
  - PyRun_String
  - PyRun_SimpleString
  - Py_CompileString
  - Py_CompileStringFlags
  - PyRun_InteractiveOne
  - PyRun_InteractiveLoop
  source_file: /src/Python-3.8.3/Python/pythonrun.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyErr_Restore
  - PyErr_Restore
  - _PyErr_GetTopmostException
  - _PyErr_CreateException
  - _PyErr_SetObject
  - PyErr_SetObject
  - _PyErr_SetKeyError
  - _PyErr_SetNone
  - PyErr_SetNone
  - _PyErr_SetString
  - PyErr_SetString
  - PyErr_GivenExceptionMatches
  - _PyErr_ExceptionMatches
  - PyErr_ExceptionMatches
  - _PyErr_NormalizeException
  - PyErr_NormalizeException
  - _PyErr_Fetch
  - PyErr_Fetch
  - _PyErr_Clear
  - PyErr_Clear
  - PyErr_GetExcInfo
  - PyErr_SetExcInfo
  - _PyErr_ChainExceptions
  - _PyErr_FormatVFromCause
  - _PyErr_FormatFromCause
  - PyErr_BadArgument
  - PyErr_NoMemory
  - PyErr_SetFromErrnoWithFilenameObject
  - PyErr_SetFromErrnoWithFilenameObjects
  - PyErr_SetFromErrnoWithFilename
  - PyErr_SetFromErrnoWithUnicodeFilename
  - PyErr_SetFromErrno
  - PyErr_SetExcFromWindowsErrWithFilenameObject
  - PyErr_SetExcFromWindowsErrWithFilenameObjects
  - PyErr_SetExcFromWindowsErrWithFilename
  - PyErr_SetExcFromWindowsErrWithUnicodeFilename
  - PyErr_SetExcFromWindowsErr
  - PyErr_SetFromWindowsErr
  - PyErr_SetFromWindowsErrWithFilename
  - PyErr_SetFromWindowsErrWithUnicodeFilename
  - PyErr_SetImportErrorSubclass
  - PyErr_SetImportError
  - _PyErr_BadInternalCall
  - PyErr_BadInternalCall
  - PyErr_BadInternalCall
  - _PyErr_FormatV
  - PyErr_FormatV
  - _PyErr_Format
  - PyErr_Format
  - PyErr_NewException
  - PyErr_NewExceptionWithDoc
  - _PyErr_Init
  - make_unraisable_hook_args
  - ADD_ITEM
  - write_unraisable_exc_file
  - write_unraisable_exc
  - _PyErr_WriteUnraisableDefaultHook
  - _PyErr_WriteUnraisableMsg
  - PyErr_WriteUnraisable
  - PyErr_SyntaxLocation
  - PyErr_SyntaxLocationObject
  - PyErr_SyntaxLocationEx
  - err_programtext
  - PyErr_ProgramText
  - PyErr_ProgramTextObject
  source_file: /src/Python-3.8.3/Python/errors.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_NORMALIZE_RECURSION_LIMIT
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/Python-3.8.3/Python/errors.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_HashDouble
  - _Py_HashPointer
  - _Py_HashBytes
  - _PyHash_Fini
  - PyHash_GetFuncDef
  - PY_UHASH_CPY
  - PY_UHASH_CPY
  - PY_UHASH_CPY
  - fnv
  - _le64toh
  - _le64toh
  - _le64toh
  - _le64toh
  - ROTATE
  - ROTATE
  - HALF_ROUND
  - DOUBLE_ROUND
  - siphash24
  - _Py_KeyedHash
  - pysiphash
  source_file: /src/Python-3.8.3/Python/pyhash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_HASH_STATS_MAX
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Python/pyhash.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: value
        type: Py_uhash_t
      - name: bytes[SIZEOF_PY_UHASH_T]
        type: unsigned char
      item_type: union
      name: block
      pos:
        line_end: 249
        line_start: 246
        source_file: /src/Python-3.8.3/Python/pyhash.c
- function_names:
  - AllocNonRecursiveMutex
  - FreeNonRecursiveMutex
  - EnterNonRecursiveMutex
  - LeaveNonRecursiveMutex
  - AllocNonRecursiveMutex
  - FreeNonRecursiveMutex
  - EnterNonRecursiveMutex
  - LeaveNonRecursiveMutex
  - PyThread__init_thread
  - bootstrap
  - PyThread_start_new_thread
  - PyThread_get_thread_ident
  - PyThread_get_thread_native_id
  - _Py_NO_RETURN::PyThread_exit_thread
  - PyThread_allocate_lock
  - PyThread_free_lock
  - PyThread_acquire_lock_timed
  - PyThread_acquire_lock
  - PyThread_release_lock
  - _pythread_nt_set_stacksize
  - THREAD_SET_STACKSIZE
  - PyThread_create_key
  - PyThread_delete_key
  - PyThread_set_key_value
  - PyThread_get_key_value
  - PyThread_delete_key_value
  - PyThread_ReInitTLS
  - PyThread_tss_create
  - PyThread_tss_delete
  - PyThread_tss_set
  - PyThread_tss_get
  source_file: /src/Python-3.8.3/Python/thread_nt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PY_USE_CV_LOCKS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Python/thread_nt.h
      type_or_value: '1     '
    - item_type: preproc_def
      name: PNRMUTEX
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Python/thread_nt.h
      type_or_value: HANDLE
    - item_type: preproc_def
      name: THREAD_MIN_STACKSIZE
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/Python-3.8.3/Python/thread_nt.h
      type_or_value: '0x8000          '
    - item_type: preproc_def
      name: THREAD_MAX_STACKSIZE
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/Python-3.8.3/Python/thread_nt.h
      type_or_value: '0x10000000      '
    structs:
    - fields:
      - name: cs
        type: PyMUTEX_T
      - name: cv
        type: PyCOND_T
      - name: locked
        type: int
      item_type: struct
      name: _NRMUTEX
      pos:
        line_end: 30
        line_start: 25
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    - fields:
      - name: (*func)(void*)
        type: void
      - name: '*arg'
        type: void
      item_type: struct
      name: callobj
      pos:
        line_end: 164
        line_start: 161
        source_file: /src/Python-3.8.3/Python/thread_nt.h
    typedefs:
    - item_type: typedef
      name: '*PNRMUTEX'
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/Python-3.8.3/Python/thread_nt.h
      type: NRMUTEX
    union: []
- function_names:
  - Py_GetVersion
  source_file: /src/Python-3.8.3/Python/getversion.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_GetGlobalVariablesAsDict
  - SET_ITEM
  - SET_ITEM_INT
  - FROM_STRING
  - SET_ITEM_STR
  - PyStatus_Ok
  - PyStatus_Error
  - PyStatus_NoMemory
  - PyStatus_Exit
  - PyStatus_IsError
  - PyStatus_IsExit
  - PyStatus_Exception
  - _PyWideStringList_CheckConsistency
  - _PyWideStringList_Clear
  - _PyWideStringList_Copy
  - PyWideStringList_Insert
  - PyWideStringList_Append
  - _PyWideStringList_Extend
  - _PyWideStringList_Find
  - _PyWideStringList_AsList
  - Py_SetStandardStreamEncoding
  - _Py_ClearStandardStreamEncoding
  - _Py_ClearArgcArgv
  - _Py_SetArgcArgv
  - Py_GetArgcArgv
  - DECODE_LOCALE_ERR
  - PyConfig_Clear
  - CLEAR
  - _PyConfig_InitCompatConfig
  - config_init_defaults
  - PyConfig_InitPythonConfig
  - PyConfig_InitIsolatedConfig
  - PyConfig_SetString
  - config_set_bytes_string
  - CONFIG_SET_BYTES_STR
  - PyConfig_SetBytesString
  - _PyConfig_Copy
  - COPY_ATTR
  - COPY_WSTR_ATTR
  - COPY_WSTRLIST
  - config_as_dict
  - SET_ITEM
  - SET_ITEM_INT
  - SET_ITEM_UINT
  - FROM_WSTRING
  - SET_ITEM_WSTR
  - SET_ITEM_WSTRLIST
  - config_get_env
  - config_get_env_dup
  - CONFIG_GET_ENV_DUP
  - config_get_global_vars
  - COPY_FLAG
  - COPY_NOT_FLAG
  - config_set_global_vars
  - COPY_FLAG
  - COPY_NOT_FLAG
  - config_init_program_name
  - config_init_executable
  - config_get_xoption
  - config_init_home
  - config_init_hash_seed
  - config_wstr_to_int
  - config_read_env_vars
  - config_init_tracemalloc
  - config_init_pycache_prefix
  - config_read_complex_options
  - config_get_stdio_errors
  - config_get_locale_encoding
  - config_init_stdio_encoding
  - config_init_fs_encoding
  - if
  - config_read
  - config_init_stdio
  - _PyConfig_Write
  - config_usage
  - config_parse_cmdline
  - config_init_env_warnoptions
  - warnoptions_append
  - warnoptions_extend
  - config_init_warnoptions
  - config_update_argv
  - core_read_precmdline
  - config_read_cmdline
  - _PyConfig_SetPyArgv
  - PyConfig_SetBytesArgv
  - PyConfig_SetArgv
  - PyConfig_SetWideStringList
  - PyConfig_Read
  - _Py_GetConfigsAsDict
  - init_dump_ascii_wstr
  - _Py_DumpPathConfig
  - DUMP_CONFIG
  - DUMP_SYS
  source_file: /src/Python-3.8.3/Python/initconfig.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYTHONHOMEHELP
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Python/initconfig.c
      type_or_value: '"<prefix>\\python{major}{minor}"'
    - item_type: preproc_def
      name: PYTHONHOMEHELP
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/Python-3.8.3/Python/initconfig.c
      type_or_value: '"<prefix>/lib/pythonX.X"'
    - item_type: preproc_def
      name: WCSTOK
      pos:
        line_end: 2052
        line_start: 2051
        source_file: /src/Python-3.8.3/Python/initconfig.c
      type_or_value: wcstok_s
    - item_type: preproc_def
      name: WCSTOK
      pos:
        line_end: 2054
        line_start: 2053
        source_file: /src/Python-3.8.3/Python/initconfig.c
      type_or_value: wcstok
    structs: []
    typedefs: []
    union: []
- function_names:
  - dup2
  source_file: /src/Python-3.8.3/Python/dup2.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BADEXIT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Python/dup2.c
      type_or_value: '-1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PySys_GetObjectId
  - PySys_GetObject
  - _PySys_SetObjectId
  - PySys_SetObject
  - should_audit
  - PySys_Audit
  - _PySys_ClearAuditHooks
  - PySys_AddAuditHook
  - sys_addaudithook_impl
  - sys_audit
  - sys_breakpointhook
  - sys_displayhook_unencodable
  - sys_displayhook
  - sys_excepthook_impl
  - sys_exc_info_impl
  - sys_unraisablehook
  - sys_exit_impl
  - sys_getdefaultencoding_impl
  - sys_getfilesystemencoding_impl
  - sys_getfilesystemencodeerrors_impl
  - sys_intern_impl
  - trace_init
  - call_trampoline
  - profile_trampoline
  - trace_trampoline
  - sys_settrace
  - sys_gettrace_impl
  - sys_setprofile
  - sys_getprofile_impl
  - sys_setcheckinterval_impl
  - sys_getcheckinterval_impl
  - sys_setswitchinterval_impl
  - sys_getswitchinterval_impl
  - sys_setrecursionlimit_impl
  - sys_set_coroutine_origin_tracking_depth_impl
  - sys_get_coroutine_origin_tracking_depth_impl
  - set_async_gen_firstiter
  - _PyEval_SetAsyncGenFirstiter
  - set_async_gen_finalizer
  - _PyEval_SetAsyncGenFinalizer
  - sys_set_asyncgen_hooks
  - sys_get_asyncgen_hooks_impl
  - get_hash_info
  - sys_getrecursionlimit_impl
  - sys_getwindowsversion_impl
  - if
  - sys__enablelegacywindowsfsencoding_impl
  - sys_setdlopenflags_impl
  - sys_getdlopenflags_impl
  - sys_mdebug_impl
  - _PySys_GetSizeOf
  - sys_getsizeof
  - sys_getrefcount_impl
  - sys_gettotalrefcount_impl
  - sys_getallocatedblocks_impl
  - sys_getcounts_impl
  - sys__getframe_impl
  - sys__current_frames_impl
  - sys_call_tracing_impl
  - sys_callstats_impl
  - sys__debugmallocstats_impl
  - sys__clear_type_cache_impl
  - sys_is_finalizing_impl
  - sys_getandroidapilevel_impl
  - list_builtin_module_names
  - _alloc_preinit_entry
  - _append_preinit_entry
  - _clear_preinit_entries
  - _PySys_ReadPreinitWarnOptions
  - _PySys_ReadPreinitXOptions
  - get_warnoptions
  - PySys_ResetWarnOptions
  - _PySys_AddWarnOptionWithError
  - PySys_AddWarnOptionUnicode
  - PySys_AddWarnOption
  - PySys_HasWarnOptions
  - get_xoptions
  - _PySys_AddXOptionWithError
  - PySys_AddXOption
  - PySys_GetXOptions
  - make_flags
  - SetFlag
  - make_version_info
  - SetIntItem
  - SetStrItem
  - make_impl_info
  - SET_SYS_FROM_STRING_BORROW
  - SET_SYS_FROM_STRING
  - _PySys_InitCore
  - SET_SYS_FROM_STRING_INT_RESULT
  - sys_add_xoption
  - sys_create_xoptions_dict
  - _PySys_InitMain
  - COPY_LIST
  - SET_SYS_FROM_WSTR
  - _PySys_SetPreliminaryStderr
  - _PySys_Create
  - makepathobject
  - PySys_SetPath
  - make_sys_argv
  - PySys_SetArgvEx
  - PySys_SetArgv
  - sys_pyfile_write_unicode
  - sys_pyfile_write
  - sys_write
  - PySys_WriteStdout
  - PySys_WriteStderr
  - sys_format
  - PySys_FormatStdout
  - PySys_FormatStderr
  source_file: /src/Python-3.8.3/Python/sysmodule.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 2578
        line_start: 2577
        source_file: /src/Python-3.8.3/Python/sysmodule.c
      type_or_value: '"cpython"'
    - item_type: preproc_def
      name: MAJOR
      pos:
        line_end: 2580
        line_start: 2579
        source_file: /src/Python-3.8.3/Python/sysmodule.c
      type_or_value: Py_STRINGIFY(PY_MAJOR_VERSION)
    - item_type: preproc_def
      name: MINOR
      pos:
        line_end: 2581
        line_start: 2580
        source_file: /src/Python-3.8.3/Python/sysmodule.c
      type_or_value: Py_STRINGIFY(PY_MINOR_VERSION)
    - item_type: preproc_def
      name: TAG
      pos:
        line_end: 2582
        line_start: 2581
        source_file: /src/Python-3.8.3/Python/sysmodule.c
      type_or_value: NAME "-" MAJOR MINOR
    structs:
    - fields:
      - name: '*value'
        type: wchar_t
      - name: '*next'
        type: struct _preinit_entry
      item_type: struct
      name: _preinit_entry
      pos:
        line_end: 2049
        line_start: 2046
        source_file: /src/Python-3.8.3/Python/sysmodule.c
    typedefs:
    - item_type: typedef
      name: '*_Py_PreInitEntry'
      pos:
        line_end: 2051
        line_start: 2051
        source_file: /src/Python-3.8.3/Python/sysmodule.c
      type: _preinit_entry
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Python/dynload_stub.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyTime_check_mul_overflow
  - error_time_t_overflow
  - _PyTime_overflow
  - _PyTime_MulDiv
  - _PyLong_AsTime_t
  - _PyLong_FromTime_t
  - _PyTime_RoundHalfEven
  - _PyTime_Round
  - _PyTime_DoubleToDenominator
  - _PyTime_ObjectToDenominator
  - _PyTime_ObjectToTime_t
  - _PyTime_ObjectToTimespec
  - _PyTime_ObjectToTimeval
  - _PyTime_FromSeconds
  - _PyTime_FromNanoseconds
  - _PyTime_FromNanosecondsObject
  - pytime_fromtimespec
  - _PyTime_FromTimespec
  - pytime_fromtimeval
  - _PyTime_FromTimeval
  - _PyTime_FromDouble
  - _PyTime_FromObject
  - _PyTime_FromSecondsObject
  - _PyTime_FromMillisecondsObject
  - _PyTime_AsSecondsDouble
  - _PyTime_AsNanosecondsObject
  - _PyTime_Divide
  - _PyTime_AsMilliseconds
  - _PyTime_AsMicroseconds
  - _PyTime_AsTimeval_impl
  - _PyTime_AsTimevalStruct_impl
  - _PyTime_AsTimeval
  - _PyTime_AsTimeval_noraise
  - _PyTime_AsTimevalTime_t
  - _PyTime_AsTimespec
  - pygettimeofday
  - _PyTime_GetSystemClock
  - _PyTime_GetSystemClockWithInfo
  - pymonotonic
  - _PyTime_GetMonotonicClock
  - _PyTime_GetMonotonicClockWithInfo
  - win_perf_counter
  - _PyTime_GetPerfCounterWithInfo
  - _PyTime_GetPerfCounter
  - _PyTime_Init
  - _PyTime_localtime
  - _PyTime_gmtime
  source_file: /src/Python-3.8.3/Python/pytime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEC_TO_MS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MS_TO_US
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: SEC_TO_US
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: (SEC_TO_MS * MS_TO_US)
    - item_type: preproc_def
      name: US_TO_NS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: MS_TO_NS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: (MS_TO_US * US_TO_NS)
    - item_type: preproc_def
      name: SEC_TO_NS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: (SEC_TO_MS * MS_TO_NS)
    - item_type: preproc_def
      name: NS_TO_MS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: (1000 * 1000)
    - item_type: preproc_def
      name: NS_TO_US
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Python/pytime.c
      type_or_value: (1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyWindowsConsoleIO_Check
  - _PyRuntime_Initialize
  - _PyRuntime_Finalize
  - _Py_IsFinalizing
  - PyModule_GetWarningsModule
  - _Py_IsCoreInitialized
  - Py_IsInitialized
  - init_importlib
  - init_importlib_external
  - _Py_LegacyLocaleDetected
  - emit_stderr_warning_for_legacy_locale
  - _Py_IsLocaleCoercionTarget
  - _coerce_default_locale_settings
  - _Py_CoerceLegacyLocale
  - _Py_SetLocaleFromEnv
  - pyinit_core_reconfigure
  - pycore_init_runtime
  - pycore_create_interpreter
  - pycore_init_types
  - pycore_init_builtins
  - pycore_init_import_warnings
  - pyinit_config
  - _Py_PreInitializeFromPyArgv
  - Py_PreInitializeFromBytesArgs
  - Py_PreInitializeFromArgs
  - Py_PreInitialize
  - _Py_PreInitializeFromConfig
  - pyinit_core
  - _Py_ReconfigureMainInterpreter
  - pyinit_main
  - _Py_InitializeMain
  - Py_InitializeFromConfig
  - Py_InitializeEx
  - Py_Initialize
  - file_is_closed
  - flush_std_files
  - Py_FinalizeEx
  - Py_Finalize
  - new_interpreter
  - Py_NewInterpreter
  - Py_EndInterpreter
  - add_main_module
  - init_import_size
  - is_valid_fd
  - create_stdio
  - init_sys_streams
  - _Py_FatalError_DumpTracebacks
  - _Py_FatalError_PrintExc
  - fatal_output_debug
  - fatal_error_dump_runtime
  - _Py_NO_RETURN::fatal_error
  - _Py_NO_RETURN::Py_FatalError
  - _Py_NO_RETURN::Py_ExitStatusException
  - _Py_PyAtExit
  - call_py_exitfuncs
  - wait_for_thread_shutdown
  - Py_AtExit
  - call_ll_exitfuncs
  - _Py_NO_RETURN::Py_Exit
  - init_signals
  - _Py_RestoreSignals
  - Py_FdIsInteractive
  - PyOS_getsig
  - PyOS_setsig
  source_file: /src/Python-3.8.3/Python/pylifecycle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NEXITFUNCS
      pos:
        line_end: 2267
        line_start: 2266
        source_file: /src/Python-3.8.3/Python/pylifecycle.c
      type_or_value: '32'
    structs:
    - fields:
      - name: '*locale_name'
        type: char
      item_type: struct
      name: _CandidateLocale
      pos:
        line_end: 275
        line_start: 273
        source_file: /src/Python-3.8.3/Python/pylifecycle.c
    typedefs: []
    union: []
- function_names:
  - PyCodec_Register
  - normalizestring
  - _PyCodec_Lookup
  - _PyCodec_Forget
  - PyCodec_KnownEncoding
  - args_tuple
  - codec_getitem
  - codec_makeincrementalcodec
  - codec_getincrementalcodec
  - codec_getstreamcodec
  - _PyCodecInfo_GetIncrementalDecoder
  - _PyCodecInfo_GetIncrementalEncoder
  - PyCodec_Encoder
  - PyCodec_Decoder
  - PyCodec_IncrementalEncoder
  - PyCodec_IncrementalDecoder
  - PyCodec_StreamReader
  - PyCodec_StreamWriter
  - wrap_codec_error
  - _PyCodec_EncodeInternal
  - _PyCodec_DecodeInternal
  - PyCodec_Encode
  - PyCodec_Decode
  - _PyCodec_LookupTextEncoding
  - codec_getitem_checked
  - _PyCodec_TextEncoder
  - _PyCodec_TextDecoder
  - _PyCodec_EncodeText
  - _PyCodec_DecodeText
  - PyCodec_RegisterError
  - PyCodec_LookupError
  - wrong_exception_type
  - PyCodec_StrictErrors
  - PyCodec_IgnoreErrors
  - PyCodec_ReplaceErrors
  - PyCodec_XMLCharRefReplaceErrors
  - PyCodec_BackslashReplaceErrors
  - PyCodec_NameReplaceErrors
  - get_standard_encoding
  - PyCodec_SurrogatePassErrors
  - PyCodec_SurrogateEscapeErrors
  - strict_errors
  - ignore_errors
  - replace_errors
  - xmlcharrefreplace_errors
  - backslashreplace_errors
  - namereplace_errors
  - surrogatepass_errors
  - surrogateescape_errors
  - _PyCodecRegistry_Init
  source_file: /src/Python-3.8.3/Python/codecs.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENC_UNKNOWN
      pos:
        line_end: 1061
        line_start: 1060
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: ENC_UTF8
      pos:
        line_end: 1062
        line_start: 1061
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '0'
    - item_type: preproc_def
      name: ENC_UTF16BE
      pos:
        line_end: 1063
        line_start: 1062
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '1'
    - item_type: preproc_def
      name: ENC_UTF16LE
      pos:
        line_end: 1064
        line_start: 1063
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ENC_UTF32BE
      pos:
        line_end: 1065
        line_start: 1064
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '3'
    - item_type: preproc_def
      name: ENC_UTF32LE
      pos:
        line_end: 1066
        line_start: 1065
        source_file: /src/Python-3.8.3/Python/codecs.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: def
        type: PyMethodDef
      item_type: struct
      name: "methods[] =\n    {\n        {\n            \"strict\",\n            {\n
        \               \"strict_errors\",\n                strict_errors,\n                METH_O,\n
        \               PyDoc_STR(\"Implements the 'strict' error handling, which
        \"\n                          \"raises a UnicodeError on coding errors.\")\n
        \           }\n        },\n        {\n            \"ignore\",\n            {\n
        \               \"ignore_errors\",\n                ignore_errors,\n                METH_O,\n
        \               PyDoc_STR(\"Implements the 'ignore' error handling, which
        \"\n                          \"ignores malformed data and continues.\")\n
        \           }\n        },\n        {\n            \"replace\",\n            {\n
        \               \"replace_errors\",\n                replace_errors,\n                METH_O,\n
        \               PyDoc_STR(\"Implements the 'replace' error handling, which
        \"\n                          \"replaces malformed data with a replacement
        marker.\")\n            }\n        },\n        {\n            \"xmlcharrefreplace\",\n
        \           {\n                \"xmlcharrefreplace_errors\",\n                xmlcharrefreplace_errors,\n
        \               METH_O,\n                PyDoc_STR(\"Implements the 'xmlcharrefreplace'
        error handling, \"\n                          \"which replaces an unencodable
        character with the \"\n                          \"appropriate XML character
        reference.\")\n            }\n        },\n        {\n            \"backslashreplace\",\n
        \           {\n                \"backslashreplace_errors\",\n                backslashreplace_errors,\n
        \               METH_O,\n                PyDoc_STR(\"Implements the 'backslashreplace'
        error handling, \"\n                          \"which replaces malformed data
        with a backslashed \"\n                          \"escape sequence.\")\n            }\n
        \       },\n        {\n            \"namereplace\",\n            {\n                \"namereplace_errors\",\n
        \               namereplace_errors,\n                METH_O,\n                PyDoc_STR(\"Implements
        the 'namereplace' error handling, \"\n                          \"which replaces
        an unencodable character with a \"\n                          \"\\\\N{...}
        escape sequence.\")\n            }\n        },\n        {\n            \"surrogatepass\",\n
        \           {\n                \"surrogatepass\",\n                surrogatepass_errors,\n
        \               METH_O\n            }\n        },\n        {\n            \"surrogateescape\",\n
        \           {\n                \"surrogateescape\",\n                surrogateescape_errors,\n
        \               METH_O\n            }\n        }\n    }"
      pos:
        line_end: 1419
        line_start: 1416
        source_file: /src/Python-3.8.3/Python/codecs.c
    typedefs: []
    union: []
- function_names:
  - win32_urandom_init
  - win32_urandom
  - py_getrandom
  - py_getentropy
  - dev_urandom
  - dev_urandom_close
  - lcg_urandom
  - pyurandom
  - _PyOS_URandom
  - _PyOS_URandomNonblock
  - _Py_HashRandomization_Init
  - _Py_HashRandomization_Fini
  source_file: /src/Python-3.8.3/Python/bootstrap_hash.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PY_GETRANDOM
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Python/bootstrap_hash.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_GETENTROPY
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/Python-3.8.3/Python/bootstrap_hash.c
      type_or_value: '1'
    structs:
    - fields:
      - name: fd
        type: int
      - name: st_dev
        type: dev_t
      - name: st_ino
        type: ino_t
      item_type: struct
      name: urandom_cache = { -1 }
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/Python-3.8.3/Python/bootstrap_hash.c
    typedefs: []
    union: []
- function_names:
  - PyOS_strtoul
  - PyOS_strtol
  source_file: /src/Python-3.8.3/Python/mystrtoul.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PY_ABS_LONG_MIN
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/Python-3.8.3/Python/mystrtoul.c
      type_or_value: (0-(unsigned long)LONG_MIN)
    structs: []
    typedefs: []
    union: []
- function_names:
  - strdup
  source_file: /src/Python-3.8.3/Python/strdup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - builtin_format
  - builtin_chr
  - builtin_compile
  - builtin_divmod
  - builtin_eval
  - builtin_exec
  - builtin_globals
  - builtin_hasattr
  - builtin_setattr
  - builtin_delattr
  - builtin_locals
  - builtin_pow
  - builtin_input
  - builtin_round
  - builtin_sum
  - builtin_isinstance
  - builtin_issubclass
  source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUILTIN_ABS_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"abs", (PyCFunction)builtin_abs, METH_O, builtin_abs__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ALL_METHODDEF
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"all", (PyCFunction)builtin_all, METH_O, builtin_all__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ANY_METHODDEF
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"any", (PyCFunction)builtin_any, METH_O, builtin_any__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ASCII_METHODDEF
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"ascii", (PyCFunction)builtin_ascii, METH_O, builtin_ascii__doc__},'
    - item_type: preproc_def
      name: BUILTIN_BIN_METHODDEF
      pos:
        line_end: 60
        line_start: 58
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"bin", (PyCFunction)builtin_bin, METH_O, builtin_bin__doc__},'
    - item_type: preproc_def
      name: BUILTIN_CALLABLE_METHODDEF
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"callable", (PyCFunction)builtin_callable, METH_O, builtin_callable__doc__},'
    - item_type: preproc_def
      name: BUILTIN_FORMAT_METHODDEF
      pos:
        line_end: 85
        line_start: 83
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"format", (PyCFunction)(void(*)(void))builtin_format, METH_FASTCALL,
        builtin_format__doc__},'
    - item_type: preproc_def
      name: BUILTIN_CHR_METHODDEF
      pos:
        line_end: 126
        line_start: 124
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"chr", (PyCFunction)builtin_chr, METH_O, builtin_chr__doc__},'
    - item_type: preproc_def
      name: BUILTIN_COMPILE_METHODDEF
      pos:
        line_end: 171
        line_start: 169
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"compile", (PyCFunction)(void(*)(void))builtin_compile, METH_FASTCALL|METH_KEYWORDS,
        builtin_compile__doc__},'
    - item_type: preproc_def
      name: BUILTIN_DIVMOD_METHODDEF
      pos:
        line_end: 287
        line_start: 285
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"divmod", (PyCFunction)(void(*)(void))builtin_divmod, METH_FASTCALL,
        builtin_divmod__doc__},'
    - item_type: preproc_def
      name: BUILTIN_EVAL_METHODDEF
      pos:
        line_end: 323
        line_start: 321
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"eval", (PyCFunction)(void(*)(void))builtin_eval, METH_FASTCALL,
        builtin_eval__doc__},'
    - item_type: preproc_def
      name: BUILTIN_EXEC_METHODDEF
      pos:
        line_end: 369
        line_start: 367
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"exec", (PyCFunction)(void(*)(void))builtin_exec, METH_FASTCALL,
        builtin_exec__doc__},'
    - item_type: preproc_def
      name: BUILTIN_GLOBALS_METHODDEF
      pos:
        line_end: 412
        line_start: 410
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"globals", (PyCFunction)builtin_globals, METH_NOARGS, builtin_globals__doc__},'
    - item_type: preproc_def
      name: BUILTIN_HASATTR_METHODDEF
      pos:
        line_end: 432
        line_start: 430
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"hasattr", (PyCFunction)(void(*)(void))builtin_hasattr, METH_FASTCALL,
        builtin_hasattr__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ID_METHODDEF
      pos:
        line_end: 465
        line_start: 463
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"id", (PyCFunction)builtin_id, METH_O, builtin_id__doc__},'
    - item_type: preproc_def
      name: BUILTIN_SETATTR_METHODDEF
      pos:
        line_end: 476
        line_start: 474
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"setattr", (PyCFunction)(void(*)(void))builtin_setattr, METH_FASTCALL,
        builtin_setattr__doc__},'
    - item_type: preproc_def
      name: BUILTIN_DELATTR_METHODDEF
      pos:
        line_end: 511
        line_start: 509
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"delattr", (PyCFunction)(void(*)(void))builtin_delattr, METH_FASTCALL,
        builtin_delattr__doc__},'
    - item_type: preproc_def
      name: BUILTIN_HASH_METHODDEF
      pos:
        line_end: 544
        line_start: 542
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"hash", (PyCFunction)builtin_hash, METH_O, builtin_hash__doc__},'
    - item_type: preproc_def
      name: BUILTIN_HEX_METHODDEF
      pos:
        line_end: 556
        line_start: 554
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"hex", (PyCFunction)builtin_hex, METH_O, builtin_hex__doc__},'
    - item_type: preproc_def
      name: BUILTIN_LEN_METHODDEF
      pos:
        line_end: 565
        line_start: 563
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"len", (PyCFunction)builtin_len, METH_O, builtin_len__doc__},'
    - item_type: preproc_def
      name: BUILTIN_LOCALS_METHODDEF
      pos:
        line_end: 578
        line_start: 576
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"locals", (PyCFunction)builtin_locals, METH_NOARGS, builtin_locals__doc__},'
    - item_type: preproc_def
      name: BUILTIN_OCT_METHODDEF
      pos:
        line_end: 599
        line_start: 597
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"oct", (PyCFunction)builtin_oct, METH_O, builtin_oct__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ORD_METHODDEF
      pos:
        line_end: 608
        line_start: 606
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"ord", (PyCFunction)builtin_ord, METH_O, builtin_ord__doc__},'
    - item_type: preproc_def
      name: BUILTIN_POW_METHODDEF
      pos:
        line_end: 620
        line_start: 618
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"pow", (PyCFunction)(void(*)(void))builtin_pow, METH_FASTCALL|METH_KEYWORDS,
        builtin_pow__doc__},'
    - item_type: preproc_def
      name: BUILTIN_INPUT_METHODDEF
      pos:
        line_end: 668
        line_start: 666
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"input", (PyCFunction)(void(*)(void))builtin_input, METH_FASTCALL,
        builtin_input__doc__},'
    - item_type: preproc_def
      name: BUILTIN_REPR_METHODDEF
      pos:
        line_end: 702
        line_start: 700
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"repr", (PyCFunction)builtin_repr, METH_O, builtin_repr__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ROUND_METHODDEF
      pos:
        line_end: 714
        line_start: 712
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"round", (PyCFunction)(void(*)(void))builtin_round, METH_FASTCALL|METH_KEYWORDS,
        builtin_round__doc__},'
    - item_type: preproc_def
      name: BUILTIN_SUM_METHODDEF
      pos:
        line_end: 757
        line_start: 755
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"sum", (PyCFunction)(void(*)(void))builtin_sum, METH_FASTCALL|METH_KEYWORDS,
        builtin_sum__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ISINSTANCE_METHODDEF
      pos:
        line_end: 800
        line_start: 798
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"isinstance", (PyCFunction)(void(*)(void))builtin_isinstance,
        METH_FASTCALL, builtin_isinstance__doc__},'
    - item_type: preproc_def
      name: BUILTIN_ISSUBCLASS_METHODDEF
      pos:
        line_end: 835
        line_start: 833
        source_file: /src/Python-3.8.3/Python/clinic/bltinmodule.c.h
      type_or_value: '{"issubclass", (PyCFunction)(void(*)(void))builtin_issubclass,
        METH_FASTCALL, builtin_issubclass__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - marshal_dump
  - marshal_dumps
  - marshal_loads
  source_file: /src/Python-3.8.3/Python/clinic/marshal.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MARSHAL_DUMP_METHODDEF
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/Python-3.8.3/Python/clinic/marshal.c.h
      type_or_value: '{"dump", (PyCFunction)(void(*)(void))marshal_dump, METH_FASTCALL,
        marshal_dump__doc__},'
    - item_type: preproc_def
      name: MARSHAL_LOAD_METHODDEF
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/Python-3.8.3/Python/clinic/marshal.c.h
      type_or_value: '{"load", (PyCFunction)marshal_load, METH_O, marshal_load__doc__},'
    - item_type: preproc_def
      name: MARSHAL_DUMPS_METHODDEF
      pos:
        line_end: 95
        line_start: 93
        source_file: /src/Python-3.8.3/Python/clinic/marshal.c.h
      type_or_value: '{"dumps", (PyCFunction)(void(*)(void))marshal_dumps, METH_FASTCALL,
        marshal_dumps__doc__},'
    - item_type: preproc_def
      name: MARSHAL_LOADS_METHODDEF
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Python/clinic/marshal.c.h
      type_or_value: '{"loads", (PyCFunction)marshal_loads, METH_O, marshal_loads__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sys_addaudithook
  - sys_excepthook
  - sys_exc_info
  - sys_exit
  - sys_getdefaultencoding
  - sys_getfilesystemencoding
  - sys_getfilesystemencodeerrors
  - sys_intern
  - sys_gettrace
  - sys_getprofile
  - sys_setcheckinterval
  - sys_getcheckinterval
  - sys_setswitchinterval
  - sys_getswitchinterval
  - sys_setrecursionlimit
  - sys_set_coroutine_origin_tracking_depth
  - sys_get_coroutine_origin_tracking_depth
  - sys_get_asyncgen_hooks
  - sys_getrecursionlimit
  - sys_getwindowsversion
  - sys__enablelegacywindowsfsencoding
  - sys_setdlopenflags
  - sys_getdlopenflags
  - sys_mdebug
  - sys_getrefcount
  - sys_gettotalrefcount
  - sys_getallocatedblocks
  - sys_getcounts
  - sys__getframe
  - sys__current_frames
  - sys_call_tracing
  - sys_callstats
  - sys__debugmallocstats
  - sys__clear_type_cache
  - sys_is_finalizing
  - sys_getandroidapilevel
  source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SYS_ADDAUDITHOOK_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"addaudithook", (PyCFunction)(void(*)(void))sys_addaudithook,
        METH_FASTCALL|METH_KEYWORDS, sys_addaudithook__doc__},'
    - item_type: preproc_def
      name: SYS_DISPLAYHOOK_METHODDEF
      pos:
        line_end: 44
        line_start: 42
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"displayhook", (PyCFunction)sys_displayhook, METH_O, sys_displayhook__doc__},'
    - item_type: preproc_def
      name: SYS_EXCEPTHOOK_METHODDEF
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"excepthook", (PyCFunction)(void(*)(void))sys_excepthook, METH_FASTCALL,
        sys_excepthook__doc__},'
    - item_type: preproc_def
      name: SYS_EXC_INFO_METHODDEF
      pos:
        line_end: 89
        line_start: 87
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"exc_info", (PyCFunction)sys_exc_info, METH_NOARGS, sys_exc_info__doc__},'
    - item_type: preproc_def
      name: SYS_UNRAISABLEHOOK_METHODDEF
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"unraisablehook", (PyCFunction)sys_unraisablehook, METH_O,
        sys_unraisablehook__doc__},'
    - item_type: preproc_def
      name: SYS_EXIT_METHODDEF
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"exit", (PyCFunction)(void(*)(void))sys_exit, METH_FASTCALL,
        sys_exit__doc__},'
    - item_type: preproc_def
      name: SYS_GETDEFAULTENCODING_METHODDEF
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getdefaultencoding", (PyCFunction)sys_getdefaultencoding,
        METH_NOARGS, sys_getdefaultencoding__doc__},'
    - item_type: preproc_def
      name: SYS_GETFILESYSTEMENCODING_METHODDEF
      pos:
        line_end: 179
        line_start: 177
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getfilesystemencoding", (PyCFunction)sys_getfilesystemencoding,
        METH_NOARGS, sys_getfilesystemencoding__doc__},'
    - item_type: preproc_def
      name: SYS_GETFILESYSTEMENCODEERRORS_METHODDEF
      pos:
        line_end: 197
        line_start: 195
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getfilesystemencodeerrors", (PyCFunction)sys_getfilesystemencodeerrors,
        METH_NOARGS, sys_getfilesystemencodeerrors__doc__},'
    - item_type: preproc_def
      name: SYS_INTERN_METHODDEF
      pos:
        line_end: 219
        line_start: 217
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"intern", (PyCFunction)sys_intern, METH_O, sys_intern__doc__},'
    - item_type: preproc_def
      name: SYS_GETTRACE_METHODDEF
      pos:
        line_end: 253
        line_start: 251
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"gettrace", (PyCFunction)sys_gettrace, METH_NOARGS, sys_gettrace__doc__},'
    - item_type: preproc_def
      name: SYS_GETPROFILE_METHODDEF
      pos:
        line_end: 273
        line_start: 271
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getprofile", (PyCFunction)sys_getprofile, METH_NOARGS, sys_getprofile__doc__},'
    - item_type: preproc_def
      name: SYS_SETCHECKINTERVAL_METHODDEF
      pos:
        line_end: 296
        line_start: 294
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"setcheckinterval", (PyCFunction)sys_setcheckinterval, METH_O,
        sys_setcheckinterval__doc__},'
    - item_type: preproc_def
      name: SYS_GETCHECKINTERVAL_METHODDEF
      pos:
        line_end: 329
        line_start: 327
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getcheckinterval", (PyCFunction)sys_getcheckinterval, METH_NOARGS,
        sys_getcheckinterval__doc__},'
    - item_type: preproc_def
      name: SYS_SETSWITCHINTERVAL_METHODDEF
      pos:
        line_end: 354
        line_start: 352
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"setswitchinterval", (PyCFunction)sys_setswitchinterval, METH_O,
        sys_setswitchinterval__doc__},'
    - item_type: preproc_def
      name: SYS_GETSWITCHINTERVAL_METHODDEF
      pos:
        line_end: 388
        line_start: 386
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getswitchinterval", (PyCFunction)sys_getswitchinterval, METH_NOARGS,
        sys_getswitchinterval__doc__},'
    - item_type: preproc_def
      name: SYS_SETRECURSIONLIMIT_METHODDEF
      pos:
        line_end: 420
        line_start: 418
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"setrecursionlimit", (PyCFunction)sys_setrecursionlimit, METH_O,
        sys_setrecursionlimit__doc__},'
    - item_type: preproc_def
      name: SYS_SET_COROUTINE_ORIGIN_TRACKING_DEPTH_METHODDEF
      pos:
        line_end: 458
        line_start: 456
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"set_coroutine_origin_tracking_depth", (PyCFunction)(void(*)(void))sys_set_coroutine_origin_tracking_depth,
        METH_FASTCALL|METH_KEYWORDS, sys_set_coroutine_origin_tracking_depth__doc__},'
    - item_type: preproc_def
      name: SYS_GET_COROUTINE_ORIGIN_TRACKING_DEPTH_METHODDEF
      pos:
        line_end: 498
        line_start: 496
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"get_coroutine_origin_tracking_depth", (PyCFunction)sys_get_coroutine_origin_tracking_depth,
        METH_NOARGS, sys_get_coroutine_origin_tracking_depth__doc__},'
    - item_type: preproc_def
      name: SYS_GET_ASYNCGEN_HOOKS_METHODDEF
      pos:
        line_end: 528
        line_start: 526
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"get_asyncgen_hooks", (PyCFunction)sys_get_asyncgen_hooks,
        METH_NOARGS, sys_get_asyncgen_hooks__doc__},'
    - item_type: preproc_def
      name: SYS_GETRECURSIONLIMIT_METHODDEF
      pos:
        line_end: 550
        line_start: 548
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getrecursionlimit", (PyCFunction)sys_getrecursionlimit, METH_NOARGS,
        sys_getrecursionlimit__doc__},'
    - item_type: preproc_def
      name: SYS_GETWINDOWSVERSION_METHODDEF
      pos:
        line_end: 580
        line_start: 578
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getwindowsversion", (PyCFunction)sys_getwindowsversion, METH_NOARGS,
        sys_getwindowsversion__doc__},'
    - item_type: preproc_def
      name: SYS__ENABLELEGACYWINDOWSFSENCODING_METHODDEF
      pos:
        line_end: 608
        line_start: 606
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"_enablelegacywindowsfsencoding", (PyCFunction)sys__enablelegacywindowsfsencoding,
        METH_NOARGS, sys__enablelegacywindowsfsencoding__doc__},'
    - item_type: preproc_def
      name: SYS_SETDLOPENFLAGS_METHODDEF
      pos:
        line_end: 638
        line_start: 636
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"setdlopenflags", (PyCFunction)sys_setdlopenflags, METH_O,
        sys_setdlopenflags__doc__},'
    - item_type: preproc_def
      name: SYS_GETDLOPENFLAGS_METHODDEF
      pos:
        line_end: 677
        line_start: 675
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getdlopenflags", (PyCFunction)sys_getdlopenflags, METH_NOARGS,
        sys_getdlopenflags__doc__},'
    - item_type: preproc_def
      name: SYS_MDEBUG_METHODDEF
      pos:
        line_end: 698
        line_start: 696
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"mdebug", (PyCFunction)sys_mdebug, METH_O, sys_mdebug__doc__},'
    - item_type: preproc_def
      name: SYS_GETREFCOUNT_METHODDEF
      pos:
        line_end: 737
        line_start: 735
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getrefcount", (PyCFunction)sys_getrefcount, METH_O, sys_getrefcount__doc__},'
    - item_type: preproc_def
      name: SYS_GETTOTALREFCOUNT_METHODDEF
      pos:
        line_end: 766
        line_start: 764
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"gettotalrefcount", (PyCFunction)sys_gettotalrefcount, METH_NOARGS,
        sys_gettotalrefcount__doc__},'
    - item_type: preproc_def
      name: SYS_GETALLOCATEDBLOCKS_METHODDEF
      pos:
        line_end: 796
        line_start: 794
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getallocatedblocks", (PyCFunction)sys_getallocatedblocks,
        METH_NOARGS, sys_getallocatedblocks__doc__},'
    - item_type: preproc_def
      name: SYS_GETCOUNTS_METHODDEF
      pos:
        line_end: 825
        line_start: 823
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getcounts", (PyCFunction)sys_getcounts, METH_NOARGS, sys_getcounts__doc__},'
    - item_type: preproc_def
      name: SYS__GETFRAME_METHODDEF
      pos:
        line_end: 853
        line_start: 851
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"_getframe", (PyCFunction)(void(*)(void))sys__getframe, METH_FASTCALL,
        sys__getframe__doc__},'
    - item_type: preproc_def
      name: SYS__CURRENT_FRAMES_METHODDEF
      pos:
        line_end: 895
        line_start: 893
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"_current_frames", (PyCFunction)sys__current_frames, METH_NOARGS,
        sys__current_frames__doc__},'
    - item_type: preproc_def
      name: SYS_CALL_TRACING_METHODDEF
      pos:
        line_end: 917
        line_start: 915
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"call_tracing", (PyCFunction)(void(*)(void))sys_call_tracing,
        METH_FASTCALL, sys_call_tracing__doc__},'
    - item_type: preproc_def
      name: SYS_CALLSTATS_METHODDEF
      pos:
        line_end: 970
        line_start: 968
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"callstats", (PyCFunction)sys_callstats, METH_NOARGS, sys_callstats__doc__},'
    - item_type: preproc_def
      name: SYS__DEBUGMALLOCSTATS_METHODDEF
      pos:
        line_end: 991
        line_start: 989
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"_debugmallocstats", (PyCFunction)sys__debugmallocstats, METH_NOARGS,
        sys__debugmallocstats__doc__},'
    - item_type: preproc_def
      name: SYS__CLEAR_TYPE_CACHE_METHODDEF
      pos:
        line_end: 1009
        line_start: 1007
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"_clear_type_cache", (PyCFunction)sys__clear_type_cache, METH_NOARGS,
        sys__clear_type_cache__doc__},'
    - item_type: preproc_def
      name: SYS_IS_FINALIZING_METHODDEF
      pos:
        line_end: 1027
        line_start: 1025
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"is_finalizing", (PyCFunction)sys_is_finalizing, METH_NOARGS,
        sys_is_finalizing__doc__},'
    - item_type: preproc_def
      name: SYS_GETANDROIDAPILEVEL_METHODDEF
      pos:
        line_end: 1047
        line_start: 1045
        source_file: /src/Python-3.8.3/Python/clinic/sysmodule.c.h
      type_or_value: '{"getandroidapilevel", (PyCFunction)sys_getandroidapilevel,
        METH_NOARGS, sys_getandroidapilevel__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - warnings_warn
  source_file: /src/Python-3.8.3/Python/clinic/_warnings.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WARNINGS_WARN_METHODDEF
      pos:
        line_end: 12
        line_start: 10
        source_file: /src/Python-3.8.3/Python/clinic/_warnings.c.h
      type_or_value: '{"warn", (PyCFunction)(void(*)(void))warnings_warn, METH_FASTCALL|METH_KEYWORDS,
        warnings_warn__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tb_new
  source_file: /src/Python-3.8.3/Python/clinic/traceback.c.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _imp_lock_held
  - _imp_acquire_lock
  - _imp_release_lock
  - _imp__fix_co_filename
  - _imp_extension_suffixes
  - _imp_init_frozen
  - _imp_get_frozen_object
  - _imp_is_frozen_package
  - _imp_is_builtin
  - _imp_is_frozen
  - _imp_create_dynamic
  - _imp_exec_dynamic
  - _imp_exec_builtin
  - _imp_source_hash
  source_file: /src/Python-3.8.3/Python/clinic/import.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _IMP_LOCK_HELD_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"lock_held", (PyCFunction)_imp_lock_held, METH_NOARGS, _imp_lock_held__doc__},'
    - item_type: preproc_def
      name: _IMP_ACQUIRE_LOCK_METHODDEF
      pos:
        line_end: 35
        line_start: 33
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"acquire_lock", (PyCFunction)_imp_acquire_lock, METH_NOARGS,
        _imp_acquire_lock__doc__},'
    - item_type: preproc_def
      name: _IMP_RELEASE_LOCK_METHODDEF
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"release_lock", (PyCFunction)_imp_release_lock, METH_NOARGS,
        _imp_release_lock__doc__},'
    - item_type: preproc_def
      name: _IMP__FIX_CO_FILENAME_METHODDEF
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"_fix_co_filename", (PyCFunction)(void(*)(void))_imp__fix_co_filename,
        METH_FASTCALL, _imp__fix_co_filename__doc__},'
    - item_type: preproc_def
      name: _IMP_CREATE_BUILTIN_METHODDEF
      pos:
        line_end: 120
        line_start: 118
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"create_builtin", (PyCFunction)_imp_create_builtin, METH_O,
        _imp_create_builtin__doc__},'
    - item_type: preproc_def
      name: _IMP_EXTENSION_SUFFIXES_METHODDEF
      pos:
        line_end: 129
        line_start: 127
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"extension_suffixes", (PyCFunction)_imp_extension_suffixes,
        METH_NOARGS, _imp_extension_suffixes__doc__},'
    - item_type: preproc_def
      name: _IMP_INIT_FROZEN_METHODDEF
      pos:
        line_end: 147
        line_start: 145
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"init_frozen", (PyCFunction)_imp_init_frozen, METH_O, _imp_init_frozen__doc__},'
    - item_type: preproc_def
      name: _IMP_GET_FROZEN_OBJECT_METHODDEF
      pos:
        line_end: 179
        line_start: 177
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"get_frozen_object", (PyCFunction)_imp_get_frozen_object, METH_O,
        _imp_get_frozen_object__doc__},'
    - item_type: preproc_def
      name: _IMP_IS_FROZEN_PACKAGE_METHODDEF
      pos:
        line_end: 211
        line_start: 209
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"is_frozen_package", (PyCFunction)_imp_is_frozen_package, METH_O,
        _imp_is_frozen_package__doc__},'
    - item_type: preproc_def
      name: _IMP_IS_BUILTIN_METHODDEF
      pos:
        line_end: 243
        line_start: 241
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"is_builtin", (PyCFunction)_imp_is_builtin, METH_O, _imp_is_builtin__doc__},'
    - item_type: preproc_def
      name: _IMP_IS_FROZEN_METHODDEF
      pos:
        line_end: 275
        line_start: 273
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"is_frozen", (PyCFunction)_imp_is_frozen, METH_O, _imp_is_frozen__doc__},'
    - item_type: preproc_def
      name: _IMP_CREATE_DYNAMIC_METHODDEF
      pos:
        line_end: 309
        line_start: 307
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"create_dynamic", (PyCFunction)(void(*)(void))_imp_create_dynamic,
        METH_FASTCALL, _imp_create_dynamic__doc__},'
    - item_type: preproc_def
      name: _IMP_EXEC_DYNAMIC_METHODDEF
      pos:
        line_end: 347
        line_start: 345
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"exec_dynamic", (PyCFunction)_imp_exec_dynamic, METH_O, _imp_exec_dynamic__doc__},'
    - item_type: preproc_def
      name: _IMP_EXEC_BUILTIN_METHODDEF
      pos:
        line_end: 377
        line_start: 375
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"exec_builtin", (PyCFunction)_imp_exec_builtin, METH_O, _imp_exec_builtin__doc__},'
    - item_type: preproc_def
      name: _IMP_SOURCE_HASH_METHODDEF
      pos:
        line_end: 404
        line_start: 402
        source_file: /src/Python-3.8.3/Python/clinic/import.c.h
      type_or_value: '{"source_hash", (PyCFunction)(void(*)(void))_imp_source_hash,
        METH_FASTCALL|METH_KEYWORDS, _imp_source_hash__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _contextvars_Context_get
  - _contextvars_Context_items
  - _contextvars_Context_keys
  - _contextvars_Context_values
  - _contextvars_Context_copy
  - _contextvars_ContextVar_get
  source_file: /src/Python-3.8.3/Python/clinic/context.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXT_GET_METHODDEF
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_contextvars_Context_get,
        METH_FASTCALL, _contextvars_Context_get__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXT_ITEMS_METHODDEF
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"items", (PyCFunction)_contextvars_Context_items, METH_NOARGS,
        _contextvars_Context_items__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXT_KEYS_METHODDEF
      pos:
        line_end: 70
        line_start: 68
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"keys", (PyCFunction)_contextvars_Context_keys, METH_NOARGS,
        _contextvars_Context_keys__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXT_VALUES_METHODDEF
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"values", (PyCFunction)_contextvars_Context_values, METH_NOARGS,
        _contextvars_Context_values__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXT_COPY_METHODDEF
      pos:
        line_end: 106
        line_start: 104
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"copy", (PyCFunction)_contextvars_Context_copy, METH_NOARGS,
        _contextvars_Context_copy__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXTVAR_GET_METHODDEF
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"get", (PyCFunction)(void(*)(void))_contextvars_ContextVar_get,
        METH_FASTCALL, _contextvars_ContextVar_get__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXTVAR_SET_METHODDEF
      pos:
        line_end: 167
        line_start: 165
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"set", (PyCFunction)_contextvars_ContextVar_set, METH_O, _contextvars_ContextVar_set__doc__},'
    - item_type: preproc_def
      name: _CONTEXTVARS_CONTEXTVAR_RESET_METHODDEF
      pos:
        line_end: 179
        line_start: 177
        source_file: /src/Python-3.8.3/Python/clinic/context.c.h
      type_or_value: '{"reset", (PyCFunction)_contextvars_ContextVar_reset, METH_O,
        _contextvars_ContextVar_reset__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PySeqIter_Check
  - PyCallIter_Check
  source_file: /src/Python-3.8.3/Include/iterobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyBool_Check
  source_file: /src/Python-3.8.3/Include/boolobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_False
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/boolobject.h
      type_or_value: ((PyObject *) &_Py_FalseStruct)
    - item_type: preproc_def
      name: Py_True
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/boolobject.h
      type_or_value: ((PyObject *) &_Py_TrueStruct)
    - item_type: preproc_def
      name: Py_RETURN_TRUE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/boolobject.h
      type_or_value: return Py_INCREF(Py_True), Py_True
    - item_type: preproc_def
      name: Py_RETURN_FALSE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/boolobject.h
      type_or_value: return Py_INCREF(Py_False), Py_False
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/codecs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pystrhex.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/intrcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyErr_Warn
  source_file: /src/Python-3.8.3/Include/warnings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PySTEntry_Check
  source_file: /src/Python-3.8.3/Include/symtable.h
  types:
    enum:
    - enumerators:
      - name: FunctionBlock
      - name: ModuleBlock
      - name: ClassBlock
      item_type: enum
      name: _block_type
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Include/symtable.h
    preproc_defs:
    - item_type: preproc_def
      name: DEF_GLOBAL
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '1           '
    - item_type: preproc_def
      name: DEF_LOCAL
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2            '
    - item_type: preproc_def
      name: DEF_PARAM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<1         '
    - item_type: preproc_def
      name: DEF_NONLOCAL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<2      '
    - item_type: preproc_def
      name: USE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<3               '
    - item_type: preproc_def
      name: DEF_FREE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<4          '
    - item_type: preproc_def
      name: DEF_FREE_CLASS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<5    '
    - item_type: preproc_def
      name: DEF_IMPORT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<6        '
    - item_type: preproc_def
      name: DEF_ANNOT
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<7         '
    - item_type: preproc_def
      name: DEF_COMP_ITER
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2<<8     '
    - item_type: preproc_def
      name: DEF_BOUND
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: (DEF_LOCAL | DEF_PARAM | DEF_IMPORT)
    - item_type: preproc_def
      name: SCOPE_OFFSET
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SCOPE_MASK
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL)
    - item_type: preproc_def
      name: LOCAL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GLOBAL_EXPLICIT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2'
    - item_type: preproc_def
      name: GLOBAL_IMPLICIT
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '3'
    - item_type: preproc_def
      name: FREE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CELL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '5'
    - item_type: preproc_def
      name: GENERATOR
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '1'
    - item_type: preproc_def
      name: GENERATOR_EXPRESSION
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Include/symtable.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*st_filename'
        type: PyObject
      - name: '*st_cur'
        type: struct _symtable_entry
      - name: '*st_top'
        type: struct _symtable_entry
      - name: '*st_blocks'
        type: PyObject
      - name: '*st_stack'
        type: PyObject
      - name: '*st_global'
        type: PyObject
      - name: st_nblocks
        type: int
      - name: '*st_private'
        type: PyObject
      - name: '*st_future'
        type: PyFutureFeatures
      - name: recursion_depth
        type: int
      - name: recursion_limit
        type: int
      item_type: struct
      name: symtable
      pos:
        line_end: 35
        line_start: 18
        source_file: /src/Python-3.8.3/Include/symtable.h
    - fields:
      - name: '*ste_id'
        type: PyObject_HEAD
      - name: '*ste_symbols'
        type: PyObject
      - name: '*ste_name'
        type: PyObject
      - name: '*ste_varnames'
        type: PyObject
      - name: '*ste_children'
        type: PyObject
      - name: '*ste_directives'
        type: PyObject
      - name: ste_type
        type: _Py_block_ty
      - name: ste_nested
        type: int
      - name: ste_free
        type: unsigned
      - name: ste_child_free
        type: unsigned
      - name: ste_generator
        type: unsigned
      - name: ste_coroutine
        type: unsigned
      - name: ste_comprehension
        type: unsigned
      - name: ste_varargs
        type: unsigned
      - name: ste_varkeywords
        type: unsigned
      - name: ste_returns_value
        type: unsigned
      - name: ste_needs_class_closure
        type: unsigned
      - name: ste_comp_iter_target
        type: unsigned
      - name: ste_comp_iter_expr
        type: int
      - name: ste_lineno
        type: int
      - name: ste_col_offset
        type: int
      - name: ste_opt_lineno
        type: int
      - name: ste_opt_col_offset
        type: int
      - name: '*ste_table'
        type: struct symtable
      item_type: struct
      name: _symtable_entry
      pos:
        line_end: 67
        line_start: 37
        source_file: /src/Python-3.8.3/Include/symtable.h
    typedefs: []
    union: []
- function_names:
  - PyUnicode_Check
  - PyUnicode_CheckExact
  - PyUnicode_CHECK_INTERNED
  source_file: /src/Python-3.8.3/Include/unicodeobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_UNICODE_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/unicodeobject.h
      type_or_value: SIZEOF_WCHAR_T
    - item_type: preproc_def
      name: Py_UNICODE_REPLACEMENT_CHARACTER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Include/unicodeobject.h
      type_or_value: ((Py_UCS4) 0xFFFD)
    structs: []
    typedefs:
    - item_type: typedef
      name: Py_UCS4
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/Python-3.8.3/Include/unicodeobject.h
      type: uint32_t
    - item_type: typedef
      name: Py_UCS2
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/Python-3.8.3/Include/unicodeobject.h
      type: uint16_t
    - item_type: typedef
      name: Py_UCS1
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/Python-3.8.3/Include/unicodeobject.h
      type: uint8_t
    union: []
- function_names:
  - PyDescr_TYPE
  - PyDescr_NAME
  - PyDescr_IsData
  source_file: /src/Python-3.8.3/Include/descrobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyWrapperFlag_KEYWORDS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PyDescr_COMMON
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type_or_value: PyDescrObject d_common
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: get
        type: getter
      - name: set
        type: setter
      - name: '*doc'
        type: char
      - name: '*closure'
        type: void
      item_type: struct
      name: PyGetSetDef
      pos:
        line_end: 16
        line_start: 10
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*name'
        type: char
      - name: offset
        type: int
      - name: '*function'
        type: void
      - name: wrapper
        type: wrapperfunc
      - name: '*doc'
        type: char
      - name: flags
        type: int
      - name: '*name_strobj'
        type: PyObject
      item_type: struct
      name: wrapperbase
      pos:
        line_end: 33
        line_start: 25
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*d_type'
        type: PyObject_HEAD
      - name: '*d_name'
        type: PyObject
      - name: '*d_qualname'
        type: PyObject
      item_type: struct
      name: PyDescrObject
      pos:
        line_end: 45
        line_start: 40
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*d_method'
        type: PyMethodDef
      - name: vectorcall
        type: vectorcallfunc
      item_type: struct
      name: PyMethodDescrObject
      pos:
        line_end: 56
        line_start: 52
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*d_member'
        type: struct PyMemberDef
      item_type: struct
      name: PyMemberDescrObject
      pos:
        line_end: 61
        line_start: 58
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*d_getset'
        type: PyGetSetDef
      item_type: struct
      name: PyGetSetDescrObject
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/Python-3.8.3/Include/descrobject.h
    - fields:
      - name: '*d_base'
        type: struct wrapperbase
      - name: '*d_wrapped'
        type: void
      item_type: struct
      name: PyWrapperDescrObject
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/Python-3.8.3/Include/descrobject.h
    typedefs:
    - item_type: typedef
      name: '*(*getter)(PyObject *, void *)'
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type: PyObject
    - item_type: typedef
      name: (*setter)(PyObject *, PyObject *, void *)
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type: int
    - item_type: typedef
      name: "*(*wrapperfunc)(PyObject *self, PyObject *args,\n                                 void
        *wrapped)"
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type: PyObject
    - item_type: typedef
      name: "*(*wrapperfunc_kwds)(PyObject *self, PyObject *args,\n                                      void
        *wrapped, PyObject *kwds)"
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/descrobject.h
      type: PyObject
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/dtoa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/tracemalloc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyAST_Compile
  source_file: /src/Python-3.8.3/Include/compile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyCF_MASK
      pos:
        line_end: 19
        line_start: 15
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: "(CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \\\n                   CO_FUTURE_WITH_STATEMENT
        | CO_FUTURE_PRINT_FUNCTION | \\\n                   CO_FUTURE_UNICODE_LITERALS
        | CO_FUTURE_BARRY_AS_BDFL | \\\n                   CO_FUTURE_GENERATOR_STOP
        | CO_FUTURE_ANNOTATIONS)"
    - item_type: preproc_def
      name: PyCF_MASK_OBSOLETE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: (CO_NESTED)
    - item_type: preproc_def
      name: PyCF_SOURCE_IS_UTF8
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: PyCF_DONT_IMPLY_DEDENT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: PyCF_ONLY_AST
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: PyCF_IGNORE_COOKIE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: PyCF_TYPE_COMMENTS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x1000'
    - item_type: preproc_def
      name: PyCF_ALLOW_TOP_LEVEL_AWAIT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '0x2000'
    - item_type: preproc_def
      name: PyCF_COMPILE_MASK
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: "(PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \\\n                           PyCF_TYPE_COMMENTS
        | PyCF_DONT_IMPLY_DEDENT)"
    - item_type: preproc_def
      name: _PyCompilerFlags_INIT
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION}
    - item_type: preproc_def
      name: FUTURE_NESTED_SCOPES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"nested_scopes"'
    - item_type: preproc_def
      name: FUTURE_GENERATORS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"generators"'
    - item_type: preproc_def
      name: FUTURE_DIVISION
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"division"'
    - item_type: preproc_def
      name: FUTURE_ABSOLUTE_IMPORT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"absolute_import"'
    - item_type: preproc_def
      name: FUTURE_WITH_STATEMENT
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"with_statement"'
    - item_type: preproc_def
      name: FUTURE_PRINT_FUNCTION
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"print_function"'
    - item_type: preproc_def
      name: FUTURE_UNICODE_LITERALS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"unicode_literals"'
    - item_type: preproc_def
      name: FUTURE_BARRY_AS_BDFL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"barry_as_FLUFL"'
    - item_type: preproc_def
      name: FUTURE_GENERATOR_STOP
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"generator_stop"'
    - item_type: preproc_def
      name: FUTURE_ANNOTATIONS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '"annotations"'
    - item_type: preproc_def
      name: PY_INVALID_STACK_EFFECT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: Py_single_input
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '256'
    - item_type: preproc_def
      name: Py_file_input
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '257'
    - item_type: preproc_def
      name: Py_eval_input
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '258'
    - item_type: preproc_def
      name: Py_func_type_input
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Include/compile.h
      type_or_value: '345'
    structs:
    - fields:
      - name: cf_flags
        type: int
      - name: cf_feature_version
        type: int
      item_type: struct
      name: PyCompilerFlags
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/Python-3.8.3/Include/compile.h
    - fields:
      - name: ff_features
        type: int
      - name: ff_lineno
        type: int
      item_type: struct
      name: PyFutureFeatures
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/Python-3.8.3/Include/compile.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pythread.h
  types:
    enum:
    - enumerators:
      - name: PY_LOCK_FAILURE
        value: '0'
      - name: PY_LOCK_INTR
      - name: PY_LOCK_ACQUIRED
        value: '1'
      item_type: enum
      name: PyLockStatus
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/Python-3.8.3/Include/pythread.h
    preproc_defs:
    - item_type: preproc_def
      name: PYTHREAD_INVALID_THREAD_ID
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: ((unsigned long)-1)
    - item_type: preproc_def
      name: WAIT_LOCK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NOWAIT_LOCK
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PY_TIMEOUT_T
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: long long
    - item_type: preproc_def
      name: PY_TIMEOUT_MAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: (PY_LLONG_MAX / 1000)
    - item_type: preproc_def
      name: PY_TIMEOUT_MAX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: (0xFFFFFFFFLL * 1000)
    - item_type: preproc_def
      name: PY_TIMEOUT_MAX
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: PY_LLONG_MAX
    - item_type: preproc_def
      name: PY_TIMEOUT_MAX
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: PY_LLONG_MAX
    - item_type: preproc_def
      name: NATIVE_TSS_KEY_T
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: pthread_key_t
    - item_type: preproc_def
      name: NATIVE_TSS_KEY_T
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: unsigned long
    - item_type: preproc_def
      name: Py_tss_NEEDS_INIT
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/Python-3.8.3/Include/pythread.h
      type_or_value: '{0}'
    structs:
    - fields:
      - name: _is_initialized
        type: int
      - name: _key
        type: NATIVE_TSS_KEY_T
      item_type: struct
      name: _Py_tss_t
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/Python-3.8.3/Include/pythread.h
    typedefs:
    - item_type: typedef
      name: '*PyThread_type_lock'
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/Python-3.8.3/Include/pythread.h
      type: void
    - item_type: typedef
      name: '*PyThread_type_sema'
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/Python-3.8.3/Include/pythread.h
      type: void
    - item_type: typedef
      name: Py_tss_t
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/Python-3.8.3/Include/pythread.h
      type: _Py_tss_t
    union: []
- function_names:
  - PyRange_Check
  source_file: /src/Python-3.8.3/Include/rangeobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyDateTime_GET_YEAR
  - PyDateTime_GET_MONTH
  - PyDateTime_GET_DAY
  - PyDateTime_DATE_GET_HOUR
  - PyDateTime_DATE_GET_MINUTE
  - PyDateTime_DATE_GET_SECOND
  - PyDateTime_DATE_GET_MICROSECOND
  - PyDateTime_DATE_GET_FOLD
  - PyDateTime_TIME_GET_HOUR
  - PyDateTime_TIME_GET_MINUTE
  - PyDateTime_TIME_GET_SECOND
  - PyDateTime_TIME_GET_MICROSECOND
  - PyDateTime_TIME_GET_FOLD
  - PyDateTime_DELTA_GET_DAYS
  - PyDateTime_DELTA_GET_SECONDS
  - PyDateTime_DELTA_GET_MICROSECONDS
  - PyDate_Check
  - PyDate_CheckExact
  - PyDateTime_Check
  - PyDateTime_CheckExact
  - PyTime_Check
  - PyTime_CheckExact
  - PyDelta_Check
  - PyDelta_CheckExact
  - PyTZInfo_Check
  - PyTZInfo_CheckExact
  - PyDate_FromDate
  - PyDateTime_FromDateAndTime
  - PyDateTime_FromDateAndTimeAndFold
  - PyTime_FromTime
  - PyTime_FromTimeAndFold
  - PyDelta_FromDSU
  - PyTimeZone_FromOffset
  - PyTimeZone_FromOffsetAndName
  - PyDateTime_FromTimestamp
  - PyDate_FromTimestamp
  source_file: /src/Python-3.8.3/Include/datetime.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyDateTime_DATE_DATASIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: '4'
    - item_type: preproc_def
      name: _PyDateTime_TIME_DATASIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: '6'
    - item_type: preproc_def
      name: _PyDateTime_DATETIME_DATASIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: '10'
    - item_type: preproc_def
      name: _PyTZINFO_HEAD
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: "PyObject_HEAD               \\\n    Py_hash_t hashcode;         \\\n
        \   char hastzinfo;             "
    - item_type: preproc_def
      name: _PyDateTime_TIMEHEAD
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: "_PyTZINFO_HEAD              \\\n    unsigned char data[_PyDateTime_TIME_DATASIZE];"
    - item_type: preproc_def
      name: _PyDateTime_DATETIMEHEAD
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: "_PyTZINFO_HEAD                      \\\n    unsigned char data[_PyDateTime_DATETIME_DATASIZE];"
    - item_type: preproc_def
      name: PyDateTime_CAPSULE_NAME
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: '"datetime.datetime_CAPI"'
    - item_type: preproc_def
      name: PyDateTime_IMPORT
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: PyDateTimeAPI = (PyDateTime_CAPI *)PyCapsule_Import(PyDateTime_CAPSULE_NAME,
        0)
    - item_type: preproc_def
      name: PyDateTime_TimeZone_UTC
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Include/datetime.h
      type_or_value: PyDateTimeAPI->TimeZone_UTC
    structs:
    - fields:
      - name: Py_hash_t
        type: PyObject_HEAD
      - name: days
        type: int
      - name: seconds
        type: int
      - name: microseconds
        type: int
      item_type: struct
      name: PyDateTime_Delta
      pos:
        line_end: 40
        line_start: 33
        source_file: /src/Python-3.8.3/Include/datetime.h
    - fields:
      - name: char
        type: "_PyDateTime_TIMEHEAD\n    unsigned"
      - name: '*tzinfo'
        type: PyObject
      item_type: struct
      name: PyDateTime_Time
      pos:
        line_end: 85
        line_start: 80
        source_file: /src/Python-3.8.3/Include/datetime.h
    - fields:
      - name: data[_PyDateTime_DATE_DATASIZE]
        type: "_PyTZINFO_HEAD\n    unsigned"
      item_type: struct
      name: PyDateTime_Date
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/Python-3.8.3/Include/datetime.h
    - fields:
      - name: char
        type: "_PyDateTime_DATETIMEHEAD\n    unsigned"
      - name: '*tzinfo'
        type: PyObject
      item_type: struct
      name: PyDateTime_DateTime
      pos:
        line_end: 113
        line_start: 108
        source_file: /src/Python-3.8.3/Include/datetime.h
    - fields:
      - name: '*DateType'
        type: PyTypeObject
      - name: '*DateTimeType'
        type: PyTypeObject
      - name: '*TimeType'
        type: PyTypeObject
      - name: '*DeltaType'
        type: PyTypeObject
      - name: '*TZInfoType'
        type: PyTypeObject
      - name: '*TimeZone_UTC'
        type: PyObject
      - name: '*(*Date_FromDate)(int, int, int, PyTypeObject*)'
        type: PyObject
      - name: "*(*DateTime_FromDateAndTime)(int, int, int, int, int, int, int,\n        PyObject*,
          PyTypeObject*)"
        type: PyObject
      - name: '*(*Time_FromTime)(int, int, int, int, PyObject*, PyTypeObject*)'
        type: PyObject
      - name: '*(*Delta_FromDelta)(int, int, int, int, PyTypeObject*)'
        type: PyObject
      - name: '*(*TimeZone_FromTimeZone)(PyObject *offset, PyObject *name)'
        type: PyObject
      - name: '*(*DateTime_FromTimestamp)(PyObject*, PyObject*, PyObject*)'
        type: PyObject
      - name: '*(*Date_FromTimestamp)(PyObject*, PyObject*)'
        type: PyObject
      - name: "*(*DateTime_FromDateAndTimeAndFold)(int, int, int, int, int, int, int,\n
          \       PyObject*, int, PyTypeObject*)"
        type: PyObject
      - name: '*(*Time_FromTimeAndFold)(int, int, int, int, PyObject*, int, PyTypeObject*)'
        type: PyObject
      item_type: struct
      name: PyDateTime_CAPI
      pos:
        line_end: 177
        line_start: 149
        source_file: /src/Python-3.8.3/Include/datetime.h
    typedefs: []
    union: []
- function_names:
  - PyMem_MALLOC
  - PyMem_REALLOC
  - PyMem_FREE
  - PyMem_New
  - PyMem_NEW
  - PyMem_Resize
  - PyMem_RESIZE
  source_file: /src/Python-3.8.3/Include/pymem.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyMem_Del
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/pymem.h
      type_or_value: PyMem_Free
    - item_type: preproc_def
      name: PyMem_DEL
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Include/pymem.h
      type_or_value: PyMem_FREE
    - item_type: preproc_def
      name: _PyTraceMalloc_Config_INIT
      pos:
        line_end: 137
        line_start: 132
        source_file: /src/Python-3.8.3/Include/pymem.h
      type_or_value: "{.initialized = TRACEMALLOC_NOT_INITIALIZED, \\\n     .tracing
        = 0, \\\n     .max_nframe = 1, \\\n     .use_domain = 0}"
    structs:
    - fields:
      - name: initialized
        type: "enum {\n        TRACEMALLOC_NOT_INITIALIZED,\n        TRACEMALLOC_INITIALIZED,\n
          \       TRACEMALLOC_FINALIZED\n    }"
      - name: tracing
        type: int
      - name: max_nframe
        type: int
      - name: use_domain
        type: int
      item_type: struct
      name: _PyTraceMalloc_Config
      pos:
        line_end: 128
        line_start: 108
        source_file: /src/Python-3.8.3/Include/pymem.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/errcode.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: E_OK
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '10      '
    - item_type: preproc_def
      name: E_EOF
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '11      '
    - item_type: preproc_def
      name: E_INTR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '12      '
    - item_type: preproc_def
      name: E_TOKEN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '13      '
    - item_type: preproc_def
      name: E_SYNTAX
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '14      '
    - item_type: preproc_def
      name: E_NOMEM
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '15      '
    - item_type: preproc_def
      name: E_DONE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '16      '
    - item_type: preproc_def
      name: E_ERROR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '17      '
    - item_type: preproc_def
      name: E_TABSPACE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '18      '
    - item_type: preproc_def
      name: E_OVERFLOW
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '19      '
    - item_type: preproc_def
      name: E_TOODEEP
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '20      '
    - item_type: preproc_def
      name: E_DEDENT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '21      '
    - item_type: preproc_def
      name: E_DECODE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '22      '
    - item_type: preproc_def
      name: E_EOFS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '23      '
    - item_type: preproc_def
      name: E_EOLS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '24      '
    - item_type: preproc_def
      name: E_LINECONT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '25      '
    - item_type: preproc_def
      name: E_IDENTIFIER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '26      '
    - item_type: preproc_def
      name: E_BADSINGLE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/errcode.h
      type_or_value: '27      '
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyIsSelectable_fd
  - _PyIsSelectable_fd
  source_file: /src/Python-3.8.3/Include/fileobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PY_STDIOTEXTMODE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Include/fileobject.h
      type_or_value: '"b"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Py_ISLOWER
  - Py_ISUPPER
  - Py_ISALPHA
  - Py_ISDIGIT
  - Py_ISXDIGIT
  - Py_ISALNUM
  - Py_ISSPACE
  - Py_TOLOWER
  - Py_TOUPPER
  source_file: /src/Python-3.8.3/Include/pyctype.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PY_CTF_LOWER
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PY_CTF_UPPER
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PY_CTF_ALPHA
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: (PY_CTF_LOWER|PY_CTF_UPPER)
    - item_type: preproc_def
      name: PY_CTF_DIGIT
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PY_CTF_ALNUM
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: (PY_CTF_ALPHA|PY_CTF_DIGIT)
    - item_type: preproc_def
      name: PY_CTF_SPACE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: PY_CTF_XDIGIT
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/pyctype.h
      type_or_value: '0x10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/fileutils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PY_READ_MAX
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/fileutils.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: _PY_WRITE_MAX
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/fileutils.h
      type_or_value: INT_MAX
    - item_type: preproc_def
      name: _PY_READ_MAX
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/fileutils.h
      type_or_value: PY_SSIZE_T_MAX
    - item_type: preproc_def
      name: _PY_WRITE_MAX
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/fileutils.h
      type_or_value: PY_SSIZE_T_MAX
    - item_type: preproc_def
      name: _Py_stat_struct
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Include/fileutils.h
      type_or_value: stat
    structs:
    - fields:
      - name: st_dev
        type: unsigned long
      - name: st_ino
        type: uint64_t
      - name: st_mode
        type: unsigned short
      - name: st_nlink
        type: int
      - name: st_uid
        type: int
      - name: st_gid
        type: int
      - name: st_rdev
        type: unsigned long
      - name: st_size
        type: __int64
      - name: st_atime
        type: time_t
      - name: st_atime_nsec
        type: int
      - name: st_mtime
        type: time_t
      - name: st_mtime_nsec
        type: int
      - name: st_ctime
        type: time_t
      - name: st_ctime_nsec
        type: int
      - name: st_file_attributes
        type: unsigned long
      - name: st_reparse_tag
        type: unsigned long
      item_type: struct
      name: _Py_stat_struct
      pos:
        line_end: 87
        line_start: 70
        source_file: /src/Python-3.8.3/Include/fileutils.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/ucnhash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyUnicodeData_CAPSULE_NAME
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/ucnhash.h
      type_or_value: '"unicodedata.ucnhash_CAPI"'
    structs:
    - fields:
      - name: size
        type: int
      - name: "(*getname)(PyObject *self, Py_UCS4 code, char* buffer, int buflen,\n
          \                  int with_alias_and_seq)"
        type: int
      - name: "(*getcode)(PyObject *self, const char* name, int namelen, Py_UCS4*
          code,\n                   int with_named_seq)"
        type: int
      item_type: struct
      name: _PyUnicode_Name_CAPI
      pos:
        line_end: 29
        line_start: 12
        source_file: /src/Python-3.8.3/Include/ucnhash.h
    typedefs: []
    union: []
- function_names:
  - PyFloat_Check
  - PyFloat_CheckExact
  - Py_RETURN_INF
  - PyFloat_AS_DOUBLE
  source_file: /src/Python-3.8.3/Include/floatobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_RETURN_NAN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/floatobject.h
      type_or_value: return PyFloat_FromDouble(Py_NAN)
    structs:
    - fields:
      - name: ob_fval
        type: PyObject_HEAD
      item_type: struct
      name: PyFloatObject
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/Python-3.8.3/Include/floatobject.h
    typedefs: []
    union: []
- function_names:
  - Module
  - Interactive
  - Expression
  - FunctionType
  - Suite
  - FunctionDef
  - AsyncFunctionDef
  - ClassDef
  - Return
  - Delete
  - Assign
  - AugAssign
  - AnnAssign
  - For
  - AsyncFor
  - While
  - If
  - With
  - AsyncWith
  - Raise
  - Try
  - Assert
  - Import
  - ImportFrom
  - Global
  - Nonlocal
  - Expr
  - Pass
  - Break
  - Continue
  - BoolOp
  - NamedExpr
  - BinOp
  - UnaryOp
  - Lambda
  - IfExp
  - Dict
  - Set
  - ListComp
  - SetComp
  - DictComp
  - GeneratorExp
  - Await
  - Yield
  - YieldFrom
  - Compare
  - Call
  - FormattedValue
  - JoinedStr
  - Constant
  - Attribute
  - Subscript
  - Starred
  - Name
  - List
  - Tuple
  - Slice
  - ExtSlice
  - Index
  - comprehension
  - ExceptHandler
  - arguments
  - arg
  - keyword
  - alias
  - withitem
  - TypeIgnore
  source_file: /src/Python-3.8.3/Include/Python-ast.h
  types:
    enum:
    - enumerators:
      - name: Load
        value: '1'
      - name: Del
        value: '3'
      - name: AugLoad
        value: '4'
      - name: Store
        value: '2'
      - name: AugStore
        value: '5'
      - name: Param
        value: '6'
      item_type: enum
      name: _expr_context
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: And
        value: '1'
      - name: Or
        value: '2'
      item_type: enum
      name: _boolop
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: Add
        value: '1'
      - name: Mult
        value: '3'
      - name: MatMult
        value: '4'
      - name: Div
        value: '5'
      - name: Sub
        value: '2'
      - name: Mod
        value: '6'
      - name: Pow
        value: '7'
      - name: LShift
        value: '8'
      - name: RShift
        value: '9'
      - name: BitOr
        value: '10'
      - name: BitXor
        value: '11'
      - name: FloorDiv
        value: '13'
      - name: BitAnd
        value: '12'
      item_type: enum
      name: _operator
      pos:
        line_end: 27
        line_start: 25
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: Invert
        value: '1'
      - name: Not
        value: '2'
      - name: UAdd
        value: '3'
      - name: USub
        value: '4'
      item_type: enum
      name: _unaryop
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: Eq
        value: '1'
      - name: LtE
        value: '4'
      - name: Lt
        value: '3'
      - name: NotEq
        value: '2'
      - name: Gt
        value: '5'
      - name: GtE
        value: '6'
      - name: Is
        value: '7'
      - name: IsNot
        value: '8'
      - name: In
        value: '9'
      - name: NotIn
        value: '10'
      item_type: enum
      name: _cmpop
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: Module_kind
        value: '1'
      - name: Suite_kind
        value: '5'
      - name: FunctionType_kind
        value: '4'
      - name: Expression_kind
        value: '3'
      - name: Interactive_kind
        value: '2'
      item_type: enum
      name: _mod_kind
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: FunctionDef_kind
        value: '1'
      - name: Return_kind
        value: '4'
      - name: AnnAssign_kind
        value: '8'
      - name: Try_kind
        value: '16'
      - name: If_kind
        value: '12'
      - name: Global_kind
        value: '20'
      - name: Break_kind
        value: '24'
      - name: Delete_kind
        value: '5'
      - name: For_kind
        value: '9'
      - name: With_kind
        value: '13'
      - name: Assert_kind
        value: '17'
      - name: Nonlocal_kind
        value: '21'
      - name: Continue_kind
        value: '25'
      - name: AsyncFunctionDef_kind
        value: '2'
      - name: Assign_kind
        value: '6'
      - name: AsyncFor_kind
        value: '10'
      - name: Import_kind
        value: '18'
      - name: AsyncWith_kind
        value: '14'
      - name: Expr_kind
        value: '22'
      - name: ClassDef_kind
        value: '3'
      - name: AugAssign_kind
        value: '7'
      - name: While_kind
        value: '11'
      - name: Raise_kind
        value: '15'
      - name: ImportFrom_kind
        value: '19'
      - name: Pass_kind
        value: '23'
      item_type: enum
      name: _stmt_kind
      pos:
        line_end: 88
        line_start: 81
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: BoolOp_kind
        value: '1'
      - name: UnaryOp_kind
        value: '4'
      - name: Set_kind
        value: '8'
      - name: GeneratorExp_kind
        value: '12'
      - name: Compare_kind
        value: '16'
      - name: Constant_kind
        value: '20'
      - name: Lambda_kind
        value: '5'
      - name: ListComp_kind
        value: '9'
      - name: Await_kind
        value: '13'
      - name: Call_kind
        value: '17'
      - name: Attribute_kind
        value: '21'
      - name: Tuple_kind
        value: '26'
      - name: NamedExpr_kind
        value: '2'
      - name: IfExp_kind
        value: '6'
      - name: SetComp_kind
        value: '10'
      - name: FormattedValue_kind
        value: '18'
      - name: Yield_kind
        value: '14'
      - name: Subscript_kind
        value: '22'
      - name: Name_kind
        value: '24'
      - name: BinOp_kind
        value: '3'
      - name: Dict_kind
        value: '7'
      - name: YieldFrom_kind
        value: '15'
      - name: JoinedStr_kind
        value: '19'
      - name: DictComp_kind
        value: '11'
      - name: Starred_kind
        value: '23'
      - name: List_kind
        value: '25'
      item_type: enum
      name: _expr_kind
      pos:
        line_end: 238
        line_start: 231
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: Slice_kind
        value: '1'
      - name: ExtSlice_kind
        value: '2'
      - name: Index_kind
        value: '3'
      item_type: enum
      name: _slice_kind
      pos:
        line_end: 382
        line_start: 382
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: ExceptHandler_kind
        value: '1'
      item_type: enum
      name: _excepthandler_kind
      pos:
        line_end: 410
        line_start: 410
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - enumerators:
      - name: TypeIgnore_kind
        value: '1'
      item_type: enum
      name: _type_ignore_kind
      pos:
        line_end: 462
        line_start: 462
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    preproc_defs: []
    structs:
    - fields:
      - name: kind
        type: enum _mod_kind
      - name: v
        type: "union {\n        struct {\n            asdl_seq *body;\n            asdl_seq
          *type_ignores;\n        } Module;\n\n        struct {\n            asdl_seq
          *body;\n        } Interactive;\n\n        struct {\n            expr_ty
          body;\n        } Expression;\n\n        struct {\n            asdl_seq *argtypes;\n
          \           expr_ty returns;\n        } FunctionType;\n\n        struct
          {\n            asdl_seq *body;\n        } Suite;\n\n    }"
      item_type: struct
      name: _mod
      pos:
        line_end: 79
        line_start: 53
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: kind
        type: enum _stmt_kind
      - name: v
        type: "union {\n        struct {\n            identifier name;\n            arguments_ty
          args;\n            asdl_seq *body;\n            asdl_seq *decorator_list;\n
          \           expr_ty returns;\n            string type_comment;\n        }
          FunctionDef;\n\n        struct {\n            identifier name;\n            arguments_ty
          args;\n            asdl_seq *body;\n            asdl_seq *decorator_list;\n
          \           expr_ty returns;\n            string type_comment;\n        }
          AsyncFunctionDef;\n\n        struct {\n            identifier name;\n            asdl_seq
          *bases;\n            asdl_seq *keywords;\n            asdl_seq *body;\n
          \           asdl_seq *decorator_list;\n        } ClassDef;\n\n        struct
          {\n            expr_ty value;\n        } Return;\n\n        struct {\n            asdl_seq
          *targets;\n        } Delete;\n\n        struct {\n            asdl_seq *targets;\n
          \           expr_ty value;\n            string type_comment;\n        }
          Assign;\n\n        struct {\n            expr_ty target;\n            operator_ty
          op;\n            expr_ty value;\n        } AugAssign;\n\n        struct
          {\n            expr_ty target;\n            expr_ty annotation;\n            expr_ty
          value;\n            int simple;\n        } AnnAssign;\n\n        struct
          {\n            expr_ty target;\n            expr_ty iter;\n            asdl_seq
          *body;\n            asdl_seq *orelse;\n            string type_comment;\n
          \       } For;\n\n        struct {\n            expr_ty target;\n            expr_ty
          iter;\n            asdl_seq *body;\n            asdl_seq *orelse;\n            string
          type_comment;\n        } AsyncFor;\n\n        struct {\n            expr_ty
          test;\n            asdl_seq *body;\n            asdl_seq *orelse;\n        }
          While;\n\n        struct {\n            expr_ty test;\n            asdl_seq
          *body;\n            asdl_seq *orelse;\n        } If;\n\n        struct {\n
          \           asdl_seq *items;\n            asdl_seq *body;\n            string
          type_comment;\n        } With;\n\n        struct {\n            asdl_seq
          *items;\n            asdl_seq *body;\n            string type_comment;\n
          \       } AsyncWith;\n\n        struct {\n            expr_ty exc;\n            expr_ty
          cause;\n        } Raise;\n\n        struct {\n            asdl_seq *body;\n
          \           asdl_seq *handlers;\n            asdl_seq *orelse;\n            asdl_seq
          *finalbody;\n        } Try;\n\n        struct {\n            expr_ty test;\n
          \           expr_ty msg;\n        } Assert;\n\n        struct {\n            asdl_seq
          *names;\n        } Import;\n\n        struct {\n            identifier module;\n
          \           asdl_seq *names;\n            int level;\n        } ImportFrom;\n\n
          \       struct {\n            asdl_seq *names;\n        } Global;\n\n        struct
          {\n            asdl_seq *names;\n        } Nonlocal;\n\n        struct {\n
          \           expr_ty value;\n        } Expr;\n\n    }"
      - name: lineno
        type: int
      - name: col_offset
        type: int
      - name: end_lineno
        type: int
      - name: end_col_offset
        type: int
      item_type: struct
      name: _stmt
      pos:
        line_end: 229
        line_start: 89
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: kind
        type: enum _expr_kind
      - name: v
        type: "union {\n        struct {\n            boolop_ty op;\n            asdl_seq
          *values;\n        } BoolOp;\n\n        struct {\n            expr_ty target;\n
          \           expr_ty value;\n        } NamedExpr;\n\n        struct {\n            expr_ty
          left;\n            operator_ty op;\n            expr_ty right;\n        }
          BinOp;\n\n        struct {\n            unaryop_ty op;\n            expr_ty
          operand;\n        } UnaryOp;\n\n        struct {\n            arguments_ty
          args;\n            expr_ty body;\n        } Lambda;\n\n        struct {\n
          \           expr_ty test;\n            expr_ty body;\n            expr_ty
          orelse;\n        } IfExp;\n\n        struct {\n            asdl_seq *keys;\n
          \           asdl_seq *values;\n        } Dict;\n\n        struct {\n            asdl_seq
          *elts;\n        } Set;\n\n        struct {\n            expr_ty elt;\n            asdl_seq
          *generators;\n        } ListComp;\n\n        struct {\n            expr_ty
          elt;\n            asdl_seq *generators;\n        } SetComp;\n\n        struct
          {\n            expr_ty key;\n            expr_ty value;\n            asdl_seq
          *generators;\n        } DictComp;\n\n        struct {\n            expr_ty
          elt;\n            asdl_seq *generators;\n        } GeneratorExp;\n\n        struct
          {\n            expr_ty value;\n        } Await;\n\n        struct {\n            expr_ty
          value;\n        } Yield;\n\n        struct {\n            expr_ty value;\n
          \       } YieldFrom;\n\n        struct {\n            expr_ty left;\n            asdl_int_seq
          *ops;\n            asdl_seq *comparators;\n        } Compare;\n\n        struct
          {\n            expr_ty func;\n            asdl_seq *args;\n            asdl_seq
          *keywords;\n        } Call;\n\n        struct {\n            expr_ty value;\n
          \           int conversion;\n            expr_ty format_spec;\n        }
          FormattedValue;\n\n        struct {\n            asdl_seq *values;\n        }
          JoinedStr;\n\n        struct {\n            constant value;\n            string
          kind;\n        } Constant;\n\n        struct {\n            expr_ty value;\n
          \           identifier attr;\n            expr_context_ty ctx;\n        }
          Attribute;\n\n        struct {\n            expr_ty value;\n            slice_ty
          slice;\n            expr_context_ty ctx;\n        } Subscript;\n\n        struct
          {\n            expr_ty value;\n            expr_context_ty ctx;\n        }
          Starred;\n\n        struct {\n            identifier id;\n            expr_context_ty
          ctx;\n        } Name;\n\n        struct {\n            asdl_seq *elts;\n
          \           expr_context_ty ctx;\n        } List;\n\n        struct {\n
          \           asdl_seq *elts;\n            expr_context_ty ctx;\n        }
          Tuple;\n\n    }"
      - name: lineno
        type: int
      - name: col_offset
        type: int
      - name: end_lineno
        type: int
      - name: end_col_offset
        type: int
      item_type: struct
      name: _expr
      pos:
        line_end: 380
        line_start: 239
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: kind
        type: enum _slice_kind
      - name: v
        type: "union {\n        struct {\n            expr_ty lower;\n            expr_ty
          upper;\n            expr_ty step;\n        } Slice;\n\n        struct {\n
          \           asdl_seq *dims;\n        } ExtSlice;\n\n        struct {\n            expr_ty
          value;\n        } Index;\n\n    }"
      item_type: struct
      name: _slice
      pos:
        line_end: 401
        line_start: 383
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: target
        type: expr_ty
      - name: iter
        type: expr_ty
      - name: '*ifs'
        type: asdl_seq
      - name: is_async
        type: int
      item_type: struct
      name: _comprehension
      pos:
        line_end: 408
        line_start: 403
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: kind
        type: enum _excepthandler_kind
      - name: v
        type: "union {\n        struct {\n            expr_ty type;\n            identifier
          name;\n            asdl_seq *body;\n        } ExceptHandler;\n\n    }"
      - name: lineno
        type: int
      - name: col_offset
        type: int
      - name: end_lineno
        type: int
      - name: end_col_offset
        type: int
      item_type: struct
      name: _excepthandler
      pos:
        line_end: 425
        line_start: 411
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: '*posonlyargs'
        type: asdl_seq
      - name: '*args'
        type: asdl_seq
      - name: vararg
        type: arg_ty
      - name: '*kwonlyargs'
        type: asdl_seq
      - name: '*kw_defaults'
        type: asdl_seq
      - name: kwarg
        type: arg_ty
      - name: '*defaults'
        type: asdl_seq
      item_type: struct
      name: _arguments
      pos:
        line_end: 435
        line_start: 427
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: arg
        type: identifier
      - name: annotation
        type: expr_ty
      - name: type_comment
        type: string
      - name: lineno
        type: int
      - name: col_offset
        type: int
      - name: end_lineno
        type: int
      - name: end_col_offset
        type: int
      item_type: struct
      name: _arg
      pos:
        line_end: 445
        line_start: 437
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: arg
        type: identifier
      - name: value
        type: expr_ty
      item_type: struct
      name: _keyword
      pos:
        line_end: 450
        line_start: 447
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: name
        type: identifier
      - name: asname
        type: identifier
      item_type: struct
      name: _alias
      pos:
        line_end: 455
        line_start: 452
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: context_expr
        type: expr_ty
      - name: optional_vars
        type: expr_ty
      item_type: struct
      name: _withitem
      pos:
        line_end: 460
        line_start: 457
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    - fields:
      - name: kind
        type: enum _type_ignore_kind
      - name: v
        type: "union {\n        struct {\n            int lineno;\n            string
          tag;\n        } TypeIgnore;\n\n    }"
      item_type: struct
      name: _type_ignore
      pos:
        line_end: 472
        line_start: 463
        source_file: /src/Python-3.8.3/Include/Python-ast.h
    typedefs:
    - item_type: typedef
      name: '*mod_ty'
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _mod
    - item_type: typedef
      name: '*stmt_ty'
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _stmt
    - item_type: typedef
      name: '*expr_ty'
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _expr
    - item_type: typedef
      name: '*slice_ty'
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _slice
    - item_type: typedef
      name: '*comprehension_ty'
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _comprehension
    - item_type: typedef
      name: '*excepthandler_ty'
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _excepthandler
    - item_type: typedef
      name: '*arguments_ty'
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _arguments
    - item_type: typedef
      name: '*arg_ty'
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _arg
    - item_type: typedef
      name: '*keyword_ty'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _keyword
    - item_type: typedef
      name: '*alias_ty'
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _alias
    - item_type: typedef
      name: '*withitem_ty'
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _withitem
    - item_type: typedef
      name: '*type_ignore_ty'
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/Python-3.8.3/Include/Python-ast.h
      type: _type_ignore
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/grammar.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EMPTY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/grammar.h
      type_or_value: '0         '
    structs:
    - fields:
      - name: lb_type
        type: int
      - name: '*lb_str'
        type: char
      item_type: struct
      name: label
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/Python-3.8.3/Include/grammar.h
    - fields:
      - name: ll_nlabels
        type: int
      - name: '*ll_label'
        type: label
      item_type: struct
      name: labellist
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/Python-3.8.3/Include/grammar.h
    - fields:
      - name: a_lbl
        type: short
      - name: a_arrow
        type: short
      item_type: struct
      name: arc
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/Python-3.8.3/Include/grammar.h
    - fields:
      - name: s_narcs
        type: int
      - name: '*s_arc'
        type: arc
      - name: s_lower
        type: int
      - name: s_upper
        type: int
      - name: '*s_accel'
        type: int
      - name: s_accept
        type: int
      item_type: struct
      name: state
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/Python-3.8.3/Include/grammar.h
    - fields:
      - name: d_type
        type: int
      - name: '*d_name'
        type: char
      - name: d_nstates
        type: int
      - name: '*d_state'
        type: state
      - name: d_first
        type: bitset
      item_type: struct
      name: dfa
      pos:
        line_end: 55
        line_start: 49
        source_file: /src/Python-3.8.3/Include/grammar.h
    - fields:
      - name: g_ndfas
        type: int
      - name: '*g_dfa'
        type: dfa
      - name: g_ll
        type: labellist
      - name: g_start
        type: int
      - name: g_accel
        type: int
      item_type: struct
      name: grammar
      pos:
        line_end: 65
        line_start: 59
        source_file: /src/Python-3.8.3/Include/grammar.h
    typedefs: []
    union: []
- function_names:
  - PyByteArray_Check
  - PyByteArray_CheckExact
  - PyByteArray_AS_STRING
  - PyByteArray_GET_SIZE
  source_file: /src/Python-3.8.3/Include/bytearrayobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_VAR_HEAD
      - name: '*ob_bytes'
        type: char
      - name: '*ob_start'
        type: char
      - name: ob_exports
        type: int
      item_type: struct
      name: PyByteArrayObject
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/Python-3.8.3/Include/bytearrayobject.h
    typedefs: []
    union: []
- function_names:
  - PyCursesWindow_Check
  - import_curses
  source_file: /src/Python-3.8.3/Include/py_curses.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCURSES_OPAQUE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WINDOW_HAS_FLAGS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_CURSES_IS_PAD
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MVWDELCH_IS_EXPRESSION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PyCurses_API_pointers
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PyCurses_CAPSULE_NAME
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '"_curses._C_API"'
    - item_type: preproc_def
      name: PyCursesWindow_Type
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: (*(PyTypeObject *) PyCurses_API[0])
    - item_type: preproc_def
      name: PyCursesSetupTermCalled
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '{if (! ((int (*)(void))PyCurses_API[1]) () ) return NULL;}'
    - item_type: preproc_def
      name: PyCursesInitialised
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '{if (! ((int (*)(void))PyCurses_API[2]) () ) return NULL;}'
    - item_type: preproc_def
      name: PyCursesInitialisedColor
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/py_curses.h
      type_or_value: '{if (! ((int (*)(void))PyCurses_API[3]) () ) return NULL;}'
    structs:
    - fields:
      - name: '*win'
        type: PyObject_HEAD
      - name: '*encoding'
        type: char
      item_type: struct
      name: PyCursesWindowObject
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/Python-3.8.3/Include/py_curses.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pymacconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VA_LIST_IS_ARRAY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LARGEFILE_SUPPORT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF__BOOL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF__BOOL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_PTHREAD_T
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_VOID_P
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_UINTPTR_T
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_PTHREAD_T
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF__BOOL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF__BOOL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_PTHREAD_T
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_VOID_P
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_UINTPTR_T
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_PTHREAD_T
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: WORDS_BIGENDIAN
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/pymacconfig.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/Python.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyParser_SimpleParseString
  - PyParser_SimpleParseFile
  - Py_CompileString
  - Py_CompileStringFlags
  - PyRun_String
  - PyRun_AnyFile
  - PyRun_AnyFileEx
  - PyRun_AnyFileFlags
  - PyRun_SimpleString
  - PyRun_SimpleFile
  - PyRun_SimpleFileEx
  - PyRun_InteractiveOne
  - PyRun_InteractiveLoop
  - PyRun_File
  - PyRun_FileEx
  - PyRun_FileFlags
  source_file: /src/Python-3.8.3/Include/pythonrun.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYOS_STACK_MARGIN
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/Include/pythonrun.h
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyCFunction_Check
  - PyCFunction_GET_FUNCTION
  - PyCFunction_GET_SELF
  - PyCFunction_GET_FLAGS
  - PyCFunction_New
  source_file: /src/Python-3.8.3/Include/methodobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: METH_VARARGS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: METH_KEYWORDS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: METH_NOARGS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: METH_O
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: METH_CLASS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: METH_STATIC
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: METH_COEXIST
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: METH_FASTCALL
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: METH_STACKLESS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: METH_STACKLESS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type_or_value: '0x0000'
    structs:
    - fields:
      - name: '*ml_name'
        type: char
      - name: ml_meth
        type: PyCFunction
      - name: ml_flags
        type: int
      - name: '*ml_doc'
        type: char
      item_type: struct
      name: PyMethodDef
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/Python-3.8.3/Include/methodobject.h
    - fields:
      - name: '*m_ml'
        type: PyObject_HEAD
      - name: '*m_self'
        type: PyObject
      - name: '*m_module'
        type: PyObject
      - name: '*m_weakreflist'
        type: PyObject
      - name: vectorcall
        type: vectorcallfunc
      item_type: struct
      name: PyCFunctionObject
      pos:
        line_end: 103
        line_start: 96
        source_file: /src/Python-3.8.3/Include/methodobject.h
    typedefs:
    - item_type: typedef
      name: '*(*PyCFunction)(PyObject *, PyObject *)'
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyObject
    - item_type: typedef
      name: '*(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t)'
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyObject
    - item_type: typedef
      name: "*(*PyCFunctionWithKeywords)(PyObject *, PyObject *,\n                                             PyObject
        *)"
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyObject
    - item_type: typedef
      name: "*(*_PyCFunctionFastWithKeywords) (PyObject *,\n                                                   PyObject
        *const *, Py_ssize_t,\n                                                   PyObject
        *)"
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyObject
    - item_type: typedef
      name: '*(*PyNoArgsFunction)(PyObject *)'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyObject
    - item_type: typedef
      name: PyMethodDef
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/Python-3.8.3/Include/methodobject.h
      type: PyMethodDef
    union: []
- function_names:
  - PyLong_Check
  - PyLong_CheckExact
  - PyLong_AS_LONG
  source_file: /src/Python-3.8.3/Include/longobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _Py_PARSE_PID
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: PyLong_FromPid
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_FromLong
    - item_type: preproc_def
      name: PyLong_AsPid
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_AsLong
    - item_type: preproc_def
      name: _Py_PARSE_PID
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"l"'
    - item_type: preproc_def
      name: PyLong_FromPid
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_FromLong
    - item_type: preproc_def
      name: PyLong_AsPid
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_AsLong
    - item_type: preproc_def
      name: _Py_PARSE_PID
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"L"'
    - item_type: preproc_def
      name: PyLong_FromPid
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_FromLongLong
    - item_type: preproc_def
      name: PyLong_AsPid
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: PyLong_AsLongLong
    - item_type: preproc_def
      name: _Py_PARSE_INTPTR
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"i"'
    - item_type: preproc_def
      name: _Py_PARSE_UINTPTR
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"I"'
    - item_type: preproc_def
      name: _Py_PARSE_INTPTR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"l"'
    - item_type: preproc_def
      name: _Py_PARSE_UINTPTR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"k"'
    - item_type: preproc_def
      name: _Py_PARSE_INTPTR
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"L"'
    - item_type: preproc_def
      name: _Py_PARSE_UINTPTR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/longobject.h
      type_or_value: '"K"'
    structs: []
    typedefs:
    - item_type: typedef
      name: PyLongObject
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/Python-3.8.3/Include/longobject.h
      type: _longobject
    union: []
- function_names:
  - PyModule_Check
  - PyModule_CheckExact
  source_file: /src/Python-3.8.3/Include/moduleobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyModuleDef_HEAD_INIT
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/Python-3.8.3/Include/moduleobject.h
      type_or_value: "{ \\\n    PyObject_HEAD_INIT(NULL)    \\\n    NULL, "
    - item_type: preproc_def
      name: Py_mod_create
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/moduleobject.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Py_mod_exec
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/moduleobject.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _Py_mod_LAST_SLOT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/moduleobject.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '* (*m_init)(void)'
        type: PyObject_HEAD
      - name: m_index
        type: Py_ssize_t
      - name: '* m_copy'
        type: PyObject
      item_type: struct
      name: PyModuleDef_Base
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/Python-3.8.3/Include/moduleobject.h
    - fields:
      - name: slot
        type: int
      - name: '*value'
        type: void
      item_type: struct
      name: PyModuleDef_Slot
      pos:
        line_end: 63
        line_start: 60
        source_file: /src/Python-3.8.3/Include/moduleobject.h
    - fields:
      - name: m_base
        type: PyModuleDef_Base
      - name: '* m_name'
        type: char
      - name: '* m_doc'
        type: char
      - name: m_size
        type: Py_ssize_t
      - name: '*m_methods'
        type: PyMethodDef
      - name: '* m_slots'
        type: struct PyModuleDef_Slot
      - name: m_traverse
        type: traverseproc
      - name: m_clear
        type: inquiry
      - name: m_free
        type: freefunc
      item_type: struct
      name: PyModuleDef
      pos:
        line_end: 84
        line_start: 74
        source_file: /src/Python-3.8.3/Include/moduleobject.h
    typedefs: []
    union: []
- function_names:
  - Py_FORCE_DOUBLE
  - Py_FORCE_DOUBLE
  - Py_IS_NAN
  - Py_IS_NAN
  - Py_IS_INFINITY
  - Py_IS_INFINITY
  - Py_IS_FINITE
  - Py_IS_FINITE
  - Py_IS_FINITE
  - __icc_nan
  - Py_OVERFLOWED
  - Py_OVERFLOWED
  - _Py_IntegralTypeSigned
  - _Py_IntegralTypeMax
  - _Py_IntegralTypeMin
  - _Py_InIntegralTypeRange
  source_file: /src/Python-3.8.3/Include/pymath.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_MATH_PIl
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: 3.1415926535897932384626433832795029L
    - item_type: preproc_def
      name: Py_MATH_PI
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: '3.14159265358979323846'
    - item_type: preproc_def
      name: Py_MATH_El
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: 2.7182818284590452353602874713526625L
    - item_type: preproc_def
      name: Py_MATH_E
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: '2.7182818284590452354'
    - item_type: preproc_def
      name: Py_MATH_TAU
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: 6.2831853071795864769252867665590057683943L
    - item_type: preproc_def
      name: Py_HUGE_VAL
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: HUGE_VAL
    - item_type: preproc_def
      name: Py_NAN
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: (Py_HUGE_VAL * 0.)
    - item_type: preproc_def
      name: Py_NAN
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: __icc_nan()
    - item_type: preproc_def
      name: Py_NAN
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/Python-3.8.3/Include/pymath.h
      type_or_value: (__nan_store.__icc_nan)
    structs: []
    typedefs: []
    union:
    - fields:
      - name: buf[8]
        type: unsigned char
      - name: __icc_nan
        type: double
      item_type: union
      name: __nan_store = {0,0,0,0,0,0,0xf8,0x7f}
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/Python-3.8.3/Include/pymath.h
- function_names:
  - PyTraceBack_Check
  source_file: /src/Python-3.8.3/Include/traceback.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - asdl_seq_GET
  - asdl_seq_LEN
  - asdl_seq_SET
  - asdl_seq_SET
  source_file: /src/Python-3.8.3/Include/asdl.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: Py_ssize_t
      - name: '*elements[1]'
        type: void
      item_type: struct
      name: asdl_seq
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/Python-3.8.3/Include/asdl.h
    - fields:
      - name: size
        type: Py_ssize_t
      - name: elements[1]
        type: int
      item_type: struct
      name: asdl_int_seq
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/Python-3.8.3/Include/asdl.h
    typedefs:
    - item_type: typedef
      name: '* identifier'
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    - item_type: typedef
      name: '* string'
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    - item_type: typedef
      name: '* bytes'
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    - item_type: typedef
      name: '* object'
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    - item_type: typedef
      name: '* singleton'
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    - item_type: typedef
      name: '* constant'
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/Python-3.8.3/Include/asdl.h
      type: PyObject
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/osmodule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/graminit.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: single_input
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '256'
    - item_type: preproc_def
      name: file_input
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '257'
    - item_type: preproc_def
      name: eval_input
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '258'
    - item_type: preproc_def
      name: decorator
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '259'
    - item_type: preproc_def
      name: decorators
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '260'
    - item_type: preproc_def
      name: decorated
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '261'
    - item_type: preproc_def
      name: async_funcdef
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '262'
    - item_type: preproc_def
      name: funcdef
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '263'
    - item_type: preproc_def
      name: parameters
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '264'
    - item_type: preproc_def
      name: typedargslist
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '265'
    - item_type: preproc_def
      name: tfpdef
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '266'
    - item_type: preproc_def
      name: varargslist
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '267'
    - item_type: preproc_def
      name: vfpdef
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '268'
    - item_type: preproc_def
      name: stmt
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '269'
    - item_type: preproc_def
      name: simple_stmt
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '270'
    - item_type: preproc_def
      name: small_stmt
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '271'
    - item_type: preproc_def
      name: expr_stmt
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '272'
    - item_type: preproc_def
      name: annassign
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '273'
    - item_type: preproc_def
      name: testlist_star_expr
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '274'
    - item_type: preproc_def
      name: augassign
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '275'
    - item_type: preproc_def
      name: del_stmt
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '276'
    - item_type: preproc_def
      name: pass_stmt
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '277'
    - item_type: preproc_def
      name: flow_stmt
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '278'
    - item_type: preproc_def
      name: break_stmt
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '279'
    - item_type: preproc_def
      name: continue_stmt
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '280'
    - item_type: preproc_def
      name: return_stmt
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '281'
    - item_type: preproc_def
      name: yield_stmt
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '282'
    - item_type: preproc_def
      name: raise_stmt
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '283'
    - item_type: preproc_def
      name: import_stmt
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '284'
    - item_type: preproc_def
      name: import_name
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '285'
    - item_type: preproc_def
      name: import_from
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '286'
    - item_type: preproc_def
      name: import_as_name
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '287'
    - item_type: preproc_def
      name: dotted_as_name
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '288'
    - item_type: preproc_def
      name: import_as_names
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '289'
    - item_type: preproc_def
      name: dotted_as_names
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '290'
    - item_type: preproc_def
      name: dotted_name
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '291'
    - item_type: preproc_def
      name: global_stmt
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '292'
    - item_type: preproc_def
      name: nonlocal_stmt
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '293'
    - item_type: preproc_def
      name: assert_stmt
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '294'
    - item_type: preproc_def
      name: compound_stmt
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '295'
    - item_type: preproc_def
      name: async_stmt
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '296'
    - item_type: preproc_def
      name: if_stmt
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '297'
    - item_type: preproc_def
      name: while_stmt
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '298'
    - item_type: preproc_def
      name: for_stmt
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '299'
    - item_type: preproc_def
      name: try_stmt
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '300'
    - item_type: preproc_def
      name: with_stmt
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '301'
    - item_type: preproc_def
      name: with_item
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '302'
    - item_type: preproc_def
      name: except_clause
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '303'
    - item_type: preproc_def
      name: suite
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '304'
    - item_type: preproc_def
      name: namedexpr_test
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '305'
    - item_type: preproc_def
      name: test
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '306'
    - item_type: preproc_def
      name: test_nocond
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '307'
    - item_type: preproc_def
      name: lambdef
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '308'
    - item_type: preproc_def
      name: lambdef_nocond
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '309'
    - item_type: preproc_def
      name: or_test
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '310'
    - item_type: preproc_def
      name: and_test
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '311'
    - item_type: preproc_def
      name: not_test
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '312'
    - item_type: preproc_def
      name: comparison
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '313'
    - item_type: preproc_def
      name: comp_op
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '314'
    - item_type: preproc_def
      name: star_expr
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '315'
    - item_type: preproc_def
      name: expr
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '316'
    - item_type: preproc_def
      name: xor_expr
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '317'
    - item_type: preproc_def
      name: and_expr
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '318'
    - item_type: preproc_def
      name: shift_expr
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '319'
    - item_type: preproc_def
      name: arith_expr
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '320'
    - item_type: preproc_def
      name: term
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '321'
    - item_type: preproc_def
      name: factor
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '322'
    - item_type: preproc_def
      name: power
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '323'
    - item_type: preproc_def
      name: atom_expr
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '324'
    - item_type: preproc_def
      name: atom
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '325'
    - item_type: preproc_def
      name: testlist_comp
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '326'
    - item_type: preproc_def
      name: trailer
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '327'
    - item_type: preproc_def
      name: subscriptlist
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '328'
    - item_type: preproc_def
      name: subscript
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '329'
    - item_type: preproc_def
      name: sliceop
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '330'
    - item_type: preproc_def
      name: exprlist
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '331'
    - item_type: preproc_def
      name: testlist
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '332'
    - item_type: preproc_def
      name: dictorsetmaker
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '333'
    - item_type: preproc_def
      name: classdef
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '334'
    - item_type: preproc_def
      name: arglist
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '335'
    - item_type: preproc_def
      name: argument
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '336'
    - item_type: preproc_def
      name: comp_iter
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '337'
    - item_type: preproc_def
      name: sync_comp_for
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '338'
    - item_type: preproc_def
      name: comp_for
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '339'
    - item_type: preproc_def
      name: comp_if
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '340'
    - item_type: preproc_def
      name: encoding_decl
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '341'
    - item_type: preproc_def
      name: yield_expr
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '342'
    - item_type: preproc_def
      name: yield_arg
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '343'
    - item_type: preproc_def
      name: func_body_suite
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '344'
    - item_type: preproc_def
      name: func_type_input
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '345'
    - item_type: preproc_def
      name: func_type
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '346'
    - item_type: preproc_def
      name: typelist
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Include/graminit.h
      type_or_value: '347'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyTuple_Check
  - PyTuple_CheckExact
  source_file: /src/Python-3.8.3/Include/tupleobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyObject_HEAD_INIT
  - PyVarObject_HEAD_INIT
  - _PyObject_CAST
  - _PyVarObject_CAST
  - Py_REFCNT
  - Py_TYPE
  - Py_SIZE
  - PyObject_TypeCheck
  - PyType_Check
  - PyType_CheckExact
  - PyType_HasFeature
  - PyType_FastSubclass
  - _Py_INC_TPALLOCS
  - _Py_INC_TPFREES
  - _Py_DEC_TPFREES
  - _Py_NewReference
  - _Py_ForgetReference
  - _Py_INCREF
  - Py_INCREF
  - _Py_DECREF
  - Py_DECREF
  - Py_CLEAR
  - _Py_XINCREF
  - Py_XINCREF
  - _Py_XDECREF
  - Py_XDECREF
  - Py_RETURN_RICHCOMPARE
  - Py_TRASHCAN_BEGIN_CONDITION
  - Py_TRASHCAN_BEGIN
  - Py_TRASHCAN_SAFE_BEGIN
  - Py_TRASHCAN_SAFE_END
  source_file: /src/Python-3.8.3/Include/object.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyObject_HEAD_EXTRA
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: "struct _object *_ob_next;           \\\n    struct _object *_ob_prev;"
    - item_type: preproc_def
      name: _PyObject_EXTRA_INIT
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: 0, 0,
    - item_type: preproc_def
      name: PyObject_HEAD
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: PyObject ob_base;
    - item_type: preproc_def
      name: PyObject_VAR_HEAD
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: PyVarObject ob_base;
    - item_type: preproc_def
      name: Py_INVALID_SIZE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (Py_ssize_t)-1
    - item_type: preproc_def
      name: Py_PRINT_RAW
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: Py_TPFLAGS_HEAPTYPE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 9)
    - item_type: preproc_def
      name: Py_TPFLAGS_BASETYPE
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 10)
    - item_type: preproc_def
      name: _Py_TPFLAGS_HAVE_VECTORCALL
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 11)
    - item_type: preproc_def
      name: Py_TPFLAGS_READY
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 12)
    - item_type: preproc_def
      name: Py_TPFLAGS_READYING
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 13)
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_GC
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 14)
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_STACKLESS_EXTENSION
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (3UL << 15)
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_STACKLESS_EXTENSION
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_TPFLAGS_METHOD_DESCRIPTOR
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 17)
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_VERSION_TAG
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 18)
    - item_type: preproc_def
      name: Py_TPFLAGS_VALID_VERSION_TAG
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 19)
    - item_type: preproc_def
      name: Py_TPFLAGS_IS_ABSTRACT
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 20)
    - item_type: preproc_def
      name: Py_TPFLAGS_LONG_SUBCLASS
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 24)
    - item_type: preproc_def
      name: Py_TPFLAGS_LIST_SUBCLASS
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 25)
    - item_type: preproc_def
      name: Py_TPFLAGS_TUPLE_SUBCLASS
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 26)
    - item_type: preproc_def
      name: Py_TPFLAGS_BYTES_SUBCLASS
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 27)
    - item_type: preproc_def
      name: Py_TPFLAGS_UNICODE_SUBCLASS
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 28)
    - item_type: preproc_def
      name: Py_TPFLAGS_DICT_SUBCLASS
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 29)
    - item_type: preproc_def
      name: Py_TPFLAGS_BASE_EXC_SUBCLASS
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 30)
    - item_type: preproc_def
      name: Py_TPFLAGS_TYPE_SUBCLASS
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 31)
    - item_type: preproc_def
      name: Py_TPFLAGS_DEFAULT
      pos:
        line_end: 335
        line_start: 331
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: "( \\\n                 Py_TPFLAGS_HAVE_STACKLESS_EXTENSION |
        \\\n                 Py_TPFLAGS_HAVE_VERSION_TAG | \\\n                0)"
    - item_type: preproc_def
      name: Py_TPFLAGS_HAVE_FINALIZE
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (1UL << 0)
    - item_type: preproc_def
      name: _Py_INC_REFTOTAL
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: _Py_RefTotal++
    - item_type: preproc_def
      name: _Py_DEC_REFTOTAL
      pos:
        line_end: 397
        line_start: 396
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: _Py_RefTotal--
    - item_type: preproc_def
      name: _Py_COUNT_ALLOCS_COMMA
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: ','
    - item_type: preproc_def
      name: Py_None
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (&_Py_NoneStruct)
    - item_type: preproc_def
      name: Py_RETURN_NONE
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: return Py_INCREF(Py_None), Py_None
    - item_type: preproc_def
      name: Py_NotImplemented
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: (&_Py_NotImplementedStruct)
    - item_type: preproc_def
      name: Py_RETURN_NOTIMPLEMENTED
      pos:
        line_end: 575
        line_start: 573
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: return Py_INCREF(Py_NotImplemented), Py_NotImplemented
    - item_type: preproc_def
      name: Py_LT
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_LE
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Py_EQ
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Py_NE
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Py_GT
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Py_GE
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PyTrash_UNWIND_LEVEL
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: '50'
    - item_type: preproc_def
      name: Py_TRASHCAN_END
      pos:
        line_end: 733
        line_start: 726
        source_file: /src/Python-3.8.3/Include/object.h
      type_or_value: "if (_tstate) { \\\n            --_tstate->trash_delete_nesting;
        \\\n            if (_tstate->trash_delete_later && _tstate->trash_delete_nesting
        <= 0) \\\n                _PyTrash_thread_destroy_chain(); \\\n        } \\\n
        \   } while (0);"
    structs:
    - fields:
      - name: Py_ssize_t
        type: _PyObject_HEAD_EXTRA
      - name: '*ob_type'
        type: struct _typeobject
      item_type: struct
      name: _object
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/Python-3.8.3/Include/object.h
    - fields:
      - name: ob_base
        type: PyObject
      - name: ob_size
        type: Py_ssize_t
      item_type: struct
      name: PyVarObject
      pos:
        line_end: 115
        line_start: 112
        source_file: /src/Python-3.8.3/Include/object.h
    - fields:
      - name: slot
        type: int
      - name: '*pfunc'
        type: void
      item_type: struct
      name: PyType_Slot
      pos:
        line_end: 182
        line_start: 179
        source_file: /src/Python-3.8.3/Include/object.h
    - fields:
      - name: '* name'
        type: char
      - name: basicsize
        type: int
      - name: itemsize
        type: int
      - name: flags
        type: unsigned int
      - name: '*slots'
        type: PyType_Slot
      item_type: struct
      name: PyType_Spec
      pos:
        line_end: 190
        line_start: 184
        source_file: /src/Python-3.8.3/Include/object.h
    typedefs:
    - item_type: typedef
      name: '* (*unaryfunc)(PyObject *)'
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '* (*binaryfunc)(PyObject *, PyObject *)'
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '* (*ternaryfunc)(PyObject *, PyObject *, PyObject *)'
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: (*inquiry)(PyObject *)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*lenfunc)(PyObject *)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/Python-3.8.3/Include/object.h
      type: Py_ssize_t
    - item_type: typedef
      name: '*(*ssizeargfunc)(PyObject *, Py_ssize_t)'
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t)'
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: (*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*objobjargproc)(PyObject *, PyObject *, PyObject *)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*objobjproc)(PyObject *, PyObject *)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*visitproc)(PyObject *, void *)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*traverseproc)(PyObject *, visitproc, void *)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*freefunc)(void *)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/Python-3.8.3/Include/object.h
      type: void
    - item_type: typedef
      name: (*destructor)(PyObject *)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/Python-3.8.3/Include/object.h
      type: void
    - item_type: typedef
      name: '*(*getattrfunc)(PyObject *, char *)'
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*getattrofunc)(PyObject *, PyObject *)'
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: (*setattrfunc)(PyObject *, char *, PyObject *)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*setattrofunc)(PyObject *, PyObject *, PyObject *)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: '*(*reprfunc)(PyObject *)'
      pos:
        line_end: 161
        line_start: 161
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: (*hashfunc)(PyObject *)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/Python-3.8.3/Include/object.h
      type: Py_hash_t
    - item_type: typedef
      name: '*(*richcmpfunc) (PyObject *, PyObject *, int)'
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*getiterfunc) (PyObject *)'
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*iternextfunc) (PyObject *)'
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*descrgetfunc) (PyObject *, PyObject *, PyObject *)'
      pos:
        line_end: 166
        line_start: 166
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: (*descrsetfunc) (PyObject *, PyObject *, PyObject *)
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: (*initproc)(PyObject *, PyObject *, PyObject *)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/Python-3.8.3/Include/object.h
      type: int
    - item_type: typedef
      name: '*(*newfunc)(struct _typeobject *, PyObject *, PyObject *)'
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: '*(*allocfunc)(struct _typeobject *, Py_ssize_t)'
      pos:
        line_end: 170
        line_start: 170
        source_file: /src/Python-3.8.3/Include/object.h
      type: PyObject
    - item_type: typedef
      name: PyTypeObject
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/Python-3.8.3/Include/object.h
      type: _typeobject
    union: []
- function_names:
  - PyImport_ImportModuleEx
  source_file: /src/Python-3.8.3/Include/import.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '* (*initfunc)(void)'
        type: PyObject
      item_type: struct
      name: _inittab
      pos:
        line_end: 120
        line_start: 117
        source_file: /src/Python-3.8.3/Include/import.h
    - fields:
      - name: '*name'
        type: char
      - name: '*code'
        type: unsigned char
      - name: size
        type: int
      item_type: struct
      name: _frozen
      pos:
        line_end: 137
        line_start: 133
        source_file: /src/Python-3.8.3/Include/import.h
    typedefs: []
    union: []
- function_names:
  - PyMemoryView_Check
  - PyMemoryView_GET_BUFFER
  - PyMemoryView_GET_BASE
  source_file: /src/Python-3.8.3/Include/memoryobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _Py_MANAGED_BUFFER_RELEASED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x001  '
    - item_type: preproc_def
      name: _Py_MANAGED_BUFFER_FREE_FORMAT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x002  '
    - item_type: preproc_def
      name: _Py_MEMORYVIEW_RELEASED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x001  '
    - item_type: preproc_def
      name: _Py_MEMORYVIEW_C
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x002  '
    - item_type: preproc_def
      name: _Py_MEMORYVIEW_FORTRAN
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x004  '
    - item_type: preproc_def
      name: _Py_MEMORYVIEW_SCALAR
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x008  '
    - item_type: preproc_def
      name: _Py_MEMORYVIEW_PIL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/memoryobject.h
      type_or_value: '0x010  '
    structs:
    - fields:
      - name: flags
        type: PyObject_HEAD
      - name: exports
        type: Py_ssize_t
      - name: master
        type: Py_buffer
      item_type: struct
      name: _PyManagedBufferObject
      pos:
        line_end: 46
        line_start: 41
        source_file: /src/Python-3.8.3/Include/memoryobject.h
    - fields:
      - name: '*mbuf'
        type: PyObject_VAR_HEAD
      - name: hash
        type: Py_hash_t
      - name: flags
        type: int
      - name: exports
        type: Py_ssize_t
      - name: view
        type: Py_buffer
      - name: '*weakreflist'
        type: PyObject
      - name: ob_array[1]
        type: Py_ssize_t
      item_type: struct
      name: PyMemoryViewObject
      pos:
        line_end: 65
        line_start: 56
        source_file: /src/Python-3.8.3/Include/memoryobject.h
    typedefs: []
    union: []
- function_names:
  - PyStructSequence_SET_ITEM
  - PyStructSequence_GET_ITEM
  source_file: /src/Python-3.8.3/Include/structseq.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*doc'
        type: char
      item_type: struct
      name: PyStructSequence_Field
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/Python-3.8.3/Include/structseq.h
    - fields:
      - name: '*name'
        type: char
      - name: '*doc'
        type: char
      - name: '*fields'
        type: struct PyStructSequence_Field
      - name: n_in_sequence
        type: int
      item_type: struct
      name: PyStructSequence_Desc
      pos:
        line_end: 19
        line_start: 14
        source_file: /src/Python-3.8.3/Include/structseq.h
    typedefs:
    - item_type: typedef
      name: PyStructSequence
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/Python-3.8.3/Include/structseq.h
      type: PyTupleObject
    union: []
- function_names:
  - PyWeakref_CheckRef
  - PyWeakref_CheckRefExact
  - PyWeakref_CheckProxy
  - PyWeakref_Check
  - PyWeakref_GET_OBJECT
  source_file: /src/Python-3.8.3/Include/weakrefobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*wr_object'
        type: PyObject_HEAD
      - name: '*wr_callback'
        type: PyObject
      - name: hash
        type: Py_hash_t
      - name: '*wr_prev'
        type: PyWeakReference
      - name: '*wr_next'
        type: PyWeakReference
      item_type: struct
      name: _PyWeakReference
      pos:
        line_end: 39
        line_start: 15
        source_file: /src/Python-3.8.3/Include/weakrefobject.h
    typedefs:
    - item_type: typedef
      name: PyWeakReference
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/Python-3.8.3/Include/weakrefobject.h
      type: _PyWeakReference
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/patchlevel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PY_RELEASE_LEVEL_ALPHA
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '0xA'
    - item_type: preproc_def
      name: PY_RELEASE_LEVEL_BETA
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '0xB'
    - item_type: preproc_def
      name: PY_RELEASE_LEVEL_GAMMA
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '0xC     '
    - item_type: preproc_def
      name: PY_RELEASE_LEVEL_FINAL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '0xF     '
    - item_type: preproc_def
      name: PY_MAJOR_VERSION
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PY_MINOR_VERSION
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PY_MICRO_VERSION
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PY_RELEASE_LEVEL
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: PY_RELEASE_LEVEL_FINAL
    - item_type: preproc_def
      name: PY_RELEASE_SERIAL
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PY_VERSION
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: '"3.8.3"'
    - item_type: preproc_def
      name: PY_VERSION_HEX
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/Python-3.8.3/Include/patchlevel.h
      type_or_value: "((PY_MAJOR_VERSION << 24) | \\\n                        (PY_MINOR_VERSION
        << 16) | \\\n                        (PY_MICRO_VERSION <<  8) | \\\n                        (PY_RELEASE_LEVEL
        <<  4) | \\\n                        (PY_RELEASE_SERIAL << 0))"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/sysmodule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PySet_GET_SIZE
  - PyFrozenSet_CheckExact
  - PyAnySet_CheckExact
  - PyAnySet_Check
  - PySet_Check
  - PyFrozenSet_Check
  source_file: /src/Python-3.8.3/Include/setobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PySet_MINSIZE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/setobject.h
      type_or_value: '8'
    structs:
    - fields:
      - name: '*key'
        type: PyObject
      - name: hash
        type: Py_hash_t
      item_type: struct
      name: setentry
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/Python-3.8.3/Include/setobject.h
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: used
        type: Py_ssize_t
      - name: mask
        type: Py_ssize_t
      - name: '*table'
        type: setentry
      - name: hash
        type: Py_hash_t
      - name: finger
        type: Py_ssize_t
      - name: smalltable[PySet_MINSIZE]
        type: setentry
      - name: '*weakreflist'
        type: PyObject
      item_type: struct
      name: PySetObject
      pos:
        line_end: 64
        line_start: 41
        source_file: /src/Python-3.8.3/Include/setobject.h
    typedefs: []
    union: []
- function_names:
  - PyCell_Check
  - PyCell_GET
  - PyCell_SET
  source_file: /src/Python-3.8.3/Include/cellobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ob_ref'
        type: PyObject_HEAD
      item_type: struct
      name: PyCellObject
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/Python-3.8.3/Include/cellobject.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pyarena.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: PyArena
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/Python-3.8.3/Include/pyarena.h
      type: _arena
    union: []
- function_names:
  - PyDTrace_LINE
  - PyDTrace_FUNCTION_ENTRY
  - PyDTrace_FUNCTION_RETURN
  - PyDTrace_GC_START
  - PyDTrace_GC_DONE
  - PyDTrace_INSTANCE_NEW_START
  - PyDTrace_INSTANCE_NEW_DONE
  - PyDTrace_INSTANCE_DELETE_START
  - PyDTrace_INSTANCE_DELETE_DONE
  - PyDTrace_IMPORT_FIND_LOAD_START
  - PyDTrace_IMPORT_FIND_LOAD_DONE
  - PyDTrace_AUDIT
  - PyDTrace_LINE_ENABLED
  - PyDTrace_FUNCTION_ENTRY_ENABLED
  - PyDTrace_FUNCTION_RETURN_ENABLED
  - PyDTrace_GC_START_ENABLED
  - PyDTrace_GC_DONE_ENABLED
  - PyDTrace_INSTANCE_NEW_START_ENABLED
  - PyDTrace_INSTANCE_NEW_DONE_ENABLED
  - PyDTrace_INSTANCE_DELETE_START_ENABLED
  - PyDTrace_INSTANCE_DELETE_DONE_ENABLED
  - PyDTrace_IMPORT_FIND_LOAD_START_ENABLED
  - PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED
  - PyDTrace_AUDIT_ENABLED
  source_file: /src/Python-3.8.3/Include/pydtrace.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pystrcmp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyOS_strnicmp
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/pystrcmp.h
      type_or_value: strnicmp
    - item_type: preproc_def
      name: PyOS_stricmp
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/pystrcmp.h
      type_or_value: stricmp
    - item_type: preproc_def
      name: PyOS_strnicmp
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/pystrcmp.h
      type_or_value: PyOS_mystrnicmp
    - item_type: preproc_def
      name: PyOS_stricmp
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/pystrcmp.h
      type_or_value: PyOS_mystricmp
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyCapsule_CheckExact
  source_file: /src/Python-3.8.3/Include/pycapsule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*PyCapsule_Destructor)(PyObject *)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/Python-3.8.3/Include/pycapsule.h
      type: void
    union: []
- function_names:
  - PyObject_New
  - PyObject_NewVar
  - _PyObject_INIT
  - PyObject_INIT
  - _PyObject_INIT_VAR
  - PyObject_INIT_VAR
  - _PyObject_SIZE
  - _PyObject_VAR_SIZE
  - PyObject_NEW
  - PyObject_NEW_VAR
  - PyType_IS_GC
  - PyObject_GC_Resize
  - PyObject_GC_New
  - PyObject_GC_NewVar
  - Py_VISIT
  source_file: /src/Python-3.8.3/Include/objimpl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyObject_MALLOC
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Include/objimpl.h
      type_or_value: PyObject_Malloc
    - item_type: preproc_def
      name: PyObject_REALLOC
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Include/objimpl.h
      type_or_value: PyObject_Realloc
    - item_type: preproc_def
      name: PyObject_FREE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Include/objimpl.h
      type_or_value: PyObject_Free
    - item_type: preproc_def
      name: PyObject_Del
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Include/objimpl.h
      type_or_value: PyObject_Free
    - item_type: preproc_def
      name: PyObject_DEL
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Include/objimpl.h
      type_or_value: PyObject_Free
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/osdefs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEP
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L'\\'
    - item_type: preproc_def
      name: ALTSEP
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L'/'
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DELIM
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L';'
    - item_type: preproc_def
      name: DELIM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L';'
    - item_type: preproc_def
      name: SEP
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L'/'
    - item_type: preproc_def
      name: PATH_MAX
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: MAXPATHLEN
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: PATH_MAX
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: DELIM
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/osdefs.h
      type_or_value: L':'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/structmember.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: T_SHORT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '0'
    - item_type: preproc_def
      name: T_INT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '1'
    - item_type: preproc_def
      name: T_LONG
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '2'
    - item_type: preproc_def
      name: T_FLOAT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '3'
    - item_type: preproc_def
      name: T_DOUBLE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '4'
    - item_type: preproc_def
      name: T_STRING
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '5'
    - item_type: preproc_def
      name: T_OBJECT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '6'
    - item_type: preproc_def
      name: T_CHAR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '7   '
    - item_type: preproc_def
      name: T_BYTE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '8   '
    - item_type: preproc_def
      name: T_UBYTE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '9'
    - item_type: preproc_def
      name: T_USHORT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '10'
    - item_type: preproc_def
      name: T_UINT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '11'
    - item_type: preproc_def
      name: T_ULONG
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '12'
    - item_type: preproc_def
      name: T_STRING_INPLACE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '13'
    - item_type: preproc_def
      name: T_BOOL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '14'
    - item_type: preproc_def
      name: T_OBJECT_EX
      pos:
        line_end: 51
        line_start: 48
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '16  '
    - item_type: preproc_def
      name: T_LONGLONG
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '17'
    - item_type: preproc_def
      name: T_ULONGLONG
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '18'
    - item_type: preproc_def
      name: T_PYSSIZET
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '19      '
    - item_type: preproc_def
      name: T_NONE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '20      '
    - item_type: preproc_def
      name: READONLY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '1'
    - item_type: preproc_def
      name: READ_RESTRICTED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PY_WRITE_RESTRICTED
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RESTRICTED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/structmember.h
      type_or_value: (READ_RESTRICTED | PY_WRITE_RESTRICTED)
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: type
        type: int
      - name: offset
        type: Py_ssize_t
      - name: flags
        type: int
      - name: '*doc'
        type: char
      item_type: struct
      name: PyMemberDef
      pos:
        line_end: 23
        line_start: 17
        source_file: /src/Python-3.8.3/Include/structmember.h
    typedefs: []
    union: []
- function_names:
  - Py_GETENV
  source_file: /src/Python-3.8.3/Include/pydebug.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pyfpe.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCH
  - CHILD
  - RCHILD
  - TYPE
  - STR
  - LINENO
  - REQ
  source_file: /src/Python-3.8.3/Include/node.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: n_type
        type: short
      - name: '*n_str'
        type: char
      - name: n_lineno
        type: int
      - name: n_col_offset
        type: int
      - name: n_nchildren
        type: int
      - name: '*n_child'
        type: struct _node
      - name: n_end_lineno
        type: int
      - name: n_end_col_offset
        type: int
      item_type: struct
      name: _node
      pos:
        line_end: 18
        line_start: 9
        source_file: /src/Python-3.8.3/Include/node.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/eval.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PySlice_Check
  - PySlice_GetIndicesEx
  source_file: /src/Python-3.8.3/Include/sliceobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_Ellipsis
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/sliceobject.h
      type_or_value: (&_Py_EllipsisObject)
    structs:
    - fields:
      - name: '*start'
        type: PyObject_HEAD
      item_type: struct
      name: PySliceObject
      pos:
        line_end: 24
        line_start: 21
        source_file: /src/Python-3.8.3/Include/sliceobject.h
    typedefs: []
    union: []
- function_names:
  - HAS_ARG
  source_file: /src/Python-3.8.3/Include/opcode.h
  types:
    enum:
    - enumerators:
      - name: PyCmp_LT
        value: Py_LT
      - name: PyCmp_NE
        value: Py_NE
      - name: PyCmp_EQ
        value: Py_EQ
      - name: PyCmp_LE
        value: Py_LE
      - name: PyCmp_GT
        value: Py_GT
      - name: PyCmp_GE
        value: Py_GE
      - name: PyCmp_IN
      - name: PyCmp_NOT_IN
      - name: PyCmp_IS
      - name: PyCmp_IS_NOT
      - name: PyCmp_EXC_MATCH
      - name: PyCmp_BAD
      item_type: enum
      name: cmp_op
      pos:
        line_end: 140
        line_start: 138
        source_file: /src/Python-3.8.3/Include/opcode.h
    preproc_defs:
    - item_type: preproc_def
      name: POP_TOP
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ROT_TWO
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ROT_THREE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DUP_TOP
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DUP_TOP_TWO
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ROT_FOUR
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NOP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '9'
    - item_type: preproc_def
      name: UNARY_POSITIVE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '10'
    - item_type: preproc_def
      name: UNARY_NEGATIVE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '11'
    - item_type: preproc_def
      name: UNARY_NOT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '12'
    - item_type: preproc_def
      name: UNARY_INVERT
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '15'
    - item_type: preproc_def
      name: BINARY_MATRIX_MULTIPLY
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '16'
    - item_type: preproc_def
      name: INPLACE_MATRIX_MULTIPLY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '17'
    - item_type: preproc_def
      name: BINARY_POWER
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '19'
    - item_type: preproc_def
      name: BINARY_MULTIPLY
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '20'
    - item_type: preproc_def
      name: BINARY_MODULO
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '22'
    - item_type: preproc_def
      name: BINARY_ADD
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '23'
    - item_type: preproc_def
      name: BINARY_SUBTRACT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '24'
    - item_type: preproc_def
      name: BINARY_SUBSCR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '25'
    - item_type: preproc_def
      name: BINARY_FLOOR_DIVIDE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '26'
    - item_type: preproc_def
      name: BINARY_TRUE_DIVIDE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '27'
    - item_type: preproc_def
      name: INPLACE_FLOOR_DIVIDE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '28'
    - item_type: preproc_def
      name: INPLACE_TRUE_DIVIDE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '29'
    - item_type: preproc_def
      name: GET_AITER
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '50'
    - item_type: preproc_def
      name: GET_ANEXT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '51'
    - item_type: preproc_def
      name: BEFORE_ASYNC_WITH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '52'
    - item_type: preproc_def
      name: BEGIN_FINALLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '53'
    - item_type: preproc_def
      name: END_ASYNC_FOR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '54'
    - item_type: preproc_def
      name: INPLACE_ADD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '55'
    - item_type: preproc_def
      name: INPLACE_SUBTRACT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '56'
    - item_type: preproc_def
      name: INPLACE_MULTIPLY
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '57'
    - item_type: preproc_def
      name: INPLACE_MODULO
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '59'
    - item_type: preproc_def
      name: STORE_SUBSCR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '60'
    - item_type: preproc_def
      name: DELETE_SUBSCR
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '61'
    - item_type: preproc_def
      name: BINARY_LSHIFT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '62'
    - item_type: preproc_def
      name: BINARY_RSHIFT
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '63'
    - item_type: preproc_def
      name: BINARY_AND
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '64'
    - item_type: preproc_def
      name: BINARY_XOR
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '65'
    - item_type: preproc_def
      name: BINARY_OR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '66'
    - item_type: preproc_def
      name: INPLACE_POWER
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '67'
    - item_type: preproc_def
      name: GET_ITER
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '68'
    - item_type: preproc_def
      name: GET_YIELD_FROM_ITER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '69'
    - item_type: preproc_def
      name: PRINT_EXPR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '70'
    - item_type: preproc_def
      name: LOAD_BUILD_CLASS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '71'
    - item_type: preproc_def
      name: YIELD_FROM
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '72'
    - item_type: preproc_def
      name: GET_AWAITABLE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '73'
    - item_type: preproc_def
      name: INPLACE_LSHIFT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '75'
    - item_type: preproc_def
      name: INPLACE_RSHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '76'
    - item_type: preproc_def
      name: INPLACE_AND
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '77'
    - item_type: preproc_def
      name: INPLACE_XOR
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '78'
    - item_type: preproc_def
      name: INPLACE_OR
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '79'
    - item_type: preproc_def
      name: WITH_CLEANUP_START
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '81'
    - item_type: preproc_def
      name: WITH_CLEANUP_FINISH
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '82'
    - item_type: preproc_def
      name: RETURN_VALUE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '83'
    - item_type: preproc_def
      name: IMPORT_STAR
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '84'
    - item_type: preproc_def
      name: SETUP_ANNOTATIONS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '85'
    - item_type: preproc_def
      name: YIELD_VALUE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '86'
    - item_type: preproc_def
      name: POP_BLOCK
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '87'
    - item_type: preproc_def
      name: END_FINALLY
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '88'
    - item_type: preproc_def
      name: POP_EXCEPT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '89'
    - item_type: preproc_def
      name: HAVE_ARGUMENT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '90'
    - item_type: preproc_def
      name: STORE_NAME
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '90'
    - item_type: preproc_def
      name: DELETE_NAME
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '91'
    - item_type: preproc_def
      name: UNPACK_SEQUENCE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '92'
    - item_type: preproc_def
      name: FOR_ITER
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '93'
    - item_type: preproc_def
      name: UNPACK_EX
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '94'
    - item_type: preproc_def
      name: STORE_ATTR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '95'
    - item_type: preproc_def
      name: DELETE_ATTR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '96'
    - item_type: preproc_def
      name: STORE_GLOBAL
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '97'
    - item_type: preproc_def
      name: DELETE_GLOBAL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '98'
    - item_type: preproc_def
      name: LOAD_CONST
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '100'
    - item_type: preproc_def
      name: LOAD_NAME
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '101'
    - item_type: preproc_def
      name: BUILD_TUPLE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '102'
    - item_type: preproc_def
      name: BUILD_LIST
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '103'
    - item_type: preproc_def
      name: BUILD_SET
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '104'
    - item_type: preproc_def
      name: BUILD_MAP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '105'
    - item_type: preproc_def
      name: LOAD_ATTR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '106'
    - item_type: preproc_def
      name: COMPARE_OP
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '107'
    - item_type: preproc_def
      name: IMPORT_NAME
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '108'
    - item_type: preproc_def
      name: IMPORT_FROM
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '109'
    - item_type: preproc_def
      name: JUMP_FORWARD
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '110'
    - item_type: preproc_def
      name: JUMP_IF_FALSE_OR_POP
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '111'
    - item_type: preproc_def
      name: JUMP_IF_TRUE_OR_POP
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '112'
    - item_type: preproc_def
      name: JUMP_ABSOLUTE
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '113'
    - item_type: preproc_def
      name: POP_JUMP_IF_FALSE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '114'
    - item_type: preproc_def
      name: POP_JUMP_IF_TRUE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '115'
    - item_type: preproc_def
      name: LOAD_GLOBAL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '116'
    - item_type: preproc_def
      name: SETUP_FINALLY
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '122'
    - item_type: preproc_def
      name: LOAD_FAST
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '124'
    - item_type: preproc_def
      name: STORE_FAST
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '125'
    - item_type: preproc_def
      name: DELETE_FAST
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '126'
    - item_type: preproc_def
      name: RAISE_VARARGS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '130'
    - item_type: preproc_def
      name: CALL_FUNCTION
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '131'
    - item_type: preproc_def
      name: MAKE_FUNCTION
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '132'
    - item_type: preproc_def
      name: BUILD_SLICE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '133'
    - item_type: preproc_def
      name: LOAD_CLOSURE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '135'
    - item_type: preproc_def
      name: LOAD_DEREF
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '136'
    - item_type: preproc_def
      name: STORE_DEREF
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '137'
    - item_type: preproc_def
      name: DELETE_DEREF
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '138'
    - item_type: preproc_def
      name: CALL_FUNCTION_KW
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '141'
    - item_type: preproc_def
      name: CALL_FUNCTION_EX
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '142'
    - item_type: preproc_def
      name: SETUP_WITH
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '143'
    - item_type: preproc_def
      name: EXTENDED_ARG
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '144'
    - item_type: preproc_def
      name: LIST_APPEND
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '145'
    - item_type: preproc_def
      name: SET_ADD
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '146'
    - item_type: preproc_def
      name: MAP_ADD
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '147'
    - item_type: preproc_def
      name: LOAD_CLASSDEREF
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '148'
    - item_type: preproc_def
      name: BUILD_LIST_UNPACK
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '149'
    - item_type: preproc_def
      name: BUILD_MAP_UNPACK
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '150'
    - item_type: preproc_def
      name: BUILD_MAP_UNPACK_WITH_CALL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '151'
    - item_type: preproc_def
      name: BUILD_TUPLE_UNPACK
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '152'
    - item_type: preproc_def
      name: BUILD_SET_UNPACK
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '153'
    - item_type: preproc_def
      name: SETUP_ASYNC_WITH
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '154'
    - item_type: preproc_def
      name: FORMAT_VALUE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '155'
    - item_type: preproc_def
      name: BUILD_CONST_KEY_MAP
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '156'
    - item_type: preproc_def
      name: BUILD_STRING
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '157'
    - item_type: preproc_def
      name: BUILD_TUPLE_UNPACK_WITH_CALL
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '158'
    - item_type: preproc_def
      name: LOAD_METHOD
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '160'
    - item_type: preproc_def
      name: CALL_METHOD
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '161'
    - item_type: preproc_def
      name: CALL_FINALLY
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '162'
    - item_type: preproc_def
      name: POP_FINALLY
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '163'
    - item_type: preproc_def
      name: EXCEPT_HANDLER
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/Python-3.8.3/Include/opcode.h
      type_or_value: '257'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Py_MIN
  - Py_MAX
  - Py_ABS
  - _Py_XSTRINGIFY
  - Py_STRINGIFY
  - Py_MEMBER_SIZE
  - Py_CHARMASK
  - Py_BUILD_ASSERT_EXPR
  - Py_BUILD_ASSERT
  - Py_ARRAY_LENGTH
  - Py_ARRAY_LENGTH
  - PyDoc_VAR
  - PyDoc_STRVAR
  - PyDoc_STR
  - PyDoc_STR
  - _Py_SIZE_ROUND_DOWN
  - _Py_SIZE_ROUND_UP
  - _Py_ALIGN_DOWN
  - _Py_ALIGN_UP
  - _Py_IS_ALIGNED
  - Py_UNUSED
  - Py_UNUSED
  - Py_UNREACHABLE
  source_file: /src/Python-3.8.3/Include/pymacro.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyObject_DelAttrString
  - PyObject_DelAttr
  - PySequence_Fast_GET_SIZE
  - PySequence_Fast_GET_ITEM
  - PySequence_Fast_ITEMS
  - PyMapping_DelItemString
  - PyMapping_DelItem
  source_file: /src/Python-3.8.3/Include/abstract.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyObject_CallFunction
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: _PyObject_CallFunction_SizeT
    - item_type: preproc_def
      name: PyObject_CallMethod
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: _PyObject_CallMethod_SizeT
    - item_type: preproc_def
      name: PyObject_Length
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: PyObject_Size
    - item_type: preproc_def
      name: PySequence_Length
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: PySequence_Size
    - item_type: preproc_def
      name: PySequence_In
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: PySequence_Contains
    - item_type: preproc_def
      name: PyMapping_Length
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/Python-3.8.3/Include/abstract.h
      type_or_value: PyMapping_Size
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyGenObject_HEAD
  - PyGen_Check
  - PyGen_CheckExact
  - PyCoro_CheckExact
  - PyAsyncGen_CheckExact
  source_file: /src/Python-3.8.3/Include/genobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (gi)
        type: _PyGenObject_HEAD
      item_type: struct
      name: PyGenObject
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/Python-3.8.3/Include/genobject.h
    - fields:
      - name: (cr)
        type: _PyGenObject_HEAD
      - name: '*cr_origin'
        type: PyObject
      item_type: struct
      name: PyCoroObject
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/Python-3.8.3/Include/genobject.h
    - fields:
      - name: (ag)
        type: _PyGenObject_HEAD
      - name: '*ag_finalizer'
        type: PyObject
      - name: ag_hooks_inited
        type: int
      - name: ag_closed
        type: int
      - name: ag_running_async
        type: int
      item_type: struct
      name: PyAsyncGenObject
      pos:
        line_end: 84
        line_start: 70
        source_file: /src/Python-3.8.3/Include/genobject.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pyexpat.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyExpat_CAPI_MAGIC
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Include/pyexpat.h
      type_or_value: '"pyexpat.expat_CAPI 1.1"'
    - item_type: preproc_def
      name: PyExpat_CAPSULE_NAME
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Include/pyexpat.h
      type_or_value: '"pyexpat.expat_CAPI"'
    structs:
    - fields:
      - name: '* magic'
        type: char
      - name: size
        type: int
      - name: MAJOR_VERSION
        type: int
      - name: MINOR_VERSION
        type: int
      - name: MICRO_VERSION
        type: int
      - name: '* (*ErrorString)(enum XML_Error code)'
        type: XML_LChar
      - name: (*GetErrorCode)(XML_Parser parser)
        type: enum XML_Error
      - name: (*GetErrorColumnNumber)(XML_Parser parser)
        type: XML_Size
      - name: (*GetErrorLineNumber)(XML_Parser parser)
        type: XML_Size
      - name: "(*Parse)(\n        XML_Parser parser, const char *s, int len, int isFinal)"
        type: enum XML_Status
      - name: "(*ParserCreate_MM)(\n        const XML_Char *encoding, const XML_Memory_Handling_Suite
          *memsuite,\n        const XML_Char *namespaceSeparator)"
        type: XML_Parser
      - name: (*ParserFree)(XML_Parser parser)
        type: void
      - name: "(*SetCharacterDataHandler)(\n        XML_Parser parser, XML_CharacterDataHandler
          handler)"
        type: void
      - name: "(*SetCommentHandler)(\n        XML_Parser parser, XML_CommentHandler
          handler)"
        type: void
      - name: "(*SetDefaultHandlerExpand)(\n        XML_Parser parser, XML_DefaultHandler
          handler)"
        type: void
      - name: "(*SetElementHandler)(\n        XML_Parser parser, XML_StartElementHandler
          start,\n        XML_EndElementHandler end)"
        type: void
      - name: "(*SetNamespaceDeclHandler)(\n        XML_Parser parser, XML_StartNamespaceDeclHandler
          start,\n        XML_EndNamespaceDeclHandler end)"
        type: void
      - name: "(*SetProcessingInstructionHandler)(\n        XML_Parser parser, XML_ProcessingInstructionHandler
          handler)"
        type: void
      - name: "(*SetUnknownEncodingHandler)(\n        XML_Parser parser, XML_UnknownEncodingHandler
          handler,\n        void *encodingHandlerData)"
        type: void
      - name: (*SetUserData)(XML_Parser parser, void *userData)
        type: void
      - name: "(*SetStartDoctypeDeclHandler)(XML_Parser parser,\n                                       XML_StartDoctypeDeclHandler
          start)"
        type: void
      - name: (*SetEncoding)(XML_Parser parser, const XML_Char *encoding)
        type: enum XML_Status
      - name: "(*DefaultUnknownEncodingHandler)(\n        void *encodingHandlerData,
          const XML_Char *name, XML_Encoding *info)"
        type: int
      - name: (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt)
        type: int
      item_type: struct
      name: PyExpat_CAPI
      pos:
        line_end: 53
        line_start: 8
        source_file: /src/Python-3.8.3/Include/pyexpat.h
    typedefs: []
    union: []
- function_names:
  - PyMethod_Check
  - PyMethod_GET_FUNCTION
  - PyMethod_GET_SELF
  - PyInstanceMethod_Check
  - PyInstanceMethod_GET_FUNCTION
  source_file: /src/Python-3.8.3/Include/classobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*im_func'
        type: PyObject_HEAD
      - name: '*im_self'
        type: PyObject
      - name: '*im_weakreflist'
        type: PyObject
      - name: vectorcall
        type: vectorcallfunc
      item_type: struct
      name: PyMethodObject
      pos:
        line_end: 17
        line_start: 11
        source_file: /src/Python-3.8.3/Include/classobject.h
    - fields:
      - name: '*func'
        type: PyObject_HEAD
      item_type: struct
      name: PyInstanceMethodObject
      pos:
        line_end: 40
        line_start: 37
        source_file: /src/Python-3.8.3/Include/classobject.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pystrtod.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_DTSF_SIGN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: Py_DTSF_ADD_DOT_0
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: Py_DTSF_ALT
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: Py_DTST_FINITE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_DTST_INFINITE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Py_DTST_NAN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/pystrtod.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyComplex_Check
  - PyComplex_CheckExact
  source_file: /src/Python-3.8.3/Include/complexobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: real
        type: double
      - name: imag
        type: double
      item_type: struct
      name: Py_complex
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/Python-3.8.3/Include/complexobject.h
    - fields:
      - name: Py_complex
        type: PyObject_HEAD
      item_type: struct
      name: PyComplexObject
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/Python-3.8.3/Include/complexobject.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/longintrepr.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyLong_SHIFT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '30'
    - item_type: preproc_def
      name: _PyLong_DECIMAL_SHIFT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '9 '
    - item_type: preproc_def
      name: _PyLong_DECIMAL_BASE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '((digit)1000000000) '
    - item_type: preproc_def
      name: PyLong_SHIFT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '15'
    - item_type: preproc_def
      name: _PyLong_DECIMAL_SHIFT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: _PyLong_DECIMAL_BASE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: '((digit)10000) '
    - item_type: preproc_def
      name: PyLong_BASE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: ((digit)1 << PyLong_SHIFT)
    - item_type: preproc_def
      name: PyLong_MASK
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type_or_value: ((digit)(PyLong_BASE - 1))
    structs:
    - fields:
      - name: ob_digit[1]
        type: PyObject_VAR_HEAD
      item_type: struct
      name: _longobject
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/Python-3.8.3/Include/longintrepr.h
    typedefs:
    - item_type: typedef
      name: digit
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: uint32_t
    - item_type: typedef
      name: sdigit
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: int32_t
    - item_type: typedef
      name: twodigits
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: uint64_t
    - item_type: typedef
      name: stwodigits
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: int64_t
    - item_type: typedef
      name: digit
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: unsigned short
    - item_type: typedef
      name: sdigit
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: short
    - item_type: typedef
      name: twodigits
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: unsigned long
    - item_type: typedef
      name: stwodigits
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/Python-3.8.3/Include/longintrepr.h
      type: long
    union: []
- function_names:
  - Py_LOCAL
  - Py_LOCAL_INLINE
  - Py_LOCAL
  - Py_LOCAL_INLINE
  - S_ISREG
  - S_ISDIR
  - S_ISCHR
  - Py_ARITHMETIC_RIGHT_SHIFT
  - Py_ARITHMETIC_RIGHT_SHIFT
  - Py_FORCE_EXPANSION
  - Py_SAFE_DOWNCAST
  - Py_SAFE_DOWNCAST
  - _Py_SET_EDOM_FOR_NAN
  - _Py_SET_EDOM_FOR_NAN
  - Py_SET_ERRNO_ON_MATH_ERROR
  - Py_SET_ERANGE_IF_OVERFLOW
  - Py_ADJUST_ERANGE1
  - Py_ADJUST_ERANGE2
  - Py_DEPRECATED
  - Py_DEPRECATED
  - isalnum
  - isalpha
  - islower
  - isspace
  - isupper
  - tolower
  - toupper
  - PyAPI_FUNC
  - PyAPI_DATA
  - PyAPI_FUNC
  - PyAPI_DATA
  - PyAPI_FUNC
  - PyAPI_DATA
  - Py_GCC_ATTRIBUTE
  - Py_ALIGNED
  - Py_LL
  - Py_ULL
  source_file: /src/Python-3.8.3/Include/pyport.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HAVE_LONG_LONG
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_LONG_LONG
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: long long
    - item_type: preproc_def
      name: PY_LLONG_MIN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: LLONG_MIN
    - item_type: preproc_def
      name: PY_LLONG_MAX
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: PY_ULLONG_MAX
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: ULLONG_MAX
    - item_type: preproc_def
      name: PY_UINT32_T
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: uint32_t
    - item_type: preproc_def
      name: PY_UINT64_T
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: uint64_t
    - item_type: preproc_def
      name: PY_INT32_T
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: PY_INT64_T
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: int64_t
    - item_type: preproc_def
      name: PYLONG_BITS_IN_DIGIT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '30'
    - item_type: preproc_def
      name: PYLONG_BITS_IN_DIGIT
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SIZEOF_PY_HASH_T
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: SIZEOF_SIZE_T
    - item_type: preproc_def
      name: SIZEOF_PY_UHASH_T
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: SIZEOF_SIZE_T
    - item_type: preproc_def
      name: PY_SIZE_MAX
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: SIZE_MAX
    - item_type: preproc_def
      name: PY_SSIZE_T_MAX
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: ((Py_ssize_t)(((size_t)-1)>>1))
    - item_type: preproc_def
      name: PY_SSIZE_T_MIN
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: (-PY_SSIZE_T_MAX-1)
    - item_type: preproc_def
      name: PY_FORMAT_SIZE_T
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '""'
    - item_type: preproc_def
      name: PY_FORMAT_SIZE_T
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '"l"'
    - item_type: preproc_def
      name: PY_FORMAT_SIZE_T
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '"I"'
    - item_type: preproc_def
      name: Py_MEMCPY
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: S_IFMT
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '0170000'
    - item_type: preproc_def
      name: S_IFLNK
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '0120000'
    - item_type: preproc_def
      name: HAVE_PY_SET_53BIT_PRECISION
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_HEADER
      pos:
        line_end: 416
        line_start: 414
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: unsigned short old_387controlword, new_387controlword
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_START
      pos:
        line_end: 423
        line_start: 416
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "do {                                                                \\\n
        \       old_387controlword = _Py_get_387controlword();                  \\\n
        \       new_387controlword = (old_387controlword & ~0x0f00) | 0x0200; \\\n
        \       if (new_387controlword != old_387controlword)                   \\\n
        \           _Py_set_387controlword(new_387controlword);                 \\\n
        \   } while (0)"
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_END
      pos:
        line_end: 426
        line_start: 423
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "if (new_387controlword != old_387controlword)               \\\n
        \       _Py_set_387controlword(old_387controlword)"
    - item_type: preproc_def
      name: HAVE_PY_SET_53BIT_PRECISION
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_HEADER
      pos:
        line_end: 433
        line_start: 431
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: unsigned int old_387controlword, new_387controlword, out_387controlword
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_START
      pos:
        line_end: 444
        line_start: 435
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "do {                                                                \\\n
        \       __control87_2(0, 0, &old_387controlword, NULL);                 \\\n
        \       new_387controlword =                                            \\\n
        \         (old_387controlword & ~(_MCW_PC | _MCW_RC)) | (_PC_53 | _RC_NEAR);
        \\\n        if (new_387controlword != old_387controlword)                   \\\n
        \           __control87_2(new_387controlword, _MCW_PC | _MCW_RC,        \\\n
        \                         &out_387controlword, NULL);                   \\\n
        \   } while (0)"
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_END
      pos:
        line_end: 450
        line_start: 444
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "do {                                                                \\\n
        \       if (new_387controlword != old_387controlword)                   \\\n
        \           __control87_2(old_387controlword, _MCW_PC | _MCW_RC,        \\\n
        \                         &out_387controlword, NULL);                   \\\n
        \   } while (0)"
    - item_type: preproc_def
      name: HAVE_PY_SET_53BIT_PRECISION
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_HEADER
      pos:
        line_end: 456
        line_start: 454
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: unsigned int old_fpcr, new_fpcr
    - item_type: preproc_def
      name: new_fpcr
      pos:
        line_end: 464
        line_start: 456
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "= (old_fpcr & ~0xf0) | 0x80;                               \\\n
        \   if (new_fpcr != old_fpcr)                                           \\\n
        \     __asm__ volatile (\"fmove.l %0,%%fpcr\" : : \"g\" (new_fpcr));        \\\n
        \ } while (0)"
    - item_type: preproc_def
      name: _Py_SET_53BIT_PRECISION_END
      pos:
        line_end: 469
        line_start: 464
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "do {                                                                  \\\n
        \   if (new_fpcr != old_fpcr)                                           \\\n
        \     __asm__ volatile (\"fmove.l %0,%%fpcr\" : : \"g\" (old_fpcr));        \\\n
        \ } while (0)"
    - item_type: preproc_def
      name: _Py_HOT_FUNCTION
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __attribute__((hot))
    - item_type: preproc_def
      name: _Py_NO_INLINE
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __declspec(noinline)
    - item_type: preproc_def
      name: _Py_NO_INLINE
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __attribute__ ((noinline))
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __declspec(dllexport) PyObject*
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: PyObject*
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: extern "C" __declspec(dllexport) PyObject*
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __declspec(dllexport) PyObject*
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: extern "C" PyObject*
    - item_type: preproc_def
      name: PyMODINIT_FUNC
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: PyObject*
    - item_type: preproc_def
      name: INT_MAX
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '2147483647'
    - item_type: preproc_def
      name: LONG_MAX
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: 0X7FFFFFFFL
    - item_type: preproc_def
      name: LONG_MAX
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: 0X7FFFFFFFFFFFFFFFL
    - item_type: preproc_def
      name: LONG_MIN
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: (-LONG_MAX-1)
    - item_type: preproc_def
      name: LONG_BIT
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: (8 * SIZEOF_LONG)
    - item_type: preproc_def
      name: Py_VA_COPY
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: va_copy
    - item_type: preproc_def
      name: PY_BIG_ENDIAN
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_LITTLE_ENDIAN
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PY_BIG_ENDIAN
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PY_LITTLE_ENDIAN
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _Py_BEGIN_SUPPRESS_IPH
      pos:
        line_end: 792
        line_start: 790
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: "{ _invalid_parameter_handler _Py_old_handler = \\\n    _set_thread_local_invalid_parameter_handler(_Py_silent_invalid_parameter_handler);"
    - item_type: preproc_def
      name: _Py_END_SUPPRESS_IPH
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: _set_thread_local_invalid_parameter_handler(_Py_old_handler);
        }
    - item_type: preproc_def
      name: PY_DWORD_MAX
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: 4294967295U
    - item_type: preproc_def
      name: _Py_NO_RETURN
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: _Py_NO_RETURN
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/Python-3.8.3/Include/pyport.h
      type_or_value: __declspec(noreturn)
    structs: []
    typedefs:
    - item_type: typedef
      name: Py_uintptr_t
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: uintptr_t
    - item_type: typedef
      name: Py_intptr_t
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: intptr_t
    - item_type: typedef
      name: Py_ssize_t
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: ssize_t
    - item_type: typedef
      name: Py_ssize_t
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: Py_intptr_t
    - item_type: typedef
      name: Py_hash_t
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: Py_ssize_t
    - item_type: typedef
      name: Py_uhash_t
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: size_t
    - item_type: typedef
      name: Py_ssize_clean_t
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: Py_ssize_t
    - item_type: typedef
      name: Py_ssize_clean_t
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/Python-3.8.3/Include/pyport.h
      type: int
    union: []
- function_names:
  - _Py_ANNOTATE_CONDVAR_LOCK_WAIT
  - _Py_ANNOTATE_CONDVAR_WAIT
  - _Py_ANNOTATE_CONDVAR_SIGNAL
  - _Py_ANNOTATE_CONDVAR_SIGNAL_ALL
  - _Py_ANNOTATE_HAPPENS_BEFORE
  - _Py_ANNOTATE_HAPPENS_AFTER
  - _Py_ANNOTATE_PUBLISH_MEMORY_RANGE
  - _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX
  - _Py_ANNOTATE_NEW_MEMORY
  - _Py_ANNOTATE_PCQ_CREATE
  - _Py_ANNOTATE_PCQ_DESTROY
  - _Py_ANNOTATE_PCQ_PUT
  - _Py_ANNOTATE_PCQ_GET
  - _Py_ANNOTATE_BENIGN_RACE
  - _Py_ANNOTATE_BENIGN_RACE_SIZED
  - _Py_ANNOTATE_IGNORE_READS_BEGIN
  - _Py_ANNOTATE_IGNORE_READS_END
  - _Py_ANNOTATE_IGNORE_WRITES_BEGIN
  - _Py_ANNOTATE_IGNORE_WRITES_END
  - _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN
  - _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END
  - _Py_ANNOTATE_IGNORE_SYNC_BEGIN
  - _Py_ANNOTATE_IGNORE_SYNC_END
  - _Py_ANNOTATE_ENABLE_RACE_DETECTION
  - _Py_ANNOTATE_TRACE_MEMORY
  - _Py_ANNOTATE_THREAD_NAME
  - _Py_ANNOTATE_RWLOCK_CREATE
  - _Py_ANNOTATE_RWLOCK_DESTROY
  - _Py_ANNOTATE_RWLOCK_ACQUIRED
  - _Py_ANNOTATE_RWLOCK_RELEASED
  - _Py_ANNOTATE_BARRIER_INIT
  - _Py_ANNOTATE_BARRIER_WAIT_BEFORE
  - _Py_ANNOTATE_BARRIER_WAIT_AFTER
  - _Py_ANNOTATE_BARRIER_DESTROY
  - _Py_ANNOTATE_EXPECT_RACE
  - _Py_ANNOTATE_NO_OP
  - _Py_ANNOTATE_FLUSH_STATE
  - _Py_ANNOTATE_UNPROTECTED_READ
  - _Py_ANNOTATE_BENIGN_RACE_STATIC
  - _Py_ANNOTATE_UNPROTECTED_READ
  source_file: /src/Python-3.8.3/Include/dynamic_annotations.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DYNAMIC_ANNOTATIONS_ENABLED
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/dynamic_annotations.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/namespaceobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/enumobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyArg_NoKeywords
  - _PyArg_NoPositional
  - _PyArg_CheckPositional
  - _PyArg_UnpackKeywords
  - PyModule_AddIntMacro
  - PyModule_AddStringMacro
  - PyModule_Create
  - PyModule_Create
  - PyModule_FromDefAndSpec
  - PyModule_FromDefAndSpec
  source_file: /src/Python-3.8.3/Include/modsupport.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyArg_Parse
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_Parse_SizeT
    - item_type: preproc_def
      name: PyArg_ParseTuple
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_ParseTuple_SizeT
    - item_type: preproc_def
      name: PyArg_ParseTupleAndKeywords
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_ParseTupleAndKeywords_SizeT
    - item_type: preproc_def
      name: PyArg_VaParse
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_VaParse_SizeT
    - item_type: preproc_def
      name: PyArg_VaParseTupleAndKeywords
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_VaParseTupleAndKeywords_SizeT
    - item_type: preproc_def
      name: Py_BuildValue
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _Py_BuildValue_SizeT
    - item_type: preproc_def
      name: Py_VaBuildValue
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _Py_VaBuildValue_SizeT
    - item_type: preproc_def
      name: _Py_VaBuildStack
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _Py_VaBuildStack_SizeT
    - item_type: preproc_def
      name: _PyArg_ParseTupleAndKeywordsFast
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_ParseTupleAndKeywordsFast_SizeT
    - item_type: preproc_def
      name: _PyArg_ParseStack
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_ParseStack_SizeT
    - item_type: preproc_def
      name: _PyArg_ParseStackAndKeywords
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_ParseStackAndKeywords_SizeT
    - item_type: preproc_def
      name: _PyArg_VaParseTupleAndKeywordsFast
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: _PyArg_VaParseTupleAndKeywordsFast_SizeT
    - item_type: preproc_def
      name: Py_CLEANUP_SUPPORTED
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: PYTHON_API_VERSION
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: '1013'
    - item_type: preproc_def
      name: PYTHON_API_STRING
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: '"1013"'
    - item_type: preproc_def
      name: PYTHON_ABI_VERSION
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PYTHON_ABI_STRING
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: '"3"'
    - item_type: preproc_def
      name: PyModule_Create2
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: PyModule_Create2TraceRefs
    - item_type: preproc_def
      name: PyModule_FromDefAndSpec2
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/Python-3.8.3/Include/modsupport.h
      type_or_value: PyModule_FromDefAndSpec2TraceRefs
    structs:
    - fields:
      - name: '*format'
        type: char
      - name: '* const *keywords'
        type: char
      - name: '*fname'
        type: char
      - name: '*custom_msg'
        type: char
      - name: pos
        type: int
      - name: min
        type: int
      - name: max
        type: int
      - name: '*kwtuple'
        type: PyObject
      - name: '*next'
        type: struct _PyArg_Parser
      item_type: struct
      name: _PyArg_Parser
      pos:
        line_end: 98
        line_start: 88
        source_file: /src/Python-3.8.3/Include/modsupport.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pyhash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyHASH_MULTIPLIER
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '1000003UL  '
    - item_type: preproc_def
      name: _PyHASH_BITS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '61'
    - item_type: preproc_def
      name: _PyHASH_BITS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '31'
    - item_type: preproc_def
      name: _PyHASH_MODULUS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: (((size_t)1 << _PyHASH_BITS) - 1)
    - item_type: preproc_def
      name: _PyHASH_INF
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '314159'
    - item_type: preproc_def
      name: _PyHASH_NAN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PyHASH_IMAG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: _PyHASH_MULTIPLIER
    - item_type: preproc_def
      name: Py_HASH_CUTOFF
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_HASH_EXTERNAL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '0'
    - item_type: preproc_def
      name: Py_HASH_SIPHASH24
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '1'
    - item_type: preproc_def
      name: Py_HASH_FNV
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: '2'
    - item_type: preproc_def
      name: Py_HASH_ALGORITHM
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: Py_HASH_SIPHASH24
    - item_type: preproc_def
      name: Py_HASH_ALGORITHM
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/Python-3.8.3/Include/pyhash.h
      type_or_value: Py_HASH_FNV
    structs:
    - fields:
      - name: (*const hash)(const void *, Py_ssize_t)
        type: Py_hash_t
      - name: '*name'
        type: char
      - name: hash_bits
        type: int
      - name: seed_bits
        type: int
      item_type: struct
      name: PyHash_FuncDef
      pos:
        line_end: 91
        line_start: 86
        source_file: /src/Python-3.8.3/Include/pyhash.h
    typedefs: []
    union:
    - fields:
      - name: uc[24]
        type: unsigned char
      - name: fnv
        type: "struct {\n        Py_hash_t prefix;\n        Py_hash_t suffix;\n    }"
      - name: siphash
        type: "struct {\n        uint64_t k0;\n        uint64_t k1;\n    }"
      - name: djbx33a
        type: "struct {\n        unsigned char padding[16];\n        Py_hash_t suffix;\n
          \   }"
      - name: expat
        type: "struct {\n        unsigned char padding[16];\n        Py_hash_t hashsalt;\n
          \   }"
      item_type: union
      name: _Py_HashSecret_t
      pos:
        line_end: 75
        line_start: 53
        source_file: /src/Python-3.8.3/Include/pyhash.h
- function_names:
  - PyFunction_Check
  - PyFunction_GET_CODE
  - PyFunction_GET_GLOBALS
  - PyFunction_GET_MODULE
  - PyFunction_GET_DEFAULTS
  - PyFunction_GET_KW_DEFAULTS
  - PyFunction_GET_CLOSURE
  - PyFunction_GET_ANNOTATIONS
  source_file: /src/Python-3.8.3/Include/funcobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*func_code'
        type: PyObject_HEAD
      - name: '*func_globals'
        type: PyObject
      - name: '*func_defaults'
        type: PyObject
      - name: '*func_kwdefaults'
        type: PyObject
      - name: '*func_closure'
        type: PyObject
      - name: '*func_doc'
        type: PyObject
      - name: '*func_name'
        type: PyObject
      - name: '*func_dict'
        type: PyObject
      - name: '*func_weakreflist'
        type: PyObject
      - name: '*func_module'
        type: PyObject
      - name: '*func_annotations'
        type: PyObject
      - name: '*func_qualname'
        type: PyObject
      - name: vectorcall
        type: vectorcallfunc
      item_type: struct
      name: PyFunctionObject
      pos:
        line_end: 41
        line_start: 20
        source_file: /src/Python-3.8.3/Include/funcobject.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/marshal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_MARSHAL_VERSION
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/marshal.h
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ISTERMINAL
  - ISNONTERMINAL
  - ISEOF
  source_file: /src/Python-3.8.3/Include/token.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENDMARKER
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NAME
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NUMBER
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STRING
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NEWLINE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '4'
    - item_type: preproc_def
      name: INDENT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DEDENT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '6'
    - item_type: preproc_def
      name: LPAR
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '7'
    - item_type: preproc_def
      name: RPAR
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '8'
    - item_type: preproc_def
      name: LSQB
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '9'
    - item_type: preproc_def
      name: RSQB
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '10'
    - item_type: preproc_def
      name: COLON
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '11'
    - item_type: preproc_def
      name: COMMA
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SEMI
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '13'
    - item_type: preproc_def
      name: PLUS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '14'
    - item_type: preproc_def
      name: MINUS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '15'
    - item_type: preproc_def
      name: STAR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SLASH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '17'
    - item_type: preproc_def
      name: VBAR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '18'
    - item_type: preproc_def
      name: AMPER
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '19'
    - item_type: preproc_def
      name: LESS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '20'
    - item_type: preproc_def
      name: GREATER
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '21'
    - item_type: preproc_def
      name: EQUAL
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '22'
    - item_type: preproc_def
      name: DOT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '23'
    - item_type: preproc_def
      name: PERCENT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '24'
    - item_type: preproc_def
      name: LBRACE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '25'
    - item_type: preproc_def
      name: RBRACE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '26'
    - item_type: preproc_def
      name: EQEQUAL
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '27'
    - item_type: preproc_def
      name: NOTEQUAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '28'
    - item_type: preproc_def
      name: LESSEQUAL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '29'
    - item_type: preproc_def
      name: GREATEREQUAL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '30'
    - item_type: preproc_def
      name: TILDE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '31'
    - item_type: preproc_def
      name: CIRCUMFLEX
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '32'
    - item_type: preproc_def
      name: LEFTSHIFT
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '33'
    - item_type: preproc_def
      name: RIGHTSHIFT
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '34'
    - item_type: preproc_def
      name: DOUBLESTAR
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '35'
    - item_type: preproc_def
      name: PLUSEQUAL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '36'
    - item_type: preproc_def
      name: MINEQUAL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '37'
    - item_type: preproc_def
      name: STAREQUAL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '38'
    - item_type: preproc_def
      name: SLASHEQUAL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '39'
    - item_type: preproc_def
      name: PERCENTEQUAL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '40'
    - item_type: preproc_def
      name: AMPEREQUAL
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '41'
    - item_type: preproc_def
      name: VBAREQUAL
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '42'
    - item_type: preproc_def
      name: CIRCUMFLEXEQUAL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '43'
    - item_type: preproc_def
      name: LEFTSHIFTEQUAL
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '44'
    - item_type: preproc_def
      name: RIGHTSHIFTEQUAL
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '45'
    - item_type: preproc_def
      name: DOUBLESTAREQUAL
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '46'
    - item_type: preproc_def
      name: DOUBLESLASH
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '47'
    - item_type: preproc_def
      name: DOUBLESLASHEQUAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '48'
    - item_type: preproc_def
      name: AT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '49'
    - item_type: preproc_def
      name: ATEQUAL
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '50'
    - item_type: preproc_def
      name: RARROW
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '51'
    - item_type: preproc_def
      name: ELLIPSIS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '52'
    - item_type: preproc_def
      name: COLONEQUAL
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '53'
    - item_type: preproc_def
      name: OP
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '54'
    - item_type: preproc_def
      name: AWAIT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '55'
    - item_type: preproc_def
      name: ASYNC
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '56'
    - item_type: preproc_def
      name: TYPE_IGNORE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '57'
    - item_type: preproc_def
      name: TYPE_COMMENT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '58'
    - item_type: preproc_def
      name: ERRORTOKEN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '59'
    - item_type: preproc_def
      name: N_TOKENS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '63'
    - item_type: preproc_def
      name: NT_OFFSET
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/token.h
      type_or_value: '256'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PYTIME_FROMSECONDS
  source_file: /src/Python-3.8.3/Include/pytime.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyTime_MIN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/pytime.h
      type_or_value: INT64_MIN
    - item_type: preproc_def
      name: _PyTime_MAX
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/pytime.h
      type_or_value: INT64_MAX
    structs:
    - fields:
      - name: '*implementation'
        type: char
      - name: monotonic
        type: int
      - name: adjustable
        type: int
      - name: resolution
        type: double
      item_type: struct
      name: _Py_clock_info_t
      pos:
        line_end: 188
        line_start: 183
        source_file: /src/Python-3.8.3/Include/pytime.h
    typedefs:
    - item_type: typedef
      name: _PyTime_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/Python-3.8.3/Include/pytime.h
      type: int64_t
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/typeslots.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_mp_ass_subscript
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '3'
    - item_type: preproc_def
      name: Py_mp_length
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '4'
    - item_type: preproc_def
      name: Py_mp_subscript
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '5'
    - item_type: preproc_def
      name: Py_nb_absolute
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '6'
    - item_type: preproc_def
      name: Py_nb_add
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '7'
    - item_type: preproc_def
      name: Py_nb_and
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '8'
    - item_type: preproc_def
      name: Py_nb_bool
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '9'
    - item_type: preproc_def
      name: Py_nb_divmod
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '10'
    - item_type: preproc_def
      name: Py_nb_float
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '11'
    - item_type: preproc_def
      name: Py_nb_floor_divide
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '12'
    - item_type: preproc_def
      name: Py_nb_index
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '13'
    - item_type: preproc_def
      name: Py_nb_inplace_add
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '14'
    - item_type: preproc_def
      name: Py_nb_inplace_and
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '15'
    - item_type: preproc_def
      name: Py_nb_inplace_floor_divide
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '16'
    - item_type: preproc_def
      name: Py_nb_inplace_lshift
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '17'
    - item_type: preproc_def
      name: Py_nb_inplace_multiply
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '18'
    - item_type: preproc_def
      name: Py_nb_inplace_or
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '19'
    - item_type: preproc_def
      name: Py_nb_inplace_power
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '20'
    - item_type: preproc_def
      name: Py_nb_inplace_remainder
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '21'
    - item_type: preproc_def
      name: Py_nb_inplace_rshift
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '22'
    - item_type: preproc_def
      name: Py_nb_inplace_subtract
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '23'
    - item_type: preproc_def
      name: Py_nb_inplace_true_divide
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '24'
    - item_type: preproc_def
      name: Py_nb_inplace_xor
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '25'
    - item_type: preproc_def
      name: Py_nb_int
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '26'
    - item_type: preproc_def
      name: Py_nb_invert
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '27'
    - item_type: preproc_def
      name: Py_nb_lshift
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '28'
    - item_type: preproc_def
      name: Py_nb_multiply
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '29'
    - item_type: preproc_def
      name: Py_nb_negative
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '30'
    - item_type: preproc_def
      name: Py_nb_or
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '31'
    - item_type: preproc_def
      name: Py_nb_positive
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '32'
    - item_type: preproc_def
      name: Py_nb_power
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '33'
    - item_type: preproc_def
      name: Py_nb_remainder
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '34'
    - item_type: preproc_def
      name: Py_nb_rshift
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '35'
    - item_type: preproc_def
      name: Py_nb_subtract
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '36'
    - item_type: preproc_def
      name: Py_nb_true_divide
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '37'
    - item_type: preproc_def
      name: Py_nb_xor
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '38'
    - item_type: preproc_def
      name: Py_sq_ass_item
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '39'
    - item_type: preproc_def
      name: Py_sq_concat
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '40'
    - item_type: preproc_def
      name: Py_sq_contains
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '41'
    - item_type: preproc_def
      name: Py_sq_inplace_concat
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '42'
    - item_type: preproc_def
      name: Py_sq_inplace_repeat
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '43'
    - item_type: preproc_def
      name: Py_sq_item
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '44'
    - item_type: preproc_def
      name: Py_sq_length
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '45'
    - item_type: preproc_def
      name: Py_sq_repeat
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '46'
    - item_type: preproc_def
      name: Py_tp_alloc
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '47'
    - item_type: preproc_def
      name: Py_tp_base
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '48'
    - item_type: preproc_def
      name: Py_tp_bases
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '49'
    - item_type: preproc_def
      name: Py_tp_call
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '50'
    - item_type: preproc_def
      name: Py_tp_clear
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '51'
    - item_type: preproc_def
      name: Py_tp_dealloc
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '52'
    - item_type: preproc_def
      name: Py_tp_del
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '53'
    - item_type: preproc_def
      name: Py_tp_descr_get
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '54'
    - item_type: preproc_def
      name: Py_tp_descr_set
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '55'
    - item_type: preproc_def
      name: Py_tp_doc
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '56'
    - item_type: preproc_def
      name: Py_tp_getattr
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '57'
    - item_type: preproc_def
      name: Py_tp_getattro
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '58'
    - item_type: preproc_def
      name: Py_tp_hash
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '59'
    - item_type: preproc_def
      name: Py_tp_init
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '60'
    - item_type: preproc_def
      name: Py_tp_is_gc
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '61'
    - item_type: preproc_def
      name: Py_tp_iter
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '62'
    - item_type: preproc_def
      name: Py_tp_iternext
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '63'
    - item_type: preproc_def
      name: Py_tp_methods
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '64'
    - item_type: preproc_def
      name: Py_tp_new
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '65'
    - item_type: preproc_def
      name: Py_tp_repr
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '66'
    - item_type: preproc_def
      name: Py_tp_richcompare
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '67'
    - item_type: preproc_def
      name: Py_tp_setattr
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '68'
    - item_type: preproc_def
      name: Py_tp_setattro
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '69'
    - item_type: preproc_def
      name: Py_tp_str
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '70'
    - item_type: preproc_def
      name: Py_tp_traverse
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '71'
    - item_type: preproc_def
      name: Py_tp_members
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '72'
    - item_type: preproc_def
      name: Py_tp_getset
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '73'
    - item_type: preproc_def
      name: Py_tp_free
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '74'
    - item_type: preproc_def
      name: Py_nb_matrix_multiply
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '75'
    - item_type: preproc_def
      name: Py_nb_inplace_matrix_multiply
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '76'
    - item_type: preproc_def
      name: Py_am_await
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '77'
    - item_type: preproc_def
      name: Py_am_aiter
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '78'
    - item_type: preproc_def
      name: Py_am_anext
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '79'
    - item_type: preproc_def
      name: Py_tp_finalize
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Include/typeslots.h
      type_or_value: '80'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/bltinmodule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/interpreteridobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyDoc_STRVAR_shared
  source_file: /src/Python-3.8.3/Include/bytes_methods.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyEval_CallObject
  - Py_EnterRecursiveCall
  - Py_LeaveRecursiveCall
  - _Py_MakeRecCheck
  - _Py_MakeRecCheck
  - _Py_RecursionLimitLowerWaterMark
  - _Py_MakeEndRecCheck
  source_file: /src/Python-3.8.3/Include/ceval.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: Py_ALLOW_RECURSION
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: "do { unsigned char _old = PyThreadState_GET()->recursion_critical;\\\n
        \   PyThreadState_GET()->recursion_critical = 1;"
    - item_type: preproc_def
      name: Py_END_ALLOW_RECURSION
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: "PyThreadState_GET()->recursion_critical = _old; \\\n  } while(0);"
    - item_type: preproc_def
      name: Py_BEGIN_ALLOW_THREADS
      pos:
        line_end: 208
        line_start: 205
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: "{ \\\n                        PyThreadState *_save; \\\n                        _save
        = PyEval_SaveThread();"
    - item_type: preproc_def
      name: Py_BLOCK_THREADS
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: PyEval_RestoreThread(_save);
    - item_type: preproc_def
      name: Py_UNBLOCK_THREADS
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: _save = PyEval_SaveThread();
    - item_type: preproc_def
      name: Py_END_ALLOW_THREADS
      pos:
        line_end: 212
        line_start: 210
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: "PyEval_RestoreThread(_save); \\\n                 }"
    - item_type: preproc_def
      name: FVC_MASK
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: FVC_NONE
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: FVC_STR
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: FVC_REPR
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: FVC_ASCII
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x3'
    - item_type: preproc_def
      name: FVS_MASK
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: FVS_HAVE_SPEC
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/Python-3.8.3/Include/ceval.h
      type_or_value: '0x4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - testbit
  - BIT2BYTE
  - BIT2SHIFT
  - BIT2MASK
  source_file: /src/Python-3.8.3/Include/bitset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BYTE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/Include/bitset.h
      type_or_value: char
    - item_type: preproc_def
      name: BITSPERBYTE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/Include/bitset.h
      type_or_value: (8*sizeof(BYTE))
    structs: []
    typedefs:
    - item_type: typedef
      name: '*bitset'
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/Python-3.8.3/Include/bitset.h
      type: BYTE
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/parsetok.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyPARSE_YIELD_IS_KEYWORD
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PyPARSE_DONT_IMPLY_DEDENT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: PyPARSE_WITH_IS_KEYWORD
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: PyPARSE_PRINT_IS_FUNCTION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: PyPARSE_UNICODE_LITERALS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: PyPARSE_IGNORE_COOKIE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: PyPARSE_BARRY_AS_BDFL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: PyPARSE_TYPE_COMMENTS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: PyPARSE_ASYNC_HACKS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/Python-3.8.3/Include/parsetok.h
      type_or_value: '0x0080'
    structs:
    - fields:
      - name: error
        type: int
      - name: '*filename'
        type: PyObject
      - name: lineno
        type: int
      - name: offset
        type: int
      - name: '*text'
        type: char
      - name: token
        type: int
      - name: expected
        type: int
      item_type: struct
      name: perrdetail
      pos:
        line_end: 20
        line_start: 12
        source_file: /src/Python-3.8.3/Include/parsetok.h
    typedefs: []
    union: []
- function_names:
  - PyThreadState_GET
  source_file: /src/Python-3.8.3/Include/pystate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CO_EXTRA_USERS
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/Include/pystate.h
      type_or_value: '255'
    structs: []
    typedefs:
    - item_type: typedef
      name: PyThreadState
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/Python-3.8.3/Include/pystate.h
      type: _ts
    - item_type: typedef
      name: PyInterpreterState
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/Python-3.8.3/Include/pystate.h
      type: _is
    union: []
- function_names:
  - PyContext_CheckExact
  - PyContextVar_CheckExact
  - PyContextToken_CheckExact
  source_file: /src/Python-3.8.3/Include/context.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: PyContext
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/Python-3.8.3/Include/context.h
      type: _pycontextobject
    - item_type: typedef
      name: PyContextVar
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Include/context.h
      type: _pycontextvarobject
    - item_type: typedef
      name: PyContextToken
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/Python-3.8.3/Include/context.h
      type: _pycontexttokenobject
    union: []
- function_names:
  - _Py_OPCODE
  - _Py_OPARG
  - _Py_OPCODE
  - _Py_OPARG
  - PyCode_Check
  - PyCode_GetNumFree
  source_file: /src/Python-3.8.3/Include/code.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CO_OPTIMIZED
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: CO_NEWLOCALS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: CO_VARARGS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: CO_VARKEYWORDS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: CO_NESTED
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: CO_GENERATOR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: CO_NOFREE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: CO_COROUTINE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: CO_ITERABLE_COROUTINE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: CO_ASYNC_GENERATOR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: CO_FUTURE_DIVISION
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: CO_FUTURE_ABSOLUTE_IMPORT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x40000 '
    - item_type: preproc_def
      name: CO_FUTURE_WITH_STATEMENT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: CO_FUTURE_PRINT_FUNCTION
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: CO_FUTURE_UNICODE_LITERALS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x200000'
    - item_type: preproc_def
      name: CO_FUTURE_BARRY_AS_BDFL
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x400000'
    - item_type: preproc_def
      name: CO_FUTURE_GENERATOR_STOP
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x800000'
    - item_type: preproc_def
      name: CO_FUTURE_ANNOTATIONS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '0x1000000'
    - item_type: preproc_def
      name: CO_CELL_NOT_AN_ARG
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: CO_MAXBLOCKS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/Python-3.8.3/Include/code.h
      type_or_value: '20 '
    structs:
    - fields:
      - name: co_argcount
        type: PyObject_HEAD
      - name: co_posonlyargcount
        type: int
      - name: co_kwonlyargcount
        type: int
      - name: co_nlocals
        type: int
      - name: co_stacksize
        type: int
      - name: co_flags
        type: int
      - name: co_firstlineno
        type: int
      - name: '*co_code'
        type: PyObject
      - name: '*co_consts'
        type: PyObject
      - name: '*co_names'
        type: PyObject
      - name: '*co_varnames'
        type: PyObject
      - name: '*co_freevars'
        type: PyObject
      - name: '*co_cellvars'
        type: PyObject
      - name: '*co_cell2arg'
        type: Py_ssize_t
      - name: '*co_filename'
        type: PyObject
      - name: '*co_name'
        type: PyObject
      - name: '*co_lnotab'
        type: PyObject
      - name: '*co_zombieframe'
        type: void
      - name: '*co_weakreflist'
        type: PyObject
      - name: '*co_extra'
        type: void
      - name: '*co_opcache_map'
        type: unsigned char
      - name: '*co_opcache'
        type: _PyOpcache
      - name: co_opcache_flag
        type: int
      - name: co_opcache_size
        type: unsigned char
      item_type: struct
      name: PyCodeObject
      pos:
        line_end: 68
        line_start: 22
        source_file: /src/Python-3.8.3/Include/code.h
    - fields:
      - name: ap_lower
        type: int
      - name: ap_upper
        type: int
      item_type: struct
      name: _addr_pair
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/Python-3.8.3/Include/code.h
    typedefs:
    - item_type: typedef
      name: _Py_CODEUNIT
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/Python-3.8.3/Include/code.h
      type: uint16_t
    - item_type: typedef
      name: _PyOpcache
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/Python-3.8.3/Include/code.h
      type: _PyOpcache
    union: []
- function_names:
  - PyList_Check
  - PyList_CheckExact
  - PyList_GET_ITEM
  - PyList_SET_ITEM
  - PyList_GET_SIZE
  - _PyList_ITEMS
  source_file: /src/Python-3.8.3/Include/listobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '**ob_item'
        type: PyObject_VAR_HEAD
      - name: allocated
        type: Py_ssize_t
      item_type: struct
      name: PyListObject
      pos:
        line_end: 39
        line_start: 22
        source_file: /src/Python-3.8.3/Include/listobject.h
    typedefs: []
    union: []
- function_names:
  - PyPickleBuffer_Check
  source_file: /src/Python-3.8.3/Include/picklebufobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyBytes_Check
  - PyBytes_CheckExact
  - PyBytes_AS_STRING
  - PyBytes_GET_SIZE
  source_file: /src/Python-3.8.3/Include/bytesobject.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: F_LJUST
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/Python-3.8.3/Include/bytesobject.h
      type_or_value: (1<<0)
    - item_type: preproc_def
      name: F_SIGN
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/Python-3.8.3/Include/bytesobject.h
      type_or_value: (1<<1)
    - item_type: preproc_def
      name: F_BLANK
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/Python-3.8.3/Include/bytesobject.h
      type_or_value: (1<<2)
    - item_type: preproc_def
      name: F_ALT
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/Python-3.8.3/Include/bytesobject.h
      type_or_value: (1<<3)
    - item_type: preproc_def
      name: F_ZERO
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/Python-3.8.3/Include/bytesobject.h
      type_or_value: (1<<4)
    structs:
    - fields:
      - name: Py_hash_t
        type: PyObject_VAR_HEAD
      - name: ob_sval[1]
        type: char
      item_type: struct
      name: PyBytesObject
      pos:
        line_end: 40
        line_start: 30
        source_file: /src/Python-3.8.3/Include/bytesobject.h
    - fields:
      - name: '*buffer'
        type: PyObject
      - name: allocated
        type: Py_ssize_t
      - name: min_size
        type: Py_ssize_t
      - name: use_bytearray
        type: int
      - name: overallocate
        type: int
      - name: use_small_buffer
        type: int
      - name: small_buffer[512]
        type: char
      item_type: struct
      name: _PyBytesWriter
      pos:
        line_end: 164
        line_start: 143
        source_file: /src/Python-3.8.3/Include/bytesobject.h
    typedefs: []
    union: []
- function_names:
  - PyDict_Check
  - PyDict_CheckExact
  - PyDictKeys_Check
  - PyDictValues_Check
  - PyDictItems_Check
  - PyDictViewSet_Check
  source_file: /src/Python-3.8.3/Include/dictobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyODict_Check
  - PyODict_CheckExact
  - PyODict_SIZE
  - PyODict_GetItem
  - PyODict_GetItemWithError
  - PyODict_Contains
  - PyODict_Size
  - PyODict_GetItemString
  source_file: /src/Python-3.8.3/Include/odictobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: PyODictObject
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/Python-3.8.3/Include/odictobject.h
      type: _odictobject
    union: []
- function_names:
  - _PyErr_OCCURRED
  - _PyErr_OCCURRED
  - PyExceptionClass_Check
  - PyExceptionInstance_Check
  - PyExceptionInstance_Class
  - PyErr_BadInternalCall
  source_file: /src/Python-3.8.3/Include/pyerrors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: snprintf
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/Include/pyerrors.h
      type_or_value: _snprintf
    - item_type: preproc_def
      name: vsnprintf
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/Python-3.8.3/Include/pyerrors.h
      type_or_value: _vsnprintf
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/pylifecycle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*PyOS_sighandler_t)(int)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/Python-3.8.3/Include/pylifecycle.h
      type: void
    union: []
- function_names:
  - PyFrame_Check
  source_file: /src/Python-3.8.3/Include/frameobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: b_type
        type: int
      - name: b_handler
        type: int
      - name: b_level
        type: int
      item_type: struct
      name: PyTryBlock
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/Python-3.8.3/Include/frameobject.h
    - fields:
      - name: struct
        type: PyObject_VAR_HEAD
      - name: '*f_back'
        type: _frame
      - name: '*f_code'
        type: PyCodeObject
      - name: '*f_builtins'
        type: PyObject
      - name: '*f_globals'
        type: PyObject
      - name: '*f_locals'
        type: PyObject
      - name: '**f_valuestack'
        type: PyObject
      - name: '**f_stacktop'
        type: PyObject
      - name: '*f_trace'
        type: PyObject
      - name: f_trace_lines
        type: char
      - name: f_trace_opcodes
        type: char
      - name: '*f_gen'
        type: PyObject
      - name: f_lasti
        type: int
      - name: f_lineno
        type: int
      - name: f_iblock
        type: int
      - name: f_executing
        type: char
      - name: f_blockstack[CO_MAXBLOCKS]
        type: PyTryBlock
      - name: '*f_localsplus[1]'
        type: PyObject
      item_type: struct
      name: _frame
      pos:
        line_end: 45
        line_start: 15
        source_file: /src/Python-3.8.3/Include/frameobject.h
    typedefs: []
    union: []
- function_names:
  - Py_UNICODE_ISSPACE
  - Py_UNICODE_ISLOWER
  - Py_UNICODE_ISUPPER
  - Py_UNICODE_ISTITLE
  - Py_UNICODE_ISLINEBREAK
  - Py_UNICODE_TOLOWER
  - Py_UNICODE_TOUPPER
  - Py_UNICODE_TOTITLE
  - Py_UNICODE_ISDECIMAL
  - Py_UNICODE_ISDIGIT
  - Py_UNICODE_ISNUMERIC
  - Py_UNICODE_ISPRINTABLE
  - Py_UNICODE_TODECIMAL
  - Py_UNICODE_TODIGIT
  - Py_UNICODE_TONUMERIC
  - Py_UNICODE_ISALPHA
  - Py_UNICODE_ISALNUM
  - Py_UNICODE_COPY
  - Py_UNICODE_FILL
  - Py_UNICODE_IS_SURROGATE
  - Py_UNICODE_IS_HIGH_SURROGATE
  - Py_UNICODE_IS_LOW_SURROGATE
  - Py_UNICODE_JOIN_SURROGATES
  - Py_UNICODE_HIGH_SURROGATE
  - Py_UNICODE_LOW_SURROGATE
  - Py_UNICODE_MATCH
  - PyUnicode_WSTR_LENGTH
  - PyUnicode_GET_SIZE
  - PyUnicode_GET_DATA_SIZE
  - PyUnicode_AS_UNICODE
  - PyUnicode_AS_DATA
  - PyUnicode_IS_ASCII
  - PyUnicode_IS_COMPACT
  - PyUnicode_IS_COMPACT_ASCII
  - PyUnicode_1BYTE_DATA
  - PyUnicode_2BYTE_DATA
  - PyUnicode_4BYTE_DATA
  - PyUnicode_KIND
  - _PyUnicode_COMPACT_DATA
  - _PyUnicode_NONCOMPACT_DATA
  - PyUnicode_DATA
  - PyUnicode_WRITE
  - PyUnicode_READ
  - PyUnicode_READ_CHAR
  - PyUnicode_GET_LENGTH
  - PyUnicode_IS_READY
  - PyUnicode_READY
  - PyUnicode_MAX_CHAR_VALUE
  - _PyUnicodeWriter_Prepare
  - _PyUnicodeWriter_PrepareKind
  source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
  types:
    enum:
    - enumerators:
      - name: PyUnicode_WCHAR_KIND
        value: '0'
      - name: PyUnicode_4BYTE_KIND
        value: '4'
      - name: PyUnicode_2BYTE_KIND
        value: '2'
      - name: PyUnicode_1BYTE_KIND
        value: '1'
      item_type: enum
      name: PyUnicode_Kind
      pos:
        line_end: 328
        line_start: 319
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    preproc_defs:
    - item_type: preproc_def
      name: PY_UNICODE_TYPE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: wchar_t
    - item_type: preproc_def
      name: SSTATE_NOT_INTERNED
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSTATE_INTERNED_MORTAL
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SSTATE_INTERNED_IMMORTAL
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _PyUnicode_AsStringAndSize
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: PyUnicode_AsUTF8AndSize
    - item_type: preproc_def
      name: _PyUnicode_AsString
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type_or_value: PyUnicode_AsUTF8
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: hash
        type: Py_hash_t
      - name: state
        type: "struct {\n        /*\n           SSTATE_NOT_INTERNED (0)\n           SSTATE_INTERNED_MORTAL
          (1)\n           SSTATE_INTERNED_IMMORTAL (2)\n\n           If interned !=
          SSTATE_NOT_INTERNED, the two references from the\n           dictionary
          to this object are *not* counted in ob_refcnt.\n         */\n        unsigned
          int interned:2;\n        /* Character size:\n\n           - PyUnicode_WCHAR_KIND
          (0):\n\n             * character type = wchar_t (16 or 32 bits, depending
          on the\n               platform)\n\n           - PyUnicode_1BYTE_KIND (1):\n\n
          \            * character type = Py_UCS1 (8 bits, unsigned)\n             *
          all characters are in the range U+0000-U+00FF (latin1)\n             * if
          ascii is set, all characters are in the range U+0000-U+007F\n               (ASCII),
          otherwise at least one character is in the range\n               U+0080-U+00FF\n\n
          \          - PyUnicode_2BYTE_KIND (2):\n\n             * character type
          = Py_UCS2 (16 bits, unsigned)\n             * all characters are in the
          range U+0000-U+FFFF (BMP)\n             * at least one character is in the
          range U+0100-U+FFFF\n\n           - PyUnicode_4BYTE_KIND (4):\n\n             *
          character type = Py_UCS4 (32 bits, unsigned)\n             * all characters
          are in the range U+0000-U+10FFFF\n             * at least one character
          is in the range U+10000-U+10FFFF\n         */\n        unsigned int kind:3;\n
          \       /* Compact is with respect to the allocation scheme. Compact unicode\n
          \          objects only require one memory block while non-compact objects
          use\n           one block for the PyUnicodeObject struct and another for
          its data\n           buffer. */\n        unsigned int compact:1;\n        /*
          The string only contains characters in the range U+0000-U+007F (ASCII)\n
          \          and the kind is PyUnicode_1BYTE_KIND. If ascii is set and compact
          is\n           set, use the PyASCIIObject structure. */\n        unsigned
          int ascii:1;\n        /* The ready flag indicates whether the object layout
          is initialized\n           completely. This means that this is either a
          compact object, or\n           the data pointer is filled out. The bit is
          redundant, and helps\n           to minimize the test in PyUnicode_IS_READY().
          */\n        unsigned int ready:1;\n        /* Padding to ensure that PyUnicode_DATA()
          is always aligned to\n           4 bytes (see issue #19537 on m68k). */\n
          \       unsigned int :24;\n    }"
      - name: '*wstr'
        type: wchar_t
      item_type: struct
      name: PyASCIIObject
      pos:
        line_end: 221
        line_start: 87
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    - fields:
      - name: _base
        type: PyASCIIObject
      - name: utf8_length
        type: Py_ssize_t
      - name: '*utf8'
        type: char
      - name: wstr_length
        type: Py_ssize_t
      item_type: struct
      name: PyCompactUnicodeObject
      pos:
        line_end: 233
        line_start: 226
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    - fields:
      - name: _base
        type: PyCompactUnicodeObject
      - name: data
        type: "union {\n        void *any;\n        Py_UCS1 *latin1;\n        Py_UCS2
          *ucs2;\n        Py_UCS4 *ucs4;\n    }"
      item_type: struct
      name: PyUnicodeObject
      pos:
        line_end: 246
        line_start: 238
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    - fields:
      - name: '*buffer'
        type: PyObject
      - name: '*data'
        type: void
      - name: kind
        type: enum PyUnicode_Kind
      - name: maxchar
        type: Py_UCS4
      - name: size
        type: Py_ssize_t
      - name: pos
        type: Py_ssize_t
      - name: min_length
        type: Py_ssize_t
      - name: min_char
        type: Py_UCS4
      - name: overallocate
        type: unsigned char
      - name: readonly
        type: unsigned char
      item_type: struct
      name: _PyUnicodeWriter
      pos:
        line_end: 624
        line_start: 604
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
    typedefs:
    - item_type: typedef
      name: Py_UNICODE
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Include/cpython/unicodeobject.h
      type: wchar_t
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/pymem.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx'
        type: void
      - name: '* (*malloc) (void *ctx, size_t size)'
        type: void
      - name: '* (*calloc) (void *ctx, size_t nelem, size_t elsize)'
        type: void
      - name: '* (*realloc) (void *ctx, void *ptr, size_t new_size)'
        type: void
      - name: (*free) (void *ctx, void *ptr)
        type: void
      item_type: struct
      name: PyMemAllocatorEx
      pos:
        line_end: 67
        line_start: 52
        source_file: /src/Python-3.8.3/Include/cpython/pymem.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/fileobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '* (*Py_OpenCodeHookFunction)(PyObject *, void *)'
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/Python-3.8.3/Include/cpython/fileobject.h
      type: PyObject
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/initconfig.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: _type
        type: "enum {\n        _PyStatus_TYPE_OK=0,\n        _PyStatus_TYPE_ERROR=1,\n
          \       _PyStatus_TYPE_EXIT=2\n    }"
      - name: '*func'
        type: char
      - name: '*err_msg'
        type: char
      - name: exitcode
        type: int
      item_type: struct
      name: PyStatus
      pos:
        line_end: 18
        line_start: 9
        source_file: /src/Python-3.8.3/Include/cpython/initconfig.h
    - fields:
      - name: length
        type: Py_ssize_t
      - name: '**items'
        type: wchar_t
      item_type: struct
      name: PyWideStringList
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/Python-3.8.3/Include/cpython/initconfig.h
    - fields:
      - name: _config_init
        type: int
      - name: parse_argv
        type: int
      - name: isolated
        type: int
      - name: use_environment
        type: int
      - name: configure_locale
        type: int
      - name: coerce_c_locale
        type: int
      - name: coerce_c_locale_warn
        type: int
      - name: utf8_mode
        type: int
      - name: dev_mode
        type: int
      - name: allocator
        type: int
      item_type: struct
      name: PyPreConfig
      pos:
        line_end: 120
        line_start: 46
        source_file: /src/Python-3.8.3/Include/cpython/initconfig.h
    - fields:
      - name: _config_init
        type: int
      - name: isolated
        type: int
      - name: use_environment
        type: int
      - name: dev_mode
        type: int
      - name: install_signal_handlers
        type: int
      - name: use_hash_seed
        type: int
      - name: hash_seed
        type: unsigned long
      - name: faulthandler
        type: int
      - name: tracemalloc
        type: int
      - name: import_time
        type: int
      - name: show_ref_count
        type: int
      - name: show_alloc_count
        type: int
      - name: dump_refs
        type: int
      - name: malloc_stats
        type: int
      - name: '*filesystem_encoding'
        type: wchar_t
      - name: '*filesystem_errors'
        type: wchar_t
      - name: '*pycache_prefix'
        type: wchar_t
      - name: parse_argv
        type: int
      - name: argv
        type: PyWideStringList
      - name: '*program_name'
        type: wchar_t
      - name: xoptions
        type: PyWideStringList
      - name: warnoptions
        type: PyWideStringList
      - name: site_import
        type: int
      - name: bytes_warning
        type: int
      - name: inspect
        type: int
      - name: interactive
        type: int
      - name: optimization_level
        type: int
      - name: parser_debug
        type: int
      - name: write_bytecode
        type: int
      - name: verbose
        type: int
      - name: quiet
        type: int
      - name: user_site_directory
        type: int
      - name: configure_c_stdio
        type: int
      - name: buffered_stdio
        type: int
      - name: '*stdio_encoding'
        type: wchar_t
      - name: '*stdio_errors'
        type: wchar_t
      - name: '*check_hash_pycs_mode'
        type: wchar_t
      - name: pathconfig_warnings
        type: int
      - name: '*pythonpath_env'
        type: wchar_t
      - name: '*home'
        type: wchar_t
      - name: module_search_paths_set
        type: int
      - name: module_search_paths
        type: PyWideStringList
      - name: '*executable'
        type: wchar_t
      - name: '*base_executable'
        type: wchar_t
      - name: '*prefix'
        type: wchar_t
      - name: '*base_prefix'
        type: wchar_t
      - name: '*exec_prefix'
        type: wchar_t
      - name: '*base_exec_prefix'
        type: wchar_t
      - name: skip_source_first_line
        type: int
      - name: '*run_command'
        type: wchar_t
      - name: '*run_module'
        type: wchar_t
      - name: '*run_filename'
        type: wchar_t
      - name: _install_importlib
        type: int
      - name: _init_main
        type: int
      item_type: struct
      name: PyConfig
      pos:
        line_end: 404
        line_start: 128
        source_file: /src/Python-3.8.3/Include/cpython/initconfig.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/traceback.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: struct
        type: PyObject_HEAD
      - name: '*tb_next'
        type: _traceback
      - name: '*tb_frame'
        type: struct _frame
      - name: tb_lasti
        type: int
      - name: tb_lineno
        type: int
      item_type: struct
      name: _traceback
      pos:
        line_end: 14
        line_start: 8
        source_file: /src/Python-3.8.3/Include/cpython/traceback.h
    typedefs: []
    union: []
- function_names:
  - _PyTuple_CAST
  - PyTuple_GET_SIZE
  - PyTuple_GET_ITEM
  - PyTuple_SET_ITEM
  source_file: /src/Python-3.8.3/Include/cpython/tupleobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ob_item[1]'
        type: PyObject_VAR_HEAD
      item_type: struct
      name: PyTupleObject
      pos:
        line_end: 14
        line_start: 8
        source_file: /src/Python-3.8.3/Include/cpython/tupleobject.h
    typedefs: []
    union: []
- function_names:
  - _Py_static_string_init
  - _Py_static_string
  - _Py_IDENTIFIER
  - PyHeapType_GET_MEMBERS
  - PyType_HasFeature
  - _Py_Dealloc_inline
  - _Py_Dealloc
  - Py_SETREF
  - Py_XSETREF
  - _PyObject_ASSERT_FROM
  - _PyObject_ASSERT_FROM
  - _PyObject_ASSERT_WITH_MSG
  - _PyObject_ASSERT
  - _PyObject_ASSERT_FAILED_MSG
  source_file: /src/Python-3.8.3/Include/cpython/object.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyBUF_MAX_NDIM
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PyBUF_SIMPLE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PyBUF_WRITABLE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PyBUF_WRITEABLE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: PyBUF_WRITABLE
    - item_type: preproc_def
      name: PyBUF_FORMAT
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: PyBUF_ND
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: PyBUF_STRIDES
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (0x0010 | PyBUF_ND)
    - item_type: preproc_def
      name: PyBUF_C_CONTIGUOUS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (0x0020 | PyBUF_STRIDES)
    - item_type: preproc_def
      name: PyBUF_F_CONTIGUOUS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (0x0040 | PyBUF_STRIDES)
    - item_type: preproc_def
      name: PyBUF_ANY_CONTIGUOUS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (0x0080 | PyBUF_STRIDES)
    - item_type: preproc_def
      name: PyBUF_INDIRECT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (0x0100 | PyBUF_STRIDES)
    - item_type: preproc_def
      name: PyBUF_CONTIG
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_ND | PyBUF_WRITABLE)
    - item_type: preproc_def
      name: PyBUF_CONTIG_RO
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_ND)
    - item_type: preproc_def
      name: PyBUF_STRIDED
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_STRIDES | PyBUF_WRITABLE)
    - item_type: preproc_def
      name: PyBUF_STRIDED_RO
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_STRIDES)
    - item_type: preproc_def
      name: PyBUF_RECORDS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_STRIDES | PyBUF_WRITABLE | PyBUF_FORMAT)
    - item_type: preproc_def
      name: PyBUF_RECORDS_RO
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_STRIDES | PyBUF_FORMAT)
    - item_type: preproc_def
      name: PyBUF_FULL
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_INDIRECT | PyBUF_WRITABLE | PyBUF_FORMAT)
    - item_type: preproc_def
      name: PyBUF_FULL_RO
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: (PyBUF_INDIRECT | PyBUF_FORMAT)
    - item_type: preproc_def
      name: PyBUF_READ
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: PyBUF_WRITE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type_or_value: '0x200'
    structs:
    - fields:
      - name: '*next'
        type: struct _Py_Identifier
      - name: '* string'
        type: char
      - name: '*object'
        type: PyObject
      item_type: struct
      name: _Py_Identifier
      pos:
        line_end: 32
        line_start: 28
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: '*buf'
        type: void
      - name: '*obj'
        type: PyObject
      - name: len
        type: Py_ssize_t
      - name: itemsize
        type: Py_ssize_t
      - name: readonly
        type: int
      - name: ndim
        type: int
      - name: '*format'
        type: char
      - name: '*shape'
        type: Py_ssize_t
      - name: '*strides'
        type: Py_ssize_t
      - name: '*suboffsets'
        type: Py_ssize_t
      - name: '*internal'
        type: void
      item_type: struct
      name: bufferinfo
      pos:
        line_end: 52
        line_start: 39
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: nb_add
        type: binaryfunc
      - name: nb_subtract
        type: binaryfunc
      - name: nb_multiply
        type: binaryfunc
      - name: nb_remainder
        type: binaryfunc
      - name: nb_divmod
        type: binaryfunc
      - name: nb_power
        type: ternaryfunc
      - name: nb_negative
        type: unaryfunc
      - name: nb_positive
        type: unaryfunc
      - name: nb_absolute
        type: unaryfunc
      - name: nb_bool
        type: inquiry
      - name: nb_invert
        type: unaryfunc
      - name: nb_lshift
        type: binaryfunc
      - name: nb_rshift
        type: binaryfunc
      - name: nb_and
        type: binaryfunc
      - name: nb_xor
        type: binaryfunc
      - name: nb_or
        type: binaryfunc
      - name: nb_int
        type: unaryfunc
      - name: '*nb_reserved'
        type: void
      - name: nb_float
        type: unaryfunc
      - name: nb_inplace_add
        type: binaryfunc
      - name: nb_inplace_subtract
        type: binaryfunc
      - name: nb_inplace_multiply
        type: binaryfunc
      - name: nb_inplace_remainder
        type: binaryfunc
      - name: nb_inplace_power
        type: ternaryfunc
      - name: nb_inplace_lshift
        type: binaryfunc
      - name: nb_inplace_rshift
        type: binaryfunc
      - name: nb_inplace_and
        type: binaryfunc
      - name: nb_inplace_xor
        type: binaryfunc
      - name: nb_inplace_or
        type: binaryfunc
      - name: nb_floor_divide
        type: binaryfunc
      - name: nb_true_divide
        type: binaryfunc
      - name: nb_inplace_floor_divide
        type: binaryfunc
      - name: nb_inplace_true_divide
        type: binaryfunc
      - name: nb_index
        type: unaryfunc
      - name: nb_matrix_multiply
        type: binaryfunc
      - name: nb_inplace_matrix_multiply
        type: binaryfunc
      item_type: struct
      name: PyNumberMethods
      pos:
        line_end: 139
        line_start: 94
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: sq_length
        type: lenfunc
      - name: sq_concat
        type: binaryfunc
      - name: sq_repeat
        type: ssizeargfunc
      - name: sq_item
        type: ssizeargfunc
      - name: '*was_sq_slice'
        type: void
      - name: sq_ass_item
        type: ssizeobjargproc
      - name: '*was_sq_ass_slice'
        type: void
      - name: sq_contains
        type: objobjproc
      - name: sq_inplace_concat
        type: binaryfunc
      - name: sq_inplace_repeat
        type: ssizeargfunc
      item_type: struct
      name: PySequenceMethods
      pos:
        line_end: 153
        line_start: 141
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: mp_length
        type: lenfunc
      - name: mp_subscript
        type: binaryfunc
      - name: mp_ass_subscript
        type: objobjargproc
      item_type: struct
      name: PyMappingMethods
      pos:
        line_end: 159
        line_start: 155
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: am_await
        type: unaryfunc
      - name: am_aiter
        type: unaryfunc
      - name: am_anext
        type: unaryfunc
      item_type: struct
      name: PyAsyncMethods
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: bf_getbuffer
        type: getbufferproc
      - name: bf_releasebuffer
        type: releasebufferproc
      item_type: struct
      name: PyBufferProcs
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: '*tp_name'
        type: PyObject_VAR_HEAD
      - name: tp_basicsize
        type: Py_ssize_t
      - name: tp_dealloc
        type: destructor
      - name: tp_vectorcall_offset
        type: Py_ssize_t
      - name: tp_getattr
        type: getattrfunc
      - name: tp_setattr
        type: setattrfunc
      - name: '*tp_as_async'
        type: PyAsyncMethods
      - name: tp_repr
        type: reprfunc
      - name: '*tp_as_number'
        type: PyNumberMethods
      - name: '*tp_as_sequence'
        type: PySequenceMethods
      - name: '*tp_as_mapping'
        type: PyMappingMethods
      - name: tp_hash
        type: hashfunc
      - name: tp_call
        type: ternaryfunc
      - name: tp_str
        type: reprfunc
      - name: tp_getattro
        type: getattrofunc
      - name: tp_setattro
        type: setattrofunc
      - name: '*tp_as_buffer'
        type: PyBufferProcs
      - name: tp_flags
        type: unsigned long
      - name: '*tp_doc'
        type: char
      - name: tp_traverse
        type: traverseproc
      - name: tp_clear
        type: inquiry
      - name: tp_richcompare
        type: richcmpfunc
      - name: tp_weaklistoffset
        type: Py_ssize_t
      - name: tp_iter
        type: getiterfunc
      - name: tp_iternext
        type: iternextfunc
      - name: '*tp_methods'
        type: struct PyMethodDef
      - name: '*tp_members'
        type: struct PyMemberDef
      - name: '*tp_getset'
        type: struct PyGetSetDef
      - name: '*tp_base'
        type: struct _typeobject
      - name: '*tp_dict'
        type: PyObject
      - name: tp_descr_get
        type: descrgetfunc
      - name: tp_descr_set
        type: descrsetfunc
      - name: tp_dictoffset
        type: Py_ssize_t
      - name: tp_init
        type: initproc
      - name: tp_alloc
        type: allocfunc
      - name: tp_new
        type: newfunc
      - name: tp_free
        type: freefunc
      - name: tp_is_gc
        type: inquiry
      - name: '*tp_bases'
        type: PyObject
      - name: '*tp_mro'
        type: PyObject
      - name: '*tp_cache'
        type: PyObject
      - name: '*tp_subclasses'
        type: PyObject
      - name: '*tp_weaklist'
        type: PyObject
      - name: tp_del
        type: destructor
      - name: tp_version_tag
        type: unsigned int
      - name: tp_finalize
        type: destructor
      - name: tp_vectorcall
        type: vectorcallfunc
      - name: (3.8) int (*tp_print)(PyObject *, FILE *, int)
        type: Py_DEPRECATED
      item_type: struct
      name: _typeobject
      pos:
        line_end: 269
        line_start: 176
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    - fields:
      - name: ht_type
        type: PyTypeObject
      - name: as_async
        type: PyAsyncMethods
      - name: as_number
        type: PyNumberMethods
      - name: as_mapping
        type: PyMappingMethods
      - name: as_sequence
        type: PySequenceMethods
      - name: as_buffer
        type: PyBufferProcs
      - name: '*ht_name'
        type: PyObject
      - name: '*ht_cached_keys'
        type: struct _dictkeysobject
      item_type: struct
      name: _heaptypeobject
      pos:
        line_end: 288
        line_start: 272
        source_file: /src/Python-3.8.3/Include/cpython/object.h
    typedefs:
    - item_type: typedef
      name: (*getbufferproc)(PyObject *, Py_buffer *, int)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type: int
    - item_type: typedef
      name: (*releasebufferproc)(PyObject *, Py_buffer *)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type: void
    - item_type: typedef
      name: "*(*vectorcallfunc)(PyObject *callable, PyObject *const *args,\n                                    size_t
        nargsf, PyObject *kwnames)"
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type: PyObject
    - item_type: typedef
      name: printfunc
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/Python-3.8.3/Include/cpython/object.h
      type: Py_ssize_t
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/sysmodule.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (*Py_AuditHookFunction)(const char *, PyObject *, void *)
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/Python-3.8.3/Include/cpython/sysmodule.h
      type: int
    union: []
- function_names:
  - PyObject_IS_GC
  - _Py_AS_GC
  - _PyObject_GC_IS_TRACKED
  - _PyObject_GC_MAY_BE_TRACKED
  - _PyGCHead_NEXT
  - _PyGCHead_SET_NEXT
  - _PyGCHead_PREV
  - _PyGCHead_SET_PREV
  - _PyGCHead_FINALIZED
  - _PyGCHead_SET_FINALIZED
  - _PyGC_FINALIZED
  - _PyGC_SET_FINALIZED
  - PyType_SUPPORTS_WEAKREFS
  - PyObject_GET_WEAKREFS_LISTPTR
  source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyGC_PREV_MASK_FINALIZED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
      type_or_value: (1)
    - item_type: preproc_def
      name: _PyGC_PREV_MASK_COLLECTING
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
      type_or_value: (2)
    - item_type: preproc_def
      name: _PyGC_PREV_SHIFT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
      type_or_value: (2)
    - item_type: preproc_def
      name: _PyGC_PREV_MASK
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
      type_or_value: (((uintptr_t) -1) << _PyGC_PREV_SHIFT)
    structs:
    - fields:
      - name: '*ctx'
        type: void
      - name: '* (*alloc) (void *ctx, size_t size)'
        type: void
      - name: (*free) (void *ctx, void *ptr, size_t size)
        type: void
      item_type: struct
      name: PyObjectArenaAllocator
      pos:
        line_end: 26
        line_start: 17
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
    - fields:
      - name: _gc_next
        type: uintptr_t
      - name: _gc_prev
        type: uintptr_t
      item_type: struct
      name: PyGC_Head
      pos:
        line_end: 53
        line_start: 45
        source_file: /src/Python-3.8.3/Include/cpython/objimpl.h
    typedefs: []
    union: []
- function_names:
  - PyVectorcall_NARGS
  - _PyVectorcall_Function
  - _PyObject_Vectorcall
  - _PyObject_FastCall
  - _PyObject_CallNoArg
  - PyObject_CheckBuffer
  - PyIter_Check
  - PyIndex_Check
  - PySequence_ITEM
  source_file: /src/Python-3.8.3/Include/cpython/abstract.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyObject_CallMethodId
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: _PyObject_CallMethodId_SizeT
    - item_type: preproc_def
      name: _PY_FASTCALL_SMALL_STACK
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PY_VECTORCALL_ARGUMENTS_OFFSET
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: ((size_t)1 << (8 * sizeof(size_t) - 1))
    - item_type: preproc_def
      name: PY_ITERSEARCH_COUNT
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_ITERSEARCH_INDEX
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PY_ITERSEARCH_CONTAINS
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/Python-3.8.3/Include/cpython/abstract.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/interpreteridobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/pystate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyTrace_CALL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PyTrace_EXCEPTION
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PyTrace_LINE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PyTrace_RETURN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PyTrace_C_CALL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PyTrace_C_EXCEPTION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PyTrace_C_RETURN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PyTrace_OPCODE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type_or_value: '7'
    structs:
    - fields:
      - name: '*exc_type'
        type: PyObject
      - name: '*previous_item'
        type: struct _err_stackitem
      item_type: struct
      name: _err_stackitem
      pos:
        line_end: 46
        line_start: 35
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
    - fields:
      - name: '*prev'
        type: struct _ts
      - name: '*next'
        type: struct _ts
      - name: '*interp'
        type: PyInterpreterState
      - name: '*frame'
        type: struct _frame
      - name: recursion_depth
        type: int
      - name: overflowed
        type: char
      - name: recursion_critical
        type: char
      - name: stackcheck_counter
        type: int
      - name: tracing
        type: int
      - name: use_tracing
        type: int
      - name: c_profilefunc
        type: Py_tracefunc
      - name: c_tracefunc
        type: Py_tracefunc
      - name: '*c_profileobj'
        type: PyObject
      - name: '*c_traceobj'
        type: PyObject
      - name: '*curexc_type'
        type: PyObject
      - name: '*curexc_value'
        type: PyObject
      - name: '*curexc_traceback'
        type: PyObject
      - name: exc_state
        type: _PyErr_StackItem
      - name: '*exc_info'
        type: _PyErr_StackItem
      - name: '*dict'
        type: PyObject
      - name: gilstate_counter
        type: int
      - name: '*async_exc'
        type: PyObject
      - name: thread_id
        type: unsigned long
      - name: trash_delete_nesting
        type: int
      - name: '*trash_delete_later'
        type: PyObject
      - name: (*on_delete)(void *)
        type: void
      - name: '*on_delete_data'
        type: void
      - name: coroutine_origin_tracking_depth
        type: int
      - name: '*async_gen_firstiter'
        type: PyObject
      - name: '*async_gen_finalizer'
        type: PyObject
      - name: '*context'
        type: PyObject
      - name: context_ver
        type: uint64_t
      - name: id
        type: uint64_t
      item_type: struct
      name: _ts
      pos:
        line_end: 140
        line_start: 50
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
    - fields:
      - name: '*data'
        type: void
      - name: '*obj'
        type: PyObject
      - name: interp
        type: int64_t
      - name: '*(*new_object)(struct _xid *)'
        type: PyObject
      - name: (*free)(void *)
        type: void
      item_type: struct
      name: _xid
      pos:
        line_end: 234
        line_start: 197
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
    typedefs:
    - item_type: typedef
      name: (*Py_tracefunc)(PyObject *, struct _frame *, int, PyObject *)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type: int
    - item_type: typedef
      name: '*(*PyThreadFrameGetter)(PyThreadState *self_)'
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type: _frame
    - item_type: typedef
      name: (*crossinterpdatafunc)(PyObject *, struct _xid *)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/Python-3.8.3/Include/cpython/pystate.h
      type: int
    union: []
- function_names:
  - PyDict_GET_SIZE
  - _PyDict_HasSplitTable
  source_file: /src/Python-3.8.3/Include/cpython/dictobject.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: Py_ssize_t
        type: PyObject_HEAD
      - name: ma_version_tag
        type: uint64_t
      - name: '*ma_keys'
        type: PyDictKeysObject
      - name: '**ma_values'
        type: PyObject
      item_type: struct
      name: PyDictObject
      pos:
        line_end: 31
        line_start: 13
        source_file: /src/Python-3.8.3/Include/cpython/dictobject.h
    - fields:
      - name: '*dv_dict'
        type: PyObject_HEAD
      item_type: struct
      name: _PyDictViewObject
      pos:
        line_end: 86
        line_start: 83
        source_file: /src/Python-3.8.3/Include/cpython/dictobject.h
    typedefs:
    - item_type: typedef
      name: PyDictKeysObject
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/Python-3.8.3/Include/cpython/dictobject.h
      type: _dictkeysobject
    union: []
- function_names:
  - PyExceptionClass_Name
  source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyException_HEAD
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
      type_or_value: "PyObject_HEAD PyObject *dict;\\\n             PyObject *args;
        PyObject *traceback;\\\n             PyObject *context; PyObject *cause;\\\n
        \            char suppress_context;"
    structs:
    - fields:
      - name: '*msg'
        type: PyException_HEAD
      - name: '*filename'
        type: PyObject
      - name: '*lineno'
        type: PyObject
      - name: '*offset'
        type: PyObject
      - name: '*text'
        type: PyObject
      - name: '*print_file_and_line'
        type: PyObject
      item_type: struct
      name: PySyntaxErrorObject
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    - fields:
      - name: '*msg'
        type: PyException_HEAD
      - name: '*name'
        type: PyObject
      - name: '*path'
        type: PyObject
      item_type: struct
      name: PyImportErrorObject
      pos:
        line_end: 35
        line_start: 30
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    - fields:
      - name: '*encoding'
        type: PyException_HEAD
      - name: '*object'
        type: PyObject
      - name: start
        type: Py_ssize_t
      - name: end
        type: Py_ssize_t
      - name: '*reason'
        type: PyObject
      item_type: struct
      name: PyUnicodeErrorObject
      pos:
        line_end: 44
        line_start: 37
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    - fields:
      - name: '*code'
        type: PyException_HEAD
      item_type: struct
      name: PySystemExitObject
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    - fields:
      - name: '*myerrno'
        type: PyException_HEAD
      - name: '*strerror'
        type: PyObject
      - name: '*filename'
        type: PyObject
      - name: '*filename2'
        type: PyObject
      - name: written
        type: Py_ssize_t
      item_type: struct
      name: PyOSErrorObject
      pos:
        line_end: 61
        line_start: 51
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    - fields:
      - name: '*value'
        type: PyException_HEAD
      item_type: struct
      name: PyStopIterationObject
      pos:
        line_end: 66
        line_start: 63
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
    typedefs:
    - item_type: typedef
      name: PyEnvironmentErrorObject
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
      type: PyOSErrorObject
    - item_type: typedef
      name: PyWindowsErrorObject
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/Python-3.8.3/Include/cpython/pyerrors.h
      type: PyOSErrorObject
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/cpython/pylifecycle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_pathconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyPathConfig_INIT
      pos:
        line_end: 37
        line_start: 33
        source_file: /src/Python-3.8.3/Include/internal/pycore_pathconfig.h
      type_or_value: "{.module_search_path = NULL, \\\n       .isolated = -1, \\\n
        \      .site_import = -1}"
    - item_type: preproc_def
      name: _PyPathConfig_INIT
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/Include/internal/pycore_pathconfig.h
      type_or_value: '{.module_search_path = NULL}'
    structs:
    - fields:
      - name: '*program_full_path'
        type: wchar_t
      - name: '*prefix'
        type: wchar_t
      - name: '*exec_prefix'
        type: wchar_t
      - name: '*module_search_path'
        type: wchar_t
      - name: '*program_name'
        type: wchar_t
      - name: '*home'
        type: wchar_t
      item_type: struct
      name: _PyPathConfig
      pos:
        line_end: 30
        line_start: 10
        source_file: /src/Python-3.8.3/Include/internal/pycore_pathconfig.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_traceback.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_pylifecycle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_fileutils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_getopt.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: wchar_t
      - name: has_arg
        type: int
      - name: val
        type: int
      item_type: struct
      name: _PyOS_LongOption
      pos:
        line_end: 17
        line_start: 13
        source_file: /src/Python-3.8.3/Include/internal/pycore_getopt.h
    typedefs: []
    union: []
- function_names:
  - _Py_CURRENTLY_FINALIZING
  - _PyRuntimeState_GetThreadState
  - _PyThreadState_GET
  - PyThreadState_GET
  - _PyInterpreterState_GET_UNSAFE
  source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NPENDINGCALLS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type_or_value: '32'
    - item_type: preproc_def
      name: _PyThreadState_GetFrame
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type_or_value: _PyRuntime.gilstate.getframe
    - item_type: preproc_def
      name: _PyGILState_check_enabled
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type_or_value: _PyRuntime.gilstate.check_enabled
    - item_type: preproc_def
      name: NEXITFUNCS
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type_or_value: '32'
    - item_type: preproc_def
      name: _PyRuntimeState_INIT
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type_or_value: '{.preinitialized = 0, .core_initialized = 0, .initialized =
        0}'
    structs:
    - fields:
      - name: finishing
        type: int
      - name: lock
        type: PyThread_type_lock
      - name: calls_to_do
        type: _Py_atomic_int
      - name: async_exc
        type: int
      - name: calls[NPENDINGCALLS]
        type: "struct {\n        int (*func)(void *);\n        void *arg;\n    }"
      - name: first
        type: int
      - name: last
        type: int
      item_type: struct
      name: _pending_calls
      pos:
        line_end: 40
        line_start: 24
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: recursion_limit
        type: int
      - name: tracing_possible
        type: int
      - name: eval_breaker
        type: _Py_atomic_int
      - name: gil_drop_request
        type: _Py_atomic_int
      - name: pending
        type: struct _pending_calls
      - name: signals_pending
        type: _Py_atomic_int
      - name: gil
        type: struct _gil_runtime_state
      item_type: struct
      name: _ceval_runtime_state
      pos:
        line_end: 59
        line_start: 42
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: '*next'
        type: struct _is
      - name: '*tstate_head'
        type: struct _ts
      - name: id
        type: int64_t
      - name: id_refcount
        type: int64_t
      - name: requires_idref
        type: int
      - name: id_mutex
        type: PyThread_type_lock
      - name: finalizing
        type: int
      - name: '*modules'
        type: PyObject
      - name: '*modules_by_index'
        type: PyObject
      - name: '*sysdict'
        type: PyObject
      - name: '*builtins'
        type: PyObject
      - name: '*importlib'
        type: PyObject
      - name: check_interval
        type: int
      - name: num_threads
        type: long
      - name: pythread_stacksize
        type: size_t
      - name: '*codec_search_path'
        type: PyObject
      - name: '*codec_search_cache'
        type: PyObject
      - name: '*codec_error_registry'
        type: PyObject
      - name: codecs_initialized
        type: int
      - name: fs_codec
        type: "struct {\n        char *encoding;   /* Filesystem encoding (encoded
          to UTF-8) */\n        char *errors;     /* Filesystem errors (encoded to
          UTF-8) */\n        _Py_error_handler error_handler;\n    }"
      - name: config
        type: PyConfig
      - name: '*dict'
        type: PyObject
      - name: '*builtins_copy'
        type: PyObject
      - name: '*import_func'
        type: PyObject
      - name: eval_frame
        type: _PyFrameEvalFunction
      - name: co_extra_user_count
        type: Py_ssize_t
      - name: co_extra_freefuncs[MAX_CO_EXTRA_USERS]
        type: freefunc
      - name: (*pyexitfunc)(PyObject *)
        type: void
      - name: '*pyexitmodule'
        type: PyObject
      - name: tstate_next_unique_id
        type: uint64_t
      - name: warnings
        type: struct _warnings_runtime_state
      - name: '*audit_hooks'
        type: PyObject
      item_type: struct
      name: _is
      pos:
        line_end: 137
        line_start: 66
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: '*cls'
        type: PyTypeObject
      - name: getdata
        type: crossinterpdatafunc
      - name: '*next'
        type: struct _xidregitem
      item_type: struct
      name: _xidregitem
      pos:
        line_end: 158
        line_start: 154
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: '*next'
        type: struct _Py_AuditHookEntry
      - name: hookCFunction
        type: Py_AuditHookFunction
      - name: '*userData'
        type: void
      item_type: struct
      name: _Py_AuditHookEntry
      pos:
        line_end: 166
        line_start: 162
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: check_enabled
        type: int
      - name: tstate_current
        type: _Py_atomic_address
      - name: getframe
        type: PyThreadFrameGetter
      - name: '*autoInterpreterState'
        type: PyInterpreterState
      - name: autoTSSkey
        type: Py_tss_t
      item_type: struct
      name: _gilstate_runtime_state
      pos:
        line_end: 182
        line_start: 170
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: preinitializing
        type: int
      - name: preinitialized
        type: int
      - name: core_initialized
        type: int
      - name: initialized
        type: int
      - name: '*finalizing'
        type: PyThreadState
      - name: interpreters
        type: "struct pyinterpreters {\n        PyThread_type_lock mutex;\n        PyInterpreterState
          *head;\n        PyInterpreterState *main;\n        /* _next_interp_id is
          an auto-numbered sequence of small\n           integers.  It gets initialized
          in _PyInterpreterState_Init(),\n           which is called in Py_Initialize(),
          and used in\n           PyInterpreterState_New().  A negative interpreter
          ID\n           indicates an error occurred.  The main interpreter will\n
          \          always have an ID of 0.  Overflow results in a RuntimeError.\n
          \          If that becomes a problem later then we can adjust, e.g. by\n
          \          using a Python int. */\n        int64_t next_id;\n    }"
      - name: xidregistry
        type: "struct _xidregistry {\n        PyThread_type_lock mutex;\n        struct
          _xidregitem *head;\n    }"
      - name: main_thread
        type: unsigned long
      - name: (*exitfuncs[NEXITFUNCS])(void)
        type: void
      - name: nexitfuncs
        type: int
      - name: gc
        type: struct _gc_runtime_state
      - name: ceval
        type: struct _ceval_runtime_state
      - name: gilstate
        type: struct _gilstate_runtime_state
      - name: preconfig
        type: PyPreConfig
      - name: open_code_hook
        type: Py_OpenCodeHookFunction
      - name: '*open_code_userdata'
        type: void
      - name: '*audit_hook_head'
        type: _Py_AuditHookEntry
      item_type: struct
      name: pyruntimestate
      pos:
        line_end: 248
        line_start: 194
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: mutex
        type: PyThread_type_lock
      - name: '*head'
        type: PyInterpreterState
      - name: '*main'
        type: PyInterpreterState
      - name: next_id
        type: int64_t
      item_type: struct
      name: pyinterpreters
      pos:
        line_end: 224
        line_start: 211
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    - fields:
      - name: mutex
        type: PyThread_type_lock
      - name: '*head'
        type: struct _xidregitem
      item_type: struct
      name: _xidregistry
      pos:
        line_end: 229
        line_start: 226
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
    typedefs:
    - item_type: typedef
      name: '* (*_PyFrameEvalFunction)(struct _frame *, int)'
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/Python-3.8.3/Include/internal/pycore_pystate.h
      type: PyObject
    union: []
- function_names:
  - _PyTuple_ITEMS
  source_file: /src/Python-3.8.3/Include/internal/pycore_tupleobject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_context.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ctx_prev'
        type: PyObject_HEAD
      - name: '*ctx_vars'
        type: PyHamtObject
      - name: '*ctx_weakreflist'
        type: PyObject
      - name: ctx_entered
        type: int
      item_type: struct
      name: _pycontextobject
      pos:
        line_end: 15
        line_start: 9
        source_file: /src/Python-3.8.3/Include/internal/pycore_context.h
    - fields:
      - name: '*var_name'
        type: PyObject_HEAD
      - name: '*var_default'
        type: PyObject
      - name: '*var_cached'
        type: PyObject
      - name: var_cached_tsid
        type: uint64_t
      - name: var_cached_tsver
        type: uint64_t
      - name: var_hash
        type: Py_hash_t
      item_type: struct
      name: _pycontextvarobject
      pos:
        line_end: 26
        line_start: 18
        source_file: /src/Python-3.8.3/Include/internal/pycore_context.h
    - fields:
      - name: '*tok_ctx'
        type: PyObject_HEAD
      - name: '*tok_var'
        type: PyContextVar
      - name: '*tok_oldval'
        type: PyObject
      - name: tok_used
        type: int
      item_type: struct
      name: _pycontexttokenobject
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/Python-3.8.3/Include/internal/pycore_context.h
    typedefs: []
    union: []
- function_names:
  - _PyObject_GC_TRACK_impl
  - _PyObject_GC_TRACK
  - _PyObject_GC_UNTRACK_impl
  - _PyObject_GC_UNTRACK
  source_file: /src/Python-3.8.3/Include/internal/pycore_object.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyErr_Occurred
  source_file: /src/Python-3.8.3/Include/internal/pycore_pyerrors.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_gil.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: interval
        type: unsigned long
      - name: last_holder
        type: _Py_atomic_address
      - name: locked
        type: _Py_atomic_int
      - name: switch_number
        type: unsigned long
      - name: cond
        type: PyCOND_T
      - name: mutex
        type: PyMUTEX_T
      item_type: struct
      name: _gil_runtime_state
      pos:
        line_end: 44
        line_start: 22
        source_file: /src/Python-3.8.3/Include/internal/pycore_gil.h
    typedefs: []
    union: []
- function_names:
  - PyHamt_Check
  source_file: /src/Python-3.8.3/Include/internal/pycore_hamt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _Py_HAMT_MAX_TREE_DEPTH
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/Python-3.8.3/Include/internal/pycore_hamt.h
      type_or_value: '7'
    structs:
    - fields:
      - name: '*h_root'
        type: PyObject_HEAD
      - name: '*h_weakreflist'
        type: PyObject
      - name: h_count
        type: Py_ssize_t
      item_type: struct
      name: PyHamtObject
      pos:
        line_end: 25
        line_start: 20
        source_file: /src/Python-3.8.3/Include/internal/pycore_hamt.h
    - fields:
      - name: '*i_nodes[_Py_HAMT_MAX_TREE_DEPTH]'
        type: PyHamtNode
      - name: i_pos[_Py_HAMT_MAX_TREE_DEPTH]
        type: Py_ssize_t
      - name: i_level
        type: int8_t
      item_type: struct
      name: PyHamtIteratorState
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/Python-3.8.3/Include/internal/pycore_hamt.h
    - fields:
      - name: '*hi_obj'
        type: PyObject_HEAD
      - name: hi_iter
        type: PyHamtIteratorState
      - name: hi_yield
        type: binaryfunc
      item_type: struct
      name: PyHamtIterator
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/Python-3.8.3/Include/internal/pycore_hamt.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_warnings.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*filters'
        type: PyObject
      - name: '*once_registry'
        type: PyObject
      - name: '*default_action'
        type: PyObject
      - name: filters_version
        type: long
      item_type: struct
      name: _warnings_runtime_state
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/Python-3.8.3/Include/internal/pycore_warnings.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_code.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ptr'
        type: PyObject
      - name: globals_ver
        type: uint64_t
      - name: builtins_ver
        type: uint64_t
      item_type: struct
      name: _PyOpcache_LoadGlobal
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/Python-3.8.3/Include/internal/pycore_code.h
    - fields:
      - name: u
        type: "union {\n        _PyOpcache_LoadGlobal lg;\n    }"
      - name: optimized
        type: char
      item_type: struct
      name: _PyOpcache
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/Python-3.8.3/Include/internal/pycore_code.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PyMUTEX_T
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type_or_value: pthread_mutex_t
    - item_type: preproc_def
      name: PyCOND_T
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type_or_value: pthread_cond_t
    - item_type: preproc_def
      name: _PY_EMULATED_WIN_CV
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type_or_value: '1  '
    - item_type: preproc_def
      name: _PY_EMULATED_WIN_CV
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type_or_value: '1'
    structs:
    - fields:
      - name: sem
        type: HANDLE
      - name: waiting
        type: int
      item_type: struct
      name: _PyCOND_T
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
    typedefs:
    - item_type: typedef
      name: PyMUTEX_T
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type: CRITICAL_SECTION
    - item_type: typedef
      name: PyMUTEX_T
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type: SRWLOCK
    - item_type: typedef
      name: PyCOND_T
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/Python-3.8.3/Include/internal/pycore_condvar.h
      type: CONDITION_VARIABLE
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_ceval.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyStatus_GET_FUNC
  - _PyStatus_GET_FUNC
  - _PyStatus_OK
  - _PyStatus_ERR
  - _PyStatus_NO_MEMORY
  - _PyStatus_EXIT
  - _PyStatus_IS_ERROR
  - _PyStatus_IS_EXIT
  - _PyStatus_EXCEPTION
  - _PyStatus_UPDATE_FUNC
  source_file: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _PyWideStringList_INIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
      type_or_value: (PyWideStringList){.length = 0, .items = NULL}
    - item_type: preproc_def
      name: _PyPreCmdline_INIT
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
      type_or_value: "(_PyPreCmdline){ \\\n        .use_environment = -1, \\\n        .isolated
        = -1, \\\n        .dev_mode = -1}"
    structs:
    - fields:
      - name: argc
        type: Py_ssize_t
      - name: use_bytes_argv
        type: int
      - name: '* const *bytes_argv'
        type: char
      - name: '* const *wchar_argv'
        type: wchar_t
      item_type: struct
      name: _PyArgv
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    - fields:
      - name: argv
        type: PyWideStringList
      - name: xoptions
        type: PyWideStringList
      - name: isolated
        type: int
      - name: use_environment
        type: int
      - name: dev_mode
        type: int
      item_type: struct
      name: _PyPreCmdline
      pos:
        line_end: 101
        line_start: 95
        source_file: /src/Python-3.8.3/Include/internal/pycore_initconfig.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_accu.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*large'
        type: PyObject
      - name: '*small'
        type: PyObject
      item_type: struct
      name: _PyAccu
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/Python-3.8.3/Include/internal/pycore_accu.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/Include/internal/pycore_pyhash.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _PyMem_IsPtrFreed
  source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_GENERATIONS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PYMEM_CLEANBYTE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
      type_or_value: '0xCD'
    - item_type: preproc_def
      name: PYMEM_DEADBYTE
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
      type_or_value: '0xDD'
    - item_type: preproc_def
      name: PYMEM_FORBIDDENBYTE
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
      type_or_value: '0xFD'
    structs:
    - fields:
      - name: head
        type: PyGC_Head
      - name: threshold
        type: int
      - name: count
        type: int
      item_type: struct
      name: gc_generation
      pos:
        line_end: 101
        line_start: 96
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
    - fields:
      - name: collections
        type: Py_ssize_t
      - name: collected
        type: Py_ssize_t
      - name: uncollectable
        type: Py_ssize_t
      item_type: struct
      name: gc_generation_stats
      pos:
        line_end: 111
        line_start: 104
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
    - fields:
      - name: '*trash_delete_later'
        type: PyObject
      - name: trash_delete_nesting
        type: int
      - name: enabled
        type: int
      - name: debug
        type: int
      - name: generations[NUM_GENERATIONS]
        type: struct gc_generation
      - name: '*generation0'
        type: PyGC_Head
      - name: permanent_generation
        type: struct gc_generation
      - name: generation_stats[NUM_GENERATIONS]
        type: struct gc_generation_stats
      - name: collecting
        type: int
      - name: '*garbage'
        type: PyObject
      - name: '*callbacks'
        type: PyObject
      - name: long_lived_total
        type: Py_ssize_t
      - name: long_lived_pending
        type: Py_ssize_t
      item_type: struct
      name: _gc_runtime_state
      pos:
        line_end: 145
        line_start: 113
        source_file: /src/Python-3.8.3/Include/internal/pycore_pymem.h
    typedefs: []
    union: []
- function_names:
  - _Py_atomic_signal_fence
  - _Py_atomic_thread_fence
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_signal_fence
  - _Py_atomic_thread_fence
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_signal_fence
  - _Py_atomic_thread_fence
  - _Py_ANNOTATE_MEMORY_ORDER
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_store_64bit
  - _Py_atomic_store_64bit
  - _Py_atomic_store_32bit
  - _Py_atomic_load_64bit_impl
  - _Py_atomic_load_64bit
  - _Py_atomic_load_64bit
  - _Py_atomic_load_32bit_impl
  - _Py_atomic_load_32bit
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_store_64bit
  - _Py_atomic_store_64bit
  - _Py_atomic_store_32bit
  - _Py_atomic_load_64bit_impl
  - _Py_atomic_load_64bit
  - _Py_atomic_load_64bit
  - _Py_atomic_load_32bit_impl
  - _Py_atomic_load_32bit
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_signal_fence
  - _Py_atomic_thread_fence
  - _Py_atomic_store_explicit
  - _Py_atomic_load_explicit
  - _Py_atomic_store
  - _Py_atomic_load
  - _Py_atomic_store_relaxed
  - _Py_atomic_load_relaxed
  source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
  types:
    enum:
    - enumerators:
      - name: _Py_memory_order_relaxed
        value: memory_order_relaxed
      - name: _Py_memory_order_release
        value: memory_order_release
      - name: _Py_memory_order_acq_rel
        value: memory_order_acq_rel
      - name: _Py_memory_order_seq_cst
        value: memory_order_seq_cst
      - name: _Py_memory_order_acquire
        value: memory_order_acquire
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 43
        line_start: 37
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - enumerators:
      - name: _Py_memory_order_relaxed
        value: __ATOMIC_RELAXED
      - name: _Py_memory_order_seq_cst
        value: __ATOMIC_SEQ_CST
      - name: _Py_memory_order_acquire
        value: __ATOMIC_ACQUIRE
      - name: _Py_memory_order_release
        value: __ATOMIC_RELEASE
      - name: _Py_memory_order_acq_rel
        value: __ATOMIC_ACQ_REL
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 74
        line_start: 68
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - enumerators:
      - name: _Py_memory_order_relaxed
      - name: _Py_memory_order_acq_rel
      - name: _Py_memory_order_acquire
      - name: _Py_memory_order_release
      - name: _Py_memory_order_seq_cst
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 112
        line_start: 106
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - enumerators:
      - name: _Py_memory_order_relaxed
      - name: _Py_memory_order_acquire
      - name: _Py_memory_order_release
      - name: _Py_memory_order_acq_rel
      - name: _Py_memory_order_seq_cst
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 248
        line_start: 242
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - enumerators:
      - name: _Py_memory_order_relaxed
      - name: _Py_memory_order_acquire
      - name: _Py_memory_order_release
      - name: _Py_memory_order_acq_rel
      - name: _Py_memory_order_seq_cst
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 384
        line_start: 378
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - enumerators:
      - name: _Py_memory_order_relaxed
      - name: _Py_memory_order_acquire
      - name: _Py_memory_order_release
      - name: _Py_memory_order_acq_rel
      - name: _Py_memory_order_seq_cst
      item_type: enum
      name: _Py_memory_order
      pos:
        line_end: 521
        line_start: 515
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    preproc_defs: []
    structs:
    - fields:
      - name: _value
        type: atomic_uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 47
        line_start: 45
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: atomic_int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 116
        line_start: 114
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 120
        line_start: 118
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 252
        line_start: 250
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 256
        line_start: 254
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 388
        line_start: 386
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 392
        line_start: 390
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: uintptr_t
      item_type: struct
      name: _Py_atomic_address
      pos:
        line_end: 525
        line_start: 523
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    - fields:
      - name: _value
        type: int
      item_type: struct
      name: _Py_atomic_int
      pos:
        line_end: 529
        line_start: 527
        source_file: /src/Python-3.8.3/Include/internal/pycore_atomic.h
    typedefs: []
    union: []
- function_names:
  - _LoadActCtxPointers
  - _Py_ActivateActCtx
  - _Py_DeactivateActCtx
  - DllMain
  source_file: /src/Python-3.8.3/PC/dl_nt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (WINAPI * PFN_GETCURRENTACTCTX)(HANDLE *)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/Python-3.8.3/PC/dl_nt.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI * PFN_ACTIVATEACTCTX)(HANDLE, ULONG_PTR *)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/Python-3.8.3/PC/dl_nt.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI * PFN_DEACTIVATEACTCTX)(DWORD, ULONG_PTR)
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/Python-3.8.3/PC/dl_nt.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI * PFN_ADDREFACTCTX)(HANDLE)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/Python-3.8.3/PC/dl_nt.c
      type: BOOL
    - item_type: typedef
      name: (WINAPI * PFN_RELEASEACTCTX)(HANDLE)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/Python-3.8.3/PC/dl_nt.c
      type: BOOL
    union: []
- function_names:
  - skip_whitespace
  - debug
  - winerror
  - error
  - get_env
  - find_existing_python
  - find_existing_python2
  - _locate_pythons_for_key
  - compare_pythons
  - locate_pythons_for_key
  - locate_store_pythons
  - locate_venv_python
  - locate_all_pythons
  - find_python_by_version
  - get_configured_value
  - locate_python
  - locate_wrapped_script
  - safe_duplicate_handle
  - ctrl_c_handler
  - run_child
  - invoke_child
  - skip_prefix
  - find_on_path
  - find_command
  - update_command
  - add_command
  - read_config_file
  - read_commands
  - parse_shebang
  - find_BOM
  - find_terminator
  - validate_version
  - find_by_magic
  - maybe_handle_shebang
  - skip_me
  - get_version_info
  - show_help_text
  - show_python_list
  - find_home_value
  - wcsdup_pad
  - get_process_name
  - process
  - wWinMain
  - wmain
  source_file: /src/Python-3.8.3/PC/launcher.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '256'
    - item_type: preproc_def
      name: MSGSIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: RC_NO_STD_HANDLES
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '100'
    - item_type: preproc_def
      name: RC_CREATE_PROCESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '101'
    - item_type: preproc_def
      name: RC_BAD_VIRTUAL_PATH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '102'
    - item_type: preproc_def
      name: RC_NO_PYTHON
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '103'
    - item_type: preproc_def
      name: RC_NO_MEMORY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '104'
    - item_type: preproc_def
      name: RC_NO_SCRIPT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '105'
    - item_type: preproc_def
      name: RC_NO_VENV_CFG
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '106'
    - item_type: preproc_def
      name: RC_BAD_VENV_CFG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '107'
    - item_type: preproc_def
      name: PYTHON_EXECUTABLE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"pythonw_d.exe"
    - item_type: preproc_def
      name: PYTHON_EXECUTABLE
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"python_d.exe"
    - item_type: preproc_def
      name: PYTHON_EXECUTABLE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"pythonw.exe"
    - item_type: preproc_def
      name: EXECUTABLEPATH_VALUE
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"WindowedExecutablePath"
    - item_type: preproc_def
      name: PYTHON_EXECUTABLE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"python.exe"
    - item_type: preproc_def
      name: EXECUTABLEPATH_VALUE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"ExecutablePath"
    - item_type: preproc_def
      name: MAX_VERSION_SIZE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_INSTALLED_PYTHONS
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '100'
    - item_type: preproc_def
      name: IP_BASE_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '80'
    - item_type: preproc_def
      name: IP_VERSION_SIZE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '8'
    - item_type: preproc_def
      name: IP_SIZE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: (IP_BASE_SIZE + IP_VERSION_SIZE)
    - item_type: preproc_def
      name: CORE_PATH
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"SOFTWARE\\Python\\PythonCore"
    - item_type: preproc_def
      name: LOOKASIDE_PATH
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"SOFTWARE\\Microsoft\\AppModel\\Lookaside\\user\\Software\\Python\\PythonCore"
    - item_type: preproc_def
      name: SCRIPT_SUFFIX
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"-script.pyw"
    - item_type: preproc_def
      name: SCRIPT_SUFFIX
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: L"-script.py"
    - item_type: preproc_def
      name: MAX_COMMANDS
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '100'
    - item_type: preproc_def
      name: CP_UTF16LE
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '1200'
    - item_type: preproc_def
      name: CP_UTF16BE
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '1201'
    - item_type: preproc_def
      name: CP_UTF32LE
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '12000'
    - item_type: preproc_def
      name: CP_UTF32BE
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/Python-3.8.3/PC/launcher.c
      type_or_value: '12001'
    structs:
    - fields:
      - name: version[MAX_VERSION_SIZE]
        type: wchar_t
      - name: bits
        type: int
      - name: executable[MAX_PATH]
        type: wchar_t
      - name: exe_display[MAX_PATH]
        type: wchar_t
      item_type: struct
      name: INSTALLED_PYTHON
      pos:
        line_end: 175
        line_start: 170
        source_file: /src/Python-3.8.3/PC/launcher.c
    - fields:
      - name: '*shebang'
        type: wchar_t
      - name: search
        type: BOOL
      item_type: struct
      name: SHEBANG
      pos:
        line_end: 845
        line_start: 842
        source_file: /src/Python-3.8.3/PC/launcher.c
    - fields:
      - name: key[MAX_PATH]
        type: wchar_t
      - name: value[MSGSIZE]
        type: wchar_t
      item_type: struct
      name: COMMAND
      pos:
        line_end: 862
        line_start: 859
        source_file: /src/Python-3.8.3/PC/launcher.c
    - fields:
      - name: length
        type: int
      - name: sequence[4]
        type: char
      - name: code_page
        type: UINT
      item_type: struct
      name: BOM
      pos:
        line_end: 1107
        line_start: 1103
        source_file: /src/Python-3.8.3/PC/launcher.c
    - fields:
      - name: min
        type: unsigned short
      - name: max
        type: unsigned short
      - name: version[MAX_VERSION_SIZE]
        type: wchar_t
      item_type: struct
      name: PYC_MAGIC
      pos:
        line_end: 1229
        line_start: 1225
        source_file: /src/Python-3.8.3/PC/launcher.c
    typedefs: []
    union: []
- function_names:
  - WinMain
  source_file: /src/Python-3.8.3/PC/empty.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/PC/python_ver_rc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PYTHON_COMPANY
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/Python-3.8.3/PC/python_ver_rc.h
      type_or_value: '"Python Software Foundation"'
    - item_type: preproc_def
      name: PYTHON_COPYRIGHT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/Python-3.8.3/PC/python_ver_rc.h
      type_or_value: '"Copyright \xA9 2001-2016 Python Software Foundation. Copyright
        \xA9 2000 BeOpen.com. Copyright \xA9 1995-2001 CNRI. Copyright \xA9 1991-1995
        SMC."'
    - item_type: preproc_def
      name: PYTHON_DEBUG_EXT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/PC/python_ver_rc.h
      type_or_value: '"_d"'
    - item_type: preproc_def
      name: PYTHON_VERSION
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/PC/python_ver_rc.h
      type_or_value: PY_VERSION "\0"
    - item_type: preproc_def
      name: PYVERSION64
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/Python-3.8.3/PC/python_ver_rc.h
      type_or_value: PY_MAJOR_VERSION, PY_MINOR_VERSION, FIELD3, PYTHON_API_VERSION
    structs: []
    typedefs: []
    union: []
- function_names:
  - INIT_ERR_BUFFER_OVERFLOW
  - is_sep
  - reduce
  - change_ext
  - exists
  - ismodule
  - join
  - canonicalize
  - gotlandmark
  - search_for_prefix
  - getpythonregpath
  - _Py_GetDLLPath
  - get_program_full_path
  - read_pth_file
  - get_pth_filename
  - calculate_pth_file
  - calculate_pyvenv_file
  - calculate_home_prefix
  - calculate_module_search_path
  - calculate_path
  - calculate_init
  - calculate_free
  - _PyPathConfig_Calculate
  - _Py_CheckPython3
  source_file: /src/Python-3.8.3/PC/getpathp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LANDMARK
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/Python-3.8.3/PC/getpathp.c
      type_or_value: L"lib\\os.py"
    structs:
    - fields:
      - name: '*path_env'
        type: wchar_t
      - name: '*home'
        type: wchar_t
      - name: '*machine_path'
        type: wchar_t
      - name: '*user_path'
        type: wchar_t
      - name: '*dll_path'
        type: wchar_t
      - name: '*pythonpath_env'
        type: wchar_t
      item_type: struct
      name: PyCalculatePath
      pos:
        line_end: 135
        line_start: 123
        source_file: /src/Python-3.8.3/PC/getpathp.c
    typedefs:
    - item_type: typedef
      name: "(__stdcall *PPathCchCombineEx) (PWSTR pszPathOut, size_t cchPathOut,\n
        \                                              PCWSTR pszPathIn, PCWSTR pszMore,\n
        \                                              unsigned long dwFlags)"
      pos:
        line_end: 246
        line_start: 244
        source_file: /src/Python-3.8.3/PC/getpathp.c
      type: HRESULT
    - item_type: typedef
      name: "(__stdcall *PPathCchCanonicalizeEx) (PWSTR pszPathOut, size_t cchPathOut,\n
        \   PCWSTR pszPathIn, unsigned long dwFlags)"
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/Python-3.8.3/PC/getpathp.c
      type: HRESULT
    union: []
- function_names:
  - get_user_base
  - get_package_family
  - get_package_home
  - set_process_name
  - wmain
  - wWinMain
  source_file: /src/Python-3.8.3/PC/python_uwp.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _Py_PASTE_VERSION
  - _Py_STRINGIZE
  - _Py_STRINGIZE1
  - _Py_STRINGIZE2
  - Py_IS_INFINITY
  - Py_IS_FINITE
  - Py_LL
  source_file: /src/Python-3.8.3/PC/pyconfig.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _CRT_SECURE_NO_DEPRECATE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _CRT_NONSTDC_NO_DEPRECATE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LONG_BIT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '32'
    - item_type: preproc_def
      name: WORD_BIT
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PYTHONPATH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: L".\\DLLs;.\\lib"
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with
        MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("64 bit (AMD64)")
    - item_type: preproc_def
      name: PYD_PLATFORM_TAG
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win_amd64"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("64 bit (ARM64)")
    - item_type: preproc_def
      name: PYD_PLATFORM_TAG
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win_arm64"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("64 bit (Unknown)")
    - item_type: preproc_def
      name: Py_WINVER
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '0x0600 '
    - item_type: preproc_def
      name: Py_NTDDI
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: NTDDI_VISTA
    - item_type: preproc_def
      name: NTDDI_VERSION
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: Py_NTDDI
    - item_type: preproc_def
      name: WINVER
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: Py_WINVER
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: Py_WINVER
    - item_type: preproc_def
      name: HAVE_SSIZE_T
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with
        MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]")
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("32 bit (Intel)")
    - item_type: preproc_def
      name: PYD_PLATFORM_TAG
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win32"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("32 bit (ARM)")
    - item_type: preproc_def
      name: PYD_PLATFORM_TAG
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win_arm32"'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _Py_PASTE_VERSION("32 bit (Unknown)")
    - item_type: preproc_def
      name: Py_IS_NAN
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _isnan
    - item_type: preproc_def
      name: copysign
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _copysign
    - item_type: preproc_def
      name: HAVE_SXS
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"[gcc]"'
    - item_type: preproc_def
      name: PY_LONG_LONG
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: long long
    - item_type: preproc_def
      name: PY_LLONG_MIN
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: LLONG_MIN
    - item_type: preproc_def
      name: PY_LLONG_MAX
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: LLONG_MAX
    - item_type: preproc_def
      name: PY_ULLONG_MAX
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: ULLONG_MAX
    - item_type: preproc_def
      name: COMPILER
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"[lcc-win32]"'
    - item_type: preproc_def
      name: PY_LONG_LONG
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: __int64
    - item_type: preproc_def
      name: PY_LLONG_MAX
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _I64_MAX
    - item_type: preproc_def
      name: PY_LLONG_MIN
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _I64_MIN
    - item_type: preproc_def
      name: PY_ULLONG_MAX
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: _UI64_MAX
    - item_type: preproc_def
      name: Py_ENABLE_SHARED
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: PLATFORM
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win32"'
    - item_type: preproc_def
      name: SIZEOF_VOID_P
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_FPOS_T
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_HKEY
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PLATFORM
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '"win32"'
    - item_type: preproc_def
      name: SIZEOF_VOID_P
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_OFF_T
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_FPOS_T
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_HKEY
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SIZE_T
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_TIME_T
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_SHORT
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SIZEOF_INT
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_LONG
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SIZEOF_LONG_LONG
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_DOUBLE
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SIZEOF_FLOAT
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '4'
    - item_type: preproc_def
      name: HAVE_UINTPTR_T
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INTPTR_T
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PY_UINT32_T
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: uint32_t
    - item_type: preproc_def
      name: PY_UINT64_T
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: uint64_t
    - item_type: preproc_def
      name: PY_INT32_T
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: int32_t
    - item_type: preproc_def
      name: PY_INT64_T
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: int64_t
    - item_type: preproc_def
      name: HAVE_COPYSIGN
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ROUND
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DECL_ISINF
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DECL_ISNAN
      pos:
        line_end: 371
        line_start: 370
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_CONIO_H
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DIRECT_H
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_DECL_TZNAME
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RETSIGTYPE
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: void
    - item_type: preproc_def
      name: STDC_HEADERS
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WITH_DECIMAL_CONTEXTVAR
      pos:
        line_end: 475
        line_start: 474
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WITH_DOC_STRINGS
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: WITH_PYMALLOC
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WCSFTIME
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WCSCOLL
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WCSXFRM
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ZLIB_COPY
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ERRNO_H
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_FCNTL_H
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_PROCESS_H
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SIGNAL_H
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_STDDEF_H
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_STAT_H
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_SYS_TYPES_H
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_WCHAR_H
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_WCHAR_T
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SIZEOF__BOOL
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SIZEOF_PID_T
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: SIZEOF_INT
    - item_type: preproc_def
      name: HAVE_LIBNSL
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_LIBSOCKET
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DOUBLE_IS_LITTLE_ENDIAN_IEEE754
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ERF
      pos:
        line_end: 677
        line_start: 676
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_ERFC
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_INET_PTON
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _PYTHONFRAMEWORK
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '""'
    - item_type: preproc_def
      name: HAVE_X509_VERIFY_PARAM_SET1_HOST
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type: __int64
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type: _W64
    - item_type: typedef
      name: pid_t
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type: int
    - item_type: typedef
      name: pid_t
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/Python-3.8.3/PC/pyconfig.h
      type: int
    union: []
- function_names:
  - wWinMain
  source_file: /src/Python-3.8.3/PC/WinMain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DllMain
  source_file: /src/Python-3.8.3/PC/python3dll.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _silent_invalid_parameter_handler
  source_file: /src/Python-3.8.3/PC/invalid_parameter_handler.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - execfunc
  - _testconsole_write_input_impl
  - _testconsole_read_output_impl
  - PyInit__testconsole
  source_file: /src/Python-3.8.3/PC/_testconsole.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: HANDLE
        type: PyObject_HEAD
      item_type: struct
      name: winconsoleio
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/Python-3.8.3/PC/_testconsole.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/PC/config.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - winerror_to_errno
  source_file: /src/Python-3.8.3/PC/errmap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - uuidcreate
  - FNFCIALLOC
  - FNFCIFREE
  - FNFCIOPEN
  - FNFCIREAD
  - FNFCIWRITE
  - FNFCICLOSE
  - FNFCISEEK
  - FNFCIDELETE
  - FNFCIFILEPLACED
  - FNFCIGETTEMPFILE
  - FNFCISTATUS
  - FNFCIGETNEXTCABINET
  - FNFCIGETOPENINFO
  - fcicreate
  - msiobj_dealloc
  - msierror
  - msidb_close
  - record_getfieldcount
  - record_getinteger
  - record_getstring
  - record_cleardata
  - record_setstring
  - record_setstream
  - record_setinteger
  - record_new
  - summary_getproperty
  - summary_getpropertycount
  - summary_setproperty
  - summary_persist
  - view_execute
  - view_fetch
  - view_getcolumninfo
  - view_modify
  - view_close
  - msidb_openview
  - msidb_commit
  - msidb_getsummaryinformation
  - Py_NOT_PERSIST
  - Py_INVALID_PERSIST
  - msiopendb
  - createrecord
  - PyInit__msi
  source_file: /src/Python-3.8.3/PC/_msi.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: MSIHANDLE
        type: PyObject_HEAD
      item_type: struct
      name: msiobj
      pos:
        line_end: 278
        line_start: 275
        source_file: /src/Python-3.8.3/PC/_msi.c
    typedefs: []
    union: []
- function_names:
  - FilenameListCchLengthA
  - FilenameListCchLengthW
  - FilenameListCchCopyA
  - FilenameListCchCopyW
  - PyShellExt::PyShellExt
  - ~PyShellExt()
  - PyShellExt::UpdateDropDescription
  - PyShellExt::GetDragWindow
  - PyShellExt::GetArguments
  - PyShellExt::NotifyDragWindow
  - PyShellExt::DragEnter
  - PyShellExt::DragLeave
  - PyShellExt::DragOver
  - PyShellExt::Drop
  - PyShellExt::GetCurFile
  - PyShellExt::IsDirty
  - PyShellExt::Load
  - PyShellExt::Save
  - PyShellExt::SaveCompleted
  - PyShellExt::GetClassID
  - DllGetClassObject
  - DllCanUnloadNow
  - DllRegisterServer
  - DllUnregisterServer
  - DllMain
  source_file: /src/Python-3.8.3/PC/pyshellext.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _WIN32_WINNT
      pos:
        line_end: 2
        line_start: 1
        source_file: /src/Python-3.8.3/PC/pyshellext.cpp
      type_or_value: _WIN32_WINNT_VISTA
    - item_type: preproc_def
      name: DDWM_UPDATEWINDOW
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/PC/pyshellext.cpp
      type_or_value: (WM_USER+3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - winsound_PlaySound_impl
  - winsound_Beep_impl
  - winsound_MessageBeep_impl
  - add_define
  - ADD_DEFINE
  - PyInit_winsound
  source_file: /src/Python-3.8.3/PC/winsound.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyWinFreeze_ExeInit
  - PyWinFreeze_ExeTerm
  - DllMain
  - CallModuleDllMain
  source_file: /src/Python-3.8.3/PC/frozen_dllmain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - msvcrt_heapmin_impl
  - msvcrt_locking_impl
  - msvcrt_setmode_impl
  - msvcrt_open_osfhandle_impl
  - msvcrt_get_osfhandle_impl
  - msvcrt_kbhit_impl
  - msvcrt_getch_impl
  - msvcrt_getwch_impl
  - msvcrt_getche_impl
  - msvcrt_getwche_impl
  - msvcrt_putch_impl
  - msvcrt_putwch_impl
  - msvcrt_ungetch_impl
  - msvcrt_ungetwch_impl
  - msvcrt_CrtSetReportFile_impl
  - msvcrt_CrtSetReportMode_impl
  - msvcrt_set_error_mode_impl
  - msvcrt_SetErrorMode_impl
  - insertint
  - insertptr
  - PyInit_msvcrt
  source_file: /src/Python-3.8.3/PC/msvcrtmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyErr_SetFromWindowsErrWithFunction
  - PyHKEY_Check
  - PyHKEY_unaryFailureFunc
  - PyHKEY_binaryFailureFunc
  - PyHKEY_ternaryFailureFunc
  - PyHKEY_deallocFunc
  - PyHKEY_boolFunc
  - PyHKEY_intFunc
  - PyHKEY_strFunc
  - PyHKEY_compareFunc
  - PyHKEY_hashFunc
  - winreg_HKEYType_Close_impl
  - winreg_HKEYType_Detach_impl
  - winreg_HKEYType___enter___impl
  - winreg_HKEYType___exit___impl
  - 'OFF'
  - PyHKEY_New
  - PyHKEY_Close
  - PyHKEY_AsHKEY
  - clinic_HKEY_converter
  - PyHKEY_FromHKEY
  - PyWinObject_CloseHKEY
  - if
  - if
  - fixupMultiSZ
  - countStrings
  - Py2Reg
  - Reg2Py
  - winreg_CloseKey
  - winreg_ConnectRegistry_impl
  - winreg_CreateKey_impl
  - winreg_CreateKeyEx_impl
  - winreg_DeleteKey_impl
  - winreg_DeleteKeyEx_impl
  - winreg_DeleteValue_impl
  - winreg_EnumKey_impl
  - winreg_EnumValue_impl
  - winreg_ExpandEnvironmentStrings_impl
  - winreg_FlushKey_impl
  - winreg_LoadKey_impl
  - winreg_OpenKey_impl
  - winreg_OpenKeyEx_impl
  - winreg_QueryInfoKey_impl
  - winreg_QueryValue_impl
  - winreg_QueryValueEx_impl
  - winreg_SaveKey_impl
  - winreg_SetValue_impl
  - winreg_SetValueEx_impl
  - winreg_DisableReflectionKey_impl
  - winreg_EnableReflectionKey_impl
  - winreg_QueryReflectionKey_impl
  - insint
  - ADD_INT
  - inskey
  - ADD_KEY
  - PyInit_winreg
  source_file: /src/Python-3.8.3/PC/winreg.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: HKEY
        type: PyObject_VAR_HEAD
      item_type: struct
      name: PyHKEYObject
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/Python-3.8.3/PC/winreg.c
    typedefs:
    - item_type: typedef
      name: (WINAPI *RDKEFunc)(HKEY, const wchar_t*, REGSAM, int)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/Python-3.8.3/PC/winreg.c
      type: LONG
    - item_type: typedef
      name: (WINAPI *RDRKFunc)(HKEY)
      pos:
        line_end: 1817
        line_start: 1817
        source_file: /src/Python-3.8.3/PC/winreg.c
      type: LONG
    - item_type: typedef
      name: (WINAPI *RERKFunc)(HKEY)
      pos:
        line_end: 1866
        line_start: 1866
        source_file: /src/Python-3.8.3/PC/winreg.c
      type: LONG
    - item_type: typedef
      name: (WINAPI *RQRKFunc)(HKEY, BOOL *)
      pos:
        line_end: 1913
        line_start: 1913
        source_file: /src/Python-3.8.3/PC/winreg.c
      type: LONG
    union: []
- function_names:
  - normpath
  - ensure_directory
  - map_new_file
  - extract_file
  - unzip_archive
  source_file: /src/Python-3.8.3/PC/bdist_wininst/extract.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IDD_DIALOG1
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '101'
    - item_type: preproc_def
      name: IDB_BITMAP1
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '103'
    - item_type: preproc_def
      name: IDD_INTRO
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '107'
    - item_type: preproc_def
      name: IDD_SELECTPYTHON
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '108'
    - item_type: preproc_def
      name: IDD_INSTALLFILES
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '109'
    - item_type: preproc_def
      name: IDD_FINISHED
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '110'
    - item_type: preproc_def
      name: IDB_BITMAP
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '110'
    - item_type: preproc_def
      name: IDC_EDIT1
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: IDC_TITLE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: IDC_START
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1001'
    - item_type: preproc_def
      name: IDC_PROGRESS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1003'
    - item_type: preproc_def
      name: IDC_INFO
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1004'
    - item_type: preproc_def
      name: IDC_PYTHON15
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1006'
    - item_type: preproc_def
      name: IDC_PATH
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1007'
    - item_type: preproc_def
      name: IDC_PYTHON16
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1008'
    - item_type: preproc_def
      name: IDC_INSTALL_PATH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1008'
    - item_type: preproc_def
      name: IDC_PYTHON20
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1009'
    - item_type: preproc_def
      name: IDC_BROWSE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1010'
    - item_type: preproc_def
      name: IDC_INTRO_TEXT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1021'
    - item_type: preproc_def
      name: IDC_VERSIONS_LIST
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1022'
    - item_type: preproc_def
      name: IDC_BUILD_INFO
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: IDC_BITMAP
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1025'
    - item_type: preproc_def
      name: IDC_OTHERPYTHON
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/Python-3.8.3/PC/bdist_wininst/resource.h
      type_or_value: '1026'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIR_CREATED
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CAN_OVERWRITE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '2'
    - item_type: preproc_def
      name: FILE_CREATED
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ZLIB_ERROR
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SYSTEM_ERROR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NUM_FILES
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '6'
    - item_type: preproc_def
      name: FILE_OVERWRITTEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type_or_value: '7'
    structs:
    - fields:
      - name: tag
        type: long
      - name: disknum
        type: short
      - name: firstdisk
        type: short
      - name: nTotalCDirThis
        type: short
      - name: nTotalCDir
        type: short
      - name: nBytesCDir
        type: long
      - name: ofsCDir
        type: long
      - name: commentlen
        type: short
      item_type: struct
      name: eof_cdir
      pos:
        line_end: 23
        line_start: 14
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
    - fields:
      - name: tag
        type: long
      - name: version_made
        type: short
      - name: version_extract
        type: short
      - name: gp_bitflag
        type: short
      - name: comp_method
        type: short
      - name: last_mod_file_time
        type: short
      - name: last_mod_file_date
        type: short
      - name: crc32
        type: long
      - name: comp_size
        type: long
      - name: uncomp_size
        type: long
      - name: fname_length
        type: short
      - name: extra_length
        type: short
      - name: comment_length
        type: short
      - name: disknum_start
        type: short
      - name: int_file_attr
        type: short
      - name: ext_file_attr
        type: long
      - name: ofs_local_header
        type: long
      item_type: struct
      name: cdir
      pos:
        line_end: 43
        line_start: 25
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
    - fields:
      - name: tag
        type: long
      - name: version_needed
        type: short
      - name: flags
        type: short
      - name: method
        type: short
      - name: last_mod_file_time
        type: short
      - name: last_mod_file_date
        type: short
      - name: crc32
        type: long
      - name: comp_size
        type: long
      - name: uncomp_size
        type: long
      - name: fname_length
        type: short
      - name: extra_length
        type: short
      item_type: struct
      name: fhdr
      pos:
        line_end: 57
        line_start: 45
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
    - fields:
      - name: tag
        type: int
      - name: uncomp_size
        type: int
      - name: bitmap_size
        type: int
      item_type: struct
      name: meta_data_hdr
      pos:
        line_end: 64
        line_start: 60
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
    - fields:
      - name: '*name'
        type: char
      - name: '*prefix'
        type: char
      item_type: struct
      name: tagSCHEME
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
    typedefs:
    - item_type: typedef
      name: (*NOTIFYPROC)(int code, LPSTR text, ...)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/Python-3.8.3/PC/bdist_wininst/archive.h
      type: int
    union: []
- function_names:
  - unescape
  - set_failure_reason
  - get_failure_reason
  - add_to_filelist
  - do_compile_files
  - DECLPROC
  - DECLVAR
  - widen_string
  - compile_filelist
  - DEF_CSIDL
  - DIM
  - FileCreated
  - DirectoryCreated
  - GetSpecialFolderPath
  - CreateShortcut
  - PyMessageBox
  - GetRootHKey
  - LoadPythonDll
  - prepare_script_environment
  - do_run_installscript
  - run_installscript
  - do_run_simple_script
  - run_simple_script
  - SystemError
  - notify
  - MapExistingFile
  - create_bitmap
  - ExtractInstallData
  - PumpMessages
  - WindowProc
  - CreateBackground
  - CenterWindow
  - IntroDlgProc
  - StatusRoutine
  - get_sys_prefix
  - CheckPythonExe
  - GetOtherPythonVersion
  - GetPythonVersions
  - HasLocalMachinePrivs
  - CheckRootKey
  - GetScheme
  - SelectPythonDlgProc
  - OpenLogfile
  - CloseLogfile
  - InstallFilesDlgProc
  - FinishedDlgProc
  - RunWizard
  - MyIsUserAnAdmin
  - NeedAutoUAC
  - SpawnUAC
  - DoInstall
  - compare
  - remove_exe
  - DeleteRegistryKey
  - DeleteRegistryValue
  - MyDeleteFile
  - MyRemoveDirectory
  - Run_RemoveScript
  - DoUninstall
  - WinMain
  source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WM_NUMFILES
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type_or_value: WM_USER+1
    - item_type: preproc_def
      name: WM_NEXTFILE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type_or_value: WM_USER+2
    - item_type: preproc_def
      name: METH_VARARGS
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: METH_NOARGS
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type_or_value: '0x0004'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*next'
        type: struct tagFile
      item_type: struct
      name: tagFile
      pos:
        line_end: 231
        line_start: 228
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
    - fields:
      - name: '*ml_name'
        type: char
      - name: ml_meth
        type: PyCFunction
      - name: ml_flags
        type: int
      - name: '*ml_doc'
        type: char
      item_type: struct
      name: PyMethodDef
      pos:
        line_end: 372
        line_start: 367
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
    - fields:
      - name: nFolder
        type: int
      - name: '*name'
        type: char
      item_type: struct
      name: "csidl_names[] = {\n    /* Startup menu for all users.\n       NT only
        */\n    DEF_CSIDL(CSIDL_COMMON_STARTMENU),\n    /* Startup menu. */\n    DEF_CSIDL(CSIDL_STARTMENU),\n\n/*
        \   DEF_CSIDL(CSIDL_COMMON_APPDATA), */\n/*    DEF_CSIDL(CSIDL_LOCAL_APPDATA),
        */\n    /* Repository for application-specific data.\n       Needs Internet
        Explorer 4.0 */\n    DEF_CSIDL(CSIDL_APPDATA),\n\n    /* The desktop for all
        users.\n       NT only */\n    DEF_CSIDL(CSIDL_COMMON_DESKTOPDIRECTORY),\n
        \   /* The desktop. */\n    DEF_CSIDL(CSIDL_DESKTOPDIRECTORY),\n\n    /* Startup
        folder for all users.\n       NT only */\n    DEF_CSIDL(CSIDL_COMMON_STARTUP),\n
        \   /* Startup folder. */\n    DEF_CSIDL(CSIDL_STARTUP),\n\n    /* Programs
        item in the start menu for all users.\n       NT only */\n    DEF_CSIDL(CSIDL_COMMON_PROGRAMS),\n
        \   /* Program item in the user's start menu. */\n    DEF_CSIDL(CSIDL_PROGRAMS),\n\n/*
        \   DEF_CSIDL(CSIDL_PROGRAM_FILES_COMMON), */\n/*    DEF_CSIDL(CSIDL_PROGRAM_FILES),
        */\n\n    /* Virtual folder containing fonts. */\n    DEF_CSIDL(CSIDL_FONTS),\n}"
      pos:
        line_end: 395
        line_start: 392
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
    - fields:
      - name: prefix[MAX_PATH+1]
        type: char
      - name: hkey
        type: HKEY
      item_type: struct
      name: _InstalledVersionInfo
      pos:
        line_end: 1466
        line_start: 1463
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
    typedefs:
    - item_type: typedef
      name: PyObject
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type: void
    - item_type: typedef
      name: '*(*PyCFunction)(PyObject *, PyObject *)'
      pos:
        line_end: 365
        line_start: 365
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type: PyObject
    - item_type: typedef
      name: PyMethodDef
      pos:
        line_end: 373
        line_start: 373
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type: PyMethodDef
    - item_type: typedef
      name: (WINAPI *PFNIsUserAnAdmin)()
      pos:
        line_end: 2174
        line_start: 2174
        source_file: /src/Python-3.8.3/PC/bdist_wininst/install.c
      type: BOOL
    union: []
- function_names:
  - _testconsole_write_input
  - _testconsole_read_output
  source_file: /src/Python-3.8.3/PC/clinic/_testconsole.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _TESTCONSOLE_WRITE_INPUT_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/PC/clinic/_testconsole.c.h
      type_or_value: '{"write_input", (PyCFunction)(void(*)(void))_testconsole_write_input,
        METH_FASTCALL|METH_KEYWORDS, _testconsole_write_input__doc__},'
    - item_type: preproc_def
      name: _TESTCONSOLE_READ_OUTPUT_METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/PC/clinic/_testconsole.c.h
      type_or_value: '{"read_output", (PyCFunction)(void(*)(void))_testconsole_read_output,
        METH_FASTCALL|METH_KEYWORDS, _testconsole_read_output__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - msvcrt_heapmin
  - msvcrt_locking
  - msvcrt_setmode
  - msvcrt_open_osfhandle
  - msvcrt_get_osfhandle
  - msvcrt_kbhit
  - msvcrt_getch
  - msvcrt_getwch
  - msvcrt_getche
  - msvcrt_getwche
  - msvcrt_putch
  - msvcrt_putwch
  - msvcrt_ungetch
  - msvcrt_ungetwch
  - msvcrt_CrtSetReportFile
  - msvcrt_CrtSetReportMode
  - msvcrt_set_error_mode
  - msvcrt_SetErrorMode
  source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MSVCRT_HEAPMIN_METHODDEF
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"heapmin", (PyCFunction)msvcrt_heapmin, METH_NOARGS, msvcrt_heapmin__doc__},'
    - item_type: preproc_def
      name: MSVCRT_LOCKING_METHODDEF
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"locking", (PyCFunction)(void(*)(void))msvcrt_locking, METH_FASTCALL,
        msvcrt_locking__doc__},'
    - item_type: preproc_def
      name: MSVCRT_SETMODE_METHODDEF
      pos:
        line_end: 101
        line_start: 99
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"setmode", (PyCFunction)(void(*)(void))msvcrt_setmode, METH_FASTCALL,
        msvcrt_setmode__doc__},'
    - item_type: preproc_def
      name: MSVCRT_OPEN_OSFHANDLE_METHODDEF
      pos:
        line_end: 156
        line_start: 154
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"open_osfhandle", (PyCFunction)(void(*)(void))msvcrt_open_osfhandle,
        METH_FASTCALL, msvcrt_open_osfhandle__doc__},'
    - item_type: preproc_def
      name: MSVCRT_GET_OSFHANDLE_METHODDEF
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"get_osfhandle", (PyCFunction)msvcrt_get_osfhandle, METH_O,
        msvcrt_get_osfhandle__doc__},'
    - item_type: preproc_def
      name: MSVCRT_KBHIT_METHODDEF
      pos:
        line_end: 230
        line_start: 228
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"kbhit", (PyCFunction)msvcrt_kbhit, METH_NOARGS, msvcrt_kbhit__doc__},'
    - item_type: preproc_def
      name: MSVCRT_GETCH_METHODDEF
      pos:
        line_end: 264
        line_start: 262
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"getch", (PyCFunction)msvcrt_getch, METH_NOARGS, msvcrt_getch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_GETWCH_METHODDEF
      pos:
        line_end: 288
        line_start: 286
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"getwch", (PyCFunction)msvcrt_getwch, METH_NOARGS, msvcrt_getwch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_GETCHE_METHODDEF
      pos:
        line_end: 312
        line_start: 310
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"getche", (PyCFunction)msvcrt_getche, METH_NOARGS, msvcrt_getche__doc__},'
    - item_type: preproc_def
      name: MSVCRT_GETWCHE_METHODDEF
      pos:
        line_end: 336
        line_start: 334
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"getwche", (PyCFunction)msvcrt_getwche, METH_NOARGS, msvcrt_getwche__doc__},'
    - item_type: preproc_def
      name: MSVCRT_PUTCH_METHODDEF
      pos:
        line_end: 360
        line_start: 358
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"putch", (PyCFunction)msvcrt_putch, METH_O, msvcrt_putch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_PUTWCH_METHODDEF
      pos:
        line_end: 394
        line_start: 392
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"putwch", (PyCFunction)msvcrt_putwch, METH_O, msvcrt_putwch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_UNGETCH_METHODDEF
      pos:
        line_end: 434
        line_start: 432
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"ungetch", (PyCFunction)msvcrt_ungetch, METH_O, msvcrt_ungetch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_UNGETWCH_METHODDEF
      pos:
        line_end: 468
        line_start: 466
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"ungetwch", (PyCFunction)msvcrt_ungetwch, METH_O, msvcrt_ungetwch__doc__},'
    - item_type: preproc_def
      name: MSVCRT_CRTSETREPORTFILE_METHODDEF
      pos:
        line_end: 508
        line_start: 506
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"CrtSetReportFile", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportFile,
        METH_FASTCALL, msvcrt_CrtSetReportFile__doc__},'
    - item_type: preproc_def
      name: MSVCRT_CRTSETREPORTMODE_METHODDEF
      pos:
        line_end: 548
        line_start: 546
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"CrtSetReportMode", (PyCFunction)(void(*)(void))msvcrt_CrtSetReportMode,
        METH_FASTCALL, msvcrt_CrtSetReportMode__doc__},'
    - item_type: preproc_def
      name: MSVCRT_SET_ERROR_MODE_METHODDEF
      pos:
        line_end: 605
        line_start: 603
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"set_error_mode", (PyCFunction)msvcrt_set_error_mode, METH_O,
        msvcrt_set_error_mode__doc__},'
    - item_type: preproc_def
      name: MSVCRT_SETERRORMODE_METHODDEF
      pos:
        line_end: 645
        line_start: 643
        source_file: /src/Python-3.8.3/PC/clinic/msvcrtmodule.c.h
      type_or_value: '{"SetErrorMode", (PyCFunction)msvcrt_SetErrorMode, METH_O, msvcrt_SetErrorMode__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - winsound_PlaySound
  - winsound_Beep
  - winsound_MessageBeep
  source_file: /src/Python-3.8.3/PC/clinic/winsound.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINSOUND_PLAYSOUND_METHODDEF
      pos:
        line_end: 17
        line_start: 15
        source_file: /src/Python-3.8.3/PC/clinic/winsound.c.h
      type_or_value: '{"PlaySound", (PyCFunction)(void(*)(void))winsound_PlaySound,
        METH_FASTCALL|METH_KEYWORDS, winsound_PlaySound__doc__},'
    - item_type: preproc_def
      name: WINSOUND_BEEP_METHODDEF
      pos:
        line_end: 65
        line_start: 63
        source_file: /src/Python-3.8.3/PC/clinic/winsound.c.h
      type_or_value: '{"Beep", (PyCFunction)(void(*)(void))winsound_Beep, METH_FASTCALL|METH_KEYWORDS,
        winsound_Beep__doc__},'
    - item_type: preproc_def
      name: WINSOUND_MESSAGEBEEP_METHODDEF
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/Python-3.8.3/PC/clinic/winsound.c.h
      type_or_value: '{"MessageBeep", (PyCFunction)(void(*)(void))winsound_MessageBeep,
        METH_FASTCALL|METH_KEYWORDS, winsound_MessageBeep__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - winreg_HKEYType_Close
  - winreg_HKEYType_Detach
  - winreg_HKEYType___enter__
  - winreg_HKEYType___exit__
  - winreg_ConnectRegistry
  - winreg_CreateKey
  - winreg_CreateKeyEx
  - winreg_DeleteKey
  - winreg_DeleteKeyEx
  - winreg_DeleteValue
  - winreg_EnumKey
  - winreg_EnumValue
  - winreg_ExpandEnvironmentStrings
  - winreg_FlushKey
  - winreg_LoadKey
  - winreg_OpenKey
  - winreg_OpenKeyEx
  - winreg_QueryInfoKey
  - winreg_QueryValue
  - winreg_QueryValueEx
  - winreg_SaveKey
  - winreg_SetValue
  - winreg_SetValueEx
  - winreg_DisableReflectionKey
  - winreg_EnableReflectionKey
  - winreg_QueryReflectionKey
  source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WINREG_HKEYTYPE_CLOSE_METHODDEF
      pos:
        line_end: 14
        line_start: 12
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"Close", (PyCFunction)winreg_HKEYType_Close, METH_NOARGS, winreg_HKEYType_Close__doc__},'
    - item_type: preproc_def
      name: WINREG_HKEYTYPE_DETACH_METHODDEF
      pos:
        line_end: 40
        line_start: 38
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"Detach", (PyCFunction)winreg_HKEYType_Detach, METH_NOARGS,
        winreg_HKEYType_Detach__doc__},'
    - item_type: preproc_def
      name: WINREG_HKEYTYPE___ENTER___METHODDEF
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"__enter__", (PyCFunction)winreg_HKEYType___enter__, METH_NOARGS,
        winreg_HKEYType___enter____doc__},'
    - item_type: preproc_def
      name: WINREG_HKEYTYPE___EXIT___METHODDEF
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"__exit__", (PyCFunction)(void(*)(void))winreg_HKEYType___exit__,
        METH_FASTCALL|METH_KEYWORDS, winreg_HKEYType___exit____doc__},'
    - item_type: preproc_def
      name: WINREG_CLOSEKEY_METHODDEF
      pos:
        line_end: 123
        line_start: 121
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"CloseKey", (PyCFunction)winreg_CloseKey, METH_O, winreg_CloseKey__doc__},'
    - item_type: preproc_def
      name: WINREG_CONNECTREGISTRY_METHODDEF
      pos:
        line_end: 141
        line_start: 139
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"ConnectRegistry", (PyCFunction)(void(*)(void))winreg_ConnectRegistry,
        METH_FASTCALL, winreg_ConnectRegistry__doc__},'
    - item_type: preproc_def
      name: WINREG_CREATEKEY_METHODDEF
      pos:
        line_end: 189
        line_start: 187
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"CreateKey", (PyCFunction)(void(*)(void))winreg_CreateKey,
        METH_FASTCALL, winreg_CreateKey__doc__},'
    - item_type: preproc_def
      name: WINREG_CREATEKEYEX_METHODDEF
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"CreateKeyEx", (PyCFunction)(void(*)(void))winreg_CreateKeyEx,
        METH_FASTCALL|METH_KEYWORDS, winreg_CreateKeyEx__doc__},'
    - item_type: preproc_def
      name: WINREG_DELETEKEY_METHODDEF
      pos:
        line_end: 294
        line_start: 292
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"DeleteKey", (PyCFunction)(void(*)(void))winreg_DeleteKey,
        METH_FASTCALL, winreg_DeleteKey__doc__},'
    - item_type: preproc_def
      name: WINREG_DELETEKEYEX_METHODDEF
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"DeleteKeyEx", (PyCFunction)(void(*)(void))winreg_DeleteKeyEx,
        METH_FASTCALL|METH_KEYWORDS, winreg_DeleteKeyEx__doc__},'
    - item_type: preproc_def
      name: WINREG_DELETEVALUE_METHODDEF
      pos:
        line_end: 382
        line_start: 380
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"DeleteValue", (PyCFunction)(void(*)(void))winreg_DeleteValue,
        METH_FASTCALL, winreg_DeleteValue__doc__},'
    - item_type: preproc_def
      name: WINREG_ENUMKEY_METHODDEF
      pos:
        line_end: 420
        line_start: 418
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"EnumKey", (PyCFunction)(void(*)(void))winreg_EnumKey, METH_FASTCALL,
        winreg_EnumKey__doc__},'
    - item_type: preproc_def
      name: WINREG_ENUMVALUE_METHODDEF
      pos:
        line_end: 478
        line_start: 476
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"EnumValue", (PyCFunction)(void(*)(void))winreg_EnumValue,
        METH_FASTCALL, winreg_EnumValue__doc__},'
    - item_type: preproc_def
      name: WINREG_EXPANDENVIRONMENTSTRINGS_METHODDEF
      pos:
        line_end: 518
        line_start: 516
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"ExpandEnvironmentStrings", (PyCFunction)winreg_ExpandEnvironmentStrings,
        METH_O, winreg_ExpandEnvironmentStrings__doc__},'
    - item_type: preproc_def
      name: WINREG_FLUSHKEY_METHODDEF
      pos:
        line_end: 559
        line_start: 557
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"FlushKey", (PyCFunction)winreg_FlushKey, METH_O, winreg_FlushKey__doc__},'
    - item_type: preproc_def
      name: WINREG_LOADKEY_METHODDEF
      pos:
        line_end: 608
        line_start: 606
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"LoadKey", (PyCFunction)(void(*)(void))winreg_LoadKey, METH_FASTCALL,
        winreg_LoadKey__doc__},'
    - item_type: preproc_def
      name: WINREG_OPENKEY_METHODDEF
      pos:
        line_end: 652
        line_start: 650
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"OpenKey", (PyCFunction)(void(*)(void))winreg_OpenKey, METH_FASTCALL|METH_KEYWORDS,
        winreg_OpenKey__doc__},'
    - item_type: preproc_def
      name: WINREG_OPENKEYEX_METHODDEF
      pos:
        line_end: 704
        line_start: 702
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"OpenKeyEx", (PyCFunction)(void(*)(void))winreg_OpenKeyEx,
        METH_FASTCALL|METH_KEYWORDS, winreg_OpenKeyEx__doc__},'
    - item_type: preproc_def
      name: WINREG_QUERYINFOKEY_METHODDEF
      pos:
        line_end: 752
        line_start: 750
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"QueryInfoKey", (PyCFunction)winreg_QueryInfoKey, METH_O, winreg_QueryInfoKey__doc__},'
    - item_type: preproc_def
      name: WINREG_QUERYVALUE_METHODDEF
      pos:
        line_end: 793
        line_start: 791
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"QueryValue", (PyCFunction)(void(*)(void))winreg_QueryValue,
        METH_FASTCALL, winreg_QueryValue__doc__},'
    - item_type: preproc_def
      name: WINREG_QUERYVALUEEX_METHODDEF
      pos:
        line_end: 832
        line_start: 830
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"QueryValueEx", (PyCFunction)(void(*)(void))winreg_QueryValueEx,
        METH_FASTCALL, winreg_QueryValueEx__doc__},'
    - item_type: preproc_def
      name: WINREG_SAVEKEY_METHODDEF
      pos:
        line_end: 876
        line_start: 874
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"SaveKey", (PyCFunction)(void(*)(void))winreg_SaveKey, METH_FASTCALL,
        winreg_SaveKey__doc__},'
    - item_type: preproc_def
      name: WINREG_SETVALUE_METHODDEF
      pos:
        line_end: 925
        line_start: 923
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"SetValue", (PyCFunction)(void(*)(void))winreg_SetValue, METH_FASTCALL,
        winreg_SetValue__doc__},'
    - item_type: preproc_def
      name: WINREG_SETVALUEEX_METHODDEF
      pos:
        line_end: 996
        line_start: 994
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"SetValueEx", (PyCFunction)(void(*)(void))winreg_SetValueEx,
        METH_FASTCALL, winreg_SetValueEx__doc__},'
    - item_type: preproc_def
      name: WINREG_DISABLEREFLECTIONKEY_METHODDEF
      pos:
        line_end: 1039
        line_start: 1037
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"DisableReflectionKey", (PyCFunction)winreg_DisableReflectionKey,
        METH_O, winreg_DisableReflectionKey__doc__},'
    - item_type: preproc_def
      name: WINREG_ENABLEREFLECTIONKEY_METHODDEF
      pos:
        line_end: 1073
        line_start: 1071
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"EnableReflectionKey", (PyCFunction)winreg_EnableReflectionKey,
        METH_O, winreg_EnableReflectionKey__doc__},'
    - item_type: preproc_def
      name: WINREG_QUERYREFLECTIONKEY_METHODDEF
      pos:
        line_end: 1105
        line_start: 1103
        source_file: /src/Python-3.8.3/PC/clinic/winreg.c.h
      type_or_value: '{"QueryReflectionKey", (PyCFunction)winreg_QueryReflectionKey,
        METH_O, winreg_QueryReflectionKey__doc__},'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/Python-3.8.3/Programs/_freeze_importlib.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _testembed_Py_Initialize
  - print_subinterp
  - test_repeated_init_and_subinterpreters
  - check_stdio_details
  - test_forced_io_encoding
  - _Py_EMBED_PREINIT_CHECK
  - test_pre_initialization_api
  - test_pre_initialization_sys_options
  - bpo20891_thread
  - test_bpo20891
  - test_initialize_twice
  - test_initialize_pymain
  - dump_config
  - test_init_initialize_config
  - config_set_string
  - config_set_argv
  - config_set_wide_string_list
  - config_set_program_name
  - init_from_config_clear
  - check_init_compat_config
  - test_preinit_compat_config
  - test_init_compat_config
  - test_init_global_config
  - test_init_from_config
  - check_init_parse_argv
  - test_init_parse_argv
  - test_init_dont_parse_argv
  - set_most_env_vars
  - set_all_env_vars
  - test_init_compat_env
  - test_init_python_env
  - set_all_env_vars_dev_mode
  - test_init_env_dev_mode
  - test_init_env_dev_mode_alloc
  - test_init_isolated_flag
  - test_preinit_isolated1
  - test_preinit_isolated2
  - test_preinit_dont_parse_argv
  - test_preinit_parse_argv
  - set_all_global_config_variables
  - check_preinit_isolated_config
  - test_preinit_isolated_config
  - test_init_isolated_config
  - check_init_python_config
  - test_preinit_python_config
  - test_init_python_config
  - test_init_dont_configure_locale
  - test_init_dev_mode
  - _open_code_hook
  - test_open_code_hook
  - _audit_hook
  - _test_audit
  - test_audit
  - _audit_subinterpreter_hook
  - test_audit_subinterpreter
  - _audit_hook_run
  - test_audit_run_command
  - test_audit_run_file
  - run_audit_run_test
  - test_audit_run_interactivehook
  - test_audit_run_startup
  - test_audit_run_stdin
  - test_init_read_set
  - test_init_sys_add
  - test_init_setpath
  - test_init_setpath_config
  - test_init_setpythonhome
  - test_init_warnoptions
  - configure_init_main
  - test_init_run_main
  - test_init_main
  - test_run_main
  - main
  source_file: /src/Python-3.8.3/Programs/_testembed.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROGRAM_NAME
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/Python-3.8.3/Programs/_testembed.c
      type_or_value: L"./_testembed"
    structs:
    - fields:
      - name: '* expected'
        type: char
      - name: exit
        type: int
      item_type: struct
      name: AuditRunCommandTest
      pos:
        line_end: 1199
        line_start: 1196
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    - fields:
      - name: '*name'
        type: char
      - name: (*func)(void)
        type: int
      item_type: struct
      name: TestCase
      pos:
        line_end: 1600
        line_start: 1596
        source_file: /src/Python-3.8.3/Programs/_testembed.c
    typedefs: []
    union: []
- function_names:
  - wmain
  - main
  source_file: /src/Python-3.8.3/Programs/python.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
